Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozelx-0008Bf-NC for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Nov 2022 14:06:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1ozelw-0000a4-EB for pgsql-hackers@arkaria.postgresql.org; Mon, 28 Nov 2022 14:06:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozelv-0000ZZ-Lv for pgsql-hackers@lists.postgresql.org; Mon, 28 Nov 2022 14:06:11 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ozelj-0005V5-KN for pgsql-hackers@postgresql.org; Mon, 28 Nov 2022 14:06:11 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 086343200344 for ; Mon, 28 Nov 2022 09:05:56 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Mon, 28 Nov 2022 09:05:57 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1669644356; x=1669730756; bh=9MHiG7tcUW318NaGoYJgZPJYNVUu wR80oifOca1Sjl4=; b=K48d6osa4sGm9Hs2t1vRbij8RXo8too9fBmIp5ft0B1m 6UqzactLr406FcURoN3e6i7awc0AOSIW/hkiuyOWA37KzJjJM416Td+M7NdIcts+ lVN3KYMNYo1eVEbI7ictJxjj/+tNMYmqLg3Q/qrBgk7uED0Wh02v6BRRTdswn+Fm aoAUSZ0gmNhlIdjst34B1MbbLsiJiGT3QFfodYR4W1RkHDaMjZMV/Tv40Znan4Pf A0OSr+x6b1Rvi4Yx41Cs+H0UPUtQ0f9w3y0d9VE2zyMzQzvC63GJ/rBc3WpX8UrA 0Q1k2PrvErsu7/Stq/v6jMXfx0amkBFe5ErohIh8gg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrjedvgdeiudcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfuhffvfhgjsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeekteetfeehvefhvdeltdefgeeluedtkeekkeevieefueffveejueejheffjeei jeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 28 Nov 2022 09:05:55 -0500 (EST) Content-Type: multipart/mixed; boundary="------------MxlLUJPiXksw7b2Q3JWaDAH3" Message-ID: <8bcedb49-1496-0755-bd24-1cbabf30ec84@enterprisedb.com> Date: Mon, 28 Nov 2022 15:05:54 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: Re: Transparent column encryption Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <89157929-c2b6-817b-6025-8e4b2d89d88f@enterprisedb.com> <48a9f2c2-4a57-27d8-7c53-16a23a01014e@enterprisedb.com> <79f08a39-a7da-5157-cef4-378fb60c18f8@enterprisedb.com> <258c5064-437e-f41e-7537-5e8c343c33cc@enterprisedb.com> <6bd99fea-3298-854d-d37f-554151342f36@enterprisedb.com> <963aa100-7e78-3463-0645-700eaaa325f2@enterprisedb.com> <06830254-6d87-86b2-0280-bf2eee7736a5@enterprisedb.com> <75f394fa-f539-1875-079c-c654deceed41@enterprisedb.com> In-Reply-To: <75f394fa-f539-1875-079c-c654deceed41@enterprisedb.com> 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. --------------MxlLUJPiXksw7b2Q3JWaDAH3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 23.11.22 19:39, Peter Eisentraut wrote: > Here is another updated patch.  Some preliminary work was committed, > which allowed this patch to get a bit smaller.  I have incorporated some > recent reviews, and also fixed some issues pointed out by recent CI > additions (address sanitizer etc.). > > The psql situation in this patch is temporary: It still has the \gencr > command from previous versions, but I plan to fold this into the new > \bind command. I made a bit of progress with this now, based on recent reviews: - Cleaned up the libpq API. PQexecParams() now supports column encryption transparently. - psql \bind can be used; \gencr is removed. - Added psql \dcek and \dcmk commands. - ALTER COLUMN MASTER KEY to alter realm. --------------MxlLUJPiXksw7b2Q3JWaDAH3 Content-Type: text/plain; charset=UTF-8; name="v12-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v12-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA5ODI3ZDc4OWQ3M2QwY2VlYjFkZDg4OGY4Y2E3YTg0MjYxNjA4MTY1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAyOCBOb3YgMjAyMiAxNDozMToyMCArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjEyXSBUcmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbgoKVGhpcyBmZWF0 dXJlIGVuYWJsZXMgdGhlIGF1dG9tYXRpYywgdHJhbnNwYXJlbnQgZW5jcnlwdGlvbiBhbmQK ZGVjcnlwdGlvbiBvZiBwYXJ0aWN1bGFyIGNvbHVtbnMgaW4gdGhlIGNsaWVudC4gIFRoZSBk YXRhIGZvciB0aG9zZQpjb2x1bW5zIHRoZW4gb25seSBldmVyIGFwcGVhcnMgaW4gY2lwaGVy dGV4dCBvbiB0aGUgc2VydmVyLCBzbyBpdCBpcwpwcm90ZWN0ZWQgZnJvbSBEQkFzLCBzeXNh ZG1pbnMsIGNsb3VkIG9wZXJhdG9ycywgZXRjLiBhcyB3ZWxsIGFzCmFjY2lkZW50YWwgbGVh a2FnZSB0byBzZXJ2ZXIgbG9ncywgZmlsZS1zeXN0ZW0gYmFja3VwcywgZXRjLiAgVGhlCmNh bm9uaWNhbCB1c2UgY2FzZSBmb3IgdGhpcyBmZWF0dXJlIGlzIHN0b3JpbmcgY3JlZGl0IGNh cmQgbnVtYmVycwplbmNyeXB0ZWQsIGluIGFjY29yZGFuY2Ugd2l0aCBQQ0kgRFNTLCBhcyB3 ZWxsIGFzIHNpbWlsYXIgc2l0dWF0aW9ucwppbnZvbHZpbmcgc29jaWFsIHNlY3VyaXR5IG51 bWJlcnMgZXRjLiAgT25lIGNhbid0IGRvIGFueSBjb21wdXRhdGlvbnMKd2l0aCBlbmNyeXB0 ZWQgdmFsdWVzIG9uIHRoZSBzZXJ2ZXIsIGJ1dCBmb3IgdGhlc2UgdXNlIGNhc2VzLCB0aGF0 IGlzCm5vdCBuZWNlc3NhcnkuICBUaGlzIGZlYXR1cmUgZG9lcyBzdXBwb3J0IGRldGVybWlu aXN0aWMgZW5jcnlwdGlvbiBhcwphbiBhbHRlcm5hdGl2ZSB0byB0aGUgZGVmYXVsdCByYW5k b21pemVkIGVuY3J5cHRpb24sIHNvIGluIHRoYXQgbW9kZQpvbmUgY2FuIGRvIGVxdWFsaXR5 IGxvb2t1cHMsIGF0IHRoZSBjb3N0IG9mIHNvbWUgc2VjdXJpdHkuCgpUaGlzIGZ1bmN0aW9u YWxpdHkgYWxzbyBleGlzdHMgaW4gb3RoZXIgZGF0YWJhc2UgcHJvZHVjdHMsIGFuZCB0aGUK b3ZlcmFsbCBjb25jZXB0cyB3ZXJlIG1vc3RseSBhZG9wdGVkIGZyb20gdGhlcmUuCgooTm90 ZTogVGhpcyBmZWF0dXJlIGhhcyBub3RoaW5nIHRvIGRvIHdpdGggYW55IG9uLWRpc2sgZW5j cnlwdGlvbgpmZWF0dXJlLiAgQm90aCBjYW4gZXhpc3QgaW5kZXBlbmRlbnRseS4pCgpZb3Ug ZGVjbGFyZSBhIGNvbHVtbiBhcyBlbmNyeXB0ZWQgaW4gYSBDUkVBVEUgVEFCTEUgc3RhdGVt ZW50LiAgVGhlCmNvbHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgYnkgYSBzeW1tZXRyaWMga2V5 IGNhbGxlZCB0aGUgY29sdW1uCmVuY3J5cHRpb24ga2V5IChDRUspLiAgVGhlIENFSyBpcyBh IGNhdGFsb2cgb2JqZWN0LiAgVGhlIENFSyBrZXkKbWF0ZXJpYWwgaXMgaW4gdHVybiBlbmNy eXB0ZWQgYnkgYW4gYXN5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpSU0FFU19PQUVQ X1NIQV8xIG9yIF8yNTYuICBUaGUgQ0VLIHByb2Nlc3MgdXNlcwpBRUFEX0FFU18qX0NCQ19I TUFDX1NIQV8qIHdpdGggc2V2ZXJhbCBzdHJlbmd0aHMuCgpJbiB0aGUgc2VydmVyLCB0aGUg ZW5jcnlwdGVkIGRhdHVtcyBhcmUgc3RvcmVkIGluIHR5cGVzIGNhbGxlZApwZ19lbmNyeXB0 ZWRfcm5kIGFuZCBwZ19lbmNyeXB0ZWRfZGV0IChmb3IgcmFuZG9taXplZCBhbmQKZGV0ZXJt aW5pc3RpYyBlbmNyeXB0aW9uKS4gIFRoZXNlIGFyZSBlc3NlbnRpYWxseSBjb3VzaW5zIG9m IGJ5dGVhLgpGb3IgdGhlIHJlc3Qgb2YgdGhlIGRhdGFiYXNlIHN5c3RlbSBiZWxvdyB0aGUg cHJvdG9jb2wgaGFuZGxpbmcsIHRoZXJlCmlzIG5vdGhpbmcgc3BlY2lhbCBhYm91dCB0aG9z ZS4gIEZvciBleGFtcGxlLCBwZ19lbmNyeXB0ZWRfcm5kIGhhcyBubwpvcGVyYXRvcnMgYXQg YWxsLCBwZ19lbmNyeXB0ZWRfZGV0IGhhcyBvbmx5IGFuIGVxdWFsaXR5IG9wZXJhdG9yLgpw Z19hdHRyaWJ1dGUgaGFzIGEgbmV3IGNvbHVtbiBhdHRyZWFsdHlwaWQgdGhhdCBzdG9yZXMg dGhlIG9yaWdpbmFsCnR5cGUgb2YgdGhlIGRhdGEgaW4gdGhlIGNvbHVtbi4gIFRoaXMgaXMg b25seSB1c2VkIGZvciBwcm92aWRpbmcgaXQgdG8KY2xpZW50cywgc28gdGhhdCBoaWdoZXIt bGV2ZWwgY2xpZW50cyBjYW4gY29udmVydCB0aGUgZGVjcnlwdGVkIHZhbHVlCnRvIHRoZWly IGFwcHJvcHJpYXRlIGRhdGEgdHlwZXMgaW4gdGhlaXIgZW52aXJvbm1lbnRzLgoKVGhlIHBy b3RvY29sIGV4dGVuc2lvbnMgYXJlIGd1YXJkZWQgYnkgYSBuZXcgcHJvdG9jb2wgZXh0ZW5z aW9uIG9wdGlvbgoiX3BxXy5jb2x1bW5fZW5jcnlwdGlvbiIuICBJZiB0aGlzIGlzIG5vdCBz ZXQsIG5vdGhpbmcgY2hhbmdlcywgdGhlCnByb3RvY29sIHN0YXlzIHRoZSBzYW1lLCBhbmQg bm8gZW5jcnlwdGlvbiBvciBkZWNyeXB0aW9uIGhhcHBlbnMuCgpUbyBnZXQgdHJhbnNwYXJl bnRseSBlbmNyeXB0ZWQgZGF0YSBpbnRvIHRoZSBkYXRhYmFzZSAoYXMgb3Bwb3NlZCB0bwpy ZWFkaW5nIGl0IG91dCksIGl0IGlzIHJlcXVpcmVkIHRvIHVzZSBwcm90b2NvbC1sZXZlbCBw cmVwYXJlZApzdGF0ZW1lbnRzIChpLmUuLCBleHRlbmRlZCBxdWVyeSkuICBUaGUgY2xpZW50 IG11c3QgZmlyc3QgcHJlcGFyZSBhCnN0YXRlbWVudCwgdGhlbiBkZXNjcmliZSB0aGUgc3Rh dGVtZW50IHRvIGdldCBwYXJhbWV0ZXIgbWV0YWRhdGEsCndoaWNoIGluZGljYXRlcyB3aGlj aCBwYXJhbWV0ZXJzIGFyZSB0byBiZSBlbmNyeXB0ZWQgYW5kIGhvdy4gIGxpYnBxJ3MKUFFl eGVjUGFyYW1zKCkgZG9lcyB0aGlzIGludGVybmFsbHkuICBGb3IgdGhlIGFzeW5jaHJvbm91 cyBpbnRlcmZhY2VzLAphZGRpdGlvbmFsIGxpYnBxIGZ1bmN0aW9ucyBhcmUgYWRkZWQgdG8g YmUgYWJsZSB0byBwYXNzIHRoZSBkZXNjcmliZQpyZXN1bHQgYmFjayBpbnRvIHRoZSBzdGF0 ZW1lbnQgZXhlY3V0aW9uIGZ1bmN0aW9uLiAgKE90aGVyIGNsaWVudCBBUElzCnRoYXQgaGF2 ZSBhICJzdGF0ZW1lbnQgaGFuZGxlIiBjb25jZXB0IGNvdWxkIGRvIHRoaXMgbW9yZSBlbGVn YW50bHkKYW5kIHByb2JhYmx5IHdpdGhvdXQgYW55IEFQSSBjaGFuZ2VzLikgIHBzcWwgYWxz byBzdXBwb3J0cyB0aGlzCnRyYW5zcGFyZW50bHkgaWYgdGhlIFxiaW5kIGNvbW1hbmQgaXMg dXNlZC4KCkFub3RoZXIgY2hhbGxlbmdlIGlzIHRoYXQgdGhlIHBhcnNlIGFuYWx5c2lzIG11 c3QgY2hlY2sgd2hpY2gKdW5kZXJseWluZyBjb2x1bW4gYSBwYXJhbWV0ZXIgY29ycmVzcG9u ZHMgdG8uICBUaGlzIGlzIHNpbWlsYXIgdG8KcmVzb3JpZ3RibCBhbmQgcmVzb3JpZ2NvbCBp biB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLiAgVGhpcwpmdW5jdGlvbmFsaXR5IGlzIGluIHBy aW5jaXBsZSBhdmFpbGFibGUgdG8gYWxsIHByZXBhcmVkLXN0YXRlbWVudAp2YXJpYW50cywg bm90IG9ubHkgcHJvdG9jb2wtbGV2ZWwuICBJIGV4cGFuZGVkIHRoZQpwZ19wcmVwYXJlZF9z dGF0ZW1lbnRzIHZpZXcgdG8gc2hvdyB0aGlzIGluZm9ybWF0aW9uIGFzIHdlbGwsIHdoaWNo CmFsc28gcHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gdGVzdCBhbmQgZGVidWcgdGhpcyBmdW5j dGlvbmFsaXR5CmluZGVwZW5kZW50IG9mIGNvbHVtbiBlbmNyeXB0aW9uLgoKRGlzY3Vzc2lv bjogaHR0cHM6Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0Lzg5MTU3OTI5 LWMyYjYtODE3Yi02MDI1LThlNGIyZDg5ZDg4ZiU0MGVudGVycHJpc2VkYi5jb20KLS0tCiBk b2Mvc3JjL3NnbWwvYWNyb255bXMuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTggKwog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgMjc1ICsr KysrKysKIGRvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICA0NyArKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAg IHwgMzcyICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAg ICAgICAgICAgIHwgIDIzICsKIGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sICAgICAgICAgICAg ICAgICAgICAgICB8IDI5MCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbCAg ICAgICAgICAgICAgICAgICAgfCAzOTIgKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Fs bGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDYgKwogLi4uL3NnbWwvcmVmL2FsdGVy X2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIHwgMTg2ICsrKysrCiBkb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgfCAxMjQgKysrCiAuLi4vcmVmL2Ny ZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCAgICAgfCAxNjMgKysrKwogLi4uL3Nn bWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sICAgIHwgMTA2ICsrKwogZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgIDQyICstCiAu Li4vc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCAgfCAxMTIgKysr CiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCAgfCAxMTIg KysrCiBkb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbCAgICAgICAgICAgICAgICAgfCAg MzEgKwogZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwgICAgICAgICAgICAgIHwg IDI3ICsKIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCAgICAgICAgICAgICAgICB8 ICAzOSArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jICAgICAg IHwgICA3ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYyAgICAgICAg ICB8IDE5MSArKysrLQogc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi90dXBkZXNjLmMgICAg ICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5j ICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAg ICAgICAgICAgIHwgICAzICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAg ICAgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMg ICAgICAgICAgICAgIHwgIDE4ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJl c3MuYyAgICAgICAgICAgfCAyMTMgKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2Vm aWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRl ci5jICAgICAgICAgICAgICAgICAgfCAgMTUgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvY29s ZW5jY21kcy5jICAgICAgICAgICAgIHwgNDIzICsrKysrKysrKysKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2Ryb3BjbWRzLmMgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgMTIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvbWVzb24uYnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICA3NCArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA5NiArKysKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMgICAgICAgICAgICAgICB8ICAgNyArLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMgICAgICAgICAgICAgICAgICAgIHwgICA0ICsKIHNy Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICAgMiArCiBz cmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDEzOSAr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyAgICAgICAgICAgICAgfCAg MzUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8 ICAgNiArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAgICAgICAg fCAgMTkgKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAgICAgICAg ICB8ICA1NyArLQogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAg ICAgIHwgIDU1ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgICAg ICAgICAgIHwgMTExICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMg ICAgICAgICAgIHwgIDMxICstCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5j ICAgICAgICAgICAgfCAgNTggKysKIHNyYy9iYWNrZW5kL3V0aWxzL21iL21idXRpbHMuYyAg ICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAg ICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCAg ICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2Fy Y2hpdmVyLmMgICAgICAgICAgfCAgIDIgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9k Yi5jICAgICAgICAgICAgICAgIHwgICA5ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j ICAgICAgICAgICAgICAgICAgICAgfCAzNTAgKysrKysrKy0KIHNyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAzMSArCiBzcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMgICAgICAgICAgICAgICAgfCAgMTQgKwogc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBhbGwuYyAgICAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA0OCArKwogc3JjL2Jpbi9wc3Fs L2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvYmluL3Bz cWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxNTcgKysrLQogc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9i aW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBzcmMv YmluL3BzcWwvc2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3N0YXJ0dXAuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA1MSArLQog c3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmggICAgICAgICAgICAgICAgIHwgICAyICsK IHNyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oICAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkICAgICAgICAgICAgICAgfCAgIDMg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdCAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgICAgICAgICB8ICAg NSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oICAgICAgICAgICAgfCAg IDkgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAgICAgICAgICAgICAgIHwg ICA2ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmggICAgICAgICAgICB8 ICA1NSArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmggICAgICAg IHwgIDQ2ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oICAgICAg ICAgfCAgNDUgKysKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5kYXQgICAgICAg ICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdCAgICAg ICAgICAgfCAgMTAgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQgICAg ICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAg ICAgICAgICB8ICAxMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdCAgICAg ICAgICAgICAgIHwgIDEyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oICAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgg ICAgICAgICAgICAgfCAgMjYgKwogc3JjL2luY2x1ZGUvbGlicHEvbGlicHEtYmUuaCAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAg ICAgICAgICAgICAgICB8ICAyOSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oICAg ICAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAg ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3Bh cmFtLmggICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJv dC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNj YWNoZS5oICAgICAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS91dGlscy9wbGFu Y2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvdXRpbHMvc3lz Y2FjaGUuaCAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBx L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW50ZXJmYWNlcy9saWJw cS9leHBvcnRzLnR4dCAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtY29ubmVjdC5jICAgICAgICAgICAgIHwgIDI1ICsKIHNyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jICAgICB8IDc2MCArKysrKysrKysrKysrKysrKysK IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaCAgICAgICAgICAgICB8ICAzMyAr CiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgICAgICAgICAgICAgICAgfCA2MDYg KysrKysrKysrKysrKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jICAg ICAgICAgICB8IDE0NiArKystCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jICAg ICAgICAgICAgICAgfCAgNTUgKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgg ICAgICAgICAgICAgICB8ICAyMCArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQu aCAgICAgICAgICAgICAgfCAgMzYgKwogc3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVp bGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tayAg ICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8u Z2l0aWdub3JlICAgICAgICAgIHwgICAxICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3Qv TWFrZWZpbGUgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0 L21lc29uLmJ1aWxkICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvTWFrZWZpbGUgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9jb2x1bW5fZW5jcnlw dGlvbi8uZ2l0aWdub3JlICAgICAgICAgfCAgIDMgKwogc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vTWFrZWZpbGUgICAgICAgICAgIHwgIDMxICsKIHNyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uL21lc29uLmJ1aWxkICAgICAgICB8ICAyMyArCiAuLi4vdC8wMDFfY29sdW1uX2Vu Y3J5cHRpb24ucGwgICAgICAgICAgICAgICAgfCAyMjMgKysrKysKIC4uLi9jb2x1bW5fZW5j cnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgICB8IDExMCArKysKIHNyYy90ZXN0L2Nv bHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMgICAgICB8IDExMCArKysKIC4uLi9jb2x1 bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0LnBsICAgICB8ICA2MCArKwogc3JjL3Rl c3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dCAgICB8IDE2NiArKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dCAgfCAgNDUgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgNiAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0ICAgICAgfCAgMTIg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQgICAgICAgICB8ICAz OCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgICAgICAgICAgIHwg ICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dCAgICAg fCAgNDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAg ICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jICAgICAgICAg ICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNx bCAgICB8IDE0NiArKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5z cWwgICAgICAgfCAgMTcgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsICAg ICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHku c3FsICAgICAgICAgIHwgICAyICsKIDEzMyBmaWxlcyBjaGFuZ2VkLCA3NjMwIGluc2VydGlv bnMoKyksIDE0OCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAx MDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCiBj cmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5 cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3Ny Yy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5o CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlk YXRhLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1h c3RlcmtleS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvY29s ZW5jY21kcy5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt ZW5jcnlwdC1vcGVuc3NsLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1lbmNyeXB0LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbi8uZ2l0aWdub3JlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29s dW1uX2VuY3J5cHRpb24vTWFrZWZpbGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9j b2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDJfY21rX3Jv dGF0aW9uLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vdGVzdF9jbGllbnQuYwogY3JlYXRlIG1vZGUgMTAwNzU1IHNyYy90ZXN0L2NvbHVtbl9l bmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0aW9uLnNxbAoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sIGIvZG9jL3NyYy9zZ21s L2Fjcm9ueW1zLnNnbWwKaW5kZXggMmRmNjU1OWFjY2NlLi5iZDFhMDE4NWVkN2EgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9hY3Jvbnltcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9h Y3Jvbnltcy5zZ21sCkBAIC01Niw2ICs1NiwxNSBAQCA8dGl0bGU+QWNyb255bXM8L3RpdGxl PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3Rl bnRyeT4KKyAgICA8dGVybT48YWNyb255bT5DRUs8L2Fjcm9ueW0+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb2x1bW4gRW5jcnlwdGlvbiBLZXkKKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg PHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48YWNyb255bT5DSURSPC9hY3JvbnltPjwvdGVy bT4KICAgICA8bGlzdGl0ZW0+CkBAIC02Nyw2ICs3NiwxNSBAQCA8dGl0bGU+QWNyb255bXM8 L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48YWNyb255bT5DTUs8L2Fjcm9ueW0+PC90ZXJtPgor ICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDb2x1bW4gTWFzdGVyIEtleQor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3JvbnltPkNQQU48L2Fjcm9ueW0+PC90 ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggOWVkMmIwMjBiN2Q5 Li4wY2YxNjYyMGVlMWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xMDUsNiArMTA1LDIxIEBA IDx0aXRsZT5TeXN0ZW0gQ2F0YWxvZ3M8L3RpdGxlPgogICAgICAgPGVudHJ5PmNvbGxhdGlv bnMgKGxvY2FsZSBpbmZvcm1hdGlvbik8L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8 cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5 Ij48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+ CisgICAgICA8ZW50cnk+Y29sdW1uIGVuY3J5cHRpb24ga2V5czwvZW50cnk+CisgICAgIDwv cm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy1jb2xlbmNrZXlkYXRhIj48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1 Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5h bWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAg PGVudHJ5PmNvbHVtbiBtYXN0ZXIga2V5czwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAg IDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJh aW50Ij48c3RydWN0bmFtZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2Vu dHJ5PgogICAgICAgPGVudHJ5PmNoZWNrIGNvbnN0cmFpbnRzLCB1bmlxdWUgY29uc3RyYWlu dHMsIHByaW1hcnkga2V5IGNvbnN0cmFpbnRzLCBmb3JlaWduIGtleSBjb25zdHJhaW50czwv ZW50cnk+CkBAIC0xMzYwLDYgKzEzNzUsNDAgQEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2F0 dHJpYnV0ZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmF0dGNlazwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGVu Y2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0 cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgSWYgdGhlIGNvbHVtbiBpcyBlbmNyeXB0ZWQsIGEgcmVmZXJlbmNlIHRv IHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVsc2UgMC4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+YXR0cmVhbHR5cGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGct dHlwZSI+PHN0cnVjdG5hbWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3Rm aWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5jcnlwdGVkLCB0aGVuIHRoaXMgY29sdW1uIGlu ZGljYXRlcyB0aGUgdHlwZSBvZiB0aGUKKyAgICAgICBlbmNyeXB0ZWQgZGF0YSB0aGF0IGlz IHJlcG9ydGVkIHRvIHRoZSBjbGllbnQuICBGb3IgZW5jcnlwdGVkIGNvbHVtbnMsCisgICAg ICAgdGhlIGZpZWxkIDxzdHJ1Y3RmaWVsZD5hdHR0eXBpZDwvc3RydWN0ZmllbGQ+IGlzIGVp dGhlcgorICAgICAgIDx0eXBlPnBnX2VuY3J5cHRlZF9kZXQ8L3R5cGU+IG9yIDx0eXBlPnBn X2VuY3J5cHRlZF9ybmQ8L3R5cGU+LiAgSWYgdGhlCisgICAgICAgY29sdW1uIGlzIG5vdCBl bmNyeXB0ZWQsIHRoZW4gMC4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ YXR0ZW5jYWxnPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MTY8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwg dGhlIGlkZW50aWZpZXIgb2YgdGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtOworICAgICAgIHNl ZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jZWsiLz4gZm9yIHBvc3NpYmxlIHZhbHVlcy4K KyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmF0dGluaGNvdW50PC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KQEAgLTI0NjcsNiArMjUxNiwyMzIgQEAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGxhdGlvbjwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0 bGU+CiAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLWNv bGVuY2tleSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5h bWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29sZW5ja2V5 Ij4KKyAgIDxwcmltYXJ5PnBnX2NvbGVuY2tleTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+ CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ19jb2xlbmNrZXk8 L3N0cnVjdG5hbWU+IGNvbnRhaW5zIGluZm9ybWF0aW9uCisgICBhYm91dCB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5cyBpbiB0aGUgZGF0YWJhc2UuICBUaGUgYWN0dWFsIGtleSBtYXRl cmlhbAorICAgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaXMgaW4gdGhlIGNhdGFs b2cgPGxpbmsKKyAgIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+PHN0cnVj dG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L2xpbms+LgorICA8L3BhcmE+ CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3Ry dWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0 aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5 cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAg IDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmNla25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1l PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQ29sdW1uIGVu Y3J5cHRpb24ga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnki PjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+ Y2Vrb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVy ZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBn X2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRo ZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8 L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0 MT4KKworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXlkYXRhIj4KKyAgPHRpdGxl PjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+PC90aXRsZT4KKwor ICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+CisgICA8cHJp bWFyeT5wZ19jb2xlbmNrZXlkYXRhPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8 cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0 cnVjdG5hbWU+IGNvbnRhaW5zIHRoZSBrZXkKKyAgIG1hdGVyaWFsIG9mIGNvbHVtbiBlbmNy eXB0aW9uIGtleXMuICBFYWNoIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBvYmplY3QgY2FuCisg ICBjb250YWluIHNldmVyYWwgdmVyc2lvbnMgb2YgdGhlIGtleSBtYXRlcmlhbCwgZWFjaCBl bmNyeXB0ZWQgd2l0aCBhCisgICBkaWZmZXJlbnQgY29sdW1uIG1hc3RlciBrZXkuICBUaGF0 IGFsbG93cyB0aGUgZ3JhZHVhbCByb3RhdGlvbiBvZiB0aGUKKyAgIGNvbHVtbiBtYXN0ZXIg a2V5cy4gIFRodXMsIDxsaXRlcmFsPihja2RjZWtpZCwgY2tkY21raWQpPC9saXRlcmFsPiBp cyBhCisgICB1bmlxdWUga2V5IG9mIHRoaXMgdGFibGUuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5cyBzaG91 bGQgbmV2ZXIgYmUgZGVjcnlwdGVkIGluc2lkZQorICAgdGhlIGRhdGFiYXNlIGluc3RhbmNl LiAgSXQgaXMgbWVhbnQgdG8gYmUgc2VudCBhcy1pcyB0byB0aGUgY2xpZW50LCB3aGVyZQor ICAgaXQgaXMgZGVjcnlwdGVkIHVzaW5nIHRoZSBhc3NvY2lhdGVkIGNvbHVtbiBtYXN0ZXIg a2V5LCBhbmQgdGhlbiB1c2VkIHRvCisgICBlbmNyeXB0IG9yIGRlY3J5cHQgY29sdW1uIHZh bHVlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKyAgIDx0Z3Jv dXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50 aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93 PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y2tkY2VraWQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsg bGlua2VuZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tl eTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBjb2x1bW4gZW5jcnlw dGlvbiBrZXkgdGhpcyBlbnRyeSBiZWxvbmdzIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmNrZGNta2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbWFzdGVy a2V5Ij48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48 c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgY29sdW1uIG1hc3RlciBrZXkgdGhhdCB0aGUga2V5IG1hdGVy aWFsIGlzIGVuY3J5cHRlZCB3aXRoCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmNrZGNta2FsZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDE2PC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGht IHVzZWQgZm9yIGVuY3J5cHRpbmcgdGhlIGtleSBtYXRlcmlhbDsgc2VlCisgICAgICAgPHhy ZWYgbGlua2VuZD0icHJvdG9jb2wtY21rIi8+IGZvciBwb3NzaWJsZSB2YWx1ZXMuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNrZGVuY3ZhbDwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJ5dGVhPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAg ICAgVGhlIGtleSBtYXRlcmlhbCBvZiB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwgZW5j cnlwdGVkIHVzaW5nIHRoZQorICAgICAgIHJlZmVyZW5jZWQgY29sdW1uIG1hc3RlciBrZXkK KyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAg PC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKworIDxzZWN0MSBpZD0iY2F0YWxv Zy1wZy1jb2xtYXN0ZXJrZXkiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVy a2V5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRhbG9n LXBnLWNvbG1hc3RlcmtleSI+CisgICA8cHJpbWFyeT5wZ19jb2xtYXN0ZXJrZXk8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVj dG5hbWU+cGdfY29sbWFzdGVya2V5PC9zdHJ1Y3RuYW1lPiBjb250YWlucyBpbmZvcm1hdGlv bgorICAgYWJvdXQgY29sdW1uIG1hc3RlciBrZXlzLiAgVGhlIGtleXMgdGhlbXNlbHZlcyBh cmUgbm90IHN0b3JlZCBpbiB0aGUKKyAgIGRhdGFiYXNlLiAgVGhlIGNhdGFsb2cgZW50cnkg b25seSBjb250YWlucyBpbmZvcm1hdGlvbiB0aGF0IGlzIHVzZWQgYnkKKyAgIGNsaWVudHMg dG8gbG9jYXRlIHRoZSBrZXlzLCBmb3IgZXhhbXBsZSBpbiBhIGZpbGUgb3IgaW4gYSBrZXkg bWFuYWdlbWVudAorICAgc3lzdGVtLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT4gQ29sdW1uczwv dGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4K KyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0 ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPmNta25hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQ29sdW1uIG1hc3RlciBrZXkgbmFtZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtvd25lcjwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwv bGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5Cisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNta3JlYWxtPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIEEgPHF1b3RlPnJlYWxtPC9xdW90ZT4gYXNzb2NpYXRlZCB3aXRoIHRoaXMgY29sdW1u IG1hc3RlciBrZXkuICBUaGlzIGlzCisgICAgICAgYSBmcmVlbHkgY2hvc2VuIHN0cmluZyB0 aGF0IGlzIHVzZWQgYnkgY2xpZW50cyB0byBkZXRlcm1pbmUgaG93IHRvIGxvb2sKKyAgICAg ICB1cCB0aGUga2V5LiAgQSB0eXBpY2FsIGNvbmZpZ3VyYXRpb24gd291bGQgcHV0IGFsbCBD TUtzIHRoYXQgYXJlIGxvb2tlZAorICAgICAgIHVwIGluIHRoZSBzYW1lIHdheSBpbnRvIHRo ZSBzYW1lIHJlYWxtLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAg IDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCiAgPHNl Y3QxIGlkPSJjYXRhbG9nLXBnLWNvbnN0cmFpbnQiPgogICA8dGl0bGU+PHN0cnVjdG5hbWU+ cGdfY29uc3RyYWludDwvc3RydWN0bmFtZT48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGF0YXR5cGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9kYXRhdHlwZS5zZ21sCmlu ZGV4IGIwMzBiMzYwMDJmNC4uYmIzYzZhNjg1ZjRhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvZGF0YXR5cGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbApAQCAt NTM1OSw0ICs1MzU5LDUxIEBAIDx0aXRsZT5Qc2V1ZG8tVHlwZXM8L3RpdGxlPgogCiAgIDwv c2VjdDE+CiAKKyAgPHNlY3QxIGlkPSJkYXRhdHlwZS1lbmNyeXB0ZWQiPgorICAgPHRpdGxl PlR5cGVzIFJlbGF0ZWQgdG8gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgIDxwYXJhPgorICAg IEFuIGVuY3J5cHRlZCBjb2x1bW4gdmFsdWUgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtY29s dW1uLWVuY3J5cHRpb24iLz4pIGlzCisgICAgaW50ZXJuYWxseSBzdG9yZWQgdXNpbmcgdGhl IHR5cGVzCisgICAgPHR5cGU+cGdfZW5jcnlwdGVkX3JuZDwvdHlwZT4gKGZvciByYW5kb21p emVkIGVuY3J5cHRpb24pIG9yCisgICAgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4g KGZvciBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24pOyBzZWUgPHhyZWYKKyAgICBsaW5rZW5k PSJkYXRhdHlwZS1lbmNyeXB0ZWQtdGFibGUiLz4uICBNb3N0IG9mIHRoZSBkYXRhYmFzZSBz eXN0ZW0gdHJlYXRzCisgICAgdGhpcyBhcyBub3JtYWwgdHlwZXMuICBGb3IgZXhhbXBsZSwg dGhlIHR5cGUgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4gaGFzCisgICAgYW4gZXF1 YWxzIG9wZXJhdG9yIHRoYXQgYWxsb3dzIGxvb2t1cCBvZiBlbmNyeXB0ZWQgdmFsdWVzLiAg VGhlIGV4dGVybmFsCisgICAgcmVwcmVzZW50YXRpb24gb2YgdGhlc2UgdHlwZXMgaXMgdGhl IHNhbWUgYXMgdGhlIDx0eXBlPmJ5dGVhPC90eXBlPiB0eXBlLgorICAgIFRodXMsIGNsaWVu dHMgdGhhdCBkb24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIG9y IGhhdmUKKyAgICBkaXNhYmxlZCBpdCB3aWxsIHNlZSB0aGUgZW5jcnlwdGVkIHZhbHVlcyBh cyBieXRlIGFycmF5cy4gIENsaWVudHMgdGhhdAorICAgIHN1cHBvcnQgdHJhbnNwYXJlbnQg ZGF0YSBlbmNyeXB0aW9uIHdpbGwgbm90IHNlZSB0aGVzZSB0eXBlcyBpbiByZXN1bHQKKyAg ICBzZXRzLCBhcyB0aGUgcHJvdG9jb2wgbGF5ZXIgd2lsbCB0cmFuc2xhdGUgdGhlbSBiYWNr IHRvIGRlY2xhcmVkCisgICAgdW5kZXJseWluZyB0eXBlIGluIHRoZSB0YWJsZSBkZWZpbml0 aW9uLgorICAgPC9wYXJhPgorCisgICAgPHRhYmxlIGlkPSJkYXRhdHlwZS1lbmNyeXB0ZWQt dGFibGUiPgorICAgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBFbmNyeXB0aW9uPC90aXRs ZT4KKyAgICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICAgIDxjb2xzcGVjIGNvbG5hbWU9ImNv bDEiIGNvbHdpZHRoPSIxKiIvPgorICAgICAgPGNvbHNwZWMgY29sbmFtZT0iY29sMiIgY29s d2lkdGg9IjMqIi8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJjb2wzIiBjb2x3aWR0aD0i MioiLz4KKyAgICAgIDx0aGVhZD4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+TmFt ZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5TdG9yYWdlIFNpemU8L2VudHJ5PgorICAgICAg ICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgPC90 aGVhZD4KKyAgICAgIDx0Ym9keT4KKyAgICAgICA8cm93PgorICAgICAgICA8ZW50cnk+PHR5 cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT48L2VudHJ5PgorICAgICAgICA8ZW50cnk+MSBv ciA0IGJ5dGVzIHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5nPC9lbnRyeT4KKyAgICAg ICAgPGVudHJ5PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIGRldGVybWluaXN0aWMgZW5jcnlw dGlvbjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICAgPHJvdz4KKyAgICAgICAgPGVu dHJ5Pjx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgICAgPGVu dHJ5PjEgb3IgNCBieXRlcyBwbHVzIHRoZSBhY3R1YWwgYmluYXJ5IHN0cmluZzwvZW50cnk+ CisgICAgICAgIDxlbnRyeT5lbmNyeXB0ZWQgY29sdW1uIHZhbHVlLCByYW5kb21pemVkIGVu Y3J5cHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAgPC90Ym9keT4KKyAgICAg PC90Z3JvdXA+CisgICAgPC90YWJsZT4KKyAgPC9zZWN0MT4KICA8L2NoYXB0ZXI+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwK aW5kZXggMDNjMDE5MzcwOTRiLi4wNDc4YzYzMGFkYTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTEyMTEsNiAr MTIxMSwzNzggQEAgPHRpdGxlPkV4Y2x1c2lvbiBDb25zdHJhaW50czwvdGl0bGU+CiAgIDwv c2VjdDI+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iZGRsLWNvbHVtbi1lbmNyeXB0aW9u Ij4KKyAgPHRpdGxlPlRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFdpdGggPGZpcnN0dGVybT50cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlw dGlvbjwvZmlyc3R0ZXJtPiwgY29sdW1ucyBjYW4gYmUKKyAgIHN0b3JlZCBlbmNyeXB0ZWQg aW4gdGhlIGRhdGFiYXNlLiAgVGhlIGVuY3J5cHRpb24gYW5kIGRlY3J5cHRpb24gaGFwcGVu cyBvbgorICAgdGhlIGNsaWVudCwgc28gdGhhdCB0aGUgcGxhaW50ZXh0IHZhbHVlIGlzIG5l dmVyIHNlZW4gaW4gdGhlIGRhdGFiYXNlCisgICBpbnN0YW5jZSBvciBvbiB0aGUgc2VydmVy IGhvc3RpbmcgdGhlIGRhdGFiYXNlLiAgVGhlIGRyYXdiYWNrIGlzIHRoYXQgbW9zdAorICAg b3BlcmF0aW9ucywgc3VjaCBhcyBmdW5jdGlvbiBjYWxscyBvciBzb3J0aW5nLCBhcmUgbm90 IHBvc3NpYmxlIG9uCisgICBlbmNyeXB0ZWQgdmFsdWVzLgorICA8L3BhcmE+CisKKyAgPHNl Y3QyPgorICAgPHRpdGxlPlVzaW5nIFRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRyYW5wYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gdXNl cyB0d28gbGV2ZWxzIG9mIGNyeXB0b2dyYXBoaWMga2V5cy4gIFRoZQorICAgYWN0dWFsIGNv bHVtbiB2YWx1ZSBpcyBlbmNyeXB0ZWQgdXNpbmcgYSBzeW1tZXRyaWMgYWxnb3JpdGhtLCBz dWNoIGFzIEFFUywKKyAgIHVzaW5nIGEgPGZpcnN0dGVybT5jb2x1bW4gZW5jcnlwdGlvbiBr ZXk8L2ZpcnN0dGVybT4KKyAgICg8YWNyb255bT5DRUs8L2Fjcm9ueW0+KS4gIFRoZSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgaXMgaW4gdHVybiBlbmNyeXB0ZWQKKyAgIHVzaW5nIGFuIGFz eW1tZXRyaWMgYWxnb3JpdGhtLCBzdWNoIGFzIFJTQSwgdXNpbmcgYSA8Zmlyc3R0ZXJtPmNv bHVtbgorICAgbWFzdGVyIGtleTwvZmlyc3R0ZXJtPiAoPGFjcm9ueW0+Q01LPC9hY3Jvbnlt PikuICBUaGUgZW5jcnlwdGVkIENFSyBpcworICAgc3RvcmVkIGluIHRoZSBkYXRhYmFzZSBz eXN0ZW0uICBUaGUgQ01LIGlzIG5vdCBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlCisgICBzeXN0 ZW07IGl0IGlzIHN0b3JlZCBvbiB0aGUgY2xpZW50IG9yIHNvbWV3aGVyZSB3aGVyZSB0aGUg Y2xpZW50IGNhbiBhY2Nlc3MKKyAgIGl0LCBzdWNoIGFzIGluIGEgbG9jYWwgZmlsZSBvciBp biBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4gIFRoZSBkYXRhYmFzZQorICAgc3lzdGVtIG9u bHkgcmVjb3JkcyB3aGVyZSB0aGUgQ01LIGlzIHN0b3JlZCBhbmQgcHJvdmlkZXMgdGhpcyBp bmZvcm1hdGlvbgorICAgdG8gdGhlIGNsaWVudC4gIFdoZW4gcm93cyBjb250YWluaW5nIGVu Y3J5cHRlZCBjb2x1bW5zIGFyZSBzZW50IHRvIHRoZQorICAgY2xpZW50LCB0aGUgc2VydmVy IGZpcnN0IHNlbmRzIGFueSBuZWNlc3NhcnkgQ01LIGluZm9ybWF0aW9uLCBmb2xsb3dlZCBi eQorICAgYW55IHJlcXVpcmVkIENFSy4gIFRoZSBjbGllbnQgdGhlbiBsb29rcyB1cCB0aGUg Q01LIGFuZCB1c2VzIHRoYXQgdG8KKyAgIGRlY3J5cHQgdGhlIENFSy4gIFRoZW4gaXQgZGVj cnlwdHMgaW5jb21pbmcgcm93IGRhdGEgdXNpbmcgdGhlIENFSyBhbmQKKyAgIHByb3ZpZGVz IHRoZSBkZWNyeXB0ZWQgcm93IGRhdGEgdG8gdGhlIGFwcGxpY2F0aW9uLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBIZXJlIGlzIGFuIGV4YW1wbGUgZGVjbGFyaW5nIGEgY29sdW1u IGFzIGVuY3J5cHRlZDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBjdXN0b21l cnMgKAorICAgIGlkIGludCBQUklNQVJZIEtFWSwKKyAgICBuYW1lIHRleHQgTk9UIE5VTEws CisgICAgLi4uCisgICAgY3JlZGl0Y2FyZF9udW0gdGV4dCA8ZW1waGFzaXM+RU5DUllQVEVE IFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpPC9lbXBoYXNpcz4KKyk7Cis8 L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBDb2x1bW4gZW5j cnlwdGlvbiBzdXBwb3J0cyA8Zmlyc3R0ZXJtPnJhbmRvbWl6ZWQ8L2ZpcnN0dGVybT4KKyAg IChhbHNvIGtub3duIGFzIDxmaXJzdHRlcm0+cHJvYmFiaWxpc3RpYzwvZmlyc3R0ZXJtPikg YW5kCisgICA8Zmlyc3R0ZXJtPmRldGVybWluaXN0aWM8L2ZpcnN0dGVybT4gZW5jcnlwdGlv bi4gIFRoZSBhYm92ZSBleGFtcGxlIHVzZXMKKyAgIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbiwg d2hpY2ggaXMgdGhlIGRlZmF1bHQuICBSYW5kb21pemVkIGVuY3J5cHRpb24gdXNlcyBhCisg ICByYW5kb20gaW5pdGlhbGl6YXRpb24gdmVjdG9yIGZvciBlYWNoIGVuY3J5cHRpb24sIHNv IHRoYXQgZXZlbiBpZiB0aGUKKyAgIHBsYWludGV4dCBvZiB0d28gcm93cyBpcyBlcXVhbCwg dGhlIGVuY3J5cHRlZCB2YWx1ZXMgd2lsbCBiZSBkaWZmZXJlbnQuCisgICBUaGlzIHByZXZl bnRzIHNvbWVvbmUgd2l0aCBkaXJlY3QgYWNjZXNzIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIg dG8gbWFrZQorICAgY29tcHV0YXRpb25zIHN1Y2ggYXMgZGlzdGluY3QgY291bnRzIG9uIHRo ZSBlbmNyeXB0ZWQgdmFsdWVzLgorICAgRGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uIHVzZXMg YSBmaXhlZCBpbml0aWFsaXphdGlvbiB2ZWN0b3IuICBUaGlzIHJlZHVjZXMKKyAgIHNlY3Vy aXR5LCBidXQgaXQgYWxsb3dzIGVxdWFsaXR5IHNlYXJjaGVzIG9uIGVuY3J5cHRlZCB2YWx1 ZXMuICBUaGUKKyAgIGZvbGxvd2luZyBleGFtcGxlIGRlY2xhcmVzIGEgY29sdW1uIHdpdGgg ZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRB QkxFIGVtcGxveWVlcyAoCisgICAgaWQgaW50IFBSSU1BUlkgS0VZLAorICAgIG5hbWUgdGV4 dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBzc24gdGV4dCBFTkNSWVBURUQgV0lUSCAoCisg ICAgICAgIGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIDxlbXBoYXNpcz5lbmNyeXB0 aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljPC9lbXBoYXNpcz4pCispOworPC9wcm9ncmFtbGlz dGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTnVsbCB2YWx1ZXMgYXJlIG5vdCBl bmNyeXB0ZWQgYnkgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb247IG51bGwgdmFsdWVz CisgICBzZW50IGJ5IHRoZSBjbGllbnQgYXJlIHZpc2libGUgYXMgbnVsbCB2YWx1ZXMgaW4g dGhlIGRhdGFiYXNlLiAgSWYgdGhlIGZhY3QKKyAgIHRoYXQgYSB2YWx1ZSBpcyBudWxsIG5l ZWRzIHRvIGJlIGhpZGRlbiBmcm9tIHRoZSBzZXJ2ZXIsIHRoaXMgaW5mb3JtYXRpb24KKyAg IG5lZWRzIHRvIGJlIGVuY29kZWQgaW50byBhIG5vbm51bGwgdmFsdWUgaW4gdGhlIGNsaWVu dCBzb21laG93LgorICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyPgorICAgPHRp dGxlPlJlYWRpbmcgYW5kIFdyaXRpbmcgRW5jcnlwdGVkIENvbHVtbnM8L3RpdGxlPgorCisg ICA8cGFyYT4KKyAgICBSZWFkaW5nIGFuZCB3cml0aW5nIGVuY3J5cHRlZCBjb2x1bW5zIGlz IG1lYW50IHRvIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseQorICAgIGJ5IHRoZSBjbGllbnQg bGlicmFyeS9kcml2ZXIgYW5kIHNob3VsZCBiZSBtb3N0bHkgdHJhbnNwYXJlbnQgdG8gdGhl CisgICAgYXBwbGljYXRpb24gY29kZSwgaWYgY2VydGFpbiBwcmVyZXF1aXNpdGVzIGFyZSBm dWxmaWxsZWQ6CisKKyAgICA8aXRlbWl6ZWRsaXN0PgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBUaGUgY2xpZW50IGxpYnJhcnkgbmVlZHMgdG8gc3VwcG9ydCB0 cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbi4gIE5vdAorICAgICAgIGFsbCBjbGllbnQg bGlicmFyaWVzIGRvLiAgRnVydGhlcm1vcmUsIHRoZSBjbGllbnQgbGlicmFyeSBtaWdodCBy ZXF1aXJlCisgICAgICAgdGhhdCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBl eHBsaWNpdGx5IGVuYWJsZWQgYXQgY29ubmVjdGlvbgorICAgICAgIHRpbWUuICBTZWUgdGhl IGRvY3VtZW50YXRpb24gb2YgdGhlIGNsaWVudCBsaWJyYXJ5IGZvciBkZXRhaWxzLgorICAg ICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIENvbHVtbiBtYXN0ZXIga2V5cyBhbmQgY29sdW1uIGVuY3J5cHRp b24ga2V5cyBoYXZlIGJlZW4gc2V0IHVwLCBhbmQgdGhlCisgICAgICAgY2xpZW50IGxpYnJh cnkgaGFzIGJlZW4gY29uZmlndXJlZCB0byBiZSBhYmxlIHRvIGxvb2sgdXAgY29sdW1uIG1h c3RlcgorICAgICAgIGtleXMgZnJvbSB0aGUga2V5IHN0b3JlIG9yIGtleSBtYW5hZ2VtZW50 IHN5c3RlbS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1p emVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgUmVhZGluZyBmcm9tIGVu Y3J5cHRlZCBjb2x1bW5zIHdpbGwgdGhlbiB3b3JrIGF1dG9tYXRpY2FsbHkuICBGb3IgZXhh bXBsZSwKKyAgICB1c2luZyB0aGUgYWJvdmUgZXhhbXBsZSwKKzxwcm9ncmFtbGlzdGluZz4K K1NFTEVDVCBzc24gRlJPTSBlbXBsb3llZXMgV0hFUkUgaWQgPSA1OworPC9wcm9ncmFtbGlz dGluZz4KKyAgICB3aWxsIHJldHVybiB0aGUgdW5lbmNyeXB0ZWQgdmFsdWUgZm9yIHRoZSA8 bGl0ZXJhbD5zc248L2xpdGVyYWw+IGNvbHVtbiBpbgorICAgIGFueSByb3dzIGZvdW5kLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXcml0aW5nIHRvIGVuY3J5cHRlZCBjb2x1 bW5zIHJlcXVpcmVzIHRoYXQgdGhlIGV4dGVuZGVkIHF1ZXJ5IHByb3RvY29sCisgICAgKHBy b3RvY29sLWxldmVsIHByZXBhcmVkIHN0YXRlbWVudHMpIGJlIHVzZWQsIHNvIHRoYXQgdGhl IHZhbHVlcyB0byBiZQorICAgIGVuY3J5cHRlZCBhcmUgc3VwcGxpZWQgc2VwYXJhdGVseSBm cm9tIHRoZSBTUUwgY29tbWFuZC4gIEZvciBleGFtcGxlLAorICAgIHVzaW5nLCBzYXksIHBz cWwgb3IgbGlicHEsIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IHdvcms6Cis8cHJvZ3JhbWxp c3Rpbmc+CistLSBXUk9ORyEKK0lOU0VSVCBJTlRPIHNzbiAoaWQsIG5hbWUsIHNzbikgVkFM VUVTICgxLCAnU29tZW9uZScsICcxMjM0NScpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICBU aGlzIHdpbGwgbGVhayB0aGUgdW5lbmNyeXB0ZWQgdmFsdWUgPGxpdGVyYWw+MTIzNDU8L2xp dGVyYWw+IHRvIHRoZQorICAgIHNlcnZlciwgdGh1cyBkZWZlYXRpbmcgdGhlIHBvaW50IG9m IGNvbHVtbiBlbmNyeXB0aW9uLgorICAgIE5vdGUgdGhhdCB1c2luZyBzZXJ2ZXItc2lkZSBw cmVwYXJlZCBzdGF0ZW1lbnRzIHVzaW5nIHRoZSBTUUwgY29tbWFuZHMKKyAgICA8Y29tbWFu ZD5QUkVQQVJFPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+RVhFQ1VURTwvY29tbWFuZD4gaXMg ZXF1YWxseQorICAgIGluY29ycmVjdCwgc2luY2UgdGhhdCB3b3VsZCBhbHNvIGxlYWsgdGhl IHBhcmFtZXRlcnMgcHJvdmlkZWQgdG8KKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5k PiB0byB0aGUgc2VydmVyLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGlzIHNo b3dzIGEgY29ycmVjdCBpbnZvY2F0aW9uIGluIGxpYnBxICh3aXRob3V0IGVycm9yIGNoZWNr aW5nKToKKzxwcm9ncmFtbGlzdGluZz4KK1BHcmVzdWx0ICAgKnJlczsKK2NvbnN0IGNoYXIg KnZhbHVlc1tdID0geyIxIiwgIlNvbWVvbmUiLCAiMTIzNDUifTsKKworcmVzID0gUFFleGVj UGFyYW1zKGNvbm4sICJJTlNFUlQgSU5UTyBzc24gKGlkLCBuYW1lLCBzc24pIFZBTFVFUyAo JDEsICQyLCAkMykiLCAzLCBOVUxMLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworCisvKiBw cmludCByZXN1bHQgaW4gcmVzICovCis8L3Byb2dyYW1saXN0aW5nPgorICAgIEhpZ2hlci1s ZXZlbCBjbGllbnQgbGlicmFyaWVzIG1pZ2h0IHVzZSB0aGUgcHJvdG9jb2wtbGV2ZWwgcHJl cGFyZWQKKyAgICBzdGF0ZW1lbnRzIGF1dG9tYXRpY2FsbHkgYW5kIHRodXMgd29uJ3QgcmVx dWlyZSBhbnkgY29kZSBjaGFuZ2VzLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICA8 YXBwbGljYXRpb24+cHNxbDwvYXBwbGljYXRpb24+IHByb3ZpZGVzIHRoZSBjb21tYW5kCisg ICAgPGxpdGVyYWw+XGJpbmQ8L2xpdGVyYWw+IHRvIHJ1biBzdGF0ZW1lbnRzIHdpdGggcGFy YW1ldGVycyBsaWtlIHRoaXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitJTlNFUlQgSU5UTyBzc24g KGlkLCBuYW1lLCBzc24pIFZBTFVFUyAoJDEsICQyLCAkMykgXGJpbmQgJzEnICdTb21lb25l JywgJzEyMzQ1JyBcZworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0 Mj4KKworICA8c2VjdDI+CisgICA8dGl0bGU+U2V0dGluZyB1cCBUcmFuc3BhcmVudCBDb2x1 bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgc3RlcHMgdG8gc2V0 IHVwIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciBhIGRhdGFiYXNlIGFyZToK KworICAgPG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBDcmVhdGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhlIENNSywgZm9yIGV4YW1wbGUsIHVz aW5nIGEgY3J5cHRvZ3JhcGhpYworICAgICAgbGlicmFyeSBvciB0b29sa2l0LCBvciBhIGtl eSBtYW5hZ2VtZW50IHN5c3RlbS4gIFNlY3VyZSBhY2Nlc3MgdG8gdGhlCisgICAgICBrZXkg YXMgYXBwcm9wcmlhdGUsIHVzaW5nIGFjY2VzcyBjb250cm9sLCBwYXNzd29yZHMsIGV0Yy4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENNSyBpbiB0aGUgZGF0YWJhc2UgdXNpbmcg dGhlIFNRTCBjb21tYW5kIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rl ci1rZXkiLz4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUgKHVuZW5jcnlwdGVkKSBrZXkg bWF0ZXJpYWwgZm9yIHRoZSBDRUsgaW4gYSB0ZW1wb3JhcnkKKyAgICAgIGxvY2F0aW9uLiAg KEl0IHdpbGwgYmUgZW5jcnlwdGVkIGluIHRoZSBuZXh0IHN0ZXAuICBEZXBlbmRpbmcgb24g dGhlCisgICAgICBhdmFpbGFibGUgdG9vbHMsIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIGFuZCBz ZW5zaWJsZSB0byBjb21iaW5lIHRoZXNlIHR3bworICAgICAgc3RlcHMuKQorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBFbmNyeXB0IHRoZSBjcmVhdGVkIENFSyBrZXkgbWF0ZXJpYWwgdXNpbmcgdGhlIENN SyAoY3JlYXRlZCBlYXJsaWVyKS4KKyAgICAgIChUaGUgdW5lbmNyeXB0ZWQgdmVyc2lvbiBv ZiB0aGUgQ0VLIGtleSBtYXRlcmlhbCBjYW4gbm93IGJlIGRpc3Bvc2VkCisgICAgICBvZi4p CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlIHVzaW5n IHRoZSBTUUwgY29tbWFuZCA8eHJlZgorICAgICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1 bW4tZW5jcnlwdGlvbi1rZXkiLz4uICBUaGlzIGNvbW1hbmQKKyAgICAgIDxxdW90ZT51cGxv YWRzPC9xdW90ZT4gdGhlIGVuY3J5cHRlZCBDRUsga2V5IG1hdGVyaWFsIGNyZWF0ZWQgaW4g dGhlCisgICAgICBwcmV2aW91cyBzdGVwIHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIuICBUaGUg bG9jYWwgY29weSBvZiB0aGUgQ0VLIGtleQorICAgICAgbWF0ZXJpYWwgY2FuIHRoZW4gYmUg cmVtb3ZlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIGVuY3J5cHRlZCBjb2x1bW5zIHVzaW5n IHRoZSBjcmVhdGVkIENFSy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBjbGllbnQg bGlicmFyeS9kcml2ZXIgdG8gYmUgYWJsZSB0byBsb29rIHVwIHRoZSBDTUsKKyAgICAgIGNy ZWF0ZWQgZWFybGllci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L29y ZGVyZWRsaXN0PgorCisgICBPbmNlIHRoaXMgaXMgZG9uZSwgdmFsdWVzIGNhbiBiZSB3cml0 dGVuIHRvIGFuZCByZWFkIGZyb20gdGhlIGVuY3J5cHRlZAorICAgY29sdW1ucyBpbiBhIHRy YW5zcGFyZW50IHdheS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTm90ZSB0aGF0IHRo ZXNlIHN0ZXBzIHNob3VsZCBub3QgYmUgcnVuIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGJ1 dCBvbiBzb21lCisgICBjbGllbnQgbWFjaGluZS4gIE5laXRoZXIgdGhlIENNSyBub3IgdGhl IHVuZW5jcnlwdGVkIENFSyBzaG91bGQgZXZlciBhcHBlYXIKKyAgIG9uIHRoZSBkYXRhYmFz ZSBzZXJ2ZXIgaG9zdC4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHNwZWNpZmlj IGRldGFpbHMgb2YgdGhpcyBzZXR1cCBkZXBlbmQgb24gdGhlIGRlc2lyZWQgQ01LIHN0b3Jh Z2UKKyAgIG1lY2hhbmlzbS9rZXkgbWFuYWdlbWVudCBzeXN0ZW0gYXMgd2VsbCBhcyB0aGUg Y2xpZW50IGxpYnJhcmllcyB0byBiZSB1c2VkLgorICAgVGhlIGZvbGxvd2luZyBleGFtcGxl IHVzZXMgdGhlIDxjb21tYW5kPm9wZW5zc2w8L2NvbW1hbmQ+IGNvbW1hbmQtbGluZSB0b29s CisgICB0byBzZXQgdXAgdGhlIGtleXMuCisKKyAgIDxvcmRlcmVkbGlzdD4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSBrZXkgbWF0ZXJpYWwgZm9y IHRoZSBDTUsgYW5kIHdyaXRlIGl0IHRvIGEgZmlsZToKKzxwcm9ncmFtbGlzdGluZz4KK29w ZW5zc2wgZ2VucGtleSAtYWxnb3JpdGhtIHJzYSAtb3V0IGNtazEucGVtCis8L3Byb2dyYW1s aXN0aW5nPgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01LIGluIHRoZSBkYXRhYmFz ZToKKzxwcm9ncmFtbGlzdGluZz4KK3BzcWwgLi4uIC1jICJDUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICcnKSIKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIENyZWF0ZSB0aGUgdW5lbmNyeXB0ZWQgQ0VLIGtleSBtYXRlcmlhbCBpbiBh IGZpbGU6Cis8cHJvZ3JhbWxpc3Rpbmc+CitvcGVuc3NsIHJhbmQgLW91dCBjZWsxLmJpbiAz MgorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIChTZWUgPHhyZWYgbGlua2VuZD0icHJvdG9j b2wtY2VrLXRhYmxlIi8+IGZvciByZXF1aXJlZCBrZXkgbGVuZ3Rocy4pCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtleSBtYXRlcmlhbDoKKzxwcm9ncmFtbGlz dGluZz4KK29wZW5zc2wgcGtleXV0bCAtZW5jcnlwdCAtaW5rZXkgY21rMS5wZW0gLXBrZXlv cHQgcnNhX3BhZGRpbmdfbW9kZTpvYWVwIC1pbiBjZWsxLmJpbiAtb3V0IGNlazEuYmluLmVu Yworcm0gY2VrMS5iaW4KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZ2lz dGVyIHRoZSBDRUsgaW4gdGhlIGRhdGFiYXNlOgorPHByb2dyYW1saXN0aW5nPgorIyBjb252 ZXJ0IGZpbGUgY29udGVudHMgdG8gaGV4IGVuY29kaW5nOyB0aGlzIGlzIGp1c3Qgb25lIHBv c3NpYmxlIHdheQorY2VrZW5jaGV4PSQocGVybCAtMG5lICdwcmludCB1bnBhY2sgIkgqIicg Y2VrMS5iaW4uZW5jKQorcHNxbCAuLi4gLWMgIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBlbmNyeXB0 ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9JykiCitybSBjZWsxLmJpbi5lbmMKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSBlbmNyeXB0ZWQgY29sdW1ucyBh cyBzaG93biBpbiB0aGUgZXhhbXBsZXMgYWJvdmUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENvbmZpZ3Vy ZSB0aGUgbGlicHEgZm9yIENNSyBsb29rdXAgKHNlZSBhbHNvIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLWNvbm5lY3QtY21rbG9va3VwIi8+KToKKzxwcm9ncmFtbGlzdGluZz4KK1BHQ01LTE9P S1VQPSIqPWZpbGU6JFBXRC8lay5wZW0iCitleHBvcnQgUEdDTUtMT09LVVAKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEFkZGl0aW9u YWxseSwgbGlicHEgcmVxdWlyZXMgdGhhdCB0aGUgY29ubmVjdGlvbiBwYXJhbWV0ZXIgPHhy ZWYKKyAgICAgIGxpbmtlbmQ9ImxpYnBxLWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24iLz4g YmUgc2V0IGluIG9yZGVyIHRvIGFjdGl2YXRlCisgICAgICB0aGUgdHJhbnNwYXJlbnQgY29s dW1uIGVuY3J5cHRpb24gZnVuY3Rpb25hbGl0eS4gIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4K KyAgICAgIHRoZSBjb25uZWN0aW9uIHBhcmFtZXRlcnMgb2YgdGhlIGFwcGxpY2F0aW9uLCBi dXQgYW4gZW52aXJvbm1lbnQKKyAgICAgIHZhcmlhYmxlICg8ZW52YXI+UEdDT0xVTU5FTkNS WVBUSU9OPC9lbnZhcj4pIGlzIGFsc28gYXZhaWxhYmxlLgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvb3JkZXJlZGxpc3Q+CisgIDwvcGFyYT4KKyAgPC9zZWN0Mj4K KworICA8c2VjdDI+CisgICA8dGl0bGU+R3VpZGFuY2Ugb24gVXNpbmcgVHJhbnNwYXJlbnQg Q29sdW1uIEVuY3J5cHRpb248L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBUaGlzIHNlY3Rp b24gY29udGFpbnMgc29tZSBpbmZvcm1hdGlvbiBvbiB3aGVuIGl0IGlzIG9yIGlzIG5vdCBh cHByb3ByaWF0ZQorICAgIHRvIHVzZSB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiwg YW5kIHdoYXQgcHJlY2F1dGlvbnMgbmVlZCB0byBiZQorICAgIHRha2VuIHRvIG1haW50YWlu IGl0cyBzZWN1cml0eS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSW4gZ2VuZXJh bCwgY29sdW1uIGVuY3J5cHRpb24gaXMgbmV2ZXIgYSByZXBsYWNlbWVudCBmb3IgYWRkaXRp b25hbAorICAgIHNlY3VyaXR5IGFuZCBlbmNyeXB0aW9uIHRlY2huaXF1ZXMgc3VjaCBhcyB0 cmFuc21pc3Npb24gZW5jcnlwdGlvbgorICAgIChTU0wvVExTKSwgc3RvcmFnZSBlbmNyeXB0 aW9uLCBzdHJvbmcgYWNjZXNzIGNvbnRyb2wsIGFuZCBwYXNzd29yZAorICAgIHNlY3VyaXR5 LiAgQ29sdW1uIGVuY3J5cHRpb24gb25seSB0YXJnZXRzIHNwZWNpZmljIHVzZSBjYXNlcyBh bmQgc2hvdWxkIGJlCisgICAgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGFkZGl0aW9uYWwg c2VjdXJpdHkgbWVhc3VyZXMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEEgdHlw aWNhbCB1c2UgY2FzZSBmb3IgY29sdW1uIGVuY3J5cHRpb24gaXMgdG8gZW5jcnlwdCBzcGVj aWZpYyB2YWx1ZXMKKyAgICB3aXRoIGFkZGl0aW9uYWwgc2VjdXJpdHkgcmVxdWlyZW1lbnRz LCBmb3IgZXhhbXBsZSBjcmVkaXQgY2FyZCBudW1iZXJzLgorICAgIFRoaXMgd291bGQgYWxs b3cgeW91IHRvIHN0b3JlIHRoYXQgc2VjdXJpdHktc2Vuc2l0aXZlIGRhdGEgdG9nZXRoZXIg d2l0aAorICAgIHRoZSByZXN0IG9mIHlvdXIgZGF0YSAodGh1cyBnZXR0aW5nIHZhcmlvdXMg YmVuZWZpdHMsIHN1Y2ggYXMgcmVmZXJlbnRpYWwKKyAgICBpbnRlZ3JpdHksIGNvbnNpc3Rl bnQgYmFja3VwcyksIHdoaWxlIGdpdmluZyBhY2Nlc3MgdG8gdGhhdCBkYXRhIG9ubHkgdG8K KyAgICBzcGVjaWZpYyBjbGllbnRzIGFuZCBwcmV2ZW50aW5nIGFjY2lkZW50YWwgbGVha2Fn ZSBvbiB0aGUgc2VydmVyIHNpZGUKKyAgICAoc2VydmVyIGxvZ3MsIGZpbGUgc3lzdGVtIGJh Y2t1cHMsIGV0Yy4pLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBDb2x1bW4gZW5j cnlwdGlvbiBjYW5ub3QgaGlkZSB0aGUgZXhpc3RlbmNlIG9yIGFic2VuY2Ugb2YgZGF0YSwg aXQgY2FuCisgICAgb25seSBkaXNndWlzZSB0aGUgcGFydGljdWxhciBkYXRhIHRoYXQgaXMg a25vd24gdG8gZXhpc3QuICBGb3IgZXhhbXBsZSwKKyAgICBzdG9yaW5nIGEgY2xlYXJ0ZXh0 IHBlcnNvbiBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQgY3JlZGl0IGNhcmQgbnVtYmVyCisgICAg aW5kaWNhdGVzIHRoYXQgdGhlIHBlcnNvbiBoYXMgYSBjcmVkaXQgY2FyZC4gIFRoYXQgbWln aHQgbm90IHJldmVhbCB0b28KKyAgICBtdWNoIGlmIHRoZSBkYXRhYmFzZSBpcyBmb3IgYW4g b25saW5lIHN0b3JlIGFuZCB0aGVyZSBpcyBvdGhlciBkYXRhIG5lYXJieQorICAgIHRoYXQg c2hvd3MgdGhhdCB0aGUgcGVyc29uIGhhcyByZWNlbnRseSBtYWRlIHB1cmNoYXNlcy4gIEJ1 dCBpbiBhbm90aGVyCisgICAgZXhhbXBsZSwgc3RvcmluZyBhIGNsZWFydGV4dCBwZXJzb24g bmFtZSBhbmQgYW4gZW5jcnlwdGVkIGRpYWdub3NpcyBpbiBhCisgICAgbWVkaWNhbCBkYXRh YmFzZSBwcm9iYWJseSBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVyc29uIGhhcyBhIG1lZGljYWwg aXNzdWUuCisgICAgRGVwZW5kaW5nIG9uIHRoZSBjaXJjdW1zdGFuY2VzLCB0aGF0IG1pZ2h0 IG5vdCBieSBpdHNlbGYgYmUgc3VmZmljaWVudAorICAgIHNlY3VyaXR5LgorICAgPC9wYXJh PgorCisgICA8cGFyYT4KKyAgICBFbmNyeXB0aW9uIGNhbm5vdCBjb21wbGV0ZWx5IGhpZGUg dGhlIGxlbmd0aCBvZiB2YWx1ZXMuICBUaGUgZW5jcnlwdGlvbgorICAgIG1ldGhvZHMgd2ls bCBwYWQgdmFsdWVzIHRvIG11bHRpcGxlcyBvZiB0aGUgdW5kZXJseWluZyBjaXBoZXIncyBi bG9jayBzaXplCisgICAgKHVzdWFsbHkgMTYgYnl0ZXMpLCBzbyBzb21lIGxlbmd0aCBkaWZm ZXJlbmNlcyB3aWxsIGJlIHVuaWZpZWQgdGhpcyB3YXkuCisgICAgVGhlcmUgaXMgbm8gY29u Y2VybiBpZiBhbGwgdmFsdWVzIGFyZSBvZiB0aGUgc2FtZSBsZW5ndGggKGUuZy4sIGNyZWRp dAorICAgIGNhcmQgbnVtYmVycykuICBCdXQgaWYgdGhlcmUgYXJlIHNpZ25maWNhbnQgbGVu Z3RoIGRpZmZlcmVuY2VzIGJldHdlZW4KKyAgICB2YWxpZCB2YWx1ZXMgYW5kIHRoYXQgbGVu Z3RoIGluZm9ybWF0aW9uIGlzIHNlY3VyaXR5LXNlbnNpdGl2ZSwgdGhlbgorICAgIGFwcGxp Y2F0aW9uLXNwZWNpZmljIHdvcmthcm91bmRzIHN1Y2ggYXMgcGFkZGluZyB3b3VsZCBuZWVk IHRvIGJlIGFwcGxpZWQuCisgICAgSG93IHRvIGRvIHRoYXQgc2VjdXJlbHkgaXMgYmV5b25k IHRoZSBzY29wZSBvZiB0aGlzIG1hbnVhbC4KKyAgIDwvcGFyYT4KKworICAgPG5vdGU+Cisg ICAgPHBhcmE+CisgICAgIFN0b3JpbmcgZGF0YSBzdWNoIGNyZWRpdCBjYXJkIGRhdGEsIG1l ZGljYWwgZGF0YSwgYW5kIHNvIG9uIGlzIHVzdWFsbHkKKyAgICAgc3ViamVjdCB0byBnb3Zl cm5tZW50IG9yIGluZHVzdHJ5IHJlZ3VsYXRpb25zLiAgVGhpcyBzZWN0aW9uIGlzIG5vdCBt ZWFudAorICAgICB0byBwcm92aWRlIGNvbXBsZXRlIGluc3RydWN0aW9ucyBvbiBob3cgdG8g ZG8gdGhpcyBjb3JyZWN0bHkuICBQbGVhc2UKKyAgICAgc2VlayBhZGRpdGlvbmFsIGFkdmlj ZSB3aGVuIGVuZ2FnaW5nIGluIHN1Y2ggcHJvamVjdHMuCisgICAgPC9wYXJhPgorICAgPC9u b3RlPgorICA8L3NlY3QyPgorIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1zeXN0ZW0t Y29sdW1ucyI+CiAgIDx0aXRsZT5TeXN0ZW0gQ29sdW1uczwvdGl0bGU+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5 LnNnbWwKaW5kZXggOTNmYjE0OWQ5YTI2Li43ZGVmZDk2ZmVkOTAgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5z Z21sCkBAIC0zODksNiArMzg5LDI5IEBAIDx0aXRsZT5HbG9zc2FyeTwvdGl0bGU+CiAgICA8 L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3Nz YXJ5LWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgICA8Z2xvc3N0ZXJtPkNvbHVtbiBlbmNy eXB0aW9uIGtleTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVmPgorICAgIDxwYXJhPgorICAg ICBBIGNyeXB0b2dyYXBoaWMga2V5IHVzZWQgdG8gZW5jcnlwdCBjb2x1bW4gdmFsdWVzIHdo ZW4gdXNpbmcgdHJhbnNwYXJlbnQKKyAgICAgY29sdW1uIGVuY3J5cHRpb24uICBDb2x1bW4g ZW5jcnlwdGlvbiBrZXlzIGFyZSBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlCisgICAgIGVuY3J5 cHRlZCBieSBhbm90aGVyIGtleSwgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgIDwvcGFy YT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKworICA8Z2xvc3NlbnRyeSBp ZD0iZ2xvc3NhcnktY29sdW1uLW1hc3Rlci1rZXkiPgorICAgPGdsb3NzdGVybT5Db2x1bW4g bWFzdGVyIGtleTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVmPgorICAgIDxwYXJhPgorICAg ICBBIGNyeXB0b2dyYXBoaWMga2V5IHVzZWQgdG8gZW5jcnlwdCBjb2x1bW4gZW5jcnlwdGlv biBrZXlzLiAgKFNvIHRoZQorICAgICBjb2x1bW4gbWFzdGVyIGtleSBpcyBhIDxmaXJzdHRl cm0+a2V5IGVuY3J5cHRpb24ga2V5PC9maXJzdHRlcm0+LikKKyAgICAgQ29sdW1uIG1hc3Rl ciBrZXlzIGFyZSBzdG9yZWQgb3V0c2lkZSB0aGUgZGF0YWJhc2Ugc3lzdGVtLCBmb3IgZXhh bXBsZSBpbgorICAgICBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4KKyAgICA8L3BhcmE+Cisg ICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imds b3NzYXJ5LWNvbW1pdCI+CiAgICA8Z2xvc3N0ZXJtPkNvbW1pdDwvZ2xvc3N0ZXJtPgogICAg PGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbGlicHEuc2dtbAppbmRleCBmOTU1OGRlYzNiNjIuLjRiYWVhMGViMmRmNCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2xpYnBxLnNnbWwKQEAgLTE5NjQsNiArMTk2NCwxMjMgQEAgPHRpdGxlPlBhcmFtZXRlciBL ZXkgV29yZHM8L3RpdGxlPgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLWNv bm5lY3QtY29sdW1uLWVuY3J5cHRpb24iIHhyZWZsYWJlbD0iY29sdW1uX2VuY3J5cHRpb24i PgorICAgICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBJZiBzZXQg dG8gMSwgdGhpcyBlbmFibGVzIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciB0 aGUKKyAgICAgICAgY29ubmVjdGlvbi4gIElmIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSBxdWVy aWVkIGFuZCB0aGlzIGlzIG5vdCBlbmFibGVkLAorICAgICAgICB0aGUgZW5jcnlwdGVkIHZh bHVlIGlzIHJldHVybmVkLiAgU2VlIDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImRkbC1jb2x1 bW4tZW5jcnlwdGlvbiIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGlzCisgICAg ICAgIGZlYXR1cmUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAg PC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtY29ubmVj dC1jbWtsb29rdXAiIHhyZWZsYWJlbD0iY21rbG9va3VwIj4KKyAgICAgIDx0ZXJtPjxsaXRl cmFsPmNta2xvb2t1cDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAg ICAgPHBhcmE+CisgICAgICAgIFRoaXMgc3BlY2lmaWVzIGhvdyBsaWJwcSBzaG91bGQgbG9v ayB1cCBjb2x1bW4gbWFzdGVyIGtleXMgKENNS3MpIGluCisgICAgICAgIG9yZGVyIHRvIGRl Y3J5cHQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgKENFS3MpLgorICAgICAgICBUaGUg dmFsdWUgaXMgYSBsaXN0IG9mIDxsaXRlcmFsPmtleT12YWx1ZTwvbGl0ZXJhbD4gZW50cmll cyBzZXBhcmF0ZWQKKyAgICAgICAgYnkgc2VtaWNvbG9ucy4gIEVhY2gga2V5IGlzIHRoZSBu YW1lIG9mIGEga2V5IHJlYWxtLCBvcgorICAgICAgICA8bGl0ZXJhbD4qPC9saXRlcmFsPiB0 byBtYXRjaCBhbGwgcmVhbG1zLiAgVGhlIHZhbHVlIGlzIGEKKyAgICAgICAgPGxpdGVyYWw+ c2NoZW1lOmRhdGE8L2xpdGVyYWw+IHNwZWNpZmljYXRpb24uICBUaGUgc2NoZW1lIHNwZWNp ZmllcworICAgICAgICB0aGUgbWV0aG9kIHRvIGxvb2sgdXAgdGhlIGtleSwgdGhlIHJlbWFp bmluZyBkYXRhIGlzIHNwZWNpZmljIHRvIHRoZQorICAgICAgICBzY2hlbWUuICBQbGFjZWhv bGRlcnMgYXJlIHJlcGxhY2VkIGluIHRoZSByZW1haW5pbmcgZGF0YSBhcyBmb2xsb3dzOgor CisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVhPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgVGhlIENNSyBhbGdv cml0aG0gbmFtZSAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPikK KyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8 dGVybT48bGl0ZXJhbD4lYjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAgPGxpc3RpdGVt PgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBlbmNyeXB0ZWQgQ0VLIGRh dGEgaW4gQmFzZTY0IGVuY29kaW5nIChvbmx5IGZvciB0aGUgPGxpdGVyYWw+cnVuPC9saXRl cmFsPiBzY2hlbWUpCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWs8L2xpdGVyYWw+PC90ZXJtPgorICAgICAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgQ01L IGtleSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JXI8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICBUaGUgcmVhbG0g bmFtZQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAg ICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgICA8 L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgQXZhaWxhYmxlIHNjaGVtZXMgYXJl OgorICAgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgICAgICA8dGVybT48bGl0ZXJhbD5maWxlPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgTG9hZCB0aGUg a2V5IG1hdGVyaWFsIGZyb20gYSBmaWxlLiAgVGhlIHJlbWFpbmluZyBkYXRhIGlzIHRoZSBm aWxlCisgICAgICAgICAgICBuYW1lLiAgVXNlIHRoaXMgaWYgdGhlIENNS3MgYXJlIGtlcHQg aW4gYSBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS4KKyAgICAgICAgICAgPC9wYXJhPgorICAg ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5ydW48L2xpdGVy YWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+Cisg ICAgICAgICAgICBSdW4gdGhlIHNwZWNpZmllZCBjb21tYW5kIHRvIGRlY3J5cHQgdGhlIENF Sy4gIFRoZSByZW1haW5pbmcgZGF0YQorICAgICAgICAgICAgaXMgYSBzaGVsbCBjb21tYW5k LiAgVXNlIHRoaXMgd2l0aCBrZXkgbWFuYWdlbWVudCBzeXN0ZW1zIHRoYXQKKyAgICAgICAg ICAgIHBlcmZvcm0gdGhlIGRlY3J5cHRpb24gdGhlbXNlbHZlcy4gIFRoZSBjb21tYW5kIG11 c3QgcHJpbnQgdGhlCisgICAgICAgICAgICBkZWNyeXB0ZWQgcGxhaW50ZXh0IGluIEJhc2U2 NCBmb3JtYXQgb24gdGhlIHN0YW5kYXJkIG91dHB1dC4KKyAgICAgICAgICAgPC9wYXJhPgor ICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAg ICAgPC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LgorICAgICAgIDwvcGFyYT4KKwor ICAgICAgIDxwYXJhPgorICAgICAgICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorY21r bG9va3VwPSJyMT1maWxlOi9zb21lL3doZXJlL3NlY3JldHMvJWsucGVtOyo9ZmlsZTovZWxz ZS93aGVyZS8lci8lay5wZW0iCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICBUaGlzIHNw ZWNpZmljYXRpb24gc2F5cywgZm9yIGtleXMgaW4gcmVhbG0gPHF1b3RlPnIxPC9xdW90ZT4s IGxvYWQKKyAgICAgICAgdGhlbSBmcm9tIHRoZSBzcGVjaWZpZWQgZmlsZSwgcmVwbGFjaW5n IDxsaXRlcmFsPiVrPC9saXRlcmFsPiBieSB0aGUKKyAgICAgICAga2V5IG5hbWUuICBGb3Ig a2V5cyBpbiBvdGhlciByZWFsbXMsIGxvYWQgdGhlbSBmcm9tIHRoZSBmaWxlLAorICAgICAg ICByZXBsYWNpbmcgcmVhbG0gYW5kIGtleSBuYW1lcyBhcyBzcGVjaWZpZWQuCisgICAgICAg PC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEFuIGV4YW1wbGUgZm9yIGludGVy YWN0aW5nIHdpdGggYSAoaHlwb3RoZXRpY2FsKSBrZXkgbWFuYWdlbWVudAorICAgICAgICBz eXN0ZW06Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29rdXA9Iio9cnVuOmFjbWVrbXMgZGVj cnlwdCAtLWtleSAlayAtLWFsZyAlYSAtLWJsb2IgJyViJyIKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50 cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICA8L3BhcmE+CiAgIDwvc2VjdDI+CkBAIC0y ODY0LDYgKzI5ODEsMjUgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90aXRsZT4KICAgICAg ICAgICAgIDxmaWxlbmFtZT5zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jOjpudW1l cmljX3NlbmQoKTwvZmlsZW5hbWU+IGFuZAogICAgICAgICAgICAgPGZpbGVuYW1lPnNyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmM6Om51bWVyaWNfcmVjdigpPC9maWxlbmFtZT4u CiAgICAgICAgICAgIDwvcGFyYT4KKworICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAg IFdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIHNlY29uZC1sZWFzdC1z aWduaWZpY2FudAorICAgICAgICAgICAgYnl0ZSBvZiB0aGlzIHBhcmFtZXRlciBzcGVjaWZp ZXMgd2hldGhlciBlbmNyeXB0aW9uIHNob3VsZCBiZQorICAgICAgICAgICAgZm9yY2VkIGZv ciBhIHBhcmFtZXRlci4gIFNldCB0aGlzIGJ5dGUgdG8gb25lIHRvIGZvcmNlIGVuY3J5cHRp b24uCisgICAgICAgICAgICBGb3IgZXhhbXBsZSwgdXNlIHRoZSBDIGNvZGUgbGl0ZXJhbCA8 bGl0ZXJhbD4weDEwPC9saXRlcmFsPiB0bworICAgICAgICAgICAgc3BlY2lmeSB0ZXh0IGZv cm1hdCB3aXRoIGZvcmNlZCBlbmNyeXB0aW9uLiAgSWYgdGhlIGFycmF5IHBvaW50ZXIKKyAg ICAgICAgICAgIGlzIG51bGwgdGhlbiBlbmNyeXB0aW9uIGlzIG5vdCBmb3JjZWQgZm9yIGFu eSBwYXJhbWV0ZXIuCisgICAgICAgICAgIDwvcGFyYT4KKworICAgICAgICAgICA8cGFyYT4K KyAgICAgICAgICAgIElmIGVuY3J5cHRpb24gaXMgZm9yY2VkIGZvciBhIHBhcmFtZXRlciBi dXQgdGhlIHBhcmFtZXRlciBkb2VzIG5vdAorICAgICAgICAgICAgY29ycmVzcG9uZCB0byBh biBlbmNyeXB0ZWQgY29sdW1uIG9uIHRoZSBzZXJ2ZXIsIHRoZW4gdGhlIGNhbGwKKyAgICAg ICAgICAgIHdpbGwgZmFpbCBhbmQgdGhlIHBhcmFtZXRlciB3aWxsIG5vdCBiZSBzZW50LiAg VGhpcyBjYW4gYmUgdXNlZAorICAgICAgICAgICAgZm9yIGFkZGl0aW9uYWwgc2VjdXJpdHkg YWdhaW5zdCBhIGNvbXByaW1pc2VkIHNlcnZlci4gIChUaGUKKyAgICAgICAgICAgIGRyYXdi YWNrIGlzIHRoYXQgYXBwbGljYXRpb24gY29kZSB0aGVuIG5lZWRzIHRvIGJlIGtlcHQgdXAg dG8gZGF0ZQorICAgICAgICAgICAgd2l0aCBrbm93bGVkZ2UgYWJvdXQgd2hpY2ggY29sdW1u cyBhcmUgZW5jcnlwdGVkIHJhdGhlciB0aGFuCisgICAgICAgICAgICBsZXR0aW5nIHRoZSBz ZXJ2ZXIgc3BlY2lmeSB0aGlzLikKKyAgICAgICAgICAgPC9wYXJhPgogICAgICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtMzAyOCw2ICszMTY0 LDQ0IEBAIDx0aXRsZT5NYWluIEZ1bmN0aW9uczwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVt PgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJw cS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCI+CisgICAgICA8dGVybT48ZnVuY3Rpb24+UFFl eGVjUHJlcGFyZWREZXNjcmliZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFl eGVjUHJlcGFyZWREZXNjcmliZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlbmRzIGEgcmVxdWVz dCB0byBleGVjdXRlIGEgcHJlcGFyZWQgc3RhdGVtZW50IHdpdGggZ2l2ZW4KKyAgICAgICAg cGFyYW1ldGVycywgYW5kIHdhaXRzIGZvciB0aGUgcmVzdWx0LCB3aXRoIHN1cHBvcnQgZm9y IGVuY3J5cHRlZCBjb2x1bW5zLgorPHN5bm9wc2lzPgorUEdyZXN1bHQgKlBRZXhlY1ByZXBh cmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICpzdG10TmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnQgblBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb25zdCBjaGFyICogY29uc3QgKnBhcmFtVmFsdWVzLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRGb3JtYXQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEdyZXN1bHQgKnBhcmFtRGVzYyk7Cis8 L3N5bm9wc2lzPgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICA8 eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWV4ZWNQcmVwYXJlZERlc2NyaWJlZCIvPiBpcyBsaWtl IDx4cmVmCisgICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkIi8+IHdpdGgg YWRkaXRpb25hbCBzdXBwb3J0IGZvciBlbmNyeXB0ZWQKKyAgICAgICAgY29sdW1ucy4gIFRo ZSBwYXJhbWV0ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBh CisgICAgICAgIHJlc3VsdCBzZXQgb2J0YWluZWQgZnJvbSA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICAgdGhlIHNhbWUgcHJlcGFyZWQg c3RhdGVtZW50LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBU aGlzIGZ1bmN0aW9uIG11c3QgYmUgdXNlZCBpZiBhIHN0YXRlbWVudCBwYXJhbWV0ZXIgY29y cmVzcG9uZHMgdG8gYW4KKyAgICAgICAgdW5kZXJseWluZyBlbmNyeXB0ZWQgY29sdW1uLiAg SW4gdGhhdCBzaXR1YXRpb24sIHRoZSBwcmVwYXJlZAorICAgICAgICBzdGF0ZW1lbnQgbmVl ZHMgdG8gYmUgZGVzY3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUK KyAgICAgICAgbmVjZXNzYXJ5IGtleSBhbmQgb3RoZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUg c2VydmVyLiAgV2hlbiB0aGF0IGlzCisgICAgICAgIGRvbmUsIHRoZSBwYXJhbWV0ZXJzIGNv cnJlc3BvbmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgYXJlCisgICAgICAgIGF1dG9tYXRp Y2FsbHkgZW5jcnlwdGVkIGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhl IHNlcnZlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zh cmxpc3RlbnRyeT4KKwogICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWRlc2NyaWJl UHJlcGFyZWQiPgogICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZGVzY3JpYmVQcmVwYXJlZDwv ZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUWRlc2NyaWJlUHJlcGFyZWQ8L3ByaW1h cnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC0zODc4LDYgKzQwNTIsMjggQEAgPHRpdGxl PlJldHJpZXZpbmcgUXVlcnkgUmVzdWx0IEluZm9ybWF0aW9uPC90aXRsZT4KICAgICAgPC9s aXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9 ImxpYnBxLVBRZmlzZW5jcnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZmlzZW5j cnlwdGVkPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRZmlzZW5jcnlwdGVkPC9w cmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8 cGFyYT4KKyAgICAgICBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4g Y29sdW1uIGNhbWUgZnJvbSBhbiBlbmNyeXB0ZWQKKyAgICAgICBjb2x1bW4uICBDb2x1bW4g bnVtYmVycyBzdGFydCBhdCAwLgorPHN5bm9wc2lzPgoraW50IFBRZmlzZW5jcnlwdGVkKGNv bnN0IFBHcmVzdWx0ICpyZXMsCisgICAgICAgICAgICAgICAgICAgaW50IGNvbHVtbl9udW1i ZXIpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAg ICAgRW5jcnlwdGVkIGNvbHVtbiB2YWx1ZXMgYXJlIGF1dG9tYXRpY2FsbHkgZGVjcnlwdGVk LCBzbyB0aGlzIGZ1bmN0aW9uCisgICAgICAgaXMgbm90IG5lY2Vzc2FyeSB0byBhY2Nlc3Mg dGhlIGNvbHVtbiB2YWx1ZS4gIEl0IGNhbiBiZSB1c2VkIGZvciBleHRyYQorICAgICAgIHNl Y3VyaXR5IHRvIGNoZWNrIHdoZXRoZXIgdGhlIHZhbHVlIHdhcyBzdG9yZWQgZW5jcnlwdGVk IHdoZW4gb25lCisgICAgICAgdGhvdWdodCBpdCBzaG91bGQgYmUuCisgICAgICA8L3BhcmE+ CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlz dGVudHJ5IGlkPSJsaWJwcS1QUWZzaXplIj4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRZnNp emU8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFmc2l6ZTwvcHJpbWFyeT48L2lu ZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQwNTksNiArNDI1NSwzMSBAQCA8dGl0bGU+UmV0cmll dmluZyBRdWVyeSBSZXN1bHQgSW5mb3JtYXRpb248L3RpdGxlPgogICAgICA8L2xpc3RpdGVt PgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEt UFFwYXJhbWlzZW5jcnlwdGVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRcGFyYW1pc2Vu Y3J5cHRlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXBhcmFtaXNlbmNyeXB0 ZWQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFJldHVybnMgd2hldGhlciB0aGUgdmFsdWUgZm9yIHRoZSBn aXZlbiBwYXJhbWV0ZXIgaXMgZGVzdGluZWQgZm9yIGFuCisgICAgICAgZW5jcnlwdGVkIGNv bHVtbi4gIFBhcmFtZXRlciBudW1iZXJzIHN0YXJ0IGF0IDAuCis8c3lub3BzaXM+CitpbnQg UFFwYXJhbWlzZW5jcnlwdGVkKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9udW1i ZXIpOworPC9zeW5vcHNpcz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAg ICAgVmFsdWVzIGZvciBwYXJhbWV0ZXJzIGRlc3RpbmVkIGZvciBlbmNyeXB0ZWQgY29sdW1u cyBhcmUgYXV0b21hdGljYWxseQorICAgICAgIGVuY3J5cHRlZCwgc28gdGhpcyBmdW5jdGlv biBpcyBub3QgbmVjZXNzYXJ5IHRvIHByZXBhcmUgdGhlIHBhcmFtZXRlcgorICAgICAgIHZh bHVlLiAgSXQgY2FuIGJlIHVzZWQgZm9yIGV4dHJhIHNlY3VyaXR5IHRvIGNoZWNrIHdoZXRo ZXIgdGhlIHZhbHVlCisgICAgICAgd2lsbCBiZSBzdG9yZWQgZW5jcnlwdGVkIHdoZW4gb25l IHRob3VnaHQgaXQgc2hvdWxkIGJlLiAgKEJ1dCBzZWUgYWxzbworICAgICAgIGF0IDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkIi8+IGZvciBhbm90aGVy IHdheSB0byBkbyB0aGF0LikKKyAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgdXNlZnVs IHdoZW4gaW5zcGVjdGluZyB0aGUgcmVzdWx0IG9mIDx4cmVmCisgICAgICAgbGlua2VuZD0i bGlicHEtUFFkZXNjcmliZVByZXBhcmVkIi8+LiAgRm9yIG90aGVyIHR5cGVzIG9mIHJlc3Vs dHMgaXQKKyAgICAgICB3aWxsIHJldHVybiBmYWxzZS4KKyAgICAgIDwvcGFyYT4KKyAgICAg PC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnkg aWQ9ImxpYnBxLVBRcHJpbnQiPgogICAgICA8dGVybT48ZnVuY3Rpb24+UFFwcmludDwvZnVu Y3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXByaW50PC9wcmltYXJ5PjwvaW5kZXh0ZXJt PjwvdGVybT4KIApAQCAtNDU4NCw2ICs0ODA1LDcgQEAgPHRpdGxlPkFzeW5jaHJvbm91cyBD b21tYW5kIFByb2Nlc3Npbmc8L3RpdGxlPgogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFz ZW5kUXVlcnlQYXJhbXMiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVw YXJlIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZCIv PiwKKyAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmli ZWQiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVByZXBhcmVk Ii8+LCBhbmQKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUG9ydGFs Ii8+LAogICAgd2hpY2ggY2FuIGJlIHVzZWQgd2l0aCA8eHJlZiBsaW5rZW5kPSJsaWJwcS1Q UWdldFJlc3VsdCIvPiB0byBkdXBsaWNhdGUKQEAgLTQ1OTEsNiArNDgxMyw3IEBAIDx0aXRs ZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgIDx4cmVmIGxp bmtlbmQ9ImxpYnBxLVBRZXhlY1BhcmFtcyIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBx LVBRcHJlcGFyZSIvPiwKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVk Ii8+LAorICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWREZXNjcmliZWQi Lz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4sIGFu ZAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmliZVBvcnRhbCIvPgogICAgcmVz cGVjdGl2ZWx5LgpAQCAtNDY0Nyw2ICs0ODcwLDEzIEBAIDx0aXRsZT5Bc3luY2hyb25vdXMg Q29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAgICAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUWV4ZWNQYXJhbXMiLz4sIGl0IGFsbG93cyBvbmx5IG9uZSBjb21tYW5kIGluIHRoZQog ICAgICAgIHF1ZXJ5IHN0cmluZy4KICAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+Cisg ICAgICAgSWYgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlbiB0aGlzIGZ1bmN0 aW9uIGlzIG5vdAorICAgICAgIGFzeW5jaHJvbm91cy4gIFRvIGdldCBhc3luY2hyb25vdXMg YmVoYXZpb3IsIDx4cmVmCisgICAgICAgbGlua2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIv PiBmb2xsb3dlZCBieSA8eHJlZgorICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5 UHJlcGFyZWREZXNjcmliZWQiLz4gc2hvdWxkIGJlIGNhbGxlZCBpbmRpdmlkdWFsbHkuCisg ICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAK QEAgLTQ3MDEsNiArNDkzMSw0NSBAQCA8dGl0bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJv Y2Vzc2luZzwvdGl0bGU+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkRGVz Y3JpYmVkIj4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNj cmliZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFzZW5kUXVlcnlQcmVwYXJl ZERlc2NyaWJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU2VuZHMgYSByZXF1ZXN0IHRvIGV4ZWN1dGUg YSBwcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBnaXZlbgorICAgICAgIHBhcmFtZXRlcnMsIHdp dGhvdXQgd2FpdGluZyBmb3IgdGhlIHJlc3VsdChzKSwgd2l0aCBzdXBwb3J0IGZvciBlbmNy eXB0ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK2ludCBQUXNlbmRRdWVyeVByZXBhcmVkRGVz Y3JpYmVkKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKnN0bXROYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaW50IG5QYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBjaGFyICogY29uc3QgKnBhcmFtVmFsdWVzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCByZXN1bHRGb3JtYXQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKKzwvc3lub3BzaXM+Cisg ICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQiLz4gaXMgbGlrZSA8eHJlZgorICAg ICAgIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4gd2l0aCBhZGRpdGlv bmFsIHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgIGNvbHVtbnMuICBUaGUgcGFyYW1l dGVyIDxwYXJhbWV0ZXI+cGFyYW1EZXNjPC9wYXJhbWV0ZXI+IG11c3QgYmUgYQorICAgICAg IHJlc3VsdCBzZXQgb2J0YWluZWQgZnJvbSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRE ZXNjcmliZVByZXBhcmVkIi8+IG9uCisgICAgICAgdGhlIHNhbWUgcHJlcGFyZWQgc3RhdGVt ZW50LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZ1bmN0 aW9uIG11c3QgYmUgdXNlZCBpZiBhIHN0YXRlbWVudCBwYXJhbWV0ZXIgY29ycmVzcG9uZHMg dG8gYW4KKyAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1bW4uICBJbiB0aGF0IHNp dHVhdGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgc3RhdGVtZW50IG5lZWRzIHRvIGJlIGRl c2NyaWJlZCBmaXJzdCBzbyB0aGF0IGxpYnBxIGNhbiBvYnRhaW4gdGhlCisgICAgICAgbmVj ZXNzYXJ5IGtleSBhbmQgb3RoZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgc2VydmVyLiAgV2hl biB0aGF0IGlzCisgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZyB0 byBlbmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICBhdXRvbWF0aWNhbGx5IGVuY3J5cHRl ZCBhcHByb3ByaWF0ZWx5IGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIuCisgICAg ICAgU2VlIGFsc28gdW5kZXIgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWRE ZXNjcmliZWQiLz4uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUXNlbmREZXNj cmliZVByZXBhcmVkIj4KICAgICAgPHRlcm0+PGZ1bmN0aW9uPlBRc2VuZERlc2NyaWJlUHJl cGFyZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFzZW5kRGVzY3JpYmVQcmVw YXJlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CiAKQEAgLTQ3NTEsNiArNTAyMCw3 IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNzaW5nPC90aXRsZT4KICAg ICAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIvPiwKICAgICAg ICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRQcmVwYXJlIi8+LAogICAgICAgIDx4cmVm IGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4sCisgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZERlc2NyaWJlZCIvPiwKICAgICAg ICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNjcmliZVByZXBhcmVkIi8+LAogICAg ICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZERlc2NyaWJlUG9ydGFsIi8+LCBvcgog ICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRcGlwZWxpbmVTeW5jIi8+CkBAIC03Nzgz LDYgKzgwNTMsMjYgQEAgPHRpdGxlPkVudmlyb25tZW50IFZhcmlhYmxlczwvdGl0bGU+CiAg ICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogCisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAgPHByaW1hcnk+PGVudmFyPlBHQ01L TE9PS1VQPC9lbnZhcj48L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDxl bnZhcj5QR0NNS0xPT0tVUDwvZW52YXI+IGJlaGF2ZXMgdGhlIHNhbWUgYXMgdGhlIDx4cmVm CisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNta2xvb2t1cCIvPiBjb25uZWN0aW9u IHBhcmFtZXRlci4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFy eT48ZW52YXI+UEdDT0xVTU5FTkNSWVBUSU9OPC9lbnZhcj48L3ByaW1hcnk+CisgICAgICA8 L2luZGV4dGVybT4KKyAgICAgIDxlbnZhcj5QR0NPTFVNTkVOQ1JZUFRJT048L2VudmFyPiBi ZWhhdmVzIHRoZSBzYW1lIGFzIHRoZSA8eHJlZgorICAgICAgbGlua2VuZD0ibGlicHEtY29u bmVjdC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBjb25uZWN0aW9uIHBhcmFtZXRlci4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJh PgogICAgICAgPGluZGV4dGVybT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wcm90b2Nv bC5zZ21sIGIvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKaW5kZXggNWZkZDQyOWUwNWQz Li4yYWFlNjZjZThkMmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9wcm90b2NvbC5zZ21sCkBAIC0xMTA4LDYgKzExMDgsNjgg QEAgPHRpdGxlPlBpcGVsaW5pbmc8L3RpdGxlPgogICAgPC9wYXJhPgogICA8L3NlY3QyPgog CisgIDxzZWN0MiBpZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24t ZmxvdyI+CisgICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248L3RpdGxl PgorCisgICA8cGFyYT4KKyAgICBUcmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBl bmFibGVkIGJ5IHNlbmRpbmcgdGhlIHBhcmFtZXRlcgorICAgIDxsaXRlcmFsPl9wcV8uY29s dW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IHdpdGggYSB2YWx1ZSBvZgorICAgIDxsaXRlcmFs PjE8L2xpdGVyYWw+IGluIHRoZSBTdGFydHVwTWVzc2FnZS4gIFRoaXMgaXMgYSBwcm90b2Nv bCBleHRlbnNpb24KKyAgICB0aGF0IGVuYWJsZXMgYSBmZXcgYWRkaXRpb25hbCBwcm90b2Nv bCBtZXNzYWdlcyBhbmQgYWRkcyBhZGRpdGlvbmFsIGZpZWxkcworICAgIHRvIGV4aXN0aW5n IHByb3RvY29sIG1lc3NhZ2VzLiAgQ2xpZW50IGRyaXZlcnMgc2hvdWxkIG9ubHkgYWN0aXZh dGUgdGhpcworICAgIHByb3RvY29sIGV4dGVuc2lvbiB3aGVuIHJlcXVlc3RlZCBieSB0aGUg dXNlciwgZm9yIGV4YW1wbGUgdGhyb3VnaCBhCisgICAgY29ubmVjdGlvbiBwYXJhbWV0ZXIu CisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gdHJhbnNwYXJlbnQgY29sdW1u IGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIG1lc3NhZ2VzCisgICAgQ29sdW1uTWFzdGVy S2V5IGFuZCBDb2x1bW5FbmNyeXB0aW9uS2V5IGNhbiBhcHBlYXIgYmVmb3JlIFJvd0Rlc2Ny aXB0aW9uCisgICAgYW5kIFBhcmFtZXRlckRlc2NyaXB0aW9uIG1lc3NhZ2VzLiAgQ2xpZW50 cyBzaG91bGQgY29sbGVjdCB0aGUgaW5mb3JtYXRpb24KKyAgICBpbiB0aGVzZSBtZXNzYWdl cyBhbmQga2VlcCB0aGVtIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNvbm5lY3Rpb24uICBB CisgICAgc2VydmVyIGlzIG5vdCByZXF1aXJlZCB0byByZXNlbmQgdGhlIGtleSBpbmZvcm1h dGlvbiBmb3IgZWFjaCBzdGF0ZW1lbnQKKyAgICBjeWNsZSBpZiBpdCB3YXMgYWxyZWFkeSBz ZW50IGR1cmluZyB0aGlzIGNvbm5lY3Rpb24uICBJZiBhIHNlcnZlciByZXNlbmRzCisgICAg YSBrZXkgdGhhdCB0aGUgY2xpZW50IGhhcyBhbHJlYWR5IHN0b3JlZCAodGhhdCBpcywgYSBr ZXkgaGF2aW5nIGFuIElECisgICAgZXF1YWwgdG8gb25lIGFscmVhZHkgc3RvcmVkKSwgdGhl IG5ldyBpbmZvcm1hdGlvbiBzaG91bGQgcmVwbGFjZSB0aGUgb2xkLgorICAgIChUaGlzIGNv dWxkIGhhcHBlbiwgZm9yIGV4YW1wbGUsIGlmIHRoZSBrZXkgd2FzIGFsdGVyZWQgYnkgc2Vy dmVyLXNpZGUgRERMCisgICAgY29tbWFuZHMuKQorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBBIGNsaWVudCBzdXBwb3J0aW5nIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9u IHNob3VsZCBhdXRvbWF0aWNhbGx5CisgICAgZGVjcnlwdCB0aGUgY29sdW1uIHZhbHVlIGZp ZWxkcyBvZiBEYXRhUm93IG1lc3NhZ2VzIGNvcnJlc3BvbmRpbmcgdG8KKyAgICBlbmNyeXB0 ZWQgY29sdW1ucywgYW5kIGl0IHNob3VsZCBhdXRvbWF0aWNhbGx5IGVuY3J5cHQgdGhlIHBh cmFtZXRlciB2YWx1ZQorICAgIGZpZWxkcyBvZiBCaW5kIG1lc3NhZ2VzIGNvcnJlc3BvbmRp bmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAg IFdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgdXNlZCwgdGhlIHBsYWludGV4dCBpcyBhbHdh eXMgaW4gdGV4dCBmb3JtYXQKKyAgICAobm90IGJpbmFyeSBmb3JtYXQpLgorICAgPC9wYXJh PgorCisgICA8cGFyYT4KKyAgICBXaGVuIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbiBpcyB1 c2VkLCBjbGllbnRzIG5lZWQgdG8gdGFrZSBjYXJlIHRvCisgICAgcmVwcmVzZW50IHBsYWlu dGV4dCB0byBiZSBlbmNyeXB0ZWQgaW4gYSBjb25zaXN0ZW50IGZvcm0uICBGb3IgZXhhbXBs ZSwKKyAgICBlbmNyeXB0aW5nIGFuIGludGVnZXIgcmVwcmVzZW50ZWQgYnkgdGhlIHN0cmlu ZyA8bGl0ZXJhbD4xMDA8L2xpdGVyYWw+IGFuZAorICAgIGFuIGludGVnZXIgcmVwcmVzZW50 ZWQgYnkgdGhlIHN0cmluZyA8bGl0ZXJhbD4rMTAwPC9saXRlcmFsPiB3b3VsZCByZXN1bHQK KyAgICBpbiB0d28gZGlmZmVyZW50IGNpcGhlcnRleHRzLCB0aHVzIGRlZmVhdGluZyB0aGUg bWFpbiBwb2ludCBvZgorICAgIGRldGVybWluaXN0aWMgZW5jcnlwdGlvbi4gIFRoaXMgcHJv dG9jb2wgc3BlY2lmaWNhdGlvbiByZXF1aXJlcyB0aGUKKyAgICBwbGFpbnRleHQgdG8gYmUg aW4gPHF1b3RlPmNhbm9uaWNhbDwvcXVvdGU+IGZvcm0sIHdoaWNoIGlzIHRoZSBmb3JtIHRo YXQKKyAgICBpcyBwcm9kdWNlZCBieSB0aGUgc2VydmVyIHdoZW4gaXQgb3V0cHV0cyBhIHBh cnRpY3VsYXIgdmFsdWUgaW4gdGV4dAorICAgIGZvcm1hdC4KKyAgIDwvcGFyYT4KKworICAg PHBhcmE+CisgICAgV2hlbiB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFi bGVkLCB0aGUgY2xpZW50IGVuY29kaW5nIG11c3QKKyAgICBtYXRjaCB0aGUgc2VydmVyIGVu Y29kaW5nLiAgVGhpcyBlbnN1cmVzIHRoYXQgYWxsIHZhbHVlcyBlbmNyeXB0ZWQgb3IKKyAg ICBkZWNyeXB0ZWQgYnkgdGhlIGNsaWVudCBtYXRjaCB0aGUgc2VydmVyIGVuY29kaW5nLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgY3J5cHRvZ3JhcGhpYyBvcGVyYXRp b25zIHVzZWQgZm9yIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGFyZQorICAgIGRl c2NyaWJlZCBpbiA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4t ZW5jcnlwdGlvbi1jcnlwdG8iLz4uCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKICAgPHNl Y3QyPgogICAgPHRpdGxlPkZ1bmN0aW9uIENhbGw8L3RpdGxlPgogCkBAIC00MDU1LDYgKzQx MTcsMTQwIEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9j b2wtbWVzc2FnZS1mb3JtYXRzLUNvbHVtbkVuY3J5cHRpb25LZXkiPgorICAgIDx0ZXJtPkNv bHVtbkVuY3J5cHRpb25LZXkgKEIpPC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGlzIG1lc3NhZ2UgY2FuIG9ubHkgYXBwZWFyIGlmIHRoZSBwcm90b2Nv bCBleHRlbnNpb24KKyAgICAgIDxsaXRlcmFsPl9wcV8uY29sdW1uX2VuY3J5cHRpb248L2xp dGVyYWw+IGlzIGVuYWJsZWQuICAoU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJwcm90b2Nv bC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93Ii8+LikKKyAgICAgPC9wYXJh PgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg IDx0ZXJtPkJ5dGUxKCdZJyk8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8 cGFyYT4KKyAgICAgICAgIElkZW50aWZpZXMgdGhlIG1lc3NhZ2UgYXMgYSBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgbWVzc2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxw YXJhPgorICAgICAgICAgTGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMgaW4gYnl0ZXMsIGlu Y2x1ZGluZyBzZWxmLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0 ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+Cisg ICAgICAgICBUaGUgc2Vzc2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9mIHRoZSBrZXkuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBpZGVu dGlmaWVyIG9mIHRoZSBtYXN0ZXIga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGlzIGtleS4KKyAg ICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4K KyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGlkZW50 aWZpZXIgb2YgdGhlIGFsZ29yaXRobSB1c2VkIHRvIGVuY3J5cHQgdGhpcyBrZXkuCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBsZW5ndGgg b2YgdGhlIGZvbGxvd2luZyBrZXkgbWF0ZXJpYWwuCisgICAgICAgIDwvcGFyYT4KKyAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0 ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTxyZXBsYWNlYWJsZT5uPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRo ZSBrZXkgbWF0ZXJpYWwsIGVuY3J5cHRlZCB3aXRoIHRoZSBtYXN0ZXIga2V5IHJlZmVyZW5j ZWQgYWJvdmUuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAg PC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0icHJvdG9jb2wt bWVzc2FnZS1mb3JtYXRzLUNvbHVtbk1hc3RlcktleSI+CisgICAgPHRlcm0+Q29sdW1uTWFz dGVyS2V5IChCKTwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhpcyBtZXNzYWdlIGNhbiBvbmx5IGFwcGVhciBpZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9u CisgICAgICA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcyBl bmFibGVkLiAgKFNlZSA8eHJlZgorICAgICAgbGlua2VuZD0icHJvdG9jb2wtdHJhbnNwYXJl bnQtY29sdW1uLWVuY3J5cHRpb24tZmxvdyIvPi4pCisgICAgIDwvcGFyYT4KKworICAgICA8 dmFyaWFibGVsaXN0PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRl MSgneScpPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAg ICAgICBJZGVudGlmaWVzIHRoZSBtZXNzYWdlIGFzIGEgY29sdW1uIG1hc3RlciBrZXkgbWVz c2FnZS4KKyAgICAgICAgPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQz MjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAg TGVuZ3RoIG9mIG1lc3NhZ2UgY29udGVudHMgaW4gYnl0ZXMsIGluY2x1ZGluZyBzZWxmLgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgc2Vz c2lvbi1zcGVjaWZpYyBpZGVudGlmaWVyIG9mIHRoZSBrZXkuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+U3RyaW5nPC90ZXJtPgorICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgbmFtZSBvZiB0aGUga2V5Lgor ICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVu dHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPlN0cmluZzwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIGtl eSdzIHJlYWxtLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAg IDwvdmFybGlzdGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29s LW1lc3NhZ2UtZm9ybWF0cy1Db21tYW5kQ29tcGxldGUiPgogICAgIDx0ZXJtPkNvbW1hbmRD b21wbGV0ZSAoQik8L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtNTE1MSw2ICs1MzQ3LDQ2 IEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CisKKyAgICAg PHBhcmE+CisgICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uIDxsaXRlcmFsPl9wcV8u Y29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzCisgICAgICBlbmFibGVkIChzZWUgPHhy ZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0 aW9uLWZsb3ciLz4pLCB0aGVuIHRoZXJlIGlzCisgICAgICBhbHNvIHRoZSBmb2xsb3dpbmcg Zm9yIGVhY2ggcGFyYW1ldGVyOgorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlz dD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgcGFy YW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlCisgICAgICAg ICBpZGVudGlmaWVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNl IHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50 MTY8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAg IElmIHRoaXMgcGFyYW1ldGVyIGlzIHRvIGJlIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMg dGhlCisgICAgICAgICBpZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSwg ZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJt PkludDE2PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAg ICAgICBUaGlzIGlzIHVzZWQgYXMgYSBiaXQgZmllbGQgb2YgZmxhZ3MuICBJZiB0aGUgY29s dW1uIGlzCisgICAgICAgICBlbmNyeXB0ZWQgYW5kIGJpdCAweDAxIGlzIHNldCwgdGhlIGNv bHVtbiB1c2VzIGRldGVybWluaXN0aWMKKyAgICAgICAgIGVuY3J5cHRpb24sIG90aGVyd2lz ZSByYW5kb21pemVkIGVuY3J5cHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xp c3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0Pgog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtNTUzOSw2ICs1Nzc1 LDM1IEBAIDx0aXRsZT5NZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgPC92YXJpYWJsZWxpc3Q+CisKKyAg ICAgPHBhcmE+CisgICAgICBJZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uIDxsaXRlcmFsPl9w cV8uY29sdW1uX2VuY3J5cHRpb248L2xpdGVyYWw+IGlzCisgICAgICBlbmFibGVkIChzZWUg PHhyZWYKKyAgICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNy eXB0aW9uLWZsb3ciLz4pLCB0aGVuIHRoZXJlIGlzCisgICAgICBhbHNvIHRoZSBmb2xsb3dp bmcgZm9yIGVhY2ggZmllbGQ6CisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0 PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWYgdGhlIGZpZWxk IGlzIGVuY3J5cHRlZCwgdGhpcyBzcGVjaWZpZXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlCisg ICAgICAgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlLCBlbHNlIHplcm8uCisgICAg ICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoZSBmaWVs ZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQor ICAgICAgICAgZW5jcnlwdCBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92 YXJpYWJsZWxpc3Q+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCkBA IC03MzQyLDYgKzc2MDcsMTMzIEBAIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIE1lc3Nh Z2UgRm9ybWF0czwvdGl0bGU+CiAgIDwvdmFyaWFibGVsaXN0PgogIDwvc2VjdDE+CiAKKyA8 c2VjdDEgaWQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWNyeXB0 byI+CisgIDx0aXRsZT5UcmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbiBDcnlwdG9ncmFw aHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhpcyBzZWN0aW9uIGRlc2NyaWJlcyB0aGUg Y3J5cHRvZ3JhcGhpYyBvcGVyYXRpb25zIHVzZWQgYnkgdHJhbnNwYXJlbnQKKyAgIGNvbHVt biBlbmNyeXB0aW9uLiAgQSBjbGllbnQgdGhhdCBzdXBwb3J0cyB0cmFuc3BhcmVudCBjb2x1 bW4gZW5jcnlwdGlvbgorICAgbmVlZHMgdG8gaW1wbGVtZW50IHRoZXNlIG9wZXJhdGlvbnMg YXMgc3BlY2lmaWVkIGhlcmUgaW4gb3JkZXIgdG8gYmUgYWJsZQorICAgdG8gaW50ZXJvcGVy YXRlIHdpdGggb3RoZXIgY2xpZW50cy4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ29s dW1uIGVuY3J5cHRpb24ga2V5IGFsZ29yaXRobXMgYW5kIGNvbHVtbiBtYXN0ZXIga2V5IGFs Z29yaXRobXMgYXJlCisgICBpZGVudGlmaWVkIGJ5IGludGVnZXJzIGluIHRoZSBwcm90b2Nv bCBtZXNzYWdlcyBhbmQgdGhlIHN5c3RlbSBjYXRhbG9ncy4KKyAgIEFkZGl0aW9uYWwgYWxn b3JpdGhtcyBtYXkgYmUgYWRkZWQgdG8gdGhpcyBwcm90b2NvbCBzcGVjaWZpY2F0aW9uIHdp dGhvdXQgYQorICAgY2hhbmdlIGluIHRoZSBwcm90b2NvbCB2ZXJzaW9uIG51bWJlci4gIENs aWVudHMgc2hvdWxkIGltcGxlbWVudCBzdXBwb3J0CisgICBmb3IgYWxsIHRoZSBhbGdvcml0 aG1zIHNwZWNpZmllZCBoZXJlLiAgSWYgYSBjbGllbnQgZW5jb3VudGVycyBhbiBhbGdvcml0 aG0KKyAgIGlkZW50aWZpZXIgaXQgZG9lcyBub3QgcmVjb2duaXplIG9yIGRvZXMgbm90IHN1 cHBvcnQsIGl0IG11c3QgcmFpc2UgYW4KKyAgIGVycm9yLiAgQSBzdWl0YWJsZSBlcnJvciBt ZXNzYWdlIHNob3VsZCBiZSBwcm92aWRlZCB0byB0aGUgYXBwbGljYXRpb24gb3IKKyAgIHVz ZXIuCisgIDwvcGFyYT4KKworICA8c2VjdDIgaWQ9InByb3RvY29sLWNtayI+CisgICA8dGl0 bGU+Q29sdW1uIE1hc3RlciBLZXlzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhlIGN1 cnJlbnRseSBkZWZpbmVkIGFsZ29yaXRobXMgZm9yIGNvbHVtbiBtYXN0ZXIga2V5cyBhcmUg bGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY21rLXRhYmxlIi8+Lgor ICAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InByb3RvY29sLWNtay10YWJsZSI+CisgICAg PHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5IEFsZ29yaXRobXM8L3RpdGxlPgorICAgIDx0Z3Jv dXAgY29scz0iMyI+CisgICAgIDx0aGVhZD4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5 PklEPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAgPGVudHJ5 PlJlZmVyZW5jZTwvZW50cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAg PHRib2R5PgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+MTwvZW50cnk+CisgICAgICAg PGVudHJ5PjxsaXRlcmFsPlJTQUVTX09BRVBfU0hBXzE8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9k b2MvaHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxpbms+IChQS0NTICMxKTwvZW50cnk+Cisg ICAgICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjI8L2VudHJ5PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRm Lm9yZy9kb2MvaHRtbC9yZmM4MDE3Ij5SRkMgODAxNzwvdWxpbms+IChQS0NTICMxKTwvZW50 cnk+CisgICAgICA8L3Jvdz4KKyAgICAgPC90Ym9keT4KKyAgICA8L3Rncm91cD4KKyAgIDwv dGFibGU+CisgIDwvc2VjdDI+CisKKyAgPHNlY3QyIGlkPSJwcm90b2NvbC1jZWsiPgorICAg PHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleXM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAg ICBUaGUgY3VycmVudGx5IGRlZmluZWQgYWxnb3JpdGhtcyBmb3IgY29sdW1uIGVuY3J5cHRp b24ga2V5cyBhcmUgbGlzdGVkIGluCisgICAgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2Vr LXRhYmxlIi8+LgorICAgPC9wYXJhPgorCisgICA8dGFibGUgaWQ9InByb3RvY29sLWNlay10 YWJsZSI+CisgICAgPHRpdGxlPkNvbHVtbiBFbmNyeXB0aW9uIEtleSBBbGdvcml0aG1zPC90 aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhlYWQ+CisgICAgICA8cm93 PgorICAgICAgIDxlbnRyeT5JRDwvZW50cnk+CisgICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5 PgorICAgICAgIDxlbnRyeT5SZWZlcmVuY2U8L2VudHJ5PgorICAgICAgIDxlbnRyeT5LZXkg bGVuZ3RoIChvY3RldHMpPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3RoZWFkPgor ICAgICA8dGJvZHk+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzA8L2VudHJ5Pgor ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1Njwv bGl0ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2Rh dGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMt aG1hYy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+MzI8L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzE8L2VudHJ5PgorICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NDwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0 cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1h Yy1zaGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NDg8L2VudHJ5PgorICAgICAg PC9yb3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzI8L2VudHJ5PgorICAgICAg IDxlbnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFj a2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1z aGEyLTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NTY8L2VudHJ5PgorICAgICAgPC9y b3c+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT4xMzM8L2VudHJ5PgorICAgICAgIDxl bnRyeT48bGl0ZXJhbD5BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgIDxlbnRyeT48dWxpbmsgdXJsPSJodHRwczovL2RhdGF0cmFja2Vy LmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEy LTA1Ii8+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+NjQ8L2VudHJ5PgorICAgICAgPC9yb3c+ CisgICAgIDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorCisgICA8cGFy YT4KKyAgICBUaGUgPHF1b3RlPmFzc29jaWF0ZWQgZGF0YTwvcXVvdGU+IGluIHRoZXNlIGFs Z29yaXRobXMgY29uc2lzdHMgb2YgNAorICAgIGJ5dGVzOiBUaGUgQVNDSUkgbGV0dGVycyA8 bGl0ZXJhbD5QPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+RzwvbGl0ZXJhbD4KKyAgICAoYnl0 ZSB2YWx1ZXMgODAgYW5kIDcxKSwgZm9sbG93ZWQgYnkgdGhlIGFsZ29yaXRobSBJRCBhcyBh IDE2LWJpdCB1bnNpZ25lZAorICAgIGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgor ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgbGVuZ3RoIG9mIHRoZSBpbml0aWFs aXphdGlvbiB2ZWN0b3IgaXMgMTYgb2N0ZXRzIGZvciBhbGwgQ0VLIGFsZ29yaXRobQorICAg IHZhcmlhbnRzLiAgRm9yIHJhbmRvbWl6ZWQgZW5jcnlwdGlvbiwgdGhlIGluaXRpYWxpemF0 aW9uIHZlY3RvciBzaG91bGQgYmUKKyAgICAoY3J5cHRvZ3JhcGhpY2FsbHkgc3Ryb25nKSBy YW5kb20gYnl0ZXMuICBGb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uLAorICAgIHRoZSBp bml0aWFsaXphdGlvbiB2ZWN0b3IgaXMgY29uc3RydWN0ZWQgYXMKKzxwcm9ncmFtbGlzdGlu Zz4KK1NVQlNUUklORyg8cmVwbGFjZWFibGU+SE1BQzwvcmVwbGFjZWFibGU+KDxyZXBsYWNl YWJsZT5LPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZT5QPC9yZXBsYWNlYWJsZT4pIEZP UiA8cmVwbGFjZWFibGU+SVZMRU48L3JlcGxhY2VhYmxlPikKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgd2hlcmUgPHJlcGxhY2VhYmxlPkhNQUM8L3JlcGxhY2VhYmxlPiBpcyB0aGUgSE1B QyBmdW5jdGlvbiBhc3NvY2lhdGVkIHdpdGgKKyAgICB0aGUgYWxnb3JpdGhtLCA8cmVwbGFj ZWFibGU+SzwvcmVwbGFjZWFibGU+IGlzIHRoZSBwcmVmaXggb2YgdGhlIENFSyBvZgorICAg IHRoZSBsZW5ndGggcmVxdWlyZWQgYnkgdGhlIEhNQUMgZnVuY3Rpb24sIGFuZCA8cmVwbGFj ZWFibGU+UDwvcmVwbGFjZWFibGU+CisgICAgaXMgdGhlIHBsYWludGV4dCB0byBiZSBlbmNy eXB0ZWQuICAoVGhpcyBpcyB0aGUgc2FtZSBwb3J0aW9uIG9mIHRoZSBDRUsKKyAgICB0aGF0 IHRoZSBBRUFEX0FFU18qX0hNQUNfKiBhbGdvcml0aG1zIHVzZSBmb3IgdGhlIE1BQyBwYXJ0 LikKKyAgIDwvcGFyYT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJw cm90b2NvbC1jaGFuZ2VzIj4KICAgPHRpdGxlPlN1bW1hcnkgb2YgQ2hhbmdlcyBzaW5jZSBQ cm90b2NvbCAyLjA8L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs bGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZTkw YTBlMWY4MzcyLi4zMzFiMWYwMTBiNWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv YWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAg LTgsNiArOCw4IEBACiA8IUVOVElUWSBhYm9ydCAgICAgICAgICAgICAgU1lTVEVNICJhYm9y dC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQWdncmVnYXRlICAgICBTWVNURU0gImFsdGVyX2Fn Z3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQ29sbGF0aW9uICAgICBTWVNURU0gImFs dGVyX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uRW5jcnlwdGlvbktl eSBTWVNURU0gImFsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZ IGFsdGVyQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXku c2dtbCI+CiA8IUVOVElUWSBhbHRlckNvbnZlcnNpb24gICAgU1lTVEVNICJhbHRlcl9jb252 ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJEYXRhYmFzZSAgICAgIFNZU1RFTSAiYWx0 ZXJfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBhbHRlckRlZmF1bHRQcml2aWxlZ2VzIFNZ U1RFTSAiYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwiPgpAQCAtNjIsNiArNjQsOCBA QAogPCFFTlRJVFkgY3JlYXRlQWdncmVnYXRlICAgIFNZU1RFTSAiY3JlYXRlX2FnZ3JlZ2F0 ZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUNhc3QgICAgICAgICBTWVNURU0gImNyZWF0ZV9j YXN0LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29sbGF0aW9uICAgIFNZU1RFTSAiY3JlYXRl X2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXkg U1lTVEVNICJjcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwiPgorPCFFTlRJVFkg Y3JlYXRlQ29sdW1uTWFzdGVyS2V5IFNZU1RFTSAiY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5 LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29udmVyc2lvbiAgIFNZU1RFTSAiY3JlYXRlX2Nv bnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVEYXRhYmFzZSAgICAgU1lTVEVNICJj cmVhdGVfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVEb21haW4gICAgICAgU1lT VEVNICJjcmVhdGVfZG9tYWluLnNnbWwiPgpAQCAtMTA5LDYgKzExMyw4IEBACiA8IUVOVElU WSBkcm9wQWdncmVnYXRlICAgICAgU1lTVEVNICJkcm9wX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwh RU5USVRZIGRyb3BDYXN0ICAgICAgICAgICBTWVNURU0gImRyb3BfY2FzdC5zZ21sIj4KIDwh RU5USVRZIGRyb3BDb2xsYXRpb24gICAgICBTWVNURU0gImRyb3BfY29sbGF0aW9uLnNnbWwi PgorPCFFTlRJVFkgZHJvcENvbHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJkcm9wX2NvbHVt bl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGRyb3BDb2x1bW5NYXN0ZXJLZXkg U1lTVEVNICJkcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgZHJvcENv bnZlcnNpb24gICAgIFNZU1RFTSAiZHJvcF9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkg ZHJvcERhdGFiYXNlICAgICAgIFNZU1RFTSAiZHJvcF9kYXRhYmFzZS5zZ21sIj4KIDwhRU5U SVRZIGRyb3BEb21haW4gICAgICAgICBTWVNURU0gImRyb3BfZG9tYWluLnNnbWwiPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXku c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNn bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NTk3Y2Q4MGNh NmEKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2NvbHVtbl9l bmNyeXB0aW9uX2tleS5zZ21sCkBAIC0wLDAgKzEsMTg2IEBACis8IS0tCitkb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRv Y3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlci1jb2x1bW4tZW5j cnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLWNvbHVtbi1lbmNy eXB0aW9uLWtleSI+CisgIDxwcmltYXJ5PkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRs ZT5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52 b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3Rh dGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+Cisg IDxyZWZuYW1lPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmbmFtZT4KKyAgPHJl ZnB1cnBvc2U+Y2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgY29sdW1uIGVuY3J5cHRpb24g a2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4K KzxzeW5vcHNpcz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+ bmFtZTwvcmVwbGFjZWFibGU+IEFERCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkg PSA8cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT4sCisgICAgWyBBTEdPUklUSE0gPSA8 cmVwbGFjZWFibGU+YWxnb3JpdGhtPC9yZXBsYWNlYWJsZT4sIF0KKyAgICBFTkNSWVBURURf VkFMVUUgPSA8cmVwbGFjZWFibGU+ZW5jdmFsPC9yZXBsYWNlYWJsZT4KKykKKworQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4g RFJPUCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSA8cmVwbGFjZWFibGU+Y21r PC9yZXBsYWNlYWJsZT4KKykKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIDxyZXBs YWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZT5uZXdf bmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxh Y2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdf b3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNF U1NJT05fVVNFUiB9Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8 Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IGNoYW5nZXMg dGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGUgZmlyc3QgZm9ybSBhZGRzIG5ldyBlbmNyeXB0ZWQg a2V5IGRhdGEgdG8gYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICB3aGljaCBtdXN0IGJl IGVuY3J5cHRlZCB3aXRoIGEgZGlmZmVyZW50IGNvbHVtbiBtYXN0ZXIga2V5IHRoYW4gdGhl CisgICBleGlzdGluZyBrZXkgZGF0YS4gIFRoZSBzZWNvbmQgZm9ybSByZW1vdmVzIGEga2V5 IGRhdGEgZW50cnkgZm9yIGEgZ2l2ZW4KKyAgIGNvbHVtbiBtYXN0ZXIga2V5LiAgVG9nZXRo ZXIsIHRoZXNlIGZvcm1zIGNhbiBiZSB1c2VkIGZvciBjb2x1bW4gbWFzdGVyIGtleQorICAg cm90YXRpb24uCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFlvdSBtdXN0IG93biB0aGUg Y29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSA8Y29tbWFuZD5BTFRFUiBDT0xVTU4KKyAg IEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPi4gIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11 c3QgYWxzbyBiZSBhIGRpcmVjdCBvcgorICAgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBuZXcg b3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVB VEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5J3MK KyAgIGRhdGFiYXNlLiAgKFRoZXNlIHJlc3RyaWN0aW9ucyBlbmZvcmNlIHRoYXQgYWx0ZXJp bmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8KKyAgIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBi eSBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgY29sdW1uIGVuY3J5cHRpb24KKyAgIGtl eS4gIEhvd2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbiBhbHRlciBvd25lcnNoaXAgb2YgYW55IGNv bHVtbiBlbmNyeXB0aW9uIGtleQorICAgYW55d2F5LikKKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8 dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiBhbiBleGlzdGluZyBj b2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlPmNtazwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleSB0 aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhpcyBjb2x1bW4KKyAgICAgIGVuY3J5cHRpb24g a2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5hbGdvcml0 aG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgZW5jcnlwdGlvbiBhbGdvcml0aG0gdGhhdCB3YXMgdXNlZCB0byBlbmNy eXB0IHRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgICAgIHRoaXMgY29sdW1uIGVuY3J5cHRpb24g a2V5LiAgU2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNy eXB0aW9uLWtleSIvPiBmb3IgZGV0YWlscworICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMgY29s dW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0aGUKKyAgICAgIHNwZWNpZmll ZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobS4gIFRo ZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVhPC90eXBlPi1jb21wYXRpYmxl IGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgbmFtZSBvZiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5ldyBvd25lciBvZiB0 aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgVG8gcm90YXRlIHRoZSBtYXN0ZXIga2V5cyB1c2VkIHRvIGVuY3J5cHQgYSBnaXZl biBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICB1c2UgYSBjb21tYW5kIHNlcXVlbmNlIGxp a2UgdGhpczoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBjZWsxIEFERCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsyLAorICAg IEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKTsKKworQUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoCisgICAgQ09MVU1OX01BU1RFUl9L RVkgPSBjbWsxCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgVG8gcmVuYW1lIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgPGxpdGVyYWw+Y2Vr MTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmNlazI8L2xpdGVyYWw+OgorPHByb2dyYW1s aXN0aW5nPgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNl azI7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBj aGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgPGxpdGVyYWw+ Y2VrMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3Jh bWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBPV05FUiBUTyBq b2U7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGVyZSBpcyBubyA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1h bmQ+IHN0YXRlbWVudCBpbiB0aGUKKyAgIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisK KyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+ PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXku c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjM3MDM0N2VjOWNlNwot LS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rl cl9rZXkuc2dtbApAQCAtMCwwICsxLDEyNCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24K Ky0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1hbHRlci1jb2x1bW4tbWFzdGVyLWtleSI+Cisg PGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXkiPgorICA8cHJp bWFyeT5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBDT0xVTU4gTUFTVEVSIEtF WTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3Jl Zm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgQ09MVU1OIE1BU1RF UiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5nZSB0aGUgZGVmaW5pdGlvbiBv ZiBhIGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZ IDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gKCBSRUFMTSA9IDxyZXBsYWNlYWJs ZT5yZWFsbTwvcmVwbGFjZWFibGU+ICkKKworQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgPHJl cGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5l d19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIDxyZXBsYWNl YWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293 bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNT SU9OX1VTRVIgfQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNv bW1hbmQ+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IGNoYW5nZXMgdGhlIGRl ZmluaXRpb24gb2YgYQorICAgY29sdW1uIG1hc3RlciBrZXkuCisgIDwvcGFyYT4KKworICA8 cGFyYT4KKyAgIFRoZSBmaXJzdCBmb3JtIGNoYW5nZXMgdGhlIHBhcmFtZXRlcnMgb2YgYSBj b2x1bW4gbWFzdGVyIGtleS4gIFNlZSA8eHJlZgorICAgbGlua2VuZD0ic3FsLWNyZWF0ZS1j b2x1bW4tbWFzdGVyLWtleSIvPiBmb3IgZGV0YWlscy4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgWW91IG11c3Qgb3duIHRoZSBjb2x1bW4gbWFzdGVyIGtleSB0byB1c2UgPGNvbW1h bmQ+QUxURVIgQ09MVU1OIE1BU1RFUgorICAgS0VZPC9jb21tYW5kPi4gIFRvIGFsdGVyIHRo ZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdAorICAgbWVt YmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisg ICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgY29sdW1uIG1h c3RlciBrZXkncyBkYXRhYmFzZS4KKyAgIChUaGVzZSByZXN0cmljdGlvbnMgZW5mb3JjZSB0 aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdQorICAgY291 bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIGNvbHVtbiBtYXN0ZXIg a2V5LiAgSG93ZXZlciwgYQorICAgc3VwZXJ1c2VyIGNhbiBhbHRlciBvd25lcnNoaXAgb2Yg YW55IGNvbHVtbiBtYXN0ZXIga2V5IGFueXdheS4pCisgIDwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZh cmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1h LXF1YWxpZmllZCkgb2YgYW4gZXhpc3RpbmcgY29sdW1uIG1hc3RlciBrZXkuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJs aXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5l d19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoZSBuZXcgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAg PHBhcmE+CisgICAgICBUaGUgbmV3IG93bmVyIG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAg PC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSB0aGUgY29sdW1u IG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmNt azI8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIE1BU1RFUiBL RVkgY21rMSBSRU5BTUUgVE8gY21rMjsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4K KworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBtYXN0 ZXIga2V5IDxsaXRlcmFsPmNtazE8L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xp dGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21r MSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSIEtF WTwvY29tbWFuZD4gc3RhdGVtZW50IGluIHRoZQorICAgU1FMIHN0YW5kYXJkLgorICA8L3Bh cmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90 aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+Cisg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ii8+ PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9u X2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25f a2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hMzNl YjNmY2VmODYKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9j b2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCwwICsxLDE2MyBAQAorPCEtLQorZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKK1Bvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZS1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5DUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVudHJ5dGl0 bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0g TGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3Jl Zm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1bW4gZW5jcnlwdGlvbiBr ZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+ bmFtZTwvcmVwbGFjZWFibGU+IFdJVEggVkFMVUVTICgKKyAgICBDT0xVTU5fTUFTVEVSX0tF WSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPiwKKyAgICBbIEFMR09SSVRITSA9 IDxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2VhYmxlPiwgXQorICAgIEVOQ1JZUFRF RF9WQUxVRSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPgorKQorWyAsIC4u LiBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5D UkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiBkZWZpbmVzIGEgbmV3IGNv bHVtbgorICAgZW5jcnlwdGlvbiBrZXkuICBBIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyB1 c2VkIGZvciBjbGllbnQtc2lkZSBlbmNyeXB0aW9uCisgICBvZiB0YWJsZSBjb2x1bW5zIHRo YXQgaGF2ZSBiZWVuIGRlZmluZWQgYXMgZW5jcnlwdGVkLiAgVGhlIGtleSBtYXRlcmlhbCBv ZgorICAgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaXMgc3RvcmVkIGluIHRoZSBkYXRhYmFz ZSdzIHN5c3RlbSBjYXRhbG9ncywKKyAgIGVuY3J5cHRlZCAod3JhcHBlZCkgYnkgYSBjb2x1 bW4gbWFzdGVyIGtleSAod2hpY2ggaW4gdHVybiBpcyBvbmx5CisgICBhY2Nlc3NpYmxlIHRv IHRoZSBjbGllbnQsIG5vdCB0aGUgZGF0YWJhc2Ugc2VydmVyKS4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgQSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2FuIGJlIGFzc29jaWF0ZWQg d2l0aCBtb3JlIHRoYW4gb25lIGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIFRvIHNwZWNpZnkg dGhhdCwgc3BlY2lmeSBtb3JlIHRoYW4gb25lIHBhcmVudGhlc2l6ZWQgZGVmaW5pdGlvbiAo c2VlCisgICBhbHNvIHRoZSBleGFtcGxlcykuCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlh YmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5h bWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5h bWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0 aGlzIGNvbHVtbgorICAgICAgZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+PC90ZXJtPgor CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBlbmNyeXB0aW9uIGFs Z29yaXRobSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhlIGtleSBtYXRlcmlhbCBvZgor ICAgICAgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBTdXBwb3J0ZWQgYWxnb3JpdGht cyBhcmU6CisgICAgICA8aXRlbWl6ZWRsaXN0PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+PGxpdGVyYWw+UlNBRVNfT0FFUF9TSEFfMTwvbGl0ZXJhbD4gKGRlZmF1bHQp PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT48bGl0ZXJhbD5SU0FFU19PQUVQX1NIQV8yNTY8L2xpdGVyYWw+PC9wYXJhPgor ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9wYXJh PgorCisgICAgIDxwYXJhPgorICAgICAgVGhpcyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuICBU aGUgc3BlY2lmaWVkIHZhbHVlIGlzIHByb3ZpZGVkIHRvIHRoZQorICAgICAgY2xpZW50LCB3 aGljaCBtYXkgdXNlIGl0IGZvciBkZWNyeXB0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBr ZXkgb24gdGhlCisgICAgICBjbGllbnQgc2lkZS4gIEJ1dCBhIGNsaWVudCBpcyBhbHNvIGZy ZWUgdG8gaWdub3JlIHRoaXMgaW5mb3JtYXRpb24gYW5kCisgICAgICBmaWd1cmUgb3V0IGhv dyB0byBhcnJhbmdlIHRoZSBkZWNyeXB0aW9uIGluIHNvbWUgb3RoZXIgd2F5LgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxl PjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5 IG1hdGVyaWFsIG9mIHRoaXMgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0 aCB0aGUKKyAgICAgIHNwZWNpZmllZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3Bl Y2lmaWVkIGFsZ29yaXRobS4gIFRoZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5 dGVhPC90eXBlPi1jb21wYXRpYmxlIGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAg PHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgV0lUSCBWQUxVRVMgKAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMSwKKyAg ICBFTkNSWVBURURfVkFMVUUgPSAnXHgwMTAyMDIwNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0 aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBv bmUgYXNzb2NpYXRlZCBjb2x1bW4gbWFzdGVyIGtleToKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09M VU1OX01BU1RFUl9LRVkgPSBjbWsxLAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIw MjA0Li4uJworKSwKKygKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5D UllQVEVEX1ZBTFVFID0gJ1x4RjFGMkYyRjQuLi4nCispOworPC9wcm9ncmFtbGlzdGluZz4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21w YXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5k PkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgor ICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVt bi1lbmNyeXB0aW9uLWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5k PSJzcWwtZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVt YmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWM1ZmE0Y2RlNTcxCi0t LSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY29sdW1uX21hc3Rl cl9rZXkuc2dtbApAQCAtMCwwICsxLDEwNiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9u CistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1tYXN0ZXIta2V5Ij4K KyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorICA8 cHJpbWFyeT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBNQVNU RVIgS0VZPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAg PHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgor IDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5DUkVBVEUgQ09MVU1O IE1BU1RFUiBLRVk8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIG5ldyBjb2x1 bW4gbWFzdGVyIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lu b3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgPHJlcGxh Y2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBXSVRIICgKKyAgICBbIFJFQUxNID0gPHJlcGxh Y2VhYmxlPnJlYWxtPC9yZXBsYWNlYWJsZT4gXQorKQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5 bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZPC9j b21tYW5kPiBkZWZpbmVzIGEgbmV3IGNvbHVtbiBtYXN0ZXIKKyAgIGtleS4gIEEgY29sdW1u IG1hc3RlciBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IGNvbHVtbiBlbmNyeXB0aW9uIGtleXMs IHdoaWNoCisgICBhcmUgdGhlIGtleXMgdGhhdCBhY3R1YWxseSBlbmNyeXB0IHRoZSBjb2x1 bW4gZGF0YS4gIFRoZSBrZXkgbWF0ZXJpYWwgb2YKKyAgIHRoZSBjb2x1bW4gbWFzdGVyIGtl eSBpcyBub3Qgc3RvcmVkIGluIHRoZSBkYXRhYmFzZS4gIFRoZSBkZWZpbml0aW9uIG9mIGEK KyAgIGNvbHVtbiBtYXN0ZXIga2V5IHJlY29yZHMgaW5mb3JtYXRpb24gdGhhdCB3aWxsIGFs bG93IGEgY2xpZW50IHRvIGxvY2F0ZQorICAgdGhlIGtleSBtYXRlcmlhbCwgZm9yIGV4YW1w bGUgaW4gYSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLgorICA8L3BhcmE+ CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3Rp dGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0 ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2YgdGhlIG5ldyBjb2x1bW4gbWFz dGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+cmVh bG08L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBUaGlzIGlzIGFuIG9wdGlvbmFsIHN0cmluZyB0aGF0IGNhbiBiZSB1c2VkIHRv IG9yZ2FuaXplIGNvbHVtbiBtYXN0ZXIKKyAgICAgIGtleXMgaW50byBncm91cHMgZm9yIGxv b2t1cCBieSBjbGllbnRzLiAgVGhlIGludGVudCBpcyB0aGF0IGFsbCBjb2x1bW4KKyAgICAg IG1hc3RlciBrZXlzIHRoYXQgYXJlIHN0b3JlZCBpbiB0aGUgc2FtZSBzeXN0ZW0gKGZpbGUg c3lzdGVtIGxvY2F0aW9uLAorICAgICAga2V5IG1hbmFnZW1lbnQgc3lzdGVtLCBldGMuKSBz aG91bGQgYmUgaW4gdGhlIHNhbWUgcmVhbG0uICBBIGNsaWVudAorICAgICAgd291bGQgdGhl biBiZSBjb25maWd1cmVkIHRvIGxvb2sgdXAgYWxsIGtleXMgaW4gYSBnaXZlbiByZWFsbSBp biBhCisgICAgICBjZXJ0YWluIHdheS4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUg cmVzcGVjdGl2ZSBjbGllbnQgbGlicmFyeSBmb3IKKyAgICAgIGZ1cnRoZXIgdXNhZ2UgaW5z dHJ1Y3Rpb25zLgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAgICBUaGUgZGVm YXVsdCBpcyB0aGUgZW1wdHkgc3RyaW5nLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCis8cHJvZ3Jh bWxpc3Rpbmc+CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSAocmVhbG0gPSAnbXly ZWFsbScpOworPC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVy ZSBpcyBubyA8Y29tbWFuZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IHN0 YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNp bXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5 Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVu dHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggYzk4MjIzYjJhNTFj Li5lNGJmNTRlMmU2MzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Rh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAt MjIsNyArMjIsNyBAQAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KIENSRUFURSBb IFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0g VEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiAoIFsKLSAgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBTVE9SQUdFIHsgUExB SU4gfCBFWFRFUk5BTCB8IEVYVEVOREVEIHwgTUFJTiB8IERFRkFVTFQgfSBdIFsgQ09NUFJF U1NJT04gPHJlcGxhY2VhYmxlPmNvbXByZXNzaW9uX21ldGhvZDwvcmVwbGFjZWFibGU+IF0g WyBDT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdIFsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9yZXBsYWNl YWJsZT4gWyAuLi4gXSBdCisgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgRU5DUllQVEVEIFdJVEggKCA8cmVwbGFjZWFi bGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBsYWNlYWJsZT4gKSBdIFsgU1RPUkFHRSB7IFBM QUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxUIH0gXSBbIENPTVBS RVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFj ZWFibGU+IFsgLi4uIF0gXQogICAgIHwgPHJlcGxhY2VhYmxlPnRhYmxlX2NvbnN0cmFpbnQ8 L3JlcGxhY2VhYmxlPgogICAgIHwgTElLRSA8cmVwbGFjZWFibGU+c291cmNlX3RhYmxlPC9y ZXBsYWNlYWJsZT4gWyA8cmVwbGFjZWFibGU+bGlrZV9vcHRpb248L3JlcGxhY2VhYmxlPiAu Li4gXSB9CiAgICAgWywgLi4uIF0KQEAgLTM1MSw2ICszNTEsNDYgQEAgPHRpdGxlPlBhcmFt ZXRlcnM8L3RpdGxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5FTkNSWVBURUQgV0lUSCAo IDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiApPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRW5hYmxl cyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmb3IgdGhlIGNvbHVtbi4KKyAgICAg IDxyZXBsYWNlYWJsZT5lbmNyeXB0aW9uX29wdGlvbnM8L3JlcGxhY2VhYmxlPiBhcmUgY29t bWEtc2VwYXJhdGVkCisgICAgICA8bGl0ZXJhbD5rZXk9dmFsdWU8L2xpdGVyYWw+IHNwZWNp ZmljYXRpb25zLiAgVGhlIGZvbGxvd2luZyBvcHRpb25zIGFyZQorICAgICAgYXZhaWxhYmxl OgorICAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg ICA8dGVybT48bGl0ZXJhbD5jb2x1bW5fZW5jcnlwdGlvbl9rZXk8L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICA8cGFyYT4KKyAgICAgICAgICBTcGVj aWZpZXMgdGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSB0byB1c2UuICBT cGVjaWZ5aW5nCisgICAgICAgICAgdGhpcyBpcyBtYW5kYXRvcnkuCisgICAgICAgICA8L3Bh cmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+ZW5jcnlwdGlvbl90 eXBlPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBh cmE+CisgICAgICAgICAgPGxpdGVyYWw+cmFuZG9taXplZDwvbGl0ZXJhbD4gKHRoZSBkZWZh dWx0KSBvciA8bGl0ZXJhbD5kZXRlcm1pbmlzdGljPC9saXRlcmFsPgorICAgICAgICAgPC9w YXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmFsZ29yaXRobTwv bGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgor ICAgICAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRobSB0byB1c2UuICBUaGUgZGVmYXVs dCBpcworICAgICAgICAgIDxsaXRlcmFsPkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2 PC9saXRlcmFsPi4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgIDwvdmFyaWFibGVsaXN0PgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlz dGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPklOSEVSSVRTICggPHJlcGxhY2VhYmxlPnBh cmVudF90YWJsZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1 bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5f ZW5jcnlwdGlvbl9rZXkuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjlkMTU3ZGU5YzVmOAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbApAQCAtMCwwICsxLDExMiBAQAor PCEtLQorZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21s CitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1k cm9wLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtZHJv cC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICA8cHJpbWFyeT5EUk9QIENPTFVNTiBFTkNS WVBUSU9OIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8 cmVmZW50cnl0aXRsZT5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmZW50cnl0aXRs ZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBM YW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVm bmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZm5h bWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleTwvcmVm cHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3Bz aXM+CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBbIElGIEVYSVNUUyBdIDxyZXBsYWNl YWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorPC9zeW5v cHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVz Y3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgPGNvbW1hbmQ+RFJPUCBDT0xVTU4g RU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHJlbW92ZXMgYSBwcmV2aW91c2x5IGRlZmluZWQK KyAgIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4gIFRvIGJlIGFibGUgdG8gZHJvcCBhIGNvbHVt biBlbmNyeXB0aW9uIGtleSwgeW91CisgICBtdXN0IGJlIGl0cyBvd25lci4KKyAgPC9wYXJh PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90 aXRsZT4KKworICAgPHZhcmlhYmxlbGlzdD4KKyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8 dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0 ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhl IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkb2VzIG5vdCBleGlzdC4KKyAgICAgICBBIG5vdGlj ZSBpcyBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3Rp dGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg PHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbmFtZSBvZiB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAg IDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxp dGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIEF1dG9tYXRpY2FsbHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5k IG9uIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXksCisgICAgICAgYW5kIGluIHR1cm4gYWxs IG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgIChzZWUgPHhy ZWYgbGlua2VuZD0iZGRsLWRlcGVuZCIvPikuCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlz dGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5PgorICAg ICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0 aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJlZnVzZSB0byBkcm9wIHRoZSBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcworICAg ICAgIGlzIHRoZSBkZWZhdWx0LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgor ICAgIDwvdmFybGlzdGVudHJ5PgorICAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4K Kzxwcm9ncmFtbGlzdGluZz4KK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazE7Cis8 L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBp cyBubyA8Y29tbWFuZD5EUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gc3Rh dGVtZW50IGluCisgICB0aGUgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICAgIDxz aW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1hbHRlci1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+ PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzg1MDk4ZWExYzk5Ci0tLSAv ZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5 LnNnbWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9j b2x1bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgor Cis8cmVmZW50cnkgaWQ9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5kZXh0 ZXJtIHpvbmU9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+RFJP UCBDT0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZt ZXRhPgorICA8cmVmZW50cnl0aXRsZT5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9yZWZlbnRy eXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNR TCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKwor IDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9yZWZu YW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4gbWFzdGVyIGtleTwvcmVmcHVy cG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+ CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlPm5h bWU8L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlv bjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIENPTFVNTiBNQVNURVIg S0VZPC9jb21tYW5kPiByZW1vdmVzIGEgcHJldmlvdXNseSBkZWZpbmVkCisgICBjb2x1bW4g bWFzdGVyIGtleS4gIFRvIGJlIGFibGUgdG8gZHJvcCBhIGNvbHVtbiBtYXN0ZXIga2V5LCB5 b3UKKyAgIG11c3QgYmUgaXRzIG93bmVyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgICA8dmFyaWFi bGVsaXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVY SVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY29sdW1uIG1hc3RlciBrZXkg ZG9lcyBub3QgZXhpc3QuCisgICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGluIHRoaXMgY2Fz ZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICAgPC9w YXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZh cmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIEF1dG9tYXRpY2Fs bHkgZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBjb2x1bW4gbWFzdGVyIGtleSwK KyAgICAgICBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBv YmplY3RzCisgICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+KS4KKyAg ICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRl cmFsPjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUmVm dXNlIHRvIGRyb3AgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlmIGFueSBvYmplY3RzIGRlcGVu ZCBvbiBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIDwvcGFyYT4K KyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFibGVs aXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwv dGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIENPTFVNTiBNQVNU RVIgS0VZIGNlazE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBh cmE+CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9j b21tYW5kPiBzdGF0ZW1lbnQgaW4KKyAgIHRoZSBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxl PgorCisgICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8 bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48 L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcC5zZ21sCmluZGV4IDhiOWQ5ZjRjYWQ0My4uN2Y0ZDg2NzY3MmQz IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbApAQCAtNjkxLDYgKzY5MSwzNyBAQCA8dGl0bGU+ T3B0aW9uczwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PG9wdGlvbj4tLWRlY3J5 cHQtZW5jcnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIGNhdXNlcyB0aGUgdmFsdWVz IG9mIGFsbCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBkZWNyeXB0ZWQKKyAgICAgICAgYW5k IHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRleHQuICBCeSBkZWZhdWx0LCB0aGUg dmFsdWVzIG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSB3cml0dGVuIHRvIHRo ZSBkdW1wIGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRoZXkKKyAgICAgICAgYXJlIG5vdCBk ZWNyeXB0ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBU aGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+LS1pbnNlcnRzPC9vcHRpb24+LAor ICAgICAgICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8L29wdGlvbj4gb3IKKyAgICAgICAg PG9wdGlvbj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9uPiBpcyBhbHNvIHNwZWNpZmllZC4K KyAgICAgICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+IGRvZXMgbm90IHN1cHBvcnQgY29s dW1uIGRlY3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAg ICAgICBGb3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBpcyBhcHBy b3ByaWF0ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2llbnQuICBUaGlzIG9wdGlvbiBpcyBz dWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBiZQorICAgICAgICBpbnNwZWN0ZWQg b3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAgTm90ZSB0aGF0IGEgZHVtcCBjcmVh dGVkCisgICAgICAgIHdpdGggdGhpcyBvcHRpb24gY2Fubm90IGJlIHJlc3RvcmVkIGludG8g YSBkYXRhYmFzZSB3aXRoIGNvbHVtbgorICAgICAgICBlbmNyeXB0aW9uLgorICAgICAgIDwv cGFyYT4KKyAgICAgICA8IS0tCisgICAgICAgICAgIFhYWDogVGhlIGxhdHRlciB3b3VsZCBy ZXF1aXJlIGFub3RoZXIgcGdfZHVtcCBvcHRpb24gdG8gcHV0IG91dAorICAgICAgICAgICBJ TlNFUlQgLi4uIFxiaW5kIC4uLiBcZyBjb21tYW5kcy4KKyAgICAgICAtLT4KKyAgICAgIDwv bGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgICA8dGVybT48b3B0aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGluZzwvb3B0aW9u PjwvdGVybT4KICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvcGdfZHVtcGFsbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxsLnNnbWwK aW5kZXggZTYyZDA1ZTVhYjU4Li40YmY2MGM3MjlmN2YgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcGFsbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVt cGFsbC5zZ21sCkBAIC0yNTksNiArMjU5LDMzIEBAIDx0aXRsZT5PcHRpb25zPC90aXRsZT4K ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0tZGVjcnlwdC1lbmNyeXB0ZWQtY29s dW1uczwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4K KyAgICAgICAgVGhpcyBvcHRpb24gY2F1c2VzIHRoZSB2YWx1ZXMgb2YgYWxsIGVuY3J5cHRl ZCBjb2x1bW5zIHRvIGJlIGRlY3J5cHRlZAorICAgICAgICBhbmQgd3JpdHRlbiB0byB0aGUg b3V0cHV0IGluIHBsYWludGV4dC4gIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZXMgb2YKKyAgICAg ICAgZW5jcnlwdGVkIGNvbHVtbnMgYXJlIHdyaXR0ZW4gdG8gdGhlIGR1bXAgaW4gY2lwaGVy dGV4dCAodGhhdCBpcywgdGhleQorICAgICAgICBhcmUgbm90IGRlY3J5cHRlZCkuCisgICAg ICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0aW9uIHJlcXVp cmVzIHRoYXQgPG9wdGlvbj4tLWluc2VydHM8L29wdGlvbj4sCisgICAgICAgIDxvcHRpb24+ LS1jb2x1bW4taW5zZXJ0czwvb3B0aW9uPiBvcgorICAgICAgICA8b3B0aW9uPi0tcm93cy1w ZXItaW5zZXJ0PC9vcHRpb24+IGlzIGFsc28gc3BlY2lmaWVkLgorICAgICAgICAoPGNvbW1h bmQ+Q09QWTwvY29tbWFuZD4gZG9lcyBub3Qgc3VwcG9ydCBjb2x1bW4gZGVjcnlwdGlvbi4p CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEZvciByb3V0aW5l IGJhY2t1cHMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGFwcHJvcHJpYXRlIGFuZCBtb3N0 CisgICAgICAgIGVmZmljaWVudC4gIFRoaXMgb3B0aW9uIGlzIHN1aXRhYmxlIGlmIHRoZSBk YXRhIGlzIG1lYW50IHRvIGJlCisgICAgICAgIGluc3BlY3RlZCBvciBleHBvcnRlZCBmb3Ig b3RoZXIgcHVycG9zZXMuICBOb3RlIHRoYXQgYSBkdW1wIGNyZWF0ZWQKKyAgICAgICAgd2l0 aCB0aGlzIG9wdGlvbiBjYW5ub3QgYmUgcmVzdG9yZWQgaW50byBhIGRhdGFiYXNlIHdpdGgg Y29sdW1uCisgICAgICAgIGVuY3J5cHRpb24uCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4K ICAgICAgIDx0ZXJtPjxvcHRpb24+LS1kaXNhYmxlLWRvbGxhci1xdW90aW5nPC9vcHRpb24+ PC90ZXJtPgogICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9wc3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4 IGQzZGQ2MzhiMTQ4YS4uNDVhYTM5NDNmOGI3IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21s CkBAIC0xNDIwLDYgKzE0MjAsMzQgQEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3RpdGxlPgog ICAgICAgPC92YXJsaXN0ZW50cnk+CiAKIAorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg ICAgPHRlcm0+PGxpdGVyYWw+XGRjZWtbK10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1w YXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxh Y2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4K KyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMu ICBJZiA8cmVwbGFjZWFibGUKKyAgICAgICAgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwv cmVwbGFjZWFibGU+IGlzIHNwZWNpZmllZCwgb25seSBjb2x1bW4KKyAgICAgICAgZW5jcnlw dGlvbiBrZXlzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBwYXR0ZXJuIGFyZSBsaXN0ZWQuICBJ ZgorICAgICAgICA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29t bWFuZCBuYW1lLCBlYWNoIG9iamVjdCBpcworICAgICAgICBsaXN0ZWQgd2l0aCBpdHMgYXNz b2NpYXRlZCBkZXNjcmlwdGlvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKworICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRjbWtbK10gWyA8bGluayBsaW5rZW5kPSJhcHAt cHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48 L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIGNvbHVtbiBtYXN0ZXIga2V5 cy4gIElmIDxyZXBsYWNlYWJsZQorICAgICAgICBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJu PC9yZXBsYWNlYWJsZT4gaXMgc3BlY2lmaWVkLCBvbmx5IGNvbHVtbgorICAgICAgICBtYXN0 ZXIga2V5cyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVkLiAgSWYK KyAgICAgICAgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1h bmQgbmFtZSwgZWFjaCBvYmplY3QgaXMKKyAgICAgICAgbGlzdGVkIHdpdGggaXRzIGFzc29j aWF0ZWQgZGVzY3JpcHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisKICAgICAgIDx2YXJsaXN0ZW50cnk+CiAg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkY29uZmlnWytdIFsgPGxpbmsgbGlua2VuZD0iYXBw LXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJu PC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlz dGl0ZW0+CkBAIC00MDE1LDYgKzQwNDMsMTcgQEAgPHRpdGxlPlZhcmlhYmxlczwvdGl0bGU+ CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PHZhcm5hbWU+SElERV9DT0xVTU5fRU5D UllQVElPTjwvdmFybmFtZT48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg PHBhcmE+CisgICAgICAgICBJZiB0aGlzIHZhcmlhYmxlIGlzIHNldCB0byA8bGl0ZXJhbD50 cnVlPC9saXRlcmFsPiwgY29sdW1uIGVuY3J5cHRpb24KKyAgICAgICAgIGRldGFpbHMgYXJl IG5vdCBkaXNwbGF5ZWQuIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgcmVncmVzc2lvbgor ICAgICAgICAgdGVzdHMuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5PgogICAgICAg ICA8dGVybT48dmFybmFtZT5ISURFX1RPQVNUX0NPTVBSRVNTSU9OPC92YXJuYW1lPjwvdGVy bT4KICAgICAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IGEzYjc0M2U4 YzFlNy4uZTE0MjVjMjIyZmFiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNl LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0zNiw2ICszNiw4 IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8L3RpdGxlPgogICAgJmFib3J0OwogICAgJmFsdGVy QWdncmVnYXRlOwogICAgJmFsdGVyQ29sbGF0aW9uOworICAgJmFsdGVyQ29sdW1uRW5jcnlw dGlvbktleTsKKyAgICZhbHRlckNvbHVtbk1hc3RlcktleTsKICAgICZhbHRlckNvbnZlcnNp b247CiAgICAmYWx0ZXJEYXRhYmFzZTsKICAgICZhbHRlckRlZmF1bHRQcml2aWxlZ2VzOwpA QCAtOTAsNiArOTIsOCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZjcmVh dGVBZ2dyZWdhdGU7CiAgICAmY3JlYXRlQ2FzdDsKICAgICZjcmVhdGVDb2xsYXRpb247Cisg ICAmY3JlYXRlQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZjcmVhdGVDb2x1bW5NYXN0ZXJL ZXk7CiAgICAmY3JlYXRlQ29udmVyc2lvbjsKICAgICZjcmVhdGVEYXRhYmFzZTsKICAgICZj cmVhdGVEb21haW47CkBAIC0xMzcsNiArMTQxLDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwv dGl0bGU+CiAgICAmZHJvcEFnZ3JlZ2F0ZTsKICAgICZkcm9wQ2FzdDsKICAgICZkcm9wQ29s bGF0aW9uOworICAgJmRyb3BDb2x1bW5FbmNyeXB0aW9uS2V5OworICAgJmRyb3BDb2x1bW5N YXN0ZXJLZXk7CiAgICAmZHJvcENvbnZlcnNpb247CiAgICAmZHJvcERhdGFiYXNlOwogICAg JmRyb3BEb21haW47CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3By aW50c2ltcGxlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50c2ltcGxlLmMK aW5kZXggYzk5YWU1NGNiMDI2Li44NjQ4MmViNGM4MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3ByaW50c2ltcGxlLmMKQEAgLTIwLDcgKzIwLDkgQEAKIAogI2luY2x1ZGUg ImFjY2Vzcy9wcmludHNpbXBsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgor I2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQu aCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5o IgogCiAvKgpAQCAtNDYsNiArNDgsMTEgQEAgcHJpbnRzaW1wbGVfc3RhcnR1cChEZXN0UmVj ZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0dXBkZXNjKQogCQlwcV9z ZW5kaW50MTYoJmJ1ZiwgYXR0ci0+YXR0bGVuKTsKIAkJcHFfc2VuZGludDMyKCZidWYsIGF0 dHItPmF0dHR5cG1vZCk7CiAJCXBxX3NlbmRpbnQxNigmYnVmLCAwKTsJLyogZm9ybWF0IGNv ZGUgKi8KKwkJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJ CXsKKwkJCXBxX3NlbmRpbnQzMigmYnVmLCAwKTsJLyogQ0VLICovCisJCQlwcV9zZW5kaW50 MTYoJmJ1ZiwgMCk7CS8qIENFSyBhbGcgKi8KKwkJfQogCX0KIAogCXBxX2VuZG1lc3NhZ2Uo JmJ1Zik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVw LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVwLmMKaW5kZXggZDJmM2I1 NzI4ODQ2Li44MGFiNWU4NzViZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vcHJpbnR0dXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50 dHVwLmMKQEAgLTE1LDEzICsxNSwyOCBAQAogICovCiAjaW5jbHVkZSAicG9zdGdyZXMuaCIK IAorI2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9wcmludHR1 cC5oIgorI2luY2x1ZGUgImFjY2Vzcy9za2V5LmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxl LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rl cmtleS5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCisjaW5jbHVkZSAibGlicHEvbGli cHEtYmUuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgogI2luY2x1ZGUgInRjb3AvcHF1ZXJ5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJy YXkuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheWFjY2Vzcy5oIgorI2luY2x1ZGUgInV0aWxz L2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1 dGlscy9pbnZhbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL21lbWRlYnVnLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNs dWRlICJ1dGlscy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAKIHN0 YXRpYyB2b2lkIHByaW50dHVwX3N0YXJ0dXAoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3Bl cmF0aW9uLApAQCAtMTUxLDYgKzE2NiwxMzkgQEAgcHJpbnR0dXBfc3RhcnR1cChEZXN0UmVj ZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5mbykKIAkgKi8K IH0KIAorLyoKKyAqIFNlbmQgQ29sdW1uTWFzdGVyS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdz IGFscmVhZHkgYmVlbiBzZW50IGluIHRoaXMgc2Vzc2lvbgorICogZm9yIHRoaXMga2V5Lgor ICovCitMaXN0CSAgICpjbWtfc2VudCA9IE5JTDsKKworc3RhdGljIHZvaWQKK2Nta19jaGFu Z2VfY2IoRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwls aXN0X2ZyZWUoY21rX3NlbnQpOworCWNta19zZW50ID0gTklMOworfQorCitzdGF0aWMgdm9p ZAorTWF5YmVTZW5kQ29sdW1uTWFzdGVyS2V5TWVzc2FnZShPaWQgY21raWQpCit7CisJSGVh cFR1cGxlCXR1cGxlOworCUZvcm1fcGdfY29sbWFzdGVya2V5IGNta2Zvcm07CisJRGF0dW0J CWRhdHVtOworCWJvb2wJCWlzbnVsbDsKKwlTdHJpbmdJbmZvRGF0YSBidWY7CisJc3RhdGlj IGJvb2wgcmVnaXN0ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1lbW9yeUNvbnRleHQgb2xkY29u dGV4dDsKKworCUFzc2VydChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk KTsKKworCWlmIChsaXN0X21lbWJlcl9vaWQoY21rX3NlbnQsIGNta2lkKSkKKwkJcmV0dXJu OworCisJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVt KGNta2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21r aWQpOworCWNta2Zvcm0gPSAoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0dXBs ZSk7CisKKwlwcV9iZWdpbm1lc3NhZ2UoJmJ1ZiwgJ3knKTsgLyogQ29sdW1uTWFzdGVyS2V5 ICovCisJcHFfc2VuZGludDMyKCZidWYsIGNta2Zvcm0tPm9pZCk7CisJcHFfc2VuZHN0cmlu ZygmYnVmLCBOYW1lU3RyKGNta2Zvcm0tPmNta25hbWUpKTsKKwlkYXR1bSA9IFN5c0NhY2hl R2V0QXR0cihDTUtPSUQsIHR1cGxlLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSwg JmlzbnVsbCk7CisJQXNzZXJ0KCFpc251bGwpOworCXBxX3NlbmRzdHJpbmcoJmJ1ZiwgVGV4 dERhdHVtR2V0Q1N0cmluZyhkYXR1bSkpOworCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwlS ZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCisJaWYgKCFyZWdpc3RlcmVkX2ludmFsKQorCXsK KwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQ01LT0lELCBjbWtfY2hhbmdlX2Ni LCAoRGF0dW0pIDApOworCQlyZWdpc3RlcmVkX2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRj b250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNt a19zZW50ID0gbGFwcGVuZF9vaWQoY21rX3NlbnQsIGNta2lkKTsKKwlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY29udGV4dCk7Cit9CisKKy8qCisgKiBTZW5kIENvbHVtbkVuY3J5cHRp b25LZXkgbWVzc2FnZSwgdW5sZXNzIGl0J3MgYWxyZWFkeSBiZWVuIHNlbnQgaW4gdGhpcwor ICogc2Vzc2lvbiBmb3IgdGhpcyBrZXkuCisgKi8KK0xpc3QJICAgKmNla19zZW50ID0gTklM OworCitzdGF0aWMgdm9pZAorY2VrX2NoYW5nZV9jYihEYXR1bSBhcmcsIGludCBjYWNoZWlk LCB1aW50MzIgaGFzaHZhbHVlKQoreworCWxpc3RfZnJlZShjZWtfc2VudCk7CisJY2VrX3Nl bnQgPSBOSUw7Cit9CisKK3ZvaWQKK01heWJlU2VuZENvbHVtbkVuY3J5cHRpb25LZXlNZXNz YWdlKE9pZCBhdHRjZWspCit7CisJSGVhcFR1cGxlCXR1cGxlOworCVNjYW5LZXlEYXRhIHNr ZXlbMV07CisJU3lzU2NhbkRlc2Mgc2Q7CisJUmVsYXRpb24JcmVsOworCWJvb2wJCWZvdW5k ID0gZmFsc2U7CisJc3RhdGljIGJvb2wgcmVnaXN0ZXJlZF9pbnZhbCA9IGZhbHNlOworCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworCUFzc2VydChNeVByb2NQb3J0LT5jb2x1bW5f ZW5jcnlwdGlvbl9lbmFibGVkKTsKKworCWlmIChsaXN0X21lbWJlcl9vaWQoY2VrX3NlbnQs IGF0dGNlaykpCisJCXJldHVybjsKKworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFu dW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1i ZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShhdHRjZWspKTsKKwlyZWwgPSB0 YWJsZV9vcGVuKENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2sp OworCXNkID0gc3lzdGFibGVfYmVnaW5zY2FuKHJlbCwgQ29sdW1uRW5jS2V5Q2VraWRDbWtp ZEluZGV4SWQsIHRydWUsIE5VTEwsIDEsIHNrZXkpOworCisJd2hpbGUgKCh0dXBsZSA9IHN5 c3RhYmxlX2dldG5leHQoc2QpKSkKKwl7CisJCUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBja2Rm b3JtID0gKEZvcm1fcGdfY29sZW5ja2V5ZGF0YSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJRGF0 dW0JCWRhdHVtOworCQlib29sCQlpc251bGw7CisJCWJ5dGVhCSAgICpiYTsKKwkJU3RyaW5n SW5mb0RhdGEgYnVmOworCisJCU1heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoY2tk Zm9ybS0+Y2tkY21raWQpOworCisJCWRhdHVtID0gaGVhcF9nZXRhdHRyKHR1cGxlLCBBbnVt X3BnX2NvbGVuY2tleWRhdGFfY2tkZW5jdmFsLCBSZWxhdGlvbkdldERlc2NyKHJlbCksICZp c251bGwpOworCQlBc3NlcnQoIWlzbnVsbCk7CisJCWJhID0gcGdfZGV0b2FzdF9kYXR1bV9w YWNrZWQoKGJ5dGVhICopIERhdHVtR2V0UG9pbnRlcihkYXR1bSkpOworCisJCXBxX2JlZ2lu bWVzc2FnZSgmYnVmLCAnWScpOyAvKiBDb2x1bW5FbmNyeXB0aW9uS2V5ICovCisJCXBxX3Nl bmRpbnQzMigmYnVmLCBja2Rmb3JtLT5ja2RjZWtpZCk7CisJCXBxX3NlbmRpbnQzMigmYnVm LCBja2Rmb3JtLT5ja2RjbWtpZCk7CisJCXBxX3NlbmRpbnQxNigmYnVmLCBja2Rmb3JtLT5j a2RjbWthbGcpOworCQlwcV9zZW5kaW50MzIoJmJ1ZiwgVkFSU0laRV9BTllfRVhIRFIoYmEp KTsKKwkJcHFfc2VuZGJ5dGVzKCZidWYsIFZBUkRBVEFfQU5ZKGJhKSwgVkFSU0laRV9BTllf RVhIRFIoYmEpKTsKKwkJcHFfZW5kbWVzc2FnZSgmYnVmKTsKKworCQlmb3VuZCA9IHRydWU7 CisJfQorCisJaWYgKCFmb3VuZCkKKwkJZWxvZyhFUlJPUiwgImxvb2t1cCBmYWlsZWQgZm9y IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwgYXR0Y2VrKTsKKworCXN5c3RhYmxl X2VuZHNjYW4oc2QpOworCXRhYmxlX2Nsb3NlKHJlbCwgTm9Mb2NrKTsKKworCWlmICghcmVn aXN0ZXJlZF9pbnZhbCkKKwl7CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENF S0RBVEFPSUQsIGNla19jaGFuZ2VfY2IsIChEYXR1bSkgMCk7CisJCXJlZ2lzdGVyZWRfaW52 YWwgPSB0cnVlOworCX0KKworCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o VG9wTWVtb3J5Q29udGV4dCk7CisJY2VrX3NlbnQgPSBsYXBwZW5kX29pZChjZWtfc2VudCwg YXR0Y2VrKTsKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7Cit9CisKIC8q CiAgKiBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlIC0tLSBzZW5kIGEgUm93RGVzY3JpcHRp b24gbWVzc2FnZSB0byB0aGUgZnJvbnRlbmQKICAqCkBAIC0xNjcsNiArMzE1LDcgQEAgU2Vu ZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVp bmZvLAogCQkJCQkJICBMaXN0ICp0YXJnZXRsaXN0LCBpbnQxNiAqZm9ybWF0cykKIHsKIAlp bnQJCQluYXR0cyA9IHR5cGVpbmZvLT5uYXR0czsKKwlzaXplX3QJCXN6OwogCWludAkJCWk7 CiAJTGlzdENlbGwgICAqdGxpc3RfaXRlbSA9IGxpc3RfaGVhZCh0YXJnZXRsaXN0KTsKIApA QCAtMTgzLDE0ICszMzIsMTcgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJ bmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCSAqIEhhdmUgdG8gb3ZlcmVzdGltYXRl IHRoZSBzaXplIG9mIHRoZSBjb2x1bW4tbmFtZXMsIHRvIGFjY291bnQgZm9yCiAJICogY2hh cmFjdGVyIHNldCBvdmVyaGVhZC4KIAkgKi8KLQllbmxhcmdlU3RyaW5nSW5mbyhidWYsIChO QU1FREFUQUxFTiAqIE1BWF9DT05WRVJTSU9OX0dST1dUSCAvKiBhdHRuYW1lICovCi0JCQkJ CQkJKyBzaXplb2YoT2lkKQkvKiByZXNvcmlndGJsICovCi0JCQkJCQkJKyBzaXplb2YoQXR0 ck51bWJlcikJLyogcmVzb3JpZ2NvbCAqLwotCQkJCQkJCSsgc2l6ZW9mKE9pZCkJLyogYXR0 dHlwaWQgKi8KLQkJCQkJCQkrIHNpemVvZihpbnQxNikgLyogYXR0bGVuICovCi0JCQkJCQkJ KyBzaXplb2YoaW50MzIpIC8qIGF0dHlwbW9kICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYp IC8qIGZvcm1hdCAqLwotCQkJCQkJCSkgKiBuYXR0cyk7CisJc3ogPSAoTkFNRURBVEFMRU4g KiBNQVhfQ09OVkVSU0lPTl9HUk9XVEggLyogYXR0bmFtZSAqLworCQkgICsgc2l6ZW9mKE9p ZCkJLyogcmVzb3JpZ3RibCAqLworCQkgICsgc2l6ZW9mKEF0dHJOdW1iZXIpCS8qIHJlc29y aWdjb2wgKi8KKwkJICArIHNpemVvZihPaWQpCS8qIGF0dHR5cGlkICovCisJCSAgKyBzaXpl b2YoaW50MTYpIC8qIGF0dGxlbiAqLworCQkgICsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1v ZCAqLworCQkgICsgc2l6ZW9mKGludDE2KSk7IC8qIGZvcm1hdCAqLworCWlmIChNeVByb2NQ b3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlzeiArPSAoc2l6ZW9mKGludDMy KQkJLyogYXR0Y2VraWQgKi8KKwkJCSAgICsgc2l6ZW9mKGludDE2KSk7CS8qIGF0dGVuY2Fs ZyAqLworCWVubGFyZ2VTdHJpbmdJbmZvKGJ1Ziwgc3ogKiBuYXR0cyk7CiAKIAlmb3IgKGkg PSAwOyBpIDwgbmF0dHM7ICsraSkKIAl7CkBAIC0yMDAsNiArMzUyLDggQEAgU2VuZFJvd0Rl c2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAog CQlPaWQJCQlyZXNvcmlndGJsOwogCQlBdHRyTnVtYmVyCXJlc29yaWdjb2w7CiAJCWludDE2 CQlmb3JtYXQ7CisJCU9pZAkJCWF0dGNla2lkID0gSW52YWxpZE9pZDsKKwkJaW50MTYJCWF0 dGVuY2FsZyA9IDA7CiAKIAkJLyoKIAkJICogSWYgY29sdW1uIGlzIGEgZG9tYWluLCBzZW5k IHRoZSBiYXNlIHR5cGUgYW5kIHR5cG1vZCBpbnN0ZWFkLgpAQCAtMjMxLDYgKzM4NSwyMiBA QCBTZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKFN0cmluZ0luZm8gYnVmLCBUdXBsZURlc2Mg dHlwZWluZm8sCiAJCWVsc2UKIAkJCWZvcm1hdCA9IDA7CiAKKwkJaWYgKE15UHJvY1BvcnQt PmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgJiYgdHlwZV9pc19lbmNyeXB0ZWQoYXR0dHlw aWQpKQorCQl7CisJCQlIZWFwVHVwbGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmln X2F0dDsKKworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTlVNLCBPYmplY3RJZEdldERh dHVtKHJlc29yaWd0YmwpLCBJbnQxNkdldERhdHVtKHJlc29yaWdjb2wpKTsKKwkJCWlmICgh SGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHJlc29yaWdjb2wsIHJl c29yaWd0YmwpOworCQkJb3JpZ19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVD VCh0cCk7CisJCQlNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShvcmlnX2F0 dC0+YXR0Y2VrKTsKKwkJCWF0dHR5cGlkID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJ CWF0dGNla2lkID0gb3JpZ19hdHQtPmF0dGNlazsKKwkJCWF0dGVuY2FsZyA9IG9yaWdfYXR0 LT5hdHRlbmNhbGc7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQl9CisKIAkJcHFfd3Jp dGVzdHJpbmcoYnVmLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpOwogCQlwcV93cml0ZWludDMy KGJ1ZiwgcmVzb3JpZ3RibCk7CiAJCXBxX3dyaXRlaW50MTYoYnVmLCByZXNvcmlnY29sKTsK QEAgLTIzOCw2ICs0MDgsMTEgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJ bmZvIGJ1ZiwgVHVwbGVEZXNjIHR5cGVpbmZvLAogCQlwcV93cml0ZWludDE2KGJ1ZiwgYXR0 LT5hdHRsZW4pOwogCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0dHlwbW9kKTsKIAkJcHFfd3Jp dGVpbnQxNihidWYsIGZvcm1hdCk7CisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQl7CisJCQlwcV93cml0ZWludDMyKGJ1ZiwgYXR0Y2VraWQpOwor CQkJcHFfd3JpdGVpbnQxNihidWYsIGF0dGVuY2FsZyk7CisJCX0KIAl9CiAKIAlwcV9lbmRt ZXNzYWdlX3JldXNlKGJ1Zik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29t bW9uL3R1cGRlc2MuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVwZGVzYy5jCmlu ZGV4IDc4NTdmNTVlMjRhNC4uMzJiMTMxNzgxZjkyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29t bW9uL3R1cGRlc2MuYwpAQCAtNDU5LDYgKzQ1OSwxMiBAQCBlcXVhbFR1cGxlRGVzY3MoVHVw bGVEZXNjIHR1cGRlc2MxLCBUdXBsZURlc2MgdHVwZGVzYzIpCiAJCQlyZXR1cm4gZmFsc2U7 CiAJCWlmIChhdHRyMS0+YXR0aXNsb2NhbCAhPSBhdHRyMi0+YXR0aXNsb2NhbCkKIAkJCXJl dHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRjZWsgIT0gYXR0cjItPmF0dGNlaykKKwkJ CXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRyZWFsdHlwaWQgIT0gYXR0cjItPmF0 dHJlYWx0eXBpZCkKKwkJCXJldHVybiBmYWxzZTsKKwkJaWYgKGF0dHIxLT5hdHRlbmNhbGcg IT0gYXR0cjItPmF0dGVuY2FsZykKKwkJCXJldHVybiBmYWxzZTsKIAkJaWYgKGF0dHIxLT5h dHRpbmhjb3VudCAhPSBhdHRyMi0+YXR0aW5oY291bnQpCiAJCQlyZXR1cm4gZmFsc2U7CiAJ CWlmIChhdHRyMS0+YXR0Y29sbGF0aW9uICE9IGF0dHIyLT5hdHRjb2xsYXRpb24pCkBAIC02 MjksNiArNjM1LDkgQEAgVHVwbGVEZXNjSW5pdEVudHJ5KFR1cGxlRGVzYyBkZXNjLAogCWF0 dC0+YXR0Z2VuZXJhdGVkID0gJ1wwJzsKIAlhdHQtPmF0dGlzZHJvcHBlZCA9IGZhbHNlOwog CWF0dC0+YXR0aXNsb2NhbCA9IHRydWU7CisJYXR0LT5hdHRjZWsgPSAwOworCWF0dC0+YXR0 cmVhbHR5cGlkID0gMDsKKwlhdHQtPmF0dGVuY2FsZyA9IDA7CiAJYXR0LT5hdHRpbmhjb3Vu dCA9IDA7CiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBhcmUgbm90IHByZXNlbnQgaW4g dHVwbGVkZXNjcyAqLwogCkBAIC02OTAsNiArNjk5LDkgQEAgVHVwbGVEZXNjSW5pdEJ1aWx0 aW5FbnRyeShUdXBsZURlc2MgZGVzYywKIAlhdHQtPmF0dGdlbmVyYXRlZCA9ICdcMCc7CiAJ YXR0LT5hdHRpc2Ryb3BwZWQgPSBmYWxzZTsKIAlhdHQtPmF0dGlzbG9jYWwgPSB0cnVlOwor CWF0dC0+YXR0Y2VrID0gMDsKKwlhdHQtPmF0dHJlYWx0eXBpZCA9IDA7CisJYXR0LT5hdHRl bmNhbGcgPSAwOwogCWF0dC0+YXR0aW5oY291bnQgPSAwOwogCS8qIHZhcmlhYmxlLWxlbmd0 aCBmaWVsZHMgYXJlIG5vdCBwcmVzZW50IGluIHR1cGxlZGVzY3MgKi8KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwppbmRleCAxMGJmMjZjZTdjMDcuLmNlYTkx ZDRhODhhMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlk YXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMKQEAg LTMzMSw3ICszMzEsNyBAQCBjaGVja19oYXNoX2Z1bmNfc2lnbmF0dXJlKE9pZCBmdW5jaWQs IGludDE2IGFtcHJvY251bSwgT2lkIGFyZ3R5cGUpCiAJCQkJIGFyZ3R5cGUgPT0gQk9PTE9J RCkKIAkJCSAvKiBva2F5LCBhbGxvd2VkIHVzZSBvZiBoYXNoY2hhcigpICovIDsKIAkJZWxz ZSBpZiAoKGZ1bmNpZCA9PSBGX0hBU0hWQVJMRU5BIHx8IGZ1bmNpZCA9PSBGX0hBU0hWQVJM RU5BRVhURU5ERUQpICYmCi0JCQkJIGFyZ3R5cGUgPT0gQllURUFPSUQpCisJCQkJIChhcmd0 eXBlID09IEJZVEVBT0lEIHx8IGFyZ3R5cGUgPT0gUEdfRU5DUllQVEVEX0RFVE9JRCkpCiAJ CQkgLyogb2theSwgYWxsb3dlZCB1c2Ugb2YgaGFzaHZhcmxlbmEoKSAqLyA7CiAJCWVsc2UK IAkJCXJlc3VsdCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9N YWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggODlhMDIyMWVj OWI4Li43ZTFhOTFiOTc0OWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFr ZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNzIsNyArNzIs OCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX2NvbGxhdGlvbi5oIHBnX3BhcmFtZXRl cl9hY2wuaCBwZ19wYXJ0aXRpb25lZF90YWJsZS5oIFwKIAlwZ19yYW5nZS5oIHBnX3RyYW5z Zm9ybS5oIFwKIAlwZ19zZXF1ZW5jZS5oIHBnX3B1YmxpY2F0aW9uLmggcGdfcHVibGljYXRp b25fbmFtZXNwYWNlLmggXAotCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1YnNjcmlwdGlv bi5oIHBnX3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3B1YmxpY2F0aW9uX3JlbC5oIHBnX3N1 YnNjcmlwdGlvbi5oIHBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfY29sbWFzdGVya2V5 LmggcGdfY29sZW5ja2V5LmggcGdfY29sZW5ja2V5ZGF0YS5oCiAKIEdFTkVSQVRFRF9IRUFE RVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkgc2NoZW1hcGcuaCBzeXN0ZW1f ZmtfaW5mby5oCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IDNjOWY4ZTYwYWQyMi4uMWMx YWFiN2Y0YzRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTMzLDcgKzMzLDkgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2Fz dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbnZlcnNpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIgpAQCAtMzU5Niw2ICszNTk4LDkg QEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBl LAogCQkJCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVU RToKIAkJCQkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJ CQljYXNlIE9CSkVDVF9DRUtEQVRBOgorCQkJCQljYXNlIE9CSkVDVF9DTUs6CiAJCQkJCWNh c2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2Fz ZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTM2MjYsNiArMzYzMSwxMiBAQCBhY2xjaGVj a19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNh c2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBi ZSBvd25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9C SkVDVF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Yg Y29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBP QkpFQ1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9m IGNvbHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpF Q1RfQ09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVy IG9mIGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0zNzM2LDYgKzM3NDcsNyBA QCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJCQkJY2FzZSBPQkpFQ1RfQVRUUklCVVRF OgogCQkJCQljYXNlIE9CSkVDVF9DQVNUOgorCQkJCQljYXNlIE9CSkVDVF9DRUtEQVRBOgog CQkJCQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJ CQkJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCmluZGV4IDdmM2U2NGI1YWU2MS4uOGYxZjJmYWU2YTAwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwpAQCAtMzAsNyArMzAsMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNr ZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFz dGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRh YmFzZS5oIgpAQCAtMTUzLDYgKzE1Niw5IEBAIHN0YXRpYyBjb25zdCBPaWQgb2JqZWN0X2Ns YXNzZXNbXSA9IHsKIAlUeXBlUmVsYXRpb25JZCwJCQkJLyogT0NMQVNTX1RZUEUgKi8KIAlD YXN0UmVsYXRpb25JZCwJCQkJLyogT0NMQVNTX0NBU1QgKi8KIAlDb2xsYXRpb25SZWxhdGlv bklkLAkJLyogT0NMQVNTX0NPTExBVElPTiAqLworCUNvbHVtbkVuY0tleVJlbGF0aW9uSWQs CQkvKiBPQ0xBU1NfQ0VLICovCisJQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsCS8qIE9D TEFTU19DRUtEQVRBICovCisJQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwJLyogT0NMQVNT X0NNSyAqLwogCUNvbnN0cmFpbnRSZWxhdGlvbklkLAkJLyogT0NMQVNTX0NPTlNUUkFJTlQg Ki8KIAlDb252ZXJzaW9uUmVsYXRpb25JZCwJCS8qIE9DTEFTU19DT05WRVJTSU9OICovCiAJ QXR0ckRlZmF1bHRSZWxhdGlvbklkLAkJLyogT0NMQVNTX0RFRkFVTFQgKi8KQEAgLTE0ODcs NiArMTQ5Myw5IEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBp bnQgZmxhZ3MpCiAKIAkJY2FzZSBPQ0xBU1NfQ0FTVDoKIAkJY2FzZSBPQ0xBU1NfQ09MTEFU SU9OOgorCQljYXNlIE9DTEFTU19DRUs6CisJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCWNh c2UgT0NMQVNTX0NNSzoKIAkJY2FzZSBPQ0xBU1NfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQ0xB U1NfTEFOR1VBR0U6CiAJCWNhc2UgT0NMQVNTX09QQ0xBU1M6CkBAIC0yODU5LDYgKzI4Njgs MTUgQEAgZ2V0T2JqZWN0Q2xhc3MoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0KQogCQlj YXNlIENvbGxhdGlvblJlbGF0aW9uSWQ6CiAJCQlyZXR1cm4gT0NMQVNTX0NPTExBVElPTjsK IAorCQljYXNlIENvbHVtbkVuY0tleVJlbGF0aW9uSWQ6CisJCQlyZXR1cm4gT0NMQVNTX0NF SzsKKworCQljYXNlIENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkOgorCQkJcmV0dXJuIE9D TEFTU19DRUtEQVRBOworCisJCWNhc2UgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZDoKKwkJ CXJldHVybiBPQ0xBU1NfQ01LOworCiAJCWNhc2UgQ29uc3RyYWludFJlbGF0aW9uSWQ6CiAJ CQlyZXR1cm4gT0NMQVNTX0NPTlNUUkFJTlQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvaGVhcC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKaW5kZXggYmRk NDEzZjAxYjA1Li5iMzFjMjUyOGZjOGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC03NDksNiAr NzQ5LDkgQEAgSW5zZXJ0UGdBdHRyaWJ1dGVUdXBsZXMoUmVsYXRpb24gcGdfYXR0cmlidXRl X3JlbCwKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRl X2F0dGdlbmVyYXRlZCAtIDFdID0gQ2hhckdldERhdHVtKGF0dHJzLT5hdHRnZW5lcmF0ZWQp OwogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0 aXNkcm9wcGVkIC0gMV0gPSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzZHJvcHBlZCk7CiAJ CXNsb3Rbc2xvdENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2xv Y2FsIC0gMV0gPSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzbG9jYWwpOworCQlzbG90W3Ns b3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y2VrIC0gMV0gPSBP YmplY3RJZEdldERhdHVtKGF0dHJzLT5hdHRjZWspOworCQlzbG90W3Nsb3RDb3VudF0tPnR0 c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0cmVhbHR5cGlkIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKGF0dHJzLT5hdHRyZWFsdHlwaWQpOworCQlzbG90W3Nsb3RDb3VudF0tPnR0 c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0ZW5jYWxnIC0gMV0gPSBJbnQxNkdldERh dHVtKGF0dHJzLT5hdHRlbmNhbGcpOwogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0aW5oY291bnQgLSAxXSA9IEludDMyR2V0RGF0dW0oYXR0 cnMtPmF0dGluaGNvdW50KTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1f cGdfYXR0cmlidXRlX2F0dGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShhdHRy cy0+YXR0Y29sbGF0aW9uKTsKIAkJaWYgKGF0dG9wdGlvbnMgJiYgYXR0b3B0aW9uc1tuYXR0 c10gIT0gKERhdHVtKSAwKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRl eCBmZTk3ZmJmNzlkY2QuLjFkZmU0YjY5MjY1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmMKQEAgLTI5LDcgKzI5LDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19h dXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5 LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rl cmtleS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJh c2UuaCIKQEAgLTE5MSw2ICsxOTQsNDggQEAgc3RhdGljIGNvbnN0IE9iamVjdFByb3BlcnR5 VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX0NPTExBVElPTiwKIAkJdHJ1ZQog CX0sCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IiwKKwkJQ29sdW1uRW5jS2V5UmVs YXRpb25JZCwKKwkJQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwKKwkJQ0VLT0lELAorCQlDRUtO QU1FLAorCQlBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJCUFudW1fcGdfY29sZW5ja2V5X2Nl a25hbWUsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlBbnVtX3BnX2NvbGVuY2tleV9jZWtv d25lciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCU9CSkVDVF9DRUssCisJCXRydWUKKwl9 LAorCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIiwKKwkJQ29sdW1uRW5jS2V5 RGF0YVJlbGF0aW9uSWQsCisJCUNvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLAorCQlDRUtE QVRBT0lELAorCQktMSwKKwkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJSW52YWxp ZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlkQXR0ck51bWJl ciwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCS0xLAorCQlmYWxzZQorCX0sCisJeworCQki Y29sdW1uIG1hc3RlciBrZXkiLAorCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLAorCQlD b2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLAorCQlDTUtPSUQsCisJCUNNS05BTUUsCisJCUFu dW1fcGdfY29sbWFzdGVya2V5X29pZCwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFt ZSwKKwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUFudW1fcGdfY29sbWFzdGVya2V5X2Nta293 bmVyLAorCQlJbnZhbGlkQXR0ck51bWJlciwKKwkJT0JKRUNUX0NNSywKKwkJdHJ1ZQorCX0s CiAJewogCQkiY29uc3RyYWludCIsCiAJCUNvbnN0cmFpbnRSZWxhdGlvbklkLApAQCAtNzIz LDYgKzc2OCwxOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsK IAkJImNvbGxhdGlvbiIsIE9CSkVDVF9DT0xMQVRJT04KIAl9LAorCS8qIE9DTEFTU19DRUsg Ki8KKwl7CisJCSJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiLCBPQkpFQ1RfQ0VLCisJfSwKKwkv KiBPQ0xBU1NfQ0VLREFUQSAqLworCXsKKwkJImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRh IiwgT0JKRUNUX0NFS0RBVEEKKwl9LAorCS8qIE9DTEFTU19DTUsgKi8KKwl7CisJCSJjb2x1 bW4gbWFzdGVyIGtleSIsIE9CSkVDVF9DTUsKKwl9LAogCS8qIE9DTEFTU19DT05TVFJBSU5U ICovCiAJewogCQkidGFibGUgY29uc3RyYWludCIsIE9CSkVDVF9UQUJDT05TVFJBSU5UCkBA IC0xMDI5LDYgKzEwODYsOCBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0 eXBlLCBOb2RlICpvYmplY3QsCiAJCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJ CX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWNhc2UgT0JKRUNUX0NN SzoKIAkJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgogCQkJY2FzZSBPQkpFQ1RfRVhURU5TSU9O OgogCQkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKQEAgLTExMDgsNiArMTE2NywyMSBAQCBn ZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QsCiAJ CQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNh c2UgT0JKRUNUX0NFS0RBVEE6CisJCQkJeworCQkJCQljaGFyCSAgICpjZWtuYW1lID0gc3Ry VmFsKGxpbml0aWFsKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpKTsKKwkJCQkJY2hhcgkgICAq Y21rbmFtZSA9IHN0clZhbChsc2Vjb25kKGNhc3ROb2RlKExpc3QsIG9iamVjdCkpKTsKKwkJ CQkJT2lkCQkJY2VraWQ7CisJCQkJCU9pZAkJCWNta2lkOworCisJCQkJCWNla2lkID0gZ2V0 X2Nla19vaWQoY2VrbmFtZSwgbWlzc2luZ19vayk7CisJCQkJCWNta2lkID0gZ2V0X2Nta19v aWQoY21rbmFtZSwgbWlzc2luZ19vayk7CisKKwkJCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29s dW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQ7CisJCQkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRf Y2VrZGF0YV9vaWQoY2VraWQsIGNta2lkLCBtaXNzaW5nX29rKTsKKwkJCQkJYWRkcmVzcy5v YmplY3RTdWJJZCA9IDA7CisJCQkJfQorCQkJCWJyZWFrOwogCQkJY2FzZSBPQkpFQ1RfVFJB TlNGT1JNOgogCQkJCXsKIAkJCQkJVHlwZU5hbWUgICAqdHlwZW5hbWUgPSBsaW5pdGlhbF9u b2RlKFR5cGVOYW1lLCBjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKQEAgLTEyOTMsNiArMTM2 NywxNiBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfdW5xdWFsaWZpZWQoT2JqZWN0VHlwZSBvYmp0 eXBlLAogCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9hbV9vaWQobmFtZSwgbWlzc2luZ19v ayk7CiAJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCWJyZWFrOworCQljYXNlIE9C SkVDVF9DRUs6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1bW5FbmNLZXlSZWxhdGlvbklk OworCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jZWtfb2lkKG5hbWUsIG1pc3Npbmdfb2sp OworCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfQ01LOgorCQkJYWRkcmVzcy5jbGFzc0lkID0gQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25J ZDsKKwkJCWFkZHJlc3Mub2JqZWN0SWQgPSBnZXRfY21rX29pZChuYW1lLCBtaXNzaW5nX29r KTsKKwkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOworCQkJYnJlYWs7CiAJCWNhc2UgT0JK RUNUX0RBVEFCQVNFOgogCQkJYWRkcmVzcy5jbGFzc0lkID0gRGF0YWJhc2VSZWxhdGlvbklk OwogCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9kYXRhYmFzZV9vaWQobmFtZSwgbWlzc2lu Z19vayk7CkBAIC0yMjUzLDYgKzIzMzcsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdf RlVOQ1RJT05fQVJHUykKIAkgKi8KIAlzd2l0Y2ggKHR5cGUpCiAJeworCQljYXNlIE9CSkVD VF9DRUtEQVRBOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNh c2UgT0JKRUNUX1VTRVJfTUFQUElORzoKIAkJCWlmIChsaXN0X2xlbmd0aChuYW1lKSAhPSAx KQpAQCAtMjMyNyw2ICsyNDEyLDggQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNU SU9OX0FSR1MpCiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQlj YXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2Ug T0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCWNhc2UgT0JKRUNUX0VW RU5UX1RSSUdHRVI6CiAJCWNhc2UgT0JKRUNUX0VYVEVOU0lPTjoKQEAgLTIzNTcsNiArMjQ0 NCw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNl IE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbGlzdF9t YWtlMihuYW1lLCBsaW5pdGlhbChhcmdzKSk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf Q0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQljYXNl IE9CSkVDVF9VU0VSX01BUFBJTkc6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbGlzdF9tYWtl MihsaW5pdGlhbChuYW1lKSwgbGluaXRpYWwoYXJncykpOwpAQCAtMjQ4MCw2ICsyNTY4LDgg QEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5 cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVD S19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZygoY2Fz dE5vZGUoT2JqZWN0V2l0aEFyZ3MsIG9iamVjdCkpLT5vYmpuYW1lKSk7CiAJCQlicmVhazsK KwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNU X0RBVEFCQVNFOgogCQljYXNlIE9CSkVDVF9FVkVOVF9UUklHR0VSOgogCQljYXNlIE9CSkVD VF9FWFRFTlNJT046CkBAIC0yNTcyLDYgKzI2NjIsNyBAQCBjaGVja19vYmplY3Rfb3duZXJz aGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUgb2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRy ZXNzLAogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FNT1A6CiAJCWNhc2UgT0JKRUNUX0FN UFJPQzoKKwkJY2FzZSBPQkpFQ1RfQ0VLREFUQToKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoK IAkJY2FzZSBPQkpFQ1RfREVGQUNMOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1F U1BBQ0U6CkBAIC0zMDM3LDYgKzMxMjgsNDggQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29u c3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7 CiAJCQl9CiAKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJeworCQkJCWNoYXIJICAgKmNla25h bWUgPSBnZXRfY2VrX25hbWUob2JqZWN0LT5vYmplY3RJZCwgbWlzc2luZ19vayk7CisKKwkJ CQlpZiAoY2VrbmFtZSkKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgJXMiKSwgY2VrbmFtZSk7CisJCQkJYnJlYWs7CisJCQl9CisK KwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJ CUZvcm1fcGdfY29sZW5ja2V5ZGF0YSBjZWtkYXRhOworCisJCQkJdHVwID0gU2VhcmNoU3lz Q2FjaGUxKENFS0RBVEFPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkp OworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFt aXNzaW5nX29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmpl Y3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKworCQkJCWNla2RhdGEgPSAoRm9ybV9wZ19j b2xlbmNrZXlkYXRhKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwgXygiY29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIGRhdGEgZm9yIG1hc3RlciBr ZXkgJXMiKSwKKwkJCQkJCQkJIGdldF9jZWtfbmFtZShjZWtkYXRhLT5ja2RjZWtpZCwgZmFs c2UpLAorCQkJCQkJCQkgZ2V0X2Nta19uYW1lKGNla2RhdGEtPmNrZGNta2lkLCBmYWxzZSkp OworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJ Y2FzZSBPQ0xBU1NfQ01LOgorCQkJeworCQkJCWNoYXIJICAgKmNta25hbWUgPSBnZXRfY21r X25hbWUob2JqZWN0LT5vYmplY3RJZCwgbWlzc2luZ19vayk7CisKKwkJCQlpZiAoY21rbmFt ZSkKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gbWFzdGVyIGtl eSAlcyIpLCBjbWtuYW1lKTsKKwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIE9DTEFTU19D T05TVFJBSU5UOgogCQkJewogCQkJCUhlYXBUdXBsZQljb25UdXA7CkBAIC00NDYxLDYgKzQ1 OTQsMTggQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3Mg Km9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmZmVyLCAiY29sbGF0aW9uIik7CiAJCQlicmVhazsKIAorCQljYXNlIE9DTEFTU19DRUs6 CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gZW5jcnlwdGlv biBrZXkiKTsKKwkJCWJyZWFrOworCisJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0 YSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ01LOgorCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZygmYnVmZmVyLCAiY29sdW1uIG1hc3RlciBrZXkiKTsKKwkJCWJyZWFrOwor CiAJCWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQlnZXRDb25zdHJhaW50VHlwZURlc2Ny aXB0aW9uKCZidWZmZXIsIG9iamVjdC0+b2JqZWN0SWQsCiAJCQkJCQkJCQkJIG1pc3Npbmdf b2spOwpAQCAtNDkyNiw2ICs1MDcxLDc0IEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29u c3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2Ug T0NMQVNTX0NFSzoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfY29s ZW5ja2V5IGZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoQ0VLT0lELCBPYmpl Y3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwKSkKKwkJCQl7CisJCQkJCWlmICghbWlzc2luZ19vaykKKwkJCQkJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkg JXUiLAorCQkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQor CQkJCWZvcm0gPSAoRm9ybV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXApOworCQkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCSAgIHF1b3RlX2lkZW50 aWZpZXIoTmFtZVN0cihmb3JtLT5jZWtuYW1lKSkpOworCQkJCWlmIChvYmpuYW1lKQorCQkJ CQkqb2JqbmFtZSA9IGxpc3RfbWFrZTEocHN0cmR1cChOYW1lU3RyKGZvcm0tPmNla25hbWUp KSk7CisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJ Y2FzZSBPQ0xBU1NfQ0VLREFUQToKKwkJCXsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZv cm1fcGdfY29sZW5ja2V5ZGF0YSBmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUx KENFS0RBVEFPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJ CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5n X29rKQorCQkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVt biBlbmNyeXB0aW9uIGtleSBkYXRhICV1IiwKKwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7 CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlmb3JtID0gKEZvcm1fcGdfY29sZW5ja2V5ZGF0 YSkgR0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJ CQkJCQkgIm9mICVzIGZvciAlcyIsIGdldF9jZWtfbmFtZShmb3JtLT5ja2RjZWtpZCwgZmFs c2UpLCBnZXRfY21rX25hbWUoZm9ybS0+Y2tkY21raWQsIGZhbHNlKSk7CisJCQkJaWYgKG9i am5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShnZXRfY2VrX25hbWUoZm9ybS0+ Y2tkY2VraWQsIGZhbHNlKSk7CisJCQkJaWYgKG9iamFyZ3MpCisJCQkJCSpvYmphcmdzID0g bGlzdF9tYWtlMShnZXRfY21rX25hbWUoZm9ybS0+Y2tkY21raWQsIGZhbHNlKSk7CisJCQkJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKKwkJY2FzZSBPQ0xB U1NfQ01LOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ19jb2xtYXN0 ZXJrZXkgZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVj dElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJCQkJZWxvZyhF UlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwK KwkJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisJCQkJCWJyZWFrOworCQkJCX0KKwkJCQlm b3JtID0gKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwKTsKKwkJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCisJCQkJCQkJCQkgICBxdW90ZV9pZGVudGlm aWVyKE5hbWVTdHIoZm9ybS0+Y21rbmFtZSkpKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJ Km9iam5hbWUgPSBsaXN0X21ha2UxKHBzdHJkdXAoTmFtZVN0cihmb3JtLT5jbWtuYW1lKSkp OworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNh c2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUKaW5kZXggNDhmNzM0OGY5MWM3Li42OWY2MTc1YzYwZTAgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC0xOSw2ICsxOSw3IEBAIE9CSlMgPSBcCiAJYW5h bHl6ZS5vIFwKIAlhc3luYy5vIFwKIAljbHVzdGVyLm8gXAorCWNvbGVuY2NtZHMubyBcCiAJ Y29sbGF0aW9uY21kcy5vIFwKIAljb21tZW50Lm8gXAogCWNvbnN0cmFpbnQubyBcCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvYWx0ZXIuYwppbmRleCAxMGI2ZmUxOWEyYzMuLmRiMWFkYTM5MDljOSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9hbHRlci5jCkBAIC0yMiw3ICsyMiw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9p bmRleGluZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNp b24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyLmgiCkBAIC04MCw2ICs4MiwxMiBA QCByZXBvcnRfbmFtZV9jb25mbGljdChPaWQgY2xhc3NJZCwgY29uc3QgY2hhciAqbmFtZSkK IAogCXN3aXRjaCAoY2xhc3NJZCkKIAl7CisJCWNhc2UgQ29sdW1uRW5jS2V5UmVsYXRpb25J ZDoKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwi JXNcIiBhbHJlYWR5IGV4aXN0cyIpOworCQkJYnJlYWs7CisJCWNhc2UgQ29sdW1uTWFzdGVy S2V5UmVsYXRpb25JZDoKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgiY29sdW1uIG1hc3Rl ciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CisJCQlicmVhazsKIAkJY2FzZSBFdmVu dFRyaWdnZXJSZWxhdGlvbklkOgogCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJldmVudCB0 cmlnZ2VyIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyIpOwogCQkJYnJlYWs7CkBAIC0zNzUsNiAr MzgzLDggQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJCXJldHVybiBS ZW5hbWVUeXBlKHN0bXQpOwogCiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKKwkJY2FzZSBP QkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElP TjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfRVZFTlRfVFJJ R0dFUjoKQEAgLTYzOSw2ICs2NDksOSBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lk IGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAkJCWJyZWFrOwogCiAJCWNhc2Ug T0NMQVNTX0NBU1Q6CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFU QToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgogCQlj YXNlIE9DTEFTU19ERUZBVUxUOgogCQljYXNlIE9DTEFTU19MQU5HVUFHRToKQEAgLTg3Miw2 ICs4ODUsOCBAQCBFeGVjQWx0ZXJPd25lclN0bXQoQWx0ZXJPd25lclN0bXQgKnN0bXQpCiAK IAkJCS8qIEdlbmVyaWMgY2FzZXMgKi8KIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgorCQlj YXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09M TEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9GVU5D VElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmQ4NzNjODYwNzVhYwotLS0gL2Rldi9udWxsCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbGVuY2NtZHMuYwpAQCAtMCwwICsxLDQyMyBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogY29sZW5jY21kcy5jCisgKgkgIGNvbHVt bi1lbmNyeXB0aW9uLXJlbGF0ZWQgY29tbWFuZHMgc3VwcG9ydCBjb2RlCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNB VElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKKyAqCisgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNs dWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3RhYmxlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9jYXRhbG9nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBl bmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNh dGFsb2cvb2JqZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXku aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJh c2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9jb2xlbmNjbWRzLmgiCisjaW5jbHVkZSAiY29t bWFuZHMvZGJjb21tYW5kcy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5j bHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3Rh dGljIHZvaWQKK3BhcnNlX2Nla19hdHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlz dCAqZGVmaW5pdGlvbiwgT2lkICpjbWtvaWRfcCwgaW50MTYgKmFsZ19wLCBjaGFyICoqZW5j dmFsX3ApCit7CisJTGlzdENlbGwgICAqbGM7CisJRGVmRWxlbSAgICAqY21rRWwgPSBOVUxM OworCURlZkVsZW0gICAgKmFsZ0VsID0gTlVMTDsKKwlEZWZFbGVtICAgICplbmN2YWxFbCA9 IE5VTEw7CisJT2lkCQkJY21rb2lkID0gSW52YWxpZE9pZDsKKwlpbnQxNgkJYWxnOworCWNo YXIJICAgKmVuY3ZhbCA9IE5VTEw7CisKKwlBc3NlcnQoY21rb2lkX3ApOworCisJZm9yZWFj aChsYywgZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25v ZGUoRGVmRWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNt cChkZWZlbC0+ZGVmbmFtZSwgImNvbHVtbl9tYXN0ZXJfa2V5IikgPT0gMCkKKwkJCWRlZmVs cCA9ICZjbWtFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiYWxnb3Jp dGhtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZhbGdFbDsKKwkJZWxzZSBpZiAoc3RyY21wKGRl ZmVsLT5kZWZuYW1lLCAiZW5jcnlwdGVkX3ZhbHVlIikgPT0gMCkKKwkJCWRlZmVscCA9ICZl bmN2YWxFbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0 aW9uIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5vdCByZWNvZ25pemVkIiwKKwkJCQkJCQlkZWZl bC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBkZWZlbC0+ bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpkZWZlbHAgIT0gTlVMTCkKKwkJCWVycm9yQ29u ZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOworCQkqZGVmZWxwID0gZGVmZWw7CisJ fQorCisJaWYgKGNta0VsKQorCXsKKwkJY2hhcgkgICAqdmFsID0gZGVmR2V0U3RyaW5nKGNt a0VsKTsKKworCQljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19j b2xtYXN0ZXJrZXlfb2lkLCBQb2ludGVyR2V0RGF0dW0odmFsKSk7CisJCWlmICghY21rb2lk KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9P QkpFQ1QpLAorCQkJCQllcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIHZhbCkpOworCX0KKwllbHNlCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBc IiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJImNvbHVtbl9tYXN0ZXJfa2V5Iikp KTsKKworCWlmIChhbGdFbCkKKwl7CisJCWNoYXIJICAgKnZhbCA9IGRlZkdldFN0cmluZyhh bGdFbCk7CisKKwkJaWYgKCFhbGdfcCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiYXR0cmlidXRlIFwi JXNcIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJhbGdvcml0aG0iKSkpOwor CisJCWlmIChzdHJjbXAodmFsLCAiUlNBRVNfT0FFUF9TSEFfMSIpID09IDApCisJCQlhbGcg PSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKwkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIlJT QUVTX09BRVBfU0hBXzI1NiIpID09IDApCisJCQlhbGcgPSBQR19DTUtfUlNBRVNfT0FFUF9T SEFfMjU2OworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQllcnJtc2coInVucmVjb2duaXpl ZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwl9CisJZWxzZQorCQlhbGcg PSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKworCWlmIChlbmN2YWxFbCkKKwl7CisJCWlm ICghZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBu b3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5jcnlwdGVkX3ZhbHVlIikpKTsKKworCQll bmN2YWwgPSBkZWZHZXRTdHJpbmcoZW5jdmFsRWwpOworCX0KKwllbHNlCisJeworCQlpZiAo ZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBz cGVjaWZpZWQiLAorCQkJCQkJCSJlbmNyeXB0ZWRfdmFsdWUiKSkpOworCX0KKworCSpjbWtv aWRfcCA9IGNta29pZDsKKwlpZiAoYWxnX3ApCisJCSphbGdfcCA9IGFsZzsKKwlpZiAoZW5j dmFsX3ApCisJCSplbmN2YWxfcCA9IGVuY3ZhbDsKK30KKworc3RhdGljIHZvaWQKK2luc2Vy dF9jZWtkYXRhX3JlY29yZChPaWQgY2Vrb2lkLCBPaWQgY21rb2lkLCBpbnQxNiBhbGcsIGNo YXIgKmVuY3ZhbCkKK3sKKwlPaWQJCQljZWtkYXRhb2lkOworCVJlbGF0aW9uCXJlbDsKKwlE YXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0gezB9OworCWJvb2wJCW51 bGxzW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisJ T2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2JqZWN0QWRkcmVzcyBvdGhlcjsKKworCXJlbCA9 IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJY2VrZGF0YW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVtbkVu Y0tleURhdGFPaWRJbmRleElkLCBBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkKTsKKwl2YWx1 ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShj ZWtkYXRhb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGNla2lkIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKGNla29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5j a2V5ZGF0YV9ja2RjbWtpZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpOworCXZh bHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY21rYWxnIC0gMV0gPSBJbnQxNkdldERh dHVtKGFsZyk7CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RlbmN2YWwgLSAx XSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoYnl0ZWFpbiwgQ1N0cmluZ0dldERhdHVtKGVuY3Zh bCkpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwg dmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFw X2ZyZWV0dXBsZSh0dXApOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIENvbHVtbkVu Y0tleURhdGFSZWxhdGlvbklkLCBjZWtkYXRhb2lkKTsKKworCS8qIGRlcGVuZGVuY3kgY2Vr ZGF0YSAtPiBjZWsgKi8KKwlPYmplY3RBZGRyZXNzU2V0KG90aGVyLCBDb2x1bW5FbmNLZXlS ZWxhdGlvbklkLCBjZWtvaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmb3Ro ZXIsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkvKiBkZXBlbmRlbmN5IGNla2RhdGEgLT4gY21r ICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwgQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25J ZCwgY21rb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJm90aGVyLCBERVBF TkRFTkNZX05PUk1BTCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7Cit9CisKK09i amVjdEFkZHJlc3MKK0NyZWF0ZUNFSyhQYXJzZVN0YXRlICpwc3RhdGUsIERlZmluZVN0bXQg KnN0bXQpCit7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlSZWxhdGlvbglyZWw7CisJT2Jq ZWN0QWRkcmVzcyBteXNlbGY7CisJT2lkCQkJY2Vrb2lkOworCUxpc3RDZWxsICAgKmxjOwor CURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sZW5ja2V5XSA9IHswfTsKKwlib29sCQludWxs c1tOYXR0c19wZ19jb2xlbmNrZXldID0gezB9OworCUhlYXBUdXBsZQl0dXA7CisKKwlhY2xy ZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soRGF0YWJhc2VSZWxhdGlvbklkLCBNeURhdGFiYXNl SWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENI RUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9EQVRBQkFTRSwK KwkJCQkJICAgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CisKKwlyZWwgPSB0 YWJsZV9vcGVuKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOwor CisJY2Vrb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENFS05BTUUsIEFudW1fcGdfY29sZW5ja2V5 X29pZCwKKwkJCQkJCQkgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChzdG10LT5kZWZu YW1lcykpKSk7CisJaWYgKE9pZElzVmFsaWQoY2Vrb2lkKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCSBlcnJtc2co ImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJ c3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKSk7CisKKwljZWtvaWQgPSBHZXROZXdP aWRXaXRoSW5kZXgocmVsLCBDb2x1bW5FbmNLZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbGVu Y2tleV9vaWQpOworCisJZm9yZWFjaCAobGMsIHN0bXQtPmRlZmluaXRpb24pCisJeworCQlM aXN0CSAgICpkZWZpbml0aW9uID0gbGZpcnN0X25vZGUoTGlzdCwgbGMpOworCQlPaWQJCQlj bWtvaWQgPSAwOworCQlpbnQxNgkJYWxnOworCQljaGFyCSAgICplbmN2YWw7CisKKwkJcGFy c2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBkZWZpbml0aW9uLCAmY21rb2lkLCAmYWxnLCAm ZW5jdmFsKTsKKworCQkvKiBwZ19jb2xlbmNrZXlkYXRhICovCisJCWluc2VydF9jZWtkYXRh X3JlY29yZChjZWtvaWQsIGNta29pZCwgYWxnLCBlbmN2YWwpOworCX0KKworCS8qIHBnX2Nv bGVuY2tleSAqLworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9vaWQgLSAxXSA9IE9iamVj dElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFt ZSAtIDFdID0KKwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1 bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3BnX2Nv bGVuY2tleV9jZWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRVc2VySWQoKSk7 CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1 ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCWhlYXBfZnJl ZXR1cGxlKHR1cCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29sdW1uRW5jS2V5 UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihDb2x1bW5F bmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIEdldFVzZXJJZCgpKTsKKworCXRhYmxlX2Nsb3Nl KHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9v ayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIDApOworCisJcmV0dXJuIG15c2Vs ZjsKK30KKworT2JqZWN0QWRkcmVzcworQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5KFBhcnNl U3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqc3RtdCkKK3sK KwlPaWQJCQljZWtvaWQ7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCisJY2Vrb2lkID0g Z2V0X2Nla19vaWQoc3RtdC0+Y2VrbmFtZSwgZmFsc2UpOworCisJaWYgKCFvYmplY3Rfb3du ZXJjaGVjayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIEdldFVzZXJJZCgpKSkK KwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfQ0VLLCBzdG10 LT5jZWtuYW1lKTsKKworCWlmIChzdG10LT5pc0Ryb3ApCisJeworCQlPaWQJCQljbWtvaWQg PSAwOworCQlPaWQJCQljZWtkYXRhb2lkOworCQlPYmplY3RBZGRyZXNzIG9iajsKKworCQlw YXJzZV9jZWtfYXR0cmlidXRlcyhwc3RhdGUsIHN0bXQtPmRlZmluaXRpb24sICZjbWtvaWQs IE5VTEwsIE5VTEwpOworCQljZWtkYXRhb2lkID0gZ2V0X2Nla2RhdGFfb2lkKGNla29pZCwg Y21rb2lkLCBmYWxzZSk7CisJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBDb2x1bW5FbmNLZXlE YXRhUmVsYXRpb25JZCwgY2VrZGF0YW9pZCk7CisJCXBlcmZvcm1EZWxldGlvbigmb2JqLCBE Uk9QX0NBU0NBREUsIDApOworCQkvLyBUT0RPOiBwcmV2ZW50IGRlbGV0aW5nIGFsbCBkYXRh IGVudHJpZXMgZm9yIGEga2V5PworCX0KKwllbHNlCisJeworCQlPaWQJCQljbWtvaWQgPSAw OworCQlpbnQxNgkJYWxnOworCQljaGFyCSAgICplbmN2YWw7CisKKwkJcGFyc2VfY2VrX2F0 dHJpYnV0ZXMocHN0YXRlLCBzdG10LT5kZWZpbml0aW9uLCAmY21rb2lkLCAmYWxnLCAmZW5j dmFsKTsKKwkJaWYgKGdldF9jZWtkYXRhX29pZChjZWtvaWQsIGNta29pZCwgdHJ1ZSkpCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVD VCksCisJCQkJCWVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBhbHJlYWR5 IGhhcyBkYXRhIGZvciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQkgICBzdG10LT5jZWtu YW1lLCBnZXRfY21rX25hbWUoY21rb2lkLCBmYWxzZSkpKTsKKwkJaW5zZXJ0X2Nla2RhdGFf cmVjb3JkKGNla29pZCwgY21rb2lkLCBhbGcsIGVuY3ZhbCk7CisJfQorCisJSW52b2tlT2Jq ZWN0UG9zdEFsdGVySG9vayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIDApOwor CU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vr b2lkKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCitPYmplY3RBZGRyZXNzCitDcmVhdGVD TUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KQoreworCUFjbFJlc3Vs dAlhY2xyZXN1bHQ7CisJUmVsYXRpb24JcmVsOworCU9iamVjdEFkZHJlc3MgbXlzZWxmOwor CU9pZAkJCWNta29pZDsKKwlMaXN0Q2VsbCAgICpsYzsKKwlEZWZFbGVtICAgICpyZWFsbUVs ID0gTlVMTDsKKwljaGFyCSAgICpyZWFsbTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2Nv bG1hc3RlcmtleV0gPSB7MH07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfY29sbWFzdGVya2V5 XSA9IHswfTsKKwlIZWFwVHVwbGUJdHVwOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrKERhdGFiYXNlUmVsYXRpb25JZCwgTXlEYXRhYmFzZUlkLCBHZXRVc2VySWQoKSwgQUNM X0NSRUFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tf ZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfREFUQUJBU0UsCisJCQkJCSAgIGdldF9kYXRhYmFz ZV9uYW1lKE15RGF0YWJhc2VJZCkpOworCisJcmVsID0gdGFibGVfb3BlbihDb2x1bW5NYXN0 ZXJLZXlSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWNta29pZCA9IEdldFN5 c0NhY2hlT2lkMShDTUtOQU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsCisJCQkJCQkJ IENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCWlm IChPaWRJc1ZhbGlkKGNta29pZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gbWFzdGVy IGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJc3RyVmFsKGxsYXN0KHN0bXQt PmRlZm5hbWVzKSkpKSk7CisKKwlmb3JlYWNoKGxjLCBzdG10LT5kZWZpbml0aW9uKQorCXsK KwkJRGVmRWxlbSAgICAqZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURl ZkVsZW0gICAqKmRlZmVscDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAicmVh bG0iKSA9PSAwKQorCQkJZGVmZWxwID0gJnJlYWxtRWw7CisJCWVsc2UKKwkJeworCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJ CQkgZXJybXNnKCJjb2x1bW4gbWFzdGVyIGtleSBhdHRyaWJ1dGUgXCIlc1wiIG5vdCByZWNv Z25pemVkIiwKKwkJCQkJCQlkZWZlbC0+ZGVmbmFtZSksCisJCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBkZWZlbC0+bG9jYXRpb24pKSk7CisJCX0KKwkJaWYgKCpkZWZlbHAg IT0gTlVMTCkKKwkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVsLCBwc3RhdGUpOwor CQkqZGVmZWxwID0gZGVmZWw7CisJfQorCisJaWYgKHJlYWxtRWwpCisJCXJlYWxtID0gZGVm R2V0U3RyaW5nKHJlYWxtRWwpOworCWVsc2UKKwkJcmVhbG0gPSAiIjsKKworCWNta29pZCA9 IEdldE5ld09pZFdpdGhJbmRleChyZWwsIENvbHVtbk1hc3RlcktleU9pZEluZGV4SWQsIEFu dW1fcGdfY29sbWFzdGVya2V5X29pZCk7CisJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5 X29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShjbWtvaWQpOworCXZhbHVlc1tBbnVtX3Bn X2NvbG1hc3RlcmtleV9jbWtuYW1lIC0gMV0gPQorCQlEaXJlY3RGdW5jdGlvbkNhbGwxKG5h bWVpbiwgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSk7 CisJdmFsdWVzW0FudW1fcGdfY29sbWFzdGVya2V5X2Nta293bmVyIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKEdldFVzZXJJZCgpKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlf Y21rcmVhbG0gLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocmVhbG0pOworCisJdHVwID0g aGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7 CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXAp OworCisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25J ZCwgY21rb2lkLCBHZXRVc2VySWQoKSk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwg Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkKTsKKworCXRhYmxlX2Nsb3NlKHJl bCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VPYmplY3RQb3N0Q3JlYXRlSG9vayhD b2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJcmV0dXJuIG15c2Vs ZjsKK30KKworT2JqZWN0QWRkcmVzcworQWx0ZXJDb2x1bW5NYXN0ZXJLZXkoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlckNvbHVtbk1hc3RlcktleVN0bXQgKnN0bXQpCit7CisJT2lkCQkJ Y21rb2lkOworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCUhlYXBUdXBsZQlu ZXd0dXA7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCUxpc3RDZWxsICAgKmxjOworCURl ZkVsZW0gICAgKnJlYWxtRWwgPSBOVUxMOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29s bWFzdGVya2V5XSA9IHswfTsKKwlib29sCQludWxsc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXld ID0gezB9OworCWJvb2wJCXJlcGxhY2VzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07 CisKKwljbWtvaWQgPSBnZXRfY21rX29pZChzdG10LT5jbWtuYW1lLCBmYWxzZSk7CisKKwly ZWwgPSB0YWJsZV9vcGVuKENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXRE YXR1bShjbWtvaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9n KEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIG1hc3RlciBrZXkgJXUi LCBjbWtvaWQpOworCisJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhDb2x1bW5NYXN0ZXJLZXlS ZWxhdGlvbklkLCBjbWtvaWQsIEdldFVzZXJJZCgpKSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNM Q0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfQ01LLCBzdG10LT5jbWtuYW1lKTsKKworCWZvcmVh Y2gobGMsIHN0bXQtPmRlZmluaXRpb24pCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IGxm aXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKwkJRGVmRWxlbSAgICoqZGVmZWxwOworCisJCWlm IChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJyZWFsbSIpID09IDApCisJCQlkZWZlbHAgPSAm cmVhbG1FbDsKKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIg a2V5IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6ZWQiLAorCQkJCQkJCWRlZmVsLT5k ZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGRlZmVsLT5sb2Nh dGlvbikpKTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBOVUxMKQorCQkJZXJyb3JDb25mbGlj dGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpkZWZlbHAgPSBkZWZlbDsKKwl9CisK KwlpZiAocmVhbG1FbCkKKwl7CisJCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWty ZWFsbSAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShkZWZHZXRTdHJpbmcocmVhbG1FbCkp OworCQlyZXBsYWNlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtyZWFsbSAtIDFdID0gdHJ1 ZTsKKwl9CisKKwluZXd0dXAgPSBoZWFwX21vZGlmeV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0 RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywgcmVwbGFjZXMpOworCisJQ2F0YWxvZ1R1cGxl VXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCBuZXd0dXApOworCisJSW52b2tlT2JqZWN0UG9z dEFsdGVySG9vayhDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBjbWtvaWQsIDApOworCisJ T2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCBj bWtvaWQpOworCisJaGVhcF9mcmVldHVwbGUobmV3dHVwKTsKKwlSZWxlYXNlU3lzQ2FjaGUo dHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1 cm4gYWRkcmVzczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IGRiOTA2ZjUz MGVjMC4uY2NiMzY5YjFhZjZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k cm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTI3 Niw2ICsyNzYsMTQgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0 eXBlLCBOb2RlICpvYmplY3QpCiAJCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5v ZGUoTGlzdCwgb2JqZWN0KSk7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VL OgorCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wi IGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9IHN0clZhbChvYmplY3Qp OworCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCW1zZyA9IGdldHRleHRfbm9v cCgiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIp OworCQkJbmFtZSA9IHN0clZhbChvYmplY3QpOworCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNU X0NPTlZFUlNJT046CiAJCQlpZiAoIXNjaGVtYV9kb2VzX25vdF9leGlzdF9za2lwcGluZyhj YXN0Tm9kZShMaXN0LCBvYmplY3QpLCAmbXNnLCAmbmFtZSkpCiAJCQl7CkBAIC01MDMsNiAr NTExLDcgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0eXBlLCBO b2RlICpvYmplY3QpCiAJCWNhc2UgT0JKRUNUX0FNT1A6CiAJCWNhc2UgT0JKRUNUX0FNUFJP QzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgorCQljYXNlIE9CSkVDVF9DRUtEQVRBOgog CQljYXNlIE9CSkVDVF9ERUZBVUxUOgogCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCWNhc2Ug T0JKRUNUX0RPTUNPTlNUUkFJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2Vy LmMKaW5kZXggYTNiZGM1ZGIwNzM1Li5jMTA3MzJhNTZlZDAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTk1MSw2ICs5NTEsOSBAQCBFdmVudFRyaWdnZXJT dXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUpCiAJCWNhc2UgT0JKRUNUX0FN UFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgor CQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JK RUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJ T046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CkBAIC0xMDI3LDYgKzEwMzAsOSBAQCBF dmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVjdENsYXNzIG9iamNsYXNzKQog CQljYXNlIE9DTEFTU19UWVBFOgogCQljYXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFT U19DT0xMQVRJT046CisJCWNhc2UgT0NMQVNTX0NFSzoKKwkJY2FzZSBPQ0xBU1NfQ0VLREFU QToKKwkJY2FzZSBPQ0xBU1NfQ01LOgogCQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgogCQlj YXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQljYXNlIE9DTEFTU19ERUZBVUxUOgpAQCAtMjA1 Niw2ICsyMDYyLDkgQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0 eXBlKQogCQljYXNlIE9CSkVDVF9BTVBST0M6CiAJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToK IAkJY2FzZSBPQkpFQ1RfQ0FTVDoKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVD VF9DRUtEQVRBOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0NPTExBVElP TjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQkpFQ1RfREVGQVVMVDoK QEAgLTIxMzksNiArMjE0OCw5IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmpl Y3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1Rf QVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJ CWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpF Q1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVD VF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVp bGQgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA5YjM1MGQwMjVm ZmMuLjZlMjZlMTU4YzQ0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVz b24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTUs NiArNSw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ2FuYWx5emUuYycsCiAg ICdhc3luYy5jJywKICAgJ2NsdXN0ZXIuYycsCisgICdjb2xlbmNjbWRzLmMnLAogICAnY29s bGF0aW9uY21kcy5jJywKICAgJ2NvbW1lbnQuYycsCiAgICdjb25zdHJhaW50LmMnLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IDllMjk1ODRkOTNlZi4uZjM0YzVmZjI1YTUzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC01MCw3ICs1MCw2IEBAIHN0YXRpYyB2b2lk IEluaXRRdWVyeUhhc2hUYWJsZSh2b2lkKTsKIHN0YXRpYyBQYXJhbUxpc3RJbmZvIEV2YWx1 YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCVByZXBhcmVkU3RhdGVt ZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQkJCQkJCQkJRVN0YXRlICplc3RhdGUpOwot c3RhdGljIERhdHVtIGJ1aWxkX3JlZ3R5cGVfYXJyYXkoT2lkICpwYXJhbV90eXBlcywgaW50 IG51bV9wYXJhbXMpOwogCiAvKgogICogSW1wbGVtZW50cyB0aGUgJ1BSRVBBUkUnIHV0aWxp dHkgc3RhdGVtZW50LgpAQCAtNjIsNiArNjEsOCBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBQcmVwYXJlU3RtdCAqc3RtdCwKIAlSYXdTdG10ICAgICpyYXdzdG10Owog CUNhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2U7CiAJT2lkCQkgICAqYXJndHlwZXMgPSBO VUxMOworCU9pZAkJICAgKmFyZ29yaWd0YmxzID0gTlVMTDsKKwlBdHRyTnVtYmVyICphcmdv cmlnY29scyA9IE5VTEw7CiAJaW50CQkJbmFyZ3M7CiAJTGlzdAkgICAqcXVlcnlfbGlzdDsK IApAQCAtMTA4LDYgKzEwOSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpwc3RhdGUs IFByZXBhcmVTdG10ICpzdG10LAogCiAJCQlhcmd0eXBlc1tpKytdID0gdG9pZDsKIAkJfQor CisJCWFyZ29yaWd0YmxzID0gcGFsbG9jMF9hcnJheShPaWQsIG5hcmdzKTsKKwkJYXJnb3Jp Z2NvbHMgPSBwYWxsb2MwX2FycmF5KEF0dHJOdW1iZXIsIG5hcmdzKTsKIAl9CiAKIAkvKgpA QCAtMTE3LDcgKzEyMSw5IEBAIFByZXBhcmVRdWVyeShQYXJzZVN0YXRlICpwc3RhdGUsIFBy ZXBhcmVTdG10ICpzdG10LAogCSAqIFJld3JpdGUgdGhlIHF1ZXJ5LiBUaGUgcmVzdWx0IGNv dWxkIGJlIDAsIDEsIG9yIG1hbnkgcXVlcmllcy4KIAkgKi8KIAlxdWVyeV9saXN0ID0gcGdf YW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMocmF3c3RtdCwgcHN0YXRlLT5wX3NvdXJj ZXRleHQsCi0JCQkJCQkJCQkJCQkgICZhcmd0eXBlcywgJm5hcmdzLCBOVUxMKTsKKwkJCQkJ CQkJCQkJCSAgJmFyZ3R5cGVzLCAmbmFyZ3MsCisJCQkJCQkJCQkJCQkgICZhcmdvcmlndGJs cywgJmFyZ29yaWdjb2xzLAorCQkJCQkJCQkJCQkJICBOVUxMKTsKIAogCS8qIEZpbmlzaCBm aWxsaW5nIGluIHRoZSBDYWNoZWRQbGFuU291cmNlICovCiAJQ29tcGxldGVDYWNoZWRQbGFu KHBsYW5zb3VyY2UsCkBAIC0xMjUsNiArMTMxLDggQEAgUHJlcGFyZVF1ZXJ5KFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAJCQkJCSAgIE5VTEwsCiAJCQkJCSAg IGFyZ3R5cGVzLAogCQkJCQkgICBuYXJncywKKwkJCQkJICAgYXJnb3JpZ3RibHMsCisJCQkJ CSAgIGFyZ29yaWdjb2xzLAogCQkJCQkgICBOVUxMLAogCQkJCQkgICBOVUxMLAogCQkJCQkg ICBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLAkvKiBhbGxvdyBwYXJhbGxlbCBtb2RlICovCkBA IC02ODMsMzQgKzY5MSw0OSBAQCBwZ19wcmVwYXJlZF9zdGF0ZW1lbnQoUEdfRlVOQ1RJT05f QVJHUykKIAkJaGFzaF9zZXFfaW5pdCgmaGFzaF9zZXEsIHByZXBhcmVkX3F1ZXJpZXMpOwog CQl3aGlsZSAoKHByZXBfc3RtdCA9IGhhc2hfc2VxX3NlYXJjaCgmaGFzaF9zZXEpKSAhPSBO VUxMKQogCQl7CisJCQlpbnQJCQludW1fcGFyYW1zID0gcHJlcF9zdG10LT5wbGFuc291cmNl LT5udW1fcGFyYW1zOwogCQkJVHVwbGVEZXNjCXJlc3VsdF9kZXNjOwotCQkJRGF0dW0JCXZh bHVlc1s4XTsKLQkJCWJvb2wJCW51bGxzWzhdID0gezB9OworCQkJRGF0dW0JICAgKnRtcF9h cnk7CisJCQlEYXR1bQkJdmFsdWVzWzEwXTsKKwkJCWJvb2wJCW51bGxzWzEwXSA9IHswfTsK IAogCQkJcmVzdWx0X2Rlc2MgPSBwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnJlc3VsdERlc2M7 CiAKIAkJCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ocHJlcF9zdG10LT5zdG10 X25hbWUpOwogCQkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRleHREYXR1bShwcmVwX3N0bXQt PnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CiAJCQl2YWx1ZXNbMl0gPSBUaW1lc3RhbXBU ekdldERhdHVtKHByZXBfc3RtdC0+cHJlcGFyZV90aW1lKTsKLQkJCXZhbHVlc1szXSA9IGJ1 aWxkX3JlZ3R5cGVfYXJyYXkocHJlcF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV90eXBlcywK LQkJCQkJCQkJCQkJcHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fcGFyYW1zKTsKKworCQkJ dG1wX2FyeSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX3BhcmFtcyk7CisJCQlmb3IgKGlu dCBpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gT2JqZWN0 SWRHZXREYXR1bShwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnBhcmFtX3R5cGVzW2ldKTsKKwkJ CXZhbHVlc1szXSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0 bXBfYXJ5LCBudW1fcGFyYW1zLCBSRUdUWVBFT0lEKSk7CisKKwkJCXRtcF9hcnkgPSBwYWxs b2NfYXJyYXkoRGF0dW0sIG51bV9wYXJhbXMpOworCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBu dW1fcGFyYW1zOyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocHJl cF9zdG10LT5wbGFuc291cmNlLT5wYXJhbV9vcmlndGJsc1tpXSk7CisJCQl2YWx1ZXNbNF0g PSBQb2ludGVyR2V0RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVt X3BhcmFtcywgUkVHQ0xBU1NPSUQpKTsKKworCQkJdG1wX2FyeSA9IHBhbGxvY19hcnJheShE YXR1bSwgbnVtX3BhcmFtcyk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJhbXM7 IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gSW50MTZHZXREYXR1bShwcmVwX3N0bXQtPnBsYW5z b3VyY2UtPnBhcmFtX29yaWdjb2xzW2ldKTsKKwkJCXZhbHVlc1s1XSA9IFBvaW50ZXJHZXRE YXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBJTlQy T0lEKSk7CisKIAkJCWlmIChyZXN1bHRfZGVzYykKIAkJCXsKLQkJCQlPaWQJCSAgICpyZXN1 bHRfdHlwZXM7Ci0KLQkJCQlyZXN1bHRfdHlwZXMgPSBwYWxsb2NfYXJyYXkoT2lkLCByZXN1 bHRfZGVzYy0+bmF0dHMpOworCQkJCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIHJl c3VsdF9kZXNjLT5uYXR0cyk7CiAJCQkJZm9yIChpbnQgaSA9IDA7IGkgPCByZXN1bHRfZGVz Yy0+bmF0dHM7IGkrKykKLQkJCQkJcmVzdWx0X3R5cGVzW2ldID0gcmVzdWx0X2Rlc2MtPmF0 dHJzW2ldLmF0dHR5cGlkOwotCQkJCXZhbHVlc1s0XSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXko cmVzdWx0X3R5cGVzLCByZXN1bHRfZGVzYy0+bmF0dHMpOworCQkJCQl0bXBfYXJ5W2ldID0g T2JqZWN0SWRHZXREYXR1bShyZXN1bHRfZGVzYy0+YXR0cnNbaV0uYXR0dHlwaWQpOworCQkJ CXZhbHVlc1s2XSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0 bXBfYXJ5LCByZXN1bHRfZGVzYy0+bmF0dHMsIFJFR1RZUEVPSUQpKTsKIAkJCX0KIAkJCWVs c2UKIAkJCXsKIAkJCQkvKiBubyByZXN1bHQgZGVzY3JpcHRvciAoZm9yIGV4YW1wbGUsIERN TCBzdGF0ZW1lbnQpICovCi0JCQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCW51bGxzWzZdID0g dHJ1ZTsKIAkJCX0KLQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShwcmVwX3N0bXQtPmZy b21fc3FsKTsKLQkJCXZhbHVlc1s2XSA9IEludDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+ cGxhbnNvdXJjZS0+bnVtX2dlbmVyaWNfcGxhbnMpOwotCQkJdmFsdWVzWzddID0gSW50NjRH ZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fY3VzdG9tX3BsYW5zKTsK KworCQkJdmFsdWVzWzddID0gQm9vbEdldERhdHVtKHByZXBfc3RtdC0+ZnJvbV9zcWwpOwor CQkJdmFsdWVzWzhdID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNl LT5udW1fZ2VuZXJpY19wbGFucyk7CisJCQl2YWx1ZXNbOV0gPSBJbnQ2NEdldERhdHVtRmFz dChwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPm51bV9jdXN0b21fcGxhbnMpOwogCiAJCQl0dXBs ZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLAog CQkJCQkJCQkgdmFsdWVzLCBudWxscyk7CkBAIC03MTksMjQgKzc0MiwzIEBAIHBnX3ByZXBh cmVkX3N0YXRlbWVudChQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkgMDsK IH0KLQotLyoKLSAqIFRoaXMgdXRpbGl0eSBmdW5jdGlvbiB0YWtlcyBhIEMgYXJyYXkgb2Yg T2lkcywgYW5kIHJldHVybnMgYSBEYXR1bQotICogcG9pbnRpbmcgdG8gYSBvbmUtZGltZW5z aW9uYWwgUG9zdGdyZXMgYXJyYXkgb2YgcmVndHlwZXMuIEFuIGVtcHR5Ci0gKiBhcnJheSBp cyByZXR1cm5lZCBhcyBhIHplcm8tZWxlbWVudCBhcnJheSwgbm90IE5VTEwuCi0gKi8KLXN0 YXRpYyBEYXR1bQotYnVpbGRfcmVndHlwZV9hcnJheShPaWQgKnBhcmFtX3R5cGVzLCBpbnQg bnVtX3BhcmFtcykKLXsKLQlEYXR1bQkgICAqdG1wX2FyeTsKLQlBcnJheVR5cGUgICpyZXN1 bHQ7Ci0JaW50CQkJaTsKLQotCXRtcF9hcnkgPSBwYWxsb2NfYXJyYXkoRGF0dW0sIG51bV9w YXJhbXMpOwotCi0JZm9yIChpID0gMDsgaSA8IG51bV9wYXJhbXM7IGkrKykKLQkJdG1wX2Fy eVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocGFyYW1fdHlwZXNbaV0pOwotCi0JcmVzdWx0ID0g Y29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgUkVHVFlQRU9J RCk7Ci0JcmV0dXJuIFBvaW50ZXJHZXREYXR1bShyZXN1bHQpOwotfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMKaW5kZXggN2FlMTliOThiYjlhLi4wN2FkNjQ2YTUyMGMgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYwpAQCAtNjYsNiArNjYsOSBAQCBTZWNMYWJlbFN1cHBvcnRz T2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoK IAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNl IE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NFS0RBVEE6CisJCWNhc2UgT0JKRUNUX0NN SzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9O OgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpp bmRleCA4NDUyMDhkNjYyYmEuLjRjODBlODdjNGE0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlv bi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2F0dHJkZWYuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25z dHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kZXBlbmQuaCIKQEAgLTYzNyw2ICs2 MzgsNyBAQCBzdGF0aWMgTGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVmcyhSZWxhdGlv biBwYXJ0aXRpb24pOwogc3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9yZWlnbktleVJl ZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNvbXBy ZXNzaW9uKE9pZCBhdHR0eXBpZCwgY2hhciAqY29tcHJlc3Npb24pOwogc3RhdGljIGNoYXIg R2V0QXR0cmlidXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vt b2RlKTsKK3N0YXRpYyB2b2lkIEdldENvbHVtbkVuY3J5cHRpb24oY29uc3QgTGlzdCAqY29s ZGVmZW5jcnlwdGlvbiwgRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cik7CiAKIAogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpAQCAtOTM2LDYgKzkzOCw5IEBAIERlZmluZVJlbGF0aW9uKENyZWF0ZVN0bXQgKnN0 bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJCQlhdHRyLT5hdHRjb21wcmVzc2lv biA9IEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKGF0dHItPmF0dHR5cGlkLAogCQkJCQkJCQkJ CQkJCQkgICBjb2xEZWYtPmNvbXByZXNzaW9uKTsKIAorCQlpZiAoY29sRGVmLT5lbmNyeXB0 aW9uKQorCQkJR2V0Q29sdW1uRW5jcnlwdGlvbihjb2xEZWYtPmVuY3J5cHRpb24sIGF0dHIp OworCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2VfbmFtZSkKIAkJCWF0dHItPmF0dHN0b3JhZ2Ug PSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHItPmF0dHR5cGlkLCBjb2xEZWYtPnN0b3JhZ2Vf bmFtZSk7CiAJfQpAQCAtNjg3MCw2ICs2ODc1LDE0IEBAIEFURXhlY0FkZENvbHVtbihMaXN0 ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlhdHRy aWJ1dGUuYXR0aXNsb2NhbCA9IGNvbERlZi0+aXNfbG9jYWw7CiAJYXR0cmlidXRlLmF0dGlu aGNvdW50ID0gY29sRGVmLT5pbmhjb3VudDsKIAlhdHRyaWJ1dGUuYXR0Y29sbGF0aW9uID0g Y29sbE9pZDsKKwlpZiAoY29sRGVmLT5lbmNyeXB0aW9uKQorCQlHZXRDb2x1bW5FbmNyeXB0 aW9uKGNvbERlZi0+ZW5jcnlwdGlvbiwgJmF0dHJpYnV0ZSk7CisJZWxzZQorCXsKKwkJYXR0 cmlidXRlLmF0dGNlayA9IDA7CisJCWF0dHJpYnV0ZS5hdHRyZWFsdHlwaWQgPSAwOworCQlh dHRyaWJ1dGUuYXR0ZW5jYWxnID0gMDsKKwl9CiAKIAlSZWxlYXNlU3lzQ2FjaGUodHlwZVR1 cGxlKTsKIApAQCAtMTI2OTYsNiArMTI3MDksOSBAQCBBVEV4ZWNBbHRlckNvbHVtblR5cGUo QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQljYXNlIE9DTEFTU19U WVBFOgogCQkJY2FzZSBPQ0xBU1NfQ0FTVDoKIAkJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoK KwkJCWNhc2UgT0NMQVNTX0NFSzoKKwkJCWNhc2UgT0NMQVNTX0NFS0RBVEE6CisJCQljYXNl IE9DTEFTU19DTUs6CiAJCQljYXNlIE9DTEFTU19DT05WRVJTSU9OOgogCQkJY2FzZSBPQ0xB U1NfTEFOR1VBR0U6CiAJCQljYXNlIE9DTEFTU19MQVJHRU9CSkVDVDoKQEAgLTE5MzMxLDMg KzE5MzQ3LDgzIEBAIEdldEF0dHJpYnV0ZVN0b3JhZ2UoT2lkIGF0dHR5cGlkLCBjb25zdCBj aGFyICpzdG9yYWdlbW9kZSkKIAogCXJldHVybiBjc3RvcmFnZTsKIH0KKworLyoKKyAqIHJl c29sdmUgY29sdW1uIGVuY3J5cHRpb24gc3BlY2lmaWNhdGlvbgorICovCitzdGF0aWMgdm9p ZAorR2V0Q29sdW1uRW5jcnlwdGlvbihjb25zdCBMaXN0ICpjb2xkZWZlbmNyeXB0aW9uLCBG b3JtX3BnX2F0dHJpYnV0ZSBhdHRyKQoreworCUxpc3RDZWxsICAgKmxjOworCWNoYXIJICAg KmNlayA9IE5VTEw7CisJT2lkCQkJY2Vrb2lkOworCWJvb2wJCWVuY2RldCA9IGZhbHNlOwor CWludAkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjsKKwor CWZvcmVhY2gobGMsIGNvbGRlZmVuY3J5cHRpb24pCisJeworCQlEZWZFbGVtICAgICplbCA9 IGxmaXJzdF9ub2RlKERlZkVsZW0sIGxjKTsKKworCQlpZiAoc3RyY21wKGVsLT5kZWZuYW1l LCAiY29sdW1uX2VuY3J5cHRpb25fa2V5IikgPT0gMCkKKwkJCWNlayA9IHN0clZhbChsaW5p dGlhbChjYXN0Tm9kZShUeXBlTmFtZSwgZWwtPmFyZyktPm5hbWVzKSk7CisJCWVsc2UgaWYg KHN0cmNtcChlbC0+ZGVmbmFtZSwgImVuY3J5cHRpb25fdHlwZSIpID09IDApCisJCXsKKwkJ CWNoYXIJICAgKnZhbCA9IHN0clZhbChsaW5pdGlhbChjYXN0Tm9kZShUeXBlTmFtZSwgZWwt PmFyZyktPm5hbWVzKSk7CisKKwkJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJtaW5pc3RpYyIp ID09IDApCisJCQkJZW5jZGV0ID0gdHJ1ZTsKKwkJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJy YW5kb21pemVkIikgPT0gMCkKKwkJCQllbmNkZXQgPSBmYWxzZTsKKwkJCWVsc2UKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVS X1ZBTFVFKSwKKwkJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gdHlwZTog JXMiLCB2YWwpKTsKKwkJfQorCQllbHNlIGlmIChzdHJjbXAoZWwtPmRlZm5hbWUsICJhbGdv cml0aG0iKSA9PSAwKQorCQl7CisJCQljaGFyCSAgICp2YWwgPSBzdHJWYWwoZWwtPmFyZyk7 CisKKwkJCWlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYi KSA9PSAwKQorCQkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1 NjsKKwkJCWVsc2UgaWYgKHN0cmNtcCh2YWwsICJBRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hB XzM4NCIpID09IDApCisJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19T SEFfMzg0OworCQkJZWxzZSBpZiAoc3RyY21wKHZhbCwgIkFFQURfQUVTXzI1Nl9DQkNfSE1B Q19TSEFfMzg0IikgPT0gMCkKKwkJCQlhbGcgPSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19I TUFDX1NIQV8zODQ7CisJCQllbHNlIGlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMjU2X0NC Q19ITUFDX1NIQV81MTIiKSA9PSAwKQorCQkJCWFsZyA9IFBHX0NFS19BRUFEX0FFU18yNTZf Q0JDX0hNQUNfU0hBXzUxMjsKKwkJCWVsc2UKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCWVycm1z ZygidW5yZWNvZ25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAlcyIsIHZhbCkpOworCQl9 CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZB TElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCWVycm1zZygidW5yZWNvZ25pemVkIGNvbHVt biBlbmNyeXB0aW9uIHBhcmFtZXRlcjogJXMiLCBlbC0+ZGVmbmFtZSkpOworCX0KKworCWlm ICghY2VrKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlZBTElE X0NPTFVNTl9ERUZJTklUSU9OKSwKKwkJCQllcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBtdXN0IGJlIHNwZWNpZmllZCIpKTsKKworCWNla29pZCA9IEdldFN5c0NhY2hlT2lkMShD RUtOQU1FLCBBbnVtX3BnX2NvbGVuY2tleV9vaWQsIFBvaW50ZXJHZXREYXR1bShjZWspKTsK KwlpZiAoIWNla29pZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY2VrKSk7CisKKwlhdHRyLT5hdHRjZWsgPSBjZWtv aWQ7CisJYXR0ci0+YXR0cmVhbHR5cGlkID0gYXR0ci0+YXR0dHlwaWQ7CisJYXR0ci0+YXR0 ZW5jYWxnID0gYWxnOworCisJLyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAqLworCWlmIChl bmNkZXQpCisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX0RFVE9JRDsKKwllbHNl CisJCWF0dHItPmF0dHR5cGlkID0gUEdfRU5DUllQVEVEX1JORE9JRDsKKwlnZXRfdHlwbGVu Ynl2YWxhbGlnbihhdHRyLT5hdHR0eXBpZCwKKwkJCQkJCSAmYXR0ci0+YXR0bGVuLCAmYXR0 ci0+YXR0Ynl2YWwsICZhdHRyLT5hdHRhbGlnbik7CisJYXR0ci0+YXR0c3RvcmFnZSA9IGdl dF90eXBzdG9yYWdlKGF0dHItPmF0dHR5cGlkKTsKKwlhdHRyLT5hdHRjb2xsYXRpb24gPSBJ bnZhbGlkT2lkOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFi bGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMKaW5kZXggMDBkOGQ1NGQ4 MjBhLi5jNjc0OTcyNTdiNjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zh cmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwpAQCAtMjUs NiArMjUsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94bG9ncHJlZmV0Y2hlci5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbW9uL3N0cmluZy5oIgor I2luY2x1ZGUgImxpYnBxL2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIK ICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3Bvc3RtYXN0 ZXIuaCIKQEAgLTcwNiw3ICs3MDcsMTEgQEAgY2hlY2tfY2xpZW50X2VuY29kaW5nKGNoYXIg KipuZXd2YWwsIHZvaWQgKipleHRyYSwgR3VjU291cmNlIHNvdXJjZSkKIAkgKi8KIAlpZiAo UHJlcGFyZUNsaWVudEVuY29kaW5nKGVuY29kaW5nKSA8IDApCiAJewotCQlpZiAoSXNUcmFu c2FjdGlvblN0YXRlKCkpCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9l bmFibGVkKQorCQkJR1VDX2NoZWNrX2VycmRldGFpbCgiQ29udmVyc2lvbiBiZXR3ZWVuICVz IGFuZCAlcyBpcyBub3QgcG9zc2libGUgd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFi bGVkLiIsCisJCQkJCQkJCWNhbm9uaWNhbF9uYW1lLAorCQkJCQkJCQlHZXREYXRhYmFzZUVu Y29kaW5nTmFtZSgpKTsKKwkJZWxzZSBpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCiAJCXsK IAkJCS8qIE11c3QgYmUgYSBnZW51aW5lIG5vLXN1Y2gtY29udmVyc2lvbiBwcm9ibGVtICov CiAJCQlHVUNfY2hlY2tfZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL3NwaS5jCmluZGV4IGZkNTc5NmYxYjllMS4uOGE3NzYwNTk0NTA5IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9zcGkuYwpAQCAtMjI3OSw2ICsyMjc5LDggQEAgX1NQSV9wcmVwYXJlX3BsYW4o Y29uc3QgY2hhciAqc3JjLCBTUElQbGFuUHRyIHBsYW4pCiAJCQkJCQkgICBOVUxMLAogCQkJ CQkJICAgcGxhbi0+YXJndHlwZXMsCiAJCQkJCQkgICBwbGFuLT5uYXJncywKKwkJCQkJCSAg IE5VTEwsCisJCQkJCQkgICBOVUxMLAogCQkJCQkJICAgcGxhbi0+cGFyc2VyU2V0dXAsCiAJ CQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJCSAgIHBsYW4tPmN1cnNvcl9v cHRpb25zLApAQCAtMjUxNiw2ICsyNTE4LDggQEAgX1NQSV9leGVjdXRlX3BsYW4oU1BJUGxh blB0ciBwbGFuLCBjb25zdCBTUElFeGVjdXRlT3B0aW9ucyAqb3B0aW9ucywKIAkJCQkJCQkg ICBOVUxMLAogCQkJCQkJCSAgIHBsYW4tPmFyZ3R5cGVzLAogCQkJCQkJCSAgIHBsYW4tPm5h cmdzLAorCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgTlVMTCwKIAkJCQkJCQkgICBwbGFu LT5wYXJzZXJTZXR1cCwKIAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJ CQkgICBwbGFuLT5jdXJzb3Jfb3B0aW9ucywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXgg YWY4NjIwY2ViN2NlLi4xNDBhMTRiN2E3ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBA IC0zOTgyLDYgKzM5ODIsOCBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5v ZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJCWlmIChXQUxLKGNvbGRlZi0+Y29t cHJlc3Npb24pKQogCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhjb2xkZWYtPmVu Y3J5cHRpb24pKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyhjb2xkZWYtPnJh d19kZWZhdWx0KSkKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsoY29sZGVmLT5j b2xsQ2xhdXNlKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMg Yi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDY2ODhjMmE4NjViOC4uY2U5 YjdhNWY1ZjM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTE0NSw2ICsxNDUsNyBAQCBw YXJzZV9hbmFseXplX2ZpeGVkcGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hh ciAqc291cmNlVGV4dCwKIFF1ZXJ5ICoKIHBhcnNlX2FuYWx5emVfdmFycGFyYW1zKFJhd1N0 bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJCU9pZCAqKnBh cmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywg QXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHMsCiAJCQkJCQlRdWVyeUVudmlyb25tZW50ICpx dWVyeUVudikKIHsKIAlQYXJzZVN0YXRlICpwc3RhdGUgPSBtYWtlX3BhcnNlc3RhdGUoTlVM TCk7CkBAIC0xNTUsNyArMTU2LDcgQEAgcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMoUmF3U3Rt dCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogCiAJcHN0YXRlLT5wX3Nv dXJjZXRleHQgPSBzb3VyY2VUZXh0OwogCi0Jc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1l dGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFtcyk7CisJc2V0dXBfcGFyc2VfdmFy aWFibGVfcGFyYW1ldGVycyhwc3RhdGUsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywgcGFyYW1P cmlnVGJscywgcGFyYW1PcmlnQ29scyk7CiAKIAlwc3RhdGUtPnBfcXVlcnlFbnYgPSBxdWVy eUVudjsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggOTM4NDIxNDk0MmFhLi5iMjE4ZjdkOGZkYjMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtMjgwLDYgKzI4MCw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2Rl ICpxdWVyeSk7CiAKICV0eXBlIDxub2RlPglzdG10IHRvcGxldmVsX3N0bXQgc2NoZW1hX3N0 bXQgcm91dGluZV9ib2R5X3N0bXQKIAkJQWx0ZXJFdmVudFRyaWdTdG10IEFsdGVyQ29sbGF0 aW9uU3RtdAorCQlBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10IEFsdGVyQ29sdW1uTWFz dGVyS2V5U3RtdAogCQlBbHRlckRhdGFiYXNlU3RtdCBBbHRlckRhdGFiYXNlU2V0U3RtdCBB bHRlckRvbWFpblN0bXQgQWx0ZXJFbnVtU3RtdAogCQlBbHRlckZkd1N0bXQgQWx0ZXJGb3Jl aWduU2VydmVyU3RtdCBBbHRlckdyb3VwU3RtdAogCQlBbHRlck9iamVjdERlcGVuZHNTdG10 IEFsdGVyT2JqZWN0U2NoZW1hU3RtdCBBbHRlck93bmVyU3RtdApAQCAtNDE5LDYgKzQyMCw3 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKICV0eXBlIDxsaXN0PglwYXJzZV90 b3BsZXZlbCBzdG10bXVsdGkgcm91dGluZV9ib2R5X3N0bXRfbGlzdAogCQkJCU9wdFRhYmxl RWxlbWVudExpc3QgVGFibGVFbGVtZW50TGlzdCBPcHRJbmhlcml0IGRlZmluaXRpb24KKwkJ CQlsaXN0X29mX2RlZmluaXRpb25zCiAJCQkJT3B0VHlwZWRUYWJsZUVsZW1lbnRMaXN0IFR5 cGVkVGFibGVFbGVtZW50TGlzdAogCQkJCXJlbG9wdGlvbnMgb3B0X3JlbG9wdGlvbnMKIAkJ CQlPcHRXaXRoIG9wdF9kZWZpbml0aW9uIGZ1bmNfYXJncyBmdW5jX2FyZ3NfbGlzdApAQCAt NTkyLDYgKzU5NCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9k ZT4JVGFibGVDb25zdHJhaW50IFRhYmxlTGlrZUNsYXVzZQogJXR5cGUgPGl2YWw+CVRhYmxl TGlrZU9wdGlvbkxpc3QgVGFibGVMaWtlT3B0aW9uCiAldHlwZSA8c3RyPgkJY29sdW1uX2Nv bXByZXNzaW9uIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY29sdW1uX3N0b3JhZ2Ugb3B0X2Nv bHVtbl9zdG9yYWdlCisldHlwZSA8bGlzdD4Jb3B0X2NvbHVtbl9lbmNyeXB0aW9uCiAldHlw ZSA8bGlzdD4JQ29sUXVhbExpc3QKICV0eXBlIDxub2RlPglDb2xDb25zdHJhaW50IENvbENv bnN0cmFpbnRFbGVtIENvbnN0cmFpbnRBdHRyCiAldHlwZSA8aXZhbD4Ja2V5X21hdGNoCkBA IC02OTAsOCArNjkzLDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlERVRBQ0gg RElDVElPTkFSWSBESVNBQkxFX1AgRElTQ0FSRCBESVNUSU5DVCBETyBET0NVTUVOVF9QIERP TUFJTl9QCiAJRE9VQkxFX1AgRFJPUAogCi0JRUFDSCBFTFNFIEVOQUJMRV9QIEVOQ09ESU5H IEVOQ1JZUFRFRCBFTkRfUCBFTlVNX1AgRVNDQVBFIEVWRU5UIEVYQ0VQVAotCUVYQ0xVREUg RVhDTFVESU5HIEVYQ0xVU0lWRSBFWEVDVVRFIEVYSVNUUyBFWFBMQUlOIEVYUFJFU1NJT04K KwlFQUNIIEVMU0UgRU5BQkxFX1AgRU5DT0RJTkcgRU5DUllQVElPTiBFTkNSWVBURUQgRU5E X1AgRU5VTV9QIEVTQ0FQRQorCUVWRU5UIEVYQ0VQVCBFWENMVURFIEVYQ0xVRElORyBFWENM VVNJVkUgRVhFQ1VURSBFWElTVFMgRVhQTEFJTiBFWFBSRVNTSU9OCiAJRVhURU5TSU9OIEVY VEVSTkFMIEVYVFJBQ1QKIAogCUZBTFNFX1AgRkFNSUxZIEZFVENIIEZJTFRFUiBGSU5BTEla RSBGSVJTVF9QIEZMT0FUX1AgRk9MTE9XSU5HIEZPUgpAQCAtNzE0LDcgKzcxNyw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVG VCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FM VElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKLQlNQVBQSU5HIE1B VENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FVEhPRAorCU1BUFBJ TkcgTUFTVEVSIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1F VEhPRAogCU1JTlVURV9QIE1JTlZBTFVFIE1PREUgTU9OVEhfUCBNT1ZFCiAKIAlOQU1FX1Ag TkFNRVMgTkFUSU9OQUwgTkFUVVJBTCBOQ0hBUiBORVcgTkVYVCBORkMgTkZEIE5GS0MgTkZL RCBOTyBOT05FCkBAIC05NDIsNiArOTQ1LDggQEAgdG9wbGV2ZWxfc3RtdDoKIHN0bXQ6CiAJ CQlBbHRlckV2ZW50VHJpZ1N0bXQKIAkJCXwgQWx0ZXJDb2xsYXRpb25TdG10CisJCQl8IEFs dGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKKwkJCXwgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlT dG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTdG10CiAJCQl8IEFsdGVyRGF0YWJhc2VTZXRTdG10 CiAJCQl8IEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10CkBAIC0zNjgwLDE0ICszNjg1LDE1 IEBAIFR5cGVkVGFibGVFbGVtZW50OgogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQg PSAkMTsgfQogCQk7CiAKLWNvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9z dG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRlX2dlbmVyaWNfb3B0aW9ucyBD b2xRdWFsTGlzdAorY29sdW1uRGVmOglDb2xJZCBUeXBlbmFtZSBvcHRfY29sdW1uX2VuY3J5 cHRpb24gb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY3JlYXRl X2dlbmVyaWNfb3B0aW9ucyBDb2xRdWFsTGlzdAogCQkJCXsKIAkJCQkJQ29sdW1uRGVmICpu ID0gbWFrZU5vZGUoQ29sdW1uRGVmKTsKIAogCQkJCQluLT5jb2xuYW1lID0gJDE7CiAJCQkJ CW4tPnR5cGVOYW1lID0gJDI7Ci0JCQkJCW4tPnN0b3JhZ2VfbmFtZSA9ICQzOwotCQkJCQlu LT5jb21wcmVzc2lvbiA9ICQ0OworCQkJCQluLT5lbmNyeXB0aW9uID0gJDM7CisJCQkJCW4t PnN0b3JhZ2VfbmFtZSA9ICQ0OworCQkJCQluLT5jb21wcmVzc2lvbiA9ICQ1OwogCQkJCQlu LT5pbmhjb3VudCA9IDA7CiAJCQkJCW4tPmlzX2xvY2FsID0gdHJ1ZTsKIAkJCQkJbi0+aXNf bm90X251bGwgPSBmYWxzZTsKQEAgLTM2OTYsOCArMzcwMiw4IEBAIGNvbHVtbkRlZjoJQ29s SWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fY29tcHJlc3Npb24g Y3JlYXRlX2dlbmVyCiAJCQkJCW4tPnJhd19kZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29v a2VkX2RlZmF1bHQgPSBOVUxMOwogCQkJCQluLT5jb2xsT2lkID0gSW52YWxpZE9pZDsKLQkJ CQkJbi0+ZmR3b3B0aW9ucyA9ICQ1OwotCQkJCQlTcGxpdENvbFF1YWxMaXN0KCQ2LCAmbi0+ Y29uc3RyYWludHMsICZuLT5jb2xsQ2xhdXNlLAorCQkJCQluLT5mZHdvcHRpb25zID0gJDY7 CisJCQkJCVNwbGl0Q29sUXVhbExpc3QoJDcsICZuLT5jb25zdHJhaW50cywgJm4tPmNvbGxD bGF1c2UsCiAJCQkJCQkJCQkgeXlzY2FubmVyKTsKIAkJCQkJbi0+bG9jYXRpb24gPSBAMTsK IAkJCQkJJCQgPSAoTm9kZSAqKSBuOwpAQCAtMzc1NCw2ICszNzYwLDExIEBAIG9wdF9jb2x1 bW5fY29tcHJlc3Npb246CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0K IAkJOwogCitvcHRfY29sdW1uX2VuY3J5cHRpb246CisJCQlFTkNSWVBURUQgV0lUSCAnKCcg ZGVmX2xpc3QgJyknCQkJeyAkJCA9ICQ0OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAk JCA9IE5VTEw7IH0KKwkJOworCiBjb2x1bW5fc3RvcmFnZToKIAkJCVNUT1JBR0UgQ29sSWQJ CQkJCQkJeyAkJCA9ICQyOyB9CiAJCQl8IFNUT1JBR0UgREVGQVVMVAkJCQkJCXsgJCQgPSBw c3RyZHVwKCJkZWZhdWx0Iik7IH0KQEAgLTYyNTAsNiArNjI2MSwyNCBAQCBEZWZpbmVTdG10 OgogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhbnlfbmFtZSBX SVRIIFZBTFVFUyBsaXN0X29mX2RlZmluaXRpb25zCisJCQkJeworCQkJCQlEZWZpbmVTdG10 ICpuID0gbWFrZU5vZGUoRGVmaW5lU3RtdCk7CisKKwkJCQkJbi0+a2luZCA9IE9CSkVDVF9D RUs7CisJCQkJCW4tPmRlZm5hbWVzID0gJDU7CisJCQkJCW4tPmRlZmluaXRpb24gPSAkODsK KwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIENPTFVNTiBNQVNU RVIgS0VZIGFueV9uYW1lIFdJVEggZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJRGVmaW5lU3Rt dCAqbiA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1Rf Q01LOworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gJDc7 CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogZGVmaW5pdGlvbjogJygn IGRlZl9saXN0ICcpJwkJCQkJCXsgJCQgPSAkMjsgfQpAQCAtNjI2OSw2ICs2Mjk4LDEwIEBA IGRlZl9lbGVtOglDb2xMYWJlbCAnPScgZGVmX2FyZwogCQkJCX0KIAkJOwogCitsaXN0X29m X2RlZmluaXRpb25zOiBkZWZpbml0aW9uCQkJCQkJeyAkJCA9IGxpc3RfbWFrZTEoJDEpOyB9 CisJCQl8IGxpc3Rfb2ZfZGVmaW5pdGlvbnMgJywnIGRlZmluaXRpb24JeyAkJCA9IGxhcHBl bmQoJDEsICQzKTsgfQorCQk7CisKIC8qIE5vdGU6IGFueSBzaW1wbGUgaWRlbnRpZmllciB3 aWxsIGJlIHJldHVybmVkIGFzIGEgdHlwZSBuYW1lISAqLwogZGVmX2FyZzoJZnVuY190eXBl CQkJCQkJeyAkJCA9IChOb2RlICopICQxOyB9CiAJCQl8IHJlc2VydmVkX2tleXdvcmQJCQkJ eyAkJCA9IChOb2RlICopIG1ha2VTdHJpbmcocHN0cmR1cCgkMSkpOyB9CkBAIC02ODA0LDYg KzY4MzcsOCBAQCBvYmplY3RfdHlwZV9uYW1lOgogCiBkcm9wX3R5cGVfbmFtZToKIAkJCUFD Q0VTUyBNRVRIT0QJCQkJCQkJeyAkJCA9IE9CSkVDVF9BQ0NFU1NfTUVUSE9EOyB9CisJCQl8 IENPTFVNTiBFTkNSWVBUSU9OIEtFWQkJCQkJeyAkJCA9IE9CSkVDVF9DRUs7IH0KKwkJCXwg Q09MVU1OIE1BU1RFUiBLRVkJCQkJCQl7ICQkID0gT0JKRUNUX0NNSzsgfQogCQkJfCBFVkVO VCBUUklHR0VSCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVZFTlRfVFJJR0dFUjsgfQogCQkJfCBF WFRFTlNJT04JCQkJCQkJCXsgJCQgPSBPQkpFQ1RfRVhURU5TSU9OOyB9CiAJCQl8IEZPUkVJ R04gREFUQV9QIFdSQVBQRVIJCQkJeyAkJCA9IE9CSkVDVF9GRFc7IH0KQEAgLTkxMjAsNiAr OTE1NSwyNiBAQCBSZW5hbWVTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhf YXJndHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1lU3RtdCAq biA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpF Q1RfQ0VLOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJ CQkJbi0+bmV3bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJ CSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNURVIgS0VZ IG5hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtl Tm9kZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNUX0NNSzsK KwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4tPm5l d25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChO b2RlICopIG47CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgUkVO QU1FIFRPIG5hbWUKIAkJCQl7CiAJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5h bWVTdG10KTsKQEAgLTEwMTI4LDYgKzEwMTgzLDI0IEBAIEFsdGVyT3duZXJTdG10OiBBTFRF UiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMK IAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K KwkJCXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUgT1dORVIgVE8gUm9sZVNw ZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25l clN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfQ0VLOworCQkJCQluLT5v YmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKCQ1KTsKKwkJCQkJbi0+bmV3b3duZXIgPSAk ODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIE1B U1RFUiBLRVkgbmFtZSBPV05FUiBUTyBSb2xlU3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25l clN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7CisKKwkJCQkJbi0+b2JqZWN0 VHlwZSA9IE9CSkVDVF9DTUs7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1ha2VTdHJp bmcoJDUpOworCQkJCQluLT5uZXdvd25lciA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47 CisJCQkJfQogCQkJfCBBTFRFUiBDT05WRVJTSU9OX1AgYW55X25hbWUgT1dORVIgVE8gUm9s ZVNwZWMKIAkJCQl7CiAJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJP d25lclN0bXQpOwpAQCAtMTEyODQsNiArMTEzNTcsNTIgQEAgQWx0ZXJDb2xsYXRpb25TdG10 OiBBTFRFUiBDT0xMQVRJT04gYW55X25hbWUgUkVGUkVTSCBWRVJTSU9OX1AKIAkJOwogCiAK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29sdW1u RW5jcnlwdGlvbktleVN0bXQ6CisJCQlBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgbmFt ZSBBRERfUCBWQUxVRV9QIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCUFsdGVyQ29sdW1uRW5j cnlwdGlvbktleVN0bXQgKm4gPSBtYWtlTm9kZShBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlT dG10KTsKKworCQkJCQluLT5jZWtuYW1lID0gJDU7CisJCQkJCW4tPmlzRHJvcCA9IGZhbHNl OworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQl9CisJCQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIERST1AgVkFMVUVf UCBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10 ICpuID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCk7CisKKwkJCQkJ bi0+Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSB0cnVlOworCQkJCQluLT5kZWZp bml0aW9uID0gJDg7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKworCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJQUxURVIgQ09MVU1OIE1BU1RFUiBL RVkKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0FsdGVyQ29sdW1uTWFzdGVy S2V5U3RtdDoKKwkJCUFMVEVSIENPTFVNTiBNQVNURVIgS0VZIG5hbWUgZGVmaW5pdGlvbgor CQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJDb2x1bW5NYXN0ZXJLZXlTdG10KTsKKworCQkJCQluLT5jbWtuYW1lID0gJDU7CisJCQkJ CW4tPmRlZmluaXRpb24gPSAkNjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ OworCisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlBTFRFUiBTWVNURU0K QEAgLTE2NzcxLDYgKzE2ODkwLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBFTkFC TEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5DUllQVElPTgog CQkJfCBFTlVNX1AKIAkJCXwgRVNDQVBFCiAJCQl8IEVWRU5UCkBAIC0xNjgzNCw2ICsxNjk1 NCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTE9DS0VECiAJCQl8IExPR0dFRAog CQkJfCBNQVBQSU5HCisJCQl8IE1BU1RFUgogCQkJfCBNQVRDSAogCQkJfCBNQVRDSEVECiAJ CQl8IE1BVEVSSUFMSVpFRApAQCAtMTczMTcsNiArMTc0MzgsNyBAQCBiYXJlX2xhYmVsX2tl eXdvcmQ6CiAJCQl8IEVOQUJMRV9QCiAJCQl8IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRFRAor CQkJfCBFTkNSWVBUSU9OCiAJCQl8IEVORF9QCiAJCQl8IEVOVU1fUAogCQkJfCBFU0NBUEUK QEAgLTE3NDA1LDYgKzE3NTI3LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBMT0NL RUQKIAkJCXwgTE9HR0VECiAJCQl8IE1BUFBJTkcKKwkJCXwgTUFTVEVSCiAJCQl8IE1BVENI CiAJCQl8IE1BVENIRUQKIAkJCXwgTUFURVJJQUxJWkVECmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9w YXJhbS5jCmluZGV4IGU4MDg3NmFhMjVlMC4uYWFiNDdiM2NmZWRiIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfcGFyYW0uYwpAQCAtNDksNiArNDksOCBAQCB0eXBlZGVmIHN0cnVjdCBWYXJQ YXJhbVN0YXRlCiB7CiAJT2lkCQkgICoqcGFyYW1UeXBlczsJCS8qIGFycmF5IG9mIHBhcmFt ZXRlciB0eXBlIE9JRHMgKi8KIAlpbnQJCSAgICpudW1QYXJhbXM7CQkvKiBudW1iZXIgb2Yg YXJyYXkgZW50cmllcyAqLworCU9pZAkJICAqKnBhcmFtT3JpZ1RibHM7CS8qIHVuZGVybHlp bmcgdGFibGVzICgwIGlmIG5vbmUpICovCisJQXR0ck51bWJlciAqKnBhcmFtT3JpZ0NvbHM7 IC8qIHVuZGVybHlpbmcgY29sdW1ucyAoMCBpZiBub25lKSAqLwogfSBWYXJQYXJhbVN0YXRl OwogCiBzdGF0aWMgTm9kZSAqZml4ZWRfcGFyYW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3Rh dGUsIFBhcmFtUmVmICpwcmVmKTsKQEAgLTU2LDYgKzU4LDcgQEAgc3RhdGljIE5vZGUgKnZh cmlhYmxlX3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJl Zik7CiBzdGF0aWMgTm9kZSAqdmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2soUGFyc2VTdGF0 ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0sCiAJCQkJCQkJCQkJT2lkIHRhcmdldFR5cGVJZCwg aW50MzIgdGFyZ2V0VHlwZU1vZCwKIAkJCQkJCQkJCQlpbnQgbG9jYXRpb24pOworc3RhdGlj IHZvaWQgdmFyaWFibGVfcGFyYW1fYXNzaWduX29yaWdfaG9vayhQYXJzZVN0YXRlICpwc3Rh dGUsIFBhcmFtICpwYXJhbSwgT2lkIG9yaWd0YmwsIEF0dHJOdW1iZXIgb3JpZ2NvbCk7CiBz dGF0aWMgYm9vbCBjaGVja19wYXJhbWV0ZXJfcmVzb2x1dGlvbl93YWxrZXIoTm9kZSAqbm9k ZSwgUGFyc2VTdGF0ZSAqcHN0YXRlKTsKIHN0YXRpYyBib29sIHF1ZXJ5X2NvbnRhaW5zX2V4 dGVybl9wYXJhbXNfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCkBAIC04 MSwxNSArODQsMTkgQEAgc2V0dXBfcGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRl ICpwc3RhdGUsCiAgKi8KIHZvaWQKIHNldHVwX3BhcnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMo UGFyc2VTdGF0ZSAqcHN0YXRlLAotCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51 bVBhcmFtcykKKwkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMsCisJ CQkJCQkJCU9pZCAqKnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xz KQogewogCVZhclBhcmFtU3RhdGUgKnBhcnN0YXRlID0gcGFsbG9jKHNpemVvZihWYXJQYXJh bVN0YXRlKSk7CiAKIAlwYXJzdGF0ZS0+cGFyYW1UeXBlcyA9IHBhcmFtVHlwZXM7CiAJcGFy c3RhdGUtPm51bVBhcmFtcyA9IG51bVBhcmFtczsKKwlwYXJzdGF0ZS0+cGFyYW1PcmlnVGJs cyA9IHBhcmFtT3JpZ1RibHM7CisJcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMgPSBwYXJhbU9y aWdDb2xzOwogCXBzdGF0ZS0+cF9yZWZfaG9va19zdGF0ZSA9ICh2b2lkICopIHBhcnN0YXRl OwogCXBzdGF0ZS0+cF9wYXJhbXJlZl9ob29rID0gdmFyaWFibGVfcGFyYW1yZWZfaG9vazsK IAlwc3RhdGUtPnBfY29lcmNlX3BhcmFtX2hvb2sgPSB2YXJpYWJsZV9jb2VyY2VfcGFyYW1f aG9vazsKKwlwc3RhdGUtPnBfcGFyYW1fYXNzaWduX29yaWdfaG9vayA9IHZhcmlhYmxlX3Bh cmFtX2Fzc2lnbl9vcmlnX2hvb2s7CiB9CiAKIC8qCkBAIC0xNDUsMTAgKzE1MiwyNCBAQCB2 YXJpYWJsZV9wYXJhbXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnBy ZWYpCiAJewogCQkvKiBOZWVkIHRvIGVubGFyZ2UgcGFyYW0gYXJyYXkgKi8KIAkJaWYgKCpw YXJzdGF0ZS0+cGFyYW1UeXBlcykKKwkJewogCQkJKnBhcnN0YXRlLT5wYXJhbVR5cGVzID0g cmVwYWxsb2MwX2FycmF5KCpwYXJzdGF0ZS0+cGFyYW1UeXBlcywgT2lkLAogCQkJCQkJCQkJ CQkJCSpwYXJzdGF0ZS0+bnVtUGFyYW1zLCBwYXJhbW5vKTsKKwkJCWlmIChwYXJzdGF0ZS0+ cGFyYW1PcmlnVGJscykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMgPSByZXBhbGxv YzBfYXJyYXkoKnBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzLCBPaWQsCisJCQkJCQkJCQkJCQkJ CSAgICpwYXJzdGF0ZS0+bnVtUGFyYW1zLCBwYXJhbW5vKTsKKwkJCWlmIChwYXJzdGF0ZS0+ cGFyYW1PcmlnQ29scykKKwkJCQkqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMgPSByZXBhbGxv YzBfYXJyYXkoKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzLCBBdHRyTnVtYmVyLAorCQkJCQkJ CQkJCQkJCQkgICAqcGFyc3RhdGUtPm51bVBhcmFtcywgcGFyYW1ubyk7CisJCX0KIAkJZWxz ZQorCQl7CiAJCQkqcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBwYWxsb2MwX2FycmF5KE9pZCwg cGFyYW1ubyk7CisJCQlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCQkJKnBhcnN0 YXRlLT5wYXJhbU9yaWdUYmxzID0gcGFsbG9jMF9hcnJheShPaWQsIHBhcmFtbm8pOworCQkJ aWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkJCSpwYXJzdGF0ZS0+cGFyYW1Pcmln Q29scyA9IHBhbGxvYzBfYXJyYXkoQXR0ck51bWJlciwgcGFyYW1ubyk7CisJCX0KIAkJKnBh cnN0YXRlLT5udW1QYXJhbXMgPSBwYXJhbW5vOwogCX0KIApAQCAtMjU2LDYgKzI3NywxOCBA QCB2YXJpYWJsZV9jb2VyY2VfcGFyYW1faG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFt ICpwYXJhbSwKIAlyZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIHZvaWQKK3ZhcmlhYmxlX3Bh cmFtX2Fzc2lnbl9vcmlnX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0s IE9pZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpCit7CisJVmFyUGFyYW1TdGF0ZSAq cGFyc3RhdGUgPSAoVmFyUGFyYW1TdGF0ZSAqKSBwc3RhdGUtPnBfcmVmX2hvb2tfc3RhdGU7 CisJaW50CQkJcGFyYW1ubyA9IHBhcmFtLT5wYXJhbWlkOworCisJaWYgKHBhcnN0YXRlLT5w YXJhbU9yaWdUYmxzKQorCQkoKnBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzKVtwYXJhbW5vIC0g MV0gPSBvcmlndGJsOworCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scykKKwkJKCpwYXJz dGF0ZS0+cGFyYW1PcmlnQ29scylbcGFyYW1ubyAtIDFdID0gb3JpZ2NvbDsKK30KKwogLyoK ICAqIENoZWNrIGZvciBjb25zaXN0ZW50IGFzc2lnbm1lbnQgb2YgdmFyaWFibGUgcGFyYW1l dGVycyBhZnRlciBjb21wbGV0aW9uCiAgKiBvZiBwYXJzaW5nIHdpdGggcGFyc2VfdmFyaWFi bGVfcGFyYW1ldGVycy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90 YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA4ZTBk NmZkMDFmMWYuLmM5MmY3ODNiNWNkOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YwpAQCAtNTk0LDYgKzU5NCwxMiBAQCB0cmFuc2Zvcm1Bc3NpZ25lZEV4cHIoUGFyc2VTdGF0 ZSAqcHN0YXRlLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0 aW9uKG9yaWdfZXhwcikpKSk7CiAJfQogCisJaWYgKElzQShleHByLCBQYXJhbSkpCisJewor CQlpZiAocHN0YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2spCisJCQlwc3RhdGUtPnBf cGFyYW1fYXNzaWduX29yaWdfaG9vayhwc3RhdGUsIGNhc3ROb2RlKFBhcmFtLCBleHByKSwg UmVsYXRpb25HZXRSZWxpZChwc3RhdGUtPnBfdGFyZ2V0X3JlbGF0aW9uKSwgYXR0cm5vKTsK Kwl9CisKIAlwc3RhdGUtPnBfZXhwcl9raW5kID0gc3ZfZXhwcl9raW5kOwogCiAJcmV0dXJu IGV4cHI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIu YyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4IGE4YTI0Njky MWYyMy4uMjRiNjFkNjdiMTdhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVy L3Bvc3RtYXN0ZXIuYworKysgYi9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIu YwpAQCAtMjI0NCwxMiArMjI0NCwyNyBAQCBQcm9jZXNzU3RhcnR1cFBhY2tldChQb3J0ICpw b3J0LCBib29sIHNzbF9kb25lLCBib29sIGdzc19kb25lKQogCQkJCQkJCQkJdmFscHRyKSwK IAkJCQkJCQkgZXJyaGludCgiVmFsaWQgdmFsdWVzIGFyZTogXCJmYWxzZVwiLCAwLCBcInRy dWVcIiwgMSwgXCJkYXRhYmFzZVwiLiIpKSk7CiAJCQl9CisJCQllbHNlIGlmIChzdHJjbXAo bmFtZXB0ciwgIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iKSA9PSAwKQorCQkJeworCQkJCS8q CisJCQkJICogUmlnaHQgbm93LCB0aGUgb25seSBhY2NlcHRlZCB2YWx1ZSBpcyAiMSIuICBU aGlzIGdpdmVzIHJvb20KKwkJCQkgKiB0byBleHBhbmQgdGhpcyBpbnRvIGEgdmVyc2lvbiBu dW1iZXIsIGZvciBleGFtcGxlLgorCQkJCSAqLworCQkJCWlmIChzdHJjbXAodmFscHRyLCAi MSIpID09IDApCisJCQkJCXBvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQgPSB0cnVl OworCQkJCWVsc2UKKwkJCQkJZXJlcG9ydChGQVRBTCwKKwkJCQkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkgZXJybXNnKCJpbnZhbGlk IHZhbHVlIGZvciBwYXJhbWV0ZXIgXCIlc1wiOiBcIiVzXCIiLAorCQkJCQkJCQkJImNvbHVt bl9lbmNyeXB0aW9uIiwKKwkJCQkJCQkJCXZhbHB0ciksCisJCQkJCQkJIGVycmhpbnQoIlZh bGlkIHZhbHVlcyBhcmU6IDEuIikpKTsKKwkJCX0KIAkJCWVsc2UgaWYgKHN0cm5jbXAobmFt ZXB0ciwgIl9wcV8uIiwgNSkgPT0gMCkKIAkJCXsKIAkJCQkvKgogCQkJCSAqIEFueSBvcHRp b24gYmVnaW5uaW5nIHdpdGggX3BxXy4gaXMgcmVzZXJ2ZWQgZm9yIHVzZSBhcyBhCi0JCQkJ ICogcHJvdG9jb2wtbGV2ZWwgb3B0aW9uLCBidXQgYXQgcHJlc2VudCBubyBzdWNoIG9wdGlv bnMgYXJlCi0JCQkJICogZGVmaW5lZC4KKwkJCQkgKiBwcm90b2NvbC1sZXZlbCBvcHRpb24u CiAJCQkJICovCiAJCQkJdW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMgPQogCQkJCQls YXBwZW5kKHVucmVjb2duaXplZF9wcm90b2NvbF9vcHRpb25zLCBwc3RyZHVwKG5hbWVwdHIp KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYwppbmRleCAzMDgyMDkzZDFlYWIuLjhiNDhiMTUzOWM1ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNr ZW5kL3Rjb3AvcG9zdGdyZXMuYwpAQCAtNzIsNiArNzIsNyBAQAogI2luY2x1ZGUgInV0aWxz L21lbXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvcHNfc3RhdHVzLmgiCiAjaW5jbHVkZSAi dXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVk ZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogCkBA IC02NzgsNiArNjc5LDggQEAgcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMoUmF3 U3RtdCAqcGFyc2V0cmVlLAogCQkJCQkJCQkgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAog CQkJCQkJCQkgT2lkICoqcGFyYW1UeXBlcywKIAkJCQkJCQkJIGludCAqbnVtUGFyYW1zLAor CQkJCQkJCQkgT2lkICoqcGFyYW1PcmlnVGJscywKKwkJCQkJCQkJIEF0dHJOdW1iZXIgKipw YXJhbU9yaWdDb2xzLAogCQkJCQkJCQkgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpCiB7 CiAJUXVlcnkJICAgKnF1ZXJ5OwpAQCAtNjkyLDcgKzY5NSw3IEBAIHBnX2FuYWx5emVfYW5k X3Jld3JpdGVfdmFycGFyYW1zKFJhd1N0bXQgKnBhcnNldHJlZSwKIAkJUmVzZXRVc2FnZSgp OwogCiAJcXVlcnkgPSBwYXJzZV9hbmFseXplX3ZhcnBhcmFtcyhwYXJzZXRyZWUsIHF1ZXJ5 X3N0cmluZywgcGFyYW1UeXBlcywgbnVtUGFyYW1zLAotCQkJCQkJCQkJcXVlcnlFbnYpOwor CQkJCQkJCQkJcGFyYW1PcmlnVGJscywgcGFyYW1PcmlnQ29scywgcXVlcnlFbnYpOwogCiAJ LyoKIAkgKiBDaGVjayBhbGwgcGFyYW1ldGVyIHR5cGVzIGdvdCBkZXRlcm1pbmVkLgpAQCAt MTM2Niw2ICsxMzY5LDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5 X3N0cmluZywJLyogc3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAlib29sCQlpc19uYW1lZDsKIAli b29sCQlzYXZlX2xvZ19zdGF0ZW1lbnRfc3RhdHMgPSBsb2dfc3RhdGVtZW50X3N0YXRzOwog CWNoYXIJCW1zZWNfc3RyWzMyXTsKKwlPaWQJCSAgICpwYXJhbU9yaWdUYmxzID0gcGFsbG9j X2FycmF5KE9pZCwgbnVtUGFyYW1zKTsKKwlBdHRyTnVtYmVyICpwYXJhbU9yaWdDb2xzID0g cGFsbG9jX2FycmF5KEF0dHJOdW1iZXIsIG51bVBhcmFtcyk7CiAKIAkvKgogCSAqIFJlcG9y dCBxdWVyeSB0byB2YXJpb3VzIG1vbml0b3JpbmcgZmFjaWxpdGllcy4KQEAgLTE0ODYsNiAr MTQ5MSw4IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcs CS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJCQkJCQkJCQkJCQkJCSAgcXVlcnlfc3RyaW5n LAogCQkJCQkJCQkJCQkJCQkgICZwYXJhbVR5cGVzLAogCQkJCQkJCQkJCQkJCQkgICZudW1Q YXJhbXMsCisJCQkJCQkJCQkJCQkJCSAgJnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCQkJCQkJ CSAgJnBhcmFtT3JpZ0NvbHMsCiAJCQkJCQkJCQkJCQkJCSAgTlVMTCk7CiAKIAkJLyogRG9u ZSB3aXRoIHRoZSBzbmFwc2hvdCB1c2VkIGZvciBwYXJzaW5nICovCkBAIC0xNTE2LDYgKzE1 MjMsOCBAQCBleGVjX3BhcnNlX21lc3NhZ2UoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nLAkv KiBzdHJpbmcgdG8gZXhlY3V0ZSAqLwogCQkJCQkgICB1bm5hbWVkX3N0bXRfY29udGV4dCwK IAkJCQkJICAgcGFyYW1UeXBlcywKIAkJCQkJICAgbnVtUGFyYW1zLAorCQkJCQkgICBwYXJh bU9yaWdUYmxzLAorCQkJCQkgICBwYXJhbU9yaWdDb2xzLAogCQkJCQkgICBOVUxMLAogCQkJ CQkgICBOVUxMLAogCQkJCQkgICBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLAkvKiBhbGxvdyBw YXJhbGxlbCBtb2RlICovCkBAIC0xODEzLDYgKzE4MjIsMTYgQEAgZXhlY19iaW5kX21lc3Nh Z2UoU3RyaW5nSW5mbyBpbnB1dF9tZXNzYWdlKQogCQkJZWxzZQogCQkJCXBmb3JtYXQgPSAw OwkvKiBkZWZhdWx0ID0gdGV4dCAqLwogCisJCQlpZiAodHlwZV9pc19lbmNyeXB0ZWQocHR5 cGUpKQorCQkJeworCQkJCWlmIChwZm9ybWF0ICYgMHhGMCkKKwkJCQkJcGZvcm1hdCAmPSB+ MHhGMDsKKwkJCQllbHNlCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9QUk9UT0NPTF9WSU9MQVRJT04pLAorCQkJCQkJCSBlcnJtc2coInBhcmFtZXRl ciBjb3JyZXNwb25kcyB0byBhbiBlbmNyeXB0ZWQgY29sdW1uLCBidXQgdGhlIHBhcmFtZXRl ciB2YWx1ZSB3YXMgbm90IGVuY3J5cHRlZCIpKSk7CisJCQl9CisKIAkJCWlmIChwZm9ybWF0 ID09IDApCS8qIHRleHQgbW9kZSAqLwogCQkJewogCQkJCU9pZAkJCXR5cGlucHV0OwpAQCAt MjYwMyw4ICsyNjIyLDQ0IEBAIGV4ZWNfZGVzY3JpYmVfc3RhdGVtZW50X21lc3NhZ2UoY29u c3QgY2hhciAqc3RtdF9uYW1lKQogCWZvciAoaW50IGkgPSAwOyBpIDwgcHNyYy0+bnVtX3Bh cmFtczsgaSsrKQogCXsKIAkJT2lkCQkJcHR5cGUgPSBwc3JjLT5wYXJhbV90eXBlc1tpXTsK KwkJT2lkCQkJcGNla2lkID0gSW52YWxpZE9pZDsKKwkJaW50CQkJcGNla2FsZyA9IDA7CisJ CWludDE2CQlwZmxhZ3MgPSAwOworCisJCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlwdGVkKHB0eXBlKSkKKwkJeworCQkJT2lk CQkJcG9yaWd0YmwgPSBwc3JjLT5wYXJhbV9vcmlndGJsc1tpXTsKKwkJCUF0dHJOdW1iZXIJ cG9yaWdjb2wgPSBwc3JjLT5wYXJhbV9vcmlnY29sc1tpXTsKKwkJCUhlYXBUdXBsZQl0cDsK KwkJCUZvcm1fcGdfYXR0cmlidXRlIG9yaWdfYXR0OworCisJCQlpZiAocG9yaWd0YmwgPT0g SW52YWxpZE9pZCB8fCBwb3JpZ2NvbCA8PSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJy bXNnKCJwYXJhbWV0ZXIgJWQgY29ycmVzcG9uZHMgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwg YnV0IGFuIHVuZGVybHlpbmcgdGFibGUgYW5kIGNvbHVtbiBjb3VsZCBub3QgYmUgZGV0ZXJt aW5lZCIsIGkpKSk7CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0 SWRHZXREYXR1bShwb3JpZ3RibCksIEludDE2R2V0RGF0dW0ocG9yaWdjb2wpKTsKKwkJCWlm ICghSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIGF0dHJpYnV0ZSAlZCBvZiByZWxhdGlvbiAldSIsIHBvcmlnY29sLCBw b3JpZ3RibCk7CisJCQlvcmlnX2F0dCA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RSVUNU KHRwKTsKKwkJCXB0eXBlID0gb3JpZ19hdHQtPmF0dHJlYWx0eXBpZDsKKwkJCXBjZWtpZCA9 IG9yaWdfYXR0LT5hdHRjZWs7CisJCQlwY2VrYWxnID0gb3JpZ19hdHQtPmF0dGVuY2FsZzsK KwkJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisKKwkJCWlmIChwc3JjLT5wYXJhbV90eXBlc1tp XSA9PSBQR19FTkNSWVBURURfREVUT0lEKQorCQkJCXBmbGFncyB8PSAweDAxOworCisJCQlN YXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShwY2VraWQpOworCQl9CiAKIAkJ cHFfc2VuZGludDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwdHlwZSk7CisJCWlm IChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlwcV9z ZW5kaW50MzIoJnJvd19kZXNjcmlwdGlvbl9idWYsIChpbnQpIHBjZWtpZCk7CisJCQlwcV9z ZW5kaW50MTYoJnJvd19kZXNjcmlwdGlvbl9idWYsIHBjZWthbGcpOworCQkJcHFfc2VuZGlu dDE2KCZyb3dfZGVzY3JpcHRpb25fYnVmLCBwZmxhZ3MpOworCQl9CiAJfQogCXBxX2VuZG1l c3NhZ2VfcmV1c2UoJnJvd19kZXNjcmlwdGlvbl9idWYpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmlu ZGV4IDI0N2QwODE2YWQ4MS4uNGYxODAyOTc2YTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAt MzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jbHVzdGVyLmgiCisjaW5j bHVkZSAiY29tbWFuZHMvY29sZW5jY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbGxh dGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvY29udmVyc2lvbmNtZHMuaCIKQEAgLTEzNyw2ICsxMzgsOCBAQCBDbGFzc2lm eVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJc3dpdGNoIChu b2RlVGFnKHBhcnNldHJlZSkpCiAJewogCQljYXNlIFRfQWx0ZXJDb2xsYXRpb25TdG10Ogor CQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJY2FzZSBUX0FsdGVy Q29sdW1uTWFzdGVyS2V5U3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0YWJhc2VSZWZyZXNoQ29s bFN0bXQ6CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlU2V0U3RtdDoKIAkJY2FzZSBUX0FsdGVy RGF0YWJhc2VTdG10OgpAQCAtMTQ0MSw2ICsxNDQ0LDE0IEBAIFByb2Nlc3NVdGlsaXR5U2xv dyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkJCQlzdG10LT5kZWZpbml0aW9u LAogCQkJCQkJCQkJCQkJCQkJJnNlY29uZGFyeU9iamVjdCk7CiAJCQkJCQkJYnJlYWs7CisJ CQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklM KTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ0VLKHBzdGF0ZSwgc3RtdCk7CisJCQkJCQkJ YnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCQkJQXNzZXJ0KHN0bXQtPmFy Z3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ01LKHBzdGF0ZSwgc3RtdCk7 CisJCQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCQkJCQkJ QXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKIAkJCQkJCQlhZGRyZXNzID0gRGVmaW5lQ29s bGF0aW9uKHBzdGF0ZSwKQEAgLTE5MDMsNiArMTkxNCwxNCBAQCBQcm9jZXNzVXRpbGl0eVNs b3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCWFkZHJlc3MgPSBBbHRlckNvbGxhdGlvbigo QWx0ZXJDb2xsYXRpb25TdG10ICopIHBhcnNldHJlZSk7CiAJCQkJYnJlYWs7CiAKKwkJCWNh c2UgVF9BbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRl ckNvbHVtbkVuY3J5cHRpb25LZXkocHN0YXRlLCAoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5 U3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOworCisJCQljYXNlIFRfQWx0ZXJDb2x1 bW5NYXN0ZXJLZXlTdG10OgorCQkJCWFkZHJlc3MgPSBBbHRlckNvbHVtbk1hc3RlcktleShw c3RhdGUsIChBbHRlckNvbHVtbk1hc3RlcktleVN0bXQgKikgcGFyc2V0cmVlKTsKKwkJCQli cmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5v ZGUgdHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTIy MjUsNiArMjI0NCwxMiBAQCBBbHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUg b2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgogCQkJdGFnID0gQ01EVEFHX0FMVEVS X1RBQkxFOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCXRhZyA9IENNRFRB R19BTFRFUl9DT0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfQ01LOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX0NPTFVNTl9NQVNURVJfS0VZOworCQkJ YnJlYWs7CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJCQl0YWcgPSBDTURUQUdfQUxU RVJfQ09OVkVSU0lPTjsKIAkJCWJyZWFrOwpAQCAtMjY0MCw2ICsyNjY1LDEyIEBAIENyZWF0 ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJ Q19FWFQ6CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFr OworCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfQ09MVU1O X0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DTUs6CisJ CQkJCXRhZyA9IENNRFRBR19EUk9QX0NPTFVNTl9NQVNURVJfS0VZOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTI3 NjAsNiArMjc5MSwxMiBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJ CQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09M TEFUSU9OOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCXRhZyA9 IENNRFRBR19DUkVBVEVfQ09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJCQlicmVhazsKKwkJ CQljYXNlIE9CSkVDVF9DTUs6CisJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQ09MVU1OX01B U1RFUl9LRVk7CisJCQkJCWJyZWFrOwogCQkJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6 CiAJCQkJCXRhZyA9IENNRFRBR19DUkVBVEVfQUNDRVNTX01FVEhPRDsKIAkJCQkJYnJlYWs7 CkBAIC0zMDYzLDYgKzMxMDAsMTQgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRy ZWUpCiAJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MTEFUSU9OOwogCQkJYnJlYWs7CiAKKwkJ Y2FzZSBUX0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQl0YWcgPSBDTURUQUdf QUxURVJfQ09MVU1OX0VOQ1JZUFRJT05fS0VZOworCQkJYnJlYWs7CisKKwkJY2FzZSBUX0Fs dGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9DT0xVTU5f TUFTVEVSX0tFWTsKKwkJCWJyZWFrOworCiAJCWNhc2UgVF9QcmVwYXJlU3RtdDoKIAkJCXRh ZyA9IENNRFRBR19QUkVQQVJFOwogCQkJYnJlYWs7CkBAIC0zMjE3LDcgKzMyNjIsNyBAQCBD cmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWRlZmF1 bHQ6Ci0JCQllbG9nKFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCisJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50 KSBub2RlVGFnKHBhcnNldHJlZSkpOwogCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQli cmVhazsKQEAgLTM2ODgsNiArMzczMywxNCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAq cGFyc2V0cmVlKQogCQkJbGV2ID0gTE9HU1RNVF9EREw7CiAJCQlicmVhazsKIAorCQljYXNl IFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCWxldiA9IExPR1NUTVRfRERM OworCQkJYnJlYWs7CisKKwkJY2FzZSBUX0FsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdDoKKwkJ CWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJCS8qIGFscmVhZHktcGxhbm5l ZCBxdWVyaWVzICovCiAJCWNhc2UgVF9QbGFubmVkU3RtdDoKIAkJCXsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvYXJyYXlmdW5jcy5jCmluZGV4IDQ5NWU0NDlhOWU5YS4uNDA1ZjA4YTliMzc4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAgLTMzODYsNiArMzM4Niw3IEBA IGNvbnN0cnVjdF9hcnJheV9idWlsdGluKERhdHVtICplbGVtcywgaW50IG5lbGVtcywgT2lk IGVsbXR5cGUpCiAJCQlicmVhazsKIAogCQljYXNlIE9JRE9JRDoKKwkJY2FzZSBSRUdDTEFT U09JRDoKIAkJY2FzZSBSRUdUWVBFT0lEOgogCQkJZWxtbGVuID0gc2l6ZW9mKE9pZCk7CiAJ CQllbG1ieXZhbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmlu ZGV4IDk0Y2E4ZTEyMzAzZC4uNDlmNzNjYTRlODI4IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYwpAQCAtMjQsNyArMjQsMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2Ftb3AuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtcHJvYy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfbGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgpA QCAtMjY1OCw2ICsyNjYxLDI1IEBAIHR5cGVfaXNfbXVsdGlyYW5nZShPaWQgdHlwaWQpCiAJ cmV0dXJuIChnZXRfdHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9NVUxUSVJBTkdFKTsKIH0K IAorYm9vbAordHlwZV9pc19lbmNyeXB0ZWQoT2lkIHR5cGlkKQoreworCUhlYXBUdXBsZQl0 cDsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0o dHlwaWQpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5 cGUgdHlwdHVwID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwkJYm9vbAkJcmVz dWx0OworCisJCXJlc3VsdCA9ICh0eXB0dXAtPnR5cGNhdGVnb3J5ID09IFRZUENBVEVHT1JZ X0VOQ1JZUFRFRCk7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCXJldHVybiByZXN1bHQ7 CisJfQorCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAvKgogICogZ2V0X3R5cGVfY2F0 ZWdvcnlfcHJlZmVycmVkCiAgKgpAQCAtMzY4MywzICszNzA1LDkyIEBAIGdldF9zdWJzY3Jp cHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJu YW1lOwogfQorCitPaWQKK2dldF9jZWtfb2lkKGNvbnN0IGNoYXIgKmNla25hbWUsIGJvb2wg bWlzc2luZ19vaykKK3sKKwlPaWQJCQlvaWQ7CisKKwlvaWQgPSBHZXRTeXNDYWNoZU9pZDEo Q0VLTkFNRSwgQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQkJCQkJICBDU3RyaW5nR2V0RGF0 dW0oY2VrbmFtZSkpOworCWlmICghT2lkSXNWYWxpZChvaWQpICYmICFtaXNzaW5nX29rKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVD VCksCisJCQkJIGVycm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIGNla25hbWUpKSk7CisJcmV0dXJuIG9pZDsKK30KKworY2hhciAqCitnZXRf Y2VrX25hbWUoT2lkIGNla2lkLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVhcFR1cGxlCXR1 cDsKKwljaGFyCSAgICpjZWtuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKENFS09J RCwgT2JqZWN0SWRHZXREYXR1bShjZWtpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJeworCQlpZiAoIW1pc3Npbmdfb2spCisJCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5ICV1IiwgY2VraWQpOwor CQlyZXR1cm4gTlVMTDsKKwl9CisKKwljZWtuYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9y bV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXApKS0+Y2VrbmFtZSkpOworCisJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gY2VrbmFtZTsKK30KKworT2lkCitnZXRfY2Vr ZGF0YV9vaWQoT2lkIGNla2lkLCBPaWQgY21raWQsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlP aWQJCQljZWtkYXRhaWQ7CisKKwljZWtkYXRhaWQgPSBHZXRTeXNDYWNoZU9pZDIoQ0VLREFU QUNFS0NNSywgQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJCQkJCQkJT2JqZWN0SWRH ZXREYXR1bShjZWtpZCksCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0oY21raWQpKTsKKwlp ZiAoIU9pZElzVmFsaWQoY2VrZGF0YWlkKSAmJiAhbWlzc2luZ19vaykKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBl cnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgaGFzIG5vIGRhdGEgZm9yIG1h c3RlciBrZXkgXCIlc1wiIiwKKwkJCQkJCWdldF9jZWtfbmFtZShjZWtpZCwgZmFsc2UpLCBn ZXRfY21rX25hbWUoY21raWQsIGZhbHNlKSkpKTsKKworCXJldHVybiBjZWtkYXRhaWQ7Cit9 CisKK09pZAorZ2V0X2Nta19vaWQoY29uc3QgY2hhciAqY21rbmFtZSwgYm9vbCBtaXNzaW5n X29rKQoreworCU9pZAkJCW9pZDsKKworCW9pZCA9IEdldFN5c0NhY2hlT2lkMShDTUtOQU1F LCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsCisJCQkJCQkgIENTdHJpbmdHZXREYXR1bShj bWtuYW1lKSk7CisJaWYgKCFPaWRJc1ZhbGlkKG9pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwK KwkJCQkgZXJybXNnKCJjb2x1bW4gbWFzdGVyIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LCBjbWtuYW1lKSkpOworCXJldHVybiBvaWQ7Cit9CisKK2NoYXIgKgorZ2V0X2Nta19uYW1l KE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29rKQoreworCUhlYXBUdXBsZQl0dXA7CisJY2hh cgkgICAqY21rbmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVj dElkR2V0RGF0dW0oY21raWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQor CXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIGNvbHVtbiBtYXN0ZXIga2V5ICV1IiwgY21raWQpOworCQlyZXR1cm4gTlVM TDsKKwl9CisKKwljbWtuYW1lID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19jb2xtYXN0 ZXJrZXkpIEdFVFNUUlVDVCh0dXApKS0+Y21rbmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hl KHR1cCk7CisKKwlyZXR1cm4gY21rbmFtZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxh bmNhY2hlLmMKaW5kZXggY2M5NDMyMDVkMzQyLi5mZTI2MDlhOTdkNTEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC0zNDAsNiArMzQwLDggQEAgQ29tcGxldGVD YWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiAJCQkJICAgTWVtb3J5 Q29udGV4dCBxdWVyeXRyZWVfY29udGV4dCwKIAkJCQkgICBPaWQgKnBhcmFtX3R5cGVzLAog CQkJCSAgIGludCBudW1fcGFyYW1zLAorCQkJCSAgIE9pZCAqcGFyYW1fb3JpZ3RibHMsCisJ CQkJICAgQXR0ck51bWJlciAqcGFyYW1fb3JpZ2NvbHMsCiAJCQkJICAgUGFyc2VyU2V0dXBI b29rIHBhcnNlclNldHVwLAogCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLAogCQkJCSAg IGludCBjdXJzb3Jfb3B0aW9ucywKQEAgLTQxNyw4ICs0MTksMTYgQEAgQ29tcGxldGVDYWNo ZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UsCiAKIAlpZiAobnVtX3BhcmFt cyA+IDApCiAJewotCQlwbGFuc291cmNlLT5wYXJhbV90eXBlcyA9IChPaWQgKikgcGFsbG9j KG51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJCXBsYW5zb3VyY2UtPnBhcmFtX3R5cGVz ID0gcGFsbG9jX2FycmF5KE9pZCwgbnVtX3BhcmFtcyk7CiAJCW1lbWNweShwbGFuc291cmNl LT5wYXJhbV90eXBlcywgcGFyYW1fdHlwZXMsIG51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7 CisKKwkJcGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMgPSBwYWxsb2MwX2FycmF5KE9pZCwg bnVtX3BhcmFtcyk7CisJCWlmIChwYXJhbV9vcmlndGJscykKKwkJCW1lbWNweShwbGFuc291 cmNlLT5wYXJhbV9vcmlndGJscywgcGFyYW1fb3JpZ3RibHMsIG51bV9wYXJhbXMgKiBzaXpl b2YoT2lkKSk7CisKKwkJcGxhbnNvdXJjZS0+cGFyYW1fb3JpZ2NvbHMgPSBwYWxsb2MwX2Fy cmF5KEF0dHJOdW1iZXIsIG51bV9wYXJhbXMpOworCQlpZiAocGFyYW1fb3JpZ2NvbHMpCisJ CQltZW1jcHkocGxhbnNvdXJjZS0+cGFyYW1fb3JpZ2NvbHMsIHBhcmFtX29yaWdjb2xzLCBu dW1fcGFyYW1zICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKIAl9CiAJZWxzZQogCQlwbGFuc291 cmNlLT5wYXJhbV90eXBlcyA9IE5VTEw7CkBAIC0xNTM1LDEzICsxNTQ1LDIyIEBAIENvcHlD YWNoZWRQbGFuKENhY2hlZFBsYW5Tb3VyY2UgKnBsYW5zb3VyY2UpCiAJbmV3c291cmNlLT5j b21tYW5kVGFnID0gcGxhbnNvdXJjZS0+Y29tbWFuZFRhZzsKIAlpZiAocGxhbnNvdXJjZS0+ bnVtX3BhcmFtcyA+IDApCiAJewotCQluZXdzb3VyY2UtPnBhcmFtX3R5cGVzID0gKE9pZCAq KQotCQkJcGFsbG9jKHBsYW5zb3VyY2UtPm51bV9wYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJ CW5ld3NvdXJjZS0+cGFyYW1fdHlwZXMgPSBwYWxsb2NfYXJyYXkoT2lkLCBwbGFuc291cmNl LT5udW1fcGFyYW1zKTsKIAkJbWVtY3B5KG5ld3NvdXJjZS0+cGFyYW1fdHlwZXMsIHBsYW5z b3VyY2UtPnBhcmFtX3R5cGVzLAogCQkJICAgcGxhbnNvdXJjZS0+bnVtX3BhcmFtcyAqIHNp emVvZihPaWQpKTsKKwkJaWYgKHBsYW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzKQorCQl7CisJ CQluZXdzb3VyY2UtPnBhcmFtX29yaWd0YmxzID0gcGFsbG9jX2FycmF5KE9pZCwgcGxhbnNv dXJjZS0+bnVtX3BhcmFtcyk7CisJCQltZW1jcHkobmV3c291cmNlLT5wYXJhbV9vcmlndGJs cywgcGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMsCisJCQkJICAgcGxhbnNvdXJjZS0+bnVt X3BhcmFtcyAqIHNpemVvZihPaWQpKTsKKwkJfQorCQlpZiAocGxhbnNvdXJjZS0+cGFyYW1f b3JpZ2NvbHMpCisJCXsKKwkJCW5ld3NvdXJjZS0+cGFyYW1fb3JpZ2NvbHMgPSBwYWxsb2Nf YXJyYXkoQXR0ck51bWJlciwgcGxhbnNvdXJjZS0+bnVtX3BhcmFtcyk7CisJCQltZW1jcHko bmV3c291cmNlLT5wYXJhbV9vcmlnY29scywgcGxhbnNvdXJjZS0+cGFyYW1fb3JpZ2NvbHMs CisJCQkJICAgcGxhbnNvdXJjZS0+bnVtX3BhcmFtcyAqIHNpemVvZihBdHRyTnVtYmVyKSk7 CisJCX0KIAl9Ci0JZWxzZQotCQluZXdzb3VyY2UtPnBhcmFtX3R5cGVzID0gTlVMTDsKIAlu ZXdzb3VyY2UtPm51bV9wYXJhbXMgPSBwbGFuc291cmNlLT5udW1fcGFyYW1zOwogCW5ld3Nv dXJjZS0+cGFyc2VyU2V0dXAgPSBwbGFuc291cmNlLT5wYXJzZXJTZXR1cDsKIAluZXdzb3Vy Y2UtPnBhcnNlclNldHVwQXJnID0gcGxhbnNvdXJjZS0+cGFyc2VyU2V0dXBBcmc7CkBAIC0x NTQ5LDggKzE1NjgsNiBAQCBDb3B5Q2FjaGVkUGxhbihDYWNoZWRQbGFuU291cmNlICpwbGFu c291cmNlKQogCW5ld3NvdXJjZS0+Zml4ZWRfcmVzdWx0ID0gcGxhbnNvdXJjZS0+Zml4ZWRf cmVzdWx0OwogCWlmIChwbGFuc291cmNlLT5yZXN1bHREZXNjKQogCQluZXdzb3VyY2UtPnJl c3VsdERlc2MgPSBDcmVhdGVUdXBsZURlc2NDb3B5KHBsYW5zb3VyY2UtPnJlc3VsdERlc2Mp OwotCWVsc2UKLQkJbmV3c291cmNlLT5yZXN1bHREZXNjID0gTlVMTDsKIAluZXdzb3VyY2Ut PmNvbnRleHQgPSBzb3VyY2VfY29udGV4dDsKIAogCXF1ZXJ5dHJlZV9jb250ZXh0ID0gQWxs b2NTZXRDb250ZXh0Q3JlYXRlKHNvdXJjZV9jb250ZXh0LApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3N5c2NhY2hlLmMKaW5kZXggZWVjNjQ0ZWM4NDg5Li42MzM3ZjI3YmZjZmQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYwpAQCAtMjksNyArMjksMTAgQEAKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0 aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMjY3LDYgKzI3MCw0MyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJMjU2CiAJfSwKKwl7 CisJCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCAvKiBDRUtEQVRBQ0VLQ01LICovCisJ CUNvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLAorCQkyLAorCQl7CisJCQlBbnVtX3Bn X2NvbGVuY2tleWRhdGFfY2tkY2VraWQsCisJCQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tk Y21raWQsCisJCX0sCisJCTgKKwl9LAorCXsKKwkJQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9u SWQsIC8qIENFS0RBVEFPSUQgKi8KKwkJQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsCisJ CTEsCisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9vaWQsCisJCX0sCisJCTgKKwl9 LAorCXsKKwkJQ29sdW1uRW5jS2V5UmVsYXRpb25JZCwgLyogQ0VLTkFNRSAqLworCQlDb2x1 bW5FbmNLZXlOYW1lSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xlbmNrZXlf Y2VrbmFtZSwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5FbmNLZXlSZWxhdGlvbklk LCAvKiBDRUtPSUQgKi8KKwkJQ29sdW1uRW5jS2V5T2lkSW5kZXhJZCwKKwkJMSwKKwkJewor CQkJQW51bV9wZ19jb2xlbmNrZXlfb2lkLAorCQl9LAorCQk4CisJfSwKIAl7T3BlcmF0b3JD bGFzc1JlbGF0aW9uSWQsCS8qIENMQUFNTkFNRU5TUCAqLwogCQlPcGNsYXNzQW1OYW1lTnNw SW5kZXhJZCwKIAkJMywKQEAgLTI4OSw2ICszMjksMjQgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBjYWNoZWRlc2MgY2FjaGVpbmZvW10gPSB7CiAJCX0sCiAJCTgKIAl9LAorCXsKKwkJQ29s dW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgLyogQ01LTkFNRSAqLworCQlDb2x1bW5NYXN0ZXJL ZXlOYW1lSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21r bmFtZSwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklk LAkvKiBDTUtPSUQgKi8KKwkJQ29sdW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwKKwkJMSwKKwkJ eworCQkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfb2lkLAorCQl9LAorCQk4CisJfSwKIAl7Q29s bGF0aW9uUmVsYXRpb25JZCwJCS8qIENPTExOQU1FRU5DTlNQICovCiAJCUNvbGxhdGlvbk5h bWVFbmNOc3BJbmRleElkLAogCQkzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv bWIvbWJ1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jCmluZGV4IDQ3 NGFiNDc2ZjVmYi4uMzNlODcxZmYwNjA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9tYi9tYnV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jCkBA IC0zNiw3ICszNiw5IEBACiAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIKICNp bmNsdWRlICJtYi9wZ193Y2hhci5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtdXRpbHMuaCIKICNp bmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgpAQCAtMTI5LDYgKzEzMSwxMiBAQCBQcmVwYXJl Q2xpZW50RW5jb2RpbmcoaW50IGVuY29kaW5nKQogCQllbmNvZGluZyA9PSBQR19TUUxfQVND SUkpCiAJCXJldHVybiAwOwogCisJLyoKKwkgKiBDYW5ub3QgZG8gY29udmVyc2lvbiB3aGVu IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuCisJICovCisJaWYgKE15UHJvY1BvcnQt PmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXJldHVybiAtMTsKKwogCWlmIChJc1Ry YW5zYWN0aW9uU3RhdGUoKSkKIAl7CiAJCS8qCkBAIC0yMzYsNiArMjQ0LDEyIEBAIFNldENs aWVudEVuY29kaW5nKGludCBlbmNvZGluZykKIAkJcmV0dXJuIDA7CiAJfQogCisJLyoKKwkg KiBDYW5ub3QgZG8gY29udmVyc2lvbiB3aGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJs ZWQuCisJICovCisJaWYgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQp CisJCXJldHVybiAtMTsKKwogCS8qCiAJICogU2VhcmNoIHRoZSBjYWNoZSBmb3IgdGhlIGVu dHJ5IHByZXZpb3VzbHkgcHJlcGFyZWQgYnkKIAkgKiBQcmVwYXJlQ2xpZW50RW5jb2Rpbmc7 IGlmIHRoZXJlIGlzbid0IG9uZSwgd2UgbG9zZS4gIFdoaWxlIGF0IGl0LApAQCAtMjk2LDcg KzMxMCw5IEBAIEluaXRpYWxpemVDbGllbnRFbmNvZGluZyh2b2lkKQogCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJjb252ZXJz aW9uIGJldHdlZW4gJXMgYW5kICVzIGlzIG5vdCBzdXBwb3J0ZWQiLAogCQkJCQkJcGdfZW5j Mm5hbWVfdGJsW3BlbmRpbmdfY2xpZW50X2VuY29kaW5nXS5uYW1lLAotCQkJCQkJR2V0RGF0 YWJhc2VFbmNvZGluZ05hbWUoKSkpKTsKKwkJCQkJCUdldERhdGFiYXNlRW5jb2RpbmdOYW1l KCkpLAorCQkJCSAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkgPwor CQkJCSBlcnJkZXRhaWwoIkVuY29kaW5nIGNvbnZlcnNpb24gaXMgbm90IHBvc3NpYmxlIHdo ZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4iKSA6IDApKTsKIAl9CiAKIAkvKgpk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19kdW1w L2NvbW1vbi5jCmluZGV4IDQ0ZmE1MmNjNTVmZS4uODlmZWNlYjNiZGUxIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1v bi5jCkBAIC0yMDEsNiArMjAxLDEyIEBAIGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91dCwg aW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgdXNlci1kZWZpbmVk IGNvbGxhdGlvbnMiKTsKIAkodm9pZCkgZ2V0Q29sbGF0aW9ucyhmb3V0LCAmbnVtQ29sbGF0 aW9ucyk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyBjb2x1bW4gbWFzdGVyIGtleXMiKTsK KwlnZXRDb2x1bW5NYXN0ZXJLZXlzKGZvdXQpOworCisJcGdfbG9nX2luZm8oInJlYWRpbmcg Y29sdW1uIGVuY3J5cHRpb24ga2V5cyIpOworCWdldENvbHVtbkVuY3J5cHRpb25LZXlzKGZv dXQpOworCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgdXNlci1kZWZpbmVkIGNvbnZlcnNpb25z Iik7CiAJZ2V0Q29udmVyc2lvbnMoZm91dCwgJm51bUNvbnZlcnNpb25zKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oCmluZGV4IGU4Yjc4OTgyOTcxZS4uZjg5ZGFhYTIzMTcxIDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2JhY2t1cC5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgc3RydWN0IF9jb25uUGFyYW1z CiAJY2hhcgkgICAqcGdob3N0OwogCWNoYXIJICAgKnVzZXJuYW1lOwogCXRyaXZhbHVlCXBy b21wdFBhc3N3b3JkOworCWludAkJCWNvbHVtbl9lbmNyeXB0aW9uOwogCS8qIElmIG5vdCBO VUxMLCB0aGlzIG92ZXJyaWRlcyB0aGUgZGJuYW1lIG9idGFpbmVkIGZyb20gY29tbWFuZCBs aW5lICovCiAJLyogKGJ1dCAqb25seSogdGhlIERCIG5hbWUsIG5vdCBhbnl0aGluZyBlbHNl IGluIHRoZSBjb25uc3RyaW5nKSAqLwogCWNoYXIJICAgKm92ZXJyaWRlX2RibmFtZTsKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCBmMzljMGZhMzZmZGMuLjk3 MWVhNGI2YzczNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAt MzQwOCw2ICszNDA4LDggQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1 ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCiAJLyogb2JqZWN0cyB0aGF0IGRvbid0IHJlcXVp cmUgc3BlY2lhbCBkZWNvcmF0aW9uICovCiAJaWYgKHN0cmNtcCh0eXBlLCAiQ09MTEFUSU9O IikgPT0gMCB8fAorCQlzdHJjbXAodHlwZSwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIpID09 IDAgfHwKKwkJc3RyY21wKHR5cGUsICJDT0xVTU4gTUFTVEVSIEtFWSIpID09IDAgfHwKIAkJ c3RyY21wKHR5cGUsICJDT05WRVJTSU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIkRP TUFJTiIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJGT1JFSUdOIFRBQkxFIikgPT0gMCB8 fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCmluZGV4IDI4YmFhNjhmZDRlOS4uOTYwYzNmMzlh OTFjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9kYi5jCkBAIC0xMzMsOCArMTMzLDggQEAgQ29u bmVjdERhdGFiYXNlKEFyY2hpdmUgKkFIWCwKIAkgKi8KIAlkbwogCXsKLQkJY29uc3QgY2hh ciAqa2V5d29yZHNbOF07Ci0JCWNvbnN0IGNoYXIgKnZhbHVlc1s4XTsKKwkJY29uc3QgY2hh ciAqa2V5d29yZHNbOV07CisJCWNvbnN0IGNoYXIgKnZhbHVlc1s5XTsKIAkJaW50CQkJaSA9 IDA7CiAKIAkJLyoKQEAgLTE1OSw2ICsxNTksMTEgQEAgQ29ubmVjdERhdGFiYXNlKEFyY2hp dmUgKkFIWCwKIAkJfQogCQlrZXl3b3Jkc1tpXSA9ICJmYWxsYmFja19hcHBsaWNhdGlvbl9u YW1lIjsKIAkJdmFsdWVzW2krK10gPSBwcm9nbmFtZTsKKwkJaWYgKGNwYXJhbXMtPmNvbHVt bl9lbmNyeXB0aW9uKQorCQl7CisJCQlrZXl3b3Jkc1tpXSA9ICJjb2x1bW5fZW5jcnlwdGlv biI7CisJCQl2YWx1ZXNbaSsrXSA9ICIxIjsKKwkJfQogCQlrZXl3b3Jkc1tpXSA9IE5VTEw7 CiAJCXZhbHVlc1tpKytdID0gTlVMTDsKIAkJQXNzZXJ0KGkgPD0gbGVuZ3Rob2Yoa2V5d29y ZHMpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGRhNDI3ZjRkNGExNy4uM2M3NDI4YTYwZDA3IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2F1dGhpZF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jYXN0X2QuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2NsYXNzX2QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tl eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGVmYXVsdF9hY2xfZC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfbGFyZ2VvYmplY3RfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFy Z2VvYmplY3RfbWV0YWRhdGFfZC5oIgpAQCAtMjI2LDYgKzIyNyw4IEBAIHN0YXRpYyB2b2lk IGR1bXBBY2Nlc3NNZXRob2QoQXJjaGl2ZSAqZm91dCwgY29uc3QgQWNjZXNzTWV0aG9kSW5m byAqYW1pbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBPcGNsYXNzKEFyY2hpdmUgKmZvdXQsIGNv bnN0IE9wY2xhc3NJbmZvICpvcGNpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBPcGZhbWlseShB cmNoaXZlICpmb3V0LCBjb25zdCBPcGZhbWlseUluZm8gKm9wZmluZm8pOwogc3RhdGljIHZv aWQgZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGlu Zm8pOworc3RhdGljIHZvaWQgZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoQXJjaGl2ZSAqZm91 dCwgY29uc3QgQ2VrSW5mbyAqY2VraW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29sdW1uTWFz dGVyS2V5KEFyY2hpdmUgKmZvdXQsIGNvbnN0IENta0luZm8gKmNla2luZm8pOwogc3RhdGlj IHZvaWQgZHVtcENvbnZlcnNpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgQ29udkluZm8gKmNv bnZpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBSdWxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFJ1 bGVJbmZvICpyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wQWdnKEFyY2hpdmUgKmZvdXQsIGNv bnN0IEFnZ0luZm8gKmFnZ2luZm8pOwpAQCAtMzg1LDYgKzM4OCw3IEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCQl7ImF0dHJpYnV0ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQs ICZkb3B0LmNvbHVtbl9pbnNlcnRzLCAxfSwKIAkJeyJiaW5hcnktdXBncmFkZSIsIG5vX2Fy Z3VtZW50LCAmZG9wdC5iaW5hcnlfdXBncmFkZSwgMX0sCiAJCXsiY29sdW1uLWluc2VydHMi LCBub19hcmd1bWVudCwgJmRvcHQuY29sdW1uX2luc2VydHMsIDF9LAorCQl7ImRlY3J5cHQt ZW5jcnlwdGVkLWNvbHVtbnMiLCBub19hcmd1bWVudCwgJmRvcHQuY3BhcmFtcy5jb2x1bW5f ZW5jcnlwdGlvbiwgMX0sCiAJCXsiZGlzYWJsZS1kb2xsYXItcXVvdGluZyIsIG5vX2FyZ3Vt ZW50LCAmZG9wdC5kaXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRy aWdnZXJzIiwgbm9fYXJndW1lbnQsICZkb3B0LmRpc2FibGVfdHJpZ2dlcnMsIDF9LAogCQl7 ImVuYWJsZS1yb3ctc2VjdXJpdHkiLCBub19hcmd1bWVudCwgJmRvcHQuZW5hYmxlX3Jvd19z ZWN1cml0eSwgMX0sCkBAIC02NzcsNiArNjgxLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAq KmFyZ3YpCiAJICogLS1pbnNlcnRzIGFyZSBhbHJlYWR5IGltcGxpZWQgYWJvdmUgaWYgLS1j b2x1bW4taW5zZXJ0cyBvcgogCSAqIC0tcm93cy1wZXItaW5zZXJ0IHdlcmUgc3BlY2lmaWVk LgogCSAqLworCWlmIChkb3B0LmNwYXJhbXMuY29sdW1uX2VuY3J5cHRpb24gJiYgZG9wdC5k dW1wX2luc2VydHMgPT0gMCkKKwkJcGdfZmF0YWwoIm9wdGlvbiAtLWRlY3J5cHRfZW5jcnlw dGVkX2NvbHVtbnMgcmVxdWlyZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNl cnQsIG9yIC0tY29sdW1uLWluc2VydHMiKTsKKwogCWlmIChkb3B0LmRvX25vdGhpbmcgJiYg ZG9wdC5kdW1wX2luc2VydHMgPT0gMCkKIAkJcGdfZmF0YWwoIm9wdGlvbiAtLW9uLWNvbmZs aWN0LWRvLW5vdGhpbmcgcmVxdWlyZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1p bnNlcnQsIG9yIC0tY29sdW1uLWluc2VydHMiKTsKIApAQCAtMTAyMiw2ICsxMDI5LDcgQEAg aGVscChjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAteCwgLS1uby1wcml2 aWxlZ2VzICAgICAgICAgIGRvIG5vdCBkdW1wIHByaXZpbGVnZXMgKGdyYW50L3Jldm9rZSlc biIpKTsKIAlwcmludGYoXygiICAtLWJpbmFyeS11cGdyYWRlICAgICAgICAgICAgIGZvciB1 c2UgYnkgdXBncmFkZSB1dGlsaXRpZXMgb25seVxuIikpOwogCXByaW50ZihfKCIgIC0tY29s dW1uLWluc2VydHMgICAgICAgICAgICAgZHVtcCBkYXRhIGFzIElOU0VSVCBjb21tYW5kcyB3 aXRoIGNvbHVtbiBuYW1lc1xuIikpOworCXByaW50ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0 ZWQtY29sdW1ucyAgZGVjcnlwdCBlbmNyeXB0ZWQgY29sdW1ucyBpbiB0aGUgb3V0cHV0XG4i KSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLWRvbGxhci1xdW90aW5nICAgICBkaXNhYmxl IGRvbGxhciBxdW90aW5nLCB1c2UgU1FMIHN0YW5kYXJkIHF1b3RpbmdcbiIpKTsKIAlwcmlu dGYoXygiICAtLWRpc2FibGUtdHJpZ2dlcnMgICAgICAgICAgIGRpc2FibGUgdHJpZ2dlcnMg ZHVyaW5nIGRhdGEtb25seSByZXN0b3JlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1lbmFibGUt cm93LXNlY3VyaXR5ICAgICAgICBlbmFibGUgcm93IHNlY3VyaXR5IChkdW1wIG9ubHkgY29u dGVudCB1c2VyIGhhc1xuIgpAQCAtNTUxOCw2ICs1NTI2LDEzOCBAQCBnZXRDb2xsYXRpb25z KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtQ29sbGF0aW9ucykKIAlyZXR1cm4gY29sbGluZm87 CiB9CiAKKy8qCisgKiBnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cworICoJICBnZXQgaW5mb3Jt YXRpb24gYWJvdXQgY29sdW1uIGVuY3J5cHRpb24ga2V5cworICovCit2b2lkCitnZXRDb2x1 bW5FbmNyeXB0aW9uS2V5cyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5 OworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQludHVwczsKKwlDZWtJbmZvCSAgICpjZWtp bmZvOworCWludAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jZWtu YW1lOworCWludAkJCWlfY2Vrb3duZXI7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8 IDE2MDAwMCkKKwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwor CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCBjZWsudGFibGVv aWQsIGNlay5vaWQsIGNlay5jZWtuYW1lLFxuIgorCQkJCQkgICIgY2VrLmNla293bmVyXG4i CisJCQkJCSAgIkZST00gcGdfY29sZW5ja2V5IGNlayIpOworCisJcmVzID0gRXhlY3V0ZVNx bFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1cHMg PSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFi bGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX2Nla25hbWUg PSBQUWZudW1iZXIocmVzLCAiY2VrbmFtZSIpOworCWlfY2Vrb3duZXIgPSBQUWZudW1iZXIo cmVzLCAiY2Vrb3duZXIiKTsKKworCWNla2luZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXpl b2YoQ2VrSW5mbykpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsK KwkJUEdyZXN1bHQJICAgKnJlczI7CisJCWludAkJCQludHVwczI7CisKKwkJY2VraW5mb1tp XS5kb2JqLm9ialR5cGUgPSBET19DRUs7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC50YWJs ZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQljZWtp bmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29p ZCkpOworCQlBc3NpZ25EdW1wSWQoJmNla2luZm9baV0uZG9iaik7CisJCWNla2luZm9baV0u ZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nla25hbWUpKTsK KwkJY2VraW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGks IGlfY2Vrb3duZXIpKTsKKworCQlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksCisJCQkJCQkgICJTRUxFQ1QgKFNFTEVDVCBjbWtuYW1lIEZS T00gcGdfY2F0YWxvZy5wZ19jb2xtYXN0ZXJrZXkgV0hFUkUgcGdfY29sbWFzdGVya2V5Lm9p ZCA9IGNrZGNta2lkKSBBUyBjZWtjbWtuYW1lLFxuIgorCQkJCQkJICAiIGNrZGNta2FsZywg Y2tkZW5jdmFsXG4iCisJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0 YVxuIgorCQkJCQkJICAiV0hFUkUgY2tkY2VraWQgPSAldSIsIGNla2luZm9baV0uZG9iai5j YXRJZC5vaWQpOworCQlyZXMyID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRh LCBQR1JFU19UVVBMRVNfT0spOworCQludHVwczIgPSBQUW50dXBsZXMocmVzMik7CisJCWNl a2luZm9baV0ubnVtZGF0YSA9IG50dXBzMjsKKwkJY2VraW5mb1tpXS5jZWtjbWtuYW1lcyA9 IHBnX21hbGxvYyhzaXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2Vr Y21rYWxncyA9IHBnX21hbGxvYyhzaXplb2YoaW50KSAqIG50dXBzMik7CisJCWNla2luZm9b aV0uY2VrZW5jdmFscyA9IHBnX21hbGxvYyhzaXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJ CWZvciAoaW50IGogPSAwOyBqIDwgbnR1cHMyOyBqKyspCisJCXsKKwkJCWNla2luZm9baV0u Y2VrY21rbmFtZXNbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMyLCBqLCBQUWZudW1i ZXIocmVzMiwgImNla2Nta25hbWUiKSkpOworCQkJY2VraW5mb1tpXS5jZWtjbWthbGdzW2pd ID0gYXRvaShQUWdldHZhbHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkY21rYWxn IikpKTsKKwkJCWNla2luZm9baV0uY2VrZW5jdmFsc1tqXSA9IHBnX3N0cmR1cChQUWdldHZh bHVlKHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkZW5jdmFsIikpKTsKKwkJfQorCQlQ UWNsZWFyKHJlczIpOworCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoY2VraW5mb1tpXS5k b2JqKSwgZm91dCk7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZl cihxdWVyeSk7Cit9CisKKy8qCisgKiBnZXRDb2x1bW5NYXN0ZXJLZXlzCisgKgkgIGdldCBp bmZvcm1hdGlvbiBhYm91dCBjb2x1bW4gbWFzdGVyIGtleXMKKyAqLwordm9pZAorZ2V0Q29s dW1uTWFzdGVyS2V5cyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5Owor CVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQludHVwczsKKwlDbWtJbmZvCSAgICpjbWtpbmZv OworCWludAkJCWlfdGFibGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jbWtuYW1l OworCWludAkJCWlfY21rb3duZXI7CisJaW50CQkJaV9jbWtyZWFsbTsKKworCWlmIChmb3V0 LT5yZW1vdGVWZXJzaW9uIDwgMTYwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0 ZVBRRXhwQnVmZmVyKCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAi U0VMRUNUIGNtay50YWJsZW9pZCwgY21rLm9pZCwgY21rLmNta25hbWUsXG4iCisJCQkJCSAg IiBjbWsuY21rb3duZXIsIGNtay5jbWtyZWFsbVxuIgorCQkJCQkgICJGUk9NIHBnX2NvbG1h c3RlcmtleSBjbWsiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisK KwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQ UWZudW1iZXIocmVzLCAib2lkIik7CisJaV9jbWtuYW1lID0gUFFmbnVtYmVyKHJlcywgImNt a25hbWUiKTsKKwlpX2Nta293bmVyID0gUFFmbnVtYmVyKHJlcywgImNta293bmVyIik7CisJ aV9jbWtyZWFsbSA9IFBRZm51bWJlcihyZXMsICJjbWtyZWFsbSIpOworCisJY21raW5mbyA9 IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihDbWtJbmZvKSk7CisKKwlmb3IgKGludCBpID0g MDsgaSA8IG50dXBzOyBpKyspCisJeworCQljbWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERP X0NNSzsKKwkJY21raW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3RhYmxlb2lkKSk7CisJCWNta2luZm9baV0uZG9iai5jYXRJZC5v aWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJ ZCgmY21raW5mb1tpXS5kb2JqKTsKKwkJY21raW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfY21rbmFtZSkpOworCQljbWtpbmZvW2ldLnJvbG5h bWUgPSBnZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV9jbWtvd25lcikpOworCQlj bWtpbmZvW2ldLmNta3JlYWxtID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nt a3JlYWxtKSk7CisKKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJihjbWtpbmZvW2ldLmRvYmop LCBmb3V0KTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1 ZXJ5KTsKK30KKwogLyoKICAqIGdldENvbnZlcnNpb25zOgogICoJICByZWFkIGFsbCBjb252 ZXJzaW9ucyBpbiB0aGUgc3lzdGVtIGNhdGFsb2dzIGFuZCByZXR1cm4gdGhlbSBpbiB0aGUK QEAgLTgxMDgsNiArODI0OCw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFi bGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCWludAkJCWlfdHlwc3RvcmFnZTsK IAlpbnQJCQlpX2F0dGlkZW50aXR5OwogCWludAkJCWlfYXR0Z2VuZXJhdGVkOworCWludAkJ CWlfYXR0Y2VrbmFtZTsKKwlpbnQJCQlpX2F0dGVuY2FsZzsKKwlpbnQJCQlpX2F0dGVuY2Rl dDsKIAlpbnQJCQlpX2F0dGlzZHJvcHBlZDsKIAlpbnQJCQlpX2F0dGxlbjsKIAlpbnQJCQlp X2F0dGFsaWduOwpAQCAtODIxNywxNyArODM2MCwyOSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hp dmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAogCWlmIChm b3V0LT5yZW1vdGVWZXJzaW9uID49IDEyMDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cSwKLQkJCQkJCQkgImEuYXR0Z2VuZXJhdGVkXG4iKTsKKwkJCQkJCQkgImEuYXR0Z2VuZXJh dGVkLFxuIik7CisJZWxzZQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAorCQkJCQkJCSAi JycgQVMgYXR0Z2VuZXJhdGVkLFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxNjAwMDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkgICIoU0VMRUNUIGNl a25hbWUgRlJPTSBwZ19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykg QVMgYXR0Y2VrbmFtZSxcbiIKKwkJCQkJCSAgIkNBU0UgYXR0dHlwaWQgV0hFTiAldSBUSEVO IHRydWUgV0hFTiAldSBUSEVOIGZhbHNlIEVORCBBUyBhdHRlbmNkZXQsXG4iCisJCQkJCQkg ICJhdHRlbmNhbGdcbiIsCisJCQkJCQkgIFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZ UFRFRF9STkRPSUQpOwogCWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJ CQkgIicnIEFTIGF0dGdlbmVyYXRlZFxuIik7CisJCQkJCQkJICJOVUxMIEFTIGF0dGNla25h bWUsXG4iCisJCQkJCQkJICJOVUxMIEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCQkgIk5VTEwg QVMgYXR0ZW5jYWxnXG4iKTsKIAogCS8qIG5lZWQgbGVmdCBqb2luIHRvIHBnX3R5cGUgdG8g bm90IGZhaWwgb24gZHJvcHBlZCBjb2x1bW5zIC4uLiAqLwogCWFwcGVuZFBRRXhwQnVmZmVy KHEsCiAJCQkJCSAgIkZST00gdW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10pIEFTIHNy Yyh0YmxvaWQpXG4iCiAJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSBP TiAoc3JjLnRibG9pZCA9IGEuYXR0cmVsaWQpICIKIAkJCQkJICAiTEVGVCBKT0lOIHBnX2Nh dGFsb2cucGdfdHlwZSB0ICIKLQkJCQkJICAiT04gKGEuYXR0dHlwaWQgPSB0Lm9pZClcbiIK KwkJCQkJICAiT04gKENBU0UgV0hFTiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRy ZWFsdHlwaWQgRUxTRSBhLmF0dHR5cGlkIEVORCA9IHQub2lkKVxuIgogCQkJCQkgICJXSEVS RSBhLmF0dG51bSA+IDA6OnBnX2NhdGFsb2cuaW50MlxuIgogCQkJCQkgICJPUkRFUiBCWSBh LmF0dHJlbGlkLCBhLmF0dG51bSIsCiAJCQkJCSAgdGJsb2lkcy0+ZGF0YSk7CkBAIC04MjQ2 LDYgKzg0MDEsOSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAq dGJsaW5mbywgaW50IG51bVRhYmxlcykKIAlpX3R5cHN0b3JhZ2UgPSBQUWZudW1iZXIocmVz LCAidHlwc3RvcmFnZSIpOwogCWlfYXR0aWRlbnRpdHkgPSBQUWZudW1iZXIocmVzLCAiYXR0 aWRlbnRpdHkiKTsKIAlpX2F0dGdlbmVyYXRlZCA9IFBRZm51bWJlcihyZXMsICJhdHRnZW5l cmF0ZWQiKTsKKwlpX2F0dGNla25hbWUgPSBQUWZudW1iZXIocmVzLCAiYXR0Y2VrbmFtZSIp OworCWlfYXR0ZW5jZGV0ID0gUFFmbnVtYmVyKHJlcywgImF0dGVuY2RldCIpOworCWlfYXR0 ZW5jYWxnID0gUFFmbnVtYmVyKHJlcywgImF0dGVuY2FsZyIpOwogCWlfYXR0aXNkcm9wcGVk ID0gUFFmbnVtYmVyKHJlcywgImF0dGlzZHJvcHBlZCIpOwogCWlfYXR0bGVuID0gUFFmbnVt YmVyKHJlcywgImF0dGxlbiIpOwogCWlfYXR0YWxpZ24gPSBQUWZudW1iZXIocmVzLCAiYXR0 YWxpZ24iKTsKQEAgLTgzMDcsNiArODQ2NSw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAq Zm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQl0YmluZm8tPnR5 cHN0b3JhZ2UgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7 CiAJCXRiaW5mby0+YXR0aWRlbnRpdHkgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAq IHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+YXR0Z2VuZXJhdGVkID0gKGNoYXIgKikgcGdf bWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhcikpOworCQl0YmluZm8tPmF0dGNla25hbWUg PSAoY2hhciAqKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoY2hhciAqKSk7CisJCXRi aW5mby0+YXR0ZW5jZGV0ID0gKGJvb2wgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2Yo Ym9vbCkpOworCQl0YmluZm8tPmF0dGVuY2FsZyA9IChpbnQgKikgcGdfbWFsbG9jKG51bWF0 dHMgKiBzaXplb2YoaW50KSk7CiAJCXRiaW5mby0+YXR0aXNkcm9wcGVkID0gKGJvb2wgKikg cGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoYm9vbCkpOwogCQl0YmluZm8tPmF0dGxlbiA9 IChpbnQgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoaW50KSk7CiAJCXRiaW5mby0+ YXR0YWxpZ24gPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7 CkBAIC04MzM1LDYgKzg0OTYsMTggQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBU YWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQl0YmluZm8tPmF0dGlkZW50 aXR5W2pdID0gKihQUWdldHZhbHVlKHJlcywgciwgaV9hdHRpZGVudGl0eSkpOwogCQkJdGJp bmZvLT5hdHRnZW5lcmF0ZWRbal0gPSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGdlbmVy YXRlZCkpOwogCQkJdGJpbmZvLT5uZWVkc19vdmVycmlkZSA9IHRiaW5mby0+bmVlZHNfb3Zl cnJpZGUgfHwgKHRiaW5mby0+YXR0aWRlbnRpdHlbal0gPT0gQVRUUklCVVRFX0lERU5USVRZ X0FMV0FZUyk7CisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRjZWtuYW1lKSkK KwkJCQl0YmluZm8tPmF0dGNla25hbWVbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IHIsIGlfYXR0Y2VrbmFtZSkpOworCQkJZWxzZQorCQkJCXRiaW5mby0+YXR0Y2VrbmFtZVtq XSA9IE5VTEw7CisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRlbmNkZXQpKQor CQkJCXRiaW5mby0+YXR0ZW5jZGV0W2pdID0gKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGVu Y2RldClbMF0gPT0gJ3QnKTsKKwkJCWVsc2UKKwkJCQl0YmluZm8tPmF0dGVuY2RldFtqXSA9 IDA7CisJCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRlbmNhbGcpKQorCQkJCXRi aW5mby0+YXR0ZW5jYWxnW2pdID0gYXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRlbmNh bGcpKTsKKwkJCWVsc2UKKwkJCQl0YmluZm8tPmF0dGVuY2FsZ1tqXSA9IDA7CiAJCQl0Ymlu Zm8tPmF0dGlzZHJvcHBlZFtqXSA9IChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRpc2Ryb3Bw ZWQpWzBdID09ICd0Jyk7CiAJCQl0YmluZm8tPmF0dGxlbltqXSA9IGF0b2koUFFnZXR2YWx1 ZShyZXMsIHIsIGlfYXR0bGVuKSk7CiAJCQl0YmluZm8tPmF0dGFsaWduW2pdID0gKihQUWdl dHZhbHVlKHJlcywgciwgaV9hdHRhbGlnbikpOwpAQCAtOTg1OSw2ICsxMDAzMiwxMiBAQCBk dW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmop CiAJCWNhc2UgRE9fT1BGQU1JTFk6CiAJCQlkdW1wT3BmYW1pbHkoZm91dCwgKGNvbnN0IE9w ZmFtaWx5SW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX0NFSzoKKwkJCWR1 bXBDb2x1bW5FbmNyeXB0aW9uS2V5KGZvdXQsIChjb25zdCBDZWtJbmZvICopIGRvYmopOwor CQkJYnJlYWs7CisJCWNhc2UgRE9fQ01LOgorCQkJZHVtcENvbHVtbk1hc3RlcktleShmb3V0 LCAoY29uc3QgQ21rSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwogCQljYXNlIERPX0NPTExB VElPTjoKIAkJCWR1bXBDb2xsYXRpb24oZm91dCwgKGNvbnN0IENvbGxJbmZvICopIGRvYmop OwogCQkJYnJlYWs7CkBAIC0xMzI1Miw2ICsxMzQzMSwxNTMgQEAgZHVtcENvbGxhdGlvbihB cmNoaXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pCiAJZnJlZShxY29sbG5h bWUpOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqCitnZXRfZW5jYWxnX25hbWUoaW50IG51 bSkKK3sKKwlzd2l0Y2ggKG51bSkKKwl7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hB XzE6CisJCQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzEiOworCQljYXNlIFBHX0NNS19SU0FF U19PQUVQX1NIQV8yNTY6CisJCQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzI1NiI7CisKKwkJ Y2FzZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQlyZXR1cm4g IkFFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9B RVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzE5Ml9DQkNf SE1BQ19TSEFfMzg0IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NI QV8zODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJ Y2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQlyZXR1cm4g IkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfNTEyIjsKKworCQlkZWZhdWx0OgorCQkJcmV0 dXJuIE5VTEw7CisJfQorfQorCisvKgorICogZHVtcENvbHVtbkVuY3J5cHRpb25LZXkKKyAq CSAgZHVtcCB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgZ2l2ZW4gY29sdW1uIGVuY3J5cHRpb24g a2V5CisgKi8KK3N0YXRpYyB2b2lkCitkdW1wQ29sdW1uRW5jcnlwdGlvbktleShBcmNoaXZl ICpmb3V0LCBjb25zdCBDZWtJbmZvICpjZWtpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0 ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5 OworCWNoYXIJICAgKnFjZWtuYW1lOworCisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkg ZHVtcCAqLworCWlmIChkb3B0LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNy ZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJ cWNla25hbWUgPSBwZ19zdHJkdXAoZm10SWQoY2VraW5mby0+ZG9iai5uYW1lKSk7CisKKwlh cHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgJXM7 XG4iLAorCQkJCQkgIHFjZWtuYW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAlcyBXSVRIIFZBTFVFUyAiLAorCQkJCQkg IHFjZWtuYW1lKTsKKworCWZvciAoaW50IGkgPSAwOyBpIDwgY2VraW5mby0+bnVtZGF0YTsg aSsrKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIoIik7CisKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJjb2x1bW5fbWFzdGVyX2tleSA9ICVzLCAiLCBmbXRJZChj ZWtpbmZvLT5jZWtjbWtuYW1lc1tpXSkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwg ImFsZ29yaXRobSA9ICclcycsICIsIGdldF9lbmNhbGdfbmFtZShjZWtpbmZvLT5jZWtjbWth bGdzW2ldKSk7CisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiZW5jcnlwdGVkX3ZhbHVl ID0gIik7CisJCWFwcGVuZFN0cmluZ0xpdGVyYWxBSChxdWVyeSwgY2VraW5mby0+Y2VrZW5j dmFsc1tpXSwgZm91dCk7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIpIik7CisJ CWlmIChpIDwgY2VraW5mby0+bnVtZGF0YSAtIDEpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1 ZXJ5LCAiLCAiKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIjtcbiIp OworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJ T04pCisJCUFyY2hpdmVFbnRyeShmb3V0LCBjZWtpbmZvLT5kb2JqLmNhdElkLCBjZWtpbmZv LT5kb2JqLmR1bXBJZCwKKwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY2VraW5mby0+ZG9i ai5uYW1lLAorCQkJCQkJCQkgIC5vd25lciA9IGNla2luZm8tPnJvbG5hbWUsCisJCQkJCQkJ CSAgLmRlc2NyaXB0aW9uID0gIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsCisJCQkJCQkJCSAg LnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0g cXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJ aWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1 bXBDb21tZW50KGZvdXQsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiLCBxY2VrbmFtZSwKKwkJ CQkJTlVMTCwgY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJY2VraW5mby0+ZG9iai5jYXRJZCwg MCwgY2VraW5mby0+ZG9iai5kdW1wSWQpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX1NFQ0xBQkVMKQorCQlkdW1wU2VjTGFiZWwoZm91dCwgIkNPTFVN TiBFTkNSWVBUSU9OIEtFWSIsIHFjZWtuYW1lLAorCQkJCQkgTlVMTCwgY2VraW5mby0+cm9s bmFtZSwKKwkJCQkJIGNla2luZm8tPmRvYmouY2F0SWQsIDAsIGNla2luZm8tPmRvYmouZHVt cElkKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZm ZXIocXVlcnkpOworCWZyZWUocWNla25hbWUpOworfQorCisvKgorICogZHVtcENvbHVtbk1h c3RlcktleQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4g bWFzdGVyIGtleQorICovCitzdGF0aWMgdm9pZAorZHVtcENvbHVtbk1hc3RlcktleShBcmNo aXZlICpmb3V0LCBjb25zdCBDbWtJbmZvICpjbWtpbmZvKQoreworCUR1bXBPcHRpb25zICpk b3B0ID0gZm91dC0+ZG9wdDsKKwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1 ZXJ5OworCWNoYXIJICAgKnFjbWtuYW1lOworCisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9u bHkgZHVtcCAqLworCWlmIChkb3B0LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9 IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwor CisJcWNta25hbWUgPSBwZ19zdHJkdXAoZm10SWQoY21raW5mby0+ZG9iai5uYW1lKSk7CisK KwlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAlcztc biIsCisJCQkJCSAgcWNta25hbWUpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgJXMgV0lUSCAoIiwKKwkJCQkJICBxY21rbmFtZSk7 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgInJlYWxtID0gIik7CisJYXBwZW5kU3Ry aW5nTGl0ZXJhbEFIKHF1ZXJ5LCBjbWtpbmZvLT5jbWtyZWFsbSwgZm91dCk7CisKKwlhcHBl bmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIik7XG4iKTsKKworCWlmIChjbWtpbmZvLT5kb2Jq LmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlBcmNoaXZlRW50cnkoZm91 dCwgY21raW5mby0+ZG9iai5jYXRJZCwgY21raW5mby0+ZG9iai5kdW1wSWQsCisJCQkJCSBB UkNISVZFX09QVFMoLnRhZyA9IGNta2luZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJICAub3du ZXIgPSBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJDT0xV TU4gTUFTVEVSIEtFWSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRB LAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRy b3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERV TVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJDT0xVTU4gTUFT VEVSIEtFWSIsIHFjbWtuYW1lLAorCQkJCQlOVUxMLCBjbWtpbmZvLT5yb2xuYW1lLAorCQkJ CQljbWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlp ZiAoY21raW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwpCisJCWR1 bXBTZWNMYWJlbChmb3V0LCAiQ09MVU1OIE1BU1RFUiBLRVkiLCBxY21rbmFtZSwKKwkJCQkJ IE5VTEwsIGNta2luZm8tPnJvbG5hbWUsCisJCQkJCSBjbWtpbmZvLT5kb2JqLmNhdElkLCAw LCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIoZGVscSk7 CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwlmcmVlKHFjbWtuYW1lKTsKK30KKwog LyoKICAqIGR1bXBDb252ZXJzaW9uCiAgKgkgIHdyaXRlIG91dCBhIHNpbmdsZSBjb252ZXJz aW9uIGRlZmluaXRpb24KQEAgLTE1MzM1LDYgKzE1NjYxLDIyIEBAIGR1bXBUYWJsZVNjaGVt YShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkJCQkg IHRiaW5mby0+YXR0dHlwbmFtZXNbal0pOwogCQkJCQl9CiAKKwkJCQkJaWYgKHRiaW5mby0+ YXR0Y2VrbmFtZVtqXSkKKwkJCQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBF TkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gJXMsICIsCisJCQkJCQkJ CQkJICBmbXRJZCh0YmluZm8tPmF0dGNla25hbWVbal0pKTsKKwkJCQkJCS8qCisJCQkJCQkg KiBUbyByZWR1Y2Ugb3V0cHV0IHNpemUsIHdlIGRvbid0IHByaW50IHRoZSBkZWZhdWx0CisJ CQkJCQkgKiBvZiBlbmNyeXB0aW9uX3R5cGUsIGJ1dCB3ZSBkbyBwcmludCB0aGUgZGVmYXVs dCBvZgorCQkJCQkJICogYWxnb3JpdGhtLCBzaW5jZSB3ZSBtaWdodCB3YW50IHRvIGNoYW5n ZSB0byBhIG5ldworCQkJCQkJICogZGVmYXVsdCBhbGdvcml0aG0gc29tZXRpbWUgaW4gdGhl IGZ1dHVyZS4KKwkJCQkJCSAqLworCQkJCQkJaWYgKHRiaW5mby0+YXR0ZW5jZGV0W2pdKQor CQkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1p bmlzdGljLCAiKTsKKwkJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICJhbGdvcml0aG0gPSAn JXMnKSIsCisJCQkJCQkJCQkJICBnZXRfZW5jYWxnX25hbWUodGJpbmZvLT5hdHRlbmNhbGdb al0pKTsKKwkJCQkJfQorCiAJCQkJCWlmIChwcmludF9kZWZhdWx0KQogCQkJCQl7CiAJCQkJ CQlpZiAodGJpbmZvLT5hdHRnZW5lcmF0ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9T VE9SRUQpCkBAIC0xNzg5OSw2ICsxODI0MSw4IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVz KER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19BQ0NF U1NfTUVUSE9EOgogCQkJY2FzZSBET19PUENMQVNTOgogCQkJY2FzZSBET19PUEZBTUlMWToK KwkJCWNhc2UgRE9fQ0VLOgorCQkJY2FzZSBET19DTUs6CiAJCQljYXNlIERPX0NPTExBVElP TjoKIAkJCWNhc2UgRE9fQ09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaAppbmRleCA0MjdmNWQ0NWY2NWIuLmNiZGJhZTkwM2YzMyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CkBAIC00Nyw2ICs0Nyw4IEBAIHR5cGVkZWYgZW51bQogCURPX0FDQ0VTU19NRVRIT0QsCiAJ RE9fT1BDTEFTUywKIAlET19PUEZBTUlMWSwKKwlET19DRUssCisJRE9fQ01LLAogCURPX0NP TExBVElPTiwKIAlET19DT05WRVJTSU9OLAogCURPX1RBQkxFLApAQCAtMzMzLDYgKzMzNSw5 IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29sCSAgICphdHRpc2Ryb3BwZWQ7 CS8qIHRydWUgaWYgYXR0ciBpcyBkcm9wcGVkOyBkb24ndCBkdW1wIGl0ICovCiAJY2hhcgkg ICAqYXR0aWRlbnRpdHk7CiAJY2hhcgkgICAqYXR0Z2VuZXJhdGVkOworCWNoYXIJICAqKmF0 dGNla25hbWU7CisJaW50CQkgICAqYXR0ZW5jYWxnOworCWJvb2wJICAgKmF0dGVuY2RldDsK IAlpbnQJCSAgICphdHRsZW47CQkJLyogYXR0cmlidXRlIGxlbmd0aCwgdXNlZCBieSBiaW5h cnlfdXBncmFkZSAqLwogCWNoYXIJICAgKmF0dGFsaWduOwkJLyogYXR0cmlidXRlIGFsaWdu LCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJYm9vbAkgICAqYXR0aXNsb2NhbDsJCS8q IHRydWUgaWYgYXR0ciBoYXMgbG9jYWwgZGVmaW5pdGlvbiAqLwpAQCAtNjY0LDYgKzY2OSwz MCBAQCB0eXBlZGVmIHN0cnVjdCBfU3Vic2NyaXB0aW9uSW5mbwogCWNoYXIJICAgKnN1YnB1 YmxpY2F0aW9uczsKIH0gU3Vic2NyaXB0aW9uSW5mbzsKIAorLyoKKyAqIFRoZSBDZWtJbmZv IHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisg Ki8KK3R5cGVkZWYgc3RydWN0IF9DZWtJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsK Kwljb25zdCBjaGFyICpyb2xuYW1lOworCWludAkJCW51bWRhdGE7CisJLyogVGhlIGZvbGxv d2luZyBhcmUgYXJyYXlzIG9mIG51bWRhdGEgZW50cmllcyBlYWNoOiAqLworCWNoYXIJICAq KmNla2Nta25hbWVzOworCWludAkJICAgKmNla2Nta2FsZ3M7CisJY2hhcgkgICoqY2VrZW5j dmFsczsKK30gQ2VrSW5mbzsKKworLyoKKyAqIFRoZSBDbWtJbmZvIHN0cnVjdCBpcyB1c2Vk IHRvIHJlcHJlc2VudCBjb2x1bW4gbWFzdGVyIGtleS4KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg X0Nta0luZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCWNvbnN0IGNoYXIgKnJvbG5h bWU7CisJY2hhcgkgICAqY21rcmVhbG07Cit9IENta0luZm87CisKIC8qCiAgKgljb21tb24g dXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAtNzExLDYgKzc0MCw4IEBAIGV4dGVybiBBY2Nl c3NNZXRob2RJbmZvICpnZXRBY2Nlc3NNZXRob2RzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVt QWNjZXNzTWV0aG9kcyk7CiBleHRlcm4gT3BjbGFzc0luZm8gKmdldE9wY2xhc3NlcyhBcmNo aXZlICpmb3V0LCBpbnQgKm51bU9wY2xhc3Nlcyk7CiBleHRlcm4gT3BmYW1pbHlJbmZvICpn ZXRPcGZhbWlsaWVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3BmYW1pbGllcyk7CiBleHRl cm4gQ29sbEluZm8gKmdldENvbGxhdGlvbnMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1Db2xs YXRpb25zKTsKK2V4dGVybiB2b2lkIGdldENvbHVtbkVuY3J5cHRpb25LZXlzKEFyY2hpdmUg KmZvdXQpOworZXh0ZXJuIHZvaWQgZ2V0Q29sdW1uTWFzdGVyS2V5cyhBcmNoaXZlICpmb3V0 KTsKIGV4dGVybiBDb252SW5mbyAqZ2V0Q29udmVyc2lvbnMoQXJjaGl2ZSAqZm91dCwgaW50 ICpudW1Db252ZXJzaW9ucyk7CiBleHRlcm4gVGFibGVJbmZvICpnZXRUYWJsZXMoQXJjaGl2 ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQgZ2V0T3duZWRTZXFzKEFy Y2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDVkZTMyNDFlYjQ5Ni4uZTU2MmE2NzdlZDZhIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC02OSw2ICs2OSw4IEBAIGVudW0gZGJPYmpl Y3RUeXBlUHJpb3JpdGllcwogCVBSSU9fVFNURU1QTEFURSwKIAlQUklPX1RTRElDVCwKIAlQ UklPX1RTQ09ORklHLAorCVBSSU9fQ01LLAorCVBSSU9fQ0VLLAogCVBSSU9fRkRXLAogCVBS SU9fRk9SRUlHTl9TRVJWRVIsCiAJUFJJT19UQUJMRSwKQEAgLTExMSw2ICsxMTMsOCBAQCBz dGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVBSSU9fQUNDRVNT X01FVEhPRCwJCQkvKiBET19BQ0NFU1NfTUVUSE9EICovCiAJUFJJT19PUEZBTUlMWSwJCQkJ LyogRE9fT1BDTEFTUyAqLwogCVBSSU9fT1BGQU1JTFksCQkJCS8qIERPX09QRkFNSUxZICov CisJUFJJT19DRUssCQkJCQkvKiBET19DRUsgKi8KKwlQUklPX0NNSywJCQkJCS8qIERPX0NN SyAqLwogCVBSSU9fQ09MTEFUSU9OLAkJCQkvKiBET19DT0xMQVRJT04gKi8KIAlQUklPX0NP TlZFUlNJT04sCQkJLyogRE9fQ09OVkVSU0lPTiAqLwogCVBSSU9fVEFCTEUsCQkJCQkvKiBE T19UQUJMRSAqLwpAQCAtMTMyMiw2ICsxMzI2LDE2IEBAIGRlc2NyaWJlRHVtcGFibGVPYmpl Y3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJ ICJPUEVSQVRPUiBGQU1JTFkgJXMgIChJRCAlZCBPSUQgJXUpIiwKIAkJCQkJIG9iai0+bmFt ZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBE T19DRUs6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNh dElkLm9pZCk7CisJCQlyZXR1cm47CisJCWNhc2UgRE9fQ01LOgorCQkJc25wcmludGYoYnVm LCBidWZzaXplLAorCQkJCQkgIkNPTFVNTiBNQVNURVIgS0VZIChJRCAlZCBPSUQgJXUpIiwK KwkJCQkJIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CisJCQlyZXR1cm47CiAJCWNh c2UgRE9fQ09MTEFUSU9OOgogCQkJc25wcmludGYoYnVmLCBidWZzaXplLAogCQkJCQkgIkNP TExBVElPTiAlcyAgKElEICVkIE9JRCAldSkiLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXBhbGwuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKaW5kZXgg YTg3MjYyZTMzMzU3Li42OTVhMWNmMzA3OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wYWxsLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBhbGwuYwpAQCAt OTMsNiArOTMsNyBAQCBzdGF0aWMgYm9vbCBkb3N5bmMgPSB0cnVlOwogCiBzdGF0aWMgaW50 CWJpbmFyeV91cGdyYWRlID0gMDsKIHN0YXRpYyBpbnQJY29sdW1uX2luc2VydHMgPSAwOwor c3RhdGljIGludAlkZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zID0gMDsKIHN0YXRpYyBpbnQJ ZGlzYWJsZV9kb2xsYXJfcXVvdGluZyA9IDA7CiBzdGF0aWMgaW50CWRpc2FibGVfdHJpZ2dl cnMgPSAwOwogc3RhdGljIGludAlpZl9leGlzdHMgPSAwOwpAQCAtMTU0LDYgKzE1NSw3IEBA IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJeyJhdHRyaWJ1dGUtaW5zZXJ0cyIs IG5vX2FyZ3VtZW50LCAmY29sdW1uX2luc2VydHMsIDF9LAogCQl7ImJpbmFyeS11cGdyYWRl Iiwgbm9fYXJndW1lbnQsICZiaW5hcnlfdXBncmFkZSwgMX0sCiAJCXsiY29sdW1uLWluc2Vy dHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNlcnRzLCAxfSwKKwkJeyJkZWNyeXB0LWVu Y3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJndW1lbnQsICZkZWNyeXB0X2VuY3J5cHRlZF9jb2x1 bW5zLCAxfSwKIAkJeyJkaXNhYmxlLWRvbGxhci1xdW90aW5nIiwgbm9fYXJndW1lbnQsICZk aXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRyaWdnZXJzIiwgbm9f YXJndW1lbnQsICZkaXNhYmxlX3RyaWdnZXJzLCAxfSwKIAkJeyJleGNsdWRlLWRhdGFiYXNl IiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDZ9LApAQCAtNDI0LDYgKzQyNiw4IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdk dW1wb3B0cywgIiAtLWJpbmFyeS11cGdyYWRlIik7CiAJaWYgKGNvbHVtbl9pbnNlcnRzKQog CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBvcHRzLCAiIC0tY29sdW1uLWluc2VydHMi KTsKKwlpZiAoZGVjcnlwdF9lbmNyeXB0ZWRfY29sdW1ucykKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIocGdkdW1wb3B0cywgIiAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMiKTsKIAlp ZiAoZGlzYWJsZV9kb2xsYXJfcXVvdGluZykKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdk dW1wb3B0cywgIiAtLWRpc2FibGUtZG9sbGFyLXF1b3RpbmciKTsKIAlpZiAoZGlzYWJsZV90 cmlnZ2VycykKQEAgLTY0OSw2ICs2NTMsNyBAQCBoZWxwKHZvaWQpCiAJcHJpbnRmKF8oIiAg LXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBkbyBub3QgZHVtcCBwcml2aWxlZ2VzIChn cmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1iaW5hcnktdXBncmFkZSAgICAg ICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRpbGl0aWVzIG9ubHlcbiIpKTsKIAlwcmlu dGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAgICAgICAgIGR1bXAgZGF0YSBhcyBJTlNF UlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNcbiIpKTsKKwlwcmludGYoXygiICAtLWRl Y3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5cHQgZW5jcnlwdGVkIGNvbHVtbnMgaW4g dGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIgIC0tZGlzYWJsZS1kb2xsYXItcXVvdGlu ZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywgdXNlIFNRTCBzdGFuZGFyZCBxdW90aW5n XG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxlLXRyaWdnZXJzICAgICAgICAgICBkaXNh YmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkgcmVzdG9yZVxuIikpOwogCXByaW50Zihf KCIgIC0tZXhjbHVkZS1kYXRhYmFzZT1QQVRURVJOICAgZXhjbHVkZSBkYXRhYmFzZXMgd2hv c2UgbmFtZSBtYXRjaGVzIFBBVFRFUk5cbiIpKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKaW5kZXggOGRjMWYwZWNjYjVkLi43OGQ5NjFhOGI5YzcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC01OTMsNiArNTkzLDE4IEBACiAJCXVubGlrZSAgICA9PiB7ICVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsIG5vX293bmVyID0+IDEsIH0sCiAJfSwKIAorCSdBTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBPV05FUiBUTycgPT4geworCQlyZWdleHAg PT4gcXIvXkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVSIFRPIC4rOy9t LAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0s CisJCXVubGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwKKworCSdBTFRFUiBDT0xV TU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRPJyA9PiB7CisJCXJlZ2V4cCA9PiBxci9eQUxU RVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBPV05FUiBUTyAuKzsvbSwKKwkJbGlrZSAgID0+ IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4g eyBub19vd25lciA9PiAxLCB9LAorCX0sCisKIAknQUxURVIgRk9SRUlHTiBEQVRBIFdSQVBQ RVIgZHVtbXkgT1dORVIgVE8nID0+IHsKIAkJcmVnZXhwID0+IHFyL15BTFRFUiBGT1JFSUdO IERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTyAuKzsvbSwKIAkJbGlrZSAgID0+IHsgJWZ1 bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LApAQCAtMTE5Myw2ICsxMjA1LDI0 IEBACiAJCWxpa2UgICAgICA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4g MSwgfSwKIAl9LAogCisJJ0NPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEn ID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1LAorCQljcmVhdGVfc3FsICAgPT4gJ0NPTU1F TlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEKKwkJCQkJICAgSVMgXCdjb21tZW50 IG9uIGNvbHVtbiBlbmNyeXB0aW9uIGtleVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15D T01NRU5UIE9OIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdjb21tZW50IG9uIGNv bHVtbiBlbmNyeXB0aW9uIGtleSc7L20sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0 aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJfSwKKworCSdDT01NRU5UIE9OIENPTFVNTiBNQVNU RVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU1LAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMQorCQkJCQkgICBJUyBc J2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXlcJzsnLAorCQlyZWdleHAgPT4KKwkJICBx ci9eQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIElTICdjb21tZW50IG9uIGNv bHVtbiBtYXN0ZXIga2V5JzsvbSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25f cHJlX2RhdGEgPT4gMSwgfSwKKwl9LAorCiAJJ0NPTU1FTlQgT04gTEFSR0UgT0JKRUNUIC4u LicgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjUsCiAJCWNyZWF0ZV9zcWwgICA9PiAnRE8g JCQKQEAgLTE2MTEsNiArMTY0MSwyNCBAQAogCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2Vj dGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JFQVRFIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MSwKKwkJY3JlYXRlX3Nx bCAgID0+ICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMg KGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgZW5jcnlwdGVkX3ZhbHVlID0gJ1xceERFQURC RUVGJyk7IiwKKwkJcmVnZXhwICAgICAgID0+IHFyL14KKwkJCVxRQ1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNt azEsIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywgZW5jcnlwdGVkX3ZhbHVlID0g XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEg PT4gMSwgfSwKKwl9LAorCisJJ0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxJyA9PiB7 CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCAgID0+ICJDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICdteXJlYWxtJyk7IiwKKwkJcmVn ZXhwICAgICAgID0+IHFyL14KKwkJCVxRQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEg V0lUSCAocmVhbG0gPSAnbXlyZWFsbScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVs bF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCisJfSwKKwogCSdDUkVBVEUgREFU QUJBU0UgcG9zdGdyZXMnID0+IHsKIAkJcmVnZXhwID0+IHFyL14KIAkJCVxRQ1JFQVRFIERB VEFCQVNFIHBvc3RncmVzIFdJVEggVEVNUExBVEUgPSB0ZW1wbGF0ZTAgXEUKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmlu ZGV4IDc2NzJlZDllOWQ1Ni4uMzViYjA4NDVlYTEwIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bz cWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTgxNSw3ICs4 MTUsMTEgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29s IGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkKIAkJCQlzdWNjZXNzID0gZGVzY3Jp YmVUYWJsZXNwYWNlcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSAnYyc6Ci0JCQkJaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIsIDcpID09IDApCisJ CQkJaWYgKHN0cm5jbXAoY21kLCAiZGNlayIsIDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBs aXN0Q0VLcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAo Y21kLCAiZGNtayIsIDQpID09IDApCisJCQkJCXN1Y2Nlc3MgPSBsaXN0Q01LcyhwYXR0ZXJu LCBzaG93X3ZlcmJvc2UpOworCQkJCWVsc2UgaWYgKHN0cm5jbXAoY21kLCAiZGNvbmZpZyIs IDcpID09IDApCiAJCQkJCXN1Y2Nlc3MgPSBkZXNjcmliZUNvbmZpZ3VyYXRpb25QYXJhbWV0 ZXJzKHBhdHRlcm4sCiAJCQkJCQkJCQkJCQkJCQkgIHNob3dfdmVyYm9zZSwKIAkJCQkJCQkJ CQkJCQkJCSAgc2hvd19zeXN0ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAyZWFlNTE5YjFkZDguLjg1 YzI1ODM2NGEyZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE1MzIsNyArMTUzMiw3IEBAIGRlc2NyaWJl T25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJYm9vbAkJcHJpbnRU YWJsZUluaXRpYWxpemVkID0gZmFsc2U7CiAJaW50CQkJaTsKIAljaGFyCSAgICp2aWV3X2Rl ZiA9IE5VTEw7Ci0JY2hhcgkgICAqaGVhZGVyc1sxMl07CisJY2hhcgkgICAqaGVhZGVyc1sx M107CiAJUFFFeHBCdWZmZXJEYXRhIHRpdGxlOwogCVBRRXhwQnVmZmVyRGF0YSB0bXBidWY7 CiAJaW50CQkJY29sczsKQEAgLTE1NDgsNiArMTU0OCw3IEBAIGRlc2NyaWJlT25lVGFibGVE ZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJZmR3b3B0c19jb2wgPSAtMSwK IAkJCQlhdHRzdG9yYWdlX2NvbCA9IC0xLAogCQkJCWF0dGNvbXByZXNzaW9uX2NvbCA9IC0x LAorCQkJCWF0dGNla25hbWVfY29sID0gLTEsCiAJCQkJYXR0c3RhdHRhcmdldF9jb2wgPSAt MSwKIAkJCQlhdHRkZXNjcl9jb2wgPSAtMTsKIAlpbnQJCQludW1yb3dzOwpAQCAtMTg0Niw3 ICsxODQ3LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1h bmFtZSwKIAljb2xzID0gMDsKIAlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiU0VMRUNUIGEu YXR0bmFtZSIpOwogCWF0dG5hbWVfY29sID0gY29scysrOwotCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUoYS5hdHR0eXBpZCwgYS5h dHR0eXBtb2QpIik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIixcbiAgcGdfY2F0 YWxvZy5mb3JtYXRfdHlwZShDQVNFIFdIRU4gYS5hdHRyZWFsdHlwaWQgPD4gMCBUSEVOIGEu YXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQsIGEuYXR0dHlwbW9kKSIpOwogCWF0 dHR5cGVfY29sID0gY29scysrOwogCiAJaWYgKHNob3dfY29sdW1uX2RldGFpbHMpCkBAIC0x ODYwLDcgKzE4NjEsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpz Y2hlbWFuYW1lLAogCQlhdHRyZGVmX2NvbCA9IGNvbHMrKzsKIAkJYXR0bm90bnVsbF9jb2wg PSBjb2xzKys7CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIChTRUxFQ1Qg Yy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cu cGdfdHlwZSB0XG4iCi0JCQkJCQkJICIgICBXSEVSRSBjLm9pZCA9IGEuYXR0Y29sbGF0aW9u IEFORCB0Lm9pZCA9IGEuYXR0dHlwaWQgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlwY29s bGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKKwkJCQkJCQkgIiAgIFdIRVJFIGMub2lkID0g YS5hdHRjb2xsYXRpb24gQU5EIHQub2lkID0gKENBU0UgV0hFTiBhLmF0dHJlYWx0eXBpZCA8 PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxTRSBhLmF0dHR5cGlkIEVORCkgQU5EIGEuYXR0 Y29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKIAkJYXR0 Y29sbF9jb2wgPSBjb2xzKys7CiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIGEuYXR0aWRlbnRpdHkiKTsKQEAg LTE5MTEsNiArMTkxMiwxNSBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFy ICpzY2hlbWFuYW1lLAogCQkJYXR0Y29tcHJlc3Npb25fY29sID0gY29scysrOwogCQl9CiAK KwkJLyogZW5jcnlwdGlvbiBpbmZvICovCisJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE2MDAw MCAmJgorCQkJIXBzZXQuaGlkZV9jb2x1bW5fZW5jcnlwdGlvbiAmJgorCQkJKHRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04pKQorCQl7CisJCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cigmYnVmLCAiLFxuICAoU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xlbmNrZXkg Y2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFtZSIpOworCQkJYXR0 Y2VrbmFtZV9jb2wgPSBjb2xzKys7CisJCX0KKwogCQkvKiBzdGF0cyB0YXJnZXQsIGlmIHJl bGV2YW50IHRvIHJlbGtpbmQgKi8KIAkJaWYgKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJ TkRfUkVMQVRJT04gfHwKIAkJCXRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfSU5ERVgg fHwKQEAgLTIwMzQsNiArMjA0NCw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWhlYWRlcnNbY29scysrXSA9IGdldHRleHRfbm9vcCgi U3RvcmFnZSIpOwogCWlmIChhdHRjb21wcmVzc2lvbl9jb2wgPj0gMCkKIAkJaGVhZGVyc1tj b2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb21wcmVzc2lvbiIpOworCWlmIChhdHRjZWtuYW1l X2NvbCA+PSAwKQorCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0ZXh0X25vb3AoIkVuY3J5cHRp b24iKTsKIAlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJaGVhZGVyc1tjb2xzKytd ID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQiKTsKIAlpZiAoYXR0ZGVzY3JfY29sID49 IDApCkBAIC0yMTI2LDYgKzIxMzgsMTcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29u c3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkgIGZhbHNlLCBmYWxzZSk7CiAJCX0KIAor CQkvKiBDb2x1bW4gZW5jcnlwdGlvbiAqLworCQlpZiAoYXR0Y2VrbmFtZV9jb2wgPj0gMCkK KwkJeworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGF0dGNla25hbWVfY29sKSkKKwkJ CQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1ZShyZXMsIGksIGF0dGNla25h bWVfY29sKSwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQkJZWxzZQorCQkJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCAiIiwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOworCQl9 CisKIAkJLyogU3RhdGlzdGljcyB0YXJnZXQsIGlmIHRoZSByZWxraW5kIHN1cHBvcnRzIHRo aXMgZmVhdHVyZSAqLwogCQlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkKIAkJCXByaW50 VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywgaSwgYXR0c3RhdHRhcmdldF9j b2wpLApAQCAtNDQ3Niw2ICs0NDk5LDEzNCBAQCBsaXN0Q29udmVyc2lvbnMoY29uc3QgY2hh ciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLCBib29sIHNob3dTeXN0ZW0pCiAJcmV0dXJuIHRy dWU7CiB9CiAKKy8qCisgKiBcZGNlaworICoKKyAqIExpc3RzIGNvbHVtbiBlbmNyeXB0aW9u IGtleXMuCisgKi8KK2Jvb2wKK2xpc3RDRUtzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wg dmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJlczsK KwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OworCisJaWYgKHBzZXQuc3ZlcnNp b24gPCAxNjAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2dfZXJy b3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGVu Y3J5cHRpb24uIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9u LCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJ cmV0dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRm UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUIGNla25hbWUgQVMgXCIlc1wiLCAi CisJCQkJCSAgInBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGNla293bmVyKSBBUyBcIiVz XCIsICIKKwkJCQkJICAiY21rbmFtZSBBUyBcIiVzXCIiLAorCQkJCQkgIGdldHRleHRfbm9v cCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIk1hc3RlciBrZXkiKSk7CisJaWYgKHZlcmJvc2UpCisJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsCisJCQkJCQkgICIsIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKGNl ay5vaWQsICdwZ19jb2xlbmNrZXknKSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIkRlc2NyaXB0aW9uIikpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJ CQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGVuY2tleSBjZWsgIgorCQkJCQkJICJKT0lO IHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0YSBja2QgT04gKGNlay5vaWQgPSBja2QuY2tk Y2VraWQpICIKKwkJCQkJCSAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbG1hc3RlcmtleSBjbWsg T04gKGNrZC5ja2RjbWtpZCA9IGNtay5vaWQpICIpOworCisJaWYgKCF2YWxpZGF0ZVNRTE5h bWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJTlVMTCwg ImNla25hbWUiLCBOVUxMLCBOVUxMLAorCQkJCQkJCQlOVUxMLCAxKSkKKwl7CisJCXRlcm1Q UUV4cEJ1ZmZlcigmYnVmKTsKKwkJcmV0dXJuIGZhbHNlOworCX0KKworCWFwcGVuZFBRRXhw QnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLCAzIik7CisKKwlyZXMgPSBQU1FMZXhlYyhi dWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICghcmVzKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCW15b3B0LnRpdGxlID0g XygiTGlzdCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzIik7CisJbXlvcHQudHJhbnNsYXRl X2hlYWRlciA9IHRydWU7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5 Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJu IHRydWU7Cit9CisKKy8qCisgKiBcZGNtaworICoKKyAqIExpc3RzIGNvbHVtbiBtYXN0ZXIg a2V5cy4KKyAqLworYm9vbAorbGlzdENNS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKQoreworCVBRRXhwQnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOwor CXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7CisKKwlpZiAocHNldC5zdmVyc2lv biA8IDE2MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBnX2xvZ19lcnJv cigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBjb2x1bW4gZW5j cnlwdGlvbi4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24s IGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQly ZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQ UUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1QgY21rbmFtZSBBUyBcIiVzXCIsICIK KwkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoY21rb3duZXIpIEFTIFwiJXNc IiwgIgorCQkJCQkgICJjbWtyZWFsbSBBUyBcIiVzXCIiLAorCQkJCQkgIGdldHRleHRfbm9v cCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJCQkJICBnZXR0 ZXh0X25vb3AoIlJlYWxtIikpOworCWlmICh2ZXJib3NlKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAorCQkJCQkJICAiLCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihvaWQsICdw Z19jb2xtYXN0ZXJrZXknKSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRl c2NyaXB0aW9uIikpOworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkgIlxu RlJPTSBwZ19jYXRhbG9nLnBnX2NvbG1hc3RlcmtleSAiKTsKKworCWlmICghdmFsaWRhdGVT UUxOYW1lUGF0dGVybigmYnVmLCBwYXR0ZXJuLCBmYWxzZSwgZmFsc2UsCisJCQkJCQkJCU5V TEwsICJjbWtuYW1lIiwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJTlVMTCwgMSkpCisJeworCQl0 ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSIpOworCisJcmVzID0gUFNRTGV4ZWMo YnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0 dXJuIGZhbHNlOworCisJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwlteW9wdC50aXRsZSA9 IF8oIkxpc3Qgb2YgY29sdW1uIG1hc3RlciBrZXlzIik7CisJbXlvcHQudHJhbnNsYXRlX2hl YWRlciA9IHRydWU7CisKKwlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91 dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRy dWU7Cit9CisKIC8qCiAgKiBcZGNvbmZpZwogICoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggYmQwNTFlMDlj YmJkLi5kZWJkYjYwZTExOGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5o CisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC03Niw2ICs3NiwxMiBAQCBleHRl cm4gYm9vbCBsaXN0RG9tYWlucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2Us IGJvb2wgc2hvd1N5c3RlbSk7CiAvKiBcZGMgKi8KIGV4dGVybiBib29sIGxpc3RDb252ZXJz aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UsIGJvb2wgc2hvd1N5c3Rl bSk7CiAKKy8qIFxkY2VrICovCitleHRlcm4gYm9vbCBsaXN0Q0VLcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpOworCisvKiBcZGNtayAqLworZXh0ZXJuIGJvb2wgbGlz dENNS3MoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKTsKKwogLyogXGRjb25m aWcgKi8KIGV4dGVybiBib29sIGRlc2NyaWJlQ29uZmlndXJhdGlvblBhcmFtZXRlcnMoY29u c3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlLAogCQkJCQkJCQkJCQlib29sIHNob3dT eXN0ZW0pOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAuYyBiL3NyYy9iaW4vcHNx bC9oZWxwLmMKaW5kZXggYjRlMGVjMjY4N2ZkLi4xYjlkZTE5MWY2ZDggMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjUy LDYgKzI1Miw4IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhF TFAwKCIgIFxcZEFwWytdIFtBTVBUUk4gW09QRlBUUk5dXSAgIGxpc3Qgc3VwcG9ydCBmdW5j dGlvbnMgb2Ygb3BlcmF0b3IgZmFtaWxpZXNcbiIpOwogCUhFTFAwKCIgIFxcZGJbK10gIFtQ QVRURVJOXSAgICAgIGxpc3QgdGFibGVzcGFjZXNcbiIpOwogCUhFTFAwKCIgIFxcZGNbUytd IFtQQVRURVJOXSAgICAgIGxpc3QgY29udmVyc2lvbnNcbiIpOworCUhFTFAwKCIgIFxcZGNl a1srXSBbUEFUVEVSTl0gICAgIGxpc3QgY29sdW1uIGVuY3J5cHRpb24ga2V5c1xuIik7CisJ SEVMUDAoIiAgXFxkY21rWytdIFtQQVRURVJOXSAgICAgbGlzdCBjb2x1bW4gbWFzdGVyIGtl eXNcbiIpOwogCUhFTFAwKCIgIFxcZGNvbmZpZ1srXSBbUEFUVEVSTl0gIGxpc3QgY29uZmln dXJhdGlvbiBwYXJhbWV0ZXJzXG4iKTsKIAlIRUxQMCgiICBcXGRDWytdICBbUEFUVEVSTl0g ICAgICBsaXN0IGNhc3RzXG4iKTsKIAlIRUxQMCgiICBcXGRkW1NdICBbUEFUVEVSTl0gICAg ICBzaG93IG9iamVjdCBkZXNjcmlwdGlvbnMgbm90IGRpc3BsYXllZCBlbHNld2hlcmVcbiIp OwpAQCAtNDEzLDYgKzQxNSw4IEBAIGhlbHBWYXJpYWJsZXModW5zaWduZWQgc2hvcnQgaW50 IHBhZ2VyKQogCQkgICIgICAgdHJ1ZSBpZiBsYXN0IHF1ZXJ5IGZhaWxlZCwgZWxzZSBmYWxz ZVxuIik7CiAJSEVMUDAoIiAgRkVUQ0hfQ09VTlRcbiIKIAkJICAiICAgIHRoZSBudW1iZXIg b2YgcmVzdWx0IHJvd3MgdG8gZmV0Y2ggYW5kIGRpc3BsYXkgYXQgYSB0aW1lICgwID0gdW5s aW1pdGVkKVxuIik7CisJSEVMUDAoIiAgSElERV9DT0xVTU5fRU5DUllQVElPTlxuIgorCQkg ICIgICAgaWYgc2V0LCBjb2x1bW4gZW5jcnlwdGlvbiBkZXRhaWxzIGFyZSBub3QgZGlzcGxh eWVkXG4iKTsKIAlIRUxQMCgiICBISURFX1RBQkxFQU1cbiIKIAkJICAiICAgIGlmIHNldCwg dGFibGUgYWNjZXNzIG1ldGhvZHMgYXJlIG5vdCBkaXNwbGF5ZWRcbiIpOwogCUhFTFAwKCIg IEhJREVfVE9BU1RfQ09NUFJFU1NJT05cbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9z ZXR0aW5ncy5oIGIvc3JjL2Jpbi9wc3FsL3NldHRpbmdzLmgKaW5kZXggM2ZjZTcxYjg1ZmU0 Li40YmUyMTc5MDkxNTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oCisr KyBiL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oCkBAIC0xMzcsNiArMTM3LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgX3BzcWxTZXR0aW5ncwogCWJvb2wJCXF1aWV0OwogCWJvb2wJCXNpbmdsZWxp bmU7CiAJYm9vbAkJc2luZ2xlc3RlcDsKKwlib29sCQloaWRlX2NvbHVtbl9lbmNyeXB0aW9u OwogCWJvb2wJCWhpZGVfY29tcHJlc3Npb247CiAJYm9vbAkJaGlkZV90YWJsZWFtOwogCWlu dAkJCWZldGNoX2NvdW50OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyBi L3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKaW5kZXggZjViOWUyNjhmMjAwLi4wYjgxMmYzMzIy MTEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKKysrIGIvc3JjL2Jpbi9w c3FsL3N0YXJ0dXAuYwpAQCAtMTE4OCw2ICsxMTg4LDEzIEBAIGhpZGVfY29tcHJlc3Npb25f aG9vayhjb25zdCBjaGFyICpuZXd2YWwpCiAJCQkJCQkJICZwc2V0LmhpZGVfY29tcHJlc3Np b24pOwogfQogCitzdGF0aWMgYm9vbAoraGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKGNv bnN0IGNoYXIgKm5ld3ZhbCkKK3sKKwlyZXR1cm4gUGFyc2VWYXJpYWJsZUJvb2wobmV3dmFs LCAiSElERV9DT0xVTU5fRU5DUllQVElPTiIsCisJCQkJCQkJICZwc2V0LmhpZGVfY29sdW1u X2VuY3J5cHRpb24pOworfQorCiBzdGF0aWMgYm9vbAogaGlkZV90YWJsZWFtX2hvb2soY29u c3QgY2hhciAqbmV3dmFsKQogewpAQCAtMTI1OSw2ICsxMjY2LDkgQEAgRXN0YWJsaXNoVmFy aWFibGVTcGFjZSh2b2lkKQogCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiU0hPV19D T05URVhUIiwKIAkJCQkJIHNob3dfY29udGV4dF9zdWJzdGl0dXRlX2hvb2ssCiAJCQkJCSBz aG93X2NvbnRleHRfaG9vayk7CisJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJISURF X0NPTFVNTl9FTkNSWVBUSU9OIiwKKwkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9ob29rLAorCQkJ CQkgaGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKTsKIAlTZXRWYXJpYWJsZUhvb2tzKHBz ZXQudmFycywgIkhJREVfVE9BU1RfQ09NUFJFU1NJT04iLAogCQkJCQkgYm9vbF9zdWJzdGl0 dXRlX2hvb2ssCiAJCQkJCSBoaWRlX2NvbXByZXNzaW9uX2hvb2spOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCmluZGV4IDEzMDE0ZjA3NGY0MC4uMGMzMWJiYzQ3MjhmIDEwMDY0NAotLS0gYS9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5jCkBAIC0xMTc1LDYgKzExNzUsMTYgQEAgc3RhdGljIGNvbnN0IFZlcnNpb25lZFF1ZXJ5 IFF1ZXJ5X2Zvcl9saXN0X29mX3N1YnNjcmlwdGlvbnNbXSA9IHsKIAl7MCwgTlVMTH0KIH07 CiAKK3N0YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jZWtz W10gPSB7CisJezE2MDAwMCwgIlNFTEVDVCBjZWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19j b2xlbmNrZXkgV0hFUkUgY2VrbmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisK K3N0YXRpYyBjb25zdCBWZXJzaW9uZWRRdWVyeSBRdWVyeV9mb3JfbGlzdF9vZl9jbWtzW10g PSB7CisJezE2MDAwMCwgIlNFTEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xt YXN0ZXJrZXkgV0hFUkUgY21rbmFtZSBMSUtFICclcycifSwKKwl7MCwgTlVMTH0KK307CisK IC8qCiAgKiBUaGlzIGlzIGEgbGlzdCBvZiBhbGwgInRoaW5ncyIgaW4gUGdzcWwsIHdoaWNo IGNhbiBzaG93IHVwIGFmdGVyIENSRUFURSBvcgogICogRFJPUDsgYW5kIHRoZXJlIGlzIGFs c28gYSBxdWVyeSB0byBnZXQgYSBsaXN0IG9mIHRoZW0uCkBAIC0xMjA4LDYgKzEyMTgsOCBA QCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsK IAl7IkNBU1QiLCBOVUxMLCBOVUxMLCBOVUxMfSwgLyogQ2FzdHMgaGF2ZSBjb21wbGV4IHN0 cnVjdHVyZXMgZm9yIG5hbWVzLCBzbwogCQkJCQkJCQkgKiBza2lwIGl0ICovCiAJeyJDT0xM QVRJT04iLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfY29sbGF0aW9uc30sCisJ eyJDT0xVTU4gRU5DUllQVElPTiBLRVkiLCBOVUxMLCBOVUxMLCBOVUxMfSwKKwl7IkNPTFVN TiBNQVNURVIgS0VZIEtFWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCiAJLyoKIAkgKiBDUkVB VEUgQ09OU1RSQUlOVCBUUklHR0VSIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSBiZWNhdXNlIGl0 IGlzIGRlc2lnbmVkCkBAIC0xNjkwLDcgKzE3MDIsNyBAQCBwc3FsX2NvbXBsZXRpb24oY29u c3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxjb25uZWN0IiwgIlxc Y29ubmluZm8iLCAiXFxDIiwgIlxcY2QiLCAiXFxjb3B5IiwKIAkJIlxcY29weXJpZ2h0Iiwg IlxcY3Jvc3N0YWJ2aWV3IiwKIAkJIlxcZCIsICJcXGRhIiwgIlxcZEEiLCAiXFxkQWMiLCAi XFxkQWYiLCAiXFxkQW8iLCAiXFxkQXAiLAotCQkiXFxkYiIsICJcXGRjIiwgIlxcZGNvbmZp ZyIsICJcXGRDIiwgIlxcZGQiLCAiXFxkZHAiLCAiXFxkRCIsCisJCSJcXGRiIiwgIlxcZGMi LCAiXFxkY2VrIiwgIlxcZGNtayIsICJcXGRjb25maWciLCAiXFxkQyIsICJcXGRkIiwgIlxc ZGRwIiwgIlxcZEQiLAogCQkiXFxkZXMiLCAiXFxkZXQiLCAiXFxkZXUiLCAiXFxkZXciLCAi XFxkRSIsICJcXGRmIiwKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAi XFxkZyIsICJcXGRpIiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxk byIsICJcXGRPIiwgIlxcZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCkBAIC0xOTA3 LDYgKzE5MTksMjIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBz dGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xMQVRJT04i LCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFRlJFU0ggVkVS U0lPTiIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCisJLyogQUxURVIvRFJPUCBD T0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUnxEUk9Q IiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIpKQorCQlDT01QTEVURV9XSVRIX1ZF UlNJT05FRF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9jZWtzKTsKKworCS8qIEFMVEVSIENP TFVNTiBFTkNSWVBUSU9OIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIkNP TFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lU SCgiQUREIFZBTFVFICgiLCAiRFJPUCBWQUxVRSAoIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBU TyIpOworCisJLyogQUxURVIvRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSfERST1AiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVkiKSkKKwkJ Q09NUExFVEVfV0lUSF9WRVJTSU9ORURfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfY21rcyk7 CisKKwkvKiBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMo IkFMVEVSIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlDT01Q TEVURV9XSVRIKCIoIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIpOworCiAJLyogQUxURVIg Q09OVkVSU0lPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT05W RVJTSU9OIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5B TUUgVE8iLCAiU0VUIFNDSEVNQSIpOwpAQCAtMjgyOCw2ICsyODU2LDI2IEBAIHBzcWxfY29t cGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCQlDT01Q TEVURV9XSVRIKCJ0cnVlIiwgImZhbHNlIik7CiAJfQogCisJLyogQ1JFQVRFL0FMVEVSL0RS T1AgQ09MVU1OIC4uLiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEV8QUxURVJ8 RFJPUCIsICJDT0xVTU4iKSkKKwkJQ09NUExFVEVfV0lUSCgiRU5DUllQVElPTiIsICJNQVNU RVIiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEV8QUxURVJ8RFJPUCIsICJDT0xVTU4i LCAiRU5DUllQVElPTnxNQVNURVIiKSkKKwkJQ09NUExFVEVfV0lUSCgiS0VZIik7CisKKwkv KiBDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJ Q09NUExFVEVfV0lUSCgiV0lUSCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJD T0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSwgIldJVEgiKSkKKwkJQ09N UExFVEVfV0lUSCgiVkFMVUVTIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNP TFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55LCAiV0lUSCIsICJWQUxVRVMi KSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCisJLyogQ1JFQVRFIENPTFVNTiBNQVNURVIg S0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJNQVNURVIi LCAiS0VZIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJXSVRIIik7CisJZWxzZSBp ZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIiwgTWF0Y2hB bnksICJXSVRIIikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKwogCS8qIENSRUFURSBEQVRB QkFTRSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJEQVRBQkFTRSIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1dORVIiLCAiVEVNUExBVEUiLCAiRU5DT0RJTkci LCAiVEFCTEVTUEFDRSIsCkBAIC0zNTUzLDYgKzM2MDEsNyBAQCBwc3FsX2NvbXBsZXRpb24o Y29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJIE1hdGNoZXMoIkRS T1AiLCAiQUNDRVNTIiwgIk1FVEhPRCIsIE1hdGNoQW55KSB8fAogCQkJIChNYXRjaGVzKCJE Uk9QIiwgIkFHR1JFR0FURXxGVU5DVElPTnxQUk9DRURVUkV8Uk9VVElORSIsIE1hdGNoQW55 LCBNYXRjaEFueSkgJiYKIAkJCSAgZW5kc193aXRoKHByZXZfd2QsICcpJykpIHx8CisJCQkg TWF0Y2hlcygiRFJPUCIsICJDT0xVTU4iLCAiRU5DUllQVElPTnxNQVNURVIiLCAiS0VZIiwg TWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJFVkVOVCIsICJUUklHR0VSIiwg TWF0Y2hBbnkpIHx8CiAJCQkgTWF0Y2hlcygiRFJPUCIsICJGT1JFSUdOIiwgIkRBVEEiLCAi V1JBUFBFUiIsIE1hdGNoQW55KSB8fAogCQkJIE1hdGNoZXMoIkRST1AiLCAiRk9SRUlHTiIs ICJUQUJMRSIsIE1hdGNoQW55KSB8fApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3ByaW50dHVwLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaAppbmRleCA5NzFh NzRjZjIyYjQuLmRiMWYzYjg4MTFhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L3ByaW50dHVwLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3ByaW50dHVwLmgKQEAgLTIw LDYgKzIwLDggQEAgZXh0ZXJuIERlc3RSZWNlaXZlciAqcHJpbnR0dXBfY3JlYXRlX0RSKENv bW1hbmREZXN0IGRlc3QpOwogCiBleHRlcm4gdm9pZCBTZXRSZW1vdGVEZXN0UmVjZWl2ZXJQ YXJhbXMoRGVzdFJlY2VpdmVyICpzZWxmLCBQb3J0YWwgcG9ydGFsKTsKIAorZXh0ZXJuIHZv aWQgTWF5YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2UoT2lkIGF0dGNlayk7CisK IGV4dGVybiB2b2lkIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYs CiAJCQkJCQkJCQkgIFR1cGxlRGVzYyB0eXBlaW5mbywgTGlzdCAqdGFyZ2V0bGlzdCwgaW50 MTYgKmZvcm1hdHMpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVu ZGVuY3kuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCmluZGV4IDk4YTFh ODQyODkwNy4uMWEyYTgxNzdkMWE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L2RlcGVuZGVuY3kuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaApA QCAtOTIsNiArOTIsOSBAQCB0eXBlZGVmIGVudW0gT2JqZWN0Q2xhc3MKIAlPQ0xBU1NfVFlQ RSwJCQkJLyogcGdfdHlwZSAqLwogCU9DTEFTU19DQVNULAkJCQkvKiBwZ19jYXN0ICovCiAJ T0NMQVNTX0NPTExBVElPTiwJCQkvKiBwZ19jb2xsYXRpb24gKi8KKwlPQ0xBU1NfQ0VLLAkJ CQkJLyogcGdfY29sZW5ja2V5ICovCisJT0NMQVNTX0NFS0RBVEEsCQkJCS8qIHBnX2NvbGVu Y2tleWRhdGEgKi8KKwlPQ0xBU1NfQ01LLAkJCQkJLyogcGdfY29sbWFzdGVya2V5ICovCiAJ T0NMQVNTX0NPTlNUUkFJTlQsCQkJLyogcGdfY29uc3RyYWludCAqLwogCU9DTEFTU19DT05W RVJTSU9OLAkJCS8qIHBnX2NvbnZlcnNpb24gKi8KIAlPQ0xBU1NfREVGQVVMVCwJCQkJLyog cGdfYXR0cmRlZiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggNDVmZmE5OTY5 MmU5Li5mM2EwYjFjZWU5YzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVz b24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjMs NiArNjMsOSBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19wdWJsaWNhdGlvbl9yZWwu aCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19zdWJzY3JpcHRpb25fcmVsLmgn LAorICAncGdfY29sbWFzdGVya2V5LmgnLAorICAncGdfY29sZW5ja2V5LmgnLAorICAncGdf Y29sZW5ja2V5ZGF0YS5oJywKIF0KIAogYmtpX2RhdGEgPSBbCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19h bW9wLmRhdAppbmRleCA2MWNkNTkxNDMwNGEuLmEwYmQ3MDgxMzI3YyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2Ftb3AuZGF0CkBAIC0xMDI4LDYgKzEwMjgsMTEgQEAKICAgYW1vcHJpZ2h0dHlw ZSA9PiAnYnl0ZWEnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KGJ5dGVh LGJ5dGVhKScsCiAgIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCiAKKyMgcGdfZW5jcnlwdGVk X2RldF9vcHMKK3sgYW1vcGZhbWlseSA9PiAnaGFzaC9wZ19lbmNyeXB0ZWRfZGV0X29wcycs IGFtb3BsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIGFtb3ByaWdodHR5cGUg PT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ ICc9KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBhbW9wbWV0aG9k ID0+ICdoYXNoJyB9LAorCiAjIHhpZF9vcHMKIHsgYW1vcGZhbWlseSA9PiAnaGFzaC94aWRf b3BzJywgYW1vcGxlZnR0eXBlID0+ICd4aWQnLCBhbW9wcmlnaHR0eXBlID0+ICd4aWQnLAog ICBhbW9wc3RyYXRlZ3kgPT4gJzEnLCBhbW9wb3ByID0+ICc9KHhpZCx4aWQpJywgYW1vcG1l dGhvZCA9PiAnaGFzaCcgfSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf YW1wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCA0 Y2MxMjliZWJkODMuLmRkZGIyNzExM2ZhMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9j LmRhdApAQCAtNDAyLDYgKzQwMiwxMSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvYnl0 ZWFfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2J5dGVhJywKICAgYW1wcm9jcmlnaHR0eXBl ID0+ICdieXRlYScsIGFtcHJvY251bSA9PiAnMicsCiAgIGFtcHJvYyA9PiAnaGFzaHZhcmxl bmFleHRlbmRlZCcgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdoYXNoL3BnX2VuY3J5cHRlZF9k ZXRfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBhbXBy b2NyaWdodHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbXByb2NudW0gPT4gJzEnLCBh bXByb2MgPT4gJ2hhc2h2YXJsZW5hJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gvcGdf ZW5jcnlwdGVkX2RldF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2Rl dCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGFtcHJvY251 bSA9PiAnMicsCisgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKIHsgYW1w cm9jZmFtaWx5ID0+ICdoYXNoL3hpZF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAneGlkJywK ICAgYW1wcm9jcmlnaHR0eXBlID0+ICd4aWQnLCBhbXByb2NudW0gPT4gJzEnLCBhbXByb2Mg PT4gJ2hhc2hpbnQ0JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICd4aWQnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19hdHRyaWJ1dGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgK aW5kZXggMDUzMjk0Yzk5ZjM3Li41NTBhNTM2NDliZWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfYXR0cmlidXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19hdHRyaWJ1dGUuaApAQCAtMTY0LDYgKzE2NCwxNSBAQCBDQVRBTE9HKHBnX2F0dHJpYnV0 ZSwxMjQ5LEF0dHJpYnV0ZVJlbGF0aW9uSWQpIEJLSV9CT09UU1RSQVAgQktJX1JPV1RZUEVf T0lEKDc1LAogCSAqLwogCWJvb2wJCWF0dGlzbG9jYWwgQktJX0RFRkFVTFQodCk7CiAKKwkv KiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KKwlPaWQJCQlhdHRjZWsgQktJX0RFRkFVTFQo MCkgQktJX0xPT0tVUF9PUFQocGdfY29sZW5ja2V5KTsKKworCS8qIHJlYWwgdHlwZSBpZiBl bmNyeXB0ZWQgKi8KKwlPaWQJCQlhdHRyZWFsdHlwaWQgQktJX0RFRkFVTFQoMCkgQktJX0xP T0tVUF9PUFQocGdfdHlwZSk7CisKKwkvKiBlbmNyeXB0aW9uIGFsZ29yaXRobSAoUEdfQ0VL XyogdmFsdWVzKSAqLworCWludDE2CQlhdHRlbmNhbGcgQktJX0RFRkFVTFQoMCk7CisKIAkv KiBOdW1iZXIgb2YgdGltZXMgaW5oZXJpdGVkIGZyb20gZGlyZWN0IHBhcmVudCByZWxhdGlv bihzKSAqLwogCWludDMyCQlhdHRpbmhjb3VudCBCS0lfREVGQVVMVCgwKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY2FzdC5kYXQKaW5kZXggNDQ3MWViNmJiZWE0Li44NzhiMGJjYmJmNTAgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdApAQCAtNTQ2LDQgKzU0NiwxMCBAQAogeyBjYXN0 c291cmNlID0+ICd0c3R6cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c3R6bXVsdGlyYW5nZScs CiAgIGNhc3RmdW5jID0+ICd0c3R6bXVsdGlyYW5nZSh0c3R6cmFuZ2UpJywgY2FzdGNvbnRl eHQgPT4gJ2UnLAogICBjYXN0bWV0aG9kID0+ICdmJyB9LAorCit7IGNhc3Rzb3VyY2UgPT4g J2J5dGVhJywgY2FzdHRhcmdldCA9PiAncGdfZW5jcnlwdGVkX2RldCcsIGNhc3RmdW5jID0+ ICcwJywKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAoreyBj YXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ3BnX2VuY3J5cHRlZF9ybmQn LCBjYXN0ZnVuYyA9PiAnMCcsCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKKwogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xl bmNrZXkuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wOTVlZDcxMmIwM2IKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCkBAIC0wLDAg KzEsNTUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbGVuY2tleS5o CisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiIHN5c3Rl bSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQor ICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5rZXkuaAorICoKKyAqIE5PVEVT CisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2 ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisjaWZuZGVmIFBHX0NPTEVOQ0tFWV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tFWV9I CisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf Y29sZW5ja2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2NvbGVuY2tl eSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3Qg Rm9ybURhdGFfcGdfY29sZW5ja2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFM T0cocGdfY29sZW5ja2V5LDgyMzQsQ29sdW1uRW5jS2V5UmVsYXRpb25JZCkKK3sKKwlPaWQJ CQlvaWQ7CisJTmFtZURhdGEJY2VrbmFtZTsKKwlPaWQJCQljZWtvd25lciBCS0lfTE9PS1VQ KHBnX2F1dGhpZCk7Cit9IEZvcm1EYXRhX3BnX2NvbGVuY2tleTsKKwordHlwZWRlZiBGb3Jt RGF0YV9wZ19jb2xlbmNrZXkgKkZvcm1fcGdfY29sZW5ja2V5OworCitERUNMQVJFX1VOSVFV RV9JTkRFWF9QS0VZKHBnX2NvbGVuY2tleV9vaWRfaW5kZXgsIDgyNDAsIENvbHVtbkVuY0tl eU9pZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShvaWQgb2lkX29wcykp OworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfY29sZW5ja2V5X2Nla25hbWVfaW5kZXgsIDgy NDIsIENvbHVtbkVuY0tleU5hbWVJbmRleElkLCBvbiBwZ19jb2xlbmNrZXkgdXNpbmcgYnRy ZWUoY2VrbmFtZSBuYW1lX29wcykpOworCisvKgorICogQ29uc3RhbnRzIGZvciBDTUsgYW5k IENFSyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IHRoZXNlIGFyZSBwYXJ0IG9mIHRoZQorICog cHJvdG9jb2wuICBGb3IgY2xhcml0eSwgdGhlIGFzc2lnbmVkIG51bWJlcnMgYXJlIG5vdCBy ZXVzZWQgYmV0d2VlbiBDTUtzCisgKiBhbmQgQ0VLcywgYnV0IHRoYXQgaXMgbm90IHRlY2hu aWNhbGx5IHJlcXVpcmVkLiAgSW4gZWl0aGVyIGNhc2UsIGRvbid0CisgKiBhc3NpZ24gemVy bywgc28gdGhhdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGludmFsaWQgdmFsdWUuCisgKi8K KworI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMQkJCTEKKyNkZWZpbmUgUEdfQ01L X1JTQUVTX09BRVBfU0hBXzI1NgkJMgorCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18xMjhf Q0JDX0hNQUNfU0hBXzI1NgkxMzAKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNf SE1BQ19TSEFfMzg0CTEzMQorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFD X1NIQV8zODQJMTMyCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hB XzUxMgkxMzMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NvbGVuY2tleWRhdGEuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5ZGF0 YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uM2U0ZGVhNzIx ODBjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNr ZXlkYXRhLmgKQEAgLTAsMCArMSw0NiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgor ICogcGdfY29sZW5ja2V5ZGF0YS5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgZGF0YSIgc3lzdGVtIGNhdGFsb2cKKyAqCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQg R3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUg VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb2xlbmtleWRhdGEuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1v ZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0 aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX0NPTEVO Q0tFWURBVEFfSAorI2RlZmluZSBQR19DT0xFTkNLRVlEQVRBX0gKKworI2luY2x1ZGUgImNh dGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhX2Qu aCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2NvbGVuY2tleWRhdGEgZGVmaW5p dGlvbi4gY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRh X3BnX2NvbGVuY2tleWRhdGEKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhw Z19jb2xlbmNrZXlkYXRhLDgyNTAsQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQpCit7CisJ T2lkCQkJb2lkOworCU9pZAkJCWNrZGNla2lkIEJLSV9MT09LVVAocGdfY29sZW5ja2V5KTsK KwlPaWQJCQlja2RjbWtpZCBCS0lfTE9PS1VQKHBnX2NvbG1hc3RlcmtleSk7CisJaW50MTYJ CWNrZGNta2FsZzsJCS8qIFBHX0NNS18qIHZhbHVlcyAqLworI2lmZGVmIENBVEFMT0dfVkFS TEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJYnl0ZWEJ CWNrZGVuY3ZhbCBCS0lfRk9SQ0VfTk9UX05VTEw7CisjZW5kaWYKK30gRm9ybURhdGFfcGdf Y29sZW5ja2V5ZGF0YTsKKwordHlwZWRlZiBGb3JtRGF0YV9wZ19jb2xlbmNrZXlkYXRhICpG b3JtX3BnX2NvbGVuY2tleWRhdGE7CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sZW5ja2V5ZGF0 YSwgODIzNywgODIzOCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfY29sZW5j a2V5ZGF0YV9vaWRfaW5kZXgsIDgyNTEsIENvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLCBv biBwZ19jb2xlbmNrZXlkYXRhIHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJF X1VOSVFVRV9JTkRFWChwZ19jb2xlbmNrZXlkYXRhX2NrZGNla2lkX2NrZGNta2lkX2luZGV4 LCA4MjUyLCBDb2x1bW5FbmNLZXlDZWtpZENta2lkSW5kZXhJZCwgb24gcGdfY29sZW5ja2V5 ZGF0YSB1c2luZyBidHJlZShja2RjZWtpZCBvaWRfb3BzLCBja2RjbWtpZCBvaWRfb3BzKSk7 CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0 ZXJrZXkuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMzQ0Y2M0MjAxNjgKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oCkBA IC0wLDAgKzEsNDUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbG1h c3RlcmtleS5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gbWFzdGVyIGtleSIg c3lzdGVtIGNhdGFsb2cKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy MiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaAorICoK KyAqIE5PVEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUg YW5kIGRlcml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBHX0NPTE1BU1RFUktFWV9ICisjZGVmaW5lIFBH X0NPTE1BU1RFUktFWV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0t LQorICoJCXBnX2NvbG1hc3RlcmtleSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRv CisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfY29sbWFzdGVya2V5CisgKiAtLS0t LS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfY29sbWFzdGVya2V5LDgyMzMsQ29sdW1u TWFzdGVyS2V5UmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CisJTmFtZURhdGEJY21rbmFt ZTsKKwlPaWQJCQljbWtvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisjaWZkZWYgQ0FU QUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8K Kwl0ZXh0CQljbWtyZWFsbSBCS0lfRk9SQ0VfTk9UX05VTEw7CisjZW5kaWYKK30gRm9ybURh dGFfcGdfY29sbWFzdGVya2V5OworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbG1hc3Rlcmtl eSAqRm9ybV9wZ19jb2xtYXN0ZXJrZXk7CisKK0RFQ0xBUkVfVE9BU1QocGdfY29sbWFzdGVy a2V5LCA4MjM1LCA4MjM2KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xt YXN0ZXJrZXlfb2lkX2luZGV4LCA4MjM5LCBDb2x1bW5NYXN0ZXJLZXlPaWRJbmRleElkLCBv biBwZ19jb2xtYXN0ZXJrZXkgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVf VU5JUVVFX0lOREVYKHBnX2NvbG1hc3RlcmtleV9jbWtuYW1lX2luZGV4LCA4MjQxLCBDb2x1 bW5NYXN0ZXJLZXlOYW1lSW5kZXhJZCwgb24gcGdfY29sbWFzdGVya2V5IHVzaW5nIGJ0cmVl KGNta25hbWUgbmFtZV9vcHMpKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX29wY2xhc3MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNs YXNzLmRhdAppbmRleCBkYmNhZTdmZmRkMjEuLjBjYTQwMWZmZTQ3OCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX29wY2xhc3MuZGF0CkBAIC0xNjYsNiArMTY2LDggQEAKICAgb3BjaW50eXBl ID0+ICdib29sJyB9LAogeyBvcGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdieXRl YV9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywKICAgb3BjaW50eXBlID0+ ICdieXRlYScgfSwKK3sgb3BjbWV0aG9kID0+ICdoYXNoJywgb3BjbmFtZSA9PiAncGdfZW5j cnlwdGVkX2RldF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9v cHMnLAorICBvcGNpbnR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnIH0sCiB7IG9wY21ldGhv ZCA9PiAnYnRyZWUnLCBvcGNuYW1lID0+ICd0aWRfb3BzJywgb3BjZmFtaWx5ID0+ICdidHJl ZS90aWRfb3BzJywKICAgb3BjaW50eXBlID0+ICd0aWQnIH0sCiB7IG9wY21ldGhvZCA9PiAn aGFzaCcsIG9wY25hbWUgPT4gJ3hpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gveGlkX29w cycsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CmluZGV4IGJjNWY4MjEzZjNh Zi4uNDczN2E3ZjllZDE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29w ZXJhdG9yLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdApA QCAtMzQ1OCw0ICszNDU4LDE0IEBACiAgIG9wcmNvZGUgPT4gJ211bHRpcmFuZ2VfYWZ0ZXJf bXVsdGlyYW5nZScsIG9wcnJlc3QgPT4gJ211bHRpcmFuZ2VzZWwnLAogICBvcHJqb2luID0+ ICdzY2FsYXJndGpvaW5zZWwnIH0sCiAKK3sgb2lkID0+ICc4MjQ3JywgZGVzY3IgPT4gJ2Vx dWFsJywKKyAgb3BybmFtZSA9PiAnPScsIG9wcmNhbm1lcmdlID0+ICdmJywgb3ByY2FuaGFz aCA9PiAndCcsIG9wcmxlZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLAorICBvcHJyaWdodCA9 PiAncGdfZW5jcnlwdGVkX2RldCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsIG9wcmNvbSA9PiAn PShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgb3BybmVnYXRlID0+ ICc8PihwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywgb3ByY29kZSA9PiAn cGdfZW5jcnlwdGVkX2RldF9lcScsIG9wcnJlc3QgPT4gJ2Vxc2VsJywKKyAgb3Byam9pbiA9 PiAnZXFqb2luc2VsJyB9LAoreyBvaWQgPT4gJzgyNDgnLCBkZXNjciA9PiAnbm90IGVxdWFs JywKKyAgb3BybmFtZSA9PiAnPD4nLCBvcHJsZWZ0ID0+ICdwZ19lbmNyeXB0ZWRfZGV0Jywg b3BycmlnaHQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBvcHJyZXN1bHQgPT4gJ2Jvb2wnLAor ICBvcHJjb20gPT4gJzw+KHBnX2VuY3J5cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLCBv cHJuZWdhdGUgPT4gJz0ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsCisg IG9wcmNvZGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfbmUnLCBvcHJyZXN0ID0+ICduZXFzZWwn LCBvcHJqb2luID0+ICduZXFqb2luc2VsJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf b3BmYW1pbHkuZGF0CmluZGV4IGIzYjZhN2U2MTZhOS4uNTM0MzU4MGIwNjMyIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdAorKysgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdApAQCAtMTA4LDYgKzEwOCw4IEBACiAgIG9w Zm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUgPT4gJ2Jvb2xfb3BzJyB9LAogeyBvaWQgPT4g JzIyMjMnLAogICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdieXRlYV9vcHMn IH0sCit7IG9pZCA9PiAnODI0OScsCisgIG9wZm1ldGhvZCA9PiAnaGFzaCcsIG9wZm5hbWUg PT4gJ3BnX2VuY3J5cHRlZF9kZXRfb3BzJyB9LAogeyBvaWQgPT4gJzI3ODknLAogICBvcGZt ZXRob2QgPT4gJ2J0cmVlJywgb3BmbmFtZSA9PiAndGlkX29wcycgfSwKIHsgb2lkID0+ICcy MjI1JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGY5MzAxYjI2MjdlNi4uZGQx OWVhODdhOWQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKQEAgLTgwNjcsOSArODA2 Nyw5IEBACiAgIHByb25hbWUgPT4gJ3BnX3ByZXBhcmVkX3N0YXRlbWVudCcsIHByb3Jvd3Mg PT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAogICBwcm92b2xhdGlsZSA9PiAncycsIHBy b3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKICAgcHJvYXJndHlw ZXMgPT4gJycsCi0gIHByb2FsbGFyZ3R5cGVzID0+ICd7dGV4dCx0ZXh0LHRpbWVzdGFtcHR6 LF9yZWd0eXBlLF9yZWd0eXBlLGJvb2wsaW50OCxpbnQ4fScsCi0gIHByb2FyZ21vZGVzID0+ ICd7byxvLG8sbyxvLG8sbyxvfScsCi0gIHByb2FyZ25hbWVzID0+ICd7bmFtZSxzdGF0ZW1l bnQscHJlcGFyZV90aW1lLHBhcmFtZXRlcl90eXBlcyxyZXN1bHRfdHlwZXMsZnJvbV9zcWws Z2VuZXJpY19wbGFucyxjdXN0b21fcGxhbnN9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0 ZXh0LHRleHQsdGltZXN0YW1wdHosX3JlZ3R5cGUsX3JlZ2NsYXNzLF9pbnQyLF9yZWd0eXBl LGJvb2wsaW50OCxpbnQ4fScsCisgIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxv LG8sb30nLAorICBwcm9hcmduYW1lcyA9PiAne25hbWUsc3RhdGVtZW50LHByZXBhcmVfdGlt ZSxwYXJhbWV0ZXJfdHlwZXMscGFyYW1ldGVyX29yaWdfdGFibGVzLHBhcmFtZXRlcl9vcmln X2NvbHVtbnMscmVzdWx0X3R5cGVzLGZyb21fc3FsLGdlbmVyaWNfcGxhbnMsY3VzdG9tX3Bs YW5zfScsCiAgIHByb3NyYyA9PiAncGdfcHJlcGFyZWRfc3RhdGVtZW50JyB9LAogeyBvaWQg PT4gJzI1MTEnLCBkZXNjciA9PiAnZ2V0IHRoZSBvcGVuIGN1cnNvcnMgZm9yIHRoaXMgc2Vz c2lvbicsCiAgIHByb25hbWUgPT4gJ3BnX2N1cnNvcicsIHByb3Jvd3MgPT4gJzEwMDAnLCBw cm9yZXRzZXQgPT4gJ3QnLApAQCAtMTE4NTQsNCArMTE4NTQsMTEgQEAKICAgcHJvcmV0dHlw ZSA9PiAnYnl0ZWEnLCBwcm9hcmd0eXBlcyA9PiAncGdfYnJpbl9taW5tYXhfbXVsdGlfc3Vt bWFyeScsCiAgIHByb3NyYyA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5kJyB9 LAogCit7IG9pZCA9PiAnODI0NScsCisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRf ZXEnLCBwcm9sZWFrcHJvb2YgPT4gJ3QnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJv YXJndHlwZXMgPT4gJ3BnX2VuY3J5cHRlZF9kZXQgcGdfZW5jcnlwdGVkX2RldCcsIHByb3Ny YyA9PiAnYnl0ZWFlcScgfSwKK3sgb2lkID0+ICc4MjQ2JywKKyAgcHJvbmFtZSA9PiAncGdf ZW5jcnlwdGVkX2RldF9uZScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4g J2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0 ZWRfZGV0JywgcHJvc3JjID0+ICdieXRlYW5lJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190 eXBlLmRhdAppbmRleCAwNzYzZGZkZTM5NDIuLjg2NTExNDZhNzc2MCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3R5cGUuZGF0CkBAIC02OTIsNCArNjkyLDE2IEBACiAgIHR5cHJlY2VpdmUgPT4g J2JyaW5fbWlubWF4X211bHRpX3N1bW1hcnlfcmVjdicsCiAgIHR5cHNlbmQgPT4gJ2JyaW5f bWlubWF4X211bHRpX3N1bW1hcnlfc2VuZCcsIHR5cGFsaWduID0+ICdpJywKICAgdHlwc3Rv cmFnZSA9PiAneCcsIHR5cGNvbGxhdGlvbiA9PiAnZGVmYXVsdCcgfSwKKworeyBvaWQgPT4g JzgyNDMnLCBkZXNjciA9PiAnZW5jcnlwdGVkIGNvbHVtbiAoZGV0ZXJtaW5pc3RpYyknLAor ICB0eXBuYW1lID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgdHlwbGVuID0+ICctMScsIHR5cGJ5 dmFsID0+ICdmJywgdHlwdHlwZSA9PiAnYicsCisgIHR5cGNhdGVnb3J5ID0+ICdZJywgdHlw aW5wdXQgPT4gJ2J5dGVhaW4nLCB0eXBvdXRwdXQgPT4gJ2J5dGVhb3V0JywKKyAgdHlwcmVj ZWl2ZSA9PiAnYnl0ZWFyZWN2JywgdHlwc2VuZCA9PiAnYnl0ZWFzZW5kJywgdHlwYWxpZ24g PT4gJ2knLAorICB0eXBzdG9yYWdlID0+ICdlJyB9LAoreyBvaWQgPT4gJzgyNDQnLCBkZXNj ciA9PiAnZW5jcnlwdGVkIGNvbHVtbiAocmFuZG9taXplZCknLAorICB0eXBuYW1lID0+ICdw Z19lbmNyeXB0ZWRfcm5kJywgdHlwbGVuID0+ICctMScsIHR5cGJ5dmFsID0+ICdmJywgdHlw dHlwZSA9PiAnYicsCisgIHR5cGNhdGVnb3J5ID0+ICdZJywgdHlwaW5wdXQgPT4gJ2J5dGVh aW4nLCB0eXBvdXRwdXQgPT4gJ2J5dGVhb3V0JywKKyAgdHlwcmVjZWl2ZSA9PiAnYnl0ZWFy ZWN2JywgdHlwc2VuZCA9PiAnYnl0ZWFzZW5kJywgdHlwYWxpZ24gPT4gJ2knLAorICB0eXBz dG9yYWdlID0+ICdlJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3R5cGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oCmluZGV4IDQ4YTI1 NTkxMzc0Mi4uYzFkMzA5MDNiNWIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuaApAQCAtMjk0 LDYgKzI5NCw3IEBAIERFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3R5cGVfdHlwbmFtZV9uc3Bf aW5kZXgsIDI3MDQsIFR5cGVOYW1lTnNwSW5kZXhJZCwgb24gcGdfCiAjZGVmaW5lICBUWVBD QVRFR09SWV9VU0VSCQknVScKICNkZWZpbmUgIFRZUENBVEVHT1JZX0JJVFNUUklORwknVicg LyogZXIgLi4uICJ2YXJiaXQiPyAqLwogI2RlZmluZSAgVFlQQ0FURUdPUllfVU5LTk9XTgkn WCcKKyNkZWZpbmUgIFRZUENBVEVHT1JZX0VOQ1JZUFRFRAknWScKICNkZWZpbmUgIFRZUENB VEVHT1JZX0lOVEVSTkFMCSdaJwogCiAjZGVmaW5lICBUWVBBTElHTl9DSEFSCQkJJ2MnIC8q IGNoYXIgYWxpZ25tZW50IChpLmUuIHVuYWxpZ25lZCkgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Nv bGVuY2NtZHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJm YmVmOTQ4N2U4NAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2Nv bGVuY2NtZHMuaApAQCAtMCwwICsxLDI2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBjb2xlbmNjbWRzLmgKKyAqCSAgcHJvdG90eXBlcyBmb3IgY29sZW5jY21kcy5jLgor ICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICog c3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5oCisgKgorICotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKi8KKworI2lmbmRlZiBDT0xFTkNDTURTX0gKKyNkZWZpbmUgQ09MRU5DQ01E U19ICisKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJw YXJzZXIvcGFyc2Vfbm9kZS5oIgorCitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVDRUso UGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpzdG10KTsKK2V4dGVybiBPYmplY3RB ZGRyZXNzIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQpOworZXh0ZXJuIE9iamVjdEFkZHJl c3MgQ3JlYXRlQ01LKFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVmaW5lU3RtdCAqc3RtdCk7Citl eHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlckNvbHVtbk1hc3RlcktleShQYXJzZVN0YXRlICpw c3RhdGUsIEFsdGVyQ29sdW1uTWFzdGVyS2V5U3RtdCAqc3RtdCk7CisKKyNlbmRpZgkJCQkJ CQkvKiBDT0xFTkNDTURTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL2xp YnBxLWJlLmggYi9zcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oCmluZGV4IDZkNDUyZWM2 ZDk1Ni4uZTMyYzc3NzljOTU1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9saWJwcS9saWJw cS1iZS5oCisrKyBiL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKQEAgLTE2NCw2ICsx NjQsNyBAQCB0eXBlZGVmIHN0cnVjdCBQb3J0CiAJICovCiAJY2hhcgkgICAqZGF0YWJhc2Vf bmFtZTsKIAljaGFyCSAgICp1c2VyX25hbWU7CisJYm9vbAkJY29sdW1uX2VuY3J5cHRpb25f ZW5hYmxlZDsKIAljaGFyCSAgICpjbWRsaW5lX29wdGlvbnM7CiAJTGlzdAkgICAqZ3VjX29w dGlvbnM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBmNGVkOWJiZmY5MTIuLjYy YTM3MDgzNzNhMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNjg3LDYgKzY4Nyw3 IEBAIHR5cGVkZWYgc3RydWN0IENvbHVtbkRlZgogCWNoYXIJICAgKmNvbG5hbWU7CQkvKiBu YW1lIG9mIGNvbHVtbiAqLwogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdHlwZSBvZiBj b2x1bW4gKi8KIAljaGFyCSAgICpjb21wcmVzc2lvbjsJLyogY29tcHJlc3Npb24gbWV0aG9k IGZvciBjb2x1bW4gKi8KKwlMaXN0CSAgICplbmNyeXB0aW9uOwkJLyogZW5jcnlwdGlvbiBp bmZvIGZvciBjb2x1bW4gKi8KIAlpbnQJCQlpbmhjb3VudDsJCS8qIG51bWJlciBvZiB0aW1l cyBjb2x1bW4gaXMgaW5oZXJpdGVkICovCiAJYm9vbAkJaXNfbG9jYWw7CQkvKiBjb2x1bW4g aGFzIGxvY2FsIChub24taW5oZXJpdGVkKSBkZWYnbiAqLwogCWJvb2wJCWlzX25vdF9udWxs OwkvKiBOT1QgTlVMTCBjb25zdHJhaW50IHNwZWNpZmllZD8gKi8KQEAgLTE4NjYsNiArMTg2 Nyw5IEBAIHR5cGVkZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX0NBU1QsCiAJT0JKRUNU X0NPTFVNTiwKIAlPQkpFQ1RfQ09MTEFUSU9OLAorCU9CSkVDVF9DRUssCisJT0JKRUNUX0NF S0RBVEEsCisJT0JKRUNUX0NNSywKIAlPQkpFQ1RfQ09OVkVSU0lPTiwKIAlPQkpFQ1RfREFU QUJBU0UsCiAJT0JKRUNUX0RFRkFVTFQsCkBAIC0yMDU4LDYgKzIwNjIsMzEgQEAgdHlwZWRl ZiBzdHJ1Y3QgQWx0ZXJDb2xsYXRpb25TdG10CiB9IEFsdGVyQ29sbGF0aW9uU3RtdDsKIAog CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKiBBbHRlciBDb2x1bW4gRW5jcnlwdGlv biBLZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg QWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hh cgkgICAqY2VrbmFtZTsKKwlib29sCQlpc0Ryb3A7CQkJLyogQUREIG9yIERST1AgdGhlIGl0 ZW1zPyAqLworCUxpc3QJICAgKmRlZmluaXRpb247Cit9IEFsdGVyQ29sdW1uRW5jcnlwdGlv bktleVN0bXQ7CisKKworLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQWx0ZXIgQ29s dW1uIE1hc3RlciBLZXkKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRl ZiBzdHJ1Y3QgQWx0ZXJDb2x1bW5NYXN0ZXJLZXlTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsK KwljaGFyCSAgICpjbWtuYW1lOworCUxpc3QJICAgKmRlZmluaXRpb247Cit9IEFsdGVyQ29s dW1uTWFzdGVyS2V5U3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKglB bHRlciBEb21haW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6 ZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaAppbmRleCAzZDNhNTkxOGMyZmMu LjZjMjg2NmQxOWY4YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBAIC0yOCw3ICsyOCw5IEBA IGV4dGVybiBQR0RMTElNUE9SVCBwb3N0X3BhcnNlX2FuYWx5emVfaG9va190eXBlIHBvc3Rf cGFyc2VfYW5hbHl6ZV9ob29rOwogZXh0ZXJuIFF1ZXJ5ICpwYXJzZV9hbmFseXplX2ZpeGVk cGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJ CQkJCQkJCQljb25zdCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMsIFF1ZXJ5RW52 aXJvbm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV92YXJw YXJhbXMoUmF3U3RtdCAqcGFyc2VUcmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAotCQkJ CQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywgUXVlcnlFbnZpcm9u bWVudCAqcXVlcnlFbnYpOworCQkJCQkJCQkJICBPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51 bVBhcmFtcywKKwkJCQkJCQkJCSAgT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAq KnBhcmFtT3JpZ0NvbHMsCisJCQkJCQkJCQkgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52 KTsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV93aXRoY2IoUmF3U3RtdCAqcGFyc2VU cmVlLCBjb25zdCBjaGFyICpzb3VyY2VUZXh0LAogCQkJCQkJCQkgICBQYXJzZXJTZXR1cEhv b2sgcGFyc2VyU2V0dXAsCiAJCQkJCQkJCSAgIHZvaWQgKnBhcnNlclNldHVwQXJnLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCmluZGV4IDk1N2VlMThkODQ5OC4uYTYwODQ1NzRjNTgzIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCkBAIC0xNDksNiArMTQ5LDcgQEAgUEdfS0VZV09SRCgiZWxzZSIsIEVM U0UsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmFibGUi LCBFTkFCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgiZW5jb2RpbmciLCBFTkNPRElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgiZW5jcnlwdGVkIiwgRU5DUllQVEVELCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJlbmNyeXB0aW9uIiwgRU5DUllQVElPTiwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5kIiwgRU5E X1AsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbnVtIiwg RU5VTV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJl c2NhcGUiLCBFU0NBUEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTI1 MCw2ICsyNTEsNyBAQCBQR19LRVlXT1JEKCJsb2NrIiwgTE9DS19QLCBVTlJFU0VSVkVEX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsb2NrZWQiLCBMT0NLRUQsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxvZ2dlZCIsIExPR0dF RCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWFwcGlu ZyIsIE1BUFBJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdP UkQoIm1hc3RlciIsIE1BU1RFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgibWF0Y2giLCBNQVRDSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgibWF0Y2hlZCIsIE1BVENIRUQsIFVOUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGVyaWFsaXplZCIsIE1BVEVSSUFMSVpF RCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKaW5kZXggOTYyZWJmNjVkZTE4Li5mNmE3MTc4NzY2ZWYgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaApAQCAtOTMsNiArOTMsNyBAQCB0eXBlZGVmIE5vZGUgKigqUGFyc2VQ YXJhbVJlZkhvb2spIChQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKTsKIHR5 cGVkZWYgTm9kZSAqKCpDb2VyY2VQYXJhbUhvb2spIChQYXJzZVN0YXRlICpwc3RhdGUsIFBh cmFtICpwYXJhbSwKIAkJCQkJCQkJICBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRU eXBlTW9kLAogCQkJCQkJCQkgIGludCBsb2NhdGlvbik7Cit0eXBlZGVmIHZvaWQgKCpQYXJh bUFzc2lnbk9yaWdIb29rKSAoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAqcGFyYW0sIE9p ZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpOwogCiAKIC8qCkBAIC0yMjIsNiArMjIz LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlQb3N0UGFyc2VDb2x1bW5SZWZIb29rIHBfcG9z dF9jb2x1bW5yZWZfaG9vazsKIAlQYXJzZVBhcmFtUmVmSG9vayBwX3BhcmFtcmVmX2hvb2s7 CiAJQ29lcmNlUGFyYW1Ib29rIHBfY29lcmNlX3BhcmFtX2hvb2s7CisJUGFyYW1Bc3NpZ25P cmlnSG9vayBwX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2s7CiAJdm9pZAkgICAqcF9yZWZfaG9v a19zdGF0ZTsJLyogY29tbW9uIHBhc3N0aHJvdWdoIGxpbmsgZm9yIGFib3ZlICovCiB9Owog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oCmluZGV4IGRmMWVlNjYwZDgzMS4uZGEyMDJi MjhhN2MzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaApAQCAtMTgsNyArMTgsOCBA QAogZXh0ZXJuIHZvaWQgc2V0dXBfcGFyc2VfZml4ZWRfcGFyYW1ldGVycyhQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJCQkJCQkJIGNvbnN0IE9pZCAqcGFyYW1UeXBlcywgaW50IG51bVBh cmFtcyk7CiBleHRlcm4gdm9pZCBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBh cnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpu dW1QYXJhbXMpOworCQkJCQkJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFt cywKKwkJCQkJCQkJCQkJT2lkICoqcGFyYW1PcmlnVGJscywgQXR0ck51bWJlciAqKnBhcmFt T3JpZ0NvbHMpOwogZXh0ZXJuIHZvaWQgY2hlY2tfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJz ZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxdWVyeSk7CiBleHRlcm4gYm9vbCBxdWVyeV9jb250 YWluc19leHRlcm5fcGFyYW1zKFF1ZXJ5ICpxdWVyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmgKaW5kZXggOWU5NGY0NGM1ZjQzLi5kODJhMmUxMTcxYmEgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCkBAIC0yOSw2ICsyOSw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUNDRVNT X01FVEhPRCwgIkFMVEVSIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0FMVEVSX0FHR1JFR0FURSwgIkFMVEVSIEFHR1JFR0FURSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ0FTVCwgIkFMVEVS IENBU1QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NP TExBVElPTiwgIkFMVEVSIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfQUxURVJfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRB R19BTFRFUl9DT0xVTU5fTUFTVEVSX0tFWSwgIkFMVEVSIENPTFVNTiBNQVNURVIgS0VZIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJBSU5U LCAiQUxURVIgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQUxURVJfQ09OVkVSU0lPTiwgIkFMVEVSIENPTlZFUlNJT04iLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0RBVEFCQVNFLCAiQUxURVIgREFU QUJBU0UiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtODYsNiArODgsOCBAQCBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9BQ0NFU1NfTUVUSE9ELCAiQ1JFQVRFIEFDQ0VTUyBNRVRIT0Qi LCB0cnVlLCBmYWxzZSwgZmFscwogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUdHUkVHQVRF LCAiQ1JFQVRFIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX0NBU1QsICJDUkVBVEUgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkK IFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NPTExBVElPTiwgIkNSRUFURSBDT0xMQVRJT04i LCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xVTU5f RU5DUllQVElPTl9LRVksICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9L RVksICJDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05TVFJBSU5ULCAiQ1JFQVRFIENPTlNUUkFJTlQi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05WRVJT SU9OLCAiQ1JFQVRFIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURU QUcoQ01EVEFHX0NSRUFURV9EQVRBQkFTRSwgIkNSRUFURSBEQVRBQkFTRSIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCkBAIC0xMzgsNiArMTQyLDggQEAgUEdfQ01EVEFHKENNRFRBR19EUk9Q X0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ0FTVCwgIkRS T1AgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9D T0xMQVRJT04sICJEUk9QIENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfRFJPUF9DT0xVTU5fRU5DUllQVElPTl9LRVksICJEUk9QIENPTFVNTiBF TkNSWVBUSU9OIEtFWSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdf RFJPUF9DT0xVTU5fTUFTVEVSX0tFWSwgIkRST1AgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OU1RSQUlOVCwgIkRS T1AgQ09OU1RSQUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RFJPUF9DT05WRVJTSU9OLCAiRFJPUCBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0RBVEFCQVNFLCAiRFJPUCBEQVRBQkFTRSIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bw cm90LmggYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKaW5kZXggNWQzNDk3OGYzMjll Li43NTAyZDcxYjBkMjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvdGNvcHByb3Qu aAorKysgYi9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmgKQEAgLTUzLDYgKzUzLDggQEAg ZXh0ZXJuIExpc3QgKnBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKFJhd1N0bXQg KnBhcnNldHJlZSwKIAkJCQkJCQkJCQkJICBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCiAJ CQkJCQkJCQkJCSAgT2lkICoqcGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJICBpbnQgKm51bVBh cmFtcywKKwkJCQkJCQkJCQkJICBPaWQgKipwYXJhbU9yaWdUYmxzLAorCQkJCQkJCQkJCQkg IEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkgIFF1ZXJ5RW52aXJv bm1lbnQgKnF1ZXJ5RW52KTsKIGV4dGVybiBMaXN0ICpwZ19hbmFseXplX2FuZF9yZXdyaXRl X3dpdGhjYihSYXdTdG10ICpwYXJzZXRyZWUsCiAJCQkJCQkJCQkJICAgY29uc3QgY2hhciAq cXVlcnlfc3RyaW5nLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCA1MGYwMjg4MzA1MjUu LjcyNThkNDAwNzcwNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTE2Myw2ICsxNjMs NyBAQCBleHRlcm4gYm9vbCB0eXBlX2lzX3Jvd3R5cGUoT2lkIHR5cGlkKTsKIGV4dGVybiBi b29sIHR5cGVfaXNfZW51bShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlwZV9pc19yYW5n ZShPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgdHlwZV9pc19tdWx0aXJhbmdlKE9pZCB0eXBp ZCk7CitleHRlcm4gYm9vbCB0eXBlX2lzX2VuY3J5cHRlZChPaWQgdHlwaWQpOwogZXh0ZXJu IHZvaWQgZ2V0X3R5cGVfY2F0ZWdvcnlfcHJlZmVycmVkKE9pZCB0eXBpZCwKIAkJCQkJCQkJ CQljaGFyICp0eXBjYXRlZ29yeSwKIAkJCQkJCQkJCQlib29sICp0eXBpc3ByZWZlcnJlZCk7 CkBAIC0yMDIsNiArMjAzLDExIEBAIGV4dGVybiBPaWQJZ2V0X3B1YmxpY2F0aW9uX29pZChj b25zdCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIGNoYXIgKmdl dF9wdWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJZ2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBt aXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1 YmlkLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfY2VrX29pZChjb25zdCBj aGFyICpjZWtuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGNoYXIgKmdldF9jZWtf bmFtZShPaWQgY2VraWQsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCWdldF9jZWtk YXRhX29pZChPaWQgY2VraWQsIE9pZCBjbWtpZCwgYm9vbCBtaXNzaW5nX29rKTsKK2V4dGVy biBPaWQJZ2V0X2Nta19vaWQoY29uc3QgY2hhciAqY21rbmFtZSwgYm9vbCBtaXNzaW5nX29r KTsKK2V4dGVybiBjaGFyICpnZXRfY21rX25hbWUoT2lkIGNta2lkLCBib29sIG1pc3Npbmdf b2spOwogCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXkodHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlw ZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKIC8qIHR5cGVfaXNfYXJyYXlfZG9tYWluIGFjY2Vw dHMgYm90aCBwbGFpbiBhcnJheXMgYW5kIGRvbWFpbnMgb3ZlciBhcnJheXMgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRp bHMvcGxhbmNhY2hlLmgKaW5kZXggMDQ5OTYzNWY1OTQ1Li45YTdjZjc5NGNlY2YgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3BsYW5jYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRl L3V0aWxzL3BsYW5jYWNoZS5oCkBAIC0xMDEsNiArMTAxLDEwIEBAIHR5cGVkZWYgc3RydWN0 IENhY2hlZFBsYW5Tb3VyY2UKIAlDb21tYW5kVGFnCWNvbW1hbmRUYWc7CQkvKiAnbnVmZiBz YWlkICovCiAJT2lkCQkgICAqcGFyYW1fdHlwZXM7CS8qIGFycmF5IG9mIHBhcmFtZXRlciB0 eXBlIE9JRHMsIG9yIE5VTEwgKi8KIAlpbnQJCQludW1fcGFyYW1zOwkJLyogbGVuZ3RoIG9m IHBhcmFtX3R5cGVzIGFycmF5ICovCisJT2lkCQkgICAqcGFyYW1fb3JpZ3RibHM7IC8qIGFy cmF5IG9mIHVuZGVybHlpbmcgdGFibGVzIG9mIHBhcmFtZXRlcnMsCisJCQkJCQkJCSAqIG9y IE5VTEwgKi8KKwlBdHRyTnVtYmVyICpwYXJhbV9vcmlnY29sczsgLyogYXJyYXkgb2YgdW5k ZXJseWluZyBjb2x1bW5zIG9mIHBhcmFtZXRlcnMsCisJCQkJCQkJCSAqIG9yIE5VTEwgKi8K IAlQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0dXA7CS8qIGFsdGVybmF0aXZlIHBhcmFtZXRl ciBzcGVjIG1ldGhvZCAqLwogCXZvaWQJICAgKnBhcnNlclNldHVwQXJnOwogCWludAkJCWN1 cnNvcl9vcHRpb25zOyAvKiBjdXJzb3Igb3B0aW9ucyB1c2VkIGZvciBwbGFubmluZyAqLwpA QCAtMTk5LDYgKzIwMyw4IEBAIGV4dGVybiB2b2lkIENvbXBsZXRlQ2FjaGVkUGxhbihDYWNo ZWRQbGFuU291cmNlICpwbGFuc291cmNlLAogCQkJCQkJCSAgIE1lbW9yeUNvbnRleHQgcXVl cnl0cmVlX2NvbnRleHQsCiAJCQkJCQkJICAgT2lkICpwYXJhbV90eXBlcywKIAkJCQkJCQkg ICBpbnQgbnVtX3BhcmFtcywKKwkJCQkJCQkgICBPaWQgKnBhcmFtX29yaWd0YmxzLAorCQkJ CQkJCSAgIEF0dHJOdW1iZXIgKnBhcmFtX29yaWdjb2xzLAogCQkJCQkJCSAgIFBhcnNlclNl dHVwSG9vayBwYXJzZXJTZXR1cCwKIAkJCQkJCQkgICB2b2lkICpwYXJzZXJTZXR1cEFyZywK IAkJCQkJCQkgICBpbnQgY3Vyc29yX29wdGlvbnMsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS91dGlscy9zeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaAppbmRl eCA0NDYzZWE2NmJlYTUuLjQ4OWM2ZWU3MzRiYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9zeXNjYWNoZS5oCkBA IC00NCw4ICs0NCwxNCBAQCBlbnVtIFN5c0NhY2hlSWRlbnRpZmllcgogCUFVVEhOQU1FLAog CUFVVEhPSUQsCiAJQ0FTVFNPVVJDRVRBUkdFVCwKKwlDRUtEQVRBQ0VLQ01LLAorCUNFS0RB VEFPSUQsCisJQ0VLTkFNRSwKKwlDRUtPSUQsCiAJQ0xBQU1OQU1FTlNQLAogCUNMQU9JRCwK KwlDTUtOQU1FLAorCUNNS09JRCwKIAlDT0xMTkFNRUVOQ05TUCwKIAlDT0xMT0lELAogCUNP TkRFRkFVTFQsCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlCmluZGV4IDFkMzFiMjU2ZmM5ZS4uNDgx MmY4NjJjYTZhIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZQpAQCAtNTQsNiArNTQsNyBAQCBl bmRpZgogCiBpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQogT0JKUyArPSBcCisJZmUtZW5j cnlwdC1vcGVuc3NsLm8gXAogCWZlLXNlY3VyZS1vcGVuc3NsLm8KIGVuZGlmCiAKZGlmZiAt LWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0IGIvc3JjL2ludGVyZmFj ZXMvbGlicHEvZXhwb3J0cy50eHQKaW5kZXggZThiY2M4ODM3MDkxLi44ODk3YWEyNDNjOWMg MTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CisrKyBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0xODYsMyArMTg2LDcgQEAgUFFw aXBlbGluZVN0YXR1cyAgICAgICAgICAxODMKIFBRc2V0VHJhY2VGbGFncyAgICAgICAgICAg MTg0CiBQUW1ibGVuQm91bmRlZCAgICAgICAgICAgIDE4NQogUFFzZW5kRmx1c2hSZXF1ZXN0 ICAgICAgICAxODYKK1BRZXhlY1ByZXBhcmVkRGVzY3JpYmVkICAgMTg3CitQUXNlbmRRdWVy eVByZXBhcmVkRGVzY3JpYmVkIDE4OAorUFFmaXNlbmNyeXB0ZWQgICAgICAgICAgICAxODkK K1BRcGFyYW1pc2VuY3J5cHRlZCAgICAgICAgMTkwCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25u ZWN0LmMKaW5kZXggZjg4ZDY3MmM2YzhhLi40OGI0MWY5NzA5ZmUgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWNvbm5lY3QuYworKysgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1jb25uZWN0LmMKQEAgLTM0MSw2ICszNDEsMTQgQEAgc3RhdGljIGNvbnN0IGlu dGVybmFsUFFjb25uaW5mb09wdGlvbiBQUWNvbm5pbmZvT3B0aW9uc1tdID0gewogCQkiVGFy Z2V0LVNlc3Npb24tQXR0cnMiLCAiIiwgMTUsIC8qIHNpemVvZigicHJlZmVyLXN0YW5kYnki KSA9IDE1ICovCiAJb2Zmc2V0b2Yoc3RydWN0IHBnX2Nvbm4sIHRhcmdldF9zZXNzaW9uX2F0 dHJzKX0sCiAKKwl7ImNta2xvb2t1cCIsICJQR0NNS0xPT0tVUCIsICIiLCBOVUxMLAorCQki Q01LLUxvb2t1cCIsICIiLCA2NCwKKwlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgY21rbG9v a3VwKX0sCisKKwl7ImNvbHVtbl9lbmNyeXB0aW9uIiwgIlBHQ09MVU1ORU5DUllQVElPTiIs ICIwIiwgTlVMTCwKKwkJIkNvbHVtbi1FbmNyeXB0aW9uIiwgIiIsIDEsCisJb2Zmc2V0b2Yo c3RydWN0IHBnX2Nvbm4sIGNvbHVtbl9lbmNyeXB0aW9uX3NldHRpbmcpfSwKKwogCS8qIFRl cm1pbmF0aW5nIGVudHJ5IC0tLSBNVVNUIEJFIExBU1QgKi8KIAl7TlVMTCwgTlVMTCwgTlVM TCwgTlVMTCwKIAlOVUxMLCBOVUxMLCAwfQpAQCAtMjQyMiw2ICsyNDMwLDcgQEAgUFFjb25u ZWN0UG9sbChQR2Nvbm4gKmNvbm4pCiAjaWZkZWYgRU5BQkxFX0dTUwogCQljb25uLT50cnlf Z3NzID0gKGNvbm4tPmdzc2VuY21vZGVbMF0gIT0gJ2QnKTsJLyogImRpc2FibGUiICovCiAj ZW5kaWYKKwkJY29ubi0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCA9IChjb25uLT5jb2x1 bW5fZW5jcnlwdGlvbl9zZXR0aW5nWzBdID09ICcxJyk7CiAKIAkJcmVzZXRfY29ubmVjdGlv bl9zdGF0ZV9tYWNoaW5lID0gZmFsc2U7CiAJCW5lZWRfbmV3X2Nvbm5lY3Rpb24gPSB0cnVl OwpAQCAtNDAyOSw2ICs0MDM4LDIyIEBAIGZyZWVQR2Nvbm4oUEdjb25uICpjb25uKQogCWZy ZWUoY29ubi0+a3Jic3J2bmFtZSk7CiAJZnJlZShjb25uLT5nc3NsaWIpOwogCWZyZWUoY29u bi0+Y29ubmlwKTsKKwlmcmVlKGNvbm4tPmNta2xvb2t1cCk7CisJZm9yIChpbnQgaSA9IDA7 IGkgPCBjb25uLT5uY21rczsgaSsrKQorCXsKKwkJZnJlZShjb25uLT5jbWtzW2ldLmNta25h bWUpOworCQlmcmVlKGNvbm4tPmNta3NbaV0uY21rcmVhbG0pOworCX0KKwlmcmVlKGNvbm4t PmNta3MpOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJ CWlmIChjb25uLT5jZWtzW2ldLmNla2RhdGEpCisJCXsKKwkJCWV4cGxpY2l0X2J6ZXJvKGNv bm4tPmNla3NbaV0uY2VrZGF0YSwgY29ubi0+Y2Vrc1tpXS5jZWtkYXRhbGVuKTsKKwkJCWZy ZWUoY29ubi0+Y2Vrc1tpXS5jZWtkYXRhKTsKKwkJfQorCX0KKwlmcmVlKGNvbm4tPmNla3Mp OwogCS8qIE5vdGUgdGhhdCBjb25uLT5QZmRlYnVnIGlzIG5vdCBvdXJzIHRvIGNsb3NlIG9y IGZyZWUgKi8KIAlmcmVlKGNvbm4tPndyaXRlX2Vycl9tc2cpOwogCWZyZWUoY29ubi0+aW5C dWZmZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1v cGVuc3NsLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBiZDNlZTFmODgxZAot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jCkBAIC0wLDAgKzEsNzYwIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBmZS1lbmNyeXB0LW9wZW5zc2wuYworICoJICBlbmNyeXB0aW9uIHN1cHBvcnQgdXNpbmcg T3BlblNTTAorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwg UG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBx L2ZlLWVuY3J5cHQtb3BlbnNzbC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KworI2luY2x1ZGUgInBvc3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJmZS1lbmNyeXB0Lmgi CisjaW5jbHVkZSAibGlicHEtaW50LmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVu Y2tleS5oIgorI2luY2x1ZGUgInBvcnQvcGdfYnN3YXAuaCIKKworI2luY2x1ZGUgPG9wZW5z c2wvZXZwLmg+CisKKworI2lmZGVmIFRFU1RfRU5DUllQVAorCisvKgorICogVGVzdCBkYXRh IGZyb20KKyAqIDxodHRwczovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0 LW1jZ3Jldy1hZWFkLWFlcy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisv KgorICogVGhlIGRpZmZlcmVudCB0ZXN0IGNhc2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVm aXhlcyBvZiBLLCBzbyBvbmUgY29uc3RhbnQKKyAqIGlzIGVub3VnaCBoZXJlLgorICovCitz dGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciBLW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwg MHgwMywgMHgwNCwgMHgwNSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwg MHgwYywgMHgwZCwgMHgwZSwgMHgwZiwKKwkweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0 LCAweDE1LCAweDE2LCAweDE3LCAweDE4LCAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFk LCAweDFlLCAweDFmLAorCTB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4 MjYsIDB4MjcsIDB4MjgsIDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4 MmYsCisJMHgzMCwgMHgzMSwgMHgzMiwgMHgzMywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywg MHgzOCwgMHgzOSwgMHgzYSwgMHgzYiwgMHgzYywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYz LCAweDY5LCAweDcwLCAweDY4LCAweDY1LCAweDcyLCAweDIwLCAweDczLCAweDc5LCAweDcz LCAweDc0LCAweDY1LCAweDZkLCAweDIwLAorCTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4 MjAsIDB4NmUsIDB4NmYsIDB4NzQsIDB4MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4 NjUsIDB4NzEsIDB4NzUsCisJMHg2OSwgMHg3MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg2MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg3Miwg MHg2NSwKKwkweDc0LCAweDJjLCAweDIwLCAweDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5 LCAweDc0LCAweDIwLCAweDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4 NjUsIDB4MjAsIDB4NjEsIDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4 MjAsIDB4NjYsIDB4NjEsIDB4NmMsIDB4NmMsIDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwg MHg2ZiwgMHgyMCwgMHg3NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwg MHg2NCwgMHg3MywgMHgyMCwgMHg2ZiwgMHg2NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1 LCAweDIwLCAweDY1LCAweDZlLCAweDY1LCAweDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5 LCAweDc0LCAweDY4LCAweDZmLAorCTB4NzUsIDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4 NjMsIDB4NmYsIDB4NmUsIDB4NzYsIDB4NjUsIDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4 NjMsIDB4NjUsCit9OworCitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10g PSB7CisJMHgxYSwgMHhmMywgMHg4YywgMHgyZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwg MHhkOCwgMHg2NiwgMHg5NCwgMHgwOSwgMHgyMywgMHg0MSwgMHhiYywgMHgwNCwKK307CisK K3N0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFyIHRlc3RfQVtdID0geworCTB4NTQsIDB4Njgs IDB4NjUsIDB4MjAsIDB4NzMsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAs IDB4NzAsIDB4NzIsIDB4NjksIDB4NmUsIDB4NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2 NSwgMHgyMCwgMHg2ZiwgMHg2NiwgMHgyMCwgMHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3 MywgMHg3NCwgMHg2NSwgMHgyMCwKKwkweDRiLCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAw eDY4LCAweDZmLCAweDY2LCAweDY2LCAweDczLAorfTsKKworCisjZGVmaW5lIGxpYnBxX2dl dHRleHQoeCkgKHgpCisjZGVmaW5lIGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sIC4u LikgYXBwZW5kUFFFeHBCdWZmZXIoJihjb25uKS0+ZXJyb3JNZXNzYWdlLCBfX1ZBX0FSR1Nf XykKKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLworCisKK3Vuc2lnbmVkIGNo YXIgKgorZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAq Y21rZmlsZW5hbWUsIGludCBjbWthbGcsCisJCQkJCSAgaW50IGZyb21sZW4sIGNvbnN0IHVu c2lnbmVkIGNoYXIgKmZyb20sCisJCQkJCSAgaW50ICp0b2xlbikKK3sKKwljb25zdCBFVlBf TUQgKm1kID0gTlVMTDsKKwlFVlBfUEtFWSAgICprZXkgPSBOVUxMOworCVJTQQkJICAgKnJz YSA9IE5VTEw7CisJQklPCQkgICAqYmlvID0gTlVMTDsKKwlFVlBfUEtFWV9DVFggKmN0eCA9 IE5VTEw7CisJdW5zaWduZWQgY2hhciAqb3V0ID0gTlVMTDsKKwlzaXplX3QJCW91dGxlbjsK KworCXN3aXRjaCAoY21rYWxnKQorCXsKKwkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFf MToKKwkJCW1kID0gRVZQX3NoYTEoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NNS19SU0FF U19PQUVQX1NIQV8yNTY6CisJCQltZCA9IEVWUF9zaGEyNTYoKTsKKwkJCWJyZWFrOworCQlk ZWZhdWx0OgorCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInVuc3VwcG9ydGVk IENNSyBhbGdvcml0aG0gSUQ6ICVkIiwgY21rYWxnKTsKKwkJCWdvdG8gZmFpbDsKKwl9CisK KwliaW8gPSBCSU9fbmV3X2ZpbGUoY21rZmlsZW5hbWUsICJyIik7CisJaWYgKCFiaW8pCisJ eworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiY291bGQgbm90IG9wZW4gZmls ZSBcIiVzXCI6ICVtIiwgY21rZmlsZW5hbWUpOworCQlnb3RvIGZhaWw7CisJfQorCisJcnNh ID0gUlNBX25ldygpOworCWlmICghcnNhKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJy b3IoY29ubiwgImNvdWxkIG5vdCBhbGxvY2F0ZSBSU0Egc3RydWN0dXJlOiAlcyIsCisJCQkJ CQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3Rv IGZhaWw7CisJfQorCS8qCisJICogTm90ZTogV2UgbXVzdCBnbyB0aHJvdWdoIEJJTyBhbmQg bm90IHNheSB1c2UgUEVNX3JlYWRfUlNBUHJpdmF0ZUtleSgpCisJICogZGlyZWN0bHkgb24g YSBGSUxFLiAgT3RoZXJ3aXNlLCB3ZSBnZXQgaW50byAibm8gT1BFTlNTTF9BcHBsaW5rIiBo ZWxsCisJICogb24gV2luZG93cyAod2hpY2ggaGFwcGVucyB3aGVuZXZlciB5b3UgcGFzcyBh IHN0ZGlvIGhhbmRsZSBmcm9tIHRoZQorCSAqIGFwcGxpY2F0aW9uIGludG8gT3BlblNTTCku CisJICovCisJcnNhID0gUEVNX3JlYWRfYmlvX1JTQVByaXZhdGVLZXkoYmlvLCAmcnNhLCBO VUxMLCBOVUxMKTsKKwlpZiAoIXJzYSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3QgcmVhZCBSU0EgcHJpdmF0ZSBrZXk6ICVzIiwKKwkJCQkJCQkJ RVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlrZXkgPSBFVlBfUEtFWV9uZXcoKTsKKwlpZiAoIWtleSkKKwl7CisJCWxp YnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3QgYWxsb2NhdGUgcHJpdmF0 ZSBrZXkgc3RydWN0dXJlOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfUEtF WV9hc3NpZ25fUlNBKGtleSwgcnNhKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9y KGNvbm4sICJjb3VsZCBub3QgYXNzaWduIHByaXZhdGUga2V5OiAlcyIsCisJCQkJCQkJCUVS Ul9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7 CisJfQorCisJY3R4ID0gRVZQX1BLRVlfQ1RYX25ldyhrZXksIE5VTEwpOworCWlmICghY3R4 KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvdWxkIG5vdCBhbGxv Y2F0ZSBwdWJsaWMga2V5IGFsZ29yaXRobSBjb250ZXh0OiAlcyIsCisJCQkJCQkJCUVSUl9y ZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJ fQorCisJaWYgKEVWUF9QS0VZX2RlY3J5cHRfaW5pdChjdHgpIDw9IDApCisJeworCQlsaWJw cV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBm YWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfQ1RYX3NldF9y c2FfcGFkZGluZyhjdHgsIFJTQV9QS0NTMV9PQUVQX1BBRERJTkcpIDw9IDAgfHwKKwkJRVZQ X1BLRVlfQ1RYX3NldF9yc2FfbWdmMV9tZChjdHgsIG1kKSA8PSAwIHx8CisJCUVWUF9QS0VZ X0NUWF9zZXRfcnNhX29hZXBfbWQoY3R4LCBtZCkgPD0gMCkKKwl7CisJCWxpYnBxX2FwcGVu ZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBub3Qgc2V0IFJTQSBwYXJhbWV0ZXI6ICVzIiwK KwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfZGVjcnlwdChjdHgsIE5VTEwsICZv dXRsZW4sIGZyb20sIGZyb21sZW4pIDw9IDApCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9l cnJvcihjb25uLCAiUlNBIGRlY3J5cHRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9y ZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJ fQorCisJb3V0ID0gbWFsbG9jKG91dGxlbik7CisJaWYgKCFvdXQpCisJeworCQlsaWJwcV9h cHBlbmRfY29ubl9lcnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7 CisJfQorCisJaWYgKEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBvdXQsICZvdXRsZW4sIGZyb20s IGZyb21sZW4pIDw9IDApCisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAi UlNBIGRlY3J5cHRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlmcmVlKG91dCk7CisJCW91dCA9IE5VTEw7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwkqdG9sZW4gPSBvdXRsZW47CisKK2ZhaWw6CisJRVZQ X1BLRVlfQ1RYX2ZyZWUoY3R4KTsKKwlFVlBfUEtFWV9mcmVlKGtleSk7CisJQklPX2ZyZWUo YmlvKTsKKworCXJldHVybiBvdXQ7Cit9CisKK3N0YXRpYyBjb25zdCBFVlBfQ0lQSEVSICoK K3BnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihpbnQgY2VrYWxnKQoreworCWNvbnN0IEVW UF9DSVBIRVIgKmNpcGhlcjsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2FzZSBQR19D RUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQljaXBoZXIgPSBFVlBfYWVz XzEyOF9jYmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18xOTJfQ0JD X0hNQUNfU0hBXzM4NDoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTkyX2NiYygpOworCQkJYnJl YWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0OgorCQlj YXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCWNpcGhlciA9 IEVWUF9hZXNfMjU2X2NiYygpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQljaXBoZXIg PSBOVUxMOworCX0KKworCXJldHVybiBjaXBoZXI7Cit9CisKK3N0YXRpYyBjb25zdCBFVlBf TUQgKgorcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoaW50IGNla2FsZykKK3sKKwljb25zdCBF VlBfTUQgKm1kOworCisJc3dpdGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NFS19BRUFE X0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJ YnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0Ogor CQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCW1kID0g RVZQX3NoYTM4NCgpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9D QkNfSE1BQ19TSEFfNTEyOgorCQkJbWQgPSBFVlBfc2hhNTEyKCk7CisJCQlicmVhazsKKwkJ ZGVmYXVsdDoKKwkJCW1kID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gbWQ7Cit9CisKK3N0YXRp YyBpbnQKK21kX2tleV9sZW5ndGgoY29uc3QgRVZQX01EICptZCkKK3sKKwlpZiAobWQgPT0g RVZQX3NoYTI1NigpKQorCQlyZXR1cm4gMTY7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTM4 NCgpKQorCQlyZXR1cm4gMjQ7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTUxMigpKQorCQly ZXR1cm4gMzI7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQKK21kX2hh c2hfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7CisJaWYgKG1kID09IEVWUF9zaGEyNTYo KSkKKwkJcmV0dXJuIDMyOworCWVsc2UgaWYgKG1kID09IEVWUF9zaGEzODQoKSkKKwkJcmV0 dXJuIDQ4OworCWVsc2UgaWYgKG1kID09IEVWUF9zaGE1MTIoKSkKKwkJcmV0dXJuIDY0Owor CWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisjaWZuZGVmIFRFU1RfRU5DUllQVAorI2RlZmlu ZSBQR19BRF9MRU4gNAorI2Vsc2UKKyNkZWZpbmUgUEdfQURfTEVOIHNpemVvZih0ZXN0X0Ep CisjZW5kaWYKKworc3RhdGljIGJvb2wKK2dldF9tZXNzYWdlX2F1dGhfdGFnKGNvbnN0IEVW UF9NRCAqbWQsCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5LCBpbnQgbWFj X2tleV9sZW4sCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICplbmNyLCBpbnQgZW5jcmxl biwKKwkJCQkJIGludCBjZWthbGcsCisJCQkJCSB1bnNpZ25lZCBjaGFyICptZF92YWx1ZSwg c2l6ZV90ICptZF9sZW5fcCwKKwkJCQkJIGNvbnN0IGNoYXIgKiplcnJtc2dwKQoreworCXN0 YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0XTsKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4ID0gTlVM TDsKKwlFVlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwlzaXplX3QJCWJ1ZnNpemU7CisJdW5z aWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwlpbnQ2NAkJYWw7CisJYm9vbAkJcmVzdWx0ID0g ZmFsc2U7CisKKwlpZiAoZW5jcmxlbiA8IDApCisJeworCQlzbnByaW50Zihtc2didWYsIHNp emVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0ZWQgdmFsdWUgaGFz IGludmFsaWQgbGVuZ3RoIikpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWls OworCX0KKworCWV2cF9tZF9jdHggPSBFVlBfTURfQ1RYX25ldygpOworCisJcGtleSA9IEVW UF9QS0VZX25ld19yYXdfcHJpdmF0ZV9rZXkoRVZQX1BLRVlfSE1BQywgTlVMTCwgbWFjX2tl eSwgbWFjX2tleV9sZW4pOworCWlmICghcGtleSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwg c2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxvY2F0 ZSBrZXkgZm9yIEhNQUM6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVS Ul9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOwor CX0KKworCWJ1ZnNpemUgPSBQR19BRF9MRU4gKyBlbmNybGVuICsgc2l6ZW9mKGludDY0KTsK KwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisJaWYgKCFidWYpCisJeworCQkqZXJybXNncCA9 IGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKyNp Zm5kZWYgVEVTVF9FTkNSWVBUCisJYnVmWzBdID0gJ1AnOworCWJ1ZlsxXSA9ICdHJzsKKwkq KGludDE2ICopIChidWYgKyAyKSA9IHBnX2h0b24xNihjZWthbGcpOworI2Vsc2UKKwltZW1j cHkoYnVmLCB0ZXN0X0EsIHNpemVvZih0ZXN0X0EpKTsKKyNlbmRpZgorCW1lbWNweShidWYg KyBQR19BRF9MRU4sIGVuY3IsIGVuY3JsZW4pOworCWFsID0gcGdfaHRvbjY0KFBHX0FEX0xF TiAqIDgpOworCW1lbWNweShidWYgKyBQR19BRF9MRU4gKyBlbmNybGVuLCAmYWwsIHNpemVv ZihhbCkpOworCisJaWYgKCFFVlBfRGlnZXN0U2lnbkluaXQoZXZwX21kX2N0eCwgTlVMTCwg bWQsIE5VTEwsIHBrZXkpKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVm KSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IGluaXRpYWxpemF0aW9uIGZhaWxlZDog JXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBf RGlnZXN0U2lnblVwZGF0ZShldnBfbWRfY3R4LCBidWYsIGJ1ZnNpemUpKQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGln ZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwgbWRfdmFs dWUsIG1kX2xlbl9wKSkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1Ziks CisJCQkJIGxpYnBxX2dldHRleHQoImRpZ2VzdCBzaWduaW5nIGZhaWxlZDogJXMiKSwKKwkJ CQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJt c2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCUFzc2VydCgqbWRfbGVuX3AgPT0g bWRfaGFzaF9sZW5ndGgobWQpKTsKKworCS8qIHRydW5jYXRlIG91dHB1dCB0byBoYWxmIHRo ZSBsZW5ndGgsIHBlciBzcGVjICovCisJKm1kX2xlbl9wIC89IDI7CisKKwlyZXN1bHQgPSB0 cnVlOworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX1BLRVlfZnJlZShwa2V5KTsKKwlFVlBf TURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7CisJcmV0dXJuIHJlc3VsdDsKK30KKwordW5zaWdu ZWQgY2hhciAqCitkZWNyeXB0X3ZhbHVlKFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpj ZWssIGludCBjZWthbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBpbnQgaW5wdXRs ZW4sIGNvbnN0IGNoYXIgKiplcnJtc2dwKQoreworCXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0 XTsKKworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKml2ID0gTlVMTDsKKwlzaXplX3QJCWl2bGVu OworCisJY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJ RVZQX0NJUEhFUl9DVFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5 X2xlbjsKKwlpbnQJCQltYWNfa2V5X2xlbjsKKwlpbnQJCQlrZXlfbGVuOworCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmVuY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqbWFjX2tleTsK Kwl1bnNpZ25lZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07CisJc2l6ZV90CQlt ZF9sZW4gPSBzaXplb2YobWRfdmFsdWUpOworCXNpemVfdAkJYnVmc2l6ZTsKKwl1bnNpZ25l ZCBjaGFyICpidWYgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgKmRlY3I7CisJaW50CQkJZGVj cmxlbiwKKwkJCQlkZWNybGVuMjsKKworCXVuc2lnbmVkIGNoYXIgKnJlc3VsdCA9IE5VTEw7 CisKKwljaXBoZXIgPSBwZ19jZWthbGdfdG9fb3BlbnNzbF9jaXBoZXIoY2VrYWxnKTsKKwlp ZiAoIWNpcGhlcikKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJ CQkJIGxpYnBxX2dldHRleHQoInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobSBp ZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290 byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoY2VrYWxnKTsK KwlpZiAoIW1kKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJ CQkgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGRpZ2VzdCBhbGdvcml0aG0gaWRlbnRp ZmllcjogJWQiKSwgY2VrYWxnKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisKKwlldnBfY2lwaGVyX2N0eCA9IEVWUF9DSVBIRVJfQ1RYX25ldygpOworCisJ aWYgKCFFVlBfRGVjcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIGNpcGhlciwgTlVMTCwg TlVMTCwgTlVMTCkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAor CQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDog JXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJZW5jX2tleV9s ZW4gPSBFVlBfQ0lQSEVSX0NUWF9rZXlfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwltYWNf a2V5X2xlbiA9IG1kX2tleV9sZW5ndGgobWQpOworCWtleV9sZW4gPSBtYWNfa2V5X2xlbiAr IGVuY19rZXlfbGVuOworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVuKQorCXsK KwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4 dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IGhhcyB3cm9uZyBsZW5ndGggZm9yIGFsZ29yaXRo bSAoaGFzOiAlenUsIHJlcXVpcmVkOiAlZCkiKSwKKwkJCQkgY2VrLT5jZWtkYXRhbGVuLCBr ZXlfbGVuKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFpbDsKKwl9CisKKwll bmNfa2V5ID0gY2VrLT5jZWtkYXRhICsgbWFjX2tleV9sZW47CisJbWFjX2tleSA9IGNlay0+ Y2VrZGF0YTsKKworCWlmICghZ2V0X21lc3NhZ2VfYXV0aF90YWcobWQsIG1hY19rZXksIG1h Y19rZXlfbGVuLAorCQkJCQkJCSAgaW5wdXQsIGlucHV0bGVuIC0gKG1kX2hhc2hfbGVuZ3Ro KG1kKSAvIDIpLAorCQkJCQkJCSAgY2VrYWxnLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9s ZW4sCisJCQkJCQkJICBlcnJtc2dwKSkKKwl7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAo bWVtY21wKGlucHV0ICsgKGlucHV0bGVuIC0gbWRfbGVuKSwgbWRfdmFsdWUsIG1kX2xlbikg IT0gMCkKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiTUFDIG1pc21hdGNoIik7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpdmxlbiA9IEVWUF9DSVBIRVJfQ1RYX2l2X2xlbmd0 aChldnBfY2lwaGVyX2N0eCk7CisJaXYgPSBpbnB1dDsKKwlpbnB1dCArPSBpdmxlbjsKKwlp bnB1dGxlbiAtPSBpdmxlbjsKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChldnBfY2lwaGVy X2N0eCwgTlVMTCwgTlVMTCwgZW5jX2tleSwgaXYpKQorCXsKKwkJc25wcmludGYobXNnYnVm LCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBpbml0 aWFsaXphdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWls OworCX0KKworCWJ1ZnNpemUgPSBpbnB1dGxlbiArIEVWUF9DSVBIRVJfQ1RYX2Jsb2NrX3Np emUoZXZwX2NpcGhlcl9jdHgpICsgMTsKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCisJYnVmID0g cHFSZXN1bHRBbGxvYyhyZXMsIGJ1ZnNpemUsIGZhbHNlKTsKKyNlbHNlCisJYnVmID0gbWFs bG9jKGJ1ZnNpemUpOworI2VuZGlmCisJaWYgKCFidWYpCisJeworCQkqZXJybXNncCA9IGxp YnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnkiKTsKKwkJZ290byBmYWlsOworCX0KKwlkZWNy ID0gYnVmOworCWlmICghRVZQX0RlY3J5cHRVcGRhdGUoZXZwX2NpcGhlcl9jdHgsIGRlY3Is ICZkZWNybGVuLCBpbnB1dCwgaW5wdXRsZW4gLSBtZF9sZW4pKQorCXsKKwkJc25wcmludGYo bXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlv biBmYWlsZWQ6ICVzIiksCisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQkqZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlp ZiAoIUVWUF9EZWNyeXB0RmluYWxfZXgoZXZwX2NpcGhlcl9jdHgsIGRlY3IgKyBkZWNybGVu LCAmZGVjcmxlbjIpKQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwK KwkJCQkgbGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBmYWlsZWQ6ICVzIiksCisJCQkJIEVS Ul9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkqZXJybXNncCA9 IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKwlkZWNybGVuICs9IGRlY3JsZW4yOworCUFz c2VydChkZWNybGVuIDwgYnVmc2l6ZSk7CisJZGVjcltkZWNybGVuXSA9ICdcMCc7CisJcmVz dWx0ID0gZGVjcjsKKworZmFpbDoKKwlFVlBfQ0lQSEVSX0NUWF9mcmVlKGV2cF9jaXBoZXJf Y3R4KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKKyNpZm5kZWYgVEVTVF9FTkNSWVBUCitz dGF0aWMgYm9vbAorbWFrZV9zaXYoUEdjb25uICpjb25uLAorCQkgdW5zaWduZWQgY2hhciAq aXYsIHNpemVfdCBpdmxlbiwKKwkJIGNvbnN0IEVWUF9NRCAqbWQsCisJCSBjb25zdCB1bnNp Z25lZCBjaGFyICppdl9rZXksIGludCBpdl9rZXlfbGVuLAorCQkgY29uc3QgdW5zaWduZWQg Y2hhciAqcGxhaW50ZXh0LCBpbnQgcGxhaW50ZXh0X2xlbikKK3sKKwlFVlBfTURfQ1RYICpl dnBfbWRfY3R4ID0gTlVMTDsKKwlFVlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwl1bnNpZ25l ZCBjaGFyIG1kX3ZhbHVlW0VWUF9NQVhfTURfU0laRV07CisJc2l6ZV90CQltZF9sZW4gPSBz aXplb2YobWRfdmFsdWUpOworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJZXZwX21kX2N0 eCA9IEVWUF9NRF9DVFhfbmV3KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlfbmV3X3Jhd19wcml2 YXRlX2tleShFVlBfUEtFWV9ITUFDLCBOVUxMLCBpdl9rZXksIGl2X2tleV9sZW4pOworCWlm ICghcGtleSkKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb3VsZCBu b3QgYWxsb2NhdGUga2V5IGZvciBITUFDOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJy b3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYg KCFFVlBfRGlnZXN0U2lnbkluaXQoZXZwX21kX2N0eCwgTlVMTCwgbWQsIE5VTEwsIHBrZXkp KQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImRpZ2VzdCBpbml0aWFs aXphdGlvbiBmYWlsZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmco RVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdl c3RTaWduVXBkYXRlKGV2cF9tZF9jdHgsIHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbikpCisJ eworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZGlnZXN0IHNpZ25pbmcgZmFp bGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJy b3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfRGlnZXN0U2lnbkZpbmFs KGV2cF9tZF9jdHgsIG1kX3ZhbHVlLCAmbWRfbGVuKSkKKwl7CisJCWxpYnBxX2FwcGVuZF9j b25uX2Vycm9yKGNvbm4sICJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiwKKwkJCQkJCQkJ RVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFp bDsKKwl9CisJQXNzZXJ0KG1kX2xlbiA9PSBtZF9oYXNoX2xlbmd0aChtZCkpOworCW1lbWNw eShpdiwgbWRfdmFsdWUsIGl2bGVuKTsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCUVW UF9QS0VZX2ZyZWUocGtleSk7CisJRVZQX01EX0NUWF9mcmVlKGV2cF9tZF9jdHgpOworCXJl dHVybiByZXN1bHQ7Cit9CisjZW5kaWYJCQkJCQkJLyogVEVTVF9FTkNSWVBUICovCisKK3Vu c2lnbmVkIGNoYXIgKgorZW5jcnlwdF92YWx1ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ0VL ICpjZWssIGludCBjZWthbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlLCBpbnQgKm5i eXRlc3AsIGJvb2wgZW5jX2RldCkKK3sKKwlpbnQJCQluYnl0ZXMgPSAqbmJ5dGVzcDsKKwl1 bnNpZ25lZCBjaGFyIGl2W0VWUF9NQVhfSVZfTEVOR1RIXTsKKwlzaXplX3QJCWl2bGVuOwor CWNvbnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKwljb25zdCBFVlBfTUQgKm1kOworCUVWUF9D SVBIRVJfQ1RYICpldnBfY2lwaGVyX2N0eCA9IE5VTEw7CisJaW50CQkJZW5jX2tleV9sZW47 CisJaW50CQkJbWFjX2tleV9sZW47CisJaW50CQkJa2V5X2xlbjsKKwljb25zdCB1bnNpZ25l ZCBjaGFyICplbmNfa2V5OworCWNvbnN0IHVuc2lnbmVkIGNoYXIgKm1hY19rZXk7CisJc2l6 ZV90CQlidWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJdW5zaWduZWQg Y2hhciAqZW5jcjsKKwlpbnQJCQllbmNybGVuLAorCQkJCWVuY3JsZW4yOworCisJY29uc3Qg Y2hhciAqZXJybXNnOworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9NRF9TSVpF XTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJc2l6ZV90CQlidWYy c2l6ZTsKKwl1bnNpZ25lZCBjaGFyICpidWYyID0gTlVMTDsKKworCXVuc2lnbmVkIGNoYXIg KnJlc3VsdCA9IE5VTEw7CisKKwljaXBoZXIgPSBwZ19jZWthbGdfdG9fb3BlbnNzbF9jaXBo ZXIoY2VrYWxnKTsKKwlpZiAoIWNpcGhlcikKKwl7CisJCWxpYnBxX2FwcGVuZF9jb25uX2Vy cm9yKGNvbm4sICJ1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBhbGdvcml0aG0gaWRlbnRpZmll cjogJWQiLCBjZWthbGcpOworCQlnb3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19jZWthbGdf dG9fb3BlbnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJeworCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAidW5yZWNvZ25pemVkIGRpZ2VzdCBhbGdvcml0aG0gaWRlbnRp ZmllcjogJWQiLCBjZWthbGcpOworCQlnb3RvIGZhaWw7CisJfQorCisJZXZwX2NpcGhlcl9j dHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKworCWlmICghRVZQX0VuY3J5cHRJbml0X2V4 KGV2cF9jaXBoZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5VTEwsIE5VTEwpKQorCXsKKwkJbGli cHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVuY3J5cHRpb24gaW5pdGlhbGl6YXRpb24g ZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRf ZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJZW5jX2tleV9sZW4gPSBFVlBfQ0lQ SEVSX0NUWF9rZXlfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwltYWNfa2V5X2xlbiA9IG1k X2tleV9sZW5ndGgobWQpOworCWtleV9sZW4gPSBtYWNfa2V5X2xlbiArIGVuY19rZXlfbGVu OworCisJaWYgKGNlay0+Y2VrZGF0YWxlbiAhPSBrZXlfbGVuKQorCXsKKwkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBoYXMgd3Jvbmcg bGVuZ3RoIGZvciBhbGdvcml0aG0gKGhhczogJXp1LCByZXF1aXJlZDogJWQpIiwKKwkJCQkJ CQkJY2VrLT5jZWtkYXRhbGVuLCBrZXlfbGVuKTsKKwkJZ290byBmYWlsOworCX0KKworCWVu Y19rZXkgPSBjZWstPmNla2RhdGEgKyBtYWNfa2V5X2xlbjsKKwltYWNfa2V5ID0gY2VrLT5j ZWtkYXRhOworCisJaXZsZW4gPSBFVlBfQ0lQSEVSX0NUWF9pdl9sZW5ndGgoZXZwX2NpcGhl cl9jdHgpOworCUFzc2VydChpdmxlbiA8PSBzaXplb2YoaXYpKTsKKwlpZiAoZW5jX2RldCkK Kwl7CisjaWZuZGVmIFRFU1RfRU5DUllQVAorCQltYWtlX3Npdihjb25uLCBpdiwgaXZsZW4s IG1kLCBtYWNfa2V5LCBtYWNfa2V5X2xlbiwgdmFsdWUsIG5ieXRlcyk7CisjZWxzZQorCQlt ZW1jcHkoaXYsIHRlc3RfSVYsIGl2bGVuKTsKKyNlbmRpZgorCX0KKwllbHNlCisJCXBnX3N0 cm9uZ19yYW5kb20oaXYsIGl2bGVuKTsKKwlpZiAoIUVWUF9FbmNyeXB0SW5pdF9leChldnBf Y2lwaGVyX2N0eCwgTlVMTCwgTlVMTCwgZW5jX2tleSwgaXYpKQorCXsKKwkJbGlicHFfYXBw ZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVuY3J5cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVk OiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3Io KSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IGl2bGVuICsgKG5ieXRlcyAr IDIgKiBFVlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9jaXBoZXJfY3R4KSAtIDEpOwor CWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCWxpYnBxX2FwcGVu ZF9jb25uX2Vycm9yKGNvbm4sICJvdXQgb2YgbWVtb3J5Iik7CisJCWdvdG8gZmFpbDsKKwl9 CisJbWVtY3B5KGJ1ZiwgaXYsIGl2bGVuKTsKKwllbmNyID0gYnVmICsgaXZsZW47CisJaWYg KCFFVlBfRW5jcnlwdFVwZGF0ZShldnBfY2lwaGVyX2N0eCwgZW5jciwgJmVuY3JsZW4sIHZh bHVlLCBuYnl0ZXMpKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImVu Y3J5cHRpb24gZmFpbGVkOiAlcyIsCisJCQkJCQkJCUVSUl9yZWFzb25fZXJyb3Jfc3RyaW5n KEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCWlmICghRVZQX0VuY3J5 cHRGaW5hbF9leChldnBfY2lwaGVyX2N0eCwgZW5jciArIGVuY3JsZW4sICZlbmNybGVuMikp CisJeworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAiZW5jcnlwdGlvbiBmYWls ZWQ6ICVzIiwKKwkJCQkJCQkJRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJv cigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJZW5jcmxlbiArPSBlbmNybGVuMjsKKworCWVu Y3IgLT0gaXZsZW47CisJZW5jcmxlbiArPSBpdmxlbjsKKworCUFzc2VydChlbmNybGVuIDw9 IGJ1ZnNpemUpOworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tleSwg bWFjX2tleV9sZW4sCisJCQkJCQkJICBlbmNyLCBlbmNybGVuLAorCQkJCQkJCSAgY2VrYWxn LAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9sZW4sCisJCQkJCQkJICAmZXJybXNnKSkKKwl7 CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsICIlc1xuIiwgZXJy bXNnKTsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZjJzaXplID0gZW5jcmxlbiArIG1kX2xl bjsKKwlidWYyID0gbWFsbG9jKGJ1ZjJzaXplKTsKKwlpZiAoIWJ1ZjIpCisJeworCQlsaWJw cV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZh aWw7CisJfQorCW1lbWNweShidWYyLCBlbmNyLCBlbmNybGVuKTsKKwltZW1jcHkoYnVmMiAr IGVuY3JsZW4sIG1kX3ZhbHVlLCBtZF9sZW4pOworCisJcmVzdWx0ID0gYnVmMjsKKwluYnl0 ZXMgPSBidWYyc2l6ZTsKKworZmFpbDoKKwlmcmVlKGJ1Zik7CisJRVZQX0NJUEhFUl9DVFhf ZnJlZShldnBfY2lwaGVyX2N0eCk7CisKKwkqbmJ5dGVzcCA9IG5ieXRlczsKKwlyZXR1cm4g cmVzdWx0OworfQorCisKKy8qCisgKiBSdW4gdGVzdCBjYXNlcworICovCisjaWZkZWYgVEVT VF9FTkNSWVBUCisKK3N0YXRpYyB2b2lkCitkZWJ1Z19wcmludF9oZXgoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsLCBpbnQgbGVuKQoreworCXByaW50Zigi JXMgPSIsIG5hbWUpOworCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspCisJeworCQlp ZiAoaSAlIDE2ID09IDApCisJCQlwcmludGYoIlxuIik7CisJCWVsc2UKKwkJCXByaW50Zigi ICIpOworCQlwcmludGYoIiUwMngiLCB2YWxbaV0pOworCX0KKwlwcmludGYoIlxuIik7Cit9 CisKK3N0YXRpYyB2b2lkCit0ZXN0X2Nhc2UoaW50IGFsZywgY29uc3QgdW5zaWduZWQgY2hh ciAqSywgc2l6ZV90IEtfbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpQLCBzaXplX3QgUF9s ZW4pCit7CisJdW5zaWduZWQgY2hhciAqQzsKKwlpbnQJCQluYnl0ZXM7CisJUEdDRUsJCWNl azsKKworCW5ieXRlcyA9IFBfbGVuOworCWNlay5jZWtkYXRhID0gdW5jb25zdGlmeSh1bnNp Z25lZCBjaGFyICosIEspOworCWNlay5jZWtkYXRhbGVuID0gS19sZW47CisKKwlDID0gZW5j cnlwdF92YWx1ZShOVUxMLCAmY2VrLCBhbGcsIFAsICZuYnl0ZXMsIHRydWUpOworCWRlYnVn X3ByaW50X2hleCgiQyIsIEMsIG5ieXRlcyk7Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywg Y2hhciAqKmFyZ3YpCit7CisJcHJpbnRmKCI1LjFcbiIpOworCXRlc3RfY2FzZShQR19DRUtf QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYsIEssIDMyLCBQLCBzaXplb2YoUCkpOwor CXByaW50ZigiNS4yXG4iKTsKKwl0ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNf SE1BQ19TSEFfMzg0LCBLLCA0OCwgUCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuM1xuIik7 CisJdGVzdF9jYXNlKFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NCwgSywg NTYsIFAsIHNpemVvZihQKSk7CisJcHJpbnRmKCI1LjRcbiIpOworCXRlc3RfY2FzZShQR19D RUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81MTIsIEssIDY0LCBQLCBzaXplb2YoUCkp OworCisJcmV0dXJuIDA7Cit9CisKKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaCBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLmMwZjlmMzYyNTBlNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaApAQCAtMCwwICsxLDMzIEBACisvKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LmgKKyAqCisgKiBlbmNyeXB0aW9u IHN1cHBvcnQKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisg KgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5j cnlwdC5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBGRV9F TkNSWVBUX0gKKyNkZWZpbmUgRkVfRU5DUllQVF9ICisKKyNpbmNsdWRlICJsaWJwcS1mZS5o IgorI2luY2x1ZGUgImxpYnBxLWludC5oIgorCitleHRlcm4gdW5zaWduZWQgY2hhciAqZGVj cnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqY21rZmlsZW5h bWUsIGludCBjbWthbGcsCisJCQkJCQkJCQkJCWludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25l ZCBjaGFyICpmcm9tLAorCQkJCQkJCQkJCQlpbnQgKnRvbGVuKTsKKworZXh0ZXJuIHVuc2ln bmVkIGNoYXIgKmRlY3J5cHRfdmFsdWUoUEdyZXN1bHQgKnJlcywgY29uc3QgUEdDRUsgKmNl aywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKmlucHV0LCBp bnQgaW5wdXRsZW4sCisJCQkJCQkJCQljb25zdCBjaGFyICoqZXJybXNncCk7CisKK2V4dGVy biB1bnNpZ25lZCBjaGFyICplbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29ubiwgY29uc3QgUEdD RUsgKmNlaywgaW50IGNla2FsZywKKwkJCQkJCQkJCWNvbnN0IHVuc2lnbmVkIGNoYXIgKnZh bHVlLCBpbnQgKm5ieXRlc3AsIGJvb2wgZW5jX2RldCk7CisKKyNlbmRpZgkJCQkJCQkvKiBG RV9FTkNSWVBUX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4 ZWMuYyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwppbmRleCBkYTIyOWQ2MzJh MWUuLjljZWVjZDFmNGI5MyAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt ZXhlYy5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYwpAQCAtMjQsNiAr MjQsOSBAQAogI2luY2x1ZGUgPHVuaXN0ZC5oPgogI2VuZGlmCiAKKyNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNvbW1vbi9iYXNlNjQuaCIKKyNpbmNs dWRlICJmZS1lbmNyeXB0LmgiCiAjaW5jbHVkZSAibGlicHEtZmUuaCIKICNpbmNsdWRlICJs aWJwcS1pbnQuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgpAQCAtNzIsNyArNzUsOCBA QCBzdGF0aWMgaW50CVBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJY29u c3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAogCQkJCQkJCWNvbnN0IGludCAqcGFyYW1M ZW5ndGhzLAogCQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAotCQkJCQkJCWludCBy ZXN1bHRGb3JtYXQpOworCQkJCQkJCWludCByZXN1bHRGb3JtYXQsCisJCQkJCQkJUEdyZXN1 bHQgKnBhcmFtRGVzYyk7CiBzdGF0aWMgdm9pZCBwYXJzZUlucHV0KFBHY29ubiAqY29ubik7 CiBzdGF0aWMgUEdyZXN1bHQgKmdldENvcHlSZXN1bHQoUEdjb25uICpjb25uLCBFeGVjU3Rh dHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgYm9vbCBQUWV4ZWNTdGFydChQR2Nvbm4gKmNv bm4pOwpAQCAtMTE4Myw2ICsxMTg3LDM3NSBAQCBwcVNhdmVQYXJhbWV0ZXJTdGF0dXMoUEdj b25uICpjb25uLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKIAl9CiB9 CiAKK2ludAorcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlk LCBjb25zdCBjaGFyICprZXluYW1lLAorCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKQor eworCWNoYXIJICAgKmtleW5hbWVfY29weTsKKwljaGFyCSAgICprZXlyZWFsbV9jb3B5Owor CWJvb2wJCWZvdW5kOworCisJa2V5bmFtZV9jb3B5ID0gc3RyZHVwKGtleW5hbWUpOworCWlm ICgha2V5bmFtZV9jb3B5KQorCQlyZXR1cm4gRU9GOworCWtleXJlYWxtX2NvcHkgPSBzdHJk dXAoa2V5cmVhbG0pOworCWlmICgha2V5cmVhbG1fY29weSkKKwl7CisJCWZyZWUoa2V5bmFt ZV9jb3B5KTsKKwkJcmV0dXJuIEVPRjsKKwl9CisKKwlmb3VuZCA9IGZhbHNlOworCWZvciAo aW50IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCXN0cnVjdCBwZ19jbWsg KmNoZWNrY21rID0gJmNvbm4tPmNta3NbaV07CisKKwkJLyogcmVwbGFjZSBleGlzdGluZz8g Ki8KKwkJaWYgKGNoZWNrY21rLT5jbWtpZCA9PSBrZXlpZCkKKwkJeworCQkJZnJlZShjaGVj a2Ntay0+Y21rbmFtZSk7CisJCQlmcmVlKGNoZWNrY21rLT5jbWtyZWFsbSk7CisJCQljaGVj a2Ntay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJCWNoZWNrY21rLT5jbWtyZWFsbSA9 IGtleXJlYWxtX2NvcHk7CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0K KworCS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWludAkJCW5ld25j bWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdj bWs7CisKKwkJbmV3bmNta3MgPSBjb25uLT5uY21rcyArIDE7CisJCWlmIChuZXduY21rcyA8 PSAwKQorCQkJcmV0dXJuIEVPRjsKKwkJbmV3Y21rcyA9IHJlYWxsb2MoY29ubi0+Y21rcywg bmV3bmNta3MgKiBzaXplb2Yoc3RydWN0IHBnX2NtaykpOworCQlpZiAoIW5ld2Nta3MpCisJ CXsKKwkJCWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJCWZyZWUoa2V5cmVhbG1fY29weSk7CisJ CQlyZXR1cm4gRU9GOworCQl9CisKKwkJbmV3Y21rID0gJm5ld2Nta3NbbmV3bmNta3MgLSAx XTsKKwkJbmV3Y21rLT5jbWtpZCA9IGtleWlkOworCQluZXdjbWstPmNta25hbWUgPSBrZXlu YW1lX2NvcHk7CisJCW5ld2Ntay0+Y21rcmVhbG0gPSBrZXlyZWFsbV9jb3B5OworCisJCWNv bm4tPm5jbWtzID0gbmV3bmNta3M7CisJCWNvbm4tPmNta3MgPSBuZXdjbWtzOworCX0KKwor CXJldHVybiAwOworfQorCisvKgorICogUmVwbGFjZSBwbGFjZWhvbGRlcnMgaW4gaW5wdXQg c3RyaW5nLiAgUmV0dXJuIHZhbHVlIG1hbGxvYydlZC4KKyAqLworc3RhdGljIGNoYXIgKgor cmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKGNvbnN0IGNoYXIgKmluLCBjb25zdCBjaGFyICpj bWtuYW1lLCBjb25zdCBjaGFyICpjbWtyZWFsbSwgaW50IGNta2FsZywgY29uc3QgY2hhciAq YjY0ZGF0YSwgc2l6ZV90IGI2NGRhdGFsZW4pCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsK KworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCWZvciAoY29uc3QgY2hhciAqcCA9IGlu OyAqcDsgcCsrKQorCXsKKwkJaWYgKHBbMF0gPT0gJyUnKQorCQl7CisJCQlzd2l0Y2ggKHBb MV0pCisJCQl7CisJCQkJY2FzZSAnYSc6CisJCQkJCXsKKwkJCQkJCWNvbnN0IGNoYXIgKnM7 CisKKwkJCQkJCXN3aXRjaCAoY21rYWxnKQorCQkJCQkJeworCQkJCQkJCWNhc2UgUEdfQ01L X1JTQUVTX09BRVBfU0hBXzE6CisJCQkJCQkJCXMgPSAiUlNBRVNfT0FFUF9TSEFfMSI7CisJ CQkJCQkJCWJyZWFrOworCQkJCQkJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoK KwkJCQkJCQkJcyA9ICJSU0FFU19PQUVQX1NIQV8yNTYiOworCQkJCQkJCQlicmVhazsKKwkJ CQkJCQlkZWZhdWx0OgorCQkJCQkJCQlzID0gIklOVkFMSUQiOworCQkJCQkJfQorCQkJCQkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1Ziwgcyk7CisJCQkJCX0KKwkJCQkJcCsrOworCQkJ CQlicmVhazsKKwkJCQljYXNlICdiJzoKKwkJCQkJYXBwZW5kQmluYXJ5UFFFeHBCdWZmZXIo JmJ1ZiwgYjY0ZGF0YSwgYjY0ZGF0YWxlbik7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7CisJ CQkJY2FzZSAnayc6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsIGNta25hbWUp OworCQkJCQlwKys7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgJ3InOgorCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCBjbWtyZWFsbSk7CisJCQkJCXArKzsKKwkJCQkJYnJlYWs7 CisJCQkJZGVmYXVsdDoKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKCZidWYsIHBbMF0p OworCQkJfQorCQl9CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyQ2hhcigmYnVmLCBw WzBdKTsKKwl9CisKKwlyZXR1cm4gYnVmLmRhdGE7Cit9CisKKyNpZm5kZWYgVVNFX1NTTAor LyoKKyAqIER1bW15IGltcGxlbWVudGF0aW9uIGZvciBub24tU1NMIGJ1aWxkcworICovCit1 bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIGNv bnN0IGNoYXIgKmNta2ZpbGVuYW1lLCBpbnQgY21rYWxnLAorCQkJCQkgIGludCBmcm9tbGVu LCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJCQkgIGludCAqdG9sZW4pCit7CisJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgImNvbHVtbiBlbmNyeXB0aW9uIG5vdCBz dXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIpOworCXJldHVybiBOVUxMOworfQorI2VuZGlmCisK Ky8qCisgKiBEZWNyeXB0IGEgQ0VLIHVzaW5nIHRoZSBnaXZlbiBDTUsuICBUaGUgY2lwaGVy dGV4dCBpcyBwYXNzZWQgaW4KKyAqICJmcm9tIiBhbmQgImZyb21sZW4iLiAgUmV0dXJuIHRo ZSBkZWNyeXB0ZWQgdmFsdWUgaW4gYSBtYWxsb2MnZWQgYXJlYSwgaXRzCisgKiBsZW5ndGgg dmlhICJ0b2xlbiIuICBSZXR1cm4gTlVMTCBvbiBlcnJvcjsgYWRkIGVycm9yIG1lc3NhZ2Vz IGRpcmVjdGx5IHRvCisgKiAiY29ubiIuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBjaGFyICoK K2RlY3J5cHRfY2VrKFBHY29ubiAqY29ubiwgY29uc3QgUEdDTUsgKmNtaywgaW50IGNta2Fs ZywKKwkJCWludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAorCQkJaW50 ICp0b2xlbikKK3sKKwljaGFyCSAgICpjbWtsb29rdXA7CisJYm9vbAkJZm91bmQgPSBmYWxz ZTsKKwl1bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY21rbG9va3VwID0gc3Ry ZHVwKGNvbm4tPmNta2xvb2t1cCA/IGNvbm4tPmNta2xvb2t1cCA6ICIiKTsKKworCWlmICgh Y21rbG9va3VwKQorCXsKKwkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgIm91dCBv ZiBtZW1vcnkiKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJLyoKKwkgKiBBbmFseXplIHNl bWljb2xvbi1zZXBhcmF0ZWQgbGlzdAorCSAqLworCWZvciAoY2hhciAqcyA9IHN0cnRvayhj bWtsb29rdXAsICI7Iik7IHM7IHMgPSBzdHJ0b2soTlVMTCwgIjsiKSkKKwl7CisJCWNoYXIJ ICAgKnNlcDsKKworCQkvKiBzcGxpdCBmb3VuZCB0b2tlbiBhdCAnPScgKi8KKwkJc2VwID0g c3RyY2hyKHMsICc9Jyk7CisJCWlmICghc2VwKQorCQl7CisJCQlsaWJwcV9hcHBlbmRfY29u bl9lcnJvcihjb25uLCAic3ludGF4IGVycm9yIGluIENNSyBsb29rdXAgc3BlY2lmaWNhdGlv biwgbWlzc2luZyBcIiVjXCI6ICVzIiwgJz0nLCBzKTsKKwkJCWJyZWFrOworCQl9CisKKwkJ LyogbWF0Y2hpbmcgcmVhbG0/ICovCisJCWlmIChzdHJuY21wKHMsICIqIiwgc2VwIC0gcykg PT0gMCB8fCBzdHJuY21wKHMsIGNtay0+Y21rcmVhbG0sIHNlcCAtIHMpID09IDApCisJCXsK KwkJCWNoYXIJICAgKnNlcDI7CisKKwkJCWZvdW5kID0gdHJ1ZTsKKworCQkJc2VwMiA9IHN0 cmNocihzZXAsICc6Jyk7CisJCQlpZiAoIXNlcDIpCisJCQl7CisJCQkJbGlicHFfYXBwZW5k X2Nvbm5fZXJyb3IoY29ubiwgInN5bnRheCBlcnJvciBpbiBDTUsgbG9va3VwIHNwZWNpZmlj YXRpb24sIG1pc3NpbmcgXCIlY1wiOiAlcyIsICc6Jywgcyk7CisJCQkJZ290byBmYWlsOwor CQkJfQorCisJCQlpZiAoc3RybmNtcChzZXAgKyAxLCAiZmlsZSIsIHNlcDIgLSAoc2VwICsg MSkpID09IDApCisJCQl7CisJCQkJY2hhcgkgICAqY21rZmlsZW5hbWU7CisKKwkJCQljbWtm aWxlbmFtZSA9IHJlcGxhY2VfY21rX3BsYWNlaG9sZGVycyhzZXAyICsgMSwgY21rLT5jbWtu YW1lLCBjbWstPmNta3JlYWxtLCBjbWthbGcsICJJTlZBTElEIiwgNyk7CisJCQkJcmVzdWx0 ID0gZGVjcnlwdF9jZWtfZnJvbV9maWxlKGNvbm4sIGNta2ZpbGVuYW1lLCBjbWthbGcsIGZy b21sZW4sIGZyb20sIHRvbGVuKTsKKwkJCQlmcmVlKGNta2ZpbGVuYW1lKTsKKwkJCX0KKwkJ CWVsc2UgaWYgKHN0cm5jbXAoc2VwICsgMSwgInJ1biIsIHNlcDIgLSAoc2VwICsgMSkpID09 IDApCisJCQl7CisJCQkJaW50CQkJZW5jbGVuOworCQkJCWNoYXIJICAgKmVuYzsKKwkJCQlj aGFyCSAgICpjb21tYW5kOworCQkJCUZJTEUJICAgKmZwOworCQkJCWNoYXIJCWJ1Zls0MDk2 XTsKKwkJCQlpbnQJCQlyYzsKKworCQkJCWVuY2xlbiA9IHBnX2I2NF9lbmNfbGVuKGZyb21s ZW4pOworCQkJCWVuYyA9IG1hbGxvYyhlbmNsZW4gKyAxKTsKKwkJCQlpZiAoIWVuYykKKwkJ CQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJvdXQgb2YgbWVtb3J5 Iik7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJZW5jbGVuID0gcGdfYjY0X2VuY29k ZSgoY29uc3QgY2hhciAqKSBmcm9tLCBmcm9tbGVuLCBlbmMsIGVuY2xlbik7CisJCQkJaWYg KGVuY2xlbiA8IDApCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25u LCAiYmFzZTY0IGVuY29kaW5nIGZhaWxlZCIpOworCQkJCQlmcmVlKGVuYyk7CisJCQkJCWdv dG8gZmFpbDsKKwkJCQl9CisJCQkJY29tbWFuZCA9IHJlcGxhY2VfY21rX3BsYWNlaG9sZGVy cyhzZXAyICsgMSwgY21rLT5jbWtuYW1lLCBjbWstPmNta3JlYWxtLCBjbWthbGcsIGVuYywg ZW5jbGVuKTsKKwkJCQlmcmVlKGVuYyk7CisJCQkJZnAgPSBwb3Blbihjb21tYW5kLCAiciIp OworCQkJCWlmICghZnApCisJCQkJeworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAiY291bGQgbm90IHJ1biBjb21tYW5kIFwiJXNcIjogJW0iLCBjb21tYW5kKTsKKwkJ CQkJZnJlZShjb21tYW5kKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQlpZiAoZmdl dHMoYnVmLCBzaXplb2YoYnVmKSwgZnApKQorCQkJCXsKKwkJCQkJaW50CQkJbGluZWxlbjsK KwkJCQkJaW50CQkJZGVjbGVuOworCQkJCQljaGFyCSAgICpkZWM7CisKKwkJCQkJbGluZWxl biA9IHN0cmxlbihidWYpOworCQkJCQlpZiAoYnVmW2xpbmVsZW4gLSAxXSA9PSAnXG4nKQor CQkJCQl7CisJCQkJCQlidWZbbGluZWxlbiAtIDFdID0gJ1wwJzsKKwkJCQkJCWxpbmVsZW4t LTsKKwkJCQkJfQorCQkJCQlkZWNsZW4gPSBwZ19iNjRfZGVjX2xlbihsaW5lbGVuKTsKKwkJ CQkJZGVjID0gbWFsbG9jKGRlY2xlbik7CisJCQkJCWlmICghZGVjKQorCQkJCQl7CisJCQkJ CQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAib3V0IG9mIG1lbW9yeSIpOworCQkJ CQkJZnJlZShjb21tYW5kKTsKKwkJCQkJCWdvdG8gZmFpbDsKKwkJCQkJfQorCQkJCQlkZWNs ZW4gPSBwZ19iNjRfZGVjb2RlKGJ1ZiwgbGluZWxlbiwgZGVjLCBkZWNsZW4pOworCQkJCQlp ZiAoZGVjbGVuIDwgMCkKKwkJCQkJeworCQkJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Io Y29ubiwgImJhc2U2NCBkZWNvZGluZyBmYWlsZWQiKTsKKwkJCQkJCWZyZWUoZGVjKTsKKwkJ CQkJCWZyZWUoY29tbWFuZCk7CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKwkJCQkJcmVz dWx0ID0gKHVuc2lnbmVkIGNoYXIgKikgZGVjOworCQkJCQkqdG9sZW4gPSBkZWNsZW47CisJ CQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWxpYnBxX2FwcGVuZF9jb25uX2Vycm9yKGNv bm4sICJjb3VsZCBub3QgcmVhZCBmcm9tIGNvbW1hbmQ6ICVtIik7CisJCQkJCXBjbG9zZShm cCk7CisJCQkJCWZyZWUoY29tbWFuZCk7CisJCQkJCWdvdG8gZmFpbDsKKwkJCQl9CisJCQkJ cmMgPSBwY2xvc2UoZnApOworCQkJCWlmIChyYyAhPSAwKQorCQkJCXsKKwkJCQkJLyoKKwkJ CQkJICogWFhYIHdvdWxkIGxpa2UgdG8gdXNlIHdhaXRfcmVzdWx0X3RvX3N0cihyYykgYnV0 IHRoYXQKKwkJCQkJICogY2Fubm90IGJlIGNhbGxlZCBmcm9tIGxpYnBxIGJlY2F1c2UgaXQg Y2FsbHMgZXhpdCgpCisJCQkJCSAqLworCQkJCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihj b25uLCAiY291bGQgbm90IHJ1biBjb21tYW5kIFwiJXNcIiIsIGNvbW1hbmQpOworCQkJCQlm cmVlKGNvbW1hbmQpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCQkJCWZyZWUoY29tbWFu ZCk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3Io Y29ubiwgIkNNSyBsb29rdXAgc2NoZW1lIFwiJXNcIiBub3QgcmVjb2duaXplZCIsIHNlcCAr IDEpOworCQkJCWdvdG8gZmFpbDsKKwkJCX0KKwkJfQorCX0KKworCWlmICghZm91bmQpCisJ eworCQlsaWJwcV9hcHBlbmRfY29ubl9lcnJvcihjb25uLCAibm8gQ01LIGxvb2t1cCBmb3Vu ZCBmb3IgcmVhbG0gXCIlc1wiIiwgY21rLT5jbWtyZWFsbSk7CisJfQorCitmYWlsOgorCWZy ZWUoY21rbG9va3VwKTsKKwlyZXR1cm4gcmVzdWx0OworfQorCitpbnQKK3BxU2F2ZUNvbHVt bkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uLCBpbnQga2V5aWQsIGludCBjbWtpZCwgaW50 IGNta2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGludCBsZW4pCit7CisJUEdD TUsJICAgKmNtayA9IE5VTEw7CisJdW5zaWduZWQgY2hhciAqcGxhaW52YWwgPSBOVUxMOwor CWludAkJCXBsYWludmFsbGVuID0gMDsKKwlib29sCQlmb3VuZDsKKworCWZvciAoaW50IGkg PSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykKKwl7CisJCWlmIChjb25uLT5jbWtzW2ldLmNt a2lkID09IGNta2lkKQorCQl7CisJCQljbWsgPSAmY29ubi0+Y21rc1tpXTsKKwkJCWJyZWFr OworCQl9CisJfQorCisJaWYgKCFjbWspCisJCXJldHVybiBFT0Y7CisKKwlwbGFpbnZhbCA9 IGRlY3J5cHRfY2VrKGNvbm4sIGNtaywgY21rYWxnLCBsZW4sIHZhbHVlLCAmcGxhaW52YWxs ZW4pOworCWlmICghcGxhaW52YWwpCisJCXJldHVybiBFT0Y7CisKKwlmb3VuZCA9IGZhbHNl OworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNla3M7IGkrKykKKwl7CisJCXN0cnVj dCBwZ19jZWsgKmNoZWNrY2VrID0gJmNvbm4tPmNla3NbaV07CisKKwkJLyogcmVwbGFjZSBl eGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY2VrLT5jZWtpZCA9PSBrZXlpZCkKKwkJeworCQkJ ZnJlZShjaGVja2Nlay0+Y2VrZGF0YSk7CisJCQljaGVja2Nlay0+Y2VrZGF0YSA9IHBsYWlu dmFsOworCQkJY2hlY2tjZWstPmNla2RhdGFsZW4gPSBwbGFpbnZhbGxlbjsKKwkJCWZvdW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQl9CisJfQorCisJLyogYXBwZW5kIG5ldz8gKi8KKwlp ZiAoIWZvdW5kKQorCXsKKwkJaW50CQkJbmV3bmNla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5l d2Nla3M7CisJCXN0cnVjdCBwZ19jZWsgKm5ld2NlazsKKworCQluZXduY2VrcyA9IGNvbm4t Pm5jZWtzICsgMTsKKwkJaWYgKG5ld25jZWtzIDw9IDApCisJCXsKKwkJCWZyZWUocGxhaW52 YWwpOworCQkJcmV0dXJuIEVPRjsKKwkJfQorCQluZXdjZWtzID0gcmVhbGxvYyhjb25uLT5j ZWtzLCBuZXduY2VrcyAqIHNpemVvZihzdHJ1Y3QgcGdfY2VrKSk7CisJCWlmICghbmV3Y2Vr cykKKwkJeworCQkJZnJlZShwbGFpbnZhbCk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJ bmV3Y2VrID0gJm5ld2Nla3NbbmV3bmNla3MgLSAxXTsKKwkJbmV3Y2VrLT5jZWtpZCA9IGtl eWlkOworCQluZXdjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJbmV3Y2VrLT5jZWtkYXRh bGVuID0gcGxhaW52YWxsZW47CisKKwkJY29ubi0+bmNla3MgPSBuZXduY2VrczsKKwkJY29u bi0+Y2VrcyA9IG5ld2Nla3M7CisJfQorCisJcmV0dXJuIDA7Cit9CiAKIC8qCiAgKiBwcVJv d1Byb2Nlc3NvcgpAQCAtMTI1MSw2ICsxNjI0LDU1IEBAIHBxUm93UHJvY2Vzc29yKFBHY29u biAqY29ubiwgY29uc3QgY2hhciAqKmVycm1zZ3ApCiAJCQlib29sCQlpc2JpbmFyeSA9IChy ZXMtPmF0dERlc2NzW2ldLmZvcm1hdCAhPSAwKTsKIAkJCWNoYXIJICAgKnZhbDsKIAorCQkJ aWYgKHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQl7CisjaWZkZWYgVVNFX1NTTAorCQkJ CVBHQ0VLCSAgICpjZWsgPSBOVUxMOworCisJCQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25u LT5uY2VrczsgaisrKQorCQkJCXsKKwkJCQkJaWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0g cmVzLT5hdHREZXNjc1tpXS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNl a3Nbal07CisJCQkJCQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJ CQl7CisJCQkJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24g a2V5IG5vdCBmb3VuZCIpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJfQorCisJCQkJaWYgKGlz YmluYXJ5KQorCQkJCXsKKwkJCQkJdmFsID0gKGNoYXIgKikgZGVjcnlwdF92YWx1ZShyZXMs IGNlaywgcmVzLT5hdHREZXNjc1tpXS5jZWthbGcsCisJCQkJCQkJCQkJCQkgKGNvbnN0IHVu c2lnbmVkIGNoYXIgKikgY29sdW1uc1tpXS52YWx1ZSwgY2xlbiwgZXJybXNncCk7CisJCQkJ fQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZjsKKwkJCQkJdW5z aWduZWQgY2hhciAqZW5jY29sdmFsOworCQkJCQlzaXplX3QJCWVuY2NvbHZhbGxlbjsKKwor CQkJCQlidWYgPSBtYWxsb2MoY2xlbiArIDEpOworCQkJCQltZW1jcHkoYnVmLCBjb2x1bW5z W2ldLnZhbHVlLCBjbGVuKTsKKwkJCQkJYnVmW2NsZW5dID0gJ1wwJzsKKwkJCQkJZW5jY29s dmFsID0gUFF1bmVzY2FwZUJ5dGVhKGJ1ZiwgJmVuY2NvbHZhbGxlbik7CisJCQkJCXZhbCA9 IChjaGFyICopIGRlY3J5cHRfdmFsdWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3NbaV0uY2Vr YWxnLAorCQkJCQkJCQkJCQkJIGVuY2NvbHZhbCwgZW5jY29sdmFsbGVuLCBlcnJtc2dwKTsK KwkJCQkJZnJlZShlbmNjb2x2YWwpOworCQkJCQlmcmVlKGJ1Zik7CisJCQkJfQorCisJCQkJ aWYgKHZhbCA9PSBOVUxMKQorCQkJCQlnb3RvIGZhaWw7CisjZWxzZQorCQkJCSplcnJtc2dw ID0gbGlicHFfZ2V0dGV4dCgiY29sdW1uIGVuY3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0 aGlzIGJ1aWxkIik7CisJCQkJZ290byBmYWlsOworI2VuZGlmCisJCQl9CisJCQllbHNlCisJ CQl7CiAJCQl2YWwgPSAoY2hhciAqKSBwcVJlc3VsdEFsbG9jKHJlcywgY2xlbiArIDEsIGlz YmluYXJ5KTsKIAkJCWlmICh2YWwgPT0gTlVMTCkKIAkJCQlnb3RvIGZhaWw7CkBAIC0xMjU4 LDYgKzE2ODAsNyBAQCBwcVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIg KiplcnJtc2dwKQogCQkJLyogY29weSBhbmQgemVyby10ZXJtaW5hdGUgdGhlIGRhdGEgKGV2 ZW4gaWYgaXQncyBiaW5hcnkpICovCiAJCQltZW1jcHkodmFsLCBjb2x1bW5zW2ldLnZhbHVl LCBjbGVuKTsKIAkJCXZhbFtjbGVuXSA9ICdcMCc7CisJCQl9CiAKIAkJCXR1cFtpXS5sZW4g PSBjbGVuOwogCQkJdHVwW2ldLnZhbHVlID0gdmFsOwpAQCAtMTUwMCw2ICsxOTIzLDggQEAg UFFzZW5kUXVlcnlQYXJhbXMoUEdjb25uICpjb25uLAogCQkJCSAgY29uc3QgaW50ICpwYXJh bUZvcm1hdHMsCiAJCQkJICBpbnQgcmVzdWx0Rm9ybWF0KQogeworCVBHcmVzdWx0ICAgKnBh cmFtRGVzYyA9IE5VTEw7CisKIAlpZiAoIVBRc2VuZFF1ZXJ5U3RhcnQoY29ubiwgdHJ1ZSkp CiAJCXJldHVybiAwOwogCkBAIC0xNTE2LDYgKzE5NDEsMzcgQEAgUFFzZW5kUXVlcnlQYXJh bXMoUEdjb25uICpjb25uLAogCQlyZXR1cm4gMDsKIAl9CiAKKwlpZiAoY29ubi0+Y29sdW1u X2VuY3J5cHRpb25fZW5hYmxlZCkKKwl7CisJCVBHcmVzdWx0ICAgKnJlczsKKwkJYm9vbAkJ ZXJyb3I7CisKKwkJaWYgKGNvbm4tPnBpcGVsaW5lU3RhdHVzICE9IFBRX1BJUEVMSU5FX09G RikKKwkJeworCQkJbGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInN5bmNocm9ub3Vz IGNvbW1hbmQgZXhlY3V0aW9uIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gcGlwZWxp bmUgbW9kZSIpOworCQkJcmV0dXJuIDA7CisJCX0KKworCQlpZiAoIVBRc2VuZFByZXBhcmUo Y29ubiwgIiIsIGNvbW1hbmQsIG5QYXJhbXMsIHBhcmFtVHlwZXMpKQorCQkJcmV0dXJuIDA7 CisJCWVycm9yID0gZmFsc2U7CisJCXdoaWxlICgocmVzID0gUFFnZXRSZXN1bHQoY29ubikp ICE9IE5VTEwpCisJCXsKKwkJCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NP TU1BTkRfT0spCisJCQkJZXJyb3IgPSB0cnVlOworCQkJUFFjbGVhcihyZXMpOworCQl9CisJ CWlmIChlcnJvcikKKwkJCXJldHVybiAwOworCisJCXBhcmFtRGVzYyA9IFBRZGVzY3JpYmVQ cmVwYXJlZChjb25uLCAiIik7CisJCWlmIChQUXJlc3VsdFN0YXR1cyhwYXJhbURlc2MpICE9 IFBHUkVTX0NPTU1BTkRfT0spCisJCQlyZXR1cm4gMDsKKworCQljb21tYW5kID0gTlVMTDsK KwkJcGFyYW1UeXBlcyA9IE5VTEw7CisJfQorCiAJcmV0dXJuIFBRc2VuZFF1ZXJ5R3V0cyhj b25uLAogCQkJCQkJICAgY29tbWFuZCwKIAkJCQkJCSAgICIiLAkvKiB1c2UgdW5uYW1lZCBz dGF0ZW1lbnQgKi8KQEAgLTE1MjQsNyArMTk4MCw4IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBH Y29ubiAqY29ubiwKIAkJCQkJCSAgIHBhcmFtVmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5n dGhzLAogCQkJCQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsK KwkJCQkJCSAgIHJlc3VsdEZvcm1hdCwKKwkJCQkJCSAgIHBhcmFtRGVzYyk7CiB9CiAKIC8q CkBAIC0xNjM5LDYgKzIwOTYsMTkgQEAgUFFzZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNv bm4sCiAJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQljb25zdCBpbnQgKnBh cmFtRm9ybWF0cywKIAkJCQkJaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFzZW5k UXVlcnlQcmVwYXJlZERlc2NyaWJlZChjb25uLCBzdG10TmFtZSwgblBhcmFtcywgcGFyYW1W YWx1ZXMsIHBhcmFtTGVuZ3RocywgcGFyYW1Gb3JtYXRzLCByZXN1bHRGb3JtYXQsIE5VTEwp OworfQorCitpbnQKK1BRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25u LAorCQkJCQkJCSBjb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkgaW50IG5QYXJhbXMs CisJCQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCQkgY29u c3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRz LAorCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCSBQR3Jlc3VsdCAqcGFyYW1E ZXNjKQogewogCWlmICghUFFzZW5kUXVlcnlTdGFydChjb25uLCB0cnVlKSkKIAkJcmV0dXJu IDA7CkBAIC0xNjY0LDcgKzIxMzQsOCBAQCBQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAq Y29ubiwKIAkJCQkJCSAgIHBhcmFtVmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAog CQkJCQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJ CSAgIHJlc3VsdEZvcm1hdCwKKwkJCQkJCSAgIHBhcmFtRGVzYyk7CiB9CiAKIC8qCkBAIC0x NzYyLDcgKzIyMzMsOCBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCWNv bnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKIAkJCQljb25zdCBpbnQgKnBhcmFtTGVu Z3RocywKIAkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKLQkJCQlpbnQgcmVzdWx0Rm9y bWF0KQorCQkJCWludCByZXN1bHRGb3JtYXQsCisJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYykK IHsKIAlpbnQJCQlpOwogCVBHY21kUXVldWVFbnRyeSAqZW50cnk7CkBAIC0xODEwLDEzICsy MjgyLDQ1IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCWdvdG8gc2VuZEZh aWxlZDsKIAogCS8qIFNlbmQgcGFyYW1ldGVyIGZvcm1hdHMgKi8KLQlpZiAoblBhcmFtcyA+ IDAgJiYgcGFyYW1Gb3JtYXRzKQorCWlmIChuUGFyYW1zID4gMCAmJiAocGFyYW1Gb3JtYXRz IHx8IChwYXJhbURlc2MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzKSkpCiAJewogCQlpZiAo cHFQdXRJbnQoblBhcmFtcywgMiwgY29ubikgPCAwKQogCQkJZ290byBzZW5kRmFpbGVkOwor CiAJCWZvciAoaSA9IDA7IGkgPCBuUGFyYW1zOyBpKyspCiAJCXsKLQkJCWlmIChwcVB1dElu dChwYXJhbUZvcm1hdHNbaV0sIDIsIGNvbm4pIDwgMCkKKwkJCWludAkJCWZvcm1hdCA9IHBh cmFtRm9ybWF0cyA/IHBhcmFtRm9ybWF0c1tpXSA6IDA7CisKKwkJCS8qIENoZWNrIGZvcmNl IGNvbHVtbiBlbmNyeXB0aW9uICovCisJCQlpZiAoZm9ybWF0ICYgMHgxMCkKKwkJCXsKKwkJ CQlpZiAoIShwYXJhbURlc2MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVzY3MgJiYK KwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpKQorCQkJCXsKKwkJCQkJ bGlicHFfYXBwZW5kX2Nvbm5fZXJyb3IoY29ubiwgInBhcmFtZXRlciB3aXRoIGZvcmNlZCBl bmNyeXB0aW9uIGlzIG5vdCB0byBiZSBlbmNyeXB0ZWQiKTsKKwkJCQkJZ290byBzZW5kRmFp bGVkOworCQkJCX0KKwkJCX0KKwkJCWZvcm1hdCAmPSB+MHgxMDsKKworCQkJaWYgKHBhcmFt RGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MpCisJCQl7CisJCQkJUEdyZXNQYXJhbURl c2MgKnBkID0gJnBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXTsKKworCQkJCWlmIChwZC0+Y2Vr aWQpCisJCQkJeworCQkJCQlpZiAoZm9ybWF0ICE9IDApCisJCQkJCXsKKwkJCQkJCWxpYnBx X2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJmb3JtYXQgbXVzdCBiZSB0ZXh0IGZvciBlbmNy eXB0ZWQgcGFyYW1ldGVyIik7CisJCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJCX0KKwkJ CQkJZm9ybWF0ID0gMTsKKwkJCQkJZm9ybWF0IHw9IDB4MTA7CisJCQkJfQorCQkJfQorCisJ CQlpZiAocHFQdXRJbnQoZm9ybWF0LCAyLCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5kRmFp bGVkOwogCQl9CiAJfQpAQCAtMTgzNSw4ICsyMzM5LDkgQEAgUFFzZW5kUXVlcnlHdXRzKFBH Y29ubiAqY29ubiwKIAkJaWYgKHBhcmFtVmFsdWVzICYmIHBhcmFtVmFsdWVzW2ldKQogCQl7 CiAJCQlpbnQJCQluYnl0ZXM7CisJCQljb25zdCBjaGFyICpwYXJhbVZhbHVlOwogCi0JCQlp ZiAocGFyYW1Gb3JtYXRzICYmIHBhcmFtRm9ybWF0c1tpXSAhPSAwKQorCQkJaWYgKHBhcmFt Rm9ybWF0cyAmJiAocGFyYW1Gb3JtYXRzW2ldICYgMHgwMSkgIT0gMCkKIAkJCXsKIAkJCQkv KiBiaW5hcnkgcGFyYW1ldGVyICovCiAJCQkJaWYgKHBhcmFtTGVuZ3RocykKQEAgLTE4NTIs OSArMjM1Nyw1MiBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQkJCS8qIHRl eHQgcGFyYW1ldGVyLCBkbyBub3QgdXNlIHBhcmFtTGVuZ3RocyAqLwogCQkJCW5ieXRlcyA9 IHN0cmxlbihwYXJhbVZhbHVlc1tpXSk7CiAJCQl9CisKKwkJCXBhcmFtVmFsdWUgPSBwYXJh bVZhbHVlc1tpXTsKKworCQkJaWYgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVz Y3MgJiYgcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2lkKQorCQkJeworI2lmZGVmIFVT RV9TU0wKKwkJCQlib29sCQllbmNfZGV0ID0gKHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXS5m bGFncyAmIDB4MDEpICE9IDA7CisJCQkJUEdDRUsJICAgKmNlayA9IE5VTEw7CisJCQkJY2hh cgkgICAqZW5jX3BhcmFtVmFsdWU7CisJCQkJaW50CQkJZW5jX25ieXRlcyA9IG5ieXRlczsK KworCQkJCWZvciAoaW50IGogPSAwOyBqIDwgY29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJ CQkJCWlmIChjb25uLT5jZWtzW2pdLmNla2lkID09IHBhcmFtRGVzYy0+cGFyYW1EZXNjc1tp XS5jZWtpZCkKKwkJCQkJeworCQkJCQkJY2VrID0gJmNvbm4tPmNla3Nbal07CisJCQkJCQli cmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCQlpZiAoIWNlaykKKwkJCQl7CisJCQkJCWxpYnBx X2FwcGVuZF9jb25uX2Vycm9yKGNvbm4sICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgbm90IGZv dW5kIik7CisJCQkJCWdvdG8gc2VuZEZhaWxlZDsKKwkJCQl9CisKKwkJCQllbmNfcGFyYW1W YWx1ZSA9IChjaGFyICopIGVuY3J5cHRfdmFsdWUoY29ubiwgY2VrLCBwYXJhbURlc2MtPnBh cmFtRGVzY3NbaV0uY2VrYWxnLAorCQkJCQkJCQkJCQkJCQkoY29uc3QgdW5zaWduZWQgY2hh ciAqKSBwYXJhbVZhbHVlLCAmZW5jX25ieXRlcywgZW5jX2RldCk7CisJCQkJaWYgKCFlbmNf cGFyYW1WYWx1ZSkKKwkJCQkJZ290byBzZW5kRmFpbGVkOworCisJCQkJaWYgKHBxUHV0SW50 KGVuY19uYnl0ZXMsIDQsIGNvbm4pIDwgMCB8fAorCQkJCQlwcVB1dG5jaGFyKGVuY19wYXJh bVZhbHVlLCBlbmNfbmJ5dGVzLCBjb25uKSA8IDApCisJCQkJCWdvdG8gc2VuZEZhaWxlZDsK KworCQkJCWZyZWUoZW5jX3BhcmFtVmFsdWUpOworI2Vsc2UKKwkJCQlsaWJwcV9hcHBlbmRf Y29ubl9lcnJvcihjb25uLCAiY29sdW1uIGVuY3J5cHRpb24gbm90IHN1cHBvcnRlZCBieSB0 aGlzIGJ1aWxkIik7CisJCQkJZ290byBzZW5kRmFpbGVkOworI2VuZGlmCisJCQl9CisJCQll bHNlCisJCQl7CiAJCQlpZiAocHFQdXRJbnQobmJ5dGVzLCA0LCBjb25uKSA8IDAgfHwKLQkJ CQlwcVB1dG5jaGFyKHBhcmFtVmFsdWVzW2ldLCBuYnl0ZXMsIGNvbm4pIDwgMCkKKwkJCQlw cVB1dG5jaGFyKHBhcmFtVmFsdWUsIG5ieXRlcywgY29ubikgPCAwKQogCQkJCWdvdG8gc2Vu ZEZhaWxlZDsKKwkJCX0KIAkJfQogCQllbHNlCiAJCXsKQEAgLTIyOTAsMTIgKzI4MzgsMjYg QEAgUFFleGVjUHJlcGFyZWQoUEdjb25uICpjb25uLAogCQkJICAgY29uc3QgaW50ICpwYXJh bUxlbmd0aHMsCiAJCQkgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCSAgIGludCBy ZXN1bHRGb3JtYXQpCit7CisJcmV0dXJuIFBRZXhlY1ByZXBhcmVkRGVzY3JpYmVkKGNvbm4s IHN0bXROYW1lLCBuUGFyYW1zLCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLCBwYXJhbUZv cm1hdHMsIHJlc3VsdEZvcm1hdCwgTlVMTCk7Cit9CisKK1BHcmVzdWx0ICoKK1BRZXhlY1By ZXBhcmVkRGVzY3JpYmVkKFBHY29ubiAqY29ubiwKKwkJCQkJCWNvbnN0IGNoYXIgKnN0bXRO YW1lLAorCQkJCQkJaW50IG5QYXJhbXMsCisJCQkJCQljb25zdCBjaGFyICpjb25zdCAqcGFy YW1WYWx1ZXMsCisJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCWNvbnN0 IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkJaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCVBH cmVzdWx0ICpwYXJhbURlc2MpCiB7CiAJaWYgKCFQUWV4ZWNTdGFydChjb25uKSkKIAkJcmV0 dXJuIE5VTEw7Ci0JaWYgKCFQUXNlbmRRdWVyeVByZXBhcmVkKGNvbm4sIHN0bXROYW1lLAot CQkJCQkJCSBuUGFyYW1zLCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhzLAotCQkJCQkJCSBw YXJhbUZvcm1hdHMsIHJlc3VsdEZvcm1hdCkpCisJaWYgKCFQUXNlbmRRdWVyeVByZXBhcmVk RGVzY3JpYmVkKGNvbm4sIHN0bXROYW1lLAorCQkJCQkJCQkJICBuUGFyYW1zLCBwYXJhbVZh bHVlcywgcGFyYW1MZW5ndGhzLAorCQkJCQkJCQkJICBwYXJhbUZvcm1hdHMsCisJCQkJCQkJ CQkgIHJlc3VsdEZvcm1hdCwgcGFyYW1EZXNjKSkKIAkJcmV0dXJuIE5VTEw7CiAJcmV0dXJu IFBRZXhlY0ZpbmlzaChjb25uKTsKIH0KQEAgLTM1NzcsNiArNDEzOSwxNyBAQCBQUWZtb2Qo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251bSkKIAkJcmV0dXJuIDA7CiB9CiAK K2ludAorUFFmaXNlbmNyeXB0ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IGZpZWxkX251 bSkKK3sKKwlpZiAoIWNoZWNrX2ZpZWxkX251bWJlcihyZXMsIGZpZWxkX251bSkpCisJCXJl dHVybiBmYWxzZTsKKwlpZiAocmVzLT5hdHREZXNjcykKKwkJcmV0dXJuIChyZXMtPmF0dERl c2NzW2ZpZWxkX251bV0uY2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9 CisKIGNoYXIgKgogUFFjbWRTdGF0dXMoUEdyZXN1bHQgKnJlcykKIHsKQEAgLTM3NjIsNiAr NDMzNSwxNyBAQCBQUXBhcmFtdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1f bnVtKQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KIAoraW50CitQUXBhcmFtaXNlbmNyeXB0 ZWQoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSkKK3sKKwlpZiAoIWNoZWNr X3BhcmFtX251bWJlcihyZXMsIHBhcmFtX251bSkpCisJCXJldHVybiBmYWxzZTsKKwlpZiAo cmVzLT5wYXJhbURlc2NzKQorCQlyZXR1cm4gKHJlcy0+cGFyYW1EZXNjc1twYXJhbV9udW1d LmNla2lkICE9IDApOworCWVsc2UKKwkJcmV0dXJuIGZhbHNlOworfQorCiAKIC8qIFBRc2V0 bm9uYmxvY2tpbmc6CiAgKglzZXRzIHRoZSBQR2Nvbm4ncyBkYXRhYmFzZSBjb25uZWN0aW9u IG5vbi1ibG9ja2luZyBpZiB0aGUgYXJnIGlzIHRydWUKZGlmZiAtLWdpdCBhL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUt cHJvdG9jb2wzLmMKaW5kZXggMzY0YmFkMmI4ODJjLi4yODBmN2RjNTJkMWIgMTAwNjQ0Ci0t LSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCisrKyBiL3NyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCkBAIC00Myw2ICs0Myw4IEBAIHN0YXRpYyBp bnQJZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCk7CiBz dGF0aWMgaW50CWdldFBhcmFtRGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xl bmd0aCk7CiBzdGF0aWMgaW50CWdldEFub3RoZXJUdXBsZShQR2Nvbm4gKmNvbm4sIGludCBt c2dMZW5ndGgpOwogc3RhdGljIGludAlnZXRQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25u KTsKK3N0YXRpYyBpbnQJZ2V0Q29sdW1uTWFzdGVyS2V5KFBHY29ubiAqY29ubik7CitzdGF0 aWMgaW50CWdldENvbHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uKTsKIHN0YXRpYyBp bnQJZ2V0Tm90aWZ5KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdldENvcHlTdGFydChQ R2Nvbm4gKmNvbm4sIEV4ZWNTdGF0dXNUeXBlIGNvcHl0eXBlKTsKIHN0YXRpYyBpbnQJZ2V0 UmVhZHlGb3JRdWVyeShQR2Nvbm4gKmNvbm4pOwpAQCAtMjk3LDYgKzI5OSwyMiBAQCBwcVBh cnNlSW5wdXQzKFBHY29ubiAqY29ubikKIAkJCQkJaWYgKHBxR2V0SW50KCYoY29ubi0+YmVf a2V5KSwgNCwgY29ubikpCiAJCQkJCQlyZXR1cm47CiAJCQkJCWJyZWFrOworCQkJCWNhc2Ug J3knOgkJLyogQ29sdW1uIE1hc3RlciBLZXkgKi8KKwkJCQkJaWYgKGdldENvbHVtbk1hc3Rl cktleShjb25uKSkKKwkJCQkJeworCQkJCQkJLy8gVE9ETzogcmV2aWV3IGVycm9yIGhhbmRs aW5nIGhlcmUKKwkJCQkJCXBxU2F2ZUVycm9yUmVzdWx0KGNvbm4pOworCQkJCQkJcHFJbnRl cm5hbE5vdGljZSgmY29ubi0+bm90aWNlSG9va3MsICIlcyIsIGNvbm4tPmVycm9yTWVzc2Fn ZS5kYXRhKTsKKwkJCQkJfQorCQkJCQlicmVhazsKKwkJCQljYXNlICdZJzoJCS8qIENvbHVt biBFbmNyeXB0aW9uIEtleSAqLworCQkJCQlpZiAoZ2V0Q29sdW1uRW5jcnlwdGlvbktleShj b25uKSkKKwkJCQkJeworCQkJCQkJLy8gVE9ETzogcmV2aWV3IGVycm9yIGhhbmRsaW5nIGhl cmUKKwkJCQkJCXBxU2F2ZUVycm9yUmVzdWx0KGNvbm4pOworCQkJCQkJcHFJbnRlcm5hbE5v dGljZSgmY29ubi0+bm90aWNlSG9va3MsICIlcyIsIGNvbm4tPmVycm9yTWVzc2FnZS5kYXRh KTsKKwkJCQkJfQorCQkJCQlicmVhazsKIAkJCQljYXNlICdUJzoJCS8qIFJvdyBEZXNjcmlw dGlvbiAqLwogCQkJCQlpZiAoY29ubi0+ZXJyb3JfcmVzdWx0IHx8CiAJCQkJCQkoY29ubi0+ cmVzdWx0ICE9IE5VTEwgJiYKQEAgLTU0Nyw2ICs1NjUsOCBAQCBnZXRSb3dEZXNjcmlwdGlv bnMoUEdjb25uICpjb25uLCBpbnQgbXNnTGVuZ3RoKQogCQlpbnQJCQl0eXBsZW47CiAJCWlu dAkJCWF0dHR5cG1vZDsKIAkJaW50CQkJZm9ybWF0OworCQlpbnQJCQljZWtpZDsKKwkJaW50 CQkJY2VrYWxnOwogCiAJCWlmIChwcUdldHMoJmNvbm4tPndvcmtCdWZmZXIsIGNvbm4pIHx8 CiAJCQlwcUdldEludCgmdGFibGVpZCwgNCwgY29ubikgfHwKQEAgLTU2MSw2ICs1ODEsMjEg QEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJ CWdvdG8gYWR2YW5jZV9hbmRfZXJyb3I7CiAJCX0KIAorCQlpZiAoY29ubi0+Y29sdW1uX2Vu Y3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJaWYgKHBxR2V0SW50KCZjZWtpZCwgNCwgY29u bikgfHwKKwkJCQlwcUdldEludCgmY2VrYWxnLCAyLCBjb25uKSkKKwkJCXsKKwkJCQllcnJt c2cgPSBsaWJwcV9nZXR0ZXh0KCJpbnN1ZmZpY2llbnQgZGF0YSBpbiBcIlRcIiBtZXNzYWdl Iik7CisJCQkJZ290byBhZHZhbmNlX2FuZF9lcnJvcjsKKwkJCX0KKwkJfQorCQllbHNlCisJ CXsKKwkJCWNla2lkID0gMDsKKwkJCWNla2FsZyA9IDA7CisJCX0KKwogCQkvKgogCQkgKiBT aW5jZSBwcUdldEludCB0cmVhdHMgMi1ieXRlIGludGVnZXJzIGFzIHVuc2lnbmVkLCB3ZSBu ZWVkIHRvCiAJCSAqIGNvZXJjZSB0aGVzZSByZXN1bHRzIHRvIHNpZ25lZCBmb3JtLgpAQCAt NTgyLDggKzYxNywxMCBAQCBnZXRSb3dEZXNjcmlwdGlvbnMoUEdjb25uICpjb25uLCBpbnQg bXNnTGVuZ3RoKQogCQlyZXN1bHQtPmF0dERlc2NzW2ldLnR5cGlkID0gdHlwaWQ7CiAJCXJl c3VsdC0+YXR0RGVzY3NbaV0udHlwbGVuID0gdHlwbGVuOwogCQlyZXN1bHQtPmF0dERlc2Nz W2ldLmF0dHR5cG1vZCA9IGF0dHR5cG1vZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWtp ZCA9IGNla2lkOworCQlyZXN1bHQtPmF0dERlc2NzW2ldLmNla2FsZyA9IGNla2FsZzsKIAot CQlpZiAoZm9ybWF0ICE9IDEpCisJCWlmICgoZm9ybWF0ICYgMHgwRikgIT0gMSkKIAkJCXJl c3VsdC0+YmluYXJ5ID0gMDsKIAl9CiAKQEAgLTY4NSwxMCArNzIyLDMxIEBAIGdldFBhcmFt RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAlmb3IgKGkgPSAw OyBpIDwgbnBhcmFtczsgaSsrKQogCXsKIAkJaW50CQkJdHlwaWQ7CisJCWludAkJCWNla2lk OworCQlpbnQJCQljZWthbGc7CisJCWludAkJCWZsYWdzOwogCiAJCWlmIChwcUdldEludCgm dHlwaWQsIDQsIGNvbm4pKQogCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCWlmIChjb25u LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQl7CisJCQlpZiAocHFHZXRJbnQoJmNl a2lkLCA0LCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJCWlmIChwcUdl dEludCgmY2VrYWxnLCAyLCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsKKwkJ CWlmIChwcUdldEludCgmZmxhZ3MsIDIsIGNvbm4pKQorCQkJCWdvdG8gbm90X2Vub3VnaF9k YXRhOworCQl9CisJCWVsc2UKKwkJeworCQkJY2VraWQgPSAwOworCQkJY2VrYWxnID0gMDsK KwkJCWZsYWdzID0gMDsKKwkJfQogCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0udHlwaWQgPSB0 eXBpZDsKKwkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLmNla2lkID0gY2VraWQ7CisJCXJlc3Vs dC0+cGFyYW1EZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7CisJCXJlc3VsdC0+cGFyYW1EZXNj c1tpXS5mbGFncyA9IGZsYWdzOwogCX0KIAogCS8qIFN1Y2Nlc3MhICovCkBAIC0xNDY4LDYg KzE1MjYsODkgQEAgZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubikKIAlyZXR1cm4g MDsKIH0KIAorLyoKKyAqIEF0dGVtcHQgdG8gcmVhZCBhIENvbHVtbk1hc3RlcktleSBtZXNz YWdlLgorICogRW50cnk6ICd5JyBtZXNzYWdlIHR5cGUgYW5kIGxlbmd0aCBoYXZlIGFscmVh ZHkgYmVlbiBjb25zdW1lZC4KKyAqIEV4aXQ6IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsbHkg Y29uc3VtZWQgbWVzc2FnZS4KKyAqCQkgcmV0dXJucyBFT0YgaWYgbm90IGVub3VnaCBkYXRh LgorICovCitzdGF0aWMgaW50CitnZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKQor eworCWludAkJCWtleWlkOworCWNoYXIJICAgKmtleW5hbWU7CisJY2hhcgkgICAqa2V5cmVh bG07CisJaW50CQkJcmV0OworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJ bnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUg a2V5IG5hbWUgKi8KKwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAw KQorCQlyZXR1cm4gRU9GOworCWtleW5hbWUgPSBzdHJkdXAoY29ubi0+d29ya0J1ZmZlci5k YXRhKTsKKwlpZiAoIWtleW5hbWUpCisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkg cmVhbG0gKi8KKwlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQor CQlyZXR1cm4gRU9GOworCWtleXJlYWxtID0gc3RyZHVwKGNvbm4tPndvcmtCdWZmZXIuZGF0 YSk7CisJaWYgKCFrZXlyZWFsbSkKKwkJcmV0dXJuIEVPRjsKKwkvKiBBbmQgc2F2ZSBpdCAq LworCXJldCA9IHBxU2F2ZUNvbHVtbk1hc3RlcktleShjb25uLCBrZXlpZCwga2V5bmFtZSwg a2V5cmVhbG0pOworCisJZnJlZShrZXluYW1lKTsKKwlmcmVlKGtleXJlYWxtKTsKKworCXJl dHVybiByZXQ7Cit9CisKKy8qCisgKiBBdHRlbXB0IHRvIHJlYWQgYSBDb2x1bW5FbmNyeXB0 aW9uS2V5IG1lc3NhZ2UuCisgKiBFbnRyeTogJ1knIG1lc3NhZ2UgdHlwZSBhbmQgbGVuZ3Ro IGhhdmUgYWxyZWFkeSBiZWVuIGNvbnN1bWVkLgorICogRXhpdDogcmV0dXJucyAwIGlmIHN1 Y2Nlc3NmdWxseSBjb25zdW1lZCBtZXNzYWdlLgorICoJCSByZXR1cm5zIEVPRiBpZiBub3Qg ZW5vdWdoIGRhdGEuCisgKi8KK3N0YXRpYyBpbnQKK2dldENvbHVtbkVuY3J5cHRpb25LZXko UEdjb25uICpjb25uKQoreworCWludAkJCWtleWlkOworCWludAkJCWNta2lkOworCWludAkJ CWNta2FsZzsKKwljaGFyCSAgICpidWY7CisJaW50CQkJdmFsbGVuOworCisJLyogR2V0IHRo ZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQly ZXR1cm4gRU9GOworCS8qIEdldCB0aGUgQ01LIElEICovCisJaWYgKHBxR2V0SW50KCZjbWtp ZCwgNCwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIENNSyBhbGdv cml0aG0gKi8KKwlpZiAocHFHZXRJbnQoJmNta2FsZywgMiwgY29ubikgIT0gMCkKKwkJcmV0 dXJuIEVPRjsKKwkvKiBHZXQgdGhlIGtleSBkYXRhIGxlbiAqLworCWlmIChwcUdldEludCgm dmFsbGVuLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5 IGRhdGEgKi8KKwlidWYgPSBtYWxsb2ModmFsbGVuKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJu IEVPRjsKKwlpZiAocHFHZXRuY2hhcihidWYsIHZhbGxlbiwgY29ubikgIT0gMCkKKwl7CisJ CWZyZWUoYnVmKTsKKwkJcmV0dXJuIEVPRjsKKwl9CisJLyogQW5kIHNhdmUgaXQgKi8KKwlp ZiAocHFTYXZlQ29sdW1uRW5jcnlwdGlvbktleShjb25uLCBrZXlpZCwgY21raWQsIGNta2Fs ZywgKHVuc2lnbmVkIGNoYXIgKikgYnVmLCB2YWxsZW4pICE9IDApCisJeworCQlmcmVlKGJ1 Zik7CisJCXJldHVybiBFT0Y7CisJfQorCWZyZWUoYnVmKTsKKwlyZXR1cm4gMDsKK30KIAog LyoKICAqIEF0dGVtcHQgdG8gcmVhZCBhIE5vdGlmeSByZXNwb25zZSBtZXNzYWdlLgpAQCAt MjI4Niw2ICsyNDI3LDkgQEAgYnVpbGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpj b25uLCBjaGFyICpwYWNrZXQsCiAJaWYgKGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFs ICYmIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsWzBdKQogCQlBRERfU1RBUlRVUF9P UFRJT04oImNsaWVudF9lbmNvZGluZyIsIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFs KTsKIAorCWlmIChjb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlBRERfU1RB UlRVUF9PUFRJT04oIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iLCAiMSIpOworCiAJLyogQWRk IGFueSBlbnZpcm9ubWVudC1kcml2ZW4gR1VDIHNldHRpbmdzIG5lZWRlZCAqLwogCWZvciAo bmV4dF9lbyA9IG9wdGlvbnM7IG5leHRfZW8tPmVudk5hbWU7IG5leHRfZW8rKykKIAl7CmRp ZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtdHJhY2UuYwppbmRleCA1ZDY4Y2YyZWIzYjUuLjgzOTY4ODhhNWIx NiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2UuYworKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS10cmFjZS5jCkBAIC00NTAsNyArNDUwLDggQEAgcHFU cmFjZU91dHB1dFMoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3Ip CiAKIC8qIFBhcmFtZXRlckRlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFjZU91 dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wg cmVncmVzcykKK3BxVHJhY2VPdXRwdXR0KEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2Us IGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MsCisJCQkgICBib29sIGNvbHVtbl9lbmNyeXB0 aW9uX2VuYWJsZWQpCiB7CiAJaW50CQkJbmZpZWxkczsKIApAQCAtNDU4LDEyICs0NTksMjEg QEAgcHFUcmFjZU91dHB1dHQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpj dXJzb3IsIGJvb2wgcmVncmVzcykKIAluZmllbGRzID0gcHFUcmFjZU91dHB1dEludDE2KGYs IG1lc3NhZ2UsIGN1cnNvcik7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8IG5maWVsZHM7IGkr KykKKwl7CiAJCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jl c3MpOworCQlpZiAoY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFUcmFj ZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCQlwcVRyYWNl T3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQx NihmLCBtZXNzYWdlLCBjdXJzb3IpOworCQl9CisJfQogfQogCiAvKiBSb3dEZXNjcmlwdGlv biAqLwogc3RhdGljIHZvaWQKLXBxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIg Km1lc3NhZ2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCitwcVRyYWNlT3V0cHV0VChG SUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNz LAorCQkJICAgYm9vbCBjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQogewogCWludAkJCW5m aWVsZHM7CiAKQEAgLTQ3OSw2ICs0ODksMTEgQEAgcHFUcmFjZU91dHB1dFQoRklMRSAqZiwg Y29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKIAkJcHFU cmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CiAJCXBxVHJhY2VPdXRwdXRJ bnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIGZhbHNlKTsKIAkJcHFUcmFjZU91dHB1dEludDE2 KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCWlmIChjb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVk KQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwgY3Vyc29yLCByZWdy ZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBjdXJzb3IpOworCQl9 CiAJfQogfQogCkBAIC01MTQsNiArNTI5LDMwIEBAIHBxVHJhY2VPdXRwdXRXKEZJTEUgKmYs IGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGludCAqY3Vyc29yLCBpbnQgbGVuZ3RoKQogCQlwcVRy YWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIH0KIAorLyogQ29sdW1uTWFz dGVyS2V5ICovCitzdGF0aWMgdm9pZAorcHFUcmFjZU91dHB1dHkoRklMRSAqZiwgY29uc3Qg Y2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVzcykKK3sKKwlmcHJpbnRm KGYsICJDb2x1bW5NYXN0ZXJLZXlcdCIpOworCXBxVHJhY2VPdXRwdXRJbnQzMihmLCBtZXNz YWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCXBxVHJhY2VPdXRwdXRTdHJpbmcoZiwgbWVzc2Fn ZSwgY3Vyc29yLCBmYWxzZSk7CisJcHFUcmFjZU91dHB1dFN0cmluZyhmLCBtZXNzYWdlLCBj dXJzb3IsIGZhbHNlKTsKK30KKworLyogQ29sdW1uRW5jcnlwdGlvbktleSAqLworc3RhdGlj IHZvaWQKK3BxVHJhY2VPdXRwdXRZKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3NhZ2UsIGlu dCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MpCit7CisJaW50CQkJbGVuOworCisJZnByaW50Zihm LCAiQ29sdW1uRW5jcnlwdGlvbktleVx0Iik7CisJcHFUcmFjZU91dHB1dEludDMyKGYsIG1l c3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3Nh Z2UsIGN1cnNvciwgcmVncmVzcyk7CisJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2Us IGN1cnNvcik7CisJbGVuID0gcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNv ciwgZmFsc2UpOworCXBxVHJhY2VPdXRwdXROY2hhcihmLCBsZW4sIG1lc3NhZ2UsIGN1cnNv cik7Cit9CisKIC8qIFJlYWR5Rm9yUXVlcnkgKi8KIHN0YXRpYyB2b2lkCiBwcVRyYWNlT3V0 cHV0WihGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKQEAgLTY0 NywxMCArNjg2LDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29ubiAqY29ubiwgY29u c3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJCQlmcHJpbnRmKGNvbm4tPlBm ZGVidWcsICJTeW5jIik7IC8qIG5vIG1lc3NhZ2UgY29udGVudCAqLwogCQkJYnJlYWs7CiAJ CWNhc2UgJ3QnOgkJCQkvKiBQYXJhbWV0ZXIgRGVzY3JpcHRpb24gKi8KLQkJCXBxVHJhY2VP dXRwdXR0KGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOwor CQkJcHFUcmFjZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwg cmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpOwog CQkJYnJlYWs7CiAJCWNhc2UgJ1QnOgkJCQkvKiBSb3cgRGVzY3JpcHRpb24gKi8KLQkJCXBx VHJhY2VPdXRwdXRUKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jl c3MpOworCQkJcHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1 cnNvciwgcmVncmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJs ZWQpOwogCQkJYnJlYWs7CiAJCWNhc2UgJ3YnOgkJCQkvKiBOZWdvdGlhdGUgUHJvdG9jb2wg VmVyc2lvbiAqLwogCQkJcHFUcmFjZU91dHB1dHYoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwg JmxvZ0N1cnNvcik7CkBAIC02NjUsNiArNzA2LDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdl KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJ CWZwcmludGYoY29ubi0+UGZkZWJ1ZywgIlRlcm1pbmF0ZSIpOwogCQkJLyogTm8gbWVzc2Fn ZSBjb250ZW50ICovCiAJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQlwcVRyYWNlT3V0cHV0 eShjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yLCByZWdyZXNzKTsKKwkJCWJy ZWFrOworCQljYXNlICdZJzoKKwkJCXBxVHJhY2VPdXRwdXRZKGNvbm4tPlBmZGVidWcsIG1l c3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOworCQkJYnJlYWs7CiAJCWNhc2UgJ1onOgkJ CQkvKiBSZWFkeSBGb3IgUXVlcnkgKi8KIAkJCXBxVHJhY2VPdXRwdXRaKGNvbm4tPlBmZGVi dWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IpOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMv aW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtZmUuaAppbmRleCBiN2RmMzIyNGMwZjcuLmQ0YzkxZGNlNzQxZiAxMDA2NDQKLS0tIGEv c3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAorKysgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9saWJwcS1mZS5oCkBAIC0yNjcsNiArMjY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgcGdy ZXNBdHREZXNjCiAJT2lkCQkJdHlwaWQ7CQkJLyogdHlwZSBpZCAqLwogCWludAkJCXR5cGxl bjsJCQkvKiB0eXBlIHNpemUgKi8KIAlpbnQJCQlhdHR0eXBtb2Q7CQkvKiB0eXBlLXNwZWNp ZmljIG1vZGlmaWVyIGluZm8gKi8KKwlPaWQJCQljZWtpZDsKKwlpbnQJCQljZWthbGc7CiB9 IFBHcmVzQXR0RGVzYzsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDM4LDYgKzQ0MCwx NCBAQCBleHRlcm4gUEdyZXN1bHQgKlBRZXhlY1ByZXBhcmVkKFBHY29ubiAqY29ubiwKIAkJ CQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCQkJCWNvbnN0IGludCAqcGFy YW1Gb3JtYXRzLAogCQkJCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KTsKK2V4dGVybiBQR3Jlc3Vs dCAqUFFleGVjUHJlcGFyZWREZXNjcmliZWQoUEdjb25uICpjb25uLAorCQkJCQkJCQkJCSBj b25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCQkJ CQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVlcywKKwkJCQkJCQkJCQkgY29uc3Qg aW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRz LAorCQkJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkJCSBQR3Jlc3VsdCAq cGFyYW1EZXNjKTsKIAogLyogSW50ZXJmYWNlIGZvciBtdWx0aXBsZS1yZXN1bHQgb3IgYXN5 bmNocm9ub3VzIHF1ZXJpZXMgKi8KICNkZWZpbmUgUFFfUVVFUllfUEFSQU1fTUFYX0xJTUlU IDY1NTM1CkBAIC00NjEsNiArNDcxLDE0IEBAIGV4dGVybiBpbnQJUFFzZW5kUXVlcnlQcmVw YXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAog CQkJCQkJCQljb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKIAkJCQkJCQkJaW50IHJlc3VsdEZv cm1hdCk7CitleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJlcGFyZWREZXNjcmliZWQoUEdjb25u ICpjb25uLAorCQkJCQkJCQkJCSBjb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJCQkg aW50IG5QYXJhbXMsCisJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmNvbnN0ICpwYXJhbVZhbHVl cywKKwkJCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJCQkJIGNv bnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAor CQkJCQkJCQkJCSBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsKIGV4dGVybiBpbnQJUFFzZXRTaW5n bGVSb3dNb2RlKFBHY29ubiAqY29ubik7CiBleHRlcm4gUEdyZXN1bHQgKlBRZ2V0UmVzdWx0 KFBHY29ubiAqY29ubik7CiAKQEAgLTUzMSw2ICs1NDksNyBAQCBleHRlcm4gaW50CVBRZmZv cm1hdChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBPaWQJ UFFmdHlwZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVybiBp bnQJUFFmc2l6ZShjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKTsKIGV4dGVy biBpbnQJUFFmbW9kKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pOworZXh0 ZXJuIGludAlQUWZpc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRf bnVtKTsKIGV4dGVybiBjaGFyICpQUWNtZFN0YXR1cyhQR3Jlc3VsdCAqcmVzKTsKIGV4dGVy biBjaGFyICpQUW9pZFN0YXR1cyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsJLyogb2xkIGFuZCB1 Z2x5ICovCiBleHRlcm4gT2lkCVBRb2lkVmFsdWUoY29uc3QgUEdyZXN1bHQgKnJlcyk7CS8q IG5ldyBhbmQgaW1wcm92ZWQgKi8KQEAgLTU0MCw2ICs1NTksNyBAQCBleHRlcm4gaW50CVBR Z2V0bGVuZ3RoKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCB0dXBfbnVtLCBpbnQgZmllbGRf bnVtKTsKIGV4dGVybiBpbnQJUFFnZXRpc251bGwoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50 IHR1cF9udW0sIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUW5wYXJhbXMoY29uc3Qg UEdyZXN1bHQgKnJlcyk7CiBleHRlcm4gT2lkCVBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0 ICpyZXMsIGludCBwYXJhbV9udW0pOworZXh0ZXJuIGludAlQUXBhcmFtaXNlbmNyeXB0ZWQo Y29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSk7CiAKIC8qIERlc2NyaWJlIHBy ZXBhcmVkIHN0YXRlbWVudHMgYW5kIHBvcnRhbHMgKi8KIGV4dGVybiBQR3Jlc3VsdCAqUFFk ZXNjcmliZVByZXBhcmVkKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3RtdCk7CmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2xpYnBxLWludC5oCmluZGV4IDUxMjc2MmY5OTkxNy4uOTc4M2JhNzczNjk4 IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaAorKysgYi9z cmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaApAQCAtMTEyLDYgKzExMiw5IEBAIHVu aW9uIHBncmVzdWx0X2RhdGEKIHR5cGVkZWYgc3RydWN0IHBncmVzUGFyYW1EZXNjCiB7CiAJ T2lkCQkJdHlwaWQ7CQkJLyogdHlwZSBpZCAqLworCU9pZAkJCWNla2lkOworCWludAkJCWNl a2FsZzsKKwlpbnQJCQlmbGFnczsKIH0gUEdyZXNQYXJhbURlc2M7CiAKIC8qCkBAIC0zNDMs NiArMzQ2LDI2IEBAIHR5cGVkZWYgc3RydWN0IHBnX2Nvbm5faG9zdAogCQkJCQkJCQkgKiBm b3VuZCBpbiBwYXNzd29yZCBmaWxlLiAqLwogfSBwZ19jb25uX2hvc3Q7CiAKKy8qCisgKiBD b2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEKKyAqLworCisvKiBjb2x1bW4gbWFzdGVy IGtleSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY21rCit7CisJT2lkCQkJY21raWQ7CisJY2hh cgkgICAqY21rbmFtZTsKKwljaGFyCSAgICpjbWtyZWFsbTsKK30gUEdDTUs7CisKKy8qIGNv bHVtbiBlbmNyeXB0aW9uIGtleSAqLwordHlwZWRlZiBzdHJ1Y3QgcGdfY2VrCit7CisJT2lk CQkJY2VraWQ7CisJdW5zaWduZWQgY2hhciAqY2VrZGF0YTsJCS8qIChkZWNyeXB0ZWQpICov CisJc2l6ZV90CQljZWtkYXRhbGVuOworfSBQR0NFSzsKKwogLyoKICAqIFBHY29ubiBzdG9y ZXMgYWxsIHRoZSBzdGF0ZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCBhIHNpbmdsZSBjb25uZWN0 aW9uCiAgKiB0byBhIGJhY2tlbmQuCkBAIC0zOTYsNiArNDE5LDggQEAgc3RydWN0IHBnX2Nv bm4KIAljaGFyCSAgICpzc2xfbWluX3Byb3RvY29sX3ZlcnNpb247CS8qIG1pbmltdW0gVExT IHByb3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICpzc2xfbWF4X3Byb3RvY29sX3ZlcnNp b247CS8qIG1heGltdW0gVExTIHByb3RvY29sIHZlcnNpb24gKi8KIAljaGFyCSAgICp0YXJn ZXRfc2Vzc2lvbl9hdHRyczsJLyogZGVzaXJlZCBzZXNzaW9uIHByb3BlcnRpZXMgKi8KKwlj aGFyCSAgICpjbWtsb29rdXA7CQkvKiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24gKi8KKwlj aGFyCSAgICpjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nOwkvKiBjb2x1bW5fZW5jcnlwdGlv biBjb25uZWN0aW9uIHBhcmFtZXRlciAoMCBvciAxKSAqLwogCiAJLyogT3B0aW9uYWwgZmls ZSB0byB3cml0ZSB0cmFjZSBpbmZvIHRvICovCiAJRklMRQkgICAqUGZkZWJ1ZzsKQEAgLTQ3 Nyw2ICs1MDIsMTMgQEAgc3RydWN0IHBnX2Nvbm4KIAlQR1ZlcmJvc2l0eSB2ZXJib3NpdHk7 CQkvKiBlcnJvci9ub3RpY2UgbWVzc2FnZSB2ZXJib3NpdHkgKi8KIAlQR0NvbnRleHRWaXNp YmlsaXR5IHNob3dfY29udGV4dDsJLyogd2hldGhlciB0byBzaG93IENPTlRFWFQgZmllbGQg Ki8KIAlQR2xvYmpmdW5jcyAqbG9iamZ1bmNzOwkJLyogcHJpdmF0ZSBzdGF0ZSBmb3IgbGFy Z2Utb2JqZWN0IGFjY2VzcyBmbnMgKi8KKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFi bGVkOwkvKiBwYXJzZWQgdmVyc2lvbiBvZiBjb2x1bW5fZW5jcnlwdGlvbl9zZXR0aW5nICov CisKKwkvKiBDb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0IGRhdGEgKi8KKwlpbnQJCQluY21r czsKKwlQR0NNSwkgICAqY21rczsKKwlpbnQJCQluY2VrczsKKwlQR0NFSwkgICAqY2VrczsK IAogCS8qIEJ1ZmZlciBmb3IgZGF0YSByZWNlaXZlZCBmcm9tIGJhY2tlbmQgYW5kIG5vdCB5 ZXQgcHJvY2Vzc2VkICovCiAJY2hhcgkgICAqaW5CdWZmZXI7CQkvKiBjdXJyZW50bHkgYWxs b2NhdGVkIGJ1ZmZlciAqLwpAQCAtNjczLDYgKzcwNSwxMCBAQCBleHRlcm4gdm9pZCBwcVNh dmVNZXNzYWdlRmllbGQoUEdyZXN1bHQgKnJlcywgY2hhciBjb2RlLAogCQkJCQkJCSAgIGNv bnN0IGNoYXIgKnZhbHVlKTsKIGV4dGVybiB2b2lkIHBxU2F2ZVBhcmFtZXRlclN0YXR1cyhQ R2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKm5hbWUsCiAJCQkJCQkJCSAgY29uc3QgY2hhciAq dmFsdWUpOworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25u LCBpbnQga2V5aWQsIGNvbnN0IGNoYXIgKmtleW5hbWUsCisJCQkJCQkJCSAgY29uc3QgY2hh ciAqa2V5cmVhbG0pOworZXh0ZXJuIGludAlwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KFBH Y29ubiAqY29ubiwgaW50IGtleWlkLCBpbnQgY21raWQsIGludCBjbWthbGcsCisJCQkJCQkJ CQkgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnZhbHVlLCBpbnQgbGVuKTsKIGV4dGVybiBpbnQJ cHFSb3dQcm9jZXNzb3IoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCk7CiBl eHRlcm4gdm9pZCBwcUNvbW1hbmRRdWV1ZUFkdmFuY2UoUEdjb25uICpjb25uKTsKIGV4dGVy biBpbnQJUFFzZW5kUXVlcnlDb250aW51ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1 ZXJ5KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvbWVzb24uYnVpbGQKaW5kZXggOGU2OTZmMTE4M2NmLi5h M2UyZDJlOThiYTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1 aWxkCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCkBAIC0yNyw2ICsy Nyw3IEBAIGVuZGlmCiAKIGlmIHNzbC5mb3VuZCgpCiAgIGxpYnBxX3NvdXJjZXMgKz0gZmls ZXMoJ2ZlLXNlY3VyZS1jb21tb24uYycpCisgIGxpYnBxX3NvdXJjZXMgKz0gZmlsZXMoJ2Zl LWVuY3J5cHQtb3BlbnNzbC5jJykKICAgbGlicHFfc291cmNlcyArPSBmaWxlcygnZmUtc2Vj dXJlLW9wZW5zc2wuYycpCiBlbmRpZgogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9s aWJwcS9ubHMubWsgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKaW5kZXggNGRmNTQ0 ZWNlZjU2Li4wYzM2YWE1ZjMyYjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBx L25scy5taworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKQEAgLTEsNiArMSw2 IEBACiAjIHNyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tawogQ0FUQUxPR19OQU1FICAgICA9 IGxpYnBxCi1HRVRURVhUX0ZJTEVTICAgID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBm ZS1jb25uZWN0LmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2JqLmMgZmUt bWlzYy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21tb24uYyBm ZS1zZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4uLy4uL3Bv cnQvdGhyZWFkLmMKK0dFVFRFWFRfRklMRVMgICAgPSBmZS1hdXRoLmMgZmUtYXV0aC1zY3Jh bS5jIGZlLWNvbm5lY3QuYyBmZS1lbmNyeXB0LW9wZW5zc2wuYyBmZS1leGVjLmMgZmUtZ3Nz YXBpLWNvbW1vbi5jIGZlLWxvYmouYyBmZS1taXNjLmMgZmUtcHJvdG9jb2wzLmMgZmUtc2Vj dXJlLmMgZmUtc2VjdXJlLWNvbW1vbi5jIGZlLXNlY3VyZS1nc3NhcGkuYyBmZS1zZWN1cmUt b3BlbnNzbC5jIHdpbjMyLmMgLi4vLi4vcG9ydC90aHJlYWQuYwogR0VUVEVYVF9UUklHR0VS UyA9IGxpYnBxX2FwcGVuZF9jb25uX2Vycm9yOjIgXAogICAgICAgICAgICAgICAgICAgIGxp YnBxX2FwcGVuZF9lcnJvcjoyIFwKICAgICAgICAgICAgICAgICAgICBsaWJwcV9nZXR0ZXh0 IHBxSW50ZXJuYWxOb3RpY2U6MgpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC8uZ2l0aWdub3JlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3Jl CmluZGV4IDZiYTc4YWRiNjc4Ni4uMTg0NjU5NGVjNTE2IDEwMDY0NAotLS0gYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGli cHEvdGVzdC8uZ2l0aWdub3JlCkBAIC0xLDIgKzEsMyBAQAorL2xpYnBxX3Rlc3RfZW5jcnlw dAogL2xpYnBxX3Rlc3RjbGllbnQKIC9saWJwcV91cmlfcmVncmVzcwpkaWZmIC0tZ2l0IGEv c3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZSBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL3Rlc3QvTWFrZWZpbGUKaW5kZXggNzVhYzA4Zjk0M2Q5Li5iMWViYWI5MGQ0ZTYgMTAw NjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUKKysrIGIvc3Jj L2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQpAQCAtMTUsMTAgKzE1LDE3IEBAIG92 ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChsaWJwcV9zcmNkaXIpICQoQ1BQRkxBR1MpCiBMREZM QUdTX0lOVEVSTkFMICs9ICQobGlicHFfcGdwb3J0KQogCiBQUk9HUyA9IGxpYnBxX3Rlc3Rj bGllbnQgbGlicHFfdXJpX3JlZ3Jlc3MKK2lmZXEgKCQod2l0aF9zc2wpLG9wZW5zc2wpCitQ Uk9HUyArPSBsaWJwcV90ZXN0X2VuY3J5cHQKK2VuZGlmCisKIAogYWxsOiAkKFBST0dTKQog CiAkKFBST0dTKTogJChXSU4zMlJFUykKIAorbGlicHFfdGVzdF9lbmNyeXB0OiAuLi9mZS1l bmNyeXB0LW9wZW5zc2wuYworCSQoQ0MpICQoQ1BQRkxBR1MpIC1EVEVTVF9FTkNSWVBUICQo Q0ZMQUdTKSAkXiAkKExERkxBR1MpICQoTERGTEFHU19FWCkgJChMSUJTKSAtbyAkQCQoWCkK KwogY2xlYW4gZGlzdGNsZWFuIG1haW50YWluZXItY2xlYW46CiAJcm0gLWYgJChQUk9HUykg Ki5vCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29uLmJ1aWxk IGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVzdC9tZXNvbi5idWlsZAppbmRleCAwMTdmNzI5 ZDQzNWQuLmZlYTYxM2RkNjM0YiAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv dGVzdC9tZXNvbi5idWlsZAorKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L21lc29u LmJ1aWxkCkBAIC0zNCwzICszNCw1IEBAIGV4ZWN1dGFibGUoJ2xpYnBxX3Rlc3RjbGllbnQn LAogICAgICdpbnN0YWxsJzogZmFsc2UsCiAgIH0KICkKKworIyBUT0RPOiBsaWJwcV90ZXN0 X2VuY3J5cHQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L01ha2VmaWxlIGIvc3JjL3Rlc3QvTWFr ZWZpbGUKaW5kZXggZGJkMzE5Mjg3NGQzLi5jOGJhMTcwNTAzMGIgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L01ha2VmaWxlCisrKyBiL3NyYy90ZXN0L01ha2VmaWxlCkBAIC0yNCw3ICsyNCw3 IEBAIGlmZXEgKCQod2l0aF9sZGFwKSx5ZXMpCiBTVUJESVJTICs9IGxkYXAKIGVuZGlmCiBp ZmVxICgkKHdpdGhfc3NsKSxvcGVuc3NsKQotU1VCRElSUyArPSBzc2wKK1NVQkRJUlMgKz0g Y29sdW1uX2VuY3J5cHRpb24gc3NsCiBlbmRpZgogCiAjIFRlc3Qgc3VpdGVzIHRoYXQgYXJl IG5vdCBzYWZlIGJ5IGRlZmF1bHQgYnV0IGNhbiBiZSBydW4gaWYgc2VsZWN0ZWQKQEAgLTM2 LDcgKzM2LDcgQEAgZXhwb3J0IFBHX1RFU1RfRVhUUkEKICMgY2xlYW4iIGV0YyB0byByZWN1 cnNlIGludG8gdGhlbS4gIChXZSBtdXN0IGZpbHRlciBvdXQgdGhvc2UgdGhhdCB3ZQogIyBo YXZlIGNvbmRpdGlvbmFsbHkgaW5jbHVkZWQgaW50byBTVUJESVJTIGFib3ZlLCBlbHNlIHRo ZXJlIHdpbGwgYmUKICMgbWFrZSBjb25mdXNpb24uKQotQUxXQVlTX1NVQkRJUlMgPSAkKGZp bHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBzc2wpCitB TFdBWVNfU1VCRElSUyA9ICQoZmlsdGVyLW91dCAkKFNVQkRJUlMpLGV4YW1wbGVzIGtlcmJl cm9zIGljdSBsZGFwIHNzbCBjb2x1bW5fZW5jcnlwdGlvbikKIAogIyBXZSB3YW50IHRvIHJl Y3Vyc2UgdG8gYWxsIHN1YmRpcnMgZm9yIGFsbCBzdGFuZGFyZCB0YXJnZXRzLCBleGNlcHQg dGhhdAogIyBpbnN0YWxsY2hlY2sgYW5kIGluc3RhbGwgc2hvdWxkIG5vdCByZWN1cnNlIGlu dG8gdGhlIHN1YmRpcmVjdG9yeSAibW9kdWxlcyIuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9j b2x1bW5fZW5jcnlwdGlvbi8uZ2l0aWdub3JlIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjQ1NmRiZjY5ZDJhNAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNy eXB0aW9uLy5naXRpZ25vcmUKQEAgLTAsMCArMSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2Vu ZXJhdGVkIGJ5IHRlc3Qgc3VpdGUKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0 aW9uL01ha2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NzZhMTUzZTMzMDYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vTWFrZWZpbGUKQEAgLTAsMCArMSwzMSBAQAorIy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyMKKyMgTWFrZWZpbGUgZm9yIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uCisjCisjIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMg b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorIworIyBzcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbi9NYWtlZmlsZQorIworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworc3ViZGly ID0gc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24KK3RvcF9idWlsZGRpciA9IC4uLy4uLy4u CitpbmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCisKK2V4cG9y dCBPUEVOU1NMCisKK292ZXJyaWRlIENQUEZMQUdTIDo9IC1JJChsaWJwcV9zcmNkaXIpICQo Q1BQRkxBR1MpCitMREZMQUdTX0lOVEVSTkFMICs9IC1MJCh0b3BfYnVpbGRkaXIpL3NyYy9m ZV91dGlscyAtbHBnZmV1dGlscyAkKGxpYnBxX3BncG9ydCkKKworYWxsOiB0ZXN0X2NsaWVu dAorCitjaGVjazogYWxsCisJJChwcm92ZV9jaGVjaykKKworaW5zdGFsbGNoZWNrOgorCSQo cHJvdmVfaW5zdGFsbGNoZWNrKQorCitjbGVhbiBkaXN0Y2xlYW4gbWFpbnRhaW5lci1jbGVh bjoKKwlybSAtZiB0ZXN0X2NsaWVudC5vIHRlc3RfY2xpZW50CisJcm0gLXJmIHRtcF9jaGVj awpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vbWVzb24uYnVpbGQg Yi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9tZXNvbi5idWlsZApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0Y2ZhODRlMTJmOAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL21lc29uLmJ1aWxkCkBAIC0wLDAg KzEsMjMgQEAKK2NvbHVtbl9lbmNyeXB0aW9uX3Rlc3RfY2xpZW50ID0gZXhlY3V0YWJsZSgn dGVzdF9jbGllbnQnLAorICBmaWxlcygndGVzdF9jbGllbnQuYycpLAorICBkZXBlbmRlbmNp ZXM6IFtmcm9udGVuZF9jb2RlLCBsaWJwcV0sCisgIGt3YXJnczogZGVmYXVsdF9iaW5fYXJn cyArIHsKKyAgICAnaW5zdGFsbCc6IGZhbHNlLAorICB9LAorKQordGVzdHByZXBfdGFyZ2V0 cyArPSBjb2x1bW5fZW5jcnlwdGlvbl90ZXN0X2NsaWVudAorCit0ZXN0cyArPSB7CisgICdu YW1lJzogJ2NvbHVtbl9lbmNyeXB0aW9uJywKKyAgJ3NkJzogbWVzb24uY3VycmVudF9zb3Vy Y2VfZGlyKCksCisgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCksCisgICd0YXAn OiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBs JywKKyAgICAgICd0LzAwMl9jbWtfcm90YXRpb24ucGwnLAorICAgIF0sCisgICAgJ2Vudic6 IHsKKyAgICAgICdPUEVOU1NMJzogb3BlbnNzbC5wYXRoKCksCisgICAgfSwKKyAgfSwKK30K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9l bmNyeXB0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8wMDFfY29sdW1u X2VuY3J5cHRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5jZGE5MzU1NjI3MGUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5j cnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbApAQCAtMCwwICsxLDIyMyBAQAor IyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FM OjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRl c3Q6Ok1vcmU7CisKK215ICRvcGVuc3NsID0gJEVOVntPUEVOU1NMfTsKKworIyBDYW4gYmUg Y2hhbmdlZCBtYW51YWxseSBmb3IgdGVzdGluZyBvdGhlciBhbGdvcml0aG1zLiAgTm90ZSB0 aGF0CisjIFJTQUVTX09BRVBfU0hBXzI1NiByZXF1aXJlcyBPcGVuU1NMIDEuMS4wLgorbXkg JGNta2FsZyA9ICdSU0FFU19PQUVQX1NIQV8xJzsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FM OjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0 YXJ0OworCisKK3N1YiBjcmVhdGVfY21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15 ICRjbWtmaWxlbmFtZSA9ICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9 LyR7Y21rbmFtZX0ucGVtIjsKKwlzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ2dlbnBrZXkn LCAnLWFsZ29yaXRobScsICdyc2EnLCAnLW91dCcsICRjbWtmaWxlbmFtZTsKKwkkbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAke2Nt a25hbWV9IFdJVEggKHJlYWxtID0gJycpfSk7CisJcmV0dXJuICRjbWtmaWxlbmFtZTsKK30K Kworc3ViIGNyZWF0ZV9jZWsKK3sKKwlteSAoJGNla25hbWUsICRieXRlcywgJGNta25hbWUs ICRjbWtmaWxlbmFtZSkgPSBAXzsKKworCW15ICRkaWdlc3QgPSAkY21rYWxnOworCSRkaWdl c3QgPX4gcy8uKig/PVNIQSkvLzsKKwkkZGlnZXN0ID1+IHMvXy8vZzsKKworCSMgZ2VuZXJh dGUgcmFuZG9tIGJ5dGVzCisJc3lzdGVtX29yX2JhaWwgJG9wZW5zc2wsICdyYW5kJywgJy1v dXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9 LmJpbiIsICRieXRlczsKKworCSMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCisJbXkgQGNtZCA9 ICgKKwkJJG9wZW5zc2wsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKwkJJy1pbmtleScsICRj bWtmaWxlbmFtZSwKKwkJJy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJ CSctaW4nLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25h bWV9LmJpbiIsCisJCSctb3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9j aGVja30vJHtjZWtuYW1lfS5iaW4uZW5jIgorCSk7CisJaWYgKCRkaWdlc3QgbmUgJ1NIQTEn KQorCXsKKwkJIyBUaGVzZSBvcHRpb25zIHJlcXVpcmUgT3BlblNTTCA+PTEuMS4wLCBzbyBp ZiB0aGUgZGlnZXN0IGlzCisJCSMgU0hBMSwgd2hpY2ggaXMgdGhlIGRlZmF1bHQsIG9taXQg dGhlIG9wdGlvbnMuCisJCXB1c2ggQGNtZCwKKwkJICAnLXBrZXlvcHQnLCAicnNhX21nZjFf bWQ6JGRpZ2VzdCIsCisJCSAgJy1wa2V5b3B0JywgInJzYV9vYWVwX21kOiRkaWdlc3QiOwor CX0KKwlzeXN0ZW1fb3JfYmFpbCBAY21kOworCisJbXkgJGNla2VuY2hleCA9IHVucGFjaygn SConLCBzbHVycF9maWxlICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9 LyR7Y2VrbmFtZX0uYmluLmVuYyIpOworCisJIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCisJ JG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZICR7Y2VrbmFtZX0gV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gJHtj bWtuYW1lfSwgYWxnb3JpdGhtID0gJyR7Y21rYWxnfScsIGVuY3J5cHRlZF92YWx1ZSA9ICdc XHgke2Nla2VuY2hleH0nKTt9KTsKKworCXJldHVybjsKK30KKworCitteSAkY21rMWZpbGVu YW1lID0gY3JlYXRlX2NtaygnY21rMScpOworbXkgJGNtazJmaWxlbmFtZSA9IGNyZWF0ZV9j bWsoJ2NtazInKTsKK2NyZWF0ZV9jZWsoJ2NlazEnLCAzMiwgJ2NtazEnLCAkY21rMWZpbGVu YW1lKTsKK2NyZWF0ZV9jZWsoJ2NlazInLCA0OCwgJ2NtazInLCAkY21rMmZpbGVuYW1lKTsK KworJEVOVnsnUEdDT0xVTU5FTkNSWVBUSU9OJ30gPSAnMSc7CiskRU5WeydQR0NNS0xPT0tV UCd9ID0gJyo9ZmlsZTonIC4gJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNr fSAuICcvJWsucGVtJzsKKworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxewor Q1JFQVRFIFRBQkxFIHRibDEgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQg V0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSksCisgICAgYyBzbWFsbGludCBF TkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSkKKyk7Cit9KTsK KworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAo YSwgYiwgYykgVkFMVUVTICgxLCAkMSwgJDIpIFxiaW5kICd2YWwxJyAxMSBcZworSU5TRVJU IElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVTICgyLCAkMSwgJDIpIFxiaW5kICd2YWwyJyAy MiBcZworfSk7CisKKyMgRXhwZWN0ZWQgY2lwaGVydGV4dCBsZW5ndGggaXMgMiBibG9ja3Mg b2YgQUVTIG91dHB1dCAoMiAqIDE2KSBwbHVzCisjIGhhbGYgU0hBLTI1NiBvdXRwdXQgKDE2 KSBpbiBoZXggZW5jb2Rpbmc6ICgyICogMTYgKyAxNikgKiAyID0gOTYKK2xpa2UoJG5vZGUt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkgKFNFTEVDVCAqIEZST00gdGJsMSkgVE8g U1RET1VUfSksCisJcXIvMVx0XFxcXHhbMC05YS1mXXs5Nn1cdFxcXFx4WzAtOWEtZl17OTZ9 XG4yXHRcXFxceFswLTlhLWZdezk2fVx0XFxcXHhbMC05YS1mXXs5Nn0vLAorCSdpbnNlcnRl ZCBkYXRhIGlzIGVuY3J5cHRlZCcpOworCitteSAkcmVzdWx0OworCiskcmVzdWx0ID0gJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMSBc Z2Rlc2N9KTsKK2lzKCRyZXN1bHQsCisJcShhfGludGVnZXIKK2J8dGV4dAorY3xzbWFsbGlu dCksCisJJ3F1ZXJ5IHJlc3VsdCBkZXNjcmlwdGlvbiBoYXMgb3JpZ2luYWwgdHlwZScpOwor CiskcmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBi LCBjIEZST00gdGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIy KSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCcpOworCit7CisJbG9jYWwgJEVOVnsnUEdD TUtMT09LVVAnfSA9ICcqPXJ1bjpicm9rZW4gJWsgIiViIic7CisJJHJlc3VsdCA9ICRub2Rl LT5wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CisJaXNu dCgkcmVzdWx0LCAwLCAncXVlcnkgZmFpbHMgd2l0aCBicm9rZW4gY21rbG9va3VwIHJ1biBz ZXR0aW5nJyk7Cit9CisKK1RPRE86IHsKKwlsb2NhbCAkVE9ETyA9ICdwYXRoIG5vdCBiZWlu ZyBwYXNzZWQgY29ycmVjdGx5IG9uIFdpbmRvd3MnIGlmICR3aW5kb3dzX29zOworCisJbG9j YWwgJEVOVnsnUEdDTUtMT09LVVAnfSA9ICIqPXJ1bjpwZXJsIC4vdGVzdF9ydW5fZGVjcnlw dC5wbCAnJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfScgJWsgJWEgJyVi JyI7CisKKwlteSAkc3Rkb3V0OworCSRyZXN1bHQgPSAkbm9kZS0+cHNxbCgncG9zdGdyZXMn LCBxe1NFTEVDVCBhLCBiLCBjIEZST00gdGJsMX0sIHN0ZG91dCA9PiBcJHN0ZG91dCk7CisJ aXMoJHN0ZG91dCwKKwkJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMiksCisJCSdkZWNyeXB0ZWQg cXVlcnkgcmVzdWx0IHdpdGggY21rbG9va3VwIHJ1bicpOworfQorCisKKyRub2RlLT5jb21t YW5kX2ZhaWxzX2xpa2UoWyd0ZXN0X2NsaWVudCcsICd0ZXN0MSddLCBxci9ub3QgZW5jcnlw dGVkLywgJ3Rlc3QgY2xpZW50IGZhaWxzIGJlY2F1c2UgcGFyYW1ldGVycyBub3QgZW5jcnlw dGVkJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VM RUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7CitpcygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisy fHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50 IGluc2VydCcpOworCiskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Qy J10sICd0ZXN0IGNsaWVudCB0ZXN0IDInKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1 bHQsCisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMgorM3x2YWwzfDMzKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgMicpOworCitsaWtlKCRu b2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtDT1BZIChTRUxFQ1QgKiBGUk9NIHRibDEg V0hFUkUgYSA9IDMpIFRPIFNURE9VVH0pLAorCXFyLzNcdFxcXFx4WzAtOWEtZl17OTZ9LywK KwknaW5zZXJ0ZWQgZGF0YSBpcyBlbmNyeXB0ZWQnKTsKKworCisjIFRlc3QgVVBEQVRFCisK KyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK1VQREFURSB0YmwxIFNFVCBiID0g JDIgV0hFUkUgYSA9ICQxIFxiaW5kICczJyAndmFsM3VwZCcgXGcKK30pOworCiskcmVzdWx0 ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00g dGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIyCiszfHZhbDN1 cGR8MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHVwZGF0ZScpOworCisK KyMgVGVzdCBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24KKworJG5vZGUtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0YmwyICgKKyAgICBhIGludCwKKyAgICBi IHRleHQgRU5DUllQVEVEIFdJVEggKGVuY3J5cHRpb25fdHlwZSA9IGRldGVybWluaXN0aWMs IGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworfSk7CisKKyRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDIgKGEsIGIpIFZBTFVFUyAo JDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIFxiaW5kICcxJyAndmFsQScgJzInICd2YWxC JyAnMycgJ3ZhbEEnIFxnCit9KTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDJ9KTsKK2lzKCRyZXN1bHQsCisJcSgx fHZhbEEKKzJ8dmFsQgorM3x2YWxBKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBpbiB0 YWJsZSBmb3IgZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uJyk7CisKK2lzKCRub2RlLT5zYWZl X3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYiwgY291bnQoKikgRlJPTSB0YmwyIEdST1VQ IEJZIGIgT1JERVIgQlkgMn0pLAorCXEodmFsQnwxCit2YWxBfDIpLAorCSdncm91cCBieSBk ZXRlcm1pbmlzdGljYWxseSBlbmNyeXB0ZWQgY29sdW1uJyk7CisKKworIyBUZXN0IG11bHRp cGxlIGtleXMgaW4gb25lIHRhYmxlCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXF7CitDUkVBVEUgVEFCTEUgdGJsMyAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZ UFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHRleHQg RU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazIsIGFsZ29yaXRo bSA9ICdBRUFEX0FFU18xOTJfQ0JDX0hNQUNfU0hBXzM4NCcpCispOworfSk7CisKKyRub2Rl LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMp IFZBTFVFUyAoMSwgJDEsICQyKSBcYmluZCAndmFsQjEnICd2YWxDMScgXGcKK30pOworCisk cmVzdWx0ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBj IEZST00gdGJsM30pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsQjF8dmFsQzEpLAorCSdkZWNy eXB0ZWQgcXVlcnkgcmVzdWx0IG11bHRpcGxlIGtleXMnKTsKKworJG5vZGUtPnNhZmVfcHNx bCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMyAoYSwgYiwgYykgVkFMVUVTICgk MSwgJDIsICQzKSwgKCQ0LCAkNSwgJDYpIFxiaW5kICcyJyAndmFsQjInICd2YWxDMicgJzMn ICd2YWxCMycgJ3ZhbEMzJyBcZworfSk7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwzfSk7CitpcygkcmVzdWx0 LAorCXEoMXx2YWxCMXx2YWxDMQorMnx2YWxCMnx2YWxDMgorM3x2YWxCM3x2YWxDMyksCisJ J2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgbXVsdGlwbGUga2V5cyBhZnRlciBzZWNvbmQgaW5z ZXJ0Jyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1 bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgYi9zcmMvdGVzdC9jb2x1bW5f ZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5hZGY2M2NmNjljODEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKQEAgLTAs MCArMSwxMTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwgR2xv YmFsIERldmVsb3BtZW50IEdyb3VwCisKKyMgVGVzdCBjb2x1bW4gbWFzdGVyIGtleSByb3Rh dGlvbi4gIEZpcnN0LCB3ZSBnZW5lcmF0ZSBDTUsxIGFuZCBhIENFSworIyBlbmNyeXB0ZWQg d2l0aCBpdC4gIFRoZW4gd2UgYWRkIGEgQ01LMiBhbmQgZW5jcnlwdCB0aGUgQ0VLIHdpdGgg aXQKKyMgYXMgd2VsbC4gIChSZWNhbGwgdGhhdCBhIENFSyBjYW4gYmUgYXNzb2NpYXRlZCB3 aXRoIG11bHRpcGxlIENNS3MsCisjIGZvciB0aGlzIHJlYXNvbi4gIFRoYXQncyB3aHkgcGdf Y29sZW5ja2V5ZGF0YSBpcyBzcGxpdCBvdXQgZnJvbQorIyBwZ19jb2xlbmNrZXkuKSAgVGhl biB3ZSByZW1vdmUgQ01LMS4gIFdlIHRlc3QgdGhhdCB3ZSBjYW4gZ2V0CisjIGRlY3J5cHRl ZCBxdWVyeSByZXN1bHRzIGF0IGVhY2ggc3RlcC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJu aW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6 OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRvcGVuc3NsID0gJEVOVntP UEVOU1NMfTsKKworbXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J25vZGUnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPnN0YXJ0OworCisKK3N1YiBjcmVhdGVf Y21rCit7CisJbXkgKCRjbWtuYW1lKSA9IEBfOworCW15ICRjbWtmaWxlbmFtZSA9ICIke1Bv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y21rbmFtZX0ucGVtIjsKKwlz eXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ2dlbnBrZXknLCAnLWFsZ29yaXRobScsICdyc2En LCAnLW91dCcsICRjbWtmaWxlbmFtZTsKKwkkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs IHFxe0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSAke2Nta25hbWV9IFdJVEggKHJlYWxtID0g JycpfSk7CisJcmV0dXJuICRjbWtmaWxlbmFtZTsKK30KKworCitteSAkY21rMWZpbGVuYW1l ID0gY3JlYXRlX2NtaygnY21rMScpOworCisjIGNyZWF0ZSBDRUsKK215ICgkY2VrbmFtZSwg JGJ5dGVzKSA9ICgnY2VrMScsIDE2KzE2KTsKKworIyBnZW5lcmF0ZSByYW5kb20gYnl0ZXMK K3N5c3RlbV9vcl9iYWlsICRvcGVuc3NsLCAncmFuZCcsICctb3V0JywgIiR7UG9zdGdyZVNR TDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLCAkYnl0ZXM7CisK KyMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCitzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwgJ3Br ZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNtazFmaWxlbmFtZSwKKyAgJy1w a2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisgICctaW4nLCAiJHtQb3N0Z3Jl U1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsCisgICctb3V0 JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5i aW4uZW5jIjsKKworbXkgJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9maWxlICIk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVu YyIpOworCisjIGNyZWF0ZSBDRUsgaW4gZGF0YWJhc2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nla25hbWV9IFdJ VEggVkFMVUVTIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsIGVuY3J5cHRlZF92YWx1ZSA9 ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKworJEVOVnsnUEdDT0xVTU5FTkNSWVBUSU9OJ30g PSAnMSc7CiskRU5WeydQR0NNS0xPT0tVUCd9ID0gJyo9ZmlsZTonIC4gJHtQb3N0Z3JlU1FM OjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfSAuICcvJWsucGVtJzsKKworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxcXsKK0NSRUFURSBUQUJMRSB0YmwxICgKKyAgICBhIGludCwK KyAgICBiIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNl azEpCispOworfSk7CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VS VCBJTlRPIHRibDEgKGEsIGIpIFZBTFVFUyAoMSwgJDEpIFxiaW5kICd2YWwxJyBcZworSU5T RVJUIElOVE8gdGJsMSAoYSwgYikgVkFMVUVTICgyLCAkMSkgXGJpbmQgJ3ZhbDInIFxnCit9 KTsKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZS T00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVz dWx0IHdpdGggb25lIENNSycpOworCisKKyMgY3JlYXRlIG5ldyBDTUsKK215ICRjbWsyZmls ZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsyJyk7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgbmV3 IENNSworIworIyAoSGVyZSwgd2Ugc3RpbGwgaGF2ZSB0aGUgcGxhaW50ZXh0IG9mIHRoZSBD RUsgYXZhaWxhYmxlIGZyb20KKyMgZWFybGllci4gIEluIHJlYWxpdHksIG9uZSB3b3VsZCBk ZWNyeXB0IHRoZSBDRUsgd2l0aCB0aGUgZmlyc3QgQ01LCisjIGFuZCB0aGVuIHJlLWVuY3J5 cHQgaXQgd2l0aCB0aGUgc2Vjb25kIENNSy4pCitzeXN0ZW1fb3JfYmFpbCAkb3BlbnNzbCwg J3BrZXl1dGwnLCAnLWVuY3J5cHQnLAorICAnLWlua2V5JywgJGNtazJmaWxlbmFtZSwKKyAg Jy1wa2V5b3B0JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisgICctaW4nLCAiJHtQb3N0 Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsCisgICct b3V0JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1l fS5iaW4uZW5jIjsKKworJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9maWxlICIk e1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVu YyIpOworCisjIGFkZCBuZXcgZGF0YSByZWNvcmQgZm9yIENFSyBpbiBkYXRhYmFzZQorJG5v ZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBL RVkgJHtjZWtuYW1lfSBBREQgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMiwgZW5j cnlwdGVkX3ZhbHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOworCisKK2lzKCRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8 dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCB3aXRoIHR3byBDTUtz Jyk7CisKKworIyBkZWxldGUgQ0VLIHJlY29yZCBmb3IgZmlyc3QgQ01LCiskbm9kZS0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAke2Nl a25hbWV9IERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSk7fSk7CisKKwor aXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiIEZST00gdGJs MX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IHdp dGggb25seSBuZXcgQ01LJyk7CisKKworZG9uZV90ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X2NsaWVudC5jIGIvc3JjL3Rlc3QvY29s dW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjU2YjcxNWE2Yjg1ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKQEAgLTAsMCArMSwxMTAgQEAK Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUuaCIKKworI2lu Y2x1ZGUgImxpYnBxLWZlLmgiCisKKworLyoKKyAqIFRlc3QgY2FsbHMgdGhhdCBkb24ndCBz dXBwb3J0IGVuY3J5cHRpb24KKyAqLworc3RhdGljIGludAordGVzdDEoUEdjb25uICpjb25u KQoreworCVBHcmVzdWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2YWx1ZXNbXSA9IHsiMyIs ICJ2YWwzIiwgIjMzIn07CisKKwlyZXMgPSBQUXByZXBhcmUoY29ubiwgIiIsICJJTlNFUlQg SU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKCQxLCAkMiwgJDMpIiwKKwkJCQkJMywgTlVM TCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7 CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQ UWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhl Y1ByZXBhcmVkKGNvbm4sICIiLCAzLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworCWlmIChQ UXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRm KHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9y TWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCisv KgorICogVGVzdCBmb3JjZWQgZW5jcnlwdGlvbgorICovCitzdGF0aWMgaW50Cit0ZXN0MihQ R2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJY29u c3QgY2hhciAqdmFsdWVzW10gPSB7IjMiLCAidmFsMyIsICIzMyJ9OworCWludAkJCWZvcm1h dHNbXSA9IHsweDAwLCAweDEwLCAweDAwfTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAi IiwgIklOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAor CQkJCQkzLCBOVUxMKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01N QU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVz XG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJ cmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25uLCAiIik7CisJaWYgKFBRcmVzdWx0U3Rh dHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwg IlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3Nh Z2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoISghUFFwYXJhbWlzZW5jcnlw dGVkKHJlczIsIDApICYmCisJCSAgUFFwYXJhbWlzZW5jcnlwdGVkKHJlczIsIDEpKSkKKwl7 CisJCWZwcmludGYoc3RkZXJyLCAid3JvbmcgcmVzdWx0cyBmcm9tIFBRcGFyYW1pc2VuY3J5 cHRlZCgpXG4iKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWRE ZXNjcmliZWQoY29ubiwgIiIsIDMsIHZhbHVlcywgTlVMTCwgZm9ybWF0cywgMCwgcmVzMik7 CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJ CWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJ CVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmV0dXJuIDA7 Cit9CisKK2ludAorbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJUEdjb25uCSAg ICpjb25uOworCWludAkJCXJldCA9IDA7CisKKwljb25uID0gUFFjb25uZWN0ZGIoIiIpOwor CWlmIChQUXN0YXR1cyhjb25uKSAhPSBDT05ORUNUSU9OX09LKQorCXsKKwkJZnByaW50Zihz dGRlcnIsICJDb25uZWN0aW9uIHRvIGRhdGFiYXNlIGZhaWxlZDogJXNcbiIsCisJCQkJUFFl cnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlpZiAoYXJnYyA8IDIg fHwgYXJndlsxXSA9PSBOVUxMKQorCQlyZXR1cm4gODc7CisJZWxzZSBpZiAoc3RyY21wKGFy Z3ZbMV0sICJ0ZXN0MSIpID09IDApCisJCXJldCA9IHRlc3QxKGNvbm4pOworCWVsc2UgaWYg KHN0cmNtcChhcmd2WzFdLCAidGVzdDIiKSA9PSAwKQorCQlyZXQgPSB0ZXN0Mihjb25uKTsK KwllbHNlCisJCXJldCA9IDg4OworCisJUFFmaW5pc2goY29ubik7CisJcmV0dXJuIHJldDsK K30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2Rl Y3J5cHQucGwgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi90ZXN0X3J1bl9kZWNyeXB0 LnBsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMC4uMDU4ZGU3NjE1 ODQ3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVz dF9ydW5fZGVjcnlwdC5wbApAQCAtMCwwICsxLDYwIEBACisjIS91c3IvYmluL3BlcmwKKwor IyBUZXN0L3NhbXBsZSBjb21tYW5kIGZvciBsaWJwcSBjbWtsb29rdXAgcnVuIHNjaGVtZQor IworIyBUaGlzIGp1c3QgcGxhY2VzIHRoZSBkYXRhIGludG8gdGVtcG9yYXJ5IGZpbGVzIGFu ZCBydW5zIHRoZSBvcGVuc3NsCisjIGNvbW1hbmQgb24gaXQuICAoSW4gcHJhY3RpY2UsIHRo aXMgY291bGQgbW9yZSBzaW1wbHkgYmUgd3JpdHRlbiBhcyBhCisjIHNoZWxsIHNjcmlwdCwg YnV0IHRoaXMgd2F5IGl0J3MgbW9yZSBwb3J0YWJsZS4pCisKKyMgQ29weXJpZ2h0IChjKSAy MDIxLTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK3VzZSBz dHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBNSU1FOjpCYXNlNjQ7CisKK215ICgkdG1w ZGlyLCAkY21rbmFtZSwgJGFsZywgJGI2NGRhdGEpID0gQEFSR1Y7CisKK2RpZSB1bmxlc3Mg JGFsZyA9fiAnUlNBRVNfT0FFUF9TSEEnOworCitteSAkZGlnZXN0ID0gJGFsZzsKKyRkaWdl c3QgPX4gcy8uKig/PVNIQSkvLzsKKyRkaWdlc3QgPX4gcy9fLy9nOworCitteSAkb3BlbnNz bCA9ICRFTlZ7T1BFTlNTTH07CisKK29wZW4gbXkgJGZoLCAnPjpyYXcnLCAiJHt0bXBkaXJ9 L2lucHV0LnRtcCIgb3IgZGllICQhOworcHJpbnQgJGZoIGRlY29kZV9iYXNlNjQoJGI2NGRh dGEpOworY2xvc2UgJGZoOworCitteSBAY21kID0gKAorCSRvcGVuc3NsLCAncGtleXV0bCcs ICctZGVjcnlwdCcsCisJJy1pbmtleScsICIke3RtcGRpcn0vJHtjbWtuYW1lfS5wZW0iLCAn LXBrZXlvcHQnLCAncnNhX3BhZGRpbmdfbW9kZTpvYWVwJywKKwknLWluJywgIiR7dG1wZGly fS9pbnB1dC50bXAiLCAnLW91dCcsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIKKyk7CisKK2lm ICgkZGlnZXN0IG5lICdTSEExJykKK3sKKwkjIFRoZXNlIG9wdGlvbnMgcmVxdWlyZSBPcGVu U1NMID49MS4xLjAsIHNvIGlmIHRoZSBkaWdlc3QgaXMKKwkjIFNIQTEsIHdoaWNoIGlzIHRo ZSBkZWZhdWx0LCBvbWl0IHRoZSBvcHRpb25zLgorCXB1c2ggQGNtZCwKKwkgICctcGtleW9w dCcsICJyc2FfbWdmMV9tZDokZGlnZXN0IiwKKwkgICctcGtleW9wdCcsICJyc2Ffb2FlcF9t ZDokZGlnZXN0IjsKK30KKworc3lzdGVtKEBjbWQpID09IDAgb3IgZGllICJzeXN0ZW0gZmFp bGVkOiAkPyI7CisKK29wZW4gJGZoLCAnPDpyYXcnLCAiJHt0bXBkaXJ9L291dHB1dC50bXAi IG9yIGRpZSAkITsKK215ICRkYXRhID0gJyc7CisKK3doaWxlICgxKSB7CisJbXkgJHN1Y2Nl c3MgPSByZWFkICRmaCwgJGRhdGEsIDEwMCwgbGVuZ3RoKCRkYXRhKTsKKwlkaWUgJCEgaWYg bm90IGRlZmluZWQgJHN1Y2Nlc3M7CisJbGFzdCBpZiBub3QgJHN1Y2Nlc3M7Cit9CisKK2Ns b3NlICRmaDsKKwordW5saW5rICIke3RtcGRpcn0vaW5wdXQudG1wIiwgIiR7dG1wZGlyfS9v dXRwdXQudG1wIjsKKworcHJpbnQgZW5jb2RlX2Jhc2U2NCgkZGF0YSk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9tZXNvbi5idWlsZCBiL3NyYy90ZXN0L21lc29uLmJ1aWxkCmluZGV4IDI0 MWQ5ZDQ4YWE1My4uMGQzOWNlZGViMTA5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tZXNvbi5i dWlsZAorKysgYi9zcmMvdGVzdC9tZXNvbi5idWlsZApAQCAtNyw2ICs3LDcgQEAgc3ViZGly KCdzdWJzY3JpcHRpb24nKQogc3ViZGlyKCdtb2R1bGVzJykKIAogaWYgc3NsLmZvdW5kKCkK KyAgc3ViZGlyKCdjb2x1bW5fZW5jcnlwdGlvbicpCiAgIHN1YmRpcignc3NsJykKIGVuZGlm CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29sdW1uX2VuY3J5 cHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1bW5fZW5jcnlwdGlv bi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mMGZiMDQw NDhhN2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nv bHVtbl9lbmNyeXB0aW9uLm91dApAQCAtMCwwICsxLDE2NiBAQAorXHNldCBISURFX0NPTFVN Tl9FTkNSWVBUSU9OIGZhbHNlCitDUkVBVEUgUk9MRSByZWdyZXNzX2VuY191c2VyMTsKK0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3Qn CispOworQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIElTICdjb2x1bW4gbWFz dGVyIGtleSc7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWEgV0lUSCAoCisgICAg cmVhbG0gPSAndGVzdCcKKyk7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBXSVRI ICgKKyAgICByZWFsbSA9ICd0ZXN0MicKKyk7CitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkg Y21rMmEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdHgnCispOworQUxURVIgQ09MVU1OIE1B U1RFUiBLRVkgY21rMmEgKHJlYWxtID0gJ3Rlc3QyJyk7CitDUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGZhaWwgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMSwKKyAgICBhbGdvcml0aG0gPSAnZm9vJywgIC0tIGludmFsaWQKKyAgICBlbmNyeXB0 ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIHVucmVjb2duaXplZCBlbmNy eXB0aW9uIGFsZ29yaXRobTogZm9vCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBh bGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0g J1x4REVBREJFRUYnCispOworQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2Vr MSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5JzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwK KyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3Zh bHVlID0gJ1x4REVBREJFRUYnCispOworLS0gZHVwbGljYXRlCitBTFRFUiBDT0xVTU4gRU5D UllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUgKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0g Y21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5 cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRp b24ga2V5ICJjZWsxIiBhbHJlYWR5IGhhcyBkYXRhIGZvciBtYXN0ZXIga2V5ICJjbWsxYSIK K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIEFERCBWQUxVRSAoCisgICAgY29s dW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9T SEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworRVJST1I6 ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0CitDUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9t YXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScs CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispLAorKAorICAgIGNvbHVt bl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hB XzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNCBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21h c3Rlcl9rZXkgPSBjbWsxLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywK KyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitDUkVBVEUgVEFCTEUg dGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQ VEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IG5vdGV4aXN0KQorKTsKK0VSUk9S OiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJub3RleGlzdCIgZG9lcyBub3QgZXhpc3QKK0NS RUFURSBUQUJMRSB0YmxfZmFpbCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMg dGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgYWxn b3JpdGhtID0gJ2ZvbycpCispOworRVJST1I6ICB1bnJlY29nbml6ZWQgZW5jcnlwdGlvbiBh bGdvcml0aG06IGZvbworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAg ICBiIHRleHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlv bl9rZXkgPSBjZWsxLCBlbmNyeXB0aW9uX3R5cGUgPSB3cm9uZykKKyk7CitFUlJPUjogIHVu cmVjb2duaXplZCBlbmNyeXB0aW9uIHR5cGU6IHdyb25nCitDUkVBVEUgVEFCTEUgdGJsXzI5 ZjMgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJ VEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpCispOworXGQgdGJsXzI5ZjMKKyAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy50YmxfMjlmMyIKKyBDb2x1bW4gfCAgVHlwZSAg IHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgYSAgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisKK1xkKyB0YmxfMjlmMworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29sdW1uIHwgIFR5cGUgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3JhZ2UgIHwgRW5jcnlwdGlv biB8IFN0YXRzIHRhcmdldCB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICB8 IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCBleHRlcm5hbCB8IGNlazEgICAgICAgfCAgICAgICAgICAgICAgfCAKKworQ1JFQVRFIFRB QkxFIHRibF80NDdmICgKKyAgICBhIGludCwKKyAgICBiIHRleHQKKyk7CitBTFRFUiBUQUJM RSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2Vu Y3J5cHRpb25fa2V5ID0gY2VrMSk7CitcZCB0YmxfNDQ3ZgorICAgICAgICAgICAgICBUYWJs ZSAicHVibGljLnRibF80NDdmIgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBO dWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0KKyBhICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAg ICAgICAgfCAKKyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAK KyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKworXGQrIHRi bF80NDdmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy50YmxfNDQ3ZiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IHwgU3RvcmFnZSAgfCBFbmNyeXB0aW9uIHwgU3RhdHMgdGFyZ2V0 IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgICAgfCBwbGFpbiAgICB8ICAgICAgICAgICAgfCAgICAgICAgICAgICAgfCAK KyBiICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwg ZXh0ZW5kZWQgfCAgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgCisgYyAgICAgIHwgdGV4 dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IGV4dGVybmFsIHwgY2Vr MSAgICAgICB8ICAgICAgICAgICAgICB8IAorCitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNt azEgUkVTVFJJQ1Q7ICAtLSBmYWlsCitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBtYXN0 ZXIga2V5IGNtazEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlM OiAgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazEgZGF0YSBmb3IgbWFzdGVyIGtleSBjbWsx IGRlcGVuZHMgb24gY29sdW1uIG1hc3RlciBrZXkgY21rMQorY29sdW1uIGVuY3J5cHRpb24g a2V5IGNlazQgZGF0YSBmb3IgbWFzdGVyIGtleSBjbWsxIGRlcGVuZHMgb24gY29sdW1uIG1h c3RlciBrZXkgY21rMQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhl IGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazIg UkVOQU1FIFRPIGNtazM7CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFTkFNRSBU TyBjbWszOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSAiY21rMyIgYWxy ZWFkeSBleGlzdHMKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNt a3k7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJjbWt4IiBkb2VzIG5v dCBleGlzdAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgUkVOQU1FIFRPIGNl azM7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMzsg IC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJjZWszIiBhbHJlYWR5 IGV4aXN0cworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNla3ggUkVOQU1FIFRPIGNl a3k7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiY2VreCIgZG9l cyBub3QgZXhpc3QKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3Vz ZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAtLSBmYWlsCitFUlJP UjogIG11c3QgYmUgb3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5IGNlazMKK0RST1Ag Q09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIGZhaWwKK0VSUk9SOiAgbXVzdCBiZSBvd25l ciBvZiBjb2x1bW4gbWFzdGVyIGtleSBjbWszCitSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T047CitBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWszIE9XTkVSIFRPIHJlZ3Jlc3NfZW5j X3VzZXIxOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazMgT1dORVIgVE8gcmVn cmVzc19lbmNfdXNlcjE7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OICdyZWdyZXNzX2Vu Y191c2VyMSc7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0gb2sgbm93 CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBvayBub3cKK1JFU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTjsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERS T1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEpOworQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsx YSk7ICAtLSBmYWlsCitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiY2VrMSIgaGFz IG5vIGRhdGEgZm9yIG1hc3RlciBrZXkgImNtazFhIgorQUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0t IGZhaWwKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgImZhaWwiIGRvZXMgbm90IGV4aXN0 CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5f bWFzdGVyX2tleSA9IGNtazFhLCBhbGdvcml0aG0gPSAnZm9vJyk7ICAtLSBmYWlsCitFUlJP UjogIGF0dHJpYnV0ZSAiYWxnb3JpdGhtIiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQKK0RST1Ag Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazQ7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtF WSBmYWlsOworRVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImZhaWwiIGRvZXMgbm90 IGV4aXN0CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBJRiBFWElTVFMgbm9uZXhpc3Rl bnQ7CitOT1RJQ0U6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgIm5vbmV4aXN0ZW50IiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmcKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitE Uk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5 ICJmYWlsIiBkb2VzIG5vdCBleGlzdAorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBJRiBFWElT VFMgbm9uZXhpc3RlbnQ7CitOT1RJQ0U6ICBjb2x1bW4gbWFzdGVyIGtleSAibm9uZXhpc3Rl bnQiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3Vz ZXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRk cmVzcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91 dAppbmRleCAyNWMxNzRmMjc1MDMuLjQ2Y2UwNWQ3OTA0NyAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQKQEAgLTM4LDYgKzM4LDggQEAg Q1JFQVRFIFNFUlZFUiAiaW50ZWdlciIgRk9SRUlHTiBEQVRBIFdSQVBQRVIgYWRkcl9mZHc7 CiBDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiByZWdyZXNzX2FkZHJfdXNlciBTRVJWRVIgImlu dGVnZXIiOwogQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRk cl91c2VyIElOIFNDSEVNQSBwdWJsaWMgR1JBTlQgQUxMIE9OIFRBQkxFUyBUTyByZWdyZXNz X2FkZHJfdXNlcjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNz X2FkZHJfdXNlciBSRVZPS0UgREVMRVRFIE9OIFRBQkxFUyBGUk9NIHJlZ3Jlc3NfYWRkcl91 c2VyOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rIFdJVEggKHJlYWxtID0g JycpOworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBhZGRyX2NlayBXSVRIIFZBTFVF UyAoY29sdW1uX21hc3Rlcl9rZXkgPSBhZGRyX2NtaywgZW5jcnlwdGVkX3ZhbHVlID0gJycp OwogLS0gdGhpcyB0cmFuc2Zvcm0gd291bGQgYmUgcXVpdGUgdW5zYWZlIHRvIGxlYXZlIGx5 aW5nIGFyb3VuZCwKIC0tIGV4Y2VwdCB0aGF0IHRoZSBTUUwgbGFuZ3VhZ2UgcGF5cyBubyBh dHRlbnRpb24gdG8gdHJhbnNmb3JtczoKIENSRUFURSBUUkFOU0ZPUk0gRk9SIGludCBMQU5H VUFHRSBTUUwgKApAQCAtMTA3LDcgKzEwOSw4IEBAIEJFR0lOCiAgICAgICAgICgndGV4dCBz ZWFyY2ggdGVtcGxhdGUnKSwgKCd0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uJyksCiAgICAg ICAgICgncG9saWN5JyksICgndXNlciBtYXBwaW5nJyksICgnZGVmYXVsdCBhY2wnKSwgKCd0 cmFuc2Zvcm0nKSwKICAgICAgICAgKCdvcGVyYXRvciBvZiBhY2Nlc3MgbWV0aG9kJyksICgn ZnVuY3Rpb24gb2YgYWNjZXNzIG1ldGhvZCcpLAotICAgICAgICAoJ3B1YmxpY2F0aW9uIG5h bWVzcGFjZScpLCAoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJykKKyAgICAgICAgKCdwdWJsaWNh dGlvbiBuYW1lc3BhY2UnKSwgKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpLAorICAgICAgICAo J2NvbHVtbiBlbmNyeXB0aW9uIGtleScpLCAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRh JyksICgnY29sdW1uIG1hc3RlciBrZXknKQogICAgIExPT1AKICAgICAgICAgRk9SIG5hbWVz IElOIFZBTFVFUyAoJ3tlaW5zfScpLCAoJ3thZGRyX25zcCwgendlaX0nKSwgKCd7ZWlucywg endlaSwgZHJlaX0nKQogICAgICAgICBMT09QCkBAIC0zMjcsNiArMzMwLDI0IEBAIFdBUk5J Tkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2FkZHJfbnNwLHp3ZWl9LHt9 OiBhcmd1bWVudCBsaXN0IGxlbmd0CiBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9u IHJlbGF0aW9uLHthZGRyX25zcCx6d2VpfSx7aW50ZWdlcn06IHJlbGF0aW9uICJhZGRyX25z cC56d2VpIiBkb2VzIG5vdCBleGlzdAogV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlv biByZWxhdGlvbix7ZWlucyx6d2VpLGRyZWl9LHt9OiBhcmd1bWVudCBsaXN0IGxlbmd0aCBt dXN0IGJlIGV4YWN0bHkgMQogV0FSTklORzogIGVycm9yIGZvciBwdWJsaWNhdGlvbiByZWxh dGlvbix7ZWlucyx6d2VpLGRyZWl9LHtpbnRlZ2VyfTogY3Jvc3MtZGF0YWJhc2UgcmVmZXJl bmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAiZWlucy56d2VpLmRyZWkiCitXQVJOSU5HOiAg ZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWluc30se306IGNvbHVtbiBlbmNy eXB0aW9uIGtleSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3Ig Y29sdW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zfSx7aW50ZWdlcn06IGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5LHthZGRyX25zcCx6d2VpfSx7fTogbmFtZSBsaXN0IGxlbmd0 aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlw dGlvbiBrZXkse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0aCBt dXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlv biBrZXkse2VpbnMsendlaSxkcmVpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4 YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkse2Vp bnMsendlaSxkcmVpfSx7aW50ZWdlcn06IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFj dGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEs e2VpbnN9LHt9OiBhcmd1bWVudCBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FS TklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWluc30se2lu dGVnZXJ9OiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgImVpbnMiIGRvZXMgbm90IGV4aXN0CitX QVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHthZGRyX25z cCx6d2VpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklO RzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7YWRkcl9uc3Asendl aX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJO SU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5zLHp3ZWks ZHJlaX0se306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6 ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnMsendlaSxkcmVp fSx7aW50ZWdlcn06IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5J Tkc6ICBlcnJvciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2VpbnN9LHt9OiBjb2x1bW4gbWFz dGVyIGtleSAiZWlucyIgZG9lcyBub3QgZXhpc3QKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIG1hc3RlciBrZXkse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIG1hc3RlciBrZXkgImVp bnMiIGRvZXMgbm90IGV4aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIg a2V5LHthZGRyX25zcCx6d2VpfSx7fTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0 bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRkcl9uc3As endlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitX QVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zLHp3ZWksZHJlaX0s e306IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJv ciBmb3IgY29sdW1uIG1hc3RlciBrZXkse2VpbnMsendlaSxkcmVpfSx7aW50ZWdlcn06IG5h bWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKIC0tIHRoZXNlIG9iamVjdCB0eXBl cyBjYW5ub3QgYmUgcXVhbGlmaWVkIG5hbWVzCiBTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRy ZXNzKCdsYW5ndWFnZScsICd7b25lfScsICd7fScpOwogRVJST1I6ICBsYW5ndWFnZSAib25l IiBkb2VzIG5vdCBleGlzdApAQCAtMzgyLDYgKzQwMywxNCBAQCBTRUxFQ1QgcGdfZ2V0X29i amVjdF9hZGRyZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZX0nLCAne30nKTsKIEVSUk9SOiAg c3Vic2NyaXB0aW9uICJvbmUiIGRvZXMgbm90IGV4aXN0CiBTRUxFQ1QgcGdfZ2V0X29iamVj dF9hZGRyZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZSx0d299JywgJ3t9Jyk7CiBFUlJPUjog IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1NFTEVDVCBwZ19nZXRfb2Jq ZWN0X2FkZHJlc3MoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7b25lfScsICd7fScpOwor RVJST1I6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgIm9uZSIgZG9lcyBub3QgZXhpc3QKK1NF TEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7 b25lLHR3b30nLCAne30nKTsKK0VSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4 YWN0bHkgMQorU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnY29sdW1uIG1hc3RlciBr ZXknLCAne29uZX0nLCAne30nKTsKK0VSUk9SOiAgY29sdW1uIG1hc3RlciBrZXkgIm9uZSIg ZG9lcyBub3QgZXhpc3QKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBt YXN0ZXIga2V5JywgJ3tvbmUsdHdvfScsICd7fScpOworRVJST1I6ICBuYW1lIGxpc3QgbGVu Z3RoIG11c3QgYmUgZXhhY3RseSAxCiAtLSBNYWtlIHN1cmUgdGhhdCBOVUxMIGhhbmRsaW5n IGlzIGNvcnJlY3QuCiBccHNldCBudWxsICdOVUxMJwogLS0gVGVtcG9yYXJpbHkgZGlzYWJs ZSBmYW5jeSBvdXRwdXQsIHNvIGFzIGZ1dHVyZSBhZGRpdGlvbnMgbmV2ZXIgY3JlYXRlCkBA IC00MDksNiArNDM4LDkgQEAgV0lUSCBvYmplY3RzICh0eXBlLCBuYW1lLCBhcmdzKSBBUyAo VkFMVUVTCiAgICAgKCd0eXBlJywgJ3thZGRyX25zcC5nZW5lbnVtfScsICd7fScpLAogICAg ICgnY2FzdCcsICd7aW50OH0nLCAne2ludDR9JyksCiAgICAgKCdjb2xsYXRpb24nLCAne2Rl ZmF1bHR9JywgJ3t9JyksCisgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne2FkZHJf Y2VrfScsICd7fScpLAorICAgICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEnLCAne2Fk ZHJfY2VrfScsICd7YWRkcl9jbWt9JyksCisgICAgKCdjb2x1bW4gbWFzdGVyIGtleScsICd7 YWRkcl9jbWt9JywgJ3t9JyksCiAgICAgKCd0YWJsZSBjb25zdHJhaW50JywgJ3thZGRyX25z cCwgZ2VudGFibGUsIGFfY2hrfScsICd7fScpLAogICAgICgnZG9tYWluIGNvbnN0cmFpbnQn LCAne2FkZHJfbnNwLmdlbmRvbWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKICAgICAoJ2NvbnZl cnNpb24nLCAne3BnX2NhdGFsb2csIGtvaThfcl90b19taWN9JywgJ3t9JyksCkBAIC01MDUs NiArNTM3LDkgQEAgc3Vic2NyaXB0aW9ufE5VTEx8cmVncmVzc19hZGRyX3N1YnxyZWdyZXNz X2FkZHJfc3VifHQKIHB1YmxpY2F0aW9ufE5VTEx8YWRkcl9wdWJ8YWRkcl9wdWJ8dAogcHVi bGljYXRpb24gcmVsYXRpb258TlVMTHxOVUxMfGFkZHJfbnNwLmdlbnRhYmxlIGluIHB1Ymxp Y2F0aW9uIGFkZHJfcHVifHQKIHB1YmxpY2F0aW9uIG5hbWVzcGFjZXxOVUxMfE5VTEx8YWRk cl9uc3AgaW4gcHVibGljYXRpb24gYWRkcl9wdWJfc2NoZW1hfHQKK2NvbHVtbiBtYXN0ZXIg a2V5fE5VTEx8YWRkcl9jbWt8YWRkcl9jbWt8dAorY29sdW1uIGVuY3J5cHRpb24ga2V5fE5V TEx8YWRkcl9jZWt8YWRkcl9jZWt8dAorY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGF8TlVM THxOVUxMfG9mIGFkZHJfY2VrIGZvciBhZGRyX2Nta3x0CiAtLS0KIC0tLSBDbGVhbnVwIHJl c291cmNlcwogLS0tCkBAIC01MTcsNiArNTUyLDggQEAgZHJvcCBjYXNjYWRlcyB0byB1c2Vy IG1hcHBpbmcgZm9yIHJlZ3Jlc3NfYWRkcl91c2VyIG9uIHNlcnZlciBpbnRlZ2VyCiBEUk9Q IFBVQkxJQ0FUSU9OIGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hl bWE7CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOworRFJPUCBDT0xVTU4g RU5DUllQVElPTiBLRVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGFkZHJf Y21rOwogRFJPUCBTQ0hFTUEgYWRkcl9uc3AgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gMTQgb3RoZXIgb2JqZWN0cwogREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0 ZXh0IHNlYXJjaCBkaWN0aW9uYXJ5IGFkZHJfdHNfZGljdApAQCAtNTQ3LDYgKzU4NCw5IEBA IFdJVEggb2JqZWN0cyAoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBBUyAoVkFMVUVTCiAg ICAgKCdwZ190eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0eXBlCiAgICAgKCdwZ19j YXN0Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAgICAgKCdwZ19jb2xsYXRpb24n OjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgorICAgICgncGdfY29sZW5ja2V5 Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkKKyAgICAo J3BnX2NvbGVuY2tleWRhdGEnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBlbmNy eXB0aW9uIGtleSBkYXRhCisgICAgKCdwZ19jb2xtYXN0ZXJrZXknOjpyZWdjbGFzcywgMCwg MCksIC0tIG5vIGNvbHVtbiBtYXN0ZXIga2V5CiAgICAgKCdwZ19jb25zdHJhaW50Jzo6cmVn Y2xhc3MsIDAsIDApLCAtLSBubyBjb25zdHJhaW50CiAgICAgKCdwZ19jb252ZXJzaW9uJzo6 cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb252ZXJzaW9uCiAgICAgKCdwZ19hdHRyZGVmJzo6 cmVnY2xhc3MsIDAsIDApLCAtLSBubyBkZWZhdWx0IGF0dHJpYnV0ZQpAQCAtNjM0LDUgKzY3 NCw4IEBAIE9SREVSIEJZIG9iamVjdHMuY2xhc3NpZCwgb2JqZWN0cy5vYmppZCwgb2JqZWN0 cy5vYmpzdWJpZDsKICgiKCIicHVibGljYXRpb24gcmVsYXRpb24iIiwsLCkiKXwoIigiInB1 YmxpY2F0aW9uIHJlbGF0aW9uIiIsLCkiKXxOVUxMCiAoIigiInB1YmxpY2F0aW9uIG5hbWVz cGFjZSIiLCwsKSIpfCgiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIsLCkiKXxOVUxMCiAo IigiInBhcmFtZXRlciBBQ0wiIiwsLCkiKXwoIigiInBhcmFtZXRlciBBQ0wiIiwsKSIpfE5V TEwKKygiKCIiY29sdW1uIG1hc3RlciBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBtYXN0ZXIg a2V5IiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSIiLCwsKSIpfCgi KCIiY29sdW1uIGVuY3J5cHRpb24ga2V5IiIsLCkiKXxOVUxMCisoIigiImNvbHVtbiBlbmNy eXB0aW9uIGtleSBkYXRhIiIsLCwpIil8KCIoIiJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0 YSIiLCwpIil8TlVMTAogLS0gcmVzdG9yZSBub3JtYWwgb3V0cHV0IG1vZGUKIFxhXHQKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXggMjE1ZWI4OTliZTNl Li4yYWEwZTE2MzIzMTcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMu b3V0CkBAIC03Myw2ICs3Myw4IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3R5cGUge3R5cGJh c2V0eXBlfSA9PiBwZ190eXBlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ190eXBlIHt0 eXBjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfYXR0cmlidXRlIHthdHRyZWxpZH0gPT4gcGdfY2xhc3Mge29pZH0KIE5PVElDRTogIGNo ZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0dHlwaWR9ID0+IHBnX3R5cGUge29pZH0KK05PVElD RTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0Y2VrfSA9PiBwZ19jb2xlbmNrZXkge29p ZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVhbHR5cGlkfSA9PiBw Z190eXBlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNvbGxh dGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19jbGFz cyB7cmVsbmFtZXNwYWNlfSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KIE5PVElDRTogIGNoZWNr aW5nIHBnX2NsYXNzIHtyZWx0eXBlfSA9PiBwZ190eXBlIHtvaWR9CkBAIC0yNjYsMyArMjY4 LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtzdWJkYmlkfSA9PiBw Z19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uIHtz dWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJz Y3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29pZH0KIE5PVElD RTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBnX2NsYXNz IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xtYXN0ZXJrZXkge2Nta293bmVyfSA9 PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX2NvbGVuY2tleSB7Y2Vr b3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sZW5j a2V5ZGF0YSB7Y2tkY2VraWR9ID0+IHBnX2NvbGVuY2tleSB7b2lkfQorTk9USUNFOiAgY2hl Y2tpbmcgcGdfY29sZW5ja2V5ZGF0YSB7Y2tkY21raWR9ID0+IHBnX2NvbG1hc3RlcmtleSB7 b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5 Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXgg MzMwZWIwZjc2NTZiLi42NDY1MDdmMDI5MGMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMTc1LDEzICsxNzUsMTQgQEAgV0hFUkUgcDEub2lk ICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBlcyAg ICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAgICAg ICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgYmlnaW50ICAgICAgICAgICAg ICAgICAgICAgIHwgeGlkOAogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJh Y3RlcgogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5n CiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6 b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0eGlk X3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAotKDYgcm93cykKKyg3IHJv d3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0eXBlc1sxXTo6cmVndHlwZSwgcDIu cHJvYXJndHlwZXNbMV06OnJlZ3R5cGUKIEZST00gcGdfcHJvYyBBUyBwMSwgcGdfcHJvYyBB UyBwMgpAQCAtMTk3LDEyICsxOTgsMTMgQEAgV0hFUkUgcDEub2lkICE9IHAyLm9pZCBBTkQK IE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgIHwgICAgICAg cHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAgICAgICAgICAgICAgICAgICAg fCBwZ19lbmNyeXB0ZWRfZGV0CiAgaW50ZWdlciAgICAgICAgICAgICAgICAgICAgIHwgeGlk CiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGltZSB6 b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0eGlk X3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAogIGFueXJhbmdlICAgICAg ICAgICAgICAgICAgICB8IGFueW11bHRpcmFuZ2UKLSg1IHJvd3MpCisoNiByb3dzKQogCiBT RUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMl06OnJlZ3R5cGUsIHAyLnByb2FyZ3R5 cGVzWzJdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2MgQVMgcDIKQEAg LTg0MSw2ICs4NDMsOCBAQCB4aWQ4Z2UoeGlkOCx4aWQ4KQogeGlkOGVxKHhpZDgseGlkOCkK IHhpZDhuZSh4aWQ4LHhpZDgpCiB4aWQ4Y21wKHhpZDgseGlkOCkKK3BnX2VuY3J5cHRlZF9k ZXRfZXEocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KQorcGdfZW5jcnlwdGVk X2RldF9uZShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpCiAtLSByZXN0b3Jl IG5vcm1hbCBvdXRwdXQgbW9kZQogXGFcdAogLS0gTGlzdCBvZiBmdW5jdGlvbnMgdXNlZCBi eSBsaWJwcSdzIGZlLWxvYmouYwpAQCAtOTg4LDcgKzk5Miw5IEBAIFdIRVJFIGMuY2FzdG1l dGhvZCA9ICdiJyBBTkQKICB4bWwgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAgICAg IHwgICAgICAgIDAgfCBhCiAgeG1sICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIgdmFyeWlu ZyB8ICAgICAgICAwIHwgYQogIHhtbCAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyICAgICAg ICAgfCAgICAgICAgMCB8IGEKLSgxMCByb3dzKQorIGJ5dGVhICAgICAgICAgICAgIHwgcGdf ZW5jcnlwdGVkX2RldCAgfCAgICAgICAgMCB8IGUKKyBieXRlYSAgICAgICAgICAgICB8IHBn X2VuY3J5cHRlZF9ybmQgIHwgICAgICAgIDAgfCBlCisoMTIgcm93cykKIAogLS0gKioqKioq KioqKioqKioqKiBwZ19jb252ZXJzaW9uICoqKioqKioqKioqKioqKioKIC0tIExvb2sgZm9y IGlsbGVnYWwgdmFsdWVzIGluIHBnX2NvbnZlcnNpb24gZmllbGRzLgpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQKaW5kZXggNTgxNWUxN2IzOWNjLi40NDgyYTY1ZDI0 NTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dApAQCAtMTYyLDI2 ICsxNjIsMjYgQEAgUFJFUEFSRSBxNyh1bmtub3duKSBBUwogLS0gRE1MIHN0YXRlbWVudHMK IFBSRVBBUkUgcTggQVMKICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3UxID0gJDIgV0hF UkUgdW5pcXVlMSA9ICQxOwotU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVyX3R5 cGVzLCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCitTRUxFQ1Qg bmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJfdHlwZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxl cywgcGFyYW1ldGVyX29yaWdfY29sdW1ucywgcmVzdWx0X3R5cGVzIEZST00gcGdfcHJlcGFy ZWRfc3RhdGVtZW50cwogICAgIE9SREVSIEJZIG5hbWU7Ci0gbmFtZSB8ICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0YXRlbWVudCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcl90eXBlcyAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlc3VsdF90eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIHEy ICAgfCBQUkVQQVJFIHEyKHRleHQpIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgK3wge3RleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCB7bmFtZSxib29sZWFuLGJvb2xlYW59Ci0gICAgICB8ICAgICAg ICAgU0VMRUNUIGRhdG5hbWUsIGRhdGlzdGVtcGxhdGUsIGRhdGFsbG93Y29ubiAgICAgICAg ICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IAotICAgICAgfCAgICAgICAgIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFt ZSA9ICQxOyAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxMyAgIHwgUFJFUEFSRSBxMyh0ZXh0 LCBpbnQsIGZsb2F0LCBib29sZWFuLCBzbWFsbGludCkgQVMgICAgICAgICAgICAgICt8IHt0 ZXh0LGludGVnZXIsImRvdWJsZSBwcmVjaXNpb24iLGJvb2xlYW4sc21hbGxpbnR9IHwge2lu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxu YW1lLG5hbWV9Ci0gICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSBz dHJpbmc0ID0gJDEgQU5EIChmb3VyID0gJDIgT1IrfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotICAgICAgfCAgICAgICAgIHRlbiA9 ICQzOjpiaWdpbnQgT1IgdHJ1ZSA9ICQ0IE9SIG9kZCA9ICQ1OjppbnQpICAgICAgICAgK3wg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAK LSAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1bmlxdWUxOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgCi0gcTUgICB8IFBSRVBBUkUgcTUoaW50LCB0ZXh0KSBB UyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50ZWdlcix0 ZXh0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHtpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1l fQotICAgICAgfCAgICAgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgdW5pcXVlMSA9 ICQxIE9SIHN0cmluZ3UxID0gJDIgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAKLSAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1bmlx dWUxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTYgICB8 IFBSRVBBUkUgcTYgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICArfCB7aW50ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQotICAgICAgfCAgICAgU0VMRUNUICogRlJPTSB0 ZW5rMSBXSEVSRSB1bmlxdWUxID0gJDEgQU5EIHN0cmluZ3UxID0gJDI7ICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxNyAg IHwgUFJFUEFSRSBxNyh1bmtub3duKSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICt8IHtwYXRofSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwge3RleHQscGF0aH0KLSAgICAgIHwgICAgIFNFTEVDVCAqIEZST00g cm9hZCBXSEVSRSB0aGVwYXRoID0gJDE7ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gcTgg ICB8IFBSRVBBUkUgcTggQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArfCB7aW50ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IAotICAgICAgfCAgICAgVVBEQVRFIHRlbmsxIFNFVCBzdHJpbmd1 MSA9ICQyIFdIRVJFIHVuaXF1ZTEgPSAkMTsgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBuYW1lIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyX3R5cGVzICAgICAgICAgICAgICAg ICAgIHwgcGFyYW1ldGVyX29yaWdfdGFibGVzIHwgcGFyYW1ldGVyX29yaWdfY29sdW1ucyB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJlc3VsdF90eXBlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBxMiAgIHwg UFJFUEFSRSBxMih0ZXh0KSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICt8IHt0ZXh0fSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgey19ICAgICAgICAgICAgICAgICAgIHwgezB9ICAgICAgICAgICAgICAg ICAgICB8IHtuYW1lLGJvb2xlYW4sYm9vbGVhbn0KKyAgICAgIHwgICAgICAgICBTRUxFQ1Qg ZGF0bmFtZSwgZGF0aXN0ZW1wbGF0ZSwgZGF0YWxsb3djb25uICAgICAgICAgICAgICt8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAg fCAgICAgICAgIEZST00gcGdfZGF0YWJhc2UgV0hFUkUgZGF0bmFtZSA9ICQxOyAgICAgICAg ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgCisgcTMgICB8IFBSRVBBUkUgcTModGV4dCwgaW50LCBmbG9hdCwgYm9vbGVh biwgc21hbGxpbnQpIEFTICAgICAgICAgICAgICArfCB7dGV4dCxpbnRlZ2VyLCJkb3VibGUg cHJlY2lzaW9uIixib29sZWFuLHNtYWxsaW50fSB8IHstLC0sLSwtLC19ICAgICAgICAgICB8 IHswLDAsMCwwLDB9ICAgICAgICAgICAgfCB7aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5hbWUsbmFtZX0KKyAgICAgIHwgICAgICAg ICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJFIHN0cmluZzQgPSAkMSBBTkQgKGZvdXIgPSAk MiBPUit8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgfCAgICAgICAgIHRlbiA9ICQzOjpiaWdpbnQgT1IgdHJ1ZSA9ICQ0IE9SIG9k ZCA9ICQ1OjppbnQpICAgICAgICAgK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgCisgICAgICB8ICAgICAgICAgT1JERVIgQlkgdW5pcXVlMTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxNSAgIHwgUFJFUEFSRSBx NShpbnQsIHRleHQpIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICt8IHtpbnRlZ2VyLHRleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgey0sLX0gICAgICAgICAgICAgICAgIHwgezAsMH0gICAgICAgICAgICAgICAgICB8IHtp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUs bmFtZSxuYW1lfQorICAgICAgfCAgICAgICAgIFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUg dW5pcXVlMSA9ICQxIE9SIHN0cmluZ3UxID0gJDIgK3wgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICB8ICAgICAgICAgT1JERVIgQlkg dW5pcXVlMTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxNiAgIHwg UFJFUEFSRSBxNiBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICt8IHtpbnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgey0sLX0gICAgICAgICAgICAgICAgIHwgezAsMH0gICAgICAgICAgICAg ICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdl cixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLG5hbWUsbmFtZSxuYW1lfQorICAgICAgfCAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBX SEVSRSB1bmlxdWUxID0gJDEgQU5EIHN0cmluZ3UxID0gJDI7ICAgIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgcTcgICB8IFBSRVBBUkUg cTcodW5rbm93bikgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArfCB7cGF0aH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHstfSAgICAgICAgICAgICAgICAgICB8IHswfSAgICAgICAgICAgICAgICAgICAgfCB7 dGV4dCxwYXRofQorICAgICAgfCAgICAgU0VMRUNUICogRlJPTSByb2FkIFdIRVJFIHRoZXBh dGggPSAkMTsgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgcTggICB8IFBSRVBBUkUgcTggQVMgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArfCB7aW50 ZWdlcixuYW1lfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHstLHRl bmsxfSAgICAgICAgICAgICB8IHswLDE0fSAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwg ICAgIFVQREFURSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8IAogKDYgcm93cykKIAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMzdjMWM4NjQ3Mzk0Li5mYmI3YTM3MzZj NzcgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xNDI4LDExICsx NDI4LDEzIEBAIHBnX3ByZXBhcmVkX3N0YXRlbWVudHN8IFNFTEVDVCBwLm5hbWUsCiAgICAg cC5zdGF0ZW1lbnQsCiAgICAgcC5wcmVwYXJlX3RpbWUsCiAgICAgcC5wYXJhbWV0ZXJfdHlw ZXMsCisgICAgcC5wYXJhbWV0ZXJfb3JpZ190YWJsZXMsCisgICAgcC5wYXJhbWV0ZXJfb3Jp Z19jb2x1bW5zLAogICAgIHAucmVzdWx0X3R5cGVzLAogICAgIHAuZnJvbV9zcWwsCiAgICAg cC5nZW5lcmljX3BsYW5zLAogICAgIHAuY3VzdG9tX3BsYW5zCi0gICBGUk9NIHBnX3ByZXBh cmVkX3N0YXRlbWVudCgpIHAobmFtZSwgc3RhdGVtZW50LCBwcmVwYXJlX3RpbWUsIHBhcmFt ZXRlcl90eXBlcywgcmVzdWx0X3R5cGVzLCBmcm9tX3NxbCwgZ2VuZXJpY19wbGFucywgY3Vz dG9tX3BsYW5zKTsKKyAgIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50KCkgcChuYW1lLCBz dGF0ZW1lbnQsIHByZXBhcmVfdGltZSwgcGFyYW1ldGVyX3R5cGVzLCBwYXJhbWV0ZXJfb3Jp Z190YWJsZXMsIHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsIHJlc3VsdF90eXBlcywgZnJvbV9z cWwsIGdlbmVyaWNfcGxhbnMsIGN1c3RvbV9wbGFucyk7CiBwZ19wcmVwYXJlZF94YWN0c3wg U0VMRUNUIHAudHJhbnNhY3Rpb24sCiAgICAgcC5naWQsCiAgICAgcC5wcmVwYXJlZCwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHlwZV9zYW5pdHkub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90eXBlX3Nhbml0eS5vdXQKaW5kZXggZDNhYzA4 YzllZTNlLi4zNTcwOTVlMWI5YjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvdHlwZV9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dHlwZV9zYW5pdHkub3V0CkBAIC03NSw3ICs3NSw5IEBAIE9SREVSIEJZIHQxLm9pZDsKICA0 NjAwIHwgcGdfYnJpbl9ibG9vbV9zdW1tYXJ5CiAgNDYwMSB8IHBnX2JyaW5fbWlubWF4X211 bHRpX3N1bW1hcnkKICA1MDE3IHwgcGdfbWN2X2xpc3QKLSg2IHJvd3MpCisgODI0MyB8IHBn X2VuY3J5cHRlZF9kZXQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZAorKDggcm93cykKIAog LS0gTWFrZSBzdXJlIHR5cGFycmF5IHBvaW50cyB0byBhICJ0cnVlIiBhcnJheSB0eXBlIG9m IG91ciBvd24gYmFzZQogU0VMRUNUIHQxLm9pZCwgdDEudHlwbmFtZSBhcyBiYXNldHlwZSwg dDIudHlwbmFtZSBhcyBhcnJheXR5cGUsCkBAIC0xNzEsMTAgKzE3MywxMiBAQCBXSEVSRSB0 MS50eXBpbnB1dCA9IHAxLm9pZCBBTkQgdDEudHlwdHlwZSBpbiAoJ2InLCAncCcpIEFORCBO T1QKICAgICAodDEudHlwZWxlbSAhPSAwIEFORCB0MS50eXBsZW4gPCAwKSBBTkQgTk9UCiAg ICAgKHAxLnByb3JldHR5cGUgPSB0MS5vaWQgQU5EIE5PVCBwMS5wcm9yZXRzZXQpCiBPUkRF UiBCWSAxOwotIG9pZCAgfCAgdHlwbmFtZSAgfCBvaWQgfCBwcm9uYW1lIAotLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLQotIDE3OTAgfCByZWZjdXJzb3IgfCAgNDYgfCB0 ZXh0aW4KLSgxIHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9pZCAgfCBwcm9u YW1lIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tCisgMTc5 MCB8IHJlZmN1cnNvciAgICAgICAgfCAgIDQ2IHwgdGV4dGluCisgODI0MyB8IHBnX2VuY3J5 cHRlZF9kZXQgfCAxMjQ0IHwgYnl0ZWFpbgorIDgyNDQgfCBwZ19lbmNyeXB0ZWRfcm5kIHwg MTI0NCB8IGJ5dGVhaW4KKygzIHJvd3MpCiAKIC0tIFZhcmxlbmEgYXJyYXkgdHlwZXMgd2ls bCBwb2ludCB0byBhcnJheV9pbgogLS0gRXhjZXB0aW9uIGFzIG9mIDguMTogaW50MnZlY3Rv ciBhbmQgb2lkdmVjdG9yIGhhdmUgdGhlaXIgb3duIEkvTyByb3V0aW5lcwpAQCAtMjIzLDEw ICsyMjcsMTIgQEAgV0hFUkUgdDEudHlwb3V0cHV0ID0gcDEub2lkIEFORCB0MS50eXB0eXBl IGluICgnYicsICdwJykgQU5EIE5PVAogICAgICAgKHAxLm9pZCA9ICdhcnJheV9vdXQnOjpy ZWdwcm9jIEFORAogICAgICAgIHQxLnR5cGVsZW0gIT0gMCBBTkQgdDEudHlwbGVuID0gLTEp KSkKIE9SREVSIEJZIDE7Ci0gb2lkICB8ICB0eXBuYW1lICB8IG9pZCB8IHByb25hbWUgCi0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tCi0gMTc5MCB8IHJlZmN1cnNvciB8 ICA0NyB8IHRleHRvdXQKLSgxIHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9p ZCB8IHByb25hbWUgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLS0t LS0tCisgMTc5MCB8IHJlZmN1cnNvciAgICAgICAgfCAgNDcgfCB0ZXh0b3V0CisgODI0MyB8 IHBnX2VuY3J5cHRlZF9kZXQgfCAgMzEgfCBieXRlYW91dAorIDgyNDQgfCBwZ19lbmNyeXB0 ZWRfcm5kIHwgIDMxIHwgYnl0ZWFvdXQKKygzIHJvd3MpCiAKIFNFTEVDVCB0MS5vaWQsIHQx LnR5cG5hbWUsIHAxLm9pZCwgcDEucHJvbmFtZQogRlJPTSBwZ190eXBlIEFTIHQxLCBwZ19w cm9jIEFTIHAxCkBAIC0yODcsMTAgKzI5MywxMiBAQCBXSEVSRSB0MS50eXByZWNlaXZlID0g cDEub2lkIEFORCB0MS50eXB0eXBlIGluICgnYicsICdwJykgQU5EIE5PVAogICAgICh0MS50 eXBlbGVtICE9IDAgQU5EIHQxLnR5cGxlbiA8IDApIEFORCBOT1QKICAgICAocDEucHJvcmV0 dHlwZSA9IHQxLm9pZCBBTkQgTk9UIHAxLnByb3JldHNldCkKIE9SREVSIEJZIDE7Ci0gb2lk ICB8ICB0eXBuYW1lICB8IG9pZCAgfCBwcm9uYW1lICAKLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLQotIDE3OTAgfCByZWZjdXJzb3IgfCAyNDE0IHwgdGV4dHJlY3YK LSgxIHJvdykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9pZCAgfCAgcHJvbmFtZSAg CistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLQorIDE3OTAg fCByZWZjdXJzb3IgICAgICAgIHwgMjQxNCB8IHRleHRyZWN2CisgODI0MyB8IHBnX2VuY3J5 cHRlZF9kZXQgfCAyNDEyIHwgYnl0ZWFyZWN2CisgODI0NCB8IHBnX2VuY3J5cHRlZF9ybmQg fCAyNDEyIHwgYnl0ZWFyZWN2CisoMyByb3dzKQogCiAtLSBWYXJsZW5hIGFycmF5IHR5cGVz IHdpbGwgcG9pbnQgdG8gYXJyYXlfcmVjdgogLS0gRXhjZXB0aW9uIGFzIG9mIDguMTogaW50 MnZlY3RvciBhbmQgb2lkdmVjdG9yIGhhdmUgdGhlaXIgb3duIEkvTyByb3V0aW5lcwpAQCAt MzQ4LDEwICszNTYsMTIgQEAgV0hFUkUgdDEudHlwc2VuZCA9IHAxLm9pZCBBTkQgdDEudHlw dHlwZSBpbiAoJ2InLCAncCcpIEFORCBOT1QKICAgICAgIChwMS5vaWQgPSAnYXJyYXlfc2Vu ZCc6OnJlZ3Byb2MgQU5ECiAgICAgICAgdDEudHlwZWxlbSAhPSAwIEFORCB0MS50eXBsZW4g PSAtMSkpKQogT1JERVIgQlkgMTsKLSBvaWQgIHwgIHR5cG5hbWUgIHwgb2lkICB8IHByb25h bWUgIAotLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tCi0gMTc5MCB8IHJl ZmN1cnNvciB8IDI0MTUgfCB0ZXh0c2VuZAotKDEgcm93KQorIG9pZCAgfCAgICAgdHlwbmFt ZSAgICAgIHwgb2lkICB8ICBwcm9uYW1lICAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tCisgMTc5MCB8IHJlZmN1cnNvciAgICAgICAgfCAyNDE1IHwg dGV4dHNlbmQKKyA4MjQzIHwgcGdfZW5jcnlwdGVkX2RldCB8IDI0MTMgfCBieXRlYXNlbmQK KyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZCB8IDI0MTMgfCBieXRlYXNlbmQKKygzIHJvd3Mp CiAKIFNFTEVDVCB0MS5vaWQsIHQxLnR5cG5hbWUsIHAxLm9pZCwgcDEucHJvbmFtZQogRlJP TSBwZ190eXBlIEFTIHQxLCBwZ19wcm9jIEFTIHAxCkBAIC03MDcsNiArNzE3LDggQEAgQ1JF QVRFIFRBQkxFIHRhYl9jb3JlX3R5cGVzIEFTIFNFTEVDVAogICAndHh0Jzo6dGV4dCwKICAg dHJ1ZTo6Ym9vbCwKICAgRSdcXHhERUFEQkVFRic6OmJ5dGVhLAorICBFJ1xceERFQURCRUVG Jzo6cGdfZW5jcnlwdGVkX3JuZCwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2VuY3J5cHRlZF9k ZXQsCiAgIEInMTAwMDEnOjpiaXQsCiAgIEInMTAwMDEnOjp2YXJiaXQgQVMgdmFyYml0LAog ICAnMTIuMzQnOjptb25leSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4 IDlhMTM5ZjFlMjQ4Ny4uNzc1MjUzYjUwZjZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKQEAgLTEyOSw2ICsxMjksOSBAQCB0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxw Z3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0 cgogIyAtLS0tLS0tLS0tCiB0ZXN0OiBwYXJ0aXRpb25fam9pbiBwYXJ0aXRpb25fcHJ1bmUg cmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFydGl0aW9uX2FnZ3JlZ2F0ZSBwYXJ0 aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21wcmVzc2lvbiBtZW1vaXplIHN0YXRz CiAKKyMgV0lQCit0ZXN0OiBjb2x1bW5fZW5jcnlwdGlvbgorCiAjIGV2ZW50X3RyaWdnZXIg Y2Fubm90IHJ1biBjb25jdXJyZW50bHkgd2l0aCBhbnkgdGVzdCB0aGF0IHJ1bnMgRERMCiAj IG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBhbmQgc2hvdWxkIHJ1biBsYXRlIGZv ciBiZXN0IGNvdmVyYWdlCiB0ZXN0OiBldmVudF90cmlnZ2VyIG9pZGpvaW5zCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jIGIvc3JjL3Rlc3QvcmVn cmVzcy9wZ19yZWdyZXNzX21haW4uYwppbmRleCBhNGIzNTRjOWU2YzAuLjhhZDFmNDU4ZDUw MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYworKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFpbi5jCkBAIC04Miw3ICs4Miw3IEBA IHBzcWxfc3RhcnRfdGVzdChjb25zdCBjaGFyICp0ZXN0bmFtZSwKIAkJCQkJICAgYmluZGly ID8gYmluZGlyIDogIiIsCiAJCQkJCSAgIGJpbmRpciA/ICIvIiA6ICIiLAogCQkJCQkgICBk Ymxpc3QtPnN0ciwKLQkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1vbiAtdiBISURFX1RPQVNU X0NPTVBSRVNTSU9OPW9uIiwKKwkJCQkJICAgIi12IEhJREVfVEFCTEVBTT1vbiAtdiBISURF X1RPQVNUX0NPTVBSRVNTSU9OPW9uIC12IEhJREVfQ09MVU1OX0VOQ1JZUFRJT049b24iLAog CQkJCQkgICBpbmZpbGUsCiAJCQkJCSAgIG91dGZpbGUpOwogCWlmIChvZmZzZXQgPj0gc2l6 ZW9mKHBzcWxfY21kKSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVt bl9lbmNyeXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0 aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjBlZWJi NTk2ZDYzNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVt bl9lbmNyeXB0aW9uLnNxbApAQCAtMCwwICsxLDE0NiBAQAorXHNldCBISURFX0NPTFVNTl9F TkNSWVBUSU9OIGZhbHNlCisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOworCitD UkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0 JworKTsKKworQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIElTICdjb2x1bW4g bWFzdGVyIGtleSc7CisKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxYSBXSVRIICgK KyAgICByZWFsbSA9ICd0ZXN0JworKTsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNt azIgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdDInCispOworCitDUkVBVEUgQ09MVU1OIE1B U1RFUiBLRVkgY21rMmEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdHgnCispOworCitBTFRF UiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyYSAocmVhbG0gPSAndGVzdDInKTsKKworQ1JFQVRF IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5f bWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ2ZvbycsICAtLSBpbnZhbGlk CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9tYXN0 ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitDT01NRU5UIE9OIENP TFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIElTICdjb2x1bW4gZW5jcnlwdGlvbiBrZXknOwor CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUgKAorICAgIGNv bHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBf U0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKKworLS0g ZHVwbGljYXRlCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBBREQgVkFMVUUg KAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsCisgICAgYWxnb3JpdGhtID0gJ1JT QUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJwor KTsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQUREIFZBTFVFICgKKyAg ICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19P QUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CisK K0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMiBXSVRIIFZBTFVFUyAoCisgICAg Y29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQ X1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyksCisoCisg ICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNf T0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOwor CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazQgV0lUSCBWQUxVRVMgKAorICAg IGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FF UF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworCitD UkVBVEUgVEFCTEUgdGJsX2ZhaWwgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCwKKyAgICBj IHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IG5vdGV4aXN0 KQorKTsKKworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRl eHQsCisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkg PSBjZWsxLCBhbGdvcml0aG0gPSAnZm9vJykKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfZmFp bCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMSwgZW5jcnlwdGlvbl90eXBlID0gd3Jv bmcpCispOworCitDUkVBVEUgVEFCTEUgdGJsXzI5ZjMgKAorICAgIGEgaW50LAorICAgIGIg dGV4dCwKKyAgICBjIHRleHQgRU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tl eSA9IGNlazEpCispOworCitcZCB0YmxfMjlmMworXGQrIHRibF8yOWYzCisKK0NSRUFURSBU QUJMRSB0YmxfNDQ3ZiAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0CispOworCitBTFRFUiBU QUJMRSB0YmxfNDQ3ZiBBREQgQ09MVU1OIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1u X2VuY3J5cHRpb25fa2V5ID0gY2VrMSk7CisKK1xkIHRibF80NDdmCitcZCsgdGJsXzQ0N2YK KworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorCitB TFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsyIFJFTkFNRSBUTyBjbWszOworQUxURVIgQ09M VU1OIE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMzsgIC0tIGZhaWwKK0FMVEVSIENP TFVNTiBNQVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAtLSBmYWlsCisKK0FMVEVS IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFNRSBUTyBjZWszOworQUxURVIgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazM7ICAtLSBmYWlsCitBTFRF UiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwK KworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVzc19lbmNfdXNlcjEnOworRFJP UCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIGZhaWwKK0RST1AgQ09MVU1OIE1B U1RFUiBLRVkgY21rMzsgIC0tIGZhaWwKK1JFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsK K0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNl cjE7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05FUiBUTyByZWdyZXNz X2VuY191c2VyMTsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gJ3JlZ3Jlc3NfZW5jX3Vz ZXIxJzsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazM7ICAtLSBvayBub3cKK0RS T1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMzsgIC0tIG9rIG5vdworUkVTRVQgU0VTU0lPTiBB VVRIT1JJWkFUSU9OOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9Q IFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhKTsKK0FMVEVSIENPTFVNTiBFTkNS WVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEp OyAgLS0gZmFpbAorQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxV RSAoY29sdW1uX21hc3Rlcl9rZXkgPSBmYWlsKTsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21r MWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZhaWwKKworRFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWw7CitEUk9Q IENPTFVNTiBFTkNSWVBUSU9OIEtFWSBJRiBFWElTVFMgbm9uZXhpc3RlbnQ7CisKK0RST1Ag Q09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7 CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIElGIEVYSVNUUyBub25leGlzdGVudDsKKworRFJP UCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0 X2FkZHJlc3Muc3FsCmluZGV4IDFhNmM2MWY0OWQ1NC4uOWRjYzYxNGQ5MDk5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvb2JqZWN0X2FkZHJlc3Muc3FsCkBAIC00MSw2ICs0MSw4IEBA IENSRUFURSBTRVJWRVIgImludGVnZXIiIEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3 OwogQ1JFQVRFIFVTRVIgTUFQUElORyBGT1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJp bnRlZ2VyIjsKIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2Fk ZHJfdXNlciBJTiBTQ0hFTUEgcHVibGljIEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVz c19hZGRyX3VzZXI7CiBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVz c19hZGRyX3VzZXIgUkVWT0tFIERFTEVURSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJf dXNlcjsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtayBXSVRIIChyZWFsbSA9 ICcnKTsKK0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWsgV0lUSCBWQUxV RVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gYWRkcl9jbWssIGVuY3J5cHRlZF92YWx1ZSA9ICcn KTsKIC0tIHRoaXMgdHJhbnNmb3JtIHdvdWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBs eWluZyBhcm91bmQsCiAtLSBleGNlcHQgdGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8g YXR0ZW50aW9uIHRvIHRyYW5zZm9ybXM6CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFO R1VBR0UgU1FMICgKQEAgLTk5LDcgKzEwMSw4IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJf bnNwLmdlbnRhYmxlX3N0YXQgT04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogICAg ICAgICAoJ3RleHQgc2VhcmNoIHRlbXBsYXRlJyksICgndGV4dCBzZWFyY2ggY29uZmlndXJh dGlvbicpLAogICAgICAgICAoJ3BvbGljeScpLCAoJ3VzZXIgbWFwcGluZycpLCAoJ2RlZmF1 bHQgYWNsJyksICgndHJhbnNmb3JtJyksCiAgICAgICAgICgnb3BlcmF0b3Igb2YgYWNjZXNz IG1ldGhvZCcpLCAoJ2Z1bmN0aW9uIG9mIGFjY2VzcyBtZXRob2QnKSwKLSAgICAgICAgKCdw dWJsaWNhdGlvbiBuYW1lc3BhY2UnKSwgKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpCisgICAg ICAgICgncHVibGljYXRpb24gbmFtZXNwYWNlJyksICgncHVibGljYXRpb24gcmVsYXRpb24n KSwKKyAgICAgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknKSwgKCdjb2x1bW4gZW5jcnlw dGlvbiBrZXkgZGF0YScpLCAoJ2NvbHVtbiBtYXN0ZXIga2V5JykKICAgICBMT09QCiAgICAg ICAgIEZPUiBuYW1lcyBJTiBWQUxVRVMgKCd7ZWluc30nKSwgKCd7YWRkcl9uc3AsIHp3ZWl9 JyksICgne2VpbnMsIHp3ZWksIGRyZWl9JykKICAgICAgICAgTE9PUApAQCAtMTQ0LDYgKzE0 NywxMCBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEs IGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJl c3MoJ3B1YmxpY2F0aW9uJywgJ3tvbmUsdHdvfScsICd7fScpOwogU0VMRUNUIHBnX2dldF9v YmplY3RfYWRkcmVzcygnc3Vic2NyaXB0aW9uJywgJ3tvbmV9JywgJ3t9Jyk7CiBTRUxFQ1Qg cGdfZ2V0X29iamVjdF9hZGRyZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZSx0d299JywgJ3t9 Jyk7CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBr ZXknLCAne29uZX0nLCAne30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2Nv bHVtbiBlbmNyeXB0aW9uIGtleScsICd7b25lLHR3b30nLCAne30nKTsKK1NFTEVDVCBwZ19n ZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9Jyk7 CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7 b25lLHR3b30nLCAne30nKTsKIAogLS0gTWFrZSBzdXJlIHRoYXQgTlVMTCBoYW5kbGluZyBp cyBjb3JyZWN0LgogXHBzZXQgbnVsbCAnTlVMTCcKQEAgLTE3NCw2ICsxODEsOSBAQCBDUkVB VEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRy X25zcC5nZW50YWJsZTsKICAgICAoJ3R5cGUnLCAne2FkZHJfbnNwLmdlbmVudW19JywgJ3t9 JyksCiAgICAgKCdjYXN0JywgJ3tpbnQ4fScsICd7aW50NH0nKSwKICAgICAoJ2NvbGxhdGlv bicsICd7ZGVmYXVsdH0nLCAne30nKSwKKyAgICAoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScs ICd7YWRkcl9jZWt9JywgJ3t9JyksCisgICAgKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0 YScsICd7YWRkcl9jZWt9JywgJ3thZGRyX2Nta30nKSwKKyAgICAoJ2NvbHVtbiBtYXN0ZXIg a2V5JywgJ3thZGRyX2Nta30nLCAne30nKSwKICAgICAoJ3RhYmxlIGNvbnN0cmFpbnQnLCAn e2FkZHJfbnNwLCBnZW50YWJsZSwgYV9jaGt9JywgJ3t9JyksCiAgICAgKCdkb21haW4gY29u c3RyYWludCcsICd7YWRkcl9uc3AuZ2VuZG9tYWlufScsICd7ZG9tY29uc3RyfScpLAogICAg ICgnY29udmVyc2lvbicsICd7cGdfY2F0YWxvZywga29pOF9yX3RvX21pY30nLCAne30nKSwK QEAgLTIyOCw2ICsyMzgsOCBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJs ZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKIERST1AgUFVCTElDQVRJ T04gYWRkcl9wdWI7CiBEUk9QIFBVQkxJQ0FUSU9OIGFkZHJfcHViX3NjaGVtYTsKIERST1Ag U1VCU0NSSVBUSU9OIHJlZ3Jlc3NfYWRkcl9zdWI7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBhZGRyX2NlazsKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgYWRkcl9jbWs7CiAKIERS T1AgU0NIRU1BIGFkZHJfbnNwIENBU0NBREU7CiAKQEAgLTI0Nyw2ICsyNTksOSBAQCBDUkVB VEUgU1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRy X25zcC5nZW50YWJsZTsKICAgICAoJ3BnX3R5cGUnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IHR5cGUKICAgICAoJ3BnX2Nhc3QnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNhc3QKICAg ICAoJ3BnX2NvbGxhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sbGF0aW9uCisg ICAgKCdwZ19jb2xlbmNrZXknOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbHVtbiBlbmNy eXB0aW9uIGtleQorICAgICgncGdfY29sZW5ja2V5ZGF0YSc6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEKKyAgICAoJ3BnX2NvbG1hc3Rlcmtl eSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIG1hc3RlciBrZXkKICAgICAoJ3Bn X2NvbnN0cmFpbnQnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbnN0cmFpbnQKICAgICAo J3BnX2NvbnZlcnNpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbnZlcnNpb24KICAg ICAoJ3BnX2F0dHJkZWYnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGRlZmF1bHQgYXR0cmli dXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCmluZGV4IGM2MDk4ZGM5NWNlZS4uN2Ri Nzg4NzM1YzdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbApAQCAtNzUsNyArNzUs NyBAQCBDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIHE1X3ByZXBfbm9kYXRhIEFTIEVYRUNVVEUg cTUoMjAwLCAnRFRBQUFBJykKIFBSRVBBUkUgcTggQVMKICAgICBVUERBVEUgdGVuazEgU0VU IHN0cmluZ3UxID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOwogCi1TRUxFQ1QgbmFtZSwgc3Rh dGVtZW50LCBwYXJhbWV0ZXJfdHlwZXMsIHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVk X3N0YXRlbWVudHMKK1NFTEVDVCBuYW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywg cGFyYW1ldGVyX29yaWdfdGFibGVzLCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zLCByZXN1bHRf dHlwZXMgRlJPTSBwZ19wcmVwYXJlZF9zdGF0ZW1lbnRzCiAgICAgT1JERVIgQlkgbmFtZTsK IAogLS0gdGVzdCBERUFMTE9DQVRFIEFMTDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3R5cGVfc2FuaXR5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2Fu aXR5LnNxbAppbmRleCA1ZWRjMWYxZjZlZDAuLjBmZmU0NWZkMzcwNyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbApAQCAtNTI5LDYgKzUyOSw4IEBAIENSRUFURSBU QUJMRSB0YWJfY29yZV90eXBlcyBBUyBTRUxFQ1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6 OmJvb2wsCiAgIEUnXFx4REVBREJFRUYnOjpieXRlYSwKKyAgRSdcXHhERUFEQkVFRic6OnBn X2VuY3J5cHRlZF9ybmQsCisgIEUnXFx4REVBREJFRUYnOjpwZ19lbmNyeXB0ZWRfZGV0LAog ICBCJzEwMDAxJzo6Yml0LAogICBCJzEwMDAxJzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEy LjM0Jzo6bW9uZXksCgpiYXNlLWNvbW1pdDogY2JlNmU0ODJkN2JmODUxYzZlNDY2Njk3YTIx ZGNlZjdiMDVjYmI1OQotLSAKMi4zOC4xCgo= --------------MxlLUJPiXksw7b2Q3JWaDAH3--