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 1sv5qu-00CPoR-Sr for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Sep 2024 02:09:34 +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 1sv5qu-00AvfW-7n for pgsql-hackers@arkaria.postgresql.org; Mon, 30 Sep 2024 02:09:32 +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 1sv5qt-00AvfO-2W for pgsql-hackers@lists.postgresql.org; Mon, 30 Sep 2024 02:09:31 +0000 Received: from fhigh-a4-smtp.messagingengine.com ([103.168.172.155]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sv5qm-001lXK-Kp for pgsql-hackers@postgresql.org; Mon, 30 Sep 2024 02:09:30 +0000 Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfhigh.phl.internal (Postfix) with ESMTP id 6F4841140163; Sun, 29 Sep 2024 22:09:24 -0400 (EDT) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Sun, 29 Sep 2024 22:09:24 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:cc:content-type:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=fm1; t=1727662164; x= 1727748564; bh=+NvGBgj5bgXE8rMm+6IrK6NRdmqJ048tS+gjzSM0XDM=; b=j B9oEatiQddYs7x5LKX/gZpfCPP1ujmG0MG9YwQVW9Bsbycjl/HFv7PL8bf4wY0y3 XZG9pRW7Lr+0NB+bGW1nr/D2jqqq3NI0yRHicD/rOb1sUNMMM458Z06INeQ2RMrk syUHY87M0+IoJDAYFpatxa0bIcpRBSf/ZD7ymBCVPGEMRm4Ys55/msmZMvu8MSFU nBlpEcf6iUHimk+E6i4lQiXt1y8cKmFzny2+OvU8IiMpXK2UGK97RwxtjbuI0MBa VCFyvZZJP9JTIvvmUnw7msZW37C5Pg6q43Yf6mSq75jZffOO+5lOsAvye/Vg/RdD 9lE0+OrVYfQ7dAT0j9oIA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1727662164; x=1727748564; bh=+NvGBgj5bgXE8rMm+6IrK6NRdmqJ 048tS+gjzSM0XDM=; b=UXHhixUcMuD10uNY6xeowNKr0lnl4aBaUuZPGpJG7jNn Z/60vL75qRXaxfVvlFO3UFTwmDVZPCCDPfOBEZwMqrwtdhAShq0LbDuGXZtZWiRd 7mOT+Z7sD4xqNgqDOQzwl3Kzql4adnhsmDioo6V1zJUUa8cGc5L9Glqh6pHtEbEk r7K88NbMEyb0j9ul2EFHx7Z5XWqSosCbivw75awHkvMKV4Zo1BDLYZrjuKSn0Ppr 5Ilofb1jUgfIvQL9oKN66aZ78D14u7Np6YOUP5gCGRlbZYhzmRPXqDAHzhkb8Eve 1nCX5YAWcVKbykJf9db1/w7RlV3Pc0Ohp62jyP0H+w== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvddugedgheehucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptgfkffggfgfuhffvvehfjgesmhdtreertddvjeen ucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhesvghishgvnh htrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeeltdehkeelffeiveeftdekleev veefkeekveehhedvjeefgfevtefhteeitdeuvdenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrsegvihhsvghnthhrrghuthdrohhr ghdpnhgspghrtghpthhtohepfedpmhhouggvpehsmhhtphhouhhtpdhrtghpthhtohepug gvrghnrdgrrdhrrghshhgvvggusehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhhirghn rdhunhhivhgvrhhsrghlihhthiesghhmrghilhdrtghomhdprhgtphhtthhopehpghhsqh hlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Sun, 29 Sep 2024 22:09:23 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------M98as6YlktVBL0hMPU9QNvTp" Message-ID: <09800cb1-43aa-4239-8918-46b71ede4900@eisentraut.org> Date: Sun, 29 Sep 2024 22:09:22 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Virtual generated columns From: Peter Eisentraut To: Dean Rasheed Cc: jian he , pgsql-hackers References: <732a9543-0312-4f0c-a471-857b507a3546@eisentraut.org> <0f811f71-8c86-4e1b-b3bb-6a535674a440@eisentraut.org> Content-Language: en-US In-Reply-To: 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. --------------M98as6YlktVBL0hMPU9QNvTp Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 09.09.24 08:02, Peter Eisentraut wrote: > On 04.09.24 12:33, Dean Rasheed wrote: >>> I left the 0001 patch alone for now and put the new rewriting >>> implementation into 0002.  (Unfortunately, the diff is kind of useless >>> for visual inspection.)  Let me know if this matches what you had in >>> mind, please.  Also, is this the right place in fireRIRrules()? >> Yes, that's what I had in mind except that it has to be called from >> the second loop in fireRIRrules(), after any RLS policies have been >> added, because it's possible for a RLS policy expression to refer to >> virtual generated columns. It's OK to do it in the same loop that >> expands RLS policies, because such policies can only refer to columns >> of the same relation, so once the RLS policies have been expanded for >> a given relation, nothing else should get added to the query that can >> refer to columns of that relation, at that query level, so at that >> point it should be safe to expand virtual generated columns. > > If I move the code like that, then the postgres_fdw test fails.  So > there is some additional interaction there that I need to study. This was actually a trivial issue. The RLS loop skips relation kinds that can't have RLS policies, which includes foreign tables. So I did this slightly differently and added another loop below the RLS loop for the virtual columns. Now this all works. I'm attaching a consolidated patch here, so we have something up to date on the record. I haven't worked through all the other recent feedback from Jian He yet; I'll do that next. --------------M98as6YlktVBL0hMPU9QNvTp Content-Type: text/plain; charset=UTF-8; name="v7-0001-Virtual-generated-columns.patch" Content-Disposition: attachment; filename="v7-0001-Virtual-generated-columns.patch" Content-Transfer-Encoding: base64 RnJvbSA1MzQ5OTU2MTk3OWNkN2FmNzE2MzUxOTRlYjg2ZTY4NjY0M2M5ZjlhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogU3VuLCAyOSBTZXAgMjAyNCAyMTo1NTowNSAtMDQwMApTdWJqZWN0 OiBbUEFUQ0ggdjddIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKClRoaXMgYWRkcyBhIG5l dyB2YXJpYW50IG9mIGdlbmVyYXRlZCBjb2x1bW5zIHRoYXQgYXJlIGNvbXB1dGVkIG9uIHJl YWQKKGxpa2UgYSB2aWV3LCB1bmxpa2UgdGhlIGV4aXN0aW5nIHN0b3JlZCBnZW5lcmF0ZWQg Y29sdW1ucywgd2hpY2ggYXJlCmNvbXB1dGVkIG9uIHdyaXRlLCBsaWtlIGEgbWF0ZXJpYWxp emVkIHZpZXcpLgoKU29tZSBmdW5jdGlvbmFsaXR5IGlzIGN1cnJlbnRseSBub3Qgc3VwcG9y dGVkIChidXQgY291bGQgcG9zc2libHkgYmUKYWRkZWQgYXMgaW5jcmVtZW50YWwgZmVhdHVy ZXMsIHNvbWUgZWFzaWVyIHRoYW4gb3RoZXJzKToKCi0gaW5kZXggb24gdmlydHVhbCBjb2x1 bW4KLSBleHByZXNzaW9uIGluZGV4IHVzaW5nIGEgdmlydHVhbCBjb2x1bW4KLSBoZW5jZSBh bHNvIG5vIHVuaXF1ZSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSBub3QtbnVs bCBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGNvbHVtbnMKLSAoY2hlY2sgY29uc3RyYWludHMg YXJlIHN1cHBvcnRlZCkKLSBmb3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGNv bHVtbnMKLSBleHRlbmRlZCBzdGF0aXN0aWNzIG9uIHZpcnR1YWwgY29sdW1ucwotIEFMVEVS IFRBQkxFIC8gU0VUIEVYUFJFU1NJT04KLSBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lP TgotIHZpcnR1YWwgY29sdW1ucyBhcyB0cmlnZ2VyIGNvbHVtbnMKLSB2aXJ0dWFsIGNvbHVt biBjYW5ub3QgaGF2ZSBkb21haW4gdHlwZQoKVE9ETzoKLSBhbmFseXNpcyBvZiBhY2Nlc3Mg Y29udHJvbAotIGNoZWNrIEZEVy9mb3JlaWduIHRhYmxlIGJlaGF2aW9yCgpEaXNjdXNzaW9u OiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYTM2ODI0OGUt NjllNC00MGJlLTljMDctNmMzYjU4ODBiMGE2QGVpc2VudHJhdXQub3JnCi0tLQogY29udHJp Yi9wYWdlaW5zcGVjdC9leHBlY3RlZC9wYWdlLm91dCAgICAgICAgIHwgIDM1ICsKIGNvbnRy aWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsICAgICAgICAgICAgICB8ICAxNyArCiAuLi4v cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQgICAgfCAgODEgKy0KIGNv bnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsICAgICB8ICAgOSArLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA0ICst CiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMjUg Ky0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbCAgICAgICAgICAgICB8ICAx NCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sICAgIHwg IDExICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAgICAg fCAgMjIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RyaWdnZXIuc2dtbCAgICAgICAg ICB8ICAgMiArLQogZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbCAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jICAgICAg ICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5j ICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgICAgICAgICAgICAg ICAgICAgIHwgIDEzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMgICAgICAg ICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAg ICAgICAgICAgIHwgIDI5ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyAg ICAgICAgICAgICAgfCAgMjAgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j ICAgICAgICAgICAgICB8IDEyMiArKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIu YyAgICAgICAgICAgICAgICB8ICA0OSArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYyAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxNCArLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwgICAzICstCiBzcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVIYW5kbGVyLmMgICAgICAgICAgfCAxMTEgKystCiBzcmMvYmFja2VuZC91 dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYyAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcmVsY2FjaGUuYyAgICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3Bn X2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iaW4v cHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5j bHVkZS9hY2Nlc3MvdHVwZGVzYy5oICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9oZWFwLmggICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmggICAgICAgICAgICB8ICAgMSArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy9pbmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCAgICAgICAgICB8ICAgMiArCiBz cmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dCAgICAgfCAgIDcgKy0K IHNyYy9wbC9wbHBlcmwvcGxwZXJsLmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvcGwvcGxwZXJsL3NxbC9wbHBlcmxfdHJpZ2dlci5zcWwgICAgICAgICAgfCAgIDMg Ky0KIHNyYy9wbC9wbHB5dGhvbi9leHBlY3RlZC9wbHB5dGhvbl90cmlnZ2VyLm91dCB8ICAg NyArLQogc3JjL3BsL3BscHl0aG9uL3BscHlfdHlwZWlvLmMgICAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRob25fdHJpZ2dlci5zcWwgICAgICB8 ICAgMyArLQogc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dCAgICAgICAg IHwgIDE5ICstCiBzcmMvcGwvdGNsL3BsdGNsLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL3BsL3RjbC9zcWwvcGx0Y2xfdHJpZ2dlci5zcWwgICAgICAgICAg ICAgIHwgICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5v dXQgICAgfCAgMjMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQu b3V0ICAgICB8ICAzMiArLQogLi4ucmF0ZWRfc3RvcmVkLm91dCA9PiBnZW5lcmF0ZWRfdmly dHVhbC5vdXR9IHwgODcxICsrKysrKysrKy0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAzICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbCAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVz cy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwgICAgIHwgIDE0ICstCiAuLi5yYXRlZF9zdG9y ZWQuc3FsID0+IGdlbmVyYXRlZF92aXJ0dWFsLnNxbH0gfCAzMzYgKysrKy0tLQogc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5wbCAgICAgIHwgIDM4ICstCiA1NCBm aWxlcyBjaGFuZ2VkLCAxMzExIGluc2VydGlvbnMoKyksIDcwOSBkZWxldGlvbnMoLSkKIGNv cHkgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC97Z2VuZXJhdGVkX3N0b3JlZC5vdXQgPT4g Z2VuZXJhdGVkX3ZpcnR1YWwub3V0fSAoNjclKQogY29weSBzcmMvdGVzdC9yZWdyZXNzL3Nx bC97Z2VuZXJhdGVkX3N0b3JlZC5zcWwgPT4gZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsfSAoNjkl KQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvcGFnZS5vdXQg Yi9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uub3V0CmluZGV4IDNmZDM4Njlj ODJhLi5iYWNkMzcxYTlkNSAxMDA2NDQKLS0tIGEvY29udHJpYi9wYWdlaW5zcGVjdC9leHBl Y3RlZC9wYWdlLm91dAorKysgYi9jb250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL3BhZ2Uu b3V0CkBAIC0yMDgsNiArMjA4LDQxIEBAIHNlbGVjdCB0dXBsZV9kYXRhX3NwbGl0KCd0ZXN0 OCc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5mb21hc2syLCB0X2JpCiAo MSByb3cpCiAKIGRyb3AgdGFibGUgdGVzdDg7CistLSBjaGVjayBzdG9yYWdlIG9mIGdlbmVy YXRlZCBjb2x1bW5zCistLSBzdG9yZWQKK2NyZWF0ZSB0YWJsZSB0ZXN0OXMgKGEgaW50IG5v dCBudWxsLCBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkKTsKK2lu c2VydCBpbnRvIHRlc3Q5cyB2YWx1ZXMgKDEzMTU4NCk7CitzZWxlY3QgdF9pbmZvbWFzaywg dF9iaXRzLCB0X2RhdGEgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0 OXMnLCAwKSk7CisgdF9pbmZvbWFzayB8IHRfYml0cyB8ICAgICAgIHRfZGF0YSAgICAgICAK Ky0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIDIw NDggfCAgICAgICAgfCBceDAwMDIwMjAwMDAwNDA0MDAKKygxIHJvdykKKworc2VsZWN0IHR1 cGxlX2RhdGFfc3BsaXQoJ3Rlc3Q5cyc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ss IHRfaW5mb21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jh d19wYWdlKCd0ZXN0OXMnLCAwKSk7CisgICAgICAgdHVwbGVfZGF0YV9zcGxpdCAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJcXHgwMDAyMDIwMCIsIlxc eDAwMDQwNDAwIn0KKygxIHJvdykKKworZHJvcCB0YWJsZSB0ZXN0OXM7CistLSB2aXJ0dWFs CitjcmVhdGUgdGFibGUgdGVzdDl2IChhIGludCBub3QgbnVsbCwgYiBpbnQgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoYSAqIDIpIHZpcnR1YWwpOworaW5zZXJ0IGludG8gdGVzdDl2IHZhbHVl cyAoMTMxNTg0KTsKK3NlbGVjdCB0X2luZm9tYXNrLCB0X2JpdHMsIHRfZGF0YSBmcm9tIGhl YXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKKyB0X2luZm9tYXNr IHwgIHRfYml0cyAgfCAgIHRfZGF0YSAgIAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgICAgICAgMjA0OSB8IDEwMDAwMDAwIHwgXHgwMDAyMDIwMAorKDEgcm93 KQorCitzZWxlY3QgdHVwbGVfZGF0YV9zcGxpdCgndGVzdDl2Jzo6cmVnY2xhc3MsIHRfZGF0 YSwgdF9pbmZvbWFzaywgdF9pbmZvbWFzazIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFn ZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q5dicsIDApKTsKKyAgIHR1cGxlX2RhdGFfc3Bs aXQgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7IlxceDAwMDIwMjAwIixOVUxMfQor KDEgcm93KQorCitkcm9wIHRhYmxlIHRlc3Q5djsKIC0tIEZhaWx1cmUgd2l0aCBpbmNvcnJl Y3QgcGFnZSBzaXplCiAtLSBTdXBwcmVzcyB0aGUgREVUQUlMIG1lc3NhZ2UsIHRvIGFsbG93 IHRoZSB0ZXN0cyB0byB3b3JrIGFjcm9zcyB2YXJpb3VzCiAtLSBwYWdlIHNpemVzLgpkaWZm IC0tZ2l0IGEvY29udHJpYi9wYWdlaW5zcGVjdC9zcWwvcGFnZS5zcWwgYi9jb250cmliL3Bh Z2VpbnNwZWN0L3NxbC9wYWdlLnNxbAppbmRleCAzNDZlNGVlMTQyYy4uOTIzNjg3ZDA2MzAg MTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsCisrKyBiL2Nv bnRyaWIvcGFnZWluc3BlY3Qvc3FsL3BhZ2Uuc3FsCkBAIC04NCw2ICs4NCwyMyBAQCBDUkVB VEUgVEVNUCBUQUJMRSB0ZXN0MSAoYSBpbnQsIGIgaW50KTsKICAgICBmcm9tIGhlYXBfcGFn ZV9pdGVtcyhnZXRfcmF3X3BhZ2UoJ3Rlc3Q4JywgMCkpOwogZHJvcCB0YWJsZSB0ZXN0ODsK IAorLS0gY2hlY2sgc3RvcmFnZSBvZiBnZW5lcmF0ZWQgY29sdW1ucworLS0gc3RvcmVkCitj cmVhdGUgdGFibGUgdGVzdDlzIChhIGludCBub3QgbnVsbCwgYiBpbnQgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpIHN0b3JlZCk7CitpbnNlcnQgaW50byB0ZXN0OXMgdmFsdWVzICgx MzE1ODQpOworc2VsZWN0IHRfaW5mb21hc2ssIHRfYml0cywgdF9kYXRhIGZyb20gaGVhcF9w YWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdDlzJywgMCkpOworc2VsZWN0IHR1cGxlX2Rh dGFfc3BsaXQoJ3Rlc3Q5cyc6OnJlZ2NsYXNzLCB0X2RhdGEsIHRfaW5mb21hc2ssIHRfaW5m b21hc2syLCB0X2JpdHMpCisgICAgZnJvbSBoZWFwX3BhZ2VfaXRlbXMoZ2V0X3Jhd19wYWdl KCd0ZXN0OXMnLCAwKSk7Citkcm9wIHRhYmxlIHRlc3Q5czsKKworLS0gdmlydHVhbAorY3Jl YXRlIHRhYmxlIHRlc3Q5diAoYSBpbnQgbm90IG51bGwsIGIgaW50IGdlbmVyYXRlZCBhbHdh eXMgYXMgKGEgKiAyKSB2aXJ0dWFsKTsKK2luc2VydCBpbnRvIHRlc3Q5diB2YWx1ZXMgKDEz MTU4NCk7CitzZWxlY3QgdF9pbmZvbWFzaywgdF9iaXRzLCB0X2RhdGEgZnJvbSBoZWFwX3Bh Z2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0OXYnLCAwKSk7CitzZWxlY3QgdHVwbGVfZGF0 YV9zcGxpdCgndGVzdDl2Jzo6cmVnY2xhc3MsIHRfZGF0YSwgdF9pbmZvbWFzaywgdF9pbmZv bWFzazIsIHRfYml0cykKKyAgICBmcm9tIGhlYXBfcGFnZV9pdGVtcyhnZXRfcmF3X3BhZ2Uo J3Rlc3Q5dicsIDApKTsKK2Ryb3AgdGFibGUgdGVzdDl2OworCiAtLSBGYWlsdXJlIHdpdGgg aW5jb3JyZWN0IHBhZ2Ugc2l6ZQogLS0gU3VwcHJlc3MgdGhlIERFVEFJTCBtZXNzYWdlLCB0 byBhbGxvdyB0aGUgdGVzdHMgdG8gd29yayBhY3Jvc3MgdmFyaW91cwogLS0gcGFnZSBzaXpl cy4KZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVz X2Zkdy5vdXQgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcu b3V0CmluZGV4IGYyYmNkNmFhOThjLi42MTRlODEzNWUwZSAxMDA2NDQKLS0tIGEvY29udHJp Yi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC03MjgzLDY1ICs3 MjgzLDY4IEBAIHNlbGVjdCAqIGZyb20gcmVtMTsKIC0tID09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIGNyZWF0 ZSB0YWJsZSBnbG9jMSAoCiAgIGEgaW50LAotICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMikgc3RvcmVkKTsKKyAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIp IHN0b3JlZCwKKyAgYyBpbnQKKyk7CiBhbHRlciB0YWJsZSBnbG9jMSBzZXQgKGF1dG92YWN1 dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogY3JlYXRlIGZvcmVpZ24gdGFibGUgZ3JlbTEgKAog ICBhIGludCwKLSAgYiBpbnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCkK LSAgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnModGFibGVfbmFtZSAnZ2xvYzEnKTsKKyAgYiBp bnQgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZCwKKyAgYyBpbnQgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDMpIHZpcnR1YWwKKykgc2VydmVyIGxvb3BiYWNrIG9wdGlv bnModGFibGVfbmFtZSAnZ2xvYzEnKTsKIGV4cGxhaW4gKHZlcmJvc2UsIGNvc3RzIG9mZikK IGluc2VydCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7Ci0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAgSW5zZXJ0IG9uIHB1YmxpYy5ncmVtMQotICAgUmVtb3RlIFNR TDogSU5TRVJUIElOVE8gcHVibGljLmdsb2MxKGEsIGIpIFZBTFVFUyAoJDEsIERFRkFVTFQp CisgICBSZW1vdGUgU1FMOiBJTlNFUlQgSU5UTyBwdWJsaWMuZ2xvYzEoYSwgYiwgYykgVkFM VUVTICgkMSwgREVGQVVMVCwgREVGQVVMVCkKICAgIEJhdGNoIFNpemU6IDEKICAgIC0+ICBW YWx1ZXMgU2NhbiBvbiAiKlZBTFVFUyoiCi0gICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIu Y29sdW1uMSwgTlVMTDo6aW50ZWdlcgorICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoiLmNv bHVtbjEsIE5VTEw6OmludGVnZXIsIE5VTEw6OmludGVnZXIKICg1IHJvd3MpCiAKIGluc2Vy dCBpbnRvIGdyZW0xIChhKSB2YWx1ZXMgKDEpLCAoMik7CiBleHBsYWluICh2ZXJib3NlLCBj b3N0cyBvZmYpCiB1cGRhdGUgZ3JlbTEgc2V0IGEgPSAyMiB3aGVyZSBhID0gMjsKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgVXBkYXRlIG9uIHB1YmxpYy5ncmVtMQotICAgUmVt b3RlIFNRTDogVVBEQVRFIHB1YmxpYy5nbG9jMSBTRVQgYSA9ICQyLCBiID0gREVGQVVMVCBX SEVSRSBjdGlkID0gJDEKKyAgIFJlbW90ZSBTUUw6IFVQREFURSBwdWJsaWMuZ2xvYzEgU0VU IGEgPSAkMiwgYiA9IERFRkFVTFQsIGMgPSBERUZBVUxUIFdIRVJFIGN0aWQgPSAkMQogICAg LT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZ3JlbTEKICAgICAgICAgIE91dHB1dDogMjIs IGN0aWQsIGdyZW0xLioKLSAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjdGlk IEZST00gcHVibGljLmdsb2MxIFdIRVJFICgoYSA9IDIpKSBGT1IgVVBEQVRFCisgICAgICAg ICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYywgY3RpZCBGUk9NIHB1YmxpYy5nbG9jMSBX SEVSRSAoKGEgPSAyKSkgRk9SIFVQREFURQogKDUgcm93cykKIAogdXBkYXRlIGdyZW0xIHNl dCBhID0gMjIgd2hlcmUgYSA9IDI7CiBzZWxlY3QgKiBmcm9tIGdsb2MxOwotIGEgIHwgYiAg Ci0tLS0tKy0tLS0KLSAgMSB8ICAyCi0gMjIgfCA0NAorIGEgIHwgYiAgfCBjIAorLS0tLSst LS0tKy0tLQorICAxIHwgIDIgfCAgCisgMjIgfCA0NCB8ICAKICgyIHJvd3MpCiAKIHNlbGVj dCAqIGZyb20gZ3JlbTE7Ci0gYSAgfCBiICAKLS0tLS0rLS0tLQotICAxIHwgIDIKLSAyMiB8 IDQ0CisgYSAgfCBiICB8IGMgIAorLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAyIHwgIDMKKyAy MiB8IDQ0IHwgNjYKICgyIHJvd3MpCiAKIGRlbGV0ZSBmcm9tIGdyZW0xOwogLS0gdGVzdCBj b3B5IGZyb20KIGNvcHkgZ3JlbTEgZnJvbSBzdGRpbjsKIHNlbGVjdCAqIGZyb20gZ2xvYzE7 Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSAyIHwgNAorIGEgfCBiIHwgYyAKKy0tLSst LS0rLS0tCisgMSB8IDIgfCAgCisgMiB8IDQgfCAgCiAoMiByb3dzKQogCiBzZWxlY3QgKiBm cm9tIGdyZW0xOwotIGEgfCBiIAotLS0tKy0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8 IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwgMworIDIgfCA0IHwgNgogKDIgcm93cykKIAog ZGVsZXRlIGZyb20gZ3JlbTE7CkBAIC03MzQ5LDI4ICs3MzUyLDI4IEBAIGRlbGV0ZSBmcm9t IGdyZW0xOwogYWx0ZXIgc2VydmVyIGxvb3BiYWNrIG9wdGlvbnMgKGFkZCBiYXRjaF9zaXpl ICcxMCcpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5zZXJ0IGludG8gZ3Jl bTEgKGEpIHZhbHVlcyAoMSksICgyKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBJbnNlcnQgb24gcHVibGljLmdyZW0xCi0gICBSZW1vdGUgU1FMOiBJTlNFUlQgSU5UTyBw dWJsaWMuZ2xvYzEoYSwgYikgVkFMVUVTICgkMSwgREVGQVVMVCkKKyAgIFJlbW90ZSBTUUw6 IElOU0VSVCBJTlRPIHB1YmxpYy5nbG9jMShhLCBiLCBjKSBWQUxVRVMgKCQxLCBERUZBVUxU LCBERUZBVUxUKQogICAgQmF0Y2ggU2l6ZTogMTAKICAgIC0+ICBWYWx1ZXMgU2NhbiBvbiAi KlZBTFVFUyoiCi0gICAgICAgICBPdXRwdXQ6ICIqVkFMVUVTKiIuY29sdW1uMSwgTlVMTDo6 aW50ZWdlcgorICAgICAgICAgT3V0cHV0OiAiKlZBTFVFUyoiLmNvbHVtbjEsIE5VTEw6Omlu dGVnZXIsIE5VTEw6OmludGVnZXIKICg1IHJvd3MpCiAKIGluc2VydCBpbnRvIGdyZW0xIChh KSB2YWx1ZXMgKDEpLCAoMik7CiBzZWxlY3QgKiBmcm9tIGdsb2MxOwotIGEgfCBiIAotLS0t Ky0tLQotIDEgfCAyCi0gMiB8IDQKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAy IHwgIAorIDIgfCA0IHwgIAogKDIgcm93cykKIAogc2VsZWN0ICogZnJvbSBncmVtMTsKLSBh IHwgYiAKLS0tLSstLS0KLSAxIHwgMgotIDIgfCA0CisgYSB8IGIgfCBjIAorLS0tKy0tLSst LS0KKyAxIHwgMiB8IDMKKyAyIHwgNCB8IDYKICgyIHJvd3MpCiAKIGRlbGV0ZSBmcm9tIGdy ZW0xOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zk dy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAppbmRl eCAzNzJmZTZkYWQxNS4uMzJlMTZiZmMwZTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdy ZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0xODM2LDEyICsxODM2LDE1IEBAIENSRUFURSBW SUVXIHJ3X3ZpZXcgQVMgU0VMRUNUICogRlJPTSBwYXJlbnRfdGJsIFdIRVJFIGEgPCA1IFdJ VEggQ0hFQ0sgT1BUSU9OOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogY3JlYXRlIHRhYmxlIGdsb2Mx ICgKICAgYSBpbnQsCi0gIGIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9y ZWQpOworICBiIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkLAorICBj IGludAorKTsKIGFsdGVyIHRhYmxlIGdsb2MxIHNldCAoYXV0b3ZhY3V1bV9lbmFibGVkID0g J2ZhbHNlJyk7CiBjcmVhdGUgZm9yZWlnbiB0YWJsZSBncmVtMSAoCiAgIGEgaW50LAotICBi IGludCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkKQotICBzZXJ2ZXIgbG9v cGJhY2sgb3B0aW9ucyh0YWJsZV9uYW1lICdnbG9jMScpOworICBiIGludCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChhICogMikgc3RvcmVkLAorICBjIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMykgdmlydHVhbAorKSBzZXJ2ZXIgbG9vcGJhY2sgb3B0aW9ucyh0YWJsZV9uYW1l ICdnbG9jMScpOwogZXhwbGFpbiAodmVyYm9zZSwgY29zdHMgb2ZmKQogaW5zZXJ0IGludG8g Z3JlbTEgKGEpIHZhbHVlcyAoMSksICgyKTsKIGluc2VydCBpbnRvIGdyZW0xIChhKSB2YWx1 ZXMgKDEpLCAoMik7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGJmYjk3ODY1ZTE4Li42NGQwZmM2 MWY2MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTEzMTgsOCArMTMxOCw4IEBAIDx0aXRsZT48 c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgog ICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CiAgICAgICAgSWYgYSB6ZXJvIGJ5dGUgKDxs aXRlcmFsPicnPC9saXRlcmFsPiksIHRoZW4gbm90IGEgZ2VuZXJhdGVkIGNvbHVtbi4KLSAg ICAgICBPdGhlcndpc2UsIDxsaXRlcmFsPnM8L2xpdGVyYWw+ID0gc3RvcmVkLiAgKE90aGVy IHZhbHVlcyBtaWdodCBiZSBhZGRlZAotICAgICAgIGluIHRoZSBmdXR1cmUuKQorICAgICAg IE90aGVyd2lzZSwgPGxpdGVyYWw+czwvbGl0ZXJhbD4gPSBzdG9yZWQsIDxsaXRlcmFsPnY8 L2xpdGVyYWw+ID0KKyAgICAgICB2aXJ0dWFsLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAg ICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggOGFiMGRkYjExMmYuLjQ1OTFiZTYwNDg4IDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5z Z21sCkBAIC0zNjEsNyArMzYxLDYgQEAgPHRpdGxlPkdlbmVyYXRlZCBDb2x1bW5zPC90aXRs ZT4KICAgIHN0b3JhZ2UgYW5kIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4gIFRodXMs IGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uCiAgICBpcyBzaW1pbGFyIHRvIGEgdmlldyBh bmQgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiBpcyBzaW1pbGFyIHRvIGEKICAgIG1hdGVy aWFsaXplZCB2aWV3IChleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgdXBkYXRlZCBhdXRvbWF0 aWNhbGx5KS4KLSAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gY3Vy cmVudGx5IGltcGxlbWVudHMgb25seSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMuCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KQEAgLTM3MSwxMiArMzcwLDEyIEBAIDx0aXRsZT5HZW5lcmF0 ZWQgQ29sdW1uczwvdGl0bGU+CiBDUkVBVEUgVEFCTEUgcGVvcGxlICgKICAgICAuLi4sCiAg ICAgaGVpZ2h0X2NtIG51bWVyaWMsCi0gICAgaGVpZ2h0X2luIG51bWVyaWMgPGVtcGhhc2lz PkdFTkVSQVRFRCBBTFdBWVMgQVMgKGhlaWdodF9jbSAvIDIuNTQpIFNUT1JFRDwvZW1waGFz aXM+CisgICAgaGVpZ2h0X2luIG51bWVyaWMgPGVtcGhhc2lzPkdFTkVSQVRFRCBBTFdBWVMg QVMgKGhlaWdodF9jbSAvIDIuNTQpPC9lbXBoYXNpcz4KICk7CiA8L3Byb2dyYW1saXN0aW5n PgotICAgVGhlIGtleXdvcmQgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBtdXN0IGJlIHNw ZWNpZmllZCB0byBjaG9vc2UgdGhlCi0gICBzdG9yZWQga2luZCBvZiBnZW5lcmF0ZWQgY29s dW1uLiAgU2VlIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZSIvPiBmb3IKLSAgIG1v cmUgZGV0YWlscy4KKyAgIEEgZ2VuZXJhdGVkIGNvbHVtbiBpcyBieSBkZWZhdWx0IG9mIHRo ZSB2aXJ0dWFsIGtpbmQuICBVc2UgdGhlIGtleXdvcmRzCisgICA8bGl0ZXJhbD5WSVJUVUFM PC9saXRlcmFsPiBvciA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IHRvIG1ha2UgdGhlIGNo b2ljZQorICAgZXhwbGljaXQuICBTZWUgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXRhYmxl Ii8+IGZvciBtb3JlIGRldGFpbHMuCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTQ0Miwx MiArNDQxLDE4IEBAIDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+CiAgICAgICA8 bGlzdGl0ZW0+CiAgICAgICAgPHBhcmE+CiAgICAgICAgIElmIGEgcGFyZW50IGNvbHVtbiBp cyBhIGdlbmVyYXRlZCBjb2x1bW4sIGl0cyBjaGlsZCBjb2x1bW4gbXVzdCBhbHNvCi0gICAg ICAgIGJlIGEgZ2VuZXJhdGVkIGNvbHVtbjsgaG93ZXZlciwgdGhlIGNoaWxkIGNvbHVtbiBj YW4gaGF2ZSBhCi0gICAgICAgIGRpZmZlcmVudCBnZW5lcmF0aW9uIGV4cHJlc3Npb24uICBU aGUgZ2VuZXJhdGlvbiBleHByZXNzaW9uIHRoYXQgaXMKKyAgICAgICAgYmUgYSBnZW5lcmF0 ZWQgY29sdW1uIG9mIHRoZSBzYW1lIGtpbmQgKHN0b3JlZCBvciB2aXJ0dWFsKTsgaG93ZXZl ciwKKyAgICAgICAgdGhlIGNoaWxkIGNvbHVtbiBjYW4gaGF2ZSBhIGRpZmZlcmVudCBnZW5l cmF0aW9uIGV4cHJlc3Npb24uCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+Cisg ICAgICAgIEZvciBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMsIHRoZSBnZW5lcmF0aW9uIGV4 cHJlc3Npb24gdGhhdCBpcwogICAgICAgICBhY3R1YWxseSBhcHBsaWVkIGR1cmluZyBpbnNl cnQgb3IgdXBkYXRlIG9mIGEgcm93IGlzIHRoZSBvbmUKLSAgICAgICAgYXNzb2NpYXRlZCB3 aXRoIHRoZSB0YWJsZSB0aGF0IHRoZSByb3cgaXMgcGh5c2ljYWxseSBpbi4KLSAgICAgICAg KFRoaXMgaXMgdW5saWtlIHRoZSBiZWhhdmlvciBmb3IgY29sdW1uIGRlZmF1bHRzOiBmb3Ig dGhvc2UsIHRoZQotICAgICAgICBkZWZhdWx0IHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUg dGFibGUgbmFtZWQgaW4gdGhlIHF1ZXJ5IGFwcGxpZXMuKQorICAgICAgICBhc3NvY2lhdGVk IHdpdGggdGhlIHRhYmxlIHRoYXQgdGhlIHJvdyBpcyBwaHlzaWNhbGx5IGluLiAgKFRoaXMg aXMKKyAgICAgICAgdW5saWtlIHRoZSBiZWhhdmlvciBmb3IgY29sdW1uIGRlZmF1bHRzOiBm b3IgdGhvc2UsIHRoZSBkZWZhdWx0IHZhbHVlCisgICAgICAgIGFzc29jaWF0ZWQgd2l0aCB0 aGUgdGFibGUgbmFtZWQgaW4gdGhlIHF1ZXJ5IGFwcGxpZXMuKSAgRm9yIHZpcnR1YWwKKyAg ICAgICAgZ2VuZXJhdGVkIGNvbHVtbnMsIHRoZSBnZW5lcmF0aW9uIGV4cHJlc3Npb24gb2Yg dGhlIHRhYmxlIG5hbWVkIGluIHRoZQorICAgICAgICBxdWVyeSBhcHBsaWVzIHdoZW4gYSB0 YWJsZSBpcyByZWFkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg ICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKaW5kZXggMWE0OWYz MjFjZjcuLmM1YWFmNzY1NDQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCkBA IC0yNjQsNiArMjY0LDExIEBAIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CiAgICAgICBp biB0aGUgY29sdW1uIGlzIHJld3JpdHRlbiBhbmQgYWxsIHRoZSBmdXR1cmUgY2hhbmdlcyB3 aWxsIGFwcGx5IHRoZSBuZXcKICAgICAgIGdlbmVyYXRpb24gZXhwcmVzc2lvbi4KICAgICAg PC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGlzIGN1cnJlbnRseSBv bmx5IHN1cHBvcnRlZCBmb3Igc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIChub3QKKyAgICAg IHZpcnR1YWwgb25lcykuCisgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKQEAgLTI3NiwxMCArMjgxLDE1IEBAIDx0aXRsZT5EZXNjcmlwdGlv bjwvdGl0bGU+CiAgICAgICBsb25nZXIgYXBwbHkgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lv bi4KICAgICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGlzIGN1 cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBmb3Igc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIChu b3QKKyAgICAgIHZpcnR1YWwgb25lcykuCisgICAgIDwvcGFyYT4KKwogICAgICA8cGFyYT4K ICAgICAgIElmIDxsaXRlcmFsPkRST1AgRVhQUkVTU0lPTiBJRiBFWElTVFM8L2xpdGVyYWw+ IGlzIHNwZWNpZmllZCBhbmQgdGhlCi0gICAgICBjb2x1bW4gaXMgbm90IGEgc3RvcmVkIGdl bmVyYXRlZCBjb2x1bW4sIG5vIGVycm9yIGlzIHRocm93bi4gIEluIHRoaXMKLSAgICAgIGNh c2UgYSBub3RpY2UgaXMgaXNzdWVkIGluc3RlYWQuCisgICAgICBjb2x1bW4gaXMgbm90IGEg Z2VuZXJhdGVkIGNvbHVtbiwgbm8gZXJyb3IgaXMgdGhyb3duLiAgSW4gdGhpcyBjYXNlIGEK KyAgICAgIG5vdGljZSBpcyBpc3N1ZWQgaW5zdGVhZC4KICAgICAgPC9wYXJhPgogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX2ZvcmVpZ25fdGFibGUuc2dtbAppbmRleCBkYzRiOTA3NTk5MC4uMjFiNWQ2YTE0ZDAg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKQEAg LTQ3LDcgKzQ3LDcgQEAKICAgTlVMTCB8CiAgIENIRUNLICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5IRVJJVCBd IHwKICAgREVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4g fAotICBHRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhw cjwvcmVwbGFjZWFibGU+ICkgU1RPUkVEIH0KKyAgR0VORVJBVEVEIEFMV0FZUyBBUyAoIDxy ZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3JlcGxhY2VhYmxlPiApIFsgU1RPUkVEIHwg VklSVFVBTCBdIH0KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIApAQCAt Mjc1LDcgKzI3NSw3IEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgIDwvdmFybGlz dGVudHJ5PgogCiAgICA8dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxsaXRlcmFsPkdFTkVS QVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNl YWJsZT4gKSBTVE9SRUQ8L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5nZW5lcmF0ZWQg Y29sdW1uPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKyAgICA8dGVybT48bGl0ZXJh bD5HRU5FUkFURUQgQUxXQVlTIEFTICggPHJlcGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwv cmVwbGFjZWFibGU+ICkgWyBTVE9SRUQgfCBWSVJUVUFMIF08L2xpdGVyYWw+PGluZGV4dGVy bT48cHJpbWFyeT5nZW5lcmF0ZWQgY29sdW1uPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVy bT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgVGhpcyBjbGF1c2UgY3Jl YXRlcyB0aGUgY29sdW1uIGFzIGEgPGZpcnN0dGVybT5nZW5lcmF0ZWQKQEAgLTI4NCwxMCAr Mjg0LDEzIEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAgICAgPC9wYXJhPgogCiAg ICAgIDxwYXJhPgotICAgICAgVGhlIGtleXdvcmQgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFs PiBpcyByZXF1aXJlZCB0byBzaWduaWZ5IHRoYXQgdGhlCisgICAgICBXaGVuIDxsaXRlcmFs PlZJUlRVQUw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlCisg ICAgICBjb21wdXRlZCB3aGVuIGl0IGlzIHJlYWQuICAoVGhlIGZvcmVpZ24tZGF0YSB3cmFw cGVyIHdpbGwgc2VlIGl0IGFzIGEKKyAgICAgIG51bGwgdmFsdWUgaW4gbmV3IHJvd3MgYW5k IG1heSBjaG9vc2UgdG8gc3RvcmUgaXQgYXMgYSBudWxsIHZhbHVlIG9yCisgICAgICBpZ25v cmUgaXQgYWx0b2dldGhlci4pICBXaGVuIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMg c3BlY2lmaWVkLCB0aGUKICAgICAgIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uIHdyaXRl LiAgKFRoZSBjb21wdXRlZCB2YWx1ZSB3aWxsIGJlIHByZXNlbnRlZAogICAgICAgdG8gdGhl IGZvcmVpZ24tZGF0YSB3cmFwcGVyIGZvciBzdG9yYWdlIGFuZCBtdXN0IGJlIHJldHVybmVk IG9uCi0gICAgICByZWFkaW5nLikKKyAgICAgIHJlYWRpbmcuKSAgPGxpdGVyYWw+VklSVFVB TDwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFy YT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IGMxODU1YjhkODI3Li4x ZjdjY2JjYTgzMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC02NSw3 ICs2NSw3IEBACiAgIE5VTEwgfAogICBDSEVDSyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBbIE5PIElOSEVSSVQgXSB8CiAg IERFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IHwKLSAg R0VORVJBVEVEIEFMV0FZUyBBUyAoIDxyZXBsYWNlYWJsZT5nZW5lcmF0aW9uX2V4cHI8L3Jl cGxhY2VhYmxlPiApIFNUT1JFRCB8CisgIEdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFj ZWFibGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBbIFNUT1JFRCB8IFZJUlRV QUwgXSB8CiAgIEdFTkVSQVRFRCB7IEFMV0FZUyB8IEJZIERFRkFVTFQgfSBBUyBJREVOVElU WSBbICggPHJlcGxhY2VhYmxlPnNlcXVlbmNlX29wdGlvbnM8L3JlcGxhY2VhYmxlPiApIF0g fAogICBVTklRVUUgWyBOVUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CiAgIFBS SU1BUlkgS0VZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0 ZXJzPC9yZXBsYWNlYWJsZT4gfApAQCAtNzIwLDggKzcyMCw5IEBAIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+SU5DTFVESU5HIEdFTkVSQVRF RDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KICAgICAgICAgIDxwYXJh PgotICAgICAgICAgIEFueSBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIG9mIGNvcGllZCBjb2x1 bW4gZGVmaW5pdGlvbnMgd2lsbCBiZQotICAgICAgICAgIGNvcGllZC4gIEJ5IGRlZmF1bHQs IG5ldyBjb2x1bW5zIHdpbGwgYmUgcmVndWxhciBiYXNlIGNvbHVtbnMuCisgICAgICAgICAg QW55IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgYXMgd2VsbCBhcyB0aGUgc3RvcmVkL3ZpcnR1 YWwgY2hvaWNlIG9mCisgICAgICAgICAgY29waWVkIGNvbHVtbiBkZWZpbml0aW9ucyB3aWxs IGJlIGNvcGllZC4gIEJ5IGRlZmF1bHQsIG5ldyBjb2x1bW5zCisgICAgICAgICAgd2lsbCBi ZSByZWd1bGFyIGJhc2UgY29sdW1ucy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9s aXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTg5Nyw3ICs4OTgsNyBAQCA8 dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgPHZh cmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXRhYmxlLXBhcm1zLWdlbmVyYXRlZC1zdG9yZWQi PgotICAgIDx0ZXJtPjxsaXRlcmFsPkdFTkVSQVRFRCBBTFdBWVMgQVMgKCA8cmVwbGFjZWFi bGU+Z2VuZXJhdGlvbl9leHByPC9yZXBsYWNlYWJsZT4gKSBTVE9SRUQ8L2xpdGVyYWw+PGlu ZGV4dGVybT48cHJpbWFyeT5nZW5lcmF0ZWQgY29sdW1uPC9wcmltYXJ5PjwvaW5kZXh0ZXJt PjwvdGVybT4KKyAgICA8dGVybT48bGl0ZXJhbD5HRU5FUkFURUQgQUxXQVlTIEFTICggPHJl cGxhY2VhYmxlPmdlbmVyYXRpb25fZXhwcjwvcmVwbGFjZWFibGU+ICkgWyBTVE9SRUQgfCBW SVJUVUFMIF08L2xpdGVyYWw+PGluZGV4dGVybT48cHJpbWFyeT5nZW5lcmF0ZWQgY29sdW1u PC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CiAgICAgIDxw YXJhPgogICAgICAgVGhpcyBjbGF1c2UgY3JlYXRlcyB0aGUgY29sdW1uIGFzIGEgPGZpcnN0 dGVybT5nZW5lcmF0ZWQKQEAgLTkwNiw4ICs5MDcsMTEgQEAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgogICAgICA8L3BhcmE+CiAKICAgICAgPHBhcmE+Ci0gICAgICBUaGUga2V5d29y ZCA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVyYWw+IGlzIHJlcXVpcmVkIHRvIHNpZ25pZnkgdGhh dCB0aGUKLSAgICAgIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uIHdyaXRlIGFuZCB3aWxs IGJlIHN0b3JlZCBvbiBkaXNrLgorICAgICAgV2hlbiA8bGl0ZXJhbD5WSVJUVUFMPC9saXRl cmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZQorICAgICAgY29tcHV0ZWQg d2hlbiBpdCBpcyByZWFkLCBhbmQgaXQgd2lsbCBub3Qgb2NjdXB5IGFueSBzdG9yYWdlLiAg V2hlbgorICAgICAgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRo ZSBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBvbgorICAgICAgd3JpdGUgYW5kIHdpbGwgYmUg c3RvcmVkIG9uIGRpc2suICA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBpcyB0aGUKKyAg ICAgIGRlZmF1bHQuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KQEAgLTI0NDcsOSAr MjQ1MSw5IEBAIDx0aXRsZT5NdWx0aXBsZSBJZGVudGl0eSBDb2x1bW5zPC90aXRsZT4KICAg IDx0aXRsZT5HZW5lcmF0ZWQgQ29sdW1uczwvdGl0bGU+CiAKICAgIDxwYXJhPgotICAgIFRo ZSBvcHRpb24gPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyBub3Qgc3RhbmRhcmQgYnV0 IGlzIGFsc28gdXNlZCBieQotICAgIG90aGVyIFNRTCBpbXBsZW1lbnRhdGlvbnMuICBUaGUg U1FMIHN0YW5kYXJkIGRvZXMgbm90IHNwZWNpZnkgdGhlIHN0b3JhZ2UKLSAgICBvZiBnZW5l cmF0ZWQgY29sdW1ucy4KKyAgICBUaGUgb3B0aW9ucyA8bGl0ZXJhbD5TVE9SRUQ8L2xpdGVy YWw+IGFuZCA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBhcmUKKyAgICBub3Qgc3RhbmRh cmQgYnV0IGFyZSBhbHNvIHVzZWQgYnkgb3RoZXIgU1FMIGltcGxlbWVudGF0aW9ucy4gIFRo ZSBTUUwKKyAgICBzdGFuZGFyZCBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBzdG9yYWdlIG9mIGdl bmVyYXRlZCBjb2x1bW5zLgogICAgPC9wYXJhPgogICA8L3JlZnNlY3QyPgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwKaW5kZXggOTgyYWI2ZjNlZTQuLjc1MmZlNTA4 NjBhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90cmlnZ2VyLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdHJpZ2dlci5zZ21sCkBAIC0yNzksNyAr Mjc5LDcgQEAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgogICAgICA8cGFyYT4KICAgICAg IDxsaXRlcmFsPklOU1RFQUQgT0YgVVBEQVRFPC9saXRlcmFsPiBldmVudHMgZG8gbm90IGFs bG93IGEgbGlzdCBvZiBjb2x1bW5zLgogICAgICAgQSBjb2x1bW4gbGlzdCBjYW5ub3QgYmUg c3BlY2lmaWVkIHdoZW4gcmVxdWVzdGluZyB0cmFuc2l0aW9uIHJlbGF0aW9ucywKLSAgICAg IGVpdGhlci4KKyAgICAgIGVpdGhlci4gIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJl IG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGNvbHVtbiBsaXN0LgogICAgICA8L3BhcmE+CiAgICAg PC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKaW5kZXggNDkz ODJkMDdmYTguLmRhYjE3ZjdhZTRmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvdHJpZ2dl ci5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKQEAgLTI4OSw2ICsyODks MTAgQEAgPHRpdGxlPk92ZXJ2aWV3IG9mIFRyaWdnZXIgQmVoYXZpb3I8L3RpdGxlPgogICAg IDxsaXRlcmFsPkJFRk9SRTwvbGl0ZXJhbD4gdHJpZ2dlci4gIENoYW5nZXMgdG8gdGhlIHZh bHVlIG9mIGEgZ2VuZXJhdGVkCiAgICAgY29sdW1uIGluIGEgPGxpdGVyYWw+QkVGT1JFPC9s aXRlcmFsPiB0cmlnZ2VyIGFyZSBpZ25vcmVkIGFuZCB3aWxsIGJlCiAgICAgb3ZlcndyaXR0 ZW4uCisgICAgVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbmV2ZXIgY29tcHV0ZWQg d2hlbiB0cmlnZ2VycyBmaXJlLiAgSW4gdGhlIEMKKyAgICBsYW5ndWFnZSBpbnRlcmZhY2Us IHRoZWlyIGNvbnRlbnQgaXMgdW5kZWZpbmVkIGluIGEgdHJpZ2dlciBmdW5jdGlvbi4KKyAg ICBIaWdoZXItbGV2ZWwgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2VzIHNob3VsZCBwcmV2ZW50IGFj Y2VzcyB0byB2aXJ0dWFsCisgICAgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdHJpZ2dlcnMuCiAg ICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi90dXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2Mu YwppbmRleCA0NzM3OWZlZjIyMC4uMTM4NDBiYTUzM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vdHVwZGVzYy5jCkBAIC0xOTAsNiArMTkwLDcgQEAgQ3JlYXRlVHVwbGVEZXNjQ29w eUNvbnN0cihUdXBsZURlc2MgdHVwZGVzYykKIAogCQljcHktPmhhc19ub3RfbnVsbCA9IGNv bnN0ci0+aGFzX25vdF9udWxsOwogCQljcHktPmhhc19nZW5lcmF0ZWRfc3RvcmVkID0gY29u c3RyLT5oYXNfZ2VuZXJhdGVkX3N0b3JlZDsKKwkJY3B5LT5oYXNfZ2VuZXJhdGVkX3ZpcnR1 YWwgPSBjb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbDsKIAogCQlpZiAoKGNweS0+bnVt X2RlZnZhbCA9IGNvbnN0ci0+bnVtX2RlZnZhbCkgPiAwKQogCQl7CkBAIC00OTQsNiArNDk1 LDggQEAgZXF1YWxUdXBsZURlc2NzKFR1cGxlRGVzYyB0dXBkZXNjMSwgVHVwbGVEZXNjIHR1 cGRlc2MyKQogCQkJcmV0dXJuIGZhbHNlOwogCQlpZiAoY29uc3RyMS0+aGFzX2dlbmVyYXRl ZF9zdG9yZWQgIT0gY29uc3RyMi0+aGFzX2dlbmVyYXRlZF9zdG9yZWQpCiAJCQlyZXR1cm4g ZmFsc2U7CisJCWlmIChjb25zdHIxLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgIT0gY29uc3Ry Mi0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQkJcmV0dXJuIGZhbHNlOwogCQluID0gY29u c3RyMS0+bnVtX2RlZnZhbDsKIAkJaWYgKG4gIT0gKGludCkgY29uc3RyMi0+bnVtX2RlZnZh bCkKIAkJCXJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV9oYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1f aGFuZGxlci5jCmluZGV4IDFjNmRhMjg2ZDQzLi4wYzk1YTExZjA0NCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCkBAIC0yMDQ4LDYgKzIwNDgsOCBA QCBoZWFwYW1fcmVsYXRpb25fbmVlZHNfdG9hc3RfdGFibGUoUmVsYXRpb24gcmVsKQogCiAJ CWlmIChhdHQtPmF0dGlzZHJvcHBlZCkKIAkJCWNvbnRpbnVlOworCQlpZiAoYXR0LT5hdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJY29udGludWU7 CiAJCWRhdGFfbGVuZ3RoID0gYXR0X2FsaWduX25vbWluYWwoZGF0YV9sZW5ndGgsIGF0dC0+ YXR0YWxpZ24pOwogCQlpZiAoYXR0LT5hdHRsZW4gPiAwKQogCQl7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CmluZGV4IDc4ZTU5Mzg0ZDFjLi4yODdmMDM4NTNhZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAg LTUxMiw3ICs1MTIsNyBAQCBDaGVja0F0dHJpYnV0ZU5hbWVzVHlwZXMoVHVwbGVEZXNjIHR1 cGRlc2MsIGNoYXIgcmVsa2luZCwKIAkJCQkJCSAgIFR1cGxlRGVzY0F0dHIodHVwZGVzYywg aSktPmF0dHR5cGlkLAogCQkJCQkJICAgVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0 Y29sbGF0aW9uLAogCQkJCQkJICAgTklMLCAvKiBhc3N1bWUgd2UncmUgY3JlYXRpbmcgYSBu ZXcgcm93dHlwZSAqLwotCQkJCQkJICAgZmxhZ3MpOworCQkJCQkJICAgZmxhZ3MgfCAoVHVw bGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5F UkFURURfVklSVFVBTCA/IENIS0FUWVBFX0lTX1ZJUlRVQUwgOiAwKSk7CiAJfQogfQogCkBA IC01ODcsNiArNTg3LDE3IEBAIENoZWNrQXR0cmlidXRlVHlwZShjb25zdCBjaGFyICphdHRu YW1lLAogCX0KIAllbHNlIGlmIChhdHRfdHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTikKIAl7 CisJCS8qCisJCSAqIFByZXZlbnQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBmcm9tIGhh dmluZyBhIGRvbWFpbiB0eXBlLiAgV2UKKwkJICogd291bGQgaGF2ZSB0byBlbmZvcmNlIGRv bWFpbiBjb25zdHJhaW50cyB3aGVuIGNvbHVtbnMgdW5kZXJseWluZworCQkgKiB0aGUgZ2Vu ZXJhdGVkIGNvbHVtbiBjaGFuZ2UuICBUaGlzIGNvdWxkIHBvc3NpYmx5IGJlIGltcGxlbWVu dGVkLAorCQkgKiBidXQgaXQncyBub3QuCisJCSAqLworCQlpZiAoZmxhZ3MgJiBDSEtBVFlQ RV9JU19WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJ2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW4gXCIlc1wiIGNhbm5vdCBoYXZlIGEgZG9tYWluIHR5cGUiLCBhdHRuYW1l KSkpOworCiAJCS8qCiAJCSAqIElmIGl0J3MgYSBkb21haW4sIHJlY3Vyc2UgdG8gY2hlY2sg aXRzIGJhc2UgdHlwZS4KIAkJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbmFseXplLmMKaW5kZXggMzhm YjRjM2VmMjMuLjcxM2NhNWU4NjYxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYW5hbHl6ZS5jCkBAIC0x MDM5LDYgKzEwMzksMTAgQEAgZXhhbWluZV9hdHRyaWJ1dGUoUmVsYXRpb24gb25lcmVsLCBp bnQgYXR0bnVtLCBOb2RlICppbmRleF9leHByKQogCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQp CiAJCXJldHVybiBOVUxMOwogCisJLyogRG9uJ3QgYW5hbHl6ZSB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zICovCisJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VO RVJBVEVEX1ZJUlRVQUwpCisJCXJldHVybiBOVUxMOworCiAJLyoKIAkgKiBHZXQgYXR0c3Rh dHRhcmdldCB2YWx1ZS4gIFNldCB0byAtMSBpZiBudWxsLiAgKEFuYWx5emUgZnVuY3Rpb25z IGV4cGVjdAogCSAqIC0xIHRvIG1lYW4gdXNlIGRlZmF1bHRfc3RhdGlzdGljc190YXJnZXQ7 IHNlZSBmb3IgZXhhbXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5k ZXhjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYwppbmRleCAxMzBj ZWJkNjU4OC4uZWQyMzc3YWVlZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBA IC0xMTA0LDYgKzExMDQsOSBAQCBEZWZpbmVJbmRleChPaWQgdGFibGVJZCwKIAkvKgogCSAq IFdlIGRpc2FsbG93IGluZGV4ZXMgb24gc3lzdGVtIGNvbHVtbnMuICBUaGV5IHdvdWxkIG5v dCBuZWNlc3NhcmlseSBnZXQKIAkgKiB1cGRhdGVkIGNvcnJlY3RseSwgYW5kIHRoZXkgZG9u J3Qgc2VlbSB1c2VmdWwgYW55d2F5LgorCSAqCisJICogQWxzbyBkaXNhbGxvdyB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIGluIGluZGV4ZXMgKHVzZSBleHByZXNzaW9uCisJICogaW5k ZXggaW5zdGVhZCkuCiAJICovCiAJZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRleEluZm8tPmlp X051bUluZGV4QXR0cnM7IGkrKykKIAl7CkBAIC0xMTEzLDE0ICsxMTE2LDIyIEBAIERlZmlu ZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJpbmRleCBj cmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKworCisJ CWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8gLSAxKS0+ YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVE KSwKKwkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgotCSAqIEFsc28gY2hl Y2sgZm9yIHN5c3RlbSBjb2x1bW5zIHVzZWQgaW4gZXhwcmVzc2lvbnMgb3IgcHJlZGljYXRl cy4KKwkgKiBBbHNvIGNoZWNrIGZvciBzeXN0ZW0gYW5kIGdlbmVyYXRlZCBjb2x1bW5zIHVz ZWQgaW4gZXhwcmVzc2lvbnMgb3IKKwkgKiBwcmVkaWNhdGVzLgogCSAqLwogCWlmIChpbmRl eEluZm8tPmlpX0V4cHJlc3Npb25zIHx8IGluZGV4SW5mby0+aWlfUHJlZGljYXRlKQogCXsK IAkJQml0bWFwc2V0ICAqaW5kZXhhdHRycyA9IE5VTEw7CisJCWludAkJCWo7CiAKIAkJcHVs bF92YXJhdHRub3MoKE5vZGUgKikgaW5kZXhJbmZvLT5paV9FeHByZXNzaW9ucywgMSwgJmlu ZGV4YXR0cnMpOwogCQlwdWxsX3ZhcmF0dG5vcygoTm9kZSAqKSBpbmRleEluZm8tPmlpX1By ZWRpY2F0ZSwgMSwgJmluZGV4YXR0cnMpOwpAQCAtMTEzMyw2ICsxMTQ0LDIyIEBAIERlZmlu ZUluZGV4KE9pZCB0YWJsZUlkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAogCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gc3lzdGVt IGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CiAJCX0KKworCQkvKgorCQkgKiBYWFgg VmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiBpbmRleCBleHByZXNzaW9ucyBvciBwcmVk aWNhdGVzCisJCSAqIGNvdWxkIGJlIHN1cHBvcnRlZCwgYnV0IGl0IG5lZWRzIHN1cHBvcnQg aW4KKwkJICogUmVsYXRpb25HZXRJbmRleEV4cHJlc3Npb25zKCkgYW5kIFJlbGF0aW9uR2V0 SW5kZXhQcmVkaWNhdGUoKS4KKwkJICovCisJCWogPSAtMTsKKwkJd2hpbGUgKChqID0gYm1z X25leHRfbWVtYmVyKGluZGV4YXR0cnMsIGopKSA+PSAwKQorCQl7CisJCQlBdHRyTnVtYmVy CWF0dG5vID0gaiArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7CisKKwkJ CWlmIChUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgYXR0bm8gLSAxKS0+ YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAorCQkJCQkJIGVycm1zZygiaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKwkJfQogCX0KIAogCS8qIElzIGlu ZGV4IHNhZmUgZm9yIG90aGVycyB0byBpZ25vcmU/ICBTZWUgc2V0X2luZGV4c2FmZV9wcm9j ZmxhZ3MoKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3RhdHNjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYwppbmRleCAxZGIzZWY2OWQy Mi4uNzQ0YjM1MDhjMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRz Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCkBAIC0yNDYs NiArMjQ2LDEyIEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQog CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJ IGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiBzeXN0ZW0gY29sdW1ucyBpcyBub3Qg c3VwcG9ydGVkIikpKTsKIAorCQkJLyogRGlzYWxsb3cgdXNlIG9mIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMgaW4gZXh0ZW5kZWQgc3RhdHMgKi8KKwkJCWlmIChhdHRGb3JtLT5hdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkgZXJybXNnKCJzdGF0aXN0aWNzIGNyZWF0aW9uIG9uIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMgaXMgbm90IHN1cHBvcnRlZCIpKSk7CisKIAkJCS8qIERpc2FsbG93IGRh dGEgdHlwZXMgd2l0aG91dCBhIGxlc3MtdGhhbiBvcGVyYXRvciAqLwogCQkJdHlwZSA9IGxv b2t1cF90eXBlX2NhY2hlKGF0dEZvcm0tPmF0dHR5cGlkLCBUWVBFQ0FDSEVfTFRfT1BSKTsK IAkJCWlmICh0eXBlLT5sdF9vcHIgPT0gSW52YWxpZE9pZCkKQEAgLTI2OSw2ICsyNzUsMTIg QEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0bXQgKnN0bXQpCiAJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCQkgZXJybXNnKCJz dGF0aXN0aWNzIGNyZWF0aW9uIG9uIHN5c3RlbSBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQi KSkpOwogCisJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1u cyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJaWYgKGdldF9hdHRnZW5lcmF0ZWQocmVsaWQs IHZhci0+dmFyYXR0bm8pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAorCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBvbiB2aXJ0dWFs IGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCiAJCQkvKiBEaXNh bGxvdyBkYXRhIHR5cGVzIHdpdGhvdXQgYSBsZXNzLXRoYW4gb3BlcmF0b3IgKi8KIAkJCXR5 cGUgPSBsb29rdXBfdHlwZV9jYWNoZSh2YXItPnZhcnR5cGUsIFRZUEVDQUNIRV9MVF9PUFIp OwogCQkJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQpAQCAtMjkwLDcgKzMwMiw2 IEBAIENyZWF0ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCiAJCQlBc3Nl cnQoZXhwciAhPSBOVUxMKTsKIAotCQkJLyogRGlzYWxsb3cgZXhwcmVzc2lvbnMgcmVmZXJl bmNpbmcgc3lzdGVtIGF0dHJpYnV0ZXMuICovCiAJCQlwdWxsX3ZhcmF0dG5vcyhleHByLCAx LCAmYXR0bnVtcyk7CiAKIAkJCWsgPSAtMTsKQEAgLTI5OCwxMCArMzA5LDE3IEBAIENyZWF0 ZVN0YXRpc3RpY3MoQ3JlYXRlU3RhdHNTdG10ICpzdG10KQogCQkJewogCQkJCUF0dHJOdW1i ZXIJYXR0bnVtID0gayArIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXI7CiAK KwkJCQkvKiBEaXNhbGxvdyBleHByZXNzaW9ucyByZWZlcmVuY2luZyBzeXN0ZW0gYXR0cmli dXRlcy4gKi8KIAkJCQlpZiAoYXR0bnVtIDw9IDApCiAJCQkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkJ CSBlcnJtc2coInN0YXRpc3RpY3MgY3JlYXRpb24gb24gc3lzdGVtIGNvbHVtbnMgaXMgbm90 IHN1cHBvcnRlZCIpKSk7CisKKwkJCQkvKiBEaXNhbGxvdyB1c2Ugb2YgdmlydHVhbCBnZW5l cmF0ZWQgY29sdW1ucyBpbiBleHRlbmRlZCBzdGF0cyAqLworCQkJCWlmIChnZXRfYXR0Z2Vu ZXJhdGVkKHJlbGlkLCBhdHRudW0pID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkK KwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygic3RhdGlzdGljcyBjcmVhdGlvbiBv biB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwogCQkJ fQogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA3NDA1MDIzZTc3 Yi4uZjY3ZDQzNWU1ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yOTQz LDYgKzI5NDMsMTUgQEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMsIGNvbnN0IExp c3QgKnN1cGVycywgY2hhciByZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQkJCSBlcnJoaW50KCJB IGNoaWxkIHRhYmxlIGNvbHVtbiBjYW5ub3QgYmUgZ2VuZXJhdGVkIHVubGVzcyBpdHMgcGFy ZW50IGNvbHVtbiBpcy4iKSkpOwogCQkJCQl9CiAKKwkJCQkJaWYgKGNvbGRlZi0+Z2VuZXJh dGVkICYmIHJlc3RkZWYtPmdlbmVyYXRlZCAmJiBjb2xkZWYtPmdlbmVyYXRlZCAhPSByZXN0 ZGVmLT5nZW5lcmF0ZWQpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfQ09MVU1OX0RFRklOSVRJT04pLAorCQkJCQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIGluaGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZm ZXJlbnQga2luZCIsCisJCQkJCQkJCQkJcmVzdGRlZi0+Y29sbmFtZSksCisJCQkJCQkJCSBl cnJkZXRhaWwoIlBhcmVudCBjb2x1bW4gaXMgJXMsIGNoaWxkIGNvbHVtbiBpcyAlcy4iLAor CQkJCQkJCQkJCSAgIGNvbGRlZi0+Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkJCQkJICAgcmVzdGRlZi0+ Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAi VklSVFVBTCIpKSk7CisKIAkJCQkJLyoKIAkJCQkJICogT3ZlcnJpZGUgdGhlIHBhcmVudCdz IGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgY29sdW1uCiAJCQkJCSAqIChjb2xkZWYtPmNvb2tl ZF9kZWZhdWx0KSB3aXRoIHRoZSBwYXJ0aXRpb24ncyBsb2NhbApAQCAtMzIxNCw2ICszMjIz LDE1IEBAIE1lcmdlQ2hpbGRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlz dF9hdHRubywgaW50IG5ld2NvbF9hdHRubywgY29uc3QKIAkJCQkJIGVycmhpbnQoIkEgY2hp bGQgdGFibGUgY29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQg Y29sdW1uIGlzLiIpKSk7CiAJfQogCisJaWYgKGluaGRlZi0+Z2VuZXJhdGVkICYmIG5ld2Rl Zi0+Z2VuZXJhdGVkICYmIG5ld2RlZi0+Z2VuZXJhdGVkICE9IGluaGRlZi0+Z2VuZXJhdGVk KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9DT0xV TU5fREVGSU5JVElPTiksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBpbmhlcml0cyBm cm9tIGdlbmVyYXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQiLAorCQkJCQkJaW5oZGVm LT5jb2xuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJQYXJlbnQgY29sdW1uIGlzICVzLCBjaGls ZCBjb2x1bW4gaXMgJXMuIiwKKwkJCQkJCSAgIGluaGRlZi0+Z2VuZXJhdGVkID09IEFUVFJJ QlVURV9HRU5FUkFURURfU1RPUkVEID8gIlNUT1JFRCIgOiAiVklSVFVBTCIsCisJCQkJCQkg ICBuZXdkZWYtPmdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCA/ICJT VE9SRUQiIDogIlZJUlRVQUwiKSkpOworCiAJLyoKIAkgKiBJZiBuZXcgZGVmIGhhcyBhIGRl ZmF1bHQsIG92ZXJyaWRlIHByZXZpb3VzIGRlZmF1bHQKIAkgKi8KQEAgLTYwNDAsNyArNjA1 OCw3IEBAIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgT2lkIE9JRE5l d0hlYXAsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQl7CiAJCQljYXNlIENPTlNUUl9DSEVDSzoK IAkJCQluZWVkc2NhbiA9IHRydWU7Ci0JCQkJY29uLT5xdWFsc3RhdGUgPSBFeGVjUHJlcGFy ZUV4cHIoKEV4cHIgKikgY29uLT5xdWFsLCBlc3RhdGUpOworCQkJCWNvbi0+cXVhbHN0YXRl ID0gRXhlY1ByZXBhcmVFeHByKChFeHByICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19p bl9leHByKGNvbi0+cXVhbCwgbmV3cmVsID8gbmV3cmVsIDogb2xkcmVsLCAxKSwgZXN0YXRl KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQ09OU1RSX0ZPUkVJR046CiAJCQkJLyogTm90aGlu ZyB0byBkbyBoZXJlICovCkBAIC03NzYxLDYgKzc3NzksMTQgQEAgQVRFeGVjU2V0Tm90TnVs bChBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkgZXJybXNnKCJj YW5ub3QgYWx0ZXIgc3lzdGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsK IAorCS8qIFRPRE86IHNlZSB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKCkgKi8KKwlpZiAo YXR0VHVwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKKwkJCQkgZXJybXNnKCJub3QtbnVsbCBjb25zdHJhaW50cyBhcmUgbm90IHN1 cHBvcnRlZCBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIiksCisJCQkJIGVycmRldGFp bCgiQ29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgYSB2aXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW4uIiwKKwkJCQkJCSAgIGNvbE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHJlbCkpKSk7CisKIAkvKgogCSAqIE9rYXksIGFjdHVhbGx5IHBlcmZvcm0gdGhlIGNh dGFsb2cgY2hhbmdlIC4uLiBpZiBuZWVkZWQKIAkgKi8KQEAgLTgzNTgsNyArODM4NCwxOCBA QCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBz eXN0ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCi0JaWYgKGF0dFR1 cC0+YXR0Z2VuZXJhdGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQorCS8qCisJ ICogVE9ETzogVGhpcyBjb3VsZCBiZSBkb25lLCBidXQgaXQgd291bGQgbmVlZCBhIGRpZmZl cmVudCBpbXBsZW1lbnRhdGlvbjoKKwkgKiBubyByZXdyaXRpbmcsIGJ1dCBzdGlsbCBuZWVk IHRvIHJlY2hlY2sgYW55IGNvbnN0cmFpbnRzLgorCSAqLworCWlmIChhdHRUdXAtPmF0dGdl bmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CSBlcnJtc2coIkFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRl ZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyIpLAorCQkJCSBlcnJkZXRhaWwoIkNv bHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1uLiIsCisJCQkJCQkgICBjb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShy ZWwpKSkpOworCisJaWYgKCFhdHRUdXAtPmF0dGdlbmVyYXRlZCkKIAkJZXJlcG9ydChFUlJP UiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NU QVRFKSwKIAkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBp cyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uIiwKQEAgLTg1MTUsMTcgKzg1NTIsMzAgQEAgQVRF eGVjRHJvcEV4cHJlc3Npb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLCBi b29sIG1pc3Npbmdfb2ssIExPQ0tNT0QKIAkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgc3lz dGVtIGNvbHVtbiBcIiVzXCIiLAogCQkJCQkJY29sTmFtZSkpKTsKIAotCWlmIChhdHRUdXAt PmF0dGdlbmVyYXRlZCAhPSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwkvKgorCSAq IFRPRE86IFRoaXMgY291bGQgYmUgZG9uZSwgYnV0IGl0IHdvdWxkIG5lZWQgYSB0YWJsZSBy ZXdyaXRlIHRvCisJICogbWF0ZXJpYWxpemUgdGhlIGdlbmVyYXRlZCB2YWx1ZXMuICBOb3Rl IHRoYXQgZm9yIHRoZSB0aW1lIGJlaW5nLCB3ZQorCSAqIHN0aWxsIGVycm9yIHdpdGggbWlz c2luZ19vaywgc28gdGhhdCB3ZSBkb24ndCBzaWxlbnRseSBsZWF2ZSB0aGUgY29sdW1uCisJ ICogYXMgZ2VuZXJhdGVkLgorCSAqLworCWlmIChhdHRUdXAtPmF0dGdlbmVyYXRlZCA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJtc2coIkFM VEVSIFRBQkxFIC8gRFJPUCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSwKKwkJCQkgZXJyZGV0YWlsKCJDb2x1bW4gXCIlc1wi IG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4iLAor CQkJCQkJICAgY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwor CWlmICghYXR0VHVwLT5hdHRnZW5lcmF0ZWQpCiAJewogCQlpZiAoIW1pc3Npbmdfb2spCiAJ CQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5f UFJFUkVRVUlTSVRFX1NUQVRFKSwKLQkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiBy ZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4iLAorCQkJ CQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBn ZW5lcmF0ZWQgY29sdW1uIiwKIAkJCQkJCQljb2xOYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9u TmFtZShyZWwpKSkpOwogCQllbHNlCiAJCXsKIAkJCWVyZXBvcnQoTk9USUNFLAotCQkJCQko ZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBzdG9y ZWQgZ2VuZXJhdGVkIGNvbHVtbiwgc2tpcHBpbmciLAorCQkJCQkoZXJybXNnKCJjb2x1bW4g XCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBz a2lwcGluZyIsCiAJCQkJCQkJY29sTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVs KSkpKTsKIAkJCWhlYXBfZnJlZXR1cGxlKHR1cGxlKTsKIAkJCXRhYmxlX2Nsb3NlKGF0dHJl bGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKQEAgLTg2NjgsNiArODcxOCwxNiBAQCBBVEV4 ZWNTZXRTdGF0aXN0aWNzKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwgaW50 MTYgY29sTnVtLCBOb2RlICpuZXdWYQogCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBzeXN0 ZW0gY29sdW1uIFwiJXNcIiIsCiAJCQkJCQljb2xOYW1lKSkpOwogCisJLyoKKwkgKiBQcmV2 ZW50IHRoaXMgYXMgbG9uZyBhcyB0aGUgQU5BTFlaRSBjb2RlIHNraXBzIHZpcnR1YWwgZ2Vu ZXJhdGVkCisJICogY29sdW1ucy4KKwkgKi8KKwlpZiAoYXR0cnR1cGxlLT5hdHRnZW5lcmF0 ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJy bXNnKCJjYW5ub3QgYWx0ZXIgc3RhdGlzdGljcyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW4gXCIlc1wiIiwKKwkJCQkJCWNvbE5hbWUpKSk7CisKIAlpZiAocmVsLT5yZF9yZWwtPnJl bGtpbmQgPT0gUkVMS0lORF9JTkRFWCB8fAogCQlyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBS RUxLSU5EX1BBUlRJVElPTkVEX0lOREVYKQogCXsKQEAgLTk3NzgsNiArOTgzOCwxOSBAQCBB VEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUlu Zm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJIGVycm1zZygiaW52YWxpZCAlcyBhY3Rp b24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgY29udGFpbmluZyBnZW5lcmF0ZWQgY29s dW1uIiwKIAkJCQkJCQkJIk9OIERFTEVURSIpKSk7CiAJCX0KKworCQkvKgorCQkgKiBGS3Mg b24gdmlydHVhbCBjb2x1bW5zIGFyZSBub3Qgc3VwcG9ydGVkLiAgVGhpcyB3b3VsZCByZXF1 aXJlCisJCSAqIHZhcmlvdXMgYWRkaXRpb25hbCBzdXBwb3J0IGluIHJpX3RyaWdnZXJzLmMs IGluY2x1ZGluZyBzcGVjaWFsCisJCSAqIGhhbmRsaW5nIGluIHJpX051bGxDaGVjaygpLCBy aV9LZXlzRXF1YWwoKSwKKwkJICogUklfRktleV9ma191cGRfY2hlY2tfcmVxdWlyZWQoKSAo c2luY2UgYWxsIHZpcnR1YWwgY29sdW1ucyBhcHBlYXIKKwkJICogYXMgTlVMTCB0aGVyZSku ICBBbHNvIG5vdCByZWFsbHkgcHJhY3RpY2FsIGFzIGxvbmcgYXMgeW91IGNhbid0CisJCSAq IGluZGV4IHZpcnR1YWwgY29sdW1ucy4KKwkJICovCisJCWlmIChhdHRnZW5lcmF0ZWQgPT0g QVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNn KCJmb3JlaWduIGtleSBjb25zdHJhaW50cyBvbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z IGFyZSBub3Qgc3VwcG9ydGVkIikpKTsKIAl9CiAKIAkvKgpAQCAtMTI5MjQsOCArMTI5OTcs MTIgQEAgQVRQcmVwQWx0ZXJDb2x1bW5UeXBlKExpc3QgKip3cXVldWUsCiAJCQkJCSAgIGxp c3RfbWFrZTFfb2lkKHJlbC0+cmRfcmVsLT5yZWx0eXBlKSwKIAkJCQkJICAgMCk7CiAKLQlp ZiAodGFiLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKLQkJdGFiLT5yZWxraW5k ID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJaWYgKGF0dFR1cC0+YXR0Z2VuZXJh dGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwl7CisJCS8qIGRvIG5vdGhp bmcgKi8KKwl9CisJZWxzZSBpZiAodGFiLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04g fHwKKwkJCSB0YWItPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAl7 CiAJCS8qCiAJCSAqIFNldCB1cCBhbiBleHByZXNzaW9uIHRvIHRyYW5zZm9ybSB0aGUgb2xk IGRhdGEgdmFsdWUgdG8gdGhlIG5ldwpAQCAtMTI5OTgsMTEgKzEzMDc1LDEyIEBAIEFUUHJl cEFsdGVyQ29sdW1uVHlwZShMaXN0ICoqd3F1ZXVlLAogCQkJCSBlcnJtc2coIlwiJXNcIiBp cyBub3QgYSB0YWJsZSIsCiAJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkp OwogCi0JaWYgKCFSRUxLSU5EX0hBU19TVE9SQUdFKHRhYi0+cmVsa2luZCkpCisJaWYgKCFS RUxLSU5EX0hBU19TVE9SQUdFKHRhYi0+cmVsa2luZCkgfHwgYXR0VHVwLT5hdHRnZW5lcmF0 ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQogCXsKIAkJLyoKLQkJICogRm9y IHJlbGF0aW9ucyB3aXRob3V0IHN0b3JhZ2UsIGRvIHRoaXMgY2hlY2sgbm93LiAgUmVndWxh ciB0YWJsZXMKLQkJICogd2lsbCBjaGVjayBpdCBsYXRlciB3aGVuIHRoZSB0YWJsZSBpcyBi ZWluZyByZXdyaXR0ZW4uCisJCSAqIEZvciByZWxhdGlvbnMgb3IgY29sdW1ucyB3aXRob3V0 IHN0b3JhZ2UsIGRvIHRoaXMgY2hlY2sgbm93LgorCQkgKiBSZWd1bGFyIHRhYmxlcyB3aWxs IGNoZWNrIGl0IGxhdGVyIHdoZW4gdGhlIHRhYmxlIGlzIGJlaW5nCisJCSAqIHJld3JpdHRl bi4KIAkJICovCiAJCWZpbmRfY29tcG9zaXRlX3R5cGVfZGVwZW5kZW5jaWVzKHJlbC0+cmRf cmVsLT5yZWx0eXBlLCByZWwsIE5VTEwpOwogCX0KQEAgLTE1OTYzLDYgKzE2MDQxLDE0IEBA IE1lcmdlQXR0cmlidXRlc0ludG9FeGlzdGluZyhSZWxhdGlvbiBjaGlsZF9yZWwsIFJlbGF0 aW9uIHBhcmVudF9yZWwsIGJvb2wgaXNwYXJ0CiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKIAkJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgaW4gY2hp bGQgdGFibGUgbXVzdCBub3QgYmUgYSBnZW5lcmF0ZWQgY29sdW1uIiwgcGFyZW50X2F0dG5h bWUpKSk7CiAKKwkJCWlmIChwYXJlbnRfYXR0LT5hdHRnZW5lcmF0ZWQgJiYgY2hpbGRfYXR0 LT5hdHRnZW5lcmF0ZWQgJiYgY2hpbGRfYXR0LT5hdHRnZW5lcmF0ZWQgIT0gcGFyZW50X2F0 dC0+YXR0Z2VuZXJhdGVkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShF UlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVz XCIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1uIG9mIGRpZmZlcmVudCBraW5kIiwg cGFyZW50X2F0dG5hbWUpLAorCQkJCQkJIGVycmRldGFpbCgiUGFyZW50IGNvbHVtbiBpcyAl cywgY2hpbGQgY29sdW1uIGlzICVzLiIsCisJCQkJCQkJCSAgIHBhcmVudF9hdHQtPmF0dGdl bmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRCA/ICJTVE9SRUQiIDogIlZJ UlRVQUwiLAorCQkJCQkJCQkgICBjaGlsZF9hdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJV VEVfR0VORVJBVEVEX1NUT1JFRCA/ICJTVE9SRUQiIDogIlZJUlRVQUwiKSkpOworCiAJCQkv KgogCQkJICogUmVndWxhciBpbmhlcml0YW5jZSBjaGlsZHJlbiBhcmUgaW5kZXBlbmRlbnQg ZW5vdWdoIG5vdCB0bwogCQkJICogaW5oZXJpdCBpZGVudGl0eSBjb2x1bW5zLiAgQnV0IHBh cnRpdGlvbnMgYXJlIGludGVncmFsIHBhcnQgb2YKQEAgLTE4MDk2LDggKzE4MTgyLDExIEBA IENvbXB1dGVQYXJ0aXRpb25BdHRycyhQYXJzZVN0YXRlICpwc3RhdGUsIFJlbGF0aW9uIHJl bCwgTGlzdCAqcGFydFBhcmFtcywgQXR0ck51CiAJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgcGVsZW0tPmxvY2F0aW9uKSkpOwogCiAJCQkvKgotCQkJICogR2VuZXJhdGVk IGNvbHVtbnMgY2Fubm90IHdvcms6IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyIEJFRk9SRQot CQkJICogdHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9yZSBh bGwgdHJpZ2dlcnMuCisJCQkgKiBTdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgY2Fubm90IHdv cms6IFRoZXkgYXJlIGNvbXB1dGVkIGFmdGVyCisJCQkgKiBCRUZPUkUgdHJpZ2dlcnMsIGJ1 dCBwYXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9yZSBhbGwKKwkJCSAqIHRyaWdnZXJz LiAgTWF5YmUgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBjb3VsZCBiZSBtYWRlIHRvCisJ CQkgKiB3b3JrLCBidXQgdGhlbiB0aGV5IHdvdWxkIG5lZWQgdG8gYmUgaGFuZGxlZCBhcyBh biBleHByZXNzaW9uCisJCQkgKiBiZWxvdy4KIAkJCSAqLwogCQkJaWYgKGF0dGZvcm0tPmF0 dGdlbmVyYXRlZCkKIAkJCQllcmVwb3J0KEVSUk9SLApAQCAtMTgxNzksOSArMTgyNjgsMTIg QEAgQ29tcHV0ZVBhcnRpdGlvbkF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmVsYXRpb24g cmVsLCBMaXN0ICpwYXJ0UGFyYW1zLCBBdHRyTnUKIAkJCQl9CiAKIAkJCQkvKgotCQkJCSAq IEdlbmVyYXRlZCBjb2x1bW5zIGNhbm5vdCB3b3JrOiBUaGV5IGFyZSBjb21wdXRlZCBhZnRl cgotCQkJCSAqIEJFRk9SRSB0cmlnZ2VycywgYnV0IHBhcnRpdGlvbiByb3V0aW5nIGlzIGRv bmUgYmVmb3JlIGFsbAotCQkJCSAqIHRyaWdnZXJzLgorCQkJCSAqIFN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1ucyBjYW5ub3Qgd29yazogVGhleSBhcmUgY29tcHV0ZWQKKwkJCQkgKiBhZnRl ciBCRUZPUkUgdHJpZ2dlcnMsIGJ1dCBwYXJ0aXRpb24gcm91dGluZyBpcyBkb25lIGJlZm9y ZQorCQkJCSAqIGFsbCB0cmlnZ2Vycy4gIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgY291 bGQgcHJvYmFibHkKKwkJCQkgKiB3b3JrLCBidXQgaXQgd291bGQgcmVxdWlyZSBtb3JlIHdv cmsgZWxzZXdoZXJlIChmb3IgZXhhbXBsZQorCQkJCSAqIFNFVCBFWFBSRVNTSU9OIHdvdWxk IG5lZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgY29sdW1uIGlzCisJCQkJICogdXNlZCBpbiBw YXJ0aXRpb24ga2V5cykuICBTZWVtcyBzYWZlciB0byBwcm9oaWJpdCBmb3Igbm93LgogCQkJ CSAqLwogCQkJCWkgPSAtMTsKIAkJCQl3aGlsZSAoKGkgPSBibXNfbmV4dF9tZW1iZXIoZXhw cl9hdHRycywgaSkpID49IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKaW5kZXggMzY3MWU4 MjUzNWUuLjc2MDJiMjcxMjU2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCkBAIC00Myw2 ICs0Myw3IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVk ZSAicGFydGl0aW9uaW5nL3BhcnRkZXNjLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCisjaW5j bHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3 cml0ZU1hbmlwLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRp bHMvYWNsLmgiCkBAIC0xMDEsNiArMTAyLDcgQEAgc3RhdGljIHZvaWQgQWZ0ZXJUcmlnZ2Vy U2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJ CQkJCQkgIGJvb2wgaXNfY3Jvc3NwYXJ0X3VwZGF0ZSk7CiBzdGF0aWMgdm9pZCBBZnRlclRy aWdnZXJFbmxhcmdlUXVlcnlTdGF0ZSh2b2lkKTsKIHN0YXRpYyBib29sIGJlZm9yZV9zdG10 X3RyaWdnZXJzX2ZpcmVkKE9pZCByZWxpZCwgQ21kVHlwZSBjbWRUeXBlKTsKK3N0YXRpYyB2 b2lkIGNoZWNrX21vZGlmaWVkX3ZpcnR1YWxfZ2VuZXJhdGVkKFR1cGxlRGVzYyB0dXBkZXNj LCBIZWFwVHVwbGUgdHVwbGUpOwogCiAKIC8qCkBAIC02NDEsNyArNjQzLDggQEAgQ3JlYXRl VHJpZ2dlckZpcmluZ09uKENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVy eVN0cmluZywKIAkJCQkJaWYgKFRSSUdHRVJfRk9SX0JFRk9SRSh0Z3R5cGUpICYmCiAJCQkJ CQl2YXItPnZhcmF0dG5vID09IDAgJiYKIAkJCQkJCVJlbGF0aW9uR2V0RGVzY3IocmVsKS0+ Y29uc3RyICYmCi0JCQkJCQlSZWxhdGlvbkdldERlc2NyKHJlbCktPmNvbnN0ci0+aGFzX2dl bmVyYXRlZF9zdG9yZWQpCisJCQkJCQkoUmVsYXRpb25HZXREZXNjcihyZWwpLT5jb25zdHIt Pmhhc19nZW5lcmF0ZWRfc3RvcmVkIHx8CisJCQkJCQkgUmVsYXRpb25HZXREZXNjcihyZWwp LT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkpCiAJCQkJCQllcmVwb3J0KEVSUk9S LAogCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04p LAogCQkJCQkJCQkgZXJybXNnKCJCRUZPUkUgdHJpZ2dlcidzIFdIRU4gY29uZGl0aW9uIGNh bm5vdCByZWZlcmVuY2UgTkVXIGdlbmVyYXRlZCBjb2x1bW5zIiksCkBAIC05NDMsNiArOTQ2 LDEzIEBAIENyZWF0ZVRyaWdnZXJGaXJpbmdPbihDcmVhdGVUcmlnU3RtdCAqc3RtdCwgY29u c3QgY2hhciAqcXVlcnlTdHJpbmcsCiAJCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9m IHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCiAJCQkJCQkJCW5hbWUsIFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CiAKKwkJCS8qIEN1cnJlbnRseSBkb2Vzbid0 IHdvcmsuICovCisJCQlpZiAoVHVwbGVEZXNjQXR0cihSZWxhdGlvbkdldERlc2NyKHJlbCks IGF0dG51bSAtIDEpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJU VUFMKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVS RV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCWVycm1zZygidmlydHVhbCBnZW5lcmF0ZWQgY29s dW1ucyBhcmUgbm90IHN1cHBvcnRlZCBhcyB0cmlnZ2VyIGNvbHVtbnMiKSwKKwkJCQkJCWVy cmRldGFpbCgiQ29sdW1uIFwiJXNcIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4i LCBuYW1lKSk7CisKIAkJCS8qIENoZWNrIGZvciBkdXBsaWNhdGVzICovCiAJCQlmb3IgKGog PSBpIC0gMTsgaiA+PSAwOyBqLS0pCiAJCQl7CkBAIC0yNTAzLDYgKzI1MTMsOCBAQCBFeGVj QlJJbnNlcnRUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5m bywKIAkJfQogCQllbHNlIGlmIChuZXd0dXBsZSAhPSBvbGR0dXBsZSkKIAkJeworCQkJY2hl Y2tfbW9kaWZpZWRfdmlydHVhbF9nZW5lcmF0ZWQoUmVsYXRpb25HZXREZXNjcihyZWxpbmZv LT5yaV9SZWxhdGlvbkRlc2MpLCBuZXd0dXBsZSk7CisKIAkJCUV4ZWNGb3JjZVN0b3JlSGVh cFR1cGxlKG5ld3R1cGxlLCBzbG90LCBmYWxzZSk7CiAKIAkJCS8qCkBAIC0zMDYwLDYgKzMw NzIsOCBAQCBFeGVjQlJVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgRVBRU3RhdGUg KmVwcXN0YXRlLAogCQl9CiAJCWVsc2UgaWYgKG5ld3R1cGxlICE9IG9sZHR1cGxlKQogCQl7 CisJCQljaGVja19tb2RpZmllZF92aXJ0dWFsX2dlbmVyYXRlZChSZWxhdGlvbkdldERlc2Ny KHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYyksIG5ld3R1cGxlKTsKKwogCQkJRXhlY0ZvcmNl U3RvcmVIZWFwVHVwbGUobmV3dHVwbGUsIG5ld3Nsb3QsIGZhbHNlKTsKIAogCQkJLyoKQEAg LTM0OTAsNiArMzUwNCw4IEBAIFRyaWdnZXJFbmFibGVkKEVTdGF0ZSAqZXN0YXRlLCBSZXN1 bHRSZWxJbmZvICpyZWxpbmZvLAogCiAJCQlvbGRDb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3 aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKIAkJCXRncXVhbCA9IHN0cmluZ1RvTm9k ZSh0cmlnZ2VyLT50Z3F1YWwpOworCQkJdGdxdWFsID0gKE5vZGUgKikgZXhwYW5kX2dlbmVy YXRlZF9jb2x1bW5zX2luX2V4cHIodGdxdWFsLCByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2Ms IFBSUzJfT0xEX1ZBUk5PKTsKKwkJCXRncXVhbCA9IChOb2RlICopIGV4cGFuZF9nZW5lcmF0 ZWRfY29sdW1uc19pbl9leHByKHRncXVhbCwgcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjLCBQ UlMyX05FV19WQVJOTyk7CiAJCQkvKiBDaGFuZ2UgcmVmZXJlbmNlcyB0byBPTEQgYW5kIE5F VyB0byBJTk5FUl9WQVIgYW5kIE9VVEVSX1ZBUiAqLwogCQkJQ2hhbmdlVmFyTm9kZXModGdx dWFsLCBQUlMyX09MRF9WQVJOTywgSU5ORVJfVkFSLCAwKTsKIAkJCUNoYW5nZVZhck5vZGVz KHRncXVhbCwgUFJTMl9ORVdfVkFSTk8sIE9VVEVSX1ZBUiwgMCk7CkBAIC02NjAwLDMgKzY2 MTYsMzQgQEAgcGdfdHJpZ2dlcl9kZXB0aChQR19GVU5DVElPTl9BUkdTKQogewogCVBHX1JF VFVSTl9JTlQzMihNeVRyaWdnZXJEZXB0aCk7CiB9CisKKy8qCisgKiBDaGVjayB3aGV0aGVy IGEgdHJpZ2dlciBtb2RpZmllZCBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiBhbmQgZXJy b3IgaWYKKyAqIHNvLgorICoKKyAqIFdlIG5lZWQgdG8gY2hlY2sgdGhpcyBzbyB0aGF0IHdl IGRvbid0IGVuZCB1cCBzdG9yaW5nIGEgbm9uLW51bGwgdmFsdWUgaW4gYQorICogdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1uLgorICoKKyAqIFdlIGRvbid0IG5lZWQgdG8gY2hlY2sgZm9y IHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucywgc2luY2UgdGhvc2Ugd2lsbCBiZQorICogb3Zl cndyaXR0ZW4gbGF0ZXIgYW55d2F5LgorICovCitzdGF0aWMgdm9pZAorY2hlY2tfbW9kaWZp ZWRfdmlydHVhbF9nZW5lcmF0ZWQoVHVwbGVEZXNjIHR1cGRlc2MsIEhlYXBUdXBsZSB0dXBs ZSkKK3sKKwlpZiAoISh0dXBkZXNjLT5jb25zdHIgJiYgdHVwZGVzYy0+Y29uc3RyLT5oYXNf Z2VuZXJhdGVkX3ZpcnR1YWwpKQorCQlyZXR1cm47CisKKwlmb3IgKGludCBpID0gMDsgaSA8 IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJeworCQlpZiAoVHVwbGVEZXNjQXR0cih0dXBkZXNj LCBpKS0+YXR0Z2VuZXJhdGVkID09IEFUVFJJQlVURV9HRU5FUkFURURfVklSVFVBTCkKKwkJ eworCQkJYm9vbAkJaXNudWxsOworCisJCQlmYXN0Z2V0YXR0cih0dXBsZSwgaSArIDEsIHR1 cGRlc2MsICZpc251bGwpOworCQkJaWYgKCFpc251bGwpCisJCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRV9SX0lfRV9UUklHR0VSX1BST1RPQ09MX1ZJT0xB VEVEKSwKKwkJCQkJCSBlcnJtc2coInRyaWdnZXIgbW9kaWZpZWQgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uIHZhbHVlIikpKTsKKwkJfQorCX0KK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjRXhwckludGVycC5jCmluZGV4IDlmZDk4OGNjOTkyLi42MmQ0NTM2ODdmMiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC0yMTE5LDYgKzIxMTksMTAg QEAgQ2hlY2tWYXJTbG90Q29tcGF0aWJpbGl0eShUdXBsZVRhYmxlU2xvdCAqc2xvdCwgaW50 IGF0dG51bSwgT2lkIHZhcnR5cGUpCiAKIAkJYXR0ciA9IFR1cGxlRGVzY0F0dHIoc2xvdF90 dXBkZXNjLCBhdHRudW0gLSAxKTsKIAorCQkvKiBJbnRlcm5hbCBlcnJvcjogc29tZWJvZHkg Zm9yZ290IHRvIGV4cGFuZCBpdC4gKi8KKwkJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gcmVmZXJlbmNlIik7CisKIAkJaWYgKGF0dHIt PmF0dGlzZHJvcHBlZCkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA3 MjhjZGVlNDgwYi4uYTFjMGRjYWIwNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpA QCAtMTc2MSw2ICsxNzYxLDcgQEAgRXhlY1JlbENoZWNrKFJlc3VsdFJlbEluZm8gKnJlc3Vs dFJlbEluZm8sCiAJCQlFeHByCSAgICpjaGVja2NvbnN0cjsKIAogCQkJY2hlY2tjb25zdHIg PSBzdHJpbmdUb05vZGUoY2hlY2tbaV0uY2NiaW4pOworCQkJY2hlY2tjb25zdHIgPSAoRXhw ciAqKSBleHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW5fZXhwcigoTm9kZSAqKSBjaGVja2Nv bnN0ciwgcmVsLCAxKTsKIAkJCXJlc3VsdFJlbEluZm8tPnJpX0NvbnN0cmFpbnRFeHByc1tp XSA9CiAJCQkJRXhlY1ByZXBhcmVFeHByKGNoZWNrY29uc3RyLCBlc3RhdGUpOwogCQl9CkBA IC0yMzA4LDcgKzIzMDksOSBAQCBFeGVjQnVpbGRTbG90VmFsdWVEZXNjcmlwdGlvbihPaWQg cmVsb2lkLAogCiAJCWlmICh0YWJsZV9wZXJtIHx8IGNvbHVtbl9wZXJtKQogCQl7Ci0JCQlp ZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKKwkJCWlmIChhdHQtPmF0dGdlbmVyYXRlZCA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQkJdmFsID0gInZpcnR1YWwiOworCQkJ ZWxzZSBpZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKIAkJCQl2YWwgPSAibnVsbCI7CiAJCQll bHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBiMWQ0NjQyYzU5Yi4uODFkN2IxMTYxZGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtNjQxLDcgKzY0MSw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAldHlwZSA8c3RyPgkJb3B0X2V4aXN0aW5nX3dpbmRvd19uYW1lCiAldHlw ZSA8Ym9vbGVhbj4gb3B0X2lmX25vdF9leGlzdHMKICV0eXBlIDxib29sZWFuPiBvcHRfdW5p cXVlX251bGxfdHJlYXRtZW50Ci0ldHlwZSA8aXZhbD4JZ2VuZXJhdGVkX3doZW4gb3ZlcnJp ZGVfa2luZAorJXR5cGUgPGl2YWw+CWdlbmVyYXRlZF93aGVuIG92ZXJyaWRlX2tpbmQgb3B0 X3ZpcnR1YWxfb3Jfc3RvcmVkCiAldHlwZSA8cGFydHNwZWM+CVBhcnRpdGlvblNwZWMgT3B0 UGFydGl0aW9uU3BlYwogJXR5cGUgPHBhcnRlbGVtPglwYXJ0X2VsZW0KICV0eXBlIDxsaXN0 PgkJcGFydF9wYXJhbXMKQEAgLTc4OSw3ICs3ODksNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJl Y3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCVVOTElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAK IAlWQUNVVU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNI QVIgVkFSSUFESUMgVkFSWUlORwotCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9M QVRJTEUKKwlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUK IAogCVdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VU IFdPUksgV1JBUFBFUiBXUklURQogCkBAIC0zOTc0LDcgKzM5NzQsNyBAQCBDb2xDb25zdHJh aW50RWxlbToKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KLQkJCXwgR0VORVJBVEVEIGdlbmVyYXRlZF93aGVuIEFTICcoJyBhX2V4cHIg JyknIFNUT1JFRAorCQkJfCBHRU5FUkFURUQgZ2VuZXJhdGVkX3doZW4gQVMgJygnIGFfZXhw ciAnKScgb3B0X3ZpcnR1YWxfb3Jfc3RvcmVkCiAJCQkJewogCQkJCQlDb25zdHJhaW50ICpu ID0gbWFrZU5vZGUoQ29uc3RyYWludCk7CiAKQEAgLTM5ODIsNiArMzk4Miw3IEBAIENvbENv bnN0cmFpbnRFbGVtOgogCQkJCQluLT5nZW5lcmF0ZWRfd2hlbiA9ICQyOwogCQkJCQluLT5y YXdfZXhwciA9ICQ1OwogCQkJCQluLT5jb29rZWRfZXhwciA9IE5VTEw7CisJCQkJCW4tPmdl bmVyYXRlZF9raW5kID0gJDc7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAKIAkJCQkJLyoK QEAgLTQwMjgsNiArNDAyOSwxMiBAQCBnZW5lcmF0ZWRfd2hlbjoKIAkJCXwgQlkgREVGQVVM VAl7ICQkID0gQVRUUklCVVRFX0lERU5USVRZX0JZX0RFRkFVTFQ7IH0KIAkJOwogCitvcHRf dmlydHVhbF9vcl9zdG9yZWQ6CisJCQlTVE9SRUQJCQl7ICQkID0gQVRUUklCVVRFX0dFTkVS QVRFRF9TVE9SRUQ7IH0KKwkJCXwgVklSVFVBTAkJeyAkJCA9IEFUVFJJQlVURV9HRU5FUkFU RURfVklSVFVBTDsgfQorCQkJfCAvKkVNUFRZKi8JCXsgJCQgPSBBVFRSSUJVVEVfR0VORVJB VEVEX1ZJUlRVQUw7IH0KKwkJOworCiAvKgogICogQ29uc3RyYWludEF0dHIgcmVwcmVzZW50 cyBjb25zdHJhaW50IGF0dHJpYnV0ZXMsIHdoaWNoIHdlIHBhcnNlIGFzIGlmCiAgKiB0aGV5 IHdlcmUgaW5kZXBlbmRlbnQgY29uc3RyYWludCBjbGF1c2VzLCBpbiBvcmRlciB0byBhdm9p ZCBzaGlmdC9yZWR1Y2UKQEAgLTE3ODQ1LDYgKzE3ODUyLDcgQEAgdW5yZXNlcnZlZF9rZXl3 b3JkOgogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwogCQkJfCBWSUVXUworCQkJfCBWSVJU VUFMCiAJCQl8IFZPTEFUSUxFCiAJCQl8IFdISVRFU1BBQ0VfUAogCQkJfCBXSVRISU4KQEAg LTE4NDk5LDYgKzE4NTA3LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBWRVJTSU9O X1AKIAkJCXwgVklFVwogCQkJfCBWSUVXUworCQkJfCBWSVJUVUFMCiAJCQl8IFZPTEFUSUxF CiAJCQl8IFdIRU4KIAkJCXwgV0hJVEVTUEFDRV9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5jCmluZGV4IDgwNzViMWI4YTFiLi42ZjhmOTZiMzRkYSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTcwNCw3ICs3MDQsMTEgQEAgc2Nhbk5TSXRl bUZvckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNp dGVtLAogCQkJCQkJY29sbmFtZSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGxvY2F0aW9uKSkpOwogCi0JLyogSW4gZ2VuZXJhdGVkIGNvbHVtbiwgbm8gc3lzdGVtIGNv bHVtbiBpcyBhbGxvd2VkIGV4Y2VwdCB0YWJsZU9pZCAqLworCS8qCisJICogSW4gZ2VuZXJh dGVkIGNvbHVtbiwgbm8gc3lzdGVtIGNvbHVtbiBpcyBhbGxvd2VkIGV4Y2VwdCB0YWJsZU9p ZC4KKwkgKiAoUmVxdWlyZWQgZm9yIHN0b3JlZCBnZW5lcmF0ZWQsIGJ1dCB3ZSBhbHNvIGRv IGl0IGZvciB2aXJ0dWFsIGdlbmVyYXRlZAorCSAqIGZvciBub3cgZm9yIGNvbnNpc3RlbmN5 LikKKwkgKi8KIAlpZiAocHN0YXRlLT5wX2V4cHJfa2luZCA9PSBFWFBSX0tJTkRfR0VORVJB VEVEX0NPTFVNTiAmJgogCQlhdHRudW0gPCBJbnZhbGlkQXR0ck51bWJlciAmJiBhdHRudW0g IT0gVGFibGVPaWRBdHRyaWJ1dGVOdW1iZXIpCiAJCWVyZXBvcnQoRVJST1IsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCAxZTE1Y2UxMGI0OC4uNDcwNzEzOWE5MWYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtNzc5LDcgKzc3OSw3IEBA IHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgQ29s dW1uRGVmICpjb2x1bW4pCiAJCQkJCQkJCQljb2x1bW4tPmNvbG5hbWUsIGN4dC0+cmVsYXRp b24tPnJlbG5hbWUpLAogCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24oY3h0LT5wc3RhdGUs CiAJCQkJCQkJCQkJCQljb25zdHJhaW50LT5sb2NhdGlvbikpKTsKLQkJCQljb2x1bW4tPmdl bmVyYXRlZCA9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEOworCQkJCWNvbHVtbi0+Z2Vu ZXJhdGVkID0gY29uc3RyYWludC0+Z2VuZXJhdGVkX2tpbmQ7CiAJCQkJY29sdW1uLT5yYXdf ZGVmYXVsdCA9IGNvbnN0cmFpbnQtPnJhd19leHByOwogCQkJCUFzc2VydChjb25zdHJhaW50 LT5jb29rZWRfZXhwciA9PSBOVUxMKTsKIAkJCQlzYXdfZ2VuZXJhdGVkID0gdHJ1ZTsKQEAg LTg2Nyw2ICs4NjcsMTggQEAgdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbihDcmVhdGVTdG10 Q29udGV4dCAqY3h0LCBDb2x1bW5EZWYgKmNvbHVtbikKIAkJCQkJCQljb2x1bW4tPmNvbG5h bWUsIGN4dC0+cmVsYXRpb24tPnJlbG5hbWUpLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KGN4dC0+cHN0YXRlLAogCQkJCQkJCQkJCWNvbnN0cmFpbnQtPmxvY2F0aW9uKSkpOworCisJ CS8qCisJCSAqIFRPRE86IFN0cmFpZ2h0Zm9yd2FyZCBub3QtbnVsbCBjb25zdHJhaW50cyB3 b24ndCB3b3JrIG9uIHZpcnR1YWwKKwkJICogZ2VuZXJhdGVkIGNvbHVtbnMsIGJlY2F1c2Ug dGhlcmUgaXMgbm8gc3VwcG9ydCBmb3IgZXhwYW5kaW5nIHRoZQorCQkgKiBjb2x1bW4gd2hl biB0aGUgY29uc3RyYWludCBpcyBjaGVja2VkLiAgTWF5YmUgd2UgY291bGQgY29udmVydCB0 aGUKKwkJICogbm90LW51bGwgY29uc3RyYWludCBpbnRvIGEgZnVsbCBjaGVjayBjb25zdHJh aW50LCBzbyB0aGF0IHRoZQorCQkgKiBnZW5lcmF0aW9uIGV4cHJlc3Npb24gY2FuIGJlIGV4 cGFuZGVkIGF0IGNoZWNrIHRpbWUuCisJCSAqLworCQlpZiAoY29sdW1uLT5pc19ub3RfbnVs bCAmJiBjb2x1bW4tPmdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coIm5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBu b3Qgc3VwcG9ydGVkIG9uIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMiKSkpOwogCX0KIAog CS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpp bmRleCAwMGU3MDI0NTYzZS4uNjBhY2ZiNTg3Y2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1 ZGUgInJlcGxpY2F0aW9uL2xvZ2ljYWxwcm90by5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9u L29yaWdpbi5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Bnb3V0cHV0LmgiCisjaW5jbHVk ZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5z LmgiCiAjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKQEAgLTk5Niw3ICs5OTcsNyBAQCBwZ291dHB1dF9yb3dfZmlsdGVyX2luaXQoUEdP dXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCQkJY29udGludWU7CiAK IAkJCWZvcmVhY2gobGMsIHJmbm9kZXNbaWR4XSkKLQkJCQlmaWx0ZXJzID0gbGFwcGVuZChm aWx0ZXJzLCBzdHJpbmdUb05vZGUoKGNoYXIgKikgbGZpcnN0KGxjKSkpOworCQkJCWZpbHRl cnMgPSBsYXBwZW5kKGZpbHRlcnMsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHBy KHN0cmluZ1RvTm9kZSgoY2hhciAqKSBsZmlyc3QobGMpKSwgcmVsYXRpb24sIDEpKTsKIAog CQkJLyogY29tYmluZSB0aGUgcm93IGZpbHRlciBhbmQgY2FjaGUgdGhlIEV4cHJTdGF0ZSAq LwogCQkJcmZub2RlID0gbWFrZV9vcmNsYXVzZShmaWx0ZXJzKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL3Jld3Jp dGUvcmV3cml0ZUhhbmRsZXIuYwppbmRleCA2ZDU5YTJiYjhkYy4uMDgyOWMzYjQ5ZGIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuYworKysgYi9z cmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKQEAgLTkwLDYgKzkwLDcgQEAg c3RhdGljIExpc3QgKm1hdGNoTG9ja3MoQ21kVHlwZSBldmVudCwgUmVsYXRpb24gcmVsYXRp b24sCiAJCQkJCQlpbnQgdmFybm8sIFF1ZXJ5ICpwYXJzZXRyZWUsIGJvb2wgKmhhc1VwZGF0 ZSk7CiBzdGF0aWMgUXVlcnkgKmZpcmVSSVJydWxlcyhRdWVyeSAqcGFyc2V0cmVlLCBMaXN0 ICphY3RpdmVSSVJzKTsKIHN0YXRpYyBCaXRtYXBzZXQgKmFkanVzdF92aWV3X2NvbHVtbl9z ZXQoQml0bWFwc2V0ICpjb2xzLCBMaXN0ICp0YXJnZXRsaXN0KTsKK3N0YXRpYyBOb2RlICpl eHBhbmRfZ2VuZXJhdGVkX2NvbHVtbnNfaW50ZXJuYWwoTm9kZSAqbm9kZSwgUmVsYXRpb24g cmVsLCBpbnQgcnRfaW5kZXgsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7CiAKIAogLyoKQEAgLTk3 NCw3ICs5NzUsOCBAQCByZXdyaXRlVGFyZ2V0TGlzdElVKExpc3QgKnRhcmdldExpc3QsCiAJ CWlmIChhdHRfdHVwLT5hdHRnZW5lcmF0ZWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBzdG9yZWQg Z2VuZXJhdGVkIGNvbHVtbiB3aWxsIGJlIGZpeGVkIGluIGV4ZWN1dG9yCisJCQkgKiB2aXJ0 dWFsIGdlbmVyYXRlZCBjb2x1bW4gc3RvcmVzIGEgbnVsbCB2YWx1ZTsgc3RvcmVkIGdlbmVy YXRlZAorCQkJICogY29sdW1uIHdpbGwgYmUgZml4ZWQgaW4gZXhlY3V0b3IKIAkJCSAqLwog CQkJbmV3X3RsZSA9IE5VTEw7CiAJCX0KQEAgLTIyNTcsNiArMjI1OSwzMCBAQCBmaXJlUklS cnVsZXMoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqYWN0aXZlUklScykKIAkJdGFibGVfY2xv c2UocmVsLCBOb0xvY2spOwogCX0KIAorCS8qCisJICogRXhwYW5kIHZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbnMgb2YgdGhpcyB0YWJsZQorCSAqCisJICogVGhpcyBtdXN0IGJlIGxhc3Qs IHNpbmNlIHdoYXRldmVyIGVsc2UgZ2V0cyBpbnNlcnRlZCBpbnRvIHRoZSBxdWVyeQorCSAq IGFib3ZlIGNvdWxkIGNvbnRhaW4gYSBnZW5lcmF0ZWQgY29sdW1uLgorCSAqLworCXJ0X2lu ZGV4ID0gMDsKKwlmb3JlYWNoKGxjLCBwYXJzZXRyZWUtPnJ0YWJsZSkKKwl7CisJCVJhbmdl VGJsRW50cnkgKnJ0ZSA9IChSYW5nZVRibEVudHJ5ICopIGxmaXJzdChsYyk7CisJCVJlbGF0 aW9uCXJlbDsKKworCQkrK3J0X2luZGV4OworCisJCWlmIChydGUtPnJ0ZWtpbmQgIT0gUlRF X1JFTEFUSU9OKQorCQkJY29udGludWU7CisKKwkJcmVsID0gdGFibGVfb3BlbihydGUtPnJl bGlkLCBOb0xvY2spOworCisJCXBhcnNldHJlZSA9IChRdWVyeSAqKSBleHBhbmRfZ2VuZXJh dGVkX2NvbHVtbnNfaW50ZXJuYWwoKE5vZGUgKikgcGFyc2V0cmVlLCByZWwsIHJ0X2luZGV4 LCBydGUpOworCisJCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKwl9CisKIAlyZXR1cm4g cGFyc2V0cmVlOwogfQogCkBAIC00MzY1LDYgKzQzOTEsODkgQEAgUmV3cml0ZVF1ZXJ5KFF1 ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKnJld3JpdGVfZXZlbnRzLCBpbnQgb3JpZ19ydF9sZW5n dGgpCiB9CiAKIAorLyoKKyAqIEV4cGFuZCB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCisg KgorICogSWYgdGhlIHRhYmxlIGNvbnRhaW5zIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMs IGJ1aWxkIGEgdGFyZ2V0IGxpc3QKKyAqIGNvbnRhaW5pbmcgdGhlIGV4cGFuZGVkIGV4cHJl c3Npb25zIGFuZCB1c2UgUmVwbGFjZVZhcnNGcm9tVGFyZ2V0TGlzdCgpIHRvCisgKiBkbyB0 aGUgcmVwbGFjZW1lbnRzLgorICovCitzdGF0aWMgTm9kZSAqCitleHBhbmRfZ2VuZXJhdGVk X2NvbHVtbnNfaW50ZXJuYWwoTm9kZSAqbm9kZSwgUmVsYXRpb24gcmVsLCBpbnQgcnRfaW5k ZXgsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKworCXR1 cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisJaWYgKHR1cGRlc2MtPmNvbnN0ciAm JiB0dXBkZXNjLT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwl7CisJCUxpc3QJ ICAgKnRsaXN0ID0gTklMOworCisJCWZvciAoaW50IGkgPSAwOyBpIDwgdHVwZGVzYy0+bmF0 dHM7IGkrKykKKwkJeworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0 dHIodHVwZGVzYywgaSk7CisKKwkJCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklC VVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJeworCQkJCU5vZGUJICAgKmRlZmV4cHI7CisJ CQkJaW50CQkJYXR0bnVtID0gaSArIDE7CisJCQkJT2lkCQkJYXR0Y29sbGlkOworCQkJCVRh cmdldEVudHJ5ICp0ZTsKKworCQkJCWRlZmV4cHIgPSBidWlsZF9jb2x1bW5fZGVmYXVsdChy ZWwsIGF0dG51bSk7CisJCQkJaWYgKGRlZmV4cHIgPT0gTlVMTCkKKwkJCQkJZWxvZyhFUlJP UiwgIm5vIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3VuZCBmb3IgY29sdW1uIG51bWJlciAl ZCBvZiB0YWJsZSBcIiVzXCIiLAorCQkJCQkJIGF0dG51bSwgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSk7CisKKwkJCQkvKgorCQkJCSAqIElmIHRoZSBjb2x1bW4gZGVmaW5pdGlv biBoYXMgYSBjb2xsYXRpb24gYW5kIGl0IGlzCisJCQkJICogZGlmZmVyZW50IGZyb20gdGhl IGNvbGxhdGlvbiBvZiB0aGUgZ2VuZXJhdGlvbiBleHByZXNzaW9uLAorCQkJCSAqIHB1dCBh IENPTExBVEUgY2xhdXNlIGFyb3VuZCB0aGUgZXhwcmVzc2lvbi4KKwkJCQkgKi8KKwkJCQlh dHRjb2xsaWQgPSBhdHRyLT5hdHRjb2xsYXRpb247CisJCQkJaWYgKGF0dGNvbGxpZCAmJiBh dHRjb2xsaWQgIT0gZXhwckNvbGxhdGlvbihkZWZleHByKSkKKwkJCQl7CisJCQkJCUNvbGxh dGVFeHByICpjZSA9IG1ha2VOb2RlKENvbGxhdGVFeHByKTsKKworCQkJCQljZS0+YXJnID0g KEV4cHIgKikgZGVmZXhwcjsKKwkJCQkJY2UtPmNvbGxPaWQgPSBhdHRjb2xsaWQ7CisJCQkJ CWNlLT5sb2NhdGlvbiA9IC0xOworCisJCQkJCWRlZmV4cHIgPSAoTm9kZSAqKSBjZTsKKwkJ CQl9CisKKwkJCQlDaGFuZ2VWYXJOb2RlcyhkZWZleHByLCAxLCBydF9pbmRleCwgMCk7CisK KwkJCQl0ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSBkZWZleHByLCBhdHRudW0sIDAs IGZhbHNlKTsKKwkJCQl0bGlzdCA9IGxhcHBlbmQodGxpc3QsIHRlKTsKKwkJCX0KKwkJfQor CisJCUFzc2VydChsaXN0X2xlbmd0aCh0bGlzdCkgPiAwKTsKKworCQlub2RlID0gUmVwbGFj ZVZhcnNGcm9tVGFyZ2V0TGlzdChub2RlLCBydF9pbmRleCwgMCwgcnRlLCB0bGlzdCwgUkVQ TEFDRVZBUlNfQ0hBTkdFX1ZBUk5PLCBydF9pbmRleCwgTlVMTCk7CisJfQorCisJcmV0dXJu IG5vZGU7Cit9CisKK05vZGUgKgorZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5zX2luX2V4cHIo Tm9kZSAqbm9kZSwgUmVsYXRpb24gcmVsLCBpbnQgcnRfaW5kZXgpCit7CisJVHVwbGVEZXNj CXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwlpZiAodHVwZGVzYy0+Y29u c3RyICYmIHR1cGRlc2MtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCXsKKwkJ UmFuZ2VUYmxFbnRyeSAqcnRlOworCisJCXJ0ZSA9IG1ha2VOb2RlKFJhbmdlVGJsRW50cnkp OworCQlydGUtPnJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWwpOworCQlub2RlID0gZXhw YW5kX2dlbmVyYXRlZF9jb2x1bW5zX2ludGVybmFsKG5vZGUsIHJlbCwgcnRfaW5kZXgsIHJ0 ZSk7CisJfQorCisJcmV0dXJuIG5vZGU7Cit9CisKKwogLyoKICAqIFF1ZXJ5UmV3cml0ZSAt CiAgKgkgIFByaW1hcnkgZW50cnkgcG9pbnQgdG8gdGhlIHF1ZXJ5IHJld3JpdGVyLgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGFydGNhY2hlLmMgYi9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9wYXJ0Y2FjaGUuYwppbmRleCBiZWVjNmNkZGJjNC4uMjBmNjA3 YmMzMzAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BhcnRjYWNoZS5jCkBAIC0yNiw2ICsy Niw3IEBACiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAib3B0aW1p emVyL29wdGltaXplci5oIgogI2luY2x1ZGUgInBhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmgi CisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInV0aWxz L2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAi dXRpbHMvbWVtdXRpbHMuaCIKQEAgLTE1Nyw2ICsxNTgsNyBAQCBSZWxhdGlvbkJ1aWxkUGFy dGl0aW9uS2V5KFJlbGF0aW9uIHJlbGF0aW9uKQogCQkgKiBpbiBjYW5vbmljYWwgZm9ybSBh bHJlYWR5IChpZSwgbm8gbmVlZCBmb3IgT1ItbWVyZ2luZyBvciBjb25zdGFudAogCQkgKiBl bGltaW5hdGlvbikuCiAJCSAqLworCQlleHByID0gZXhwYW5kX2dlbmVyYXRlZF9jb2x1bW5z X2luX2V4cHIoZXhwciwgcmVsYXRpb24sIDEpOwogCQlleHByID0gZXZhbF9jb25zdF9leHBy ZXNzaW9ucyhOVUxMLCBleHByKTsKIAkJZml4X29wZnVuY2lkcyhleHByKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKaW5kZXggYzMyNmY2ODdlYjQuLjljMmM0N2Q5Y2Yz IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTU4OSw2ICs1ODksOCBA QCBSZWxhdGlvbkJ1aWxkVHVwbGVEZXNjKFJlbGF0aW9uIHJlbGF0aW9uKQogCQkJY29uc3Ry LT5oYXNfbm90X251bGwgPSB0cnVlOwogCQlpZiAoYXR0cC0+YXR0Z2VuZXJhdGVkID09IEFU VFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQogCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3N0 b3JlZCA9IHRydWU7CisJCWlmIChhdHRwLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9WSVJUVUFMKQorCQkJY29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwgPSB0 cnVlOwogCQlpZiAoYXR0cC0+YXR0aGFzZGVmKQogCQkJbmRlZisrOwogCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu YwppbmRleCAxMzBiODA3NzVkYi4uM2I5OTQ0YWM2ZGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAt MTYwMDcsNiArMTYwMDcsOSBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29u c3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkJCQlpZiAodGJpbmZvLT5hdHRnZW5lcmF0ZWRb al0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCiAJCQkJCQkJYXBwZW5kUFFFeHBC dWZmZXIocSwgIiBHRU5FUkFURUQgQUxXQVlTIEFTICglcykgU1RPUkVEIiwKIAkJCQkJCQkJ CQkJICB0YmluZm8tPmF0dHJkZWZzW2pdLT5hZGVmX2V4cHIpOworCQkJCQkJZWxzZSBpZiAo dGJpbmZvLT5hdHRnZW5lcmF0ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFM KQorCQkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgR0VORVJBVEVEIEFMV0FZUyBBUyAo JXMpIiwKKwkJCQkJCQkJCQkJICB0YmluZm8tPmF0dHJkZWZzW2pdLT5hZGVmX2V4cHIpOwog CQkJCQkJZWxzZQogCQkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgREVGQVVMVCAlcyIs CiAJCQkJCQkJCQkJCSAgdGJpbmZvLT5hdHRyZGVmc1tqXS0+YWRlZl9leHByKTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYWI2YzgzMDQ5MTMuLjJiNzU5OWQzMjYzIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtMzYzMSwxMiArMzYzMSwxNCBAQAog CQljcmVhdGVfb3JkZXIgPT4gMywKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFRBQkxFIGR1 bXBfdGVzdC50ZXN0X3RhYmxlX2dlbmVyYXRlZCAoCiAJCQkJCQkgICBjb2wxIGludCBwcmlt YXJ5IGtleSwKLQkJCQkJCSAgIGNvbDIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNvbDEg KiAyKSBzdG9yZWQKKwkJCQkJCSAgIGNvbDIgaW50IGdlbmVyYXRlZCBhbHdheXMgYXMgKGNv bDEgKiAyKSBzdG9yZWQsCisJCQkJCQkgICBjb2wzIGludCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChjb2wxICogMykgdmlydHVhbAogCQkJCQkgICApOycsCiAJCXJlZ2V4cCA9PiBxci9eCiAJ CQlcUUNSRUFURSBUQUJMRSBkdW1wX3Rlc3QudGVzdF90YWJsZV9nZW5lcmF0ZWQgKFxFXG4K IAkJCVxzK1xRY29sMSBpbnRlZ2VyIE5PVCBOVUxMLFxFXG4KLQkJCVxzK1xRY29sMiBpbnRl Z2VyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKChjb2wxICogMikpIFNUT1JFRFxFXG4KKwkJCVxz K1xRY29sMiBpbnRlZ2VyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKChjb2wxICogMikpIFNUT1JF RCxcRVxuCisJCQlccytcUWNvbDMgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgoY29s MSAqIDMpKVxFXG4KIAkJCVwpOwogCQkJL3htcywKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRl eCA2YTM2YzkxMDgzMy4uODI0NzkyMDc1YzUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0yMDg5LDYgKzIw ODksMTIgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFt ZSwKIAkJCQkJCQkJCSAgIFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRyZGVmX2NvbCkpOwogCQkJ CW11c3RmcmVlID0gdHJ1ZTsKIAkJCX0KKwkJCWVsc2UgaWYgKGdlbmVyYXRlZFswXSA9PSBB VFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJCQl7CisJCQkJZGVmYXVsdF9zdHIgPSBw c3ByaW50ZigiZ2VuZXJhdGVkIGFsd2F5cyBhcyAoJXMpIiwKKwkJCQkJCQkJCSAgIFBRZ2V0 dmFsdWUocmVzLCBpLCBhdHRyZGVmX2NvbCkpOworCQkJCW11c3RmcmVlID0gdHJ1ZTsKKwkJ CX0KIAkJCWVsc2UKIAkJCQlkZWZhdWx0X3N0ciA9IFBRZ2V0dmFsdWUocmVzLCBpLCBhdHRy ZGVmX2NvbCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90dXBkZXNjLmgg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvdHVwZGVzYy5oCmluZGV4IDg5MzBhMjhkNjYwLi42ZWY0 MDI0OTU4MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3R1cGRlc2MuaAorKysg Yi9zcmMvaW5jbHVkZS9hY2Nlc3MvdHVwZGVzYy5oCkBAIC00Myw2ICs0Myw3IEBAIHR5cGVk ZWYgc3RydWN0IFR1cGxlQ29uc3RyCiAJdWludDE2CQludW1fY2hlY2s7CiAJYm9vbAkJaGFz X25vdF9udWxsOwogCWJvb2wJCWhhc19nZW5lcmF0ZWRfc3RvcmVkOworCWJvb2wJCWhhc19n ZW5lcmF0ZWRfdmlydHVhbDsKIH0gVHVwbGVDb25zdHI7CiAKIC8qCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5o CmluZGV4IGM1MTI4MjRjZDFjLi4yMzVhZDczZWVkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9oZWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgKQEAg LTIzLDYgKzIzLDcgQEAKICNkZWZpbmUgQ0hLQVRZUEVfQU5ZQVJSQVkJCTB4MDEJLyogYWxs b3cgQU5ZQVJSQVkgKi8KICNkZWZpbmUgQ0hLQVRZUEVfQU5ZUkVDT1JECQkweDAyCS8qIGFs bG93IFJFQ09SRCBhbmQgUkVDT1JEW10gKi8KICNkZWZpbmUgQ0hLQVRZUEVfSVNfUEFSVEtF WQkJMHgwNAkvKiBhdHRuYW1lIGlzIHBhcnQga2V5ICMgbm90IGNvbHVtbiAqLworI2RlZmlu ZSBDSEtBVFlQRV9JU19WSVJUVUFMCQkweDA4CS8qIGlzIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbiAqLwogCiB0eXBlZGVmIHN0cnVjdCBSYXdDb2x1bW5EZWZhdWx0CiB7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAppbmRleCAxYzYyYjhiZmNiNS4uOGYxNThkYzYwODMg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKKysrIGIv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaApAQCAtMjM0LDYgKzIzNCw3IEBA IE1BS0VfU1lTQ0FDSEUoQVRUTlVNLCBwZ19hdHRyaWJ1dGVfcmVsaWRfYXR0bnVtX2luZGV4 LCAxMjgpOwogI2RlZmluZQkJICBBVFRSSUJVVEVfSURFTlRJVFlfQllfREVGQVVMVCAnZCcK IAogI2RlZmluZQkJICBBVFRSSUJVVEVfR0VORVJBVEVEX1NUT1JFRAkncycKKyNkZWZpbmUJ CSAgQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMCSd2JwogCiAjZW5kaWYJCQkJCQkJLyog RVhQT1NFX1RPX0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCBlNjJjZTFiNzUzNi4uOGU5Yzk5ODBlODEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK QEAgLTI3MzksNiArMjczOSw3IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0cmFpbnQKIAljaGFy CSAgICpjb29rZWRfZXhwcjsJLyogQ0hFQ0sgb3IgREVGQVVMVCBleHByZXNzaW9uLCBhcwog CQkJCQkJCQkgKiBub2RlVG9TdHJpbmcgcmVwcmVzZW50YXRpb24gKi8KIAljaGFyCQlnZW5l cmF0ZWRfd2hlbjsgLyogQUxXQVlTIG9yIEJZIERFRkFVTFQgKi8KKwljaGFyCQlnZW5lcmF0 ZWRfa2luZDsgLyogU1RPUkVEIG9yIFZJUlRVQUwgKi8KIAlpbnQJCQlpbmhjb3VudDsJCS8q IGluaXRpYWwgaW5oZXJpdGFuY2UgY291bnQgdG8gYXBwbHksIGZvcgogCQkJCQkJCQkgKiAi cmF3IiBOT1QgTlVMTCBjb25zdHJhaW50cyAqLwogCWJvb2wJCW51bGxzX25vdF9kaXN0aW5j dDsgLyogbnVsbCB0cmVhdG1lbnQgZm9yIFVOSVFVRSBjb25zdHJhaW50cyAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCmluZGV4IDg5OWQ2NGFkNTVmLi5lZmUyNWQ3ZGUwZiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaApAQCAtNDkwLDYgKzQ5MCw3IEBAIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJC T1NFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi dmVyc2lvbiIsIFZFUlNJT05fUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgidmlldyIsIFZJRVcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInZpZXdzIiwgVklFV1MsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKK1BHX0tFWVdPUkQoInZpcnR1YWwiLCBWSVJUVUFMLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2b2xhdGlsZSIsIFZPTEFUSUxFLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ3aGVuIiwgV0hF TiwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIndoZXJlIiwg V0hFUkUsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIGIvc3JjL2luY2x1ZGUvcmV3cml0ZS9y ZXdyaXRlSGFuZGxlci5oCmluZGV4IDFiNjVjZGE3MWNmLi44ZWM4NzkxOTNlMiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oCisrKyBiL3NyYy9p bmNsdWRlL3Jld3JpdGUvcmV3cml0ZUhhbmRsZXIuaApAQCAtMzgsNCArMzgsNiBAQCBleHRl cm4gdm9pZCBlcnJvcl92aWV3X25vdF91cGRhdGFibGUoUmVsYXRpb24gdmlldywKIAkJCQkJ CQkJCSBMaXN0ICptZXJnZUFjdGlvbkxpc3QsCiAJCQkJCQkJCQkgY29uc3QgY2hhciAqZGV0 YWlsKTsKIAorZXh0ZXJuIE5vZGUgKmV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHBy KE5vZGUgKm5vZGUsIFJlbGF0aW9uIHJlbCwgaW50IHJ0X2luZGV4KTsKKwogI2VuZGlmCQkJ CQkJCS8qIFJFV1JJVEVIQU5ETEVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBlcmwv ZXhwZWN0ZWQvcGxwZXJsX3RyaWdnZXIub3V0IGIvc3JjL3BsL3BscGVybC9leHBlY3RlZC9w bHBlcmxfdHJpZ2dlci5vdXQKaW5kZXggZDQ4NzllMmYwM2IuLjQyYzUyZWNiYmE4IDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dAorKysg Yi9zcmMvcGwvcGxwZXJsL2V4cGVjdGVkL3BscGVybF90cmlnZ2VyLm91dApAQCAtOCw3ICs4 LDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiApOwogQ1JFQVRFIFRBQkxFIHRy aWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgIGkgaW50LAotICAgIGogaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGkgKiAyKSBTVE9SRUQKKyAgICBqIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChpICogMikgU1RPUkVELAorICAgIGsgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkg KiAzKSBWSVJUVUFMCiApOwogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdHJpZ2dlcl9k YXRhKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdFIHBscGVybCBBUyAkJAogCkBAIC0zODYs NyArMzg3LDcgQEAgSU5TRVJUIElOVE8gdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZCAoaSkgVkFM VUVTICgxKTsKIEVSUk9SOiAgY2Fubm90IHNldCBnZW5lcmF0ZWQgY29sdW1uICJqIgogQ09O VEVYVDogIFBML1BlcmwgZnVuY3Rpb24gImdlbmVyYXRlZF90ZXN0X2Z1bmMxIgogU0VMRUNU ICogRlJPTSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkOwotIGkgfCBqIAotLS0tKy0tLQorIGkg fCBqIHwgayAKKy0tLSstLS0rLS0tCiAoMCByb3dzKQogCmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZXJsL3BscGVybC5jIGIvc3JjL3BsL3BscGVybC9wbHBlcmwuYwppbmRleCBmZTcxOTkz NWM2Ny4uNGNiNTk2OWM1ODkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvcGxwZXJsLmMK KysrIGIvc3JjL3BsL3BscGVybC9wbHBlcmwuYwpAQCAtMzA0OCw2ICszMDQ4LDkgQEAgcGxw ZXJsX2hhc2hfZnJvbV90dXBsZShIZWFwVHVwbGUgdHVwbGUsIFR1cGxlRGVzYyB0dXBkZXNj LCBib29sIGluY2x1ZGVfZ2VuZXJhdGUKIAkJCS8qIGRvbid0IGluY2x1ZGUgdW5sZXNzIHJl cXVlc3RlZCAqLwogCQkJaWYgKCFpbmNsdWRlX2dlbmVyYXRlZCkKIAkJCQljb250aW51ZTsK KwkJCS8qIG5ldmVyIGluY2x1ZGUgdmlydHVhbCBjb2x1bW5zICovCisJCQlpZiAoYXR0LT5h dHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJCWNvbnRp bnVlOwogCQl9CiAKIAkJYXR0bmFtZSA9IE5hbWVTdHIoYXR0LT5hdHRuYW1lKTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNxbCBiL3NyYy9wbC9w bHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNxbAppbmRleCA0YWRkZGViODBhYy4uMjc5OGEw MmZhMTIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBlcmwvc3FsL3BscGVybF90cmlnZ2VyLnNx bAorKysgYi9zcmMvcGwvcGxwZXJsL3NxbC9wbHBlcmxfdHJpZ2dlci5zcWwKQEAgLTEwLDcg KzEwLDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdCAoCiAKIENSRUFURSBUQUJMRSB0 cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkICgKICAgICBpIGludCwKLSAgICBqIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoaSAqIDIpIFNUT1JFRCwKKyAgICBrIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChp ICogMykgVklSVFVBTAogKTsKIAogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdHJpZ2dl cl9kYXRhKCkgUkVUVVJOUyB0cmlnZ2VyIExBTkdVQUdFIHBscGVybCBBUyAkJApkaWZmIC0t Z2l0IGEvc3JjL3BsL3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0IGIv c3JjL3BsL3BscHl0aG9uL2V4cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0CmluZGV4IDRj YjkwY2I1MjA0Li42NGVhYjJmYTNmNCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscHl0aG9uL2V4 cGVjdGVkL3BscHl0aG9uX3RyaWdnZXIub3V0CisrKyBiL3NyYy9wbC9wbHB5dGhvbi9leHBl Y3RlZC9wbHB5dGhvbl90cmlnZ2VyLm91dApAQCAtNjksNyArNjksOCBAQCBDUkVBVEUgVEFC TEUgdHJpZ2dlcl90ZXN0CiAJKGkgaW50LCB2IHRleHQgKTsKIENSRUFURSBUQUJMRSB0cmln Z2VyX3Rlc3RfZ2VuZXJhdGVkICgKIAlpIGludCwKLSAgICAgICAgaiBpbnQgR0VORVJBVEVE IEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAgICAgICBqIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChpICogMikgU1RPUkVELAorICAgICAgICBrIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChpICogMykgVklSVFVBTAogKTsKIENSRUFURSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEo KSBSRVRVUk5TIHRyaWdnZXIgTEFOR1VBR0UgcGxweXRob24zdSBBUyAkJAogCkBAIC02MTQs OCArNjE1LDggQEAgRVJST1I6ICBjYW5ub3Qgc2V0IGdlbmVyYXRlZCBjb2x1bW4gImoiCiBD T05URVhUOiAgd2hpbGUgbW9kaWZ5aW5nIHRyaWdnZXIgcm93CiBQTC9QeXRob24gZnVuY3Rp b24gImdlbmVyYXRlZF90ZXN0X2Z1bmMxIgogU0VMRUNUICogRlJPTSB0cmlnZ2VyX3Rlc3Rf Z2VuZXJhdGVkOwotIGkgfCBqIAotLS0tKy0tLQorIGkgfCBqIHwgayAKKy0tLSstLS0rLS0t CiAoMCByb3dzKQogCiAtLSByZWN1cnNpdmUgY2FsbCBvZiBhIHRyaWdnZXIgbXVzdG4ndCBj b3JydXB0IFREIChidWcgIzE4NDU2KQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscHl0aG9uL3Bs cHlfdHlwZWlvLmMgYi9zcmMvcGwvcGxweXRob24vcGxweV90eXBlaW8uYwppbmRleCBkYjE0 YzVmOGRhZS4uNTFlMWQ2MTAyNTkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHB5dGhvbi9wbHB5 X3R5cGVpby5jCisrKyBiL3NyYy9wbC9wbHB5dGhvbi9wbHB5X3R5cGVpby5jCkBAIC04NDQs NiArODQ0LDkgQEAgUEx5RGljdF9Gcm9tVHVwbGUoUEx5RGF0dW1Ub09iICphcmcsIEhlYXBU dXBsZSB0dXBsZSwgVHVwbGVEZXNjIGRlc2MsIGJvb2wgaW5jbHUKIAkJCQkvKiBkb24ndCBp bmNsdWRlIHVubGVzcyByZXF1ZXN0ZWQgKi8KIAkJCQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVk KQogCQkJCQljb250aW51ZTsKKwkJCQkvKiBuZXZlciBpbmNsdWRlIHZpcnR1YWwgY29sdW1u cyAqLworCQkJCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRF RF9WSVJUVUFMKQorCQkJCQljb250aW51ZTsKIAkJCX0KIAogCQkJa2V5ID0gTmFtZVN0cihh dHRyLT5hdHRuYW1lKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHB5dGhvbi9zcWwvcGxweXRo b25fdHJpZ2dlci5zcWwgYi9zcmMvcGwvcGxweXRob24vc3FsL3BscHl0aG9uX3RyaWdnZXIu c3FsCmluZGV4IGY2YzJlZjhkNmEwLi40NDA1NDljMDc4NSAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscHl0aG9uL3NxbC9wbHB5dGhvbl90cmlnZ2VyLnNxbAorKysgYi9zcmMvcGwvcGxweXRo b24vc3FsL3BscHl0aG9uX3RyaWdnZXIuc3FsCkBAIC02OSw3ICs2OSw4IEBAIENSRUFURSBU QUJMRSB0cmlnZ2VyX3Rlc3QKIAogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0 ZWQgKAogCWkgaW50LAotICAgICAgICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICog MikgU1RPUkVECisgICAgICAgIGogaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAyKSBT VE9SRUQsCisgICAgICAgIGsgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJU VUFMCiApOwogCiBDUkVBVEUgRlVOQ1RJT04gdHJpZ2dlcl9kYXRhKCkgUkVUVVJOUyB0cmln Z2VyIExBTkdVQUdFIHBscHl0aG9uM3UgQVMgJCQKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wv ZXhwZWN0ZWQvcGx0Y2xfdHJpZ2dlci5vdXQgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3RyaWdnZXIub3V0CmluZGV4IDEyOWFiZDViYTY3Li41Mjk4ZTUwYTVlYyAxMDA2NDQKLS0t IGEvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF90cmlnZ2VyLm91dAorKysgYi9zcmMvcGwv dGNsL2V4cGVjdGVkL3BsdGNsX3RyaWdnZXIub3V0CkBAIC02Myw3ICs2Myw4IEBAIENSRUFU RSBUQUJMRSB0cmlnZ2VyX3Rlc3QgKAogQUxURVIgVEFCTEUgdHJpZ2dlcl90ZXN0IERST1Ag ZHJvcG1lOwogQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQgKAogICAgaSBp bnQsCi0gICBqIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVECisgICBq IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICogMikgU1RPUkVELAorICAgayBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoaSAqIDMpIFZJUlRVQUwKICk7CiBDUkVBVEUgVklFVyB0cmln Z2VyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgaSwgdiBGUk9NIHRyaWdnZXJfdGVzdDsKIENSRUFU RSBGVU5DVElPTiB0cmlnZ2VyX2RhdGEoKSByZXR1cm5zIHRyaWdnZXIgbGFuZ3VhZ2UgcGx0 Y2wgYXMgJF8kCkBAIC02NDcsNyArNjQ4LDcgQEAgTk9USUNFOiAgT0xEOiB7fQogTk9USUNF OiAgVEdfbGV2ZWw6IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFf dHJpZ19iZWZvcmUKIE5PVElDRTogIFRHX29wOiBJTlNFUlQKLU5PVElDRTogIFRHX3JlbGF0 dHM6IHt7fSBpIGp9CitOT1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9CiBOT1RJQ0U6 ICBUR19yZWxpZDogYm9ndXM6MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25hbWU6IHRyaWdn ZXJfdGVzdF9nZW5lcmF0ZWQKIE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTogcHVibGljCkBA IC02NTgsNyArNjU5LDcgQEAgTk9USUNFOiAgT0xEOiB7fQogTk9USUNFOiAgVEdfbGV2ZWw6 IFJPVwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19hZnRlcgog Tk9USUNFOiAgVEdfb3A6IElOU0VSVAotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0K K05PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBi b2d1czoxMjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVy YXRlZAogTk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTY3MCw3ICs2NzEs NyBAQCBOT1RJQ0U6ICBPTEQ6IHtpOiAxLCBqOiAyfQogTk9USUNFOiAgVEdfbGV2ZWw6IFJP VwogTk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19iZWZvcmUKIE5P VElDRTogIFRHX29wOiBVUERBVEUKLU5PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGp9CitO T1RJQ0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9CiBOT1RJQ0U6ICBUR19yZWxpZDogYm9n dXM6MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25hbWU6IHRyaWdnZXJfdGVzdF9nZW5lcmF0 ZWQKIE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTogcHVibGljCkBAIC02ODEsNyArNjgyLDcg QEAgTk9USUNFOiAgT0xEOiB7aTogMSwgajogMn0KIE5PVElDRTogIFRHX2xldmVsOiBST1cK IE5PVElDRTogIFRHX25hbWU6IHNob3dfdHJpZ2dlcl9kYXRhX3RyaWdfYWZ0ZXIKIE5PVElD RTogIFRHX29wOiBVUERBVEUKLU5PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGp9CitOT1RJ Q0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9CiBOT1RJQ0U6ICBUR19yZWxpZDogYm9ndXM6 MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25hbWU6IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQK IE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTogcHVibGljCkBAIC02OTMsNyArNjk0LDcgQEAg Tk9USUNFOiAgT0xEOiB7aTogMTEsIGo6IDIyfQogTk9USUNFOiAgVEdfbGV2ZWw6IFJPVwog Tk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19iZWZvcmUKIE5PVElD RTogIFRHX29wOiBERUxFVEUKLU5PVElDRTogIFRHX3JlbGF0dHM6IHt7fSBpIGp9CitOT1RJ Q0U6ICBUR19yZWxhdHRzOiB7e30gaSBqIGt9CiBOT1RJQ0U6ICBUR19yZWxpZDogYm9ndXM6 MTIzNDUKIE5PVElDRTogIFRHX3RhYmxlX25hbWU6IHRyaWdnZXJfdGVzdF9nZW5lcmF0ZWQK IE5PVElDRTogIFRHX3RhYmxlX3NjaGVtYTogcHVibGljCkBAIC03MDQsNyArNzA1LDcgQEAg Tk9USUNFOiAgT0xEOiB7aTogMTEsIGo6IDIyfQogTk9USUNFOiAgVEdfbGV2ZWw6IFJPVwog Tk9USUNFOiAgVEdfbmFtZTogc2hvd190cmlnZ2VyX2RhdGFfdHJpZ19hZnRlcgogTk9USUNF OiAgVEdfb3A6IERFTEVURQotTk9USUNFOiAgVEdfcmVsYXR0czoge3t9IGkgan0KK05PVElD RTogIFRHX3JlbGF0dHM6IHt7fSBpIGoga30KIE5PVElDRTogIFRHX3JlbGlkOiBib2d1czox MjM0NQogTk9USUNFOiAgVEdfdGFibGVfbmFtZTogdHJpZ2dlcl90ZXN0X2dlbmVyYXRlZAog Tk9USUNFOiAgVEdfdGFibGVfc2NoZW1hOiBwdWJsaWMKQEAgLTg4Miw3ICs4ODMsNyBAQCBU UlVOQ0FURSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkOwogSU5TRVJUIElOVE8gdHJpZ2dlcl90 ZXN0X2dlbmVyYXRlZCAoaSkgVkFMVUVTICgxKTsKIEVSUk9SOiAgY2Fubm90IHNldCBnZW5l cmF0ZWQgY29sdW1uICJqIgogU0VMRUNUICogRlJPTSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVk OwotIGkgfCBqIAotLS0tKy0tLQorIGkgfCBqIHwgayAKKy0tLSstLS0rLS0tCiAoMCByb3dz KQogCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL3BsdGNsLmMgYi9zcmMvcGwvdGNsL3BsdGNs LmMKaW5kZXggZTJjY2FhODRmM2YuLmJjNDU0MTJkYWFiIDEwMDY0NAotLS0gYS9zcmMvcGwv dGNsL3BsdGNsLmMKKysrIGIvc3JjL3BsL3RjbC9wbHRjbC5jCkBAIC0zMjAzLDYgKzMyMDMs OSBAQCBwbHRjbF9idWlsZF90dXBsZV9hcmd1bWVudChIZWFwVHVwbGUgdHVwbGUsIFR1cGxl RGVzYyB0dXBkZXNjLCBib29sIGluY2x1ZGVfZ2VuZQogCQkJLyogZG9uJ3QgaW5jbHVkZSB1 bmxlc3MgcmVxdWVzdGVkICovCiAJCQlpZiAoIWluY2x1ZGVfZ2VuZXJhdGVkKQogCQkJCWNv bnRpbnVlOworCQkJLyogbmV2ZXIgaW5jbHVkZSB2aXJ0dWFsIGNvbHVtbnMgKi8KKwkJCWlm IChhdHQtPmF0dGdlbmVyYXRlZCA9PSBBVFRSSUJVVEVfR0VORVJBVEVEX1ZJUlRVQUwpCisJ CQkJY29udGludWU7CiAJCX0KIAogCQkvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNs L3NxbC9wbHRjbF90cmlnZ2VyLnNxbCBiL3NyYy9wbC90Y2wvc3FsL3BsdGNsX3RyaWdnZXIu c3FsCmluZGV4IDJhMjQ0ZGU4M2JjLi4wZWQwMGY0OTUyNiAxMDA2NDQKLS0tIGEvc3JjL3Bs L3RjbC9zcWwvcGx0Y2xfdHJpZ2dlci5zcWwKKysrIGIvc3JjL3BsL3RjbC9zcWwvcGx0Y2xf dHJpZ2dlci5zcWwKQEAgLTczLDcgKzczLDggQEAgQ1JFQVRFIFRBQkxFIHRyaWdnZXJfdGVz dCAoCiAKIENSRUFURSBUQUJMRSB0cmlnZ2VyX3Rlc3RfZ2VuZXJhdGVkICgKICAgIGkgaW50 LAotICAgaiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRAorICAgaiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSAqIDIpIFNUT1JFRCwKKyAgIGsgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGkgKiAzKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgVklFVyB0cmln Z2VyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgaSwgdiBGUk9NIHRyaWdnZXJfdGVzdDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfdGFibGVfbGlrZS5vdXQKaW5k ZXggNmJmYzZkMDQwZmYuLjk3MTU3ZGM2MzViIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dApAQCAtMTEzLDE5ICsxMTMsMjAg QEAgU0VMRUNUICogRlJPTSB0ZXN0X2xpa2VfaWRfMzsgIC0tIGlkZW50aXR5IHdhcyBjb3Bp ZWQgYW5kIGFwcGxpZWQKICgxIHJvdykKIAogRFJPUCBUQUJMRSB0ZXN0X2xpa2VfaWRfMSwg dGVzdF9saWtlX2lkXzIsIHRlc3RfbGlrZV9pZF8zOwotQ1JFQVRFIFRBQkxFIHRlc3RfbGlr ZV9nZW5fMSAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9S RUQpOworQ1JFQVRFIFRBQkxFIHRlc3RfbGlrZV9nZW5fMSAoYSBpbnQsIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAzKSBWSVJUVUFMKTsKIFxkIHRlc3RfbGlrZV9nZW5fMQogICAgICAgICAgICAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZXN0X2xpa2VfZ2VuXzEiCiAgQ29sdW1uIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAKIC0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGIgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9y ZWQKKyBjICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChhICogMykKIAogSU5TRVJUIElOVE8gdGVzdF9saWtlX2dlbl8xIChh KSBWQUxVRVMgKDEpOwogU0VMRUNUICogRlJPTSB0ZXN0X2xpa2VfZ2VuXzE7Ci0gYSB8IGIg Ci0tLS0rLS0tCi0gMSB8IDIKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAyIHwg MwogKDEgcm93KQogCiBDUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8yIChMSUtFIHRlc3Rf bGlrZV9nZW5fMSk7CkBAIC0xMzUsMTIgKzEzNiwxMyBAQCBDUkVBVEUgVEFCTEUgdGVzdF9s aWtlX2dlbl8yIChMSUtFIHRlc3RfbGlrZV9nZW5fMSk7CiAtLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKKyBjICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKIAogSU5TRVJUIElOVE8gdGVzdF9saWtlX2dlbl8yIChhKSBWQUxVRVMgKDEpOwog U0VMRUNUICogRlJPTSB0ZXN0X2xpa2VfZ2VuXzI7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8 ICAKKyBhIHwgYiB8IGMgCistLS0rLS0tKy0tLQorIDEgfCAgIHwgIAogKDEgcm93KQogCiBD UkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8zIChMSUtFIHRlc3RfbGlrZV9nZW5fMSBJTkNM VURJTkcgR0VORVJBVEVEKTsKQEAgLTE1MCwxMiArMTUyLDEzIEBAIENSRUFURSBUQUJMRSB0 ZXN0X2xpa2VfZ2VuXzMgKExJS0UgdGVzdF9saWtlX2dlbl8xIElOQ0xVRElORyBHRU5FUkFU RUQpOwogLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGMgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMg YXMgKGEgKiAzKQogCiBJTlNFUlQgSU5UTyB0ZXN0X2xpa2VfZ2VuXzMgKGEpIFZBTFVFUyAo MSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5fMzsKLSBhIHwgYiAKLS0tLSstLS0K LSAxIHwgMgorIGEgfCBiIHwgYyAKKy0tLSstLS0rLS0tCisgMSB8IDIgfCAzCiAoMSByb3cp CiAKIERST1AgVEFCTEUgdGVzdF9saWtlX2dlbl8xLCB0ZXN0X2xpa2VfZ2VuXzIsIHRlc3Rf bGlrZV9nZW5fMzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2Vu ZXJhdGVkX3N0b3JlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRl ZF9zdG9yZWQub3V0CmluZGV4IDhlYThhM2E5MmQyLi44ZjA5NTFlMjZhNyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfc3RvcmVkLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF9zdG9yZWQub3V0CkBAIC0x LDUgKzEsNSBAQAogLS0gc2FuaXR5IGNoZWNrIG9mIHN5c3RlbSBjYXRhbG9nCi1TRUxFQ1Qg YXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVS RSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnKTsKK1NFTEVDVCBhdHRyZWxpZCwgYXR0 bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdlbmVyYXRl ZCBOT1QgSU4gKCcnLCAncycsICd2Jyk7CiAgYXR0cmVsaWQgfCBhdHRuYW1lIHwgYXR0Z2Vu ZXJhdGVkIAogLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KICgwIHJvd3Mp CkBAIC0yMTcsNiArMjE3LDI3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlk OwogICAyIHwgMjAgfCAyMDAgfCA0MCB8IDQwMAogKDIgcm93cykKIAorRFJPUCBUQUJMRSBn dGVzdG07CitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgKKyAgYSBpbnQgUFJJTUFSWSBLRVksCisg IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQKKyk7CitJTlNFUlQg SU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBn OworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVzdG0gQVMgcyBPTiAyICogdC5hID0g cy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRVUk5JTkcgKjsKKyBhICB8IGIgIHwg YSAgfCBiICAKKy0tLS0rLS0tLSstLS0tKy0tLS0KKyAgMSB8ICAyIHwgIDEgfCAgMgorICAy IHwgIDQgfCAgMiB8ICA0CisgIDMgfCAgNiB8ICAzIHwgIDYKKyAgNCB8ICA4IHwgIDQgfCAg OAorICA1IHwgMTAgfCAgNSB8IDEwCisgIDYgfCAxMiB8ICA2IHwgMTIKKyAgNyB8IDE0IHwg IDcgfCAxNAorICA4IHwgMTYgfCAgOCB8IDE2CisgIDkgfCAxOCB8ICA5IHwgMTgKKyAxMCB8 IDIwIHwgMTAgfCAyMAorKDEwIHJvd3MpCisKIERST1AgVEFCTEUgZ3Rlc3RtOwogLS0gdmll d3MKIENSRUFURSBWSUVXIGd0ZXN0MXYgQVMgU0VMRUNUICogRlJPTSBndGVzdDE7CkBAIC03 NjIsNiArNzgzLDExIEBAIENSRUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtF WSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqCiBJTlNFUlQgSU5U TyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjQg KGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgogRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGd0 ZXN0ZG9tYWluMSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJndGVzdGRvbWFpbjFfY2hl Y2siCitDUkVBVEUgVFlQRSBndGVzdGRvbWFpbjFyYW5nZSBBUyByYW5nZSAoc3VidHlwZSA9 IGd0ZXN0ZG9tYWluMSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyNHIgKGEgaW50IFBSSU1BUlkg S0VZLCBiIGd0ZXN0ZG9tYWluMXJhbmdlIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGd0ZXN0ZG9t YWluMXJhbmdlKGEsIGEgKyA1KSkgU1RPUkVEKTsKK0lOU0VSVCBJTlRPIGd0ZXN0MjRyIChh KSBWQUxVRVMgKDQpOyAgLS0gb2sKK0lOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMg KDYpOyAgLS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBndGVzdGRvbWFpbjEg dmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3Rkb21haW4xX2NoZWNrIgogLS0gdHlw ZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKIENSRUFURSBUWVBFIGd0ZXN0 X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYzIGJpZ2ludCk7CiBDUkVBVEUgVEFC TEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFM V0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CkBAIC0xMDkyLDkgKzExMTgsOSBAQCBTRUxFQ1Qg KiBGUk9NIGd0ZXN0Mjk7CiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIFNF VCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImEi IG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uCiBBTFRF UiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIERST1AgRVhQUkVTU0lPTjsgIC0tIGVy cm9yCi1FUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBh IHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uCitFUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRp b24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4KIEFMVEVSIFRBQkxFIGd0 ZXN0MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OIElGIEVYSVNUUzsgIC0tIG5v dGljZQotTk9USUNFOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgbm90 IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCitOT1RJQ0U6ICBjb2x1bW4g ImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0ZWQgY29sdW1uLCBz a2lwcGluZwogLS0gQ2hhbmdlIHRoZSBleHByZXNzaW9uCiBBTFRFUiBUQUJMRSBndGVzdDI5 IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7CiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0Mjk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dl bmVyYXRlZF9zdG9yZWQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0 ZWRfdmlydHVhbC5vdXQKc2ltaWxhcml0eSBpbmRleCA2NyUKY29weSBmcm9tIHNyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKY29weSB0byBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dAppbmRleCA4ZWE4YTNh OTJkMi4uNGNmNGY4MTE4ZjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZ2VuZXJhdGVkX3N0b3JlZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKQEAgLTEsMTUgKzEsMTUgQEAKIC0tIHNhbml0eSBj aGVjayBvZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRn ZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAo JycsICdzJyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9N IHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnLCAndicp OwogIGF0dHJlbGlkIHwgYXR0bmFtZSB8IGF0dGdlbmVyYXRlZCAKIC0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCi1DUkVBVEUgU0NIRU1BIGdlbmVy YXRlZF9zdG9yZWRfdGVzdHM7Ci1HUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3N0 b3JlZF90ZXN0cyBUTyBQVUJMSUM7Ci1TRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBTVE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQpOwotU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBjb2x1bW5f ZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9leHByZXNz aW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVfc2NoZW1h ID0gJ2dlbmVyYXRlZF9zdG9yZWRfdGVzdHMnIE9SREVSIEJZIDEsIDI7CitDUkVBVEUgU0NI RU1BIGdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworR1JBTlQgVVNBR0UgT04gU0NIRU1BIGdl bmVyYXRlZF92aXJ0dWFsX3Rlc3RzIFRPIFBVQkxJQzsKK1NFVCBzZWFyY2hfcGF0aCA9IGdl bmVyYXRlZF92aXJ0dWFsX3Rlc3RzOworQ1JFQVRFIFRBQkxFIGd0ZXN0MCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBWSVJUVUFMKTsKK0NS RUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CitTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1u X25hbWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5l cmF0aW9uX2V4cHJlc3Npb24gRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyBXSEVS RSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMnIE9SREVSIEJZIDEs IDI7CiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwgY29sdW1uX2RlZmF1bHQgfCBpc19u dWxsYWJsZSB8IGlzX2dlbmVyYXRlZCB8IGdlbmVyYXRpb25fZXhwcmVzc2lvbiAKIC0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGd0ZXN0MCAgICAgfCBh ICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgTk8gICAgICAgICAgfCBORVZFUiAgICAg ICAgfCAKQEAgLTE4LDg5ICsxOCw4OSBAQCBTRUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25h bWUsIGNvbHVtbl9kZWZhdWx0LCBpc19udWxsYWJsZSwgaXNfZ2VuZXJhdGVkLCBnZW5lcgog IGd0ZXN0MSAgICAgfCBiICAgICAgICAgICB8ICAgICAgICAgICAgICAgIHwgWUVTICAgICAg ICAgfCBBTFdBWVMgICAgICAgfCAoYSAqIDIpCiAoNCByb3dzKQogCi1TRUxFQ1QgdGFibGVf bmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBpbmZvcm1hdGlvbl9z Y2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJsZV9zY2hlbWEgPSAnZ2VuZXJh dGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKK1NFTEVDVCB0YWJsZV9uYW1l LCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0aW9uX3NjaGVt YS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRf dmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKICB0YWJsZV9uYW1lIHwgY29sdW1u X25hbWUgfCBkZXBlbmRlbnRfY29sdW1uIAogLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tCiAgZ3Rlc3QxICAgICB8IGEgICAgICAgICAgIHwgYgogKDEg cm93KQogCiBcZCBndGVzdDEKLSAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF9zdG9yZWRfdGVzdHMuZ3Rlc3QxIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVk X3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0g YiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoYSAqIDIpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogSW5kZXhlczoKICAg ICAiZ3Rlc3QxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIAogLS0gZHVwbGljYXRl IGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8xIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMSAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKIEVSUk9SOiAg bXVsdGlwbGUgZ2VuZXJhdGlvbiBjbGF1c2VzIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBv ZiB0YWJsZSAiZ3Rlc3RfZXJyXzEiCi1MSU5FIDE6IC4uLkFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgR0VORVJBVEVEIC4uLgorTElORSAxOiAu Li5SWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIEdF TkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCiAtLSByZWZlcmVuY2VzIHRvIG90aGVyIGdlbmVyYXRl ZCBjb2x1bW5zLCBpbmNsdWRpbmcgc2VsZi1yZWZlcmVuY2VzCi1DUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRVQUwp OwogRVJST1I6ICBjYW5ub3QgdXNlIGdlbmVyYXRlZCBjb2x1bW4gImIiIGluIGNvbHVtbiBn ZW5lcmF0aW9uIGV4cHJlc3Npb24KLUxJTkUgMTogLi4uMmEgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPLi4uCitMSU5FIDE6IC4u LjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAq IDIpIFZJUi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5u b3QgcmVmZXJlbmNlIGFub3RoZXIgZ2VuZXJhdGVkIGNvbHVtbi4KLUNSRUFURSBUQUJMRSBn dGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMykg U1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNl IGdlbmVyYXRlZCBjb2x1bW4gImIiIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24K LUxJTkUgMTogLi4uQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChiICogMykgU1RPLi4uCitMSU5FIDE6IC4uLllTIEFTIChhICogMikgVklSVFVB TCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDMpIFZJUi4uLgogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIEEgZ2VuZXJhdGVkIGNvbHVtbiBjYW5ub3QgcmVmZXJlbmNlIGFub3RoZXIg Z2VuZXJhdGVkIGNvbHVtbi4KIC0tIGEgd2hvbGUtcm93IHZhciBpcyBhIHNlbGYtcmVmZXJl bmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFNUT1JFRCk7CisgICAgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwp OwogRVJST1I6ICBjYW5ub3QgdXNlIHdob2xlLXJvdyB2YXJpYWJsZSBpbiBjb2x1bW4gZ2Vu ZXJhdGlvbiBleHByZXNzaW9uCi1MSU5FIDI6ICAgICBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChudW1fbnVsbHMoZ3Rlc3RfZXJyXzJjKSkgU1RPUi4uLgorTElORSAyOiAgICAgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8yYykpIFZJUlQu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBERVRBSUw6ICBUaGlzIHdvdWxkIGNhdXNlIHRoZSBnZW5lcmF0ZWQgY29sdW1uIHRvIGRl cGVuZCBvbiBpdHMgb3duIHZhbHVlLgogLS0gaW52YWxpZCByZWZlcmVuY2UKLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfMyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGMgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDIpIFZJ UlRVQUwpOwogRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0Ci1MSU5FIDE6IC4u Ll8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAq IDIpIFNUTy4uLgorTElORSAxOiAuLi5fMyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGMgKiAyKSBWSVIuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBnZW5lcmF0 aW9uIGV4cHJlc3Npb24gbXVzdCBiZSBpbW11dGFibGUKLUNSRUFURSBUQUJMRSBndGVzdF9l cnJfNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lvbiBHRU5FUkFURUQg QUxXQVlTIEFTIChyYW5kb20oKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf NCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZG91YmxlIHByZWNpc2lvbiBHRU5FUkFURUQgQUxX QVlTIEFTIChyYW5kb20oKSkgVklSVFVBTCk7CiBFUlJPUjogIGdlbmVyYXRpb24gZXhwcmVz c2lvbiBpcyBub3QgaW1tdXRhYmxlCiAtLSAuLi4gYnV0IGJlIHN1cmUgdGhhdCB0aGUgaW1t dXRhYmlsaXR5IHRlc3QgaXMgYWNjdXJhdGUKLUNSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50 LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgfHwgJyBzZWMnKSBWSVJUVUFMKTsKIERST1AgVEFCTEUgZ3Rlc3QyOwogLS0gY2Fubm90 IGhhdmUgZGVmYXVsdC9pZGVudGl0eSBhbmQgZ2VuZXJhdGVkCi1DUkVBVEUgVEFCTEUgZ3Rl c3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81 YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTCk7CiBFUlJPUjogIGJvdGggZGVmYXVsdCBhbmQgZ2VuZXJh dGlvbiBleHByZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rl c3RfZXJyXzVhIgogTElORSAxOiAuLi4gZ3Rlc3RfZXJyXzVhIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgREVGQVVMVCA1IEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVBVEUgVEFC TEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMKTsKIEVSUk9SOiAgYm90aCBpZGVudGl0eSBhbmQgZ2VuZXJhdGlvbiBleHBy ZXNzaW9uIHNwZWNpZmllZCBmb3IgY29sdW1uICJiIiBvZiB0YWJsZSAiZ3Rlc3RfZXJyXzVi IgogTElORSAxOiAuLi50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IGlkZW50aXR5IEdFTkVSQVRFRCAuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSByZWZlcmVuY2UgdG8gc3lz dGVtIGNvbHVtbiBub3QgYWxsb3dlZCBpbiBnZW5lcmF0ZWQgY29sdW1uCiAtLSAoZXhjZXB0 IHRhYmxlb2lkLCB3aGljaCB3ZSB0ZXN0IGJlbG93KQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl82YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4 bWluIDw+IDM3KSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl82YSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh4bWluIDw+IDM3KSBW SVJUVUFMKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBzeXN0ZW0gY29sdW1uICJ4bWluIiBpbiBj b2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBMSU5FIDE6IC4uLmEgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGJvb2wgR0VORVJBVEVEIEFMV0FZUyBBUyAoeG1pbiA8PiAzNy4uLgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KIC0tIHZhcmlvdXMgcHJvaGliaXRlZCBjb25zdHJ1Y3RzCi1DUkVBVEUgVEFCTEUg Z3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYXZnKGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YSAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGF2ZyhhKSkgVklS VFVBTCk7CiBFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCi1MSU5FIDE6IC4uLjdhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBTVC4uLgor TElORSAxOiAuLi43YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGF2ZyhhKSkgVkkuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAocm93 X251bWJlcigpIE9WRVIgKE9SREVSIEJZIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl83YiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKHJvd19udW1iZXIoKSBPVkVSIChPUkRFUiBCWSBhKSkgVklSVFVBTCk7CiBFUlJPUjog IHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9u IGV4cHJlc3Npb25zCiBMSU5FIDE6IC4uLjdiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAocm93X251bWJlci4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfN2MgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTICgoU0VMRUNUIGEpKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vy cl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChT RUxFQ1QgYSkpIFZJUlRVQUwpOwogRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNv bHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb24KIExJTkUgMTogLi4uN2MgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoU0VMRUNUIGEpLi4uCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgU1RPUkVE KTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwgYSkpIFZJUlRVQUwp OwogRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g Y29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMKIExJTkUgMTogLi4uN2QgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zLi4uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogLS0gR0VORVJBVEVEIEJZIERFRkFVTFQgbm90IGFsbG93ZWQKLUNSRUFURSBU QUJMRSBndGVzdF9lcnJfOCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBC WSBERUZBVUxUIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9lcnJf OCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIChh ICogMikgVklSVFVBTCk7CiBFUlJPUjogIGZvciBhIGdlbmVyYXRlZCBjb2x1bW4sIEdFTkVS QVRFRCBBTFdBWVMgbXVzdCBiZSBzcGVjaWZpZWQKIExJTkUgMTogLi4uRSBndGVzdF9lcnJf OCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxULi4uCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgpAQCAtMTUzLDE2ICsxNTMsMTAgQEAgU0VMRUNUIGEsIGIgRlJPTSBndGVzdDEg V0hFUkUgYiA9IDQgT1JERVIgQlkgYTsKICAyIHwgNAogKDEgcm93KQogCi0tLSB0ZXN0IHRo YXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiB3cml0ZQorLS0gdGVzdCB0aGF0IG92ZXJm bG93IGVycm9yIGhhcHBlbnMgb24gcmVhZAogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAo MjAwMDAwMDAwMCk7Ci1FUlJPUjogIGludGVnZXIgb3V0IG9mIHJhbmdlCiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MTsKLSBhIHwgYiAKLS0tLSstLS0KLSAyIHwgNAotIDEgfCAyCi0oMiByb3dz KQotCitFUlJPUjogIGludGVnZXIgb3V0IG9mIHJhbmdlCiBERUxFVEUgRlJPTSBndGVzdDEg V0hFUkUgYSA9IDIwMDAwMDAwMDA7CiAtLSB0ZXN0IHdpdGggam9pbnMKIENSRUFURSBUQUJM RSBndGVzdHggKHggaW50LCB5IGludCk7CkBAIC0yMDMsOCArMTk3LDggQEAgQ1JFQVRFIFRB QkxFIGd0ZXN0bSAoCiAgIGlkIGludCBQUklNQVJZIEtFWSwKICAgZjEgaW50LAogICBmMiBp bnQsCi0gIGYzIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFNUT1JFRCwKLSAg ZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgU1RPUkVECisgIGYzIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFZJUlRVQUwsCisgIGY0IGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdG0g VkFMVUVTICgxLCA1LCAxMDApOwogTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyAoVkFMVUVT ICgxLCAxMCksICgyLCAyMCkpIHYoaWQsIGYxKSBPTiB0LmlkID0gdi5pZApAQCAtMjE3LDYg KzIxMSwyNyBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRFUiBCWSBpZDsKICAgMiB8IDIw IHwgMjAwIHwgNDAgfCA0MDAKICgyIHJvd3MpCiAKK0RST1AgVEFCTEUgZ3Rlc3RtOworQ1JF QVRFIFRBQkxFIGd0ZXN0bSAoCisgIGEgaW50IFBSSU1BUlkgS0VZLAorICBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTAorKTsKK0lOU0VSVCBJTlRPIGd0ZXN0 bSAoYSkgU0VMRUNUIGcgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTApIGc7CitNRVJHRSBJ TlRPIGd0ZXN0bSB0IFVTSU5HIGd0ZXN0bSBBUyBzIE9OIDIgKiB0LmEgPSBzLmIgV0hFTiBN QVRDSEVEIFRIRU4gREVMRVRFIFJFVFVSTklORyAqOworIGEgIHwgYiAgfCBhICB8IGIgIAor LS0tLSstLS0tKy0tLS0rLS0tLQorICAxIHwgIDIgfCAgMSB8ICAyCisgIDIgfCAgNCB8ICAy IHwgIDQKKyAgMyB8ICA2IHwgIDMgfCAgNgorICA0IHwgIDggfCAgNCB8ICA4CisgIDUgfCAx MCB8ICA1IHwgMTAKKyAgNiB8IDEyIHwgIDYgfCAxMgorICA3IHwgMTQgfCAgNyB8IDE0Cisg IDggfCAxNiB8ICA4IHwgMTYKKyAgOSB8IDE4IHwgIDkgfCAxOAorIDEwIHwgMjAgfCAxMCB8 IDIwCisoMTAgcm93cykKKwogRFJPUCBUQUJMRSBndGVzdG07CiAtLSB2aWV3cwogQ1JFQVRF IFZJRVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKQEAgLTI3MywxMSArMjg4 LDExIEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QxXzE7CiAoMCByb3dzKQogCiBcZCBndGVzdDFf MQotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MV8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5n dGVzdDFfMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAotIGIgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAy KSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIEluaGVyaXRzOiBndGVzdDEKIAogSU5TRVJU IElOVE8gZ3Rlc3QxXzEgVkFMVUVTICg0KTsKQEAgLTI5NiwxMiArMzExLDEyIEBAIFNFTEVD VCAqIEZST00gZ3Rlc3QxOwogCiAtLSBjYW4ndCBoYXZlIGdlbmVyYXRlZCBjb2x1bW4gdGhh dCBpcyBhIGNoaWxkIG9mIG5vcm1hbCBjb2x1bW4KIENSRUFURSBUQUJMRSBndGVzdF9ub3Jt YWwgKGEgaW50LCBiIGludCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChh IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCkgSU5IRVJJ VFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0X25vcm1h bF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJU VUFMKSBJTkhFUklUUyAoZ3Rlc3Rfbm9ybWFsKTsgIC0tIGVycm9yCiBOT1RJQ0U6ICBtZXJn aW5nIGNvbHVtbiAiYSIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgogTk9USUNFOiAgbWVy Z2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRlZmluaXRpb24KIEVSUk9SOiAgY2hp bGQgY29sdW1uICJiIiBzcGVjaWZpZXMgZ2VuZXJhdGlvbiBleHByZXNzaW9uCiBISU5UOiAg QSBjaGlsZCB0YWJsZSBjb2x1bW4gY2Fubm90IGJlIGdlbmVyYXRlZCB1bmxlc3MgaXRzIHBh cmVudCBjb2x1bW4gaXMuCi1DUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGlu dCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxkIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3Rfbm9ybWFsX2NoaWxk IElOSEVSSVQgZ3Rlc3Rfbm9ybWFsOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJiIiBp biBjaGlsZCB0YWJsZSBtdXN0IG5vdCBiZSBhIGdlbmVyYXRlZCBjb2x1bW4KIERST1AgVEFC TEUgZ3Rlc3Rfbm9ybWFsLCBndGVzdF9ub3JtYWxfY2hpbGQ7CkBAIC0zMTIsMjMgKzMyNyw0 MiBAQCBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQgY29sdW1u IGJ1dCBzcGVjaWZpZXMgZGVmYXVsdAogQ1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURFTlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAg LS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgY29sdW1uICJiIiB3aXRoIGluaGVyaXRlZCBk ZWZpbml0aW9uCiBFUlJPUjogIGNvbHVtbiAiYiIgaW5oZXJpdHMgZnJvbSBnZW5lcmF0ZWQg Y29sdW1uIGJ1dCBzcGVjaWZpZXMgaWRlbnRpdHkKLUNSRUFURSBUQUJMRSBndGVzdHggKHgg aW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkgSU5IRVJJ VFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAorQ1JFQVRFIFRBQkxFIGd0 ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVE KSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCitOT1RJQ0U6ICBtZXJnaW5nIGNvbHVt biAiYiIgd2l0aCBpbmhlcml0ZWQgZGVmaW5pdGlvbgorRVJST1I6ICBjb2x1bW4gImIiIGlu aGVyaXRzIGZyb20gZ2VuZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZAorREVUQUlM OiAgUGFyZW50IGNvbHVtbiBpcyBWSVJUVUFMLCBjaGlsZCBjb2x1bW4gaXMgU1RPUkVELgor Q1JFQVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyMikgVklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVz IHBhcmVudAogTk9USUNFOiAgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5oZXJpdGVkIGRl ZmluaXRpb24KIFxkKyBndGVzdHgKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdHgiCi0gQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRp b24gCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCi0gYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgIHwg ICAgICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIyKSBzdG9yZWQgfCBwbGFpbiAgIHwg ICAgICAgICAgICAgIHwgCi0geCAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBwbGFpbiAgIHwg ICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3R4IgorIENvbHVtbiB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgfCBTdG9yYWdlIHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgcGxhaW4gICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IGlu dGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEg KiAyMikgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgeCAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHBsYWluICAgfCAgICAgICAgICAgICAgfCAKIEluaGVyaXRzOiBndGVzdDEKIAorSU5TRVJU IElOVE8gZ3Rlc3R4IChhLCB4KSBWQUxVRVMgKDExLCAyMik7CitTRUxFQ1QgKiBGUk9NIGd0 ZXN0MTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgIDMgfCAgNgorICA0IHwgIDgKKyAxMSB8 IDIyCisoMyByb3dzKQorCitTRUxFQ1QgKiBGUk9NIGd0ZXN0eDsKKyBhICB8ICBiICB8IHgg IAorLS0tLSstLS0tLSstLS0tCisgMTEgfCAyNDIgfCAyMgorKDEgcm93KQorCiBDUkVBVEUg VEFCTEUgZ3Rlc3R4eF8xIChhIGludCBOT1QgTlVMTCwgYiBpbnQpOwogQUxURVIgVEFCTEUg Z3Rlc3R4eF8xIElOSEVSSVQgZ3Rlc3QxOyAgLS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJi IiBpbiBjaGlsZCB0YWJsZSBtdXN0IGJlIGEgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRB QkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9U IE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFM VEVSIFRBQkxFIGd0ZXN0eHhfMyBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCi1DUkVBVEUgVEFC TEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVE LCBhIGludCBOT1QgTlVMTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgYSBpbnQgTk9UIE5VTEwpOwogQUxU RVIgVEFCTEUgZ3Rlc3R4eF80IElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sKIC0tIHRlc3QgbXVs dGlwbGUgaW5oZXJpdGFuY2UgbWlzbWF0Y2hlcwogQ1JFQVRFIFRBQkxFIGd0ZXN0eSAoeCBp bnQsIGIgaW50IERFRkFVTFQgNTUpOwpAQCAtMzQxLDI4ICszNzUsMjggQEAgQ1JFQVRFIFRB QkxFIGd0ZXN0MV95ICgpIElOSEVSSVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJvcgog Tk9USUNFOiAgbWVyZ2luZyBtdWx0aXBsZSBpbmhlcml0ZWQgZGVmaW5pdGlvbnMgb2YgY29s dW1uICJiIgogRVJST1I6ICBpbmhlcml0ZWQgY29sdW1uICJiIiBoYXMgYSBnZW5lcmF0aW9u IGNvbmZsaWN0CiBEUk9QIFRBQkxFIGd0ZXN0eTsKLUNSRUFURSBUQUJMRSBndGVzdHkgKHgg aW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMjIpIFNUT1JFRCk7CitDUkVB VEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCAq IDIyKSBWSVJUVUFMKTsKIENSRUFURSBUQUJMRSBndGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rl c3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKIE5PVElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5o ZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVtbiAiYiIKIEVSUk9SOiAgY29sdW1uICJiIiBp bmhlcml0cyBjb25mbGljdGluZyBnZW5lcmF0aW9uIGV4cHJlc3Npb25zCiBISU5UOiAgVG8g cmVzb2x2ZSB0aGUgY29uZmxpY3QsIHNwZWNpZnkgYSBnZW5lcmF0aW9uIGV4cHJlc3Npb24g ZXhwbGljaXRseS4KLUNSRUFURSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoeCArIDEpIFNUT1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0t IG9rCitDUkVBVEUgVEFCTEUgZ3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KHggKyAxKSBWSVJUVUFMKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKIE5P VElDRTogIG1lcmdpbmcgbXVsdGlwbGUgaW5oZXJpdGVkIGRlZmluaXRpb25zIG9mIGNvbHVt biAiYiIKIE5PVElDRTogIG1vdmluZyBhbmQgbWVyZ2luZyBjb2x1bW4gImIiIHdpdGggaW5o ZXJpdGVkIGRlZmluaXRpb24KIERFVEFJTDogIFVzZXItc3BlY2lmaWVkIGNvbHVtbiBtb3Zl ZCB0byB0aGUgcG9zaXRpb24gb2YgdGhlIGluaGVyaXRlZCBjb2x1bW4uCiBcZCBndGVzdDFf eQotICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0 ZXN0MV95IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5n dGVzdDFfeSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAg ICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAotIGIgICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKHggKyAx KSBzdG9yZWQKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzICh4ICsgMSkKICB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKIEluaGVyaXRzOiBndGVzdDEsCiAgICAgICAgICAgZ3Rlc3R5 CiAKIC0tIHRlc3QgY29ycmVjdCBoYW5kbGluZyBvZiBHRU5FUkFURUQgY29sdW1uIHRoYXQn cyBvbmx5IGluIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRF IFRBQkxFIGd0ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JF RCkgSU5IRVJJVFMoZ3Rlc3RwKTsKK0NSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChmMSsxKSBWSVJUVUFMKSBJTkhFUklUUyhndGVzdHApOwogSU5T RVJUIElOVE8gZ3Rlc3RjIHZhbHVlcyg0Mik7CiBUQUJMRSBndGVzdGM7CiAgZjEgfCBmMiAK QEAgLTM3OSw4ICs0MTMsOCBAQCBUQUJMRSBndGVzdGM7CiAKIERST1AgVEFCTEUgZ3Rlc3Rw IENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHRhYmxlIGd0ZXN0YwotLS0g dGVzdCBzdG9yZWQgdXBkYXRlCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzIChhIGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CistLSB0ZXN0IHVwZGF0ZSBY WFgKK0NSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMykgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVzdDMgKGEpIFZBTFVFUyAo MSksICgyKSwgKDMpLCAoTlVMTCk7CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBh OwogIGEgfCBiIApAQCAtNDAxLDcgKzQzNSw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9S REVSIEJZIGE7CiAgICAgfCAgIAogKDQgcm93cykKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0M2Eg KGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEpIFNU T1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QzYSAoYSB0ZXh0LCBiIHRleHQgR0VORVJBVEVE IEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgVklSVFVBTCk7CiBJTlNFUlQgSU5UTyBndGVz dDNhIChhKSBWQUxVRVMgKCdhJyksICgnYicpLCAoJ2MnKSwgKE5VTEwpOwogU0VMRUNUICog RlJPTSBndGVzdDNhIE9SREVSIEJZIGE7CiAgYSB8ICBiICAKQEAgLTQ2Niw3ICs1MDAsNyBA QCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogKDQgcm93cykKIAogLS0gbnVs bCB2YWx1ZXMKLUNSRUFURSBUQUJMRSBndGVzdDIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxMKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0MiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKE5V TEwpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyIFZBTFVFUyAoMSk7CiBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjsKICBhIHwgYiAKQEAgLTQ3NSw3ICs1MDksNyBAQCBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjsKICgxIHJvdykKIAogLS0gc2ltcGxlIGNvbHVtbiByZWZlcmVuY2UgZm9y IHZhcmxlbmEgdHlwZXMKLUNSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNoYXIs IGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X3ZhcmxlbmEgKGEgdmFyY2hhciwgYiB2YXJjaGFyIEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVuYSAoYSkgVkFM VUVTKCcwMTIzNDU2Nzg5MDEyMzQ1Njc4OScpOwogSU5TRVJUIElOVE8gZ3Rlc3RfdmFybGVu YSAoYSkgVkFMVUVTKE5VTEwpOwogU0VMRUNUICogRlJPTSBndGVzdF92YXJsZW5hIE9SREVS IEJZIGE7CkBAIC00OTAsNyArNTI0LDcgQEAgRFJPUCBUQUJMRSBndGVzdF92YXJsZW5hOwog Q1JFQVRFIFRZUEUgZG91YmxlX2ludCBhcyAoYSBpbnQsIGIgaW50KTsKIENSRUFURSBUQUJM RSBndGVzdDQgKAogICAgIGEgaW50LAotICAgIGIgZG91YmxlX2ludCBHRU5FUkFURUQgQUxX QVlTIEFTICgoYSAqIDIsIGEgKiAzKSkgU1RPUkVECisgICAgYiBkb3VibGVfaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKChhICogMiwgYSAqIDMpKSBWSVJUVUFMCiApOwogSU5TRVJUIElO VE8gZ3Rlc3Q0IFZBTFVFUyAoMSksICg2KTsKIFNFTEVDVCAqIEZST00gZ3Rlc3Q0OwpAQCAt NTA1LDExICs1MzksMTEgQEAgRFJPUCBUWVBFIGRvdWJsZV9pbnQ7CiAtLSB1c2luZyB0YWJs ZW9pZCBpcyBhbGxvd2VkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfdGFibGVvaWQgKAogICBhIGlu dCBQUklNQVJZIEtFWSwKLSAgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lk ID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIFNUT1JFRAorICBiIGJvb2wgR0VORVJB VEVEIEFMV0FZUyBBUyAodGFibGVvaWQgPSAnZ3Rlc3RfdGFibGVvaWQnOjpyZWdjbGFzcykg VklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3RhYmxlb2lkIFZBTFVFUyAoMSksICgy KTsKIEFMVEVSIFRBQkxFIGd0ZXN0X3RhYmxlb2lkIEFERCBDT0xVTU4KLSAgYyByZWdjbGFz cyBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCkgU1RPUkVEOworICBjIHJlZ2NsYXNz IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHRhYmxlb2lkKSBWSVJUVUFMOwogU0VMRUNUICogRlJP TSBndGVzdF90YWJsZW9pZDsKICBhIHwgYiB8ICAgICAgIGMgICAgICAgIAogLS0tKy0tLSst LS0tLS0tLS0tLS0tLS0tCkBAIC01MTgsNyArNTUyLDcgQEAgU0VMRUNUICogRlJPTSBndGVz dF90YWJsZW9pZDsKICgyIHJvd3MpCiAKIC0tIGRyb3AgY29sdW1uIGJlaGF2aW9yCi1DUkVB VEUgVEFCTEUgZ3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDEw IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGIgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsg IC0tIGZhaWxzCiBFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0 MTAgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAogREVUQUlMOiAgY29sdW1u IGMgb2YgdGFibGUgZ3Rlc3QxMCBkZXBlbmRzIG9uIGNvbHVtbiBiIG9mIHRhYmxlIGd0ZXN0 MTAKQEAgLTUyNiwzMCArNTYwLDMxIEBAIEhJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCiBBTFRFUiBUQUJMRSBndGVzdDEw IERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0tIGRyb3BzIGMgdG9vCiBOT1RJQ0U6ICBkcm9w IGNhc2NhZGVzIHRvIGNvbHVtbiBjIG9mIHRhYmxlIGd0ZXN0MTAKIFxkIGd0ZXN0MTAKLSAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MTAiCisgICAgICBUYWJs ZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QxMCIKICBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAogLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgCiBJbmRleGVzOgogICAgICJndGVzdDEwX3BrZXki IFBSSU1BUlkgS0VZLCBidHJlZSAoYSkKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JF RCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBH RU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVz dDEwYSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElOVE8gZ3Rlc3QxMGEgKGEpIFZBTFVFUyAo MSk7CiAtLSBwcml2aWxlZ2VzCiBDUkVBVEUgVVNFUiByZWdyZXNzX3VzZXIxMTsKLUNSRUFU RSBUQUJMRSBndGVzdDExcyAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMikgU1RPUkVEKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MTFz IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwotR1JBTlQgU0VMRUNUIChhLCBjKSBPTiBndGVz dDExcyBUTyByZWdyZXNzX3VzZXIxMTsKK0NSRUFURSBUQUJMRSBndGVzdDExdiAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikg VklSVFVBTCk7CitJTlNFUlQgSU5UTyBndGVzdDExdiBWQUxVRVMgKDEsIDEwKSwgKDIsIDIw KTsKK0dSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rlc3QxMXYgVE8gcmVncmVzc191c2VyMTE7 CiBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50KSBSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1Qg YSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdFIFNRTDsKIFJFVk9LRSBBTEwgT04gRlVOQ1RJ T04gZ2YxKGludCkgRlJPTSBQVUJMSUM7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QxMnMgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIp KSBTVE9SRUQpOwotSU5TRVJUIElOVE8gZ3Rlc3QxMnMgVkFMVUVTICgxLCAxMCksICgyLCAy MCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMnYgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwg YyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ2YxKGIpKSBWSVJUVUFMKTsKK0lOU0VSVCBJ TlRPIGd0ZXN0MTJ2IFZBTFVFUyAoMSwgMTApLCAoMiwgMjApOwogR1JBTlQgU0VMRUNUIChh LCBjKSBPTiBndGVzdDEycyBUTyByZWdyZXNzX3VzZXIxMTsKK0VSUk9SOiAgcmVsYXRpb24g Imd0ZXN0MTJzIiBkb2VzIG5vdCBleGlzdAogU0VUIFJPTEUgcmVncmVzc191c2VyMTE7Ci1T RUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MTFzOyAgLS0gbm90IGFsbG93ZWQKLUVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHRhYmxlIGd0ZXN0MTFzCi1TRUxFQ1QgYSwgYyBGUk9NIGd0 ZXN0MTFzOyAgLS0gYWxsb3dlZAorU0VMRUNUIGEsIGIgRlJPTSBndGVzdDExdjsgIC0tIG5v dCBhbGxvd2VkCitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciB0YWJsZSBndGVzdDEx dgorU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExdjsgIC0tIGFsbG93ZWQKICBhIHwgYyAgCiAt LS0rLS0tLQogIDEgfCAyMApAQCAtNTU4LDIzMSArNTkzLDE0MiBAQCBTRUxFQ1QgYSwgYyBG Uk9NIGd0ZXN0MTFzOyAgLS0gYWxsb3dlZAogCiBTRUxFQ1QgZ2YxKDEwKTsgIC0tIG5vdCBh bGxvd2VkCiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBmdW5jdGlvbiBnZjEKLVNF TEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBhbGxvd2VkCi0gYSB8IGMgIAotLS0tKy0t LS0KLSAxIHwgMzAKLSAyIHwgNjAKLSgyIHJvd3MpCi0KK1NFTEVDVCBhLCBjIEZST00gZ3Rl c3QxMnY7ICAtLSBub3QgYWxsb3dlZDsgVE9ETzogb3VnaHQgdG8gYmUgYWxsb3dlZAorRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgZ3Rlc3QxMnYKIFJFU0VUIFJPTEU7 CiBEUk9QIEZVTkNUSU9OIGdmMShpbnQpOyAgLS0gZmFpbAogRVJST1I6ICBjYW5ub3QgZHJv cCBmdW5jdGlvbiBnZjEoaW50ZWdlcikgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBv biBpdAotREVUQUlMOiAgY29sdW1uIGMgb2YgdGFibGUgZ3Rlc3QxMnMgZGVwZW5kcyBvbiBm dW5jdGlvbiBnZjEoaW50ZWdlcikKK0RFVEFJTDogIGNvbHVtbiBjIG9mIHRhYmxlIGd0ZXN0 MTJ2IGRlcGVuZHMgb24gZnVuY3Rpb24gZ2YxKGludGVnZXIpCiBISU5UOiAgVXNlIERST1Ag Li4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgotRFJPUCBU QUJMRSBndGVzdDExcywgZ3Rlc3QxMnM7CitEUk9QIFRBQkxFIGd0ZXN0MTF2LCBndGVzdDEy djsKIERST1AgRlVOQ1RJT04gZ2YxKGludCk7CiBEUk9QIFVTRVIgcmVncmVzc191c2VyMTE7 CiAtLSBjaGVjayBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEIENI RUNLIChiIDwgNTApKTsKK0NSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtF WSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgQ0hFQ0sgKGIg PCA1MCkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgxMCk7ICAtLSBvawog SU5TRVJUIElOVE8gZ3Rlc3QyMCAoYSkgVkFMVUVTICgzMCk7ICAtLSB2aW9sYXRlcyBjb25z dHJhaW50CiBFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJndGVzdDIwIiB2aW9sYXRl cyBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwX2JfY2hlY2siCi1ERVRBSUw6ICBGYWlsaW5n IHJvdyBjb250YWlucyAoMzAsIDYwKS4KK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5z ICgzMCwgdmlydHVhbCkuCiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKLUVS Uk9SOiAgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3QyMF9iX2NoZWNrIiBvZiByZWxhdGlvbiAi Z3Rlc3QyMCIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cKK0VSUk9SOiAgQUxURVIgVEFCTEUg LyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIwIiBp cyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxU RVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsgIC0tIG9rCi1DUkVBVEUg VEFCTEUgZ3Rlc3QyMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgU1RPUkVEKTsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBTRVQgRVhQ UkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5z CitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIwIiBpcyBhIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbi4KK0NSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsK IElOU0VSVCBJTlRPIGd0ZXN0MjBhIChhKSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRPIGd0 ZXN0MjBhIChhKSBWQUxVRVMgKDMwKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBhIEFERCBDSEVD SyAoYiA8IDUwKTsgIC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwogRVJST1I6ICBjaGVjayBj b25zdHJhaW50ICJndGVzdDIwYV9iX2NoZWNrIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMGEiIGlz IHZpb2xhdGVkIGJ5IHNvbWUgcm93Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyMGIgKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsK K0NSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBi IChhKSBWQUxVRVMgKDEwKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjBiIChhKSBWQUxVRVMgKDMw KTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIEFERCBDT05TVFJBSU5UIGNoayBDSEVDSyAoYiA8 IDUwKSBOT1QgVkFMSUQ7CiBBTFRFUiBUQUJMRSBndGVzdDIwYiBWQUxJREFURSBDT05TVFJB SU5UIGNoazsgIC0tIGZhaWxzIG9uIGV4aXN0aW5nIHJvdwogRVJST1I6ICBjaGVjayBjb25z dHJhaW50ICJjaGsiIG9mIHJlbGF0aW9uICJndGVzdDIwYiIgaXMgdmlvbGF0ZWQgYnkgc29t ZSByb3cKLS0tIG5vdC1udWxsIGNvbnN0cmFpbnRzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMWEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYo YSwgMCkpIFNUT1JFRCBOT1QgTlVMTCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFM VUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgwKTsg IC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKLUVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4g ImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYSIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWlu dAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIG51bGwpLgotQ1JFQVRFIFRB QkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAobnVsbGlmKGEsIDApKSBTVE9SRUQpOworLS0gbm90LW51bGwgY29uc3RyYWludHMg KGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkKQorQ1JFQVRFIFRBQkxFIGd0ZXN0MjFhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEsIDAp KSBWSVJUVUFMIE5PVCBOVUxMKTsKK0VSUk9SOiAgbm90LW51bGwgY29uc3RyYWludHMgYXJl IG5vdCBzdXBwb3J0ZWQgb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworLS1JTlNFUlQg SU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCistLUlOU0VSVCBJTlRPIGd0 ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAorQ1JFQVRF IFRBQkxFIGd0ZXN0MjFiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAobnVsbGlmKGEsIDApKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjFi IEFMVEVSIENPTFVNTiBiIFNFVCBOT1QgTlVMTDsKLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChh KSBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMg KDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAotRVJST1I6ICBudWxsIHZhbHVlIGluIGNv bHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFiIiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgbnVsbCkuCitFUlJP UjogIG5vdC1udWxsIGNvbnN0cmFpbnRzIGFyZSBub3Qgc3VwcG9ydGVkIG9uIHZpcnR1YWwg Z2VuZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0 ZXN0MjFiIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KKy0tSU5TRVJUIElOVE8g Z3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDIx YiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxF IGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERST1AgTk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBn dGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdworLS1JTlNFUlQgSU5UTyBndGVz dDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5vdwogLS0gaW5kZXggY29uc3RyYWludHMK LUNSRUFURSBUQUJMRSBndGVzdDIyYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQgVU5JUVVFKTsKLUlOU0VSVCBJTlRPIGd0 ZXN0MjJhIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMgKDMpOwot RVJST1I6ICBkdXBsaWNhdGUga2V5IHZhbHVlIHZpb2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50 ICJndGVzdDIyYV9iX2tleSIKLURFVEFJTDogIEtleSAoYik9KDEpIGFscmVhZHkgZXhpc3Rz LgotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKLUNSRUFURSBUQUJMRSBndGVz dDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAyKSBTVE9SRUQs IFBSSU1BUlkgS0VZIChhLCBiKSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIp OwotSU5TRVJUIElOVE8gZ3Rlc3QyMmIgVkFMVUVTICgyKTsKLUVSUk9SOiAgZHVwbGljYXRl IGtleSB2YWx1ZSB2aW9sYXRlcyB1bmlxdWUgY29uc3RyYWludCAiZ3Rlc3QyMmJfcGtleSIK LURFVEFJTDogIEtleSAoYSwgYik9KDIsIDEpIGFscmVhZHkgZXhpc3RzLgorQ1JFQVRFIFRB QkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsKK0VSUk9SOiAgaW5kZXggY3JlYXRpb24g b24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkCistLUlOU0VS VCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoMik7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZB TFVFUyAoMyk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJhIFZBTFVFUyAoNCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3QyMmIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhIC8g MikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKK0VSUk9SOiAgaW5kZXggY3JlYXRp b24gb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpcyBub3Qgc3VwcG9ydGVkCistLUlO U0VSVCBJTlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjJi IFZBTFVFUyAoMik7CiAtLSBpbmRleGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUNSRUFURSBJ TkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7Ci1DUkVBVEUgSU5ERVggZ3Rl c3QyMmNfZXhwcl9pZHggT04gZ3Rlc3QyMmMgKChiICogMykpOwotQ1JFQVRFIElOREVYIGd0 ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsKLVxkIGd0ZXN0 MjJjCi0gICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMu Z3Rlc3QyMmMiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAot IGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKLUluZGV4ZXM6Ci0gICAgImd0ZXN0MjJjX2JfaWR4 IiBidHJlZSAoYikKLSAgICAiZ3Rlc3QyMmNfZXhwcl9pZHgiIGJ0cmVlICgoYiAqIDMpKQot ICAgICJndGVzdDIyY19wcmVkX2lkeCIgYnRyZWUgKGEpIFdIRVJFIGIgPiAwCi0KLUlOU0VS VCBJTlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwgKDMpOwotU0VUIGVuYWJsZV9zZXFz Y2FuIFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7Ci1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7Ci0gICAgICAg ICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rl c3QyMmNfYl9pZHggb24gZ3Rlc3QyMmMKLSAgIEluZGV4IENvbmQ6IChiID0gNCkKLSgyIHJv d3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7Ci0gYSB8IGIgCi0t LS0rLS0tCi0gMiB8IDQKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLSAgICAgICAgICAgICAgICAgICBR VUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBndGVzdDIyY19l eHByX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKChiICogMykgPSA2KQotKDIg cm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7Ci0gYSB8 IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBT RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSAgICAgICAg ICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2lu ZyBndGVzdDIyY19wcmVkX2lkeCBvbiBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKGEgPSAx KQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQg YiA+IDA7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDIKLSgxIHJvdykKLQotQUxURVIgVEFC TEUgZ3Rlc3QyMmMgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiA0KTsK LUFOQUxZWkUgZ3Rlc3QyMmM7Ci1FWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g Z3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci0gICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfYl9pZHggb24gZ3Rlc3QyMmMK LSAgIEluZGV4IENvbmQ6IChiID0gOCkKLSgyIHJvd3MpCi0KLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYiA9IDg7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMiB8IDgKLSgxIHJvdykK LQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIg KiAzID0gMTI7Ci0gICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotIEluZGV4IFNjYW4gdXNpbmcgZ3Rlc3QyMmNfZXhwcl9pZHggb24gZ3Rlc3QyMmMKLSAg IEluZGV4IENvbmQ6ICgoYiAqIDMpID0gMTIpCi0oMiByb3dzKQotCi1TRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7Ci0gYSB8IGIgCi0tLS0rLS0tCi0gMSB8IDQK LSgxIHJvdykKLQotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJj IFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLSAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFO ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0gSW5kZXggU2NhbiB1c2luZyBndGVzdDIyY19wcmVkX2lkeCBv biBndGVzdDIyYwotICAgSW5kZXggQ29uZDogKGEgPSAxKQotKDIgcm93cykKLQotU0VMRUNU ICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci0gYSB8IGIgCi0tLS0r LS0tCi0gMSB8IDQKLSgxIHJvdykKLQotUkVTRVQgZW5hYmxlX3NlcXNjYW47Ci1SRVNFVCBl bmFibGVfYml0bWFwc2NhbjsKK0NSRUFURSBUQUJMRSBndGVzdDIyYyAoYSBpbnQsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKKy0tQ1JFQVRFIElOREVY IGd0ZXN0MjJjX2JfaWR4IE9OIGd0ZXN0MjJjIChiKTsKKy0tQ1JFQVRFIElOREVYIGd0ZXN0 MjJjX2V4cHJfaWR4IE9OIGd0ZXN0MjJjICgoYiAqIDMpKTsKKy0tQ1JFQVRFIElOREVYIGd0 ZXN0MjJjX3ByZWRfaWR4IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsKKy0tXGQgZ3Rl c3QyMmMKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMgVkFMVUVTICgxKSwgKDIpLCAoMyk7Cist LVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7CistLVNFVCBlbmFibGVfYml0bWFwc2NhbiBU TyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBX SEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0t RVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAz ID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDY7CistLUVY UExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBB TkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIg PiAwOworLS1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVT U0lPTiBBUyAoYSAqIDQpOworLS1BTkFMWVpFIGd0ZXN0MjJjOworLS1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7CistLVNFTEVDVCAq IEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiICogMyA9IDEyOworLS1TRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gMTI7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VM RUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAq IEZST00gZ3Rlc3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworLS1SRVNFVCBlbmFibGVf c2Vxc2NhbjsKKy0tUkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CiAtLSBmb3JlaWduIGtleXMK IENSRUFURSBUQUJMRSBndGVzdDIzYSAoeCBpbnQgUFJJTUFSWSBLRVksIHkgaW50KTsKLUlO U0VSVCBJTlRPIGd0ZXN0MjNhIFZBTFVFUyAoMSwgMTEpLCAoMiwgMjIpLCAoMywgMzMpOwot Q1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBP TiBVUERBVEUgQ0FTQ0FERSk7ICAtLSBlcnJvcgorLS1JTlNFUlQgSU5UTyBndGVzdDIzYSBW QUxVRVMgKDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKK0NSRUFURSBUQUJMRSBndGVzdDIz eCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMIFJFRkVSRU5DRVMgZ3Rlc3QyM2EgKHgpIE9OIFVQREFURSBDQVNDQURFKTsg IC0tIGVycm9yCiBFUlJPUjogIGludmFsaWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWln biBrZXkgY29uc3RyYWludCBjb250YWluaW5nIGdlbmVyYXRlZCBjb2x1bW4KLUNSRUFURSBU QUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRF IFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3ggKGEgaW50IFBS SU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCBS RUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBERUxFVEUgU0VUIE5VTEwpOyAgLS0gZXJyb3IK IEVSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25z dHJhaW50IGNvbnRhaW5pbmcgZ2VuZXJhdGVkIGNvbHVtbgotQ1JFQVRFIFRBQkxFIGd0ZXN0 MjNiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSk7Ci1cZCBndGVzdDIzYgotICAg ICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjNi IgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAg ICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKLSBiICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChhICogMikgc3RvcmVkCi1JbmRleGVzOgotICAgICJndGVzdDIzYl9wa2V5IiBQUklNQVJZ IEtFWSwgYnRyZWUgKGEpCi1Gb3JlaWduLWtleSBjb25zdHJhaW50czoKLSAgICAiZ3Rlc3Qy M2JfYl9ma2V5IiBGT1JFSUdOIEtFWSAoYikgUkVGRVJFTkNFUyBndGVzdDIzYSh4KQotCi1J TlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0 ZXN0MjNiIFZBTFVFUyAoNSk7ICAtLSBlcnJvcgotRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRl IG9uIHRhYmxlICJndGVzdDIzYiIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi Z3Rlc3QyM2JfYl9ma2V5IgotREVUQUlMOiAgS2V5IChiKT0oMTApIGlzIG5vdCBwcmVzZW50 IGluIHRhYmxlICJndGVzdDIzYSIuCi1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRFUiBDT0xV TU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDUpOyAtLSBlcnJvcgotRVJST1I6ICBpbnNl cnQgb3IgdXBkYXRlIG9uIHRhYmxlICJndGVzdDIzYiIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAiZ3Rlc3QyM2JfYl9ma2V5IgotREVUQUlMOiAgS2V5IChiKT0oNSkgaXMg bm90IHByZXNlbnQgaW4gdGFibGUgImd0ZXN0MjNhIi4KLUFMVEVSIFRBQkxFIGd0ZXN0MjNi IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMSk7IC0tIG9rCi1EUk9Q IFRBQkxFIGd0ZXN0MjNiOwotRFJPUCBUQUJMRSBndGVzdDIzYTsKLUNSRUFURSBUQUJMRSBn dGVzdDIzcCAoeCBpbnQsIHkgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKiAyKSBTVE9S RUQsIFBSSU1BUlkgS0VZICh5KSk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzcCBWQUxVRVMgKDEp LCAoMiksICgzKTsKK0NSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMg Z3Rlc3QyM2EgKHgpKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludHMgb24gdmly dHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90IHN1cHBvcnRlZAorLS1cZCBndGVzdDIz YgorLS1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJU IElOVE8gZ3Rlc3QyM2IgVkFMVUVTICg1KTsgIC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0 ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVy cm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNT SU9OIEFTIChhICogMSk7IC0tIG9rCistLURST1AgVEFCTEUgZ3Rlc3QyM2I7CistLURST1Ag VEFCTEUgZ3Rlc3QyM2E7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBH RU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJTUFSWSBLRVkgKHkpKTsK K0VSUk9SOiAgaW5kZXggY3JlYXRpb24gb24gdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBp cyBub3Qgc3VwcG9ydGVkCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNwIFZBTFVFUyAoMSksICgy KSwgKDMpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjNxIChhIGludCBQUklNQVJZIEtFWSwgYiBp bnQgUkVGRVJFTkNFUyBndGVzdDIzcCAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFM VUVTICgxLCAyKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUp OyAgLS0gZXJyb3IKLUVSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAiZ3Rlc3Qy M3EiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgImd0ZXN0MjNxX2JfZmtleSIK LURFVEFJTDogIEtleSAoYik9KDUpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJndGVzdDIz cCIuCitFUlJPUjogIHJlbGF0aW9uICJndGVzdDIzcCIgZG9lcyBub3QgZXhpc3QKKy0tSU5T RVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgxLCAyKTsgIC0tIG9rCistLUlOU0VSVCBJTlRP IGd0ZXN0MjNxIFZBTFVFUyAoMiwgNSk7ICAtLSBlcnJvcgogLS0gZG9tYWlucwogQ1JFQVRF IERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsKLUNSRUFU RSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDI0 IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVF UyAoNik7ICAtLSBlcnJvcgotRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGd0ZXN0ZG9tYWlu MSB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJndGVzdGRvbWFpbjFfY2hlY2siCitDUkVB VEUgVEFCTEUgZ3Rlc3QyNCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xIEdF TkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKK0VSUk9SOiAgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2ZSBhIGRvbWFpbiB0eXBlCistLUlOU0VS VCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBn dGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0gZXJyb3IKK0NSRUFURSBUWVBFIGd0ZXN0ZG9t YWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBlID0gZ3Rlc3Rkb21haW4xKTsKK0NSRUFURSBU QUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFSWSBLRVksIGIgZ3Rlc3Rkb21haW4xcmFuZ2Ug R0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rkb21haW4xcmFuZ2UoYSwgYSArIDUpKSBWSVJU VUFMKTsKK0VSUk9SOiAgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uICJiIiBjYW5ub3QgaGF2 ZSBhIGRvbWFpbiB0eXBlCistLUlOU0VSVCBJTlRPIGd0ZXN0MjRyIChhKSBWQUxVRVMgKDQp OyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyNHIgKGEpIFZBTFVFUyAoNik7ICAtLSBl cnJvcgogLS0gdHlwZWQgdGFibGVzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKIENSRUFU RSBUWVBFIGd0ZXN0X3R5cGUgQVMgKGYxIGludGVnZXIsIGYyIHRleHQsIGYzIGJpZ2ludCk7 Ci1DUkVBVEUgVEFCTEUgZ3Rlc3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKjIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3QyOCBPRiBndGVzdF90eXBlIChmMSBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKjIpIFZJUlRVQUwpOwogRVJST1I6ICBnZW5lcmF0ZWQgY29sdW1ucyBhcmUgbm90 IHN1cHBvcnRlZCBvbiB0eXBlZCB0YWJsZXMKIERST1AgVFlQRSBndGVzdF90eXBlIENBU0NB REU7CiAtLSBwYXJ0aXRpb25pbmcgY2FzZXMKIENSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50KSBQQVJUSVRJT04gQlkg UkFOR0UgKGYxKTsKIENSRUFURSBUQUJMRSBndGVzdF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rl c3RfcGFyZW50ICgKLSAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBTVE9SRUQKKyAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBB UyAoZjIgKiAyKSBWSVJUVUFMCiApIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDctMDEnKSBU TyAoJzIwMTYtMDgtMDEnKTsgLS0gZXJyb3IKIEVSUk9SOiAgY2hpbGQgY29sdW1uICJmMyIg c3BlY2lmaWVzIGdlbmVyYXRpb24gZXhwcmVzc2lvbgogSElOVDogIEEgY2hpbGQgdGFibGUg Y29sdW1uIGNhbm5vdCBiZSBnZW5lcmF0ZWQgdW5sZXNzIGl0cyBwYXJlbnQgY29sdW1uIGlz LgotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdp bnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwg ZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCk7CiBBTFRF UiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZCBGT1Ig VkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVycm9y CiBFUlJPUjogIGNvbHVtbiAiZjMiIGluIGNoaWxkIHRhYmxlIG11c3Qgbm90IGJlIGEgZ2Vu ZXJhdGVkIGNvbHVtbgogRFJPUCBUQUJMRSBndGVzdF9wYXJlbnQsIGd0ZXN0X2NoaWxkOwot Q1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50 LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJ VElPTiBCWSBSQU5HRSAoZjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcmVudCAoZjEgZGF0 ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo ZjIgKiAyKSBWSVJUVUFMKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKIENSRUFURSBUQUJM RSBndGVzdF9jaGlsZCBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50CiAgIEZPUiBWQUxVRVMg RlJPTSAoJzIwMTYtMDctMDEnKSBUTyAoJzIwMTYtMDgtMDEnKTsgIC0tIGluaGVyaXRzIGdl biBleHByCiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQyIFBBUlRJVElPTiBPRiBndGVzdF9w YXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAq IDIyKSBTVE9SRUQgIC0tIG92ZXJyaWRlcyBnZW4gZXhwcgorICAgIGYzIFdJVEggT1BUSU9O UyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIyKSBWSVJUVUFMICAtLSBvdmVycmlkZXMg Z2VuIGV4cHIKICkgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOC0wMScpIFRPICgnMjAxNi0w OS0wMScpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3Rf cGFyZW50ICgKICAgICBmMyBERUZBVUxUIDQyICAtLSBlcnJvcgpAQCAtNzkyLDYgKzczOCwx MSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJl bnQgKAogICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZ ICAtLSBlcnJvcgogKSBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2 LTEwLTAxJyk7CiBFUlJPUjogIGlkZW50aXR5IGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQg b24gcGFydGl0aW9ucworQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0Yg Z3Rlc3RfcGFyZW50ICgKKyAgICBmMyBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNU T1JFRCAgLS0gZXJyb3IKKykgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgn MjAxNi0xMC0wMScpOworRVJST1I6ICBjb2x1bW4gImYzIiBpbmhlcml0cyBmcm9tIGdlbmVy YXRlZCBjb2x1bW4gb2YgZGlmZmVyZW50IGtpbmQKK0RFVEFJTDogIFBhcmVudCBjb2x1bW4g aXMgVklSVFVBTCwgY2hpbGQgY29sdW1uIGlzIFNUT1JFRC4KIENSRUFURSBUQUJMRSBndGVz dF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50KTsKIEFM VEVSIFRBQkxFIGd0ZXN0X3BhcmVudCBBVFRBQ0ggUEFSVElUSU9OIGd0ZXN0X2NoaWxkMyBG T1IgVkFMVUVTIEZST00gKCcyMDE2LTA5LTAxJykgVE8gKCcyMDE2LTEwLTAxJyk7IC0tIGVy cm9yCiBFUlJPUjogIGNvbHVtbiAiZjMiIGluIGNoaWxkIHRhYmxlIG11c3QgYmUgYSBnZW5l cmF0ZWQgY29sdW1uCkBAIC04MDUsMzMgKzc1NiwzMyBAQCBBTFRFUiBUQUJMRSBndGVzdF9w YXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgn MjAxNi0wOQogRVJST1I6ICB0YWJsZSAiZ3Rlc3RfY2hpbGQzIiBiZWluZyBhdHRhY2hlZCBj b250YWlucyBhbiBpZGVudGl0eSBjb2x1bW4gImYzIgogREVUQUlMOiAgVGhlIG5ldyBwYXJ0 aXRpb24gbWF5IG5vdCBjb250YWluIGFuIGlkZW50aXR5IGNvbHVtbi4KIERST1AgVEFCTEUg Z3Rlc3RfY2hpbGQzOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1Qg TlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAz MykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5V TEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMzMp IFZJUlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04g Z3Rlc3RfY2hpbGQzIEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYt MTAtMDEnKTsKIFxkIGd0ZXN0X2NoaWxkCi0gICAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZCIKKyBDb2x1bW4gfCAgVHlwZSAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg CistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5v dCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAK LSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGYyICogMikgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpCiBQYXJ0aXRpb24g b2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwNy0wMS0yMDE2JykgVE8gKCcw OC0wMS0yMDE2JykKIAogXGQgZ3Rlc3RfY2hpbGQyCi0gICAgICAgICAgICAgICAgICBUYWJs ZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDIiCi0gQ29sdW1uIHwgIFR5 cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg IFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9jaGlsZDIiCisgQ29sdW1u IHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgIERlZmF1bHQg ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKLSBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMjIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2lu dCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAy MikKIFBhcnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA4LTAx LTIwMTYnKSBUTyAoJzA5LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDMKLSAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMyIK LSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2No aWxkMyIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAg IHwgZGF0ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAzMykgc3RvcmVkCisg ZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChmMiAqIDMzKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVF UyBGUk9NICgnMDktMDEtMjAxNicpIFRPICgnMTAtMDEtMjAxNicpCiAKIElOU0VSVCBJTlRP IGd0ZXN0X3BhcmVudCAoZjEsIGYyKSBWQUxVRVMgKCcyMDE2LTA3LTE1JywgMSk7CkBAIC04 NDIsNyArNzkzLDcgQEAgU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0 X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwogLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0rLS0tLQogIGd0ZXN0X2NoaWxkICB8IDA3LTE1LTIwMTYgfCAgMSB8ICAyCiAgZ3Rl c3RfY2hpbGQgIHwgMDctMTUtMjAxNiB8ICAyIHwgIDQKLSBndGVzdF9jaGlsZDIgfCAwOC0x NS0yMDE2IHwgIDMgfCA2NgorIGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8ICA2 CiAoMyByb3dzKQogCiBVUERBVEUgZ3Rlc3RfcGFyZW50IFNFVCBmMSA9IGYxICsgNjAgV0hF UkUgZjIgPSAxOwpAQCAtODUwLDk1ICs4MDEsMTAxIEBAIFNFTEVDVCB0YWJsZW9pZDo6cmVn Y2xhc3MsICogRlJPTSBndGVzdF9wYXJlbnQgT1JERVIgQlkgMSwgMiwgMzsKICAgIHRhYmxl b2lkICAgfCAgICAgZjEgICAgIHwgZjIgfCBmMyAKIC0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tKy0tLS0KICBndGVzdF9jaGlsZCAgfCAwNy0xNS0yMDE2IHwgIDIgfCAgNAot IGd0ZXN0X2NoaWxkMiB8IDA4LTE1LTIwMTYgfCAgMyB8IDY2Ci0gZ3Rlc3RfY2hpbGQzIHwg MDktMTMtMjAxNiB8ICAxIHwgMzMKKyBndGVzdF9jaGlsZDIgfCAwOC0xNS0yMDE2IHwgIDMg fCAgNgorIGd0ZXN0X2NoaWxkMyB8IDA5LTEzLTIwMTYgfCAgMSB8ICAyCiAoMyByb3dzKQog CiAtLSBhbHRlciBvbmx5IHBhcmVudCdzIGFuZCBvbmUgY2hpbGQncyBnZW5lcmF0aW9uIGV4 cHJlc3Npb24KIEFMVEVSIFRBQkxFIE9OTFkgZ3Rlc3RfcGFyZW50IEFMVEVSIENPTFVNTiBm MyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiA0KTsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBT RVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImYzIiBvZiByZWxhdGlvbiAiZ3Rlc3RfcGFyZW50 IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIEFMVEVSIFRBQkxFIGd0ZXN0X2No aWxkIEFMVEVSIENPTFVNTiBmMyBTRVQgRVhQUkVTU0lPTiBBUyAoZjIgKiAxMCk7CitFUlJP UjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3Ig dmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJmMyIgb2YgcmVs YXRpb24gImd0ZXN0X2NoaWxkIiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIFxk IGd0ZXN0X3BhcmVudAotICAgICAgICAgICBQYXJ0aXRpb25lZCB0YWJsZSAiZ2VuZXJhdGVk X3N0b3JlZF90ZXN0cy5ndGVzdF9wYXJlbnQiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAK LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdF9wYXJlbnQiCisgQ29sdW1uIHwgIFR5cGUg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg IAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBu b3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwg Ci0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQg YWx3YXlzIGFzIChmMiAqIDQpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKQogUGFydGl0aW9u IGtleTogUkFOR0UgKGYxKQogTnVtYmVyIG9mIHBhcnRpdGlvbnM6IDMgKFVzZSBcZCsgdG8g bGlzdCB0aGVtLikKIAogXGQgZ3Rlc3RfY2hpbGQKLSAgICAgICAgICAgICAgICAgIFRhYmxl ICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkIgotIENvbHVtbiB8ICBUeXBl ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAg ICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBU YWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQiCisgQ29sdW1uIHwg IFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAg ICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5l cmF0ZWQgYWx3YXlzIGFzIChmMiAqIDEwKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAg ICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICogMikKIFBh cnRpdGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA3LTAxLTIwMTYn KSBUTyAoJzA4LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDIKLSAgICAgICAgICAgICAg ICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0X2NoaWxkMiIKLSBDb2x1 bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgRGVm YXVsdCAgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMiIK KyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0 ZSAgIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikgc3RvcmVkCisgZjMgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFz IChmMiAqIDIyKQogUGFydGl0aW9uIG9mOiBndGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9N ICgnMDgtMDEtMjAxNicpIFRPICgnMDktMDEtMjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMwot ICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Rf Y2hpbGQzIgotIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMu Z3Rlc3RfY2hpbGQzIgorIENvbHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAogIGYyICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDMzKSBz dG9yZWQKKyBmMyAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVy YXRlZCBhbHdheXMgYXMgKGYyICogMzMpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBG T1IgVkFMVUVTIEZST00gKCcwOS0wMS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2JykKIAogU0VM RUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAx LCAyLCAzOwogICAgdGFibGVvaWQgICB8ICAgICBmMSAgICAgfCBmMiB8IGYzIAogLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0rLS0tLQotIGd0ZXN0X2NoaWxkICB8IDA3LTE1 LTIwMTYgfCAgMiB8IDIwCi0gZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAzIHwgNjYK LSBndGVzdF9jaGlsZDMgfCAwOS0xMy0yMDE2IHwgIDEgfCAzMworIGd0ZXN0X2NoaWxkICB8 IDA3LTE1LTIwMTYgfCAgMiB8ICA0CisgZ3Rlc3RfY2hpbGQyIHwgMDgtMTUtMjAxNiB8ICAz IHwgIDYKKyBndGVzdF9jaGlsZDMgfCAwOS0xMy0yMDE2IHwgIDEgfCAgMgogKDMgcm93cykK IAogLS0gYWx0ZXIgZ2VuZXJhdGlvbiBleHByZXNzaW9uIG9mIHBhcmVudCBhbmQgYWxsIGl0 cyBjaGlsZHJlbiBhbHRvZ2V0aGVyCiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQUxURVIg Q09MVU1OIGYzIFNFVCBFWFBSRVNTSU9OIEFTIChmMiAqIDIpOworRVJST1I6ICBBTFRFUiBU QUJMRSAvIFNFVCBFWFBSRVNTSU9OIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbnMKK0RFVEFJTDogIENvbHVtbiAiZjMiIG9mIHJlbGF0aW9uICJndGVz dF9wYXJlbnQiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uLgogXGQgZ3Rlc3RfcGFy ZW50Ci0gICAgICAgICAgIFBhcnRpdGlvbmVkIHRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzLmd0ZXN0X3BhcmVudCIKLSBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgIAotLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgUGFydGl0aW9uZWQgdGFibGUgImdlbmVyYXRlZF92 aXJ0dWFsX3Rlc3RzLmd0ZXN0X3BhcmVudCIKKyBDb2x1bW4gfCAgVHlwZSAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgCistLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIGYxICAgICB8IGRhdGUgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CiAgZjIgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBmMyAgICAg fCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMg KGYyICogMikgc3RvcmVkCisgZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAg ICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChmMiAqIDIpCiBQYXJ0aXRpb24ga2V5OiBSQU5H RSAoZjEpCiBOdW1iZXIgb2YgcGFydGl0aW9uczogMyAoVXNlIFxkKyB0byBsaXN0IHRoZW0u KQogCiBcZCBndGVzdF9jaGlsZAotICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRl ZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQiCi0gQ29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAK LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJh dGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQiCisgQ29sdW1uIHwgIFR5cGUgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgIAorLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAgfCBub3QgbnVs bCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gZjMg ICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChmMiAqIDIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKQogUGFydGl0aW9uIG9mOiBn dGVzdF9wYXJlbnQgRk9SIFZBTFVFUyBGUk9NICgnMDctMDEtMjAxNicpIFRPICgnMDgtMDEt MjAxNicpCiAKIFxkIGd0ZXN0X2NoaWxkMgotICAgICAgICAgICAgICAgICBUYWJsZSAiZ2Vu ZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdF9jaGlsZDIiCi0gQ29sdW1uIHwgIFR5cGUgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAKLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3RfY2hpbGQyIgorIENvbHVtbiB8ICBUeXBl ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBmMSAgICAgfCBkYXRlICAgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAogIGYyICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCi0gZjMgICAgIHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChmMiAqIDIpIHN0b3JlZAorIGYzICAgICB8IGJpZ2ludCB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyMikKIFBhcnRp dGlvbiBvZjogZ3Rlc3RfcGFyZW50IEZPUiBWQUxVRVMgRlJPTSAoJzA4LTAxLTIwMTYnKSBU TyAoJzA5LTAxLTIwMTYnKQogCiBcZCBndGVzdF9jaGlsZDMKLSAgICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3RfY2hpbGQzIgotIENvbHVtbiB8 ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAg ICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0X2NoaWxkMyIKKyBDb2x1 bW4gfCAgVHlwZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgZjEgICAgIHwgZGF0ZSAgIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKICBmMiAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IAotIGYzICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAg IHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZjIgKiAyKSBzdG9yZWQKKyBmMyAgICAgfCBiaWdp bnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGYyICog MzMpCiBQYXJ0aXRpb24gb2Y6IGd0ZXN0X3BhcmVudCBGT1IgVkFMVUVTIEZST00gKCcwOS0w MS0yMDE2JykgVE8gKCcxMC0wMS0yMDE2JykKIAogU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFz cywgKiBGUk9NIGd0ZXN0X3BhcmVudCBPUkRFUiBCWSAxLCAyLCAzOwpAQCAtOTUxLDU0ICs5 MDgsNTQgQEAgU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIGd0ZXN0X3BhcmVu dCBPUkRFUiBCWSAxLCAyLCAzOwogCiAtLSB3ZSBsZWF2ZSB0aGVzZSB0YWJsZXMgYXJvdW5k IGZvciBwdXJwb3NlcyBvZiB0ZXN0aW5nIGR1bXAvcmVsb2FkL3VwZ3JhZGUKIC0tIGdlbmVy YXRlZCBjb2x1bW5zIGluIHBhcnRpdGlvbiBrZXkgKG5vdCBhbGxvd2VkKQotQ1JFQVRFIFRB QkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJp Z2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZ IFJBTkdFIChmMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9U IE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFIChmMyk7CiBFUlJPUjogIGNhbm5vdCB1 c2UgZ2VuZXJhdGVkIGNvbHVtbiBpbiBwYXJ0aXRpb24ga2V5Ci1MSU5FIDE6IC4uLkVORVJB VEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5HRSAoZjMp OworTElORSAxOiAuLi5ORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFMKSBQQVJU SVRJT04gQlkgUkFOR0UgKGYzKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBDb2x1bW4g ImYzIiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4uCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9r ZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMp KTsKK0NSRUFURSBUQUJMRSBndGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIg YmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBWSVJUVUFM KSBQQVJUSVRJT04gQlkgUkFOR0UgKChmMyAqIDMpKTsKIEVSUk9SOiAgY2Fubm90IHVzZSBn ZW5lcmF0ZWQgY29sdW1uIGluIHBhcnRpdGlvbiBrZXkKLUxJTkUgMTogLi4uRUQgQUxXQVlT IEFTIChmMiAqIDIpIFNUT1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CitM SU5FIDE6IC4uLkQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwpIFBBUlRJVElPTiBCWSBS QU5HRSAoKGYzICogMykpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIENvbHVtbiAiZjMiIGlzIGEg Z2VuZXJhdGVkIGNvbHVtbi4KIC0tIEFMVEVSIFRBQkxFIC4uLiBBREQgQ09MVU1OCiBDUkVB VEUgVEFCTEUgZ3Rlc3QyNSAoYSBpbnQgUFJJTUFSWSBLRVkpOwogSU5TRVJUIElOVE8gZ3Rl c3QyNSBWQUxVRVMgKDMpLCAoNCk7Ci1BTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4g YiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgQUxURVIgQ09MVU1O IGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQURE IENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCwgQUxU RVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKK0VSUk9SOiAgQUxURVIg VEFCTEUgLyBTRVQgRVhQUkVTU0lPTiBpcyBub3Qgc3VwcG9ydGVkIGZvciB2aXJ0dWFsIGdl bmVyYXRlZCBjb2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVz dDI1IiBpcyBhIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbi4KIFNFTEVDVCAqIEZST00gZ3Rl c3QyNSBPUkRFUiBCWSBhOwotIGEgfCBiICAKLS0tLSstLS0tCi0gMyB8ICA5Ci0gNCB8IDEy CisgYSAKKy0tLQorIDMKKyA0CiAoMiByb3dzKQogCi1BTFRFUiBUQUJMRSBndGVzdDI1IEFE RCBDT0xVTU4geCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDQpIFNUT1JFRDsgIC0t IGVycm9yCi1FUlJPUjogIGNhbm5vdCB1c2UgZ2VuZXJhdGVkIGNvbHVtbiAiYiIgaW4gY29s dW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbgotREVUQUlMOiAgQSBnZW5lcmF0ZWQgY29sdW1u IGNhbm5vdCByZWZlcmVuY2UgYW5vdGhlciBnZW5lcmF0ZWQgY29sdW1uLgotQUxURVIgVEFC TEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0 KSBTVE9SRUQ7ICAtLSBlcnJvcgorQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHgg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKK0VS Uk9SOiAgY29sdW1uICJiIiBkb2VzIG5vdCBleGlzdAorQUxURVIgVEFCTEUgZ3Rlc3QyNSBB REQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBWSVJUVUFMOyAg LS0gZXJyb3IKIEVSUk9SOiAgY29sdW1uICJ6IiBkb2VzIG5vdCBleGlzdAogQUxURVIgVEFC TEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGMgaW50IERFRkFVTFQgNDIsCi0gIEFERCBDT0xVTU4g eCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYyAqIDQpIFNUT1JFRDsKKyAgQUREIENPTFVN TiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgVklSVFVBTDsKIEFMVEVSIFRB QkxFIGd0ZXN0MjUgQUREIENPTFVNTiBkIGludCBERUZBVUxUIDEwMTsKIEFMVEVSIFRBQkxF IGd0ZXN0MjUgQUxURVIgQ09MVU1OIGQgU0VUIERBVEEgVFlQRSBmbG9hdDgsCi0gIEFERCBD T0xVTU4geSBmbG9hdDggR0VORVJBVEVEIEFMV0FZUyBBUyAoZCAqIDQpIFNUT1JFRDsKKyAg QUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChkICogNCkgVklSVFVB TDsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwotIGEgfCBiICB8IGMgIHwg IHggIHwgIGQgIHwgIHkgIAotLS0tKy0tLS0rLS0tLSstLS0tLSstLS0tLSstLS0tLQotIDMg fCAgOSB8IDQyIHwgMTY4IHwgMTAxIHwgNDA0Ci0gNCB8IDEyIHwgNDIgfCAxNjggfCAxMDEg fCA0MDQKKyBhIHwgYyAgfCAgeCAgfCAgZCAgfCAgeSAgCistLS0rLS0tLSstLS0tLSstLS0t LSstLS0tLQorIDMgfCA0MiB8IDE2OCB8IDEwMSB8IDQwNAorIDQgfCA0MiB8IDE2OCB8IDEw MSB8IDQwNAogKDIgcm93cykKIAogXGQgZ3Rlc3QyNQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyNSIKLSBD b2x1bW4gfCAgICAgICBUeXBlICAgICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAg ICAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgIAotLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cy5ndGVzdDI1IgorIENvbHVtbiB8ICAgICAgIFR5cGUgICAgICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAg ICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCi0gYiAg ICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoYSAqIDMpIHN0b3JlZAogIGMgICAgICB8IGludGVnZXIgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IDQyCi0geCAgICAgIHwgaW50ZWdlciAgICAg ICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYyAq IDQpIHN0b3JlZAorIHggICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGMgKiA0KQogIGQgICAgICB8IGRvdWJs ZSBwcmVjaXNpb24gfCAgICAgICAgICAgfCAgICAgICAgICB8IDEwMQotIHkgICAgICB8IGRv dWJsZSBwcmVjaXNpb24gfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdh eXMgYXMgKGQgKiA0Ojpkb3VibGUgcHJlY2lzaW9uKSBzdG9yZWQKKyB5ICAgICAgfCBkb3Vi bGUgcHJlY2lzaW9uIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChkICogNDo6ZG91YmxlIHByZWNpc2lvbikKIEluZGV4ZXM6CiAgICAgImd0ZXN0MjVf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChhKQogCkBAIC0xMDA2LDcgKzk2Myw3IEBAIElu ZGV4ZXM6CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNyAoCiAgICAgYSBpbnQsCiAgICAgYiBpbnQs Ci0gICAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRAor ICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAyKSBWSVJUVUFMCiAp OwogSU5TRVJUIElOVE8gZ3Rlc3QyNyAoYSwgYikgVkFMVUVTICgzLCA3KSwgKDQsIDExKTsK IEFMVEVSIFRBQkxFIGd0ZXN0MjcgQUxURVIgQ09MVU1OIGEgVFlQRSB0ZXh0OyAgLS0gZXJy b3IKQEAgLTEwMTQsMTIgKzk3MSwxMiBAQCBFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9m IGEgY29sdW1uIHVzZWQgYnkgYSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBDb2x1bW4g ImEiIGlzIHVzZWQgYnkgZ2VuZXJhdGVkIGNvbHVtbiAieCIuCiBBTFRFUiBUQUJMRSBndGVz dDI3IEFMVEVSIENPTFVNTiB4IFRZUEUgbnVtZXJpYzsKIFxkIGd0ZXN0MjcKLSAgICAgICAg ICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0Mjci Ci0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAg ICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92 aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgCistLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCiAgYiAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCi0geCAgICAgIHwgbnVtZXJpYyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJh dGVkIGFsd2F5cyBhcyAoKChhICsgYikgKiAyKSkgc3RvcmVkCisgeCAgICAgIHwgbnVtZXJp YyB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKChhICsg YikgKiAyKSkKIAogU0VMRUNUICogRlJPTSBndGVzdDI3OwogIGEgfCBiICB8IHggIApAQCAt MTAzMywyMCArOTkwLDE5IEBAIEVSUk9SOiAgY2Fubm90IHNwZWNpZnkgVVNJTkcgd2hlbiBh bHRlcmluZyB0eXBlIG9mIGdlbmVyYXRlZCBjb2x1bW4KIERFVEFJTDogIENvbHVtbiAieCIg aXMgYSBnZW5lcmF0ZWQgY29sdW1uLgogQUxURVIgVEFCTEUgZ3Rlc3QyNyBBTFRFUiBDT0xV TU4geCBEUk9QIERFRkFVTFQ7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gIngiIG9mIHJl bGF0aW9uICJndGVzdDI3IiBpcyBhIGdlbmVyYXRlZCBjb2x1bW4KLUhJTlQ6ICBVc2UgQUxU RVIgVEFCTEUgLi4uIEFMVEVSIENPTFVNTiAuLi4gRFJPUCBFWFBSRVNTSU9OIGluc3RlYWQu CiAtLSBJdCdzIHBvc3NpYmxlIHRvIGFsdGVyIHRoZSBjb2x1bW4gdHlwZXMgdGhpcyB3YXk6 CiBBTFRFUiBUQUJMRSBndGVzdDI3CiAgIERST1AgQ09MVU1OIHgsCiAgIEFMVEVSIENPTFVN TiBhIFRZUEUgYmlnaW50LAogICBBTFRFUiBDT0xVTU4gYiBUWVBFIGJpZ2ludCwKLSAgQURE IENPTFVNTiB4IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgU1RP UkVEOworICBBREQgQ09MVU1OIHggYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsg YikgKiAyKSBWSVJUVUFMOwogXGQgZ3Rlc3QyNwotICAgICAgICAgICAgICAgICAgICAgIFRh YmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjciCi0gQ29sdW1uIHwgIFR5cGUg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgICAgIAotLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI3IgorIENv bHVtbiB8ICBUeXBlICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8 IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCiAgYiAgICAgIHwgYmlnaW50IHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKLSB4ICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKChhICsgYikgKiAyKSBzdG9yZWQK KyB4ICAgICAgfCBiaWdpbnQgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKChhICsgYikgKiAyKQogCiAtLSBJZGVhbGx5IHlvdSBjb3VsZCBqdXN0IGRv IHRoaXMsIGJ1dCBub3QgdG9kYXkgKGFuZCBzaG91bGQgeCBjaGFuZ2UgdHlwZT8pOgogQUxU RVIgVEFCTEUgZ3Rlc3QyNwpAQCAtMTA1NSwxMiArMTAxMSwxMiBAQCBBTFRFUiBUQUJMRSBn dGVzdDI3CiBFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkg YSBnZW5lcmF0ZWQgY29sdW1uCiBERVRBSUw6ICBDb2x1bW4gImEiIGlzIHVzZWQgYnkgZ2Vu ZXJhdGVkIGNvbHVtbiAieCIuCiBcZCBndGVzdDI3Ci0gICAgICAgICAgICAgICAgICAgICAg VGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyNyIKLSBDb2x1bW4gfCAgVHlw ZSAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgVGFibGUgImdlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjciCisg Q29sdW1uIHwgIFR5cGUgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAgICAg IHwgYmlnaW50IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKICBiICAgICAgfCBiaWdpbnQg fCAgICAgICAgICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGJpZ2ludCB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoKGEgKyBiKSAqIDIpIHN0b3Jl ZAorIHggICAgICB8IGJpZ2ludCB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVk IGFsd2F5cyBhcyAoKGEgKyBiKSAqIDIpCiAKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNzsKICBh IHwgYiAgfCB4ICAKQEAgLTEwNzIsNyArMTAyOCw3IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3Qy NzsKIC0tIEFMVEVSIFRBQkxFIC4uLiBBTFRFUiBDT0xVTU4gLi4uIERST1AgRVhQUkVTU0lP TgogQ1JFQVRFIFRBQkxFIGd0ZXN0MjkgKAogICAgIGEgaW50LAotICAgIGIgaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQKKyAgICBiIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjkgKGEpIFZB TFVFUyAoMyksICg0KTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyOTsKQEAgLTEwODMsMTA3ICsx MDM5LDExOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7CiAoMiByb3dzKQogCiBcZCBndGVz dDI5Ci0gICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3Rz Lmd0ZXN0MjkiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg ICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0 cy5ndGVzdDI5IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8 ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgYSAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAq IDIpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8 IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFM VEVSIENPTFVNTiBhIFNFVCBFWFBSRVNTSU9OIEFTIChhICogMyk7ICAtLSBlcnJvcgogRVJS T1I6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5lcmF0 ZWQgY29sdW1uCiBBTFRFUiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBhIERST1AgRVhQ UkVTU0lPTjsgIC0tIGVycm9yCi1FUlJPUjogIGNvbHVtbiAiYSIgb2YgcmVsYXRpb24gImd0 ZXN0MjkiIGlzIG5vdCBhIHN0b3JlZCBnZW5lcmF0ZWQgY29sdW1uCitFUlJPUjogIGNvbHVt biAiYSIgb2YgcmVsYXRpb24gImd0ZXN0MjkiIGlzIG5vdCBhIGdlbmVyYXRlZCBjb2x1bW4K IEFMVEVSIFRBQkxFIGd0ZXN0MjkgQUxURVIgQ09MVU1OIGEgRFJPUCBFWFBSRVNTSU9OIElG IEVYSVNUUzsgIC0tIG5vdGljZQotTk9USUNFOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAi Z3Rlc3QyOSIgaXMgbm90IGEgc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4sIHNraXBwaW5nCitO T1RJQ0U6ICBjb2x1bW4gImEiIG9mIHJlbGF0aW9uICJndGVzdDI5IiBpcyBub3QgYSBnZW5l cmF0ZWQgY29sdW1uLCBza2lwcGluZwogLS0gQ2hhbmdlIHRoZSBleHByZXNzaW9uCiBBTFRF UiBUQUJMRSBndGVzdDI5IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICog Myk7CitFUlJPUjogIEFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1cHBv cnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJi IiBvZiByZWxhdGlvbiAiZ3Rlc3QyOSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4u CiBTRUxFQ1QgKiBGUk9NIGd0ZXN0Mjk7Ci0gYSB8IGIgIAotLS0tKy0tLS0KLSAzIHwgIDkK LSA0IHwgMTIKKyBhIHwgYiAKKy0tLSstLS0KKyAzIHwgNgorIDQgfCA4CiAoMiByb3dzKQog CiBcZCBndGVzdDI5Ci0gICAgICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3Rv cmVkX3Rlc3RzLmd0ZXN0MjkiCi0gQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAKLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmly dHVhbF90ZXN0cy5ndGVzdDI5IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8ICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgYSAgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCi0gYiAg ICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoYSAqIDMpIHN0b3JlZAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogCiBBTFRFUiBUQUJMRSBn dGVzdDI5IEFMVEVSIENPTFVNTiBiIERST1AgRVhQUkVTU0lPTjsKK0VSUk9SOiAgQUxURVIg VEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMgbm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBn ZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAgQ29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rl c3QyOSIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4uCiBJTlNFUlQgSU5UTyBndGVz dDI5IChhKSBWQUxVRVMgKDUpOwogSU5TRVJUIElOVE8gZ3Rlc3QyOSAoYSwgYikgVkFMVUVT ICg2LCA2Nik7CitFUlJPUjogIGNhbm5vdCBpbnNlcnQgYSBub24tREVGQVVMVCB2YWx1ZSBp bnRvIGNvbHVtbiAiYiIKK0RFVEFJTDogIENvbHVtbiAiYiIgaXMgYSBnZW5lcmF0ZWQgY29s dW1uLgogU0VMRUNUICogRlJPTSBndGVzdDI5OwogIGEgfCBiICAKIC0tLSstLS0tCi0gMyB8 ICA5Ci0gNCB8IDEyCi0gNSB8ICAgCi0gNiB8IDY2Ci0oNCByb3dzKQorIDMgfCAgNgorIDQg fCAgOAorIDUgfCAxMAorKDMgcm93cykKIAogXGQgZ3Rlc3QyOQotICAgICAgVGFibGUgImdl bmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QyOSIKLSBDb2x1bW4gfCAgVHlwZSAgIHwgQ29s bGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAotLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgVGFibGUgImdl bmVyYXRlZF92aXJ0dWFsX3Rlc3RzLmd0ZXN0MjkiCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBi ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChhICogMikKIAogLS0gY2hlY2sgdGhhdCBkZXBlbmRlbmNpZXMgYmV0d2VlbiBj b2x1bW5zIGhhdmUgYWxzbyBiZWVuIHJlbW92ZWQKIEFMVEVSIFRBQkxFIGd0ZXN0MjkgRFJP UCBDT0xVTU4gYTsgIC0tIHNob3VsZCBub3QgZHJvcCBiCitFUlJPUjogIGNhbm5vdCBkcm9w IGNvbHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgY29sdW1uIGIgb2YgdGFibGUgZ3Rlc3QyOSBkZXBlbmRzIG9u IGNvbHVtbiBhIG9mIHRhYmxlIGd0ZXN0MjkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FE RSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCiBcZCBndGVzdDI5Ci0gICAg ICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDI5IgotIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KLSBiICAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICBUYWJsZSAi Z2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QyOSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdl bmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQogCiAtLSB3aXRoIGluaGVyaXRhbmNlCiBDUkVB VEUgVEFCTEUgZ3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAyKSBWSVJUVUFMCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklU UyAoZ3Rlc3QzMCk7CiBBTFRFUiBUQUJMRSBndGVzdDMwIEFMVEVSIENPTFVNTiBiIERST1Ag RVhQUkVTU0lPTjsKK0VSUk9SOiAgQUxURVIgVEFCTEUgLyBEUk9QIEVYUFJFU1NJT04gaXMg bm90IHN1cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucworREVUQUlMOiAg Q29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QzMCIgaXMgYSB2aXJ0dWFsIGdlbmVyYXRl ZCBjb2x1bW4uCiBcZCBndGVzdDMwCi0gICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90 ZXN0cy5ndGVzdDMwIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJs ZSB8IERlZmF1bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyAgICAgICAgICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxf dGVzdHMuZ3Rlc3QzMCIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFi bGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog IGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKQog TnVtYmVyIG9mIGNoaWxkIHRhYmxlczogMSAoVXNlIFxkKyB0byBsaXN0IHRoZW0uKQogCiBc ZCBndGVzdDMwXzEKLSAgICAgVGFibGUgImdlbmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3Qz MF8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1 bHQgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyAgICAgICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVz dDMwXzEiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAg ICAgICAgIERlZmF1bHQgICAgICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAg fCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAg ICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikKIEluaGVyaXRz OiBndGVzdDMwCiAKIERST1AgVEFCTEUgZ3Rlc3QzMCBDQVNDQURFOwogTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byB0YWJsZSBndGVzdDMwXzEKIENSRUFURSBUQUJMRSBndGVzdDMwICgK ICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RP UkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKICk7 CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIEFMVEVS IFRBQkxFIE9OTFkgZ3Rlc3QzMCBBTFRFUiBDT0xVTU4gYiBEUk9QIEVYUFJFU1NJT047ICAt LSBlcnJvcgogRVJST1I6ICBBTFRFUiBUQUJMRSAvIERST1AgRVhQUkVTU0lPTiBtdXN0IGJl IGFwcGxpZWQgdG8gY2hpbGQgdGFibGVzIHRvbwogXGQgZ3Rlc3QzMAotICAgICAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cy5ndGVzdDMwIgotIENvbHVt biB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgICAgICBUYWJsZSAiZ2VuZXJhdGVkX3ZpcnR1YWxfdGVzdHMuZ3Rlc3QzMCIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVs dCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGEgICAgICB8IGludGVnZXIgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAotIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAg fCAgICAgICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGEgKiAyKSBzdG9yZWQKKyBiICAg ICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlz IGFzIChhICogMikKIE51bWJlciBvZiBjaGlsZCB0YWJsZXM6IDEgKFVzZSBcZCsgdG8gbGlz dCB0aGVtLikKIAogXGQgZ3Rlc3QzMF8xCi0gICAgICAgICAgICAgICAgICAgVGFibGUgImdl bmVyYXRlZF9zdG9yZWRfdGVzdHMuZ3Rlc3QzMF8xIgotIENvbHVtbiB8ICBUeXBlICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDMwXzEiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgIERlZmF1bHQgICAgICAgICAgIAor LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKLSBiICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChhICogMikgc3RvcmVkCisgYiAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoYSAqIDIpCiBJ bmhlcml0czogZ3Rlc3QzMAogCiBBTFRFUiBUQUJMRSBndGVzdDMwXzEgQUxURVIgQ09MVU1O IGIgRFJPUCBFWFBSRVNTSU9OOyAgLS0gZXJyb3IKQEAgLTExOTEsNyArMTE1OCw3IEBAIEVS Uk9SOiAgY2Fubm90IGRyb3AgZ2VuZXJhdGlvbiBleHByZXNzaW9uIGZyb20gaW5oZXJpdGVk IGNvbHVtbgogLS0gdHJpZ2dlcnMKIENSRUFURSBUQUJMRSBndGVzdDI2ICgKICAgICBhIGlu dCBQUklNQVJZIEtFWSwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwK ICk7CiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0cmln Z2VyCiAgIExBTkdVQUdFIHBscGdzcWwKQEAgLTEyNDQsNyArMTIxMSw3IEBAIENSRUFURSBU UklHR0VSIGd0ZXN0NCBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhF Q1VURSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9mdW5jKCk7CiBJTlNFUlQgSU5UTyBndGVz dDI2IChhKSBWQUxVRVMgKC0yKSwgKDApLCAoMyk7CiBJTkZPOiAgZ3Rlc3QyOiBCRUZPUkU6 IG5ldyA9ICgtMiwpCi1JTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC0yLC00KQorSU5G TzogIGd0ZXN0NDogQUZURVI6IG5ldyA9ICgtMiwpCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYg T1JERVIgQlkgYTsKICBhICB8IGIgIAogLS0tLSstLS0tCkBAIC0xMjU0LDEyICsxMjIxLDEy IEBAIFNFTEVDVCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogKDMgcm93cykKIAogVVBE QVRFIGd0ZXN0MjYgU0VUIGEgPSBhICogLTI7Ci1JTkZPOiAgZ3Rlc3QxOiBCRUZPUkU6IG9s ZCA9ICgtMiwtNCkKK0lORk86ICBndGVzdDE6IEJFRk9SRTogb2xkID0gKC0yLCkKIElORk86 ICBndGVzdDE6IEJFRk9SRTogbmV3ID0gKDQsKQotSU5GTzogIGd0ZXN0MzogQUZURVI6IG9s ZCA9ICgtMiwtNCkKLUlORk86ICBndGVzdDM6IEFGVEVSOiBuZXcgPSAoNCw4KQotSU5GTzog IGd0ZXN0NDogQUZURVI6IG9sZCA9ICgzLDYpCi1JTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3 ID0gKC02LC0xMikKK0lORk86ICBndGVzdDM6IEFGVEVSOiBvbGQgPSAoLTIsKQorSU5GTzog IGd0ZXN0MzogQUZURVI6IG5ldyA9ICg0LCkKK0lORk86ICBndGVzdDQ6IEFGVEVSOiBvbGQg PSAoMywpCitJTkZPOiAgZ3Rlc3Q0OiBBRlRFUjogbmV3ID0gKC02LCkKIFNFTEVDVCAqIEZS T00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogIGEgIHwgIGIgIAogLS0tLSstLS0tLQpAQCAtMTI2 OSw4ICsxMjM2LDggQEAgU0VMRUNUICogRlJPTSBndGVzdDI2IE9SREVSIEJZIGE7CiAoMyBy b3dzKQogCiBERUxFVEUgRlJPTSBndGVzdDI2IFdIRVJFIGEgPSAtNjsKLUlORk86ICBndGVz dDE6IEJFRk9SRTogb2xkID0gKC02LC0xMikKLUlORk86ICBndGVzdDM6IEFGVEVSOiBvbGQg PSAoLTYsLTEyKQorSU5GTzogIGd0ZXN0MTogQkVGT1JFOiBvbGQgPSAoLTYsKQorSU5GTzog IGd0ZXN0MzogQUZURVI6IG9sZCA9ICgtNiwpCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JE RVIgQlkgYTsKICBhIHwgYiAKIC0tLSstLS0KQEAgLTEyODEsNiArMTI0OCw4IEBAIFNFTEVD VCAqIEZST00gZ3Rlc3QyNiBPUkRFUiBCWSBhOwogRFJPUCBUUklHR0VSIGd0ZXN0MSBPTiBn dGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MiBPTiBndGVzdDI2OwogRFJPUCBUUklHR0VS IGd0ZXN0MyBPTiBndGVzdDI2OworLS0gY2hlY2sgZGlzYWxsb3dlZCBtb2RpZmljYXRpb24g b2YgdmlydHVhbCBjb2x1bW5zCistLSBUT0RPCiAtLSBDaGVjayB0aGF0IGFuIFVQREFURSBv ZiAiYSIgZmlyZXMgdGhlIHRyaWdnZXIgZm9yIFVQREFURSBPRiBiLCBwZXIKIC0tIFNRTCBz dGFuZGFyZC4KIENSRUFURSBGVU5DVElPTiBndGVzdF90cmlnZ2VyX2Z1bmMzKCkgUkVUVVJO UyB0cmlnZ2VyCkBAIC0xMjk0LDkgKzEyNjMsMTEgQEAgJCQ7CiBDUkVBVEUgVFJJR0dFUiBn dGVzdDExIEJFRk9SRSBVUERBVEUgT0YgYiBPTiBndGVzdDI2CiAgIEZPUiBFQUNIIFJPVwog ICBFWEVDVVRFIFBST0NFRFVSRSBndGVzdF90cmlnZ2VyX2Z1bmMzKCk7CitFUlJPUjogIHZp cnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYXMgdHJpZ2dlciBj b2x1bW5zCitERVRBSUw6ICBDb2x1bW4gImIiIGlzIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29s dW1uLgogVVBEQVRFIGd0ZXN0MjYgU0VUIGEgPSAxIFdIRVJFIGEgPSAwOwotTk9USUNFOiAg T0sKIERST1AgVFJJR0dFUiBndGVzdDExIE9OIGd0ZXN0MjY7CitFUlJPUjogIHRyaWdnZXIg Imd0ZXN0MTEiIGZvciB0YWJsZSAiZ3Rlc3QyNiIgZG9lcyBub3QgZXhpc3QKIFRSVU5DQVRF IGd0ZXN0MjY7CiAtLSBjaGVjayB0aGF0IG1vZGlmaWNhdGlvbnMgb2Ygc3RvcmVkIGdlbmVy YXRlZCBjb2x1bW5zIGluIHRyaWdnZXJzIGRvCiAtLSBub3QgZ2V0IHByb3BhZ2F0ZWQKQEAg LTEzMjAsMTQgKzEyOTEsMTMgQEAgQ1JFQVRFIFRSSUdHRVIgZ3Rlc3QxMl8wMyBCRUZPUkUg VVBEQVRFIE9OIGd0ZXN0MjYKICAgRVhFQ1VURSBQUk9DRURVUkUgZ3Rlc3RfdHJpZ2dlcl9m dW5jKCk7CiBJTlNFUlQgSU5UTyBndGVzdDI2IChhKSBWQUxVRVMgKDEpOwogVVBEQVRFIGd0 ZXN0MjYgU0VUIGEgPSAxMSBXSEVSRSBhID0gMTsKLUlORk86ICBndGVzdDEyXzAxOiBCRUZP UkU6IG9sZCA9ICgxLDIpCitJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBvbGQgPSAoMSwp CiBJTkZPOiAgZ3Rlc3QxMl8wMTogQkVGT1JFOiBuZXcgPSAoMTEsKQotSU5GTzogIGd0ZXN0 MTJfMDM6IEJFRk9SRTogb2xkID0gKDEsMikKLUlORk86ICBndGVzdDEyXzAzOiBCRUZPUkU6 IG5ldyA9ICgxMCwpCitFUlJPUjogIHRyaWdnZXIgbW9kaWZpZWQgdmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uIHZhbHVlCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjYgT1JERVIgQlkgYTsKLSBh ICB8IGIgIAotLS0tLSstLS0tCi0gMTAgfCAyMAorIGEgfCBiIAorLS0tKy0tLQorIDEgfCAy CiAoMSByb3cpCiAKIC0tIExJS0UgSU5DTFVESU5HIEdFTkVSQVRFRCBhbmQgZHJvcHBlZCBj b2x1bW4gaGFuZGxpbmcKQEAgLTEzMzUsMjIgKzEzMDUsNzcgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0MjhhICgKICAgYSBpbnQsCiAgIGIgaW50LAogICBjIGludCwKLSAgeCBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRAorICB4IGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChiICogMikgVklSVFVBTAogKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjhhIERST1AgQ09M VU1OIGE7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyOGIgKExJS0UgZ3Rlc3QyOGEgSU5DTFVESU5H IEdFTkVSQVRFRCk7CiBcZCBndGVzdDI4KgotICAgICAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjhhIgotIENvbHVtbiB8ICBUeXBlICAgfCBD b2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgIFRhYmxlICJn ZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI4YSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgCist LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAogIGMgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAot IHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IGdlbmVyYXRlZCBh bHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKKyB4ICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAg IHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChiICogMikKIAotICAgICAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzLmd0ZXN0MjhiIgotIENv bHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgICAgCi0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgIFRhYmxlICJnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cy5ndGVzdDI4YiIKKyBD b2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgRGVm YXVsdCAgICAgICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIGIgICAgICB8IGludGVnZXIg fCAgICAgICAgICAgfCAgICAgICAgICB8IAogIGMgICAgICB8IGludGVnZXIgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAotIHggICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAg ICAgICB8IGdlbmVyYXRlZCBhbHdheXMgYXMgKGIgKiAyKSBzdG9yZWQKKyB4ICAgICAgfCBp bnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChi ICogMikKIAorLS0gVE9ETzogZXh0cmEgdGVzdHMgdG8gd2VhdmUgaW50byB0aGUgcmlnaHQg cGxhY2VzCistLSBzdWJsaW5rcworQ1JFQVRFIFRBQkxFIHQyICgKKyAgICBhIGludCwKKyAg ICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMiksCisgICAgZCBpbnQgREVGQVVM VCAyMgorKTsKK0lOU0VSVCBJTlRPIHQyIChhKSBTRUxFQ1QgZyBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxMCkgZzsKK1NFTEVDVCBhLCBiLCBkLCAoU0VMRUNUIHQyLmIpIEZST00gdDI7 CisgYSAgfCBiICB8IGQgIHwgYiAgCistLS0tKy0tLS0rLS0tLSstLS0tCisgIDEgfCAgMiB8 IDIyIHwgIDIKKyAgMiB8ICA0IHwgMjIgfCAgNAorICAzIHwgIDYgfCAyMiB8ICA2CisgIDQg fCAgOCB8IDIyIHwgIDgKKyAgNSB8IDEwIHwgMjIgfCAxMAorICA2IHwgMTIgfCAyMiB8IDEy CisgIDcgfCAxNCB8IDIyIHwgMTQKKyAgOCB8IDE2IHwgMjIgfCAxNgorICA5IHwgMTggfCAy MiB8IDE4CisgMTAgfCAyMCB8IDIyIHwgMjAKKygxMCByb3dzKQorCitEUk9QIFRBQkxFIHQy OworLS0gY29sbGF0ZQorLyoKK0NSRUFURSBDT0xMQVRJT04gY2FzZV9pbnNlbnNpdGl2ZSAo cHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICd1bmQtdS1rcy1sZXZlbDInLCBkZXRlcm1pbmlz dGljID0gZmFsc2UpOworQ1JFQVRFIFRBQkxFIHQ1ICgKKyAgICBhIHRleHQgY29sbGF0ZSAi QyIsCisgICAgYiB0ZXh0IGNvbGxhdGUgIkMiIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgY29s bGF0ZSBjYXNlX2luc2Vuc2l0aXZlKSAsCisgICAgZCBpbnQgREVGQVVMVCAyMgorKTsKK0lO U0VSVCBJTlRPIHQ1IChhLCBkKSB2YWx1ZXMgKCdkMScsIDI4KSwgKCdEMicsIDI3KSwgKCdE MScsIDI2KTsKK1NFTEVDVCAqIEZST00gdDUgT1JERVIgQlkgYiBBU0MsIGQgQVNDOworRFJP UCBUQUJMRSB0NTsKK0RST1AgQ09MTEFUSU9OIGNhc2VfaW5zZW5zaXRpdmU7CisqLworLS0g Y29tcG9zaXRlIHR5cGUgZGVwZW5kZW5jaWVzCitDUkVBVEUgVEFCTEUgYXRfdGFiMSAoYSBp bnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgnaGVsbG8nKSwgYyB0ZXh0KTsKK0NS RUFURSBUQUJMRSBhdF90YWIyICh4IGludCwgeSBhdF90YWIxKTsKK0FMVEVSIFRBQkxFIGF0 X3RhYjEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFyOyAgLS0gZmFpbHMKK0VSUk9SOiAg Y2Fubm90IGFsdGVyIHRhYmxlICJhdF90YWIxIiBiZWNhdXNlIGNvbHVtbiAiYXRfdGFiMi55 IiB1c2VzIGl0cyByb3cgdHlwZQorRFJPUCBUQUJMRSBhdF90YWIxLCBhdF90YWIyOworLS0g Q2hlY2sgaXQgZm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JFQVRFIFRBQkxFIGF0 X3RhYjEgKGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJyksIGMg dGV4dCkgUEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRFIFRBQkxFIGF0X3RhYjIgKHgg aW50LCB5IGF0X3RhYjEpOworQUxURVIgVEFCTEUgYXRfdGFiMSBBTFRFUiBDT0xVTU4gYiBU WVBFIHZhcmNoYXI7ICAtLSBmYWlscworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgImF0 X3RhYjEiIGJlY2F1c2UgY29sdW1uICJhdF90YWIyLnkiIHVzZXMgaXRzIHJvdyB0eXBlCitE Uk9QIFRBQkxFIGF0X3RhYjEsIGF0X3RhYjI7CistLSBhdHRhY2ggbWl4aW5nIGdlbmVyYXRl ZCBraW5kcworQ1JFQVRFIFRBQkxFIGJhcjEgKGEgaW50ZWdlciwgYiBpbnRlZ2VyIEdFTkVS QVRFRCBBTFdBWVMgQVMgKDIyKSkgUEFSVElUSU9OIEJZIFJBTkdFIChhKTsKK0NSRUFURSBU QUJMRSBiYXIyIChhIGludGVnZXIsIGIgaW50ZWdlciBHRU5FUkFURUQgQUxXQVlTIEFTICgy MikgU1RPUkVEKTsKK0FMVEVSIFRBQkxFIGJhcjEgQVRUQUNIIFBBUlRJVElPTiBiYXIyIERF RkFVTFQ7ICAtLSBlcnJvcgorRVJST1I6ICBjb2x1bW4gImIiIGluaGVyaXRzIGZyb20gZ2Vu ZXJhdGVkIGNvbHVtbiBvZiBkaWZmZXJlbnQga2luZAorREVUQUlMOiAgUGFyZW50IGNvbHVt biBpcyBWSVJUVUFMLCBjaGlsZCBjb2x1bW4gaXMgU1RPUkVELgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFy YWxsZWxfc2NoZWR1bGUKaW5kZXggNGYzODEwNGJhMDEuLmI5MGY0OGIxMWQ4IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTY4LDYgKzY4LDkgQEAgdGVzdDogc2Vs ZWN0X2ludG8gc2VsZWN0X2Rpc3RpbmN0IHNlbGVjdF9kaXN0aW5jdF9vbiBzZWxlY3RfaW1w bGljaXQgc2VsZWN0X2hhdmkKICMgLS0tLS0tLS0tLQogdGVzdDogYnJpbiBnaW4gZ2lzdCBz cGdpc3QgcHJpdmlsZWdlcyBpbml0X3ByaXZzIHNlY3VyaXR5X2xhYmVsIGNvbGxhdGUgbWF0 dmlldyBsb2NrIHJlcGxpY2FfaWRlbnRpdHkgcm93c2VjdXJpdHkgb2JqZWN0X2FkZHJlc3Mg dGFibGVzYW1wbGUgZ3JvdXBpbmdzZXRzIGRyb3Bfb3BlcmF0b3IgcGFzc3dvcmQgaWRlbnRp dHkgZ2VuZXJhdGVkX3N0b3JlZCBqb2luX2hhc2gKIAorIyBUT0RPOiBmaW5kIGEgcGxhY2Ug Zm9yIHRoaXMgKGFib3ZlIGdyb3VwIGlzIGZ1bGwpCit0ZXN0OiBnZW5lcmF0ZWRfdmlydHVh bAorCiAjIC0tLS0tLS0tLS0KICMgQWRkaXRpb25hbCBCUklOIHRlc3RzCiAjIC0tLS0tLS0t LS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtl LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAppbmRl eCAwNDAwOGEwMjdiOC4uZGRmODkzZjdlYzMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NyZWF0ZV90YWJsZV9saWtlLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9jcmVhdGVfdGFibGVfbGlrZS5zcWwKQEAgLTUxLDcgKzUxLDcgQEAgQ1JFQVRFIFRBQkxF IHRlc3RfbGlrZV9pZF8zIChMSUtFIHRlc3RfbGlrZV9pZF8xIElOQ0xVRElORyBJREVOVElU WSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9pZF8zOyAgLS0gaWRlbnRpdHkgd2FzIGNv cGllZCBhbmQgYXBwbGllZAogRFJPUCBUQUJMRSB0ZXN0X2xpa2VfaWRfMSwgdGVzdF9saWtl X2lkXzIsIHRlc3RfbGlrZV9pZF8zOwogCi1DUkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8x IChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7CitD UkVBVEUgVEFCTEUgdGVzdF9saWtlX2dlbl8xIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFNUT1JFRCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDMpIFZJUlRVQUwpOwogXGQgdGVzdF9saWtlX2dlbl8xCiBJTlNFUlQgSU5UTyB0ZXN0X2xp a2VfZ2VuXzEgKGEpIFZBTFVFUyAoMSk7CiBTRUxFQ1QgKiBGUk9NIHRlc3RfbGlrZV9nZW5f MTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF9zdG9yZWQu c3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKaW5kZXgg YzE4ZTBlMWY2NTUuLjM2YTZjMmJkZGJlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9nZW5lcmF0ZWRfc3RvcmVkLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n ZW5lcmF0ZWRfc3RvcmVkLnNxbApAQCAtMSw1ICsxLDUgQEAKIC0tIHNhbml0eSBjaGVjayBv ZiBzeXN0ZW0gY2F0YWxvZwotU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBhdHRnZW5lcmF0 ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJTiAoJycsICdz Jyk7CitTRUxFQ1QgYXR0cmVsaWQsIGF0dG5hbWUsIGF0dGdlbmVyYXRlZCBGUk9NIHBnX2F0 dHJpYnV0ZSBXSEVSRSBhdHRnZW5lcmF0ZWQgTk9UIElOICgnJywgJ3MnLCAndicpOwogCiAK IENSRUFURSBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0czsKQEAgLTEwMyw2ICsxMDMs MTQgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiBTRUxFQ1QgKiBGUk9NIGd0ZXN0bSBPUkRF UiBCWSBpZDsKIERST1AgVEFCTEUgZ3Rlc3RtOwogCitDUkVBVEUgVEFCTEUgZ3Rlc3RtICgK KyAgYSBpbnQgUFJJTUFSWSBLRVksCisgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAyKSBTVE9SRUQKKyk7CitJTlNFUlQgSU5UTyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOworTUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBn dGVzdG0gQVMgcyBPTiAyICogdC5hID0gcy5iIFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBS RVRVUk5JTkcgKjsKK0RST1AgVEFCTEUgZ3Rlc3RtOworCiAtLSB2aWV3cwogQ1JFQVRFIFZJ RVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9NIGd0ZXN0MTsKIFNFTEVDVCAqIEZST00gZ3Rl c3QxdjsKQEAgLTM5MCw2ICszOTgsMTAgQEAgQ1JFQVRFIERPTUFJTiBndGVzdGRvbWFpbjEg QVMgaW50IENIRUNLIChWQUxVRSA8IDEwKTsKIENSRUFURSBUQUJMRSBndGVzdDI0IChhIGlu dCBQUklNQVJZIEtFWSwgYiBndGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAq IDIpIFNUT1JFRCk7CiBJTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0g b2sKIElOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JF QVRFIFRZUEUgZ3Rlc3Rkb21haW4xcmFuZ2UgQVMgcmFuZ2UgKHN1YnR5cGUgPSBndGVzdGRv bWFpbjEpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjRyIChhIGludCBQUklNQVJZIEtFWSwgYiBn dGVzdGRvbWFpbjFyYW5nZSBHRU5FUkFURUQgQUxXQVlTIEFTIChndGVzdGRvbWFpbjFyYW5n ZShhLCBhICsgNSkpIFNUT1JFRCk7CitJTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVT ICg0KTsgIC0tIG9rCitJTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkgVkFMVUVTICg2KTsgIC0t IGVycm9yCiAKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQpCiBD UkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBmMiB0ZXh0LCBmMyBiaWdp bnQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3Jl ZC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKc2lt aWxhcml0eSBpbmRleCA2OSUKY29weSBmcm9tIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVy YXRlZF9zdG9yZWQuc3FsCmNvcHkgdG8gc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVk X3ZpcnR1YWwuc3FsCmluZGV4IGMxOGUwZTFmNjU1Li4zNGI4MDcwYjNlMyAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3N0b3JlZC5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCkBAIC0xLDU1ICsxLDU1 IEBACiAtLSBzYW5pdHkgY2hlY2sgb2Ygc3lzdGVtIGNhdGFsb2cKLVNFTEVDVCBhdHRyZWxp ZCwgYXR0bmFtZSwgYXR0Z2VuZXJhdGVkIEZST00gcGdfYXR0cmlidXRlIFdIRVJFIGF0dGdl bmVyYXRlZCBOT1QgSU4gKCcnLCAncycpOworU0VMRUNUIGF0dHJlbGlkLCBhdHRuYW1lLCBh dHRnZW5lcmF0ZWQgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUgYXR0Z2VuZXJhdGVkIE5PVCBJ TiAoJycsICdzJywgJ3YnKTsKIAogCi1DUkVBVEUgU0NIRU1BIGdlbmVyYXRlZF9zdG9yZWRf dGVzdHM7Ci1HUkFOVCBVU0FHRSBPTiBTQ0hFTUEgZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cyBU TyBQVUJMSUM7Ci1TRVQgc2VhcmNoX3BhdGggPSBnZW5lcmF0ZWRfc3RvcmVkX3Rlc3RzOwor Q1JFQVRFIFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsKK0dSQU5UIFVTQUdFIE9O IFNDSEVNQSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cyBUTyBQVUJMSUM7CitTRVQgc2VhcmNo X3BhdGggPSBnZW5lcmF0ZWRfdmlydHVhbF90ZXN0czsKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0 MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1KSBT VE9SRUQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0MCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKDU1 KSBWSVJUVUFMKTsKK0NSRUFURSBUQUJMRSBndGVzdDEgKGEgaW50IFBSSU1BUlkgS0VZLCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiAKLVNFTEVDVCB0 YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgY29sdW1uX2RlZmF1bHQsIGlzX251bGxhYmxlLCBp c19nZW5lcmF0ZWQsIGdlbmVyYXRpb25fZXhwcmVzc2lvbiBGUk9NIGluZm9ybWF0aW9uX3Nj aGVtYS5jb2x1bW5zIFdIRVJFIHRhYmxlX3NjaGVtYSA9ICdnZW5lcmF0ZWRfc3RvcmVkX3Rl c3RzJyBPUkRFUiBCWSAxLCAyOworU0VMRUNUIHRhYmxlX25hbWUsIGNvbHVtbl9uYW1lLCBj b2x1bW5fZGVmYXVsdCwgaXNfbnVsbGFibGUsIGlzX2dlbmVyYXRlZCwgZ2VuZXJhdGlvbl9l eHByZXNzaW9uIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLmNvbHVtbnMgV0hFUkUgdGFibGVf c2NoZW1hID0gJ2dlbmVyYXRlZF92aXJ0dWFsX3Rlc3RzJyBPUkRFUiBCWSAxLCAyOwogCi1T RUxFQ1QgdGFibGVfbmFtZSwgY29sdW1uX25hbWUsIGRlcGVuZGVudF9jb2x1bW4gRlJPTSBp bmZvcm1hdGlvbl9zY2hlbWEuY29sdW1uX2NvbHVtbl91c2FnZSBXSEVSRSB0YWJsZV9zY2hl bWEgPSAnZ2VuZXJhdGVkX3N0b3JlZF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKK1NFTEVD VCB0YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9y bWF0aW9uX3NjaGVtYS5jb2x1bW5fY29sdW1uX3VzYWdlIFdIRVJFIHRhYmxlX3NjaGVtYSA9 ICdnZW5lcmF0ZWRfdmlydHVhbF90ZXN0cycgT1JERVIgQlkgMSwgMiwgMzsKIAogXGQgZ3Rl c3QxCiAKIC0tIGR1cGxpY2F0ZSBnZW5lcmF0ZWQKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJf MSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDMpIFNUT1JFRCk7CitDUkVBVEUg VEFCTEUgZ3Rlc3RfZXJyXzEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFVBTCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykg VklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZXMgdG8gb3RoZXIgZ2VuZXJhdGVkIGNvbHVtbnMs IGluY2x1ZGluZyBzZWxmLXJlZmVyZW5jZXMKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmEg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChiICogMikg U1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfMmIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChiICogMykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9l cnJfMmEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChi ICogMikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzJiIChhIGludCBQUklN QVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwsIGMg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAzKSBWSVJUVUFMKTsKIC0tIGEgd2hvbGUt cm93IHZhciBpcyBhIHNlbGYtcmVmZXJlbmNlIG9uIHN0ZXJvaWRzLCBzbyBkaXNhbGxvdyB0 aGF0IHRvbwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl8yYyAoYSBpbnQgUFJJTUFSWSBLRVks Ci0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxzKGd0ZXN0X2Vycl8y YykpIFNUT1JFRCk7CisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVtX251bGxz KGd0ZXN0X2Vycl8yYykpIFZJUlRVQUwpOwogCiAtLSBpbnZhbGlkIHJlZmVyZW5jZQotQ1JF QVRFIFRBQkxFIGd0ZXN0X2Vycl8zIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYyAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICog MikgVklSVFVBTCk7CiAKIC0tIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBtdXN0IGJlIGltbXV0 YWJsZQotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBk b3VibGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl80IChhIGludCBQUklNQVJZIEtFWSwgYiBkb3Vi bGUgcHJlY2lzaW9uIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHJhbmRvbSgpKSBWSVJUVUFMKTsK IC0tIC4uLiBidXQgYmUgc3VyZSB0aGF0IHRoZSBpbW11dGFiaWxpdHkgdGVzdCBpcyBhY2N1 cmF0ZQotQ1JFQVRFIFRBQkxFIGd0ZXN0MiAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxX QVlTIEFTIChhIHx8ICcgc2VjJykgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIgKGEg aW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnIHNlYycpIFZJUlRVQUwp OwogRFJPUCBUQUJMRSBndGVzdDI7CiAKIC0tIGNhbm5vdCBoYXZlIGRlZmF1bHQvaWRlbnRp dHkgYW5kIGdlbmVyYXRlZAotQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg U1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfNWIgKGEgaW50IFBSSU1BUlkgS0VZ LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIGlkZW50aXR5IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl81YSAoYSBpbnQg UFJJTUFSWSBLRVksIGIgaW50IERFRkFVTFQgNSBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgVklSVFVBTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzViIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyBpZGVudGl0eSBHRU5FUkFURUQgQUxX QVlTIEFTIChhICogMikgVklSVFVBTCk7CiAKIC0tIHJlZmVyZW5jZSB0byBzeXN0ZW0gY29s dW1uIG5vdCBhbGxvd2VkIGluIGdlbmVyYXRlZCBjb2x1bW4KIC0tIChleGNlcHQgdGFibGVv aWQsIHdoaWNoIHdlIHRlc3QgYmVsb3cpCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChh IGludCBQUklNQVJZIEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4g MzcpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzZhIChhIGludCBQUklNQVJZ IEtFWSwgYiBib29sIEdFTkVSQVRFRCBBTFdBWVMgQVMgKHhtaW4gPD4gMzcpIFZJUlRVQUwp OwogCiAtLSB2YXJpb3VzIHByb2hpYml0ZWQgY29uc3RydWN0cwotQ1JFQVRFIFRBQkxFIGd0 ZXN0X2Vycl83YSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGF2ZyhhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkg T1ZFUiAoT1JERVIgQlkgYSkpIFNUT1JFRCk7Ci1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdj IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoKFNFTEVD VCBhKSkgU1RPUkVEKTsKLUNSRUFURSBUQUJMRSBndGVzdF9lcnJfN2QgKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZW5lcmF0ZV9zZXJpZXMoMSwg YSkpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzdhIChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYXZnKGEpKSBWSVJUVUFMKTsKK0NS RUFURSBUQUJMRSBndGVzdF9lcnJfN2IgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChyb3dfbnVtYmVyKCkgT1ZFUiAoT1JERVIgQlkgYSkpIFZJUlRV QUwpOworQ1JFQVRFIFRBQkxFIGd0ZXN0X2Vycl83YyAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChTRUxFQ1QgYSkpIFZJUlRVQUwpOworQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl83ZCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGdlbmVyYXRlX3NlcmllcygxLCBhKSkgVklSVFVBTCk7CiAKIC0tIEdF TkVSQVRFRCBCWSBERUZBVUxUIG5vdCBhbGxvd2VkCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfZXJy XzggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAo YSAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfZXJyXzggKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyAoYSAqIDIpIFZJUlRVQUwp OwogCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgxKTsKIElOU0VSVCBJTlRPIGd0ZXN0 MSBWQUxVRVMgKDIsIERFRkFVTFQpOyAgLS0gb2sKQEAgLTcwLDcgKzcwLDcgQEAgQ1JFQVRF IFRBQkxFIGd0ZXN0X2Vycl84IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVE IEJZIERFRkFVTFQgQVMgKGEgKgogU0VMRUNUIGEsIGIsIGIgKiAyIEFTIGIyIEZST00gZ3Rl c3QxIE9SREVSIEJZIGE7CiBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBP UkRFUiBCWSBhOwogCi0tLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiB3 cml0ZQorLS0gdGVzdCB0aGF0IG92ZXJmbG93IGVycm9yIGhhcHBlbnMgb24gcmVhZAogSU5T RVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMjAwMDAwMDAwMCk7CiBTRUxFQ1QgKiBGUk9NIGd0 ZXN0MTsKIERFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0gMjAwMDAwMDAwMDsKQEAgLTkz LDggKzkzLDggQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0bSAoCiAgIGlkIGludCBQUklNQVJZIEtF WSwKICAgZjEgaW50LAogICBmMiBpbnQsCi0gIGYzIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChmMSAqIDIpIFNUT1JFRCwKLSAgZjQgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICog MikgU1RPUkVECisgIGYzIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMSAqIDIpIFZJUlRV QUwsCisgIGY0IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKICk7 CiBJTlNFUlQgSU5UTyBndGVzdG0gVkFMVUVTICgxLCA1LCAxMDApOwogTUVSR0UgSU5UTyBn dGVzdG0gdCBVU0lORyAoVkFMVUVTICgxLCAxMCksICgyLCAyMCkpIHYoaWQsIGYxKSBPTiB0 LmlkID0gdi5pZApAQCAtMTAzLDYgKzEwMywxNCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RtICgK IFNFTEVDVCAqIEZST00gZ3Rlc3RtIE9SREVSIEJZIGlkOwogRFJPUCBUQUJMRSBndGVzdG07 CiAKK0NSRUFURSBUQUJMRSBndGVzdG0gKAorICBhIGludCBQUklNQVJZIEtFWSwKKyAgYiBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwKKyk7CitJTlNFUlQgSU5U TyBndGVzdG0gKGEpIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwKSBnOwor TUVSR0UgSU5UTyBndGVzdG0gdCBVU0lORyBndGVzdG0gQVMgcyBPTiAyICogdC5hID0gcy5i IFdIRU4gTUFUQ0hFRCBUSEVOIERFTEVURSBSRVRVUk5JTkcgKjsKK0RST1AgVEFCTEUgZ3Rl c3RtOworCiAtLSB2aWV3cwogQ1JFQVRFIFZJRVcgZ3Rlc3QxdiBBUyBTRUxFQ1QgKiBGUk9N IGd0ZXN0MTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QxdjsKQEAgLTEzNCwyMiArMTQyLDI2IEBA IENSRUFURSBUQUJMRSBndGVzdDFfMSAoKSBJTkhFUklUUyAoZ3Rlc3QxKTsKIAogLS0gY2Fu J3QgaGF2ZSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgYSBjaGlsZCBvZiBub3JtYWwgY29s dW1uCiBDUkVBVEUgVEFCTEUgZ3Rlc3Rfbm9ybWFsIChhIGludCwgYiBpbnQpOwotQ1JFQVRF IFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBTVE9SRUQpIElOSEVSSVRTIChndGVzdF9ub3JtYWwpOyAgLS0gZXJy b3IKLUNSRUFURSBUQUJMRSBndGVzdF9ub3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdF9u b3JtYWxfY2hpbGQgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikg VklSVFVBTCkgSU5IRVJJVFMgKGd0ZXN0X25vcm1hbCk7ICAtLSBlcnJvcgorQ1JFQVRFIFRB QkxFIGd0ZXN0X25vcm1hbF9jaGlsZCAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0X25vcm1hbF9jaGlsZCBJ TkhFUklUIGd0ZXN0X25vcm1hbDsgIC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0ZXN0X25vcm1h bCwgZ3Rlc3Rfbm9ybWFsX2NoaWxkOwogCiAtLSB0ZXN0IGluaGVyaXRhbmNlIG1pc21hdGNo ZXMgYmV0d2VlbiBwYXJlbnQgYW5kIGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGlu dCwgYiBpbnQgREVGQVVMVCAxMCkgSU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBlcnJvcgogQ1JF QVRFIFRBQkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgSURF TlRJVFkpIElOSEVSSVRTIChndGVzdDEpOyAgLS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVz dHggKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMjIpIFNUT1JFRCkg SU5IRVJJVFMgKGd0ZXN0MSk7ICAtLSBvaywgb3ZlcnJpZGVzIHBhcmVudAorQ1JFQVRFIFRB QkxFIGd0ZXN0eCAoeCBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikg U1RPUkVEKSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUgZ3Rl c3R4ICh4IGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIyKSBWSVJUVUFM KSBJTkhFUklUUyAoZ3Rlc3QxKTsgIC0tIG9rLCBvdmVycmlkZXMgcGFyZW50CiBcZCsgZ3Rl c3R4CitJTlNFUlQgSU5UTyBndGVzdHggKGEsIHgpIFZBTFVFUyAoMTEsIDIyKTsKK1NFTEVD VCAqIEZST00gZ3Rlc3QxOworU0VMRUNUICogRlJPTSBndGVzdHg7CiAKIENSRUFURSBUQUJM RSBndGVzdHh4XzEgKGEgaW50IE5PVCBOVUxMLCBiIGludCk7CiBBTFRFUiBUQUJMRSBndGVz dHh4XzEgSU5IRVJJVCBndGVzdDE7ICAtLSBlcnJvcgotQ1JFQVRFIFRBQkxFIGd0ZXN0eHhf MyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBT VE9SRUQpOworQ1JFQVRFIFRBQkxFIGd0ZXN0eHhfMyAoYSBpbnQgTk9UIE5VTEwsIGIgaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0 ZXN0eHhfMyBJTkhFUklUIGd0ZXN0MTsgIC0tIG9rCi1DUkVBVEUgVEFCTEUgZ3Rlc3R4eF80 IChiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBhIGludCBOT1Qg TlVMTCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R4eF80IChiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChhICogMikgVklSVFVBTCwgYSBpbnQgTk9UIE5VTEwpOwogQUxURVIgVEFCTEUgZ3Rl c3R4eF80IElOSEVSSVQgZ3Rlc3QxOyAgLS0gb2sKIAogLS0gdGVzdCBtdWx0aXBsZSBpbmhl cml0YW5jZSBtaXNtYXRjaGVzCkBAIC0xNjEsMjggKzE3MywyOCBAQCBDUkVBVEUgVEFCTEUg Z3Rlc3R5ICh4IGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MV95ICgpIElOSEVS SVRTIChndGVzdDEsIGd0ZXN0eSk7ICAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdHk7CiAK LUNSRUFURSBUQUJMRSBndGVzdHkgKHggaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT ICh4ICogMjIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rlc3R5ICh4IGludCwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoeCAqIDIyKSBWSVJUVUFMKTsKIENSRUFURSBUQUJMRSBn dGVzdDFfeSAoKSBJTkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gZXJyb3IKLUNSRUFU RSBUQUJMRSBndGVzdDFfeSAoYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoeCArIDEpIFNU T1JFRCkgSU5IRVJJVFMgKGd0ZXN0MSwgZ3Rlc3R5KTsgIC0tIG9rCitDUkVBVEUgVEFCTEUg Z3Rlc3QxX3kgKGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHggKyAxKSBWSVJUVUFMKSBJ TkhFUklUUyAoZ3Rlc3QxLCBndGVzdHkpOyAgLS0gb2sKIFxkIGd0ZXN0MV95CiAKIC0tIHRl c3QgY29ycmVjdCBoYW5kbGluZyBvZiBHRU5FUkFURUQgY29sdW1uIHRoYXQncyBvbmx5IGlu IGNoaWxkCiBDUkVBVEUgVEFCTEUgZ3Rlc3RwIChmMSBpbnQpOwotQ1JFQVRFIFRBQkxFIGd0 ZXN0YyAoZjIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYxKzEpIFNUT1JFRCkgSU5IRVJJ VFMoZ3Rlc3RwKTsKK0NSRUFURSBUQUJMRSBndGVzdGMgKGYyIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChmMSsxKSBWSVJUVUFMKSBJTkhFUklUUyhndGVzdHApOwogSU5TRVJUIElOVE8g Z3Rlc3RjIHZhbHVlcyg0Mik7CiBUQUJMRSBndGVzdGM7CiBVUERBVEUgZ3Rlc3RwIFNFVCBm MSA9IGYxICogMTA7CiBUQUJMRSBndGVzdGM7CiBEUk9QIFRBQkxFIGd0ZXN0cCBDQVNDQURF OwogCi0tLSB0ZXN0IHN0b3JlZCB1cGRhdGUKLUNSRUFURSBUQUJMRSBndGVzdDMgKGEgaW50 LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKKy0tIHRlc3Qg dXBkYXRlIFhYWAorQ1JFQVRFIFRBQkxFIGd0ZXN0MyAoYSBpbnQsIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAzKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MyAoYSkg VkFMVUVTICgxKSwgKDIpLCAoMyksIChOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9S REVSIEJZIGE7CiBVUERBVEUgZ3Rlc3QzIFNFVCBhID0gMjIgV0hFUkUgYSA9IDI7CiBTRUxF Q1QgKiBGUk9NIGd0ZXN0MyBPUkRFUiBCWSBhOwogCi1DUkVBVEUgVEFCTEUgZ3Rlc3QzYSAo YSB0ZXh0LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSB8fCAnKycgfHwgYSkgU1RP UkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDNhIChhIHRleHQsIGIgdGV4dCBHRU5FUkFURUQg QUxXQVlTIEFTIChhIHx8ICcrJyB8fCBhKSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0 M2EgKGEpIFZBTFVFUyAoJ2EnKSwgKCdiJyksICgnYycpLCAoTlVMTCk7CiBTRUxFQ1QgKiBG Uk9NIGd0ZXN0M2EgT1JERVIgQlkgYTsKIFVQREFURSBndGVzdDNhIFNFVCBhID0gJ2JiJyBX SEVSRSBhID0gJ2InOwpAQCAtMjIyLDEyICsyMzQsMTIgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0 M2EgKGEgdGV4dCwgYiB0ZXh0IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgfHwgJysnIHx8IGEp IFNUT1JFRCkKIFNFTEVDVCAqIEZST00gZ3Rlc3QzIE9SREVSIEJZIGE7CiAKIC0tIG51bGwg dmFsdWVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoTlVMTCkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVz dDIgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChOVUxM KSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0MiBWQUxVRVMgKDEpOwogU0VMRUNUICog RlJPTSBndGVzdDI7CiAKIC0tIHNpbXBsZSBjb2x1bW4gcmVmZXJlbmNlIGZvciB2YXJsZW5h IHR5cGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3RfdmFybGVuYSAoYSB2YXJjaGFyLCBiIHZhcmNo YXIgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVz dF92YXJsZW5hIChhIHZhcmNoYXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChh KSBWSVJUVUFMKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZBTFVFUygnMDEy MzQ1Njc4OTAxMjM0NTY3ODknKTsKIElOU0VSVCBJTlRPIGd0ZXN0X3ZhcmxlbmEgKGEpIFZB TFVFUyhOVUxMKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3RfdmFybGVuYSBPUkRFUiBCWSBhOwpA QCAtMjM3LDcgKzI0OSw3IEBAIENSRUFURSBUQUJMRSBndGVzdF92YXJsZW5hIChhIHZhcmNo YXIsIGIgdmFyY2hhciBHRU5FUkFURUQgQUxXQVlTIEFTIChhKSBTVE9SRUQpCiBDUkVBVEUg VFlQRSBkb3VibGVfaW50IGFzIChhIGludCwgYiBpbnQpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0 NCAoCiAgICAgYSBpbnQsCi0gICAgYiBkb3VibGVfaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KChhICogMiwgYSAqIDMpKSBTVE9SRUQKKyAgICBiIGRvdWJsZV9pbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoKGEgKiAyLCBhICogMykpIFZJUlRVQUwKICk7CiBJTlNFUlQgSU5UTyBndGVz dDQgVkFMVUVTICgxKSwgKDYpOwogU0VMRUNUICogRlJPTSBndGVzdDQ7CkBAIC0yNDgsMTY4 ICsyNjAsMTcyIEBAIENSRUFURSBUQUJMRSBndGVzdDQgKAogLS0gdXNpbmcgdGFibGVvaWQg aXMgYWxsb3dlZAogQ1JFQVRFIFRBQkxFIGd0ZXN0X3RhYmxlb2lkICgKICAgYSBpbnQgUFJJ TUFSWSBLRVksCi0gIGIgYm9vbCBHRU5FUkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCA9ICdn dGVzdF90YWJsZW9pZCc6OnJlZ2NsYXNzKSBTVE9SRUQKKyAgYiBib29sIEdFTkVSQVRFRCBB TFdBWVMgQVMgKHRhYmxlb2lkID0gJ2d0ZXN0X3RhYmxlb2lkJzo6cmVnY2xhc3MpIFZJUlRV QUwKICk7CiBJTlNFUlQgSU5UTyBndGVzdF90YWJsZW9pZCBWQUxVRVMgKDEpLCAoMik7CiBB TFRFUiBUQUJMRSBndGVzdF90YWJsZW9pZCBBREQgQ09MVU1OCi0gIGMgcmVnY2xhc3MgR0VO RVJBVEVEIEFMV0FZUyBBUyAodGFibGVvaWQpIFNUT1JFRDsKKyAgYyByZWdjbGFzcyBHRU5F UkFURUQgQUxXQVlTIEFTICh0YWJsZW9pZCkgVklSVFVBTDsKIFNFTEVDVCAqIEZST00gZ3Rl c3RfdGFibGVvaWQ7CiAKIC0tIGRyb3AgY29sdW1uIGJlaGF2aW9yCi1DUkVBVEUgVEFCTEUg Z3Rlc3QxMCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxX QVlTIEFTIChiICogMikgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDEwIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiAyKSBW SVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MTAgRFJPUCBDT0xVTU4gYjsgIC0tIGZhaWxz CiBBTFRFUiBUQUJMRSBndGVzdDEwIERST1AgQ09MVU1OIGIgQ0FTQ0FERTsgIC0tIGRyb3Bz IGMgdG9vCiAKIFxkIGd0ZXN0MTAKIAotQ1JFQVRFIFRBQkxFIGd0ZXN0MTBhIChhIGludCBQ UklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7 CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMGEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5F UkFURUQgQUxXQVlTIEFTIChhICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDEw YSBEUk9QIENPTFVNTiBiOwogSU5TRVJUIElOVE8gZ3Rlc3QxMGEgKGEpIFZBTFVFUyAoMSk7 CiAKIC0tIHByaXZpbGVnZXMKIENSRUFURSBVU0VSIHJlZ3Jlc3NfdXNlcjExOwogCi1DUkVB VEUgVEFCTEUgZ3Rlc3QxMXMgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDEx cyBWQUxVRVMgKDEsIDEwKSwgKDIsIDIwKTsKLUdSQU5UIFNFTEVDVCAoYSwgYykgT04gZ3Rl c3QxMXMgVE8gcmVncmVzc191c2VyMTE7CitDUkVBVEUgVEFCTEUgZ3Rlc3QxMXYgKGEgaW50 IFBSSU1BUlkgS0VZLCBiIGludCwgYyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIp IFZJUlRVQUwpOworSU5TRVJUIElOVE8gZ3Rlc3QxMXYgVkFMVUVTICgxLCAxMCksICgyLCAy MCk7CitHUkFOVCBTRUxFQ1QgKGEsIGMpIE9OIGd0ZXN0MTF2IFRPIHJlZ3Jlc3NfdXNlcjEx OwogCiBDUkVBVEUgRlVOQ1RJT04gZ2YxKGEgaW50KSBSRVRVUk5TIGludCBBUyAkJCBTRUxF Q1QgYSAqIDMgJCQgSU1NVVRBQkxFIExBTkdVQUdFIFNRTDsKIFJFVk9LRSBBTEwgT04gRlVO Q1RJT04gZ2YxKGludCkgRlJPTSBQVUJMSUM7CiAKLUNSRUFURSBUQUJMRSBndGVzdDEycyAo YSBpbnQgUFJJTUFSWSBLRVksIGIgaW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChn ZjEoYikpIFNUT1JFRCk7Ci1JTlNFUlQgSU5UTyBndGVzdDEycyBWQUxVRVMgKDEsIDEwKSwg KDIsIDIwKTsKK0NSRUFURSBUQUJMRSBndGVzdDEydiAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50LCBjIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChnZjEoYikpIFZJUlRVQUwpOworSU5T RVJUIElOVE8gZ3Rlc3QxMnYgVkFMVUVTICgxLCAxMCksICgyLCAyMCk7CiBHUkFOVCBTRUxF Q1QgKGEsIGMpIE9OIGd0ZXN0MTJzIFRPIHJlZ3Jlc3NfdXNlcjExOwogCiBTRVQgUk9MRSBy ZWdyZXNzX3VzZXIxMTsKLVNFTEVDVCBhLCBiIEZST00gZ3Rlc3QxMXM7ICAtLSBub3QgYWxs b3dlZAotU0VMRUNUIGEsIGMgRlJPTSBndGVzdDExczsgIC0tIGFsbG93ZWQKK1NFTEVDVCBh LCBiIEZST00gZ3Rlc3QxMXY7ICAtLSBub3QgYWxsb3dlZAorU0VMRUNUIGEsIGMgRlJPTSBn dGVzdDExdjsgIC0tIGFsbG93ZWQKIFNFTEVDVCBnZjEoMTApOyAgLS0gbm90IGFsbG93ZWQK LVNFTEVDVCBhLCBjIEZST00gZ3Rlc3QxMnM7ICAtLSBhbGxvd2VkCitTRUxFQ1QgYSwgYyBG Uk9NIGd0ZXN0MTJ2OyAgLS0gbm90IGFsbG93ZWQ7IFRPRE86IG91Z2h0IHRvIGJlIGFsbG93 ZWQKIFJFU0VUIFJPTEU7CiAKIERST1AgRlVOQ1RJT04gZ2YxKGludCk7ICAtLSBmYWlsCi1E Uk9QIFRBQkxFIGd0ZXN0MTFzLCBndGVzdDEyczsKK0RST1AgVEFCTEUgZ3Rlc3QxMXYsIGd0 ZXN0MTJ2OwogRFJPUCBGVU5DVElPTiBnZjEoaW50KTsKIERST1AgVVNFUiByZWdyZXNzX3Vz ZXIxMTsKIAogLS0gY2hlY2sgY29uc3RyYWludHMKLUNSRUFURSBUQUJMRSBndGVzdDIwIChh IGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNU T1JFRCBDSEVDSyAoYiA8IDUwKSk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyMCAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIENI RUNLIChiIDwgNTApKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMTApOyAg LS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAgLS0gdmlvbGF0 ZXMgY29uc3RyYWludAogCiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNF VCBFWFBSRVNTSU9OIEFTIChhICogMTAwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEFM VEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEg KiAzKTsgIC0tIG9rCiAKLUNSRUFURSBUQUJMRSBndGVzdDIwYSAoYSBpbnQgUFJJTUFSWSBL RVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRF IFRBQkxFIGd0ZXN0MjBhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZB TFVFUyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGEgKGEpIFZBTFVFUyAoMzApOwogQUxU RVIgVEFCTEUgZ3Rlc3QyMGEgQUREIENIRUNLIChiIDwgNTApOyAgLS0gZmFpbHMgb24gZXhp c3Rpbmcgcm93CiAKLUNSRUFURSBUQUJMRSBndGVzdDIwYiAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0MjBiIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVQUwpOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVF UyAoMTApOwogSU5TRVJUIElOVE8gZ3Rlc3QyMGIgKGEpIFZBTFVFUyAoMzApOwogQUxURVIg VEFCTEUgZ3Rlc3QyMGIgQUREIENPTlNUUkFJTlQgY2hrIENIRUNLIChiIDwgNTApIE5PVCBW QUxJRDsKIEFMVEVSIFRBQkxFIGd0ZXN0MjBiIFZBTElEQVRFIENPTlNUUkFJTlQgY2hrOyAg LS0gZmFpbHMgb24gZXhpc3Rpbmcgcm93CiAKLS0tIG5vdC1udWxsIGNvbnN0cmFpbnRzCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyMWEgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFNUT1JFRCBOT1QgTlVMTCk7Ci1JTlNFUlQg SU5UTyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVz dDIxYSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKKy0tIG5vdC1u dWxsIGNvbnN0cmFpbnRzIChjdXJyZW50bHkgbm90IHN1cHBvcnRlZCkKK0NSRUFURSBUQUJM RSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBOT1QgTlVMTCk7CistLUlOU0VSVCBJTlRPIGd0 ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWEg KGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiAKLUNSRUFURSBUQUJM RSBndGVzdDIxYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMg QVMgKG51bGxpZihhLCAwKSkgU1RPUkVEKTsKK0NSRUFURSBUQUJMRSBndGVzdDIxYiAoYSBp bnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLCAw KSkgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdDIxYiBBTFRFUiBDT0xVTU4gYiBTRVQg Tk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgxKTsgIC0tIG9r Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNv bnN0cmFpbnQKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBv aworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVz IGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERST1Ag Tk9UIE5VTEw7Ci1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9r IG5vdworLS1JTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0tIG9rIG5v dwogCiAtLSBpbmRleCBjb25zdHJhaW50cwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGlu dCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFNUT1JF RCBVTklRVUUpOwotSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKLUlOU0VSVCBJ TlRPIGd0ZXN0MjJhIFZBTFVFUyAoMyk7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYSBWQUxVRVMg KDQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjJiIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAvIDIpIFNUT1JFRCwgUFJJTUFSWSBLRVkgKGEsIGIpKTsKLUlOU0VSVCBJ TlRPIGd0ZXN0MjJiIFZBTFVFUyAoMik7Ci1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMg KDIpOworQ1JFQVRFIFRBQkxFIGd0ZXN0MjJhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAvIDIpIFZJUlRVQUwgVU5JUVVFKTsKKy0tSU5TRVJU IElOVE8gZ3Rlc3QyMmEgVkFMVUVTICgyKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFM VUVTICgzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmEgVkFMVUVTICg0KTsKK0NSRUFURSBU QUJMRSBndGVzdDIyYiAoYSBpbnQsIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgLyAy KSBWSVJUVUFMLCBQUklNQVJZIEtFWSAoYSwgYikpOworLS1JTlNFUlQgSU5UTyBndGVzdDIy YiBWQUxVRVMgKDIpOworLS1JTlNFUlQgSU5UTyBndGVzdDIyYiBWQUxVRVMgKDIpOwogCiAt LSBpbmRleGVzCi1DUkVBVEUgVEFCTEUgZ3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVEKTsKLUNSRUFURSBJTkRFWCBndGVzdDIyY19i X2lkeCBPTiBndGVzdDIyYyAoYik7Ci1DUkVBVEUgSU5ERVggZ3Rlc3QyMmNfZXhwcl9pZHgg T04gZ3Rlc3QyMmMgKChiICogMykpOwotQ1JFQVRFIElOREVYIGd0ZXN0MjJjX3ByZWRfaWR4 IE9OIGd0ZXN0MjJjIChhKSBXSEVSRSBiID4gMDsKLVxkIGd0ZXN0MjJjCi0KLUlOU0VSVCBJ TlRPIGd0ZXN0MjJjIFZBTFVFUyAoMSksICgyKSwgKDMpOwotU0VUIGVuYWJsZV9zZXFzY2Fu IFRPIG9mZjsKLVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7Ci1FWFBMQUlOIChDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDQ7Ci1TRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGIgPSA0OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1Qg KiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKLVNFTEVDVCAqIEZST00gZ3Rlc3Qy MmMgV0hFUkUgYiAqIDMgPSA2OwotRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9N IGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVNFTEVDVCAqIEZST00gZ3Rlc3Qy MmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOwotCi1BTFRFUiBUQUJMRSBndGVzdDIyYyBBTFRF UiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDQpOwotQU5BTFlaRSBndGVzdDIy YzsKLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBi ID0gODsKLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiA9IDg7Ci1FWFBMQUlOIChD T1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLVNF TEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsKLUVYUExBSU4gKENPU1RT IE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7Ci1T RUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEgPSAxIEFORCBiID4gMDsKLVJFU0VUIGVu YWJsZV9zZXFzY2FuOwotUkVTRVQgZW5hYmxlX2JpdG1hcHNjYW47CitDUkVBVEUgVEFCTEUg Z3Rlc3QyMmMgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgVklS VFVBTCk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19iX2lkeCBPTiBndGVzdDIyYyAoYik7 CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19leHByX2lkeCBPTiBndGVzdDIyYyAoKGIgKiAz KSk7CistLUNSRUFURSBJTkRFWCBndGVzdDIyY19wcmVkX2lkeCBPTiBndGVzdDIyYyAoYSkg V0hFUkUgYiA+IDA7CistLVxkIGd0ZXN0MjJjCisKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyMmMg VkFMVUVTICgxKSwgKDIpLCAoMyk7CistLVNFVCBlbmFibGVfc2Vxc2NhbiBUTyBvZmY7Cist LVNFVCBlbmFibGVfYml0bWFwc2NhbiBUTyBvZmY7CistLUVYUExBSU4gKENPU1RTIE9GRikg U0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tU0VMRUNUICogRlJPTSBn dGVzdDIyYyBXSEVSRSBiID0gNDsKKy0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBG Uk9NIGd0ZXN0MjJjIFdIRVJFIGIgKiAzID0gNjsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiICogMyA9IDY7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJP TSBndGVzdDIyYyBXSEVSRSBhID0gMSBBTkQgYiA+IDA7CistLVNFTEVDVCAqIEZST00gZ3Rl c3QyMmMgV0hFUkUgYSA9IDEgQU5EIGIgPiAwOworCistLUFMVEVSIFRBQkxFIGd0ZXN0MjJj IEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNCk7CistLUFOQUxZWkUg Z3Rlc3QyMmM7CistLUVYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICogRlJPTSBndGVzdDIy YyBXSEVSRSBiID0gODsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBiID0gODsK Ky0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGIg KiAzID0gMTI7CistLVNFTEVDVCAqIEZST00gZ3Rlc3QyMmMgV0hFUkUgYiAqIDMgPSAxMjsK Ky0tRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIGd0ZXN0MjJjIFdIRVJFIGEg PSAxIEFORCBiID4gMDsKKy0tU0VMRUNUICogRlJPTSBndGVzdDIyYyBXSEVSRSBhID0gMSBB TkQgYiA+IDA7CistLVJFU0VUIGVuYWJsZV9zZXFzY2FuOworLS1SRVNFVCBlbmFibGVfYml0 bWFwc2NhbjsKIAogLS0gZm9yZWlnbiBrZXlzCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyM2EgKHgg aW50IFBSSU1BUlkgS0VZLCB5IGludCk7Ci1JTlNFUlQgSU5UTyBndGVzdDIzYSBWQUxVRVMg KDEsIDExKSwgKDIsIDIyKSwgKDMsIDMzKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM2EgVkFM VUVTICgxLCAxMSksICgyLCAyMiksICgzLCAzMyk7CiAKLUNSRUFURSBUQUJMRSBndGVzdDIz eCAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkgT04gVVBEQVRFIENBU0NBREUpOyAg LS0gZXJyb3IKLUNSRUFURSBUQUJMRSBndGVzdDIzeCAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVz dDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCitDUkVBVEUgVEFCTEUg Z3Rlc3QyM3ggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCBSRUZFUkVOQ0VTIGd0ZXN0MjNhICh4KSBPTiBVUERBVEUgQ0FT Q0FERSk7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjN4IChhIGludCBQUklNQVJZ IEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVQUwgUkVGRVJF TkNFUyBndGVzdDIzYSAoeCkgT04gREVMRVRFIFNFVCBOVUxMKTsgIC0tIGVycm9yCiAKLUNS RUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQgUkVGRVJFTkNFUyBndGVzdDIzYSAoeCkpOwot XGQgZ3Rlc3QyM2IKK0NSRUFURSBUQUJMRSBndGVzdDIzYiAoYSBpbnQgUFJJTUFSWSBLRVks IGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBWSVJUVUFMIFJFRkVSRU5DRVMg Z3Rlc3QyM2EgKHgpKTsKKy0tXGQgZ3Rlc3QyM2IKIAotSU5TRVJUIElOVE8gZ3Rlc3QyM2Ig VkFMVUVTICgxKTsgIC0tIG9rCi1JTlNFUlQgSU5UTyBndGVzdDIzYiBWQUxVRVMgKDUpOyAg LS0gZXJyb3IKLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBS RVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCi1BTFRFUiBUQUJMRSBndGVzdDIzYiBBTFRF UiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEpOyAtLSBvaworLS1JTlNFUlQg SU5UTyBndGVzdDIzYiBWQUxVRVMgKDEpOyAgLS0gb2sKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy M2IgVkFMVUVTICg1KTsgIC0tIGVycm9yCistLUFMVEVSIFRBQkxFIGd0ZXN0MjNiIEFMVEVS IENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICogNSk7IC0tIGVycm9yCistLUFMVEVS IFRBQkxFIGd0ZXN0MjNiIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFTIChhICog MSk7IC0tIG9rCiAKLURST1AgVEFCTEUgZ3Rlc3QyM2I7Ci1EUk9QIFRBQkxFIGd0ZXN0MjNh OworLS1EUk9QIFRBQkxFIGd0ZXN0MjNiOworLS1EUk9QIFRBQkxFIGd0ZXN0MjNhOwogCi1D UkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFT ICh4ICogMikgU1RPUkVELCBQUklNQVJZIEtFWSAoeSkpOwotSU5TRVJUIElOVE8gZ3Rlc3Qy M3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3QyM3AgKHggaW50 LCB5IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh4ICogMikgVklSVFVBTCwgUFJJTUFSWSBL RVkgKHkpKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3QyM3AgVkFMVUVTICgxKSwgKDIpLCAoMyk7 CiAKIENSRUFURSBUQUJMRSBndGVzdDIzcSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IFJF RkVSRU5DRVMgZ3Rlc3QyM3AgKHkpKTsKLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAo MSwgMik7ICAtLSBvawotSU5TRVJUIElOVE8gZ3Rlc3QyM3EgVkFMVUVTICgyLCA1KTsgIC0t IGVycm9yCistLUlOU0VSVCBJTlRPIGd0ZXN0MjNxIFZBTFVFUyAoMSwgMik7ICAtLSBvawor LS1JTlNFUlQgSU5UTyBndGVzdDIzcSBWQUxVRVMgKDIsIDUpOyAgLS0gZXJyb3IKIAogLS0g ZG9tYWlucwogQ1JFQVRFIERPTUFJTiBndGVzdGRvbWFpbjEgQVMgaW50IENIRUNLIChWQUxV RSA8IDEwKTsKLUNSRUFURSBUQUJMRSBndGVzdDI0IChhIGludCBQUklNQVJZIEtFWSwgYiBn dGVzdGRvbWFpbjEgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRCk7Ci1JTlNF UlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDQpOyAgLS0gb2sKLUlOU0VSVCBJTlRPIGd0 ZXN0MjQgKGEpIFZBTFVFUyAoNik7ICAtLSBlcnJvcgorQ1JFQVRFIFRBQkxFIGd0ZXN0MjQg KGEgaW50IFBSSU1BUlkgS0VZLCBiIGd0ZXN0ZG9tYWluMSBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCk7CistLUlOU0VSVCBJTlRPIGd0ZXN0MjQgKGEpIFZBTFVFUyAo NCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDI0IChhKSBWQUxVRVMgKDYpOyAgLS0g ZXJyb3IKK0NSRUFURSBUWVBFIGd0ZXN0ZG9tYWluMXJhbmdlIEFTIHJhbmdlIChzdWJ0eXBl ID0gZ3Rlc3Rkb21haW4xKTsKK0NSRUFURSBUQUJMRSBndGVzdDI0ciAoYSBpbnQgUFJJTUFS WSBLRVksIGIgZ3Rlc3Rkb21haW4xcmFuZ2UgR0VORVJBVEVEIEFMV0FZUyBBUyAoZ3Rlc3Rk b21haW4xcmFuZ2UoYSwgYSArIDUpKSBWSVJUVUFMKTsKKy0tSU5TRVJUIElOVE8gZ3Rlc3Qy NHIgKGEpIFZBTFVFUyAoNCk7ICAtLSBvaworLS1JTlNFUlQgSU5UTyBndGVzdDI0ciAoYSkg VkFMVUVTICg2KTsgIC0tIGVycm9yCiAKIC0tIHR5cGVkIHRhYmxlcyAoY3VycmVudGx5IG5v dCBzdXBwb3J0ZWQpCiBDUkVBVEUgVFlQRSBndGVzdF90eXBlIEFTIChmMSBpbnRlZ2VyLCBm MiB0ZXh0LCBmMyBiaWdpbnQpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlw ZSAoZjEgV0lUSCBPUFRJT05TIEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBTVE9SRUQp OworQ1JFQVRFIFRBQkxFIGd0ZXN0MjggT0YgZ3Rlc3RfdHlwZSAoZjEgV0lUSCBPUFRJT05T IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICoyKSBWSVJUVUFMKTsKIERST1AgVFlQRSBndGVz dF90eXBlIENBU0NBREU7CiAKIC0tIHBhcnRpdGlvbmluZyBjYXNlcwogQ1JFQVRFIFRBQkxF IGd0ZXN0X3BhcmVudCAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQp IFBBUlRJVElPTiBCWSBSQU5HRSAoZjEpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkIFBB UlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAotICAgIGYzIFdJVEggT1BUSU9OUyBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRAorICAgIGYzIFdJVEggT1BUSU9OUyBHRU5F UkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFZJUlRVQUwKICkgRk9SIFZBTFVFUyBGUk9NICgn MjAxNi0wNy0wMScpIFRPICgnMjAxNi0wOC0wMScpOyAtLSBlcnJvcgotQ1JFQVRFIFRBQkxF IGd0ZXN0X2NoaWxkIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBH RU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfY2hpbGQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVS QVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCk7CiBBTFRFUiBUQUJMRSBndGVzdF9w YXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZCBGT1IgVkFMVUVTIEZST00gKCcy MDE2LTA3LTAxJykgVE8gKCcyMDE2LTA4LTAxJyk7IC0tIGVycm9yCiBEUk9QIFRBQkxFIGd0 ZXN0X3BhcmVudCwgZ3Rlc3RfY2hpbGQ7CiAKLUNSRUFURSBUQUJMRSBndGVzdF9wYXJlbnQg KGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGYyICogMikgU1RPUkVEKSBQQVJUSVRJT04gQlkgUkFOR0UgKGYxKTsKK0NSRUFU RSBUQUJMRSBndGVzdF9wYXJlbnQgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMg YmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9O IEJZIFJBTkdFIChmMSk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hpbGQgUEFSVElUSU9OIE9G IGd0ZXN0X3BhcmVudAogICBGT1IgVkFMVUVTIEZST00gKCcyMDE2LTA3LTAxJykgVE8gKCcy MDE2LTA4LTAxJyk7ICAtLSBpbmhlcml0cyBnZW4gZXhwcgogQ1JFQVRFIFRBQkxFIGd0ZXN0 X2NoaWxkMiBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKLSAgICBmMyBXSVRIIE9QVElP TlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyMikgU1RPUkVEICAtLSBvdmVycmlkZXMg Z2VuIGV4cHIKKyAgICBmMyBXSVRIIE9QVElPTlMgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIg KiAyMikgVklSVFVBTCAgLS0gb3ZlcnJpZGVzIGdlbiBleHByCiApIEZPUiBWQUxVRVMgRlJP TSAoJzIwMTYtMDgtMDEnKSBUTyAoJzIwMTYtMDktMDEnKTsKIENSRUFURSBUQUJMRSBndGVz dF9jaGlsZDMgUEFSVElUSU9OIE9GIGd0ZXN0X3BhcmVudCAoCiAgICAgZjMgREVGQVVMVCA0 MiAgLS0gZXJyb3IKQEAgLTQxNyw2ICs0MzMsOSBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3RfY2hp bGQzIFBBUlRJVElPTiBPRiBndGVzdF9wYXJlbnQgKAogQ1JFQVRFIFRBQkxFIGd0ZXN0X2No aWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKICAgICBmMyBXSVRIIE9QVElPTlMg R0VORVJBVEVEIEFMV0FZUyBBUyBJREVOVElUWSAgLS0gZXJyb3IKICkgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOworQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyBQQVJUSVRJT04gT0YgZ3Rlc3RfcGFyZW50ICgKKyAgICBmMyBHRU5FUkFU RUQgQUxXQVlTIEFTIChmMiAqIDIpIFNUT1JFRCAgLS0gZXJyb3IKKykgRk9SIFZBTFVFUyBG Uk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogQ1JFQVRFIFRBQkxFIGd0 ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQpOwog QUxURVIgVEFCTEUgZ3Rlc3RfcGFyZW50IEFUVEFDSCBQQVJUSVRJT04gZ3Rlc3RfY2hpbGQz IEZPUiBWQUxVRVMgRlJPTSAoJzIwMTYtMDktMDEnKSBUTyAoJzIwMTYtMTAtMDEnKTsgLS0g ZXJyb3IKIERST1AgVEFCTEUgZ3Rlc3RfY2hpbGQzOwpAQCAtNDI2LDcgKzQ0NSw3IEBAIENS RUFURSBUQUJMRSBndGVzdF9jaGlsZDMgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwg ZjMgYmlnaW50IERFRkFVTFQgNDIpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0X2NoaWxkMyAoZjEg ZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyBJREVOVElUWSk7CiBBTFRFUiBUQUJMRSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElP TiBndGVzdF9jaGlsZDMgRk9SIFZBTFVFUyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAx Ni0xMC0wMScpOyAtLSBlcnJvcgogRFJPUCBUQUJMRSBndGVzdF9jaGlsZDM7Ci1DUkVBVEUg VEFCTEUgZ3Rlc3RfY2hpbGQzIChmMSBkYXRlIE5PVCBOVUxMLCBmMiBiaWdpbnQsIGYzIGJp Z2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDMzKSBTVE9SRUQpOworQ1JFQVRFIFRB QkxFIGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAzMykgVklSVFVBTCk7CiBBTFRFUiBUQUJM RSBndGVzdF9wYXJlbnQgQVRUQUNIIFBBUlRJVElPTiBndGVzdF9jaGlsZDMgRk9SIFZBTFVF UyBGUk9NICgnMjAxNi0wOS0wMScpIFRPICgnMjAxNi0xMC0wMScpOwogXGQgZ3Rlc3RfY2hp bGQKIFxkIGd0ZXN0X2NoaWxkMgpAQCAtNDU3LDIxICs0NzYsMjEgQEAgQ1JFQVRFIFRBQkxF IGd0ZXN0X2NoaWxkMyAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQg R0VORVJBVEVEIEFMV0EKIC0tIHdlIGxlYXZlIHRoZXNlIHRhYmxlcyBhcm91bmQgZm9yIHB1 cnBvc2VzIG9mIHRlc3RpbmcgZHVtcC9yZWxvYWQvdXBncmFkZQogCiAtLSBnZW5lcmF0ZWQg Y29sdW1ucyBpbiBwYXJ0aXRpb24ga2V5IChub3QgYWxsb3dlZCkKLUNSRUFURSBUQUJMRSBn dGVzdF9wYXJ0X2tleSAoZjEgZGF0ZSBOT1QgTlVMTCwgZjIgYmlnaW50LCBmMyBiaWdpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoZjIgKiAyKSBTVE9SRUQpIFBBUlRJVElPTiBCWSBSQU5H RSAoZjMpOwotQ1JFQVRFIFRBQkxFIGd0ZXN0X3BhcnRfa2V5IChmMSBkYXRlIE5PVCBOVUxM LCBmMiBiaWdpbnQsIGYzIGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTIChmMiAqIDIpIFNU T1JFRCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CitDUkVBVEUgVEFCTEUgZ3Rl c3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEwsIGYyIGJpZ2ludCwgZjMgYmlnaW50IEdF TkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklSVFVBTCkgUEFSVElUSU9OIEJZIFJBTkdF IChmMyk7CitDUkVBVEUgVEFCTEUgZ3Rlc3RfcGFydF9rZXkgKGYxIGRhdGUgTk9UIE5VTEws IGYyIGJpZ2ludCwgZjMgYmlnaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGYyICogMikgVklS VFVBTCkgUEFSVElUSU9OIEJZIFJBTkdFICgoZjMgKiAzKSk7CiAKIC0tIEFMVEVSIFRBQkxF IC4uLiBBREQgQ09MVU1OCiBDUkVBVEUgVEFCTEUgZ3Rlc3QyNSAoYSBpbnQgUFJJTUFSWSBL RVkpOwogSU5TRVJUIElOVE8gZ3Rlc3QyNSBWQUxVRVMgKDMpLCAoNCk7Ci1BTFRFUiBUQUJM RSBndGVzdDI1IEFERCBDT0xVTU4gYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIp IFNUT1JFRCwgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAzKTsKK0FM VEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVNTiBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChhICogMikgVklSVFVBTCwgQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEg KiAzKTsKIFNFTEVDVCAqIEZST00gZ3Rlc3QyNSBPUkRFUiBCWSBhOwotQUxURVIgVEFCTEUg Z3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIgKiA0KSBT VE9SRUQ7ICAtLSBlcnJvcgotQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50 IEdFTkVSQVRFRCBBTFdBWVMgQVMgKHogKiA0KSBTVE9SRUQ7ICAtLSBlcnJvcgorQUxURVIg VEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIg KiA0KSBWSVJUVUFMOyAgLS0gZXJyb3IKK0FMVEVSIFRBQkxFIGd0ZXN0MjUgQUREIENPTFVN TiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICh6ICogNCkgVklSVFVBTDsgIC0tIGVycm9y CiBBTFRFUiBUQUJMRSBndGVzdDI1IEFERCBDT0xVTU4gYyBpbnQgREVGQVVMVCA0MiwKLSAg QUREIENPTFVNTiB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChjICogNCkgU1RPUkVEOwor ICBBREQgQ09MVU1OIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGMgKiA0KSBWSVJUVUFM OwogQUxURVIgVEFCTEUgZ3Rlc3QyNSBBREQgQ09MVU1OIGQgaW50IERFRkFVTFQgMTAxOwog QUxURVIgVEFCTEUgZ3Rlc3QyNSBBTFRFUiBDT0xVTU4gZCBTRVQgREFUQSBUWVBFIGZsb2F0 OCwKLSAgQUREIENPTFVNTiB5IGZsb2F0OCBHRU5FUkFURUQgQUxXQVlTIEFTIChkICogNCkg U1RPUkVEOworICBBREQgQ09MVU1OIHkgZmxvYXQ4IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGQg KiA0KSBWSVJUVUFMOwogU0VMRUNUICogRlJPTSBndGVzdDI1IE9SREVSIEJZIGE7CiBcZCBn dGVzdDI1CiAKQEAgLTQ3OSw3ICs0OTgsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3QyNSAoYSBp bnQgUFJJTUFSWSBLRVkpOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MjcgKAogICAgIGEgaW50LAog ICAgIGIgaW50LAotICAgIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKChhICsgYikgKiAy KSBTVE9SRUQKKyAgICB4IGludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikg VklSVFVBTAogKTsKIElOU0VSVCBJTlRPIGd0ZXN0MjcgKGEsIGIpIFZBTFVFUyAoMywgNyks ICg0LCAxMSk7CiBBTFRFUiBUQUJMRSBndGVzdDI3IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4 dDsgIC0tIGVycm9yCkBAIC00OTMsNyArNTEyLDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0Mjcg KAogICBEUk9QIENPTFVNTiB4LAogICBBTFRFUiBDT0xVTU4gYSBUWVBFIGJpZ2ludCwKICAg QUxURVIgQ09MVU1OIGIgVFlQRSBiaWdpbnQsCi0gIEFERCBDT0xVTU4geCBiaWdpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoKGEgKyBiKSAqIDIpIFNUT1JFRDsKKyAgQUREIENPTFVNTiB4 IGJpZ2ludCBHRU5FUkFURUQgQUxXQVlTIEFTICgoYSArIGIpICogMikgVklSVFVBTDsKIFxk IGd0ZXN0MjcKIC0tIElkZWFsbHkgeW91IGNvdWxkIGp1c3QgZG8gdGhpcywgYnV0IG5vdCB0 b2RheSAoYW5kIHNob3VsZCB4IGNoYW5nZSB0eXBlPyk6CiBBTFRFUiBUQUJMRSBndGVzdDI3 CkBAIC01MDUsNyArNTI0LDcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjcgKAogLS0gQUxURVIg VEFCTEUgLi4uIEFMVEVSIENPTFVNTiAuLi4gRFJPUCBFWFBSRVNTSU9OCiBDUkVBVEUgVEFC TEUgZ3Rlc3QyOSAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBB UyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAy KSBWSVJUVUFMCiApOwogSU5TRVJUIElOVE8gZ3Rlc3QyOSAoYSkgVkFMVUVTICgzKSwgKDQp OwogU0VMRUNUICogRlJPTSBndGVzdDI5OwpAQCAtNTMyLDcgKzU1MSw3IEBAIENSRUFURSBU QUJMRSBndGVzdDI5ICgKIC0tIHdpdGggaW5oZXJpdGFuY2UKIENSRUFURSBUQUJMRSBndGVz dDMwICgKICAgICBhIGludCwKLSAgICBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICog MikgU1RPUkVECisgICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRV QUwKICk7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsK IEFMVEVSIFRBQkxFIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBSRVNTSU9OOwpA QCAtNTQxLDcgKzU2MCw3IEBAIENSRUFURSBUQUJMRSBndGVzdDMwXzEgKCkgSU5IRVJJVFMg KGd0ZXN0MzApOwogRFJPUCBUQUJMRSBndGVzdDMwIENBU0NBREU7CiBDUkVBVEUgVEFCTEUg Z3Rlc3QzMCAoCiAgICAgYSBpbnQsCi0gICAgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo YSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBW SVJUVUFMCiApOwogQ1JFQVRFIFRBQkxFIGd0ZXN0MzBfMSAoKSBJTkhFUklUUyAoZ3Rlc3Qz MCk7CiBBTFRFUiBUQUJMRSBPTkxZIGd0ZXN0MzAgQUxURVIgQ09MVU1OIGIgRFJPUCBFWFBS RVNTSU9OOyAgLS0gZXJyb3IKQEAgLTU1Miw3ICs1NzEsNyBAQCBDUkVBVEUgVEFCTEUgZ3Rl c3QzMF8xICgpIElOSEVSSVRTIChndGVzdDMwKTsKIC0tIHRyaWdnZXJzCiBDUkVBVEUgVEFC TEUgZ3Rlc3QyNiAoCiAgICAgYSBpbnQgUFJJTUFSWSBLRVksCi0gICAgYiBpbnQgR0VORVJB VEVEIEFMV0FZUyBBUyAoYSAqIDIpIFNUT1JFRAorICAgIGIgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGEgKiAyKSBWSVJUVUFMCiApOwogCiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJp Z2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyCkBAIC02MTQsNiArNjMzLDkgQEAgQ1JFQVRF IFRSSUdHRVIgZ3Rlc3Q0IEFGVEVSIElOU0VSVCBPUiBVUERBVEUgT04gZ3Rlc3QyNgogRFJP UCBUUklHR0VSIGd0ZXN0MiBPTiBndGVzdDI2OwogRFJPUCBUUklHR0VSIGd0ZXN0MyBPTiBn dGVzdDI2OwogCistLSBjaGVjayBkaXNhbGxvd2VkIG1vZGlmaWNhdGlvbiBvZiB2aXJ0dWFs IGNvbHVtbnMKKy0tIFRPRE8KKwogLS0gQ2hlY2sgdGhhdCBhbiBVUERBVEUgb2YgImEiIGZp cmVzIHRoZSB0cmlnZ2VyIGZvciBVUERBVEUgT0YgYiwgcGVyCiAtLSBTUUwgc3RhbmRhcmQu CiBDUkVBVEUgRlVOQ1RJT04gZ3Rlc3RfdHJpZ2dlcl9mdW5jMygpIFJFVFVSTlMgdHJpZ2dl cgpAQCAtNjY3LDcgKzY4OSw3IEBAIENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiAgIGEgaW50 LAogICBiIGludCwKICAgYyBpbnQsCi0gIHggaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGIg KiAyKSBTVE9SRUQKKyAgeCBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoYiAqIDIpIFZJUlRV QUwKICk7CiAKIEFMVEVSIFRBQkxFIGd0ZXN0MjhhIERST1AgQ09MVU1OIGE7CkBAIC02NzUs MyArNjk3LDQ3IEBAIENSRUFURSBUQUJMRSBndGVzdDI4YSAoCiBDUkVBVEUgVEFCTEUgZ3Rl c3QyOGIgKExJS0UgZ3Rlc3QyOGEgSU5DTFVESU5HIEdFTkVSQVRFRCk7CiAKIFxkIGd0ZXN0 MjgqCisKKworLS0gVE9ETzogZXh0cmEgdGVzdHMgdG8gd2VhdmUgaW50byB0aGUgcmlnaHQg cGxhY2VzCisKKy0tIHN1YmxpbmtzCitDUkVBVEUgVEFCTEUgdDIgKAorICAgIGEgaW50LAor ICAgIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSwKKyAgICBkIGludCBERUZB VUxUIDIyCispOworSU5TRVJUIElOVE8gdDIgKGEpIFNFTEVDVCBnIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsIDEwKSBnOworU0VMRUNUIGEsIGIsIGQsIChTRUxFQ1QgdDIuYikgRlJPTSB0 MjsKK0RST1AgVEFCTEUgdDI7CisKKy0tIGNvbGxhdGUKKy8qCitDUkVBVEUgQ09MTEFUSU9O IGNhc2VfaW5zZW5zaXRpdmUgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAndW5kLXUta3Mt bGV2ZWwyJywgZGV0ZXJtaW5pc3RpYyA9IGZhbHNlKTsKK0NSRUFURSBUQUJMRSB0NSAoCisg ICAgYSB0ZXh0IGNvbGxhdGUgIkMiLAorICAgIGIgdGV4dCBjb2xsYXRlICJDIiBHRU5FUkFU RUQgQUxXQVlTIEFTIChhIGNvbGxhdGUgY2FzZV9pbnNlbnNpdGl2ZSkgLAorICAgIGQgaW50 IERFRkFVTFQgMjIKKyk7CitJTlNFUlQgSU5UTyB0NSAoYSwgZCkgdmFsdWVzICgnZDEnLCAy OCksICgnRDInLCAyNyksICgnRDEnLCAyNik7CitTRUxFQ1QgKiBGUk9NIHQ1IE9SREVSIEJZ IGIgQVNDLCBkIEFTQzsKK0RST1AgVEFCTEUgdDU7CitEUk9QIENPTExBVElPTiBjYXNlX2lu c2Vuc2l0aXZlOworKi8KKworLS0gY29tcG9zaXRlIHR5cGUgZGVwZW5kZW5jaWVzCitDUkVB VEUgVEFCTEUgYXRfdGFiMSAoYSBpbnQsIGIgdGV4dCBHRU5FUkFURUQgQUxXQVlTIEFTICgn aGVsbG8nKSwgYyB0ZXh0KTsKK0NSRUFURSBUQUJMRSBhdF90YWIyICh4IGludCwgeSBhdF90 YWIxKTsKK0FMVEVSIFRBQkxFIGF0X3RhYjEgQUxURVIgQ09MVU1OIGIgVFlQRSB2YXJjaGFy OyAgLS0gZmFpbHMKK0RST1AgVEFCTEUgYXRfdGFiMSwgYXRfdGFiMjsKKworLS0gQ2hlY2sg aXQgZm9yIGEgcGFydGl0aW9uZWQgdGFibGUsIHRvbworQ1JFQVRFIFRBQkxFIGF0X3RhYjEg KGEgaW50LCBiIHRleHQgR0VORVJBVEVEIEFMV0FZUyBBUyAoJ2hlbGxvJyksIGMgdGV4dCkg UEFSVElUSU9OIEJZIExJU1QgKGEpOworQ1JFQVRFIFRBQkxFIGF0X3RhYjIgKHggaW50LCB5 IGF0X3RhYjEpOworQUxURVIgVEFCTEUgYXRfdGFiMSBBTFRFUiBDT0xVTU4gYiBUWVBFIHZh cmNoYXI7ICAtLSBmYWlscworRFJPUCBUQUJMRSBhdF90YWIxLCBhdF90YWIyOworCistLSBh dHRhY2ggbWl4aW5nIGdlbmVyYXRlZCBraW5kcworQ1JFQVRFIFRBQkxFIGJhcjEgKGEgaW50 ZWdlciwgYiBpbnRlZ2VyIEdFTkVSQVRFRCBBTFdBWVMgQVMgKDIyKSkgUEFSVElUSU9OIEJZ IFJBTkdFIChhKTsKK0NSRUFURSBUQUJMRSBiYXIyIChhIGludGVnZXIsIGIgaW50ZWdlciBH RU5FUkFURUQgQUxXQVlTIEFTICgyMikgU1RPUkVEKTsKK0FMVEVSIFRBQkxFIGJhcjEgQVRU QUNIIFBBUlRJVElPTiBiYXIyIERFRkFVTFQ7ICAtLSBlcnJvcgpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDExX2dlbmVyYXRlZC5wbCBiL3NyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwKaW5kZXggOGIyZTVmNDcwOGUuLmZhZWUxNTVk YWE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTFfZ2VuZXJhdGVk LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxMV9nZW5lcmF0ZWQucGwKQEAg LTIxLDExICsyMSwxMSBAQAogbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlz aGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOwogCiAkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAotCSJDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJ TUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQpIgor CSJDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRF RCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMg KGEgKiAzKSBWSVJUVUFMKSIKICk7CiAKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAotCSJDUkVBVEUgVEFCTEUgdGFiMSAoYSBpbnQgUFJJTUFSWSBLRVksIGIg aW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyMikgU1RPUkVELCBjIGludCkiCisJIkNS RUFURSBUQUJMRSB0YWIxIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFM V0FZUyBBUyAoYSAqIDIyKSBTVE9SRUQsIGMgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEg KiAzMykgVklSVFVBTCwgZCBpbnQpIgogKTsKIAogIyBkYXRhIGZvciBpbml0aWFsIHN5bmMK QEAgLTQyLDEwICs0MiwxMCBAQAogIyBXYWl0IGZvciBpbml0aWFsIHN5bmMgb2YgYWxsIHN1 YnNjcmlwdGlvbnMKICRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9z eW5jOwogCi1teSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgYSwgYiBGUk9NIHRhYjEiKTsKLWlzKCAkcmVzdWx0LCBxcSgxfDIy Ci0yfDQ0Ci0zfDY2KSwgJ2dlbmVyYXRlZCBjb2x1bW5zIGluaXRpYWwgc3luYycpOworbXkg JHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUIGEsIGIsIGMgRlJPTSB0YWIxIik7CitpcyggJHJlc3VsdCwgcXEoMXwyMnwzMworMnw0 NHw2NgorM3w2Nnw5OSksICdnZW5lcmF0ZWQgY29sdW1ucyBpbml0aWFsIHN5bmMnKTsKIAog IyBkYXRhIHRvIHJlcGxpY2F0ZQogCkBAIC01NiwxMSArNTYsMTEgQEAKICRub2RlX3B1Ymxp c2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCiAkcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjEiKTsK LWlzKCAkcmVzdWx0LCBxcSgxfDIyfAotMnw0NHwKLTN8NjZ8Ci00fDg4fAotNnwxMzJ8KSwg J2dlbmVyYXRlZCBjb2x1bW5zIHJlcGxpY2F0ZWQnKTsKK2lzKCAkcmVzdWx0LCBxcSgxfDIy fDMzfAorMnw0NHw2NnwKKzN8NjZ8OTl8Cis0fDg4fDEzMnwKKzZ8MTMyfDE5OHwpLCAnZ2Vu ZXJhdGVkIGNvbHVtbnMgcmVwbGljYXRlZCcpOwogCiAjIHRyeSBpdCB3aXRoIGEgc3Vic2Ny aWJlci1zaWRlIHRyaWdnZXIKIApAQCAtNjksNyArNjksNyBAQAogQ1JFQVRFIEZVTkNUSU9O IHRhYjFfdHJpZ2dlcl9mdW5jKCkgUkVUVVJOUyB0cmlnZ2VyCiBMQU5HVUFHRSBwbHBnc3Fs IEFTICQkCiBCRUdJTgotICBORVcuYyA6PSBORVcuYSArIDEwOworICBORVcuZCA6PSBORVcu YSArIDEwOwogICBSRVRVUk4gTkVXOwogRU5EICQkOwogCkBAIC04OCwxMiArODgsMTIgQEAg QkVHSU4KIAogJHJlc3VsdCA9CiAgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIxIE9SREVSIEJZIDEiKTsKLWlzKCAkcmVzdWx0 LCBxcSgxfDIyfAotMnw0NHwKLTN8NjZ8Ci00fDg4fAotNnwxMzJ8Ci04fDE3NnwxOAotOXwx OTh8MTkpLCAnZ2VuZXJhdGVkIGNvbHVtbnMgcmVwbGljYXRlZCB3aXRoIHRyaWdnZXInKTsK K2lzKCAkcmVzdWx0LCBxcSgxfDIyfDMzfAorMnw0NHw2NnwKKzN8NjZ8OTl8Cis0fDg4fDEz MnwKKzZ8MTMyfDE5OHwKKzh8MTc2fDI2NHwxOAorOXwxOTh8Mjk3fDE5KSwgJ2dlbmVyYXRl ZCBjb2x1bW5zIHJlcGxpY2F0ZWQgd2l0aCB0cmlnZ2VyJyk7CiAKIGRvbmVfdGVzdGluZygp OwoKYmFzZS1jb21taXQ6IDZmZDUwNzE5MDlhMjg4NmM0OTk4NzFlNjExMjdmODE1ZmQ5YmI2 YTIKLS0gCjIuNDYuMgoK --------------M98as6YlktVBL0hMPU9QNvTp--