Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rpxXO-009hrQ-Rb for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Mar 2024 21:43:55 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1rpxXN-004hHN-WC for pgsql-hackers@arkaria.postgresql.org; Thu, 28 Mar 2024 21:43:54 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rpxXN-004hEZ-IO for pgsql-hackers@lists.postgresql.org; Thu, 28 Mar 2024 21:43:53 +0000 Received: from mail-ed1-x534.google.com ([2a00:1450:4864:20::534]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rpxXF-0074wL-Qj for pgsql-hackers@postgresql.org; Thu, 28 Mar 2024 21:43:52 +0000 Received: by mail-ed1-x534.google.com with SMTP id 4fb4d7f45d1cf-56c08d1e900so1682624a12.3 for ; Thu, 28 Mar 2024 14:43:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb.com; s=google; t=1711662224; x=1712267024; darn=postgresql.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=dGhIKwMJzxgdo3GH/DuHHeez1aARiBvGfla/kiRQJPM=; b=Pw3FLq88kE9tPM3L8ElnzX2WjleHpX2pDZV0BXDXu7eznlqbizoClkIpoKgk5sCS9O KoHi4FQIBQ8lcvYw4SMPukeNVuUMxvEvVklDNhAU+zyptDg6CSjAsr+NB5hfz75U82Im ImkaHYfsQhFcgb2LWQIV1gWeNK6n7xQNAu48yBUkKX4bekIhLzXMpGQF1W/DhZdvSu08 YoUyUBUE83HiGZDylboNDmB4usF2NY0Ho6FXfZOdQlG5LuhyZ3gEbKwBxQhatrFfcCUY H2ItgKeN0JGSVPxm9LNM2JBV6MDhUOD7y1FrOdOsb0iiFTVbDQ4IF8moUGHBV6+ciOF9 dCtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711662224; x=1712267024; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dGhIKwMJzxgdo3GH/DuHHeez1aARiBvGfla/kiRQJPM=; b=dMdidTuzZkbzlII61JagX00xN6rKwVXpBlBYvast8hPE2FkTM1QYZJltZbi5/93JQG 1Sbr4+1ImtqhR3QHYo4uUkplaNPOpv04AqlD6+FIjbi/mRmaXsVjGfFSwILiI5q73c3z jzqWNEy+osLfkaCLRp7nUzsYJXp18BMMEOVOdb6ShOJtcs9IYsEEQD9WWdaDLWtwuBzR lM1a5SIFM58fYnxiyD01d3rig0h+uR373Jju4QNyFHCtO8smhlPGJ0OTzR/HHUgw1X2k I0AqVEVI34+rku9ypTZdYat+oUGldtuujPLztYeMU1ZNmG17VK0+iBgUx1LT5+/u1MuG XRzg== X-Forwarded-Encrypted: i=1; AJvYcCXFES+0ZEhpTGhlc6Yo5Qlz92X7r62xbSH1xD6wJfNWalEUF80aIrEYfoUOJD8Bdp0fcaQYkjccZYXEEjFyv+tGKM0hsL+CtRk2mp7Q X-Gm-Message-State: AOJu0Yw6MvPC+XRyigLYuCBht2E2imHNZ85iqtkxyk8YjITZF9sg31GS pxqNrqjQ5sGYT9435Lc7lTH4KL+tUGs9egZ0BAZDGyEwL76D2Q4uGDXgeaWfMA== X-Google-Smtp-Source: AGHT+IF8DPHMZDLbHpCs7ldnlKaxmkhWY/QWF2fpO80uVc/m78u2OS+SPMlbHpyB919rugg4fN/klg== X-Received: by 2002:a17:907:868a:b0:a46:c11d:dd01 with SMTP id qa10-20020a170907868a00b00a46c11ddd01mr411866ejc.50.1711662224369; Thu, 28 Mar 2024 14:43:44 -0700 (PDT) Received: from [10.137.0.18] (ip-86-49-229-30.bb.vodafone.cz. [86.49.229.30]) by smtp.gmail.com with ESMTPSA id o19-20020a17090637d300b00a46cc48ab07sm1186409ejc.221.2024.03.28.14.43.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 28 Mar 2024 14:43:44 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------jVFNuFEWGrtJeRiHgB08N9cJ" Message-ID: <7e98781c-34e0-4c02-8e5b-0500aa074271@enterprisedb.com> Date: Thu, 28 Mar 2024 22:43:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: BitmapHeapScan streaming read user and prelim refactoring Content-Language: en-US To: Melanie Plageman Cc: Heikki Linnakangas , Andres Freund , Pg Hackers , Thomas Munro , Nazir Bilal Yavuz References: <5a172d1e-d69c-409a-b1fa-6521214c81c2@iki.fi> <20240323002211.on5vb5ulk6lsdb2u@liskov> <20240323002607.abegehmmjyxrnmm2@liskov> <20240324173833.rdtw42aur2q5hhb2@liskov> <58fa8dd3-a49b-4774-a9c4-7422ba8bc698@enterprisedb.com> <358c737e-772c-40dd-9ecf-35b0c05828cd@enterprisedb.com> <20240325160709.qjo6txzu6zjxzkqy@liskov> <20240327193750.3mlcmzqondpj27xe@liskov> From: Tomas Vondra In-Reply-To: <20240327193750.3mlcmzqondpj27xe@liskov> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------jVFNuFEWGrtJeRiHgB08N9cJ Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 3/27/24 20:37, Melanie Plageman wrote: > On Mon, Mar 25, 2024 at 12:07:09PM -0400, Melanie Plageman wrote: >> On Sun, Mar 24, 2024 at 06:37:20PM -0400, Melanie Plageman wrote: >>> On Sun, Mar 24, 2024 at 5:59 PM Tomas Vondra >>> wrote: >>>> >>>> BTW when you say "up to 'Make table_scan_bitmap_next_block() async >>>> friendly'" do you mean including that patch, or that this is the first >>>> patch that is not one of the independently useful patches. >>> >>> I think the code is easier to understand with "Make >>> table_scan_bitmap_next_block() async friendly". Prior to that commit, >>> table_scan_bitmap_next_block() could return false even when the bitmap >>> has more blocks and expects the caller to handle this and invoke it >>> again. I think that interface is very confusing. The downside of the >>> code in that state is that the code for prefetching is still in the >>> BitmapHeapNext() code and the code for getting the current block is in >>> the heap AM-specific code. I took a stab at fixing this in v9's 0013, >>> but the outcome wasn't very attractive. >>> >>> What I will do tomorrow is reorder and group the commits such that all >>> of the commits that are useful independent of streaming read are first >>> (I think 0014 and 0015 are independently valuable but they are on top >>> of some things that are only useful to streaming read because they are >>> more recently requested changes). I think I can actually do a bit of >>> simplification in terms of how many commits there are and what is in >>> each. Just to be clear, v9 is still reviewable. I am just going to go >>> back and change what is included in each commit. >> >> So, attached v10 does not include the new version of streaming read API. >> I focused instead on the refactoring patches commit regrouping I >> mentioned here. > > Attached v11 has the updated Read Stream API Thomas sent this morning > [1]. No other changes. > I think there's some sort of bug, triggering this assert in heapam Assert(BufferGetBlockNumber(hscan->rs_cbuf) == tbmres->blockno); I haven't looked for the root cause, and it's not exactly deterministic, but try this: create table t (a int, b text); insert into t select 10000 * random(), md5(i::text) from generate_series(1,10000000) s(i);^C create index on t (a); explain analyze select * from t where a = 200; explain analyze select * from t where a < 200; and then vary the condition a bit (different values, inequalities, etc.). For me it hits the assert in a couple tries. regards -- Tomas Vondra EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company --------------jVFNuFEWGrtJeRiHgB08N9cJ Content-Type: text/plain; charset=UTF-8; name="bt.txt" Content-Disposition: attachment; filename="bt.txt" Content-Transfer-Encoding: base64 MHgwMDAwNzlmZjQ4YTczZDM3IGluIGVwb2xsX3dhaXQgKCkgZnJvbSAvbGliNjQvbGliYy5z by42Ck1pc3Npbmcgc2VwYXJhdGUgZGVidWdpbmZvcywgdXNlOiBkbmYgZGVidWdpbmZvLWlu c3RhbGwgZ2xpYmMtMi4zNy0xOC5mYzM4Lng4Nl82NCBsaWJnY2MtMTMuMi4xLTQuZmMzOC54 ODZfNjQgbGliaWN1LTcyLjEtMi5mYzM4Lng4Nl82NCBsaWJzdGRjKystMTMuMi4xLTQuZmMz OC54ODZfNjQgemxpYi0xLjIuMTMtMy5mYzM4Lng4Nl82NAooZ2RiKSBjCkNvbnRpbnVpbmcu CgpQcm9ncmFtIHJlY2VpdmVkIHNpZ25hbCBTSUdBQlJULCBBYm9ydGVkLgoweDAwMDA3OWZm NDg5ZWY4ODQgaW4gX19wdGhyZWFkX2tpbGxfaW1wbGVtZW50YXRpb24gKCkgZnJvbSAvbGli NjQvbGliYy5zby42CihnZGIpIGJ0CiMwICAweDAwMDA3OWZmNDg5ZWY4ODQgaW4gX19wdGhy ZWFkX2tpbGxfaW1wbGVtZW50YXRpb24gKCkgZnJvbSAvbGliNjQvbGliYy5zby42CiMxICAw eDAwMDA3OWZmNDg5OWVhZmUgaW4gcmFpc2UgKCkgZnJvbSAvbGliNjQvbGliYy5zby42CiMy ICAweDAwMDA3OWZmNDg5ODc4N2YgaW4gYWJvcnQgKCkgZnJvbSAvbGliNjQvbGliYy5zby42 CiMzICAweDAwMDAwMDAwMDA5YmE1NjMgaW4gRXhjZXB0aW9uYWxDb25kaXRpb24gKGNvbmRp dGlvbk5hbWU9Y29uZGl0aW9uTmFtZUBlbnRyeT0weGEyMDllMCAiQnVmZmVyR2V0QmxvY2tO dW1iZXIoaHNjYW4tPnJzX2NidWYpID09IHRibXJlcy0+YmxvY2tubyIsIGZpbGVOYW1lPWZp bGVOYW1lQGVudHJ5PTB4YTIwNWI0ICJoZWFwYW1faGFuZGxlci5jIiwgbGluZU51bWJlcj1s aW5lTnVtYmVyQGVudHJ5PTIyMjEpIGF0IGFzc2VydC5jOjY2CiM0ICAweDAwMDAwMDAwMDA1 Nzc1OWYgaW4gaGVhcGFtX3NjYW5fYml0bWFwX25leHRfYmxvY2sgKGV4YWN0X3BhZ2VzPTxv cHRpbWl6ZWQgb3V0PiwgbG9zc3lfcGFnZXM9PG9wdGltaXplZCBvdXQ+LCByZWNoZWNrPTxv cHRpbWl6ZWQgb3V0Piwgc2Nhbj0weDFlNzM1NDgpIGF0IGhlYXBhbV9oYW5kbGVyLmM6MjIy MQojNSAgaGVhcGFtX3NjYW5fYml0bWFwX25leHRfdHVwbGUgKHNjYW49MHgxZTczNTQ4LCBz bG90PTxvcHRpbWl6ZWQgb3V0PiwgcmVjaGVjaz08b3B0aW1pemVkIG91dD4sIGxvc3N5X3Bh Z2VzPTxvcHRpbWl6ZWQgb3V0PiwgZXhhY3RfcGFnZXM9PG9wdGltaXplZCBvdXQ+KSBhdCBo ZWFwYW1faGFuZGxlci5jOjIzNTkKIzYgIDB4MDAwMDAwMDAwMDZmNThiYiBpbiB0YWJsZV9z Y2FuX2JpdG1hcF9uZXh0X3R1cGxlIChleGFjdF9wYWdlcz08b3B0aW1pemVkIG91dD4sIGxv c3N5X3BhZ2VzPTxvcHRpbWl6ZWQgb3V0PiwgcmVjaGVjaz08b3B0aW1pemVkIG91dD4sIHNs b3Q9PG9wdGltaXplZCBvdXQ+LCBzY2FuPTxvcHRpbWl6ZWQgb3V0PikgYXQgLi4vLi4vLi4v c3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaDoyMDIyCiM3ICBCaXRtYXBIZWFwTmV4dCAo bm9kZT0weDFlNzFmYzgpIGF0IG5vZGVCaXRtYXBIZWFwc2Nhbi5jOjIwMgojOCAgMHgwMDAw MDAwMDAwNmU0NmI4IGluIEV4ZWNQcm9jTm9kZUluc3RyIChub2RlPTB4MWU3MWZjOCkgYXQg ZXhlY1Byb2Nub2RlLmM6NDgwCiM5ICAweDAwMDAwMDAwMDA2ZGQ2ZmEgaW4gRXhlY1Byb2NO b2RlIChub2RlPTB4MWU3MWZjOCkgYXQgLi4vLi4vLi4vc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY3V0b3IuaDoyNzQKIzEwIEV4ZWN1dGVQbGFuIChleGVjdXRlX29uY2U9PG9wdGltaXpl ZCBvdXQ+LCBkZXN0PTB4Yjc1NWUwIDxkb25vdGhpbmdEUj4sIGRpcmVjdGlvbj08b3B0aW1p emVkIG91dD4sIG51bWJlclR1cGxlcz0wLCBzZW5kVHVwbGVzPXRydWUsIG9wZXJhdGlvbj1D TURfU0VMRUNULCB1c2VfcGFyYWxsZWxfbW9kZT08b3B0aW1pemVkIG91dD4sIHBsYW5zdGF0 ZT0weDFlNzFmYzgsIGVzdGF0ZT0weDFlNzFkODApIGF0IGV4ZWNNYWluLmM6MTY0NAojMTEg c3RhbmRhcmRfRXhlY3V0b3JSdW4gKHF1ZXJ5RGVzYz0weDFlNmM1MDAsIGRpcmVjdGlvbj08 b3B0aW1pemVkIG91dD4sIGNvdW50PTAsIGV4ZWN1dGVfb25jZT08b3B0aW1pemVkIG91dD4p IGF0IGV4ZWNNYWluLmM6MzYzCiMxMiAweDAwMDAwMDAwMDA2N2FmODQgaW4gRXhwbGFpbk9u ZVBsYW4gKHBsYW5uZWRzdG10PXBsYW5uZWRzdG10QGVudHJ5PTB4MWU2YzNmMCwgaW50bz1p bnRvQGVudHJ5PTB4MCwgZXM9ZXNAZW50cnk9MHgxZGIzMTM4LCBxdWVyeVN0cmluZz1xdWVy eVN0cmluZ0BlbnRyeT0weDFkODdmNjAgImV4cGxhaW4gYW5hbHl6ZSBzZWxlY3QgKiBmcm9t IHQgd2hlcmUgYSA9IDIwMDsiLCBwYXJhbXM9cGFyYW1zQGVudHJ5PTB4MCwgcXVlcnlFbnY9 cXVlcnlFbnZAZW50cnk9MHgwLCAKICAgIHBsYW5kdXJhdGlvbj0weDdmZmNiZTExMWFjOCwg YnVmdXNhZ2U9MHgwLCBtZW1fY291bnRlcnM9MHgwKSBhdCBleHBsYWluLmM6NjQ1CiMxMyAw eDAwMDAwMDAwMDA2N2I0MTcgaW4gc3RhbmRhcmRfRXhwbGFpbk9uZVF1ZXJ5IChxdWVyeT08 b3B0aW1pemVkIG91dD4sIGN1cnNvck9wdGlvbnM9MjA0OCwgaW50bz0weDAsIGVzPTB4MWRi MzEzOCwgcXVlcnlTdHJpbmc9MHgxZDg3ZjYwICJleHBsYWluIGFuYWx5emUgc2VsZWN0ICog ZnJvbSB0IHdoZXJlIGEgPSAyMDA7IiwgcGFyYW1zPTB4MCwgcXVlcnlFbnY9MHgwKSBhdCBl eHBsYWluLmM6NDU5CiMxNCAweDAwMDAwMDAwMDA2N2JhZGIgaW4gRXhwbGFpblF1ZXJ5IChw c3RhdGU9MHgxZGIzMDI4LCBzdG10PTB4MWQ4OGUxMCwgcGFyYW1zPTB4MCwgZGVzdD0weDFk YjJmOTgpIGF0IC4uLy4uLy4uL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmg6MTcyCiMxNSAw eDAwMDAwMDAwMDA4OTQwMjYgaW4gc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkgKHBzdG10PTB4 MWQ4OGY2MCwgcXVlcnlTdHJpbmc9MHgxZDg3ZjYwICJleHBsYWluIGFuYWx5emUgc2VsZWN0 ICogZnJvbSB0IHdoZXJlIGEgPSAyMDA7IiwgcmVhZE9ubHlUcmVlPTxvcHRpbWl6ZWQgb3V0 PiwgY29udGV4dD1QUk9DRVNTX1VUSUxJVFlfVE9QTEVWRUwsIHBhcmFtcz0weDAsIHF1ZXJ5 RW52PTB4MCwgZGVzdD0weDFkYjJmOTgsIHFjPTB4N2ZmY2JlMTExZDgwKQogICAgYXQgdXRp bGl0eS5jOjg2MwojMTYgMHgwMDAwMDAwMDAwODkyM2NmIGluIFBvcnRhbFJ1blV0aWxpdHkg KHBvcnRhbD1wb3J0YWxAZW50cnk9MHgxZTA0NjgwLCBwc3RtdD0weDFkODhmNjAsIGlzVG9w TGV2ZWw9dHJ1ZSwgc2V0SG9sZFNuYXBzaG90PXNldEhvbGRTbmFwc2hvdEBlbnRyeT10cnVl LCBkZXN0PWRlc3RAZW50cnk9MHgxZGIyZjk4LCBxYz1xY0BlbnRyeT0weDdmZmNiZTExMWQ4 MCkgYXQgcHF1ZXJ5LmM6MTE1OAojMTcgMHgwMDAwMDAwMDAwODkyODUwIGluIEZpbGxQb3J0 YWxTdG9yZSAocG9ydGFsPXBvcnRhbEBlbnRyeT0weDFlMDQ2ODAsIGlzVG9wTGV2ZWw9aXNU b3BMZXZlbEBlbnRyeT10cnVlKSBhdCAuLi8uLi8uLi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rl cy5oOjE3MgojMTggMHgwMDAwMDAwMDAwODkyYjZkIGluIFBvcnRhbFJ1biAocG9ydGFsPXBv cnRhbEBlbnRyeT0weDFlMDQ2ODAsIGNvdW50PWNvdW50QGVudHJ5PTkyMjMzNzIwMzY4NTQ3 NzU4MDcsIGlzVG9wTGV2ZWw9aXNUb3BMZXZlbEBlbnRyeT10cnVlLCBydW5fb25jZT1ydW5f b25jZUBlbnRyeT10cnVlLCBkZXN0PWRlc3RAZW50cnk9MHgxZGJiNTE4LCBhbHRkZXN0PWFs dGRlc3RAZW50cnk9MHgxZGJiNTE4LCBxYz0weDdmZmNiZTExMWY2MCkgYXQgcHF1ZXJ5LmM6 NzYzCiMxOSAweDAwMDAwMDAwMDA4OGVjN2YgaW4gZXhlY19zaW1wbGVfcXVlcnkgKHF1ZXJ5 X3N0cmluZz0weDFkODdmNjAgImV4cGxhaW4gYW5hbHl6ZSBzZWxlY3QgKiBmcm9tIHQgd2hl cmUgYSA9IDIwMDsiKSBhdCBwb3N0Z3Jlcy5jOjEyNzQKIzIwIDB4MDAwMDAwMDAwMDg5MDUw ZSBpbiBQb3N0Z3Jlc01haW4gKGRibmFtZT08b3B0aW1pemVkIG91dD4sIHVzZXJuYW1lPTxv cHRpbWl6ZWQgb3V0PikgYXQgcG9zdGdyZXMuYzo0NjgwCiMyMSAweDAwMDAwMDAwMDA4OGI2 NWQgaW4gQmFja2VuZE1haW4gKHN0YXJ0dXBfZGF0YT08b3B0aW1pemVkIG91dD4sIHN0YXJ0 dXBfZGF0YV9sZW49PG9wdGltaXplZCBvdXQ+KSBhdCBiYWNrZW5kX3N0YXJ0dXAuYzoxMDEK IzIyIDB4MDAwMDAwMDAwMDdmNTJlNSBpbiBwb3N0bWFzdGVyX2NoaWxkX2xhdW5jaCAoY2hp bGRfdHlwZT1jaGlsZF90eXBlQGVudHJ5PUJfQkFDS0VORCwgc3RhcnR1cF9kYXRhPXN0YXJ0 dXBfZGF0YUBlbnRyeT0weDdmZmNiZTExMjNhYyAiIiwgc3RhcnR1cF9kYXRhX2xlbj1zdGFy dHVwX2RhdGFfbGVuQGVudHJ5PTQsIGNsaWVudF9zb2NrPWNsaWVudF9zb2NrQGVudHJ5PTB4 N2ZmY2JlMTEyM2IwKSBhdCBsYXVuY2hfYmFja2VuZC5jOjI2NQojMjMgMHgwMDAwMDAwMDAw N2Y4ZGJlIGluIEJhY2tlbmRTdGFydHVwIChjbGllbnRfc29jaz0weDdmZmNiZTExMjNiMCkg YXQgcG9zdG1hc3Rlci5jOjM1OTMKIzI0IFNlcnZlckxvb3AgKCkgYXQgcG9zdG1hc3Rlci5j OjE2NzQKIzI1IDB4MDAwMDAwMDAwMDdmYThmOCBpbiBQb3N0bWFzdGVyTWFpbiAoYXJnYz1h cmdjQGVudHJ5PTMsIGFyZ3Y9YXJndkBlbnRyeT0weDFkODE2YTApIGF0IHBvc3RtYXN0ZXIu YzoxMzcyCiMyNiAweDAwMDAwMDAwMDA1MWI0OTkgaW4gbWFpbiAoYXJnYz0zLCBhcmd2PTB4 MWQ4MTZhMCkgYXQgbWFpbi5jOjE5NwooZ2RiKSB1cAojMSAgMHgwMDAwNzlmZjQ4OTllYWZl IGluIHJhaXNlICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNgooZ2RiKSB1cAojMiAgMHgwMDAw NzlmZjQ4OTg3ODdmIGluIGFib3J0ICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNgooZ2RiKSB1 cAojMyAgMHgwMDAwMDAwMDAwOWJhNTYzIGluIEV4Y2VwdGlvbmFsQ29uZGl0aW9uIChjb25k aXRpb25OYW1lPWNvbmRpdGlvbk5hbWVAZW50cnk9MHhhMjA5ZTAgIkJ1ZmZlckdldEJsb2Nr TnVtYmVyKGhzY2FuLT5yc19jYnVmKSA9PSB0Ym1yZXMtPmJsb2Nrbm8iLCBmaWxlTmFtZT1m aWxlTmFtZUBlbnRyeT0weGEyMDViNCAiaGVhcGFtX2hhbmRsZXIuYyIsIGxpbmVOdW1iZXI9 bGluZU51bWJlckBlbnRyeT0yMjIxKSBhdCBhc3NlcnQuYzo2Ngo2NgkJYWJvcnQoKTsKKGdk YikgdXAKIzQgIDB4MDAwMDAwMDAwMDU3NzU5ZiBpbiBoZWFwYW1fc2Nhbl9iaXRtYXBfbmV4 dF9ibG9jayAoZXhhY3RfcGFnZXM9PG9wdGltaXplZCBvdXQ+LCBsb3NzeV9wYWdlcz08b3B0 aW1pemVkIG91dD4sIHJlY2hlY2s9PG9wdGltaXplZCBvdXQ+LCBzY2FuPTB4MWU3MzU0OCkg YXQgaGVhcGFtX2hhbmRsZXIuYzoyMjIxCjIyMjEJCUFzc2VydChCdWZmZXJHZXRCbG9ja051 bWJlcihoc2Nhbi0+cnNfY2J1ZikgPT0gdGJtcmVzLT5ibG9ja25vKTsKKGdkYikgdXAKIzUg IGhlYXBhbV9zY2FuX2JpdG1hcF9uZXh0X3R1cGxlIChzY2FuPTB4MWU3MzU0OCwgc2xvdD08 b3B0aW1pemVkIG91dD4sIHJlY2hlY2s9PG9wdGltaXplZCBvdXQ+LCBsb3NzeV9wYWdlcz08 b3B0aW1pemVkIG91dD4sIGV4YWN0X3BhZ2VzPTxvcHRpbWl6ZWQgb3V0PikgYXQgaGVhcGFt X2hhbmRsZXIuYzoyMzU5CjIzNTkJCQlpZiAoIWhlYXBhbV9zY2FuX2JpdG1hcF9uZXh0X2Js b2NrKHNjYW4sIHJlY2hlY2ssCihnZGIpIGRvd24KIzQgIDB4MDAwMDAwMDAwMDU3NzU5ZiBp biBoZWFwYW1fc2Nhbl9iaXRtYXBfbmV4dF9ibG9jayAoZXhhY3RfcGFnZXM9PG9wdGltaXpl ZCBvdXQ+LCBsb3NzeV9wYWdlcz08b3B0aW1pemVkIG91dD4sIHJlY2hlY2s9PG9wdGltaXpl ZCBvdXQ+LCBzY2FuPTB4MWU3MzU0OCkgYXQgaGVhcGFtX2hhbmRsZXIuYzoyMjIxCjIyMjEJ CUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihoc2Nhbi0+cnNfY2J1ZikgPT0gdGJtcmVz LT5ibG9ja25vKTsKKGdkYikgcCBoc2Nhbi0+cnNfY2J1ZgokMSA9IDYwNzkKKGdkYikgcCB0 bWJyZXMtPmJsb2Nrbm8KTm8gc3ltYm9sICJ0bWJyZXMiIGluIGN1cnJlbnQgY29udGV4dC4K KGdkYikgcCB0bWJyZXMtPmJsY2tubwpObyBzeW1ib2wgInRtYnJlcyIgaW4gY3VycmVudCBj b250ZXh0LgooZ2RiKSBwIHRibXJlcy0+Ymxja25vClRoZXJlIGlzIG5vIG1lbWJlciBuYW1l ZCBibGNrbm8uCihnZGIpIHAgdGJtcmVzLT5ibG9ja25vCiQyID0gNjY0MzMKKGdkYikgYnQg ZnVsbAojMCAgMHgwMDAwNzlmZjQ4OWVmODg0IGluIF9fcHRocmVhZF9raWxsX2ltcGxlbWVu dGF0aW9uICgpIGZyb20gL2xpYjY0L2xpYmMuc28uNgpObyBzeW1ib2wgdGFibGUgaW5mbyBh dmFpbGFibGUuCiMxICAweDAwMDA3OWZmNDg5OWVhZmUgaW4gcmFpc2UgKCkgZnJvbSAvbGli NjQvbGliYy5zby42Ck5vIHN5bWJvbCB0YWJsZSBpbmZvIGF2YWlsYWJsZS4KIzIgIDB4MDAw MDc5ZmY0ODk4Nzg3ZiBpbiBhYm9ydCAoKSBmcm9tIC9saWI2NC9saWJjLnNvLjYKTm8gc3lt Ym9sIHRhYmxlIGluZm8gYXZhaWxhYmxlLgojMyAgMHgwMDAwMDAwMDAwOWJhNTYzIGluIEV4 Y2VwdGlvbmFsQ29uZGl0aW9uIChjb25kaXRpb25OYW1lPWNvbmRpdGlvbk5hbWVAZW50cnk9 MHhhMjA5ZTAgIkJ1ZmZlckdldEJsb2NrTnVtYmVyKGhzY2FuLT5yc19jYnVmKSA9PSB0Ym1y ZXMtPmJsb2Nrbm8iLCBmaWxlTmFtZT1maWxlTmFtZUBlbnRyeT0weGEyMDViNCAiaGVhcGFt X2hhbmRsZXIuYyIsIGxpbmVOdW1iZXI9bGluZU51bWJlckBlbnRyeT0yMjIxKSBhdCBhc3Nl cnQuYzo2NgpObyBsb2NhbHMuCiM0ICAweDAwMDAwMDAwMDA1Nzc1OWYgaW4gaGVhcGFtX3Nj YW5fYml0bWFwX25leHRfYmxvY2sgKGV4YWN0X3BhZ2VzPTxvcHRpbWl6ZWQgb3V0PiwgbG9z c3lfcGFnZXM9PG9wdGltaXplZCBvdXQ+LCByZWNoZWNrPTxvcHRpbWl6ZWQgb3V0Piwgc2Nh bj0weDFlNzM1NDgpIGF0IGhlYXBhbV9oYW5kbGVyLmM6MjIyMQogICAgICAgIGhzY2FuID0g MHgxZTczNTQ4CiAgICAgICAgcGVyX2J1ZmZlcl9kYXRhID0gMHgxZTc5M2Q4CiAgICAgICAg YmxvY2sgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBidWZmZXIgPSA8b3B0aW1pemVkIG91 dD4KICAgICAgICBzbmFwc2hvdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIG50dXAgPSA8 b3B0aW1pemVkIG91dD4KICAgICAgICB0Ym1yZXMgPSAweDFlNzkzZDgKICAgICAgICBoc2Nh biA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBlcl9idWZmZXJfZGF0YSA9IDxvcHRpbWl6 ZWQgb3V0PgogICAgICAgIGJsb2NrID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgYnVmZmVy ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc25hcHNob3QgPSA8b3B0aW1pemVkIG91dD4K ICAgICAgICBudHVwID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgdGJtcmVzID0gPG9wdGlt aXplZCBvdXQ+CiAgICAgICAgY3Vyc2xvdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIG9m Zm51bSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHRpZCA9IDxvcHRpbWl6ZWQgb3V0Pgog ICAgICAgIGhlYXBUdXBsZSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBhZ2UgPSA8b3B0 aW1pemVkIG91dD4KICAgICAgICBtYXhvZmYgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBv ZmZudW0gPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBscCA9IDxvcHRpbWl6ZWQgb3V0Pgog ICAgICAgIGxvY3R1cCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHZhbGlkID0gPG9wdGlt aXplZCBvdXQ+CiM1ICBoZWFwYW1fc2Nhbl9iaXRtYXBfbmV4dF90dXBsZSAoc2Nhbj0weDFl NzM1NDgsIHNsb3Q9PG9wdGltaXplZCBvdXQ+LCByZWNoZWNrPTxvcHRpbWl6ZWQgb3V0Piwg bG9zc3lfcGFnZXM9PG9wdGltaXplZCBvdXQ+LCBleGFjdF9wYWdlcz08b3B0aW1pemVkIG91 dD4pIGF0IGhlYXBhbV9oYW5kbGVyLmM6MjM1OQogICAgICAgIGhzY2FuID0gMHgxZTczNTQ4 CiAgICAgICAgdGFyZ29mZnNldCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBhZ2UgPSA8 b3B0aW1pemVkIG91dD4KICAgICAgICBscCA9IDxvcHRpbWl6ZWQgb3V0PgojNiAgMHgwMDAw MDAwMDAwNmY1OGJiIGluIHRhYmxlX3NjYW5fYml0bWFwX25leHRfdHVwbGUgKGV4YWN0X3Bh Z2VzPTxvcHRpbWl6ZWQgb3V0PiwgbG9zc3lfcGFnZXM9PG9wdGltaXplZCBvdXQ+LCByZWNo ZWNrPTxvcHRpbWl6ZWQgb3V0Piwgc2xvdD08b3B0aW1pemVkIG91dD4sIHNjYW49PG9wdGlt aXplZCBvdXQ+KSBhdCAuLi8uLi8uLi9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oOjIw MjIKICAgICAgICBfX2Z1bmNfXyA9ICJ0YWJsZV9zY2FuX2JpdG1hcF9uZXh0X3R1cGxlIgog ICAgICAgIF9fZXJybm9fbG9jYXRpb24gPSA8b3B0aW1pemVkIG91dD4KIzcgIEJpdG1hcEhl YXBOZXh0IChub2RlPTB4MWU3MWZjOCkgYXQgbm9kZUJpdG1hcEhlYXBzY2FuLmM6MjAyCiAg ICAgICAgZWNvbnRleHQgPSAweDFlNzIxZDgKICAgICAgICBzY2FuID0gPG9wdGltaXplZCBv dXQ+CiAgICAgICAgdGJtID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc2xvdCA9IDB4MWU3 MjllOAogICAgICAgIGRzYSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZnVuY19fID0g IkJpdG1hcEhlYXBOZXh0IgojOCAgMHgwMDAwMDAwMDAwNmU0NmI4IGluIEV4ZWNQcm9jTm9k ZUluc3RyIChub2RlPTB4MWU3MWZjOCkgYXQgZXhlY1Byb2Nub2RlLmM6NDgwCiAgICAgICAg cmVzdWx0ID0gPG9wdGltaXplZCBvdXQ+CiM5ICAweDAwMDAwMDAwMDA2ZGQ2ZmEgaW4gRXhl Y1Byb2NOb2RlIChub2RlPTB4MWU3MWZjOCkgYXQgLi4vLi4vLi4vc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY3V0b3IuaDoyNzQKTm8gbG9jYWxzLgojMTAgRXhlY3V0ZVBsYW4gKGV4ZWN1 dGVfb25jZT08b3B0aW1pemVkIG91dD4sIGRlc3Q9MHhiNzU1ZTAgPGRvbm90aGluZ0RSPiwg ZGlyZWN0aW9uPTxvcHRpbWl6ZWQgb3V0PiwgbnVtYmVyVHVwbGVzPTAsIHNlbmRUdXBsZXM9 dHJ1ZSwgb3BlcmF0aW9uPUNNRF9TRUxFQ1QsIHVzZV9wYXJhbGxlbF9tb2RlPTxvcHRpbWl6 ZWQgb3V0PiwgcGxhbnN0YXRlPTB4MWU3MWZjOCwgZXN0YXRlPTB4MWU3MWQ4MCkgYXQgZXhl Y01haW4uYzoxNjQ0CiAgICAgICAgc2xvdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGN1 cnJlbnRfdHVwbGVfY291bnQgPSA4MTIKICAgICAgICBzbG90ID0gPG9wdGltaXplZCBvdXQ+ CiAgICAgICAgY3VycmVudF90dXBsZV9jb3VudCA9IDxvcHRpbWl6ZWQgb3V0PgojMTEgc3Rh bmRhcmRfRXhlY3V0b3JSdW4gKHF1ZXJ5RGVzYz0weDFlNmM1MDAsIGRpcmVjdGlvbj08b3B0 aW1pemVkIG91dD4sIGNvdW50PTAsIGV4ZWN1dGVfb25jZT08b3B0aW1pemVkIG91dD4pIGF0 IGV4ZWNNYWluLmM6MzYzCiAgICAgICAgZXN0YXRlID0gMHgxZTcxZDgwCiAgICAgICAgb3Bl cmF0aW9uID0gQ01EX1NFTEVDVAogICAgICAgIGRlc3QgPSAweGI3NTVlMCA8ZG9ub3RoaW5n RFI+CiAgICAgICAgc2VuZFR1cGxlcyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIG9sZGNv bnRleHQgPSAweDFkYjJkZjAKICAgICAgICBfX2Z1bmNfXyA9ICJzdGFuZGFyZF9FeGVjdXRv clJ1biIKIzEyIDB4MDAwMDAwMDAwMDY3YWY4NCBpbiBFeHBsYWluT25lUGxhbiAocGxhbm5l ZHN0bXQ9cGxhbm5lZHN0bXRAZW50cnk9MHgxZTZjM2YwLCBpbnRvPWludG9AZW50cnk9MHgw LCBlcz1lc0BlbnRyeT0weDFkYjMxMzgsIHF1ZXJ5U3RyaW5nPXF1ZXJ5U3RyaW5nQGVudHJ5 PTB4MWQ4N2Y2MCAiZXhwbGFpbiBhbmFseXplIHNlbGVjdCAqIGZyb20gdCB3aGVyZSBhID0g MjAwOyIsIHBhcmFtcz1wYXJhbXNAZW50cnk9MHgwLCBxdWVyeUVudj1xdWVyeUVudkBlbnRy eT0weDAsIAogICAgcGxhbmR1cmF0aW9uPTB4N2ZmY2JlMTExYWM4LCBidWZ1c2FnZT0weDAs IG1lbV9jb3VudGVycz0weDApIGF0IGV4cGxhaW4uYzo2NDUKICAgICAgICBkaXIgPSA8b3B0 aW1pemVkIG91dD4KLS1UeXBlIDxSRVQ+IGZvciBtb3JlLCBxIHRvIHF1aXQsIGMgdG8gY29u dGludWUgd2l0aG91dCBwYWdpbmctLQogICAgICAgIGRlc3QgPSA8b3B0aW1pemVkIG91dD4K ICAgICAgICBxdWVyeURlc2MgPSAweDFlNmM1MDAKICAgICAgICBzdGFydHRpbWUgPSA8b3B0 aW1pemVkIG91dD4KICAgICAgICB0b3RhbHRpbWUgPSAwCiAgICAgICAgZWZsYWdzID0gPG9w dGltaXplZCBvdXQ+CiAgICAgICAgaW5zdHJ1bWVudF9vcHRpb24gPSA8b3B0aW1pemVkIG91 dD4KIzEzIDB4MDAwMDAwMDAwMDY3YjQxNyBpbiBzdGFuZGFyZF9FeHBsYWluT25lUXVlcnkg KHF1ZXJ5PTxvcHRpbWl6ZWQgb3V0PiwgY3Vyc29yT3B0aW9ucz0yMDQ4LCBpbnRvPTB4MCwg ZXM9MHgxZGIzMTM4LCBxdWVyeVN0cmluZz0weDFkODdmNjAgImV4cGxhaW4gYW5hbHl6ZSBz ZWxlY3QgKiBmcm9tIHQgd2hlcmUgYSA9IDIwMDsiLCBwYXJhbXM9MHgwLCBxdWVyeUVudj0w eDApIGF0IGV4cGxhaW4uYzo0NTkKICAgICAgICBwbGFuID0gMHgxZTZjM2YwCiAgICAgICAg cGxhbnN0YXJ0ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGxhbmR1cmF0aW9uID0ge3Rp Y2tzID0gMzE0ODI1fQogICAgICAgIGJ1ZnVzYWdlX3N0YXJ0ID0ge3NoYXJlZF9ibGtzX2hp dCA9IDEsIHNoYXJlZF9ibGtzX3JlYWQgPSAxMzQxMzczMzMyMTAwODgsIHNoYXJlZF9ibGtz X2RpcnRpZWQgPSAxNjQwNywgc2hhcmVkX2Jsa3Nfd3JpdHRlbiA9IDg4Njg3NTUsIGxvY2Fs X2Jsa3NfaGl0ID0gNzA0Njc1Mjg0NDE4NTYsIGxvY2FsX2Jsa3NfcmVhZCA9IDcyMDU3NTk0 MDM3OTI3OTM2LCBsb2NhbF9ibGtzX2RpcnRpZWQgPSAxMzQxMzczMzMyMTAwODgsIAogICAg ICAgICAgbG9jYWxfYmxrc193cml0dGVuID0gMSwgdGVtcF9ibGtzX3JlYWQgPSAwLCB0ZW1w X2Jsa3Nfd3JpdHRlbiA9IDEwMTUxMTQ4LCBzaGFyZWRfYmxrX3JlYWRfdGltZSA9IHt0aWNr cyA9IDB9LCBzaGFyZWRfYmxrX3dyaXRlX3RpbWUgPSB7dGlja3MgPSA1NDMzNzIyfSwgbG9j YWxfYmxrX3JlYWRfdGltZSA9IHt0aWNrcyA9IDEzNDEzNzMzMzIxMDA4OH0sIGxvY2FsX2Js a193cml0ZV90aW1lID0ge3RpY2tzID0gNzAzNjg3NDQxOTQwNzF9LCAKICAgICAgICAgIHRl bXBfYmxrX3JlYWRfdGltZSA9IHt0aWNrcyA9IDMwOTcwMjQwfSwgdGVtcF9ibGtfd3JpdGVf dGltZSA9IHt0aWNrcyA9IDg2NDg5MjF9fQogICAgICAgIGJ1ZnVzYWdlID0ge3NoYXJlZF9i bGtzX2hpdCA9IDM4NzM0NSwgc2hhcmVkX2Jsa3NfcmVhZCA9IDMwNjU3ODM4OSwgc2hhcmVk X2Jsa3NfZGlydGllZCA9IDAsIHNoYXJlZF9ibGtzX3dyaXR0ZW4gPSAwLCBsb2NhbF9ibGtz X2hpdCA9IDAsIGxvY2FsX2Jsa3NfcmVhZCA9IDIwMTg2MzQ2MjkxMywgbG9jYWxfYmxrc19k aXJ0aWVkID0gNjUsIGxvY2FsX2Jsa3Nfd3JpdHRlbiA9IDcsIHRlbXBfYmxrc19yZWFkID0g NSwgCiAgICAgICAgICB0ZW1wX2Jsa3Nfd3JpdHRlbiA9IDEwMzc5MDYxLCBzaGFyZWRfYmxr X3JlYWRfdGltZSA9IHt0aWNrcyA9IDB9LCBzaGFyZWRfYmxrX3dyaXRlX3RpbWUgPSB7dGlj a3MgPSA3NjA4MzUzfSwgbG9jYWxfYmxrX3JlYWRfdGltZSA9IHt0aWNrcyA9IDB9LCBsb2Nh bF9ibGtfd3JpdGVfdGltZSA9IHt0aWNrcyA9IDMwOTY5OTY4fSwgdGVtcF9ibGtfcmVhZF90 aW1lID0ge3RpY2tzID0gMH0sIHRlbXBfYmxrX3dyaXRlX3RpbWUgPSB7dGlja3MgPSA3NjA5 MjU1fX0KICAgICAgICBtZW1fY291bnRlcnMgPSB7bmJsb2NrcyA9IDAsIGZyZWVjaHVua3Mg PSA4ODc2MjU5LCB0b3RhbHNwYWNlID0gNzA0Njc1Mjg0NDE4NTYsIGZyZWVzcGFjZSA9IDcy MDU3NTk0MDM3OTI3OTM2fQogICAgICAgIHBsYW5uZXJfY3R4ID0gMHgwCiAgICAgICAgc2F2 ZWRfY3R4ID0gMHgwCiMxNCAweDAwMDAwMDAwMDA2N2JhZGIgaW4gRXhwbGFpblF1ZXJ5IChw c3RhdGU9MHgxZGIzMDI4LCBzdG10PTB4MWQ4OGUxMCwgcGFyYW1zPTB4MCwgZGVzdD0weDFk YjJmOTgpIGF0IC4uLy4uLy4uL3NyYy9pbmNsdWRlL25vZGVzL25vZGVzLmg6MTcyCiAgICAg ICAgbF9fc3RhdGUgPSB7bCA9IDxvcHRpbWl6ZWQgb3V0PiwgaSA9IDB9CiAgICAgICAgbCA9 IDB4MWU3NDE0MAogICAgICAgIGVzID0gMHgxZGIzMTM4CiAgICAgICAgdHN0YXRlID0gPG9w dGltaXplZCBvdXQ+CiAgICAgICAganN0YXRlID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAg cXVlcnkgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICByZXdyaXR0ZW4gPSAweDFlNzQxMjgK ICAgICAgICBsYyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHRpbWluZ19zZXQgPSA8b3B0 aW1pemVkIG91dD4KICAgICAgICBzdW1tYXJ5X3NldCA9IDxvcHRpbWl6ZWQgb3V0PgogICAg ICAgIF9fZnVuY19fID0gIkV4cGxhaW5RdWVyeSIKIzE1IDB4MDAwMDAwMDAwMDg5NDAyNiBp biBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eSAocHN0bXQ9MHgxZDg4ZjYwLCBxdWVyeVN0cmlu Zz0weDFkODdmNjAgImV4cGxhaW4gYW5hbHl6ZSBzZWxlY3QgKiBmcm9tIHQgd2hlcmUgYSA9 IDIwMDsiLCByZWFkT25seVRyZWU9PG9wdGltaXplZCBvdXQ+LCBjb250ZXh0PVBST0NFU1Nf VVRJTElUWV9UT1BMRVZFTCwgcGFyYW1zPTB4MCwgcXVlcnlFbnY9MHgwLCBkZXN0PTB4MWRi MmY5OCwgcWM9MHg3ZmZjYmUxMTFkODApCiAgICBhdCB1dGlsaXR5LmM6ODYzCiAgICAgICAg cGFyc2V0cmVlID0gMHgxZDg4ZTEwCiAgICAgICAgaXNUb3BMZXZlbCA9IDxvcHRpbWl6ZWQg b3V0PgogICAgICAgIGlzQXRvbWljQ29udGV4dCA9IGZhbHNlCiAgICAgICAgcHN0YXRlID0g MHgxZGIzMDI4CiAgICAgICAgcmVhZG9ubHlfZmxhZ3MgPSA8b3B0aW1pemVkIG91dD4KICAg ICAgICBfX2Z1bmNfXyA9ICJzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eSIKIzE2IDB4MDAwMDAw MDAwMDg5MjNjZiBpbiBQb3J0YWxSdW5VdGlsaXR5IChwb3J0YWw9cG9ydGFsQGVudHJ5PTB4 MWUwNDY4MCwgcHN0bXQ9MHgxZDg4ZjYwLCBpc1RvcExldmVsPXRydWUsIHNldEhvbGRTbmFw c2hvdD1zZXRIb2xkU25hcHNob3RAZW50cnk9dHJ1ZSwgZGVzdD1kZXN0QGVudHJ5PTB4MWRi MmY5OCwgcWM9cWNAZW50cnk9MHg3ZmZjYmUxMTFkODApIGF0IHBxdWVyeS5jOjExNTgKTm8g bG9jYWxzLgojMTcgMHgwMDAwMDAwMDAwODkyODUwIGluIEZpbGxQb3J0YWxTdG9yZSAocG9y dGFsPXBvcnRhbEBlbnRyeT0weDFlMDQ2ODAsIGlzVG9wTGV2ZWw9aXNUb3BMZXZlbEBlbnRy eT10cnVlKSBhdCAuLi8uLi8uLi9zcmMvaW5jbHVkZS9ub2Rlcy9ub2Rlcy5oOjE3MgogICAg ICAgIHRyZWNlaXZlciA9IDB4MWRiMmY5OAogICAgICAgIHFjID0ge2NvbW1hbmRUYWcgPSBD TURUQUdfVU5LTk9XTiwgbnByb2Nlc3NlZCA9IDB9CiAgICAgICAgX19mdW5jX18gPSAiRmls bFBvcnRhbFN0b3JlIgojMTggMHgwMDAwMDAwMDAwODkyYjZkIGluIFBvcnRhbFJ1biAocG9y dGFsPXBvcnRhbEBlbnRyeT0weDFlMDQ2ODAsIGNvdW50PWNvdW50QGVudHJ5PTkyMjMzNzIw MzY4NTQ3NzU4MDcsIGlzVG9wTGV2ZWw9aXNUb3BMZXZlbEBlbnRyeT10cnVlLCBydW5fb25j ZT1ydW5fb25jZUBlbnRyeT10cnVlLCBkZXN0PWRlc3RAZW50cnk9MHgxZGJiNTE4LCBhbHRk ZXN0PWFsdGRlc3RAZW50cnk9MHgxZGJiNTE4LCBxYz0weDdmZmNiZTExMWY2MCkgYXQgcHF1 ZXJ5LmM6NzYzCiAgICAgICAgX3NhdmVfZXhjZXB0aW9uX3N0YWNrID0gMHg3ZmZjYmUxMTIy MzAKICAgICAgICBfc2F2ZV9jb250ZXh0X3N0YWNrID0gMHgwCiAgICAgICAgX2xvY2FsX3Np Z2ptcF9idWYgPSB7e19fam1wYnVmID0gezMxMTQ5MDcyLCAtMTA5OTM0MzQ4NDU2OTQ0MjYw LCAzMDk2OTY0MCwgMTQwNzIzNDk3Mjc5MzI4LCAzMTQ3NTMyOCwgMzExNzU5NjAsIDEwODEw NDkxODU1OTg5MDgxMiwgLTEwOTkzNTg2NTQ5MTA4ODAwNH0sIF9fbWFza193YXNfc2F2ZWQg PSAwLCBfX3NhdmVkX21hc2sgPSB7X192YWwgPSB7MzE0ODY4ODgsIDI4MTcxNDg1MjUsIDAs IDAsIDEwNTAxNjk3LCAwLCAzMTQ4MzUzNiwgMTI0MTQ3MDksIAogICAgICAgICAgICAgICAg MzE0NzUzMjgsIDEyNDE0NzA5LCAxLCAxNTMsIDMwOTY5NjE2LCAzMTE3Njk4NCwgMTAzODI2 MjMsIDMxNDc1MzI4fX19fQogICAgICAgIF9kb19yZXRocm93ID0gPG9wdGltaXplZCBvdXQ+ CiAgICAgICAgcmVzdWx0ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgbnByb2Nlc3NlZCA9 IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHNhdmVUb3BUcmFuc2FjdGlvblJlc291cmNlT3du ZXIgPSAweDFkYzQwMTgKICAgICAgICBzYXZlVG9wVHJhbnNhY3Rpb25Db250ZXh0ID0gMHgx ZGI0YzEwCiAgICAgICAgc2F2ZUFjdGl2ZVBvcnRhbCA9IDB4MAogICAgICAgIHNhdmVSZXNv dXJjZU93bmVyID0gMHgxZGM0MDE4CiAgICAgICAgc2F2ZVBvcnRhbENvbnRleHQgPSAweDAK ICAgICAgICBzYXZlTWVtb3J5Q29udGV4dCA9IDB4MWRiNGMxMAogICAgICAgIF9fZnVuY19f ID0gIlBvcnRhbFJ1biIKIzE5IDB4MDAwMDAwMDAwMDg4ZWM3ZiBpbiBleGVjX3NpbXBsZV9x dWVyeSAocXVlcnlfc3RyaW5nPTB4MWQ4N2Y2MCAiZXhwbGFpbiBhbmFseXplIHNlbGVjdCAq IGZyb20gdCB3aGVyZSBhID0gMjAwOyIpIGF0IHBvc3RncmVzLmM6MTI3NAogICAgICAgIGNt ZHRhZ2xlbiA9IDcKICAgICAgICBzbmFwc2hvdF9zZXQgPSA8b3B0aW1pemVkIG91dD4KICAg ICAgICBwZXJfcGFyc2V0cmVlX2NvbnRleHQgPSAweDAKICAgICAgICBwbGFudHJlZV9saXN0 ID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGFyc2V0cmVlID0gPG9wdGltaXplZCBvdXQ+ CiAgICAgICAgY29tbWFuZFRhZyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHFjID0ge2Nv bW1hbmRUYWcgPSBDTURUQUdfVU5LTk9XTiwgbnByb2Nlc3NlZCA9IDB9Ci0tVHlwZSA8UkVU PiBmb3IgbW9yZSwgcSB0byBxdWl0LCBjIHRvIGNvbnRpbnVlIHdpdGhvdXQgcGFnaW5nLS0K ICAgICAgICBxdWVyeXRyZWVfbGlzdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHBvcnRh bCA9IDB4MWUwNDY4MAogICAgICAgIHJlY2VpdmVyID0gMHgxZGJiNTE4CiAgICAgICAgZm9y bWF0ID0gMAogICAgICAgIGNtZHRhZ25hbWUgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBw YXJzZXRyZWVfaXRlbV9fc3RhdGUgPSB7bCA9IDB4MWQ4OGYxMCwgaSA9IDxvcHRpbWl6ZWQg b3V0Pn0KICAgICAgICBkZXN0ID0gRGVzdFJlbW90ZQogICAgICAgIG9sZGNvbnRleHQgPSAw eDFkYjRjMTAKICAgICAgICBwYXJzZXRyZWVfbGlzdCA9IDB4MWQ4OGYxMAogICAgICAgIHBh cnNldHJlZV9pdGVtID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgc2F2ZV9sb2dfc3RhdGVt ZW50X3N0YXRzID0gZmFsc2UKICAgICAgICB3YXNfbG9nZ2VkID0gZmFsc2UKICAgICAgICB1 c2VfaW1wbGljaXRfYmxvY2sgPSBmYWxzZQogICAgICAgIG1zZWNfc3RyID0gJ1wwMDAnIDxy ZXBlYXRzIDE2IHRpbWVzPiwgIlFcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwUVwwMDBc MDAwXDAwMFwwMDBcMDAwXDAwMCIKICAgICAgICBfX2Z1bmNfXyA9ICJleGVjX3NpbXBsZV9x dWVyeSIKIzIwIDB4MDAwMDAwMDAwMDg5MDUwZSBpbiBQb3N0Z3Jlc01haW4gKGRibmFtZT08 b3B0aW1pemVkIG91dD4sIHVzZXJuYW1lPTxvcHRpbWl6ZWQgb3V0PikgYXQgcG9zdGdyZXMu Yzo0NjgwCiAgICAgICAgcXVlcnlfc3RyaW5nID0gMHgxZDg3ZjYwICJleHBsYWluIGFuYWx5 emUgc2VsZWN0ICogZnJvbSB0IHdoZXJlIGEgPSAyMDA7IgogICAgICAgIGZpcnN0Y2hhciA9 IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIGlucHV0X21lc3NhZ2UgPSB7ZGF0YSA9IDB4MWQ4 N2Y2MCAiZXhwbGFpbiBhbmFseXplIHNlbGVjdCAqIGZyb20gdCB3aGVyZSBhID0gMjAwOyIs IGxlbiA9IDQ3LCBtYXhsZW4gPSAxMDI0LCBjdXJzb3IgPSA0N30KICAgICAgICBsb2NhbF9z aWdqbXBfYnVmID0ge3tfX2ptcGJ1ZiA9IHszMTIwNTA3MiwgLTEwOTkzNDM3OTMzNDM2MTcz MiwgNCwgMCwgMTcxMTY2MTYxMywgMzA5NzMxODQsIDEwODEwNDkxODUwMzI2NzcwOCwgLTEw OTkzNTg2MzYxNTA1NDQ2OH0sIF9fbWFza193YXNfc2F2ZWQgPSAxLCBfX3NhdmVkX21hc2sg PSB7X192YWwgPSB7NDE5NDMwNCwgOTc5LCAxODQ0Njc0NDA3MzcwOTU1MTU1MiwgMTU2MjQs IDMwOTczMTg0LCAxNDA3MjM0OTcyODAyMjQsIAogICAgICAgICAgICAgICAgMTM0MTM3MzQy MDU3ODQyLCAwLCA3OTQ0OTM3MjM3MDI5ODQxNjY0LCAxNDA3MjM0OTcyODAzMDQsIDE1NjE2 LCAzMDkzODk0NCwgMCwgMTU2ODAsIDEwMzQ0MDAyLCAzMDkzODk0NH19fX0KICAgICAgICBz ZW5kX3JlYWR5X2Zvcl9xdWVyeSA9IGZhbHNlCiAgICAgICAgaWRsZV9pbl90cmFuc2FjdGlv bl90aW1lb3V0X2VuYWJsZWQgPSBmYWxzZQogICAgICAgIGlkbGVfc2Vzc2lvbl90aW1lb3V0 X2VuYWJsZWQgPSBmYWxzZQogICAgICAgIF9fZnVuY19fID0gIlBvc3RncmVzTWFpbiIKIzIx IDB4MDAwMDAwMDAwMDg4YjY1ZCBpbiBCYWNrZW5kTWFpbiAoc3RhcnR1cF9kYXRhPTxvcHRp bWl6ZWQgb3V0Piwgc3RhcnR1cF9kYXRhX2xlbj08b3B0aW1pemVkIG91dD4pIGF0IGJhY2tl bmRfc3RhcnR1cC5jOjEwMQogICAgICAgIGJzZGF0YSA9IDxvcHRpbWl6ZWQgb3V0PgojMjIg MHgwMDAwMDAwMDAwN2Y1MmU1IGluIHBvc3RtYXN0ZXJfY2hpbGRfbGF1bmNoIChjaGlsZF90 eXBlPWNoaWxkX3R5cGVAZW50cnk9Ql9CQUNLRU5ELCBzdGFydHVwX2RhdGE9c3RhcnR1cF9k YXRhQGVudHJ5PTB4N2ZmY2JlMTEyM2FjICIiLCBzdGFydHVwX2RhdGFfbGVuPXN0YXJ0dXBf ZGF0YV9sZW5AZW50cnk9NCwgY2xpZW50X3NvY2s9Y2xpZW50X3NvY2tAZW50cnk9MHg3ZmZj YmUxMTIzYjApIGF0IGxhdW5jaF9iYWNrZW5kLmM6MjY1CiAgICAgICAgcGlkID0gPG9wdGlt aXplZCBvdXQ+CiMyMyAweDAwMDAwMDAwMDA3ZjhkYmUgaW4gQmFja2VuZFN0YXJ0dXAgKGNs aWVudF9zb2NrPTB4N2ZmY2JlMTEyM2IwKSBhdCBwb3N0bWFzdGVyLmM6MzU5MwogICAgICAg IGJuID0gMHgxZDg5ZDAwCiAgICAgICAgcGlkID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAg c3RhcnR1cF9kYXRhID0ge2NhbkFjY2VwdENvbm5lY3Rpb25zID0gQ0FDX09LfQogICAgICAg IGJuID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgcGlkID0gPG9wdGltaXplZCBvdXQ+CiAg ICAgICAgc3RhcnR1cF9kYXRhID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgX19mdW5jX18g PSAiQmFja2VuZFN0YXJ0dXAiCiAgICAgICAgX19lcnJub19sb2NhdGlvbiA9IDxvcHRpbWl6 ZWQgb3V0PgogICAgICAgIF9fZXJybm9fbG9jYXRpb24gPSA8b3B0aW1pemVkIG91dD4KICAg ICAgICBzYXZlX2Vycm5vID0gPG9wdGltaXplZCBvdXQ+CiAgICAgICAgX19lcnJub19sb2Nh dGlvbiA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZXJybm9fbG9jYXRpb24gPSA8b3B0 aW1pemVkIG91dD4KIzI0IFNlcnZlckxvb3AgKCkgYXQgcG9zdG1hc3Rlci5jOjE2NzQKICAg ICAgICBzID0ge3NvY2sgPSAxMCwgcmFkZHIgPSB7YWRkciA9IHtzc19mYW1pbHkgPSAxLCAK ICAgICAgICAgICAgICBfX3NzX3BhZGRpbmcgPSAiXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAw XDM2MFwyMDdcMzMwXDAwMVwwMDBcMDAwXDAwMFwwMDBcYlwzNDRcMjI1SFwzNzd5XDAwMFww MDBcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDAwMEhcMzc0XDIyNUhcMzc3eVwwMDBc MDAwXDM1MCRcMDIxXDI3NlwzNzRcMTc3XDAwMFwwMDBcMDAwXDAwMFwwMDBcMDAwXDM3NFwx NzdcMDAwXDAwMFwwMjQkXDAyMVwyNzZcMzc0XDE3N1wwMDBcMDAwXDI1MFwzMzNcMzcxXDAw M1wwMDBcMDAwXDAwMFwwMDBcMzIwY0FcMDAwXDAwMFwwMDBcMDAwXDAwMFwwMzJcXEVcMDAw XDAwMFwwMDBcMDAwXDAwMGBkXDMyNyIsICdcMDAwJyA8cmVwZWF0cyAxMyB0aW1lcz4sICJc YlwzNDRcMjI1SFwzNzd5XDAwMFwwMDBcMzIwXDM3NFwyMjVIXDM3N3lcMDAwIiwgX19zc19h bGlnbiA9IDEzNDEzNzM0NDY4MTU0NH0sIHNhbGVuID0gMn19CiAgICAgICAgaSA9IDAKICAg ICAgICBub3cgPSA8b3B0aW1pemVkIG91dD4KICAgICAgICBsYXN0X2xvY2tmaWxlX3JlY2hl Y2tfdGltZSA9IDE3MTE2NjE3MzgKICAgICAgICBsYXN0X3RvdWNoX3RpbWUgPSAxNzExNjYx NjEzCiAgICAgICAgZXZlbnRzID0ge3twb3MgPSAzLCBldmVudHMgPSAyLCBmZCA9IDgsIHVz ZXJfZGF0YSA9IDB4MH0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IC0xMTA2MTcxNTY4 LCB1c2VyX2RhdGEgPSAweDc5ZmY0ODk1ZmNkMH0sIHtwb3MgPSAxMjIxMDYwMTY4LCBldmVu dHMgPSAzMTIzMSwgZmQgPSA0NTQ0NjM5LCB1c2VyX2RhdGEgPSAweDdjOTZlNTc3fSwge3Bv cyA9IC0xMTA2MTcxNDcyLCBldmVudHMgPSAzMjc2NCwgZmQgPSAtMTEwNjE3MTUwNCwgCiAg ICAgICAgICAgIHVzZXJfZGF0YSA9IDB4NzlmZjQ4YzUzNWRjIDxfZGxfbG9va3VwX3N5bWJv bF94KzMwMD59LCB7cG9zID0gNSwgZXZlbnRzID0gMCwgZmQgPSAxMjE3Nzg5MTM2LCB1c2Vy X2RhdGEgPSAweDF9LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAxLCB1c2VyX2RhdGEg PSAweDc5ZmY0OGM3ZTJjMH0sIHtwb3MgPSAtMTEwNjE3MTYzMiwgZXZlbnRzID0gMzI3NjQs IGZkID0gMTIxODQzNjQ2NiwgdXNlcl9kYXRhID0gMHgxZDg1N2IwfSwgewogICAgICAgICAg ICBwb3MgPSAzMDk2NTczNiwgZXZlbnRzID0gMCwgZmQgPSAwLCB1c2VyX2RhdGEgPSAweDc5 ZmY0OGM3ZTY0OH0sIHtwb3MgPSAtMTEwNjE3MTYwMCwgZXZlbnRzID0gMzI3NjQsIGZkID0g MSwgdXNlcl9kYXRhID0gMHg3OWZmNDhjN2UyYzB9LCB7cG9zID0gLTExMDYxNzE2MDgsIGV2 ZW50cyA9IDMyNzY0LCBmZCA9IDksIHVzZXJfZGF0YSA9IDB4ZmZmZmZmZmZ9LCB7cG9zID0g MTIxNzg1NTQ2NCwgZXZlbnRzID0gMzEyMzEsIGZkID0gMTIyMDgzODY0MCwgCiAgICAgICAg ICAgIHVzZXJfZGF0YSA9IDB4Y2ExMH0sIHtwb3MgPSAyMTAwMzkyLCBldmVudHMgPSAwLCBm ZCA9IDIsIHVzZXJfZGF0YSA9IDB4MTAwMDA0MWMwfSwge3BvcyA9IDEwMDAsIGV2ZW50cyA9 IDAsIGZkID0gMTIyMTA1OTI2NCwgdXNlcl9kYXRhID0gMHhmMn0sIHtwb3MgPSA0Nzc2NTky LCBldmVudHMgPSAwLCBmZCA9IDEzOTQ4ODE2LCB1c2VyX2RhdGEgPSAweDF9LCB7cG9zID0g LTExMDYxNzE0MDgsIGV2ZW50cyA9IDMyNzY0LCBmZCA9IDEyMjA5MTA2NTMsIAogICAgICAg ICAgICB1c2VyX2RhdGEgPSAweDF9LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAxMjE3 ODU1NDY0LCB1c2VyX2RhdGEgPSAweDc5ZmY0OGEzYmVlMCA8Zm9yaz59LCB7cG9zID0gMCwg ZXZlbnRzID0gMCwgZmQgPSAtMTEwNjE3MDQ5NiwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9 IDAsIGV2ZW50cyA9IDAsIGZkID0gMzA5NjU3MzYsIHVzZXJfZGF0YSA9IDB4MX0sIHtwb3Mg PSAwLCBldmVudHMgPSAwLCBmZCA9IDEyMjA5MjAwMTQsIAogICAgICAgICAgICB1c2VyX2Rh dGEgPSAweDB9LCB7cG9zID0gMTIxODM5ODY0OCwgZXZlbnRzID0gMzEyMzEsIGZkID0gMCwg dXNlcl9kYXRhID0gMHhkNmExMjAgPEJsb2NrU2lnPn0sIHtwb3MgPSAyLCBldmVudHMgPSAw LCBmZCA9IDMwOTU1NDQwLCB1c2VyX2RhdGEgPSAweDEwfSwge3BvcyA9IDEyMTk3MTQxNzYs IGV2ZW50cyA9IDMxMjMxLCBmZCA9IDI1NSwgdXNlcl9kYXRhID0gMHhmZmZmZmZmZmZmZmZm ZmMwfSwge3BvcyA9IDAsIGV2ZW50cyA9IDAsIAogICAgICAgICAgICBmZCA9IDgwOTYsIHVz ZXJfZGF0YSA9IDB4N2ZmY2JlMTEyYWEwfSwge3BvcyA9IDEyMTg0MzY0NjYsIGV2ZW50cyA9 IDMxMjMxLCBmZCA9IDEyMTc4ODkzMjgsIHVzZXJfZGF0YSA9IDB4NzlmZjQ4OWUwYjUwIDxm cHV0Yz59LCB7cG9zID0gMzA5NTU0NDAsIGV2ZW50cyA9IDAsIGZkID0gNDA5NiwgdXNlcl9k YXRhID0gMHgzZmZ9LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAtMTEwNjE3MTAyNCwg CiAgICAgICAgICAgIHVzZXJfZGF0YSA9IDB4NzlmZjQ4OWQ3ODY5IDxfSU9fZmlsZV9kb2Fs bG9jYXRlKzE4NT59LCB7cG9zID0gNTE3MjgsIGV2ZW50cyA9IDAsIGZkID0gMjEwMDQwMywg dXNlcl9kYXRhID0gMHgxfSwge3BvcyA9IDMzMTUyLCBldmVudHMgPSAxMDAwLCBmZCA9IDEw MDAsIHVzZXJfZGF0YSA9IDB4MH0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IDAsIHVz ZXJfZGF0YSA9IDB4MH0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IDY1NTM1LCAKICAg ICAgICAgICAgdXNlcl9kYXRhID0gMHhmZjAwMDAwMDAwMDBmZmZmfSwge3BvcyA9IDY1NTM1 LCBldmVudHMgPSA0Mjc4MTkwMDgwLCBmZCA9IDY1NTM1LCB1c2VyX2RhdGEgPSAweDc5ZmY0 OGIzNWNlMCA8bWFpbl9hcmVuYSs5Nj59LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAw LCB1c2VyX2RhdGEgPSAweDEwMDAwMDAwMDAwMDAwMH0sIHtwb3MgPSAwLCBldmVudHMgPSAw LCBmZCA9IDI1NSwgdXNlcl9kYXRhID0gMHg1YzVjNWM1YzVjNWM1YzVjfSwgewogICAgICAg ICAgICBwb3MgPSAxNTQ5NTU2ODI4LCBldmVudHMgPSAxNTQ5NTU2ODI4LCBmZCA9IDAsIHVz ZXJfZGF0YSA9IDB4MH0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IDAsIHVzZXJfZGF0 YSA9IDB4M2YzZjNmM2YzZjNmM2YzZn0sIHtwb3MgPSAxMDYxMTA5NTY3LCBldmVudHMgPSAx MDYxMTA5NTY3LCBmZCA9IC0xNzE3OTg2OTE5LCB1c2VyX2RhdGEgPSAweDk5OTk5OTk5OTk5 OTk5OTl9LCB7cG9zID0gNTM4OTc2Mjg4LCBldmVudHMgPSA1Mzg5NzYyODgsIAogICAgICAg ICAgICBmZCA9IDUzODk3NjI4OCwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDAsIGV2ZW50 cyA9IDAsIGZkID0gMCwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDAsIGV2ZW50cyA9IDAs IGZkID0gMCwgdXNlcl9kYXRhID0gMHgxZGI1ZTcwfSwge3BvcyA9IC0xMjAsIGV2ZW50cyA9 IDQyOTQ5NjcyOTUsIGZkID0gMCwgdXNlcl9kYXRhID0gMHgxZGIzYmYwfSwge3BvcyA9IDMx MTM0MzUyLCBldmVudHMgPSAwLCBmZCA9IDMwOTY1MzQ0LCAKICAgICAgICAgICAgdXNlcl9k YXRhID0gMHg3ZmZjYmUxMTJjNTB9LCB7cG9zID0gMTIxODQzNzY0NiwgZXZlbnRzID0gMzEy MzEsIGZkID0gMCwgdXNlcl9kYXRhID0gMHgxZGIxMWEwfSwge3BvcyA9IDMxMTM0MTEyLCBl dmVudHMgPSAwLCBmZCA9IDMxMTM0MzEyLCB1c2VyX2RhdGEgPSAweDJ9LCB7cG9zID0gMCwg ZXZlbnRzID0gMCwgZmQgPSAwLCB1c2VyX2RhdGEgPSAweDB9LCB7cG9zID0gMCwgZXZlbnRz ID0gMCwgZmQgPSAyMDAyNDMsIAogICAgICAgICAgICB1c2VyX2RhdGEgPSAweGZmZmZmZmZm ZmZmZmZmODh9LCB7cG9zID0gMCwgZXZlbnRzID0gMCwgZmQgPSAtMTEwNjE3MDQ4MCwgdXNl cl9kYXRhID0gMHg3OWZmNDhhM2MwZWIgPGZvcmsrNTIzPn0sIHtwb3MgPSAzMTE1NTI0OCwg ZXZlbnRzID0gMCwgZmQgPSAxMDM1MDU4NCwgdXNlcl9kYXRhID0gMHgxZDg3ZTYwfSwge3Bv cyA9IDMxMTM0MTEyLCBldmVudHMgPSAwLCBmZCA9IDMxMTM0MTEyLCB1c2VyX2RhdGEgPSAw eDB9LCB7CiAgICAgICAgICAgIHBvcyA9IC0xMTA2MTcwNTc2LCBldmVudHMgPSAzMjc2NCwg ZmQgPSAxMjE4NDI2OTM5LCB1c2VyX2RhdGEgPSAweDFkODU3YjB9LCB7cG9zID0gMzA5NjUz NDQsIGV2ZW50cyA9IDEsIGZkID0gMzExMzQxMTIsIHVzZXJfZGF0YSA9IDB4NzI3YTlhIDx0 b2tlbml6ZV9hdXRoX2ZpbGUrMjE3MD59LCB7cG9zID0gLTExMDYxNzA1MTIsIGV2ZW50cyA9 IDMyNzY0LCBmZCA9IC0xMzQzMjMxMjMyLCB1c2VyX2RhdGEgPSAweDdmZmNiZTExMmRjMH0s IHsKICAgICAgICAgICAgcG9zID0gLTEyMCwgZXZlbnRzID0gNDI5NDk2NzI5NSwgZmQgPSAw LCB1c2VyX2RhdGEgPSAweDc5ZmY0ODllNzllOCA8X0lPX2ZsdXNoX2FsbF9sb2NrcCs2MzI+ fSwge3BvcyA9IDAsIGV2ZW50cyA9IDAsIGZkID0gMCwgdXNlcl9kYXRhID0gMHg3OWZmNDg5 ZTVmZDAgPGZsdXNoX2NsZWFudXA+fSwge3BvcyA9IDAsIGV2ZW50cyA9IDAsIGZkID0gMCwg dXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDMwOTU1NDQwLCBldmVudHMgPSAwLCAKICAgICAg ICAgICAgZmQgPSAtMTM0MzIzMTIzMiwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDExLCBl dmVudHMgPSAwLCBmZCA9IDAsIHVzZXJfZGF0YSA9IDB4NmU0MjE2NTJhZmVmZWIwMH0sIHtw b3MgPSAtMTEwNjE3MDQ4MCwgZXZlbnRzID0gMzI3NjQsIGZkID0gMTIxODA0NzM3MywgdXNl cl9kYXRhID0gMHgwfSwge3BvcyA9IDgzNDM4MzEsIGV2ZW50cyA9IDAsIGZkID0gNDE5NDMw NCwgdXNlcl9kYXRhID0gMHgxZGFkNzQwfSwge3BvcyA9IDMxMTM0MTEyLCAKICAgICAgICAg ICAgZXZlbnRzID0gMCwgZmQgPSAzMDk2NTczNiwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9 IDEwMzUwMjg4LCBldmVudHMgPSAwLCBmZCA9IDMwOTY1MzQ0LCB1c2VyX2RhdGEgPSAweDFk YWQ3NDB9LCB7cG9zID0gMzExMTkxNjgsIGV2ZW50cyA9IDAsIGZkID0gMzExMzQxMTIsIHVz ZXJfZGF0YSA9IDB4MWQ4N2ZlOH0sIHtwb3MgPSAxMDM3NjczOSwgZXZlbnRzID0gMCwgZmQg PSAzMDkzODc4NCwgdXNlcl9kYXRhID0gMHgwfSwge3BvcyA9IDMwOTU1NDQwLCAKLS1UeXBl IDxSRVQ+IGZvciBtb3JlLCBxIHRvIHF1aXQsIGMgdG8gY29udGludWUgd2l0aG91dCBwYWdp bmctLQogICAgICAgICAgICBldmVudHMgPSAwLCBmZCA9IDc1MjAxNTAsIHVzZXJfZGF0YSA9 IDB4Yn0sIHtwb3MgPSAwLCBldmVudHMgPSAwLCBmZCA9IDAsIHVzZXJfZGF0YSA9IDB4MH19 CiAgICAgICAgbmV2ZW50cyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZnVuY19fID0g IlNlcnZlckxvb3AiCiMyNSAweDAwMDAwMDAwMDA3ZmE4ZjggaW4gUG9zdG1hc3Rlck1haW4g KGFyZ2M9YXJnY0BlbnRyeT0zLCBhcmd2PWFyZ3ZAZW50cnk9MHgxZDgxNmEwKSBhdCBwb3N0 bWFzdGVyLmM6MTM3MgogICAgICAgIG9wdCA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHN0 YXR1cyA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIHVzZXJEb3B0aW9uID0gPG9wdGltaXpl ZCBvdXQ+CiAgICAgICAgbGlzdGVuX2FkZHJfc2F2ZWQgPSB0cnVlCiAgICAgICAgb3V0cHV0 X2NvbmZpZ192YXJpYWJsZSA9IDxvcHRpbWl6ZWQgb3V0PgogICAgICAgIF9fZnVuY19fID0g IlBvc3RtYXN0ZXJNYWluIgojMjYgMHgwMDAwMDAwMDAwNTFiNDk5IGluIG1haW4gKGFyZ2M9 MywgYXJndj0weDFkODE2YTApIGF0IG1haW4uYzoxOTcKICAgICAgICBkb19jaGVja19yb290 ID0gPG9wdGltaXplZCBvdXQ+CihnZGIpIAooZ2RiKSBxCkEgZGVidWdnaW5nIHNlc3Npb24g aXMgYWN0aXZlLgoKCUluZmVyaW9yIDEgW3Byb2Nlc3MgMjAwNDM2XSB3aWxsIGJlIGRldGFj aGVkLgoK --------------jVFNuFEWGrtJeRiHgB08N9cJ--