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 1oSzXK-00010Z-EI for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Aug 2022 11:36:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oSzXI-0006hN-Qf for pgsql-hackers@arkaria.postgresql.org; Tue, 30 Aug 2022 11:36:04 +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 1oSzXI-0006hE-2p for pgsql-hackers@lists.postgresql.org; Tue, 30 Aug 2022 11:36:04 +0000 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oSzX5-0007FA-Qa for pgsql-hackers@postgresql.org; Tue, 30 Aug 2022 11:36:03 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id BC5BD320099A for ; Tue, 30 Aug 2022 07:35:47 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Tue, 30 Aug 2022 07:35:47 -0400 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=1661859347; x=1661945747; bh=DhUXv8cNa9pOgb8Y70nJlN2R6AcN nFYkO8VOzRugafk=; b=bIZsps+i2qrlPDU3vk/ApjaRVxqhe+2sOT5trg1P/5eU J2nSBG+pWX84D645V62cBr7/Yr8tbNXeIRBuMnzebJfHAmpVhyFJ/8EHCmvmnv9K nhxkJVTUsNBWmdDvsdOlxT29WoqyJDsWswR7eR1Q0nEflY1EgwrJFJsdqO8fz/4I bWmf11WoLYb7wZp2r2rMujm0O49htjkFlX4UHeUwR+XqIvyjLuuMKy2aeQtCDUtd dtUfyHckm3/OClrE4P3nBgfEBhbp3c0HIMeZ8MutWVd7VK+8UB2hQXJ+aXQgkIy8 +j7l6FHzF6BxUpFjrUzHvZAtdFvNwn7mGReSywgn6Q== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdekfedggeefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertdefjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdr vghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomheqnecuggftrfgrth htvghrnhepkeetteefheevhfdvledtfeegleeutdekkeekveeifeeuffevjeeujeehffej ieejnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepph gvthgvrhdrvghishgvnhhtrhgruhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 30 Aug 2022 07:35:45 -0400 (EDT) Content-Type: multipart/mixed; boundary="------------Sqf0NHwuGJ8PX7xbrTHUUQ0y" Message-ID: Date: Tue, 30 Aug 2022 13:35:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.13.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> In-Reply-To: List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------Sqf0NHwuGJ8PX7xbrTHUUQ0y Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Here is an updated patch. I mainly spent time on adding a full set of DDL commands for the keys. This made the patch very bulky now, but there is not really anything surprising in there. It probably needs another check of permission handling etc., but it's got everything there to try it out. Along with the DDL commands, the pg_dump side is now fully implemented. Secondly, I isolated the protocol changes into a protocol extension with the name _pq_.column_encryption. So by default there are no protocol changes and this feature is disabled. AFAICT, we haven't actually ever used the _pq_ protocol extension mechanism, so it would be good to review whether this was done here in the intended way. At this point, the patch is sort of feature complete, meaning it has all the concepts, commands, and interfaces that I had in mind. I have a long list of things to recheck and tighten up, based on earlier feedback and some things I found along the way. But I don't currently plan any more major architectural or design changes, pending feedback. (Also, the patch is now very big, so anything additional might be better for a future separate patch.) --------------Sqf0NHwuGJ8PX7xbrTHUUQ0y Content-Type: text/plain; charset=UTF-8; name="v6-0001-Transparent-column-encryption.patch" Content-Disposition: attachment; filename="v6-0001-Transparent-column-encryption.patch" Content-Transfer-Encoding: base64 RnJvbSA3ZWYyMDU4Nzk5YjI5ODYwYjhhOTdjOWEzNWJiMTZiMGUwZjU3NThkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAzMCBBdWcgMjAyMiAxMzoxMToxNyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjZdIFRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uCgpUaGlzIGZlYXR1 cmUgZW5hYmxlcyB0aGUgYXV0b21hdGljLCB0cmFuc3BhcmVudCBlbmNyeXB0aW9uIGFuZApk ZWNyeXB0aW9uIG9mIHBhcnRpY3VsYXIgY29sdW1ucyBpbiB0aGUgY2xpZW50LiAgVGhlIGRh dGEgZm9yIHRob3NlCmNvbHVtbnMgdGhlbiBvbmx5IGV2ZXIgYXBwZWFycyBpbiBjaXBoZXJ0 ZXh0IG9uIHRoZSBzZXJ2ZXIsIHNvIGl0IGlzCnByb3RlY3RlZCBmcm9tIERCQXMsIHN5c2Fk bWlucywgY2xvdWQgb3BlcmF0b3JzLCBldGMuIGFzIHdlbGwgYXMKYWNjaWRlbnRhbCBsZWFr YWdlIHRvIHNlcnZlciBsb2dzLCBmaWxlLXN5c3RlbSBiYWNrdXBzLCBldGMuICBUaGUKY2Fu b25pY2FsIHVzZSBjYXNlIGZvciB0aGlzIGZlYXR1cmUgaXMgc3RvcmluZyBjcmVkaXQgY2Fy ZCBudW1iZXJzCmVuY3J5cHRlZCwgaW4gYWNjb3JkYW5jZSB3aXRoIFBDSSBEU1MsIGFzIHdl bGwgYXMgc2ltaWxhciBzaXR1YXRpb25zCmludm9sdmluZyBzb2NpYWwgc2VjdXJpdHkgbnVt YmVycyBldGMuICBPbmUgY2FuJ3QgZG8gYW55IGNvbXB1dGF0aW9ucwp3aXRoIGVuY3J5cHRl ZCB2YWx1ZXMgb24gdGhlIHNlcnZlciwgYnV0IGZvciB0aGVzZSB1c2UgY2FzZXMsIHRoYXQg aXMKbm90IG5lY2Vzc2FyeS4gIFRoaXMgZmVhdHVyZSBkb2VzIHN1cHBvcnQgZGV0ZXJtaW5p c3RpYyBlbmNyeXB0aW9uIGFzCmFuIGFsdGVybmF0aXZlIHRvIHRoZSBkZWZhdWx0IHJhbmRv bWl6ZWQgZW5jcnlwdGlvbiwgc28gaW4gdGhhdCBtb2RlCm9uZSBjYW4gZG8gZXF1YWxpdHkg bG9va3VwcywgYXQgdGhlIGNvc3Qgb2Ygc29tZSBzZWN1cml0eS4KClRoaXMgZnVuY3Rpb25h bGl0eSBhbHNvIGV4aXN0cyBpbiBvdGhlciBkYXRhYmFzZSBwcm9kdWN0cywgYW5kIHRoZQpv dmVyYWxsIGNvbmNlcHRzIHdlcmUgbW9zdGx5IGFkb3B0ZWQgZnJvbSB0aGVyZS4KCihOb3Rl OiBUaGlzIGZlYXR1cmUgaGFzIG5vdGhpbmcgdG8gZG8gd2l0aCBhbnkgb24tZGlzayBlbmNy eXB0aW9uCmZlYXR1cmUuICBCb3RoIGNhbiBleGlzdCBpbmRlcGVuZGVudGx5LikKCllvdSBk ZWNsYXJlIGEgY29sdW1uIGFzIGVuY3J5cHRlZCBpbiBhIENSRUFURSBUQUJMRSBzdGF0ZW1l bnQuICBUaGUKY29sdW1uIHZhbHVlIGlzIGVuY3J5cHRlZCBieSBhIHN5bW1ldHJpYyBrZXkg Y2FsbGVkIHRoZSBjb2x1bW4KZW5jcnlwdGlvbiBrZXkgKENFSykuICBUaGUgQ0VLIGlzIGEg Y2F0YWxvZyBvYmplY3QuICBUaGUgQ0VLIGtleQptYXRlcmlhbCBpcyBpbiB0dXJuIGVuY3J5 cHRlZCBieSBhbiBhc3N5bW1ldHJpYyBrZXkgY2FsbGVkIHRoZSBjb2x1bW4KbWFzdGVyIGtl eSAoQ01LKS4gIFRoZSBDTUsgaXMgbm90IHN0b3JlZCBpbiB0aGUgZGF0YWJhc2UgYnV0IHNv bWV3aGVyZQp3aGVyZSB0aGUgY2xpZW50IGNhbiBnZXQgdG8gaXQsIGZvciBleGFtcGxlIGlu IGEgZmlsZSBvciBpbiBhIGtleQptYW5hZ2VtZW50IHN5c3RlbS4gIFdoZW4gYSBzZXJ2ZXIg c2VuZHMgcm93cyBjb250YWluaW5nIGVuY3J5cHRlZApjb2x1bW4gdmFsdWVzIHRvIHRoZSBj bGllbnQsIGl0IGZpcnN0IHNlbmRzIHRoZSByZXF1aXJlZCBDTUsgYW5kIENFSwppbmZvcm1h dGlvbiAobmV3IHByb3RvY29sIG1lc3NhZ2VzKSwgd2hpY2ggdGhlIGNsaWVudCBuZWVkcyB0 byByZWNvcmQuClRoZW4sIHRoZSBjbGllbnQgY2FuIHVzZSB0aGlzIGluZm9ybWF0aW9uIHRv IGF1dG9tYXRpY2FsbHkgZGVjcnlwdCB0aGUKaW5jb21pbmcgcm93IGRhdGEgYW5kIGZvcndh cmQgaXQgaW4gcGxhaW50ZXh0IHRvIHRoZSBhcHBsaWNhdGlvbi4KCkZvciB0aGUgQ01Lcywg bGlicHEgaGFzIGEgbmV3IGNvbm5lY3Rpb24gcGFyYW1ldGVyICJjbWtsb29rdXAiIHRoYXQK c3BlY2lmaWVzIHZpYSBhIG1pbmktbGFuZ3VhZ2Ugd2hlcmUgdG8gZ2V0IHRoZSBrZXlzLiAg UmlnaHQgbm93LCB5b3UKY2FuIHVzZSAiZmlsZSIgdG8gcmVhZCBpdCBmcm9tIGEgZmlsZSwg b3IgInJ1biIgdG8gcnVuIHNvbWUgcHJvZ3JhbSwKd2hpY2ggY291bGQgZ2V0IGl0IGZyb20g YSBLTVMuCgpUaGUgZ2VuZXJhbCBpZGVhIHdvdWxkIGJlIGZvciBhbiBhcHBsaWNhdGlvbiB0 byBoYXZlIG9uZSBDTUsgcGVyIGFyZWEKb2Ygc2VjcmV0IHN0dWZmLCBmb3IgZXhhbXBsZSwg Zm9yIGNyZWRpdCBjYXJkIGRhdGEuICBUaGUgQ01LIGNhbiBiZQpyb3RhdGVkOiBlYWNoIENF SyBjYW4gYmUgcmVwcmVzZW50ZWQgbXVsdGlwbGUgdGltZXMgaW4gdGhlIGRhdGFiYXNlLApl bmNyeXB0ZWQgYnkgYSBkaWZmZXJlbnQgQ01LLiAgKFRoZSBDRUsgY2FuJ3QgYmUgcm90YXRl ZCBlYXNpbHksIHNpbmNlCnRoYXQgd291bGQgcmVxdWlyZSByZWFkaW5nIG91dCBhbGwgdGhl IGRhdGEgZnJvbSBhIHRhYmxlL2NvbHVtbiBhbmQKcmVlbmNyeXB0aW5nIGl0LiAgV2UgY291 bGQvc2hvdWxkIGFkZCBzb21lIGN1c3RvbSB0b29saW5nIGZvciB0aGF0LApidXQgaXQgd291 bGRuJ3QgYmUgYSByb3V0aW5lIG9wZXJhdGlvbi4pCgpTZXZlcmFsIGVuY3J5cHRpb24gYWxn b3JpdGhtcyBhcmUgcHJvdmlkZWQuICBUaGUgQ01LIHByb2Nlc3MgdXNlcwpQR19DTUtfUlNB RVNfT0FFUF9TSEFfMSBvciBfMjU2LiAgVGhlIENFSyBwcm9jZXNzIHVzZXMKQUVBRF9BRVNf Kl9DQkNfSE1BQ19TSEFfKiB3aXRoIHNldmVyYWwgc3RyZW5ndGhzLgoKSW4gdGhlIHNlcnZl ciwgdGhlIGVuY3J5cHRlZCBkYXR1bXMgYXJlIHN0b3JlZCBpbiB0eXBlcyBjYWxsZWQKcGdf ZW5jcnlwdGVkX3JuZCBhbmQgcGdfZW5jcnlwdGVkX2RldCAoZm9yIHJhbmRvbWl6ZWQgYW5k CmRldGVybWluaXN0aWMgZW5jcnlwdGlvbikuICBUaGVzZSBhcmUgZXNzZW50aWFsbHkgY291 c2lucyBvZiBieXRlYS4KRm9yIHRoZSByZXN0IG9mIHRoZSBkYXRhYmFzZSBzeXN0ZW0gYmVs b3cgdGhlIHByb3RvY29sIGhhbmRsaW5nLCB0aGVyZQppcyBub3RoaW5nIHNwZWNpYWwgYWJv dXQgdGhvc2UuICBGb3IgZXhhbXBsZSwgcGdfZW5jcnlwdGVkX3JuZCBoYXMgbm8Kb3BlcmF0 b3JzIGF0IGFsbCwgcGdfZW5jcnlwdGVkX2RldCBoYXMgb25seSBhbiBlcXVhbGl0eSBvcGVy YXRvci4KcGdfYXR0cmlidXRlIGhhcyBhIG5ldyBjb2x1bW4gYXR0cmVhbHR5cGlkIHRoYXQg c3RvcmVzIHRoZSBvcmlnaW5hbAp0eXBlIG9mIHRoZSBkYXRhIGluIHRoZSBjb2x1bW4uICBU aGlzIGlzIG9ubHkgdXNlZCBmb3IgcHJvdmlkaW5nIGl0IHRvCmNsaWVudHMsIHNvIHRoYXQg aGlnaGVyLWxldmVsIGNsaWVudHMgY2FuIGNvbnZlcnQgdGhlIGRlY3J5cHRlZCB2YWx1ZQp0 byB0aGVpciBhcHByb3ByaWF0ZSBkYXRhIHR5cGVzIGluIHRoZWlyIGVudmlyb25tZW50cy4K ClRoZSBwcm90b2NvbCBleHRlbnNpb25zIGFyZSBndWFyZGVkIGJ5IGEgbmV3IHByb3RvY29s IGV4dGVuc2lvbiBvcHRpb24KIl9wcV8uY29sdW1uX2VuY3J5cHRpb24iLiAgSWYgdGhpcyBp cyBub3Qgc2V0LCBub3RoaW5nIGNoYW5nZXMsIHRoZQpwcm90b2NvbCBzdGF5cyB0aGUgc2Ft ZSwgYW5kIG5vIGVuY3J5cHRpb24gb3IgZGVjcnlwdGlvbiBoYXBwZW5zLgoKVGhlIHRyaWNr aWVzdCBwYXJ0IG9mIHRoaXMgd2hvbGUgdGhpbmcgYXBwZWFycyB0byBiZSBob3cgdG8gZ2V0 CnRyYW5zcGFyZW50bHkgZW5jcnlwdGVkIGRhdGEgaW50byB0aGUgZGF0YWJhc2UgKGFzIG9w cG9zZWQgdG8gcmVhZGluZwppdCBvdXQpLiAgSXQgaXMgcmVxdWlyZWQgdG8gdXNlIHByb3Rv Y29sLWxldmVsIHByZXBhcmVkIHN0YXRlbWVudHMKKGkuZS4sIGV4dGVuZGVkIHF1ZXJ5KSBm b3IgdGhpcy4gIFRoZSBjbGllbnQgbXVzdCBmaXJzdCBwcmVwYXJlIGEKc3RhdGVtZW50LCB0 aGVuIGRlc2NyaWJlIHRoZSBzdGF0ZW1lbnQgdG8gZ2V0IHBhcmFtZXRlciBtZXRhZGF0YSwK d2hpY2ggaW5kaWNhdGVzIHdoaWNoIHBhcmFtZXRlcnMgYXJlIHRvIGJlIGVuY3J5cHRlZCBh bmQgaG93LiAgU28gdGhpcwp3aWxsIHJlcXVpcmUgc29tZSBjYXJlIGJ5IGFwcGxpY2F0aW9u cyB0aGF0IHdhbnQgdG8gZG8gdGhpcywgYnV0LAp3ZWxsLCB0aGV5IHByb2JhYmx5IHNob3Vs ZCBiZSBjYXJlZnVsIGFueXdheS4gIEluIGxpYnBxLCB0aGUgZXhpc3RpbmcKQVBJcyBtYWtl IHRoaXMgZGlmZmljdWx0LCBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBwYXNzIHRoZSBy ZXN1bHQKb2YgYSBkZXNjcmliZS1zdGF0ZW1lbnQgY2FsbCBiYWNrIGludG8KZXhlY3V0ZS1z dGF0ZW1lbnQtd2l0aC1wYXJhbWV0ZXJzLiAgSSBhZGRlZCBuZXcgZnVuY3Rpb25zIHRoYXQg ZG8KdGhpcywgc28geW91IHRoZW4gZXNzZW50aWFsbHkgZG8KCiAgICByZXMwID0gUFFkZXNj cmliZVByZXBhcmVkKGNvbm4sICIiKTsKICAgIHJlcyA9IFBRZXhlY1ByZXBhcmVkMihjb25u LCAiIiwgMiwgdmFsdWVzLCBOVUxMLCBOVUxMLCAwLCByZXMwKTsKCihUaGUgbmFtZSBjb3Vs ZCBvYnZpb3VzbHkgYmUgaW1wcm92ZWQuKSAgT3RoZXIgY2xpZW50IEFQSXMgdGhhdCBoYXZl IGEKInN0YXRlbWVudCBoYW5kbGUiIGNvbmNlcHQgY291bGQgZG8gdGhpcyBtb3JlIGVsZWdh bnRseSBhbmQgcHJvYmFibHkKd2l0aG91dCBhbnkgQVBJIGNoYW5nZXMuCgpBbm90aGVyIGNo YWxsZW5nZSBpcyB0aGF0IHRoZSBwYXJzZSBhbmFseXNpcyBtdXN0IGNoZWNrIHdoaWNoCnVu ZGVybHlpbmcgY29sdW1uIGEgcGFyYW1ldGVyIGNvcnJlc3BvbmRzIHRvLiAgVGhpcyBpcyBz aW1pbGFyIHRvCnJlc29yaWd0YmwgYW5kIHJlc29yaWdjb2wgaW4gdGhlIG9wcG9zaXRlIGRp cmVjdGlvbi4gIFRoZSBjdXJyZW50CmltcGxlbWVudGF0aW9uIG9mIHRoaXMgd29ya3MgZm9y IHRoZSB0ZXN0IGNhc2VzLCBidXQgSSBrbm93IGl0IGhhcwpzb21lIHByb2JsZW1zLCBzbyBJ J2xsIGNvbnRpbnVlIHdvcmtpbmcgaW4gdGhpcy4gIFRoaXMgZnVuY3Rpb25hbGl0eQppcyBp biBwcmluY2lwbGUgYXZhaWxhYmxlIHRvIGFsbCBwcmVwYXJlZC1zdGF0ZW1lbnQgdmFyaWFu dHMsIG5vdCBvbmx5CnByb3RvY29sLWxldmVsLiAgU28geW91IGNhbiBzZWUgaW4gdGhlIHRl c3RzIHRoYXQgSSBleHBhbmRlZCB0aGUKcGdfcHJlcGFyZWRfc3RhdGVtZW50cyB2aWV3IHRv IHNob3cgdGhpcyBpbmZvcm1hdGlvbiBhcyB3ZWxsLCB3aGljaAphbHNvIHByb3ZpZGVzIGFu IGVhc3kgd2F5IHRvIHRlc3QgYW5kIGRlYnVnIHRoaXMgZnVuY3Rpb25hbGl0eQppbmRlcGVu ZGVudCBvZiBjb2x1bW4gZW5jcnlwdGlvbi4KCnBzcWwgZG9lc24ndCB1c2UgcHJlcGFyZWQg c3RhdGVtZW50cywgc28gd3JpdGluZyBpbnRvIGVuY3J5cHRlZApjb2x1bW5zIHdvdWxkbid0 IHdvcmsgYXQgYWxsIHZpYSBwc3FsLiAgKFJlYWRpbmcgd29ya3Mgbm8KcHJvYmxlbS4pICBJ IGFkZGVkIGEgbmV3IHBzcWwgY29tbWFuZCBcZ2VuY3IgdGhhdCB5b3UgY2FuIHVzZSBsaWtl CgpJTlNFUlQgSU5UTyB0MSBWQUxVRVMgKCQxLCAkMikgXGdlbmNyICd2YWwxJyAndmFsMicK ClRPRE86IFRoaXMgcGF0Y2ggdmVyc2lvbiBoYXMgYWxsIHRoZSBuZWNlc3NhcnkgcGllY2Vz IGluIHBsYWNlIHRvIG1ha2UKdGhpcyB3b3JrLCBzbyB5b3UgY2FuIGhhdmUgYW4gaWRlYSBo b3cgdGhlIG92ZXJhbGwgc3lzdGVtIHdvcmtzLiAgSXQKY29udGFpbnMgc29tZSBkb2N1bWVu dGF0aW9uIGFuZCB0ZXN0cyB0byBoZWxwIGlsbHVzdHJhdGUgdGhlCmZ1bmN0aW9uYWxpdHku ICBNaXNzaW5nOgoKLSBwc3FsIFxkIHN1cHBvcnQKCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3 LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxhdC84OTE1NzkyOS1jMmI2LTgxN2ItNjAy NS04ZTRiMmQ4OWQ4OGYlNDBlbnRlcnByaXNlZGIuY29tCi0tLQogZG9jL3NyYy9zZ21sL2Fj cm9ueW1zLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE4ICsKIGRvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8IDI3NSArKysrKysrCiBkb2Mvc3Jj L3NnbWwvZGF0YXR5cGUuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgNDcgKysKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDM3OSArKysrKysr KysKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAy MyArCiBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgfCAy ODAgKysrKysrLQogZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgICAgICAgICAgICAgICAg ICAgIHwgMzkyICsrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAg ICAgICAgICAgICAgIHwgICA2ICsKIC4uLi9zZ21sL3JlZi9hbHRlcl9jb2x1bW5fZW5jcnlw dGlvbl9rZXkuc2dtbCB8IDE4NiArKysrKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9jb2x1 bW5fbWFzdGVyX2tleS5zZ21sIHwgMTE3ICsrKwogLi4uL3JlZi9jcmVhdGVfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwgICAgIHwgMTYzICsrKysKIC4uLi9zZ21sL3JlZi9jcmVhdGVf Y29sdW1uX21hc3Rlcl9rZXkuc2dtbCAgICB8IDEwNiArKysKIGRvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8ICA0MiArLQogLi4uL3NnbWwvcmVmL2Ry b3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwgIHwgMTEyICsrKwogZG9jL3NyYy9zZ21s L3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgIHwgMTEyICsrKwogZG9jL3NyYy9z Z21sL3JlZi9wZ19kdW1wLnNnbWwgICAgICAgICAgICAgICAgIHwgIDMxICsKIGRvYy9zcmMv c2dtbC9yZWYvcGdfZHVtcGFsbC5zZ21sICAgICAgICAgICAgICB8ICAyNyArCiBkb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgMzMgKwogZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy90 ZXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vLmdpdGlnbm9yZSAgICAgICAgIHwgICAzICsKIHNy Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlICAgICAgICAgICB8ICAyOSArCiAu Li4vdC8wMDFfY29sdW1uX2VuY3J5cHRpb24ucGwgICAgICAgICAgICAgICAgfCAxODMgKysr KysKIC4uLi9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwgICB8IDEw OCArKysKIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMgICAgICB8 IDIxMCArKysrKwogLi4uL2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwg ICAgIHwgIDQxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91 dCAgICB8IDExNSArKysKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2JqZWN0X2FkZHJl c3Mub3V0ICB8ICA0NyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5v dXQgICAgICAgIHwgICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0 eS5vdXQgICAgICB8ICAxMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJl Lm91dCAgICAgICAgIHwgIDM4ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0ICAgICAgICAgICAgfCAgMjUgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxl cy5vdXQgICAgICAgICAgIHwgICA0ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5 cGVfc2FuaXR5Lm91dCAgICAgfCAgNDYgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUgICAgICAgICAgICB8ICAgMyArCiBzcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jl c3NfbWFpbi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nv bHVtbl9lbmNyeXB0aW9uLnNxbCAgICB8IDEwNyArKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L29iamVjdF9hZGRyZXNzLnNxbCAgICAgICB8ICAxOCArLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHJlcGFyZS5zcWwgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9wc3FsLnNxbCAgICAgICAgICAgICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvdHlwZV9zYW5pdHkuc3FsICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2Fj Y2Vzcy9wcmludHR1cC5oICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL2RlcGVuZGVuY3kuaCAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hbW9wLmRhdCAgICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oICAgICAgICAgICAgfCAgIDkgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5LmggICAgICAgICAgICB8ICA1NSArKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmggICAgICAgIHwgIDQ2ICsrCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oICAgICAgICAgfCAgNDUgKwogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdCAgICAgICAgICAgIHwgICAyICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0ICAgICAgICAgICB8ICAxMCArCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZmFtaWx5LmRhdCAgICAgICAgICAgfCAgIDIgKwog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDEzICst CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5cGUuZGF0ICAgICAgICAgICAgICAgfCAgMTIg Kwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmggICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaCAgICAgICAgICAgICB8ICAy NSArCiBzcmMvaW5jbHVkZS9saWJwcS9saWJwcS1iZS5oICAgICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwg IDE2ICsKIHNyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmggICAgICAgICAgICAgICAgICB8 ICAgNCArLQogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAg IHwgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcGFyYW0uaCAgICAgICAgICAg ICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICAgICAg ICAgICB8ICAgNiArCiBzcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmggICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmggICAgICAgICAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAg ICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaCAgICAgICAg ICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaCAgICAgICAg ICAgICAgICAgIHwgICA2ICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1w bGUuYyAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3ByaW50dHVw LmMgICAgICAgICAgfCAxOTEgKysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vdHVw ZGVzYy5jICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNo dmFsaWRhdGUuYyAgICAgICAgfCAgIDIgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZp bGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xj aGsuYyAgICAgICAgICAgICAgICAgIHwgIDYyICsrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2Rl cGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgMTggKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9o ZWFwLmMgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cv b2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8IDE4MyArKysrKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9jb2xlbmNjbWRzLmMgICAgICAgICAgICAgfCAzNjEgKysrKysrKysrCiBzcmMv YmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgICAgICAgICAgfCAgIDkgKwogc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAgICAgICAgICAgICAgIHwgIDc0ICstCiBz cmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAgIDIgKwog c3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDgzICsr CiBzcmMvYmFja2VuZC9jb21tYW5kcy92YXJpYWJsZS5jICAgICAgICAgICAgICAgfCAgIDcg Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAg NCArCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwg ICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAg fCAxMTkgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcGFyYW0uYyAgICAgICAgICAg ICAgfCAgNDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAg ICAgICB8ICAgNiArCiBzcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuYyAgICAg ICAgICAgfCAgMTkgKy0KIHNyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYyAgICAgICAgICAg ICAgICAgICB8ICA1NyArLQogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAg ICAgICAgICAgIHwgIDQyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5j ICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hl LmMgICAgICAgICAgIHwgIDkzICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNh Y2hlLmMgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2Nh Y2hlLmMgICAgICAgICAgICB8ICA1OCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGls cy5jICAgICAgICAgICAgICAgIHwgIDE4ICstCiBzcmMvYmluL3BnX2R1bXAvY29tbW9uLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgNCArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2RiLmMgICAgICAgICAgICAgICAgfCAgIDkgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDM1MCArKysrKysrLQogc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDMxICsKIHNyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAxNCArCiBzcmMvYmluL3Bn X2R1bXAvcGdfZHVtcGFsbC5jICAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDU2ICstCiBzcmMvYmlu L3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzEgKwogc3JjL2Jp bi9wc3FsL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDM5ICstCiBzcmMv YmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjkgKy0KIHNy Yy9iaW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvc2V0dGluZ3MuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwog c3JjL2Jpbi9wc3FsL3N0YXJ0dXAuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsK IHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAgICAgICAgICAgICAgICAgICB8ICA1MSAr LQogc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0ICAgICAgICAgICAgICB8ICAg NCArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgICAgICAgICAgICAgfCAg MzggKy0KIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jICAgICB8 IDc2NiArKysrKysrKysrKysrKysrKysKIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5 cHQuaCAgICAgICAgICAgICB8ICAzMyArCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVj LmMgICAgICAgICAgICAgICAgfCA1OTIgKysrKysrKysrKysrKy0KIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLXByb3RvY29sMy5jICAgICAgICAgICB8IDE4MCArKystCiBzcmMvaW50ZXJm YWNlcy9saWJwcS9mZS10cmFjZS5jICAgICAgICAgICAgICAgfCAgMzEgKy0KIHNyYy9pbnRl cmZhY2VzL2xpYnBxL2xpYnBxLWZlLmggICAgICAgICAgICAgICB8ICAyMiArCiBzcmMvaW50 ZXJmYWNlcy9saWJwcS9saWJwcS1pbnQuaCAgICAgICAgICAgICAgfCAgMzcgKwogc3JjL2lu dGVyZmFjZXMvbGlicHEvbmxzLm1rICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMv aW50ZXJmYWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUgICAgICAgICAgfCAgIDEgKwogc3Jj L2ludGVyZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZSAgICAgICAgICAgIHwgICA3ICsKIC4u Li9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dCAgICB8ICAgMiArLQog MTMwIGZpbGVzIGNoYW5nZWQsIDczOTUgaW5zZXJ0aW9ucygrKSwgMTQ1IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2Vu Y3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbAogY3JlYXRl IG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5 LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1u X2VuY3J5cHRpb25fa2V5LnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9u LnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdC8w MDJfY21rX3JvdGF0aW9uLnBsCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvY29sdW1u X2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYwogY3JlYXRlIG1vZGUgMTAwNzU1IHNyYy90ZXN0 L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvbHVtbl9lbmNyeXB0aW9uLm91dAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NvbHVtbl9lbmNyeXB0 aW9uLnNxbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29s ZW5ja2V5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bGVuY2tleWRhdGEuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29sbWFzdGVya2V5LmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21t YW5kcy9jb2xlbmNjbWRzLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jb21t YW5kcy9jb2xlbmNjbWRzLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1lbmNyeXB0LW9wZW5zc2wuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbnRl cmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9h Y3Jvbnltcy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKaW5kZXggMmRmNjU1 OWFjYy4uYmQxYTAxODVlZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL2Fjcm9ueW1zLnNnbWwKQEAgLTU2LDYgKzU2LDE1IEBA IDx0aXRsZT5BY3JvbnltczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxhY3JvbnltPkNFSzwv YWNyb255bT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIENv bHVtbiBFbmNyeXB0aW9uIEtleQorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxhY3Jv bnltPkNJRFI8L2Fjcm9ueW0+PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KQEAgLTY3LDYgKzc2 LDE1IEBAIDx0aXRsZT5BY3JvbnltczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwv dmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxhY3Jvbnlt PkNNSzwvYWNyb255bT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIENvbHVtbiBNYXN0ZXIgS2V5CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGFj cm9ueW0+Q1BBTjwvYWNyb255bT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCAwMGY4MzNkMjEwLi42MzhiZTFjODUwIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMTA1LDYgKzEwNSwyMSBAQCA8dGl0bGU+U3lzdGVtIENhdGFsb2dzPC90aXRsZT4KICAg ICAgIDxlbnRyeT5jb2xsYXRpb25zIChsb2NhbGUgaW5mb3JtYXRpb24pPC9lbnRyeT4KICAg ICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWNvbGVuY2tleSI+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3Ru YW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PmNvbHVtbiBlbmNyeXB0aW9uIGtl eXM8L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5Pjxs aW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5ZGF0YSI+PHN0cnVjdG5hbWU+cGdf Y29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5jb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YTwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb2xt YXN0ZXJrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L2xp bms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5jb2x1bW4gbWFzdGVyIGtleXM8L2VudHJ5Pgor ICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctY29uc3RyYWludCI+PHN0cnVjdG5hbWU+cGdfY29uc3RyYWludDwvc3Ry dWN0bmFtZT48L2xpbms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5jaGVjayBjb25zdHJhaW50 cywgdW5pcXVlIGNvbnN0cmFpbnRzLCBwcmltYXJ5IGtleSBjb25zdHJhaW50cywgZm9yZWln biBrZXkgY29uc3RyYWludHM8L2VudHJ5PgpAQCAtMTM2MCw2ICsxMzc1LDQwIEBAIDx0aXRs ZT48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxl PgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5hdHRjZWs8L3N0cnVjdGZp ZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleTwvc3Ry dWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIElmIHRoZSBjb2x1bW4gaXMgZW5jcnlw dGVkLCBhIHJlZmVyZW5jZSB0byB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LCBlbHNlIDAu CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1 bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmF0dHJlYWx0eXBpZDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBs aW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUiPjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0aGUgY29sdW1uIGlzIGVuY3J5cHRlZCwg dGhlbiB0aGlzIGNvbHVtbiBpbmRpY2F0ZXMgdGhlIHR5cGUgb2YgdGhlCisgICAgICAgZW5j cnlwdGVkIGRhdGEgdGhhdCBpcyByZXBvcnRlZCB0byB0aGUgY2xpZW50LiAgRm9yIGVuY3J5 cHRlZCBjb2x1bW5zLAorICAgICAgIHRoZSBmaWVsZCA8c3RydWN0ZmllbGQ+YXR0dHlwaWQ8 L3N0cnVjdGZpZWxkPiBpcyBlaXRoZXIKKyAgICAgICA8dHlwZT5wZ19lbmNyeXB0ZWRfZGV0 PC90eXBlPiBvciA8dHlwZT5wZ19lbmNyeXB0ZWRfcm5kPC90eXBlPi4gIElmIHRoZQorICAg ICAgIGNvbHVtbiBpcyBub3QgZW5jcnlwdGVkLCB0aGVuIDAuCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmF0dGVuY2FsZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDE2 PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdGhlIGNv bHVtbiBpcyBlbmNyeXB0ZWQsIHRoZSBpZGVudGlmaWVyIG9mIHRoZSBlbmNyeXB0aW9uIGFs Z29yaXRobTsKKyAgICAgICBzZWUgPHhyZWYgbGlua2VuZD0icHJvdG9jb2wtY2VrIi8+IGZv ciBwb3NzaWJsZSB2YWx1ZXMuCisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVs ZD5hdHRpbmhjb3VudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CkBAIC0yNDU2 LDYgKzI1MDUsMjMyIEBAIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVj dG5hbWU+IENvbHVtbnM8L3RpdGxlPgogICA8L3BhcmE+CiAgPC9zZWN0MT4KIAorIDxzZWN0 MSBpZD0iY2F0YWxvZy1wZy1jb2xlbmNrZXkiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf Y29sZW5ja2V5PC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJj YXRhbG9nLXBnLWNvbGVuY2tleSI+CisgICA8cHJpbWFyeT5wZ19jb2xlbmNrZXk8L3ByaW1h cnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVj dG5hbWU+cGdfY29sZW5ja2V5PC9zdHJ1Y3RuYW1lPiBjb250YWlucyBpbmZvcm1hdGlvbgor ICAgYWJvdXQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgaW4gdGhlIGRhdGFiYXNlLiAg VGhlIGFjdHVhbCBrZXkgbWF0ZXJpYWwKKyAgIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBr ZXlzIGlzIGluIHRoZSBjYXRhbG9nIDxsaW5rCisgICBsaW5rZW5kPSJjYXRhbG9nLXBnLWNv bGVuY2tleWRhdGEiPjxzdHJ1Y3RuYW1lPnBnX2NvbGVuY2tleWRhdGE8L3N0cnVjdG5hbWU+ PC9saW5rPi4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFt ZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91 cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor ICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRp ZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jZWtuYW1lPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBuYW1lCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJj YXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPmNla293bmVyPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXV0 aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBPd25lciBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5CisgICAgICA8L3Bh cmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgor ICA8L3RhYmxlPgorIDwvc2VjdDE+CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sZW5j a2V5ZGF0YSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xlbmNrZXlkYXRhPC9zdHJ1 Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLWNvbGVu Y2tleWRhdGEiPgorICAgPHByaW1hcnk+cGdfY29sZW5ja2V5ZGF0YTwvcHJpbWFyeT4KKyAg PC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5w Z19jb2xlbmNrZXlkYXRhPC9zdHJ1Y3RuYW1lPiBjb250YWlucyB0aGUga2V5CisgICBtYXRl cmlhbCBvZiBjb2x1bW4gZW5jcnlwdGlvbiBrZXlzLiAgRWFjaCBjb2x1bW4gZW5jcnlwdGlv biBrZXkgb2JqZWN0IGNhbgorICAgY29udGFpbiBzZXZlcmFsIHZlcnNpb25zIG9mIHRoZSBr ZXkgbWF0ZXJpYWwsIGVhY2ggZW5jcnlwdGVkIHdpdGggYQorICAgZGlmZmVyZW50IGNvbHVt biBtYXN0ZXIga2V5LiAgVGhhdCBhbGxvd3MgdGhlIGdyYWR1YWwgcm90YXRpb24gb2YgdGhl CisgICBjb2x1bW4gbWFzdGVyIGtleXMuICBUaHVzLCA8bGl0ZXJhbD4oY2tkY2VraWQsIGNr ZGNta2lkKTwvbGl0ZXJhbD4gaXMgYQorICAgdW5pcXVlIGtleSBvZiB0aGlzIHRhYmxlLgor ICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUga2V5IG1hdGVyaWFsIG9mIGNvbHVtbiBl bmNyeXB0aW9uIGtleXMgc2hvdWxkIG5ldmVyIGJlIGRlY3J5cHRlZCBpbnNpZGUKKyAgIHRo ZSBkYXRhYmFzZSBpbnN0YW5jZS4gIEl0IGlzIG1lYW50IHRvIGJlIHNlbnQgYXMtaXMgdG8g dGhlIGNsaWVudCwgd2hlcmUKKyAgIGl0IGlzIGRlY3J5cHRlZCB1c2luZyB0aGUgYXNzb2Np YXRlZCBjb2x1bW4gbWFzdGVyIGtleSwgYW5kIHRoZW4gdXNlZCB0bworICAgZW5jcnlwdCBv ciBkZWNyeXB0IGNvbHVtbiB2YWx1ZXMuCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfY29sZW5ja2V5ZGF0YTwvc3RydWN0bmFtZT4gQ29sdW1u czwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xl PSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9l bnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJh PgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPmNrZGNla2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sZW5ja2V5Ij48c3Ry dWN0bmFtZT5wZ19jb2xlbmNrZXk8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+ b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUaGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRoaXMgZW50cnkgYmVsb25ncyB0bworICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjbWtpZDwvc3RydWN0ZmllbGQ+ IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWNvbG1hc3RlcmtleSI+PHN0cnVjdG5hbWU+cGdfY29sbWFzdGVya2V5PC9z dHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGNvbHVtbiBtYXN0ZXIga2V5 IHRoYXQgdGhlIGtleSBtYXRlcmlhbCBpcyBlbmNyeXB0ZWQgd2l0aAorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2RjbWthbGc8L3N0cnVjdGZpZWxkPiA8dHlwZT5p bnQxNjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBl bmNyeXB0aW9uIGFsZ29yaXRobSB1c2VkIGZvciBlbmNyeXB0aW5nIHRoZSBrZXkgbWF0ZXJp YWw7IHNlZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNtayIvPiBmb3IgcG9z c2libGUgdmFsdWVzLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5ja2Rl bmN2YWw8L3N0cnVjdGZpZWxkPiA8dHlwZT5ieXRlYTwvdHlwZT4KKyAgICAgIDwvcGFyYT4K KyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBrZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4g ZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB1c2luZyB0aGUKKyAgICAgICByZWZlcmVuY2Vk IGNvbHVtbiBtYXN0ZXIga2V5CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+ CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisK KyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctY29sbWFzdGVya2V5Ij4KKyAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRl eHRlcm0gem9uZT0iY2F0YWxvZy1wZy1jb2xtYXN0ZXJrZXkiPgorICAgPHByaW1hcnk+cGdf Y29sbWFzdGVya2V5PC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAg IFRoZSBjYXRhbG9nIDxzdHJ1Y3RuYW1lPnBnX2NvbG1hc3RlcmtleTwvc3RydWN0bmFtZT4g Y29udGFpbnMgaW5mb3JtYXRpb24KKyAgIGFib3V0IGNvbHVtbiBtYXN0ZXIga2V5cy4gIFRo ZSBrZXlzIHRoZW1zZWx2ZXMgYXJlIG5vdCBzdG9yZWQgaW4gdGhlCisgICBkYXRhYmFzZS4g IFRoZSBjYXRhbG9nIGVudHJ5IG9ubHkgY29udGFpbnMgaW5mb3JtYXRpb24gdGhhdCBpcyB1 c2VkIGJ5CisgICBjbGllbnRzIHRvIGxvY2F0ZSB0aGUga2V5cywgZm9yIGV4YW1wbGUgaW4g YSBmaWxlIG9yIGluIGEga2V5IG1hbmFnZW1lbnQKKyAgIHN5c3RlbS4KKyAgPC9wYXJhPgor CisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5wZ19jb2xtYXN0ZXJrZXk8L3N0 cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8 dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBU eXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAg ICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3Bh cmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jbWtuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFt ZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIENvbHVtbiBt YXN0ZXIga2V5IG5hbWUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxw YXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+Y21r b3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5j ZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1 dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxk PikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRoZSBj b2x1bW4gbWFzdGVyIGtleQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5j bWtyZWFsbTwvc3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBBIDxxdW90ZT5yZWFsbTwvcXVvdGU+IGFzc29jaWF0 ZWQgd2l0aCB0aGlzIGNvbHVtbiBtYXN0ZXIga2V5LiAgVGhpcyBpcworICAgICAgIGEgZnJl ZWx5IGNob3NlbiBzdHJpbmcgdGhhdCBpcyB1c2VkIGJ5IGNsaWVudHMgdG8gZGV0ZXJtaW5l IGhvdyB0byBsb29rCisgICAgICAgdXAgdGhlIGtleS4gIEEgdHlwaWNhbCBjb25maWd1cmF0 aW9uIHdvdWxkIHB1dCBhbGwgQ01LcyB0aGF0IGFyZSBsb29rZWQKKyAgICAgICB1cCBpbiB0 aGUgc2FtZSB3YXkgaW50byB0aGUgc2FtZSByZWFsbS4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+ CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij4KICAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC90aXRsZT4K IApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RhdGF0eXBlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvZGF0YXR5cGUuc2dtbAppbmRleCA0Y2M5ZTU5MjcwLi5mNjQzNjY4ZjRmIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvZGF0YXR5cGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGF0 YXR5cGUuc2dtbApAQCAtNTM0NCw0ICs1MzQ0LDUxIEBAIDx0aXRsZT5Qc2V1ZG8tVHlwZXM8 L3RpdGxlPgogCiAgIDwvc2VjdDE+CiAKKyAgPHNlY3QxIGlkPSJkYXRhdHlwZS1lbmNyeXB0 ZWQiPgorICAgPHRpdGxlPlR5cGVzIFJlbGF0ZWQgdG8gRW5jcnlwdGlvbjwvdGl0bGU+CisK KyAgIDxwYXJhPgorICAgIEFuIGVuY3J5cHRlZCBjb2x1bW4gdmFsdWUgKHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtY29sdW1uLWVuY3J5cHRpb24iLz4pIGlzCisgICAgaW50ZXJuYWxseSBz dG9yZWQgdXNpbmcgdGhlIHR5cGVzCisgICAgPHR5cGU+cGdfZW5jcnlwdGVkX3JuZDwvdHlw ZT4gKGZvciByYW5kb21pemVkIGVuY3J5cHRpb24pIG9yCisgICAgPHR5cGU+cGdfZW5jcnlw dGVkX2RldDwvdHlwZT4gKGZvciBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24pOyBzZWUgPHhy ZWYKKyAgICBsaW5rZW5kPSJkYXRhdHlwZS1lbmNyeXB0ZWQtdGFibGUiLz4uICBNb3N0IG9m IHRoZSBkYXRhYmFzZSBzeXN0ZW0gdHJlYXRzCisgICAgdGhpcyBhcyBub3JtYWwgdHlwZXMu ICBGb3IgZXhhbXBsZSwgdGhlIHR5cGUgPHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT4g aGFzCisgICAgYW4gZXF1YWxzIG9wZXJhdG9yIHRoYXQgYWxsb3dzIGxvb2t1cCBvZiBlbmNy eXB0ZWQgdmFsdWVzLiAgVGhlIGV4dGVybmFsCisgICAgcmVwcmVzZW50YXRpb24gb2YgdGhl c2UgdHlwZXMgaXMgdGhlIHNhbWUgYXMgdGhlIDx0eXBlPmJ5dGVhPC90eXBlPiB0eXBlLgor ICAgIFRodXMsIGNsaWVudHMgdGhhdCBkb24ndCBzdXBwb3J0IHRyYW5zcGFyZW50IGNvbHVt biBlbmNyeXB0aW9uIG9yIGhhdmUKKyAgICBkaXNhYmxlZCBpdCB3aWxsIHNlZSB0aGUgZW5j cnlwdGVkIHZhbHVlcyBhcyBieXRlIGFycmF5cy4gIENsaWVudHMgdGhhdAorICAgIHN1cHBv cnQgdHJhbnNwYXJlbnQgZGF0YSBlbmNyeXB0aW9uIHdpbGwgbm90IHNlZSB0aGVzZSB0eXBl cyBpbiByZXN1bHQKKyAgICBzZXRzLCBhcyB0aGUgcHJvdG9jb2wgbGF5ZXIgd2lsbCB0cmFu c2xhdGUgdGhlbSBiYWNrIHRvIGRlY2xhcmVkCisgICAgdW5kZXJseWluZyB0eXBlIGluIHRo ZSB0YWJsZSBkZWZpbml0aW9uLgorICAgPC9wYXJhPgorCisgICAgPHRhYmxlIGlkPSJkYXRh dHlwZS1lbmNyeXB0ZWQtdGFibGUiPgorICAgICA8dGl0bGU+VHlwZXMgUmVsYXRlZCB0byBF bmNyeXB0aW9uPC90aXRsZT4KKyAgICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICAgIDxjb2xz cGVjIGNvbG5hbWU9ImNvbDEiIGNvbHdpZHRoPSIxKiIvPgorICAgICAgPGNvbHNwZWMgY29s bmFtZT0iY29sMiIgY29sd2lkdGg9IjMqIi8+CisgICAgICA8Y29sc3BlYyBjb2xuYW1lPSJj b2wzIiBjb2x3aWR0aD0iMioiLz4KKyAgICAgIDx0aGVhZD4KKyAgICAgICA8cm93PgorICAg ICAgICA8ZW50cnk+TmFtZTwvZW50cnk+CisgICAgICAgIDxlbnRyeT5TdG9yYWdlIFNpemU8 L2VudHJ5PgorICAgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5PgorICAgICAgIDwv cm93PgorICAgICAgPC90aGVhZD4KKyAgICAgIDx0Ym9keT4KKyAgICAgICA8cm93PgorICAg ICAgICA8ZW50cnk+PHR5cGU+cGdfZW5jcnlwdGVkX2RldDwvdHlwZT48L2VudHJ5PgorICAg ICAgICA8ZW50cnk+MSBvciA0IGJ5dGVzIHBsdXMgdGhlIGFjdHVhbCBiaW5hcnkgc3RyaW5n PC9lbnRyeT4KKyAgICAgICAgPGVudHJ5PmVuY3J5cHRlZCBjb2x1bW4gdmFsdWUsIGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbjwvZW50cnk+CisgICAgICAgPC9yb3c+CisgICAgICAgPHJv dz4KKyAgICAgICAgPGVudHJ5Pjx0eXBlPnBnX2VuY3J5cHRlZF9ybmQ8L3R5cGU+PC9lbnRy eT4KKyAgICAgICAgPGVudHJ5PjEgb3IgNCBieXRlcyBwbHVzIHRoZSBhY3R1YWwgYmluYXJ5 IHN0cmluZzwvZW50cnk+CisgICAgICAgIDxlbnRyeT5lbmNyeXB0ZWQgY29sdW1uIHZhbHVl LCByYW5kb21pemVkIGVuY3J5cHRpb248L2VudHJ5PgorICAgICAgIDwvcm93PgorICAgICAg PC90Ym9keT4KKyAgICAgPC90Z3JvdXA+CisgICAgPC90YWJsZT4KKyAgPC9zZWN0MT4KICA8 L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKaW5kZXggMzcxN2QxM2ZmZi4uMDZjMGQ5YjRmNSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtMTIxMSw2ICsxMjExLDM4NSBAQCA8dGl0bGU+RXhjbHVzaW9uIENvbnN0cmFpbnRzPC90 aXRsZT4KICAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJkZGwtY29sdW1u LWVuY3J5cHRpb24iPgorICA8dGl0bGU+VHJhbnNwYXJlbnQgQ29sdW1uIEVuY3J5cHRpb248 L3RpdGxlPgorCisgIDxwYXJhPgorICAgV2l0aCA8Zmlyc3R0ZXJtPnRyYW5zcGFyZW50IGNv bHVtbiBlbmNyeXB0aW9uPC9maXJzdHRlcm0+LCBjb2x1bW5zIGNhbiBiZQorICAgc3RvcmVk IGVuY3J5cHRlZCBpbiB0aGUgZGF0YWJhc2UuICBUaGUgZW5jcnlwdGlvbiBhbmQgZGVjcnlw dGlvbiBoYXBwZW5zIG9uCisgICB0aGUgY2xpZW50LCBzbyB0aGF0IHRoZSBwbGFpbnRleHQg dmFsdWUgaXMgbmV2ZXIgc2VlbiBpbiB0aGUgZGF0YWJhc2UKKyAgIGluc3RhbmNlIG9yIG9u IHRoZSBzZXJ2ZXIgaG9zdGluZyB0aGUgZGF0YWJhc2UuICBUaGUgZHJhd2JhY2sgaXMgdGhh dCBtb3N0CisgICBvcGVyYXRpb25zLCBzdWNoIGFzIGZ1bmN0aW9uIGNhbGxzIG9yIHNvcnRp bmcsIGFyZSBub3QgcG9zc2libGUgb24KKyAgIGVuY3J5cHRlZCB2YWx1ZXMuCisgIDwvcGFy YT4KKworICA8c2VjdDI+CisgICA8dGl0bGU+VXNpbmcgVHJhbnNwYXJlbnQgQ29sdW1uIEVu Y3J5cHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVHJhbnBhcmVudCBjb2x1bW4gZW5j cnlwdGlvbiB1c2VzIHR3byBsZXZlbHMgb2YgY3J5cHRvZ3JhcGhpYyBrZXlzLiAgVGhlCisg ICBhY3R1YWwgY29sdW1uIHZhbHVlIGlzIGVuY3J5cHRlZCB1c2luZyBhIHN5bW1ldHJpYyBh bGdvcml0aG0sIHN1Y2ggYXMgQUVTLAorICAgdXNpbmcgYSA8Zmlyc3R0ZXJtPmNvbHVtbiBl bmNyeXB0aW9uIGtleTwvZmlyc3R0ZXJtPgorICAgKDxhY3JvbnltPkNFSzwvYWNyb255bT4p LiAgVGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBpcyBpbiB0dXJuIGVuY3J5cHRlZAorICAg dXNpbmcgYW4gYXNzeW1tZXRyaWMgYWxnb3JpdGhtLCBzdWNoIGFzIFJTQSwgdXNpbmcgYSA8 Zmlyc3R0ZXJtPmNvbHVtbgorICAgbWFzdGVyIGtleTwvZmlyc3R0ZXJtPiAoPGFjcm9ueW0+ Q01LPC9hY3JvbnltPikuICBUaGUgZW5jcnlwdGVkIENFSyBpcworICAgc3RvcmVkIGluIHRo ZSBkYXRhYmFzZSBzeXN0ZW0uICBUaGUgQ01LIGlzIG5vdCBzdG9yZWQgaW4gdGhlIGRhdGFi YXNlCisgICBzeXN0ZW07IGl0IGlzIHN0b3JlZCBvbiB0aGUgY2xpZW50IG9yIHNvbWV3aGVy ZSB3aGVyZSB0aGUgY2xpZW50IGNhbiBhY2Nlc3MKKyAgIGl0LCBzdWNoIGFzIGluIGEgbG9j YWwgZmlsZSBvciBpbiBhIGtleSBtYW5hZ2VtZW50IHN5c3RlbS4gIFRoZSBkYXRhYmFzZQor ICAgc3lzdGVtIG9ubHkgcmVjb3JkcyB3aGVyZSB0aGUgQ01LIGlzIHN0b3JlZCBhbmQgcHJv dmlkZXMgdGhpcyBpbmZvcm1hdGlvbgorICAgdG8gdGhlIGNsaWVudC4gIFdoZW4gcm93cyBj b250YWluaW5nIGVuY3J5cHRlZCBjb2x1bW5zIGFyZSBzZW50IHRvIHRoZQorICAgY2xpZW50 LCB0aGUgc2VydmVyIGZpcnN0IHNlbmRzIGFueSBuZWNlc3NhcnkgQ01LIGluZm9ybWF0aW9u LCBmb2xsb3dlZCBieQorICAgYW55IHJlcXVpcmVkIENFSy4gIFRoZSBjbGllbnQgdGhlbiBs b29rcyB1cCB0aGUgQ01LIGFuZCB1c2VzIHRoYXQgdG8KKyAgIGRlY3J5cHQgdGhlIENFSy4g IFRoZW4gaXQgZGVjcnlwdHMgaW5jb21pbmcgcm93IGRhdGEgdXNpbmcgdGhlIENFSyBhbmQK KyAgIHByb3ZpZGVzIHRoZSBkZWNyeXB0ZWQgcm93IGRhdGEgdG8gdGhlIGFwcGxpY2F0aW9u LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBIZXJlIGlzIGFuIGV4YW1wbGUgZGVjbGFy aW5nIGEgY29sdW1uIGFzIGVuY3J5cHRlZDoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBU QUJMRSBjdXN0b21lcnMgKAorICAgIGlkIGludCBQUklNQVJZIEtFWSwKKyAgICBuYW1lIHRl eHQgTk9UIE5VTEwsCisgICAgLi4uCisgICAgY3JlZGl0Y2FyZF9udW0gdGV4dCA8ZW1waGFz aXM+RU5DUllQVEVEIFdJVEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpPC9lbXBo YXNpcz4KKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+Cisg ICBDb2x1bW4gZW5jcnlwdGlvbiBzdXBwb3J0cyA8Zmlyc3R0ZXJtPnJhbmRvbWl6ZWQ8L2Zp cnN0dGVybT4KKyAgIChhbHNvIGtub3duIGFzIDxmaXJzdHRlcm0+cHJvYmFiaWxpc3RpYzwv Zmlyc3R0ZXJtPikgYW5kCisgICA8Zmlyc3R0ZXJtPmRldGVybWluaXN0aWM8L2ZpcnN0dGVy bT4gZW5jcnlwdGlvbi4gIFRoZSBhYm92ZSBleGFtcGxlIHVzZXMKKyAgIHJhbmRvbWl6ZWQg ZW5jcnlwdGlvbiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQuICBSYW5kb21pemVkIGVuY3J5cHRp b24gdXNlcyBhCisgICByYW5kb20gaW5pdGlhbGl6YXRpb24gdmVjdG9yIGZvciBlYWNoIGVu Y3J5cHRpb24sIHNvIHRoYXQgZXZlbiBpZiB0aGUKKyAgIHBsYWludGV4dCBvZiB0d28gcm93 cyBpcyBlcXVhbCwgdGhlIGVuY3J5cHRlZCB2YWx1ZXMgd2lsbCBiZSBkaWZmZXJlbnQuCisg ICBUaGlzIHByZXZlbnRzIHNvbWVvbmUgd2l0aCBkaXJlY3QgYWNjZXNzIHRvIHRoZSBkYXRh YmFzZSBzZXJ2ZXIgdG8gbWFrZQorICAgY29tcHV0YXRpb25zIHN1Y2ggYXMgZGlzdGluY3Qg Y291bnRzIG9uIHRoZSBlbmNyeXB0ZWQgdmFsdWVzLgorICAgRGV0ZXJtaW5pc3RpYyBlbmNy eXB0aW9uIHVzZXMgYSBmaXhlZCBpbml0aWFsaXphdGlvbiB2ZWN0b3IuICBUaGlzIHJlZHVj ZXMKKyAgIHNlY3VyaXR5LCBidXQgaXQgYWxsb3dzIGVxdWFsaXR5IHNlYXJjaGVzIG9uIGVu Y3J5cHRlZCB2YWx1ZXMuICBUaGUKKyAgIGZvbGxvd2luZyBleGFtcGxlIGRlY2xhcmVzIGEg Y29sdW1uIHdpdGggZGV0ZXJtaW5pc3RpYyBlbmNyeXB0aW9uOgorPHByb2dyYW1saXN0aW5n PgorQ1JFQVRFIFRBQkxFIGVtcGxveWVlcyAoCisgICAgaWQgaW50IFBSSU1BUlkgS0VZLAor ICAgIG5hbWUgdGV4dCBOT1QgTlVMTCwKKyAgICAuLi4KKyAgICBzc24gdGV4dCBFTkNSWVBU RUQgV0lUSCAoCisgICAgICAgIGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEsIDxlbXBo YXNpcz5lbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljPC9lbXBoYXNpcz4pCispOwor PC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgTnVsbCB2YWx1 ZXMgYXJlIG5vdCBlbmNyeXB0ZWQgYnkgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb247 IG51bGwgdmFsdWVzCisgICBzZW50IGJ5IHRoZSBjbGllbnQgYXJlIHZpc2libGUgYXMgbnVs bCB2YWx1ZXMgaW4gdGhlIGRhdGFiYXNlLiAgSWYgdGhlIGZhY3QKKyAgIHRoYXQgYSB2YWx1 ZSBpcyBudWxsIG5lZWRzIHRvIGJlIGhpZGRlbiBmcm9tIHRoZSBzZXJ2ZXIsIHRoaXMgaW5m b3JtYXRpb24KKyAgIG5lZWRzIHRvIGJlIGVuY29kZWQgaW50byBhIG5vbm51bGwgdmFsdWUg aW4gdGhlIGNsaWVudCBzb21laG93LgorICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNl Y3QyPgorICAgPHRpdGxlPlJlYWRpbmcgYW5kIFdyaXRpbmcgRW5jcnlwdGVkIENvbHVtbnM8 L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICBSZWFkaW5nIGFuZCB3cml0aW5nIGVuY3J5cHRl ZCBjb2x1bW5zIGlzIG1lYW50IHRvIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseQorICAgIGJ5 IHRoZSBjbGllbnQgbGlicmFyeS9kcml2ZXIgYW5kIHNob3VsZCBiZSBtb3N0bHkgdHJhbnNw YXJlbnQgdG8gdGhlCisgICAgYXBwbGljYXRpb24gY29kZSwgaWYgY2VydGFpbiBwcmVyZXF1 aXNpdGVzIGFyZSBmdWxmaWxsZWQ6CisKKyAgICA8aXRlbWl6ZWRsaXN0PgorICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgY2xpZW50IGxpYnJhcnkgbmVlZHMg dG8gc3VwcG9ydCB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbi4gIE5vdAorICAgICAg IGFsbCBjbGllbnQgbGlicmFyaWVzIGRvLiAgRnVydGhlcm1vcmUsIHRoZSBjbGllbnQgbGli cmFyeSBtaWdodCByZXF1aXJlCisgICAgICAgdGhhdCB0cmFuc3BhcmVudCBjb2x1bW4gZW5j cnlwdGlvbiBpcyBleHBsaWNpdGx5IGVuYWJsZWQgYXQgY29ubmVjdGlvbgorICAgICAgIHRp bWUuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIGNsaWVudCBsaWJyYXJ5IGZvciBk ZXRhaWxzLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorCisgICAgIDxsaXN0 aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIENvbHVtbiBtYXN0ZXIga2V5cyBhbmQgY29s dW1uIGVuY3J5cHRpb24ga2V5cyBoYXZlIGJlZW4gc2V0IHVwLCBhbmQgdGhlCisgICAgICAg Y2xpZW50IGxpYnJhcnkgaGFzIGJlZW4gY29uZmlndXJlZCB0byBiZSBhYmxlIHRvIGxvb2sg dXAgY29sdW1uIG1hc3RlcgorICAgICAgIGtleXMgZnJvbSB0aGUga2V5IHN0b3JlIG9yIGtl eSBtYW5hZ2VtZW50IHN5c3RlbS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L2l0ZW1pemVkbGlzdD4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgUmVh ZGluZyBmcm9tIGVuY3J5cHRlZCBjb2x1bW5zIHdpbGwgdGhlbiB3b3JrIGF1dG9tYXRpY2Fs bHkuICBGb3IgZXhhbXBsZSwKKyAgICB1c2luZyB0aGUgYWJvdmUgZXhhbXBsZSwKKzxwcm9n cmFtbGlzdGluZz4KK1NFTEVDVCBzc24gRlJPTSBlbXBsb3llZXMgV0hFUkUgaWQgPSA1Owor PC9wcm9ncmFtbGlzdGluZz4KKyAgICB3aWxsIHJldHVybiB0aGUgdW5lbmNyeXB0ZWQgdmFs dWUgZm9yIHRoZSA8bGl0ZXJhbD5zc248L2xpdGVyYWw+IGNvbHVtbiBpbgorICAgIGFueSBy b3dzIGZvdW5kLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXcml0aW5nIHRvIGVu Y3J5cHRlZCBjb2x1bW5zIHJlcXVpcmVzIHRoYXQgdGhlIGV4dGVuZGVkIHF1ZXJ5IHByb3Rv Y29sCisgICAgKHByb3RvY29sLWxldmVsIHByZXBhcmVkIHN0YXRlbWVudHMpIGJlIHVzZWQs IHNvIHRoYXQgdGhlIHZhbHVlcyB0byBiZQorICAgIGVuY3J5cHRlZCBhcmUgc3VwcGxpZWQg c2VwYXJhdGVseSBmcm9tIHRoZSBTUUwgY29tbWFuZC4gIEZvciBleGFtcGxlLAorICAgIHVz aW5nLCBzYXksIHBzcWwgb3IgbGlicHEsIHRoZSBmb2xsb3dpbmcgd291bGQgbm90IHdvcms6 Cis8cHJvZ3JhbWxpc3Rpbmc+CistLSBXUk9ORyEKK0lOU0VSVCBJTlRPIHNzbiAoaWQsIG5h bWUsIHNzbikgVkFMVUVTICgxLCAnU29tZW9uZScsICcxMjM0NScpOworPC9wcm9ncmFtbGlz dGluZz4KKyAgICBUaGlzIHdpbGwgbGVhayB0aGUgdW5lbmNyeXB0ZWQgdmFsdWUgPGxpdGVy YWw+MTIzNDU8L2xpdGVyYWw+IHRvIHRoZQorICAgIHNlcnZlciwgdGh1cyBkZWZlYXRpbmcg dGhlIHBvaW50IG9mIGNvbHVtbiBlbmNyeXB0aW9uLgorICAgIE5vdGUgdGhhdCB1c2luZyBz ZXJ2ZXItc2lkZSBwcmVwYXJlZCBzdGF0ZW1lbnRzIHVzaW5nIHRoZSBTUUwgY29tbWFuZHMK KyAgICA8Y29tbWFuZD5QUkVQQVJFPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+RVhFQ1VURTwv Y29tbWFuZD4gaXMgZXF1YWxseQorICAgIGluY29ycmVjdCwgc2luY2UgdGhhdCB3b3VsZCBh bHNvIGxlYWsgdGhlIHBhcmFtZXRlcnMgcHJvdmlkZWQgdG8KKyAgICA8Y29tbWFuZD5FWEVD VVRFPC9jb21tYW5kPiB0byB0aGUgc2VydmVyLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4K KyAgICBUaGUgY29ycmVjdCBub3Rpb25hbCBvcmRlciBvZiBvcGVyYXRpb25zIGlzIGlsbHVz dHJhdGVkIGhlcmUgdXNpbmcKKyAgICBsaWJwcS1saWtlIGNvZGUgKHdpdGhvdXQgZXJyb3Ig Y2hlY2tpbmcpOgorPHByb2dyYW1saXN0aW5nPgorUEdyZXN1bHQgICAqdG1wcmVzLAorICAg ICAgICAgICAqcmVzOworY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjEiLCAiU29tZW9uZSIs ICIxMjM0NSJ9OworCitQUXByZXBhcmUoY29ubiwgIiIsICJJTlNFUlQgSU5UTyBzc24gKGlk LCBuYW1lLCBzc24pIFZBTFVFUyAoJDEsICQyLCAkMykiLCAzLCBOVUxMKTsKKworLyogVGhp cyBmZXRjaGVzIGluZm9ybWF0aW9uIGFib3V0IHdoaWNoIHBhcmFtZXRlcnMgbmVlZCB0byBi ZSBlbmNyeXB0ZWQuICovCit0bXByZXMgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIp OworCityZXMgPSBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgIiIsIDMsIHZhbHVlcywgTlVMTCwg TlVMTCwgTlVMTCwgMCwgdG1wcmVzKTsKKworLyogcHJpbnQgcmVzdWx0IGluIHJlcyAqLwor PC9wcm9ncmFtbGlzdGluZz4KKyAgICBIaWdoZXItbGV2ZWwgY2xpZW50IGxpYnJhcmllcyBt aWdodCB1c2UgdGhlIHByb3RvY29sLWxldmVsIHByZXBhcmVkCisgICAgc3RhdGVtZW50cyBh dXRvbWF0aWNhbGx5IGFuZCB0aHVzIHdvbid0IHJlcXVpcmUgYW55IGNvZGUgY2hhbmdlcy4K KyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgPGFwcGxpY2F0aW9uPnBzcWw8L2FwcGxp Y2F0aW9uPiBwcm92aWRlcyB0aGUgY29tbWFuZAorICAgIDxsaXRlcmFsPlxnZW5jcjwvbGl0 ZXJhbD4gdG8gcnVuIHByZXBhcmVkIHN0YXRlbWVudHMgbGlrZSB0aGlzOgorPHByb2dyYW1s aXN0aW5nPgorSU5TRVJUIElOVE8gc3NuIChpZCwgbmFtZSwgc3NuKSBWQUxVRVMgKCQxLCAk MiwgJDMpIFxnZW5jciAnMScgJ1NvbWVvbmUnLCAnMTIzNDUnCis8L3Byb2dyYW1saXN0aW5n PgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5TZXR0 aW5nIHVwIFRyYW5zcGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRoZSBzdGVwcyB0byBzZXQgdXAgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRp b24gZm9yIGEgZGF0YWJhc2UgYXJlOgorCisgICA8b3JkZXJlZGxpc3Q+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIENyZWF0ZSB0aGUga2V5IG1hdGVyaWFsIGZvciB0 aGUgQ01LLCBmb3IgZXhhbXBsZSwgdXNpbmcgYSBjcnlwdG9ncmFwaGljCisgICAgICBsaWJy YXJ5IG9yIHRvb2xraXQsIG9yIGEga2V5IG1hbmFnZW1lbnQgc3lzdGVtLiAgU2VjdXJlIGFj Y2VzcyB0byB0aGUKKyAgICAgIGtleSBhcyBhcHByb3ByaWF0ZSwgdXNpbmcgYWNjZXNzIGNv bnRyb2wsIHBhc3N3b3JkcywgZXRjLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBSZWdpc3RlciB0aGUgQ01L IGluIHRoZSBkYXRhYmFzZSB1c2luZyB0aGUgU1FMIGNvbW1hbmQgPHhyZWYgbGlua2VuZD0i c3FsLWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPi4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRl IHRoZSAodW5lbmNyeXB0ZWQpIGtleSBtYXRlcmlhbCBmb3IgdGhlIENFSyBpbiBhIHRlbXBv cmFyeQorICAgICAgbG9jYXRpb24uICAoSXQgd2lsbCBiZSBlbmNyeXB0ZWQgaW4gdGhlIG5l eHQgc3RlcC4gIERlcGVuZGluZyBvbiB0aGUKKyAgICAgIGF2YWlsYWJsZSB0b29scywgaXQg bWlnaHQgYmUgcG9zc2libGUgYW5kIHNlbnNpYmxlIHRvIGNvbWJpbmUgdGhlc2UgdHdvCisg ICAgICBzdGVwcy4pCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorCisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEVuY3J5cHQgdGhlIGNyZWF0ZWQgQ0VLIGtl eSBtYXRlcmlhbCB1c2luZyB0aGUgQ01LIChjcmVhdGVkIGVhcmxpZXIpLgorICAgICAgKFRo ZSB1bmVuY3J5cHRlZCB2ZXJzaW9uIG9mIHRoZSBDRUsga2V5IG1hdGVyaWFsIGNhbiBub3cg YmUgZGlzcG9zZWQKKyAgICAgIG9mLikKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENF SyBpbiB0aGUgZGF0YWJhc2UgdXNpbmcgdGhlIFNRTCBjb21tYW5kIDx4cmVmCisgICAgICBs aW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPi4gIFRoaXMgY29t bWFuZAorICAgICAgPHF1b3RlPnVwbG9hZHM8L3F1b3RlPiB0aGUgZW5jcnlwdGVkIENFSyBr ZXkgbWF0ZXJpYWwgY3JlYXRlZCBpbiB0aGUKKyAgICAgIHByZXZpb3VzIHN0ZXAgdG8gdGhl IGRhdGFiYXNlIHNlcnZlci4gIFRoZSBsb2NhbCBjb3B5IG9mIHRoZSBDRUsga2V5CisgICAg ICBtYXRlcmlhbCBjYW4gdGhlbiBiZSByZW1vdmVkLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVhdGUg ZW5jcnlwdGVkIGNvbHVtbnMgdXNpbmcgdGhlIGNyZWF0ZWQgQ0VLLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBDb25maWd1cmUgdGhlIGNsaWVudCBsaWJyYXJ5L2RyaXZlciB0byBiZSBhYmxlIHRvIGxv b2sgdXAgdGhlIENNSworICAgICAgY3JlYXRlZCBlYXJsaWVyLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvb3JkZXJlZGxpc3Q+CisKKyAgIE9uY2UgdGhpcyBpcyBk b25lLCB2YWx1ZXMgY2FuIGJlIHdyaXR0ZW4gdG8gYW5kIHJlYWQgZnJvbSB0aGUgZW5jcnlw dGVkCisgICBjb2x1bW5zIGluIGEgdHJhbnNwYXJlbnQgd2F5LgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBOb3RlIHRoYXQgdGhlc2Ugc3RlcHMgc2hvdWxkIG5vdCBiZSBydW4gb24g dGhlIGRhdGFiYXNlIHNlcnZlciwgYnV0IG9uIHNvbWUKKyAgIGNsaWVudCBtYWNoaW5lLiAg TmVpdGhlciB0aGUgQ01LIG5vciB0aGUgdW5lbmNyeXB0ZWQgQ0VLIHNob3VsZCBldmVyIGFw cGVhcgorICAgb24gdGhlIGRhdGFiYXNlIHNlcnZlciBob3N0LgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUaGUgc3BlY2lmaWMgZGV0YWlscyBvZiB0aGlzIHNldHVwIGRlcGVuZCBv biB0aGUgZGVzaXJlZCBDTUsgc3RvcmFnZQorICAgbWVjaGFuaXNtL2tleSBtYW5hZ2VtZW50 IHN5c3RlbSBhcyB3ZWxsIGFzIHRoZSBjbGllbnQgbGlicmFyaWVzIHRvIGJlIHVzZWQuCisg ICBUaGUgZm9sbG93aW5nIGV4YW1wbGUgdXNlcyB0aGUgPGNvbW1hbmQ+b3BlbnNzbDwvY29t bWFuZD4gY29tbWFuZC1saW5lIHRvb2wKKyAgIHRvIHNldCB1cCB0aGUga2V5cy4KKworICAg PG9yZGVyZWRsaXN0PgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBDcmVh dGUgdGhlIGtleSBtYXRlcmlhbCBmb3IgdGhlIENNSyBhbmQgd3JpdGUgaXQgdG8gYSBmaWxl OgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCBnZW5wa2V5IC1hbGdvcml0aG0gcnNhIC1v dXQgY21rMS5wZW0KKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICAgIDwvcGFyYT4KKyAgICA8L2xp c3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZ2lzdGVy IHRoZSBDTUsgaW4gdGhlIGRhdGFiYXNlOgorPHByb2dyYW1saXN0aW5nPgorcHNxbCAuLi4g LWMgIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKHJlYWxtID0gJycpIgor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAg ICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3JlYXRlIHRoZSB1bmVuY3J5cHRl ZCBDRUsga2V5IG1hdGVyaWFsIGluIGEgZmlsZToKKzxwcm9ncmFtbGlzdGluZz4KK29wZW5z c2wgcmFuZCAtb3V0IGNlazEuYmluIDMyCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgKFNl ZSA8eHJlZiBsaW5rZW5kPSJwcm90b2NvbC1jZWstdGFibGUiLz4gZm9yIHJlcXVpcmVkIGtl eSBsZW5ndGhzLikKKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRW5jcnlwdCB0aGUgY3JlYXRlZCBDRUsga2V5 IG1hdGVyaWFsOgorPHByb2dyYW1saXN0aW5nPgorb3BlbnNzbCBwa2V5dXRsIC1lbmNyeXB0 IC1pbmtleSBjbWsxLnBlbSAtcGtleW9wdCByc2FfcGFkZGluZ19tb2RlOm9hZXAgLWluIGNl azEuYmluIC1vdXQgY2VrMS5iaW4uZW5jCitybSBjZWsxLmJpbgorPC9wcm9ncmFtbGlzdGlu Zz4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgUmVnaXN0ZXIgdGhlIENFSyBpbiB0aGUgZGF0YWJhc2U6Cis8 cHJvZ3JhbWxpc3Rpbmc+CisjIGNvbnZlcnQgZmlsZSBjb250ZW50cyB0byBoZXggZW5jb2Rp bmc7IHRoaXMgaXMganVzdCBvbmUgcG9zc2libGUgd2F5CitjZWtlbmNoZXg9JChwZXJsIC0w bmUgJ3ByaW50IHVucGFjayAiSCoiJyBjZWsxLmJpbi5lbmMpCitwc3FsIC4uLiAtYyAiQ1JF QVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTIChjb2x1bW5fbWFz dGVyX2tleSA9IGNtazEsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKSIK K3JtIGNlazEuYmluLmVuYworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorICAg IDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQ3Jl YXRlIGVuY3J5cHRlZCBjb2x1bW5zIGFzIHNob3duIGluIHRoZSBleGFtcGxlcyBhYm92ZS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQ29uZmlndXJlIHRoZSBsaWJwcSBmb3IgQ01LIGxvb2t1cCAoc2Vl IGFsc28gPHhyZWYgbGlua2VuZD0ibGlicHEtY29ubmVjdC1jbWtsb29rdXAiLz4pOgorPHBy b2dyYW1saXN0aW5nPgorUEdDTUtMT09LVVA9Iio9ZmlsZTokUFdELyVrLnBlbSIKK2V4cG9y dCBQR0NNS0xPT0tVUAorPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgPC9wYXJhPgorCisgICAg IDxwYXJhPgorICAgICAgQWRkaXRpb25hbGx5LCBsaWJwcSByZXF1aXJlcyB0aGF0IHRoZSBj b25uZWN0aW9uIHBhcmFtZXRlciA8eHJlZgorICAgICAgbGlua2VuZD0ibGlicHEtY29ubmVj dC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBiZSBzZXQgaW4gb3JkZXIgdG8gYWN0aXZhdGUKKyAg ICAgIHRoZSB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBmdW5jdGlvbmFsaXR5LiAg VGhpcyBzaG91bGQgYmUgZG9uZSBpbgorICAgICAgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVy cyBvZiB0aGUgYXBwbGljYXRpb24sIGJ1dCBhbiBlbnZpcm9ubWVudAorICAgICAgdmFyaWFi bGUgKDxlbnZhcj5QR0NPTFVNTkVOQ1JZUFRJT048L2VudmFyPikgaXMgYWxzbyBhdmFpbGFi bGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC9vcmRlcmVkbGlzdD4K KyAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxzZWN0Mj4KKyAgIDx0aXRsZT5HdWlkYW5j ZSBvbiBVc2luZyBUcmFuc3BhcmVudCBDb2x1bW4gRW5jcnlwdGlvbjwvdGl0bGU+CisKKyAg IDxwYXJhPgorICAgIFRoaXMgc2VjdGlvbiBjb250YWlucyBzb21lIGluZm9ybWF0aW9uIG9u IHdoZW4gaXQgaXMgb3IgaXMgbm90IGFwcHJvcHJpYXRlCisgICAgdG8gdXNlIHRyYW5zcGFy ZW50IGNvbHVtbiBlbmNyeXB0aW9uLCBhbmQgd2hhdCBwcmVjYXV0aW9ucyBuZWVkIHRvIGJl CisgICAgdGFrZW4gdG8gbWFpbnRhaW4gaXRzIHNlY3VyaXR5LgorICAgPC9wYXJhPgorCisg ICA8cGFyYT4KKyAgICBJbiBnZW5lcmFsLCBjb2x1bW4gZW5jcnlwdGlvbiBpcyBuZXZlciBh IHJlcGxhY2VtZW50IGZvciBhZGRpdGlvbmFsCisgICAgc2VjdXJpdHkgYW5kIGVuY3J5cHRp b24gdGVjaG5pcXVlcyBzdWNoIGFzIHRyYW5zbWlzc2lvbiBlbmNyeXB0aW9uCisgICAgKFNT TC9UTFMpLCBzdG9yYWdlIGVuY3J5cHRpb24sIHN0cm9uZyBhY2Nlc3MgY29udHJvbCwgYW5k IHBhc3N3b3JkCisgICAgc2VjdXJpdHkuICBDb2x1bW4gZW5jcnlwdGlvbiBvbmx5IHRhcmdl dHMgc3BlY2lmaWMgdXNlIGNhc2VzIGFuZCBzaG91bGQgYmUKKyAgICB1c2VkIGluIGNvbmp1 bmN0aW9uIHdpdGggYWRkaXRpb25hbCBzZWN1cml0eSBtZWFzdXJlcy4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgQSB0eXBpY2FsIHVzZSBjYXNlIGZvciBjb2x1bW4gZW5jcnlw dGlvbiBpcyB0byBlbmNyeXB0IHNwZWNpZmljIHZhbHVlcworICAgIHdpdGggYWRkaXRpb25h bCBzZWN1cml0eSByZXF1aXJlbWVudHMsIGZvciBleGFtcGxlIGNyZWRpdCBjYXJkIG51bWJl cnMuCisgICAgVGhpcyB3b3VsZCBhbGxvdyB5b3UgdG8gc3RvcmUgdGhhdCBzZWN1cml0eS1z ZW5zaXRpdmUgZGF0YSB0b2dldGhlciB3aXRoCisgICAgdGhlIHJlc3Qgb2YgeW91ciBkYXRh ICh0aHVzIGdldHRpbmcgdmFyaW91cyBiZW5lZml0cywgc3VjaCBhcyByZWZlcmVudGlhbAor ICAgIGludGVncml0eSwgY29uc2lzdGVudCBiYWNrdXBzKSwgd2hpbGUgZ2l2aW5nIGFjY2Vz cyB0byB0aGF0IGRhdGEgb25seSB0bworICAgIHNwZWNpZmljIGNsaWVudHMgYW5kIHByZXZl bnRpbmcgYWNjaWRlbnRhbCBsZWFrYWdlIG9uIHRoZSBzZXJ2ZXIgc2lkZQorICAgIChzZXJ2 ZXIgbG9ncywgZmlsZSBzeXN0ZW0gYmFja3VwcywgZXRjLikuCisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIENvbHVtbiBlbmNyeXB0aW9uIGNhbm5vdCBoaWRlIHRoZSBleGlzdGVu Y2Ugb3IgYWJzZW5jZSBvZiBkYXRhLCBpdCBjYW4KKyAgICBvbmx5IGRpc2d1aXNlIHRoZSBw YXJ0aWN1bGFyIGRhdGEgdGhhdCBpcyBrbm93biB0byBleGlzdC4gIEZvciBleGFtcGxlLAor ICAgIHN0b3JpbmcgYSBjbGVhcnRleHQgcGVyc29uIG5hbWUgYW5kIGFuIGVuY3J5cHRlZCBj cmVkaXQgY2FyZCBudW1iZXIKKyAgICBpbmRpY2F0ZXMgdGhhdCB0aGUgcGVyc29uIGhhcyBh IGNyZWRpdCBjYXJkLiAgVGhhdCBtaWdodCBub3QgcmV2ZWFsIHRvbworICAgIG11Y2ggaWYg dGhlIGRhdGFiYXNlIGlzIGZvciBhbiBvbmxpbmUgc3RvcmUgYW5kIHRoZXJlIGlzIG90aGVy IGRhdGEgbmVhcmJ5CisgICAgdGhhdCBzaG93cyB0aGF0IHRoZSBwZXJzb24gaGFzIHJlY2Vu dGx5IG1hZGUgcHVyY2hhc2VzLiAgQnV0IGluIGFub3RoZXIKKyAgICBleGFtcGxlLCBzdG9y aW5nIGEgY2xlYXJ0ZXh0IHBlcnNvbiBuYW1lIGFuZCBhbiBlbmNyeXB0ZWQgZGlhZ25vc2lz IGluIGEKKyAgICBtZWRpY2FsIGRhdGFiYXNlIHByb2JhYmx5IGluZGljYXRlcyB0aGF0IHRo ZSBwZXJzb24gaGFzIGEgbWVkaWNhbCBpc3N1ZS4KKyAgICBEZXBlbmRpbmcgb24gdGhlIGNp cmN1bXN0YW5jZXMsIHRoYXQgbWlnaHQgbm90IGJ5IGl0c2VsZiBiZSBzdWZmaWNpZW50Cisg ICAgc2VjdXJpdHkuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEVuY3J5cHRpb24g Y2Fubm90IGNvbXBsZXRlbHkgaGlkZSB0aGUgbGVuZ3RoIG9mIHZhbHVlcy4gIFRoZSBlbmNy eXB0aW9uCisgICAgbWV0aG9kcyB3aWxsIHBhZCB2YWx1ZXMgdG8gbXVsdGlwbGVzIG9mIHRo ZSB1bmRlcmx5aW5nIGNpcGhlcidzIGJsb2NrIHNpemUKKyAgICAodXN1YWxseSAxNiBieXRl cyksIHNvIHNvbWUgbGVuZ3RoIGRpZmZlcmVuY2VzIHdpbGwgYmUgdW5pZmllZCB0aGlzIHdh eS4KKyAgICBUaGVyZSBpcyBubyBjb25jZXJuIGlmIGFsbCB2YWx1ZXMgYXJlIG9mIHRoZSBz YW1lIGxlbmd0aCAoZS5nLiwgY3JlZGl0CisgICAgY2FyZCBudW1iZXJzKS4gIEJ1dCBpZiB0 aGVyZSBhcmUgc2lnbmZpY2FudCBsZW5ndGggZGlmZmVyZW5jZXMgYmV0d2VlbgorICAgIHZh bGlkIHZhbHVlcyBhbmQgdGhhdCBsZW5ndGggaW5mb3JtYXRpb24gaXMgc2VjdXJpdHktc2Vu c2l0aXZlLCB0aGVuCisgICAgYXBwbGljYXRpb24tc3BlY2lmaWMgd29ya2Fyb3VuZHMgc3Vj aCBhcyBwYWRkaW5nIHdvdWxkIG5lZWQgdG8gYmUgYXBwbGllZC4KKyAgICBIb3cgdG8gZG8g dGhhdCBzZWN1cmVseSBpcyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoaXMgbWFudWFsLgorICAg PC9wYXJhPgorCisgICA8bm90ZT4KKyAgICA8cGFyYT4KKyAgICAgU3RvcmluZyBkYXRhIHN1 Y2ggY3JlZGl0IGNhcmQgZGF0YSwgbWVkaWNhbCBkYXRhLCBhbmQgc28gaXMgdXN1YWxseQor ICAgICBzdWJqZWN0IHRvIGdvdmVybm1lbnQgb3IgaW5kdXN0cnkgcmVndWxhdGlvbnMuICBU aGlzIHNlY3Rpb24gaXMgbm90IG1lYW50CisgICAgIHRvIHByb3ZpZGUgY29tcGxldGUgaW5z dHJ1Y3Rpb25zIG9uIGhvdyB0byBkbyB0aGlzIGNvcnJlY3RseS4gIFBsZWFzZQorICAgICBz ZWVrIGFkZGl0aW9uYWwgYWR2aWNlIHdoZW4gZW5nYWdpbmcgaW4gc3VjaCBwcm9qZWN0cy4K KyAgICA8L3BhcmE+CisgICA8L25vdGU+CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxz ZWN0MSBpZD0iZGRsLXN5c3RlbS1jb2x1bW5zIj4KICAgPHRpdGxlPlN5c3RlbSBDb2x1bW5z PC90aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9k b2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBkNmQwYTNhODE0Li4xMDUwN2U0Mzkx IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMzUzLDYgKzM1MywyOSBAQCA8dGl0bGU+R2xvc3Nh cnk8L3RpdGxlPgogICAgPC9nbG9zc2RlZj4KICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9z c2VudHJ5IGlkPSJnbG9zc2FyeS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorICAgPGdsb3Nz dGVybT5Db2x1bW4gZW5jcnlwdGlvbiBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4K KyAgICA8cGFyYT4KKyAgICAgQSBjcnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQg Y29sdW1uIHZhbHVlcyB3aGVuIHVzaW5nIHRyYW5zcGFyZW50CisgICAgIGNvbHVtbiBlbmNy eXB0aW9uLiAgQ29sdW1uIGVuY3J5cHRpb24ga2V5cyBhcmUgc3RvcmVkIGluIHRoZSBkYXRh YmFzZQorICAgICBlbmNyeXB0ZWQgYnkgYW5vdGhlciBrZXksIHRoZSBjb2x1bW4gbWFzdGVy IGtleS4KKyAgICA8L3BhcmE+CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisK KyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgIDxn bG9zc3Rlcm0+Q29sdW1uIG1hc3RlciBrZXk8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2RlZj4K KyAgICA8cGFyYT4KKyAgICAgQSBjcnlwdG9ncmFwaGljIGtleSB1c2VkIHRvIGVuY3J5cHQg Y29sdW1uIGVuY3J5cHRpb24ga2V5cy4gIChTbyB0aGUKKyAgICAgY29sdW1uIG1hc3RlciBr ZXkgaXMgYSA8Zmlyc3R0ZXJtPmtleSBlbmNyeXB0aW9uIGtleTwvZmlyc3R0ZXJtPi4pCisg ICAgIENvbHVtbiBtYXN0ZXIga2V5cyBhcmUgc3RvcmVkIG91dHNpZGUgdGhlIGRhdGFiYXNl IHN5c3RlbSwgZm9yIGV4YW1wbGUgaW4KKyAgICAgYSBrZXkgbWFuYWdlbWVudCBzeXN0ZW0u CisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxn bG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1jb21taXQiPgogICAgPGdsb3NzdGVybT5Db21taXQ8 L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9s aWJwcS5zZ21sIGIvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKaW5kZXggOGExYTllOTkzMi4u Nzk2ODYzMGFhMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL2xpYnBxLnNnbWwKQEAgLTE5NjQsNiArMTk2NCwxMjMgQEAgPHRpdGxl PlBhcmFtZXRlciBLZXkgV29yZHM8L3RpdGxlPgogICAgICAgIDwvcGFyYT4KICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnkg aWQ9ImxpYnBxLWNvbm5lY3QtY29sdW1uLWVuY3J5cHRpb24iIHhyZWZsYWJlbD0iY29sdW1u X2VuY3J5cHRpb24iPgorICAgICAgPHRlcm0+PGxpdGVyYWw+Y29sdW1uX2VuY3J5cHRpb248 L2xpdGVyYWw+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAg ICAgICBJZiBzZXQgdG8gMSwgdGhpcyBlbmFibGVzIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNy eXB0aW9uIGZvciB0aGUKKyAgICAgICAgY29ubmVjdGlvbi4gIElmIGVuY3J5cHRlZCBjb2x1 bW5zIGFyZSBxdWVyaWVkIGFuZCB0aGlzIGlzIG5vdCBlbmFibGVkLAorICAgICAgICB0aGUg ZW5jcnlwdGVkIHZhbHVlIGlzIHJldHVybmVkLiAgU2VlIDx4cmVmCisgICAgICAgIGxpbmtl bmQ9ImRkbC1jb2x1bW4tZW5jcnlwdGlvbiIvPiBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91 dCB0aGlzCisgICAgICAgIGZlYXR1cmUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0 aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeSBpZD0i bGlicHEtY29ubmVjdC1jbWtsb29rdXAiIHhyZWZsYWJlbD0iY21rbG9va3VwIj4KKyAgICAg IDx0ZXJtPjxsaXRlcmFsPmNta2xvb2t1cDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICA8bGlz dGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgc3BlY2lmaWVzIGhvdyBsaWJw cSBzaG91bGQgbG9vayB1cCBjb2x1bW4gbWFzdGVyIGtleXMgKENNS3MpIGluCisgICAgICAg IG9yZGVyIHRvIGRlY3J5cHQgdGhlIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgKENFS3MpLgor ICAgICAgICBUaGUgdmFsdWUgaXMgYSBsaXN0IG9mIDxsaXRlcmFsPmtleT12YWx1ZTwvbGl0 ZXJhbD4gZW50cmllcyBzZXBhcmF0ZWQKKyAgICAgICAgYnkgc2VtaWNvbG9ucy4gIEVhY2gg a2V5IGlzIHRoZSBuYW1lIG9mIGEga2V5IHJlYWxtLCBvcgorICAgICAgICA8bGl0ZXJhbD4q PC9saXRlcmFsPiB0byBtYXRjaCBhbGwgcmVhbG1zLiAgVGhlIHZhbHVlIGlzIGEKKyAgICAg ICAgPGxpdGVyYWw+c2NoZW1lOmRhdGE8L2xpdGVyYWw+IHNwZWNpZmljYXRpb24uICBUaGUg c2NoZW1lIHNwZWNpZmllcworICAgICAgICB0aGUgbWV0aG9kIHRvIGxvb2sgdXAgdGhlIGtl eSwgdGhlIHJlbWFpbmluZyBkYXRhIGlzIHNwZWNpZmljIHRvIHRoZQorICAgICAgICBzY2hl bWUuICBQbGFjZWhvbGRlcnMgYXJlIHJlcGxhY2VkIGluIHRoZSByZW1haW5pbmcgZGF0YSBh cyBmb2xsb3dzOgorCisgICAgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPiVhPC9saXRlcmFsPjwvdGVybT4K KyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAg VGhlIENNSyBhbGdvcml0aG0gbmFtZSAoc2VlIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNt ay10YWJsZSIvPikKKyAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+ CisgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4K KyAgICAgICAgICA8dGVybT48bGl0ZXJhbD4lYjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAg ICAgPGxpc3RpdGVtPgorICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgIFRoZSBlbmNy eXB0ZWQgQ0VLIGRhdGEgaW4gQmFzZTY0IGVuY29kaW5nIChvbmx5IGZvciB0aGUgPGxpdGVy YWw+cnVuPC9saXRlcmFsPiBzY2hlbWUpCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICA8L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JWs8L2xpdGVyYWw+PC90 ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAg ICAgICBUaGUgQ01LIGtleSBuYW1lCisgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgICAgIDx2YXJs aXN0ZW50cnk+CisgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+JXI8L2xpdGVyYWw+PC90ZXJt PgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAg ICBUaGUgcmVhbG0gbmFtZQorICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAgPC9saXN0 aXRlbT4KKyAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICA8L3ZhcmlhYmxlbGlz dD4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgQXZhaWxhYmxl IHNjaGVtZXMgYXJlOgorICAgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJhbD5maWxlPC9saXRlcmFsPjwvdGVy bT4KKyAgICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgIDxwYXJhPgorICAgICAgICAg ICAgTG9hZCB0aGUga2V5IG1hdGVyaWFsIGZyb20gYSBmaWxlLiAgVGhlIHJlbWFpbmluZyBk YXRhIGlzIHRoZSBmaWxlCisgICAgICAgICAgICBuYW1lLiAgVXNlIHRoaXMgaWYgdGhlIENN S3MgYXJlIGtlcHQgaW4gYSBmaWxlIG9uIHRoZSBmaWxlIHN5c3RlbS4KKyAgICAgICAgICAg PC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3RlbnRy eT4KKworICAgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgICA8dGVybT48bGl0ZXJh bD5ydW48L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg ICAgPHBhcmE+CisgICAgICAgICAgICBSdW4gdGhlIHNwZWNpZmllZCBjb21tYW5kIHRvIGRl Y3J5cHQgdGhlIENFSy4gIFRoZSByZW1haW5pbmcgZGF0YQorICAgICAgICAgICAgaXMgYSBz aGVsbCBjb21tYW5kLiAgVXNlIHRoaXMgd2l0aCBrZXkgbWFuYWdlbWVudCBzeXN0ZW1zIHRo YXQKKyAgICAgICAgICAgIHBlcmZvcm0gdGhlIGRlY3J5cHRpb24gdGhlbXNlbHZlcy4gIFRo ZSBjb21tYW5kIG11c3QgcHJpbnQgdGhlCisgICAgICAgICAgICBkZWNyeXB0ZWQgcGxhaW50 ZXh0IGluIEJhc2U2NCBmb3JtYXQgb24gdGhlIHN0YW5kYXJkIG91dHB1dC4KKyAgICAgICAg ICAgPC9wYXJhPgorICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAgICAgPC9wYXJhPgorCisgICAg ICAgPHBhcmE+CisgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LgorICAgICAg IDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBFeGFtcGxlOgorPHByb2dyYW1s aXN0aW5nPgorY21rbG9va3VwPSJyMT1maWxlOi9zb21lL3doZXJlL3NlY3JldHMvJWsucGVt Oyo9ZmlsZTovZWxzZS93aGVyZS8lci8lay5wZW0iCis8L3Byb2dyYW1saXN0aW5nPgorICAg ICAgICBUaGlzIHNwZWNpZmljYXRpb24gc2F5cywgZm9yIGtleXMgaW4gcmVhbG0gPHF1b3Rl PnIxPC9xdW90ZT4sIGxvYWQKKyAgICAgICAgdGhlbSBmcm9tIHRoZSBzcGVjaWZpZWQgZmls ZSwgcmVwbGFjaW5nIDxsaXRlcmFsPiVrPC9saXRlcmFsPiBieSB0aGUKKyAgICAgICAga2V5 IG5hbWUuICBGb3Iga2V5cyBpbiBvdGhlciByZWFsbXMsIGxvYWQgdGhlbSBmcm9tIHRoZSBm aWxlLAorICAgICAgICByZXBsYWNpbmcgcmVhbG0gYW5kIGtleSBuYW1lcyBhcyBzcGVjaWZp ZWQuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEFuIGV4YW1w bGUgZm9yIGludGVyYWN0aW5nIHdpdGggYSAoaHlwb3RoZXRpY2FsKSBrZXkgbWFuYWdlbWVu dAorICAgICAgICBzeXN0ZW06Cis8cHJvZ3JhbWxpc3Rpbmc+CitjbWtsb29rdXA9Iio9cnVu OmFjbWVrbXMgZGVjcnlwdCAtLWtleSAlayAtLWFsZyAlYSAtLWJsb2IgJyViJyIKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAg PC92YXJsaXN0ZW50cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+CiAgICA8L3BhcmE+CiAgIDwv c2VjdDI+CkBAIC0zMDEyLDYgKzMxMjksNTcgQEAgPHRpdGxlPk1haW4gRnVuY3Rpb25zPC90 aXRsZT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg IDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiI+CisgICAgICA8dGVy bT48ZnVuY3Rpb24+UFFleGVjUHJlcGFyZWQyPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmlt YXJ5PlBRZXhlY1ByZXBhcmVkMjwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAg ICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2VuZHMgYSByZXF1ZXN0 IHRvIGV4ZWN1dGUgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBnaXZlbgorICAgICAgICBw YXJhbWV0ZXJzLCBhbmQgd2FpdHMgZm9yIHRoZSByZXN1bHQsIHdpdGggc3VwcG9ydCBmb3Ig ZW5jcnlwdGVkIGNvbHVtbnMuCis8c3lub3BzaXM+CitQR3Jlc3VsdCAqUFFleGVjUHJlcGFy ZWQyKFBHY29ubiAqY29ubiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hh ciAqc3RtdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBuUGFyYW1zLAor ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICogY29uc3QgKnBhcmFtVmFs dWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3Ro cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaW50ICpwYXJhbUZvcm1hdHMs CisgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVt bkVuY3J5cHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0Rm9y bWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBQR3Jlc3VsdCAqcGFyYW1EZXNjKTsK Kzwvc3lub3BzaXM+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkMiIvPiBpcyBsaWtlIDx4cmVm CisgICAgICAgIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkIi8+IHdpdGggYWRkaXRp b25hbCBzdXBwb3J0IGZvciBlbmNyeXB0ZWQKKyAgICAgICAgY29sdW1ucy4gIFRoZSBwYXJh bWV0ZXIgPHBhcmFtZXRlcj5wYXJhbURlc2M8L3BhcmFtZXRlcj4gbXVzdCBiZSBhCisgICAg ICAgIHJlc3VsdCBzZXQgb2J0YWluZWQgZnJvbSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWRl c2NyaWJlUHJlcGFyZWQiLz4gb24KKyAgICAgICAgdGhlIHNhbWUgcHJlcGFyZWQgc3RhdGVt ZW50LgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGZ1 bmN0aW9uIG11c3QgYmUgdXNlZCBpZiBhIHN0YXRlbWVudCBwYXJhbWV0ZXIgY29ycmVzcG9u ZHMgdG8gYW4KKyAgICAgICAgdW5kZXJseWluZyBlbmNyeXB0ZWQgY29sdW1uLiAgSW4gdGhh dCBzaXR1YXRpb24sIHRoZSBwcmVwYXJlZAorICAgICAgICBzdGF0ZW1lbnQgbmVlZHMgdG8g YmUgZGVzY3JpYmVkIGZpcnN0IHNvIHRoYXQgbGlicHEgY2FuIG9idGFpbiB0aGUKKyAgICAg ICAgbmVjZXNzYXJ5IGtleSBhbmQgb3RoZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgc2VydmVy LiAgV2hlbiB0aGF0IGlzCisgICAgICAgIGRvbmUsIHRoZSBwYXJhbWV0ZXJzIGNvcnJlc3Bv bmRpbmcgdG8gZW5jcnlwdGVkIGNvbHVtbnMgYXJlCisgICAgICAgIGF1dG9tYXRpY2FsbHkg ZW5jcnlwdGVkIGFwcHJvcHJpYXRlbHkgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIHNlcnZl ci4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHBhcmFt ZXRlciA8cGFyYW1ldGVyPnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9uczwvcGFyYW1ldGVy PgorICAgICAgICBzcGVjaWZpZXMgd2hldGhlciBlbmNyeXB0aW9uIHNob3VsZCBiZSBmb3Jj ZWQgZm9yIGEgcGFyYW1ldGVyLiAgSWYKKyAgICAgICAgZW5jcnlwdGlvbiBpcyBmb3JjZWQg Zm9yIGEgcGFyYW1ldGVyIGJ1dCBpdCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFuCisgICAg ICAgIGVuY3J5cHRlZCBjb2x1bW4gb24gdGhlIHNlcnZlciwgdGhlbiB0aGUgY2FsbCB3aWxs IGZhaWwgYW5kIHRoZQorICAgICAgICBwYXJhbWV0ZXIgd2lsbCBub3QgYmUgc2VudC4gIFRo aXMgY2FuIGJlIHVzZWQgZm9yIGFkZGl0aW9uYWwgc2VjdXJpdHkKKyAgICAgICAgYWdhaW5z dCBhIGNvbXByaW1pc2VkIHNlcnZlci4gIChUaGUgZHJhd2JhY2sgaXMgdGhhdCBhcHBsaWNh dGlvbiBjb2RlCisgICAgICAgIHRoZW4gbmVlZHMgdG8gYmUga2VwdCB1cCB0byBkYXRlIHdp dGgga25vd2xlZGdlIGFib3V0IHdoaWNoIGNvbHVtbnMKKyAgICAgICAgYXJlIGVuY3J5cHRl ZCByYXRoZXIgdGhhbiBsZXR0aW5nIHRoZSBzZXJ2ZXIgc3BlY2lmeSB0aGlzLikgIElmIHRo ZQorICAgICAgICBhcnJheSBwb2ludGVyIGlzIG51bGwgdGhlbiBlbmNyeXB0aW9uIGlzIG5v dCBmb3JjZWQgZm9yIGFueSBwYXJhbWV0ZXIuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeSBp ZD0ibGlicHEtUFFkZXNjcmliZVByZXBhcmVkIj4KICAgICAgIDx0ZXJtPjxmdW5jdGlvbj5Q UWRlc2NyaWJlUHJlcGFyZWQ8L2Z1bmN0aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFkZXNj cmliZVByZXBhcmVkPC9wcmltYXJ5PjwvaW5kZXh0ZXJtPjwvdGVybT4KIApAQCAtMzg2Miw2 ICs0MDMwLDI4IEBAIDx0aXRsZT5SZXRyaWV2aW5nIFF1ZXJ5IFJlc3VsdCBJbmZvcm1hdGlv bjwvdGl0bGU+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICA8dmFybGlzdGVudHJ5IGlkPSJsaWJwcS1QUWZpc2VuY3J5cHRlZCI+CisgICAgIDx0ZXJt PjxmdW5jdGlvbj5QUWZpc2VuY3J5cHRlZDwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFy eT5QUWZpc2VuY3J5cHRlZDwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUmV0dXJucyB3aGV0aGVyIHRoZSB2 YWx1ZSBmb3IgdGhlIGdpdmVuIGNvbHVtbiBjYW1lIGZyb20gYW4gZW5jcnlwdGVkCisgICAg ICAgY29sdW1uLiAgQ29sdW1uIG51bWJlcnMgc3RhcnQgYXQgMC4KKzxzeW5vcHNpcz4KK2lu dCBQUWZpc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLAorICAgICAgICAgICAgICAg ICAgIGludCBjb2x1bW5fbnVtYmVyKTsKKzwvc3lub3BzaXM+CisgICAgICA8L3BhcmE+CisK KyAgICAgIDxwYXJhPgorICAgICAgIEVuY3J5cHRlZCBjb2x1bW4gdmFsdWVzIGFyZSBhdXRv bWF0aWNhbGx5IGRlY3J5cHRlZCwgc28gdGhpcyBmdW5jdGlvbgorICAgICAgIGlzIG5vdCBu ZWNlc3NhcnkgdG8gYWNjZXNzIHRoZSBjb2x1bW4gdmFsdWUuICBJdCBjYW4gYmUgdXNlZCBm b3IgZXh0cmEKKyAgICAgICBzZWN1cml0eSB0byBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZSB3 YXMgc3RvcmVkIGVuY3J5cHRlZCB3aGVuIG9uZQorICAgICAgIHRob3VnaHQgaXQgc2hvdWxk IGJlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVu dHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFmc2l6ZSI+CiAgICAgIDx0 ZXJtPjxmdW5jdGlvbj5QUWZzaXplPC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBR ZnNpemU8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC00MDM3LDEyICs0MjI3 LDM3IEBAIDx0aXRsZT5SZXRyaWV2aW5nIFF1ZXJ5IFJlc3VsdCBJbmZvcm1hdGlvbjwvdGl0 bGU+CiAKICAgICAgIDxwYXJhPgogICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSB1c2Vm dWwgd2hlbiBpbnNwZWN0aW5nIHRoZSByZXN1bHQgb2YKLSAgICAgICA8eHJlZiBsaW5rZW5k PSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFyZWQiLz4uICBGb3Igb3RoZXIgdHlwZXMgb2YgcXVl cmllcyBpdAorICAgICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQcmVwYXJl ZCIvPi4gIEZvciBvdGhlciB0eXBlcyBvZiByZXN1bHRzIGl0CiAgICAgICAgd2lsbCByZXR1 cm4gemVyby4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxp c3RlbnRyeT4KIAorICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImxpYnBxLVBRcGFyYW1pc2VuY3J5 cHRlZCI+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXBhcmFtaXNlbmNyeXB0ZWQ8L2Z1bmN0 aW9uPjxpbmRleHRlcm0+PHByaW1hcnk+UFFwYXJhbWlzZW5jcnlwdGVkPC9wcmltYXJ5Pjwv aW5kZXh0ZXJtPjwvdGVybT4KKworICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAg ICAgICBSZXR1cm5zIHdoZXRoZXIgdGhlIHZhbHVlIGZvciB0aGUgZ2l2ZW4gcGFyYW1ldGVy IGlzIGRlc3RpbmVkIGZvciBhbgorICAgICAgIGVuY3J5cHRlZCBjb2x1bW4uICBQYXJhbWV0 ZXIgbnVtYmVycyBzdGFydCBhdCAwLgorPHN5bm9wc2lzPgoraW50IFBRcGFyYW1pc2VuY3J5 cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtYmVyKTsKKzwvc3lub3Bz aXM+CisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFZhbHVlcyBmb3Ig cGFyYW1ldGVycyBkZXN0aW5lZCBmb3IgZW5jcnlwdGVkIGNvbHVtbnMgYXJlIGF1dG9tYXRp Y2FsbHkKKyAgICAgICBlbmNyeXB0ZWQsIHNvIHRoaXMgZnVuY3Rpb24gaXMgbm90IG5lY2Vz c2FyeSB0byBwcmVwYXJlIHRoZSBwYXJhbWV0ZXIKKyAgICAgICB2YWx1ZS4gIEl0IGNhbiBi ZSB1c2VkIGZvciBleHRyYSBzZWN1cml0eSB0byBjaGVjayB3aGV0aGVyIHRoZSB2YWx1ZQor ICAgICAgIHdpbGwgYmUgc3RvcmVkIGVuY3J5cHRlZCB3aGVuIG9uZSB0aG91Z2h0IGl0IHNo b3VsZCBiZS4gIChCdXQgc2VlIGFsc28KKyAgICAgICBhdCA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUWV4ZWNQcmVwYXJlZDIiLz4gZm9yIGFub3RoZXIgd2F5IHRvIGRvIHRoYXQuKQorICAg ICAgIFRoaXMgZnVuY3Rpb24gaXMgb25seSB1c2VmdWwgd2hlbiBpbnNwZWN0aW5nIHRoZSBy ZXN1bHQgb2YgPHhyZWYKKyAgICAgICBsaW5rZW5kPSJsaWJwcS1QUWRlc2NyaWJlUHJlcGFy ZWQiLz4uICBGb3Igb3RoZXIgdHlwZXMgb2YgcmVzdWx0cyBpdAorICAgICAgIHdpbGwgcmV0 dXJuIGZhbHNlLgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFy bGlzdGVudHJ5PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFwcmludCI+CiAg ICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXByaW50PC9mdW5jdGlvbj48aW5kZXh0ZXJtPjxwcmlt YXJ5PlBRcHJpbnQ8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC00NTY4LDYg KzQ3ODMsNyBAQCA8dGl0bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0 bGU+CiAgICA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVBhcmFtcyIvPiwKICAg IDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFByZXBhcmUiLz4sCiAgICA8eHJlZiBsaW5r ZW5kPSJsaWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkIi8+LAorICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZDIiLz4sCiAgICA8eHJlZiBsaW5rZW5kPSJsaWJw cS1QUXNlbmREZXNjcmliZVByZXBhcmVkIi8+LCBhbmQKICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZERlc2NyaWJlUG9ydGFsIi8+LAogICAgd2hpY2ggY2FuIGJlIHVzZWQgd2l0 aCA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUWdldFJlc3VsdCIvPiB0byBkdXBsaWNhdGUKQEAg LTQ1NzUsNiArNDc5MSw3IEBAIDx0aXRsZT5Bc3luY2hyb25vdXMgQ29tbWFuZCBQcm9jZXNz aW5nPC90aXRsZT4KICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZXhlY1BhcmFtcyIvPiwK ICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRcHJlcGFyZSIvPiwKICAgIDx4cmVmIGxpbmtl bmQ9ImxpYnBxLVBRZXhlY1ByZXBhcmVkIi8+LAorICAgPHhyZWYgbGlua2VuZD0ibGlicHEt UFFleGVjUHJlcGFyZWQyIi8+LAogICAgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFkZXNjcmli ZVByZXBhcmVkIi8+LCBhbmQKICAgIDx4cmVmIGxpbmtlbmQ9ImxpYnBxLVBRZGVzY3JpYmVQ b3J0YWwiLz4KICAgIHJlc3BlY3RpdmVseS4KQEAgLTQ2ODYsNiArNDkwMyw0NiBAQCA8dGl0 bGU+QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICAgIDwvbGlz dGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5IGlkPSJs aWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkMiI+CisgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXNl bmRRdWVyeVByZXBhcmVkMjwvZnVuY3Rpb24+PGluZGV4dGVybT48cHJpbWFyeT5QUXNlbmRR dWVyeVByZXBhcmVkMjwvcHJpbWFyeT48L2luZGV4dGVybT48L3Rlcm0+CisKKyAgICAgPGxp c3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgU2VuZHMgYSByZXF1ZXN0IHRvIGV4ZWN1 dGUgYSBwcmVwYXJlZCBzdGF0ZW1lbnQgd2l0aCBnaXZlbgorICAgICAgIHBhcmFtZXRlcnMs IHdpdGhvdXQgd2FpdGluZyBmb3IgdGhlIHJlc3VsdChzKSwgd2l0aCBzdXBwb3J0IGZvciBl bmNyeXB0ZWQgY29sdW1ucy4KKzxzeW5vcHNpcz4KK2ludCBQUXNlbmRRdWVyeVByZXBhcmVk MihQR2Nvbm4gKmNvbm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq c3RtdE5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG5QYXJhbXMsCisgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqIGNvbnN0ICpwYXJhbVZhbHVlcywK KyAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKyAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywKKyAgICAg ICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0 aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgcmVzdWx0Rm9ybWF0LAorICAg ICAgICAgICAgICAgICAgICAgICAgIFBHcmVzdWx0ICpwYXJhbURlc2MpOworPC9zeW5vcHNp cz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgPHBhcmE+CisgICAgICAgPHhyZWYgbGlua2Vu ZD0ibGlicHEtUFFzZW5kUXVlcnlQcmVwYXJlZDIiLz4gaXMgbGlrZSA8eHJlZgorICAgICAg IGxpbmtlbmQ9ImxpYnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQiLz4gd2l0aCBhZGRpdGlvbmFs IHN1cHBvcnQgZm9yIGVuY3J5cHRlZAorICAgICAgIGNvbHVtbnMuICBUaGUgcGFyYW1ldGVy IDxwYXJhbWV0ZXI+cGFyYW1EZXNjPC9wYXJhbWV0ZXI+IG11c3QgYmUgYQorICAgICAgIHJl c3VsdCBzZXQgb2J0YWluZWQgZnJvbSA8eHJlZiBsaW5rZW5kPSJsaWJwcS1QUXNlbmREZXNj cmliZVByZXBhcmVkIi8+IG9uCisgICAgICAgdGhlIHNhbWUgcHJlcGFyZWQgc3RhdGVtZW50 LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGZ1bmN0aW9u IG11c3QgYmUgdXNlZCBpZiBhIHN0YXRlbWVudCBwYXJhbWV0ZXIgY29ycmVzcG9uZHMgdG8g YW4KKyAgICAgICB1bmRlcmx5aW5nIGVuY3J5cHRlZCBjb2x1bW4uICBJbiB0aGF0IHNpdHVh dGlvbiwgdGhlIHByZXBhcmVkCisgICAgICAgc3RhdGVtZW50IG5lZWRzIHRvIGJlIGRlc2Ny aWJlZCBmaXJzdCBzbyB0aGF0IGxpYnBxIGNhbiBvYnRhaW4gdGhlCisgICAgICAgbmVjZXNz YXJ5IGtleSBhbmQgb3RoZXIgaW5mb3JtYXRpb24gZnJvbSB0aGUgc2VydmVyLiAgV2hlbiB0 aGF0IGlzCisgICAgICAgZG9uZSwgdGhlIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZyB0byBl bmNyeXB0ZWQgY29sdW1ucyBhcmUKKyAgICAgICBhdXRvbWF0aWNhbGx5IGVuY3J5cHRlZCBh cHByb3ByaWF0ZWx5IGJlZm9yZSBiZWluZyBzZW50IHRvIHRoZSBzZXJ2ZXIuCisgICAgICAg U2VlIGFsc28gdW5kZXIgPHhyZWYgbGlua2VuZD0ibGlicHEtUFFleGVjUHJlcGFyZWQyIi8+ LgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5 PgorCiAgICAgPHZhcmxpc3RlbnRyeSBpZD0ibGlicHEtUFFzZW5kRGVzY3JpYmVQcmVwYXJl ZCI+CiAgICAgIDx0ZXJtPjxmdW5jdGlvbj5QUXNlbmREZXNjcmliZVByZXBhcmVkPC9mdW5j dGlvbj48aW5kZXh0ZXJtPjxwcmltYXJ5PlBRc2VuZERlc2NyaWJlUHJlcGFyZWQ8L3ByaW1h cnk+PC9pbmRleHRlcm0+PC90ZXJtPgogCkBAIC00NzM2LDYgKzQ5OTMsNyBAQCA8dGl0bGU+ QXN5bmNocm9ub3VzIENvbW1hbmQgUHJvY2Vzc2luZzwvdGl0bGU+CiAgICAgICAgPHhyZWYg bGlua2VuZD0ibGlicHEtUFFzZW5kUXVlcnlQYXJhbXMiLz4sCiAgICAgICAgPHhyZWYgbGlu a2VuZD0ibGlicHEtUFFzZW5kUHJlcGFyZSIvPiwKICAgICAgICA8eHJlZiBsaW5rZW5kPSJs aWJwcS1QUXNlbmRRdWVyeVByZXBhcmVkIi8+LAorICAgICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZFF1ZXJ5UHJlcGFyZWQyIi8+LAogICAgICAgIDx4cmVmIGxpbmtlbmQ9Imxp YnBxLVBRc2VuZERlc2NyaWJlUHJlcGFyZWQiLz4sCiAgICAgICAgPHhyZWYgbGlua2VuZD0i bGlicHEtUFFzZW5kRGVzY3JpYmVQb3J0YWwiLz4sIG9yCiAgICAgICAgPHhyZWYgbGlua2Vu ZD0ibGlicHEtUFFwaXBlbGluZVN5bmMiLz4KQEAgLTc3NjYsNiArODAyNCwyNiBAQCA8dGl0 bGU+RW52aXJvbm1lbnQgVmFyaWFibGVzPC90aXRsZT4KICAgICAgPC9wYXJhPgogICAgIDwv bGlzdGl0ZW0+CiAKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgPGluZGV4 dGVybT4KKyAgICAgICA8cHJpbWFyeT48ZW52YXI+UEdDTUtMT09LVVA8L2VudmFyPjwvcHJp bWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPGVudmFyPlBHQ01LTE9PS1VQPC9l bnZhcj4gYmVoYXZlcyB0aGUgc2FtZSBhcyB0aGUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9Imxp YnBxLWNvbm5lY3QtY21rbG9va3VwIi8+IGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICA8aW5kZXh0ZXJtPgorICAgICAgIDxwcmltYXJ5PjxlbnZhcj5QR0NPTFVNTkVO Q1JZUFRJT048L2VudmFyPjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg PGVudmFyPlBHQ09MVU1ORU5DUllQVElPTjwvZW52YXI+IGJlaGF2ZXMgdGhlIHNhbWUgYXMg dGhlIDx4cmVmCisgICAgICBsaW5rZW5kPSJsaWJwcS1jb25uZWN0LWNvbHVtbi1lbmNyeXB0 aW9uIi8+IGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKwogICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICA8aW5kZXh0ZXJt PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcHJvdG9jb2wuc2dtbAppbmRleCA4Nzg3MGM1YjEwLi5mNDIxY2EwODYzIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcHJvdG9jb2wuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcHJv dG9jb2wuc2dtbApAQCAtMTEwOCw2ICsxMTA4LDY4IEBAIDx0aXRsZT5QaXBlbGluaW5nPC90 aXRsZT4KICAgIDwvcGFyYT4KICAgPC9zZWN0Mj4KIAorICA8c2VjdDIgaWQ9InByb3RvY29s LXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZsb3ciPgorICAgPHRpdGxlPlRyYW5z cGFyZW50IENvbHVtbiBFbmNyeXB0aW9uPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVHJh bnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCBieSBzZW5kaW5nIHRoZSBw YXJhbWV0ZXIKKyAgICA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFs PiB3aXRoIGEgdmFsdWUgb2YKKyAgICA8bGl0ZXJhbD4xPC9saXRlcmFsPiBpbiB0aGUgU3Rh cnR1cE1lc3NhZ2UuICBUaGlzIGlzIGEgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgdGhhdCBl bmFibGVzIGEgZmV3IGFkZGl0aW9uYWwgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIGFkZHMgYWRk aXRpb25hbCBmaWVsZHMKKyAgICB0byBleGlzdGluZyBwcm90b2NvbCBtZXNzYWdlcy4gIENs aWVudCBkcml2ZXJzIHNob3VsZCBvbmx5IGFjdGl2YXRlIHRoaXMKKyAgICBwcm90b2NvbCBl eHRlbnNpb24gd2hlbiByZXF1ZXN0ZWQgYnkgdGhlIHVzZXIsIGZvciBleGFtcGxlIHRocm91 Z2ggYQorICAgIGNvbm5lY3Rpb24gcGFyYW1ldGVyLgorICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBXaGVuIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQs IHRoZSBtZXNzYWdlcworICAgIENvbHVtbk1hc3RlcktleSBhbmQgQ29sdW1uRW5jcnlwdGlv bktleSBjYW4gYXBwZWFyIGJlZm9yZSBSb3dEZXNjcmlwdGlvbgorICAgIGFuZCBQYXJhbWV0 ZXJEZXNjcmlwdGlvbiBtZXNzYWdlcy4gIENsaWVudHMgc2hvdWxkIGNvbGxlY3QgdGhlIGlu Zm9ybWF0aW9uCisgICAgaW4gdGhlc2UgbWVzc2FnZXMgYW5kIGtlZXAgdGhlbSBmb3IgdGhl IGR1cmF0aW9uIG9mIHRoZSBjb25uZWN0aW9uLiAgQQorICAgIHNlcnZlciBpcyBub3QgcmVx dWlyZWQgdG8gcmVzZW5kIHRoZSBrZXkgaW5mb3JtYXRpb24gZm9yIGVhY2ggc3RhdGVtZW50 CisgICAgY3ljbGUgaWYgaXQgd2FzIGFscmVhZHkgc2VudCBkdXJpbmcgdGhpcyBjb25uZWN0 aW9uLiAgSWYgYSBzZXJ2ZXIgcmVzZW5kcworICAgIGEga2V5IHRoYXQgdGhlIGNsaWVudCBo YXMgYWxyZWFkeSBzdG9yZWQgKHRoYXQgaXMsIGEga2V5IGhhdmluZyBhbiBJRAorICAgIGVx dWFsIHRvIG9uZSBhbHJlYWR5IHN0b3JlZCksIHRoZSBuZXcgaW5mb3JtYXRpb24gc2hvdWxk IHJlcGxhY2UgdGhlIG9sZC4KKyAgICAoVGhpcyBjb3VsZCBoYXBwZW4sIGZvciBleGFtcGxl LCBpZiB0aGUga2V5IHdhcyBhbHRlcmVkIGJ5IHNlcnZlci1zaWRlIERETAorICAgIGNvbW1h bmRzLikKKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgQSBjbGllbnQgc3VwcG9ydGlu ZyB0cmFuc3BhcmVudCBjb2x1bW4gZW5jcnlwdGlvbiBzaG91bGQgYXV0b21hdGljYWxseQor ICAgIGRlY3J5cHQgdGhlIGNvbHVtbiB2YWx1ZSBmaWVsZHMgb2YgRGF0YVJvdyBtZXNzYWdl cyBjb3JyZXNwb25kaW5nIHRvCisgICAgZW5jcnlwdGVkIGNvbHVtbnMsIGFuZCBpdCBzaG91 bGQgYXV0b21hdGljYWxseSBlbmNyeXB0IHRoZSBwYXJhbWV0ZXIgdmFsdWUKKyAgICBmaWVs ZHMgb2YgQmluZCBtZXNzYWdlcyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5z LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBXaGVuIGNvbHVtbiBlbmNyeXB0aW9u IGlzIHVzZWQsIHRoZSBwbGFpbnRleHQgaXMgYWx3YXlzIGluIHRleHQgZm9ybWF0CisgICAg KG5vdCBiaW5hcnkgZm9ybWF0KS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgV2hl biBkZXRlcm1pbmlzdGljIGVuY3J5cHRpb24gaXMgdXNlZCwgY2xpZW50cyBuZWVkIHRvIHRh a2UgY2FyZSB0bworICAgIHJlcHJlc2VudCBwbGFpbnRleHQgdG8gYmUgZW5jcnlwdGVkIGlu IGEgY29uc2lzdGVudCBmb3JtLiAgRm9yIGV4YW1wbGUsCisgICAgZW5jcnlwdGluZyBhbiBp bnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVyYWw+MTAwPC9saXRlcmFs PiBhbmQKKyAgICBhbiBpbnRlZ2VyIHJlcHJlc2VudGVkIGJ5IHRoZSBzdHJpbmcgPGxpdGVy YWw+KzEwMDwvbGl0ZXJhbD4gd291bGQgcmVzdWx0CisgICAgaW4gdHdvIGRpZmZlcmVudCBj aXBoZXJ0ZXh0cywgdGh1cyBkZWZlYXRpbmcgdGhlIG1haW4gcG9pbnQgb2YKKyAgICBkZXRl cm1pbmlzdGljIGVuY3J5cHRpb24uICBUaGlzIHByb3RvY29sIHNwZWNpZmljYXRpb24gcmVx dWlyZXMgdGhlCisgICAgcGxhaW50ZXh0IHRvIGJlIGluIDxxdW90ZT5jYW5vbmljYWw8L3F1 b3RlPiBmb3JtLCB3aGljaCBpcyB0aGUgZm9ybSB0aGF0CisgICAgaXMgcHJvZHVjZWQgYnkg dGhlIHNlcnZlciB3aGVuIGl0IG91dHB1dHMgYSBwYXJ0aWN1bGFyIHZhbHVlIGluIHRleHQK KyAgICBmb3JtYXQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFdoZW4gdHJhbnNw YXJlbnQgY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZCwgdGhlIGNsaWVudCBlbmNvZGlu ZyBtdXN0CisgICAgbWF0Y2ggdGhlIHNlcnZlciBlbmNvZGluZy4gIFRoaXMgZW5zdXJlcyB0 aGF0IGFsbCB2YWx1ZXMgZW5jcnlwdGVkIG9yCisgICAgZGVjcnlwdGVkIGJ5IHRoZSBjbGll bnQgbWF0Y2ggdGhlIHNlcnZlciBlbmNvZGluZy4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgVGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9ucyB1c2VkIGZvciB0cmFuc3BhcmVu dCBjb2x1bW4gZW5jcnlwdGlvbiBhcmUKKyAgICBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2Vu ZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVuY3J5cHRpb24tY3J5cHRvIi8+Lgor ICAgPC9wYXJhPgorICA8L3NlY3QyPgorCiAgIDxzZWN0Mj4KICAgIDx0aXRsZT5GdW5jdGlv biBDYWxsPC90aXRsZT4KIApAQCAtNDA0OSw2ICs0MTExLDE0MCBAQCA8dGl0bGU+TWVzc2Fn ZSBGb3JtYXRzPC90aXRsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+ CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1 bW5FbmNyeXB0aW9uS2V5Ij4KKyAgICA8dGVybT5Db2x1bW5FbmNyeXB0aW9uS2V5IChCKTwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBtZXNzYWdl IGNhbiBvbmx5IGFwcGVhciBpZiB0aGUgcHJvdG9jb2wgZXh0ZW5zaW9uCisgICAgICA8bGl0 ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRlcmFsPiBpcyBlbmFibGVkLiAgKFNl ZSA8eHJlZgorICAgICAgbGlua2VuZD0icHJvdG9jb2wtdHJhbnNwYXJlbnQtY29sdW1uLWVu Y3J5cHRpb24tZmxvdyIvPi4pCisgICAgIDwvcGFyYT4KKworICAgICA8dmFyaWFibGVsaXN0 PgorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5CeXRlMSgnWScpPC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZGVudGlm aWVzIHRoZSBtZXNzYWdlIGFzIGEgY29sdW1uIGVuY3J5cHRpb24ga2V5IG1lc3NhZ2UuCisg ICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+ CisgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIExlbmd0aCBv ZiBtZXNzYWdlIGNvbnRlbnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4KKyAgICAgICAg PC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHNlc3Npb24tc3Bl Y2lmaWMgaWRlbnRpZmllciBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAg PC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBUaGUgaWRlbnRpZmllciBvZiB0aGUgbWFzdGVyIGtl eSB1c2VkIHRvIGVuY3J5cHQgdGhpcyBrZXkuCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICAgPHRlcm0+SW50MTY8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBhbGdvcml0aG0g dXNlZCB0byBlbmNyeXB0IHRoaXMga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBUaGUgbGVuZ3RoIG9mIHRoZSBmb2xsb3dpbmcga2V5IG1h dGVyaWFsLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkJ5 dGU8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBUaGUga2V5IG1hdGVyaWFsLCBlbmNyeXB0 ZWQgd2l0aCB0aGUgbWFzdGVyIGtleSByZWZlcmVuY2VkIGFib3ZlLgorICAgICAgICA8L3Bh cmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICA8 L3ZhcmlhYmxlbGlzdD4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnkgaWQ9InByb3RvY29sLW1lc3NhZ2UtZm9ybWF0cy1Db2x1bW5N YXN0ZXJLZXkiPgorICAgIDx0ZXJtPkNvbHVtbk1hc3RlcktleSAoQik8L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgbWVzc2FnZSBjYW4gb25seSBh cHBlYXIgaWYgdGhlIHByb3RvY29sIGV4dGVuc2lvbgorICAgICAgPGxpdGVyYWw+X3BxXy5j b2x1bW5fZW5jcnlwdGlvbjwvbGl0ZXJhbD4gaXMgZW5hYmxlZC4gIChTZWUgPHhyZWYKKyAg ICAgIGxpbmtlbmQ9InByb3RvY29sLXRyYW5zcGFyZW50LWNvbHVtbi1lbmNyeXB0aW9uLWZs b3ciLz4uKQorICAgICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+Qnl0ZTEoJ3knKTwvdGVybT4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgSWRlbnRpZmllcyB0aGUgbWVz c2FnZSBhcyBhIGNvbHVtbiBtYXN0ZXIga2V5IG1lc3NhZ2UuCisgICAgICAgIDwvcGFyYT4K KyAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3Rp dGVtPgorICAgICAgICA8cGFyYT4KKyAgICAgICAgIExlbmd0aCBvZiBtZXNzYWdlIGNvbnRl bnRzIGluIGJ5dGVzLCBpbmNsdWRpbmcgc2VsZi4KKyAgICAgICAgPC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICA8dGVybT5JbnQzMjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgIDxwYXJhPgorICAgICAgICAgVGhlIHNlc3Npb24tc3BlY2lmaWMgaWRlbnRpZmll ciBvZiB0aGUga2V5LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgIDx0 ZXJtPlN0cmluZzwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgVGhlIG5hbWUgb2YgdGhlIGtleS4KKyAgICAgICAgPC9wYXJhPgorICAgICAg IDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZhcmxpc3Rl bnRyeT4KKyAgICAgICA8dGVybT5TdHJpbmc8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgor ICAgICAgICA8cGFyYT4KKyAgICAgICAgIFRoZSBrZXkncyByZWFsbS4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAg PC92YXJpYWJsZWxpc3Q+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CiAgICA8dmFybGlzdGVudHJ5IGlkPSJwcm90b2NvbC1tZXNzYWdlLWZvcm1hdHMtQ29tbWFu ZENvbXBsZXRlIj4KICAgICA8dGVybT5Db21tYW5kQ29tcGxldGUgKEIpPC90ZXJtPgogICAg IDxsaXN0aXRlbT4KQEAgLTUxNDUsNiArNTM0MSw0NiBAQCA8dGl0bGU+TWVzc2FnZSBGb3Jt YXRzPC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+ CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIHBy b3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9saXRl cmFsPiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJwcm90 b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93Ii8+KSwgdGhlbiB0aGVy ZSBpcworICAgICAgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIHBhcmFtZXRlcjoKKyAg ICAgPC9wYXJhPgorCisgICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDMyPC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0byBiZSBlbmNyeXB0 ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmllciBvZiB0aGUgY29s dW1uIGVuY3J5cHRpb24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJtPgorICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBJZiB0aGlzIHBhcmFtZXRlciBpcyB0 byBiZSBlbmNyeXB0ZWQsIHRoaXMgc3BlY2lmaWVzIHRoZQorICAgICAgICAgaWRlbnRpZmll ciBvZiB0aGUgZW5jcnlwdGlvbiBhbGdvcml0aG0sIGVsc2UgemVyby4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT5JbnQxNjwvdGVybT4KKyAgICAgICA8 bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgVGhpcyBpcyB1c2VkIGFzIGEg Yml0IGZpZWxkIG9mIGZsYWdzLiAgSWYgdGhlIGNvbHVtbiBpcworICAgICAgICAgZW5jcnlw dGVkIGFuZCBiaXQgMHgwMSBpcyBzZXQsIHRoZSBjb2x1bW4gdXNlcyBkZXRlcm1pbmlzdGlj CisgICAgICAgICBlbmNyeXB0aW9uLCBvdGhlcndpc2UgcmFuZG9taXplZCBlbmNyeXB0aW9u LgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorICAgICA8L3ZhcmlhYmxlbGlzdD4KICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKQEAgLTU1MzMsNiArNTc2OSwzNSBAQCA8dGl0bGU+TWVzc2FnZSBG b3JtYXRzPC90aXRsZT4KICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50 cnk+CiAgICAgIDwvdmFyaWFibGVsaXN0PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhl IHByb3RvY29sIGV4dGVuc2lvbiA8bGl0ZXJhbD5fcHFfLmNvbHVtbl9lbmNyeXB0aW9uPC9s aXRlcmFsPiBpcworICAgICAgZW5hYmxlZCAoc2VlIDx4cmVmCisgICAgICBsaW5rZW5kPSJw cm90b2NvbC10cmFuc3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1mbG93Ii8+KSwgdGhlbiB0 aGVyZSBpcworICAgICAgYWxzbyB0aGUgZm9sbG93aW5nIGZvciBlYWNoIGZpZWxkOgorICAg ICA8L3BhcmE+CisKKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnk+ CisgICAgICAgPHRlcm0+SW50MzI8L3Rlcm0+CisgICAgICAgPGxpc3RpdGVtPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIElmIHRoZSBmaWVsZCBpcyBlbmNyeXB0ZWQsIHRoaXMgc3Bl Y2lmaWVzIHRoZSBpZGVudGlmaWVyIG9mIHRoZQorICAgICAgICAgY29sdW1uIGVuY3J5cHRp b24ga2V5IHRvIHVzZSwgZWxzZSB6ZXJvLgorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9s aXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5 PgorICAgICAgIDx0ZXJtPkludDE2PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgPHBhcmE+CisgICAgICAgICBJZiB0aGUgZmllbGQgaXMgZW5jcnlwdGVkLCB0aGlzIHNw ZWNpZmllcyB0aGUgaWRlbnRpZmllciBvZiB0aGUKKyAgICAgICAgIGVuY3J5cHQgYWxnb3Jp dGhtLCBlbHNlIHplcm8uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICA8L2xpc3RpdGVtPgor ICAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgIDwvdmFyaWFibGVsaXN0PgogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApAQCAtNzMzNiw2ICs3NjAxLDEzMyBAQCA8 dGl0bGU+TG9naWNhbCBSZXBsaWNhdGlvbiBNZXNzYWdlIEZvcm1hdHM8L3RpdGxlPgogICA8 L3ZhcmlhYmxlbGlzdD4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJwcm90b2NvbC10cmFu c3BhcmVudC1jb2x1bW4tZW5jcnlwdGlvbi1jcnlwdG8iPgorICA8dGl0bGU+VHJhbnNwYXJl bnQgQ29sdW1uIEVuY3J5cHRpb24gQ3J5cHRvZ3JhcGh5PC90aXRsZT4KKworICA8cGFyYT4K KyAgIFRoaXMgc2VjdGlvbiBkZXNjcmliZXMgdGhlIGNyeXB0b2dyYXBoaWMgb3BlcmF0aW9u cyB1c2VkIGJ5IHRyYW5zcGFyZW50CisgICBjb2x1bW4gZW5jcnlwdGlvbi4gIEEgY2xpZW50 IHRoYXQgc3VwcG9ydHMgdHJhbnNwYXJlbnQgY29sdW1uIGVuY3J5cHRpb24KKyAgIG5lZWRz IHRvIGltcGxlbWVudCB0aGVzZSBvcGVyYXRpb25zIGFzIHNwZWNpZmllZCBoZXJlIGluIG9y ZGVyIHRvIGJlIGFibGUKKyAgIHRvIGludGVyb3BlcmF0ZSB3aXRoIG90aGVyIGNsaWVudHMu CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIENvbHVtbiBlbmNyeXB0aW9uIGtleSBhbGdv cml0aG1zIGFuZCBjb2x1bW4gbWFzdGVyIGtleSBhbGdvcml0aG1zIGFyZQorICAgaWRlbnRp ZmllZCBieSBpbnRlZ2VycyBpbiB0aGUgcHJvdG9jb2wgbWVzc2FnZXMgYW5kIHRoZSBzeXN0 ZW0gY2F0YWxvZ3MuCisgICBBZGRpdGlvbmFsIGFsZ29yaXRobXMgbWF5IGJlIGFkZGVkIHRv IHRoaXMgcHJvdG9jb2wgc3BlY2lmaWNhdGlvbiB3aXRob3V0IGEKKyAgIGNoYW5nZSBpbiB0 aGUgcHJvdG9jb2wgdmVyc2lvbiBudW1iZXIuICBDbGllbnRzIHNob3VsZCBpbXBsZW1lbnQg c3VwcG9ydAorICAgZm9yIGFsbCB0aGUgYWxnb3JpdGhtcyBzcGVjaWZpZWQgaGVyZS4gIElm IGEgY2xpZW50IGVuY291bnRlcnMgYW4gYWxnb3JpdGhtCisgICBpZGVudGlmaWVyIGl0IGRv ZXMgbm90IHJlY29nbml6ZSBvciBkb2VzIG5vdCBzdXBwb3J0LCBpdCBtdXN0IHJhaXNlIGFu CisgICBlcnJvci4gIEEgc3VpdGFibGUgZXJyb3IgbWVzc2FnZSBzaG91bGQgYmUgcHJvdmlk ZWQgdG8gdGhlIGFwcGxpY2F0aW9uIG9yCisgICB1c2VyLgorICA8L3BhcmE+CisKKyAgPHNl Y3QyIGlkPSJwcm90b2NvbC1jbWsiPgorICAgPHRpdGxlPkNvbHVtbiBNYXN0ZXIgS2V5czwv dGl0bGU+CisKKyAgIDxwYXJhPgorICAgIFRoZSBjdXJyZW50bHkgZGVmaW5lZCBhbGdvcml0 aG1zIGZvciBjb2x1bW4gbWFzdGVyIGtleXMgYXJlIGxpc3RlZCBpbgorICAgIDx4cmVmIGxp bmtlbmQ9InByb3RvY29sLWNtay10YWJsZSIvPi4KKyAgIDwvcGFyYT4KKworICAgPHRhYmxl IGlkPSJwcm90b2NvbC1jbWstdGFibGUiPgorICAgIDx0aXRsZT5Db2x1bW4gTWFzdGVyIEtl eSBBbGdvcml0aG1zPC90aXRsZT4KKyAgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgICA8dGhl YWQ+CisgICAgICA8cm93PgorICAgICAgIDxlbnRyeT5JRDwvZW50cnk+CisgICAgICAgPGVu dHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgIDxlbnRyeT5SZWZlcmVuY2U8L2VudHJ5PgorICAg ICAgPC9yb3c+CisgICAgIDwvdGhlYWQ+CisgICAgIDx0Ym9keT4KKyAgICAgIDxyb3c+Cisg ICAgICAgPGVudHJ5PjE8L2VudHJ5PgorICAgICAgIDxlbnRyeT48bGl0ZXJhbD5SU0FFU19P QUVQX1NIQV8xPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGluayB1cmw9 Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjODAxNyI+UkZDIDgw MTc8L3VsaW5rPiAoUEtDUyAjMSk8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAgICA8cm93 PgorICAgICAgIDxlbnRyeT4yPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+UlNB RVNfT0FFUF9TSEFfMjU2PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgPGVudHJ5Pjx1bGlu ayB1cmw9Imh0dHBzOi8vZGF0YXRyYWNrZXIuaWV0Zi5vcmcvZG9jL2h0bWwvcmZjODAxNyI+ UkZDIDgwMTc8L3VsaW5rPiAoUEtDUyAjMSk8L2VudHJ5PgorICAgICAgPC9yb3c+CisgICAg IDwvdGJvZHk+CisgICAgPC90Z3JvdXA+CisgICA8L3RhYmxlPgorICA8L3NlY3QyPgorCisg IDxzZWN0MiBpZD0icHJvdG9jb2wtY2VrIj4KKyAgIDx0aXRsZT5Db2x1bW4gRW5jcnlwdGlv biBLZXlzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgVGhlIGN1cnJlbnRseSBkZWZpbmVk IGFsZ29yaXRobXMgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleXMgYXJlIGxpc3RlZCBpbgor ICAgIDx4cmVmIGxpbmtlbmQ9InByb3RvY29sLWNlay10YWJsZSIvPi4KKyAgIDwvcGFyYT4K KworICAgPHRhYmxlIGlkPSJwcm90b2NvbC1jZWstdGFibGUiPgorICAgIDx0aXRsZT5Db2x1 bW4gRW5jcnlwdGlvbiBLZXkgQWxnb3JpdGhtczwvdGl0bGU+CisgICAgPHRncm91cCBjb2xz PSIzIj4KKyAgICAgPHRoZWFkPgorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnk+SUQ8L2Vu dHJ5PgorICAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+UmVmZXJl bmNlPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+S2V5IGxlbmd0aCAob2N0ZXRzKTwvZW50cnk+ CisgICAgICA8L3Jvdz4KKyAgICAgPC90aGVhZD4KKyAgICAgPHRib2R5PgorICAgICAgPHJv dz4KKyAgICAgICA8ZW50cnk+MTMwPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+ QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2Mv aHRtbC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+ CisgICAgICAgPGVudHJ5PjMyPC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4K KyAgICAgICA8ZW50cnk+MTMxPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVB RF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8 ZW50cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRt bC9kcmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+Cisg ICAgICAgPGVudHJ5PjQ4PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAg ICAgICA8ZW50cnk+MTMyPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50 cnk+PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9k cmFmdC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAg ICAgPGVudHJ5PjU2PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnk+MTMzPC9lbnRyeT4KKyAgICAgICA8ZW50cnk+PGxpdGVyYWw+QUVBRF9BRVNf MjU2X0NCQ19ITUFDX1NIQV81MTI8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+ PHVsaW5rIHVybD0iaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9kcmFm dC1tY2dyZXctYWVhZC1hZXMtY2JjLWhtYWMtc2hhMi0wNSIvPjwvZW50cnk+CisgICAgICAg PGVudHJ5PjY0PC9lbnRyeT4KKyAgICAgIDwvcm93PgorICAgICA8L3Rib2R5PgorICAgIDwv dGdyb3VwPgorICAgPC90YWJsZT4KKworICAgPHBhcmE+CisgICAgVGhlIDxxdW90ZT5hc3Nv Y2lhdGVkIGRhdGE8L3F1b3RlPiBpbiB0aGVzZSBhbGdvcml0aG1zIGNvbnNpc3RzIG9mIDQK KyAgICBieXRlczogVGhlIEFTQ0lJIGxldHRlcnMgPGxpdGVyYWw+UDwvbGl0ZXJhbD4gYW5k IDxsaXRlcmFsPkc8L2xpdGVyYWw+CisgICAgKGJ5dGUgdmFsdWVzIDgwIGFuZCA3MSksIGZv bGxvd2VkIGJ5IHRoZSBhbGdvcml0aG0gSUQgYXMgYSAxNi1iaXQgdW5zaWduZWQKKyAgICBp bnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgVGhlIGxlbmd0aCBvZiB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIGlzIDE2IG9j dGV0cyBmb3IgYWxsIENFSyBhbGdvcml0aG0KKyAgICB2YXJpYW50cy4gIEZvciByYW5kb21p emVkIGVuY3J5cHRpb24sIHRoZSBpbml0aWFsaXphdGlvbiB2ZWN0b3Igc2hvdWxkIGJlCisg ICAgKGNyeXB0b2dyYXBoaWNhbGx5IHN0cm9uZykgcmFuZG9tIGJ5dGVzLiAgRm9yIGRldGVy bWluaXN0aWMgZW5jcnlwdGlvbiwKKyAgICB0aGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yIGlz IGNvbnN0cnVjdGVkIGFzCis8cHJvZ3JhbWxpc3Rpbmc+CitTVUJTVFJJTkcoPHJlcGxhY2Vh YmxlPkhNQUM8L3JlcGxhY2VhYmxlPig8cmVwbGFjZWFibGU+SzwvcmVwbGFjZWFibGU+LCA8 cmVwbGFjZWFibGU+UDwvcmVwbGFjZWFibGU+KSBGT1IgPHJlcGxhY2VhYmxlPklWTEVOPC9y ZXBsYWNlYWJsZT4pCis8L3Byb2dyYW1saXN0aW5nPgorICAgIHdoZXJlIDxyZXBsYWNlYWJs ZT5ITUFDPC9yZXBsYWNlYWJsZT4gaXMgdGhlIEhNQUMgZnVuY3Rpb24gYXNzb2NpYXRlZCB3 aXRoCisgICAgdGhlIGFsZ29yaXRobSwgPHJlcGxhY2VhYmxlPks8L3JlcGxhY2VhYmxlPiBp cyB0aGUgcHJlZml4IG9mIHRoZSBDRUsgb2YKKyAgICB0aGUgbGVuZ3RoIHJlcXVpcmVkIGJ5 IHRoZSBITUFDIGZ1bmN0aW9uLCBhbmQgPHJlcGxhY2VhYmxlPlA8L3JlcGxhY2VhYmxlPgor ICAgIGlzIHRoZSBwbGFpbnRleHQgdG8gYmUgZW5jcnlwdGVkLiAgKFRoaXMgaXMgdGhlIHNh bWUgcG9ydGlvbiBvZiB0aGUgQ0VLCisgICAgdGhhdCB0aGUgQUVBRF9BRVNfKl9ITUFDXyog YWxnb3JpdGhtcyB1c2UgZm9yIHRoZSBNQUMgcGFydC4pCisgICA8L3BhcmE+CisgIDwvc2Vj dDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0icHJvdG9jb2wtY2hhbmdlcyI+CiAgIDx0 aXRsZT5TdW1tYXJ5IG9mIENoYW5nZXMgc2luY2UgUHJvdG9jb2wgMi4wPC90aXRsZT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IGU5MGEwZTFmODMuLjMzMWIxZjAxMGIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTgsNiArOCw4IEBACiA8IUVOVElUWSBhYm9y dCAgICAgICAgICAgICAgU1lTVEVNICJhYm9ydC5zZ21sIj4KIDwhRU5USVRZIGFsdGVyQWdn cmVnYXRlICAgICBTWVNURU0gImFsdGVyX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGFs dGVyQ29sbGF0aW9uICAgICBTWVNURU0gImFsdGVyX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5U SVRZIGFsdGVyQ29sdW1uRW5jcnlwdGlvbktleSBTWVNURU0gImFsdGVyX2NvbHVtbl9lbmNy eXB0aW9uX2tleS5zZ21sIj4KKzwhRU5USVRZIGFsdGVyQ29sdW1uTWFzdGVyS2V5IFNZU1RF TSAiYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbCI+CiA8IUVOVElUWSBhbHRlckNvbnZl cnNpb24gICAgU1lTVEVNICJhbHRlcl9jb252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgYWx0 ZXJEYXRhYmFzZSAgICAgIFNZU1RFTSAiYWx0ZXJfZGF0YWJhc2Uuc2dtbCI+CiA8IUVOVElU WSBhbHRlckRlZmF1bHRQcml2aWxlZ2VzIFNZU1RFTSAiYWx0ZXJfZGVmYXVsdF9wcml2aWxl Z2VzLnNnbWwiPgpAQCAtNjIsNiArNjQsOCBAQAogPCFFTlRJVFkgY3JlYXRlQWdncmVnYXRl ICAgIFNZU1RFTSAiY3JlYXRlX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZUNh c3QgICAgICAgICBTWVNURU0gImNyZWF0ZV9jYXN0LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRl Q29sbGF0aW9uICAgIFNZU1RFTSAiY3JlYXRlX2NvbGxhdGlvbi5zZ21sIj4KKzwhRU5USVRZ IGNyZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXkgU1lTVEVNICJjcmVhdGVfY29sdW1uX2VuY3J5 cHRpb25fa2V5LnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlQ29sdW1uTWFzdGVyS2V5IFNZU1RF TSAiY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlQ29u dmVyc2lvbiAgIFNZU1RFTSAiY3JlYXRlX2NvbnZlcnNpb24uc2dtbCI+CiA8IUVOVElUWSBj cmVhdGVEYXRhYmFzZSAgICAgU1lTVEVNICJjcmVhdGVfZGF0YWJhc2Uuc2dtbCI+CiA8IUVO VElUWSBjcmVhdGVEb21haW4gICAgICAgU1lTVEVNICJjcmVhdGVfZG9tYWluLnNnbWwiPgpA QCAtMTA5LDYgKzExMyw4IEBACiA8IUVOVElUWSBkcm9wQWdncmVnYXRlICAgICAgU1lTVEVN ICJkcm9wX2FnZ3JlZ2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BDYXN0ICAgICAgICAgICBT WVNURU0gImRyb3BfY2FzdC5zZ21sIj4KIDwhRU5USVRZIGRyb3BDb2xsYXRpb24gICAgICBT WVNURU0gImRyb3BfY29sbGF0aW9uLnNnbWwiPgorPCFFTlRJVFkgZHJvcENvbHVtbkVuY3J5 cHRpb25LZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIj4KKzwh RU5USVRZIGRyb3BDb2x1bW5NYXN0ZXJLZXkgU1lTVEVNICJkcm9wX2NvbHVtbl9tYXN0ZXJf a2V5LnNnbWwiPgogPCFFTlRJVFkgZHJvcENvbnZlcnNpb24gICAgIFNZU1RFTSAiZHJvcF9j b252ZXJzaW9uLnNnbWwiPgogPCFFTlRJVFkgZHJvcERhdGFiYXNlICAgICAgIFNZU1RFTSAi ZHJvcF9kYXRhYmFzZS5zZ21sIj4KIDwhRU5USVRZIGRyb3BEb21haW4gICAgICAgICBTWVNU RU0gImRyb3BfZG9tYWluLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMC4uNzU5N2NkODBjYQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAgLTAsMCArMSwx ODYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX2VuY3J5cHRpb25f a2V5LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBp ZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4dGVybSB6b25l PSJzcWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+QUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJl Zm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWTwv cmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNj aW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgdGhlIGRlZmluaXRpb24g b2YgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2 PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQUxURVIgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gQUREIFZBTFVFICgK KyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxl PiwKKyAgICBbIEFMR09SSVRITSA9IDxyZXBsYWNlYWJsZT5hbGdvcml0aG08L3JlcGxhY2Vh YmxlPiwgXQorICAgIEVOQ1JZUFRFRF9WQUxVRSA9IDxyZXBsYWNlYWJsZT5lbmN2YWw8L3Jl cGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2Vh YmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIFZBTFVFICgKKyAgICBDT0xVTU5fTUFTVEVS X0tFWSA9IDxyZXBsYWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPgorKQorCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5B TUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVS IFRPIHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9S T0xFIHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KKzwvc3lub3BzaXM+CisgPC9y ZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkFMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWTwvY29tbWFuZD4gY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4g ZW5jcnlwdGlvbiBrZXkuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSBmaXJzdCBm b3JtIGFkZHMgbmV3IGVuY3J5cHRlZCBrZXkgZGF0YSB0byBhIGNvbHVtbiBlbmNyeXB0aW9u IGtleSwKKyAgIHdoaWNoIG11c3QgYmUgZW5jcnlwdGVkIHdpdGggYSBkaWZmZXJlbnQgY29s dW1uIG1hc3RlciBrZXkgdGhhbiB0aGUKKyAgIGV4aXN0aW5nIGtleSBkYXRhLiAgVGhlIHNl Y29uZCBmb3JtIHJlbW92ZXMgYSBrZXkgZGF0YSBlbnRyeSBmb3IgYSBnaXZlbgorICAgY29s dW1uIG1hc3RlciBrZXkuICBUb2dldGhlciwgdGhlc2UgZm9ybXMgY2FuIGJlIHVzZWQgZm9y IGNvbHVtbiBtYXN0ZXIga2V5CisgICByb3RhdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgWW91IG11c3Qgb3duIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgdG8gdXNlIDxj b21tYW5kPkFMVEVSIENPTFVNTgorICAgRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+LiAgVG8g YWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yCisgICBpbmRp cmVjdCBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0 IGhhdmUKKyAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBj b2x1bW4gZW5jcnlwdGlvbiBrZXkncworICAgZGF0YWJhc2UuICAoVGhlc2UgcmVzdHJpY3Rp b25zIGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbworICAgYW55 dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5IGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBj b2x1bW4gZW5jcnlwdGlvbgorICAga2V5LiAgSG93ZXZlciwgYSBzdXBlcnVzZXIgY2FuIGFs dGVyIG93bmVyc2hpcCBvZiBhbnkgY29sdW1uIGVuY3J5cHRpb24ga2V5CisgICBhbnl3YXku KQorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBh cmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxp c3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+Y21rPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIG5hbWUgb2Yg dGhlIGNvbHVtbiBtYXN0ZXIga2V5IHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlwdCB0aGlzIGNv bHVtbgorICAgICAgZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBlbmNyeXB0aW9uIGFsZ29yaXRo bSB0aGF0IHdhcyB1c2VkIHRvIGVuY3J5cHQgdGhlIGtleSBtYXRlcmlhbCBvZgorICAgICAg dGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9 InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+IGZvciBkZXRhaWxzCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2 YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPmVuY3ZhbDwvcmVwbGFjZWFi bGU+PC90ZXJtPgorCisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBr ZXkgbWF0ZXJpYWwgb2YgdGhpcyBjb2x1bW4gZW5jcnlwdGlvbiBrZXksIGVuY3J5cHRlZCB3 aXRoIHRoZQorICAgICAgc3BlY2lmaWVkIGNvbHVtbiBtYXN0ZXIga2V5IHVzaW5nIHRoZSBz cGVjaWZpZWQgYWxnb3JpdGhtLiAgVGhlIHZhbHVlCisgICAgICBtdXN0IGJlIGEgPHR5cGU+ Ynl0ZWE8L3R5cGU+LWNvbXBhdGlibGUgbGl0ZXJhbC4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5ldyBuYW1lIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25l cjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBUaGUgbmV3IG93bmVyIG9mIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFy aWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFt cGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByb3RhdGUgdGhlIG1hc3RlciBrZXlz IHVzZWQgdG8gZW5jcnlwdCBhIGdpdmVuIGNvbHVtbiBlbmNyeXB0aW9uIGtleSwKKyAgIHVz ZSBhIGNvbW1hbmQgc2VxdWVuY2UgbGlrZSB0aGlzOgorPHByb2dyYW1saXN0aW5nPgorQUxU RVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQUREIFZBTFVFICgKKyAgICBDT0xVTU5f TUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4MDEwMjAyMDQu Li4nCispOworCitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVF ICgKKyAgICBDT0xVTU5fTUFTVEVSX0tFWSA9IGNtazEKKyk7Cis8L3Byb2dyYW1saXN0aW5n PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgdGhlIGNvbHVtbiBlbmNy eXB0aW9uIGtleSA8bGl0ZXJhbD5jZWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+Y2Vr MjwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBDT0xVTU4gRU5DUllQVElP TiBLRVkgY2VrMSBSRU5BTUUgVE8gY2VrMjsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFy YT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBl bmNyeXB0aW9uIGtleSA8bGl0ZXJhbD5jZWsxPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+ am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIENPTFVNTiBFTkNSWVBU SU9OIEtFWSBjZWsxIE9XTkVSIFRPIGpvZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkFMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluIHRoZQorICAgU1FMIHN0 YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9u LWtleSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1j b2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwv cmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl9jb2x1bW5fbWFzdGVyX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9j b2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLjEzZTMxMGIyMjcKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwhLS0K K2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfY29sdW1uX21hc3Rlcl9rZXkuc2dtbAorUG9zdGdy ZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXItY29s dW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFsdGVyLWNvbHVtbi1t YXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+QUxURVIgQ09MVU1OIE1BU1RFUiBLRVk8L3ByaW1h cnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxU RVIgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+Nzwv bWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwv cmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1l PkFMVEVSIENPTFVNTiBNQVNURVIgS0VZPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFu Z2UgdGhlIGRlZmluaXRpb24gb2YgYSBjb2x1bW4gbWFzdGVyIGtleTwvcmVmcHVycG9zZT4K KyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRF UiBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFJF TkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgQ09M VU1OIE1BU1RFUiBLRVkgPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBU TyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9M RSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9Cis8L3N5bm9wc2lzPgorIDwvcmVm c3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0 bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwv Y29tbWFuZD4gY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhCisgICBjb2x1bW4gbWFzdGVy IGtleS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgWW91IG11c3Qgb3duIHRoZSBjb2x1 bW4gbWFzdGVyIGtleSB0byB1c2UgPGNvbW1hbmQ+QUxURVIgQ09MVU1OIE1BU1RFUgorICAg S0VZPC9jb21tYW5kPi4gIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYWxzbyBiZSBh IGRpcmVjdCBvciBpbmRpcmVjdAorICAgbWVtYmVyIG9mIHRoZSBuZXcgb3duaW5nIHJvbGUs IGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+ IHByaXZpbGVnZSBvbiB0aGUgY29sdW1uIG1hc3RlciBrZXkncyBkYXRhYmFzZS4KKyAgIChU aGVzZSByZXN0cmljdGlvbnMgZW5mb3JjZSB0aGF0IGFsdGVyaW5nIHRoZSBvd25lciBkb2Vz bid0IGRvIGFueXRoaW5nIHlvdQorICAgY291bGRuJ3QgZG8gYnkgZHJvcHBpbmcgYW5kIHJl Y3JlYXRpbmcgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LiAgSG93ZXZlciwgYQorICAgc3VwZXJ1 c2VyIGNhbiBhbHRlciBvd25lcnNoaXAgb2YgYW55IGNvbHVtbiBtYXN0ZXIga2V5IGFueXdh eS4pCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIG5hbWUgKG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgYW4gZXhpc3Rpbmcg Y29sdW1uIG1hc3RlciBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuZXcgbmFtZSBvZiB0 aGUgY29sdW1uIG1hc3RlciBrZXkuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgor ICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmV3IG93bmVy IG9mIHRoZSBjb2x1bW4gbWFzdGVyIGtleS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFy YT4KKyAgIFRvIHJlbmFtZSB0aGUgY29sdW1uIG1hc3RlciBrZXkgPGxpdGVyYWw+Y21rMTwv bGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmNtazI8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0 aW5nPgorQUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMjsKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0 aGUgb3duZXIgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IDxsaXRlcmFsPmNtazE8L2xpdGVy YWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgor QUxURVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1s aXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGVyZSBpcyBubyA8Y29t bWFuZD5BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluIHRo ZQorICAgU1FMIHN0YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBl PSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlLWNvbHVt bi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uYTk0YjA5MjRiMQotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCkBAIC0w LDAgKzEsMTYzIEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fZW5j cnlwdGlvbl9rZXkuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJl ZmVudHJ5IGlkPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgPGluZGV4 dGVybSB6b25lPSJzcWwtY3JlYXRlLWNvbHVtbi1lbmNyeXB0aW9uLWtleSI+CisgIDxwcmlt YXJ5PkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5m bz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIENP TFVNTiBFTkNSWVBUSU9OIEtFWTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEg bmV3IGNvbHVtbiBlbmNyeXB0aW9uIGtleTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+ CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitDUkVBVEUgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIDxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSCBWQUxVRVMg KAorICAgIENPTFVNTl9NQVNURVJfS0VZID0gPHJlcGxhY2VhYmxlPmNtazwvcmVwbGFjZWFi bGU+LAorICAgIFsgQUxHT1JJVEhNID0gPHJlcGxhY2VhYmxlPmFsZ29yaXRobTwvcmVwbGFj ZWFibGU+LCBdCisgICAgRU5DUllQVEVEX1ZBTFVFID0gPHJlcGxhY2VhYmxlPmVuY3ZhbDwv cmVwbGFjZWFibGU+CispCitbICwgLi4uIF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNp c2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2Nv bW1hbmQ+IGRlZmluZXMgYSBuZXcgY29sdW1uCisgICBlbmNyeXB0aW9uIGtleS4gIEEgY29s dW1uIGVuY3J5cHRpb24ga2V5IGlzIHVzZWQgZm9yIGNsaWVudC1zaWRlIGVuY3J5cHRpb24K KyAgIG9mIHRhYmxlIGNvbHVtbnMgdGhhdCBoYXZlIGJlZW4gZGVmaW5lZCBhcyBlbmNyeXB0 ZWQuICBUaGUga2V5IG1hdGVyaWFsIG9mCisgICBhIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBp cyBzdG9yZWQgaW4gdGhlIGRhdGFiYXNlJ3Mgc3lzdGVtIGNhdGFsb2dzLAorICAgZW5jcnlw dGVkICh3cmFwcGVkKSBieSBhIGNvbHVtbiBtYXN0ZXIga2V5ICh3aGljaCBpbiB0dXJuIGlz IG9ubHkKKyAgIGFjY2Vzc2libGUgdG8gdGhlIGNsaWVudCwgbm90IHRoZSBkYXRhYmFzZSBz ZXJ2ZXIpLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBBIGNvbHVtbiBlbmNyeXB0aW9u IGtleSBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgY29sdW1uIG1hc3Rl cgorICAga2V5LiAgVG8gc3BlY2lmeSB0aGF0LCBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgcGFy ZW50aGVzaXplZCBkZWZpbml0aW9uIChzZWUKKyAgIGFsc28gdGhlIGV4YW1wbGVzKS4KKyAg PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAg ICA8dGVybT48cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorCisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBuZXcgY29s dW1uIGVuY3J5cHRpb24ga2V5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAg IDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBs YWNlYWJsZT5jbWs8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgdGhh dCB3YXMgdXNlZCB0byBlbmNyeXB0IHRoaXMgY29sdW1uCisgICAgICBlbmNyeXB0aW9uIGtl eS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGU+YWxnb3JpdGht PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHRoYXQgd2FzIHVzZWQgdG8gZW5jcnlw dCB0aGUga2V5IG1hdGVyaWFsIG9mCisgICAgICB0aGlzIGNvbHVtbiBlbmNyeXB0aW9uIGtl eS4gIFN1cHBvcnRlZCBhbGdvcml0aG1zIGFyZToKKyAgICAgIDxpdGVtaXplZGxpc3Q+Cisg ICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFyYT48bGl0ZXJhbD5SU0FFU19PQUVQX1NI QV8xPC9saXRlcmFsPiAoZGVmYXVsdCk8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPjxsaXRlcmFsPlJTQUVTX09BRVBfU0hB XzI1NjwvbGl0ZXJhbD4gKGRlZmF1bHQpPC9wYXJhPgorICAgICAgIDwvbGlzdGl0ZW0+Cisg ICAgICA8L2l0ZW1pemVkbGlzdD4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAg ICAgVGhpcyBpcyBpbmZvcm1hdGlvbmFsIG9ubHkuICBUaGUgc3BlY2lmaWVkIHZhbHVlIGlz IHByb3ZpZGVkIHRvIHRoZQorICAgICAgY2xpZW50LCB3aGljaCBtYXkgdXNlIGl0IGZvciBk ZWNyeXB0aW5nIHRoZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgb24gdGhlCisgICAgICBjbGll bnQgc2lkZS4gIEJ1dCBhIGNsaWVudCBpcyBhbHNvIGZyZWUgdG8gaWdub3JlIHRoaXMgaW5m b3JtYXRpb24gYW5kCisgICAgICBmaWd1cmUgb3V0IGhvdyB0byBhcnJhbmdlIHRoZSBkZWNy eXB0aW9uIGluIHNvbWUgb3RoZXIgd2F5LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRl bT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxyZXBsYWNlYWJsZT5lbmN2YWw8L3JlcGxhY2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUga2V5IG1hdGVyaWFsIG9mIHRoaXMgY29s dW1uIGVuY3J5cHRpb24ga2V5LCBlbmNyeXB0ZWQgd2l0aCB0aGUKKyAgICAgIHNwZWNpZmll ZCBjb2x1bW4gbWFzdGVyIGtleSB1c2luZyB0aGUgc3BlY2lmaWVkIGFsZ29yaXRobS4gIFRo ZSB2YWx1ZQorICAgICAgbXVzdCBiZSBhIDx0eXBlPmJ5dGVhPC90eXBlPi1jb21wYXRpYmxl IGxpdGVyYWwuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0 ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rp bmc+CitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAor ICAgIENPTFVNTl9NQVNURVJfS0VZID0gY21rMSwKKyAgICBFTkNSWVBURURfVkFMVUUgPSAn XHgwMTAyMDIwNC4uLicKKyk7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBUbyBzcGVjaWZ5IG1vcmUgdGhhbiBvbmUgYXNzb2NpYXRlZCBjb2x1bW4g bWFzdGVyIGtleToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4gRU5DUllQVElP TiBLRVkgY2VrMSBXSVRIIFZBTFVFUyAoCisgICAgQ09MVU1OX01BU1RFUl9LRVkgPSBjbWsx LAorICAgIEVOQ1JZUFRFRF9WQUxVRSA9ICdceDAxMDIwMjA0Li4uJworKSwKKygKKyAgICBD T0xVTU5fTUFTVEVSX0tFWSA9IGNtazIsCisgICAgRU5DUllQVEVEX1ZBTFVFID0gJ1x4RjFG MkYyRjQuLi4nCispOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFURSBDT0xVTU4gRU5DUllQ VElPTiBLRVk8L2NvbW1hbmQ+IHN0YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUg QWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1lbmNyeXB0aW9uLWtleSIvPjwv bWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcC1jb2x1bW4tZW5j cnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWNyZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+ CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2NvbHVtbl9tYXN0ZXJfa2V5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLmVjNWZhNGNkZTUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5zZ21sCkBAIC0wLDAgKzEsMTA2 IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jb2x1bW5fbWFzdGVyX2tleS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNy ZWF0ZS1jb2x1bW4tbWFzdGVyLWtleSI+CisgIDxwcmltYXJ5PkNSRUFURSBDT0xVTU4gTUFT VEVSIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVm ZW50cnl0aXRsZT5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L3JlZmVudHJ5dGl0bGU+Cisg IDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3Vh Z2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVk aXY+CisgIDxyZWZuYW1lPkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWTwvcmVmbmFtZT4KKyAg PHJlZnB1cnBvc2U+ZGVmaW5lIGEgbmV3IGNvbHVtbiBtYXN0ZXIga2V5PC9yZWZwdXJwb3Nl PgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NS RUFURSBDT0xVTU4gTUFTVEVSIEtFWSA8cmVwbGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+ IFdJVEggKAorICAgIFsgUkVBTE0gPSA8cmVwbGFjZWFibGU+cmVhbG08L3JlcGxhY2VhYmxl PiBdCispCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFu ZD5DUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVk8L2NvbW1hbmQ+IGRlZmluZXMgYSBuZXcgY29s dW1uIG1hc3RlcgorICAga2V5LiAgQSBjb2x1bW4gbWFzdGVyIGtleSBpcyB1c2VkIHRvIGVu Y3J5cHQgY29sdW1uIGVuY3J5cHRpb24ga2V5cywgd2hpY2gKKyAgIGFyZSB0aGUga2V5cyB0 aGF0IGFjdHVhbGx5IGVuY3J5cHQgdGhlIGNvbHVtbiBkYXRhLiAgVGhlIGtleSBtYXRlcmlh bCBvZgorICAgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlzIG5vdCBzdG9yZWQgaW4gdGhlIGRh dGFiYXNlLiAgVGhlIGRlZmluaXRpb24gb2YgYQorICAgY29sdW1uIG1hc3RlciBrZXkgcmVj b3JkcyBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYWxsb3cgYSBjbGllbnQgdG8gbG9jYXRlCisg ICB0aGUga2V5IG1hdGVyaWFsLCBmb3IgZXhhbXBsZSBpbiBhIGZpbGUgb3IgaW4gYSBrZXkg bWFuYWdlbWVudCBzeXN0ZW0uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4K KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGUgbmFtZSBvZiB0aGUgbmV3IGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5yZWFsbTwvcmVwbGFjZWFibGU+PC90ZXJtPgor CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgaXMgYW4gb3B0aW9u YWwgc3RyaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gb3JnYW5pemUgY29sdW1uIG1hc3Rlcgor ICAgICAga2V5cyBpbnRvIGdyb3VwcyBmb3IgbG9va3VwIGJ5IGNsaWVudHMuICBUaGUgaW50 ZW50IGlzIHRoYXQgYWxsIGNvbHVtbgorICAgICAgbWFzdGVyIGtleXMgdGhhdCBhcmUgc3Rv cmVkIGluIHRoZSBzYW1lIHN5c3RlbSAoZmlsZSBzeXN0ZW0gbG9jYXRpb24sCisgICAgICBr ZXkgbWFuYWdlbWVudCBzeXN0ZW0sIGV0Yy4pIHNob3VsZCBiZSBpbiB0aGUgc2FtZSByZWFs bS4gIEEgY2xpZW50CisgICAgICB3b3VsZCB0aGVuIGJlIGNvbmZpZ3VyZWQgdG8gbG9vayB1 cCBhbGwga2V5cyBpbiBhIGdpdmVuIHJlYWxtIGluIGEKKyAgICAgIGNlcnRhaW4gd2F5LiAg U2VlIHRoZSBkb2N1bWVudGF0aW9uIG9mIHRoZSByZXNwZWN0aXZlIGNsaWVudCBsaWJyYXJ5 IGZvcgorICAgICAgZnVydGhlciB1c2FnZSBpbnN0cnVjdGlvbnMuCisgICAgIDwvcGFyYT4K KworICAgICA8cGFyYT4KKyAgICAgIFRoZSBkZWZhdWx0IGlzIHRoZSBlbXB0eSBzdHJpbmcu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+Cisg IDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5FeGFtcGxlczwvdGl0bGU+CisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xVTU4g TUFTVEVSIEtFWSBjbWsxIChyZWFsbSA9ICdteXJlYWxtJyk7Cis8L3Byb2dyYW1saXN0aW5n PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZXJlIGlzIG5vIDxjb21tYW5kPkNSRUFURSBD T0xVTU4gTUFTVEVSIEtFWTwvY29tbWFuZD4gc3RhdGVtZW50IGluCisgICB0aGUgU1FMIHN0 YW5kYXJkLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgor ICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXItY29sdW1uLW1hc3Rlci1rZXki Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3AtY29sdW1u LW1hc3Rlci1rZXkiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWNyZWF0ZS1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVs aXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dGFibGUuc2dtbAppbmRleCBjMTRiMjAxMGQ4Li5mZWViZjUxZmQ5IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAKICA8cmVmc3lub3BzaXNk aXY+CiA8c3lub3BzaXM+CiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JB UlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gKCBb Ci0gIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVw bGFjZWFibGU+IFsgU1RPUkFHRSB7IFBMQUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1B SU4gfSBdIFsgQ09NUFJFU1NJT04gPHJlcGxhY2VhYmxlPmNvbXByZXNzaW9uX21ldGhvZDwv cmVwbGFjZWFibGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxh Y2VhYmxlPiBdIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25z dHJhaW50PC9yZXBsYWNlYWJsZT4gWyAuLi4gXSBdCisgIHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgRU5DUllQVEVEIFdJ VEggKCA8cmVwbGFjZWFibGU+ZW5jcnlwdGlvbl9vcHRpb25zPC9yZXBsYWNlYWJsZT4gKSBd IFsgU1RPUkFHRSB7IFBMQUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfSBdIFsg Q09NUFJFU1NJT04gPHJlcGxhY2VhYmxlPmNvbXByZXNzaW9uX21ldGhvZDwvcmVwbGFjZWFi bGU+IF0gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBd IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9jb25zdHJhaW50PC9y ZXBsYWNlYWJsZT4gWyAuLi4gXSBdCiAgICAgfCA8cmVwbGFjZWFibGU+dGFibGVfY29uc3Ry YWludDwvcmVwbGFjZWFibGU+CiAgICAgfCBMSUtFIDxyZXBsYWNlYWJsZT5zb3VyY2VfdGFi bGU8L3JlcGxhY2VhYmxlPiBbIDxyZXBsYWNlYWJsZT5saWtlX29wdGlvbjwvcmVwbGFjZWFi bGU+IC4uLiBdIH0KICAgICBbLCAuLi4gXQpAQCAtMzQ5LDYgKzM0OSw0NiBAQCA8dGl0bGU+ UGFyYW1ldGVyczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5 PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkVOQ1JZUFRFRCBX SVRIICggPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+ICk8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBF bmFibGVzIHRyYW5zcGFyZW50IGNvbHVtbiBlbmNyeXB0aW9uIGZvciB0aGUgY29sdW1uLgor ICAgICAgPHJlcGxhY2VhYmxlPmVuY3J5cHRpb25fb3B0aW9uczwvcmVwbGFjZWFibGU+IGFy ZSBjb21tYS1zZXBhcmF0ZWQKKyAgICAgIDxsaXRlcmFsPmtleT12YWx1ZTwvbGl0ZXJhbD4g c3BlY2lmaWNhdGlvbnMuICBUaGUgZm9sbG93aW5nIG9wdGlvbnMgYXJlCisgICAgICBhdmFp bGFibGU6CisgICAgICA8dmFyaWFibGVsaXN0PgorICAgICAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvbHVtbl9lbmNyeXB0aW9uX2tleTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgIDxwYXJhPgorICAgICAgICAg IFNwZWNpZmllcyB0aGUgbmFtZSBvZiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5IHRvIHVz ZS4gIFNwZWNpZnlpbmcKKyAgICAgICAgICB0aGlzIGlzIG1hbmRhdG9yeS4KKyAgICAgICAg IDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48bGl0ZXJhbD5lbmNyeXB0 aW9uX3R5cGU8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAg ICA8cGFyYT4KKyAgICAgICAgICA8bGl0ZXJhbD5yYW5kb21pemVkPC9saXRlcmFsPiAodGhl IGRlZmF1bHQpIG9yIDxsaXRlcmFsPmRldGVybWluaXN0aWM8L2xpdGVyYWw+CisgICAgICAg ICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgPC92YXJsaXN0ZW50cnk+ CisgICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+YWxnb3Jp dGhtPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBh cmE+CisgICAgICAgICAgVGhlIGVuY3J5cHRpb24gYWxnb3JpdGhtIHRvIHVzZS4gIFRoZSBk ZWZhdWx0IGlzCisgICAgICAgICAgPGxpdGVyYWw+QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NI QV8yNTY8L2xpdGVyYWw+LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVt PgorICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgPC92YXJpYWJsZWxpc3Q+CisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2 YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+SU5IRVJJVFMgKCA8cmVwbGFjZWFi bGU+cGFyZW50X3RhYmxlPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKTwvbGl0ZXJhbD48L3Rl cm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X2NvbHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2Nv bHVtbl9lbmNyeXB0aW9uX2tleS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjlkMTU3ZGU5YzUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2Ryb3BfY29sdW1uX2VuY3J5cHRpb25fa2V5LnNnbWwKQEAgLTAsMCArMSwxMTIgQEAK KzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1bW5fZW5jcnlwdGlvbl9rZXkuc2dt bAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt ZHJvcC1jb2x1bW4tZW5jcnlwdGlvbi1rZXkiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWRy b3AtY29sdW1uLWVuY3J5cHRpb24ta2V5Ij4KKyAgPHByaW1hcnk+RFJPUCBDT0xVTU4gRU5D UllQVElPTiBLRVk8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAg PHJlZmVudHJ5dGl0bGU+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L3JlZmVudHJ5dGl0 bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0g TGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJl Zm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZPC9yZWZu YW1lPgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4gZW5jcnlwdGlvbiBrZXk8L3Jl ZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9w c2lzPgorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgWyBJRiBFWElTVFMgXSA8cmVwbGFj ZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+IFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lu b3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRl c2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgQ09MVU1O IEVOQ1JZUFRJT04gS0VZPC9jb21tYW5kPiByZW1vdmVzIGEgcHJldmlvdXNseSBkZWZpbmVk CisgICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkuICBUbyBiZSBhYmxlIHRvIGRyb3AgYSBjb2x1 bW4gZW5jcnlwdGlvbiBrZXksIHlvdQorICAgbXVzdCBiZSBpdHMgb3duZXIuCisgIDwvcGFy YT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwv dGl0bGU+CisKKyAgIDx2YXJpYWJsZWxpc3Q+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg PHRlcm0+PGxpdGVyYWw+SUYgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KKyAgICAgPGxpc3Rp dGVtPgorICAgICAgPHBhcmE+CisgICAgICAgRG8gbm90IHRocm93IGFuIGVycm9yIGlmIHRo ZSBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZG9lcyBub3QgZXhpc3QuCisgICAgICAgQSBub3Rp Y2UgaXMgaXNzdWVkIGluIHRoaXMgY2FzZS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0 aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAg IDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVt biBlbmNyeXB0aW9uIGtleS4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxs aXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBBdXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVu ZCBvbiB0aGUgY29sdW1uIGVuY3J5cHRpb24ga2V5LAorICAgICAgIGFuZCBpbiB0dXJuIGFs bCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRob3NlIG9iamVjdHMKKyAgICAgICAoc2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAgICAgPC9wYXJhPgorICAgICA8L2xp c3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgPHRlcm0+PGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+PC90ZXJtPgorICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBSZWZ1c2UgdG8gZHJvcCB0aGUgY29sdW1u IGVuY3J5cHRpb24ga2V5IGlmIGFueSBvYmplY3RzIGRlcGVuZCBvbiBpdC4gIFRoaXMKKyAg ICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+ Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxOwor PC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlcmUg aXMgbm8gPGNvbW1hbmQ+RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVk8L2NvbW1hbmQ+IHN0 YXRlbWVudCBpbgorICAgdGhlIFNRTCBzdGFuZGFyZC4KKyAgPC9wYXJhPgorIDwvcmVmc2Vj dDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtYWx0ZXItY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVtYmVy Pjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLWVuY3J5cHRpb24ta2V5Ii8+PC9t ZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5Pgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfY29sdW1uX21hc3Rlcl9rZXkuc2dtbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jODUwOThlYTFjCi0tLSAvZGV2 L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX2NvbHVtbl9tYXN0ZXJfa2V5LnNn bWwKQEAgLTAsMCArMSwxMTIgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF9jb2x1 bW5fbWFzdGVyX2tleS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8 cmVmZW50cnkgaWQ9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyA8aW5kZXh0ZXJt IHpvbmU9InNxbC1kcm9wLWNvbHVtbi1tYXN0ZXIta2V5Ij4KKyAgPHByaW1hcnk+RFJPUCBD T0xVTU4gTUFTVEVSIEtFWTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRh PgorICA8cmVmZW50cnl0aXRsZT5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAt IExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxy ZWZuYW1lZGl2PgorICA8cmVmbmFtZT5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9yZWZuYW1l PgorICA8cmVmcHVycG9zZT5yZW1vdmUgYSBjb2x1bW4gbWFzdGVyIGtleTwvcmVmcHVycG9z ZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitE Uk9QIENPTFVNTiBNQVNURVIgS0VZIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlPm5hbWU8 L3JlcGxhY2VhYmxlPiBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5bm9wc2lzPgorIDwv cmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwv dGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIENPTFVNTiBNQVNURVIgS0VZ PC9jb21tYW5kPiByZW1vdmVzIGEgcHJldmlvdXNseSBkZWZpbmVkCisgICBjb2x1bW4gbWFz dGVyIGtleS4gIFRvIGJlIGFibGUgdG8gZHJvcCBhIGNvbHVtbiBtYXN0ZXIga2V5LCB5b3UK KyAgIG11c3QgYmUgaXRzIG93bmVyLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxy ZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgICA8dmFyaWFibGVs aXN0PgorICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNU UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY29sdW1uIG1hc3RlciBrZXkgZG9l cyBub3QgZXhpc3QuCisgICAgICAgQSBub3RpY2UgaXMgaXNzdWVkIGluIHRoaXMgY2FzZS4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZT5uYW1lPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisKKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgVGhlIG5hbWUgb2YgdGhlIGNvbHVtbiBtYXN0ZXIga2V5LgorICAgICAgPC9wYXJh PgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+Q0FTQ0FERTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIEF1dG9tYXRpY2FsbHkg ZHJvcCBvYmplY3RzIHRoYXQgZGVwZW5kIG9uIHRoZSBjb2x1bW4gbWFzdGVyIGtleSwKKyAg ICAgICBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9zZSBvYmpl Y3RzCisgICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+KS4KKyAgICAg IDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg IDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFs PjwvdGVybT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgUmVmdXNl IHRvIGRyb3AgdGhlIGNvbHVtbiBtYXN0ZXIga2V5IGlmIGFueSBvYmplY3RzIGRlcGVuZCBv biBpdC4gIFRoaXMKKyAgICAgICBpcyB0aGUgZGVmYXVsdC4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgIDwvdmFyaWFibGVsaXN0 PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0 bGU+CisKKyAgPHBhcmE+Cis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIENPTFVNTiBNQVNURVIg S0VZIGNlazE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBUaGVyZSBpcyBubyA8Y29tbWFuZD5EUk9QIENPTFVNTiBNQVNURVIgS0VZPC9jb21t YW5kPiBzdGF0ZW1lbnQgaW4KKyAgIHRoZSBTUUwgc3RhbmRhcmQuCisgIDwvcGFyYT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgor CisgICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlu a2VuZD0ic3FsLWFsdGVyLWNvbHVtbi1tYXN0ZXIta2V5Ii8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGUtY29sdW1uLW1hc3Rlci1rZXkiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXAuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcGdfZHVtcC5zZ21sCmluZGV4IGMwODI3NmJjMGEuLjgzYWFiMWNmMGUgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfZHVtcC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvcGdfZHVtcC5zZ21sCkBAIC02OTEsNiArNjkxLDM3IEBAIDx0aXRsZT5PcHRpb25z PC90aXRsZT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9uPi0tZGVjcnlwdC1lbmNy eXB0ZWQtY29sdW1uczwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhpcyBvcHRpb24gY2F1c2VzIHRoZSB2YWx1ZXMgb2YgYWxs IGVuY3J5cHRlZCBjb2x1bW5zIHRvIGJlIGRlY3J5cHRlZAorICAgICAgICBhbmQgd3JpdHRl biB0byB0aGUgb3V0cHV0IGluIHBsYWludGV4dC4gIEJ5IGRlZmF1bHQsIHRoZSB2YWx1ZXMg b2YKKyAgICAgICAgZW5jcnlwdGVkIGNvbHVtbnMgYXJlIHdyaXR0ZW4gdG8gdGhlIGR1bXAg aW4gY2lwaGVydGV4dCAodGhhdCBpcywgdGhleQorICAgICAgICBhcmUgbm90IGRlY3J5cHRl ZCkuCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0 aW9uIHJlcXVpcmVzIHRoYXQgPG9wdGlvbj4tLWluc2VydHM8L29wdGlvbj4sCisgICAgICAg IDxvcHRpb24+LS1jb2x1bW4taW5zZXJ0czwvb3B0aW9uPiBvcgorICAgICAgICA8b3B0aW9u Pi0tcm93cy1wZXItaW5zZXJ0PC9vcHRpb24+IGlzIGFsc28gc3BlY2lmaWVkLgorICAgICAg ICAoPGNvbW1hbmQ+Q09QWTwvY29tbWFuZD4gZG9lcyBub3Qgc3VwcG9ydCBjb2x1bW4gZGVj cnlwdGlvbi4pCisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIEZv ciByb3V0aW5lIGJhY2t1cHMsIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIGFwcHJvcHJpYXRl IGFuZCBtb3N0CisgICAgICAgIGVmZmljaWVudC4gIFRoaXMgb3B0aW9uIGlzIHN1aXRhYmxl IGlmIHRoZSBkYXRhIGlzIG1lYW50IHRvIGJlCisgICAgICAgIGluc3BlY3RlZCBvciBleHBv cnRlZCBmb3Igb3RoZXIgcHVycG9zZXMuICBOb3RlIHRoYXQgYSBkdW1wIGNyZWF0ZWQKKyAg ICAgICAgd2l0aCB0aGlzIG9wdGlvbiBjYW5ub3QgYmUgcmVzdG9yZWQgaW50byBhIGRhdGFi YXNlIHdpdGggY29sdW1uCisgICAgICAgIGVuY3J5cHRpb24uCisgICAgICAgPC9wYXJhPgor ICAgICAgIDwhLS0KKyAgICAgICAgICAgWFhYOiBUaGUgbGF0dGVyIHdvdWxkIHJlcXVpcmUg YW5vdGhlciBwZ19kdW1wIG9wdGlvbiB0byBwdXQgb3V0CisgICAgICAgICAgIElOU0VSVCAu Li4gXGdlbmNyIGNvbW1hbmRzLgorICAgICAgIC0tPgorICAgICAgPC9saXN0aXRlbT4KKyAg ICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAgICAgIDx0ZXJt PjxvcHRpb24+LS1kaXNhYmxlLWRvbGxhci1xdW90aW5nPC9vcHRpb24+PC90ZXJtPgogICAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19kdW1wYWxs LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbAppbmRleCA1ZDU0MDc0 ZTAxLi5iZGRlNWZjOGMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBh bGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX2R1bXBhbGwuc2dtbApAQCAtMjU5 LDYgKzI1OSwzMyBAQCA8dGl0bGU+T3B0aW9uczwvdGl0bGU+CiAgICAgICA8L2xpc3RpdGVt PgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5PgorICAgICAg PHRlcm0+PG9wdGlvbj4tLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnM8L29wdGlvbj48L3Rl cm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgb3B0 aW9uIGNhdXNlcyB0aGUgdmFsdWVzIG9mIGFsbCBlbmNyeXB0ZWQgY29sdW1ucyB0byBiZSBk ZWNyeXB0ZWQKKyAgICAgICAgYW5kIHdyaXR0ZW4gdG8gdGhlIG91dHB1dCBpbiBwbGFpbnRl eHQuICBCeSBkZWZhdWx0LCB0aGUgdmFsdWVzIG9mCisgICAgICAgIGVuY3J5cHRlZCBjb2x1 bW5zIGFyZSB3cml0dGVuIHRvIHRoZSBkdW1wIGluIGNpcGhlcnRleHQgKHRoYXQgaXMsIHRo ZXkKKyAgICAgICAgYXJlIG5vdCBkZWNyeXB0ZWQpLgorICAgICAgIDwvcGFyYT4KKworICAg ICAgIDxwYXJhPgorICAgICAgICBUaGlzIG9wdGlvbiByZXF1aXJlcyB0aGF0IDxvcHRpb24+ LS1pbnNlcnRzPC9vcHRpb24+LAorICAgICAgICA8b3B0aW9uPi0tY29sdW1uLWluc2VydHM8 L29wdGlvbj4gb3IKKyAgICAgICAgPG9wdGlvbj4tLXJvd3MtcGVyLWluc2VydDwvb3B0aW9u PiBpcyBhbHNvIHNwZWNpZmllZC4KKyAgICAgICAgKDxjb21tYW5kPkNPUFk8L2NvbW1hbmQ+ IGRvZXMgbm90IHN1cHBvcnQgY29sdW1uIGRlY3J5cHRpb24uKQorICAgICAgIDwvcGFyYT4K KworICAgICAgIDxwYXJhPgorICAgICAgICBGb3Igcm91dGluZSBiYWNrdXBzLCB0aGUgZGVm YXVsdCBiZWhhdmlvciBpcyBhcHByb3ByaWF0ZSBhbmQgbW9zdAorICAgICAgICBlZmZpY2ll bnQuICBUaGlzIG9wdGlvbiBpcyBzdWl0YWJsZSBpZiB0aGUgZGF0YSBpcyBtZWFudCB0byBi ZQorICAgICAgICBpbnNwZWN0ZWQgb3IgZXhwb3J0ZWQgZm9yIG90aGVyIHB1cnBvc2VzLiAg Tm90ZSB0aGF0IGEgZHVtcCBjcmVhdGVkCisgICAgICAgIHdpdGggdGhpcyBvcHRpb24gY2Fu bm90IGJlIHJlc3RvcmVkIGludG8gYSBkYXRhYmFzZSB3aXRoIGNvbHVtbgorICAgICAgICBl bmNyeXB0aW9uLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgICA8dGVybT48b3B0 aW9uPi0tZGlzYWJsZS1kb2xsYXItcXVvdGluZzwvb3B0aW9uPjwvdGVybT4KICAgICAgIDxs aXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCAxODZmOGM1MDZhLi5mNGI5 NTVhMzhjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMjU1LDYgKzIyNTUsMjgg QEAgPHRpdGxlPk1ldGEtQ29tbWFuZHM8L3RpdGxlPgogICAgICAgPC92YXJsaXN0ZW50cnk+ CiAKIAorICAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgICA8dGVybT48bGl0ZXJhbD5cZ2Vu Y3I8L2xpdGVyYWw+IFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhcmFtZXRl cjwvcmVwbGFjZWFibGU+IF0gLi4uIDwvdGVybT4KKworICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBTZW5kcyB0aGUgY3VycmVudCBxdWVyeSBidWZmZXIg dG8gdGhlIHNlcnZlciBmb3IgZXhlY3V0aW9uLCBhcyB3aXRoCisgICAgICAgICA8bGl0ZXJh bD5cZzwvbGl0ZXJhbD4sIHdpdGggdGhlIHNwZWNpZmllZCBwYXJhbWV0ZXJzIHBhc3NlZCBm b3IgYW55CisgICAgICAgICBwYXJhbWV0ZXIgcGxhY2Vob2xkZXJzICg8bGl0ZXJhbD4kMTwv bGl0ZXJhbD4gZXRjLikuICBUaGlzIGNvbW1hbmQKKyAgICAgICAgIGVuc3VyZXMgdGhhdCBh bnkgcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nIHRvIGVuY3J5cHRlZCBjb2x1bW5zIGFyZQor ICAgICAgICAgc2VudCB0byB0aGUgc2VydmVyIGVuY3J5cHRlZC4KKyAgICAgICAgPC9wYXJh PgorCisgICAgICAgIDxwYXJhPgorICAgICAgICAgRXhhbXBsZToKKzxwcm9ncmFtbGlzdGlu Zz4KK0lOU0VSVCBJTlRPIHRibDEgVkFMVUVTICgkMSwgJDIpIFxnZW5jciAnZmlyc3QgdmFs dWUnICdzZWNvbmQgdmFsdWUnCis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgICA8L3BhcmE+ CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisKICAgICAg IDx2YXJsaXN0ZW50cnk+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxnZXRlbnYgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBzcWxfdmFyPC9yZXBsYWNlYWJsZT4gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVudl92YXI8L3JlcGxhY2VhYmxlPjwvbGl0ZXJh bD48L3Rlcm0+CiAKQEAgLTM5NzgsNiArNDAwMCwxNyBAQCA8dGl0bGU+VmFyaWFibGVzPC90 aXRsZT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICA8dGVybT48dmFybmFtZT5ISURFX0NPTFVN Tl9FTkNSWVBUSU9OPC92YXJuYW1lPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICA8cGFyYT4KKyAgICAgICAgIElmIHRoaXMgdmFyaWFibGUgaXMgc2V0IHRvIDxsaXRl cmFsPnRydWU8L2xpdGVyYWw+LCBjb2x1bW4gZW5jcnlwdGlvbgorICAgICAgICAgZGV0YWls cyBhcmUgbm90IGRpc3BsYXllZC4gVGhpcyBpcyBtYWlubHkgdXNlZnVsIGZvciByZWdyZXNz aW9uCisgICAgICAgICB0ZXN0cy4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3Rp dGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnk+CiAg ICAgICAgIDx0ZXJtPjx2YXJuYW1lPkhJREVfVE9BU1RfQ09NUFJFU1NJT048L3Zhcm5hbWU+ PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggYTNi NzQzZThjMS4uZTE0MjVjMjIyZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtMzYsNiArMzYs OCBAQCA8dGl0bGU+U1FMIENvbW1hbmRzPC90aXRsZT4KICAgICZhYm9ydDsKICAgICZhbHRl ckFnZ3JlZ2F0ZTsKICAgICZhbHRlckNvbGxhdGlvbjsKKyAgICZhbHRlckNvbHVtbkVuY3J5 cHRpb25LZXk7CisgICAmYWx0ZXJDb2x1bW5NYXN0ZXJLZXk7CiAgICAmYWx0ZXJDb252ZXJz aW9uOwogICAgJmFsdGVyRGF0YWJhc2U7CiAgICAmYWx0ZXJEZWZhdWx0UHJpdmlsZWdlczsK QEAgLTkwLDYgKzkyLDggQEAgPHRpdGxlPlNRTCBDb21tYW5kczwvdGl0bGU+CiAgICAmY3Jl YXRlQWdncmVnYXRlOwogICAgJmNyZWF0ZUNhc3Q7CiAgICAmY3JlYXRlQ29sbGF0aW9uOwor ICAgJmNyZWF0ZUNvbHVtbkVuY3J5cHRpb25LZXk7CisgICAmY3JlYXRlQ29sdW1uTWFzdGVy S2V5OwogICAgJmNyZWF0ZUNvbnZlcnNpb247CiAgICAmY3JlYXRlRGF0YWJhc2U7CiAgICAm Y3JlYXRlRG9tYWluOwpAQCAtMTM3LDYgKzE0MSw4IEBAIDx0aXRsZT5TUUwgQ29tbWFuZHM8 L3RpdGxlPgogICAgJmRyb3BBZ2dyZWdhdGU7CiAgICAmZHJvcENhc3Q7CiAgICAmZHJvcENv bGxhdGlvbjsKKyAgICZkcm9wQ29sdW1uRW5jcnlwdGlvbktleTsKKyAgICZkcm9wQ29sdW1u TWFzdGVyS2V5OwogICAgJmRyb3BDb252ZXJzaW9uOwogICAgJmRyb3BEYXRhYmFzZTsKICAg ICZkcm9wRG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvTWFrZWZpbGUgYi9zcmMvdGVz dC9NYWtlZmlsZQppbmRleCA2OWVmMDc0ZDc1Li4yMzAwYmU4MzMyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9NYWtlZmlsZQpAQCAtMzIsNiArMzIs NyBAQCBTVUJESVJTICs9IGxkYXAKIGVuZGlmCiBlbmRpZgogaWZlcSAoJCh3aXRoX3NzbCks b3BlbnNzbCkKK1NVQkRJUlMgKz0gY29sdW1uX2VuY3J5cHRpb24KIGlmbmVxICgsJChmaWx0 ZXIgc3NsLCQoUEdfVEVTVF9FWFRSQSkpKQogU1VCRElSUyArPSBzc2wKIGVuZGlmCkBAIC00 MSw3ICs0Miw3IEBAIGVuZGlmCiAjIGNsZWFuIiBldGMgdG8gcmVjdXJzZSBpbnRvIHRoZW0u ICAoV2UgbXVzdCBmaWx0ZXIgb3V0IHRob3NlIHRoYXQgd2UKICMgaGF2ZSBjb25kaXRpb25h bGx5IGluY2x1ZGVkIGludG8gU1VCRElSUyBhYm92ZSwgZWxzZSB0aGVyZSB3aWxsIGJlCiAj IG1ha2UgY29uZnVzaW9uLikKLUFMV0FZU19TVUJESVJTID0gJChmaWx0ZXItb3V0ICQoU1VC RElSUyksZXhhbXBsZXMga2VyYmVyb3MgaWN1IGxkYXAgc3NsKQorQUxXQVlTX1NVQkRJUlMg PSAkKGZpbHRlci1vdXQgJChTVUJESVJTKSxleGFtcGxlcyBrZXJiZXJvcyBpY3UgbGRhcCBz c2wgY29sdW1uX2VuY3J5cHRpb24pCiAKICMgV2Ugd2FudCB0byByZWN1cnNlIHRvIGFsbCBz dWJkaXJzIGZvciBhbGwgc3RhbmRhcmQgdGFyZ2V0cywgZXhjZXB0IHRoYXQKICMgaW5zdGFs bGNoZWNrIGFuZCBpbnN0YWxsIHNob3VsZCBub3QgcmVjdXJzZSBpbnRvIHRoZSBzdWJkaXJl Y3RvcnkgIm1vZHVsZXMiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRp b24vLmdpdGlnbm9yZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDU2ZGJmNjlkMgotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uLy5naXRpZ25vcmUK QEAgLTAsMCArMSwzIEBACisvdGVzdF9jbGllbnQKKyMgR2VuZXJhdGVkIGJ5IHRlc3Qgc3Vp dGUKKy90bXBfY2hlY2svCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi9NYWtlZmlsZSBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjdhY2E4NGIxN2EKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlvbi9NYWtlZmlsZQpAQCAtMCww ICsxLDI5IEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZSBmb3Igc3Jj L3Rlc3QvY29sdW1uX2VuY3J5cHRpb24KKyMKKyMgUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisjIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisjCisjIHNyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL01ha2VmaWxlCisj CisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitzdWJkaXIgPSBzcmMvdGVzdC9jb2x1bW5fZW5j cnlwdGlvbgordG9wX2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRk aXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKKworb3ZlcnJpZGUgQ1BQRkxBR1MgOj0gLUkkKGxp YnBxX3NyY2RpcikgJChDUFBGTEFHUykKK0xERkxBR1NfSU5URVJOQUwgKz0gLUwkKHRvcF9i dWlsZGRpcikvc3JjL2ZlX3V0aWxzIC1scGdmZXV0aWxzICQobGlicHFfcGdwb3J0KQorCith bGw6IHRlc3RfY2xpZW50CisKK2NoZWNrOiBhbGwKKwkkKHByb3ZlX2NoZWNrKQorCitpbnN0 YWxsY2hlY2s6CisJJChwcm92ZV9pbnN0YWxsY2hlY2spCisKK2NsZWFuIGRpc3RjbGVhbiBt YWludGFpbmVyLWNsZWFuOgorCXJtIC1mIHRlc3RfY2xpZW50Lm8gdGVzdF9jbGllbnQKKwly bSAtcmYgdG1wX2NoZWNrCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9jb2x1bW5fZW5jcnlwdGlv bi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbCBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0 aW9uL3QvMDAxX2NvbHVtbl9lbmNyeXB0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAuLjRhMjM0MTRlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9jb2x1bW5fZW5jcnlwdGlvbi90LzAwMV9jb2x1bW5fZW5jcnlwdGlvbi5wbApAQCAtMCww ICsxLDE4MyBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0 aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3Rlci0+bmV3KCdub2RlJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5zdGFydDsKKwor CitzdWIgY3JlYXRlX2NtaworeworCW15ICgkY21rbmFtZSkgPSBAXzsKKwlteSAkY21rZmls ZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nta25h bWV9LnBlbSI7CisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAnZ2VucGtleScsICctYWxn b3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1lOworCSRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICR7Y21rbmFtZX0g V0lUSCAocmVhbG0gPSAnJyl9KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCitzdWIg Y3JlYXRlX2NlaworeworCW15ICgkY2VrbmFtZSwgJGJ5dGVzLCAkY21rbmFtZSwgJGNta2Zp bGVuYW1lKSA9IEBfOworCisJIyBnZW5lcmF0ZSByYW5kb20gYnl0ZXMKKwlzeXN0ZW1fb3Jf YmFpbCAnb3BlbnNzbCcsICdyYW5kJywgJy1vdXQnLCAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpV dGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbiIsICRieXRlczsKKworCSMgZW5jcnlw dCBDRUsgdXNpbmcgQ01LCisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAncGtleXV0bCcs ICctZW5jcnlwdCcsCisJICAnLWlua2V5JywgJGNta2ZpbGVuYW1lLAorCSAgJy1wa2V5b3B0 JywgJ3JzYV9wYWRkaW5nX21vZGU6b2FlcCcsCisJICAnLWluJywgIiR7UG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5iaW4iLAorCSAgJy1vdXQnLCAi JHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nla25hbWV9LmJpbi5l bmMiOworCisJbXkgJGNla2VuY2hleCA9IHVucGFjaygnSConLCBzbHVycF9maWxlICIke1Bv c3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hlY2t9LyR7Y2VrbmFtZX0uYmluLmVuYyIp OworCisJIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCisJJG5vZGUtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCBxcXtDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gV0lU SCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gJHtjbWtuYW1lfSwgZW5jcnlwdGVkX3Zh bHVlID0gJ1xceCR7Y2VrZW5jaGV4fScpO30pOworCisJcmV0dXJuOworfQorCisKK215ICRj bWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CitteSAkY21rMmZpbGVuYW1lID0g Y3JlYXRlX2NtaygnY21rMicpOworY3JlYXRlX2NlaygnY2VrMScsIDMyLCAnY21rMScsICRj bWsxZmlsZW5hbWUpOworY3JlYXRlX2NlaygnY2VrMicsIDQ4LCAnY21rMicsICRjbWsyZmls ZW5hbWUpOworCiskRU5WeydQR0NPTFVNTkVOQ1JZUFRJT04nfSA9ICcxJzsKKyRFTlZ7J1BH Q01LTE9PS1VQJ30gPSAnKj1maWxlOicgLiAke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0 bXBfY2hlY2t9IC4gJy8lay5wZW0nOworCisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXF7CitDUkVBVEUgVEFCTEUgdGJsMSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKSwKKyAgICBjIHNt YWxsaW50IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQor KTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxeworQ1JFQVRFIFRB QkxFIHRibDIgKAorICAgIGEgaW50LAorICAgIGIgdGV4dCBFTkNSWVBURUQgV0lUSCAoZW5j cnlwdGlvbl90eXBlID0gZGV0ZXJtaW5pc3RpYywgY29sdW1uX2VuY3J5cHRpb25fa2V5ID0g Y2VrMSkKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXsKK0NS RUFURSBUQUJMRSB0YmwzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQgRU5DUllQVEVEIFdJ VEggKGNvbHVtbl9lbmNyeXB0aW9uX2tleSA9IGNlazEpLAorICAgIGMgdGV4dCBFTkNSWVBU RUQgV0lUSCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gY2VrMiwgYWxnb3JpdGhtID0gJ0FF QURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0JykKKyk7Cit9KTsKKworJG5vZGUtPnNhZmVf cHNxbCgncG9zdGdyZXMnLCBxeworSU5TRVJUIElOVE8gdGJsMSAoYSwgYiwgYykgVkFMVUVT ICgxLCAkMSwgJDIpIFxnZW5jciAndmFsMScgMTEKK0lOU0VSVCBJTlRPIHRibDEgKGEsIGIs IGMpIFZBTFVFUyAoMiwgJDEsICQyKSBcZ2VuY3IgJ3ZhbDInIDIyCit9KTsKKworIyBFeHBl Y3RlZCBjaXBoZXJ0ZXh0IGxlbmd0aCBpcyAyIGJsb2NrcyBvZiBBRVMgb3V0cHV0ICgyICog MTYpIHBsdXMKKyMgaGFsZiBTSEEtMjU2IG91dHB1dCAoMTYpIGluIGhleCBlbmNvZGluZzog KDIgKiAxNiArIDE2KSAqIDIgPSA5NgorbGlrZSgkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsIHF7Q09QWSAoU0VMRUNUICogRlJPTSB0YmwxKSBUTyBTVERPVVR9KSwKKwlxci8xXHRc XFxceFswLTlhLWZdezk2fVx0XFxcXHhbMC05YS1mXXs5Nn1cbjJcdFxcXFx4WzAtOWEtZl17 OTZ9XHRcXFxceFswLTlhLWZdezk2fS8sCisJJ2luc2VydGVkIGRhdGEgaXMgZW5jcnlwdGVk Jyk7CisKK215ICRyZXN1bHQ7CisKKyRyZXN1bHQgPSAkbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxIFxnZGVzY30pOworaXMoJHJlc3Vs dCwKKwlxKGF8aW50ZWdlcgorYnx0ZXh0CitjfHNtYWxsaW50KSwKKwkncXVlcnkgcmVzdWx0 IGRlc2NyaXB0aW9uIGhhcyBvcmlnaW5hbCB0eXBlJyk7CisKKyRyZXN1bHQgPSAkbm9kZS0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIsIGMgRlJPTSB0YmwxfSk7Citp cygkcmVzdWx0LAorCXEoMXx2YWwxfDExCisyfHZhbDJ8MjIpLAorCSdkZWNyeXB0ZWQgcXVl cnkgcmVzdWx0Jyk7CisKK3sKKwlsb2NhbCAkRU5WeydQR0NNS0xPT0tVUCd9ID0gJyo9cnVu OmJyb2tlbiAlayAiJWIiJzsKKwkkcmVzdWx0ID0gJG5vZGUtPnBzcWwoJ3Bvc3RncmVzJywg cXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKKwlpc250KCRyZXN1bHQsIDAsICdxdWVy eSBmYWlscyB3aXRoIGJyb2tlbiBjbWtsb29rdXAgcnVuIHNldHRpbmcnKTsKK30KKworewor CWxvY2FsICRFTlZ7J1BHQ01LTE9PS1VQJ30gPSAiKj1ydW46cGVybCAuL3Rlc3RfcnVuX2Rl Y3J5cHQucGwgJyR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30nICVrICVh ICclYiciOworCisJJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtT RUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKKwlpcygkcmVzdWx0LAorCQlxKDF8dmFsMXwx MQorMnx2YWwyfDIyKSwKKwkJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQgd2l0aCBjbWtsb29r dXAgcnVuJyk7Cit9CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXsKK0lOU0VS VCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoMSwgJDEsICQyKSBcZ2VuY3IgJ3ZhbEIx JyAndmFsQzEnCit9KTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZh bEIxfHZhbEMxKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlzJyk7 CisKKworJG5vZGUtPmNvbW1hbmRfZmFpbHNfbGlrZShbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Qx J10sIHFyL25vdCBlbmNyeXB0ZWQvLCAndGVzdCBjbGllbnQgZmFpbHMgYmVjYXVzZSBwYXJh bWV0ZXJzIG5vdCBlbmNyeXB0ZWQnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1bHQs CisJcSgxfHZhbDF8MTEKKzJ8dmFsMnwyMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQg YWZ0ZXIgdGVzdCBjbGllbnQgaW5zZXJ0Jyk7CisKKyRub2RlLT5jb21tYW5kX29rKFsndGVz dF9jbGllbnQnLCAndGVzdDInXSwgJ3Rlc3QgY2xpZW50IHRlc3QgMicpOworCiskcmVzdWx0 ID0gJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NFTEVDVCBhLCBiLCBjIEZST00g dGJsMX0pOworaXMoJHJlc3VsdCwKKwlxKDF8dmFsMXwxMQorMnx2YWwyfDIyCiszfHZhbDN8 MzMpLAorCSdkZWNyeXB0ZWQgcXVlcnkgcmVzdWx0IGFmdGVyIHRlc3QgY2xpZW50IGluc2Vy dCAyJyk7CisKK2xpa2UoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe0NPUFkgKFNF TEVDVCAqIEZST00gdGJsMSBXSEVSRSBhID0gMykgVE8gU1RET1VUfSksCisJcXIvM1x0XFxc XHhbMC05YS1mXXs5Nn0vLAorCSdpbnNlcnRlZCBkYXRhIGlzIGVuY3J5cHRlZCcpOworCisk bm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3QzJ10sICd0ZXN0IGNsaWVu dCB0ZXN0IDMnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg cXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDF9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbDF8 MTEKKzJ8dmFsMnwyMgorM3x2YWwzdXBkfDMzKSwKKwknZGVjcnlwdGVkIHF1ZXJ5IHJlc3Vs dCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgMycpOworCiskbm9kZS0+Y29tbWFuZF9vayhb J3Rlc3RfY2xpZW50JywgJ3Rlc3Q0J10sICd0ZXN0IGNsaWVudCB0ZXN0IDQnKTsKKworJHJl c3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1QgYSwgYiBGUk9N IHRibDJ9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZhbEEKKzJ8dmFsQgorM3x2YWxBKSwKKwkn ZGVjcnlwdGVkIHF1ZXJ5IHJlc3VsdCBhZnRlciB0ZXN0IGNsaWVudCBpbnNlcnQgNCcpOwor Citpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGIsIGNvdW50KCop IEZST00gdGJsMiBHUk9VUCBCWSBiIE9SREVSIEJZIDJ9KSwKKwlxKHZhbEJ8MQordmFsQXwy KSwKKwknZ3JvdXAgYnkgZGV0ZXJtaW5pc3RpY2FsbHkgZW5jcnlwdGVkIGNvbHVtbicpOwor Ciskbm9kZS0+Y29tbWFuZF9vayhbJ3Rlc3RfY2xpZW50JywgJ3Rlc3Q1J10sICd0ZXN0IGNs aWVudCB0ZXN0IDUnKTsKKworJHJlc3VsdCA9ICRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgcXtTRUxFQ1QgYSwgYiwgYyBGUk9NIHRibDN9KTsKK2lzKCRyZXN1bHQsCisJcSgxfHZh bEIxfHZhbEMxCisyfHZhbEIyfHZhbEMyCiszfHZhbEIzfHZhbEMzKSwKKwknZGVjcnlwdGVk IHF1ZXJ5IHJlc3VsdCBtdWx0aXBsZSBrZXlzIGFmdGVyIHRlc3QgY2xpZW50IGluc2VydCA1 Jyk7CisKK2RvbmVfdGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2Vu Y3J5cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsIGIvc3JjL3Rlc3QvY29sdW1uX2VuY3J5 cHRpb24vdC8wMDJfY21rX3JvdGF0aW9uLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLmVjNDQ3ODcyYWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9j b2x1bW5fZW5jcnlwdGlvbi90LzAwMl9jbWtfcm90YXRpb24ucGwKQEAgLTAsMCArMSwxMDgg QEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisKKyMgVGVzdCBjb2x1bW4gbWFzdGVyIGtleSByb3RhdGlvbi4gIEZp cnN0LCB3ZSBnZW5lcmF0ZSBDTUsxIGFuZCBhIENFSworIyBlbmNyeXB0ZWQgd2l0aCBpdC4g IFRoZW4gd2UgYWRkIGEgQ01LMiBhbmQgZW5jcnlwdCB0aGUgQ0VLIHdpdGggaXQKKyMgYXMg d2VsbC4gIChSZWNhbGwgdGhhdCBhIENFSyBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIG11bHRp cGxlIENNS3MsCisjIGZvciB0aGlzIHJlYXNvbi4gIFRoYXQncyB3aHkgcGdfY29sZW5ja2V5 ZGF0YSBpcyBzcGxpdCBvdXQgZnJvbQorIyBwZ19jb2xlbmNrZXkuKSAgVGhlbiB3ZSByZW1v dmUgQ01LMS4gIFdlIHRlc3QgdGhhdCB3ZSBjYW4gZ2V0CisjIGRlY3J5cHRlZCBxdWVyeSBy ZXN1bHRzIGF0IGVhY2ggc3RlcC4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3Vz ZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0 aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK215ICRub2RlID0gUG9zdGdyZVNRTDo6VGVzdDo6 Q2x1c3Rlci0+bmV3KCdub2RlJyk7Ciskbm9kZS0+aW5pdDsKKyRub2RlLT5zdGFydDsKKwor CitzdWIgY3JlYXRlX2NtaworeworCW15ICgkY21rbmFtZSkgPSBAXzsKKwlteSAkY21rZmls ZW5hbWUgPSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nta25h bWV9LnBlbSI7CisJc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAnZ2VucGtleScsICctYWxn b3JpdGhtJywgJ3JzYScsICctb3V0JywgJGNta2ZpbGVuYW1lOworCSRub2RlLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywgcXF7Q1JFQVRFIENPTFVNTiBNQVNURVIgS0VZICR7Y21rbmFtZX0g V0lUSCAocmVhbG0gPSAnJyl9KTsKKwlyZXR1cm4gJGNta2ZpbGVuYW1lOworfQorCisKK215 ICRjbWsxZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsxJyk7CisKKyMgY3JlYXRlIENFSwor bXkgKCRjZWtuYW1lLCAkYnl0ZXMpID0gKCdjZWsxJywgMTYrMTYpOworCisjIGdlbmVyYXRl IHJhbmRvbSBieXRlcworc3lzdGVtX29yX2JhaWwgJ29wZW5zc2wnLCAncmFuZCcsICctb3V0 JywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1lfS5i aW4iLCAkYnl0ZXM7CisKKyMgZW5jcnlwdCBDRUsgdXNpbmcgQ01LCitzeXN0ZW1fb3JfYmFp bCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKyAgJy1pbmtleScsICRjbWsx ZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAorICAn LWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1l fS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hl Y2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKK215ICRjZWtlbmNoZXggPSB1bnBhY2soJ0gq Jywgc2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8k e2Nla25hbWV9LmJpbi5lbmMiKTsKKworIyBjcmVhdGUgQ0VLIGluIGRhdGFiYXNlCiskbm9k ZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxe0NSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgJHtjZWtuYW1lfSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBl bmNyeXB0ZWRfdmFsdWUgPSAnXFx4JHtjZWtlbmNoZXh9Jyk7fSk7CisKKyRFTlZ7J1BHQ09M VU1ORU5DUllQVElPTid9ID0gJzEnOworJEVOVnsnUEdDTUtMT09LVVAnfSA9ICcqPWZpbGU6 JyAuICR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30gLiAnLyVrLnBlbSc7 CisKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7CitDUkVBVEUgVEFCTEUgdGJs MSAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5j cnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK30pOworCiskbm9kZS0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsIHF7CitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDEsICQxKSBcZ2Vu Y3IgJ3ZhbDEnCitJTlNFUlQgSU5UTyB0YmwxIChhLCBiKSBWQUxVRVMgKDIsICQxKSBcZ2Vu Y3IgJ3ZhbDInCit9KTsKKworaXMoJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxe1NF TEVDVCBhLCBiIEZST00gdGJsMX0pLAorCXEoMXx2YWwxCisyfHZhbDIpLAorCSdkZWNyeXB0 ZWQgcXVlcnkgcmVzdWx0IHdpdGggb25lIENNSycpOworCisKKyMgY3JlYXRlIG5ldyBDTUsK K215ICRjbWsyZmlsZW5hbWUgPSBjcmVhdGVfY21rKCdjbWsyJyk7CisKKyMgZW5jcnlwdCBD RUsgdXNpbmcgbmV3IENNSworIworIyAoSGVyZSwgd2Ugc3RpbGwgaGF2ZSB0aGUgcGxhaW50 ZXh0IG9mIHRoZSBDRUsgYXZhaWxhYmxlIGZyb20KKyMgZWFybGllci4gIEluIHJlYWxpdHks IG9uZSB3b3VsZCBkZWNyeXB0IHRoZSBDRUsgd2l0aCB0aGUgZmlyc3QgQ01LCisjIGFuZCB0 aGVuIHJlLWVuY3J5cHQgaXQgd2l0aCB0aGUgc2Vjb25kIENNSy4pCitzeXN0ZW1fb3JfYmFp bCAnb3BlbnNzbCcsICdwa2V5dXRsJywgJy1lbmNyeXB0JywKKyAgJy1pbmtleScsICRjbWsy ZmlsZW5hbWUsCisgICctcGtleW9wdCcsICdyc2FfcGFkZGluZ19tb2RlOm9hZXAnLAorICAn LWluJywgIiR7UG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnRtcF9jaGVja30vJHtjZWtuYW1l fS5iaW4iLAorICAnLW91dCcsICIke1Bvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOjp0bXBfY2hl Y2t9LyR7Y2VrbmFtZX0uYmluLmVuYyI7CisKKyRjZWtlbmNoZXggPSB1bnBhY2soJ0gqJywg c2x1cnBfZmlsZSAiJHtQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6dG1wX2NoZWNrfS8ke2Nl a25hbWV9LmJpbi5lbmMiKTsKKworIyBhZGQgbmV3IGRhdGEgcmVjb3JkIGZvciBDRUsgaW4g ZGF0YWJhc2UKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXF7QUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZICR7Y2VrbmFtZX0gQUREIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tl eSA9IGNtazIsIGVuY3J5cHRlZF92YWx1ZSA9ICdcXHgke2Nla2VuY2hleH0nKTt9KTsKKwor Citpcygkbm9kZS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHF7U0VMRUNUIGEsIGIgRlJPTSB0 YmwxfSksCisJcSgxfHZhbDEKKzJ8dmFsMiksCisJJ2RlY3J5cHRlZCBxdWVyeSByZXN1bHQg d2l0aCB0d28gQ01LcycpOworCisKKyMgZGVsZXRlIENFSyByZWNvcmQgZm9yIGZpcnN0IENN SworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxcXtBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgJHtjZWtuYW1lfSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGNt azEpO30pOworCisKK2lzKCRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcXtTRUxFQ1Qg YSwgYiBGUk9NIHRibDF9KSwKKwlxKDF8dmFsMQorMnx2YWwyKSwKKwknZGVjcnlwdGVkIHF1 ZXJ5IHJlc3VsdCB3aXRoIG9ubHkgbmV3IENNSycpOworCisKK2RvbmVfdGVzdGluZygpOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9jbGllbnQuYyBi L3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjM2ZGU4OGM3OAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfY2xpZW50LmMKQEAgLTAsMCAr MSwyMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9zdGdyZVNRTCBH bG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXNfZmUu aCIKKworI2luY2x1ZGUgImxpYnBxLWZlLmgiCisKKworc3RhdGljIGludAordGVzdDEoUEdj b25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwljb25zdCBjaGFyICp2YWx1ZXNb XSA9IHsiMyIsICJ2YWwzIiwgIjMzIn07CisKKwlyZXMgPSBQUWV4ZWNQYXJhbXMoY29ubiwg IklOU0VSVCBJTlRPIHRibDEgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMykiLAorCQkJ CQkgICAzLCBOVUxMLCB2YWx1ZXMsIE5VTEwsIE5VTEwsIDApOworCWlmIChQUXJlc3VsdFN0 YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwg IlBRZXhlY1BhcmFtcygpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29u bikpOworCQlyZXR1cm4gMTsKKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAor dGVzdDIoUEdjb25uICpjb25uKQoreworCVBHcmVzdWx0ICAgKnJlcywKKwkJCSAgICpyZXMy OworCWNvbnN0IGNoYXIgKnZhbHVlc1tdID0geyIzIiwgInZhbDMiLCAiMzMifTsKKwlpbnQJ CQlmb3JjZXNbXSA9IHtmYWxzZSwgdHJ1ZX07CisKKwlyZXMgPSBQUXByZXBhcmUoY29ubiwg IiIsICJJTlNFUlQgSU5UTyB0YmwxIChhLCBiLCBjKSBWQUxVRVMgKCQxLCAkMiwgJDMpIiwK KwkJCQkJMywgTlVMTCk7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09N TUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAl c1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKwor CXJlczIgPSBQUWRlc2NyaWJlUHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0 YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIs ICJQUWRlc2NyaWJlUHJlcGFyZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNz YWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7CisJfQorCisJaWYgKCEoIVBRcGFyYW1pc2VuY3J5 cHRlZChyZXMyLCAwKSAmJgorCQkgIFBRcGFyYW1pc2VuY3J5cHRlZChyZXMyLCAxKSkpCisJ eworCQlmcHJpbnRmKHN0ZGVyciwgIndyb25nIHJlc3VsdHMgZnJvbSBQUXBhcmFtaXNlbmNy eXB0ZWQoKVxuIik7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBRZXhlY1ByZXBhcmVk Mihjb25uLCAiIiwgMywgdmFsdWVzLCBOVUxMLCBOVUxMLCBmb3JjZXMsIDAsIHJlczIpOwor CWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlm cHJpbnRmKHN0ZGVyciwgIlBRZXhlY1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQ UWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50Cit0ZXN0MyhQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAq cmVzLAorCQkJICAgKnJlczI7CisJY29uc3QgY2hhciAqdmFsdWVzW10gPSB7IjMiLCAidmFs M3VwZCJ9OworCisJcmVzID0gUFFwcmVwYXJlKGNvbm4sICIiLCAiVVBEQVRFIHRibDEgU0VU IGIgPSAkMiBXSEVSRSBhID0gJDEiLAorCQkJCQkyLCBOVUxMKTsKKwlpZiAoUFFyZXN1bHRT dGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIs ICJQUXByZXBhcmUoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4p KTsKKwkJcmV0dXJuIDE7CisJfQorCisJcmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChjb25u LCAiIik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlczIpICE9IFBHUkVTX0NPTU1BTkRfT0sp CisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZGVzY3JpYmVQcmVwYXJlZCgpIGZhaWxlZDog JXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisK KwlyZXMgPSBQUWV4ZWNQcmVwYXJlZDIoY29ubiwgIiIsIDIsIHZhbHVlcywgTlVMTCwgTlVM TCwgTlVMTCwgMCwgcmVzMik7CisJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNf Q09NTUFORF9PSykKKwl7CisJCWZwcmludGYoc3RkZXJyLCAiUFFleGVjUHJlcGFyZWQoKSBm YWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0dXJuIDE7 CisJfQorCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQKK3Rlc3Q0KFBHY29ubiAqY29u bikKK3sKKwlQR3Jlc3VsdCAgICpyZXMsCisJCQkgICAqcmVzMjsKKwljb25zdCBjaGFyICp2 YWx1ZXNbXSA9IHsiMSIsICJ2YWxBIiwgIjIiLCAidmFsQiIsICIzIiwgInZhbEEifTsKKwor CXJlcyA9IFBRcHJlcGFyZShjb25uLCAiIiwgIklOU0VSVCBJTlRPIHRibDIgKGEsIGIpIFZB TFVFUyAoJDEsICQyKSwgKCQzLCAkNCksICgkNSwgJDYpIiwKKwkJCQkJNiwgTlVMTCk7CisJ aWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZw cmludGYoc3RkZXJyLCAiUFFwcmVwYXJlKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9y TWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlczIgPSBQUWRlc2NyaWJl UHJlcGFyZWQoY29ubiwgIiIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMyKSAhPSBQR1JF U19DT01NQU5EX09LKQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWRlc2NyaWJlUHJlcGFy ZWQoKSBmYWlsZWQ6ICVzXG4iLAorCQkJCVBRZXJyb3JNZXNzYWdlKGNvbm4pKTsKKwkJcmV0 dXJuIDE7CisJfQorCisJcmVzID0gUFFleGVjUHJlcGFyZWQyKGNvbm4sICIiLCA2LCB2YWx1 ZXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCWlmIChQUXJlc3VsdFN0YXR1cyhy ZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRZXhl Y1ByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7 CisJCXJldHVybiAxOworCX0KKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50Cit0ZXN0 NShQR2Nvbm4gKmNvbm4pCit7CisJUEdyZXN1bHQgICAqcmVzLAorCQkJICAgKnJlczI7CisJ Y29uc3QgY2hhciAqdmFsdWVzW10gPSB7CisJCSIyIiwgInZhbEIyIiwgInZhbEMyIiwKKwkJ IjMiLCAidmFsQjMiLCAidmFsQzMiCisJfTsKKworCXJlcyA9IFBRcHJlcGFyZShjb25uLCAi IiwgIklOU0VSVCBJTlRPIHRibDMgKGEsIGIsIGMpIFZBTFVFUyAoJDEsICQyLCAkMyksICgk NCwgJDUsICQ2KSIsCisJCQkJCTYsIE5VTEwpOworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMp ICE9IFBHUkVTX0NPTU1BTkRfT0spCisJeworCQlmcHJpbnRmKHN0ZGVyciwgIlBRcHJlcGFy ZSgpIGZhaWxlZDogJXNcbiIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1 cm4gMTsKKwl9CisKKwlyZXMyID0gUFFkZXNjcmliZVByZXBhcmVkKGNvbm4sICIiKTsKKwlp ZiAoUFFyZXN1bHRTdGF0dXMocmVzMikgIT0gUEdSRVNfQ09NTUFORF9PSykKKwl7CisJCWZw cmludGYoc3RkZXJyLCAiUFFkZXNjcmliZVByZXBhcmVkKCkgZmFpbGVkOiAlc1xuIiwKKwkJ CQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCXJlcyA9IFBR ZXhlY1ByZXBhcmVkMihjb25uLCAiIiwgNiwgdmFsdWVzLCBOVUxMLCBOVUxMLCBOVUxMLCAw LCByZXMyKTsKKwlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09L KQorCXsKKwkJZnByaW50ZihzdGRlcnIsICJQUWV4ZWNQcmVwYXJlZCgpIGZhaWxlZDogJXNc biIsCisJCQkJUFFlcnJvck1lc3NhZ2UoY29ubikpOworCQlyZXR1cm4gMTsKKwl9CisKKwly ZXR1cm4gMDsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKK3sKKwlQ R2Nvbm4JICAgKmNvbm47CisJaW50CQkJcmV0ID0gMDsKKworCWNvbm4gPSBQUWNvbm5lY3Rk YigiIik7CisJaWYgKFBRc3RhdHVzKGNvbm4pICE9IENPTk5FQ1RJT05fT0spCisJeworCQlm cHJpbnRmKHN0ZGVyciwgIkNvbm5lY3Rpb24gdG8gZGF0YWJhc2UgZmFpbGVkOiAlc1xuIiwK KwkJCQlQUWVycm9yTWVzc2FnZShjb25uKSk7CisJCXJldHVybiAxOworCX0KKworCWlmIChh cmdjIDwgMiB8fCBhcmd2WzFdID09IE5VTEwpCisJCXJldHVybiA4NzsKKwllbHNlIGlmIChz dHJjbXAoYXJndlsxXSwgInRlc3QxIikgPT0gMCkKKwkJcmV0ID0gdGVzdDEoY29ubik7CisJ ZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0MiIpID09IDApCisJCXJldCA9IHRlc3Qy KGNvbm4pOworCWVsc2UgaWYgKHN0cmNtcChhcmd2WzFdLCAidGVzdDMiKSA9PSAwKQorCQly ZXQgPSB0ZXN0Myhjb25uKTsKKwllbHNlIGlmIChzdHJjbXAoYXJndlsxXSwgInRlc3Q0Iikg PT0gMCkKKwkJcmV0ID0gdGVzdDQoY29ubik7CisJZWxzZSBpZiAoc3RyY21wKGFyZ3ZbMV0s ICJ0ZXN0NSIpID09IDApCisJCXJldCA9IHRlc3Q1KGNvbm4pOworCWVsc2UKKwkJcmV0ID0g ODg7CisKKwlQUWZpbmlzaChjb25uKTsKKwlyZXR1cm4gcmV0OworfQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvY29sdW1uX2VuY3J5cHRpb24vdGVzdF9ydW5fZGVjcnlwdC5wbCBiL3NyYy90 ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKbmV3IGZpbGUgbW9k ZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMC4uOTY2NDM0OWYxNAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy90ZXN0L2NvbHVtbl9lbmNyeXB0aW9uL3Rlc3RfcnVuX2RlY3J5cHQucGwKQEAg LTAsMCArMSw0MSBAQAorIyEvdXNyL2Jpbi9wZXJsCisKKyMgVGVzdC9zYW1wbGUgY29tbWFu ZCBmb3IgbGlicHEgY21rbG9va3VwIHJ1biBzY2hlbWUKKyMKKyMgVGhpcyBqdXN0IHBsYWNl cyB0aGUgZGF0YSBpbnRvIHRlbXBvcmFyeSBmaWxlcyBhbmQgcnVucyB0aGUgb3BlbnNzbAor IyBjb21tYW5kIG9uIGl0LiAgKEluIHByYWN0aWNlLCB0aGlzIGNvdWxkIG1vcmUgc2ltcGx5 IGJlIHdyaXR0ZW4gYXMgYQorIyBzaGVsbCBzY3JpcHQsIGJ1dCB0aGlzIHdheSBpdCdzIG1v cmUgcG9ydGFibGUuKQorCisjIENvcHlyaWdodCAoYykgMjAyMS0yMDIyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdz OworCit1c2UgTUlNRTo6QmFzZTY0OworCitteSAoJHRtcGRpciwgJGNta25hbWUsICRhbGcs ICRiNjRkYXRhKSA9IEBBUkdWOworCitkaWUgdW5sZXNzICRhbGcgZXEgJ1JTQUVTX09BRVBf U0hBXzEnOworCitvcGVuIG15ICRmaCwgJz46cmF3JywgIiR7dG1wZGlyfS9pbnB1dC50bXAi IG9yIGRpZTsKK3ByaW50ICRmaCBkZWNvZGVfYmFzZTY0KCRiNjRkYXRhKTsKK2Nsb3NlICRm aDsKKworc3lzdGVtKCdvcGVuc3NsJywgJ3BrZXl1dGwnLCAnLWRlY3J5cHQnLAorCSctaW5r ZXknLCAiJHt0bXBkaXJ9LyR7Y21rbmFtZX0ucGVtIiwgJy1wa2V5b3B0JywgJ3JzYV9wYWRk aW5nX21vZGU6b2FlcCcsCisJJy1pbicsICIke3RtcGRpcn0vaW5wdXQudG1wIiwgJy1vdXQn LCAiJHt0bXBkaXJ9L291dHB1dC50bXAiKSA9PSAwIG9yIGRpZTsKKworb3BlbiAkZmgsICc8 OnJhdycsICIke3RtcGRpcn0vb3V0cHV0LnRtcCIgb3IgZGllOworbXkgJGRhdGEgPSAnJzsK Kword2hpbGUgKDEpIHsKKwlteSAkc3VjY2VzcyA9IHJlYWQgJGZoLCAkZGF0YSwgMTAwLCBs ZW5ndGgoJGRhdGEpOworCWRpZSAkISBpZiBub3QgZGVmaW5lZCAkc3VjY2VzczsKKwlsYXN0 IGlmIG5vdCAkc3VjY2VzczsKK30KKworY2xvc2UgJGZoOworCit1bmxpbmsgIiR7dG1wZGly fS9pbnB1dC50bXAiLCAiJHt0bXBkaXJ9L291dHB1dC50bXAiOworCitwcmludCBlbmNvZGVf YmFzZTY0KCRkYXRhKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y29sdW1uX2VuY3J5cHRpb24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb2x1 bW5fZW5jcnlwdGlvbi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uYTMxZTUzOTFjZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY29sdW1uX2VuY3J5cHRpb24ub3V0CkBAIC0wLDAgKzEsMTE1IEBACitcc2V0IEhJ REVfQ09MVU1OX0VOQ1JZUFRJT04gZmFsc2UKK0NSRUFURSBST0xFIHJlZ3Jlc3NfZW5jX3Vz ZXIxOworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAoCisgICAgcmVhbG0g PSAndGVzdCcKKyk7CitDT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNtazEgSVMgJ2Nv bHVtbiBtYXN0ZXIga2V5JzsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxYSBXSVRI ICgKKyAgICByZWFsbSA9ICd0ZXN0JworKTsKK0NSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBj bWsyIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QyJworKTsKK0NSRUFURSBDT0xVTU4gTUFT VEVSIEtFWSBjbWsyYSBXSVRIICgKKyAgICByZWFsbSA9ICd0ZXN0MicKKyk7CitDUkVBVEUg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKAorICAgIGNvbHVtbl9t YXN0ZXJfa2V5ID0gY21rMSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScs CisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ09NTUVOVCBPTiBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1uIGVuY3J5cHRpb24ga2V5JzsK K0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIEFERCBWQUxVRSAoCisgICAgY29s dW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9T SEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQUxURVIg Q09MVU1OIEVOQ1JZUFRJT04gS0VZIGZhaWwgQUREIFZBTFVFICgKKyAgICBjb2x1bW5fbWFz dGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywK KyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyk7CitFUlJPUjogIGNvbHVt biBlbmNyeXB0aW9uIGtleSAiZmFpbCIgZG9lcyBub3QgZXhpc3QKK0NSRUFURSBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMiBXSVRIIFZBTFVFUyAoCisgICAgY29sdW1uX21hc3Rlcl9r ZXkgPSBjbWsyLAorICAgIGFsZ29yaXRobSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBl bmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFEQkVFRicKKyksCisoCisgICAgY29sdW1uX21hc3Rl cl9rZXkgPSBjbWsyYSwKKyAgICBhbGdvcml0aG0gPSAnUlNBRVNfT0FFUF9TSEFfMScsCisg ICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCispOworQ1JFQVRFIENPTFVNTiBF TkNSWVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVTICgKKyAgICBjb2x1bW5fbWFzdGVyX2tl eSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVu Y3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsKK0NSRUFURSBUQUJMRSB0YmxfZmFp bCAoCisgICAgYSBpbnQsCisgICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lU SCAoY29sdW1uX2VuY3J5cHRpb25fa2V5ID0gbm90ZXhpc3QpCispOworRVJST1I6ICBjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgIm5vdGV4aXN0IiBkb2VzIG5vdCBleGlzdAorQ1JFQVRFIFRB QkxFIHRibF8yOWYzICgKKyAgICBhIGludCwKKyAgICBiIHRleHQsCisgICAgYyB0ZXh0IEVO Q1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBjZWsxKQorKTsKK1xkIHRi bF8yOWYzCisgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGJsXzI5ZjMiCisgQ29sdW1u IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGEgICAgICB8 IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGMgICAgICB8IHRleHQgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorCitcZCsgdGJsXzI5ZjMKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRibF8yOWYzIgorIENvbHVtbiB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgfCBTdG9yYWdlICB8 IEVuY3J5cHRpb24gfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgYSAgICAgIHwgaW50 ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgIHwgICAg ICAgICAgICB8ICAgICAgICAgICAgICB8IAorIGIgICAgICB8IHRleHQgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgfCAgICAg ICAgICAgICAgfCAKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAgICAgICAgIHwgZXh0ZXJuYWwgfCBjZWsxICAgICAgIHwgICAgICAgICAgICAgIHwgCisK K0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBSRVNUUklDVDsgIC0tIGZhaWwKK0VSUk9S OiAgY2Fubm90IGRyb3AgY29sdW1uIG1hc3RlciBrZXkgY21rMSBiZWNhdXNlIG90aGVyIG9i amVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2Vr MSBkYXRhIGZvciBtYXN0ZXIga2V5IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVyIGtl eSBjbWsxCitjb2x1bW4gZW5jcnlwdGlvbiBrZXkgY2VrNCBkYXRhIGZvciBtYXN0ZXIga2V5 IGNtazEgZGVwZW5kcyBvbiBjb2x1bW4gbWFzdGVyIGtleSBjbWsxCitISU5UOiAgVXNlIERS T1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxU RVIgQ09MVU1OIE1BU1RFUiBLRVkgY21rMiBSRU5BTUUgVE8gY21rMzsKK0FMVEVSIENPTFVN TiBNQVNURVIgS0VZIGNtazEgUkVOQU1FIFRPIGNtazM7ICAtLSBmYWlsCitFUlJPUjogIGNv bHVtbiBtYXN0ZXIga2V5ICJjbWszIiBhbHJlYWR5IGV4aXN0cworQUxURVIgQ09MVU1OIE1B U1RFUiBLRVkgY21reCBSRU5BTUUgVE8gY21reTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1u IG1hc3RlciBrZXkgImNta3giIGRvZXMgbm90IGV4aXN0CitBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMiBSRU5BTUUgVE8gY2VrMzsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9O IEtFWSBjZWsxIFJFTkFNRSBUTyBjZWszOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gZW5j cnlwdGlvbiBrZXkgImNlazMiIGFscmVhZHkgZXhpc3RzCitBTFRFUiBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1u IGVuY3J5cHRpb24ga2V5ICJjZWt4IiBkb2VzIG5vdCBleGlzdAorU0VUIFJPTEUgcmVncmVz c19lbmNfdXNlcjE7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWszOyAgLS0gZmFp bAorRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBjZWsz CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGNtazM7ICAtLSBmYWlsCitFUlJPUjogIG11c3Qg YmUgb3duZXIgb2YgY29sdW1uIG1hc3RlciBrZXkgY21rMworUkVTRVQgUk9MRTsKK0FMVEVS IENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVncmVzc19lbmNfdXNlcjE7CitB TFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05FUiBUTyByZWdyZXNzX2VuY191 c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOworRFJPUCBDT0xVTU4gRU5DUllQ VElPTiBLRVkgY2VrMzsgIC0tIG9rIG5vdworRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsz OyAgLS0gb2sgbm93CitSRVNFVCBST0xFOworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSk7CitBTFRFUiBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tl eSA9IGNtazFhKTsgIC0tIGZhaWwKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24ga2V5ICJj ZWsxIiBoYXMgbm8gZGF0YSBmb3IgbWFzdGVyIGtleSAiY21rMWEiCitBTFRFUiBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tleSA9IGZh aWwpOyAgLS0gZmFpbAorRVJST1I6ICBjb2x1bW4gbWFzdGVyIGtleSAiZmFpbCIgZG9lcyBu b3QgZXhpc3QKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFMVUUg KGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsIGFsZ29yaXRobSA9ICdmb28nKTsgIC0tIGZh aWwKK0VSUk9SOiAgYXR0cmlidXRlICJhbGdvcml0aG0iIG11c3Qgbm90IGJlIHNwZWNpZmll ZAorRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNDsKK0RST1AgQ09MVU1OIEVOQ1JZ UFRJT04gS0VZIGZhaWw7CitFUlJPUjogIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAiZmFpbCIg ZG9lcyBub3QgZXhpc3QKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21rMWE7CitEUk9QIENP TFVNTiBNQVNURVIgS0VZIGZhaWw7CitFUlJPUjogIGNvbHVtbiBtYXN0ZXIga2V5ICJmYWls IiBkb2VzIG5vdCBleGlzdAorRFJPUCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vYmplY3RfYWRkcmVzcy5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29iamVjdF9hZGRyZXNzLm91dAppbmRleCA0MTE3 ZmMyN2M5Li5iNDNlMjRhOWExIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29iamVjdF9hZGRyZXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L29iamVjdF9hZGRyZXNzLm91dApAQCAtMzcsNiArMzcsOCBAQCBDUkVBVEUgU0VSVkVSICJp bnRlZ2VyIiBGT1JFSUdOIERBVEEgV1JBUFBFUiBhZGRyX2ZkdzsKIENSRUFURSBVU0VSIE1B UFBJTkcgRk9SIHJlZ3Jlc3NfYWRkcl91c2VyIFNFUlZFUiAiaW50ZWdlciI7CiBBTFRFUiBE RUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgSU4gU0NIRU1B IHB1YmxpYyBHUkFOVCBBTEwgT04gVEFCTEVTIFRPIHJlZ3Jlc3NfYWRkcl91c2VyOwogQUxU RVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfYWRkcl91c2VyIFJFVk9L RSBERUxFVEUgT04gVEFCTEVTIEZST00gcmVncmVzc19hZGRyX3VzZXI7CitDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkgYWRkcl9jbWsgV0lUSCAocmVhbG0gPSAnJyk7CitDUkVBVEUgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrIFdJVEggVkFMVUVTIChjb2x1bW5fbWFzdGVy X2tleSA9IGFkZHJfY21rLCBlbmNyeXB0ZWRfdmFsdWUgPSAnJyk7CiAtLSB0aGlzIHRyYW5z Zm9ybSB3b3VsZCBiZSBxdWl0ZSB1bnNhZmUgdG8gbGVhdmUgbHlpbmcgYXJvdW5kLAogLS0g ZXhjZXB0IHRoYXQgdGhlIFNRTCBsYW5ndWFnZSBwYXlzIG5vIGF0dGVudGlvbiB0byB0cmFu c2Zvcm1zOgogQ1JFQVRFIFRSQU5TRk9STSBGT1IgaW50IExBTkdVQUdFIFNRTCAoCkBAIC0x MDUsNyArMTA3LDggQEAgQkVHSU4KIAkJKCd0ZXh0IHNlYXJjaCB0ZW1wbGF0ZScpLCAoJ3Rl eHQgc2VhcmNoIGNvbmZpZ3VyYXRpb24nKSwKIAkJKCdwb2xpY3knKSwgKCd1c2VyIG1hcHBp bmcnKSwgKCdkZWZhdWx0IGFjbCcpLCAoJ3RyYW5zZm9ybScpLAogCQkoJ29wZXJhdG9yIG9m IGFjY2VzcyBtZXRob2QnKSwgKCdmdW5jdGlvbiBvZiBhY2Nlc3MgbWV0aG9kJyksCi0JCSgn cHVibGljYXRpb24gcmVsYXRpb24nKQorCQkoJ3B1YmxpY2F0aW9uIHJlbGF0aW9uJyksCisJ CSgnY29sdW1uIGVuY3J5cHRpb24ga2V5JyksICgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRh dGEnKSwgKCdjb2x1bW4gbWFzdGVyIGtleScpCiAJTE9PUAogCQlGT1IgbmFtZXMgSU4gVkFM VUVTICgne2VpbnN9JyksICgne2FkZHJfbnNwLCB6d2VpfScpLCAoJ3tlaW5zLCB6d2VpLCBk cmVpfScpCiAJCUxPT1AKQEAgLTMxOSw2ICszMjIsMjQgQEAgV0FSTklORzogIGVycm9yIGZv ciBwdWJsaWNhdGlvbiByZWxhdGlvbix7YWRkcl9uc3AsendlaX0se306IGFyZ3VtZW50IGxp c3QgbGVuZ3QKIFdBUk5JTkc6ICBlcnJvciBmb3IgcHVibGljYXRpb24gcmVsYXRpb24se2Fk ZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogcmVsYXRpb24gImFkZHJfbnNwLnp3ZWkiIGRvZXMg bm90IGV4aXN0CiBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtl aW5zLHp3ZWksZHJlaX0se306IGFyZ3VtZW50IGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3Rs eSAxCiBXQVJOSU5HOiAgZXJyb3IgZm9yIHB1YmxpY2F0aW9uIHJlbGF0aW9uLHtlaW5zLHp3 ZWksZHJlaX0se2ludGVnZXJ9OiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3Qg aW1wbGVtZW50ZWQ6ICJlaW5zLnp3ZWkuZHJlaSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29s dW1uIGVuY3J5cHRpb24ga2V5LHtlaW5zfSx7fTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJl aW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlw dGlvbiBrZXkse2VpbnN9LHtpbnRlZ2VyfTogY29sdW1uIGVuY3J5cHRpb24ga2V5ICJlaW5z IiBkb2VzIG5vdCBleGlzdAorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlv biBrZXkse2FkZHJfbnNwLHp3ZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhh Y3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7YWRk cl9uc3AsendlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3Rs eSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlucyx6 d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhhY3RseSAxCitXQVJO SU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSx7ZWlucyx6d2VpLGRyZWl9 LHtpbnRlZ2VyfTogbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklO RzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWluc30se306IHVu c3VwcG9ydGVkIG9iamVjdCB0eXBlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSIKK1dB Uk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEse2VpbnN9LHtp bnRlZ2VyfTogdW5zdXBwb3J0ZWQgb2JqZWN0IHR5cGUgImNvbHVtbiBlbmNyeXB0aW9uIGtl eSBkYXRhIgorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0 YSx7YWRkcl9uc3AsendlaX0se306IHVuc3VwcG9ydGVkIG9iamVjdCB0eXBlICJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgZGF0YSIKK1dBUk5JTkc6ICBlcnJvciBmb3IgY29sdW1uIGVuY3J5 cHRpb24ga2V5IGRhdGEse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogdW5zdXBwb3J0ZWQg b2JqZWN0IHR5cGUgImNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhIgorV0FSTklORzogIGVy cm9yIGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSx7ZWlucyx6d2VpLGRyZWl9LHt9 OiB1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSAiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEi CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSBkYXRhLHtlaW5z LHp3ZWksZHJlaX0se2ludGVnZXJ9OiB1bnN1cHBvcnRlZCBvYmplY3QgdHlwZSAiY29sdW1u IGVuY3J5cHRpb24ga2V5IGRhdGEiCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0 ZXIga2V5LHtlaW5zfSx7fTogY29sdW1uIG1hc3RlciBrZXkgImVpbnMiIGRvZXMgbm90IGV4 aXN0CitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtlaW5zfSx7aW50 ZWdlcn06IGNvbHVtbiBtYXN0ZXIga2V5ICJlaW5zIiBkb2VzIG5vdCBleGlzdAorV0FSTklO RzogIGVycm9yIGZvciBjb2x1bW4gbWFzdGVyIGtleSx7YWRkcl9uc3AsendlaX0se306IG5h bWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1dBUk5JTkc6ICBlcnJvciBmb3Ig Y29sdW1uIG1hc3RlciBrZXkse2FkZHJfbnNwLHp3ZWl9LHtpbnRlZ2VyfTogbmFtZSBsaXN0 IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQorV0FSTklORzogIGVycm9yIGZvciBjb2x1bW4g bWFzdGVyIGtleSx7ZWlucyx6d2VpLGRyZWl9LHt9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3Qg YmUgZXhhY3RseSAxCitXQVJOSU5HOiAgZXJyb3IgZm9yIGNvbHVtbiBtYXN0ZXIga2V5LHtl aW5zLHp3ZWksZHJlaX0se2ludGVnZXJ9OiBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUgZXhh Y3RseSAxCiAtLSB0aGVzZSBvYmplY3QgdHlwZXMgY2Fubm90IGJlIHF1YWxpZmllZCBuYW1l cwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnbGFuZ3VhZ2UnLCAne29uZX0nLCAn e30nKTsKIEVSUk9SOiAgbGFuZ3VhZ2UgIm9uZSIgZG9lcyBub3QgZXhpc3QKQEAgLTM3NCw2 ICszOTUsMTQgQEAgU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0aW9u JywgJ3tvbmV9JywgJ3t9Jyk7CiBFUlJPUjogIHN1YnNjcmlwdGlvbiAib25lIiBkb2VzIG5v dCBleGlzdAogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygnc3Vic2NyaXB0aW9uJywg J3tvbmUsdHdvfScsICd7fScpOwogRVJST1I6ICBuYW1lIGxpc3QgbGVuZ3RoIG11c3QgYmUg ZXhhY3RseSAxCitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlw dGlvbiBrZXknLCAne29uZX0nLCAne30nKTsKK0VSUk9SOiAgY29sdW1uIGVuY3J5cHRpb24g a2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1QgcGdfZ2V0X29iamVjdF9hZGRyZXNz KCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZSx0d299JywgJ3t9Jyk7CitFUlJPUjog IG5hbWUgbGlzdCBsZW5ndGggbXVzdCBiZSBleGFjdGx5IDEKK1NFTEVDVCBwZ19nZXRfb2Jq ZWN0X2FkZHJlc3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitFUlJP UjogIGNvbHVtbiBtYXN0ZXIga2V5ICJvbmUiIGRvZXMgbm90IGV4aXN0CitTRUxFQ1QgcGdf Z2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25lLHR3b30nLCAn e30nKTsKK0VSUk9SOiAgbmFtZSBsaXN0IGxlbmd0aCBtdXN0IGJlIGV4YWN0bHkgMQogLS0g dGVzdCBzdWNjZXNzZnVsIGNhc2VzCiBXSVRIIG9iamVjdHMgKHR5cGUsIG5hbWUsIGFyZ3Mp IEFTIChWQUxVRVMKIAkJCQkoJ3RhYmxlJywgJ3thZGRyX25zcCwgZ2VudGFibGV9Jzo6dGV4 dFtdLCAne30nOjp0ZXh0W10pLApAQCAtMzk2LDYgKzQyNSw5IEBAIFdJVEggb2JqZWN0cyAo dHlwZSwgbmFtZSwgYXJncykgQVMgKFZBTFVFUwogCQkJCSgndHlwZScsICd7YWRkcl9uc3Au Z2VuZW51bX0nLCAne30nKSwKIAkJCQkoJ2Nhc3QnLCAne2ludDh9JywgJ3tpbnQ0fScpLAog CQkJCSgnY29sbGF0aW9uJywgJ3tkZWZhdWx0fScsICd7fScpLAorCQkJCSgnY29sdW1uIGVu Y3J5cHRpb24ga2V5JywgJ3thZGRyX2Nla30nLCAne30nKSwKKy0tVE9ETzoJCQkJKCdjb2x1 bW4gZW5jcnlwdGlvbiBrZXkgZGF0YScsICd7YWRkcl9jZWt9JywgJ3thZGRyX2Nta30nKSwK KwkJCQkoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3thZGRyX2Nta30nLCAne30nKSwKIAkJCQko J3RhYmxlIGNvbnN0cmFpbnQnLCAne2FkZHJfbnNwLCBnZW50YWJsZSwgYV9jaGt9JywgJ3t9 JyksCiAJCQkJKCdkb21haW4gY29uc3RyYWludCcsICd7YWRkcl9uc3AuZ2VuZG9tYWlufScs ICd7ZG9tY29uc3RyfScpLAogCQkJCSgnY29udmVyc2lvbicsICd7cGdfY2F0YWxvZywga29p OF9yX3RvX21pY30nLCAne30nKSwKQEAgLTQ5Myw3ICs1MjUsOSBAQCBTRUxFQ1QgKHBnX2lk ZW50aWZ5X29iamVjdChhZGRyMS5jbGFzc2lkLCBhZGRyMS5vYmppZCwgYWRkcjEub2Jqc3Vi aWQpKS4qLAogIHB1YmxpY2F0aW9uICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgYWRk cl9wdWIgICAgICAgICAgfCBhZGRyX3B1YiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKICBwdWJsaWNhdGlvbiByZWxh dGlvbiAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgYWRkcl9uc3Au Z2VudGFibGUgaW4gcHVibGljYXRpb24gYWRkcl9wdWIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCB0CiAgcHVibGljYXRpb24gbmFtZXNwYWNlICAgICB8ICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICB8IGFkZHJfbnNwIGluIHB1YmxpY2F0aW9uIGFkZHJfcHViX3Nj aGVtYSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdAotKDUwIHJvd3MpCisgY29s dW1uIG1hc3RlciBrZXkgICAgICAgICB8ICAgICAgICAgICAgfCBhZGRyX2NtayAgICAgICAg ICB8IGFkZHJfY21rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgdAorIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAgICAgfCAg ICAgICAgICAgIHwgYWRkcl9jZWsgICAgICAgICAgfCBhZGRyX2NlayAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHQKKyg1 MiByb3dzKQogCiAtLS0KIC0tLSBDbGVhbnVwIHJlc291cmNlcwpAQCAtNTA3LDYgKzU0MSw4 IEBAIGRyb3AgY2FzY2FkZXMgdG8gdXNlciBtYXBwaW5nIGZvciByZWdyZXNzX2FkZHJfdXNl ciBvbiBzZXJ2ZXIgaW50ZWdlcgogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1YjsKIERST1Ag UFVCTElDQVRJT04gYWRkcl9wdWJfc2NoZW1hOwogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVz c19hZGRyX3N1YjsKK0RST1AgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGFkZHJfY2VrOworRFJP UCBDT0xVTU4gTUFTVEVSIEtFWSBhZGRyX2NtazsKIERST1AgU0NIRU1BIGFkZHJfbnNwIENB U0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDE0IG90aGVyIG9iamVjdHMKIERF VEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGV4dCBzZWFyY2ggZGljdGlvbmFyeSBhZGRyX3Rz X2RpY3QKQEAgLTU0Miw2ICs1NzgsOSBAQCBXSVRIIG9iamVjdHMgKGNsYXNzaWQsIG9iamlk LCBvYmpzdWJpZCkgQVMgKFZBTFVFUwogICAgICgncGdfdHlwZSc6OnJlZ2NsYXNzLCAwLCAw KSwgLS0gbm8gdHlwZQogICAgICgncGdfY2FzdCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8g Y2FzdAogICAgICgncGdfY29sbGF0aW9uJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2xs YXRpb24KKyAgICAoJ3BnX2NvbGVuY2tleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29s dW1uIGVuY3J5cHRpb24ga2V5CistLVRPRE86ICAgICgncGdfY29sZW5ja2V5ZGF0YSc6OnJl Z2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEKKyAgICAo J3BnX2NvbG1hc3RlcmtleSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29sdW1uIG1hc3Rl ciBrZXkKICAgICAoJ3BnX2NvbnN0cmFpbnQnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNv bnN0cmFpbnQKICAgICAoJ3BnX2NvbnZlcnNpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGNvbnZlcnNpb24KICAgICAoJ3BnX2F0dHJkZWYnOjpyZWdjbGFzcywgMCwgMCksIC0tIG5v IGRlZmF1bHQgYXR0cmlidXRlCkBAIC01NzIsNiArNjExLDcgQEAgV0lUSCBvYmplY3RzIChj bGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIEFTIChWQUxVRVMKICAgICAoJ3BnX2V2ZW50X3Ry aWdnZXInOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2ZW50IHRyaWdnZXIKICAgICAoJ3Bn X3BvbGljeSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5CiAgICAgKCdwZ19wdWJs aWNhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRpb24KKyAgICAoJ3Bn X3B1YmxpY2F0aW9uX25hbWVzcGFjZSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGlj YXRpb24gbmFtZXNwYWNlCiAgICAgKCdwZ19wdWJsaWNhdGlvbl9yZWwnOjpyZWdjbGFzcywg MCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIHJlbGF0aW9uCiAgICAgKCdwZ19zdWJzY3JpcHRp b24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHN1YnNjcmlwdGlvbgogICAgICgncGdfdHJh bnNmb3JtJzo6cmVnY2xhc3MsIDAsIDApIC0tIG5vIHRyYW5zZm9ybWF0aW9uCkBAIC02MjMs NSArNjYzLDggQEAgT1JERVIgQlkgb2JqZWN0cy5jbGFzc2lkLCBvYmplY3RzLm9iamlkLCBv YmplY3RzLm9ianN1YmlkOwogKCIoc3Vic2NyaXB0aW9uLCwsKSIpfCgiKHN1YnNjcmlwdGlv biwsKSIpfE5VTEwKICgiKHB1YmxpY2F0aW9uLCwsKSIpfCgiKHB1YmxpY2F0aW9uLCwpIil8 TlVMTAogKCIoIiJwdWJsaWNhdGlvbiByZWxhdGlvbiIiLCwsKSIpfCgiKCIicHVibGljYXRp b24gcmVsYXRpb24iIiwsKSIpfE5VTEwKKygiKCIicHVibGljYXRpb24gbmFtZXNwYWNlIiIs LCwpIil8KCIoIiJwdWJsaWNhdGlvbiBuYW1lc3BhY2UiIiwsKSIpfE5VTEwKKygiKCIiY29s dW1uIG1hc3RlciBrZXkiIiwsLCkiKXwoIigiImNvbHVtbiBtYXN0ZXIga2V5IiIsLCkiKXxO VUxMCisoIigiImNvbHVtbiBlbmNyeXB0aW9uIGtleSIiLCwsKSIpfCgiKCIiY29sdW1uIGVu Y3J5cHRpb24ga2V5IiIsLCkiKXxOVUxMCiAtLSByZXN0b3JlIG5vcm1hbCBvdXRwdXQgbW9k ZQogXGFcdApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lu cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAy MTVlYjg5OWJlLi4yYWEwZTE2MzIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29p ZGpvaW5zLm91dApAQCAtNzMsNiArNzMsOCBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ190eXBl IHt0eXBiYXNldHlwZX0gPT4gcGdfdHlwZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdf dHlwZSB7dHlwY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KIE5PVElDRTogIGNo ZWNraW5nIHBnX2F0dHJpYnV0ZSB7YXR0cmVsaWR9ID0+IHBnX2NsYXNzIHtvaWR9CiBOT1RJ Q0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dHR5cGlkfSA9PiBwZ190eXBlIHtvaWR9 CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dGNla30gPT4gcGdfY29sZW5j a2V5IHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19hdHRyaWJ1dGUge2F0dHJlYWx0eXBp ZH0gPT4gcGdfdHlwZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfYXR0cmlidXRlIHth dHRjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfY2xhc3Mge3JlbG5hbWVzcGFjZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19jbGFzcyB7cmVsdHlwZX0gPT4gcGdfdHlwZSB7b2lkfQpAQCAtMjY2 LDMgKzI2OCw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3ViZGJp ZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlw dGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcg cGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBw Z19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfY29sbWFzdGVya2V5IHtjbWtv d25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ19jb2xlbmNr ZXkge2Nla293bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBn X2NvbGVuY2tleWRhdGEge2NrZGNla2lkfSA9PiBwZ19jb2xlbmNrZXkge29pZH0KK05PVElD RTogIGNoZWNraW5nIHBnX2NvbGVuY2tleWRhdGEge2NrZGNta2lkfSA9PiBwZ19jb2xtYXN0 ZXJrZXkge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3By X3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0 CmluZGV4IDg2ZDc1NWFhNDQuLjRhMzY2MDc0ZGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9vcHJfc2FuaXR5Lm91dApAQCAtMTc1LDEzICsxNzUsMTQgQEAgV0hFUkUgcDEu b2lkICE9IHAyLm9pZCBBTkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBl cyAgICAgICAgIHwgICAgICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAg ICAgICAgICAgICAgICAgICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgYmlnaW50ICAgICAgICAg ICAgICAgICAgICAgIHwgeGlkOAogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNo YXJhY3RlcgogIHRleHQgICAgICAgICAgICAgICAgICAgICAgICB8IGNoYXJhY3RlciB2YXJ5 aW5nCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0 eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAotKDYgcm93cykKKyg3 IHJvd3MpCiAKIFNFTEVDVCBESVNUSU5DVCBwMS5wcm9hcmd0eXBlc1sxXTo6cmVndHlwZSwg cDIucHJvYXJndHlwZXNbMV06OnJlZ3R5cGUKIEZST00gcGdfcHJvYyBBUyBwMSwgcGdfcHJv YyBBUyBwMgpAQCAtMTk3LDEyICsxOTgsMTMgQEAgV0hFUkUgcDEub2lkICE9IHAyLm9pZCBB TkQKIE9SREVSIEJZIDEsIDI7CiAgICAgICAgICBwcm9hcmd0eXBlcyAgICAgICAgIHwgICAg ICAgcHJvYXJndHlwZXMgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBieXRlYSAgICAgICAgICAgICAgICAgICAg ICAgfCBwZ19lbmNyeXB0ZWRfZGV0CiAgaW50ZWdlciAgICAgICAgICAgICAgICAgICAgIHwg eGlkCiAgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lCiAgYml0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgYml0IHZhcnlpbmcKICB0 eGlkX3NuYXBzaG90ICAgICAgICAgICAgICAgfCBwZ19zbmFwc2hvdAogIGFueXJhbmdlICAg ICAgICAgICAgICAgICAgICB8IGFueW11bHRpcmFuZ2UKLSg1IHJvd3MpCisoNiByb3dzKQog CiBTRUxFQ1QgRElTVElOQ1QgcDEucHJvYXJndHlwZXNbMl06OnJlZ3R5cGUsIHAyLnByb2Fy Z3R5cGVzWzJdOjpyZWd0eXBlCiBGUk9NIHBnX3Byb2MgQVMgcDEsIHBnX3Byb2MgQVMgcDIK QEAgLTg0MSw2ICs4NDMsOCBAQCB4aWQ4Z2UoeGlkOCx4aWQ4KQogeGlkOGVxKHhpZDgseGlk OCkKIHhpZDhuZSh4aWQ4LHhpZDgpCiB4aWQ4Y21wKHhpZDgseGlkOCkKK3BnX2VuY3J5cHRl ZF9kZXRfZXEocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KQorcGdfZW5jcnlw dGVkX2RldF9uZShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpCiAtLSByZXN0 b3JlIG5vcm1hbCBvdXRwdXQgbW9kZQogXGFcdAogLS0gTGlzdCBvZiBmdW5jdGlvbnMgdXNl ZCBieSBsaWJwcSdzIGZlLWxvYmouYwpAQCAtOTg4LDcgKzk5Miw5IEBAIFdIRVJFIGMuY2Fz dG1ldGhvZCA9ICdiJyBBTkQKICB4bWwgICAgICAgICAgICAgICB8IHRleHQgICAgICAgICAg ICAgIHwgICAgICAgIDAgfCBhCiAgeG1sICAgICAgICAgICAgICAgfCBjaGFyYWN0ZXIgdmFy eWluZyB8ICAgICAgICAwIHwgYQogIHhtbCAgICAgICAgICAgICAgIHwgY2hhcmFjdGVyICAg ICAgICAgfCAgICAgICAgMCB8IGEKLSgxMCByb3dzKQorIGJ5dGVhICAgICAgICAgICAgIHwg cGdfZW5jcnlwdGVkX2RldCAgfCAgICAgICAgMCB8IGUKKyBieXRlYSAgICAgICAgICAgICB8 IHBnX2VuY3J5cHRlZF9ybmQgIHwgICAgICAgIDAgfCBlCisoMTIgcm93cykKIAogLS0gKioq KioqKioqKioqKioqKiBwZ19jb252ZXJzaW9uICoqKioqKioqKioqKioqKioKIC0tIExvb2sg Zm9yIGlsbGVnYWwgdmFsdWVzIGluIHBnX2NvbnZlcnNpb24gZmllbGRzLgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHJlcGFyZS5vdXQKaW5kZXggNTgxNWUxN2IzOS4uNDQ4MmE2NWQy NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcmVwYXJlLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByZXBhcmUub3V0CkBAIC0xNjIsMjYg KzE2MiwyNiBAQCBQUkVQQVJFIHE3KHVua25vd24pIEFTCiAtLSBETUwgc3RhdGVtZW50cwog UFJFUEFSRSBxOCBBUwogICAgIFVQREFURSB0ZW5rMSBTRVQgc3RyaW5ndTEgPSAkMiBXSEVS RSB1bmlxdWUxID0gJDE7Ci1TRUxFQ1QgbmFtZSwgc3RhdGVtZW50LCBwYXJhbWV0ZXJfdHlw ZXMsIHJlc3VsdF90eXBlcyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKK1NFTEVDVCBu YW1lLCBzdGF0ZW1lbnQsIHBhcmFtZXRlcl90eXBlcywgcGFyYW1ldGVyX29yaWdfdGFibGVz LCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zLCByZXN1bHRfdHlwZXMgRlJPTSBwZ19wcmVwYXJl ZF9zdGF0ZW1lbnRzCiAgICAgT1JERVIgQlkgbmFtZTsKLSBuYW1lIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RhdGVtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyX3R5cGVzICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzdWx0X3R5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAotLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gcTIg ICB8IFBSRVBBUkUgcTIodGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICArfCB7dGV4dH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHtuYW1lLGJvb2xlYW4sYm9vbGVhbn0KLSAgICAgIHwgICAgICAg ICBTRUxFQ1QgZGF0bmFtZSwgZGF0aXN0ZW1wbGF0ZSwgZGF0YWxsb3djb25uICAgICAgICAg ICAgICt8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCi0gICAgICB8ICAgICAgICAgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1l ID0gJDE7ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHEzICAgfCBQUkVQQVJFIHEzKHRleHQs IGludCwgZmxvYXQsIGJvb2xlYW4sIHNtYWxsaW50KSBBUyAgICAgICAgICAgICAgK3wge3Rl eHQsaW50ZWdlciwiZG91YmxlIHByZWNpc2lvbiIsYm9vbGVhbixzbWFsbGludH0gfCB7aW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixuYW1lLG5h bWUsbmFtZX0KLSAgICAgIHwgICAgICAgICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdIRVJFIHN0 cmluZzQgPSAkMSBBTkQgKGZvdXIgPSAkMiBPUit8ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgCi0gICAgICB8ICAgICAgICAgdGVuID0g JDM6OmJpZ2ludCBPUiB0cnVlID0gJDQgT1Igb2RkID0gJDU6OmludCkgICAgICAgICArfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAot ICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVuaXF1ZTE7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAKLSBxNSAgIHwgUFJFUEFSRSBxNShpbnQsIHRleHQpIEFT ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtpbnRlZ2VyLHRl eHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwge2ludGVnZXIsaW50 ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxuYW1lLG5hbWV9 Ci0gICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1bmlxdWUxID0g JDEgT1Igc3RyaW5ndTEgPSAkMiArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8IAotICAgICAgfCAgICAgICAgIE9SREVSIEJZIHVuaXF1 ZTE7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxNiAgIHwg UFJFUEFSRSBxNiBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICt8IHtpbnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwge2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixp bnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsbmFtZSxuYW1lLG5hbWV9Ci0gICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHRl bmsxIFdIRVJFIHVuaXF1ZTEgPSAkMSBBTkQgc3RyaW5ndTEgPSAkMjsgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAotIHE3ICAg fCBQUkVQQVJFIHE3KHVua25vd24pIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgK3wge3BhdGh9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCB7dGV4dCxwYXRofQotICAgICAgfCAgICAgU0VMRUNUICogRlJPTSBy b2FkIFdIRVJFIHRoZXBhdGggPSAkMTsgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAKLSBxOCAg IHwgUFJFUEFSRSBxOCBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICt8IHtpbnRlZ2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgCi0gICAgICB8ICAgICBVUERBVEUgdGVuazEgU0VUIHN0cmluZ3Ux ID0gJDIgV0hFUkUgdW5pcXVlMSA9ICQxOyAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIG5hbWUgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGF0ZW1lbnQgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJfdHlwZXMgICAgICAgICAgICAgICAg ICAgfCBwYXJhbWV0ZXJfb3JpZ190YWJsZXMgfCBwYXJhbWV0ZXJfb3JpZ19jb2x1bW5zIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVzdWx0X3R5cGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHEyICAgfCBQ UkVQQVJFIHEyKHRleHQpIEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgK3wge3RleHR9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB7LX0gICAgICAgICAgICAgICAgICAgfCB7MH0gICAgICAgICAgICAgICAg ICAgIHwge25hbWUsYm9vbGVhbixib29sZWFufQorICAgICAgfCAgICAgICAgIFNFTEVDVCBk YXRuYW1lLCBkYXRpc3RlbXBsYXRlLCBkYXRhbGxvd2Nvbm4gICAgICAgICAgICAgK3wgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICB8 ICAgICAgICAgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJDE7ICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAKKyBxMyAgIHwgUFJFUEFSRSBxMyh0ZXh0LCBpbnQsIGZsb2F0LCBib29sZWFu LCBzbWFsbGludCkgQVMgICAgICAgICAgICAgICt8IHt0ZXh0LGludGVnZXIsImRvdWJsZSBw cmVjaXNpb24iLGJvb2xlYW4sc21hbGxpbnR9IHwgey0sLSwtLC0sLX0gICAgICAgICAgIHwg ezAsMCwwLDAsMH0gICAgICAgICAgICB8IHtpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRl Z2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGlu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLG5hbWUsbmFtZSxuYW1lfQorICAgICAgfCAgICAgICAg IFNFTEVDVCAqIEZST00gdGVuazEgV0hFUkUgc3RyaW5nNCA9ICQxIEFORCAoZm91ciA9ICQy IE9SK3wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwg CisgICAgICB8ICAgICAgICAgdGVuID0gJDM6OmJpZ2ludCBPUiB0cnVlID0gJDQgT1Igb2Rk ID0gJDU6OmludCkgICAgICAgICArfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1bmlxdWUxOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHE1ICAgfCBQUkVQQVJFIHE1 KGludCwgdGV4dCkgQVMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg K3wge2ludGVnZXIsdGV4dH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCB7LSwtfSAgICAgICAgICAgICAgICAgfCB7MCwwfSAgICAgICAgICAgICAgICAgIHwge2lu dGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIs aW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsbmFtZSxu YW1lLG5hbWV9CisgICAgICB8ICAgICAgICAgU0VMRUNUICogRlJPTSB0ZW5rMSBXSEVSRSB1 bmlxdWUxID0gJDEgT1Igc3RyaW5ndTEgPSAkMiArfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgIHwgICAgICAgICBPUkRFUiBCWSB1 bmlxdWUxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8IAorIHE2ICAgfCBQ UkVQQVJFIHE2IEFTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgK3wge2ludGVnZXIsbmFtZX0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCB7LSwtfSAgICAgICAgICAgICAgICAgfCB7MCwwfSAgICAgICAgICAgICAg ICAgIHwge2ludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2Vy LGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVnZXIsaW50ZWdlcixpbnRlZ2VyLGludGVn ZXIsbmFtZSxuYW1lLG5hbWV9CisgICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHRlbmsxIFdI RVJFIHVuaXF1ZTEgPSAkMSBBTkQgc3RyaW5ndTEgPSAkMjsgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxNyAgIHwgUFJFUEFSRSBx Nyh1bmtub3duKSBBUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICt8IHtwYXRofSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgey19ICAgICAgICAgICAgICAgICAgIHwgezB9ICAgICAgICAgICAgICAgICAgICB8IHt0 ZXh0LHBhdGh9CisgICAgICB8ICAgICBTRUxFQ1QgKiBGUk9NIHJvYWQgV0hFUkUgdGhlcGF0 aCA9ICQxOyAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBxOCAgIHwgUFJFUEFSRSBxOCBBUyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICt8IHtpbnRl Z2VyLG5hbWV9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgey0sdGVu azF9ICAgICAgICAgICAgIHwgezAsMTR9ICAgICAgICAgICAgICAgICB8IAorICAgICAgfCAg ICAgVVBEQVRFIHRlbmsxIFNFVCBzdHJpbmd1MSA9ICQyIFdIRVJFIHVuaXF1ZTEgPSAkMTsg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgCiAoNiByb3dzKQogCiAtLSB0ZXN0IERFQUxMT0NBVEUgQUxMOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggYTdmNTcwMGVkYy4uMmVlNWY3NTQ2ZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC0yMzcsNiArMjM3LDMxIEBAIFNF TEVDVCAzIEFTIHgsICdIZWxsbycsIDQgQVMgeSwgdHJ1ZSBBUyAiZGlydHlcbmFtZSIgXGdk ZXNjIFxnCiAgMyB8IEhlbGxvICAgIHwgNCB8IHQKICgxIHJvdykKIAorLS0gXGdlbmNyCist LSAoVGhpcyBqdXN0IHRlc3RzIHRoZSBwYXJhbWV0ZXIgcGFzc2luZzsgdGhlcmUgaXMgbm8g ZW5jcnlwdGlvbiBoZXJlLikKK0NSRUFURSBUQUJMRSB0ZXN0X2dlbmNyIChhIGludCwgYiB0 ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3RfZ2VuY3IgVkFMVUVTICgxLCAnb25lJykgXGdlbmNy CitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IDEgXGdlbmNyCisgYSB8ICBi ICAKKy0tLSstLS0tLQorIDEgfCBvbmUKKygxIHJvdykKKworSU5TRVJUIElOVE8gdGVzdF9n ZW5jciBWQUxVRVMgKCQxLCAkMikgXGdlbmNyIDIgJ3R3bycKK1NFTEVDVCAqIEZST00gdGVz dF9nZW5jciBXSEVSRSBhIElOICgkMSwgJDIpIFxnZW5jciAyIDMKKyBhIHwgIGIgIAorLS0t Ky0tLS0tCisgMiB8IHR3bworKDEgcm93KQorCistLSB0ZXN0IHBhcnNlIGVycm9yCitTRUxF Q1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IHggXGdlbmNyCitFUlJPUjogIGNvbHVt biAieCIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNy IFdIRVJFIGEgPSB4IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KKy0tIHRlc3QgYmluZCBlcnJvcgorU0VMRUNUICogRlJPTSB0ZXN0X2dlbmNyIFdI RVJFIGEgPSAkMSBcZ2VuY3IKK0VSUk9SOiAgYmluZCBtZXNzYWdlIHN1cHBsaWVzIDAgcGFy YW1ldGVycywgYnV0IHByZXBhcmVkIHN0YXRlbWVudCAiIiByZXF1aXJlcyAxCiAtLSBcZ2V4 ZWMKIGNyZWF0ZSB0ZW1wb3JhcnkgdGFibGUgZ2V4ZWNfdGVzdChhIGludCwgYiB0ZXh0LCBj IGRhdGUsIGQgZmxvYXQpOwogc2VsZWN0IGZvcm1hdCgnY3JlYXRlIGluZGV4IG9uIGdleGVj X3Rlc3QoJUkpJywgYXR0bmFtZSkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK aW5kZXggN2VjM2QyNjg4Zi4uNDJlMzhkNjZkMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKQEAgLTE0MjMsMTEgKzE0MjMsMTMgQEAgcGdfcHJlcGFyZWRfc3RhdGVt ZW50c3wgU0VMRUNUIHAubmFtZSwKICAgICBwLnN0YXRlbWVudCwKICAgICBwLnByZXBhcmVf dGltZSwKICAgICBwLnBhcmFtZXRlcl90eXBlcywKKyAgICBwLnBhcmFtZXRlcl9vcmlnX3Rh YmxlcywKKyAgICBwLnBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsCiAgICAgcC5yZXN1bHRfdHlw ZXMsCiAgICAgcC5mcm9tX3NxbCwKICAgICBwLmdlbmVyaWNfcGxhbnMsCiAgICAgcC5jdXN0 b21fcGxhbnMKLSAgIEZST00gcGdfcHJlcGFyZWRfc3RhdGVtZW50KCkgcChuYW1lLCBzdGF0 ZW1lbnQsIHByZXBhcmVfdGltZSwgcGFyYW1ldGVyX3R5cGVzLCByZXN1bHRfdHlwZXMsIGZy b21fc3FsLCBnZW5lcmljX3BsYW5zLCBjdXN0b21fcGxhbnMpOworICAgRlJPTSBwZ19wcmVw YXJlZF9zdGF0ZW1lbnQoKSBwKG5hbWUsIHN0YXRlbWVudCwgcHJlcGFyZV90aW1lLCBwYXJh bWV0ZXJfdHlwZXMsIHBhcmFtZXRlcl9vcmlnX3RhYmxlcywgcGFyYW1ldGVyX29yaWdfY29s dW1ucywgcmVzdWx0X3R5cGVzLCBmcm9tX3NxbCwgZ2VuZXJpY19wbGFucywgY3VzdG9tX3Bs YW5zKTsKIHBnX3ByZXBhcmVkX3hhY3RzfCBTRUxFQ1QgcC50cmFuc2FjdGlvbiwKICAgICBw LmdpZCwKICAgICBwLnByZXBhcmVkLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC90eXBlX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5 cGVfc2FuaXR5Lm91dAppbmRleCBkM2FjMDhjOWVlLi4zNTcwOTVlMWI5IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3R5cGVfc2FuaXR5Lm91dApAQCAtNzUsNyArNzUsOSBA QCBPUkRFUiBCWSB0MS5vaWQ7CiAgNDYwMCB8IHBnX2JyaW5fYmxvb21fc3VtbWFyeQogIDQ2 MDEgfCBwZ19icmluX21pbm1heF9tdWx0aV9zdW1tYXJ5CiAgNTAxNyB8IHBnX21jdl9saXN0 Ci0oNiByb3dzKQorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0CisgODI0NCB8IHBnX2VuY3J5 cHRlZF9ybmQKKyg4IHJvd3MpCiAKIC0tIE1ha2Ugc3VyZSB0eXBhcnJheSBwb2ludHMgdG8g YSAidHJ1ZSIgYXJyYXkgdHlwZSBvZiBvdXIgb3duIGJhc2UKIFNFTEVDVCB0MS5vaWQsIHQx LnR5cG5hbWUgYXMgYmFzZXR5cGUsIHQyLnR5cG5hbWUgYXMgYXJyYXl0eXBlLApAQCAtMTcx LDEwICsxNzMsMTIgQEAgV0hFUkUgdDEudHlwaW5wdXQgPSBwMS5vaWQgQU5EIHQxLnR5cHR5 cGUgaW4gKCdiJywgJ3AnKSBBTkQgTk9UCiAgICAgKHQxLnR5cGVsZW0gIT0gMCBBTkQgdDEu dHlwbGVuIDwgMCkgQU5EIE5PVAogICAgIChwMS5wcm9yZXR0eXBlID0gdDEub2lkIEFORCBO T1QgcDEucHJvcmV0c2V0KQogT1JERVIgQlkgMTsKLSBvaWQgIHwgIHR5cG5hbWUgIHwgb2lk IHwgcHJvbmFtZSAKLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLSstLS0tLS0tLS0KLSAxNzkw IHwgcmVmY3Vyc29yIHwgIDQ2IHwgdGV4dGluCi0oMSByb3cpCisgb2lkICB8ICAgICB0eXBu YW1lICAgICAgfCBvaWQgIHwgcHJvbmFtZSAKKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLQorIDE3OTAgfCByZWZjdXJzb3IgICAgICAgIHwgICA0NiB8IHRl eHRpbgorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwgMTI0NCB8IGJ5dGVhaW4KKyA4MjQ0 IHwgcGdfZW5jcnlwdGVkX3JuZCB8IDEyNDQgfCBieXRlYWluCisoMyByb3dzKQogCiAtLSBW YXJsZW5hIGFycmF5IHR5cGVzIHdpbGwgcG9pbnQgdG8gYXJyYXlfaW4KIC0tIEV4Y2VwdGlv biBhcyBvZiA4LjE6IGludDJ2ZWN0b3IgYW5kIG9pZHZlY3RvciBoYXZlIHRoZWlyIG93biBJ L08gcm91dGluZXMKQEAgLTIyMywxMCArMjI3LDEyIEBAIFdIRVJFIHQxLnR5cG91dHB1dCA9 IHAxLm9pZCBBTkQgdDEudHlwdHlwZSBpbiAoJ2InLCAncCcpIEFORCBOT1QKICAgICAgIChw MS5vaWQgPSAnYXJyYXlfb3V0Jzo6cmVncHJvYyBBTkQKICAgICAgICB0MS50eXBlbGVtICE9 IDAgQU5EIHQxLnR5cGxlbiA9IC0xKSkpCiBPUkRFUiBCWSAxOwotIG9pZCAgfCAgdHlwbmFt ZSAgfCBvaWQgfCBwcm9uYW1lIAotLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0t LQotIDE3OTAgfCByZWZjdXJzb3IgfCAgNDcgfCB0ZXh0b3V0Ci0oMSByb3cpCisgb2lkICB8 ICAgICB0eXBuYW1lICAgICAgfCBvaWQgfCBwcm9uYW1lICAKKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLQorIDE3OTAgfCByZWZjdXJzb3IgICAgICAgIHwg IDQ3IHwgdGV4dG91dAorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwgIDMxIHwgYnl0ZWFv dXQKKyA4MjQ0IHwgcGdfZW5jcnlwdGVkX3JuZCB8ICAzMSB8IGJ5dGVhb3V0CisoMyByb3dz KQogCiBTRUxFQ1QgdDEub2lkLCB0MS50eXBuYW1lLCBwMS5vaWQsIHAxLnByb25hbWUKIEZS T00gcGdfdHlwZSBBUyB0MSwgcGdfcHJvYyBBUyBwMQpAQCAtMjg3LDEwICsyOTMsMTIgQEAg V0hFUkUgdDEudHlwcmVjZWl2ZSA9IHAxLm9pZCBBTkQgdDEudHlwdHlwZSBpbiAoJ2InLCAn cCcpIEFORCBOT1QKICAgICAodDEudHlwZWxlbSAhPSAwIEFORCB0MS50eXBsZW4gPCAwKSBB TkQgTk9UCiAgICAgKHAxLnByb3JldHR5cGUgPSB0MS5vaWQgQU5EIE5PVCBwMS5wcm9yZXRz ZXQpCiBPUkRFUiBCWSAxOwotIG9pZCAgfCAgdHlwbmFtZSAgfCBvaWQgIHwgcHJvbmFtZSAg Ci0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0KLSAxNzkwIHwgcmVmY3Vy c29yIHwgMjQxNCB8IHRleHRyZWN2Ci0oMSByb3cpCisgb2lkICB8ICAgICB0eXBuYW1lICAg ICAgfCBvaWQgIHwgIHByb25hbWUgIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0KKyAxNzkwIHwgcmVmY3Vyc29yICAgICAgICB8IDI0MTQgfCB0ZXh0 cmVjdgorIDgyNDMgfCBwZ19lbmNyeXB0ZWRfZGV0IHwgMjQxMiB8IGJ5dGVhcmVjdgorIDgy NDQgfCBwZ19lbmNyeXB0ZWRfcm5kIHwgMjQxMiB8IGJ5dGVhcmVjdgorKDMgcm93cykKIAog LS0gVmFybGVuYSBhcnJheSB0eXBlcyB3aWxsIHBvaW50IHRvIGFycmF5X3JlY3YKIC0tIEV4 Y2VwdGlvbiBhcyBvZiA4LjE6IGludDJ2ZWN0b3IgYW5kIG9pZHZlY3RvciBoYXZlIHRoZWly IG93biBJL08gcm91dGluZXMKQEAgLTM0OCwxMCArMzU2LDEyIEBAIFdIRVJFIHQxLnR5cHNl bmQgPSBwMS5vaWQgQU5EIHQxLnR5cHR5cGUgaW4gKCdiJywgJ3AnKSBBTkQgTk9UCiAgICAg ICAocDEub2lkID0gJ2FycmF5X3NlbmQnOjpyZWdwcm9jIEFORAogICAgICAgIHQxLnR5cGVs ZW0gIT0gMCBBTkQgdDEudHlwbGVuID0gLTEpKSkKIE9SREVSIEJZIDE7Ci0gb2lkICB8ICB0 eXBuYW1lICB8IG9pZCAgfCBwcm9uYW1lICAKLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLQotIDE3OTAgfCByZWZjdXJzb3IgfCAyNDE1IHwgdGV4dHNlbmQKLSgxIHJv dykKKyBvaWQgIHwgICAgIHR5cG5hbWUgICAgICB8IG9pZCAgfCAgcHJvbmFtZSAgCistLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLQorIDE3OTAgfCByZWZj dXJzb3IgICAgICAgIHwgMjQxNSB8IHRleHRzZW5kCisgODI0MyB8IHBnX2VuY3J5cHRlZF9k ZXQgfCAyNDEzIHwgYnl0ZWFzZW5kCisgODI0NCB8IHBnX2VuY3J5cHRlZF9ybmQgfCAyNDEz IHwgYnl0ZWFzZW5kCisoMyByb3dzKQogCiBTRUxFQ1QgdDEub2lkLCB0MS50eXBuYW1lLCBw MS5vaWQsIHAxLnByb25hbWUKIEZST00gcGdfdHlwZSBBUyB0MSwgcGdfcHJvYyBBUyBwMQpA QCAtNzA3LDYgKzcxNyw4IEBAIENSRUFURSBUQUJMRSB0YWJfY29yZV90eXBlcyBBUyBTRUxF Q1QKICAgJ3R4dCc6OnRleHQsCiAgIHRydWU6OmJvb2wsCiAgIEUnXFx4REVBREJFRUYnOjpi eXRlYSwKKyAgRSdcXHhERUFEQkVFRic6OnBnX2VuY3J5cHRlZF9ybmQsCisgIEUnXFx4REVB REJFRUYnOjpwZ19lbmNyeXB0ZWRfZGV0LAogICBCJzEwMDAxJzo6Yml0LAogICBCJzEwMDAx Jzo6dmFyYml0IEFTIHZhcmJpdCwKICAgJzEyLjM0Jzo6bW9uZXksCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQppbmRleCAxMDNlMTE0ODNkLi5mZmNhMjA2YzZmIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEyOSw2ICsxMjksOSBAQCB0ZXN0OiBw bGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHBy ZXBhcmUgY29udmVyc2lvbiB0cgogIyAtLS0tLS0tLS0tCiB0ZXN0OiBwYXJ0aXRpb25fam9p biBwYXJ0aXRpb25fcHJ1bmUgcmVsb3B0aW9ucyBoYXNoX3BhcnQgaW5kZXhpbmcgcGFydGl0 aW9uX2FnZ3JlZ2F0ZSBwYXJ0aXRpb25faW5mbyB0dXBsZXNvcnQgZXhwbGFpbiBjb21wcmVz c2lvbiBtZW1vaXplIHN0YXRzCiAKKyMgV0lQCit0ZXN0OiBjb2x1bW5fZW5jcnlwdGlvbgor CiAjIGV2ZW50X3RyaWdnZXIgY2Fubm90IHJ1biBjb25jdXJyZW50bHkgd2l0aCBhbnkgdGVz dCB0aGF0IHJ1bnMgRERMCiAjIG9pZGpvaW5zIGlzIHJlYWQtb25seSwgdGhvdWdoLCBhbmQg c2hvdWxkIHJ1biBsYXRlIGZvciBiZXN0IGNvdmVyYWdlCiB0ZXN0OiBldmVudF90cmlnZ2Vy IG9pZGpvaW5zCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jlc3NfbWFp bi5jIGIvc3JjL3Rlc3QvcmVncmVzcy9wZ19yZWdyZXNzX21haW4uYwppbmRleCBhNGIzNTRj OWU2Li44YWQxZjQ1OGQ1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BnX3JlZ3Jl c3NfbWFpbi5jCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGdfcmVncmVzc19tYWluLmMKQEAg LTgyLDcgKzgyLDcgQEAgcHNxbF9zdGFydF90ZXN0KGNvbnN0IGNoYXIgKnRlc3RuYW1lLAog CQkJCQkgICBiaW5kaXIgPyBiaW5kaXIgOiAiIiwKIAkJCQkJICAgYmluZGlyID8gIi8iIDog IiIsCiAJCQkJCSAgIGRibGlzdC0+c3RyLAotCQkJCQkgICAiLXYgSElERV9UQUJMRUFNPW9u IC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24iLAorCQkJCQkgICAiLXYgSElERV9UQUJM RUFNPW9uIC12IEhJREVfVE9BU1RfQ09NUFJFU1NJT049b24gLXYgSElERV9DT0xVTU5fRU5D UllQVElPTj1vbiIsCiAJCQkJCSAgIGluZmlsZSwKIAkJCQkJICAgb3V0ZmlsZSk7CiAJaWYg KG9mZnNldCA+PSBzaXplb2YocHNxbF9jbWQpKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY29sdW1uX2VuY3J5cHRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv Y29sdW1uX2VuY3J5cHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLmVkNGI3YzVkNjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9jb2x1bW5fZW5jcnlwdGlvbi5zcWwKQEAgLTAsMCArMSwxMDcgQEAKK1xzZXQgSElE RV9DT0xVTU5fRU5DUllQVElPTiBmYWxzZQorCitDUkVBVEUgUk9MRSByZWdyZXNzX2VuY191 c2VyMTsKKworQ1JFQVRFIENPTFVNTiBNQVNURVIgS0VZIGNtazEgV0lUSCAoCisgICAgcmVh bG0gPSAndGVzdCcKKyk7CisKK0NPTU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMSBJ UyAnY29sdW1uIG1hc3RlciBrZXknOworCitDUkVBVEUgQ09MVU1OIE1BU1RFUiBLRVkgY21r MWEgV0lUSCAoCisgICAgcmVhbG0gPSAndGVzdCcKKyk7CisKK0NSRUFURSBDT0xVTU4gTUFT VEVSIEtFWSBjbWsyIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QyJworKTsKKworQ1JFQVRF IENPTFVNTiBNQVNURVIgS0VZIGNtazJhIFdJVEggKAorICAgIHJlYWxtID0gJ3Rlc3QyJwor KTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIFdJVEggVkFMVUVTICgK KyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JTQUVT X09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJworKTsK KworQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBJUyAnY29sdW1uIGVu Y3J5cHRpb24ga2V5JzsKKworQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgQURE IFZBTFVFICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazFhLAorICAgIGFsZ29yaXRo bSA9ICdSU0FFU19PQUVQX1NIQV8xJywKKyAgICBlbmNyeXB0ZWRfdmFsdWUgPSAnXHhERUFE QkVFRicKKyk7CisKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBmYWlsIEFERCBWQUxV RSAoCisgICAgY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxYSwKKyAgICBhbGdvcml0aG0gPSAn UlNBRVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYn CispOworCitDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazIgV0lUSCBWQUxVRVMg KAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMiwKKyAgICBhbGdvcml0aG0gPSAnUlNB RVNfT0FFUF9TSEFfMScsCisgICAgZW5jcnlwdGVkX3ZhbHVlID0gJ1x4REVBREJFRUYnCisp LAorKAorICAgIGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMmEsCisgICAgYWxnb3JpdGhtID0g J1JTQUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVG JworKTsKKworQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWs0IFdJVEggVkFMVUVT ICgKKyAgICBjb2x1bW5fbWFzdGVyX2tleSA9IGNtazEsCisgICAgYWxnb3JpdGhtID0gJ1JT QUVTX09BRVBfU0hBXzEnLAorICAgIGVuY3J5cHRlZF92YWx1ZSA9ICdceERFQURCRUVGJwor KTsKKworQ1JFQVRFIFRBQkxFIHRibF9mYWlsICgKKyAgICBhIGludCwKKyAgICBiIHRleHQs CisgICAgYyB0ZXh0IEVOQ1JZUFRFRCBXSVRIIChjb2x1bW5fZW5jcnlwdGlvbl9rZXkgPSBu b3RleGlzdCkKKyk7CisKK0NSRUFURSBUQUJMRSB0YmxfMjlmMyAoCisgICAgYSBpbnQsCisg ICAgYiB0ZXh0LAorICAgIGMgdGV4dCBFTkNSWVBURUQgV0lUSCAoY29sdW1uX2VuY3J5cHRp b25fa2V5ID0gY2VrMSkKKyk7CisKK1xkIHRibF8yOWYzCitcZCsgdGJsXzI5ZjMKKworRFJP UCBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFJFU1RSSUNUOyAgLS0gZmFpbAorCitBTFRFUiBD T0xVTU4gTUFTVEVSIEtFWSBjbWsyIFJFTkFNRSBUTyBjbWszOworQUxURVIgQ09MVU1OIE1B U1RFUiBLRVkgY21rMSBSRU5BTUUgVE8gY21rMzsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBN QVNURVIgS0VZIGNta3ggUkVOQU1FIFRPIGNta3k7ICAtLSBmYWlsCisKK0FMVEVSIENPTFVN TiBFTkNSWVBUSU9OIEtFWSBjZWsyIFJFTkFNRSBUTyBjZWszOworQUxURVIgQ09MVU1OIEVO Q1JZUFRJT04gS0VZIGNlazEgUkVOQU1FIFRPIGNlazM7ICAtLSBmYWlsCitBTFRFUiBDT0xV TU4gRU5DUllQVElPTiBLRVkgY2VreCBSRU5BTUUgVE8gY2VreTsgIC0tIGZhaWwKKworU0VU IFJPTEUgcmVncmVzc19lbmNfdXNlcjE7CitEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBj ZWszOyAgLS0gZmFpbAorRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gZmFpbAor UkVTRVQgUk9MRTsKK0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazMgT1dORVIgVE8gcmVn cmVzc19lbmNfdXNlcjE7CitBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMyBPV05F UiBUTyByZWdyZXNzX2VuY191c2VyMTsKK1NFVCBST0xFIHJlZ3Jlc3NfZW5jX3VzZXIxOwor RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMzsgIC0tIG9rIG5vdworRFJPUCBDT0xV TU4gTUFTVEVSIEtFWSBjbWszOyAgLS0gb2sgbm93CitSRVNFVCBST0xFOworCitBTFRFUiBD T0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMSBEUk9QIFZBTFVFIChjb2x1bW5fbWFzdGVyX2tl eSA9IGNtazFhKTsKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1AgVkFM VUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEpOyAgLS0gZmFpbAorQUxURVIgQ09MVU1O IEVOQ1JZUFRJT04gS0VZIGNlazEgRFJPUCBWQUxVRSAoY29sdW1uX21hc3Rlcl9rZXkgPSBm YWlsKTsgIC0tIGZhaWwKK0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIERST1Ag VkFMVUUgKGNvbHVtbl9tYXN0ZXJfa2V5ID0gY21rMWEsIGFsZ29yaXRobSA9ICdmb28nKTsg IC0tIGZhaWwKKworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrNDsKK0RST1AgQ09M VU1OIEVOQ1JZUFRJT04gS0VZIGZhaWw7CisKK0RST1AgQ09MVU1OIE1BU1RFUiBLRVkgY21r MWE7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGZhaWw7CisKK0RST1AgUk9MRSByZWdyZXNz X2VuY191c2VyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9h ZGRyZXNzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL29iamVjdF9hZGRyZXNzLnNxbApp bmRleCBhY2QwNDY4YTlkLi44ZjRmYTZlMjFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9vYmplY3RfYWRkcmVzcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv b2JqZWN0X2FkZHJlc3Muc3FsCkBAIC00MCw2ICs0MCw4IEBAIENSRUFURSBTRVJWRVIgImlu dGVnZXIiIEZPUkVJR04gREFUQSBXUkFQUEVSIGFkZHJfZmR3OwogQ1JFQVRFIFVTRVIgTUFQ UElORyBGT1IgcmVncmVzc19hZGRyX3VzZXIgU0VSVkVSICJpbnRlZ2VyIjsKIEFMVEVSIERF RkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2FkZHJfdXNlciBJTiBTQ0hFTUEg cHVibGljIEdSQU5UIEFMTCBPTiBUQUJMRVMgVE8gcmVncmVzc19hZGRyX3VzZXI7CiBBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19hZGRyX3VzZXIgUkVWT0tF IERFTEVURSBPTiBUQUJMRVMgRlJPTSByZWdyZXNzX2FkZHJfdXNlcjsKK0NSRUFURSBDT0xV TU4gTUFTVEVSIEtFWSBhZGRyX2NtayBXSVRIIChyZWFsbSA9ICcnKTsKK0NSRUFURSBDT0xV TU4gRU5DUllQVElPTiBLRVkgYWRkcl9jZWsgV0lUSCBWQUxVRVMgKGNvbHVtbl9tYXN0ZXJf a2V5ID0gYWRkcl9jbWssIGVuY3J5cHRlZF92YWx1ZSA9ICcnKTsKIC0tIHRoaXMgdHJhbnNm b3JtIHdvdWxkIGJlIHF1aXRlIHVuc2FmZSB0byBsZWF2ZSBseWluZyBhcm91bmQsCiAtLSBl eGNlcHQgdGhhdCB0aGUgU1FMIGxhbmd1YWdlIHBheXMgbm8gYXR0ZW50aW9uIHRvIHRyYW5z Zm9ybXM6CiBDUkVBVEUgVFJBTlNGT1JNIEZPUiBpbnQgTEFOR1VBR0UgU1FMICgKQEAgLTk4 LDcgKzEwMCw4IEBAIENSRUFURSBTVEFUSVNUSUNTIGFkZHJfbnNwLmdlbnRhYmxlX3N0YXQg T04gYSwgYiBGUk9NIGFkZHJfbnNwLmdlbnRhYmxlOwogCQkoJ3RleHQgc2VhcmNoIHRlbXBs YXRlJyksICgndGV4dCBzZWFyY2ggY29uZmlndXJhdGlvbicpLAogCQkoJ3BvbGljeScpLCAo J3VzZXIgbWFwcGluZycpLCAoJ2RlZmF1bHQgYWNsJyksICgndHJhbnNmb3JtJyksCiAJCSgn b3BlcmF0b3Igb2YgYWNjZXNzIG1ldGhvZCcpLCAoJ2Z1bmN0aW9uIG9mIGFjY2VzcyBtZXRo b2QnKSwKLQkJKCdwdWJsaWNhdGlvbiByZWxhdGlvbicpCisJCSgncHVibGljYXRpb24gcmVs YXRpb24nKSwKKwkJKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknKSwgKCdjb2x1bW4gZW5jcnlw dGlvbiBrZXkgZGF0YScpLCAoJ2NvbHVtbiBtYXN0ZXIga2V5JykKIAlMT09QCiAJCUZPUiBu YW1lcyBJTiBWQUxVRVMgKCd7ZWluc30nKSwgKCd7YWRkcl9uc3AsIHp3ZWl9JyksICgne2Vp bnMsIHp3ZWksIGRyZWl9JykKIAkJTE9PUApAQCAtMTQzLDYgKzE0NiwxMCBAQCBDUkVBVEUg U1RBVElTVElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25z cC5nZW50YWJsZTsKIFNFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ3B1YmxpY2F0aW9u JywgJ3tvbmUsdHdvfScsICd7fScpOwogU0VMRUNUIHBnX2dldF9vYmplY3RfYWRkcmVzcygn c3Vic2NyaXB0aW9uJywgJ3tvbmV9JywgJ3t9Jyk7CiBTRUxFQ1QgcGdfZ2V0X29iamVjdF9h ZGRyZXNzKCdzdWJzY3JpcHRpb24nLCAne29uZSx0d299JywgJ3t9Jyk7CitTRUxFQ1QgcGdf Z2V0X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gZW5jcnlwdGlvbiBrZXknLCAne29uZX0nLCAn e30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoJ2NvbHVtbiBlbmNyeXB0aW9u IGtleScsICd7b25lLHR3b30nLCAne30nKTsKK1NFTEVDVCBwZ19nZXRfb2JqZWN0X2FkZHJl c3MoJ2NvbHVtbiBtYXN0ZXIga2V5JywgJ3tvbmV9JywgJ3t9Jyk7CitTRUxFQ1QgcGdfZ2V0 X29iamVjdF9hZGRyZXNzKCdjb2x1bW4gbWFzdGVyIGtleScsICd7b25lLHR3b30nLCAne30n KTsKIAogLS0gdGVzdCBzdWNjZXNzZnVsIGNhc2VzCiBXSVRIIG9iamVjdHMgKHR5cGUsIG5h bWUsIGFyZ3MpIEFTIChWQUxVRVMKQEAgLTE2Niw2ICsxNzMsOSBAQCBDUkVBVEUgU1RBVElT VElDUyBhZGRyX25zcC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50 YWJsZTsKIAkJCQkoJ3R5cGUnLCAne2FkZHJfbnNwLmdlbmVudW19JywgJ3t9JyksCiAJCQkJ KCdjYXN0JywgJ3tpbnQ4fScsICd7aW50NH0nKSwKIAkJCQkoJ2NvbGxhdGlvbicsICd7ZGVm YXVsdH0nLCAne30nKSwKKwkJCQkoJ2NvbHVtbiBlbmNyeXB0aW9uIGtleScsICd7YWRkcl9j ZWt9JywgJ3t9JyksCistLVRPRE86CQkJCSgnY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEn LCAne2FkZHJfY2VrfScsICd7YWRkcl9jbWt9JyksCisJCQkJKCdjb2x1bW4gbWFzdGVyIGtl eScsICd7YWRkcl9jbWt9JywgJ3t9JyksCiAJCQkJKCd0YWJsZSBjb25zdHJhaW50JywgJ3th ZGRyX25zcCwgZ2VudGFibGUsIGFfY2hrfScsICd7fScpLAogCQkJCSgnZG9tYWluIGNvbnN0 cmFpbnQnLCAne2FkZHJfbnNwLmdlbmRvbWFpbn0nLCAne2RvbWNvbnN0cn0nKSwKIAkJCQko J2NvbnZlcnNpb24nLCAne3BnX2NhdGFsb2csIGtvaThfcl90b19taWN9JywgJ3t9JyksCkBA IC0yMTksNiArMjI5LDggQEAgQ1JFQVRFIFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVf c3RhdCBPTiBhLCBiIEZST00gYWRkcl9uc3AuZ2VudGFibGU7CiBEUk9QIFBVQkxJQ0FUSU9O IGFkZHJfcHViOwogRFJPUCBQVUJMSUNBVElPTiBhZGRyX3B1Yl9zY2hlbWE7CiBEUk9QIFNV QlNDUklQVElPTiByZWdyZXNzX2FkZHJfc3ViOworRFJPUCBDT0xVTU4gRU5DUllQVElPTiBL RVkgYWRkcl9jZWs7CitEUk9QIENPTFVNTiBNQVNURVIgS0VZIGFkZHJfY21rOwogCiBEUk9Q IFNDSEVNQSBhZGRyX25zcCBDQVNDQURFOwogCkBAIC0yNDMsNiArMjU1LDkgQEAgQ1JFQVRF IFNUQVRJU1RJQ1MgYWRkcl9uc3AuZ2VudGFibGVfc3RhdCBPTiBhLCBiIEZST00gYWRkcl9u c3AuZ2VudGFibGU7CiAgICAgKCdwZ190eXBlJzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyB0 eXBlCiAgICAgKCdwZ19jYXN0Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjYXN0CiAgICAg KCdwZ19jb2xsYXRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGNvbGxhdGlvbgorICAg ICgncGdfY29sZW5ja2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gZW5jcnlw dGlvbiBrZXkKKy0tVE9ETzogICAgKCdwZ19jb2xlbmNrZXlkYXRhJzo6cmVnY2xhc3MsIDAs IDApLCAtLSBubyBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YQorICAgICgncGdfY29sbWFz dGVya2V5Jzo6cmVnY2xhc3MsIDAsIDApLCAtLSBubyBjb2x1bW4gbWFzdGVyIGtleQogICAg ICgncGdfY29uc3RyYWludCc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29uc3RyYWludAog ICAgICgncGdfY29udmVyc2lvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gY29udmVyc2lv bgogICAgICgncGdfYXR0cmRlZic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gZGVmYXVsdCBh dHRyaWJ1dGUKQEAgLTI3Myw2ICsyODgsNyBAQCBDUkVBVEUgU1RBVElTVElDUyBhZGRyX25z cC5nZW50YWJsZV9zdGF0IE9OIGEsIGIgRlJPTSBhZGRyX25zcC5nZW50YWJsZTsKICAgICAo J3BnX2V2ZW50X3RyaWdnZXInOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIGV2ZW50IHRyaWdn ZXIKICAgICAoJ3BnX3BvbGljeSc6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcG9saWN5CiAg ICAgKCdwZ19wdWJsaWNhdGlvbic6OnJlZ2NsYXNzLCAwLCAwKSwgLS0gbm8gcHVibGljYXRp b24KKyAgICAoJ3BnX3B1YmxpY2F0aW9uX25hbWVzcGFjZSc6OnJlZ2NsYXNzLCAwLCAwKSwg LS0gbm8gcHVibGljYXRpb24gbmFtZXNwYWNlCiAgICAgKCdwZ19wdWJsaWNhdGlvbl9yZWwn OjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHB1YmxpY2F0aW9uIHJlbGF0aW9uCiAgICAgKCdw Z19zdWJzY3JpcHRpb24nOjpyZWdjbGFzcywgMCwgMCksIC0tIG5vIHN1YnNjcmlwdGlvbgog ICAgICgncGdfdHJhbnNmb3JtJzo6cmVnY2xhc3MsIDAsIDApIC0tIG5vIHRyYW5zZm9ybWF0 aW9uCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcmVwYXJlLnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCmluZGV4IGM2MDk4ZGM5NWMuLjdkYjc4 ODczNWMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByZXBhcmUuc3FsCkBAIC03NSw3ICs3NSw3IEBA IENSRUFURSBURU1QT1JBUlkgVEFCTEUgcTVfcHJlcF9ub2RhdGEgQVMgRVhFQ1VURSBxNSgy MDAsICdEVEFBQUEnKQogUFJFUEFSRSBxOCBBUwogICAgIFVQREFURSB0ZW5rMSBTRVQgc3Ry aW5ndTEgPSAkMiBXSEVSRSB1bmlxdWUxID0gJDE7CiAKLVNFTEVDVCBuYW1lLCBzdGF0ZW1l bnQsIHBhcmFtZXRlcl90eXBlcywgcmVzdWx0X3R5cGVzIEZST00gcGdfcHJlcGFyZWRfc3Rh dGVtZW50cworU0VMRUNUIG5hbWUsIHN0YXRlbWVudCwgcGFyYW1ldGVyX3R5cGVzLCBwYXJh bWV0ZXJfb3JpZ190YWJsZXMsIHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMsIHJlc3VsdF90eXBl cyBGUk9NIHBnX3ByZXBhcmVkX3N0YXRlbWVudHMKICAgICBPUkRFUiBCWSBuYW1lOwogCiAt LSB0ZXN0IERFQUxMT0NBVEUgQUxMOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHNxbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCAxMTQ5 YzZhODM5Li5lODhjNzBkMzAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w c3FsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTE5LDYg KzExOSwyMyBAQCBDUkVBVEUgVEFCTEUgYnVidWJ1KGEgaW50KSBcZ2Rlc2MKIC0tIGFsbCBv biBvbmUgbGluZQogU0VMRUNUIDMgQVMgeCwgJ0hlbGxvJywgNCBBUyB5LCB0cnVlIEFTICJk aXJ0eVxuYW1lIiBcZ2Rlc2MgXGcKIAorCistLSBcZ2VuY3IKKy0tIChUaGlzIGp1c3QgdGVz dHMgdGhlIHBhcmFtZXRlciBwYXNzaW5nOyB0aGVyZSBpcyBubyBlbmNyeXB0aW9uIGhlcmUu KQorCitDUkVBVEUgVEFCTEUgdGVzdF9nZW5jciAoYSBpbnQsIGIgdGV4dCk7CitJTlNFUlQg SU5UTyB0ZXN0X2dlbmNyIFZBTFVFUyAoMSwgJ29uZScpIFxnZW5jcgorU0VMRUNUICogRlJP TSB0ZXN0X2dlbmNyIFdIRVJFIGEgPSAxIFxnZW5jcgorCitJTlNFUlQgSU5UTyB0ZXN0X2dl bmNyIFZBTFVFUyAoJDEsICQyKSBcZ2VuY3IgMiAndHdvJworU0VMRUNUICogRlJPTSB0ZXN0 X2dlbmNyIFdIRVJFIGEgSU4gKCQxLCAkMikgXGdlbmNyIDIgMworCistLSB0ZXN0IHBhcnNl IGVycm9yCitTRUxFQ1QgKiBGUk9NIHRlc3RfZ2VuY3IgV0hFUkUgYSA9IHggXGdlbmNyCist LSB0ZXN0IGJpbmQgZXJyb3IKK1NFTEVDVCAqIEZST00gdGVzdF9nZW5jciBXSEVSRSBhID0g JDEgXGdlbmNyCisKKwogLS0gXGdleGVjCiAKIGNyZWF0ZSB0ZW1wb3JhcnkgdGFibGUgZ2V4 ZWNfdGVzdChhIGludCwgYiB0ZXh0LCBjIGRhdGUsIGQgZmxvYXQpOwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdHlwZV9zYW5pdHkuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvdHlwZV9zYW5pdHkuc3FsCmluZGV4IDVlZGMxZjFmNmUuLjBmZmU0NWZkMzcgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3R5cGVfc2FuaXR5LnNxbAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC90eXBlX3Nhbml0eS5zcWwKQEAgLTUyOSw2ICs1MjksOCBA QCBDUkVBVEUgVEFCTEUgdGFiX2NvcmVfdHlwZXMgQVMgU0VMRUNUCiAgICd0eHQnOjp0ZXh0 LAogICB0cnVlOjpib29sLAogICBFJ1xceERFQURCRUVGJzo6Ynl0ZWEsCisgIEUnXFx4REVB REJFRUYnOjpwZ19lbmNyeXB0ZWRfcm5kLAorICBFJ1xceERFQURCRUVGJzo6cGdfZW5jcnlw dGVkX2RldCwKICAgQicxMDAwMSc6OmJpdCwKICAgQicxMDAwMSc6OnZhcmJpdCBBUyB2YXJi aXQsCiAgICcxMi4zNCc6Om1vbmV5LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNz L3ByaW50dHVwLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaAppbmRleCA5NzFh NzRjZjIyLi5kYjFmM2I4ODExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJp bnR0dXAuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvcHJpbnR0dXAuaApAQCAtMjAsNiAr MjAsOCBAQCBleHRlcm4gRGVzdFJlY2VpdmVyICpwcmludHR1cF9jcmVhdGVfRFIoQ29tbWFu ZERlc3QgZGVzdCk7CiAKIGV4dGVybiB2b2lkIFNldFJlbW90ZURlc3RSZWNlaXZlclBhcmFt cyhEZXN0UmVjZWl2ZXIgKnNlbGYsIFBvcnRhbCBwb3J0YWwpOwogCitleHRlcm4gdm9pZCBN YXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5TWVzc2FnZShPaWQgYXR0Y2VrKTsKKwogZXh0 ZXJuIHZvaWQgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwKIAkJ CQkJCQkJCSAgVHVwbGVEZXNjIHR5cGVpbmZvLCBMaXN0ICp0YXJnZXRsaXN0LCBpbnQxNiAq Zm9ybWF0cyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5j eS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmgKaW5kZXggNzI5YzRjNDZj MC4uZTIzNzE1NTk3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRl bmN5LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBlbmRlbmN5LmgKQEAgLTkyLDYg KzkyLDkgQEAgdHlwZWRlZiBlbnVtIE9iamVjdENsYXNzCiAJT0NMQVNTX1RZUEUsCQkJCS8q IHBnX3R5cGUgKi8KIAlPQ0xBU1NfQ0FTVCwJCQkJLyogcGdfY2FzdCAqLwogCU9DTEFTU19D T0xMQVRJT04sCQkJLyogcGdfY29sbGF0aW9uICovCisJT0NMQVNTX0NFSywJCQkJCS8qIHBn X2NvbGVuY2tleSAqLworCU9DTEFTU19DRUtEQVRBLAkJCQkvKiBwZ19jb2xlbmNrZXlkYXRh ICovCisJT0NMQVNTX0NNSywJCQkJCS8qIHBnX2NvbG1hc3RlcmtleSAqLwogCU9DTEFTU19D T05TVFJBSU5ULAkJCS8qIHBnX2NvbnN0cmFpbnQgKi8KIAlPQ0xBU1NfQ09OVkVSU0lPTiwJ CQkvKiBwZ19jb252ZXJzaW9uICovCiAJT0NMQVNTX0RFRkFVTFQsCQkJCS8qIHBnX2F0dHJk ZWYgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Ftb3AuZGF0CmluZGV4IDYxY2Q1OTE0MzAuLmEwYmQ3 MDgxMzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1vcC5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbW9wLmRhdApAQCAtMTAyOCw2ICsxMDI4LDEx IEBACiAgIGFtb3ByaWdodHR5cGUgPT4gJ2J5dGVhJywgYW1vcHN0cmF0ZWd5ID0+ICcxJywg YW1vcG9wciA9PiAnPShieXRlYSxieXRlYSknLAogICBhbW9wbWV0aG9kID0+ICdoYXNoJyB9 LAogCisjIHBnX2VuY3J5cHRlZF9kZXRfb3BzCit7IGFtb3BmYW1pbHkgPT4gJ2hhc2gvcGdf ZW5jcnlwdGVkX2RldF9vcHMnLCBhbW9wbGVmdHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQn LAorICBhbW9wcmlnaHR0eXBlID0+ICdwZ19lbmNyeXB0ZWRfZGV0JywgYW1vcHN0cmF0ZWd5 ID0+ICcxJywgYW1vcG9wciA9PiAnPShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9k ZXQpJywKKyAgYW1vcG1ldGhvZCA9PiAnaGFzaCcgfSwKKwogIyB4aWRfb3BzCiB7IGFtb3Bm YW1pbHkgPT4gJ2hhc2gveGlkX29wcycsIGFtb3BsZWZ0dHlwZSA9PiAneGlkJywgYW1vcHJp Z2h0dHlwZSA9PiAneGlkJywKICAgYW1vcHN0cmF0ZWd5ID0+ICcxJywgYW1vcG9wciA9PiAn PSh4aWQseGlkKScsIGFtb3BtZXRob2QgPT4gJ2hhc2gnIH0sCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2FtcHJvYy5kYXQKaW5kZXggNGNjMTI5YmViZC4uZGRkYjI3MTEzZiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfYW1wcm9jLmRhdApAQCAtNDAyLDYgKzQwMiwxMSBAQAogeyBhbXByb2NmYW1p bHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2J5dGVhJywKICAg YW1wcm9jcmlnaHR0eXBlID0+ICdieXRlYScsIGFtcHJvY251bSA9PiAnMicsCiAgIGFtcHJv YyA9PiAnaGFzaHZhcmxlbmFleHRlbmRlZCcgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdoYXNo L3BnX2VuY3J5cHRlZF9kZXRfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLAorICBhbXByb2NyaWdodHR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBhbXBy b2NudW0gPT4gJzEnLCBhbXByb2MgPT4gJ2hhc2h2YXJsZW5hJyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAn cGdfZW5jcnlwdGVkX2RldCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncGdfZW5jcnlwdGVk X2RldCcsIGFtcHJvY251bSA9PiAnMicsCisgIGFtcHJvYyA9PiAnaGFzaHZhcmxlbmFleHRl bmRlZCcgfSwKIHsgYW1wcm9jZmFtaWx5ID0+ICdoYXNoL3hpZF9vcHMnLCBhbXByb2NsZWZ0 dHlwZSA9PiAneGlkJywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICd4aWQnLCBhbXByb2NudW0g PT4gJzEnLCBhbXByb2MgPT4gJ2hhc2hpbnQ0JyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2hh c2gveGlkX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICd4aWQnLApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfYXR0cmlidXRlLmgKaW5kZXggMDUzMjk0Yzk5Zi4uNTUwYTUzNjQ5YiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hdHRyaWJ1dGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2F0dHJpYnV0ZS5oCkBAIC0xNjQsNiArMTY0LDE1IEBAIENBVEFMT0co cGdfYXR0cmlidXRlLDEyNDksQXR0cmlidXRlUmVsYXRpb25JZCkgQktJX0JPT1RTVFJBUCBC S0lfUk9XVFlQRV9PSUQoNzUsCiAJICovCiAJYm9vbAkJYXR0aXNsb2NhbCBCS0lfREVGQVVM VCh0KTsKIAorCS8qIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAqLworCU9pZAkJCWF0dGNlayBC S0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xlbmNrZXkpOworCisJLyogcmVh bCB0eXBlIGlmIGVuY3J5cHRlZCAqLworCU9pZAkJCWF0dHJlYWx0eXBpZCBCS0lfREVGQVVM VCgwKSBCS0lfTE9PS1VQX09QVChwZ190eXBlKTsKKworCS8qIGVuY3J5cHRpb24gYWxnb3Jp dGhtIChQR19DRUtfKiB2YWx1ZXMpICovCisJaW50MTYJCWF0dGVuY2FsZyBCS0lfREVGQVVM VCgwKTsKKwogCS8qIE51bWJlciBvZiB0aW1lcyBpbmhlcml0ZWQgZnJvbSBkaXJlY3QgcGFy ZW50IHJlbGF0aW9uKHMpICovCiAJaW50MzIJCWF0dGluaGNvdW50IEJLSV9ERUZBVUxUKDAp OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAppbmRleCA0NDcxZWI2YmJlLi44NzhiMGJj YmJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTU0Niw0ICs1NDYsMTAgQEAK IHsgY2FzdHNvdXJjZSA9PiAndHN0enJhbmdlJywgY2FzdHRhcmdldCA9PiAndHN0em11bHRp cmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0em11bHRpcmFuZ2UodHN0enJhbmdlKScsIGNh c3Rjb250ZXh0ID0+ICdlJywKICAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKworeyBjYXN0c291 cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBjYXN0 ZnVuYyA9PiAnMCcsCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKK3sgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdwZ19lbmNyeXB0 ZWRfcm5kJywgY2FzdGZ1bmMgPT4gJzAnLAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY29sZW5ja2V5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjA5NWVkNzEyYjAKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tleS5oCkBAIC0w LDAgKzEsNTUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2NvbGVuY2tl eS5oCisgKgkgIGRlZmluaXRpb24gb2YgdGhlICJjb2x1bW4gZW5jcnlwdGlvbiBrZXkiIHN5 c3RlbSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5p YQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5rZXkuaAorICoKKyAqIE5P VEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRl cml2ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICovCisjaWZuZGVmIFBHX0NPTEVOQ0tFWV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tF WV9ICisKKyNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sZW5ja2V5X2QuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX2NvbGVu Y2tleSBkZWZpbml0aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1 Y3QgRm9ybURhdGFfcGdfY29sZW5ja2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NB VEFMT0cocGdfY29sZW5ja2V5LDgyMzQsQ29sdW1uRW5jS2V5UmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CisJTmFtZURhdGEJY2VrbmFtZTsKKwlPaWQJCQljZWtvd25lciBCS0lfTE9P S1VQKHBnX2F1dGhpZCk7Cit9IEZvcm1EYXRhX3BnX2NvbGVuY2tleTsKKwordHlwZWRlZiBG b3JtRGF0YV9wZ19jb2xlbmNrZXkgKkZvcm1fcGdfY29sZW5ja2V5OworCitERUNMQVJFX1VO SVFVRV9JTkRFWF9QS0VZKHBnX2NvbGVuY2tleV9vaWRfaW5kZXgsIDgyNDAsIENvbHVtbkVu Y0tleU9pZEluZGV4SWQsIG9uIHBnX2NvbGVuY2tleSB1c2luZyBidHJlZShvaWQgb2lkX29w cykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfY29sZW5ja2V5X2Nla25hbWVfaW5kZXgs IDgyNDIsIENvbHVtbkVuY0tleU5hbWVJbmRleElkLCBvbiBwZ19jb2xlbmNrZXkgdXNpbmcg YnRyZWUoY2VrbmFtZSBuYW1lX29wcykpOworCisvKgorICogQ29uc3RhbnRzIGZvciBDTUsg YW5kIENFSyBhbGdvcml0aG1zLiAgTm90ZSB0aGF0IHRoZXNlIGFyZSBwYXJ0IG9mIHRoZQor ICogcHJvdG9jb2wuICBGb3IgY2xhcml0eSwgdGhlIGFzc2lnbmVkIG51bWJlcnMgYXJlIG5v dCByZXVzZWQgYmV0d2VlbiBDTUtzCisgKiBhbmQgQ0VLcywgYnV0IHRoYXQgaXMgbm90IHRl Y2huaWNhbGx5IHJlcXVpcmVkLiAgSW4gZWl0aGVyIGNhc2UsIGRvbid0CisgKiBhc3NpZ24g emVybywgc28gdGhhdCB0aGF0IGNhbiBiZSB1c2VkIGFzIGFuIGludmFsaWQgdmFsdWUuCisg Ki8KKworI2RlZmluZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMQkJCTEKKyNkZWZpbmUgUEdf Q01LX1JTQUVTX09BRVBfU0hBXzI1NgkJMgorCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18x MjhfQ0JDX0hNQUNfU0hBXzI1NgkxMzAKKyNkZWZpbmUgUEdfQ0VLX0FFQURfQUVTXzE5Ml9D QkNfSE1BQ19TSEFfMzg0CTEzMQorI2RlZmluZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19I TUFDX1NIQV8zODQJMTMyCisjZGVmaW5lIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNf U0hBXzUxMgkxMzMKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2NvbGVuY2tleWRhdGEuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sZW5ja2V5 ZGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjNlNGRlYTcy MTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbGVuY2tl eWRhdGEuaApAQCAtMCwwICsxLDQ2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBwZ19jb2xlbmNrZXlkYXRhLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgImNvbHVtbiBl bmNyeXB0aW9uIGtleSBkYXRhIiBzeXN0ZW0gY2F0YWxvZworICoKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBV bml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2NvbGVua2V5ZGF0YS5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9k dWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRp b24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfQ09MRU5D S0VZREFUQV9ICisjZGVmaW5lIFBHX0NPTEVOQ0tFWURBVEFfSAorCisjaW5jbHVkZSAiY2F0 YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGFfZC5o IgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfY29sZW5ja2V5ZGF0YSBkZWZpbml0 aW9uLiBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFf cGdfY29sZW5ja2V5ZGF0YQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBn X2NvbGVuY2tleWRhdGEsODI1MCxDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCkKK3sKKwlP aWQJCQlvaWQ7CisJT2lkCQkJY2tkY2VraWQgQktJX0xPT0tVUChwZ19jb2xlbmNrZXkpOwor CU9pZAkJCWNrZGNta2lkIEJLSV9MT09LVVAocGdfY29sbWFzdGVya2V5KTsKKwlpbnQxNgkJ Y2tkY21rYWxnOwkJLyogUEdfQ01LXyogdmFsdWVzICovCisjaWZkZWYgQ0FUQUxPR19WQVJM RU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUgKi8KKwlieXRlYQkJ Y2tkZW5jdmFsIEJLSV9GT1JDRV9OT1RfTlVMTDsKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ19j b2xlbmNrZXlkYXRhOworCit0eXBlZGVmIEZvcm1EYXRhX3BnX2NvbGVuY2tleWRhdGEgKkZv cm1fcGdfY29sZW5ja2V5ZGF0YTsKKworREVDTEFSRV9UT0FTVChwZ19jb2xlbmNrZXlkYXRh LCA4MjM3LCA4MjM4KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19jb2xlbmNr ZXlkYXRhX29pZF9pbmRleCwgODI1MSwgQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsIG9u IHBnX2NvbGVuY2tleWRhdGEgdXNpbmcgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVf VU5JUVVFX0lOREVYKHBnX2NvbGVuY2tleWRhdGFfY2tkY2VraWRfY2tkY21raWRfaW5kZXgs IDgyNTIsIENvbHVtbkVuY0tleUNla2lkQ21raWRJbmRleElkLCBvbiBwZ19jb2xlbmNrZXlk YXRhIHVzaW5nIGJ0cmVlKGNrZGNla2lkIG9pZF9vcHMsIGNrZGNta2lkIG9pZF9vcHMpKTsK KworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbG1hc3Rl cmtleS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wMzQ0Y2M0MjAxCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaApAQCAtMCww ICsxLDQ1IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19jb2xtYXN0ZXJr ZXkuaAorICoJICBkZWZpbml0aW9uIG9mIHRoZSAiY29sdW1uIG1hc3RlciBrZXkiIHN5c3Rl bSBjYXRhbG9nCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQor ICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgKKyAqCisgKiBO T1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBk ZXJpdmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworI2lmbmRlZiBQR19DT0xNQVNURVJLRVlfSAorI2RlZmluZSBQR19DT0xN QVNURVJLRVlfSAorCisjaW5jbHVkZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX2NvbG1hc3RlcmtleV9kLmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAq CQlwZ19jb2xtYXN0ZXJrZXkgZGVmaW5pdGlvbi4gY3BwIHR1cm5zIHRoaXMgaW50bworICoJ CXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX2NvbG1hc3RlcmtleQorICogLS0tLS0tLS0t LS0tLS0tLQorICovCitDQVRBTE9HKHBnX2NvbG1hc3RlcmtleSw4MjMzLENvbHVtbk1hc3Rl cktleVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOworCU5hbWVEYXRhCWNta25hbWU7CisJ T2lkCQkJY21rb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworI2lmZGVmIENBVEFMT0df VkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICovCisJdGV4 dAkJY21rcmVhbG0gQktJX0ZPUkNFX05PVF9OVUxMOworI2VuZGlmCit9IEZvcm1EYXRhX3Bn X2NvbG1hc3RlcmtleTsKKwordHlwZWRlZiBGb3JtRGF0YV9wZ19jb2xtYXN0ZXJrZXkgKkZv cm1fcGdfY29sbWFzdGVya2V5OworCitERUNMQVJFX1RPQVNUKHBnX2NvbG1hc3RlcmtleSwg ODIzNSwgODIzNik7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfY29sbWFzdGVy a2V5X29pZF9pbmRleCwgODIzOSwgQ29sdW1uTWFzdGVyS2V5T2lkSW5kZXhJZCwgb24gcGdf Y29sbWFzdGVya2V5IHVzaW5nIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFV RV9JTkRFWChwZ19jb2xtYXN0ZXJrZXlfY21rbmFtZV9pbmRleCwgODI0MSwgQ29sdW1uTWFz dGVyS2V5TmFtZUluZGV4SWQsIG9uIHBnX2NvbG1hc3RlcmtleSB1c2luZyBidHJlZShjbWtu YW1lIG5hbWVfb3BzKSk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19vcGNsYXNzLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BjbGFzcy5k YXQKaW5kZXggZGJjYWU3ZmZkZC4uMGNhNDAxZmZlNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19vcGNsYXNzLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X29wY2xhc3MuZGF0CkBAIC0xNjYsNiArMTY2LDggQEAKICAgb3BjaW50eXBlID0+ICdib29s JyB9LAogeyBvcGNtZXRob2QgPT4gJ2hhc2gnLCBvcGNuYW1lID0+ICdieXRlYV9vcHMnLCBv cGNmYW1pbHkgPT4gJ2hhc2gvYnl0ZWFfb3BzJywKICAgb3BjaW50eXBlID0+ICdieXRlYScg fSwKK3sgb3BjbWV0aG9kID0+ICdoYXNoJywgb3BjbmFtZSA9PiAncGdfZW5jcnlwdGVkX2Rl dF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gvcGdfZW5jcnlwdGVkX2RldF9vcHMnLAorICBv cGNpbnR5cGUgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnIH0sCiB7IG9wY21ldGhvZCA9PiAnYnRy ZWUnLCBvcGNuYW1lID0+ICd0aWRfb3BzJywgb3BjZmFtaWx5ID0+ICdidHJlZS90aWRfb3Bz JywKICAgb3BjaW50eXBlID0+ICd0aWQnIH0sCiB7IG9wY21ldGhvZCA9PiAnaGFzaCcsIG9w Y25hbWUgPT4gJ3hpZF9vcHMnLCBvcGNmYW1pbHkgPT4gJ2hhc2gveGlkX29wcycsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9yLmRhdCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CmluZGV4IGJjNWY4MjEzZjMuLjQ3MzdhN2Y5 ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CkBAIC0zNDU4LDQgKzM0 NTgsMTQgQEAKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9hZnRlcl9tdWx0aXJhbmdlJywg b3BycmVzdCA9PiAnbXVsdGlyYW5nZXNlbCcsCiAgIG9wcmpvaW4gPT4gJ3NjYWxhcmd0am9p bnNlbCcgfSwKIAoreyBvaWQgPT4gJzgyNDcnLCBkZXNjciA9PiAnZXF1YWwnLAorICBvcHJu YW1lID0+ICc9Jywgb3ByY2FubWVyZ2UgPT4gJ2YnLCBvcHJjYW5oYXNoID0+ICd0Jywgb3By bGVmdCA9PiAncGdfZW5jcnlwdGVkX2RldCcsCisgIG9wcnJpZ2h0ID0+ICdwZ19lbmNyeXB0 ZWRfZGV0Jywgb3BycmVzdWx0ID0+ICdib29sJywgb3ByY29tID0+ICc9KHBnX2VuY3J5cHRl ZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLAorICBvcHJuZWdhdGUgPT4gJzw+KHBnX2VuY3J5 cHRlZF9kZXQscGdfZW5jcnlwdGVkX2RldCknLCBvcHJjb2RlID0+ICdwZ19lbmNyeXB0ZWRf ZGV0X2VxJywgb3BycmVzdCA9PiAnZXFzZWwnLAorICBvcHJqb2luID0+ICdlcWpvaW5zZWwn IH0sCit7IG9pZCA9PiAnODI0OCcsIGRlc2NyID0+ICdub3QgZXF1YWwnLAorICBvcHJuYW1l ID0+ICc8PicsIG9wcmxlZnQgPT4gJ3BnX2VuY3J5cHRlZF9kZXQnLCBvcHJyaWdodCA9PiAn cGdfZW5jcnlwdGVkX2RldCcsIG9wcnJlc3VsdCA9PiAnYm9vbCcsCisgIG9wcmNvbSA9PiAn PD4ocGdfZW5jcnlwdGVkX2RldCxwZ19lbmNyeXB0ZWRfZGV0KScsIG9wcm5lZ2F0ZSA9PiAn PShwZ19lbmNyeXB0ZWRfZGV0LHBnX2VuY3J5cHRlZF9kZXQpJywKKyAgb3ByY29kZSA9PiAn cGdfZW5jcnlwdGVkX2RldF9uZScsIG9wcnJlc3QgPT4gJ25lcXNlbCcsIG9wcmpvaW4gPT4g J25lcWpvaW5zZWwnIH0sCisKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfb3BmYW1pbHkuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGZhbWlseS5kYXQK aW5kZXggYjNiNmE3ZTYxNi4uNTM0MzU4MGIwNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19vcGZhbWlseS5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19v cGZhbWlseS5kYXQKQEAgLTEwOCw2ICsxMDgsOCBAQAogICBvcGZtZXRob2QgPT4gJ2hhc2gn LCBvcGZuYW1lID0+ICdib29sX29wcycgfSwKIHsgb2lkID0+ICcyMjIzJywKICAgb3BmbWV0 aG9kID0+ICdoYXNoJywgb3BmbmFtZSA9PiAnYnl0ZWFfb3BzJyB9LAoreyBvaWQgPT4gJzgy NDknLAorICBvcGZtZXRob2QgPT4gJ2hhc2gnLCBvcGZuYW1lID0+ICdwZ19lbmNyeXB0ZWRf ZGV0X29wcycgfSwKIHsgb2lkID0+ICcyNzg5JywKICAgb3BmbWV0aG9kID0+ICdidHJlZScs IG9wZm5hbWUgPT4gJ3RpZF9vcHMnIH0sCiB7IG9pZCA9PiAnMjIyNScsCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCBiZTQ3NTgzMTIyLi5mZWZiNGI5NDc0IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHJvYy5kYXQKQEAgLTgwMzMsOSArODAzMyw5IEBACiAgIHByb25hbWUgPT4g J3BnX3ByZXBhcmVkX3N0YXRlbWVudCcsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQg PT4gJ3QnLAogICBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJv cmV0dHlwZSA9PiAncmVjb3JkJywKICAgcHJvYXJndHlwZXMgPT4gJycsCi0gIHByb2FsbGFy Z3R5cGVzID0+ICd7dGV4dCx0ZXh0LHRpbWVzdGFtcHR6LF9yZWd0eXBlLF9yZWd0eXBlLGJv b2wsaW50OCxpbnQ4fScsCi0gIHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvfScs Ci0gIHByb2FyZ25hbWVzID0+ICd7bmFtZSxzdGF0ZW1lbnQscHJlcGFyZV90aW1lLHBhcmFt ZXRlcl90eXBlcyxyZXN1bHRfdHlwZXMsZnJvbV9zcWwsZ2VuZXJpY19wbGFucyxjdXN0b21f cGxhbnN9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3t0ZXh0LHRleHQsdGltZXN0YW1wdHos X3JlZ3R5cGUsX3JlZ2NsYXNzLF9pbnQyLF9yZWd0eXBlLGJvb2wsaW50OCxpbnQ4fScsCisg IHByb2FyZ21vZGVzID0+ICd7byxvLG8sbyxvLG8sbyxvLG8sb30nLAorICBwcm9hcmduYW1l cyA9PiAne25hbWUsc3RhdGVtZW50LHByZXBhcmVfdGltZSxwYXJhbWV0ZXJfdHlwZXMscGFy YW1ldGVyX29yaWdfdGFibGVzLHBhcmFtZXRlcl9vcmlnX2NvbHVtbnMscmVzdWx0X3R5cGVz LGZyb21fc3FsLGdlbmVyaWNfcGxhbnMsY3VzdG9tX3BsYW5zfScsCiAgIHByb3NyYyA9PiAn cGdfcHJlcGFyZWRfc3RhdGVtZW50JyB9LAogeyBvaWQgPT4gJzI1MTEnLCBkZXNjciA9PiAn Z2V0IHRoZSBvcGVuIGN1cnNvcnMgZm9yIHRoaXMgc2Vzc2lvbicsCiAgIHByb25hbWUgPT4g J3BnX2N1cnNvcicsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLApAQCAt MTE4OTQsNCArMTE4OTQsMTEgQEAKICAgcHJvcmV0dHlwZSA9PiAnYnl0ZWEnLCBwcm9hcmd0 eXBlcyA9PiAncGdfYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeScsCiAgIHByb3NyYyA9PiAn YnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5kJyB9LAogCit7IG9pZCA9PiAnODI0NScs CisgIHByb25hbWUgPT4gJ3BnX2VuY3J5cHRlZF9kZXRfZXEnLCBwcm9sZWFrcHJvb2YgPT4g J3QnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ3BnX2VuY3J5 cHRlZF9kZXQgcGdfZW5jcnlwdGVkX2RldCcsIHByb3NyYyA9PiAnYnl0ZWFlcScgfSwKK3sg b2lkID0+ICc4MjQ2JywKKyAgcHJvbmFtZSA9PiAncGdfZW5jcnlwdGVkX2RldF9uZScsIHBy b2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBl cyA9PiAncGdfZW5jcnlwdGVkX2RldCBwZ19lbmNyeXB0ZWRfZGV0JywgcHJvc3JjID0+ICdi eXRlYW5lJyB9LAorCiBdCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmRhdAppbmRleCBkZjQ1ODc5 NDYzLi44NTEwNjNjZjVmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3R5 cGUuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5kYXQKQEAgLTY5Miw0 ICs2OTIsMTYgQEAKICAgdHlwcmVjZWl2ZSA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFy eV9yZWN2JywKICAgdHlwc2VuZCA9PiAnYnJpbl9taW5tYXhfbXVsdGlfc3VtbWFyeV9zZW5k JywgdHlwYWxpZ24gPT4gJ2knLAogICB0eXBzdG9yYWdlID0+ICd4JywgdHlwY29sbGF0aW9u ID0+ICdkZWZhdWx0JyB9LAorCit7IG9pZCA9PiAnODI0MycsIGRlc2NyID0+ICdlbmNyeXB0 ZWQgY29sdW1uIChkZXRlcm1pbmlzdGljKScsCisgIHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRl ZF9kZXQnLCB0eXBsZW4gPT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdi JywKKyAgdHlwY2F0ZWdvcnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0ZWFpbicsIHR5cG91 dHB1dCA9PiAnYnl0ZWFvdXQnLAorICB0eXByZWNlaXZlID0+ICdieXRlYXJlY3YnLCB0eXBz ZW5kID0+ICdieXRlYXNlbmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4g J2UnIH0sCit7IG9pZCA9PiAnODI0NCcsIGRlc2NyID0+ICdlbmNyeXB0ZWQgY29sdW1uIChy YW5kb21pemVkKScsCisgIHR5cG5hbWUgPT4gJ3BnX2VuY3J5cHRlZF9ybmQnLCB0eXBsZW4g PT4gJy0xJywgdHlwYnl2YWwgPT4gJ2YnLCB0eXB0eXBlID0+ICdiJywKKyAgdHlwY2F0ZWdv cnkgPT4gJ1knLCB0eXBpbnB1dCA9PiAnYnl0ZWFpbicsIHR5cG91dHB1dCA9PiAnYnl0ZWFv dXQnLAorICB0eXByZWNlaXZlID0+ICdieXRlYXJlY3YnLCB0eXBzZW5kID0+ICdieXRlYXNl bmQnLCB0eXBhbGlnbiA9PiAnaScsCisgIHR5cHN0b3JhZ2UgPT4gJ2UnIH0sCisKIF0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdHlwZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ190eXBlLmgKaW5kZXggNDhhMjU1OTEzNy4uYzFkMzA5MDNiNSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ190eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ190eXBlLmgKQEAgLTI5NCw2ICsyOTQsNyBAQCBERUNMQVJFX1VOSVFVRV9J TkRFWChwZ190eXBlX3R5cG5hbWVfbnNwX2luZGV4LCAyNzA0LCBUeXBlTmFtZU5zcEluZGV4 SWQsIG9uIHBnXwogI2RlZmluZSAgVFlQQ0FURUdPUllfVVNFUgkJJ1UnCiAjZGVmaW5lICBU WVBDQVRFR09SWV9CSVRTVFJJTkcJJ1YnIC8qIGVyIC4uLiAidmFyYml0Ij8gKi8KICNkZWZp bmUgIFRZUENBVEVHT1JZX1VOS05PV04JJ1gnCisjZGVmaW5lICBUWVBDQVRFR09SWV9FTkNS WVBURUQJJ1knCiAjZGVmaW5lICBUWVBDQVRFR09SWV9JTlRFUk5BTAknWicKIAogI2RlZmlu ZSAgVFlQQUxJR05fQ0hBUgkJCSdjJyAvKiBjaGFyIGFsaWdubWVudCAoaS5lLiB1bmFsaWdu ZWQpICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgg Yi9zcmMvaW5jbHVkZS9jb21tYW5kcy9jb2xlbmNjbWRzLmgKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMC4uZDk3NDFlMTAwYgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL2NvbGVuY2NtZHMuaApAQCAtMCwwICsxLDI1IEBACisvKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBjb2xlbmNjbWRzLmgKKyAqCSAgcHJvdG90eXBl cyBmb3IgY29sZW5jY21kcy5jLgorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBv ZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFuZHMvY29sZW5jY21kcy5o CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBDT0xFTkNDTURT X0gKKyNkZWZpbmUgQ09MRU5DQ01EU19ICisKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFk ZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgorCitleHRlcm4gT2Jq ZWN0QWRkcmVzcyBDcmVhdGVDRUsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWZpbmVTdG10ICpz dG10KTsKK2V4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleShQ YXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQgKnN0bXQp OworZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlQ01LKFBhcnNlU3RhdGUgKnBzdGF0ZSwg RGVmaW5lU3RtdCAqc3RtdCk7CisKKyNlbmRpZgkJCQkJCQkvKiBDT0xFTkNDTURTX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmggYi9zcmMvaW5jbHVk ZS9saWJwcS9saWJwcS1iZS5oCmluZGV4IDZkNDUyZWM2ZDkuLmUzMmM3Nzc5YzkgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2xpYnBxL2xpYnBxLWJlLmgKKysrIGIvc3JjL2luY2x1ZGUv bGlicHEvbGlicHEtYmUuaApAQCAtMTY0LDYgKzE2NCw3IEBAIHR5cGVkZWYgc3RydWN0IFBv cnQKIAkgKi8KIAljaGFyCSAgICpkYXRhYmFzZV9uYW1lOwogCWNoYXIJICAgKnVzZXJfbmFt ZTsKKwlib29sCQljb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkOwogCWNoYXIJICAgKmNtZGxp bmVfb3B0aW9uczsKIAlMaXN0CSAgICpndWNfb3B0aW9uczsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCmluZGV4IDQ2OWE1YzQ2ZjYuLmNhMWI1OTU4M2QgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTY4Niw2ICs2ODYsNyBAQCB0eXBlZGVmIHN0cnVjdCBDb2x1bW5EZWYK IAljaGFyCSAgICpjb2xuYW1lOwkJLyogbmFtZSBvZiBjb2x1bW4gKi8KIAlUeXBlTmFtZSAg ICp0eXBlTmFtZTsJCS8qIHR5cGUgb2YgY29sdW1uICovCiAJY2hhcgkgICAqY29tcHJlc3Np b247CS8qIGNvbXByZXNzaW9uIG1ldGhvZCBmb3IgY29sdW1uICovCisJTGlzdAkgICAqZW5j cnlwdGlvbjsJCS8qIGVuY3J5cHRpb24gaW5mbyBmb3IgY29sdW1uICovCiAJaW50CQkJaW5o Y291bnQ7CQkvKiBudW1iZXIgb2YgdGltZXMgY29sdW1uIGlzIGluaGVyaXRlZCAqLwogCWJv b2wJCWlzX2xvY2FsOwkJLyogY29sdW1uIGhhcyBsb2NhbCAobm9uLWluaGVyaXRlZCkgZGVm J24gKi8KIAlib29sCQlpc19ub3RfbnVsbDsJLyogTk9UIE5VTEwgY29uc3RyYWludCBzcGVj aWZpZWQ/ICovCkBAIC0yMTUxLDYgKzIxNTIsOCBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlw ZQogCU9CSkVDVF9DQVNULAogCU9CSkVDVF9DT0xVTU4sCiAJT0JKRUNUX0NPTExBVElPTiwK KwlPQkpFQ1RfQ0VLLAorCU9CSkVDVF9DTUssCiAJT0JKRUNUX0NPTlZFUlNJT04sCiAJT0JK RUNUX0RBVEFCQVNFLAogCU9CSkVDVF9ERUZBVUxULApAQCAtMjM0Myw2ICsyMzQ2LDE5IEBA IHR5cGVkZWYgc3RydWN0IEFsdGVyQ29sbGF0aW9uU3RtdAogfSBBbHRlckNvbGxhdGlvblN0 bXQ7CiAKIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICogQWx0ZXIgQ29sdW1uIEVu Y3J5cHRpb24gS2V5CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg c3RydWN0IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKK3sKKwlOb2RlVGFnCQl0eXBl OworCWNoYXIJICAgKmNla25hbWU7CisJYm9vbAkJaXNEcm9wOwkJCS8qIEFERCBvciBEUk9Q IHRoZSBpdGVtcz8gKi8KKwlMaXN0CSAgICpkZWZpbml0aW9uOworfSBBbHRlckNvbHVtbkVu Y3J5cHRpb25LZXlTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCUFs dGVyIERvbWFpbgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXpl LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCmluZGV4IGRjMzc5NTQ3YzcuLmMz MTBlMTI0ZjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL2FuYWx5emUuaApAQCAtMjgsNyArMjgsOSBAQCBleHRl cm4gUEdETExJTVBPUlQgcG9zdF9wYXJzZV9hbmFseXplX2hvb2tfdHlwZSBwb3N0X3BhcnNl X2FuYWx5emVfaG9vazsKIGV4dGVybiBRdWVyeSAqcGFyc2VfYW5hbHl6ZV9maXhlZHBhcmFt cyhSYXdTdG10ICpwYXJzZVRyZWUsIGNvbnN0IGNoYXIgKnNvdXJjZVRleHQsCiAJCQkJCQkJ CQkJY29uc3QgT2lkICpwYXJhbVR5cGVzLCBpbnQgbnVtUGFyYW1zLCBRdWVyeUVudmlyb25t ZW50ICpxdWVyeUVudik7CiBleHRlcm4gUXVlcnkgKnBhcnNlX2FuYWx5emVfdmFycGFyYW1z KFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwKLQkJCQkJCQkJ CSAgT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQg KnF1ZXJ5RW52KTsKKwkJCQkJCQkJCSAgT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJh bXMsCisJCQkJCQkJCQkgIE9pZCAqKnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJh bU9yaWdDb2xzLAorCQkJCQkJCQkJICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudik7CiBl eHRlcm4gUXVlcnkgKnBhcnNlX2FuYWx5emVfd2l0aGNiKFJhd1N0bXQgKnBhcnNlVHJlZSwg Y29uc3QgY2hhciAqc291cmNlVGV4dCwKIAkJCQkJCQkJICAgUGFyc2VyU2V0dXBIb29rIHBh cnNlclNldHVwLAogCQkJCQkJCQkgICB2b2lkICpwYXJzZXJTZXR1cEFyZywKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9r d2xpc3QuaAppbmRleCBhZTM1ZjAzMjUxLi4xM2NjYWRmZDVkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCkBAIC0xNTIsNiArMTUyLDcgQEAgUEdfS0VZV09SRCgiZW1wdHkiLCBFTVBUWV9QLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbmFibGUiLCBF TkFCTEVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi ZW5jb2RpbmciLCBFTkNPRElORywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgiZW5jcnlwdGVkIiwgRU5DUllQVEVELCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJlbmNyeXB0aW9uIiwgRU5DUllQVElPTiwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZW5kIiwgRU5EX1As IFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlbnVtIiwgRU5V TV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJlcnJv ciIsIEVSUk9SX1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKQEAgLTI2OCw2 ICsyNjksNyBAQCBQR19LRVlXT1JEKCJsb2NrIiwgTE9DS19QLCBVTlJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsb2NrZWQiLCBMT0NLRUQsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxvZ2dlZCIsIExPR0dFRCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibWFwcGluZyIs IE1BUFBJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo Im1hc3RlciIsIE1BU1RFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgibWF0Y2giLCBNQVRDSCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgibWF0Y2hlZCIsIE1BVENIRUQsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoIm1hdGVyaWFsaXplZCIsIE1BVEVSSUFMSVpFRCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmgKaW5kZXggOTYyZWJmNjVkZS4uZjZhNzE3ODc2NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf bm9kZS5oCkBAIC05Myw2ICs5Myw3IEBAIHR5cGVkZWYgTm9kZSAqKCpQYXJzZVBhcmFtUmVm SG9vaykgKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpOwogdHlwZWRlZiBO b2RlICooKkNvZXJjZVBhcmFtSG9vaykgKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW0gKnBh cmFtLAogCQkJCQkJCQkgIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2Qs CiAJCQkJCQkJCSAgaW50IGxvY2F0aW9uKTsKK3R5cGVkZWYgdm9pZCAoKlBhcmFtQXNzaWdu T3JpZ0hvb2spIChQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtICpwYXJhbSwgT2lkIG9yaWd0 YmwsIEF0dHJOdW1iZXIgb3JpZ2NvbCk7CiAKIAogLyoKQEAgLTIyMiw2ICsyMjMsNyBAQCBz dHJ1Y3QgUGFyc2VTdGF0ZQogCVBvc3RQYXJzZUNvbHVtblJlZkhvb2sgcF9wb3N0X2NvbHVt bnJlZl9ob29rOwogCVBhcnNlUGFyYW1SZWZIb29rIHBfcGFyYW1yZWZfaG9vazsKIAlDb2Vy Y2VQYXJhbUhvb2sgcF9jb2VyY2VfcGFyYW1faG9vazsKKwlQYXJhbUFzc2lnbk9yaWdIb29r IHBfcGFyYW1fYXNzaWduX29yaWdfaG9vazsKIAl2b2lkCSAgICpwX3JlZl9ob29rX3N0YXRl OwkvKiBjb21tb24gcGFzc3Rocm91Z2ggbGluayBmb3IgYWJvdmUgKi8KIH07CiAKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9wYXJhbS5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3BhcmFtLmgKaW5kZXggZGYxZWU2NjBkOC4uZGEyMDJiMjhhNyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKKysrIGIvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX3BhcmFtLmgKQEAgLTE4LDcgKzE4LDggQEAKIGV4dGVybiB2 b2lkIHNldHVwX3BhcnNlX2ZpeGVkX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCQkJCQkJCSBjb25zdCBPaWQgKnBhcmFtVHlwZXMsIGludCBudW1QYXJhbXMpOwogZXh0 ZXJuIHZvaWQgc2V0dXBfcGFyc2VfdmFyaWFibGVfcGFyYW1ldGVycyhQYXJzZVN0YXRlICpw c3RhdGUsCi0JCQkJCQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zKTsK KwkJCQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMsCisJCQkJCQkJ CQkJCU9pZCAqKnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzKTsK IGV4dGVybiB2b2lkIGNoZWNrX3ZhcmlhYmxlX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBRdWVyeSAqcXVlcnkpOwogZXh0ZXJuIGJvb2wgcXVlcnlfY29udGFpbnNfZXh0ZXJu X3BhcmFtcyhRdWVyeSAqcXVlcnkpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDll OTRmNDRjNWYuLmQ4MmEyZTExNzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0yOSw2 ICsyOSw4IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQUNDRVNTX01FVEhPRCwgIkFMVEVS IEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0FMVEVSX0FHR1JFR0FURSwgIkFMVEVSIEFHR1JFR0FURSIsIHRydWUsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ0FTVCwgIkFMVEVSIENBU1QiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX0NPTExBVElPTiwgIkFMVEVS IENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxU RVJfQ09MVU1OX0VOQ1JZUFRJT05fS0VZLCAiQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT0xVTU5f TUFTVEVSX0tFWSwgIkFMVEVSIENPTFVNTiBNQVNURVIgS0VZIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9DT05TVFJBSU5ULCAiQUxURVIgQ09OU1RS QUlOVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfQ09O VkVSU0lPTiwgIkFMVEVSIENPTlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19D TURUQUcoQ01EVEFHX0FMVEVSX0RBVEFCQVNFLCAiQUxURVIgREFUQUJBU0UiLCBmYWxzZSwg ZmFsc2UsIGZhbHNlKQpAQCAtODYsNiArODgsOCBAQCBQR19DTURUQUcoQ01EVEFHX0NSRUFU RV9BQ0NFU1NfTUVUSE9ELCAiQ1JFQVRFIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwg ZmFscwogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQUdHUkVHQVRFLCAiQ1JFQVRFIEFHR1JF R0FURSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX0NB U1QsICJDUkVBVEUgQ0FTVCIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfQ1JFQVRFX0NPTExBVElPTiwgIkNSRUFURSBDT0xMQVRJT04iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT0xVTU5fRU5DUllQVElPTl9LRVks ICJDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfQ09MVU1OX01BU1RFUl9LRVksICJDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0NSRUFURV9DT05TVFJBSU5ULCAiQ1JFQVRFIENPTlNUUkFJTlQiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9DT05WRVJTSU9OLCAiQ1JFQVRFIENP TlZFUlNJT04iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFU RV9EQVRBQkFTRSwgIkNSRUFURSBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBA IC0xMzgsNiArMTQyLDggQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0Qs ICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ0FTVCwgIkRST1AgQ0FTVCIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DT0xMQVRJT04sICJEUk9Q IENPTExBVElPTiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJP UF9DT0xVTU5fRU5DUllQVElPTl9LRVksICJEUk9QIENPTFVNTiBFTkNSWVBUSU9OIEtFWSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9DT0xVTU5fTUFT VEVSX0tFWSwgIkRST1AgQ09MVU1OIE1BU1RFUiBLRVkiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0RST1BfQ09OU1RSQUlOVCwgIkRST1AgQ09OU1RSQUlOVCIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9DT05WRVJTSU9O LCAiRFJPUCBDT05WRVJTSU9OIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19EUk9QX0RBVEFCQVNFLCAiRFJPUCBEQVRBQkFTRSIsIGZhbHNlLCBmYWxzZSwgZmFs c2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL3Rjb3Bwcm90LmggYi9zcmMvaW5j bHVkZS90Y29wL3Rjb3Bwcm90LmgKaW5kZXggNzBkOWRhYjI1Yi4uMzAzOGNlYjUyMiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC90Y29wcHJvdC5oCisrKyBiL3NyYy9pbmNsdWRl L3Rjb3AvdGNvcHByb3QuaApAQCAtNTMsNiArNTMsOCBAQCBleHRlcm4gTGlzdCAqcGdfYW5h bHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMoUmF3U3RtdCAqcGFyc2V0cmVlLAogCQkJCQkJ CQkJCQkgIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywKIAkJCQkJCQkJCQkJICBPaWQgKipw YXJhbVR5cGVzLAogCQkJCQkJCQkJCQkgIGludCAqbnVtUGFyYW1zLAorCQkJCQkJCQkJCQkg IE9pZCAqKnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCQkJCSAgQXR0ck51bWJlciAqKnBhcmFt T3JpZ0NvbHMsCiAJCQkJCQkJCQkJCSAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpOwog ZXh0ZXJuIExpc3QgKnBnX2FuYWx5emVfYW5kX3Jld3JpdGVfd2l0aGNiKFJhd1N0bXQgKnBh cnNldHJlZSwKIAkJCQkJCQkJCQkgICBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2Fj bC5oCmluZGV4IDNkNjQxMTE5N2MuLmJkYjZkNzQxZDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCkBAIC0zMTgs NiArMzE4LDggQEAgZXh0ZXJuIGJvb2wgcGdfb3BjbGFzc19vd25lcmNoZWNrKE9pZCBvcGNf b2lkLCBPaWQgcm9sZWlkKTsKIGV4dGVybiBib29sIHBnX29wZmFtaWx5X293bmVyY2hlY2so T2lkIG9wZl9vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJvb2wgcGdfZGF0YWJhc2Vfb3du ZXJjaGVjayhPaWQgZGJfb2lkLCBPaWQgcm9sZWlkKTsKIGV4dGVybiBib29sIHBnX2NvbGxh dGlvbl9vd25lcmNoZWNrKE9pZCBjb2xsX29pZCwgT2lkIHJvbGVpZCk7CitleHRlcm4gYm9v bCBwZ19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfb3duZXJjaGVjayhPaWQgY2VrX29pZCwgT2lk IHJvbGVpZCk7CitleHRlcm4gYm9vbCBwZ19jb2x1bW5fbWFzdGVyX2tleV9vd25lcmNoZWNr KE9pZCBjbWtfb2lkLCBPaWQgcm9sZWlkKTsKIGV4dGVybiBib29sIHBnX2NvbnZlcnNpb25f b3duZXJjaGVjayhPaWQgY29udl9vaWQsIE9pZCByb2xlaWQpOwogZXh0ZXJuIGJvb2wgcGdf dHNfZGljdF9vd25lcmNoZWNrKE9pZCBkaWN0X29pZCwgT2lkIHJvbGVpZCk7CiBleHRlcm4g Ym9vbCBwZ190c19jb25maWdfb3duZXJjaGVjayhPaWQgY2ZnX29pZCwgT2lkIHJvbGVpZCk7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IDUwZjAyODgzMDUuLjA2NGI5Y2QzMzggMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBAIC0xNjMsNiArMTYzLDcgQEAgZXh0ZXJuIGJvb2wg dHlwZV9pc19yb3d0eXBlKE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCB0eXBlX2lzX2VudW0o T2lkIHR5cGlkKTsKIGV4dGVybiBib29sIHR5cGVfaXNfcmFuZ2UoT2lkIHR5cGlkKTsKIGV4 dGVybiBib29sIHR5cGVfaXNfbXVsdGlyYW5nZShPaWQgdHlwaWQpOworZXh0ZXJuIGJvb2wg dHlwZV9pc19lbmNyeXB0ZWQoT2lkIHR5cGlkKTsKIGV4dGVybiB2b2lkIGdldF90eXBlX2Nh dGVnb3J5X3ByZWZlcnJlZChPaWQgdHlwaWQsCiAJCQkJCQkJCQkJY2hhciAqdHlwY2F0ZWdv cnksCiAJCQkJCQkJCQkJYm9vbCAqdHlwaXNwcmVmZXJyZWQpOwpAQCAtMjAyLDYgKzIwMywx MCBAQCBleHRlcm4gT2lkCWdldF9wdWJsaWNhdGlvbl9vaWQoY29uc3QgY2hhciAqcHVibmFt ZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBjaGFyICpnZXRfcHVibGljYXRpb25fbmFt ZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9zdWJzY3Jp cHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRl cm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5n X29rKTsKK2V4dGVybiBPaWQJZ2V0X2Nla19vaWQoY29uc3QgY2hhciAqY2VrbmFtZSwgYm9v bCBtaXNzaW5nX29rKTsKK2V4dGVybiBjaGFyICpnZXRfY2VrX25hbWUoT2lkIGNla2lkLCBi b29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlnZXRfY21rX29pZChjb25zdCBjaGFyICpj bWtuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIGNoYXIgKmdldF9jbWtfbmFtZShP aWQgY21raWQsIGJvb2wgbWlzc2luZ19vayk7CiAKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0 eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlw ZV9pc19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlu cyBvdmVyIGFycmF5cyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcGxhbmNh Y2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaAppbmRleCAwNDk5NjM1ZjU5 Li45YTdjZjc5NGNlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wbGFuY2FjaGUuaApAQCAtMTAxLDYgKzEwMSwx MCBAQCB0eXBlZGVmIHN0cnVjdCBDYWNoZWRQbGFuU291cmNlCiAJQ29tbWFuZFRhZwljb21t YW5kVGFnOwkJLyogJ251ZmYgc2FpZCAqLwogCU9pZAkJICAgKnBhcmFtX3R5cGVzOwkvKiBh cnJheSBvZiBwYXJhbWV0ZXIgdHlwZSBPSURzLCBvciBOVUxMICovCiAJaW50CQkJbnVtX3Bh cmFtczsJCS8qIGxlbmd0aCBvZiBwYXJhbV90eXBlcyBhcnJheSAqLworCU9pZAkJICAgKnBh cmFtX29yaWd0YmxzOyAvKiBhcnJheSBvZiB1bmRlcmx5aW5nIHRhYmxlcyBvZiBwYXJhbWV0 ZXJzLAorCQkJCQkJCQkgKiBvciBOVUxMICovCisJQXR0ck51bWJlciAqcGFyYW1fb3JpZ2Nv bHM7IC8qIGFycmF5IG9mIHVuZGVybHlpbmcgY29sdW1ucyBvZiBwYXJhbWV0ZXJzLAorCQkJ CQkJCQkgKiBvciBOVUxMICovCiAJUGFyc2VyU2V0dXBIb29rIHBhcnNlclNldHVwOwkvKiBh bHRlcm5hdGl2ZSBwYXJhbWV0ZXIgc3BlYyBtZXRob2QgKi8KIAl2b2lkCSAgICpwYXJzZXJT ZXR1cEFyZzsKIAlpbnQJCQljdXJzb3Jfb3B0aW9uczsgLyogY3Vyc29yIG9wdGlvbnMgdXNl ZCBmb3IgcGxhbm5pbmcgKi8KQEAgLTE5OSw2ICsyMDMsOCBAQCBleHRlcm4gdm9pZCBDb21w bGV0ZUNhY2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkJCQkg ICBNZW1vcnlDb250ZXh0IHF1ZXJ5dHJlZV9jb250ZXh0LAogCQkJCQkJCSAgIE9pZCAqcGFy YW1fdHlwZXMsCiAJCQkJCQkJICAgaW50IG51bV9wYXJhbXMsCisJCQkJCQkJICAgT2lkICpw YXJhbV9vcmlndGJscywKKwkJCQkJCQkgICBBdHRyTnVtYmVyICpwYXJhbV9vcmlnY29scywK IAkJCQkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0dXAsCiAJCQkJCQkJICAgdm9p ZCAqcGFyc2VyU2V0dXBBcmcsCiAJCQkJCQkJICAgaW50IGN1cnNvcl9vcHRpb25zLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0 aWxzL3N5c2NhY2hlLmgKaW5kZXggNDQ2M2VhNjZiZS4uNDg5YzZlZTczNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdXRpbHMvc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9zeXNjYWNoZS5oCkBAIC00NCw4ICs0NCwxNCBAQCBlbnVtIFN5c0NhY2hlSWRlbnRpZmll cgogCUFVVEhOQU1FLAogCUFVVEhPSUQsCiAJQ0FTVFNPVVJDRVRBUkdFVCwKKwlDRUtEQVRB Q0VLQ01LLAorCUNFS0RBVEFPSUQsCisJQ0VLTkFNRSwKKwlDRUtPSUQsCiAJQ0xBQU1OQU1F TlNQLAogCUNMQU9JRCwKKwlDTUtOQU1FLAorCUNNS09JRCwKIAlDT0xMTkFNRUVOQ05TUCwK IAlDT0xMT0lELAogCUNPTkRFRkFVTFQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3ByaW50c2ltcGxlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3By aW50c2ltcGxlLmMKaW5kZXggYzk5YWU1NGNiMC4uODY0ODJlYjRjOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9wcmludHNpbXBsZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vcHJpbnRzaW1wbGUuYwpAQCAtMjAsNyArMjAsOSBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3ByaW50c2ltcGxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAibGlicHEvbGlicHEtYmUuaCIKICNpbmNsdWRlICJsaWJwcS9w cWZvcm1hdC5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCiAKIC8qCkBAIC00Niw2ICs0OCwxMSBAQCBwcmludHNpbXBsZV9zdGFydHVw KERlc3RSZWNlaXZlciAqc2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR1cGRlc2Mp CiAJCXBxX3NlbmRpbnQxNigmYnVmLCBhdHRyLT5hdHRsZW4pOwogCQlwcV9zZW5kaW50MzIo JmJ1ZiwgYXR0ci0+YXR0dHlwbW9kKTsKIAkJcHFfc2VuZGludDE2KCZidWYsIDApOwkvKiBm b3JtYXQgY29kZSAqLworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCkKKwkJeworCQkJcHFfc2VuZGludDMyKCZidWYsIDApOwkvKiBDRUsgKi8KKwkJCXBx X3NlbmRpbnQxNigmYnVmLCAwKTsJLyogQ0VLIGFsZyAqLworCQl9CiAJfQogCiAJcHFfZW5k bWVzc2FnZSgmYnVmKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24v cHJpbnR0dXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcHJpbnR0dXAuYwppbmRl eCBkMmYzYjU3Mjg4Li44MGFiNWU4NzViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvY29tbW9uL3ByaW50dHVwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9w cmludHR1cC5jCkBAIC0xNSwxMyArMTUsMjggQEAKICAqLwogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2VuYW0uaCIKICNpbmNsdWRlICJhY2Nlc3MvcHJp bnR0dXAuaCIKKyNpbmNsdWRlICJhY2Nlc3Mvc2tleS5oIgorI2luY2x1ZGUgImFjY2Vzcy90 YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xt YXN0ZXJrZXkuaCIKICNpbmNsdWRlICJsaWJwcS9saWJwcS5oIgorI2luY2x1ZGUgImxpYnBx L2xpYnBxLWJlLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKKyNpbmNsdWRlICJt aXNjYWRtaW4uaCIKICNpbmNsdWRlICJ0Y29wL3BxdWVyeS5oIgorI2luY2x1ZGUgInV0aWxz L2FycmF5LmgiCisjaW5jbHVkZSAidXRpbHMvYXJyYXlhY2Nlc3MuaCIKKyNpbmNsdWRlICJ1 dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCisjaW5jbHVk ZSAidXRpbHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9tZW1kZWJ1Zy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCisj aW5jbHVkZSAidXRpbHMvcmVsLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAog CiBzdGF0aWMgdm9pZCBwcmludHR1cF9zdGFydHVwKERlc3RSZWNlaXZlciAqc2VsZiwgaW50 IG9wZXJhdGlvbiwKQEAgLTE1MSw2ICsxNjYsMTM5IEBAIHByaW50dHVwX3N0YXJ0dXAoRGVz dFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCiAJ ICovCiB9CiAKKy8qCisgKiBTZW5kIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLCB1bmxlc3Mg aXQncyBhbHJlYWR5IGJlZW4gc2VudCBpbiB0aGlzIHNlc3Npb24KKyAqIGZvciB0aGlzIGtl eS4KKyAqLworTGlzdAkgICAqY21rX3NlbnQgPSBOSUw7CisKK3N0YXRpYyB2b2lkCitjbWtf Y2hhbmdlX2NiKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7 CisJbGlzdF9mcmVlKGNta19zZW50KTsKKwljbWtfc2VudCA9IE5JTDsKK30KKworc3RhdGlj IHZvaWQKK01heWJlU2VuZENvbHVtbk1hc3RlcktleU1lc3NhZ2UoT2lkIGNta2lkKQorewor CUhlYXBUdXBsZQl0dXBsZTsKKwlGb3JtX3BnX2NvbG1hc3RlcmtleSBjbWtmb3JtOworCURh dHVtCQlkYXR1bTsKKwlib29sCQlpc251bGw7CisJU3RyaW5nSW5mb0RhdGEgYnVmOworCXN0 YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsKKwlNZW1vcnlDb250ZXh0IG9s ZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5h YmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNta19zZW50LCBjbWtpZCkpCisJCXJl dHVybjsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENNS09JRCwgT2JqZWN0SWRHZXRE YXR1bShjbWtpZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCisJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBjb2x1bW4gbWFzdGVyIGtleSAldSIs IGNta2lkKTsKKwljbWtmb3JtID0gKEZvcm1fcGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1Qo dHVwbGUpOworCisJcHFfYmVnaW5tZXNzYWdlKCZidWYsICd5Jyk7IC8qIENvbHVtbk1hc3Rl cktleSAqLworCXBxX3NlbmRpbnQzMigmYnVmLCBjbWtmb3JtLT5vaWQpOworCXBxX3NlbmRz dHJpbmcoJmJ1ZiwgTmFtZVN0cihjbWtmb3JtLT5jbWtuYW1lKSk7CisJZGF0dW0gPSBTeXND YWNoZUdldEF0dHIoQ01LT0lELCB0dXBsZSwgQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rcmVh bG0sICZpc251bGwpOworCUFzc2VydCghaXNudWxsKTsKKwlwcV9zZW5kc3RyaW5nKCZidWYs IFRleHREYXR1bUdldENTdHJpbmcoZGF0dW0pKTsKKwlwcV9lbmRtZXNzYWdlKCZidWYpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCWlmICghcmVnaXN0ZXJlZF9pbnZhbCkK Kwl7CisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKENNS09JRCwgY21rX2NoYW5n ZV9jYiwgKERhdHVtKSAwKTsKKwkJcmVnaXN0ZXJlZF9pbnZhbCA9IHRydWU7CisJfQorCisJ b2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BNZW1vcnlDb250ZXh0KTsK KwljbWtfc2VudCA9IGxhcHBlbmRfb2lkKGNta19zZW50LCBjbWtpZCk7CisJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCisvKgorICogU2VuZCBDb2x1bW5FbmNy eXB0aW9uS2V5IG1lc3NhZ2UsIHVubGVzcyBpdCdzIGFscmVhZHkgYmVlbiBzZW50IGluIHRo aXMKKyAqIHNlc3Npb24gZm9yIHRoaXMga2V5LgorICovCitMaXN0CSAgICpjZWtfc2VudCA9 IE5JTDsKKworc3RhdGljIHZvaWQKK2Nla19jaGFuZ2VfY2IoRGF0dW0gYXJnLCBpbnQgY2Fj aGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlsaXN0X2ZyZWUoY2VrX3NlbnQpOworCWNl a19zZW50ID0gTklMOworfQorCit2b2lkCitNYXliZVNlbmRDb2x1bW5FbmNyeXB0aW9uS2V5 TWVzc2FnZShPaWQgYXR0Y2VrKQoreworCUhlYXBUdXBsZQl0dXBsZTsKKwlTY2FuS2V5RGF0 YSBza2V5WzFdOworCVN5c1NjYW5EZXNjIHNkOworCVJlbGF0aW9uCXJlbDsKKwlib29sCQlm b3VuZCA9IGZhbHNlOworCXN0YXRpYyBib29sIHJlZ2lzdGVyZWRfaW52YWwgPSBmYWxzZTsK KwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlBc3NlcnQoTXlQcm9jUG9ydC0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCk7CisKKwlpZiAobGlzdF9tZW1iZXJfb2lkKGNla19z ZW50LCBhdHRjZWspKQorCQlyZXR1cm47CisKKwlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJ CQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tkY2VraWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0oYXR0Y2VrKSk7CisJcmVs ID0gdGFibGVfb3BlbihDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVM b2NrKTsKKwlzZCA9IHN5c3RhYmxlX2JlZ2luc2NhbihyZWwsIENvbHVtbkVuY0tleUNla2lk Q21raWRJbmRleElkLCB0cnVlLCBOVUxMLCAxLCBza2V5KTsKKworCXdoaWxlICgodHVwbGUg PSBzeXN0YWJsZV9nZXRuZXh0KHNkKSkpCisJeworCQlGb3JtX3BnX2NvbGVuY2tleWRhdGEg Y2tkZm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0dXBsZSk7CisJ CURhdHVtCQlkYXR1bTsKKwkJYm9vbAkJaXNudWxsOworCQlieXRlYQkgICAqYmE7CisJCVN0 cmluZ0luZm9EYXRhIGJ1ZjsKKworCQlNYXliZVNlbmRDb2x1bW5NYXN0ZXJLZXlNZXNzYWdl KGNrZGZvcm0tPmNrZGNta2lkKTsKKworCQlkYXR1bSA9IGhlYXBfZ2V0YXR0cih0dXBsZSwg QW51bV9wZ19jb2xlbmNrZXlkYXRhX2NrZGVuY3ZhbCwgUmVsYXRpb25HZXREZXNjcihyZWwp LCAmaXNudWxsKTsKKwkJQXNzZXJ0KCFpc251bGwpOworCQliYSA9IHBnX2RldG9hc3RfZGF0 dW1fcGFja2VkKChieXRlYSAqKSBEYXR1bUdldFBvaW50ZXIoZGF0dW0pKTsKKworCQlwcV9i ZWdpbm1lc3NhZ2UoJmJ1ZiwgJ1knKTsgLyogQ29sdW1uRW5jcnlwdGlvbktleSAqLworCQlw cV9zZW5kaW50MzIoJmJ1ZiwgY2tkZm9ybS0+Y2tkY2VraWQpOworCQlwcV9zZW5kaW50MzIo JmJ1ZiwgY2tkZm9ybS0+Y2tkY21raWQpOworCQlwcV9zZW5kaW50MTYoJmJ1ZiwgY2tkZm9y bS0+Y2tkY21rYWxnKTsKKwkJcHFfc2VuZGludDMyKCZidWYsIFZBUlNJWkVfQU5ZX0VYSERS KGJhKSk7CisJCXBxX3NlbmRieXRlcygmYnVmLCBWQVJEQVRBX0FOWShiYSksIFZBUlNJWkVf QU5ZX0VYSERSKGJhKSk7CisJCXBxX2VuZG1lc3NhZ2UoJmJ1Zik7CisKKwkJZm91bmQgPSB0 cnVlOworCX0KKworCWlmICghZm91bmQpCisJCWVsb2coRVJST1IsICJsb29rdXAgZmFpbGVk IGZvciBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgZGF0YSAldSIsIGF0dGNlayk7CisKKwlzeXN0 YWJsZV9lbmRzY2FuKHNkKTsKKwl0YWJsZV9jbG9zZShyZWwsIE5vTG9jayk7CisKKwlpZiAo IXJlZ2lzdGVyZWRfaW52YWwpCisJeworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFj ayhDRUtEQVRBT0lELCBjZWtfY2hhbmdlX2NiLCAoRGF0dW0pIDApOworCQlyZWdpc3RlcmVk X2ludmFsID0gdHJ1ZTsKKwl9CisKKwlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKFRvcE1lbW9yeUNvbnRleHQpOworCWNla19zZW50ID0gbGFwcGVuZF9vaWQoY2VrX3Nl bnQsIGF0dGNlayk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQor CiAvKgogICogU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZSAtLS0gc2VuZCBhIFJvd0Rlc2Ny aXB0aW9uIG1lc3NhZ2UgdG8gdGhlIGZyb250ZW5kCiAgKgpAQCAtMTY3LDYgKzMxNSw3IEBA IFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0 eXBlaW5mbywKIAkJCQkJCSAgTGlzdCAqdGFyZ2V0bGlzdCwgaW50MTYgKmZvcm1hdHMpCiB7 CiAJaW50CQkJbmF0dHMgPSB0eXBlaW5mby0+bmF0dHM7CisJc2l6ZV90CQlzejsKIAlpbnQJ CQlpOwogCUxpc3RDZWxsICAgKnRsaXN0X2l0ZW0gPSBsaXN0X2hlYWQodGFyZ2V0bGlzdCk7 CiAKQEAgLTE4MywxNCArMzMyLDE3IEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3Ry aW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkgKiBIYXZlIHRvIG92ZXJlc3Rp bWF0ZSB0aGUgc2l6ZSBvZiB0aGUgY29sdW1uLW5hbWVzLCB0byBhY2NvdW50IGZvcgogCSAq IGNoYXJhY3RlciBzZXQgb3ZlcmhlYWQuCiAJICovCi0JZW5sYXJnZVN0cmluZ0luZm8oYnVm LCAoTkFNRURBVEFMRU4gKiBNQVhfQ09OVkVSU0lPTl9HUk9XVEggLyogYXR0bmFtZSAqLwot CQkJCQkJCSsgc2l6ZW9mKE9pZCkJLyogcmVzb3JpZ3RibCAqLwotCQkJCQkJCSsgc2l6ZW9m KEF0dHJOdW1iZXIpCS8qIHJlc29yaWdjb2wgKi8KLQkJCQkJCQkrIHNpemVvZihPaWQpCS8q IGF0dHR5cGlkICovCi0JCQkJCQkJKyBzaXplb2YoaW50MTYpIC8qIGF0dGxlbiAqLwotCQkJ CQkJCSsgc2l6ZW9mKGludDMyKSAvKiBhdHR5cG1vZCAqLwotCQkJCQkJCSsgc2l6ZW9mKGlu dDE2KSAvKiBmb3JtYXQgKi8KLQkJCQkJCQkpICogbmF0dHMpOworCXN6ID0gKE5BTUVEQVRB TEVOICogTUFYX0NPTlZFUlNJT05fR1JPV1RIIC8qIGF0dG5hbWUgKi8KKwkJICArIHNpemVv ZihPaWQpCS8qIHJlc29yaWd0YmwgKi8KKwkJICArIHNpemVvZihBdHRyTnVtYmVyKQkvKiBy ZXNvcmlnY29sICovCisJCSAgKyBzaXplb2YoT2lkKQkvKiBhdHR0eXBpZCAqLworCQkgICsg c2l6ZW9mKGludDE2KSAvKiBhdHRsZW4gKi8KKwkJICArIHNpemVvZihpbnQzMikgLyogYXR0 eXBtb2QgKi8KKwkJICArIHNpemVvZihpbnQxNikpOyAvKiBmb3JtYXQgKi8KKwlpZiAoTXlQ cm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJc3ogKz0gKHNpemVvZihp bnQzMikJCS8qIGF0dGNla2lkICovCisJCQkgICArIHNpemVvZihpbnQxNikpOwkvKiBhdHRl bmNhbGcgKi8KKwllbmxhcmdlU3RyaW5nSW5mbyhidWYsIHN6ICogbmF0dHMpOwogCiAJZm9y IChpID0gMDsgaSA8IG5hdHRzOyArK2kpCiAJewpAQCAtMjAwLDYgKzM1Miw4IEBAIFNlbmRS b3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3RyaW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5m bywKIAkJT2lkCQkJcmVzb3JpZ3RibDsKIAkJQXR0ck51bWJlcglyZXNvcmlnY29sOwogCQlp bnQxNgkJZm9ybWF0OworCQlPaWQJCQlhdHRjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludDE2 CQlhdHRlbmNhbGcgPSAwOwogCiAJCS8qCiAJCSAqIElmIGNvbHVtbiBpcyBhIGRvbWFpbiwg c2VuZCB0aGUgYmFzZSB0eXBlIGFuZCB0eXBtb2QgaW5zdGVhZC4KQEAgLTIzMSw2ICszODUs MjIgQEAgU2VuZFJvd0Rlc2NyaXB0aW9uTWVzc2FnZShTdHJpbmdJbmZvIGJ1ZiwgVHVwbGVE ZXNjIHR5cGVpbmZvLAogCQllbHNlCiAJCQlmb3JtYXQgPSAwOwogCisJCWlmIChNeVByb2NQ b3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkICYmIHR5cGVfaXNfZW5jcnlwdGVkKGF0 dHR5cGlkKSkKKwkJeworCQkJSGVhcFR1cGxlCXRwOworCQkJRm9ybV9wZ19hdHRyaWJ1dGUg b3JpZ19hdHQ7CisKKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUyKEFUVE5VTSwgT2JqZWN0SWRH ZXREYXR1bShyZXNvcmlndGJsKSwgSW50MTZHZXREYXR1bShyZXNvcmlnY29sKSk7CisJCQlp ZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29r dXAgZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCByZXNvcmlnY29s LCByZXNvcmlndGJsKTsKKwkJCW9yaWdfYXR0ID0gKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRT VFJVQ1QodHApOworCQkJTWF5YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2Uob3Jp Z19hdHQtPmF0dGNlayk7CisJCQlhdHR0eXBpZCA9IG9yaWdfYXR0LT5hdHRyZWFsdHlwaWQ7 CisJCQlhdHRjZWtpZCA9IG9yaWdfYXR0LT5hdHRjZWs7CisJCQlhdHRlbmNhbGcgPSBvcmln X2F0dC0+YXR0ZW5jYWxnOworCQkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJfQorCiAJCXBx X3dyaXRlc3RyaW5nKGJ1ZiwgTmFtZVN0cihhdHQtPmF0dG5hbWUpKTsKIAkJcHFfd3JpdGVp bnQzMihidWYsIHJlc29yaWd0YmwpOwogCQlwcV93cml0ZWludDE2KGJ1ZiwgcmVzb3JpZ2Nv bCk7CkBAIC0yMzgsNiArNDA4LDExIEBAIFNlbmRSb3dEZXNjcmlwdGlvbk1lc3NhZ2UoU3Ry aW5nSW5mbyBidWYsIFR1cGxlRGVzYyB0eXBlaW5mbywKIAkJcHFfd3JpdGVpbnQxNihidWYs IGF0dC0+YXR0bGVuKTsKIAkJcHFfd3JpdGVpbnQzMihidWYsIGF0dHR5cG1vZCk7CiAJCXBx X3dyaXRlaW50MTYoYnVmLCBmb3JtYXQpOworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2Vu Y3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJcHFfd3JpdGVpbnQzMihidWYsIGF0dGNla2lk KTsKKwkJCXBxX3dyaXRlaW50MTYoYnVmLCBhdHRlbmNhbGcpOworCQl9CiAJfQogCiAJcHFf ZW5kbWVzc2FnZV9yZXVzZShidWYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2NvbW1vbi90dXBkZXNjLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3R1cGRlc2Mu YwppbmRleCBkNmZiMjYxZTIwLi5lM2VjYzY0ZWE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu 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 ZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwppbmRleCAxMGJmMjZjZTdjLi5jZWE5MWQ0 YTg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUu YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwpAQCAtMzMx LDcgKzMzMSw3IEBAIGNoZWNrX2hhc2hfZnVuY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgaW50 MTYgYW1wcm9jbnVtLCBPaWQgYXJndHlwZSkKIAkJCQkgYXJndHlwZSA9PSBCT09MT0lEKQog CQkJIC8qIG9rYXksIGFsbG93ZWQgdXNlIG9mIGhhc2hjaGFyKCkgKi8gOwogCQllbHNlIGlm ICgoZnVuY2lkID09IEZfSEFTSFZBUkxFTkEgfHwgZnVuY2lkID09IEZfSEFTSFZBUkxFTkFF WFRFTkRFRCkgJiYKLQkJCQkgYXJndHlwZSA9PSBCWVRFQU9JRCkKKwkJCQkgKGFyZ3R5cGUg PT0gQllURUFPSUQgfHwgYXJndHlwZSA9PSBQR19FTkNSWVBURURfREVUT0lEKSkKIAkJCSAv KiBva2F5LCBhbGxvd2VkIHVzZSBvZiBoYXNodmFybGVuYSgpICovIDsKIAkJZWxzZQogCQkJ cmVzdWx0ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCA4OWEwMjIxZWM5Li43 ZTFhOTFiOTc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTcyLDcgKzcyLDggQEAgQ0FU QUxPR19IRUFERVJTIDo9IFwKIAlwZ19jb2xsYXRpb24uaCBwZ19wYXJhbWV0ZXJfYWNsLmgg cGdfcGFydGl0aW9uZWRfdGFibGUuaCBcCiAJcGdfcmFuZ2UuaCBwZ190cmFuc2Zvcm0uaCBc CiAJcGdfc2VxdWVuY2UuaCBwZ19wdWJsaWNhdGlvbi5oIHBnX3B1YmxpY2F0aW9uX25hbWVz cGFjZS5oIFwKLQlwZ19wdWJsaWNhdGlvbl9yZWwuaCBwZ19zdWJzY3JpcHRpb24uaCBwZ19z dWJzY3JpcHRpb25fcmVsLmgKKwlwZ19wdWJsaWNhdGlvbl9yZWwuaCBwZ19zdWJzY3JpcHRp b24uaCBwZ19zdWJzY3JpcHRpb25fcmVsLmggXAorCXBnX2NvbG1hc3RlcmtleS5oIHBnX2Nv bGVuY2tleS5oIHBnX2NvbGVuY2tleWRhdGEuaAogCiBHRU5FUkFURURfSEVBREVSUyA6PSAk KENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpIHNjaGVtYXBnLmggc3lzdGVtX2ZrX2luZm8u aAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCAxN2ZmNjE3ZmJhLi40YTNhNjJiZmQ4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTMyLDcgKzMyLDkgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19kZWZhdWx0X2FjbC5oIgpAQCAtMzU3OSw2ICszNTgxLDggQEAgYWNsY2hlY2tfZXJy b3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9C SkVDVF9BTVBST0M6CiAJCQkJCWNhc2UgT0JKRUNUX0FUVFJJQlVURToKIAkJCQkJY2FzZSBP QkpFQ1RfQ0FTVDoKKwkJCQkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQljYXNlIE9CSkVDVF9D TUs6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFD TDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKQEAgLTM2MDksNiArMzYxMywx MiBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5 cGUsCiAJCQkJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKIAkJCQkJCW1zZyA9IGdldHRleHRf bm9vcCgibXVzdCBiZSBvd25lciBvZiBhZ2dyZWdhdGUgJXMiKTsKIAkJCQkJCWJyZWFrOwor CQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3Qg YmUgb3duZXIgb2YgY29sdW1uIGVuY3J5cHRpb24ga2V5ICVzIik7CisJCQkJCQlicmVhazsK KwkJCQkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0 IGJlIG93bmVyIG9mIGNvbHVtbiBtYXN0ZXIga2V5ICVzIik7CisJCQkJCQlicmVhazsKIAkJ CQkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJt dXN0IGJlIG93bmVyIG9mIGNvbGxhdGlvbiAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC01NTgy LDYgKzU1OTIsNTggQEAgcGdfY29sbGF0aW9uX293bmVyY2hlY2soT2lkIGNvbGxfb2lkLCBP aWQgcm9sZWlkKQogCXJldHVybiBoYXNfcHJpdnNfb2Zfcm9sZShyb2xlaWQsIG93bmVySWQp OwogfQogCisvKgorICogT3duZXJzaGlwIGNoZWNrIGZvciBhIGNvbHVtbiBlbmNyeXB0aW9u IGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8KK2Jvb2wKK3BnX2NvbHVtbl9lbmNyeXB0 aW9uX2tleV9vd25lcmNoZWNrKE9pZCBjZWtfb2lkLCBPaWQgcm9sZWlkKQoreworCUhlYXBU dXBsZQl0dXBsZTsKKwlPaWQJCQlvd25lcklkOworCisJLyogU3VwZXJ1c2VycyBieXBhc3Mg YWxsIHBlcm1pc3Npb24gY2hlY2tpbmcuICovCisJaWYgKHN1cGVydXNlcl9hcmcocm9sZWlk KSkKKwkJcmV0dXJuIHRydWU7CisKKwl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQs IE9iamVjdElkR2V0RGF0dW0oY2VrX29pZCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXBsZSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklO RURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgd2l0aCBP SUQgJXUgZG9lcyBub3QgZXhpc3QiLCBjZWtfb2lkKSkpOworCisJb3duZXJJZCA9ICgoRm9y bV9wZ19jb2xlbmNrZXkpIEdFVFNUUlVDVCh0dXBsZSkpLT5jZWtvd25lcjsKKworCVJlbGVh c2VTeXNDYWNoZSh0dXBsZSk7CisKKwlyZXR1cm4gaGFzX3ByaXZzX29mX3JvbGUocm9sZWlk LCBvd25lcklkKTsKK30KKworLyoKKyAqIE93bmVyc2hpcCBjaGVjayBmb3IgYSBjb2x1bW4g bWFzdGVyIGtleSAoc3BlY2lmaWVkIGJ5IE9JRCkuCisgKi8KK2Jvb2wKK3BnX2NvbHVtbl9t YXN0ZXJfa2V5X293bmVyY2hlY2soT2lkIGNta19vaWQsIE9pZCByb2xlaWQpCit7CisJSGVh cFR1cGxlCXR1cGxlOworCU9pZAkJCW93bmVySWQ7CisKKwkvKiBTdXBlcnVzZXJzIGJ5cGFz cyBhbGwgcGVybWlzc2lvbiBjaGVja2luZy4gKi8KKwlpZiAoc3VwZXJ1c2VyX2FyZyhyb2xl aWQpKQorCQlyZXR1cm4gdHJ1ZTsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKENNS09J RCwgT2JqZWN0SWRHZXREYXR1bShjbWtfb2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cGxlKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coImNvbHVtbiBtYXN0ZXIga2V5IHdpdGggT0lE ICV1IGRvZXMgbm90IGV4aXN0IiwgY21rX29pZCkpKTsKKworCW93bmVySWQgPSAoKEZvcm1f cGdfY29sbWFzdGVya2V5KSBHRVRTVFJVQ1QodHVwbGUpKS0+Y21rb3duZXI7CisKKwlSZWxl YXNlU3lzQ2FjaGUodHVwbGUpOworCisJcmV0dXJuIGhhc19wcml2c19vZl9yb2xlKHJvbGVp ZCwgb3duZXJJZCk7Cit9CisKIC8qCiAgKiBPd25lcnNoaXAgY2hlY2sgZm9yIGEgY29udmVy c2lvbiAoc3BlY2lmaWVkIGJ5IE9JRCkuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5 LmMKaW5kZXggMzk3NjhmYTIyYi4uNmYxZWEyNjhmMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBl bmRlbmN5LmMKQEAgLTMwLDcgKzMwLDEwIEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hdXRo aWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhfbWVtYmVycy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfY2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19jb2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3Rlcmtl eS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2Uu aCIKQEAgLTE1Myw2ICsxNTYsOSBAQCBzdGF0aWMgY29uc3QgT2lkIG9iamVjdF9jbGFzc2Vz W10gPSB7CiAJVHlwZVJlbGF0aW9uSWQsCQkJCS8qIE9DTEFTU19UWVBFICovCiAJQ2FzdFJl bGF0aW9uSWQsCQkJCS8qIE9DTEFTU19DQVNUICovCiAJQ29sbGF0aW9uUmVsYXRpb25JZCwJ CS8qIE9DTEFTU19DT0xMQVRJT04gKi8KKwlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAkJLyog T0NMQVNTX0NFSyAqLworCUNvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLAkvKiBPQ0xBU1Nf Q0VLREFUQSAqLworCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCS8qIE9DTEFTU19DTUsg Ki8KIAlDb25zdHJhaW50UmVsYXRpb25JZCwJCS8qIE9DTEFTU19DT05TVFJBSU5UICovCiAJ Q29udmVyc2lvblJlbGF0aW9uSWQsCQkvKiBPQ0xBU1NfQ09OVkVSU0lPTiAqLwogCUF0dHJE ZWZhdWx0UmVsYXRpb25JZCwJCS8qIE9DTEFTU19ERUZBVUxUICovCkBAIC0xNDg3LDYgKzE0 OTMsOSBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZs YWdzKQogCiAJCWNhc2UgT0NMQVNTX0NBU1Q6CiAJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoK KwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9D TEFTU19DTUs6CiAJCWNhc2UgT0NMQVNTX0NPTlZFUlNJT046CiAJCWNhc2UgT0NMQVNTX0xB TkdVQUdFOgogCQljYXNlIE9DTEFTU19PUENMQVNTOgpAQCAtMjg1OSw2ICsyODY4LDE1IEBA IGdldE9iamVjdENsYXNzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCkKIAkJY2FzZSBD b2xsYXRpb25SZWxhdGlvbklkOgogCQkJcmV0dXJuIE9DTEFTU19DT0xMQVRJT047CiAKKwkJ Y2FzZSBDb2x1bW5FbmNLZXlSZWxhdGlvbklkOgorCQkJcmV0dXJuIE9DTEFTU19DRUs7CisK KwkJY2FzZSBDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25JZDoKKwkJCXJldHVybiBPQ0xBU1Nf Q0VLREFUQTsKKworCQljYXNlIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQ6CisJCQlyZXR1 cm4gT0NMQVNTX0NNSzsKKwogCQljYXNlIENvbnN0cmFpbnRSZWxhdGlvbklkOgogCQkJcmV0 dXJuIE9DTEFTU19DT05TVFJBSU5UOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCmluZGV4IDliMDM1Nzll NmUuLmU5MWIwYjgwNmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC03NDYsNiArNzQ2LDkgQEAg SW5zZXJ0UGdBdHRyaWJ1dGVUdXBsZXMoUmVsYXRpb24gcGdfYXR0cmlidXRlX3JlbCwKIAkJ c2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmlidXRlX2F0dGdlbmVy YXRlZCAtIDFdID0gQ2hhckdldERhdHVtKGF0dHJzLT5hdHRnZW5lcmF0ZWQpOwogCQlzbG90 W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0aXNkcm9wcGVk IC0gMV0gPSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzZHJvcHBlZCk7CiAJCXNsb3Rbc2xv dENvdW50XS0+dHRzX3ZhbHVlc1tBbnVtX3BnX2F0dHJpYnV0ZV9hdHRpc2xvY2FsIC0gMV0g PSBCb29sR2V0RGF0dW0oYXR0cnMtPmF0dGlzbG9jYWwpOworCQlzbG90W3Nsb3RDb3VudF0t PnR0c192YWx1ZXNbQW51bV9wZ19hdHRyaWJ1dGVfYXR0Y2VrIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKGF0dHJzLT5hdHRjZWspOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0cmVhbHR5cGlkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KGF0dHJzLT5hdHRyZWFsdHlwaWQpOworCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNb QW51bV9wZ19hdHRyaWJ1dGVfYXR0ZW5jYWxnIC0gMV0gPSBJbnQxNkdldERhdHVtKGF0dHJz LT5hdHRlbmNhbGcpOwogCQlzbG90W3Nsb3RDb3VudF0tPnR0c192YWx1ZXNbQW51bV9wZ19h dHRyaWJ1dGVfYXR0aW5oY291bnQgLSAxXSA9IEludDMyR2V0RGF0dW0oYXR0cnMtPmF0dGlu aGNvdW50KTsKIAkJc2xvdFtzbG90Q291bnRdLT50dHNfdmFsdWVzW0FudW1fcGdfYXR0cmli dXRlX2F0dGNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShhdHRycy0+YXR0Y29s bGF0aW9uKTsKIAkJaWYgKGF0dG9wdGlvbnMgJiYgYXR0b3B0aW9uc1tuYXR0c10gIT0gKERh dHVtKSAwKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCA3OThjMWEy ZDFlLi43ZDk4MDFkNjQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVj dGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpA QCAtMjksNyArMjksMTAgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2F1dGhpZC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19jYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXkuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGVuY2tleWRhdGEuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nv bGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbWFzdGVya2V5LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19jb25zdHJhaW50LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b252ZXJzaW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19kYXRhYmFzZS5oIgpAQCAtMTkx LDYgKzE5NCw0OCBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFBy b3BlcnR5W10gPQogCQlPQkpFQ1RfQ09MTEFUSU9OLAogCQl0cnVlCiAJfSwKKwl7CisJCSJj b2x1bW4gZW5jcnlwdGlvbiBrZXkiLAorCQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLAorCQlD b2x1bW5FbmNLZXlPaWRJbmRleElkLAorCQlDRUtPSUQsCisJCUNFS05BTUUsCisJCUFudW1f cGdfY29sZW5ja2V5X29pZCwKKwkJQW51bV9wZ19jb2xlbmNrZXlfY2VrbmFtZSwKKwkJSW52 YWxpZEF0dHJOdW1iZXIsCisJCUFudW1fcGdfY29sZW5ja2V5X2Nla293bmVyLAorCQlJbnZh bGlkQXR0ck51bWJlciwKKwkJT0JKRUNUX0NFSywKKwkJdHJ1ZQorCX0sCisJeworCQkiY29s dW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLAorCQlDb2x1bW5FbmNLZXlEYXRhUmVsYXRpb25J ZCwKKwkJQ29sdW1uRW5jS2V5RGF0YU9pZEluZGV4SWQsCisJCUNFS0RBVEFPSUQsCisJCS0x LAorCQlBbnVtX3BnX2NvbGVuY2tleWRhdGFfb2lkLAorCQlJbnZhbGlkQXR0ck51bWJlciwK KwkJSW52YWxpZEF0dHJOdW1iZXIsCisJCUludmFsaWRBdHRyTnVtYmVyLAorCQlJbnZhbGlk QXR0ck51bWJlciwKKwkJLTEsCisJCWZhbHNlCisJfSwKKwl7CisJCSJjb2x1bW4gbWFzdGVy IGtleSIsCisJCUNvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsCisJCUNvbHVtbk1hc3Rlcktl eU9pZEluZGV4SWQsCisJCUNNS09JRCwKKwkJQ01LTkFNRSwKKwkJQW51bV9wZ19jb2xtYXN0 ZXJrZXlfb2lkLAorCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtuYW1lLAorCQlJbnZhbGlk QXR0ck51bWJlciwKKwkJQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rb3duZXIsCisJCUludmFs aWRBdHRyTnVtYmVyLAorCQlPQkpFQ1RfQ01LLAorCQl0cnVlCisJfSwKIAl7CiAJCSJjb25z dHJhaW50IiwKIAkJQ29uc3RyYWludFJlbGF0aW9uSWQsCkBAIC03MjMsNiArNzY4LDE4IEBA IHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJewogCQkiY29sbGF0aW9u IiwgT0JKRUNUX0NPTExBVElPTgogCX0sCisJLyogT0NMQVNTX0NFSyAqLworCXsKKwkJImNv bHVtbiBlbmNyeXB0aW9uIGtleSIsIE9CSkVDVF9DRUsKKwl9LAorCS8qIE9DTEFTU19DRUtE QVRBICovCisJeworCQkiY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEiLCAtMQorCX0sCisJ LyogT0NMQVNTX0NNSyAqLworCXsKKwkJImNvbHVtbiBtYXN0ZXIga2V5IiwgT0JKRUNUX0NN SworCX0sCiAJLyogT0NMQVNTX0NPTlNUUkFJTlQgKi8KIAl7CiAJCSJ0YWJsZSBjb25zdHJh aW50IiwgT0JKRUNUX1RBQkNPTlNUUkFJTlQKQEAgLTEwMjgsNiArMTA4NSw4IEBAIGdldF9v YmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJ YWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CiAJCQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSBP QkpFQ1RfQ0VLOgorCQkJY2FzZSBPQkpFQ1RfQ01LOgogCQkJY2FzZSBPQkpFQ1RfREFUQUJB U0U6CiAJCQljYXNlIE9CSkVDVF9FWFRFTlNJT046CiAJCQljYXNlIE9CSkVDVF9UQUJMRVNQ QUNFOgpAQCAtMTI5NCw2ICsxMzUzLDE2IEBAIGdldF9vYmplY3RfYWRkcmVzc191bnF1YWxp ZmllZChPYmplY3RUeXBlIG9ianR5cGUsCiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Ft X29pZChuYW1lLCBtaXNzaW5nX29rKTsKIAkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwog CQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCWFkZHJlc3MuY2xhc3NJZCA9IENv bHVtbkVuY0tleVJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2Nla19v aWQobmFtZSwgbWlzc2luZ19vayk7CisJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKKwkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBDb2x1 bW5NYXN0ZXJLZXlSZWxhdGlvbklkOworCQkJYWRkcmVzcy5vYmplY3RJZCA9IGdldF9jbWtf b2lkKG5hbWUsIG1pc3Npbmdfb2spOworCQkJYWRkcmVzcy5vYmplY3RTdWJJZCA9IDA7CisJ CQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6CiAJCQlhZGRyZXNzLmNsYXNzSWQg PSBEYXRhYmFzZVJlbGF0aW9uSWQ7CiAJCQlhZGRyZXNzLm9iamVjdElkID0gZ2V0X2RhdGFi YXNlX29pZChuYW1lLCBtaXNzaW5nX29rKTsKQEAgLTIzMjIsNiArMjM5MSw4IEBAIHBnX2dl dF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQkJb2Jqbm9kZSA9IChOb2Rl ICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKKwkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQljYXNlIE9CSkVDVF9DTUs6CiAJCWNhc2UgT0JKRUNUX0RB VEFCQVNFOgogCQljYXNlIE9CSkVDVF9FVkVOVF9UUklHR0VSOgogCQljYXNlIE9CSkVDVF9F WFRFTlNJT046CkBAIC0yNjI5LDYgKzI3MDAsMTYgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hp cChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVz cywKIAkJCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJ CQkJCQkJICAgTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJaWYgKCFwZ19jb2x1bW5fZW5jcnlw dGlvbl9rZXlfb3duZXJjaGVjayhhZGRyZXNzLm9iamVjdElkLCByb2xlaWQpKQorCQkJCWFj bGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKKwkJCQkJCQkgICBz dHJWYWwob2JqZWN0KSk7CisJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ01LOgorCQkJaWYg KCFwZ19jb2x1bW5fbWFzdGVyX2tleV9vd25lcmNoZWNrKGFkZHJlc3Mub2JqZWN0SWQsIHJv bGVpZCkpCisJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBl LAorCQkJCQkJCSAgIHN0clZhbChvYmplY3QpKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0Ogog CQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLAogCQkJCSAo aW50KSBvYmp0eXBlKTsKQEAgLTMwODksNiArMzE3MCw0OCBAQCBnZXRPYmplY3REZXNjcmlw dGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJ CQlicmVhazsKIAkJCX0KIAorCQljYXNlIE9DTEFTU19DRUs6CisJCQl7CisJCQkJY2hhcgkg ICAqY2VrbmFtZSA9IGdldF9jZWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29r KTsKKworCQkJCWlmIChjZWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIs IF8oImNvbHVtbiBlbmNyeXB0aW9uIGtleSAlcyIpLCBjZWtuYW1lKTsKKwkJCQlicmVhazsK KwkJCX0KKworCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJeworCQkJCUhlYXBUdXBsZQl0 dXA7CisJCQkJRm9ybV9wZ19jb2xlbmNrZXlkYXRhIGNla2RhdGE7CisKKwkJCQl0dXAgPSBT ZWFyY2hTeXNDYWNoZTEoQ0VLREFUQU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9i amVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJeworCQkJ CQlpZiAoIW1pc3Npbmdfb2spCisJCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3IgY29sdW1uIGVuY3J5cHRpb24ga2V5IGRhdGEgJXUiLAorCQkJCQkJCSBvYmpl Y3QtPm9iamVjdElkKTsKKwkJCQkJYnJlYWs7CisJCQkJfQorCisJCQkJY2VrZGF0YSA9IChG b3JtX3BnX2NvbGVuY2tleWRhdGEpIEdFVFNUUlVDVCh0dXApOworCisJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLCBfKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgJXMgZGF0YSBmb3Ig bWFzdGVyIGtleSAlcyIpLAorCQkJCQkJCQkgZ2V0X2Nla19uYW1lKGNla2RhdGEtPmNrZGNl a2lkLCBmYWxzZSksCisJCQkJCQkJCSBnZXRfY21rX25hbWUoY2VrZGF0YS0+Y2tkY21raWQs IGZhbHNlKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKworCQljYXNlIE9DTEFTU19DTUs6CisJCQl7CisJCQkJY2hhcgkgICAqY21rbmFtZSA9 IGdldF9jbWtfbmFtZShvYmplY3QtPm9iamVjdElkLCBtaXNzaW5nX29rKTsKKworCQkJCWlm IChjbWtuYW1lKQorCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oImNvbHVtbiBt YXN0ZXIga2V5ICVzIiksIGNta25hbWUpOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2Ug T0NMQVNTX0NPTlNUUkFJTlQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ1 MTMsNiArNDYzNiwxOCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZv U3RyaW5nKCZidWZmZXIsICJjb2xsYXRpb24iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NM QVNTX0NFSzoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBl bmNyeXB0aW9uIGtleSIpOworCQkJYnJlYWs7CisKKwkJY2FzZSBPQ0xBU1NfQ0VLREFUQToK KwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbHVtbiBlbmNyeXB0aW9u IGtleSBkYXRhIik7CisJCQlicmVhazsKKworCQljYXNlIE9DTEFTU19DTUs6CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJjb2x1bW4gbWFzdGVyIGtleSIpOworCQkJ YnJlYWs7CisKIAkJY2FzZSBPQ0xBU1NfQ09OU1RSQUlOVDoKIAkJCWdldENvbnN0cmFpbnRU eXBlRGVzY3JpcHRpb24oJmJ1ZmZlciwgb2JqZWN0LT5vYmplY3RJZCwKIAkJCQkJCQkJCQkg bWlzc2luZ19vayk7CkBAIC00OTc4LDYgKzUxMTMsNTQgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQ YXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJYnJlYWs7CiAJCQl9CiAK KwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQkJeworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9y bV9wZ19jb2xlbmNrZXkgZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtP SUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVh cFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCXsKKwkJCQkJaWYgKCFtaXNzaW5nX29rKQorCQkJ CQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0 aW9uIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCQlicmVhazsK KwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbGVuY2tleSkgR0VUU1RSVUNUKHR1cCk7 CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJICAgcXVv dGVfaWRlbnRpZmllcihOYW1lU3RyKGZvcm0tPmNla25hbWUpKSk7CisJCQkJaWYgKG9iam5h bWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShwc3RyZHVwKE5hbWVTdHIoZm9ybS0+ Y2VrbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKworCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJZWxvZyhFUlJPUiwgIlRPRE8iKTsK KwkJCWJyZWFrOworCisJCWNhc2UgT0NMQVNTX0NNSzoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJ dHVwOworCQkJCUZvcm1fcGdfY29sbWFzdGVya2V5IGZvcm07CisKKwkJCQl0dXAgPSBTZWFy Y2hTeXNDYWNoZTEoQ01LT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQp KTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQl7CisJCQkJCWlmICgh bWlzc2luZ19vaykKKwkJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZv ciBjb2x1bW4gbWFzdGVyIGtleSAldSIsCisJCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOwor CQkJCQlicmVhazsKKwkJCQl9CisJCQkJZm9ybSA9IChGb3JtX3BnX2NvbG1hc3RlcmtleSkg R0VUU1RSVUNUKHR1cCk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAor CQkJCQkJCQkJICAgcXVvdGVfaWRlbnRpZmllcihOYW1lU3RyKGZvcm0tPmNta25hbWUpKSk7 CisJCQkJaWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMShwc3RyZHVw KE5hbWVTdHIoZm9ybS0+Y21rbmFtZSkpKTsKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgogCQkJewog CQkJCUhlYXBUdXBsZQljb25UdXA7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4Zjcz NDhmOTEuLjY5ZjYxNzVjNjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01h a2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC0xOSw2ICsx OSw3IEBAIE9CSlMgPSBcCiAJYW5hbHl6ZS5vIFwKIAlhc3luYy5vIFwKIAljbHVzdGVyLm8g XAorCWNvbGVuY2NtZHMubyBcCiAJY29sbGF0aW9uY21kcy5vIFwKIAljb21tZW50Lm8gXAog CWNvbnN0cmFpbnQubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRl ci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCA1NTIxOWJiMDk3Li42 Y2FhMjFlMzI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKQEAgLTIyLDcgKzIyLDkgQEAKICNp bmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbG1hc3RlcmtleS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfY29udmVyc2lvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZXZlbnRfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIuaCIK QEAgLTgwLDYgKzgyLDEyIEBAIHJlcG9ydF9uYW1lX2NvbmZsaWN0KE9pZCBjbGFzc0lkLCBj b25zdCBjaGFyICpuYW1lKQogCiAJc3dpdGNoIChjbGFzc0lkKQogCXsKKwkJY2FzZSBDb2x1 bW5FbmNLZXlSZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJjb2x1bW4g ZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CisJCQlicmVhazsKKwkJ Y2FzZSBDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkOgorCQkJbXNnZm10ID0gZ2V0dGV4dF9u b29wKCJjb2x1bW4gbWFzdGVyIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiKTsKKwkJCWJy ZWFrOwogCQljYXNlIEV2ZW50VHJpZ2dlclJlbGF0aW9uSWQ6CiAJCQltc2dmbXQgPSBnZXR0 ZXh0X25vb3AoImV2ZW50IHRyaWdnZXIgXCIlc1wiIGFscmVhZHkgZXhpc3RzIik7CiAJCQli cmVhazsKQEAgLTM3NSw2ICszODMsOCBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpz dG10KQogCQkJcmV0dXJuIFJlbmFtZVR5cGUoc3RtdCk7CiAKIAkJY2FzZSBPQkpFQ1RfQUdH UkVHQVRFOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2Fz ZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNl IE9CSkVDVF9FVkVOVF9UUklHR0VSOgpAQCAtNjM5LDYgKzY0OSw5IEBAIEFsdGVyT2JqZWN0 TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJZCwgT2lkIG9iamlkLCBPaWQgbnNwT2lkLAogCQkJ YnJlYWs7CiAKIAkJY2FzZSBPQ0xBU1NfQ0FTVDoKKwkJY2FzZSBPQ0xBU1NfQ0VLOgorCQlj YXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9DTEFTU19DTUs6CiAJCWNhc2UgT0NMQVNT X0NPTlNUUkFJTlQ6CiAJCWNhc2UgT0NMQVNTX0RFRkFVTFQ6CiAJCWNhc2UgT0NMQVNTX0xB TkdVQUdFOgpAQCAtODcyLDYgKzg4NSw4IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93 bmVyU3RtdCAqc3RtdCkKIAogCQkJLyogR2VuZXJpYyBjYXNlcyAqLwogCQljYXNlIE9CSkVD VF9BR0dSRUdBVEU6CisJCWNhc2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgog CQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2UgT0JKRUNUX0NPTlZFUlNJT046CiAJ CWNhc2UgT0JKRUNUX0ZVTkNUSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvY29sZW5jY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21kcy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmMzNTEyNWY2NWYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb2xlbmNjbWRzLmMKQEAgLTAs MCArMSwzNjEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIGNvbGVuY2NtZHMu YworICoJICBjb2x1bW4tZW5jcnlwdGlvbi1yZWxhdGVkIGNvbW1hbmRzIHN1cHBvcnQgY29k ZQorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKgor ICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29tbWFuZHMvY29sZW5jY21k cy5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jl cy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgorI2luY2x1ZGUgImFj Y2Vzcy90YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgorI2luY2x1ZGUg ImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIK KyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sZW5ja2V5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xlbmNrZXlkYXRhLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKKyNpbmNsdWRlICJjb21t YW5kcy9jb2xlbmNjbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgor I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgor I2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisj aW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCisj aW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworc3RhdGljIHZvaWQKK3BhcnNlX2Nla19h dHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZGVmaW5pdGlvbiwgT2lkICpj bWtvaWRfcCwgaW50MTYgKmFsZ19wLCBjaGFyICoqZW5jdmFsX3ApCit7CisJTGlzdENlbGwg ICAqbGM7CisJRGVmRWxlbSAgICAqY21rRWwgPSBOVUxMOworCURlZkVsZW0gICAgKmFsZ0Vs ID0gTlVMTDsKKwlEZWZFbGVtICAgICplbmN2YWxFbCA9IE5VTEw7CisJT2lkCQkJY21rb2lk ID0gMDsKKwlpbnQxNgkJYWxnOworCWNoYXIJICAgKmVuY3ZhbDsKKworCUFzc2VydChjbWtv aWRfcCk7CisKKwlmb3JlYWNoKGxjLCBkZWZpbml0aW9uKQorCXsKKwkJRGVmRWxlbSAgICAq ZGVmZWwgPSBsZmlyc3Rfbm9kZShEZWZFbGVtLCBsYyk7CisJCURlZkVsZW0gICAqKmRlZmVs cDsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29sdW1uX21hc3Rlcl9rZXki KSA9PSAwKQorCQkJZGVmZWxwID0gJmNta0VsOworCQllbHNlIGlmIChzdHJjbXAoZGVmZWwt PmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJZGVmZWxwID0gJmFsZ0VsOworCQll bHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJlbmNyeXB0ZWRfdmFsdWUiKSA9PSAw KQorCQkJZGVmZWxwID0gJmVuY3ZhbEVsOworCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1z ZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IGF0dHJpYnV0ZSBcIiVzXCIgbm90IHJlY29nbml6 ZWQiLAorCQkJCQkJCWRlZmVsLT5kZWZuYW1lKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihwc3RhdGUsIGRlZmVsLT5sb2NhdGlvbikpKTsKKwkJfQorCQlpZiAoKmRlZmVscCAhPSBO VUxMKQorCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisJCSpk ZWZlbHAgPSBkZWZlbDsKKwl9CisKKwlpZiAoY21rRWwpCisJeworCQljaGFyCSAgICp2YWwg PSBkZWZHZXRTdHJpbmcoY21rRWwpOworCisJCWNta29pZCA9IEdldFN5c0NhY2hlT2lkMShD TUtOQU1FLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsIFBvaW50ZXJHZXREYXR1bSh2YWwp KTsKKwkJaWYgKCFjbWtvaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCWVycm1zZygiY29sdW1uIG1hc3RlciBr ZXkgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgdmFsKSk7CisJfQorCWVsc2UKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVy cm1zZygiYXR0cmlidXRlIFwiJXNcIiBtdXN0IGJlIHNwZWNpZmllZCIsCisJCQkJCQkiY29s dW1uX21hc3Rlcl9rZXkiKSkpOworCisJaWYgKGFsZ0VsKQorCXsKKwkJY2hhcgkgICAqdmFs ID0gZGVmR2V0U3RyaW5nKGFsZ0VsKTsKKworCQlpZiAoIWFsZ19wKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJy bXNnKCJhdHRyaWJ1dGUgXCIlc1wiIG11c3Qgbm90IGJlIHNwZWNpZmllZCIsCisJCQkJCQkJ ImFsZ29yaXRobSIpKSk7CisKKwkJaWYgKHN0cmNtcCh2YWwsICJSU0FFU19PQUVQX1NIQV8x IikgPT0gMCkKKwkJCWFsZyA9IFBHX0NNS19SU0FFU19PQUVQX1NIQV8xOworCQllbHNlIGlm IChzdHJjbXAodmFsLCAiUEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NiIpID09IDApCisJCQlh bGcgPSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2OworCQllbHNlCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAor CQkJCQllcnJtc2coInVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2 YWwpKTsKKwl9CisJZWxzZQorCQlhbGcgPSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMTsKKwor CWlmIChlbmN2YWxFbCkKKwl7CisJCWlmICghZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2co ImF0dHJpYnV0ZSBcIiVzXCIgbXVzdCBub3QgYmUgc3BlY2lmaWVkIiwKKwkJCQkJCQkiZW5j cnlwdGVkX3ZhbHVlIikpKTsKKworCQllbmN2YWwgPSBkZWZHZXRTdHJpbmcoZW5jdmFsRWwp OworCX0KKwllbHNlCisJeworCQlpZiAoZW5jdmFsX3ApCisJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImF0 dHJpYnV0ZSBcIiVzXCIgbXVzdCBiZSBzcGVjaWZpZWQiLAorCQkJCQkJCSJlbmNyeXB0ZWRf dmFsdWUiKSkpOworCX0KKworCSpjbWtvaWRfcCA9IGNta29pZDsKKwlpZiAoYWxnX3ApCisJ CSphbGdfcCA9IGFsZzsKKwlpZiAoZW5jdmFsX3ApCisJCSplbmN2YWxfcCA9IGVuY3ZhbDsK K30KKworc3RhdGljIHZvaWQKK2luc2VydF9jZWtkYXRhX3JlY29yZChPaWQgY2Vrb2lkLCBP aWQgY21rb2lkLCBpbnQxNiBhbGcsIGNoYXIgKmVuY3ZhbCkKK3sKKwlPaWQJCQljZWtkYXRh b2lkOworCVJlbGF0aW9uCXJlbDsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX2NvbGVuY2tl eWRhdGFdID0gezB9OworCWJvb2wJCW51bGxzW05hdHRzX3BnX2NvbGVuY2tleWRhdGFdID0g ezB9OworCUhlYXBUdXBsZQl0dXA7CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2JqZWN0 QWRkcmVzcyBvdGhlcjsKKworCXJlbCA9IHRhYmxlX29wZW4oQ29sdW1uRW5jS2V5RGF0YVJl bGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJY2VrZGF0YW9pZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIENvbHVtbkVuY0tleURhdGFPaWRJbmRleElkLCBBbnVtX3BnX2Nv bGVuY2tleWRhdGFfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCAt IDFdID0gT2JqZWN0SWRHZXREYXR1bShjZWtkYXRhb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19j b2xlbmNrZXlkYXRhX2NrZGNla2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGNla29pZCk7 CisJdmFsdWVzW0FudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjbWtpZCAtIDFdID0gT2JqZWN0 SWRHZXREYXR1bShjbWtvaWQpOworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleWRhdGFfY2tk Y21rYWxnIC0gMV0gPSBJbnQxNkdldERhdHVtKGFsZyk7CisJdmFsdWVzW0FudW1fcGdfY29s ZW5ja2V5ZGF0YV9ja2RlbmN2YWwgLSAxXSA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoYnl0ZWFp biwgQ1N0cmluZ0dldERhdHVtKGVuY3ZhbCkpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxl KFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxl SW5zZXJ0KHJlbCwgdHVwKTsKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJT2JqZWN0QWRk cmVzc1NldChteXNlbGYsIENvbHVtbkVuY0tleURhdGFSZWxhdGlvbklkLCBjZWtkYXRhb2lk KTsKKworCS8qIGRlcGVuZGVuY3kgY2VrZGF0YSAtPiBjZWsgKi8KKwlPYmplY3RBZGRyZXNz U2V0KG90aGVyLCBDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQpOworCXJlY29yZERl cGVuZGVuY3lPbigmbXlzZWxmLCAmb3RoZXIsIERFUEVOREVOQ1lfQVVUTyk7CisKKwkvKiBk ZXBlbmRlbmN5IGNla2RhdGEgLT4gY21rICovCisJT2JqZWN0QWRkcmVzc1NldChvdGhlciwg Q29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5 T24oJm15c2VsZiwgJm90aGVyLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwl0YWJsZV9jbG9z ZShyZWwsIE5vTG9jayk7Cit9CisKK09iamVjdEFkZHJlc3MKK0NyZWF0ZUNFSyhQYXJzZVN0 YXRlICpwc3RhdGUsIERlZmluZVN0bXQgKnN0bXQpCit7CisJQWNsUmVzdWx0CWFjbHJlc3Vs dDsKKwlSZWxhdGlvbglyZWw7CisJT2JqZWN0QWRkcmVzcyBteXNlbGY7CisJT2lkCQkJY2Vr b2lkOworCUxpc3RDZWxsICAgKmxjOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfY29sZW5j a2V5XSA9IHswfTsKKwlib29sCQludWxsc1tOYXR0c19wZ19jb2xlbmNrZXldID0gezB9Owor CUhlYXBUdXBsZQl0dXA7CisKKwlhY2xyZXN1bHQgPSBwZ19kYXRhYmFzZV9hY2xjaGVjayhN eURhdGFiYXNlSWQsIEdldFVzZXJJZCgpLCBBQ0xfQ1JFQVRFKTsKKwlpZiAoYWNscmVzdWx0 ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9E QVRBQkFTRSwKKwkJCQkJICAgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSk7CisK KwlyZWwgPSB0YWJsZV9vcGVuKENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCisJY2Vrb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENFS05BTUUsIEFudW1fcGdf Y29sZW5ja2V5X29pZCwKKwkJCQkJCQkgQ1N0cmluZ0dldERhdHVtKHN0clZhbChsbGFzdChz dG10LT5kZWZuYW1lcykpKSk7CisJaWYgKE9pZElzVmFsaWQoY2Vrb2lkKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJ CSBlcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgYWxyZWFkeSBleGlzdHMi LAorCQkJCQkJc3RyVmFsKGxsYXN0KHN0bXQtPmRlZm5hbWVzKSkpKSk7CisKKwljZWtvaWQg PSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5FbmNLZXlPaWRJbmRleElkLCBBbnVt X3BnX2NvbGVuY2tleV9vaWQpOworCisJZm9yZWFjaCAobGMsIHN0bXQtPmRlZmluaXRpb24p CisJeworCQlMaXN0CSAgICpkZWZpbml0aW9uID0gbGZpcnN0X25vZGUoTGlzdCwgbGMpOwor CQlPaWQJCQljbWtvaWQgPSAwOworCQlpbnQxNgkJYWxnOworCQljaGFyCSAgICplbmN2YWw7 CisKKwkJcGFyc2VfY2VrX2F0dHJpYnV0ZXMocHN0YXRlLCBkZWZpbml0aW9uLCAmY21rb2lk LCAmYWxnLCAmZW5jdmFsKTsKKworCQkvKiBwZ19jb2xlbmNrZXlkYXRhICovCisJCWluc2Vy dF9jZWtkYXRhX3JlY29yZChjZWtvaWQsIGNta29pZCwgYWxnLCBlbmN2YWwpOworCX0KKwor CS8qIHBnX2NvbGVuY2tleSAqLworCXZhbHVlc1tBbnVtX3BnX2NvbGVuY2tleV9vaWQgLSAx XSA9IE9iamVjdElkR2V0RGF0dW0oY2Vrb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19jb2xlbmNr ZXlfY2VrbmFtZSAtIDFdID0KKwkJRGlyZWN0RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJp bmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3RtdC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tB bnVtX3BnX2NvbGVuY2tleV9jZWtvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRV c2VySWQoKSk7CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihy ZWwpLCB2YWx1ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwlPYmplY3RBZGRyZXNzU2V0KG15c2VsZiwgQ29s dW1uRW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkKTsKKwlyZWNvcmREZXBlbmRlbmN5T25Pd25l cihDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIEdldFVzZXJJZCgpKTsKKworCXRh YmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlJbnZva2VPYmplY3RQb3N0 Q3JlYXRlSG9vayhDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCBjZWtvaWQsIDApOworCisJcmV0 dXJuIG15c2VsZjsKK30KKworT2JqZWN0QWRkcmVzcworQWx0ZXJDb2x1bW5FbmNyeXB0aW9u S2V5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAq c3RtdCkKK3sKKwlPaWQJCQljZWtvaWQ7CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCisJ Y2Vrb2lkID0gZ2V0X2Nla19vaWQoc3RtdC0+Y2VrbmFtZSwgZmFsc2UpOworCisJaWYgKCFw Z19jb2x1bW5fZW5jcnlwdGlvbl9rZXlfb3duZXJjaGVjayhjZWtvaWQsIEdldFVzZXJJZCgp KSkKKwkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfQ0VLLCBz dG10LT5jZWtuYW1lKTsKKworCWlmIChzdG10LT5pc0Ryb3ApCisJeworCQlPaWQJCQljbWtv aWQgPSAwOworCQlPaWQJCQljZWtkYXRhb2lkOworCQlPYmplY3RBZGRyZXNzIG9iajsKKwor CQlwYXJzZV9jZWtfYXR0cmlidXRlcyhwc3RhdGUsIHN0bXQtPmRlZmluaXRpb24sICZjbWtv aWQsIE5VTEwsIE5VTEwpOworCisJCWNla2RhdGFvaWQgPSBHZXRTeXNDYWNoZU9pZDIoQ0VL REFUQUNFS0NNSywgQW51bV9wZ19jb2xlbmNrZXlkYXRhX29pZCwKKwkJCQkJCQkJCSBPYmpl Y3RJZEdldERhdHVtKGNla29pZCksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1bShjbWtv aWQpKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGNla2RhdGFvaWQpKQorCQl7CisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgXCIlc1wiIGhhcyBubyBkYXRhIGZv ciBtYXN0ZXIga2V5IFwiJXNcIiIsCisJCQkJCQkJZ2V0X2Nla19uYW1lKGNla29pZCwgZmFs c2UpLCBnZXRfY21rX25hbWUoY21rb2lkLCBmYWxzZSkpKSk7CisJCX0KKworCQlPYmplY3RB ZGRyZXNzU2V0KG9iaiwgQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIGNla2RhdGFvaWQp OworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAwKTsKKwkJLy8gVE9E TzogcHJldmVudCBkZWxldGluZyBhbGwgZGF0YSBlbnRyaWVzIGZvciBhIGtleT8KKwl9CisJ ZWxzZQorCXsKKwkJT2lkCQkJY21rb2lkID0gMDsKKwkJaW50MTYJCWFsZzsKKwkJY2hhcgkg ICAqZW5jdmFsOworCisJCXBhcnNlX2Nla19hdHRyaWJ1dGVzKHBzdGF0ZSwgc3RtdC0+ZGVm aW5pdGlvbiwgJmNta29pZCwgJmFsZywgJmVuY3ZhbCk7CisJCS8vIFRPRE86IGNoZWNrIGZv ciBkdXBsaWNhdGVzCisJCWluc2VydF9jZWtkYXRhX3JlY29yZChjZWtvaWQsIGNta29pZCwg YWxnLCBlbmN2YWwpOworCX0KKworCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2soQ29sdW1u RW5jS2V5UmVsYXRpb25JZCwgY2Vrb2lkLCAwKTsKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJl c3MsIENvbHVtbkVuY0tleVJlbGF0aW9uSWQsIGNla29pZCk7CisKKwlyZXR1cm4gYWRkcmVz czsKK30KKworT2JqZWN0QWRkcmVzcworQ3JlYXRlQ01LKFBhcnNlU3RhdGUgKnBzdGF0ZSwg RGVmaW5lU3RtdCAqc3RtdCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVJlbGF0aW9u CXJlbDsKKwlPYmplY3RBZGRyZXNzIG15c2VsZjsKKwlPaWQJCQljbWtvaWQ7CisJTGlzdENl bGwgICAqbGM7CisJRGVmRWxlbSAgICAqcmVhbG1FbCA9IE5VTEw7CisJY2hhcgkgICAqcmVh bG07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ19jb2xtYXN0ZXJrZXldID0gezB9OworCWJv b2wJCW51bGxzW05hdHRzX3BnX2NvbG1hc3RlcmtleV0gPSB7MH07CisJSGVhcFR1cGxlCXR1 cDsKKworCWFjbHJlc3VsdCA9IHBnX2RhdGFiYXNlX2FjbGNoZWNrKE15RGF0YWJhc2VJZCwg R2V0VXNlcklkKCksIEFDTF9DUkVBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tf T0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX0RBVEFCQVNFLAorCQkJ CQkgICBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKTsKKworCXJlbCA9IHRhYmxl X29wZW4oQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwljbWtvaWQgPSBHZXRTeXNDYWNoZU9pZDEoQ01LTkFNRSwgQW51bV9wZ19jb2xtYXN0ZXJr ZXlfb2lkLAorCQkJCQkJCSBDU3RyaW5nR2V0RGF0dW0oc3RyVmFsKGxsYXN0KHN0bXQtPmRl Zm5hbWVzKSkpKTsKKwlpZiAoT2lkSXNWYWxpZChjbWtvaWQpKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJIGVycm1z ZygiY29sdW1uIG1hc3RlciBrZXkgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0 clZhbChsbGFzdChzdG10LT5kZWZuYW1lcykpKSkpOworCisJZm9yZWFjaChsYywgc3RtdC0+ ZGVmaW5pdGlvbikKKwl7CisJCURlZkVsZW0gICAgKmRlZmVsID0gbGZpcnN0X25vZGUoRGVm RWxlbSwgbGMpOworCQlEZWZFbGVtICAgKipkZWZlbHA7CisKKwkJaWYgKHN0cmNtcChkZWZl bC0+ZGVmbmFtZSwgInJlYWxtIikgPT0gMCkKKwkJCWRlZmVscCA9ICZyZWFsbUVsOworCQll bHNlCisJCXsKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lO VEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIG1hc3RlciBrZXkgYXR0cmlidXRl IFwiJXNcIiBub3QgcmVjb2duaXplZCIsCisJCQkJCQkJZGVmZWwtPmRlZm5hbWUpLAorCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCQl9 CisJCWlmICgqZGVmZWxwICE9IE5VTEwpCisJCQllcnJvckNvbmZsaWN0aW5nRGVmRWxlbShk ZWZlbCwgcHN0YXRlKTsKKwkJKmRlZmVscCA9IGRlZmVsOworCX0KKworCWlmIChyZWFsbUVs KQorCQlyZWFsbSA9IGRlZkdldFN0cmluZyhyZWFsbUVsKTsKKwllbHNlCisJCXJlYWxtID0g IiI7CisKKwljbWtvaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBDb2x1bW5NYXN0ZXJL ZXlPaWRJbmRleElkLCBBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQpOworCXZhbHVlc1tBbnVt X3BnX2NvbG1hc3RlcmtleV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0oY21rb2lkKTsK Kwl2YWx1ZXNbQW51bV9wZ19jb2xtYXN0ZXJrZXlfY21rbmFtZSAtIDFdID0KKwkJRGlyZWN0 RnVuY3Rpb25DYWxsMShuYW1laW4sIENTdHJpbmdHZXREYXR1bShzdHJWYWwobGxhc3Qoc3Rt dC0+ZGVmbmFtZXMpKSkpOworCXZhbHVlc1tBbnVtX3BnX2NvbG1hc3RlcmtleV9jbWtvd25l ciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShHZXRVc2VySWQoKSk7CisJdmFsdWVzW0FudW1f cGdfY29sbWFzdGVya2V5X2Nta3JlYWxtIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKHJl YWxtKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbCks IHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7CisJaGVh cF9mcmVldHVwbGUodHVwKTsKKworCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKENvbHVtbk1h c3RlcktleVJlbGF0aW9uSWQsIGNta29pZCwgR2V0VXNlcklkKCkpOworCisJT2JqZWN0QWRk cmVzc1NldChteXNlbGYsIENvbHVtbk1hc3RlcktleVJlbGF0aW9uSWQsIGNta29pZCk7CisK Kwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJSW52b2tlT2JqZWN0 UG9zdENyZWF0ZUhvb2soQ29sdW1uTWFzdGVyS2V5UmVsYXRpb25JZCwgY21rb2lkLCAwKTsK KworCXJldHVybiBteXNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2Vy LmMKaW5kZXggNjM1ZDA1NDA1ZS4uZjAwOGVhZTZmOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V2ZW50X3RyaWdnZXIuYwpAQCAtOTUxLDYgKzk1MSw4IEBAIEV2ZW50VHJpZ2dlclN1cHBv cnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9idHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1QUk9D OgogCQljYXNlIE9CSkVDVF9BVFRSSUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNh c2UgT0JKRUNUX0NFSzoKKwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xV TU46CiAJCWNhc2UgT0JKRUNUX0NPTExBVElPTjoKIAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lP TjoKQEAgLTEwMjcsNiArMTAyOSw5IEBAIEV2ZW50VHJpZ2dlclN1cHBvcnRzT2JqZWN0Q2xh c3MoT2JqZWN0Q2xhc3Mgb2JqY2xhc3MpCiAJCWNhc2UgT0NMQVNTX1RZUEU6CiAJCWNhc2Ug T0NMQVNTX0NBU1Q6CiAJCWNhc2UgT0NMQVNTX0NPTExBVElPTjoKKwkJY2FzZSBPQ0xBU1Nf Q0VLOgorCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQljYXNlIE9DTEFTU19DTUs6CiAJCWNh c2UgT0NMQVNTX0NPTlNUUkFJTlQ6CiAJCWNhc2UgT0NMQVNTX0NPTlZFUlNJT046CiAJCWNh c2UgT0NMQVNTX0RFRkFVTFQ6CkBAIC0yMDU2LDYgKzIwNjEsOCBAQCBzdHJpbmdpZnlfZ3Jh bnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoK IAkJY2FzZSBPQkpFQ1RfQVRUUklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNl IE9CSkVDVF9DRUs6CisJCWNhc2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFU SU9OOgogCQljYXNlIE9CSkVDVF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxU OgpAQCAtMjEzOSw2ICsyMTQ2LDggQEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9i amVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfQU1QUk9DOgogCQljYXNlIE9CSkVD VF9BVFRSSUJVVEU6CiAJCWNhc2UgT0JKRUNUX0NBU1Q6CisJCWNhc2UgT0JKRUNUX0NFSzoK KwkJY2FzZSBPQkpFQ1RfQ01LOgogCQljYXNlIE9CSkVDVF9DT0xMQVRJT046CiAJCWNhc2Ug T0JKRUNUX0NPTlZFUlNJT046CiAJCWNhc2UgT0JKRUNUX0RFRkFVTFQ6CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKaW5kZXggNTc5ODI1YzE1OS4uMGYyZWQ2N2E5NiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYwpAQCAtNTAsNyArNTAsNiBAQCBzdGF0aWMgdm9pZCBJbml0UXVlcnlI YXNoVGFibGUodm9pZCk7CiBzdGF0aWMgUGFyYW1MaXN0SW5mbyBFdmFsdWF0ZVBhcmFtcyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQlQcmVwYXJlZFN0YXRlbWVudCAqcHN0bXQs IExpc3QgKnBhcmFtcywKIAkJCQkJCQkJCUVTdGF0ZSAqZXN0YXRlKTsKLXN0YXRpYyBEYXR1 bSBidWlsZF9yZWd0eXBlX2FycmF5KE9pZCAqcGFyYW1fdHlwZXMsIGludCBudW1fcGFyYW1z KTsKIAogLyoKICAqIEltcGxlbWVudHMgdGhlICdQUkVQQVJFJyB1dGlsaXR5IHN0YXRlbWVu dC4KQEAgLTYyLDYgKzYxLDggQEAgUHJlcGFyZVF1ZXJ5KFBhcnNlU3RhdGUgKnBzdGF0ZSwg UHJlcGFyZVN0bXQgKnN0bXQsCiAJUmF3U3RtdCAgICAqcmF3c3RtdDsKIAlDYWNoZWRQbGFu U291cmNlICpwbGFuc291cmNlOwogCU9pZAkJICAgKmFyZ3R5cGVzID0gTlVMTDsKKwlPaWQJ CSAgICphcmdvcmlndGJscyA9IE5VTEw7CisJQXR0ck51bWJlciAqYXJnb3JpZ2NvbHMgPSBO VUxMOwogCWludAkJCW5hcmdzOwogCUxpc3QJICAgKnF1ZXJ5X2xpc3Q7CiAKQEAgLTEwOCw2 ICsxMDksOSBAQCBQcmVwYXJlUXVlcnkoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlU3Rt dCAqc3RtdCwKIAogCQkJYXJndHlwZXNbaSsrXSA9IHRvaWQ7CiAJCX0KKworCQlhcmdvcmln dGJscyA9IChPaWQgKikgcGFsbG9jMChuYXJncyAqIHNpemVvZihPaWQpKTsKKwkJYXJnb3Jp Z2NvbHMgPSAoQXR0ck51bWJlciAqKSBwYWxsb2MwKG5hcmdzICogc2l6ZW9mKEF0dHJOdW1i ZXIpKTsKIAl9CiAKIAkvKgpAQCAtMTE3LDcgKzEyMSw5IEBAIFByZXBhcmVRdWVyeShQYXJz ZVN0YXRlICpwc3RhdGUsIFByZXBhcmVTdG10ICpzdG10LAogCSAqIFJld3JpdGUgdGhlIHF1 ZXJ5LiBUaGUgcmVzdWx0IGNvdWxkIGJlIDAsIDEsIG9yIG1hbnkgcXVlcmllcy4KIAkgKi8K IAlxdWVyeV9saXN0ID0gcGdfYW5hbHl6ZV9hbmRfcmV3cml0ZV92YXJwYXJhbXMocmF3c3Rt dCwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCi0JCQkJCQkJCQkJCQkgICZhcmd0eXBlcywgJm5h cmdzLCBOVUxMKTsKKwkJCQkJCQkJCQkJCSAgJmFyZ3R5cGVzLCAmbmFyZ3MsCisJCQkJCQkJ CQkJCQkgICZhcmdvcmlndGJscywgJmFyZ29yaWdjb2xzLAorCQkJCQkJCQkJCQkJICBOVUxM KTsKIAogCS8qIEZpbmlzaCBmaWxsaW5nIGluIHRoZSBDYWNoZWRQbGFuU291cmNlICovCiAJ Q29tcGxldGVDYWNoZWRQbGFuKHBsYW5zb3VyY2UsCkBAIC0xMjUsNiArMTMxLDggQEAgUHJl cGFyZVF1ZXJ5KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZVN0bXQgKnN0bXQsCiAJCQkJ CSAgIE5VTEwsCiAJCQkJCSAgIGFyZ3R5cGVzLAogCQkJCQkgICBuYXJncywKKwkJCQkJICAg YXJnb3JpZ3RibHMsCisJCQkJCSAgIGFyZ29yaWdjb2xzLAogCQkJCQkgICBOVUxMLAogCQkJ CQkgICBOVUxMLAogCQkJCQkgICBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLAkvKiBhbGxvdyBw YXJhbGxlbCBtb2RlICovCkBAIC02ODMsMzQgKzY5MSw0OSBAQCBwZ19wcmVwYXJlZF9zdGF0 ZW1lbnQoUEdfRlVOQ1RJT05fQVJHUykKIAkJaGFzaF9zZXFfaW5pdCgmaGFzaF9zZXEsIHBy ZXBhcmVkX3F1ZXJpZXMpOwogCQl3aGlsZSAoKHByZXBfc3RtdCA9IGhhc2hfc2VxX3NlYXJj aCgmaGFzaF9zZXEpKSAhPSBOVUxMKQogCQl7CisJCQlpbnQJCQludW1fcGFyYW1zID0gcHJl cF9zdG10LT5wbGFuc291cmNlLT5udW1fcGFyYW1zOwogCQkJVHVwbGVEZXNjCXJlc3VsdF9k ZXNjOwotCQkJRGF0dW0JCXZhbHVlc1s4XTsKLQkJCWJvb2wJCW51bGxzWzhdID0gezB9Owor CQkJRGF0dW0JICAgKnRtcF9hcnk7CisJCQlEYXR1bQkJdmFsdWVzWzEwXTsKKwkJCWJvb2wJ CW51bGxzWzEwXSA9IHswfTsKIAogCQkJcmVzdWx0X2Rlc2MgPSBwcmVwX3N0bXQtPnBsYW5z b3VyY2UtPnJlc3VsdERlc2M7CiAKIAkJCXZhbHVlc1swXSA9IENTdHJpbmdHZXRUZXh0RGF0 dW0ocHJlcF9zdG10LT5zdG10X25hbWUpOwogCQkJdmFsdWVzWzFdID0gQ1N0cmluZ0dldFRl eHREYXR1bShwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPnF1ZXJ5X3N0cmluZyk7CiAJCQl2YWx1 ZXNbMl0gPSBUaW1lc3RhbXBUekdldERhdHVtKHByZXBfc3RtdC0+cHJlcGFyZV90aW1lKTsK LQkJCXZhbHVlc1szXSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXkocHJlcF9zdG10LT5wbGFuc291 cmNlLT5wYXJhbV90eXBlcywKLQkJCQkJCQkJCQkJcHJlcF9zdG10LT5wbGFuc291cmNlLT5u dW1fcGFyYW1zKTsKKworCQkJdG1wX2FyeSA9IChEYXR1bSAqKSBwYWxsb2MobnVtX3BhcmFt cyAqIHNpemVvZihEYXR1bSkpOworCQkJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1fcGFyYW1z OyBpKyspCisJCQkJdG1wX2FyeVtpXSA9IE9iamVjdElkR2V0RGF0dW0ocHJlcF9zdG10LT5w bGFuc291cmNlLT5wYXJhbV90eXBlc1tpXSk7CisJCQl2YWx1ZXNbM10gPSBQb2ludGVyR2V0 RGF0dW0oY29uc3RydWN0X2FycmF5X2J1aWx0aW4odG1wX2FyeSwgbnVtX3BhcmFtcywgUkVH VFlQRU9JRCkpOworCisJCQl0bXBfYXJ5ID0gKERhdHVtICopIHBhbGxvYyhudW1fcGFyYW1z ICogc2l6ZW9mKERhdHVtKSk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJhbXM7 IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShwcmVwX3N0bXQtPnBs YW5zb3VyY2UtPnBhcmFtX29yaWd0YmxzW2ldKTsKKwkJCXZhbHVlc1s0XSA9IFBvaW50ZXJH ZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBS RUdDTEFTU09JRCkpOworCisJCQl0bXBfYXJ5ID0gKERhdHVtICopIHBhbGxvYyhudW1fcGFy YW1zICogc2l6ZW9mKERhdHVtKSk7CisJCQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9wYXJh bXM7IGkrKykKKwkJCQl0bXBfYXJ5W2ldID0gSW50MTZHZXREYXR1bShwcmVwX3N0bXQtPnBs YW5zb3VyY2UtPnBhcmFtX29yaWdjb2xzW2ldKTsKKwkJCXZhbHVlc1s1XSA9IFBvaW50ZXJH ZXREYXR1bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCBudW1fcGFyYW1zLCBJ TlQyT0lEKSk7CisKIAkJCWlmIChyZXN1bHRfZGVzYykKIAkJCXsKLQkJCQlPaWQJCSAgICpy ZXN1bHRfdHlwZXM7Ci0KLQkJCQlyZXN1bHRfdHlwZXMgPSAoT2lkICopIHBhbGxvYyhyZXN1 bHRfZGVzYy0+bmF0dHMgKiBzaXplb2YoT2lkKSk7CisJCQkJdG1wX2FyeSA9IChEYXR1bSAq KSBwYWxsb2MocmVzdWx0X2Rlc2MtPm5hdHRzICogc2l6ZW9mKERhdHVtKSk7CiAJCQkJZm9y IChpbnQgaSA9IDA7IGkgPCByZXN1bHRfZGVzYy0+bmF0dHM7IGkrKykKLQkJCQkJcmVzdWx0 X3R5cGVzW2ldID0gcmVzdWx0X2Rlc2MtPmF0dHJzW2ldLmF0dHR5cGlkOwotCQkJCXZhbHVl c1s0XSA9IGJ1aWxkX3JlZ3R5cGVfYXJyYXkocmVzdWx0X3R5cGVzLCByZXN1bHRfZGVzYy0+ bmF0dHMpOworCQkJCQl0bXBfYXJ5W2ldID0gT2JqZWN0SWRHZXREYXR1bShyZXN1bHRfZGVz Yy0+YXR0cnNbaV0uYXR0dHlwaWQpOworCQkJCXZhbHVlc1s2XSA9IFBvaW50ZXJHZXREYXR1 bShjb25zdHJ1Y3RfYXJyYXlfYnVpbHRpbih0bXBfYXJ5LCByZXN1bHRfZGVzYy0+bmF0dHMs IFJFR1RZUEVPSUQpKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKIAkJCQkvKiBubyByZXN1bHQg ZGVzY3JpcHRvciAoZm9yIGV4YW1wbGUsIERNTCBzdGF0ZW1lbnQpICovCi0JCQkJbnVsbHNb NF0gPSB0cnVlOworCQkJCW51bGxzWzZdID0gdHJ1ZTsKIAkJCX0KLQkJCXZhbHVlc1s1XSA9 IEJvb2xHZXREYXR1bShwcmVwX3N0bXQtPmZyb21fc3FsKTsKLQkJCXZhbHVlc1s2XSA9IElu dDY0R2V0RGF0dW1GYXN0KHByZXBfc3RtdC0+cGxhbnNvdXJjZS0+bnVtX2dlbmVyaWNfcGxh bnMpOwotCQkJdmFsdWVzWzddID0gSW50NjRHZXREYXR1bUZhc3QocHJlcF9zdG10LT5wbGFu c291cmNlLT5udW1fY3VzdG9tX3BsYW5zKTsKKworCQkJdmFsdWVzWzddID0gQm9vbEdldERh dHVtKHByZXBfc3RtdC0+ZnJvbV9zcWwpOworCQkJdmFsdWVzWzhdID0gSW50NjRHZXREYXR1 bUZhc3QocHJlcF9zdG10LT5wbGFuc291cmNlLT5udW1fZ2VuZXJpY19wbGFucyk7CisJCQl2 YWx1ZXNbOV0gPSBJbnQ2NEdldERhdHVtRmFzdChwcmVwX3N0bXQtPnBsYW5zb3VyY2UtPm51 bV9jdXN0b21fcGxhbnMpOwogCiAJCQl0dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNl dFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLAogCQkJCQkJCQkgdmFsdWVzLCBudWxscyk7CkBA IC03MTksMjQgKzc0MiwzIEBAIHBnX3ByZXBhcmVkX3N0YXRlbWVudChQR19GVU5DVElPTl9B UkdTKQogCiAJcmV0dXJuIChEYXR1bSkgMDsKIH0KLQotLyoKLSAqIFRoaXMgdXRpbGl0eSBm dW5jdGlvbiB0YWtlcyBhIEMgYXJyYXkgb2YgT2lkcywgYW5kIHJldHVybnMgYSBEYXR1bQot ICogcG9pbnRpbmcgdG8gYSBvbmUtZGltZW5zaW9uYWwgUG9zdGdyZXMgYXJyYXkgb2YgcmVn dHlwZXMuIEFuIGVtcHR5Ci0gKiBhcnJheSBpcyByZXR1cm5lZCBhcyBhIHplcm8tZWxlbWVu dCBhcnJheSwgbm90IE5VTEwuCi0gKi8KLXN0YXRpYyBEYXR1bQotYnVpbGRfcmVndHlwZV9h cnJheShPaWQgKnBhcmFtX3R5cGVzLCBpbnQgbnVtX3BhcmFtcykKLXsKLQlEYXR1bQkgICAq dG1wX2FyeTsKLQlBcnJheVR5cGUgICpyZXN1bHQ7Ci0JaW50CQkJaTsKLQotCXRtcF9hcnkg PSAoRGF0dW0gKikgcGFsbG9jKG51bV9wYXJhbXMgKiBzaXplb2YoRGF0dW0pKTsKLQotCWZv ciAoaSA9IDA7IGkgPCBudW1fcGFyYW1zOyBpKyspCi0JCXRtcF9hcnlbaV0gPSBPYmplY3RJ ZEdldERhdHVtKHBhcmFtX3R5cGVzW2ldKTsKLQotCXJlc3VsdCA9IGNvbnN0cnVjdF9hcnJh eV9idWlsdGluKHRtcF9hcnksIG51bV9wYXJhbXMsIFJFR1RZUEVPSUQpOwotCXJldHVybiBQ b2ludGVyR2V0RGF0dW0ocmVzdWx0KTsKLX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmlu ZGV4IDdhZTE5Yjk4YmIuLjljY2RmNzYxNmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwu YwpAQCAtNjYsNiArNjYsOCBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX0FNUFJPQzoKIAkJY2FzZSBPQkpFQ1RfQVRU UklCVVRFOgogCQljYXNlIE9CSkVDVF9DQVNUOgorCQljYXNlIE9CSkVDVF9DRUs6CisJCWNh c2UgT0JKRUNUX0NNSzoKIAkJY2FzZSBPQkpFQ1RfQ09MTEFUSU9OOgogCQljYXNlIE9CSkVD VF9DT05WRVJTSU9OOgogCQljYXNlIE9CSkVDVF9ERUZBVUxUOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYwppbmRleCBkYWNjOTg5ZDg1Li5lYzZhZjFjYTEzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGFydGl0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfYXR0cmRlZi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5Lmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RlcGVuZC5oIgpAQCAt OTM1LDYgKzkzNiw4MiBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFy IHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJYXR0ci0+YXR0Y29tcHJlc3Npb24gPSBHZXRB dHRyaWJ1dGVDb21wcmVzc2lvbihhdHRyLT5hdHR0eXBpZCwKIAkJCQkJCQkJCQkJCQkJICAg Y29sRGVmLT5jb21wcmVzc2lvbik7CiAKKwkJaWYgKGNvbERlZi0+ZW5jcnlwdGlvbikKKwkJ eworCQkJTGlzdENlbGwgICAqbGM7CisJCQljaGFyCSAgICpjZWsgPSBOVUxMOworCQkJT2lk CQkJY2Vrb2lkOworCQkJYm9vbAkJZW5jZGV0ID0gZmFsc2U7CisJCQlpbnQJCQlhbGcgPSBQ R19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY7CisKKwkJCWZvcmVhY2gobGMs IGNvbERlZi0+ZW5jcnlwdGlvbikKKwkJCXsKKwkJCQlEZWZFbGVtICAgICplbCA9IGxmaXJz dF9ub2RlKERlZkVsZW0sIGxjKTsKKworCQkJCWlmIChzdHJjbXAoZWwtPmRlZm5hbWUsICJj b2x1bW5fZW5jcnlwdGlvbl9rZXkiKSA9PSAwKQorCQkJCQljZWsgPSBzdHJWYWwobGluaXRp YWwoY2FzdE5vZGUoVHlwZU5hbWUsIGVsLT5hcmcpLT5uYW1lcykpOworCQkJCWVsc2UgaWYg KHN0cmNtcChlbC0+ZGVmbmFtZSwgImVuY3J5cHRpb25fdHlwZSIpID09IDApCisJCQkJewor CQkJCQljaGFyCSAgICp2YWwgPSBzdHJWYWwobGluaXRpYWwoY2FzdE5vZGUoVHlwZU5hbWUs IGVsLT5hcmcpLT5uYW1lcykpOworCisJCQkJCWlmIChzdHJjbXAodmFsLCAiZGV0ZXJtaW5p c3RpYyIpID09IDApCisJCQkJCQllbmNkZXQgPSB0cnVlOworCQkJCQllbHNlIGlmIChzdHJj bXAodmFsLCAicmFuZG9taXplZCIpID09IDApCisJCQkJCQllbmNkZXQgPSBmYWxzZTsKKwkJ CQkJZWxzZQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RF X0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkJCQkJZXJybXNnKCJ1bnJlY29nbml6 ZWQgZW5jcnlwdGlvbiB0eXBlOiAlcyIsIHZhbCkpOworCQkJCX0KKwkJCQllbHNlIGlmIChz dHJjbXAoZWwtPmRlZm5hbWUsICJhbGdvcml0aG0iKSA9PSAwKQorCQkJCXsKKwkJCQkJY2hh cgkgICAqdmFsID0gc3RyVmFsKGVsLT5hcmcpOworCisJCQkJCWlmIChzdHJjbXAodmFsLCAi QUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTYiKSA9PSAwKQorCQkJCQkJYWxnID0gUEdf Q0VLX0FFQURfQUVTXzEyOF9DQkNfSE1BQ19TSEFfMjU2OworCQkJCQllbHNlIGlmIChzdHJj bXAodmFsLCAiQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NIQV8zODQiKSA9PSAwKQorCQkJCQkJ YWxnID0gUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0OworCQkJCQllbHNl IGlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQiKSA9PSAw KQorCQkJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0Owor CQkJCQllbHNlIGlmIChzdHJjbXAodmFsLCAiQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV81 MTIiKSA9PSAwKQorCQkJCQkJYWxnID0gUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19T SEFfNTEyOworCQkJCQllbHNlCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQllcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCQllcnJtc2co InVucmVjb2duaXplZCBlbmNyeXB0aW9uIGFsZ29yaXRobTogJXMiLCB2YWwpKTsKKwkJCQl9 CisJCQkJZWxzZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCWVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCisJCQkJCQkJZXJybXNnKCJ1bnJlY29nbml6 ZWQgY29sdW1uIGVuY3J5cHRpb24gcGFyYW1ldGVyOiAlcyIsIGVsLT5kZWZuYW1lKSk7CisJ CQl9CisKKwkJCWlmICghY2VrKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9DT0xVTU5fREVGSU5JVElPTiksCisJCQkJCQllcnJtc2coImNv bHVtbiBlbmNyeXB0aW9uIGtleSBtdXN0IGJlIHNwZWNpZmllZCIpKTsKKworCQkJY2Vrb2lk ID0gR2V0U3lzQ2FjaGVPaWQxKENFS05BTUUsIEFudW1fcGdfY29sZW5ja2V5X29pZCwgUG9p bnRlckdldERhdHVtKGNlaykpOworCQkJaWYgKCFjZWtvaWQpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJCWVy cm1zZygiY29sdW1uIGVuY3J5cHRpb24ga2V5IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNl aykpOworCisJCQlhdHRyLT5hdHRjZWsgPSBjZWtvaWQ7CisJCQlhdHRyLT5hdHRyZWFsdHlw aWQgPSBhdHRyLT5hdHR0eXBpZDsKKwkJCWF0dHItPmF0dGVuY2FsZyA9IGFsZzsKKworCQkJ Lyogb3ZlcnJpZGUgcGh5c2ljYWwgdHlwZSAqLworCQkJaWYgKGVuY2RldCkKKwkJCQlhdHRy LT5hdHR0eXBpZCA9IFBHX0VOQ1JZUFRFRF9ERVRPSUQ7CisJCQllbHNlCisJCQkJYXR0ci0+ YXR0dHlwaWQgPSBQR19FTkNSWVBURURfUk5ET0lEOworCQkJZ2V0X3R5cGxlbmJ5dmFsYWxp Z24oYXR0ci0+YXR0dHlwaWQsCisJCQkJCQkJCSAmYXR0ci0+YXR0bGVuLCAmYXR0ci0+YXR0 Ynl2YWwsICZhdHRyLT5hdHRhbGlnbik7CisJCQlhdHRyLT5hdHRzdG9yYWdlID0gZ2V0X3R5 cHN0b3JhZ2UoYXR0ci0+YXR0dHlwaWQpOworCQkJYXR0ci0+YXR0Y29sbGF0aW9uID0gSW52 YWxpZE9pZDsKKwkJfQorCiAJCWlmIChjb2xEZWYtPnN0b3JhZ2VfbmFtZSkKIAkJCWF0dHIt PmF0dHN0b3JhZ2UgPSBHZXRBdHRyaWJ1dGVTdG9yYWdlKGF0dHItPmF0dHR5cGlkLCBjb2xE ZWYtPnN0b3JhZ2VfbmFtZSk7CiAJfQpAQCAtNjg2OCw2ICs2OTQ1LDkgQEAgQVRFeGVjQWRk Q29sdW1uKExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLAogCWF0dHJpYnV0ZS5hdHRnZW5lcmF0ZWQgPSBjb2xEZWYtPmdlbmVyYXRlZDsKIAlh dHRyaWJ1dGUuYXR0aXNkcm9wcGVkID0gZmFsc2U7CiAJYXR0cmlidXRlLmF0dGlzbG9jYWwg PSBjb2xEZWYtPmlzX2xvY2FsOworCWF0dHJpYnV0ZS5hdHRjZWsgPSAwOyAvLyBUT0RPCisJ YXR0cmlidXRlLmF0dHJlYWx0eXBpZCA9IDA7IC8vIFRPRE8KKwlhdHRyaWJ1dGUuYXR0ZW5j YWxnID0gMDsgLy8gVE9ETwogCWF0dHJpYnV0ZS5hdHRpbmhjb3VudCA9IGNvbERlZi0+aW5o Y291bnQ7CiAJYXR0cmlidXRlLmF0dGNvbGxhdGlvbiA9IGNvbGxPaWQ7CiAKQEAgLTEyNjUy LDYgKzEyNzMyLDkgQEAgQVRFeGVjQWx0ZXJDb2x1bW5UeXBlKEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQkJY2FzZSBPQ0xBU1NfVFlQRToKIAkJCWNhc2UgT0NM QVNTX0NBU1Q6CiAJCQljYXNlIE9DTEFTU19DT0xMQVRJT046CisJCQljYXNlIE9DTEFTU19D RUs6CisJCQljYXNlIE9DTEFTU19DRUtEQVRBOgorCQkJY2FzZSBPQ0xBU1NfQ01LOgogCQkJ Y2FzZSBPQ0xBU1NfQ09OVkVSU0lPTjoKIAkJCWNhc2UgT0NMQVNTX0xBTkdVQUdFOgogCQkJ Y2FzZSBPQ0xBU1NfTEFSR0VPQkpFQ1Q6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmFyaWFibGUuYwppbmRl eCBlNWRkY2RhMGI0Li43NGU0NmNjNzNlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZhcmlhYmxlLmMK QEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFyaWFibGUuaCIK KyNpbmNsdWRlICJsaWJwcS9saWJwcS1iZS5oIgogI2luY2x1ZGUgIm1iL3BnX3djaGFyLmgi CiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYWNsLmgiCkBAIC02 NDgsNyArNjQ5LDExIEBAIGNoZWNrX2NsaWVudF9lbmNvZGluZyhjaGFyICoqbmV3dmFsLCB2 b2lkICoqZXh0cmEsIEd1Y1NvdXJjZSBzb3VyY2UpCiAJICovCiAJaWYgKFByZXBhcmVDbGll bnRFbmNvZGluZyhlbmNvZGluZykgPCAwKQogCXsKLQkJaWYgKElzVHJhbnNhY3Rpb25TdGF0 ZSgpKQorCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJ CUdVQ19jaGVja19lcnJkZXRhaWwoIkNvbnZlcnNpb24gYmV0d2VlbiAlcyBhbmQgJXMgaXMg bm90IHBvc3NpYmxlIHdoZW4gY29sdW1uIGVuY3J5cHRpb24gaXMgZW5hYmxlZC4iLAorCQkJ CQkJCQljYW5vbmljYWxfbmFtZSwKKwkJCQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZ05hbWUo KSk7CisJCWVsc2UgaWYgKElzVHJhbnNhY3Rpb25TdGF0ZSgpKQogCQl7CiAJCQkvKiBNdXN0 IGJlIGEgZ2VudWluZSBuby1zdWNoLWNvbnZlcnNpb24gcHJvYmxlbSAqLwogCQkJR1VDX2No ZWNrX2VycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYwppbmRleCAyOWJjMjY2NjliLi5jZGU1YjBlMDg3IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwpA QCAtMjI3OSw2ICsyMjc5LDggQEAgX1NQSV9wcmVwYXJlX3BsYW4oY29uc3QgY2hhciAqc3Jj LCBTUElQbGFuUHRyIHBsYW4pCiAJCQkJCQkgICBOVUxMLAogCQkJCQkJICAgcGxhbi0+YXJn dHlwZXMsCiAJCQkJCQkgICBwbGFuLT5uYXJncywKKwkJCQkJCSAgIE5VTEwsCisJCQkJCQkg ICBOVUxMLAogCQkJCQkJICAgcGxhbi0+cGFyc2VyU2V0dXAsCiAJCQkJCQkgICBwbGFuLT5w YXJzZXJTZXR1cEFyZywKIAkJCQkJCSAgIHBsYW4tPmN1cnNvcl9vcHRpb25zLApAQCAtMjUx Niw2ICsyNTE4LDggQEAgX1NQSV9leGVjdXRlX3BsYW4oU1BJUGxhblB0ciBwbGFuLCBjb25z dCBTUElFeGVjdXRlT3B0aW9ucyAqb3B0aW9ucywKIAkJCQkJCQkgICBOVUxMLAogCQkJCQkJ CSAgIHBsYW4tPmFyZ3R5cGVzLAogCQkJCQkJCSAgIHBsYW4tPm5hcmdzLAorCQkJCQkJCSAg IE5VTEwsCisJCQkJCQkJICAgTlVMTCwKIAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cCwK IAkJCQkJCQkgICBwbGFuLT5wYXJzZXJTZXR1cEFyZywKIAkJCQkJCQkgICBwbGFuLT5jdXJz b3Jfb3B0aW9ucywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggYzMzNGRhYWUzOS4uZGU1 MmZlYTUyMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysr IGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQyOTQsNiArNDI5NCw4IEBA IHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0 cnVlOwogCQkJCWlmICh3YWxrZXIoY29sZGVmLT5jb21wcmVzc2lvbiwgY29udGV4dCkpCiAJ CQkJCXJldHVybiB0cnVlOworCQkJCWlmICh3YWxrZXIoY29sZGVmLT5lbmNyeXB0aW9uLCBj b250ZXh0KSkKKwkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKHdhbGtlcihjb2xkZWYtPnJh d19kZWZhdWx0LCBjb250ZXh0KSkKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQkJaWYgKHdhbGtl cihjb2xkZWYtPmNvbGxDbGF1c2UsIGNvbnRleHQpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5k ZXggNjY4OGMyYTg2NS4uY2U5YjdhNWY1ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0x NDUsNiArMTQ1LDcgQEAgcGFyc2VfYW5hbHl6ZV9maXhlZHBhcmFtcyhSYXdTdG10ICpwYXJz ZVRyZWUsIGNvbnN0IGNoYXIgKnNvdXJjZVRleHQsCiBRdWVyeSAqCiBwYXJzZV9hbmFseXpl X3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZVRyZWUsIGNvbnN0IGNoYXIgKnNvdXJjZVRleHQs CiAJCQkJCQlPaWQgKipwYXJhbVR5cGVzLCBpbnQgKm51bVBhcmFtcywKKwkJCQkJCU9pZCAq KnBhcmFtT3JpZ1RibHMsIEF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzLAogCQkJCQkJUXVl cnlFbnZpcm9ubWVudCAqcXVlcnlFbnYpCiB7CiAJUGFyc2VTdGF0ZSAqcHN0YXRlID0gbWFr ZV9wYXJzZXN0YXRlKE5VTEwpOwpAQCAtMTU1LDcgKzE1Niw3IEBAIHBhcnNlX2FuYWx5emVf dmFycGFyYW1zKFJhd1N0bXQgKnBhcnNlVHJlZSwgY29uc3QgY2hhciAqc291cmNlVGV4dCwK IAogCXBzdGF0ZS0+cF9zb3VyY2V0ZXh0ID0gc291cmNlVGV4dDsKIAotCXNldHVwX3BhcnNl X3ZhcmlhYmxlX3BhcmFtZXRlcnMocHN0YXRlLCBwYXJhbVR5cGVzLCBudW1QYXJhbXMpOwor CXNldHVwX3BhcnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMocHN0YXRlLCBwYXJhbVR5cGVzLCBu dW1QYXJhbXMsIHBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0NvbHMpOwogCiAJcHN0YXRlLT5w X3F1ZXJ5RW52ID0gcXVlcnlFbnY7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGI1YWI5ZDljOWEu LjQ4NTkyNGUxYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjkxLDcgKzI5MSw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiB9CiAKICV0eXBlIDxub2RlPglzdG10IHRvcGxldmVs X3N0bXQgc2NoZW1hX3N0bXQgcm91dGluZV9ib2R5X3N0bXQKLQkJQWx0ZXJFdmVudFRyaWdT dG10IEFsdGVyQ29sbGF0aW9uU3RtdAorCQlBbHRlckV2ZW50VHJpZ1N0bXQgQWx0ZXJDb2xs YXRpb25TdG10IEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQKIAkJQWx0ZXJEYXRhYmFz ZVN0bXQgQWx0ZXJEYXRhYmFzZVNldFN0bXQgQWx0ZXJEb21haW5TdG10IEFsdGVyRW51bVN0 bXQKIAkJQWx0ZXJGZHdTdG10IEFsdGVyRm9yZWlnblNlcnZlclN0bXQgQWx0ZXJHcm91cFN0 bXQKIAkJQWx0ZXJPYmplY3REZXBlbmRzU3RtdCBBbHRlck9iamVjdFNjaGVtYVN0bXQgQWx0 ZXJPd25lclN0bXQKQEAgLTQzMSw2ICs0MzEsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vy c2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVl cnkpOwogCiAldHlwZSA8bGlzdD4JcGFyc2VfdG9wbGV2ZWwgc3RtdG11bHRpIHJvdXRpbmVf Ym9keV9zdG10X2xpc3QKIAkJCQlPcHRUYWJsZUVsZW1lbnRMaXN0IFRhYmxlRWxlbWVudExp c3QgT3B0SW5oZXJpdCBkZWZpbml0aW9uCisJCQkJbGlzdF9vZl9kZWZpbml0aW9ucwogCQkJ CU9wdFR5cGVkVGFibGVFbGVtZW50TGlzdCBUeXBlZFRhYmxlRWxlbWVudExpc3QKIAkJCQly ZWxvcHRpb25zIG9wdF9yZWxvcHRpb25zCiAJCQkJT3B0V2l0aCBvcHRfZGVmaW5pdGlvbiBm dW5jX2FyZ3MgZnVuY19hcmdzX2xpc3QKQEAgLTYwNCw2ICs2MDUsNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CVRhYmxlQ29uc3RyYWludCBUYWJsZUxp a2VDbGF1c2UKICV0eXBlIDxpdmFsPglUYWJsZUxpa2VPcHRpb25MaXN0IFRhYmxlTGlrZU9w dGlvbgogJXR5cGUgPHN0cj4JCWNvbHVtbl9jb21wcmVzc2lvbiBvcHRfY29sdW1uX2NvbXBy ZXNzaW9uIGNvbHVtbl9zdG9yYWdlIG9wdF9jb2x1bW5fc3RvcmFnZQorJXR5cGUgPGxpc3Q+ CW9wdF9jb2x1bW5fZW5jcnlwdGlvbgogJXR5cGUgPGxpc3Q+CUNvbFF1YWxMaXN0CiAldHlw ZSA8bm9kZT4JQ29sQ29uc3RyYWludCBDb2xDb25zdHJhaW50RWxlbSBDb25zdHJhaW50QXR0 cgogJXR5cGUgPGl2YWw+CWtleV9tYXRjaApAQCAtNzk3LDcgKzc5OSw3IEBAIHN0YXRpYyBO b2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAJREVUQUNIIERJQ1RJT05BUlkgRElTQUJMRV9QIERJU0NB UkQgRElTVElOQ1QgRE8gRE9DVU1FTlRfUCBET01BSU5fUAogCURPVUJMRV9QIERST1AKIAot CUVBQ0ggRUxTRSBFTVBUWV9QIEVOQUJMRV9QIEVOQ09ESU5HIEVOQ1JZUFRFRCBFTkRfUCBF TlVNX1AgRVJST1JfUCBFU0NBUEUKKwlFQUNIIEVMU0UgRU1QVFlfUCBFTkFCTEVfUCBFTkNP RElORyBFTkNSWVBUSU9OIEVOQ1JZUFRFRCBFTkRfUCBFTlVNX1AgRVJST1JfUCBFU0NBUEUK IAlFVkVOVCBFWENFUFQgRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJ U1RTIEVYUExBSU4gRVhQUkVTU0lPTgogCUVYVEVOU0lPTiBFWFRFUk5BTCBFWFRSQUNUCiAK QEAgLTgyMiw3ICs4MjQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUxFQURJ TkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBM T0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9DS0VE IExPR0dFRAogCi0JTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxV RSBNRVJHRSBNRVRIT0QKKwlNQVBQSU5HIE1BU1RFUiBNQVRDSCBNQVRDSEVEIE1BVEVSSUFM SVpFRCBNQVhWQUxVRSBNRVJHRSBNRVRIT0QKIAlNSU5VVEVfUCBNSU5WQUxVRSBNT0RFIE1P TlRIX1AgTU9WRQogCiAJTkFNRV9QIE5BTUVTIE5BVElPTkFMIE5BVFVSQUwgTkNIQVIgTkVT VEVEIE5FVyBORVhUIE5GQyBORkQgTkZLQyBORktEIE5PCkBAIC0xMDYxLDYgKzEwNjMsNyBA QCB0b3BsZXZlbF9zdG10Ogogc3RtdDoKIAkJCUFsdGVyRXZlbnRUcmlnU3RtdAogCQkJfCBB bHRlckNvbGxhdGlvblN0bXQKKwkJCXwgQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdAog CQkJfCBBbHRlckRhdGFiYXNlU3RtdAogCQkJfCBBbHRlckRhdGFiYXNlU2V0U3RtdAogCQkJ fCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdApAQCAtMzc5OSwxNCArMzgwMiwxNSBAQCBU eXBlZFRhYmxlRWxlbWVudDoKIAkJCXwgVGFibGVDb25zdHJhaW50CQkJCQl7ICQkID0gJDE7 IH0KIAkJOwogCi1jb2x1bW5EZWY6CUNvbElkIFR5cGVuYW1lIG9wdF9jb2x1bW5fc3RvcmFn ZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5lcmljX29wdGlvbnMgQ29sUXVh bExpc3QKK2NvbHVtbkRlZjoJQ29sSWQgVHlwZW5hbWUgb3B0X2NvbHVtbl9lbmNyeXB0aW9u IG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0ZV9nZW5l cmljX29wdGlvbnMgQ29sUXVhbExpc3QKIAkJCQl7CiAJCQkJCUNvbHVtbkRlZiAqbiA9IG1h a2VOb2RlKENvbHVtbkRlZik7CiAKIAkJCQkJbi0+Y29sbmFtZSA9ICQxOwogCQkJCQluLT50 eXBlTmFtZSA9ICQyOwotCQkJCQluLT5zdG9yYWdlX25hbWUgPSAkMzsKLQkJCQkJbi0+Y29t cHJlc3Npb24gPSAkNDsKKwkJCQkJbi0+ZW5jcnlwdGlvbiA9ICQzOworCQkJCQluLT5zdG9y YWdlX25hbWUgPSAkNDsKKwkJCQkJbi0+Y29tcHJlc3Npb24gPSAkNTsKIAkJCQkJbi0+aW5o Y291bnQgPSAwOwogCQkJCQluLT5pc19sb2NhbCA9IHRydWU7CiAJCQkJCW4tPmlzX25vdF9u dWxsID0gZmFsc2U7CkBAIC0zODE1LDggKzM4MTksOCBAQCBjb2x1bW5EZWY6CUNvbElkIFR5 cGVuYW1lIG9wdF9jb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX2NvbXByZXNzaW9uIGNyZWF0 ZV9nZW5lcgogCQkJCQluLT5yYXdfZGVmYXVsdCA9IE5VTEw7CiAJCQkJCW4tPmNvb2tlZF9k ZWZhdWx0ID0gTlVMTDsKIAkJCQkJbi0+Y29sbE9pZCA9IEludmFsaWRPaWQ7Ci0JCQkJCW4t PmZkd29wdGlvbnMgPSAkNTsKLQkJCQkJU3BsaXRDb2xRdWFsTGlzdCgkNiwgJm4tPmNvbnN0 cmFpbnRzLCAmbi0+Y29sbENsYXVzZSwKKwkJCQkJbi0+ZmR3b3B0aW9ucyA9ICQ2OworCQkJ CQlTcGxpdENvbFF1YWxMaXN0KCQ3LCAmbi0+Y29uc3RyYWludHMsICZuLT5jb2xsQ2xhdXNl LAogCQkJCQkJCQkJIHl5c2Nhbm5lcik7CiAJCQkJCW4tPmxvY2F0aW9uID0gQDE7CiAJCQkJ CSQkID0gKE5vZGUgKikgbjsKQEAgLTM4NzMsNiArMzg3NywxMSBAQCBvcHRfY29sdW1uX2Nv bXByZXNzaW9uOgogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsK IAorb3B0X2NvbHVtbl9lbmNyeXB0aW9uOgorCQkJRU5DUllQVEVEIFdJVEggJygnIGRlZl9s aXN0ICcpJwkJCXsgJCQgPSAkNDsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBO VUxMOyB9CisJCTsKKwogY29sdW1uX3N0b3JhZ2U6CiAJCQlTVE9SQUdFIENvbElkCQkJCQkJ CXsgJCQgPSAkMjsgfQogCQk7CkBAIC02MzY4LDYgKzYzNzcsMjQgQEAgRGVmaW5lU3RtdDoK IAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsK IAkJCQl9CisJCQl8IENSRUFURSBDT0xVTU4gRU5DUllQVElPTiBLRVkgYW55X25hbWUgV0lU SCBWQUxVRVMgbGlzdF9vZl9kZWZpbml0aW9ucworCQkJCXsKKwkJCQkJRGVmaW5lU3RtdCAq biA9IG1ha2VOb2RlKERlZmluZVN0bXQpOworCisJCQkJCW4tPmtpbmQgPSBPQkpFQ1RfQ0VL OworCQkJCQluLT5kZWZuYW1lcyA9ICQ1OworCQkJCQluLT5kZWZpbml0aW9uID0gJDg7CisJ CQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBDT0xVTU4gTUFTVEVS IEtFWSBhbnlfbmFtZSBXSVRIIGRlZmluaXRpb24KKwkJCQl7CisJCQkJCURlZmluZVN0bXQg Km4gPSBtYWtlTm9kZShEZWZpbmVTdG10KTsKKworCQkJCQluLT5raW5kID0gT0JKRUNUX0NN SzsKKwkJCQkJbi0+ZGVmbmFtZXMgPSAkNTsKKwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ3Owor CQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAKIGRlZmluaXRpb246ICcoJyBk ZWZfbGlzdCAnKScJCQkJCQl7ICQkID0gJDI7IH0KQEAgLTYzODcsNiArNjQxNCwxMCBAQCBk ZWZfZWxlbToJQ29sTGFiZWwgJz0nIGRlZl9hcmcKIAkJCQl9CiAJCTsKIAorbGlzdF9vZl9k ZWZpbml0aW9uczogZGVmaW5pdGlvbgkJCQkJCXsgJCQgPSBsaXN0X21ha2UxKCQxKTsgfQor CQkJfCBsaXN0X29mX2RlZmluaXRpb25zICcsJyBkZWZpbml0aW9uCXsgJCQgPSBsYXBwZW5k KCQxLCAkMyk7IH0KKwkJOworCiAvKiBOb3RlOiBhbnkgc2ltcGxlIGlkZW50aWZpZXIgd2ls bCBiZSByZXR1cm5lZCBhcyBhIHR5cGUgbmFtZSEgKi8KIGRlZl9hcmc6CWZ1bmNfdHlwZQkJ CQkJCXsgJCQgPSAoTm9kZSAqKSAkMTsgfQogCQkJfCByZXNlcnZlZF9rZXl3b3JkCQkJCXsg JCQgPSAoTm9kZSAqKSBtYWtlU3RyaW5nKHBzdHJkdXAoJDEpKTsgfQpAQCAtNjkyMiw2ICs2 OTUzLDggQEAgb2JqZWN0X3R5cGVfbmFtZToKIAogZHJvcF90eXBlX25hbWU6CiAJCQlBQ0NF U1MgTUVUSE9ECQkJCQkJCXsgJCQgPSBPQkpFQ1RfQUNDRVNTX01FVEhPRDsgfQorCQkJfCBD T0xVTU4gRU5DUllQVElPTiBLRVkJCQkJCXsgJCQgPSBPQkpFQ1RfQ0VLOyB9CisJCQl8IENP TFVNTiBNQVNURVIgS0VZCQkJCQkJeyAkJCA9IE9CSkVDVF9DTUs7IH0KIAkJCXwgRVZFTlQg VFJJR0dFUgkJCQkJCQl7ICQkID0gT0JKRUNUX0VWRU5UX1RSSUdHRVI7IH0KIAkJCXwgRVhU RU5TSU9OCQkJCQkJCQl7ICQkID0gT0JKRUNUX0VYVEVOU0lPTjsgfQogCQkJfCBGT1JFSUdO IERBVEFfUCBXUkFQUEVSCQkJCXsgJCQgPSBPQkpFQ1RfRkRXOyB9CkBAIC05MjM4LDYgKzky NzEsMjYgQEAgUmVuYW1lU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2Fy Z3R5cGVzIFJFTkFNRSBUTyBuYW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZIG5hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4g PSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JKRUNU X0NFSzsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJ CW4tPm5ld25hbWUgPSAkODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkk JCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBu YW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5v ZGUoUmVuYW1lU3RtdCk7CisKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9DTUs7CisJ CQkJCW4tPm9iamVjdCA9IChOb2RlICopIG1ha2VTdHJpbmcoJDUpOworCQkJCQluLT5uZXdu YW1lID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9k ZSAqKSBuOworCQkJCX0KIAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIFJFTkFN RSBUTyBuYW1lCiAJCQkJewogCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1l U3RtdCk7CkBAIC0xMDI0Niw2ICsxMDI5OSwyNCBAQCBBbHRlck93bmVyU3RtdDogQUxURVIg QUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJ CQkJCW4tPm5ld293bmVyID0gJDY7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJ CQl8IEFMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBuYW1lIE9XTkVSIFRPIFJvbGVTcGVj CisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3duZXJT dG10KTsKKworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX0NFSzsKKwkJCQkJbi0+b2Jq ZWN0ID0gKE5vZGUgKikgbWFrZVN0cmluZygkNSk7CisJCQkJCW4tPm5ld293bmVyID0gJDg7 CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IEFMVEVSIENPTFVNTiBNQVNU RVIgS0VZIG5hbWUgT1dORVIgVE8gUm9sZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJT dG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0bXQpOworCisJCQkJCW4tPm9iamVjdFR5 cGUgPSBPQkpFQ1RfQ01LOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSBtYWtlU3RyaW5n KCQ1KTsKKwkJCQkJbi0+bmV3b3duZXIgPSAkODsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOwor CQkJCX0KIAkJCXwgQUxURVIgQ09OVkVSU0lPTl9QIGFueV9uYW1lIE9XTkVSIFRPIFJvbGVT cGVjCiAJCQkJewogCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT3du ZXJTdG10KTsKQEAgLTExNDAyLDYgKzExNDczLDM0IEBAIEFsdGVyQ29sbGF0aW9uU3RtdDog QUxURVIgQ09MTEFUSU9OIGFueV9uYW1lIFJFRlJFU0ggVkVSU0lPTl9QCiAJCTsKIAogCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJQUxURVIgQ09MVU1OIEVOQ1JZUFRJ T04gS0VZCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitBbHRlckNvbHVtbkVu Y3J5cHRpb25LZXlTdG10OgorCQkJQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIG5hbWUg QUREX1AgVkFMVUVfUCBkZWZpbml0aW9uCisJCQkJeworCQkJCQlBbHRlckNvbHVtbkVuY3J5 cHRpb25LZXlTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3Rt dCk7CisKKwkJCQkJbi0+Y2VrbmFtZSA9ICQ1OworCQkJCQluLT5pc0Ryb3AgPSBmYWxzZTsK KwkJCQkJbi0+ZGVmaW5pdGlvbiA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ fQorCQkJfCBBTFRFUiBDT0xVTU4gRU5DUllQVElPTiBLRVkgbmFtZSBEUk9QIFZBTFVFX1Ag ZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAq biA9IG1ha2VOb2RlKEFsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQpOworCisJCQkJCW4t PmNla25hbWUgPSAkNTsKKwkJCQkJbi0+aXNEcm9wID0gdHJ1ZTsKKwkJCQkJbi0+ZGVmaW5p dGlvbiA9ICQ4OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKKwogLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKgogICoJCUFMVEVSIFNZU1RFTQpAQCAtMTc3NDYs NiArMTc4NDUsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IEVOQUJMRV9QCiAJCQl8 IEVOQ09ESU5HCiAJCQl8IEVOQ1JZUFRFRAorCQkJfCBFTkNSWVBUSU9OCiAJCQl8IEVOVU1f UAogCQkJfCBFUlJPUl9QCiAJCQl8IEVTQ0FQRQpAQCAtMTc4MTMsNiArMTc5MTMsNyBAQCB1 bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IExPQ0tFRAogCQkJfCBMT0dHRUQKIAkJCXwgTUFQ UElORworCQkJfCBNQVNURVIKIAkJCXwgTUFUQ0gKIAkJCXwgTUFUQ0hFRAogCQkJfCBNQVRF UklBTElaRUQKQEAgLTE4MzE3LDYgKzE4NDE4LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgog CQkJfCBFTkFCTEVfUAogCQkJfCBFTkNPRElORwogCQkJfCBFTkNSWVBURUQKKwkJCXwgRU5D UllQVElPTgogCQkJfCBFTkRfUAogCQkJfCBFTlVNX1AKIAkJCXwgRVJST1JfUApAQCAtMTg0 MjAsNiArMTg1MjIsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExPQ0tFRAogCQkJ fCBMT0dHRUQKIAkJCXwgTUFQUElORworCQkJfCBNQVNURVIKIAkJCXwgTUFUQ0gKIAkJCXwg TUFUQ0hFRAogCQkJfCBNQVRFUklBTElaRUQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9wYXJhbS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3BhcmFtLmMK aW5kZXggZjY2OGFiZmNiMy4uYjQ1YmY0YzQzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3BhcmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Bh cmFtLmMKQEAgLTQ5LDYgKzQ5LDggQEAgdHlwZWRlZiBzdHJ1Y3QgVmFyUGFyYW1TdGF0ZQog ewogCU9pZAkJICAqKnBhcmFtVHlwZXM7CQkvKiBhcnJheSBvZiBwYXJhbWV0ZXIgdHlwZSBP SURzICovCiAJaW50CQkgICAqbnVtUGFyYW1zOwkJLyogbnVtYmVyIG9mIGFycmF5IGVudHJp ZXMgKi8KKwlPaWQJCSAgKipwYXJhbU9yaWdUYmxzOwkvKiB1bmRlcmx5aW5nIHRhYmxlcyAo MCBpZiBub25lKSAqLworCUF0dHJOdW1iZXIgKipwYXJhbU9yaWdDb2xzOyAvKiB1bmRlcmx5 aW5nIGNvbHVtbnMgKDAgaWYgbm9uZSkgKi8KIH0gVmFyUGFyYW1TdGF0ZTsKIAogc3RhdGlj IE5vZGUgKmZpeGVkX3BhcmFtcmVmX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJl ZiAqcHJlZik7CkBAIC01Niw2ICs1OCw3IEBAIHN0YXRpYyBOb2RlICp2YXJpYWJsZV9wYXJh bXJlZl9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpOwogc3RhdGlj IE5vZGUgKnZhcmlhYmxlX2NvZXJjZV9wYXJhbV9ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg UGFyYW0gKnBhcmFtLAogCQkJCQkJCQkJCU9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdl dFR5cGVNb2QsCiAJCQkJCQkJCQkJaW50IGxvY2F0aW9uKTsKK3N0YXRpYyB2b2lkIHZhcmlh YmxlX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbSAq cGFyYW0sIE9pZCBvcmlndGJsLCBBdHRyTnVtYmVyIG9yaWdjb2wpOwogc3RhdGljIGJvb2wg Y2hlY2tfcGFyYW1ldGVyX3Jlc29sdXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIFBhcnNlU3Rh dGUgKnBzdGF0ZSk7CiBzdGF0aWMgYm9vbCBxdWVyeV9jb250YWluc19leHRlcm5fcGFyYW1z X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKIApAQCAtODEsMTUgKzg0LDE5 IEBAIHNldHVwX3BhcnNlX2ZpeGVkX3BhcmFtZXRlcnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAog ICovCiB2b2lkCiBzZXR1cF9wYXJzZV92YXJpYWJsZV9wYXJhbWV0ZXJzKFBhcnNlU3RhdGUg KnBzdGF0ZSwKLQkJCQkJCQkJT2lkICoqcGFyYW1UeXBlcywgaW50ICpudW1QYXJhbXMpCisJ CQkJCQkJCU9pZCAqKnBhcmFtVHlwZXMsIGludCAqbnVtUGFyYW1zLAorCQkJCQkJCQlPaWQg KipwYXJhbU9yaWdUYmxzLCBBdHRyTnVtYmVyICoqcGFyYW1PcmlnQ29scykKIHsKIAlWYXJQ YXJhbVN0YXRlICpwYXJzdGF0ZSA9IHBhbGxvYyhzaXplb2YoVmFyUGFyYW1TdGF0ZSkpOwog CiAJcGFyc3RhdGUtPnBhcmFtVHlwZXMgPSBwYXJhbVR5cGVzOwogCXBhcnN0YXRlLT5udW1Q YXJhbXMgPSBudW1QYXJhbXM7CisJcGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMgPSBwYXJhbU9y aWdUYmxzOworCXBhcnN0YXRlLT5wYXJhbU9yaWdDb2xzID0gcGFyYW1PcmlnQ29sczsKIAlw c3RhdGUtPnBfcmVmX2hvb2tfc3RhdGUgPSAodm9pZCAqKSBwYXJzdGF0ZTsKIAlwc3RhdGUt PnBfcGFyYW1yZWZfaG9vayA9IHZhcmlhYmxlX3BhcmFtcmVmX2hvb2s7CiAJcHN0YXRlLT5w X2NvZXJjZV9wYXJhbV9ob29rID0gdmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2s7CisJcHN0 YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2sgPSB2YXJpYWJsZV9wYXJhbV9hc3NpZ25f b3JpZ19ob29rOwogfQogCiAvKgpAQCAtMTQ1LDE0ICsxNTIsMzYgQEAgdmFyaWFibGVfcGFy YW1yZWZfaG9vayhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogCXsKIAkJ LyogTmVlZCB0byBlbmxhcmdlIHBhcmFtIGFycmF5ICovCiAJCWlmICgqcGFyc3RhdGUtPnBh cmFtVHlwZXMpCisJCXsKIAkJCSpwYXJzdGF0ZS0+cGFyYW1UeXBlcyA9IChPaWQgKikgcmVw YWxsb2MoKnBhcnN0YXRlLT5wYXJhbVR5cGVzLAogCQkJCQkJCQkJCQkJCSBwYXJhbW5vICog c2l6ZW9mKE9pZCkpOworCQkJaWYgKHBhcnN0YXRlLT5wYXJhbU9yaWdUYmxzKQorCQkJCSpw YXJzdGF0ZS0+cGFyYW1PcmlnVGJscyA9IHJlcGFsbG9jKCpwYXJzdGF0ZS0+cGFyYW1Pcmln VGJscywKKwkJCQkJCQkJCQkJCQlwYXJhbW5vICogc2l6ZW9mKE9pZCkpOworCQkJaWYgKHBh cnN0YXRlLT5wYXJhbU9yaWdDb2xzKQorCQkJCSpwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scyA9 IHJlcGFsbG9jKCpwYXJzdGF0ZS0+cGFyYW1PcmlnQ29scywKKwkJCQkJCQkJCQkJCQlwYXJh bW5vICogc2l6ZW9mKEF0dHJOdW1iZXIpKTsKKwkJfQogCQllbHNlCisJCXsKIAkJCSpwYXJz dGF0ZS0+cGFyYW1UeXBlcyA9IChPaWQgKikgcGFsbG9jKHBhcmFtbm8gKiBzaXplb2YoT2lk KSk7CisJCQlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ1RibHMpCisJCQkJKnBhcnN0YXRlLT5w YXJhbU9yaWdUYmxzID0gcGFsbG9jKHBhcmFtbm8gKiBzaXplb2YoT2lkKSk7CisJCQlpZiAo cGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMpCisJCQkJKnBhcnN0YXRlLT5wYXJhbU9yaWdDb2xz ID0gcGFsbG9jKHBhcmFtbm8gKiBzaXplb2YoQXR0ck51bWJlcikpOworCQl9CiAJCS8qIFpl cm8gb3V0IHRoZSBwcmV2aW91c2x5LXVucmVmZXJlbmNlZCBzbG90cyAqLwogCQlNZW1TZXQo KnBhcnN0YXRlLT5wYXJhbVR5cGVzICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCiAJCQkgICAw LAogCQkJICAgKHBhcmFtbm8gLSAqcGFyc3RhdGUtPm51bVBhcmFtcykgKiBzaXplb2YoT2lk KSk7CisJCWlmIChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJCU1lbVNldCgqcGFyc3Rh dGUtPnBhcmFtT3JpZ1RibHMgKyAqcGFyc3RhdGUtPm51bVBhcmFtcywKKwkJCQkgICAwLAor CQkJCSAgIChwYXJhbW5vIC0gKnBhcnN0YXRlLT5udW1QYXJhbXMpICogc2l6ZW9mKE9pZCkp OworCQlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMpCisJCQlNZW1TZXQoKnBhcnN0YXRl LT5wYXJhbU9yaWdDb2xzICsgKnBhcnN0YXRlLT5udW1QYXJhbXMsCisJCQkJICAgMCwKKwkJ CQkgICAocGFyYW1ubyAtICpwYXJzdGF0ZS0+bnVtUGFyYW1zKSAqIHNpemVvZihBdHRyTnVt YmVyKSk7CiAJCSpwYXJzdGF0ZS0+bnVtUGFyYW1zID0gcGFyYW1ubzsKIAl9CiAKQEAgLTI2 MCw2ICsyODksMTggQEAgdmFyaWFibGVfY29lcmNlX3BhcmFtX2hvb2soUGFyc2VTdGF0ZSAq cHN0YXRlLCBQYXJhbSAqcGFyYW0sCiAJcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRpYyB2b2lk Cit2YXJpYWJsZV9wYXJhbV9hc3NpZ25fb3JpZ19ob29rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg UGFyYW0gKnBhcmFtLCBPaWQgb3JpZ3RibCwgQXR0ck51bWJlciBvcmlnY29sKQoreworCVZh clBhcmFtU3RhdGUgKnBhcnN0YXRlID0gKFZhclBhcmFtU3RhdGUgKikgcHN0YXRlLT5wX3Jl Zl9ob29rX3N0YXRlOworCWludAkJCXBhcmFtbm8gPSBwYXJhbS0+cGFyYW1pZDsKKworCWlm IChwYXJzdGF0ZS0+cGFyYW1PcmlnVGJscykKKwkJKCpwYXJzdGF0ZS0+cGFyYW1PcmlnVGJs cylbcGFyYW1ubyAtIDFdID0gb3JpZ3RibDsKKwlpZiAocGFyc3RhdGUtPnBhcmFtT3JpZ0Nv bHMpCisJCSgqcGFyc3RhdGUtPnBhcmFtT3JpZ0NvbHMpW3BhcmFtbm8gLSAxXSA9IG9yaWdj b2w7Cit9CisKIC8qCiAgKiBDaGVjayBmb3IgY29uc2lzdGVudCBhc3NpZ25tZW50IG9mIHZh cmlhYmxlIHBhcmFtZXRlcnMgYWZ0ZXIgY29tcGxldGlvbgogICogb2YgcGFyc2luZyB3aXRo IHBhcnNlX3ZhcmlhYmxlX3BhcmFtZXRlcnMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0 LmMKaW5kZXggMTZhMGZlNTllMi4uMzUzNDY4M2NiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV90YXJnZXQuYwpAQCAtNTk1LDYgKzU5NSwxMiBAQCB0cmFuc2Zvcm1Bc3NpZ25lZEV4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg ZXhwckxvY2F0aW9uKG9yaWdfZXhwcikpKSk7CiAJfQogCisJaWYgKElzQShleHByLCBQYXJh bSkpCisJeworCQlpZiAocHN0YXRlLT5wX3BhcmFtX2Fzc2lnbl9vcmlnX2hvb2spCisJCQlw c3RhdGUtPnBfcGFyYW1fYXNzaWduX29yaWdfaG9vayhwc3RhdGUsIGNhc3ROb2RlKFBhcmFt LCBleHByKSwgUmVsYXRpb25HZXRSZWxpZChwc3RhdGUtPnBfdGFyZ2V0X3JlbGF0aW9uKSwg YXR0cm5vKTsKKwl9CisKIAlwc3RhdGUtPnBfZXhwcl9raW5kID0gc3ZfZXhwcl9raW5kOwog CiAJcmV0dXJuIGV4cHI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bv c3RtYXN0ZXIuYyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jCmluZGV4 IDE2NjRmY2VlMmEuLjFlMGZkZTFkMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcG9zdG1hc3Rlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1h c3Rlci5jCkBAIC0yMjU0LDEyICsyMjU0LDI3IEBAIFByb2Nlc3NTdGFydHVwUGFja2V0KFBv cnQgKnBvcnQsIGJvb2wgc3NsX2RvbmUsIGJvb2wgZ3NzX2RvbmUpCiAJCQkJCQkJCQl2YWxw dHIpLAogCQkJCQkJCSBlcnJoaW50KCJWYWxpZCB2YWx1ZXMgYXJlOiBcImZhbHNlXCIsIDAs IFwidHJ1ZVwiLCAxLCBcImRhdGFiYXNlXCIuIikpKTsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0 cmNtcChuYW1lcHRyLCAiX3BxXy5jb2x1bW5fZW5jcnlwdGlvbiIpID09IDApCisJCQl7CisJ CQkJLyoKKwkJCQkgKiBSaWdodCBub3csIHRoZSBvbmx5IGFjY2VwdGVkIHZhbHVlIGlzICIx Ii4gIFRoaXMgZ2l2ZXMgcm9vbQorCQkJCSAqIHRvIGV4cGFuZCB0aGlzIGludG8gYSB2ZXJz aW9uIG51bWJlciwgZm9yIGV4YW1wbGUuCisJCQkJICovCisJCQkJaWYgKHN0cmNtcCh2YWxw dHIsICIxIikgPT0gMCkKKwkJCQkJcG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCA9 IHRydWU7CisJCQkJZWxzZQorCQkJCQllcmVwb3J0KEZBVEFMLAorCQkJCQkJCShlcnJjb2Rl KEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAorCQkJCQkJCSBlcnJtc2coImlu dmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciBcIiVzXCI6IFwiJXNcIiIsCisJCQkJCQkJCQki Y29sdW1uX2VuY3J5cHRpb24iLAorCQkJCQkJCQkJdmFscHRyKSwKKwkJCQkJCQkgZXJyaGlu dCgiVmFsaWQgdmFsdWVzIGFyZTogMS4iKSkpOworCQkJfQogCQkJZWxzZSBpZiAoc3RybmNt cChuYW1lcHRyLCAiX3BxXy4iLCA1KSA9PSAwKQogCQkJewogCQkJCS8qCiAJCQkJICogQW55 IG9wdGlvbiBiZWdpbm5pbmcgd2l0aCBfcHFfLiBpcyByZXNlcnZlZCBmb3IgdXNlIGFzIGEK LQkJCQkgKiBwcm90b2NvbC1sZXZlbCBvcHRpb24sIGJ1dCBhdCBwcmVzZW50IG5vIHN1Y2gg b3B0aW9ucyBhcmUKLQkJCQkgKiBkZWZpbmVkLgorCQkJCSAqIHByb3RvY29sLWxldmVsIG9w dGlvbi4KIAkJCQkgKi8KIAkJCQl1bnJlY29nbml6ZWRfcHJvdG9jb2xfb3B0aW9ucyA9CiAJ CQkJCWxhcHBlbmQodW5yZWNvZ25pemVkX3Byb3RvY29sX29wdGlvbnMsIHBzdHJkdXAobmFt ZXB0cikpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIvc3Jj L2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDdiZWM0ZTRmZjUuLmM3MDc2NzJmYjgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFj a2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTcxLDYgKzcxLDcgQEAKICNpbmNsdWRlICJ1dGls cy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BzX3N0YXR1cy5oIgogI2luY2x1ZGUg InV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1 ZGUgInV0aWxzL3RpbWVvdXQuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKIApA QCAtNjY1LDYgKzY2Niw4IEBAIHBnX2FuYWx5emVfYW5kX3Jld3JpdGVfdmFycGFyYW1zKFJh d1N0bXQgKnBhcnNldHJlZSwKIAkJCQkJCQkJIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywK IAkJCQkJCQkJIE9pZCAqKnBhcmFtVHlwZXMsCiAJCQkJCQkJCSBpbnQgKm51bVBhcmFtcywK KwkJCQkJCQkJIE9pZCAqKnBhcmFtT3JpZ1RibHMsCisJCQkJCQkJCSBBdHRyTnVtYmVyICoq cGFyYW1PcmlnQ29scywKIAkJCQkJCQkJIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52KQog ewogCVF1ZXJ5CSAgICpxdWVyeTsKQEAgLTY3OSw3ICs2ODIsNyBAQCBwZ19hbmFseXplX2Fu ZF9yZXdyaXRlX3ZhcnBhcmFtcyhSYXdTdG10ICpwYXJzZXRyZWUsCiAJCVJlc2V0VXNhZ2Uo KTsKIAogCXF1ZXJ5ID0gcGFyc2VfYW5hbHl6ZV92YXJwYXJhbXMocGFyc2V0cmVlLCBxdWVy eV9zdHJpbmcsIHBhcmFtVHlwZXMsIG51bVBhcmFtcywKLQkJCQkJCQkJCXF1ZXJ5RW52KTsK KwkJCQkJCQkJCXBhcmFtT3JpZ1RibHMsIHBhcmFtT3JpZ0NvbHMsIHF1ZXJ5RW52KTsKIAog CS8qCiAJICogQ2hlY2sgYWxsIHBhcmFtZXRlciB0eXBlcyBnb3QgZGV0ZXJtaW5lZC4KQEAg LTEzNjMsNiArMTM2Niw4IEBAIGV4ZWNfcGFyc2VfbWVzc2FnZShjb25zdCBjaGFyICpxdWVy eV9zdHJpbmcsCS8qIHN0cmluZyB0byBleGVjdXRlICovCiAJYm9vbAkJaXNfbmFtZWQ7CiAJ Ym9vbAkJc2F2ZV9sb2dfc3RhdGVtZW50X3N0YXRzID0gbG9nX3N0YXRlbWVudF9zdGF0czsK IAljaGFyCQltc2VjX3N0clszMl07CisJT2lkCQkgICAqcGFyYW1PcmlnVGJscyA9IHBhbGxv YyhudW1QYXJhbXMgKiBzaXplb2YoT2lkKSk7CisJQXR0ck51bWJlciAqcGFyYW1PcmlnQ29s cyA9IHBhbGxvYyhudW1QYXJhbXMgKiBzaXplb2YoQXR0ck51bWJlcikpOwogCiAJLyoKIAkg KiBSZXBvcnQgcXVlcnkgdG8gdmFyaW91cyBtb25pdG9yaW5nIGZhY2lsaXRpZXMuCkBAIC0x NDgzLDYgKzE0ODgsOCBAQCBleGVjX3BhcnNlX21lc3NhZ2UoY29uc3QgY2hhciAqcXVlcnlf c3RyaW5nLAkvKiBzdHJpbmcgdG8gZXhlY3V0ZSAqLwogCQkJCQkJCQkJCQkJCQkgIHF1ZXJ5 X3N0cmluZywKIAkJCQkJCQkJCQkJCQkJICAmcGFyYW1UeXBlcywKIAkJCQkJCQkJCQkJCQkJ ICAmbnVtUGFyYW1zLAorCQkJCQkJCQkJCQkJCQkgICZwYXJhbU9yaWdUYmxzLAorCQkJCQkJ CQkJCQkJCQkgICZwYXJhbU9yaWdDb2xzLAogCQkJCQkJCQkJCQkJCQkgIE5VTEwpOwogCiAJ CS8qIERvbmUgd2l0aCB0aGUgc25hcHNob3QgdXNlZCBmb3IgcGFyc2luZyAqLwpAQCAtMTUx Myw2ICsxNTIwLDggQEAgZXhlY19wYXJzZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywJLyogc3RyaW5nIHRvIGV4ZWN1dGUgKi8KIAkJCQkJICAgdW5uYW1lZF9zdG10X2Nv bnRleHQsCiAJCQkJCSAgIHBhcmFtVHlwZXMsCiAJCQkJCSAgIG51bVBhcmFtcywKKwkJCQkJ ICAgcGFyYW1PcmlnVGJscywKKwkJCQkJICAgcGFyYW1PcmlnQ29scywKIAkJCQkJICAgTlVM TCwKIAkJCQkJICAgTlVMTCwKIAkJCQkJICAgQ1VSU09SX09QVF9QQVJBTExFTF9PSywJLyog YWxsb3cgcGFyYWxsZWwgbW9kZSAqLwpAQCAtMTgxMCw2ICsxODE5LDE2IEBAIGV4ZWNfYmlu ZF9tZXNzYWdlKFN0cmluZ0luZm8gaW5wdXRfbWVzc2FnZSkKIAkJCWVsc2UKIAkJCQlwZm9y bWF0ID0gMDsJLyogZGVmYXVsdCA9IHRleHQgKi8KIAorCQkJaWYgKHR5cGVfaXNfZW5jcnlw dGVkKHB0eXBlKSkKKwkJCXsKKwkJCQlpZiAocGZvcm1hdCAmIDB4RjApCisJCQkJCXBmb3Jt YXQgJj0gfjB4RjA7CisJCQkJZWxzZQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShl cnJjb2RlKEVSUkNPREVfUFJPVE9DT0xfVklPTEFUSU9OKSwKKwkJCQkJCQkgZXJybXNnKCJw YXJhbWV0ZXIgY29ycmVzcG9uZHMgdG8gYW4gZW5jcnlwdGVkIGNvbHVtbiwgYnV0IHRoZSBw YXJhbWV0ZXIgdmFsdWUgd2FzIG5vdCBlbmNyeXB0ZWQiKSkpOworCQkJfQorCiAJCQlpZiAo cGZvcm1hdCA9PSAwKQkvKiB0ZXh0IG1vZGUgKi8KIAkJCXsKIAkJCQlPaWQJCQl0eXBpbnB1 dDsKQEAgLTI2MDEsOCArMjYyMCw0NCBAQCBleGVjX2Rlc2NyaWJlX3N0YXRlbWVudF9tZXNz YWdlKGNvbnN0IGNoYXIgKnN0bXRfbmFtZSkKIAlmb3IgKGludCBpID0gMDsgaSA8IHBzcmMt Pm51bV9wYXJhbXM7IGkrKykKIAl7CiAJCU9pZAkJCXB0eXBlID0gcHNyYy0+cGFyYW1fdHlw ZXNbaV07CisJCU9pZAkJCXBjZWtpZCA9IEludmFsaWRPaWQ7CisJCWludAkJCXBjZWthbGcg PSAwOworCQlpbnQxNgkJcGZsYWdzID0gMDsKKworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1u X2VuY3J5cHRpb25fZW5hYmxlZCAmJiB0eXBlX2lzX2VuY3J5cHRlZChwdHlwZSkpCisJCXsK KwkJCU9pZAkJCXBvcmlndGJsID0gcHNyYy0+cGFyYW1fb3JpZ3RibHNbaV07CisJCQlBdHRy TnVtYmVyCXBvcmlnY29sID0gcHNyYy0+cGFyYW1fb3JpZ2NvbHNbaV07CisJCQlIZWFwVHVw bGUJdHA7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBvcmlnX2F0dDsKKworCQkJaWYgKHBvcmln dGJsID09IEludmFsaWRPaWQgfHwgcG9yaWdjb2wgPD0gMCkKKwkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CQkJIGVycm1zZygicGFyYW1ldGVyICVkIGNvcnJlc3BvbmRzIHRvIGFuIGVuY3J5cHRlZCBj b2x1bW4sIGJ1dCBhbiB1bmRlcmx5aW5nIHRhYmxlIGFuZCBjb2x1bW4gY291bGQgbm90IGJl IGRldGVybWluZWQiLCBpKSkpOworCisJCQl0cCA9IFNlYXJjaFN5c0NhY2hlMihBVFROVU0s IE9iamVjdElkR2V0RGF0dW0ocG9yaWd0YmwpLCBJbnQxNkdldERhdHVtKHBvcmlnY29sKSk7 CisJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciBhdHRyaWJ1dGUgJWQgb2YgcmVsYXRpb24gJXUiLCBwb3Jp Z2NvbCwgcG9yaWd0YmwpOworCQkJb3JpZ19hdHQgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdF VFNUUlVDVCh0cCk7CisJCQlwdHlwZSA9IG9yaWdfYXR0LT5hdHRyZWFsdHlwaWQ7CisJCQlw Y2VraWQgPSBvcmlnX2F0dC0+YXR0Y2VrOworCQkJcGNla2FsZyA9IG9yaWdfYXR0LT5hdHRl bmNhbGc7CisJCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCisJCQlpZiAocHNyYy0+cGFyYW1f dHlwZXNbaV0gPT0gUEdfRU5DUllQVEVEX0RFVE9JRCkKKwkJCQlwZmxhZ3MgfD0gMHgwMTsK KworCQkJTWF5YmVTZW5kQ29sdW1uRW5jcnlwdGlvbktleU1lc3NhZ2UocGNla2lkKTsKKwkJ fQogCiAJCXBxX3NlbmRpbnQzMigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgKGludCkgcHR5cGUp OworCQlpZiAoTXlQcm9jUG9ydC0+Y29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJewor CQkJcHFfc2VuZGludDMyKCZyb3dfZGVzY3JpcHRpb25fYnVmLCAoaW50KSBwY2VraWQpOwor CQkJcHFfc2VuZGludDE2KCZyb3dfZGVzY3JpcHRpb25fYnVmLCBwY2VrYWxnKTsKKwkJCXBx X3NlbmRpbnQxNigmcm93X2Rlc2NyaXB0aW9uX2J1ZiwgcGZsYWdzKTsKKwkJfQogCX0KIAlw cV9lbmRtZXNzYWdlX3JldXNlKCZyb3dfZGVzY3JpcHRpb25fYnVmKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYwppbmRleCBhYTAwODE1Nzg3Li41NDlkMzFlNWQ0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpA QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jbHVzdGVyLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvY29sZW5jY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Nv bGxhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvY29udmVyc2lvbmNtZHMuaCIKQEAgLTEzNyw2ICsxMzgsNyBAQCBDbGFz c2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJc3dpdGNo IChub2RlVGFnKHBhcnNldHJlZSkpCiAJewogCQljYXNlIFRfQWx0ZXJDb2xsYXRpb25TdG10 OgorCQljYXNlIFRfQWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKIAkJY2FzZSBUX0Fs dGVyRGF0YWJhc2VSZWZyZXNoQ29sbFN0bXQ6CiAJCWNhc2UgVF9BbHRlckRhdGFiYXNlU2V0 U3RtdDoKIAkJY2FzZSBUX0FsdGVyRGF0YWJhc2VTdG10OgpAQCAtMTQ0MSw2ICsxNDQzLDE0 IEBAIFByb2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJ CQkJCQlzdG10LT5kZWZpbml0aW9uLAogCQkJCQkJCQkJCQkJCQkJJnNlY29uZGFyeU9iamVj dCk7CiAJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DRUs6CisJCQkJCQkJQXNz ZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3JlYXRlQ0VLKHBz dGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CisJCQkJCQljYXNlIE9CSkVDVF9DTUs6CisJ CQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKKwkJCQkJCQlhZGRyZXNzID0gQ3Jl YXRlQ01LKHBzdGF0ZSwgc3RtdCk7CisJCQkJCQkJYnJlYWs7CiAJCQkJCQljYXNlIE9CSkVD VF9DT0xMQVRJT046CiAJCQkJCQkJQXNzZXJ0KHN0bXQtPmFyZ3MgPT0gTklMKTsKIAkJCQkJ CQlhZGRyZXNzID0gRGVmaW5lQ29sbGF0aW9uKHBzdGF0ZSwKQEAgLTE5MDMsNiArMTkxMywx MCBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCWFkZHJl c3MgPSBBbHRlckNvbGxhdGlvbigoQWx0ZXJDb2xsYXRpb25TdG10ICopIHBhcnNldHJlZSk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9BbHRlckNvbHVtbkVuY3J5cHRpb25LZXlTdG10 OgorCQkJCWFkZHJlc3MgPSBBbHRlckNvbHVtbkVuY3J5cHRpb25LZXkocHN0YXRlLCAoQWx0 ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJyZWFrOwor CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBl OiAlZCIsCiAJCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpAQCAtMjIyNSw2ICsy MjM5LDEyIEBAIEFsdGVyT2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBl KQogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfVEFCTEU7 CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfQ0VLOgorCQkJdGFnID0gQ01EVEFHX0FMVEVS X0NPTFVNTl9FTkNSWVBUSU9OX0tFWTsKKwkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9DTUs6 CisJCQl0YWcgPSBDTURUQUdfQUxURVJfQ09MVU1OX01BU1RFUl9LRVk7CisJCQlicmVhazsK IAkJY2FzZSBPQkpFQ1RfQ09OVkVSU0lPTjoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9DT05W RVJTSU9OOwogCQkJYnJlYWs7CkBAIC0yNjQwLDYgKzI2NjAsMTIgQEAgQ3JlYXRlQ29tbWFu ZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoK IAkJCQkJdGFnID0gQ01EVEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJ Y2FzZSBPQkpFQ1RfQ0VLOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9DT0xVTU5fRU5DUllQ VElPTl9LRVk7CisJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0NNSzoKKwkJCQkJdGFn ID0gQ01EVEFHX0RST1BfQ09MVU1OX01BU1RFUl9LRVk7CisJCQkJCWJyZWFrOwogCQkJCWRl ZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMjc2MCw2ICsy Nzg2LDEyIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2Ug T0JKRUNUX0NPTExBVElPTjoKIAkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xMQVRJT047 CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNUX0NFSzoKKwkJCQkJdGFnID0gQ01EVEFH X0NSRUFURV9DT0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQkJCWJyZWFrOworCQkJCWNhc2Ug T0JKRUNUX0NNSzoKKwkJCQkJdGFnID0gQ01EVEFHX0NSRUFURV9DT0xVTU5fTUFTVEVSX0tF WTsKKwkJCQkJYnJlYWs7CiAJCQkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJCQkJ dGFnID0gQ01EVEFHX0NSRUFURV9BQ0NFU1NfTUVUSE9EOwogCQkJCQlicmVhazsKQEAgLTMw NjMsNiArMzA5NSwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJ CXRhZyA9IENNRFRBR19BTFRFUl9DT0xMQVRJT047CiAJCQlicmVhazsKIAorCQljYXNlIFRf QWx0ZXJDb2x1bW5FbmNyeXB0aW9uS2V5U3RtdDoKKwkJCXRhZyA9IENNRFRBR19BTFRFUl9D T0xVTU5fRU5DUllQVElPTl9LRVk7CisJCQlicmVhazsKKwogCQljYXNlIFRfUHJlcGFyZVN0 bXQ6CiAJCQl0YWcgPSBDTURUQUdfUFJFUEFSRTsKIAkJCWJyZWFrOwpAQCAtMzIxNyw3ICsz MjUzLDcgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQlicmVhazsK IAogCQlkZWZhdWx0OgotCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlw ZTogJWQiLAorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwK IAkJCQkgKGludCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKIAkJCXRhZyA9IENNRFRBR19VTktO T1dOOwogCQkJYnJlYWs7CkBAIC0zNjg4LDYgKzM3MjQsMTAgQEAgR2V0Q29tbWFuZExvZ0xl dmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWxldiA9IExPR1NUTVRfRERMOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBUX0FsdGVyQ29sdW1uRW5jcnlwdGlvbktleVN0bXQ6CisJCQlsZXYgPSBM T0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCQkvKiBhbHJlYWR5LXBsYW5uZWQgcXVlcmll cyAqLwogCQljYXNlIFRfUGxhbm5lZFN0bXQ6CiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Fy cmF5ZnVuY3MuYwppbmRleCA0OTVlNDQ5YTllLi40MDVmMDhhOWIzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAgLTMzODYsNiArMzM4Niw3IEBAIGNvbnN0cnVjdF9h cnJheV9idWlsdGluKERhdHVtICplbGVtcywgaW50IG5lbGVtcywgT2lkIGVsbXR5cGUpCiAJ CQlicmVhazsKIAogCQljYXNlIE9JRE9JRDoKKwkJY2FzZSBSRUdDTEFTU09JRDoKIAkJY2Fz ZSBSRUdUWVBFT0lEOgogCQkJZWxtbGVuID0gc2l6ZW9mKE9pZCk7CiAJCQllbG1ieXZhbCA9 IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGExNmE2M2Y0 OTUuLjFlMjNlYmIzOWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBA IC0yNCw3ICsyNCw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbW9wLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hbXByb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX2xhbmd1YWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKQEAg LTI2NTgsNiArMjY2MCwyNSBAQCB0eXBlX2lzX211bHRpcmFuZ2UoT2lkIHR5cGlkKQogCXJl dHVybiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZUFRZUEVfTVVMVElSQU5HRSk7CiB9CiAK K2Jvb2wKK3R5cGVfaXNfZW5jcnlwdGVkKE9pZCB0eXBpZCkKK3sKKwlIZWFwVHVwbGUJdHA7 CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShUWVBFT0lELCBPYmplY3RJZEdldERhdHVtKHR5 cGlkKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCXsKKwkJRm9ybV9wZ190eXBl IHR5cHR1cCA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisJCWJvb2wJCXJlc3Vs dDsKKworCQlyZXN1bHQgPSAodHlwdHVwLT50eXBjYXRlZ29yeSA9PSBUWVBDQVRFR09SWV9F TkNSWVBURUQpOworCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCQlyZXR1cm4gcmVzdWx0Owor CX0KKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAqIGdldF90eXBlX2NhdGVn b3J5X3ByZWZlcnJlZAogICoKQEAgLTM2NzksMyArMzcwMCw3NSBAQCBnZXRfc3Vic2NyaXB0 aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAlyZXR1cm4gc3VibmFt ZTsKIH0KKworT2lkCitnZXRfY2VrX29pZChjb25zdCBjaGFyICpjZWtuYW1lLCBib29sIG1p c3Npbmdfb2spCit7CisJT2lkCQkJb2lkOworCisJb2lkID0gR2V0U3lzQ2FjaGVPaWQxKENF S05BTUUsIEFudW1fcGdfY29sZW5ja2V5X29pZCwKKwkJCQkJCSAgQ1N0cmluZ0dldERhdHVt KGNla25hbWUpKTsKKwlpZiAoIU9pZElzVmFsaWQob2lkKSAmJiAhbWlzc2luZ19vaykKKwkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1Qp LAorCQkJCSBlcnJtc2coImNvbHVtbiBlbmNyeXB0aW9uIGtleSBcIiVzXCIgZG9lcyBub3Qg ZXhpc3QiLCBjZWtuYW1lKSkpOworCXJldHVybiBvaWQ7Cit9CisKK2NoYXIgKgorZ2V0X2Nl a19uYW1lKE9pZCBjZWtpZCwgYm9vbCBtaXNzaW5nX29rKQoreworCUhlYXBUdXBsZQl0dXA7 CisJY2hhcgkgICAqY2VrbmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDRUtPSUQs IE9iamVjdElkR2V0RGF0dW0oY2VraWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXApKQorCXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBlbmNyeXB0aW9uIGtleSAldSIsIGNla2lkKTsKKwkJ cmV0dXJuIE5VTEw7CisJfQorCisJY2VrbmFtZSA9IHBzdHJkdXAoTmFtZVN0cigoKEZvcm1f cGdfY29sZW5ja2V5KSBHRVRTVFJVQ1QodHVwKSktPmNla25hbWUpKTsKKworCVJlbGVhc2VT eXNDYWNoZSh0dXApOworCisJcmV0dXJuIGNla25hbWU7Cit9CisKK09pZAorZ2V0X2Nta19v aWQoY29uc3QgY2hhciAqY21rbmFtZSwgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCW9p ZDsKKworCW9pZCA9IEdldFN5c0NhY2hlT2lkMShDTUtOQU1FLCBBbnVtX3BnX2NvbG1hc3Rl cmtleV9vaWQsCisJCQkJCQkgIENTdHJpbmdHZXREYXR1bShjbWtuYW1lKSk7CisJaWYgKCFP aWRJc1ZhbGlkKG9pZCkgJiYgIW1pc3Npbmdfb2spCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNnKCJjb2x1 bW4gbWFzdGVyIGtleSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjbWtuYW1lKSkpOworCXJl dHVybiBvaWQ7Cit9CisKK2NoYXIgKgorZ2V0X2Nta19uYW1lKE9pZCBjbWtpZCwgYm9vbCBt aXNzaW5nX29rKQoreworCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkgICAqY21rbmFtZTsKKwor CXR1cCA9IFNlYXJjaFN5c0NhY2hlMShDTUtPSUQsIE9iamVjdElkR2V0RGF0dW0oY21raWQp KTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCXsKKwkJaWYgKCFtaXNzaW5n X29rKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGNvbHVtbiBt YXN0ZXIga2V5ICV1IiwgY21raWQpOworCQlyZXR1cm4gTlVMTDsKKwl9CisKKwljbWtuYW1l ID0gcHN0cmR1cChOYW1lU3RyKCgoRm9ybV9wZ19jb2xtYXN0ZXJrZXkpIEdFVFNUUlVDVCh0 dXApKS0+Y21rbmFtZSkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4g Y21rbmFtZTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5j YWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggMGQ2 YTI5NTY3NC4uZjY4OTNkZDhiNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hl LmMKQEAgLTM0MCw2ICszNDAsOCBAQCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2FjaGVkUGxhblNv dXJjZSAqcGxhbnNvdXJjZSwKIAkJCQkgICBNZW1vcnlDb250ZXh0IHF1ZXJ5dHJlZV9jb250 ZXh0LAogCQkJCSAgIE9pZCAqcGFyYW1fdHlwZXMsCiAJCQkJICAgaW50IG51bV9wYXJhbXMs CisJCQkJICAgT2lkICpwYXJhbV9vcmlndGJscywKKwkJCQkgICBBdHRyTnVtYmVyICpwYXJh bV9vcmlnY29scywKIAkJCQkgICBQYXJzZXJTZXR1cEhvb2sgcGFyc2VyU2V0dXAsCiAJCQkJ ICAgdm9pZCAqcGFyc2VyU2V0dXBBcmcsCiAJCQkJICAgaW50IGN1cnNvcl9vcHRpb25zLApA QCAtNDE5LDYgKzQyMSwxNCBAQCBDb21wbGV0ZUNhY2hlZFBsYW4oQ2FjaGVkUGxhblNvdXJj ZSAqcGxhbnNvdXJjZSwKIAl7CiAJCXBsYW5zb3VyY2UtPnBhcmFtX3R5cGVzID0gKE9pZCAq KSBwYWxsb2MobnVtX3BhcmFtcyAqIHNpemVvZihPaWQpKTsKIAkJbWVtY3B5KHBsYW5zb3Vy Y2UtPnBhcmFtX3R5cGVzLCBwYXJhbV90eXBlcywgbnVtX3BhcmFtcyAqIHNpemVvZihPaWQp KTsKKworCQlwbGFuc291cmNlLT5wYXJhbV9vcmlndGJscyA9IChPaWQgKikgcGFsbG9jMChu dW1fcGFyYW1zICogc2l6ZW9mKE9pZCkpOworCQlpZiAocGFyYW1fb3JpZ3RibHMpCisJCQlt ZW1jcHkocGxhbnNvdXJjZS0+cGFyYW1fb3JpZ3RibHMsIHBhcmFtX29yaWd0YmxzLCBudW1f cGFyYW1zICogc2l6ZW9mKE9pZCkpOworCisJCXBsYW5zb3VyY2UtPnBhcmFtX29yaWdjb2xz ID0gKEF0dHJOdW1iZXIgKikgcGFsbG9jMChudW1fcGFyYW1zICogc2l6ZW9mKEF0dHJOdW1i ZXIpKTsKKwkJaWYgKHBhcmFtX29yaWdjb2xzKQorCQkJbWVtY3B5KHBsYW5zb3VyY2UtPnBh cmFtX29yaWdjb2xzLCBwYXJhbV9vcmlnY29scywgbnVtX3BhcmFtcyAqIHNpemVvZihBdHRy TnVtYmVyKSk7CiAJfQogCWVsc2UKIAkJcGxhbnNvdXJjZS0+cGFyYW1fdHlwZXMgPSBOVUxM OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL3N5c2NhY2hlLmMKaW5kZXggZWVjNjQ0ZWM4NC4uNjMz N2YyN2JmYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvc3lzY2FjaGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9zeXNjYWNoZS5jCkBAIC0yOSw3ICsy OSwxMCBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aF9tZW1iZXJzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfY29sZW5ja2V5ZGF0YS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xtYXN0ZXJrZXkuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2NvbnN0cmFpbnQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnZlcnNpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2RhdGFiYXNlLmgiCkBAIC0yNjcsNiArMjcwLDQz IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY2FjaGVkZXNjIGNhY2hlaW5mb1tdID0gewogCQl9 LAogCQkyNTYKIAl9LAorCXsKKwkJQ29sdW1uRW5jS2V5RGF0YVJlbGF0aW9uSWQsIC8qIENF S0RBVEFDRUtDTUsgKi8KKwkJQ29sdW1uRW5jS2V5Q2VraWRDbWtpZEluZGV4SWQsCisJCTIs CisJCXsKKwkJCUFudW1fcGdfY29sZW5ja2V5ZGF0YV9ja2RjZWtpZCwKKwkJCUFudW1fcGdf Y29sZW5ja2V5ZGF0YV9ja2RjbWtpZCwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5F bmNLZXlEYXRhUmVsYXRpb25JZCwgLyogQ0VLREFUQU9JRCAqLworCQlDb2x1bW5FbmNLZXlE YXRhT2lkSW5kZXhJZCwKKwkJMSwKKwkJeworCQkJQW51bV9wZ19jb2xlbmNrZXlkYXRhX29p ZCwKKwkJfSwKKwkJOAorCX0sCisJeworCQlDb2x1bW5FbmNLZXlSZWxhdGlvbklkLCAvKiBD RUtOQU1FICovCisJCUNvbHVtbkVuY0tleU5hbWVJbmRleElkLAorCQkxLAorCQl7CisJCQlB bnVtX3BnX2NvbGVuY2tleV9jZWtuYW1lLAorCQl9LAorCQk4CisJfSwKKwl7CisJCUNvbHVt bkVuY0tleVJlbGF0aW9uSWQsIC8qIENFS09JRCAqLworCQlDb2x1bW5FbmNLZXlPaWRJbmRl eElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2NvbGVuY2tleV9vaWQsCisJCX0sCisJCTgK Kwl9LAogCXtPcGVyYXRvckNsYXNzUmVsYXRpb25JZCwJLyogQ0xBQU1OQU1FTlNQICovCiAJ CU9wY2xhc3NBbU5hbWVOc3BJbmRleElkLAogCQkzLApAQCAtMjg5LDYgKzMyOSwyNCBAQCBz dGF0aWMgY29uc3Qgc3RydWN0IGNhY2hlZGVzYyBjYWNoZWluZm9bXSA9IHsKIAkJfSwKIAkJ OAogCX0sCisJeworCQlDb2x1bW5NYXN0ZXJLZXlSZWxhdGlvbklkLCAvKiBDTUtOQU1FICov CisJCUNvbHVtbk1hc3RlcktleU5hbWVJbmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3Bn X2NvbG1hc3RlcmtleV9jbWtuYW1lLAorCQl9LAorCQk4CisJfSwKKwl7CisJCUNvbHVtbk1h c3RlcktleVJlbGF0aW9uSWQsCS8qIENNS09JRCAqLworCQlDb2x1bW5NYXN0ZXJLZXlPaWRJ bmRleElkLAorCQkxLAorCQl7CisJCQlBbnVtX3BnX2NvbG1hc3RlcmtleV9vaWQsCisJCX0s CisJCTgKKwl9LAogCXtDb2xsYXRpb25SZWxhdGlvbklkLAkJLyogQ09MTE5BTUVFTkNOU1Ag Ki8KIAkJQ29sbGF0aW9uTmFtZUVuY05zcEluZGV4SWQsCiAJCTMsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9tYi9tYnV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9tYi9t YnV0aWxzLmMKaW5kZXggMDU0M2M1NzRjNi4uZGU4MzdlYzNjZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWIvbWJ1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21i L21idXRpbHMuYwpAQCAtMzYsNyArMzYsOSBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3Qu aCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImxpYnBxL2xp YnBxLWJlLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKKyNpbmNsdWRlICJtaXNjYWRt aW4uaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL21l bXV0aWxzLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAgLTEyOSw2ICsxMzEs MTIgQEAgUHJlcGFyZUNsaWVudEVuY29kaW5nKGludCBlbmNvZGluZykKIAkJZW5jb2Rpbmcg PT0gUEdfU1FMX0FTQ0lJKQogCQlyZXR1cm4gMDsKIAorCS8qCisJICogQ2Fubm90IGRvIGNv bnZlcnNpb24gd2hlbiBjb2x1bW4gZW5jcnlwdGlvbiBpcyBlbmFibGVkLgorCSAqLworCWlm IChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlyZXR1cm4gLTE7 CisKIAlpZiAoSXNUcmFuc2FjdGlvblN0YXRlKCkpCiAJewogCQkvKgpAQCAtMjM2LDYgKzI0 NCwxMiBAQCBTZXRDbGllbnRFbmNvZGluZyhpbnQgZW5jb2RpbmcpCiAJCXJldHVybiAwOwog CX0KIAorCS8qCisJICogQ2Fubm90IGRvIGNvbnZlcnNpb24gd2hlbiBjb2x1bW4gZW5jcnlw dGlvbiBpcyBlbmFibGVkLgorCSAqLworCWlmIChNeVByb2NQb3J0LT5jb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQlyZXR1cm4gLTE7CisKIAkvKgogCSAqIFNlYXJjaCB0aGUgY2Fj aGUgZm9yIHRoZSBlbnRyeSBwcmV2aW91c2x5IHByZXBhcmVkIGJ5CiAJICogUHJlcGFyZUNs aWVudEVuY29kaW5nOyBpZiB0aGVyZSBpc24ndCBvbmUsIHdlIGxvc2UuICBXaGlsZSBhdCBp dCwKQEAgLTI5Niw3ICszMTAsOSBAQCBJbml0aWFsaXplQ2xpZW50RW5jb2Rpbmcodm9pZCkK IAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVy cm1zZygiY29udmVyc2lvbiBiZXR3ZWVuICVzIGFuZCAlcyBpcyBub3Qgc3VwcG9ydGVkIiwK IAkJCQkJCXBnX2VuYzJuYW1lX3RibFtwZW5kaW5nX2NsaWVudF9lbmNvZGluZ10ubmFtZSwK LQkJCQkJCUdldERhdGFiYXNlRW5jb2RpbmdOYW1lKCkpKSk7CisJCQkJCQlHZXREYXRhYmFz ZUVuY29kaW5nTmFtZSgpKSwKKwkJCQkgKE15UHJvY1BvcnQtPmNvbHVtbl9lbmNyeXB0aW9u X2VuYWJsZWQpID8KKwkJCQkgZXJyZGV0YWlsKCJFbmNvZGluZyBjb252ZXJzaW9uIGlzIG5v dCBwb3NzaWJsZSB3aGVuIGNvbHVtbiBlbmNyeXB0aW9uIGlzIGVuYWJsZWQuIikgOiAwKSk7 CiAJfQogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3Ny Yy9iaW4vcGdfZHVtcC9jb21tb24uYwppbmRleCA3OTRlNmU3Y2U5Li41NjE1YjkzNjAzIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbW1vbi5jCkBAIC0yMDEsNiArMjAxLDEyIEBAIGdldFNjaGVtYURhdGEoQXJjaGl2 ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgdXNl ci1kZWZpbmVkIGNvbGxhdGlvbnMiKTsKIAkodm9pZCkgZ2V0Q29sbGF0aW9ucyhmb3V0LCAm bnVtQ29sbGF0aW9ucyk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyBjb2x1bW4gbWFzdGVy IGtleXMiKTsKKwlnZXRDb2x1bW5NYXN0ZXJLZXlzKGZvdXQpOworCisJcGdfbG9nX2luZm8o InJlYWRpbmcgY29sdW1uIGVuY3J5cHRpb24ga2V5cyIpOworCWdldENvbHVtbkVuY3J5cHRp b25LZXlzKGZvdXQpOworCiAJcGdfbG9nX2luZm8oInJlYWRpbmcgdXNlci1kZWZpbmVkIGNv bnZlcnNpb25zIik7CiAJZ2V0Q29udmVyc2lvbnMoZm91dCwgJm51bUNvbnZlcnNpb25zKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cC5oCmluZGV4IGZjYzVmNmJkMDUuLjQ3YmE5OGVmZjMgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwLmgKQEAgLTg0LDYgKzg0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2Nvbm5Q YXJhbXMKIAljaGFyCSAgICpwZ2hvc3Q7CiAJY2hhcgkgICAqdXNlcm5hbWU7CiAJdHJpdmFs dWUJcHJvbXB0UGFzc3dvcmQ7CisJaW50CQkJY29sdW1uX2VuY3J5cHRpb247CiAJLyogSWYg bm90IE5VTEwsIHRoaXMgb3ZlcnJpZGVzIHRoZSBkYm5hbWUgb2J0YWluZWQgZnJvbSBjb21t YW5kIGxpbmUgKi8KIAkvKiAoYnV0ICpvbmx5KiB0aGUgREIgbmFtZSwgbm90IGFueXRoaW5n IGVsc2UgaW4gdGhlIGNvbm5zdHJpbmcpICovCiAJY2hhcgkgICAqb3ZlcnJpZGVfZGJuYW1l OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDIzMzE5OGFmYzAu LjhhMmJkN2ZiOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJj aGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAg LTM0MTEsNiArMzQxMSw4IEBAIF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZlciBi dWYsIFRvY0VudHJ5ICp0ZSkKIAogCS8qIG9iamVjdHMgdGhhdCBkb24ndCByZXF1aXJlIHNw ZWNpYWwgZGVjb3JhdGlvbiAqLwogCWlmIChzdHJjbXAodHlwZSwgIkNPTExBVElPTiIpID09 IDAgfHwKKwkJc3RyY21wKHR5cGUsICJDT0xVTU4gRU5DUllQVElPTiBLRVkiKSA9PSAwIHx8 CisJCXN0cmNtcCh0eXBlLCAiQ09MVU1OIE1BU1RFUiBLRVkiKSA9PSAwIHx8CiAJCXN0cmNt cCh0eXBlLCAiQ09OVkVSU0lPTiIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJET01BSU4i KSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEFCTEUiKSA9PSAwIHx8CkBAIC0zNTg4LDYg KzM1OTAsOCBAQCBfcHJpbnRUb2NFbnRyeShBcmNoaXZlSGFuZGxlICpBSCwgVG9jRW50cnkg KnRlLCBib29sIGlzRGF0YSkKIAkJaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIkFHR1JFR0FURSIp ID09IDAgfHwKIAkJCXN0cmNtcCh0ZS0+ZGVzYywgIkJMT0IiKSA9PSAwIHx8CiAJCQlzdHJj bXAodGUtPmRlc2MsICJDT0xMQVRJT04iKSA9PSAwIHx8CisJCQlzdHJjbXAodGUtPmRlc2Ms ICJDT0xVTU4gRU5DUllQVElPTiBLRVkiKSA9PSAwIHx8CisJCQlzdHJjbXAodGUtPmRlc2Ms ICJDT0xVTU4gTUFTVEVSIEtFWSIpID09IDAgfHwKIAkJCXN0cmNtcCh0ZS0+ZGVzYywgIkNP TlZFUlNJT04iKSA9PSAwIHx8CiAJCQlzdHJjbXAodGUtPmRlc2MsICJEQVRBQkFTRSIpID09 IDAgfHwKIAkJCXN0cmNtcCh0ZS0+ZGVzYywgIkRPTUFJTiIpID09IDAgfHwKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfZGIuYyBiL3NyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXBfZGIuYwppbmRleCAyOGJhYTY4ZmQ0Li45NjBjM2YzOWE5IDEwMDY0NAotLS0g YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2RiLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9kYi5jCkBAIC0xMzMsOCArMTMzLDggQEAgQ29ubmVjdERhdGFiYXNlKEFy Y2hpdmUgKkFIWCwKIAkgKi8KIAlkbwogCXsKLQkJY29uc3QgY2hhciAqa2V5d29yZHNbOF07 Ci0JCWNvbnN0IGNoYXIgKnZhbHVlc1s4XTsKKwkJY29uc3QgY2hhciAqa2V5d29yZHNbOV07 CisJCWNvbnN0IGNoYXIgKnZhbHVlc1s5XTsKIAkJaW50CQkJaSA9IDA7CiAKIAkJLyoKQEAg LTE1OSw2ICsxNTksMTEgQEAgQ29ubmVjdERhdGFiYXNlKEFyY2hpdmUgKkFIWCwKIAkJfQog CQlrZXl3b3Jkc1tpXSA9ICJmYWxsYmFja19hcHBsaWNhdGlvbl9uYW1lIjsKIAkJdmFsdWVz W2krK10gPSBwcm9nbmFtZTsKKwkJaWYgKGNwYXJhbXMtPmNvbHVtbl9lbmNyeXB0aW9uKQor CQl7CisJCQlrZXl3b3Jkc1tpXSA9ICJjb2x1bW5fZW5jcnlwdGlvbiI7CisJCQl2YWx1ZXNb aSsrXSA9ICIxIjsKKwkJfQogCQlrZXl3b3Jkc1tpXSA9IE5VTEw7CiAJCXZhbHVlc1tpKytd ID0gTlVMTDsKIAkJQXNzZXJ0KGkgPD0gbGVuZ3Rob2Yoa2V5d29yZHMpKTsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jCmluZGV4IGQyNTcwOWFkNWYuLjVmMTYyYzY5OGIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAt NDcsNiArNDcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkX2QuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2Nhc3RfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfY2xhc3Nf ZC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sZW5ja2V5LmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19kZWZhdWx0X2FjbF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJnZW9i amVjdF9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19sYXJnZW9iamVjdF9tZXRhZGF0YV9k LmgiCkBAIC0yMjUsNiArMjI2LDggQEAgc3RhdGljIHZvaWQgZHVtcEFjY2Vzc01ldGhvZChB cmNoaXZlICpmb3V0LCBjb25zdCBBY2Nlc3NNZXRob2RJbmZvICpvcHJpbmZvKTsKIHN0YXRp YyB2b2lkIGR1bXBPcGNsYXNzKEFyY2hpdmUgKmZvdXQsIGNvbnN0IE9wY2xhc3NJbmZvICpv cGNpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBPcGZhbWlseShBcmNoaXZlICpmb3V0LCBjb25z dCBPcGZhbWlseUluZm8gKm9wZmluZm8pOwogc3RhdGljIHZvaWQgZHVtcENvbGxhdGlvbihB cmNoaXZlICpmb3V0LCBjb25zdCBDb2xsSW5mbyAqY29sbGluZm8pOworc3RhdGljIHZvaWQg ZHVtcENvbHVtbkVuY3J5cHRpb25LZXkoQXJjaGl2ZSAqZm91dCwgY29uc3QgQ2VrSW5mbyAq Y2VraW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wQ29sdW1uTWFzdGVyS2V5KEFyY2hpdmUgKmZv dXQsIGNvbnN0IENta0luZm8gKmNla2luZm8pOwogc3RhdGljIHZvaWQgZHVtcENvbnZlcnNp b24oQXJjaGl2ZSAqZm91dCwgY29uc3QgQ29udkluZm8gKmNvbnZpbmZvKTsKIHN0YXRpYyB2 b2lkIGR1bXBSdWxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFJ1bGVJbmZvICpyaW5mbyk7CiBz dGF0aWMgdm9pZCBkdW1wQWdnKEFyY2hpdmUgKmZvdXQsIGNvbnN0IEFnZ0luZm8gKmFnZ2lu Zm8pOwpAQCAtMzg0LDYgKzM4Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQog CQl7ImF0dHJpYnV0ZS1pbnNlcnRzIiwgbm9fYXJndW1lbnQsICZkb3B0LmNvbHVtbl9pbnNl cnRzLCAxfSwKIAkJeyJiaW5hcnktdXBncmFkZSIsIG5vX2FyZ3VtZW50LCAmZG9wdC5iaW5h cnlfdXBncmFkZSwgMX0sCiAJCXsiY29sdW1uLWluc2VydHMiLCBub19hcmd1bWVudCwgJmRv cHQuY29sdW1uX2luc2VydHMsIDF9LAorCQl7ImRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMi LCBub19hcmd1bWVudCwgJmRvcHQuY3BhcmFtcy5jb2x1bW5fZW5jcnlwdGlvbiwgMX0sCiAJ CXsiZGlzYWJsZS1kb2xsYXItcXVvdGluZyIsIG5vX2FyZ3VtZW50LCAmZG9wdC5kaXNhYmxl X2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJeyJkaXNhYmxlLXRyaWdnZXJzIiwgbm9fYXJndW1l bnQsICZkb3B0LmRpc2FibGVfdHJpZ2dlcnMsIDF9LAogCQl7ImVuYWJsZS1yb3ctc2VjdXJp dHkiLCBub19hcmd1bWVudCwgJmRvcHQuZW5hYmxlX3Jvd19zZWN1cml0eSwgMX0sCkBAIC02 NzYsNiArNjgwLDkgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJICogLS1pbnNl cnRzIGFyZSBhbHJlYWR5IGltcGxpZWQgYWJvdmUgaWYgLS1jb2x1bW4taW5zZXJ0cyBvcgog CSAqIC0tcm93cy1wZXItaW5zZXJ0IHdlcmUgc3BlY2lmaWVkLgogCSAqLworCWlmIChkb3B0 LmNwYXJhbXMuY29sdW1uX2VuY3J5cHRpb24gJiYgZG9wdC5kdW1wX2luc2VydHMgPT0gMCkK KwkJcGdfZmF0YWwoIm9wdGlvbiAtLWRlY3J5cHRfZW5jcnlwdGVkX2NvbHVtbnMgcmVxdWly ZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNlcnQsIG9yIC0tY29sdW1uLWlu c2VydHMiKTsKKwogCWlmIChkb3B0LmRvX25vdGhpbmcgJiYgZG9wdC5kdW1wX2luc2VydHMg PT0gMCkKIAkJcGdfZmF0YWwoIm9wdGlvbiAtLW9uLWNvbmZsaWN0LWRvLW5vdGhpbmcgcmVx dWlyZXMgb3B0aW9uIC0taW5zZXJ0cywgLS1yb3dzLXBlci1pbnNlcnQsIG9yIC0tY29sdW1u LWluc2VydHMiKTsKIApAQCAtMTAyMSw2ICsxMDI4LDcgQEAgaGVscChjb25zdCBjaGFyICpw cm9nbmFtZSkKIAlwcmludGYoXygiICAteCwgLS1uby1wcml2aWxlZ2VzICAgICAgICAgIGRv IG5vdCBkdW1wIHByaXZpbGVnZXMgKGdyYW50L3Jldm9rZSlcbiIpKTsKIAlwcmludGYoXygi ICAtLWJpbmFyeS11cGdyYWRlICAgICAgICAgICAgIGZvciB1c2UgYnkgdXBncmFkZSB1dGls aXRpZXMgb25seVxuIikpOwogCXByaW50ZihfKCIgIC0tY29sdW1uLWluc2VydHMgICAgICAg ICAgICAgZHVtcCBkYXRhIGFzIElOU0VSVCBjb21tYW5kcyB3aXRoIGNvbHVtbiBuYW1lc1xu IikpOworCXByaW50ZihfKCIgIC0tZGVjcnlwdC1lbmNyeXB0ZWQtY29sdW1ucyAgZGVjcnlw dCBlbmNyeXB0ZWQgY29sdW1ucyBpbiB0aGUgb3V0cHV0XG4iKSk7CiAJcHJpbnRmKF8oIiAg LS1kaXNhYmxlLWRvbGxhci1xdW90aW5nICAgICBkaXNhYmxlIGRvbGxhciBxdW90aW5nLCB1 c2UgU1FMIHN0YW5kYXJkIHF1b3RpbmdcbiIpKTsKIAlwcmludGYoXygiICAtLWRpc2FibGUt dHJpZ2dlcnMgICAgICAgICAgIGRpc2FibGUgdHJpZ2dlcnMgZHVyaW5nIGRhdGEtb25seSBy ZXN0b3JlXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1lbmFibGUtcm93LXNlY3VyaXR5ICAgICAg ICBlbmFibGUgcm93IHNlY3VyaXR5IChkdW1wIG9ubHkgY29udGVudCB1c2VyIGhhc1xuIgpA QCAtNTUxNyw2ICs1NTI1LDEzOCBAQCBnZXRDb2xsYXRpb25zKEFyY2hpdmUgKmZvdXQsIGlu dCAqbnVtQ29sbGF0aW9ucykKIAlyZXR1cm4gY29sbGluZm87CiB9CiAKKy8qCisgKiBnZXRD b2x1bW5FbmNyeXB0aW9uS2V5cworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgY29sdW1u IGVuY3J5cHRpb24ga2V5cworICovCit2b2lkCitnZXRDb2x1bW5FbmNyeXB0aW9uS2V5cyhB cmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJl czsKKwlpbnQJCQludHVwczsKKwlDZWtJbmZvCSAgICpjZWtpbmZvOworCWludAkJCWlfdGFi bGVvaWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jZWtuYW1lOworCWludAkJCWlfY2Vr b3duZXI7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE2MDAwMCkKKwkJcmV0dXJu OworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJYXBwZW5kUFFFeHBCdWZm ZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCBjZWsudGFibGVvaWQsIGNlay5vaWQsIGNlay5j ZWtuYW1lLFxuIgorCQkJCQkgICIgY2VrLmNla293bmVyXG4iCisJCQkJCSAgIkZST00gcGdf Y29sZW5ja2V5IGNlayIpOworCisJcmVzID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5 LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsK KworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFibGVvaWQiKTsKKwlpX29pZCA9 IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX2Nla25hbWUgPSBQUWZudW1iZXIocmVzLCAi Y2VrbmFtZSIpOworCWlfY2Vrb3duZXIgPSBQUWZudW1iZXIocmVzLCAiY2Vrb3duZXIiKTsK KworCWNla2luZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoQ2VrSW5mbykpOworCisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJUEdyZXN1bHQJICAgKnJl czI7CisJCWludAkJCQludHVwczI7CisKKwkJY2VraW5mb1tpXS5kb2JqLm9ialR5cGUgPSBE T19DRUs7CisJCWNla2luZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdl dHZhbHVlKHJlcywgaSwgaV90YWJsZW9pZCkpOworCQljZWtpbmZvW2ldLmRvYmouY2F0SWQu b2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1w SWQoJmNla2luZm9baV0uZG9iaik7CisJCWNla2luZm9baV0uZG9iai5uYW1lID0gcGdfc3Ry ZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nla25hbWUpKTsKKwkJY2VraW5mb1tpXS5yb2xu YW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfY2Vrb3duZXIpKTsKKwor CQlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks CisJCQkJCQkgICJTRUxFQ1QgKFNFTEVDVCBjbWtuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19j b2xtYXN0ZXJrZXkgV0hFUkUgcGdfY29sbWFzdGVya2V5Lm9pZCA9IGNrZGNta2lkKSBBUyBj ZWtjbWtuYW1lLFxuIgorCQkJCQkJICAiIGNrZGNta2FsZywgY2tkZW5jdmFsXG4iCisJCQkJ CQkgICJGUk9NIHBnX2NhdGFsb2cucGdfY29sZW5ja2V5ZGF0YVxuIgorCQkJCQkJICAiV0hF UkUgY2tkY2VraWQgPSAldSIsIGNla2luZm9baV0uZG9iai5jYXRJZC5vaWQpOworCQlyZXMy ID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0sp OworCQludHVwczIgPSBQUW50dXBsZXMocmVzMik7CisJCWNla2luZm9baV0ubnVtZGF0YSA9 IG50dXBzMjsKKwkJY2VraW5mb1tpXS5jZWtjbWtuYW1lcyA9IHBnX21hbGxvYyhzaXplb2Yo Y2hhciAqKSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2VrY21rYWxncyA9IHBnX21hbGxv YyhzaXplb2YoaW50KSAqIG50dXBzMik7CisJCWNla2luZm9baV0uY2VrZW5jdmFscyA9IHBn X21hbGxvYyhzaXplb2YoY2hhciAqKSAqIG50dXBzMik7CisJCWZvciAoaW50IGogPSAwOyBq IDwgbnR1cHMyOyBqKyspCisJCXsKKwkJCWNla2luZm9baV0uY2VrY21rbmFtZXNbal0gPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMyLCBqLCBQUWZudW1iZXIocmVzMiwgImNla2Nta25h bWUiKSkpOworCQkJY2VraW5mb1tpXS5jZWtjbWthbGdzW2pdID0gYXRvaShQUWdldHZhbHVl KHJlczIsIGosIFBRZm51bWJlcihyZXMyLCAiY2tkY21rYWxnIikpKTsKKwkJCWNla2luZm9b aV0uY2VrZW5jdmFsc1tqXSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlczIsIGosIFBRZm51 bWJlcihyZXMyLCAiY2tkZW5jdmFsIikpKTsKKwkJfQorCQlQUWNsZWFyKHJlczIpOworCisJ CXNlbGVjdER1bXBhYmxlT2JqZWN0KCYoY2VraW5mb1tpXS5kb2JqKSwgZm91dCk7CisJfQor CVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7Cit9CisKKy8q CisgKiBnZXRDb2x1bW5NYXN0ZXJLZXlzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCBj b2x1bW4gbWFzdGVyIGtleXMKKyAqLwordm9pZAorZ2V0Q29sdW1uTWFzdGVyS2V5cyhBcmNo aXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsK KwlpbnQJCQludHVwczsKKwlDbWtJbmZvCSAgICpjbWtpbmZvOworCWludAkJCWlfdGFibGVv aWQ7CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV9jbWtuYW1lOworCWludAkJCWlfY21rb3du ZXI7CisJaW50CQkJaV9jbWtyZWFsbTsKKworCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uIDwg MTYwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisK KwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJICAiU0VMRUNUIGNtay50YWJsZW9p ZCwgY21rLm9pZCwgY21rLmNta25hbWUsXG4iCisJCQkJCSAgIiBjbWsuY21rb3duZXIsIGNt ay5jbWtyZWFsbVxuIgorCQkJCQkgICJGUk9NIHBnX2NvbG1hc3RlcmtleSBjbWsiKTsKKwor CXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVT X09LKTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFm bnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lk Iik7CisJaV9jbWtuYW1lID0gUFFmbnVtYmVyKHJlcywgImNta25hbWUiKTsKKwlpX2Nta293 bmVyID0gUFFmbnVtYmVyKHJlcywgImNta293bmVyIik7CisJaV9jbWtyZWFsbSA9IFBRZm51 bWJlcihyZXMsICJjbWtyZWFsbSIpOworCisJY21raW5mbyA9IHBnX21hbGxvYyhudHVwcyAq IHNpemVvZihDbWtJbmZvKSk7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IG50dXBzOyBpKysp CisJeworCQljbWtpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX0NNSzsKKwkJY21raW5mb1tp XS5kb2JqLmNhdElkLnRhYmxlb2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Rh Ymxlb2lkKSk7CisJCWNta2luZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmY21raW5mb1tpXS5kb2Jq KTsKKwkJY21raW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfY21rbmFtZSkpOworCQljbWtpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFtZShQ UWdldHZhbHVlKHJlcywgaSwgaV9jbWtvd25lcikpOworCQljbWtpbmZvW2ldLmNta3JlYWxt ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2Nta3JlYWxtKSk7CisKKwkJc2Vs ZWN0RHVtcGFibGVPYmplY3QoJihjbWtpbmZvW2ldLmRvYmopLCBmb3V0KTsKKwl9CisJUFFj bGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKwogLyoKICAq IGdldENvbnZlcnNpb25zOgogICoJICByZWFkIGFsbCBjb252ZXJzaW9ucyBpbiB0aGUgc3lz dGVtIGNhdGFsb2dzIGFuZCByZXR1cm4gdGhlbSBpbiB0aGUKQEAgLTgxMDcsNiArODI0Nyw5 IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBp bnQgbnVtVGFibGVzKQogCWludAkJCWlfdHlwc3RvcmFnZTsKIAlpbnQJCQlpX2F0dGlkZW50 aXR5OwogCWludAkJCWlfYXR0Z2VuZXJhdGVkOworCWludAkJCWlfYXR0Y2VrbmFtZTsKKwlp bnQJCQlpX2F0dGVuY2FsZzsKKwlpbnQJCQlpX2F0dGVuY2RldDsKIAlpbnQJCQlpX2F0dGlz ZHJvcHBlZDsKIAlpbnQJCQlpX2F0dGxlbjsKIAlpbnQJCQlpX2F0dGFsaWduOwpAQCAtODIx NiwxNyArODM1OSwyOSBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5m byAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAogCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9u ID49IDEyMDAwMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgImEuYXR0 Z2VuZXJhdGVkXG4iKTsKKwkJCQkJCQkgImEuYXR0Z2VuZXJhdGVkLFxuIik7CisJZWxzZQor CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLAorCQkJCQkJCSAiJycgQVMgYXR0Z2VuZXJhdGVk LFxuIik7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNjAwMDApCisJCWFwcGVu ZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkgICIoU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jb2xl bmNrZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0Y2VrbmFtZSxcbiIK KwkJCQkJCSAgIkNBU0UgYXR0dHlwaWQgV0hFTiAldSBUSEVOIHRydWUgV0hFTiAldSBUSEVO IGZhbHNlIEVORCBBUyBhdHRlbmNkZXQsXG4iCisJCQkJCQkgICJhdHRlbmNhbGdcbiIsCisJ CQkJCQkgIFBHX0VOQ1JZUFRFRF9ERVRPSUQsIFBHX0VOQ1JZUFRFRF9STkRPSUQpOwogCWVs c2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwKLQkJCQkJCQkgIicnIEFTIGF0dGdlbmVy YXRlZFxuIik7CisJCQkJCQkJICJOVUxMIEFTIGF0dGNla25hbWUsXG4iCisJCQkJCQkJICJO VUxMIEFTIGF0dGVuY2RldCxcbiIKKwkJCQkJCQkgIk5VTEwgQVMgYXR0ZW5jYWxnXG4iKTsK IAogCS8qIG5lZWQgbGVmdCBqb2luIHRvIHBnX3R5cGUgdG8gbm90IGZhaWwgb24gZHJvcHBl ZCBjb2x1bW5zIC4uLiAqLwogCWFwcGVuZFBRRXhwQnVmZmVyKHEsCiAJCQkJCSAgIkZST00g dW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10pIEFTIHNyYyh0YmxvaWQpXG4iCiAJCQkJ CSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSBPTiAoc3JjLnRibG9pZCA9IGEu YXR0cmVsaWQpICIKIAkJCQkJICAiTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfdHlwZSB0ICIK LQkJCQkJICAiT04gKGEuYXR0dHlwaWQgPSB0Lm9pZClcbiIKKwkJCQkJICAiT04gKENBU0Ug V0hFTiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxTRSBhLmF0 dHR5cGlkIEVORCA9IHQub2lkKVxuIgogCQkJCQkgICJXSEVSRSBhLmF0dG51bSA+IDA6OnBn X2NhdGFsb2cuaW50MlxuIgogCQkJCQkgICJPUkRFUiBCWSBhLmF0dHJlbGlkLCBhLmF0dG51 bSIsCiAJCQkJCSAgdGJsb2lkcy0+ZGF0YSk7CkBAIC04MjQ1LDYgKzg0MDAsOSBAQCBnZXRU YWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRh YmxlcykKIAlpX3R5cHN0b3JhZ2UgPSBQUWZudW1iZXIocmVzLCAidHlwc3RvcmFnZSIpOwog CWlfYXR0aWRlbnRpdHkgPSBQUWZudW1iZXIocmVzLCAiYXR0aWRlbnRpdHkiKTsKIAlpX2F0 dGdlbmVyYXRlZCA9IFBRZm51bWJlcihyZXMsICJhdHRnZW5lcmF0ZWQiKTsKKwlpX2F0dGNl a25hbWUgPSBQUWZudW1iZXIocmVzLCAiYXR0Y2VrbmFtZSIpOworCWlfYXR0ZW5jZGV0ID0g UFFmbnVtYmVyKHJlcywgImF0dGVuY2RldCIpOworCWlfYXR0ZW5jYWxnID0gUFFmbnVtYmVy KHJlcywgImF0dGVuY2FsZyIpOwogCWlfYXR0aXNkcm9wcGVkID0gUFFmbnVtYmVyKHJlcywg ImF0dGlzZHJvcHBlZCIpOwogCWlfYXR0bGVuID0gUFFmbnVtYmVyKHJlcywgImF0dGxlbiIp OwogCWlfYXR0YWxpZ24gPSBQUWZudW1iZXIocmVzLCAiYXR0YWxpZ24iKTsKQEAgLTgzMDYs NiArODQ2NCw5IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0 YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQl0YmluZm8tPnR5cHN0b3JhZ2UgPSAoY2hhciAq KSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJCXRiaW5mby0+YXR0aWRl bnRpdHkgPSAoY2hhciAqKSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CiAJ CXRiaW5mby0+YXR0Z2VuZXJhdGVkID0gKGNoYXIgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBz aXplb2YoY2hhcikpOworCQl0YmluZm8tPmF0dGNla25hbWUgPSAoY2hhciAqKikgcGdfbWFs bG9jKG51bWF0dHMgKiBzaXplb2YoY2hhciAqKSk7CisJCXRiaW5mby0+YXR0ZW5jZGV0ID0g KGJvb2wgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoYm9vbCkpOworCQl0YmluZm8t PmF0dGVuY2FsZyA9IChpbnQgKikgcGdfbWFsbG9jKG51bWF0dHMgKiBzaXplb2YoaW50KSk7 CiAJCXRiaW5mby0+YXR0aXNkcm9wcGVkID0gKGJvb2wgKikgcGdfbWFsbG9jKG51bWF0dHMg KiBzaXplb2YoYm9vbCkpOwogCQl0YmluZm8tPmF0dGxlbiA9IChpbnQgKikgcGdfbWFsbG9j KG51bWF0dHMgKiBzaXplb2YoaW50KSk7CiAJCXRiaW5mby0+YXR0YWxpZ24gPSAoY2hhciAq KSBwZ19tYWxsb2MobnVtYXR0cyAqIHNpemVvZihjaGFyKSk7CkBAIC04MzM0LDYgKzg0OTUs MTggQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8s IGludCBudW1UYWJsZXMpCiAJCQl0YmluZm8tPmF0dGlkZW50aXR5W2pdID0gKihQUWdldHZh bHVlKHJlcywgciwgaV9hdHRpZGVudGl0eSkpOwogCQkJdGJpbmZvLT5hdHRnZW5lcmF0ZWRb al0gPSAqKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGdlbmVyYXRlZCkpOwogCQkJdGJpbmZv LT5uZWVkc19vdmVycmlkZSA9IHRiaW5mby0+bmVlZHNfb3ZlcnJpZGUgfHwgKHRiaW5mby0+ YXR0aWRlbnRpdHlbal0gPT0gQVRUUklCVVRFX0lERU5USVRZX0FMV0FZUyk7CisJCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRjZWtuYW1lKSkKKwkJCQl0YmluZm8tPmF0dGNl a25hbWVbal0gPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0Y2VrbmFtZSkp OworCQkJZWxzZQorCQkJCXRiaW5mby0+YXR0Y2VrbmFtZVtqXSA9IE5VTEw7CisJCQlpZiAo IVBRZ2V0aXNudWxsKHJlcywgciwgaV9hdHRlbmNkZXQpKQorCQkJCXRiaW5mby0+YXR0ZW5j ZGV0W2pdID0gKFBRZ2V0dmFsdWUocmVzLCByLCBpX2F0dGVuY2RldClbMF0gPT0gJ3QnKTsK KwkJCWVsc2UKKwkJCQl0YmluZm8tPmF0dGVuY2RldFtqXSA9IDA7CisJCQlpZiAoIVBRZ2V0 aXNudWxsKHJlcywgciwgaV9hdHRlbmNhbGcpKQorCQkJCXRiaW5mby0+YXR0ZW5jYWxnW2pd ID0gYXRvaShQUWdldHZhbHVlKHJlcywgciwgaV9hdHRlbmNhbGcpKTsKKwkJCWVsc2UKKwkJ CQl0YmluZm8tPmF0dGVuY2FsZ1tqXSA9IDA7CiAJCQl0YmluZm8tPmF0dGlzZHJvcHBlZFtq XSA9IChQUWdldHZhbHVlKHJlcywgciwgaV9hdHRpc2Ryb3BwZWQpWzBdID09ICd0Jyk7CiAJ CQl0YmluZm8tPmF0dGxlbltqXSA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIHIsIGlfYXR0bGVu KSk7CiAJCQl0YmluZm8tPmF0dGFsaWduW2pdID0gKihQUWdldHZhbHVlKHJlcywgciwgaV9h dHRhbGlnbikpOwpAQCAtOTg1OCw2ICsxMDAzMSwxMiBAQCBkdW1wRHVtcGFibGVPYmplY3Qo QXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9fT1BGQU1J TFk6CiAJCQlkdW1wT3BmYW1pbHkoZm91dCwgKGNvbnN0IE9wZmFtaWx5SW5mbyAqKSBkb2Jq KTsKIAkJCWJyZWFrOworCQljYXNlIERPX0NFSzoKKwkJCWR1bXBDb2x1bW5FbmNyeXB0aW9u S2V5KGZvdXQsIChjb25zdCBDZWtJbmZvICopIGRvYmopOworCQkJYnJlYWs7CisJCWNhc2Ug RE9fQ01LOgorCQkJZHVtcENvbHVtbk1hc3RlcktleShmb3V0LCAoY29uc3QgQ21rSW5mbyAq KSBkb2JqKTsKKwkJCWJyZWFrOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWR1bXBDb2xs YXRpb24oZm91dCwgKGNvbnN0IENvbGxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBAIC0x MzI1MSw2ICsxMzQzMCwxNTMgQEAgZHVtcENvbGxhdGlvbihBcmNoaXZlICpmb3V0LCBjb25z dCBDb2xsSW5mbyAqY29sbGluZm8pCiAJZnJlZShxY29sbG5hbWUpOwogfQogCitzdGF0aWMg Y29uc3QgY2hhciAqCitnZXRfZW5jYWxnX25hbWUoaW50IG51bSkKK3sKKwlzd2l0Y2ggKG51 bSkKKwl7CisJCWNhc2UgUEdfQ01LX1JTQUVTX09BRVBfU0hBXzE6CisJCQlyZXR1cm4gIlJT QUVTX09BRVBfU0hBXzEiOworCQljYXNlIFBHX0NNS19SU0FFU19PQUVQX1NIQV8yNTY6CisJ CQlyZXR1cm4gIlJTQUVTX09BRVBfU0hBXzI1NiI7CisKKwkJY2FzZSBQR19DRUtfQUVBRF9B RVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQlyZXR1cm4gIkFFQURfQUVTXzEyOF9DQkNf SE1BQ19TSEFfMjU2IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFDX1NI QV8zODQ6CisJCQlyZXR1cm4gIkFFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJ Y2FzZSBQR19DRUtfQUVBRF9BRVNfMjU2X0NCQ19ITUFDX1NIQV8zODQ6CisJCQlyZXR1cm4g IkFFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0IjsKKwkJY2FzZSBQR19DRUtfQUVBRF9B RVNfMjU2X0NCQ19ITUFDX1NIQV81MTI6CisJCQlyZXR1cm4gIkFFQURfQUVTXzI1Nl9DQkNf SE1BQ19TSEFfNTEyIjsKKworCQlkZWZhdWx0OgorCQkJcmV0dXJuIE5VTEw7CisJfQorfQor CisvKgorICogZHVtcENvbHVtbkVuY3J5cHRpb25LZXkKKyAqCSAgZHVtcCB0aGUgZGVmaW5p dGlvbiBvZiB0aGUgZ2l2ZW4gY29sdW1uIGVuY3J5cHRpb24ga2V5CisgKi8KK3N0YXRpYyB2 b2lkCitkdW1wQ29sdW1uRW5jcnlwdGlvbktleShBcmNoaXZlICpmb3V0LCBjb25zdCBDZWtJ bmZvICpjZWtpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKwlQ UUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFjZWtu YW1lOworCisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChkb3B0 LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7 CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNla25hbWUgPSBwZ19zdHJk dXAoZm10SWQoY2VraW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihk ZWxxLCAiRFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgJXM7XG4iLAorCQkJCQkgIHFjZWtu YW1lKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIENPTFVNTiBFTkNS WVBUSU9OIEtFWSAlcyBXSVRIIFZBTFVFUyAiLAorCQkJCQkgIHFjZWtuYW1lKTsKKworCWZv ciAoaW50IGkgPSAwOyBpIDwgY2VraW5mby0+bnVtZGF0YTsgaSsrKQorCXsKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICIoIik7CisKKwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks ICJjb2x1bW5fbWFzdGVyX2tleSA9ICVzLCAiLCBmbXRJZChjZWtpbmZvLT5jZWtjbWtuYW1l c1tpXSkpOworCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgImFsZ29yaXRobSA9ICclcycs ICIsIGdldF9lbmNhbGdfbmFtZShjZWtpbmZvLT5jZWtjbWthbGdzW2ldKSk7CisJCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiZW5jcnlwdGVkX3ZhbHVlID0gIik7CisJCWFwcGVuZFN0 cmluZ0xpdGVyYWxBSChxdWVyeSwgY2VraW5mby0+Y2VrZW5jdmFsc1tpXSwgZm91dCk7CisK KwkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIpIik7CisJCWlmIChpIDwgY2VraW5mby0+ bnVtZGF0YSAtIDEpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiLCAiKTsKKwl9CisK KwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIjtcbiIpOworCisJaWYgKGNla2luZm8t PmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hpdmVFbnRy eShmb3V0LCBjZWtpbmZvLT5kb2JqLmNhdElkLCBjZWtpbmZvLT5kb2JqLmR1bXBJZCwKKwkJ CQkJIEFSQ0hJVkVfT1BUUygudGFnID0gY2VraW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkg IC5vd25lciA9IGNla2luZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0g IkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9O X1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJ CQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOworCisJaWYgKGNla2luZm8tPmRvYmou ZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJD T0xVTU4gRU5DUllQVElPTiBLRVkiLCBxY2VrbmFtZSwKKwkJCQkJTlVMTCwgY2VraW5mby0+ cm9sbmFtZSwKKwkJCQkJY2VraW5mby0+ZG9iai5jYXRJZCwgMCwgY2VraW5mby0+ZG9iai5k dW1wSWQpOworCisJaWYgKGNla2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX1NF Q0xBQkVMKQorCQlkdW1wU2VjTGFiZWwoZm91dCwgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIs IHFjZWtuYW1lLAorCQkJCQkgTlVMTCwgY2VraW5mby0+cm9sbmFtZSwKKwkJCQkJIGNla2lu Zm8tPmRvYmouY2F0SWQsIDAsIGNla2luZm8tPmRvYmouZHVtcElkKTsKKworCWRlc3Ryb3lQ UUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCWZyZWUo cWNla25hbWUpOworfQorCisvKgorICogZHVtcENvbHVtbk1hc3RlcktleQorICoJICBkdW1w IHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBjb2x1bW4gbWFzdGVyIGtleQorICovCitz dGF0aWMgdm9pZAorZHVtcENvbHVtbk1hc3RlcktleShBcmNoaXZlICpmb3V0LCBjb25zdCBD bWtJbmZvICpjbWtpbmZvKQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsK KwlQUUV4cEJ1ZmZlciBkZWxxOworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnFj bWtuYW1lOworCisJLyogRG8gbm90aGluZyBpbiBkYXRhLW9ubHkgZHVtcCAqLworCWlmIChk b3B0LT5kYXRhT25seSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVy KCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcWNta25hbWUgPSBwZ19z dHJkdXAoZm10SWQoY21raW5mby0+ZG9iai5uYW1lKSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZl cihkZWxxLCAiRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAlcztcbiIsCisJCQkJCSAgcWNta25h bWUpOworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgQ09MVU1OIE1BU1RF UiBLRVkgJXMgV0lUSCAoIiwKKwkJCQkJICBxY21rbmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgInJlYWxtID0gIik7CisJYXBwZW5kU3RyaW5nTGl0ZXJhbEFIKHF1ZXJ5 LCBjbWtpbmZvLT5jbWtyZWFsbSwgZm91dCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIik7XG4iKTsKKworCWlmIChjbWtpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBP TkVOVF9ERUZJTklUSU9OKQorCQlBcmNoaXZlRW50cnkoZm91dCwgY21raW5mby0+ZG9iai5j YXRJZCwgY21raW5mby0+ZG9iai5kdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9 IGNta2luZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSBjbWtpbmZvLT5yb2xu YW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJDT0xVTU4gTUFTVEVSIEtFWSIsCisJ CQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVh dGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0 YSkpOworCisJaWYgKGNta2luZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1F TlQpCisJCWR1bXBDb21tZW50KGZvdXQsICJDT0xVTU4gTUFTVEVSIEtFWSIsIHFjbWtuYW1l LAorCQkJCQlOVUxMLCBjbWtpbmZvLT5yb2xuYW1lLAorCQkJCQljbWtpbmZvLT5kb2JqLmNh dElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwlpZiAoY21raW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwpCisJCWR1bXBTZWNMYWJlbChmb3V0LCAi Q09MVU1OIE1BU1RFUiBLRVkiLCBxY21rbmFtZSwKKwkJCQkJIE5VTEwsIGNta2luZm8tPnJv bG5hbWUsCisJCQkJCSBjbWtpbmZvLT5kb2JqLmNhdElkLCAwLCBjbWtpbmZvLT5kb2JqLmR1 bXBJZCk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVm ZmVyKHF1ZXJ5KTsKKwlmcmVlKHFjbWtuYW1lKTsKK30KKwogLyoKICAqIGR1bXBDb252ZXJz aW9uCiAgKgkgIHdyaXRlIG91dCBhIHNpbmdsZSBjb252ZXJzaW9uIGRlZmluaXRpb24KQEAg LTE1MzM0LDYgKzE1NjYwLDIyIEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBj b25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJCQkJCQkJCQkgIHRiaW5mby0+YXR0dHlwbmFt ZXNbal0pOwogCQkJCQl9CiAKKwkJCQkJaWYgKHRiaW5mby0+YXR0Y2VrbmFtZVtqXSkKKwkJ CQkJeworCQkJCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwgIiBFTkNSWVBURUQgV0lUSCAoY29s dW1uX2VuY3J5cHRpb25fa2V5ID0gJXMsICIsCisJCQkJCQkJCQkJICBmbXRJZCh0YmluZm8t PmF0dGNla25hbWVbal0pKTsKKwkJCQkJCS8qCisJCQkJCQkgKiBUbyByZWR1Y2Ugb3V0cHV0 IHNpemUsIHdlIGRvbid0IHByaW50IHRoZSBkZWZhdWx0CisJCQkJCQkgKiBvZiBlbmNyeXB0 aW9uX3R5cGUsIGJ1dCB3ZSBkbyBwcmludCB0aGUgZGVmYXVsdCBvZgorCQkJCQkJICogYWxn b3JpdGhtLCBzaW5jZSB3ZSBtaWdodCB3YW50IHRvIGNoYW5nZSB0byBhIG5ldworCQkJCQkJ ICogZGVmYXVsdCBhbGdvcml0aG0gc29tZXRpbWUgaW4gdGhlIGZ1dHVyZS4KKwkJCQkJCSAq LworCQkJCQkJaWYgKHRiaW5mby0+YXR0ZW5jZGV0W2pdKQorCQkJCQkJCWFwcGVuZFBRRXhw QnVmZmVyKHEsICJlbmNyeXB0aW9uX3R5cGUgPSBkZXRlcm1pbmlzdGljLCAiKTsKKwkJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKHEsICJhbGdvcml0aG0gPSAnJXMnKSIsCisJCQkJCQkJCQkJ ICBnZXRfZW5jYWxnX25hbWUodGJpbmZvLT5hdHRlbmNhbGdbal0pKTsKKwkJCQkJfQorCiAJ CQkJCWlmIChwcmludF9kZWZhdWx0KQogCQkJCQl7CiAJCQkJCQlpZiAodGJpbmZvLT5hdHRn ZW5lcmF0ZWRbal0gPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCkBAIC0xNzg5OCw2 ICsxODI0MCw4IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoq ZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19BQ0NFU1NfTUVUSE9EOgogCQkJY2Fz ZSBET19PUENMQVNTOgogCQkJY2FzZSBET19PUEZBTUlMWToKKwkJCWNhc2UgRE9fQ0VLOgor CQkJY2FzZSBET19DTUs6CiAJCQljYXNlIERPX0NPTExBVElPTjoKIAkJCWNhc2UgRE9fQ09O VkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA2OWVlOTM5 ZDQ0Li44MGJkMjljMmYzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTQ3LDYgKzQ3LDggQEAgdHlw ZWRlZiBlbnVtCiAJRE9fQUNDRVNTX01FVEhPRCwKIAlET19PUENMQVNTLAogCURPX09QRkFN SUxZLAorCURPX0NFSywKKwlET19DTUssCiAJRE9fQ09MTEFUSU9OLAogCURPX0NPTlZFUlNJ T04sCiAJRE9fVEFCTEUsCkBAIC0zMzMsNiArMzM1LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgX3Rh YmxlSW5mbwogCWJvb2wJICAgKmF0dGlzZHJvcHBlZDsJLyogdHJ1ZSBpZiBhdHRyIGlzIGRy b3BwZWQ7IGRvbid0IGR1bXAgaXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFy CSAgICphdHRnZW5lcmF0ZWQ7CisJY2hhcgkgICoqYXR0Y2VrbmFtZTsKKwlpbnQJCSAgICph dHRlbmNhbGc7CisJYm9vbAkgICAqYXR0ZW5jZGV0OwogCWludAkJICAgKmF0dGxlbjsJCQkv KiBhdHRyaWJ1dGUgbGVuZ3RoLCB1c2VkIGJ5IGJpbmFyeV91cGdyYWRlICovCiAJY2hhcgkg ICAqYXR0YWxpZ247CQkvKiBhdHRyaWJ1dGUgYWxpZ24sIHVzZWQgYnkgYmluYXJ5X3VwZ3Jh ZGUgKi8KIAlib29sCSAgICphdHRpc2xvY2FsOwkJLyogdHJ1ZSBpZiBhdHRyIGhhcyBsb2Nh bCBkZWZpbml0aW9uICovCkBAIC02NjQsNiArNjY5LDMwIEBAIHR5cGVkZWYgc3RydWN0IF9T dWJzY3JpcHRpb25JbmZvCiAJY2hhcgkgICAqc3VicHVibGljYXRpb25zOwogfSBTdWJzY3Jp cHRpb25JbmZvOwogCisvKgorICogVGhlIENla0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVw cmVzZW50IGNvbHVtbiBlbmNyeXB0aW9uIGtleS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QgX0Nl a0luZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCWNvbnN0IGNoYXIgKnJvbG5hbWU7 CisJaW50CQkJbnVtZGF0YTsKKwkvKiBUaGUgZm9sbG93aW5nIGFyZSBhcnJheXMgb2YgbnVt ZGF0YSBlbnRyaWVzIGVhY2g6ICovCisJY2hhcgkgICoqY2VrY21rbmFtZXM7CisJaW50CQkg ICAqY2VrY21rYWxnczsKKwljaGFyCSAgKipjZWtlbmN2YWxzOworfSBDZWtJbmZvOworCisv KgorICogVGhlIENta0luZm8gc3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IGNvbHVtbiBt YXN0ZXIga2V5LgorICovCit0eXBlZGVmIHN0cnVjdCBfQ21rSW5mbworeworCUR1bXBhYmxl T2JqZWN0IGRvYmo7CisJY29uc3QgY2hhciAqcm9sbmFtZTsKKwljaGFyCSAgICpjbWtyZWFs bTsKK30gQ21rSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICov CkBAIC03MTEsNiArNzQwLDggQEAgZXh0ZXJuIEFjY2Vzc01ldGhvZEluZm8gKmdldEFjY2Vz c01ldGhvZHMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1BY2Nlc3NNZXRob2RzKTsKIGV4dGVy biBPcGNsYXNzSW5mbyAqZ2V0T3BjbGFzc2VzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtT3Bj bGFzc2VzKTsKIGV4dGVybiBPcGZhbWlseUluZm8gKmdldE9wZmFtaWxpZXMoQXJjaGl2ZSAq Zm91dCwgaW50ICpudW1PcGZhbWlsaWVzKTsKIGV4dGVybiBDb2xsSW5mbyAqZ2V0Q29sbGF0 aW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbGxhdGlvbnMpOworZXh0ZXJuIHZvaWQg Z2V0Q29sdW1uRW5jcnlwdGlvbktleXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBn ZXRDb2x1bW5NYXN0ZXJLZXlzKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIENvbnZJbmZvICpn ZXRDb252ZXJzaW9ucyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bUNvbnZlcnNpb25zKTsKIGV4 dGVybiBUYWJsZUluZm8gKmdldFRhYmxlcyhBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxl cyk7CiBleHRlcm4gdm9pZCBnZXRPd25lZFNlcXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv IHRibGluZm9bXSwgaW50IG51bVRhYmxlcyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5k ZXggNWRlMzI0MWViNC4uZTU2MmE2NzdlZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpA QCAtNjksNiArNjksOCBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX1RT VEVNUExBVEUsCiAJUFJJT19UU0RJQ1QsCiAJUFJJT19UU0NPTkZJRywKKwlQUklPX0NNSywK KwlQUklPX0NFSywKIAlQUklPX0ZEVywKIAlQUklPX0ZPUkVJR05fU0VSVkVSLAogCVBSSU9f VEFCTEUsCkBAIC0xMTEsNiArMTEzLDggQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5 cGVQcmlvcml0eVtdID0KIAlQUklPX0FDQ0VTU19NRVRIT0QsCQkJLyogRE9fQUNDRVNTX01F VEhPRCAqLwogCVBSSU9fT1BGQU1JTFksCQkJCS8qIERPX09QQ0xBU1MgKi8KIAlQUklPX09Q RkFNSUxZLAkJCQkvKiBET19PUEZBTUlMWSAqLworCVBSSU9fQ0VLLAkJCQkJLyogRE9fQ0VL ICovCisJUFJJT19DTUssCQkJCQkvKiBET19DTUsgKi8KIAlQUklPX0NPTExBVElPTiwJCQkJ LyogRE9fQ09MTEFUSU9OICovCiAJUFJJT19DT05WRVJTSU9OLAkJCS8qIERPX0NPTlZFUlNJ T04gKi8KIAlQUklPX1RBQkxFLAkJCQkJLyogRE9fVEFCTEUgKi8KQEAgLTEzMjIsNiArMTMy NiwxNiBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNo YXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiT1BFUkFUT1IgRkFNSUxZICVzICAoSUQg JWQgT0lEICV1KSIsCiAJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElk Lm9pZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fQ0VLOgorCQkJc25wcmludGYoYnVmLCBi dWZzaXplLAorCQkJCQkgIkNPTFVNTiBFTkNSWVBUSU9OIEtFWSAoSUQgJWQgT0lEICV1KSIs CisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOworCQlj YXNlIERPX0NNSzoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJDT0xVTU4g TUFTVEVSIEtFWSAoSUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5j YXRJZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERPX0NPTExBVElPTjoKIAkJCXNucHJp bnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJDT0xMQVRJT04gJXMgIChJRCAlZCBPSUQgJXUp IiwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcGFsbC5jCmluZGV4IGQ2NjViMjU3YzkuLjA3OGY5MGI2MDcgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wYWxsLmMKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBhbGwuYwpAQCAtOTEsNiArOTEsNyBAQCBzdGF0aWMgYm9vbCBkb3N5 bmMgPSB0cnVlOwogCiBzdGF0aWMgaW50CWJpbmFyeV91cGdyYWRlID0gMDsKIHN0YXRpYyBp bnQJY29sdW1uX2luc2VydHMgPSAwOworc3RhdGljIGludAlkZWNyeXB0X2VuY3J5cHRlZF9j b2x1bW5zID0gMDsKIHN0YXRpYyBpbnQJZGlzYWJsZV9kb2xsYXJfcXVvdGluZyA9IDA7CiBz dGF0aWMgaW50CWRpc2FibGVfdHJpZ2dlcnMgPSAwOwogc3RhdGljIGludAlpZl9leGlzdHMg PSAwOwpAQCAtMTUyLDYgKzE1Myw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IAkJeyJhdHRyaWJ1dGUtaW5zZXJ0cyIsIG5vX2FyZ3VtZW50LCAmY29sdW1uX2luc2VydHMs IDF9LAogCQl7ImJpbmFyeS11cGdyYWRlIiwgbm9fYXJndW1lbnQsICZiaW5hcnlfdXBncmFk ZSwgMX0sCiAJCXsiY29sdW1uLWluc2VydHMiLCBub19hcmd1bWVudCwgJmNvbHVtbl9pbnNl cnRzLCAxfSwKKwkJeyJkZWNyeXB0LWVuY3J5cHRlZC1jb2x1bW5zIiwgbm9fYXJndW1lbnQs ICZkZWNyeXB0X2VuY3J5cHRlZF9jb2x1bW5zLCAxfSwKIAkJeyJkaXNhYmxlLWRvbGxhci1x dW90aW5nIiwgbm9fYXJndW1lbnQsICZkaXNhYmxlX2RvbGxhcl9xdW90aW5nLCAxfSwKIAkJ eyJkaXNhYmxlLXRyaWdnZXJzIiwgbm9fYXJndW1lbnQsICZkaXNhYmxlX3RyaWdnZXJzLCAx fSwKIAkJeyJleGNsdWRlLWRhdGFiYXNlIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDZ9 LApAQCAtNDIyLDYgKzQyNCw4IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWJpbmFyeS11cGdyYWRlIik7 CiAJaWYgKGNvbHVtbl9pbnNlcnRzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihwZ2R1bXBv cHRzLCAiIC0tY29sdW1uLWluc2VydHMiKTsKKwlpZiAoZGVjcnlwdF9lbmNyeXB0ZWRfY29s dW1ucykKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRlY3J5cHQt ZW5jcnlwdGVkLWNvbHVtbnMiKTsKIAlpZiAoZGlzYWJsZV9kb2xsYXJfcXVvdGluZykKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocGdkdW1wb3B0cywgIiAtLWRpc2FibGUtZG9sbGFyLXF1 b3RpbmciKTsKIAlpZiAoZGlzYWJsZV90cmlnZ2VycykKQEAgLTY0Nyw2ICs2NTEsNyBAQCBo ZWxwKHZvaWQpCiAJcHJpbnRmKF8oIiAgLXgsIC0tbm8tcHJpdmlsZWdlcyAgICAgICAgICBk byBub3QgZHVtcCBwcml2aWxlZ2VzIChncmFudC9yZXZva2UpXG4iKSk7CiAJcHJpbnRmKF8o IiAgLS1iaW5hcnktdXBncmFkZSAgICAgICAgICAgICBmb3IgdXNlIGJ5IHVwZ3JhZGUgdXRp bGl0aWVzIG9ubHlcbiIpKTsKIAlwcmludGYoXygiICAtLWNvbHVtbi1pbnNlcnRzICAgICAg ICAgICAgIGR1bXAgZGF0YSBhcyBJTlNFUlQgY29tbWFuZHMgd2l0aCBjb2x1bW4gbmFtZXNc biIpKTsKKwlwcmludGYoXygiICAtLWRlY3J5cHQtZW5jcnlwdGVkLWNvbHVtbnMgIGRlY3J5 cHQgZW5jcnlwdGVkIGNvbHVtbnMgaW4gdGhlIG91dHB1dFxuIikpOwogCXByaW50ZihfKCIg IC0tZGlzYWJsZS1kb2xsYXItcXVvdGluZyAgICAgZGlzYWJsZSBkb2xsYXIgcXVvdGluZywg dXNlIFNRTCBzdGFuZGFyZCBxdW90aW5nXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1kaXNhYmxl LXRyaWdnZXJzICAgICAgICAgICBkaXNhYmxlIHRyaWdnZXJzIGR1cmluZyBkYXRhLW9ubHkg cmVzdG9yZVxuIikpOwogCXByaW50ZihfKCIgIC0tZXhjbHVkZS1kYXRhYmFzZT1QQVRURVJO ICAgZXhjbHVkZSBkYXRhYmFzZXMgd2hvc2UgbmFtZSBtYXRjaGVzIFBBVFRFUk5cbiIpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jp bi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggMjg3M2I2NjJmYi4uZWMwMTk5MDcy NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTU5Myw2ICs1OTMsMTggQEAK IAkJdW5saWtlICAgID0+IHsgJWR1bXBfdGVzdF9zY2hlbWFfcnVucywgbm9fb3duZXIgPT4g MSwgfSwKIAl9LAogCisJJ0FMVEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSBjZWsxIE9XTkVS IFRPJyA9PiB7CisJCXJlZ2V4cCA9PiBxci9eQUxURVIgQ09MVU1OIEVOQ1JZUFRJT04gS0VZ IGNlazEgT1dORVIgVE8gLis7L20sCisJCWxpa2UgICA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rp b25fcHJlX2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fb3duZXIgPT4gMSwgfSwK Kwl9LAorCisJJ0FMVEVSIENPTFVNTiBNQVNURVIgS0VZIGNtazEgT1dORVIgVE8nID0+IHsK KwkJcmVnZXhwID0+IHFyL15BTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIE9XTkVSIFRP IC4rOy9tLAorCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+ IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX293bmVyID0+IDEsIH0sCisJfSwKKwogCSdBTFRF UiBGT1JFSUdOIERBVEEgV1JBUFBFUiBkdW1teSBPV05FUiBUTycgPT4gewogCQlyZWdleHAg PT4gcXIvXkFMVEVSIEZPUkVJR04gREFUQSBXUkFQUEVSIGR1bW15IE9XTkVSIFRPIC4rOy9t LAogCQlsaWtlICAgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0s CkBAIC0xMTkzLDYgKzEyMDUsMjQgQEAKIAkJbGlrZSAgICAgID0+IHsgJWZ1bGxfcnVucywg c2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ09NTUVOVCBPTiBDT0xVTU4g RU5DUllQVElPTiBLRVkgY2VrMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNTUsCisJCWNy ZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gRU5DUllQVElPTiBLRVkgY2VrMQor CQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5XCc7JywKKwkJ cmVnZXhwID0+CisJCSAgcXIvXkNPTU1FTlQgT04gQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNl azEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIGVuY3J5cHRpb24ga2V5JzsvbSwKKwkJbGlrZSA9 PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwKKwl9LAorCisJJ0NP TU1FTlQgT04gQ09MVU1OIE1BU1RFUiBLRVkgY21rMScgPT4geworCQljcmVhdGVfb3JkZXIg PT4gNTUsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBDT0xVTU4gTUFTVEVSIEtF WSBjbWsxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiBjb2x1bW4gbWFzdGVyIGtleVwnOycs CisJCXJlZ2V4cCA9PgorCQkgIHFyL15DT01NRU5UIE9OIENPTFVNTiBNQVNURVIgS0VZIGNt azEgSVMgJ2NvbW1lbnQgb24gY29sdW1uIG1hc3RlciBrZXknOy9tLAorCQlsaWtlID0+IHsg JWZ1bGxfcnVucywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ09NTUVO VCBPTiBMQVJHRSBPQkpFQ1QgLi4uJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2NSwKIAkJ Y3JlYXRlX3NxbCAgID0+ICdETyAkJApAQCAtMTYxMSw2ICsxNjQxLDI0IEBACiAJCWxpa2Ug PT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3ByZV9kYXRhID0+IDEsIH0sCiAJfSwKIAorCSdD UkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEnID0+IHsKKwkJY3JlYXRlX29yZGVy ID0+IDUxLAorCQljcmVhdGVfc3FsICAgPT4gIkNSRUFURSBDT0xVTU4gRU5DUllQVElPTiBL RVkgY2VrMSBXSVRIIFZBTFVFUyAoY29sdW1uX21hc3Rlcl9rZXkgPSBjbWsxLCBlbmNyeXB0 ZWRfdmFsdWUgPSAnXFx4REVBREJFRUYnKTsiLAorCQlyZWdleHAgICAgICAgPT4gcXIvXgor CQkJXFFDUkVBVEUgQ09MVU1OIEVOQ1JZUFRJT04gS0VZIGNlazEgV0lUSCBWQUxVRVMgKGNv bHVtbl9tYXN0ZXJfa2V5ID0gY21rMSwgYWxnb3JpdGhtID0gJ1JTQUVTX09BRVBfU0hBXzEn LCBlbmNyeXB0ZWRfdmFsdWUgPSBcRQorCQkJL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVu cywgc2VjdGlvbl9wcmVfZGF0YSA9PiAxLCB9LAorCX0sCisKKwknQ1JFQVRFIENPTFVNTiBN QVNURVIgS0VZIGNtazEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVf c3FsICAgPT4gIkNSRUFURSBDT0xVTU4gTUFTVEVSIEtFWSBjbWsxIFdJVEggKHJlYWxtID0g J215cmVhbG0nKTsiLAorCQlyZWdleHAgICAgICAgPT4gcXIvXgorCQkJXFFDUkVBVEUgQ09M VU1OIE1BU1RFUiBLRVkgY21rMSBXSVRIIChyZWFsbSA9ICdteXJlYWxtJyk7XEUKKwkJCS94 bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcHJlX2RhdGEgPT4gMSwgfSwK Kwl9LAorCiAJJ0NSRUFURSBEQVRBQkFTRSBwb3N0Z3JlcycgPT4gewogCQlyZWdleHAgPT4g cXIvXgogCQkJXFFDUkVBVEUgREFUQUJBU0UgcG9zdGdyZXMgV0lUSCBURU1QTEFURSA9IHRl bXBsYXRlMCBcRQpAQCAtMzk3MSw4ICs0MDE5LDEyIEBACiAJCQluZXh0OwogCQl9CiAKLQkJ IyBBZGQgdGVybWluYXRpbmcgc2VtaWNvbG9uCi0JCSRjcmVhdGVfc3FseyR0ZXN0X2RifSAu PSAkdGVzdHN7JHRlc3R9LT57Y3JlYXRlX3NxbH0gLiAiOyI7CisJCSMgTm9ybWFsaXplIGNv bW1hbmQgZW5kaW5nOiBzdHJpcCBhbGwgbGluZSBlbmRpbmdzLCBhZGQKKwkJIyBzZW1pY29s b24gaWYgbWlzc2luZywgYWRkIHR3byBuZXdsaW5lcy4KKwkJbXkgJGNyZWF0ZV9zcWwgPSAk dGVzdHN7JHRlc3R9LT57Y3JlYXRlX3NxbH07CisJCWNob21wICRjcmVhdGVfc3FsOworCQkk Y3JlYXRlX3NxbCAuPSAnOycgdW5sZXNzIHN1YnN0cigkY3JlYXRlX3NxbCwgLTEpIGVxICc7 JzsKKwkJJGNyZWF0ZV9zcWx7JHRlc3RfZGJ9IC49ICRjcmVhdGVfc3FsIC4gIlxuXG4iOwog CX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4v cHNxbC9jb21tYW5kLmMKaW5kZXggNjExODhkOTZmMi4uY2E2NGE1MTU5OSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5j CkBAIC05OCw2ICs5OCw3IEBAIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgcHJvY2Vzc19jb21t YW5kX2dfb3B0aW9ucyhjaGFyICpmaXJzdF9vcHRpb24sCiAJCQkJCQkJCQkJCQkgYm9vbCBh Y3RpdmVfYnJhbmNoLAogCQkJCQkJCQkJCQkJIGNvbnN0IGNoYXIgKmNtZCk7CiBzdGF0aWMg YmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9nZGVzYyhQc3FsU2NhblN0YXRlIHNjYW5f c3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCk7CitzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4 ZWNfY29tbWFuZF9nZW5jcihQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZl X2JyYW5jaCk7CiBzdGF0aWMgYmFja3NsYXNoUmVzdWx0IGV4ZWNfY29tbWFuZF9nZXRlbnYo UHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsCiAJCQkJCQkJ CQkJICAgY29uc3QgY2hhciAqY21kKTsKIHN0YXRpYyBiYWNrc2xhc2hSZXN1bHQgZXhlY19j b21tYW5kX2dleGVjKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJh bmNoKTsKQEAgLTM1MCw2ICszNTEsOCBAQCBleGVjX2NvbW1hbmQoY29uc3QgY2hhciAqY21k LAogCQlzdGF0dXMgPSBleGVjX2NvbW1hbmRfZyhzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNo LCBjbWQpOwogCWVsc2UgaWYgKHN0cmNtcChjbWQsICJnZGVzYyIpID09IDApCiAJCXN0YXR1 cyA9IGV4ZWNfY29tbWFuZF9nZGVzYyhzY2FuX3N0YXRlLCBhY3RpdmVfYnJhbmNoKTsKKwll bHNlIGlmIChzdHJjbXAoY21kLCAiZ2VuY3IiKSA9PSAwKQorCQlzdGF0dXMgPSBleGVjX2Nv bW1hbmRfZ2VuY3Ioc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCk7CiAJZWxzZSBpZiAoc3Ry Y21wKGNtZCwgImdldGVudiIpID09IDApCiAJCXN0YXR1cyA9IGV4ZWNfY29tbWFuZF9nZXRl bnYoc2Nhbl9zdGF0ZSwgYWN0aXZlX2JyYW5jaCwgY21kKTsKIAllbHNlIGlmIChzdHJjbXAo Y21kLCAiZ2V4ZWMiKSA9PSAwKQpAQCAtMTQ5Miw2ICsxNDk1LDM0IEBAIGV4ZWNfY29tbWFu ZF9nZGVzYyhQc3FsU2NhblN0YXRlIHNjYW5fc3RhdGUsIGJvb2wgYWN0aXZlX2JyYW5jaCkK IAlyZXR1cm4gc3RhdHVzOwogfQogCisvKgorICogXGdlbmNyIC0tIHNlbmQgcXVlcnksIHdp dGggc3VwcG9ydCBmb3IgcGFyYW1ldGVyIGVuY3J5cHRpb24KKyAqLworc3RhdGljIGJhY2tz bGFzaFJlc3VsdAorZXhlY19jb21tYW5kX2dlbmNyKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0 ZSwgYm9vbCBhY3RpdmVfYnJhbmNoKQoreworCWJhY2tzbGFzaFJlc3VsdCBzdGF0dXMgPSBQ U1FMX0NNRF9TS0lQX0xJTkU7CisJY2hhcgkgICAqYXA7CisKKwlwc2V0Lm51bV9wYXJhbXMg PSAwOworCXBzZXQucGFyYW1zID0gTlVMTDsKKwl3aGlsZSAoKGFwID0gcHNxbF9zY2FuX3Ns YXNoX29wdGlvbihzY2FuX3N0YXRlLAorCQkJCQkJCQkJCU9UX05PUk1BTCwgTlVMTCwgdHJ1 ZSkpICE9IE5VTEwpCisJeworCQlwc2V0Lm51bV9wYXJhbXMrKzsKKwkJcHNldC5wYXJhbXMg PSBwZ19yZWFsbG9jKHBzZXQucGFyYW1zLCBwc2V0Lm51bV9wYXJhbXMgKiBzaXplb2YoY2hh ciAqKSk7CisJCXBzZXQucGFyYW1zW3BzZXQubnVtX3BhcmFtcyAtIDFdID0gYXA7CisJfQor CisJaWYgKGFjdGl2ZV9icmFuY2gpCisJeworCQlwc2V0LmdlbmNyX2ZsYWcgPSB0cnVlOwor CQlzdGF0dXMgPSBQU1FMX0NNRF9TRU5EOworCX0KKworCXJldHVybiBzdGF0dXM7Cit9CisK IC8qCiAgKiBcZ2V0ZW52IC0tIHNldCB2YXJpYWJsZSBmcm9tIGVudmlyb25tZW50IHZhcmlh YmxlCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9jb21tb24uYyBiL3NyYy9iaW4v cHNxbC9jb21tb24uYwppbmRleCBlNjExZTMyNjZkLi5kNjg0NmFjZjVmIDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2NvbW1vbi5jCkBA IC0xMjg1LDYgKzEyODUsMTQgQEAgU2VuZFF1ZXJ5KGNvbnN0IGNoYXIgKnF1ZXJ5KQogCS8q IHJlc2V0IFxnZGVzYyB0cmlnZ2VyICovCiAJcHNldC5nZGVzY19mbGFnID0gZmFsc2U7CiAK KwkvKiByZXNldCBcZ2VuY3IgdHJpZ2dlciAqLworCXBzZXQuZ2VuY3JfZmxhZyA9IGZhbHNl OworCWZvciAoaW50IGkgPSAwOyBpIDwgcHNldC5udW1fcGFyYW1zOyBpKyspCisJCXBnX2Zy ZWUocHNldC5wYXJhbXNbaV0pOworCXBnX2ZyZWUocHNldC5wYXJhbXMpOworCXBzZXQucGFy YW1zID0gTlVMTDsKKwlwc2V0Lm51bV9wYXJhbXMgPSAwOworCiAJLyogcmVzZXQgXGdleGVj IHRyaWdnZXIgKi8KIAlwc2V0LmdleGVjX2ZsYWcgPSBmYWxzZTsKIApAQCAtMTQ0OSw3ICsx NDU3LDM2IEBAIEV4ZWNRdWVyeUFuZFByb2Nlc3NSZXN1bHRzKGNvbnN0IGNoYXIgKnF1ZXJ5 LCBkb3VibGUgKmVsYXBzZWRfbXNlYywgYm9vbCAqc3ZwdF9nCiAJaWYgKHRpbWluZykKIAkJ SU5TVFJfVElNRV9TRVRfQ1VSUkVOVChiZWZvcmUpOwogCi0Jc3VjY2VzcyA9IFBRc2VuZFF1 ZXJ5KHBzZXQuZGIsIHF1ZXJ5KTsKKwlpZiAocHNldC5nZW5jcl9mbGFnKQorCXsKKwkJUEdy ZXN1bHQgICAqcmVzMSwKKwkJCQkgICAqcmVzMjsKKworCQlyZXMxID0gUFFwcmVwYXJlKHBz ZXQuZGIsICIiLCBxdWVyeSwgcHNldC5udW1fcGFyYW1zLCBOVUxMKTsKKwkJaWYgKFBRcmVz dWx0U3RhdHVzKHJlczEpICE9IFBHUkVTX0NPTU1BTkRfT0spCisJCXsKKwkJCXBnX2xvZ19p bmZvKCIlcyIsIFBRZXJyb3JNZXNzYWdlKHBzZXQuZGIpKTsKKwkJCUNsZWFyT3JTYXZlUmVz dWx0KHJlczEpOworCQkJcmV0dXJuIC0xOworCQl9CisJCVBRY2xlYXIocmVzMSk7CisKKwkJ cmVzMiA9IFBRZGVzY3JpYmVQcmVwYXJlZChwc2V0LmRiLCAiIik7CisJCWlmIChQUXJlc3Vs dFN0YXR1cyhyZXMyKSAhPSBQR1JFU19DT01NQU5EX09LKQorCQl7CisJCQlwZ19sb2dfaW5m bygiJXMiLCBQUWVycm9yTWVzc2FnZShwc2V0LmRiKSk7CisJCQlDbGVhck9yU2F2ZVJlc3Vs dChyZXMyKTsKKwkJCXJldHVybiAtMTsKKwkJfQorCisJCXN1Y2Nlc3MgPSBQUXNlbmRRdWVy eVByZXBhcmVkMihwc2V0LmRiLCAiIiwgcHNldC5udW1fcGFyYW1zLCAoY29uc3QgY2hhciAq Y29uc3QgKikgcHNldC5wYXJhbXMsIE5VTEwsIE5VTEwsIE5VTEwsIDAsIHJlczIpOworCisJ CVBRY2xlYXIocmVzMik7CisJfQorCWVsc2UKKwl7CisJCXN1Y2Nlc3MgPSBQUXNlbmRRdWVy eShwc2V0LmRiLCBxdWVyeSk7CisJfQogCiAJaWYgKCFzdWNjZXNzKQogCXsKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMK aW5kZXggMzI3YTY5NDg3Yi4uZWU0ZmM0MWZmNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE1MzIsNyAr MTUzMiw3IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5h bWUsCiAJYm9vbAkJcHJpbnRUYWJsZUluaXRpYWxpemVkID0gZmFsc2U7CiAJaW50CQkJaTsK IAljaGFyCSAgICp2aWV3X2RlZiA9IE5VTEw7Ci0JY2hhcgkgICAqaGVhZGVyc1sxMl07CisJ Y2hhcgkgICAqaGVhZGVyc1sxM107CiAJUFFFeHBCdWZmZXJEYXRhIHRpdGxlOwogCVBRRXhw QnVmZmVyRGF0YSB0bXBidWY7CiAJaW50CQkJY29sczsKQEAgLTE1NDgsNiArMTU0OCw3IEBA IGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCQkJ ZmR3b3B0c19jb2wgPSAtMSwKIAkJCQlhdHRzdG9yYWdlX2NvbCA9IC0xLAogCQkJCWF0dGNv bXByZXNzaW9uX2NvbCA9IC0xLAorCQkJCWF0dGNla25hbWVfY29sID0gLTEsCiAJCQkJYXR0 c3RhdHRhcmdldF9jb2wgPSAtMSwKIAkJCQlhdHRkZXNjcl9jb2wgPSAtMTsKIAlpbnQJCQlu dW1yb3dzOwpAQCAtMTg0Niw3ICsxODQ3LDcgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMo Y29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAljb2xzID0gMDsKIAlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLCAiU0VMRUNUIGEuYXR0bmFtZSIpOwogCWF0dG5hbWVfY29sID0gY29scysrOwot CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIHBnX2NhdGFsb2cuZm9ybWF0X3R5 cGUoYS5hdHR0eXBpZCwgYS5hdHR0eXBtb2QpIik7CisJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIixcbiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZShDQVNFIFdIRU4gYS5hdHRyZWFs dHlwaWQgPD4gMCBUSEVOIGEuYXR0cmVhbHR5cGlkIEVMU0UgYS5hdHR0eXBpZCBFTkQsIGEu YXR0dHlwbW9kKSIpOwogCWF0dHR5cGVfY29sID0gY29scysrOwogCiAJaWYgKHNob3dfY29s dW1uX2RldGFpbHMpCkBAIC0xODYwLDcgKzE4NjEsNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQlhdHRyZGVmX2NvbCA9IGNvbHMrKzsK IAkJYXR0bm90bnVsbF9jb2wgPSBjb2xzKys7CiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZi dWYsICIsXG4gIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0 aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSB0XG4iCi0JCQkJCQkJICIgICBXSEVSRSBjLm9p ZCA9IGEuYXR0Y29sbGF0aW9uIEFORCB0Lm9pZCA9IGEuYXR0dHlwaWQgQU5EIGEuYXR0Y29s bGF0aW9uIDw+IHQudHlwY29sbGF0aW9uKSBBUyBhdHRjb2xsYXRpb24iKTsKKwkJCQkJCQkg IiAgIFdIRVJFIGMub2lkID0gYS5hdHRjb2xsYXRpb24gQU5EIHQub2lkID0gKENBU0UgV0hF TiBhLmF0dHJlYWx0eXBpZCA8PiAwIFRIRU4gYS5hdHRyZWFsdHlwaWQgRUxTRSBhLmF0dHR5 cGlkIEVORCkgQU5EIGEuYXR0Y29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uKSBBUyBhdHRj b2xsYXRpb24iKTsKIAkJYXR0Y29sbF9jb2wgPSBjb2xzKys7CiAJCWlmIChwc2V0LnN2ZXJz aW9uID49IDEwMDAwMCkKIAkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsXG4gIGEu YXR0aWRlbnRpdHkiKTsKQEAgLTE5MTEsNiArMTkxMiwxNSBAQCBkZXNjcmliZU9uZVRhYmxl RGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJYXR0Y29tcHJlc3Npb25fY29s ID0gY29scysrOwogCQl9CiAKKwkJLyogZW5jcnlwdGlvbiBpbmZvICovCisJCWlmIChwc2V0 LnN2ZXJzaW9uID49IDE2MDAwMCAmJgorCQkJIXBzZXQuaGlkZV9jb2x1bW5fZW5jcnlwdGlv biAmJgorCQkJKHRhYmxlaW5mby5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04pKQorCQl7 CisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICAoU0VMRUNUIGNla25hbWUg RlJPTSBwZ19jb2xlbmNrZXkgY2VrIFdIRVJFIGNlay5vaWQgPSBhLmF0dGNlaykgQVMgYXR0 Y2VrbmFtZSIpOworCQkJYXR0Y2VrbmFtZV9jb2wgPSBjb2xzKys7CisJCX0KKwogCQkvKiBz dGF0cyB0YXJnZXQsIGlmIHJlbGV2YW50IHRvIHJlbGtpbmQgKi8KIAkJaWYgKHRhYmxlaW5m by5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKIAkJCXRhYmxlaW5mby5yZWxraW5k ID09IFJFTEtJTkRfSU5ERVggfHwKQEAgLTIwMzQsNiArMjA0NCw4IEBAIGRlc2NyaWJlT25l VGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCWhlYWRlcnNbY29scysr XSA9IGdldHRleHRfbm9vcCgiU3RvcmFnZSIpOwogCWlmIChhdHRjb21wcmVzc2lvbl9jb2wg Pj0gMCkKIAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJDb21wcmVzc2lvbiIp OworCWlmIChhdHRjZWtuYW1lX2NvbCA+PSAwKQorCQloZWFkZXJzW2NvbHMrK10gPSBnZXR0 ZXh0X25vb3AoIkVuY3J5cHRpb24iKTsKIAlpZiAoYXR0c3RhdHRhcmdldF9jb2wgPj0gMCkK IAkJaGVhZGVyc1tjb2xzKytdID0gZ2V0dGV4dF9ub29wKCJTdGF0cyB0YXJnZXQiKTsKIAlp ZiAoYXR0ZGVzY3JfY29sID49IDApCkBAIC0yMTI2LDYgKzIxMzgsMTcgQEAgZGVzY3JpYmVP bmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJCQkJCQkgIGZhbHNl LCBmYWxzZSk7CiAJCX0KIAorCQkvKiBDb2x1bW4gZW5jcnlwdGlvbiAqLworCQlpZiAoYXR0 Y2VrbmFtZV9jb2wgPj0gMCkKKwkJeworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGF0 dGNla25hbWVfY29sKSkKKwkJCQlwcmludFRhYmxlQWRkQ2VsbCgmY29udCwgUFFnZXR2YWx1 ZShyZXMsIGksIGF0dGNla25hbWVfY29sKSwKKwkJCQkJCQkJICBmYWxzZSwgZmFsc2UpOwor CQkJZWxzZQorCQkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCAiIiwKKwkJCQkJCQkJICBm YWxzZSwgZmFsc2UpOworCQl9CisKIAkJLyogU3RhdGlzdGljcyB0YXJnZXQsIGlmIHRoZSBy ZWxraW5kIHN1cHBvcnRzIHRoaXMgZmVhdHVyZSAqLwogCQlpZiAoYXR0c3RhdHRhcmdldF9j b2wgPj0gMCkKIAkJCXByaW50VGFibGVBZGRDZWxsKCZjb250LCBQUWdldHZhbHVlKHJlcywg aSwgYXR0c3RhdHRhcmdldF9jb2wpLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hlbHAu YyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggZjhjZTFhMDcwNi4uOWY0ZmNlMjZmZCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwvaGVs cC5jCkBAIC0xOTUsNiArMTk1LDcgQEAgc2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQg cGFnZXIpCiAJSEVMUDAoIiAgXFxnIFsoT1BUSU9OUyldIFtGSUxFXSAgZXhlY3V0ZSBxdWVy eSAoYW5kIHNlbmQgcmVzdWx0IHRvIGZpbGUgb3IgfHBpcGUpO1xuIgogCQkgICIgICAgICAg ICAgICAgICAgICAgICAgICAgXFxnIHdpdGggbm8gYXJndW1lbnRzIGlzIGVxdWl2YWxlbnQg dG8gYSBzZW1pY29sb25cbiIpOwogCUhFTFAwKCIgIFxcZ2Rlc2MgICAgICAgICAgICAgICAg IGRlc2NyaWJlIHJlc3VsdCBvZiBxdWVyeSwgd2l0aG91dCBleGVjdXRpbmcgaXRcbiIpOwor CUhFTFAwKCIgIFxcZ2VuY3IgW1BBUkFNXS4uLiAgICAgIGV4ZWN1dGUgcXVlcnksIHdpdGgg c3VwcG9ydCBmb3IgcGFyYW1ldGVyIGVuY3J5cHRpb25cbiIpOwogCUhFTFAwKCIgIFxcZ2V4 ZWMgICAgICAgICAgICAgICAgIGV4ZWN1dGUgcXVlcnksIHRoZW4gZXhlY3V0ZSBlYWNoIHZh bHVlIGluIGl0cyByZXN1bHRcbiIpOwogCUhFTFAwKCIgIFxcZ3NldCBbUFJFRklYXSAgICAg ICAgIGV4ZWN1dGUgcXVlcnkgYW5kIHN0b3JlIHJlc3VsdCBpbiBwc3FsIHZhcmlhYmxlc1xu Iik7CiAJSEVMUDAoIiAgXFxneCBbKE9QVElPTlMpXSBbRklMRV0gYXMgXFxnLCBidXQgZm9y Y2VzIGV4cGFuZGVkIG91dHB1dCBtb2RlXG4iKTsKQEAgLTQxMiw2ICs0MTMsOCBAQCBoZWxw VmFyaWFibGVzKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAkJICAiICAgIHRydWUgaWYg bGFzdCBxdWVyeSBmYWlsZWQsIGVsc2UgZmFsc2VcbiIpOwogCUhFTFAwKCIgIEZFVENIX0NP VU5UXG4iCiAJCSAgIiAgICB0aGUgbnVtYmVyIG9mIHJlc3VsdCByb3dzIHRvIGZldGNoIGFu ZCBkaXNwbGF5IGF0IGEgdGltZSAoMCA9IHVubGltaXRlZClcbiIpOworCUhFTFAwKCIgIEhJ REVfQ09MVU1OX0VOQ1JZUFRJT05cbiIKKwkJICAiICAgIGlmIHNldCwgY29sdW1uIGVuY3J5 cHRpb24gZGV0YWlscyBhcmUgbm90IGRpc3BsYXllZFxuIik7CiAJSEVMUDAoIiAgSElERV9U QUJMRUFNXG4iCiAJCSAgIiAgICBpZiBzZXQsIHRhYmxlIGFjY2VzcyBtZXRob2RzIGFyZSBu b3QgZGlzcGxheWVkXG4iKTsKIAlIRUxQMCgiICBISURFX1RPQVNUX0NPTVBSRVNTSU9OXG4i CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvc2V0dGluZ3MuaCBiL3NyYy9iaW4vcHNxbC9z ZXR0aW5ncy5oCmluZGV4IDIzOTljZmZhM2YuLjYzNjcyOWRmMWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9zZXR0aW5ncy5oCisrKyBiL3NyYy9iaW4vcHNxbC9zZXR0aW5ncy5oCkBA IC05NSw2ICs5NSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfcHNxbFNldHRpbmdzCiAKIAljaGFy CSAgICpnc2V0X3ByZWZpeDsJLyogb25lLXNob3QgcHJlZml4IGFyZ3VtZW50IGZvciBcZ3Nl dCAqLwogCWJvb2wJCWdkZXNjX2ZsYWc7CQkvKiBvbmUtc2hvdCByZXF1ZXN0IHRvIGRlc2Ny aWJlIHF1ZXJ5IHJlc3VsdCAqLworCWJvb2wJCWdlbmNyX2ZsYWc7CQkvKiBvbmUtc2hvdCBy ZXF1ZXN0IHRvIHNlbmQgcXVlcnkgd2l0aCBzdXBwb3J0CisJCQkJCQkJCSAqIGZvciBwYXJh bWV0ZXIgZW5jcnlwdGlvbiAqLworCWludAkJCW51bV9wYXJhbXM7CQkvKiBudW1iZXIgb2Yg cXVlcnkgcGFyYW1ldGVycyAqLworCWNoYXIJICAqKnBhcmFtczsJCQkvKiBxdWVyeSBwYXJh bWV0ZXJzICovCiAJYm9vbAkJZ2V4ZWNfZmxhZzsJCS8qIG9uZS1zaG90IHJlcXVlc3QgdG8g ZXhlY3V0ZSBxdWVyeSByZXN1bHQgKi8KIAlib29sCQljcm9zc3RhYl9mbGFnOwkvKiBvbmUt c2hvdCByZXF1ZXN0IHRvIGNyb3NzdGFiIHJlc3VsdCAqLwogCWNoYXIJICAgKmN0dl9hcmdz WzRdOwkvKiBcY3Jvc3N0YWJ2aWV3IGFyZ3VtZW50cyAqLwpAQCAtMTM0LDYgKzEzOCw3IEBA IHR5cGVkZWYgc3RydWN0IF9wc3FsU2V0dGluZ3MKIAlib29sCQlxdWlldDsKIAlib29sCQlz aW5nbGVsaW5lOwogCWJvb2wJCXNpbmdsZXN0ZXA7CisJYm9vbAkJaGlkZV9jb2x1bW5fZW5j cnlwdGlvbjsKIAlib29sCQloaWRlX2NvbXByZXNzaW9uOwogCWJvb2wJCWhpZGVfdGFibGVh bTsKIAlpbnQJCQlmZXRjaF9jb3VudDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9zdGFy dHVwLmMgYi9zcmMvYmluL3BzcWwvc3RhcnR1cC5jCmluZGV4IGUyZTU2NzhlMmQuLjE3ZGRk OTZlNWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9zdGFydHVwLmMKKysrIGIvc3JjL2Jp bi9wc3FsL3N0YXJ0dXAuYwpAQCAtMTE4OCw2ICsxMTg4LDEzIEBAIGhpZGVfY29tcHJlc3Np b25faG9vayhjb25zdCBjaGFyICpuZXd2YWwpCiAJCQkJCQkJICZwc2V0LmhpZGVfY29tcHJl c3Npb24pOwogfQogCitzdGF0aWMgYm9vbAoraGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29r KGNvbnN0IGNoYXIgKm5ld3ZhbCkKK3sKKwlyZXR1cm4gUGFyc2VWYXJpYWJsZUJvb2wobmV3 dmFsLCAiSElERV9DT0xVTU5fRU5DUllQVElPTiIsCisJCQkJCQkJICZwc2V0LmhpZGVfY29s dW1uX2VuY3J5cHRpb24pOworfQorCiBzdGF0aWMgYm9vbAogaGlkZV90YWJsZWFtX2hvb2so Y29uc3QgY2hhciAqbmV3dmFsKQogewpAQCAtMTI1OSw2ICsxMjY2LDkgQEAgRXN0YWJsaXNo VmFyaWFibGVTcGFjZSh2b2lkKQogCVNldFZhcmlhYmxlSG9va3MocHNldC52YXJzLCAiU0hP V19DT05URVhUIiwKIAkJCQkJIHNob3dfY29udGV4dF9zdWJzdGl0dXRlX2hvb2ssCiAJCQkJ CSBzaG93X2NvbnRleHRfaG9vayk7CisJU2V0VmFyaWFibGVIb29rcyhwc2V0LnZhcnMsICJI SURFX0NPTFVNTl9FTkNSWVBUSU9OIiwKKwkJCQkJIGJvb2xfc3Vic3RpdHV0ZV9ob29rLAor CQkJCQkgaGlkZV9jb2x1bW5fZW5jcnlwdGlvbl9ob29rKTsKIAlTZXRWYXJpYWJsZUhvb2tz KHBzZXQudmFycywgIkhJREVfVE9BU1RfQ09NUFJFU1NJT04iLAogCQkJCQkgYm9vbF9zdWJz dGl0dXRlX2hvb2ssCiAJCQkJCSBoaWRlX2NvbXByZXNzaW9uX2hvb2spOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5jCmluZGV4IDYyYTM5Nzc5YjkuLmY5OTRkNTAwMGIgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmMKQEAgLTExNjksNiArMTE2OSwxNiBAQCBzdGF0aWMgY29uc3QgVmVyc2lvbmVkUXVlcnkg UXVlcnlfZm9yX2xpc3Rfb2Zfc3Vic2NyaXB0aW9uc1tdID0gewogCXswLCBOVUxMfQogfTsK IAorc3RhdGljIGNvbnN0IFZlcnNpb25lZFF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX2Nla3Nb XSA9IHsKKwl7MTYwMDAwLCAiU0VMRUNUIGNla25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2Nv bGVuY2tleSBXSEVSRSBjZWtuYW1lIExJS0UgJyVzJyJ9LAorCXswLCBOVUxMfQorfTsKKwor c3RhdGljIGNvbnN0IFZlcnNpb25lZFF1ZXJ5IFF1ZXJ5X2Zvcl9saXN0X29mX2Nta3NbXSA9 IHsKKwl7MTYwMDAwLCAiU0VMRUNUIGNta25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbG1h c3RlcmtleSBXSEVSRSBjbWtuYW1lIExJS0UgJyVzJyJ9LAorCXswLCBOVUxMfQorfTsKKwog LyoKICAqIFRoaXMgaXMgYSBsaXN0IG9mIGFsbCAidGhpbmdzIiBpbiBQZ3NxbCwgd2hpY2gg Y2FuIHNob3cgdXAgYWZ0ZXIgQ1JFQVRFIG9yCiAgKiBEUk9QOyBhbmQgdGhlcmUgaXMgYWxz byBhIHF1ZXJ5IHRvIGdldCBhIGxpc3Qgb2YgdGhlbS4KQEAgLTEyMDIsNiArMTIxMiw4IEBA IHN0YXRpYyBjb25zdCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewog CXsiQ0FTVCIsIE5VTEwsIE5VTEwsIE5VTEx9LCAvKiBDYXN0cyBoYXZlIGNvbXBsZXggc3Ry dWN0dXJlcyBmb3IgbmFtZXMsIHNvCiAJCQkJCQkJCSAqIHNraXAgaXQgKi8KIAl7IkNPTExB VElPTiIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9jb2xsYXRpb25zfSwKKwl7 IkNPTFVNTiBFTkNSWVBUSU9OIEtFWSIsIE5VTEwsIE5VTEwsIE5VTEx9LAorCXsiQ09MVU1O IE1BU1RFUiBLRVkgS0VZIiwgTlVMTCwgTlVMTCwgTlVMTH0sCiAKIAkvKgogCSAqIENSRUFU RSBDT05TVFJBSU5UIFRSSUdHRVIgaXMgbm90IHN1cHBvcnRlZCBoZXJlIGJlY2F1c2UgaXQg aXMgZGVzaWduZWQKQEAgLTE2OTIsNyArMTcwNCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25z dCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSJcXGVjaG8iLCAiXFxlZGl0 IiwgIlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5k aWYiLCAiXFxlcnJ2ZXJib3NlIiwgIlxcZXYiLAogCQkiXFxmIiwKLQkJIlxcZyIsICJcXGdk ZXNjIiwgIlxcZ2V0ZW52IiwgIlxcZ2V4ZWMiLCAiXFxnc2V0IiwgIlxcZ3giLAorCQkiXFxn IiwgIlxcZ2Rlc2MiLCAiXFxnZW5jciIsICJcXGdldGVudiIsICJcXGdleGVjIiwgIlxcZ3Nl dCIsICJcXGd4IiwKIAkJIlxcaGVscCIsICJcXGh0bWwiLAogCQkiXFxpZiIsICJcXGluY2x1 ZGUiLCAiXFxpbmNsdWRlX3JlbGF0aXZlIiwgIlxcaXIiLAogCQkiXFxsaXN0IiwgIlxcbG9f aW1wb3J0IiwgIlxcbG9fZXhwb3J0IiwgIlxcbG9fbGlzdCIsICJcXGxvX3VubGluayIsCkBA IC0xOTAwLDYgKzE5MTIsMjIgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQs IGludCBzdGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJDT0xM QVRJT04iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIFRPIiwgIlJFRlJF U0ggVkVSU0lPTiIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCisJLyogQUxURVIv RFJPUCBDT0xVTU4gRU5DUllQVElPTiBLRVkgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRF UnxEUk9QIiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIpKQorCQlDT01QTEVURV9X SVRIX1ZFUlNJT05FRF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9jZWtzKTsKKworCS8qIEFM VEVSIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVS IiwgIkNPTFVNTiIsICJFTkNSWVBUSU9OIiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExF VEVfV0lUSCgiQUREIFZBTFVFICgiLCAiRFJPUCBWQUxVRSAoIiwgIk9XTkVSIFRPIiwgIlJF TkFNRSBUTyIpOworCisJLyogQUxURVIvRFJPUCBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSfERST1AiLCAiQ09MVU1OIiwgIk1BU1RFUiIsICJLRVki KSkKKwkJQ09NUExFVEVfV0lUSF9WRVJTSU9ORURfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf Y21rcyk7CisKKwkvKiBBTFRFUiBDT0xVTU4gTUFTVEVSIEtFWSAqLworCWVsc2UgaWYgKE1h dGNoZXMoIkFMVEVSIiwgIkNPTFVNTiIsICJNQVNURVIiLCAiS0VZIiwgTWF0Y2hBbnkpKQor CQlDT01QTEVURV9XSVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iKTsKKwogCS8qIEFMVEVS IENPTlZFUlNJT04gPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiQ09O VkVSU0lPTiIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1dORVIgVE8iLCAiUkVO QU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKQEAgLTI3ODUsNiArMjgxMywyNiBAQCBwc3FsX2Nv bXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkJQ09N UExFVEVfV0lUSCgidHJ1ZSIsICJmYWxzZSIpOwogCX0KIAorCS8qIENSRUFURS9BTFRFUi9E Uk9QIENPTFVNTiAuLi4gS0VZICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFfEFMVEVS fERST1AiLCAiQ09MVU1OIikpCisJCUNPTVBMRVRFX1dJVEgoIkVOQ1JZUFRJT04iLCAiTUFT VEVSIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFfEFMVEVSfERST1AiLCAiQ09MVU1O IiwgIkVOQ1JZUFRJT058TUFTVEVSIikpCisJCUNPTVBMRVRFX1dJVEgoIktFWSIpOworCisJ LyogQ1JFQVRFIENPTFVNTiBFTkNSWVBUSU9OIEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMo IkNSRUFURSIsICJDT0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSkpCisJ CUNPTVBMRVRFX1dJVEgoIldJVEgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAi Q09MVU1OIiwgIkVOQ1JZUFRJT04iLCAiS0VZIiwgTWF0Y2hBbnksICJXSVRIIikpCisJCUNP TVBMRVRFX1dJVEgoIlZBTFVFUyIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJD T0xVTU4iLCAiRU5DUllQVElPTiIsICJLRVkiLCBNYXRjaEFueSwgIldJVEgiLCAiVkFMVUVT IikpCisJCUNPTVBMRVRFX1dJVEgoIigiKTsKKworCS8qIENSRUFURSBDT0xVTU4gTUFTVEVS IEtFWSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiTUFTVEVS IiwgIktFWSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiV0lUSCIpOworCWVsc2Ug aWYgKE1hdGNoZXMoIkNSRUFURSIsICJDT0xVTU4iLCAiTUFTVEVSIiwgIktFWSIsIE1hdGNo QW55LCAiV0lUSCIpKQorCQlDT01QTEVURV9XSVRIKCIoIik7CisKIAkvKiBDUkVBVEUgREFU QUJBU0UgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiREFUQUJBU0UiLCBNYXRj aEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9XTkVSIiwgIlRFTVBMQVRFIiwgIkVOQ09ESU5H IiwgIlRBQkxFU1BBQ0UiLApAQCAtMzUwOSw2ICszNTU3LDcgQEAgcHNxbF9jb21wbGV0aW9u KGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkJCSBNYXRjaGVzKCJE Uk9QIiwgIkFDQ0VTUyIsICJNRVRIT0QiLCBNYXRjaEFueSkgfHwKIAkJCSAoTWF0Y2hlcygi RFJPUCIsICJBR0dSRUdBVEV8RlVOQ1RJT058UFJPQ0VEVVJFfFJPVVRJTkUiLCBNYXRjaEFu eSwgTWF0Y2hBbnkpICYmCiAJCQkgIGVuZHNfd2l0aChwcmV2X3dkLCAnKScpKSB8fAorCQkJ IE1hdGNoZXMoIkRST1AiLCAiQ09MVU1OIiwgIkVOQ1JZUFRJT058TUFTVEVSIiwgIktFWSIs IE1hdGNoQW55KSB8fAogCQkJIE1hdGNoZXMoIkRST1AiLCAiRVZFTlQiLCAiVFJJR0dFUiIs IE1hdGNoQW55KSB8fAogCQkJIE1hdGNoZXMoIkRST1AiLCAiRk9SRUlHTiIsICJEQVRBIiwg IldSQVBQRVIiLCBNYXRjaEFueSkgfHwKIAkJCSBNYXRjaGVzKCJEUk9QIiwgIkZPUkVJR04i LCAiVEFCTEUiLCBNYXRjaEFueSkgfHwKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xp YnBxL01ha2VmaWxlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKaW5kZXggMWQz MWIyNTZmYy4uNDgxMmY4NjJjYSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv TWFrZWZpbGUKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvTWFrZWZpbGUKQEAgLTU0LDYg KzU0LDcgQEAgZW5kaWYKIAogaWZlcSAoJCh3aXRoX3NzbCksb3BlbnNzbCkKIE9CSlMgKz0g XAorCWZlLWVuY3J5cHQtb3BlbnNzbC5vIFwKIAlmZS1zZWN1cmUtb3BlbnNzbC5vCiBlbmRp ZgogCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCBiL3Ny Yy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CmluZGV4IGU4YmNjODgzNzAuLmZhYmFk MzhhYzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0Cisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CkBAIC0xODYsMyArMTg2LDcg QEAgUFFwaXBlbGluZVN0YXR1cyAgICAgICAgICAxODMKIFBRc2V0VHJhY2VGbGFncyAgICAg ICAgICAgMTg0CiBQUW1ibGVuQm91bmRlZCAgICAgICAgICAgIDE4NQogUFFzZW5kRmx1c2hS ZXF1ZXN0ICAgICAgICAxODYKK1BRZXhlY1ByZXBhcmVkMiAgICAgICAgICAgMTg3CitQUXNl bmRRdWVyeVByZXBhcmVkMiAgICAgIDE4OAorUFFmaXNlbmNyeXB0ZWQgICAgICAgICAgICAx ODkKK1BRcGFyYW1pc2VuY3J5cHRlZCAgICAgICAgMTkwCmRpZmYgLS1naXQgYS9zcmMvaW50 ZXJmYWNlcy9saWJwcS9mZS1jb25uZWN0LmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1j b25uZWN0LmMKaW5kZXggOTE3YjE5ZTBlOS4uYTJhY2ZjMmE3YyAxMDA2NDQKLS0tIGEvc3Jj L2ludGVyZmFjZXMvbGlicHEvZmUtY29ubmVjdC5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xp YnBxL2ZlLWNvbm5lY3QuYwpAQCAtMzQxLDYgKzM0MSwxNCBAQCBzdGF0aWMgY29uc3QgaW50 ZXJuYWxQUWNvbm5pbmZvT3B0aW9uIFBRY29ubmluZm9PcHRpb25zW10gPSB7CiAJCSJUYXJn ZXQtU2Vzc2lvbi1BdHRycyIsICIiLCAxNSwgLyogc2l6ZW9mKCJwcmVmZXItc3RhbmRieSIp ID0gMTUgKi8KIAlvZmZzZXRvZihzdHJ1Y3QgcGdfY29ubiwgdGFyZ2V0X3Nlc3Npb25fYXR0 cnMpfSwKIAorCXsiY21rbG9va3VwIiwgIlBHQ01LTE9PS1VQIiwgIiIsIE5VTEwsCisJCSJD TUstTG9va3VwIiwgIiIsIDY0LAorCW9mZnNldG9mKHN0cnVjdCBwZ19jb25uLCBjbWtsb29r dXApfSwKKworCXsiY29sdW1uX2VuY3J5cHRpb24iLCAiUEdDT0xVTU5FTkNSWVBUSU9OIiwg IjAiLCBOVUxMLAorCQkiQ29sdW1uLUVuY3J5cHRpb24iLCAiIiwgMSwKKwlvZmZzZXRvZihz dHJ1Y3QgcGdfY29ubiwgY29sdW1uX2VuY3J5cHRpb25fc2V0dGluZyl9LAorCiAJLyogVGVy bWluYXRpbmcgZW50cnkgLS0tIE1VU1QgQkUgTEFTVCAqLwogCXtOVUxMLCBOVUxMLCBOVUxM LCBOVUxMLAogCU5VTEwsIE5VTEwsIDB9CkBAIC0yNDU0LDYgKzI0NjIsNyBAQCBQUWNvbm5l Y3RQb2xsKFBHY29ubiAqY29ubikKICNpZmRlZiBFTkFCTEVfR1NTCiAJCWNvbm4tPnRyeV9n c3MgPSAoY29ubi0+Z3NzZW5jbW9kZVswXSAhPSAnZCcpOwkvKiAiZGlzYWJsZSIgKi8KICNl bmRpZgorCQljb25uLT5jb2x1bW5fZW5jcnlwdGlvbl9lbmFibGVkID0gKGNvbm4tPmNvbHVt bl9lbmNyeXB0aW9uX3NldHRpbmdbMF0gPT0gJzEnKTsKIAogCQlyZXNldF9jb25uZWN0aW9u X3N0YXRlX21hY2hpbmUgPSBmYWxzZTsKIAkJbmVlZF9uZXdfY29ubmVjdGlvbiA9IHRydWU7 CkBAIC0zMjQ5LDcgKzMyNTgsNyBAQCBQUWNvbm5lY3RQb2xsKFBHY29ubiAqY29ubikKIAkJ CQkgKiByZXF1ZXN0IG9yIGFuIGVycm9yIGhlcmUuICBBbnl0aGluZyBlbHNlIHByb2JhYmx5 IG1lYW5zCiAJCQkJICogaXQncyBub3QgUG9zdGdyZXMgb24gdGhlIG90aGVyIGVuZCBhdCBh bGwuCiAJCQkJICovCi0JCQkJaWYgKCEoYmVyZXNwID09ICdSJyB8fCBiZXJlc3AgPT0gJ0Un KSkKKwkJCQlpZiAoIShiZXJlc3AgPT0gJ1InIHx8IGJlcmVzcCA9PSAnRScgfHwgYmVyZXNw ID09ICd2JykpCiAJCQkJewogCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JN ZXNzYWdlLAogCQkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJleHBlY3RlZCBhdXRoZW50aWNh dGlvbiByZXF1ZXN0IGZyb20gc2VydmVyLCBidXQgcmVjZWl2ZWQgJWNcbiIpLApAQCAtMzQw NSw2ICszNDE0LDE3IEBAIFBRY29ubmVjdFBvbGwoUEdjb25uICpjb25uKQogCiAJCQkJCWdv dG8gZXJyb3JfcmV0dXJuOwogCQkJCX0KKwkJCQllbHNlIGlmIChiZXJlc3AgPT0gJ3YnKQor CQkJCXsKKwkJCQkJaWYgKHBxR2V0TmVnb3RpYXRlUHJvdG9jb2xWZXJzaW9uMyhjb25uKSkK KwkJCQkJeworCQkJCQkJLyogV2UnbGwgY29tZSBiYWNrIHdoZW4gdGhlcmUgaXMgbW9yZSBk YXRhICovCisJCQkJCQlyZXR1cm4gUEdSRVNfUE9MTElOR19SRUFESU5HOworCQkJCQl9CisJ CQkJCS8qIE9LLCB3ZSByZWFkIHRoZSBtZXNzYWdlOyBtYXJrIGRhdGEgY29uc3VtZWQgKi8K KwkJCQkJY29ubi0+aW5TdGFydCA9IGNvbm4tPmluQ3Vyc29yOworCQkJCQlnb3RvIGVycm9y X3JldHVybjsKKwkJCQl9CiAKIAkJCQkvKiBJdCBpcyBhbiBhdXRoZW50aWNhdGlvbiByZXF1 ZXN0LiAqLwogCQkJCWNvbm4tPmF1dGhfcmVxX3JlY2VpdmVkID0gdHJ1ZTsKQEAgLTQwODAs NiArNDEwMCwyMiBAQCBmcmVlUEdjb25uKFBHY29ubiAqY29ubikKIAlmcmVlKGNvbm4tPmty YnNydm5hbWUpOwogCWZyZWUoY29ubi0+Z3NzbGliKTsKIAlmcmVlKGNvbm4tPmNvbm5pcCk7 CisJZnJlZShjb25uLT5jbWtsb29rdXApOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+ bmNta3M7IGkrKykKKwl7CisJCWZyZWUoY29ubi0+Y21rc1tpXS5jbWtuYW1lKTsKKwkJZnJl ZShjb25uLT5jbWtzW2ldLmNta3JlYWxtKTsKKwl9CisJZnJlZShjb25uLT5jbWtzKTsKKwlm b3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5jZWtzOyBpKyspCisJeworCQlpZiAoY29ubi0+ Y2Vrc1tpXS5jZWtkYXRhKQorCQl7CisJCQlleHBsaWNpdF9iemVybyhjb25uLT5jZWtzW2ld LmNla2RhdGEsIGNvbm4tPmNla3NbaV0uY2VrZGF0YWxlbik7CisJCQlmcmVlKGNvbm4tPmNl a3NbaV0uY2VrZGF0YSk7CisJCX0KKwl9CisJZnJlZShjb25uLT5jZWtzKTsKIAkvKiBOb3Rl IHRoYXQgY29ubi0+UGZkZWJ1ZyBpcyBub3Qgb3VycyB0byBjbG9zZSBvciBmcmVlICovCiAJ ZnJlZShjb25uLT53cml0ZV9lcnJfbXNnKTsKIAlmcmVlKGNvbm4tPmluQnVmZmVyKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jIGIv c3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC1vcGVuc3NsLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOTc0YTNhYTgxMAotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3BlbnNzbC5jCkBAIC0wLDAg KzEsNzY2IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBmZS1lbmNyeXB0LW9w ZW5zc2wuYworICoJICBlbmNyeXB0aW9uIHN1cHBvcnQgdXNpbmcgT3BlblNTTAorICoKKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMiwgUG9zdGdyZVNRTCBHbG9i YWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwg UmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQtb3Bl bnNzbC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBv c3RncmVzX2ZlLmgiCisKKyNpbmNsdWRlICJmZS1lbmNyeXB0LmgiCisjaW5jbHVkZSAibGli cHEtaW50LmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1 ZGUgInBvcnQvcGdfYnN3YXAuaCIKKworI2luY2x1ZGUgPG9wZW5zc2wvZXZwLmg+CisKKwor I2lmZGVmIFRFU1RfRU5DUllQVAorCisvKgorICogVGVzdCBkYXRhIGZyb20KKyAqIDxodHRw czovL2RhdGF0cmFja2VyLmlldGYub3JnL2RvYy9odG1sL2RyYWZ0LW1jZ3Jldy1hZWFkLWFl cy1jYmMtaG1hYy1zaGEyLTA1I3NlY3Rpb24tNT4KKyAqLworCisvKgorICogVGhlIGRpZmZl cmVudCB0ZXN0IGNhc2VzIGp1c3QgdXNlIGRpZmZlcmVudCBwcmVmaXhlcyBvZiBLLCBzbyBv bmUgY29uc3RhbnQKKyAqIGlzIGVub3VnaCBoZXJlLgorICovCitzdGF0aWMgY29uc3QgdW5z aWduZWQgY2hhciBLW10gPSB7CisJMHgwMCwgMHgwMSwgMHgwMiwgMHgwMywgMHgwNCwgMHgw NSwgMHgwNiwgMHgwNywgMHgwOCwgMHgwOSwgMHgwYSwgMHgwYiwgMHgwYywgMHgwZCwgMHgw ZSwgMHgwZiwKKwkweDEwLCAweDExLCAweDEyLCAweDEzLCAweDE0LCAweDE1LCAweDE2LCAw eDE3LCAweDE4LCAweDE5LCAweDFhLCAweDFiLCAweDFjLCAweDFkLCAweDFlLCAweDFmLAor CTB4MjAsIDB4MjEsIDB4MjIsIDB4MjMsIDB4MjQsIDB4MjUsIDB4MjYsIDB4MjcsIDB4Mjgs IDB4MjksIDB4MmEsIDB4MmIsIDB4MmMsIDB4MmQsIDB4MmUsIDB4MmYsCisJMHgzMCwgMHgz MSwgMHgzMiwgMHgzMywgMHgzNCwgMHgzNSwgMHgzNiwgMHgzNywgMHgzOCwgMHgzOSwgMHgz YSwgMHgzYiwgMHgzYywgMHgzZCwgMHgzZSwgMHgzZiwKK307CisKK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIFBbXSA9IHsKKwkweDQxLCAweDIwLCAweDYzLCAweDY5LCAweDcwLCAw eDY4LCAweDY1LCAweDcyLCAweDIwLCAweDczLCAweDc5LCAweDczLCAweDc0LCAweDY1LCAw eDZkLCAweDIwLAorCTB4NmQsIDB4NzUsIDB4NzMsIDB4NzQsIDB4MjAsIDB4NmUsIDB4NmYs IDB4NzQsIDB4MjAsIDB4NjIsIDB4NjUsIDB4MjAsIDB4NzIsIDB4NjUsIDB4NzEsIDB4NzUs CisJMHg2OSwgMHg3MiwgMHg2NSwgMHg2NCwgMHgyMCwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg2 MiwgMHg2NSwgMHgyMCwgMHg3MywgMHg2NSwgMHg2MywgMHg3MiwgMHg2NSwKKwkweDc0LCAw eDJjLCAweDIwLCAweDYxLCAweDZlLCAweDY0LCAweDIwLCAweDY5LCAweDc0LCAweDIwLCAw eDZkLCAweDc1LCAweDczLCAweDc0LCAweDIwLCAweDYyLAorCTB4NjUsIDB4MjAsIDB4NjEs IDB4NjIsIDB4NmMsIDB4NjUsIDB4MjAsIDB4NzQsIDB4NmYsIDB4MjAsIDB4NjYsIDB4NjEs IDB4NmMsIDB4NmMsIDB4MjAsIDB4NjksCisJMHg2ZSwgMHg3NCwgMHg2ZiwgMHgyMCwgMHg3 NCwgMHg2OCwgMHg2NSwgMHgyMCwgMHg2OCwgMHg2MSwgMHg2ZSwgMHg2NCwgMHg3MywgMHgy MCwgMHg2ZiwgMHg2NiwKKwkweDIwLCAweDc0LCAweDY4LCAweDY1LCAweDIwLCAweDY1LCAw eDZlLCAweDY1LCAweDZkLCAweDc5LCAweDIwLCAweDc3LCAweDY5LCAweDc0LCAweDY4LCAw eDZmLAorCTB4NzUsIDB4NzQsIDB4MjAsIDB4NjksIDB4NmUsIDB4NjMsIDB4NmYsIDB4NmUs IDB4NzYsIDB4NjUsIDB4NmUsIDB4NjksIDB4NjUsIDB4NmUsIDB4NjMsIDB4NjUsCit9Owor CitzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciB0ZXN0X0lWW10gPSB7CisJMHgxYSwgMHhm MywgMHg4YywgMHgyZCwgMHhjMiwgMHhiOSwgMHg2ZiwgMHhmZCwgMHhkOCwgMHg2NiwgMHg5 NCwgMHgwOSwgMHgyMywgMHg0MSwgMHhiYywgMHgwNCwKK307CisKK3N0YXRpYyBjb25zdCB1 bnNpZ25lZCBjaGFyIHRlc3RfQVtdID0geworCTB4NTQsIDB4NjgsIDB4NjUsIDB4MjAsIDB4 NzMsIDB4NjUsIDB4NjMsIDB4NmYsIDB4NmUsIDB4NjQsIDB4MjAsIDB4NzAsIDB4NzIsIDB4 NjksIDB4NmUsIDB4NjMsCisJMHg2OSwgMHg3MCwgMHg2YywgMHg2NSwgMHgyMCwgMHg2Ziwg MHg2NiwgMHgyMCwgMHg0MSwgMHg3NSwgMHg2NywgMHg3NSwgMHg3MywgMHg3NCwgMHg2NSwg MHgyMCwKKwkweDRiLCAweDY1LCAweDcyLCAweDYzLCAweDZiLCAweDY4LCAweDZmLCAweDY2 LCAweDY2LCAweDczLAorfTsKKworCisjZGVmaW5lIGxpYnBxX2dldHRleHQoeCkgKHgpCisK KyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8KKworCit1bnNpZ25lZCBjaGFyICoK K2RlY3J5cHRfY2VrX2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIEZJTEUgKmZwLCBpbnQgY21r YWxnLAorCQkJCQkgIGludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAor CQkJCQkgIGludCAqdG9sZW4pCit7CisJY29uc3QgRVZQX01EICptZCA9IE5VTEw7CisJRVZQ X1BLRVkgICAqa2V5ID0gTlVMTDsKKwlSU0EJCSAgICpyc2EgPSBOVUxMOworCUVWUF9QS0VZ X0NUWCAqY3R4ID0gTlVMTDsKKwl1bnNpZ25lZCBjaGFyICpvdXQgPSBOVUxMOworCXNpemVf dAkJb3V0bGVuOworCisJc3dpdGNoIChjbWthbGcpCisJeworCQljYXNlIFBHX0NNS19SU0FF U19PQUVQX1NIQV8xOgorCQkJbWQgPSBFVlBfc2hhMSgpOworCQkJYnJlYWs7CisJCWNhc2Ug UEdfQ01LX1JTQUVTX09BRVBfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1NigpOworCQkJ YnJlYWs7CisJCWRlZmF1bHQ6CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JN ZXNzYWdlLAorCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5zdXBwb3J0ZWQgQ01LIGFsZ29y aXRobSBJRDogJWRcbiIpLCBjbWthbGcpOworCQkJZ290byBmYWlsOworCX0KKworCXJzYSA9 IFJTQV9uZXcoKTsKKwlpZiAoIXJzYSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25u LT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhbGxv Y2F0ZSBSU0Egc3RydWN0dXJlOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jf c3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCXJzYSA9IFBF TV9yZWFkX1JTQVByaXZhdGVLZXkoZnAsICZyc2EsIE5VTEwsIE5VTEwpOworCWlmICghcnNh KQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJ CSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IHJlYWQgUlNBIHByaXZhdGUga2V5OiAlc1xu IiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkp OworCQlnb3RvIGZhaWw7CisJfQorCisJa2V5ID0gRVZQX1BLRVlfbmV3KCk7CisJaWYgKCFr ZXkpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBub3QgYWxsb2NhdGUgcHJpdmF0ZSBrZXkgc3Ry dWN0dXJlOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9n ZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYgKCFFVlBfUEtFWV9hc3Np Z25fUlNBKGtleSwgcnNhKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJv ck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBhc3NpZ24gcHJp dmF0ZSBrZXk6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwljdHggPSBFVlBfUEtFWV9D VFhfbmV3KGtleSwgTlVMTCk7CisJaWYgKCFjdHgpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZl cigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb3VsZCBu b3QgYWxsb2NhdGUgcHVibGljIGtleSBhbGdvcml0aG0gY29udGV4dDogJXNcbiIpLAorCQkJ CQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKworCWlmIChFVlBfUEtFWV9kZWNyeXB0X2luaXQoY3R4KSA8PSAwKQor CXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAg bGlicHFfZ2V0dGV4dCgiZGVjcnlwdGlvbiBpbml0aWFsaXphdGlvbiBmYWlsZWQ6ICVzXG4i KSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7 CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoRVZQX1BLRVlfQ1RYX3NldF9yc2FfcGFkZGlu ZyhjdHgsIFJTQV9QS0NTMV9PQUVQX1BBRERJTkcpIDw9IDAgfHwKKwkJRVZQX1BLRVlfQ1RY X3NldF9yc2FfbWdmMV9tZChjdHgsIG1kKSA8PSAwIHx8CisJCUVWUF9QS0VZX0NUWF9zZXRf cnNhX29hZXBfbWQoY3R4LCBtZCkgPD0gMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZj b25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCBz ZXQgUlNBIHBhcmFtZXRlcjogJXNcbiIpLAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0 cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChFVlBf UEtFWV9kZWNyeXB0KGN0eCwgTlVMTCwgJm91dGxlbiwgZnJvbSwgZnJvbWxlbikgPD0gMCkK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoIlJTQSBkZWNyeXB0aW9uIGZhaWxlZDogJXNcbiIpLAorCQkJCQkJ ICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBm YWlsOworCX0KKworCW91dCA9IG1hbGxvYyhvdXRsZW4pOworCWlmICghb3V0KQorCXsKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFf Z2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQlnb3RvIGZhaWw7CisJfQorCisJaWYg KEVWUF9QS0VZX2RlY3J5cHQoY3R4LCBvdXQsICZvdXRsZW4sIGZyb20sIGZyb21sZW4pIDw9 IDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJSU0EgZGVjcnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJ CQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWZy ZWUob3V0KTsKKwkJb3V0ID0gTlVMTDsKKwkJZ290byBmYWlsOworCX0KKworCSp0b2xlbiA9 IG91dGxlbjsKKworZmFpbDoKKwlFVlBfUEtFWV9DVFhfZnJlZShjdHgpOworCUVWUF9QS0VZ X2ZyZWUoa2V5KTsKKworCXJldHVybiBvdXQ7Cit9CisKK3N0YXRpYyBjb25zdCBFVlBfQ0lQ SEVSICoKK3BnX2Nla2FsZ190b19vcGVuc3NsX2NpcGhlcihpbnQgY2VrYWxnKQoreworCWNv bnN0IEVWUF9DSVBIRVIgKmNpcGhlcjsKKworCXN3aXRjaCAoY2VrYWxnKQorCXsKKwkJY2Fz ZSBQR19DRUtfQUVBRF9BRVNfMTI4X0NCQ19ITUFDX1NIQV8yNTY6CisJCQljaXBoZXIgPSBF VlBfYWVzXzEyOF9jYmMoKTsKKwkJCWJyZWFrOworCQljYXNlIFBHX0NFS19BRUFEX0FFU18x OTJfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJCWNpcGhlciA9IEVWUF9hZXNfMTkyX2NiYygpOwor CQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0 OgorCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMjoKKwkJCWNp cGhlciA9IEVWUF9hZXNfMjU2X2NiYygpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQlj aXBoZXIgPSBOVUxMOworCX0KKworCXJldHVybiBjaXBoZXI7Cit9CisKK3N0YXRpYyBjb25z dCBFVlBfTUQgKgorcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQoaW50IGNla2FsZykKK3sKKwlj b25zdCBFVlBfTUQgKm1kOworCisJc3dpdGNoIChjZWthbGcpCisJeworCQljYXNlIFBHX0NF S19BRUFEX0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NjoKKwkJCW1kID0gRVZQX3NoYTI1Nigp OworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVTXzE5Ml9DQkNfSE1BQ19TSEFf Mzg0OgorCQljYXNlIFBHX0NFS19BRUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzM4NDoKKwkJ CW1kID0gRVZQX3NoYTM4NCgpOworCQkJYnJlYWs7CisJCWNhc2UgUEdfQ0VLX0FFQURfQUVT XzI1Nl9DQkNfSE1BQ19TSEFfNTEyOgorCQkJbWQgPSBFVlBfc2hhNTEyKCk7CisJCQlicmVh azsKKwkJZGVmYXVsdDoKKwkJCW1kID0gTlVMTDsKKwl9CisKKwlyZXR1cm4gbWQ7Cit9CisK K3N0YXRpYyBpbnQKK21kX2tleV9sZW5ndGgoY29uc3QgRVZQX01EICptZCkKK3sKKwlpZiAo bWQgPT0gRVZQX3NoYTI1NigpKQorCQlyZXR1cm4gMTY7CisJZWxzZSBpZiAobWQgPT0gRVZQ X3NoYTM4NCgpKQorCQlyZXR1cm4gMjQ7CisJZWxzZSBpZiAobWQgPT0gRVZQX3NoYTUxMigp KQorCQlyZXR1cm4gMzI7CisJZWxzZQorCQlyZXR1cm4gLTE7Cit9CisKK3N0YXRpYyBpbnQK K21kX2hhc2hfbGVuZ3RoKGNvbnN0IEVWUF9NRCAqbWQpCit7CisJaWYgKG1kID09IEVWUF9z aGEyNTYoKSkKKwkJcmV0dXJuIDMyOworCWVsc2UgaWYgKG1kID09IEVWUF9zaGEzODQoKSkK KwkJcmV0dXJuIDQ4OworCWVsc2UgaWYgKG1kID09IEVWUF9zaGE1MTIoKSkKKwkJcmV0dXJu IDY0OworCWVsc2UKKwkJcmV0dXJuIC0xOworfQorCisjaWZuZGVmIFRFU1RfRU5DUllQVAor I2RlZmluZSBQR19BRF9MRU4gNAorI2Vsc2UKKyNkZWZpbmUgUEdfQURfTEVOIHNpemVvZih0 ZXN0X0EpCisjZW5kaWYKKworc3RhdGljIGJvb2wKK2dldF9tZXNzYWdlX2F1dGhfdGFnKGNv bnN0IEVWUF9NRCAqbWQsCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5LCBp bnQgbWFjX2tleV9sZW4sCisJCQkJCSBjb25zdCB1bnNpZ25lZCBjaGFyICplbmNyLCBpbnQg ZW5jcmxlbiwKKwkJCQkJIGludCBjZWthbGcsCisJCQkJCSB1bnNpZ25lZCBjaGFyICptZF92 YWx1ZSwgc2l6ZV90ICptZF9sZW5fcCwKKwkJCQkJIGNvbnN0IGNoYXIgKiplcnJtc2dwKQor eworCXN0YXRpYyBjaGFyIG1zZ2J1ZlsxMDI0XTsKKwlFVlBfTURfQ1RYICpldnBfbWRfY3R4 ID0gTlVMTDsKKwlFVlBfUEtFWSAgICpwa2V5ID0gTlVMTDsKKwlzaXplX3QJCWJ1ZnNpemU7 CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsK KworCWlmIChlbmNybGVuIDwgMCkKKwl7CisJCXNucHJpbnRmKG1zZ2J1Ziwgc2l6ZW9mKG1z Z2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImVuY3J5cHRlZCB2YWx1ZSBoYXMgaW52YWxp ZCBsZW5ndGgiKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQor CisJZXZwX21kX2N0eCA9IEVWUF9NRF9DVFhfbmV3KCk7CisKKwlwa2V5ID0gRVZQX1BLRVlf bmV3X3Jhd19wcml2YXRlX2tleShFVlBfUEtFWV9ITUFDLCBOVUxMLCBtYWNfa2V5LCBtYWNf a2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJc25wcmludGYobXNnYnVmLCBzaXplb2Yo bXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IGFsbG9jYXRlIGtleSBm b3IgSE1BQzogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJ YnVmc2l6ZSA9IFBHX0FEX0xFTiArIGVuY3JsZW4gKyBzaXplb2YoaW50NjQpOworCWJ1ZiA9 IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFf Z2V0dGV4dCgib3V0IG9mIG1lbW9yeSIpOworCQlnb3RvIGZhaWw7CisJfQorI2lmbmRlZiBU RVNUX0VOQ1JZUFQKKwlidWZbMF0gPSAnUCc7CisJYnVmWzFdID0gJ0cnOworCSooaW50MTYg KikgKGJ1ZiArIDIpID0gcGdfaHRvbjE2KGNla2FsZyk7CisjZWxzZQorCW1lbWNweShidWYs IHRlc3RfQSwgc2l6ZW9mKHRlc3RfQSkpOworI2VuZGlmCisJbWVtY3B5KGJ1ZiArIFBHX0FE X0xFTiwgZW5jciwgZW5jcmxlbik7CisJKihpbnQ2NCAqKSAoYnVmICsgUEdfQURfTEVOICsg ZW5jcmxlbikgPSBwZ19odG9uNjQoUEdfQURfTEVOICogOCk7CisKKwlpZiAoIUVWUF9EaWdl c3RTaWduSW5pdChldnBfbWRfY3R4LCBOVUxMLCBtZCwgTlVMTCwgcGtleSkpCisJeworCQlz bnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJk aWdlc3QgaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBkYXRlKGV2cF9tZF9j dHgsIGJ1ZiwgYnVmc2l6ZSkpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2di dWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzIiks CisJCQkJIEVSUl9yZWFzb25fZXJyb3Jfc3RyaW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWlmICghRVZQX0RpZ2Vz dFNpZ25GaW5hbChldnBfbWRfY3R4LCBtZF92YWx1ZSwgbWRfbGVuX3ApKQorCXsKKwkJc25w cmludGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgiZGln ZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vycm9yX3N0cmlu ZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJCWdvdG8gZmFp bDsKKwl9CisJQXNzZXJ0KCptZF9sZW5fcCA9PSBtZF9oYXNoX2xlbmd0aChtZCkpOworCisJ LyogdHJ1bmNhdGUgb3V0cHV0IHRvIGhhbGYgdGhlIGxlbmd0aCwgcGVyIHNwZWMgKi8KKwkq bWRfbGVuX3AgLz0gMjsKKworCXJlc3VsdCA9IHRydWU7CitmYWlsOgorCWZyZWUoYnVmKTsK KwlFVlBfUEtFWV9mcmVlKHBrZXkpOworCUVWUF9NRF9DVFhfZnJlZShldnBfbWRfY3R4KTsK KwlyZXR1cm4gcmVzdWx0OworfQorCit1bnNpZ25lZCBjaGFyICoKK2RlY3J5cHRfdmFsdWUo UEdyZXN1bHQgKnJlcywgY29uc3QgUEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5z aWduZWQgY2hhciAqaW5wdXQsIGludCBpbnB1dGxlbiwgY29uc3QgY2hhciAqKmVycm1zZ3Ap Cit7CisJc3RhdGljIGNoYXIgbXNnYnVmWzEwMjRdOworCisJY29uc3QgdW5zaWduZWQgY2hh ciAqaXYgPSBOVUxMOworCXNpemVfdAkJaXZsZW47CisKKwljb25zdCBFVlBfQ0lQSEVSICpj aXBoZXI7CisJY29uc3QgRVZQX01EICptZDsKKwlFVlBfQ0lQSEVSX0NUWCAqZXZwX2NpcGhl cl9jdHggPSBOVUxMOworCWludAkJCWVuY19rZXlfbGVuOworCWludAkJCW1hY19rZXlfbGVu OworCWludAkJCWtleV9sZW47CisJY29uc3QgdW5zaWduZWQgY2hhciAqZW5jX2tleTsKKwlj b25zdCB1bnNpZ25lZCBjaGFyICptYWNfa2V5OworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVb RVZQX01BWF9NRF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7 CisJc2l6ZV90CQlidWZzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9IE5VTEw7CisJdW5z aWduZWQgY2hhciAqZGVjcjsKKwlpbnQJCQlkZWNybGVuLAorCQkJCWRlY3JsZW4yOworCisJ dW5zaWduZWQgY2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190 b19vcGVuc3NsX2NpcGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJc25wcmlu dGYobXNnYnVmLCBzaXplb2YobXNnYnVmKSwKKwkJCQkgbGlicHFfZ2V0dGV4dCgidW5yZWNv Z25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkIiksIGNla2FsZyk7 CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJbWQgPSBwZ19j ZWthbGdfdG9fb3BlbnNzbF9tZChjZWthbGcpOworCWlmICghbWQpCisJeworCQlzbnByaW50 Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJ1bnJlY29n bml6ZWQgZGlnZXN0IGFsZ29yaXRobSBpZGVudGlmaWVyOiAlZCIpLCBjZWthbGcpOworCQkq ZXJybXNncCA9IG1zZ2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWV2cF9jaXBoZXJfY3R4 ID0gRVZQX0NJUEhFUl9DVFhfbmV3KCk7CisKKwlpZiAoIUVWUF9EZWNyeXB0SW5pdF9leChl dnBfY2lwaGVyX2N0eCwgY2lwaGVyLCBOVUxMLCBOVUxMLCBOVUxMKSkKKwl7CisJCXNucHJp bnRmKG1zZ2J1Ziwgc2l6ZW9mKG1zZ2J1ZiksCisJCQkJIGxpYnBxX2dldHRleHQoImRlY3J5 cHRpb24gaW5pdGlhbGl6YXRpb24gZmFpbGVkOiAlcyIpLAorCQkJCSBFUlJfcmVhc29uX2Vy cm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJKmVycm1zZ3AgPSBtc2didWY7CisJ CWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9DSVBIRVJfQ1RYX2tleV9s ZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0gbWRfa2V5X2xlbmd0aCht ZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9sZW47CisKKwlpZiAoY2Vr LT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVv Zihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkg aGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGhtIChoYXM6ICV6dSwgcmVxdWlyZWQ6ICVk KSIpLAorCQkJCSBjZWstPmNla2RhdGFsZW4sIGtleV9sZW4pOworCQkqZXJybXNncCA9IG1z Z2J1ZjsKKwkJZ290byBmYWlsOworCX0KKworCWVuY19rZXkgPSBjZWstPmNla2RhdGEgKyBt YWNfa2V5X2xlbjsKKwltYWNfa2V5ID0gY2VrLT5jZWtkYXRhOworCisJaWYgKCFnZXRfbWVz c2FnZV9hdXRoX3RhZyhtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBpbnB1 dCwgaW5wdXRsZW4gLSAobWRfaGFzaF9sZW5ndGgobWQpIC8gMiksCisJCQkJCQkJICBjZWth bGcsCisJCQkJCQkJICBtZF92YWx1ZSwgJm1kX2xlbiwKKwkJCQkJCQkgIGVycm1zZ3ApKQor CXsKKwkJZ290byBmYWlsOworCX0KKworCWlmIChtZW1jbXAoaW5wdXQgKyAoaW5wdXRsZW4g LSBtZF9sZW4pLCBtZF92YWx1ZSwgbWRfbGVuKSAhPSAwKQorCXsKKwkJKmVycm1zZ3AgPSBs aWJwcV9nZXR0ZXh0KCJNQUMgbWlzbWF0Y2giKTsKKwkJZ290byBmYWlsOworCX0KKworCWl2 bGVuID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwlpdiA9 IGlucHV0OworCWlucHV0ICs9IGl2bGVuOworCWlucHV0bGVuIC09IGl2bGVuOworCWlmICgh RVZQX0RlY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBOVUxMLCBOVUxMLCBlbmNfa2V5 LCBpdikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBs aWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGluaXRpYWxpemF0aW9uIGZhaWxlZDogJXMiKSwK KwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSpl cnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9IGlucHV0 bGVuICsgRVZQX0NJUEhFUl9DVFhfYmxvY2tfc2l6ZShldnBfY2lwaGVyX2N0eCkgKyAxOwor I2lmbmRlZiBURVNUX0VOQ1JZUFQKKwlidWYgPSBwcVJlc3VsdEFsbG9jKHJlcywgYnVmc2l6 ZSwgZmFsc2UpOworI2Vsc2UKKwlidWYgPSBtYWxsb2MoYnVmc2l6ZSk7CisjZW5kaWYKKwlp ZiAoIWJ1ZikKKwl7CisJCSplcnJtc2dwID0gbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9y eSIpOworCQlnb3RvIGZhaWw7CisJfQorCWRlY3IgPSBidWY7CisJaWYgKCFFVlBfRGVjcnlw dFVwZGF0ZShldnBfY2lwaGVyX2N0eCwgZGVjciwgJmRlY3JsZW4sIGlucHV0LCBpbnB1dGxl biAtIG1kX2xlbikpCisJeworCQlzbnByaW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAor CQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNyeXB0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJS X3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0g bXNnYnVmOworCQlnb3RvIGZhaWw7CisJfQorCWlmICghRVZQX0RlY3J5cHRGaW5hbF9leChl dnBfY2lwaGVyX2N0eCwgZGVjciArIGRlY3JsZW4sICZkZWNybGVuMikpCisJeworCQlzbnBy aW50Zihtc2didWYsIHNpemVvZihtc2didWYpLAorCQkJCSBsaWJwcV9nZXR0ZXh0KCJkZWNy eXB0aW9uIGZhaWxlZDogJXMiKSwKKwkJCQkgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJS X2dldF9lcnJvcigpKSk7CisJCSplcnJtc2dwID0gbXNnYnVmOworCQlnb3RvIGZhaWw7CisJ fQorCWRlY3JsZW4gKz0gZGVjcmxlbjI7CisJQXNzZXJ0KGRlY3JsZW4gPCBidWZzaXplKTsK KwlkZWNyW2RlY3JsZW5dID0gJ1wwJzsKKwlyZXN1bHQgPSBkZWNyOworCitmYWlsOgorCUVW UF9DSVBIRVJfQ1RYX2ZyZWUoZXZwX2NpcGhlcl9jdHgpOworCisJcmV0dXJuIHJlc3VsdDsK K30KKworI2lmbmRlZiBURVNUX0VOQ1JZUFQKK3N0YXRpYyBib29sCittYWtlX3NpdihQR2Nv bm4gKmNvbm4sCisJCSB1bnNpZ25lZCBjaGFyICppdiwgc2l6ZV90IGl2bGVuLAorCQkgY29u c3QgRVZQX01EICptZCwKKwkJIGNvbnN0IHVuc2lnbmVkIGNoYXIgKml2X2tleSwgaW50IGl2 X2tleV9sZW4sCisJCSBjb25zdCB1bnNpZ25lZCBjaGFyICpwbGFpbnRleHQsIGludCBwbGFp bnRleHRfbGVuKQoreworCUVWUF9NRF9DVFggKmV2cF9tZF9jdHggPSBOVUxMOworCUVWUF9Q S0VZICAgKnBrZXkgPSBOVUxMOworCXVuc2lnbmVkIGNoYXIgbWRfdmFsdWVbRVZQX01BWF9N RF9TSVpFXTsKKwlzaXplX3QJCW1kX2xlbiA9IHNpemVvZihtZF92YWx1ZSk7CisJYm9vbAkJ cmVzdWx0ID0gZmFsc2U7CisKKwlldnBfbWRfY3R4ID0gRVZQX01EX0NUWF9uZXcoKTsKKwor CXBrZXkgPSBFVlBfUEtFWV9uZXdfcmF3X3ByaXZhdGVfa2V5KEVWUF9QS0VZX0hNQUMsIE5V TEwsIGl2X2tleSwgaXZfa2V5X2xlbik7CisJaWYgKCFwa2V5KQorCXsKKwkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgi Y291bGQgbm90IGFsbG9jYXRlIGtleSBmb3IgSE1BQzogJXNcbiIpLAorCQkJCQkJICBFUlJf cmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290byBmYWlsOwor CX0KKworCWlmICghRVZQX0RpZ2VzdFNpZ25Jbml0KGV2cF9tZF9jdHgsIE5VTEwsIG1kLCBO VUxMLCBwa2V5KSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImRpZ2VzdCBpbml0aWFsaXphdGlvbiBmYWls ZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dldF9l cnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwlpZiAoIUVWUF9EaWdlc3RTaWduVXBk YXRlKGV2cF9tZF9jdHgsIHBsYWludGV4dCwgcGxhaW50ZXh0X2xlbikpCisJeworCQlhcHBl bmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0 ZXh0KCJkaWdlc3Qgc2lnbmluZyBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNv bl9lcnJvcl9zdHJpbmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisK KwlpZiAoIUVWUF9EaWdlc3RTaWduRmluYWwoZXZwX21kX2N0eCwgbWRfdmFsdWUsICZtZF9s ZW4pKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJ CQkJCSAgbGlicHFfZ2V0dGV4dCgiZGlnZXN0IHNpZ25pbmcgZmFpbGVkOiAlcyIpLAorCQkJ CQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsKKwkJZ290 byBmYWlsOworCX0KKwlBc3NlcnQobWRfbGVuID09IG1kX2hhc2hfbGVuZ3RoKG1kKSk7CisJ bWVtY3B5KGl2LCBtZF92YWx1ZSwgaXZsZW4pOworCisJcmVzdWx0ID0gdHJ1ZTsKK2ZhaWw6 CisJRVZQX1BLRVlfZnJlZShwa2V5KTsKKwlFVlBfTURfQ1RYX2ZyZWUoZXZwX21kX2N0eCk7 CisJcmV0dXJuIHJlc3VsdDsKK30KKyNlbmRpZgkJCQkJCQkvKiBURVNUX0VOQ1JZUFQgKi8K KwordW5zaWduZWQgY2hhciAqCitlbmNyeXB0X3ZhbHVlKFBHY29ubiAqY29ubiwgY29uc3Qg UEdDRUsgKmNlaywgaW50IGNla2FsZywgY29uc3QgdW5zaWduZWQgY2hhciAqdmFsdWUsIGlu dCAqbmJ5dGVzcCwgYm9vbCBlbmNfZGV0KQoreworCWludAkJCW5ieXRlcyA9ICpuYnl0ZXNw OworCXVuc2lnbmVkIGNoYXIgaXZbRVZQX01BWF9JVl9MRU5HVEhdOworCXNpemVfdAkJaXZs ZW47CisJY29uc3QgRVZQX0NJUEhFUiAqY2lwaGVyOworCWNvbnN0IEVWUF9NRCAqbWQ7CisJ RVZQX0NJUEhFUl9DVFggKmV2cF9jaXBoZXJfY3R4ID0gTlVMTDsKKwlpbnQJCQllbmNfa2V5 X2xlbjsKKwlpbnQJCQltYWNfa2V5X2xlbjsKKwlpbnQJCQlrZXlfbGVuOworCWNvbnN0IHVu c2lnbmVkIGNoYXIgKmVuY19rZXk7CisJY29uc3QgdW5zaWduZWQgY2hhciAqbWFjX2tleTsK KwlzaXplX3QJCWJ1ZnNpemU7CisJdW5zaWduZWQgY2hhciAqYnVmID0gTlVMTDsKKwl1bnNp Z25lZCBjaGFyICplbmNyOworCWludAkJCWVuY3JsZW4sCisJCQkJZW5jcmxlbjI7CisKKwlj b25zdCBjaGFyICplcnJtc2c7CisJdW5zaWduZWQgY2hhciBtZF92YWx1ZVtFVlBfTUFYX01E X1NJWkVdOworCXNpemVfdAkJbWRfbGVuID0gc2l6ZW9mKG1kX3ZhbHVlKTsKKwlzaXplX3QJ CWJ1ZjJzaXplOworCXVuc2lnbmVkIGNoYXIgKmJ1ZjIgPSBOVUxMOworCisJdW5zaWduZWQg Y2hhciAqcmVzdWx0ID0gTlVMTDsKKworCWNpcGhlciA9IHBnX2Nla2FsZ190b19vcGVuc3Ns X2NpcGhlcihjZWthbGcpOworCWlmICghY2lwaGVyKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZm ZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5yZWNv Z25pemVkIGVuY3J5cHRpb24gYWxnb3JpdGhtIGlkZW50aWZpZXI6ICVkXG4iKSwgY2VrYWxn KTsKKwkJZ290byBmYWlsOworCX0KKworCW1kID0gcGdfY2VrYWxnX3RvX29wZW5zc2xfbWQo Y2VrYWxnKTsKKwlpZiAoIW1kKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVy cm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgidW5yZWNvZ25pemVkIGRpZ2Vz dCBhbGdvcml0aG0gaWRlbnRpZmllcjogJWRcbiIpLCBjZWthbGcpOworCQlnb3RvIGZhaWw7 CisJfQorCisJZXZwX2NpcGhlcl9jdHggPSBFVlBfQ0lQSEVSX0NUWF9uZXcoKTsKKworCWlm ICghRVZQX0VuY3J5cHRJbml0X2V4KGV2cF9jaXBoZXJfY3R4LCBjaXBoZXIsIE5VTEwsIE5V TEwsIE5VTEwpKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2Fn ZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5jcnlwdGlvbiBpbml0aWFsaXphdGlvbiBm YWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJpbmcoRVJSX2dl dF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5X2xlbiA9IEVWUF9D SVBIRVJfQ1RYX2tleV9sZW5ndGgoZXZwX2NpcGhlcl9jdHgpOworCW1hY19rZXlfbGVuID0g bWRfa2V5X2xlbmd0aChtZCk7CisJa2V5X2xlbiA9IG1hY19rZXlfbGVuICsgZW5jX2tleV9s ZW47CisKKwlpZiAoY2VrLT5jZWtkYXRhbGVuICE9IGtleV9sZW4pCisJeworCQlhcHBlbmRQ UUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0 KCJjb2x1bW4gZW5jcnlwdGlvbiBrZXkgaGFzIHdyb25nIGxlbmd0aCBmb3IgYWxnb3JpdGht IChoYXM6ICV6dSwgcmVxdWlyZWQ6ICVkKVxuIiksCisJCQkJCQkgIGNlay0+Y2VrZGF0YWxl biwga2V5X2xlbik7CisJCWdvdG8gZmFpbDsKKwl9CisKKwllbmNfa2V5ID0gY2VrLT5jZWtk YXRhICsgbWFjX2tleV9sZW47CisJbWFjX2tleSA9IGNlay0+Y2VrZGF0YTsKKworCWl2bGVu ID0gRVZQX0NJUEhFUl9DVFhfaXZfbGVuZ3RoKGV2cF9jaXBoZXJfY3R4KTsKKwlBc3NlcnQo aXZsZW4gPD0gc2l6ZW9mKGl2KSk7CisJaWYgKGVuY19kZXQpCisJeworI2lmbmRlZiBURVNU X0VOQ1JZUFQKKwkJbWFrZV9zaXYoY29ubiwgaXYsIGl2bGVuLCBtZCwgbWFjX2tleSwgbWFj X2tleV9sZW4sIHZhbHVlLCBuYnl0ZXMpOworI2Vsc2UKKwkJbWVtY3B5KGl2LCB0ZXN0X0lW LCBpdmxlbik7CisjZW5kaWYKKwl9CisJZWxzZQorCQlwZ19zdHJvbmdfcmFuZG9tKGl2LCBp dmxlbik7CisJaWYgKCFFVlBfRW5jcnlwdEluaXRfZXgoZXZwX2NpcGhlcl9jdHgsIE5VTEws IE5VTEwsIGVuY19rZXksIGl2KSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRleHQoImVuY3J5cHRpb24gaW5pdGlh bGl6YXRpb24gZmFpbGVkOiAlc1xuIiksCisJCQkJCQkgIEVSUl9yZWFzb25fZXJyb3Jfc3Ry aW5nKEVSUl9nZXRfZXJyb3IoKSkpOworCQlnb3RvIGZhaWw7CisJfQorCisJYnVmc2l6ZSA9 IGl2bGVuICsgKG5ieXRlcyArIDIgKiBFVlBfQ0lQSEVSX0NUWF9ibG9ja19zaXplKGV2cF9j aXBoZXJfY3R4KSAtIDEpOworCWJ1ZiA9IG1hbGxvYyhidWZzaXplKTsKKwlpZiAoIWJ1ZikK Kwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkg IGxpYnBxX2dldHRleHQoIm91dCBvZiBtZW1vcnlcbiIpKTsKKwkJZ290byBmYWlsOworCX0K KwltZW1jcHkoYnVmLCBpdiwgaXZsZW4pOworCWVuY3IgPSBidWYgKyBpdmxlbjsKKwlpZiAo IUVWUF9FbmNyeXB0VXBkYXRlKGV2cF9jaXBoZXJfY3R4LCBlbmNyLCAmZW5jcmxlbiwgdmFs dWUsIG5ieXRlcykpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNz YWdlLAorCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJlbmNyeXB0aW9uIGZhaWxlZDogJXNcbiIp LAorCQkJCQkJICBFUlJfcmVhc29uX2Vycm9yX3N0cmluZyhFUlJfZ2V0X2Vycm9yKCkpKTsK KwkJZ290byBmYWlsOworCX0KKwlpZiAoIUVWUF9FbmNyeXB0RmluYWxfZXgoZXZwX2NpcGhl cl9jdHgsIGVuY3IgKyBlbmNybGVuLCAmZW5jcmxlbjIpKQorCXsKKwkJYXBwZW5kUFFFeHBC dWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiZW5j cnlwdGlvbiBmYWlsZWQ6ICVzXG4iKSwKKwkJCQkJCSAgRVJSX3JlYXNvbl9lcnJvcl9zdHJp bmcoRVJSX2dldF9lcnJvcigpKSk7CisJCWdvdG8gZmFpbDsKKwl9CisJZW5jcmxlbiArPSBl bmNybGVuMjsKKworCWVuY3IgLT0gaXZsZW47CisJZW5jcmxlbiArPSBpdmxlbjsKKworCUFz c2VydChlbmNybGVuIDw9IGJ1ZnNpemUpOworCisJaWYgKCFnZXRfbWVzc2FnZV9hdXRoX3Rh ZyhtZCwgbWFjX2tleSwgbWFjX2tleV9sZW4sCisJCQkJCQkJICBlbmNyLCBlbmNybGVuLAor CQkJCQkJCSAgY2VrYWxnLAorCQkJCQkJCSAgbWRfdmFsdWUsICZtZF9sZW4sCisJCQkJCQkJ ICAmZXJybXNnKSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3Nh Z2UsICIlc1xuIiwgZXJybXNnKTsKKwkJZ290byBmYWlsOworCX0KKworCWJ1ZjJzaXplID0g ZW5jcmxlbiArIG1kX2xlbjsKKwlidWYyID0gbWFsbG9jKGJ1ZjJzaXplKTsKKwlpZiAoIWJ1 ZjIpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJ CQkJICBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCWdvdG8gZmFpbDsK Kwl9CisJbWVtY3B5KGJ1ZjIsIGVuY3IsIGVuY3JsZW4pOworCW1lbWNweShidWYyICsgZW5j cmxlbiwgbWRfdmFsdWUsIG1kX2xlbik7CisKKwlyZXN1bHQgPSBidWYyOworCW5ieXRlcyA9 IGJ1ZjJzaXplOworCitmYWlsOgorCWZyZWUoYnVmKTsKKwlFVlBfQ0lQSEVSX0NUWF9mcmVl KGV2cF9jaXBoZXJfY3R4KTsKKworCSpuYnl0ZXNwID0gbmJ5dGVzOworCXJldHVybiByZXN1 bHQ7Cit9CisKKworLyoKKyAqIFJ1biB0ZXN0IGNhc2VzCisgKi8KKyNpZmRlZiBURVNUX0VO Q1JZUFQKKworc3RhdGljIHZvaWQKK2RlYnVnX3ByaW50X2hleChjb25zdCBjaGFyICpuYW1l LCBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWwsIGludCBsZW4pCit7CisJcHJpbnRmKCIlcyA9 IiwgbmFtZSk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKKwl7CisJCWlmIChp ICUgMTYgPT0gMCkKKwkJCXByaW50ZigiXG4iKTsKKwkJZWxzZQorCQkJcHJpbnRmKCIgIik7 CisJCXByaW50ZigiJTAyeCIsIHZhbFtpXSk7CisJfQorCXByaW50ZigiXG4iKTsKK30KKwor c3RhdGljIHZvaWQKK3Rlc3RfY2FzZShpbnQgYWxnLCBjb25zdCB1bnNpZ25lZCBjaGFyICpL LCBzaXplX3QgS19sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKlAsIHNpemVfdCBQX2xlbikK K3sKKwl1bnNpZ25lZCBjaGFyICpDOworCWludAkJCW5ieXRlczsKKwlQR0NFSwkJY2VrOwor CisJbmJ5dGVzID0gUF9sZW47CisJY2VrLmNla2RhdGEgPSB1bmNvbnN0aWZ5KHVuc2lnbmVk IGNoYXIgKiwgSyk7CisJY2VrLmNla2RhdGFsZW4gPSBLX2xlbjsKKworCUMgPSBlbmNyeXB0 X3ZhbHVlKE5VTEwsICZjZWssIGFsZywgUCwgJm5ieXRlcywgdHJ1ZSk7CisJZGVidWdfcHJp bnRfaGV4KCJDIiwgQywgbmJ5dGVzKTsKK30KKworaW50CittYWluKGludCBhcmdjLCBjaGFy ICoqYXJndikKK3sKKwlwcmludGYoIjUuMVxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19BRUFE X0FFU18xMjhfQ0JDX0hNQUNfU0hBXzI1NiwgSywgMzIsIFAsIHNpemVvZihQKSk7CisJcHJp bnRmKCI1LjJcbiIpOworCXRlc3RfY2FzZShQR19DRUtfQUVBRF9BRVNfMTkyX0NCQ19ITUFD X1NIQV8zODQsIEssIDQ4LCBQLCBzaXplb2YoUCkpOworCXByaW50ZigiNS4zXG4iKTsKKwl0 ZXN0X2Nhc2UoUEdfQ0VLX0FFQURfQUVTXzI1Nl9DQkNfSE1BQ19TSEFfMzg0LCBLLCA1Niwg UCwgc2l6ZW9mKFApKTsKKwlwcmludGYoIjUuNFxuIik7CisJdGVzdF9jYXNlKFBHX0NFS19B RUFEX0FFU18yNTZfQ0JDX0hNQUNfU0hBXzUxMiwgSywgNjQsIFAsIHNpemVvZihQKSk7CisK KwlyZXR1cm4gMDsKK30KKworI2VuZGlmCQkJCQkJCS8qIFRFU1RfRU5DUllQVCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZW5jcnlwdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmIwMDkzZGM1MjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1lbmNyeXB0LmgKQEAgLTAsMCArMSwzMyBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogZmUtZW5jcnlwdC5oCisgKgorICogZW5jcnlwdGlvbiBzdXBwb3J0 CisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjIsIFBvc3RncmVTUUwg R2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElE RU5USUZJQ0FUSU9OCisgKgkgIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWVuY3J5cHQuaAor ICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgRkVfRU5DUllQVF9I CisjZGVmaW5lIEZFX0VOQ1JZUFRfSAorCisjaW5jbHVkZSAibGlicHEtZmUuaCIKKyNpbmNs dWRlICJsaWJwcS1pbnQuaCIKKworZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKmRlY3J5cHRfY2Vr X2Zyb21fZmlsZShQR2Nvbm4gKmNvbm4sIEZJTEUgKmZwLCBpbnQgY21rYWxnLAorCQkJCQkJ CQkJCQlpbnQgZnJvbWxlbiwgY29uc3QgdW5zaWduZWQgY2hhciAqZnJvbSwKKwkJCQkJCQkJ CQkJaW50ICp0b2xlbik7CisKK2V4dGVybiB1bnNpZ25lZCBjaGFyICpkZWNyeXB0X3ZhbHVl KFBHcmVzdWx0ICpyZXMsIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcsCisJCQkJCQkJ CQljb25zdCB1bnNpZ25lZCBjaGFyICppbnB1dCwgaW50IGlucHV0bGVuLAorCQkJCQkJCQkJ Y29uc3QgY2hhciAqKmVycm1zZ3ApOworCitleHRlcm4gdW5zaWduZWQgY2hhciAqZW5jcnlw dF92YWx1ZShQR2Nvbm4gKmNvbm4sIGNvbnN0IFBHQ0VLICpjZWssIGludCBjZWthbGcsCisJ CQkJCQkJCQljb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50ICpuYnl0ZXNwLCBib29s IGVuY19kZXQpOworCisjZW5kaWYJCQkJCQkJLyogRkVfRU5DUllQVF9IICovCmRpZmYgLS1n aXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1leGVjLmMgYi9zcmMvaW50ZXJmYWNlcy9s aWJwcS9mZS1leGVjLmMKaW5kZXggYmI4NzRmN2Y1MC4uY2Q5YzBmOTFmOCAxMDA2NDQKLS0t IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCisrKyBiL3NyYy9pbnRlcmZhY2Vz L2xpYnBxL2ZlLWV4ZWMuYwpAQCAtMjQsNiArMjQsOSBAQAogI2luY2x1ZGUgPHVuaXN0ZC5o PgogI2VuZGlmCiAKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGVuY2tleS5oIgorI2luY2x1 ZGUgImNvbW1vbi9iYXNlNjQuaCIKKyNpbmNsdWRlICJmZS1lbmNyeXB0LmgiCiAjaW5jbHVk ZSAibGlicHEtZmUuaCIKICNpbmNsdWRlICJsaWJwcS1pbnQuaCIKICNpbmNsdWRlICJtYi9w Z193Y2hhci5oIgpAQCAtNzIsNyArNzUsOSBAQCBzdGF0aWMgaW50CVBRc2VuZFF1ZXJ5R3V0 cyhQR2Nvbm4gKmNvbm4sCiAJCQkJCQkJY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVz LAogCQkJCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAogCQkJCQkJCWNvbnN0IGludCAq cGFyYW1Gb3JtYXRzLAotCQkJCQkJCWludCByZXN1bHRGb3JtYXQpOworCQkJCQkJCWNvbnN0 IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJCWludCByZXN1bHRG b3JtYXQsCisJCQkJCQkJUEdyZXN1bHQgKnBhcmFtRGVzYyk7CiBzdGF0aWMgdm9pZCBwYXJz ZUlucHV0KFBHY29ubiAqY29ubik7CiBzdGF0aWMgUEdyZXN1bHQgKmdldENvcHlSZXN1bHQo UEdjb25uICpjb25uLCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgYm9vbCBQ UWV4ZWNTdGFydChQR2Nvbm4gKmNvbm4pOwpAQCAtMTE4NSw2ICsxMTkwLDM4MSBAQCBwcVNh dmVQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpuYW1lLCBjb25z dCBjaGFyICp2YWx1ZSkKIAl9CiB9CiAKK2ludAorcHFTYXZlQ29sdW1uTWFzdGVyS2V5KFBH Y29ubiAqY29ubiwgaW50IGtleWlkLCBjb25zdCBjaGFyICprZXluYW1lLAorCQkJCQkgIGNv bnN0IGNoYXIgKmtleXJlYWxtKQoreworCWNoYXIJICAgKmtleW5hbWVfY29weTsKKwljaGFy CSAgICprZXlyZWFsbV9jb3B5OworCWJvb2wJCWZvdW5kOworCisJa2V5bmFtZV9jb3B5ID0g c3RyZHVwKGtleW5hbWUpOworCWlmICgha2V5bmFtZV9jb3B5KQorCQlyZXR1cm4gRU9GOwor CWtleXJlYWxtX2NvcHkgPSBzdHJkdXAoa2V5cmVhbG0pOworCWlmICgha2V5cmVhbG1fY29w eSkKKwl7CisJCWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJcmV0dXJuIEVPRjsKKwl9CisKKwlm b3VuZCA9IGZhbHNlOworCWZvciAoaW50IGkgPSAwOyBpIDwgY29ubi0+bmNta3M7IGkrKykK Kwl7CisJCXN0cnVjdCBwZ19jbWsgKmNoZWNrY21rID0gJmNvbm4tPmNta3NbaV07CisKKwkJ LyogcmVwbGFjZSBleGlzdGluZz8gKi8KKwkJaWYgKGNoZWNrY21rLT5jbWtpZCA9PSBrZXlp ZCkKKwkJeworCQkJZnJlZShjaGVja2Ntay0+Y21rbmFtZSk7CisJCQlmcmVlKGNoZWNrY21r LT5jbWtyZWFsbSk7CisJCQljaGVja2Ntay0+Y21rbmFtZSA9IGtleW5hbWVfY29weTsKKwkJ CWNoZWNrY21rLT5jbWtyZWFsbSA9IGtleXJlYWxtX2NvcHk7CisJCQlmb3VuZCA9IHRydWU7 CisJCQlicmVhazsKKwkJfQorCX0KKworCS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3Vu ZCkKKwl7CisJCWludAkJCW5ld25jbWtzOworCQlzdHJ1Y3QgcGdfY21rICpuZXdjbWtzOwor CQlzdHJ1Y3QgcGdfY21rICpuZXdjbWs7CisKKwkJbmV3bmNta3MgPSBjb25uLT5uY21rcyAr IDE7CisJCWlmIChuZXduY21rcyA8PSAwKQorCQkJcmV0dXJuIEVPRjsKKwkJbmV3Y21rcyA9 IHJlYWxsb2MoY29ubi0+Y21rcywgbmV3bmNta3MgKiBzaXplb2Yoc3RydWN0IHBnX2Ntaykp OworCQlpZiAoIW5ld2Nta3MpCisJCXsKKwkJCWZyZWUoa2V5bmFtZV9jb3B5KTsKKwkJCWZy ZWUoa2V5cmVhbG1fY29weSk7CisJCQlyZXR1cm4gRU9GOworCQl9CisKKwkJbmV3Y21rID0g Jm5ld2Nta3NbbmV3bmNta3MgLSAxXTsKKwkJbmV3Y21rLT5jbWtpZCA9IGtleWlkOworCQlu ZXdjbWstPmNta25hbWUgPSBrZXluYW1lX2NvcHk7CisJCW5ld2Ntay0+Y21rcmVhbG0gPSBr ZXlyZWFsbV9jb3B5OworCisJCWNvbm4tPm5jbWtzID0gbmV3bmNta3M7CisJCWNvbm4tPmNt a3MgPSBuZXdjbWtzOworCX0KKworCXJldHVybiAwOworfQorCisvKgorICogUmVwbGFjZSBw bGFjZWhvbGRlcnMgaW4gaW5wdXQgc3RyaW5nLiAgUmV0dXJuIHZhbHVlIG1hbGxvYydlZC4K KyAqLworc3RhdGljIGNoYXIgKgorcmVwbGFjZV9jbWtfcGxhY2Vob2xkZXJzKGNvbnN0IGNo YXIgKmluLCBjb25zdCBjaGFyICpjbWtuYW1lLCBjb25zdCBjaGFyICpjbWtyZWFsbSwgaW50 IGNta2FsZywgY29uc3QgY2hhciAqYjY0ZGF0YSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVm OworCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJZm9yIChjb25zdCBjaGFyICpwID0g aW47ICpwOyBwKyspCisJeworCQlpZiAocFswXSA9PSAnJScpCisJCXsKKwkJCXN3aXRjaCAo cFsxXSkKKwkJCXsKKwkJCQljYXNlICdhJzoKKwkJCQkJeworCQkJCQkJY29uc3QgY2hhciAq czsKKworCQkJCQkJc3dpdGNoIChjbWthbGcpCisJCQkJCQl7CisJCQkJCQkJY2FzZSBQR19D TUtfUlNBRVNfT0FFUF9TSEFfMToKKwkJCQkJCQkJcyA9ICJSU0FFU19PQUVQX1NIQV8xIjsK KwkJCQkJCQkJYnJlYWs7CisJCQkJCQkJY2FzZSBQR19DTUtfUlNBRVNfT0FFUF9TSEFfMjU2 OgorCQkJCQkJCQlzID0gIlJTQUVTX09BRVBfU0hBXzI1NiI7CisJCQkJCQkJCWJyZWFrOwor CQkJCQkJCWRlZmF1bHQ6CisJCQkJCQkJCXMgPSAiSU5WQUxJRCI7CisJCQkJCQl9CisJCQkJ CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCBzKTsKKwkJCQkJfQorCQkJCQlwKys7CisJ CQkJCWJyZWFrOworCQkJCWNhc2UgJ2InOgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLCBiNjRkYXRhKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQljYXNlICdrJzoK KwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY21rbmFtZSk7CisJCQkJCXArKzsK KwkJCQkJYnJlYWs7CisJCQkJY2FzZSAncic6CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsIGNta3JlYWxtKTsKKwkJCQkJcCsrOworCQkJCQlicmVhazsKKwkJCQlkZWZhdWx0 OgorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlckNoYXIoJmJ1ZiwgcFswXSk7CisJCQl9CisJCX0K KwkJZWxzZQorCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKCZidWYsIHBbMF0pOworCX0KKwor CXJldHVybiBidWYuZGF0YTsKK30KKworI2lmbmRlZiBVU0VfU1NMCisvKgorICogRHVtbXkg aW1wbGVtZW50YXRpb24gZm9yIG5vbi1TU0wgYnVpbGRzCisgKi8KK3Vuc2lnbmVkIGNoYXIg KgorZGVjcnlwdF9jZWtfZnJvbV9maWxlKFBHY29ubiAqY29ubiwgRklMRSAqZnAsIGludCBj bWthbGcsCisJCQkJCSAgaW50IGZyb21sZW4sIGNvbnN0IHVuc2lnbmVkIGNoYXIgKmZyb20s CisJCQkJCSAgaW50ICp0b2xlbikKK3sKKwlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJy b3JNZXNzYWdlLAorCQkJCQkgIGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIG5v dCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZFxuIikpOworCXJldHVybiBOVUxMOworfQorI2Vu ZGlmCisKKy8qCisgKiBEZWNyeXB0IGEgQ0VLIHVzaW5nIHRoZSBnaXZlbiBDTUsuICBUaGUg Y2lwaGVydGV4dCBpcyBwYXNzZWQgaW4KKyAqICJmcm9tIiBhbmQgImZyb21sZW4iLiAgUmV0 dXJuIHRoZSBkZWNyeXB0ZWQgdmFsdWUgaW4gYSBtYWxsb2MnZWQgYXJlYSwgaXRzCisgKiBs ZW5ndGggdmlhICJ0b2xlbiIuICBSZXR1cm4gTlVMTCBvbiBlcnJvcjsgYWRkIGVycm9yIG1l c3NhZ2VzIGRpcmVjdGx5IHRvCisgKiAiY29ubiIuCisgKi8KK3N0YXRpYyB1bnNpZ25lZCBj aGFyICoKK2RlY3J5cHRfY2VrKFBHY29ubiAqY29ubiwgY29uc3QgUEdDTUsgKmNtaywgaW50 IGNta2FsZywKKwkJCWludCBmcm9tbGVuLCBjb25zdCB1bnNpZ25lZCBjaGFyICpmcm9tLAor CQkJaW50ICp0b2xlbikKK3sKKwljaGFyCSAgICpjbWtsb29rdXA7CisJYm9vbAkJZm91bmQg PSBmYWxzZTsKKwl1bnNpZ25lZCBjaGFyICpyZXN1bHQgPSBOVUxMOworCisJY21rbG9va3Vw ID0gc3RyZHVwKGNvbm4tPmNta2xvb2t1cCA/IGNvbm4tPmNta2xvb2t1cCA6ICIiKTsKKwor CWlmICghY21rbG9va3VwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9y TWVzc2FnZSwgbGlicHFfZ2V0dGV4dCgib3V0IG9mIG1lbW9yeVxuIikpOworCQlyZXR1cm4g TlVMTDsKKwl9CisKKwkvKgorCSAqIEFuYWx5emUgc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0 CisJICovCisJZm9yIChjaGFyICpzID0gc3RydG9rKGNta2xvb2t1cCwgIjsiKTsgczsgcyA9 IHN0cnRvayhOVUxMLCAiOyIpKQorCXsKKwkJY2hhcgkgICAqc2VwOworCisJCS8qIHNwbGl0 IGZvdW5kIHRva2VuIGF0ICc9JyAqLworCQlzZXAgPSBzdHJjaHIocywgJz0nKTsKKwkJaWYg KCFzZXApCisJCXsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2Us CisJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJzeW50YXggZXJyb3IgaW4gQ01LIGxvb2t1cCBz cGVjaWZpY2F0aW9uLCBtaXNzaW5nIFwiJWNcIjogJXNcbiIpLCAnPScsIHMpOworCQkJYnJl YWs7CisJCX0KKworCQkvKiBtYXRjaGluZyByZWFsbT8gKi8KKwkJaWYgKHN0cm5jbXAocywg IioiLCBzZXAgLSBzKSA9PSAwIHx8IHN0cm5jbXAocywgY21rLT5jbWtyZWFsbSwgc2VwIC0g cykgPT0gMCkKKwkJeworCQkJY2hhcgkgICAqc2VwMjsKKworCQkJZm91bmQgPSB0cnVlOwor CisJCQlzZXAyID0gc3RyY2hyKHNlcCwgJzonKTsKKwkJCWlmICghc2VwMikKKwkJCXsKKwkJ CQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdlLAorCQkJCQkJCQkgIGxp YnBxX2dldHRleHQoInN5bnRheCBlcnJvciBpbiBDTUsgbG9va3VwIHNwZWNpZmljYXRpb24s IG1pc3NpbmcgXCIlY1wiOiAlc1xuIiksICc6Jywgcyk7CisJCQkJZ290byBmYWlsOworCQkJ fQorCisJCQlpZiAoc3RybmNtcChzZXAgKyAxLCAiZmlsZSIsIHNlcDIgLSAoc2VwICsgMSkp ID09IDApCisJCQl7CisJCQkJY2hhcgkgICAqY21rZmlsZW5hbWU7CisJCQkJRklMRQkgICAq ZnA7CisKKwkJCQljbWtmaWxlbmFtZSA9IHJlcGxhY2VfY21rX3BsYWNlaG9sZGVycyhzZXAy ICsgMSwgY21rLT5jbWtuYW1lLCBjbWstPmNta3JlYWxtLCBjbWthbGcsICJJTlZBTElEIik7 CisJCQkJZnAgPSBmb3BlbihjbWtmaWxlbmFtZSwgInJiIik7CisJCQkJaWYgKGZwKQorCQkJ CXsKKwkJCQkJcmVzdWx0ID0gZGVjcnlwdF9jZWtfZnJvbV9maWxlKGNvbm4sIGZwLCBjbWth bGcsIGZyb21sZW4sIGZyb20sIHRvbGVuKTsKKwkJCQkJZmNsb3NlKGZwKTsKKwkJCQl9CisJ CQkJZWxzZQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVz c2FnZSwKKwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IG9wZW4gZmlsZSBc IiVzXCI6ICVtXG4iKSwgY21rZmlsZW5hbWUpOworCQkJCQlmcmVlKGNta2ZpbGVuYW1lKTsK KwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQlmcmVlKGNta2ZpbGVuYW1lKTsKKwkJCX0K KwkJCWVsc2UgaWYgKHN0cm5jbXAoc2VwICsgMSwgInJ1biIsIHNlcDIgLSAoc2VwICsgMSkp ID09IDApCisJCQl7CisJCQkJaW50CQkJZW5jbGVuOworCQkJCWNoYXIJICAgKmVuYzsKKwkJ CQljaGFyCSAgICpjb21tYW5kOworCQkJCUZJTEUJICAgKmZwOworCQkJCWNoYXIJCWJ1Zls0 MDk2XTsKKworCQkJCWVuY2xlbiA9IHBnX2I2NF9lbmNfbGVuKGZyb21sZW4pOworCQkJCWVu YyA9IG1hbGxvYyhlbmNsZW4gKyAxKTsKKwkJCQlpZiAoIWVuYykKKwkJCQl7CisJCQkJCWFw cGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoIm91 dCBvZiBtZW1vcnlcbiIpKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQllbmNsZW4g PSBwZ19iNjRfZW5jb2RlKChjb25zdCBjaGFyICopIGZyb20sIGZyb21sZW4sIGVuYywgZW5j bGVuKTsKKwkJCQlpZiAoZW5jbGVuIDwgMCkKKwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVm ZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsIGxpYnBxX2dldHRleHQoImJhc2U2NCBlbmNvZGlu ZyBmYWlsZWRcbiIpKTsKKwkJCQkJZnJlZShlbmMpOworCQkJCQlnb3RvIGZhaWw7CisJCQkJ fQorCQkJCWNvbW1hbmQgPSByZXBsYWNlX2Nta19wbGFjZWhvbGRlcnMoc2VwMiArIDEsIGNt ay0+Y21rbmFtZSwgY21rLT5jbWtyZWFsbSwgY21rYWxnLCBlbmMpOworCQkJCWZyZWUoZW5j KTsKKwkJCQlmcCA9IHBvcGVuKGNvbW1hbmQsICJyIik7CisJCQkJZnJlZShjb21tYW5kKTsK KwkJCQlpZiAoIWZwKQorCQkJCXsKKwkJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVy cm9yTWVzc2FnZSwKKwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiY291bGQgbm90IHJ1biBj b21tYW5kIFwiJXNcIjogJW1cbiIpLCBjb21tYW5kKTsKKwkJCQkJZ290byBmYWlsOworCQkJ CX0KKwkJCQlpZiAoZmdldHMoYnVmLCBzaXplb2YoYnVmKSwgZnApKQorCQkJCXsKKwkJCQkJ aW50CQkJbGluZWxlbjsKKwkJCQkJaW50CQkJZGVjbGVuOworCQkJCQljaGFyCSAgICpkZWM7 CisKKwkJCQkJbGluZWxlbiA9IHN0cmxlbihidWYpOworCQkJCQlpZiAoYnVmW2xpbmVsZW4g LSAxXSA9PSAnXG4nKQorCQkJCQl7CisJCQkJCQlidWZbbGluZWxlbiAtIDFdID0gJ1wwJzsK KwkJCQkJCWxpbmVsZW4tLTsKKwkJCQkJfQorCQkJCQlkZWNsZW4gPSBwZ19iNjRfZGVjX2xl bihsaW5lbGVuKTsKKwkJCQkJZGVjID0gbWFsbG9jKGRlY2xlbik7CisJCQkJCWlmICghZGVj KQorCQkJCQl7CisJCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmY29ubi0+ZXJyb3JNZXNzYWdl LCBsaWJwcV9nZXR0ZXh0KCJvdXQgb2YgbWVtb3J5XG4iKSk7CisJCQkJCQlnb3RvIGZhaWw7 CisJCQkJCX0KKwkJCQkJZGVjbGVuID0gcGdfYjY0X2RlY29kZShidWYsIGxpbmVsZW4sIGRl YywgZGVjbGVuKTsKKwkJCQkJaWYgKGRlY2xlbiA8IDApCisJCQkJCXsKKwkJCQkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkJICBsaWJwcV9n ZXR0ZXh0KCJiYXNlNjQgZGVjb2RpbmcgZmFpbGVkXG4iKSk7CisJCQkJCQlmcmVlKGRlYyk7 CisJCQkJCQlnb3RvIGZhaWw7CisJCQkJCX0KKwkJCQkJcmVzdWx0ID0gKHVuc2lnbmVkIGNo YXIgKikgZGVjOworCQkJCQkqdG9sZW4gPSBkZWNsZW47CisJCQkJfQorCQkJCWVsc2UKKwkJ CQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJ CQkJCQkgIGxpYnBxX2dldHRleHQoImNvdWxkIG5vdCByZWFkIGZyb20gY29tbWFuZDogJW1c biIpKTsKKwkJCQkJcGNsb3NlKGZwKTsKKwkJCQkJZ290byBmYWlsOworCQkJCX0KKwkJCQlw Y2xvc2UoZnApOworCQkJfQorCQkJZWxzZQorCQkJeworCQkJCWFwcGVuZFBRRXhwQnVmZmVy KCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCSAgbGlicHFfZ2V0dGV4dCgiQ01LIGxv b2t1cCBzY2hlbWUgXCIlc1wiIG5vdCByZWNvZ25pemVkXG4iKSwgc2VwICsgMSk7CisJCQkJ Z290byBmYWlsOworCQkJfQorCQl9CisJfQorCisJaWYgKCFmb3VuZCkKKwl7CisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRl eHQoIm5vIENNSyBsb29rdXAgZm91bmQgZm9yIHJlYWxtIFwiJXNcIlxuIiksIGNtay0+Y21r cmVhbG0pOworCX0KKworZmFpbDoKKwlmcmVlKGNta2xvb2t1cCk7CisJcmV0dXJuIHJlc3Vs dDsKK30KKworaW50CitwcVNhdmVDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubiwg aW50IGtleWlkLCBpbnQgY21raWQsIGludCBjbWthbGcsIGNvbnN0IHVuc2lnbmVkIGNoYXIg KnZhbHVlLCBpbnQgbGVuKQoreworCVBHQ01LCSAgICpjbWsgPSBOVUxMOworCXVuc2lnbmVk IGNoYXIgKnBsYWludmFsID0gTlVMTDsKKwlpbnQJCQlwbGFpbnZhbGxlbiA9IDA7CisJYm9v bAkJZm91bmQ7CisKKwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4tPm5jbWtzOyBpKyspCisJ eworCQlpZiAoY29ubi0+Y21rc1tpXS5jbWtpZCA9PSBjbWtpZCkKKwkJeworCQkJY21rID0g JmNvbm4tPmNta3NbaV07CisJCQlicmVhazsKKwkJfQorCX0KKworCWlmICghY21rKQorCQly ZXR1cm4gRU9GOworCisJcGxhaW52YWwgPSBkZWNyeXB0X2Nlayhjb25uLCBjbWssIGNta2Fs ZywgbGVuLCB2YWx1ZSwgJnBsYWludmFsbGVuKTsKKwlpZiAoIXBsYWludmFsKQorCQlyZXR1 cm4gRU9GOworCisJZm91bmQgPSBmYWxzZTsKKwlmb3IgKGludCBpID0gMDsgaSA8IGNvbm4t Pm5jZWtzOyBpKyspCisJeworCQlzdHJ1Y3QgcGdfY2VrICpjaGVja2NlayA9ICZjb25uLT5j ZWtzW2ldOworCisJCS8qIHJlcGxhY2UgZXhpc3Rpbmc/ICovCisJCWlmIChjaGVja2Nlay0+ Y2VraWQgPT0ga2V5aWQpCisJCXsKKwkJCWZyZWUoY2hlY2tjZWstPmNla2RhdGEpOworCQkJ Y2hlY2tjZWstPmNla2RhdGEgPSBwbGFpbnZhbDsKKwkJCWNoZWNrY2VrLT5jZWtkYXRhbGVu ID0gcGxhaW52YWxsZW47CisJCQlmb3VuZCA9IHRydWU7CisJCQlicmVhazsKKwkJfQorCX0K KworCS8qIGFwcGVuZCBuZXc/ICovCisJaWYgKCFmb3VuZCkKKwl7CisJCWludAkJCW5ld25j ZWtzOworCQlzdHJ1Y3QgcGdfY2VrICpuZXdjZWtzOworCQlzdHJ1Y3QgcGdfY2VrICpuZXdj ZWs7CisKKwkJbmV3bmNla3MgPSBjb25uLT5uY2VrcyArIDE7CisJCWlmIChuZXduY2VrcyA8 PSAwKQorCQl7CisJCQlmcmVlKHBsYWludmFsKTsKKwkJCXJldHVybiBFT0Y7CisJCX0KKwkJ bmV3Y2VrcyA9IHJlYWxsb2MoY29ubi0+Y2VrcywgbmV3bmNla3MgKiBzaXplb2Yoc3RydWN0 IHBnX2NlaykpOworCQlpZiAoIW5ld2Nla3MpCisJCXsKKwkJCWZyZWUocGxhaW52YWwpOwor CQkJcmV0dXJuIEVPRjsKKwkJfQorCisJCW5ld2NlayA9ICZuZXdjZWtzW25ld25jZWtzIC0g MV07CisJCW5ld2Nlay0+Y2VraWQgPSBrZXlpZDsKKwkJbmV3Y2VrLT5jZWtkYXRhID0gcGxh aW52YWw7CisJCW5ld2Nlay0+Y2VrZGF0YWxlbiA9IHBsYWludmFsbGVuOworCisJCWNvbm4t Pm5jZWtzID0gbmV3bmNla3M7CisJCWNvbm4tPmNla3MgPSBuZXdjZWtzOworCX0KKworCXJl dHVybiAwOworfQogCiAvKgogICogcHFSb3dQcm9jZXNzb3IKQEAgLTEyNTMsNiArMTYzMyw1 NSBAQCBwcVJvd1Byb2Nlc3NvcihQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKiplcnJtc2dw KQogCQkJYm9vbAkJaXNiaW5hcnkgPSAocmVzLT5hdHREZXNjc1tpXS5mb3JtYXQgIT0gMCk7 CiAJCQljaGFyCSAgICp2YWw7CiAKKwkJCWlmIChyZXMtPmF0dERlc2NzW2ldLmNla2lkKQor CQkJeworI2lmZGVmIFVTRV9TU0wKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKworCQkJ CWZvciAoaW50IGogPSAwOyBqIDwgY29ubi0+bmNla3M7IGorKykKKwkJCQl7CisJCQkJCWlm IChjb25uLT5jZWtzW2pdLmNla2lkID09IHJlcy0+YXR0RGVzY3NbaV0uY2VraWQpCisJCQkJ CXsKKwkJCQkJCWNlayA9ICZjb25uLT5jZWtzW2pdOworCQkJCQkJYnJlYWs7CisJCQkJCX0K KwkJCQl9CisJCQkJaWYgKCFjZWspCisJCQkJeworCQkJCQkqZXJybXNncCA9IGxpYnBxX2dl dHRleHQoImNvbHVtbiBlbmNyeXB0aW9uIGtleSBub3QgZm91bmQiKTsKKwkJCQkJZ290byBm YWlsOworCQkJCX0KKworCQkJCWlmIChpc2JpbmFyeSkKKwkJCQl7CisJCQkJCXZhbCA9IChj aGFyICopIGRlY3J5cHRfdmFsdWUocmVzLCBjZWssIHJlcy0+YXR0RGVzY3NbaV0uY2VrYWxn LAorCQkJCQkJCQkJCQkJIChjb25zdCB1bnNpZ25lZCBjaGFyICopIGNvbHVtbnNbaV0udmFs dWUsIGNsZW4sIGVycm1zZ3ApOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQl1bnNp Z25lZCBjaGFyICpidWY7CisJCQkJCXVuc2lnbmVkIGNoYXIgKmVuY2NvbHZhbDsKKwkJCQkJ c2l6ZV90CQllbmNjb2x2YWxsZW47CisKKwkJCQkJYnVmID0gbWFsbG9jKGNsZW4gKyAxKTsK KwkJCQkJbWVtY3B5KGJ1ZiwgY29sdW1uc1tpXS52YWx1ZSwgY2xlbik7CisJCQkJCWJ1Zltj bGVuXSA9ICdcMCc7CisJCQkJCWVuY2NvbHZhbCA9IFBRdW5lc2NhcGVCeXRlYShidWYsICZl bmNjb2x2YWxsZW4pOworCQkJCQl2YWwgPSAoY2hhciAqKSBkZWNyeXB0X3ZhbHVlKHJlcywg Y2VrLCByZXMtPmF0dERlc2NzW2ldLmNla2FsZywKKwkJCQkJCQkJCQkJCSBlbmNjb2x2YWws IGVuY2NvbHZhbGxlbiwgZXJybXNncCk7CisJCQkJCWZyZWUoZW5jY29sdmFsKTsKKwkJCQkJ ZnJlZShidWYpOworCQkJCX0KKworCQkJCWlmICh2YWwgPT0gTlVMTCkKKwkJCQkJZ290byBm YWlsOworI2Vsc2UKKwkJCQkqZXJybXNncCA9IGxpYnBxX2dldHRleHQoImNvbHVtbiBlbmNy eXB0aW9uIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCIpOworCQkJCWdvdG8gZmFpbDsK KyNlbmRpZgorCQkJfQorCQkJZWxzZQorCQkJewogCQkJdmFsID0gKGNoYXIgKikgcHFSZXN1 bHRBbGxvYyhyZXMsIGNsZW4gKyAxLCBpc2JpbmFyeSk7CiAJCQlpZiAodmFsID09IE5VTEwp CiAJCQkJZ290byBmYWlsOwpAQCAtMTI2MCw2ICsxNjg5LDcgQEAgcHFSb3dQcm9jZXNzb3Io UEdjb25uICpjb25uLCBjb25zdCBjaGFyICoqZXJybXNncCkKIAkJCS8qIGNvcHkgYW5kIHpl cm8tdGVybWluYXRlIHRoZSBkYXRhIChldmVuIGlmIGl0J3MgYmluYXJ5KSAqLwogCQkJbWVt Y3B5KHZhbCwgY29sdW1uc1tpXS52YWx1ZSwgY2xlbik7CiAJCQl2YWxbY2xlbl0gPSAnXDAn OworCQkJfQogCiAJCQl0dXBbaV0ubGVuID0gY2xlbjsKIAkJCXR1cFtpXS52YWx1ZSA9IHZh bDsKQEAgLTE1ODcsNyArMjAxNyw5IEBAIFBRc2VuZFF1ZXJ5UGFyYW1zKFBHY29ubiAqY29u biwKIAkJCQkJCSAgIHBhcmFtVmFsdWVzLAogCQkJCQkJICAgcGFyYW1MZW5ndGhzLAogCQkJ CQkJICAgcGFyYW1Gb3JtYXRzLAotCQkJCQkJICAgcmVzdWx0Rm9ybWF0KTsKKwkJCQkJCSAg IE5VTEwsCisJCQkJCQkgICByZXN1bHRGb3JtYXQsCisJCQkJCQkgICBOVUxMKTsKIH0KIAog LyoKQEAgLTE3MDUsNiArMjEzNywyMCBAQCBQUXNlbmRRdWVyeVByZXBhcmVkKFBHY29ubiAq Y29ubiwKIAkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJCQkJCWNvbnN0IGludCAq cGFyYW1Gb3JtYXRzLAogCQkJCQlpbnQgcmVzdWx0Rm9ybWF0KQoreworCXJldHVybiBQUXNl bmRRdWVyeVByZXBhcmVkMihjb25uLCBzdG10TmFtZSwgblBhcmFtcywgcGFyYW1WYWx1ZXMs IHBhcmFtTGVuZ3RocywgcGFyYW1Gb3JtYXRzLCBOVUxMLCByZXN1bHRGb3JtYXQsIE5VTEwp OworfQorCitpbnQKK1BRc2VuZFF1ZXJ5UHJlcGFyZWQyKFBHY29ubiAqY29ubiwKKwkJCQkJ IGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkgaW50IG5QYXJhbXMsCisJCQkJCSBjb25z dCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCSBjb25zdCBpbnQgKnBhcmFtTGVu Z3RocywKKwkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAorCQkJCQkgY29uc3QgaW50 ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMsCisJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0 LAorCQkJCQkgUEdyZXN1bHQgKnBhcmFtRGVzYykKIHsKIAlpZiAoIVBRc2VuZFF1ZXJ5U3Rh cnQoY29ubiwgdHJ1ZSkpCiAJCXJldHVybiAwOwpAQCAtMTczMiw3ICsyMTc4LDkgQEAgUFFz ZW5kUXVlcnlQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkJCQkgICBwYXJhbVZhbHVlcywK IAkJCQkJCSAgIHBhcmFtTGVuZ3RocywKIAkJCQkJCSAgIHBhcmFtRm9ybWF0cywKLQkJCQkJ CSAgIHJlc3VsdEZvcm1hdCk7CisJCQkJCQkgICBwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlv bnMsCisJCQkJCQkgICByZXN1bHRGb3JtYXQsCisJCQkJCQkgICBwYXJhbURlc2MpOwogfQog CiAvKgpAQCAtMTgzMyw3ICsyMjgxLDkgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAqY29u biwKIAkJCQljb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCiAJCQkJY29uc3QgaW50 ICpwYXJhbUxlbmd0aHMsCiAJCQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCi0JCQkJaW50 IHJlc3VsdEZvcm1hdCkKKwkJCQljb25zdCBpbnQgKnBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0 aW9ucywKKwkJCQlpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCVBHcmVzdWx0ICpwYXJhbURlc2Mp CiB7CiAJaW50CQkJaTsKIAlQR2NtZFF1ZXVlRW50cnkgKmVudHJ5OwpAQCAtMTg4MCwxNCAr MjMzMCw1MyBAQCBQUXNlbmRRdWVyeUd1dHMoUEdjb25uICpjb25uLAogCQlwcVB1dHMoc3Rt dE5hbWUsIGNvbm4pIDwgMCkKIAkJZ290byBzZW5kRmFpbGVkOwogCisJLyogQ2hlY2sgZm9y Y2UgY29sdW1uIGVuY3J5cHRpb24gKi8KKwlpZiAoblBhcmFtcyA+IDAgJiYgcGFyYW1Gb3Jj ZUNvbHVtbkVuY3J5cHRpb25zKQorCXsKKwkJZm9yIChpID0gMDsgaSA8IG5QYXJhbXM7IGkr KykKKwkJeworCQkJaWYgKHBhcmFtRm9yY2VDb2x1bW5FbmNyeXB0aW9uc1tpXSkKKwkJCXsK KwkJCQlpZiAoIShwYXJhbURlc2MgJiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVzY3Mg JiYKKwkJCQkJICBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpKQorCQkJCXsKKwkJ CQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJ CQkgbGlicHFfZ2V0dGV4dCgicGFyYW1ldGVyIHdpdGggZm9yY2VkIGVuY3J5cHRpb24gaXMg bm90IHRvIGJlIGVuY3J5cHRlZFxuIikpOworCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJ fQorCQkJfQorCQl9CisJfQorCiAJLyogU2VuZCBwYXJhbWV0ZXIgZm9ybWF0cyAqLwotCWlm IChuUGFyYW1zID4gMCAmJiBwYXJhbUZvcm1hdHMpCisJaWYgKG5QYXJhbXMgPiAwICYmIChw YXJhbUZvcm1hdHMgfHwgKHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MpKSkK IAl7CiAJCWlmIChwcVB1dEludChuUGFyYW1zLCAyLCBjb25uKSA8IDApCiAJCQlnb3RvIHNl bmRGYWlsZWQ7CisKIAkJZm9yIChpID0gMDsgaSA8IG5QYXJhbXM7IGkrKykKIAkJewotCQkJ aWYgKHBxUHV0SW50KHBhcmFtRm9ybWF0c1tpXSwgMiwgY29ubikgPCAwKQorCQkJaW50CQkJ Zm9ybWF0ID0gcGFyYW1Gb3JtYXRzID8gcGFyYW1Gb3JtYXRzW2ldIDogMDsKKworCQkJaWYg KHBhcmFtRGVzYyAmJiBwYXJhbURlc2MtPnBhcmFtRGVzY3MpCisJCQl7CisJCQkJUEdyZXNQ YXJhbURlc2MgKnBkID0gJnBhcmFtRGVzYy0+cGFyYW1EZXNjc1tpXTsKKworCQkJCWlmIChw ZC0+Y2VraWQpCisJCQkJeworCQkJCQlpZiAoZm9ybWF0ICE9IDApCisJCQkJCXsKKwkJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkJCQkJ CSBsaWJwcV9nZXR0ZXh0KCJmb3JtYXQgbXVzdCBiZSB0ZXh0IGZvciBlbmNyeXB0ZWQgcGFy YW1ldGVyXG4iKSk7CisJCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisJCQkJCX0KKwkJCQkJZm9y bWF0ID0gMTsKKwkJCQkJZm9ybWF0IHw9IDB4MTA7CisJCQkJfQorCQkJfQorCisJCQlpZiAo cHFQdXRJbnQoZm9ybWF0LCAyLCBjb25uKSA8IDApCiAJCQkJZ290byBzZW5kRmFpbGVkOwog CQl9CiAJfQpAQCAtMTkwNiw2ICsyMzk1LDcgQEAgUFFzZW5kUXVlcnlHdXRzKFBHY29ubiAq Y29ubiwKIAkJaWYgKHBhcmFtVmFsdWVzICYmIHBhcmFtVmFsdWVzW2ldKQogCQl7CiAJCQlp bnQJCQluYnl0ZXM7CisJCQljb25zdCBjaGFyICpwYXJhbVZhbHVlOwogCiAJCQlpZiAocGFy YW1Gb3JtYXRzICYmIHBhcmFtRm9ybWF0c1tpXSAhPSAwKQogCQkJewpAQCAtMTkyNCw5ICsy NDE0LDU0IEBAIFBRc2VuZFF1ZXJ5R3V0cyhQR2Nvbm4gKmNvbm4sCiAJCQkJLyogdGV4dCBw YXJhbWV0ZXIsIGRvIG5vdCB1c2UgcGFyYW1MZW5ndGhzICovCiAJCQkJbmJ5dGVzID0gc3Ry bGVuKHBhcmFtVmFsdWVzW2ldKTsKIAkJCX0KKworCQkJcGFyYW1WYWx1ZSA9IHBhcmFtVmFs dWVzW2ldOworCisJCQlpZiAocGFyYW1EZXNjICYmIHBhcmFtRGVzYy0+cGFyYW1EZXNjcyAm JiBwYXJhbURlc2MtPnBhcmFtRGVzY3NbaV0uY2VraWQpCisJCQl7CisjaWZkZWYgVVNFX1NT TAorCQkJCWJvb2wJCWVuY19kZXQgPSAocGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmZsYWdz ICYgMHgwMSkgIT0gMDsKKwkJCQlQR0NFSwkgICAqY2VrID0gTlVMTDsKKwkJCQljaGFyCSAg ICplbmNfcGFyYW1WYWx1ZTsKKwkJCQlpbnQJCQllbmNfbmJ5dGVzID0gbmJ5dGVzOworCisJ CQkJZm9yIChpbnQgaiA9IDA7IGogPCBjb25uLT5uY2VrczsgaisrKQorCQkJCXsKKwkJCQkJ aWYgKGNvbm4tPmNla3Nbal0uY2VraWQgPT0gcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNl a2lkKQorCQkJCQl7CisJCQkJCQljZWsgPSAmY29ubi0+Y2Vrc1tqXTsKKwkJCQkJCWJyZWFr OworCQkJCQl9CisJCQkJfQorCQkJCWlmICghY2VrKQorCQkJCXsKKwkJCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCQkJCSAgbGlicHFfZ2V0dGV4 dCgiY29sdW1uIGVuY3J5cHRpb24ga2V5IG5vdCBmb3VuZFxuIikpOworCQkJCQlnb3RvIHNl bmRGYWlsZWQ7CisJCQkJfQorCisJCQkJZW5jX3BhcmFtVmFsdWUgPSAoY2hhciAqKSBlbmNy eXB0X3ZhbHVlKGNvbm4sIGNlaywgcGFyYW1EZXNjLT5wYXJhbURlc2NzW2ldLmNla2FsZywK KwkJCQkJCQkJCQkJCQkJKGNvbnN0IHVuc2lnbmVkIGNoYXIgKikgcGFyYW1WYWx1ZSwgJmVu Y19uYnl0ZXMsIGVuY19kZXQpOworCQkJCWlmICghZW5jX3BhcmFtVmFsdWUpCisJCQkJCWdv dG8gc2VuZEZhaWxlZDsKKworCQkJCWlmIChwcVB1dEludChlbmNfbmJ5dGVzLCA0LCBjb25u KSA8IDAgfHwKKwkJCQkJcHFQdXRuY2hhcihlbmNfcGFyYW1WYWx1ZSwgZW5jX25ieXRlcywg Y29ubikgPCAwKQorCQkJCQlnb3RvIHNlbmRGYWlsZWQ7CisKKwkJCQlmcmVlKGVuY19wYXJh bVZhbHVlKTsKKyNlbHNlCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVz c2FnZSwKKwkJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJjb2x1bW4gZW5jcnlwdGlvbiBub3Qg c3VwcG9ydGVkIGJ5IHRoaXMgYnVpbGRcbiIpKTsKKwkJCQlnb3RvIHNlbmRGYWlsZWQ7Cisj ZW5kaWYKKwkJCX0KKwkJCWVsc2UKKwkJCXsKIAkJCWlmIChwcVB1dEludChuYnl0ZXMsIDQs IGNvbm4pIDwgMCB8fAotCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZXNbaV0sIG5ieXRlcywg Y29ubikgPCAwKQorCQkJCXBxUHV0bmNoYXIocGFyYW1WYWx1ZSwgbmJ5dGVzLCBjb25uKSA8 IDApCiAJCQkJZ290byBzZW5kRmFpbGVkOworCQkJfQogCQl9CiAJCWVsc2UKIAkJewpAQCAt MjM4MCwxMiArMjkxNSwyNyBAQCBQUWV4ZWNQcmVwYXJlZChQR2Nvbm4gKmNvbm4sCiAJCQkg ICBjb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCSAgIGNvbnN0IGludCAqcGFyYW1Gb3Jt YXRzLAogCQkJICAgaW50IHJlc3VsdEZvcm1hdCkKK3sKKwlyZXR1cm4gUFFleGVjUHJlcGFy ZWQyKGNvbm4sIHN0bXROYW1lLCBuUGFyYW1zLCBwYXJhbVZhbHVlcywgcGFyYW1MZW5ndGhz LCBwYXJhbUZvcm1hdHMsIE5VTEwsIHJlc3VsdEZvcm1hdCwgTlVMTCk7Cit9CisKK1BHcmVz dWx0ICoKK1BRZXhlY1ByZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJY29uc3QgY2hhciAq c3RtdE5hbWUsCisJCQkJaW50IG5QYXJhbXMsCisJCQkJY29uc3QgY2hhciAqY29uc3QgKnBh cmFtVmFsdWVzLAorCQkJCWNvbnN0IGludCAqcGFyYW1MZW5ndGhzLAorCQkJCWNvbnN0IGlu dCAqcGFyYW1Gb3JtYXRzLAorCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5 cHRpb25zLAorCQkJCWludCByZXN1bHRGb3JtYXQsCisJCQkJUEdyZXN1bHQgKnBhcmFtRGVz YykKIHsKIAlpZiAoIVBRZXhlY1N0YXJ0KGNvbm4pKQogCQlyZXR1cm4gTlVMTDsKLQlpZiAo IVBRc2VuZFF1ZXJ5UHJlcGFyZWQoY29ubiwgc3RtdE5hbWUsCi0JCQkJCQkJIG5QYXJhbXMs IHBhcmFtVmFsdWVzLCBwYXJhbUxlbmd0aHMsCi0JCQkJCQkJIHBhcmFtRm9ybWF0cywgcmVz dWx0Rm9ybWF0KSkKKwlpZiAoIVBRc2VuZFF1ZXJ5UHJlcGFyZWQyKGNvbm4sIHN0bXROYW1l LAorCQkJCQkJCSAgblBhcmFtcywgcGFyYW1WYWx1ZXMsIHBhcmFtTGVuZ3RocywKKwkJCQkJ CQkgIHBhcmFtRm9ybWF0cywgcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJCQkJ CSAgcmVzdWx0Rm9ybWF0LCBwYXJhbURlc2MpKQogCQlyZXR1cm4gTlVMTDsKIAlyZXR1cm4g UFFleGVjRmluaXNoKGNvbm4pOwogfQpAQCAtMzY4Myw2ICs0MjMzLDE3IEBAIFBRZm1vZChj b25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVtKQogCQlyZXR1cm4gMDsKIH0KIAor aW50CitQUWZpc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgZmllbGRfbnVt KQoreworCWlmICghY2hlY2tfZmllbGRfbnVtYmVyKHJlcywgZmllbGRfbnVtKSkKKwkJcmV0 dXJuIGZhbHNlOworCWlmIChyZXMtPmF0dERlc2NzKQorCQlyZXR1cm4gKHJlcy0+YXR0RGVz Y3NbZmllbGRfbnVtXS5jZWtpZCAhPSAwKTsKKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30K KwogY2hhciAqCiBQUWNtZFN0YXR1cyhQR3Jlc3VsdCAqcmVzKQogewpAQCAtMzg2OCw2ICs0 NDI5LDE3IEBAIFBRcGFyYW10eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBwYXJhbV9u dW0pCiAJCXJldHVybiBJbnZhbGlkT2lkOwogfQogCitpbnQKK1BRcGFyYW1pc2VuY3J5cHRl ZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1fbnVtKQoreworCWlmICghY2hlY2tf cGFyYW1fbnVtYmVyKHJlcywgcGFyYW1fbnVtKSkKKwkJcmV0dXJuIGZhbHNlOworCWlmIChy ZXMtPnBhcmFtRGVzY3MpCisJCXJldHVybiAocmVzLT5wYXJhbURlc2NzW3BhcmFtX251bV0u Y2VraWQgIT0gMCk7CisJZWxzZQorCQlyZXR1cm4gZmFsc2U7Cit9CisKIAogLyogUFFzZXRu b25ibG9ja2luZzoKICAqCXNldHMgdGhlIFBHY29ubidzIGRhdGFiYXNlIGNvbm5lY3Rpb24g bm9uLWJsb2NraW5nIGlmIHRoZSBhcmcgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtcHJvdG9jb2wzLmMgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1w cm90b2NvbDMuYwppbmRleCBiYmZiNTU1NDJkLi5kYmRhN2Q5YzdmIDEwMDY0NAotLS0gYS9z cmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNl cy9saWJwcS9mZS1wcm90b2NvbDMuYwpAQCAtNDMsNiArNDMsOCBAQCBzdGF0aWMgaW50CWdl dFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpOwogc3RhdGlj IGludAlnZXRQYXJhbURlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgp Owogc3RhdGljIGludAlnZXRBbm90aGVyVHVwbGUoUEdjb25uICpjb25uLCBpbnQgbXNnTGVu Z3RoKTsKIHN0YXRpYyBpbnQJZ2V0UGFyYW1ldGVyU3RhdHVzKFBHY29ubiAqY29ubik7Citz dGF0aWMgaW50CWdldENvbHVtbk1hc3RlcktleShQR2Nvbm4gKmNvbm4pOworc3RhdGljIGlu dAlnZXRDb2x1bW5FbmNyeXB0aW9uS2V5KFBHY29ubiAqY29ubik7CiBzdGF0aWMgaW50CWdl dE5vdGlmeShQR2Nvbm4gKmNvbm4pOwogc3RhdGljIGludAlnZXRDb3B5U3RhcnQoUEdjb25u ICpjb25uLCBFeGVjU3RhdHVzVHlwZSBjb3B5dHlwZSk7CiBzdGF0aWMgaW50CWdldFJlYWR5 Rm9yUXVlcnkoUEdjb25uICpjb25uKTsKQEAgLTMxNyw2ICszMTksMjIgQEAgcHFQYXJzZUlu cHV0MyhQR2Nvbm4gKmNvbm4pCiAJCQkJCWlmIChwcUdldEludCgmKGNvbm4tPmJlX2tleSks IDQsIGNvbm4pKQogCQkJCQkJcmV0dXJuOwogCQkJCQlicmVhazsKKwkJCQljYXNlICd5JzoJ CS8qIENvbHVtbiBNYXN0ZXIgS2V5ICovCisJCQkJCWlmIChnZXRDb2x1bW5NYXN0ZXJLZXko Y29ubikpCisJCQkJCXsKKwkJCQkJCS8vIFRPRE86IHJldmlldyBlcnJvciBoYW5kbGluZyBo ZXJlCisJCQkJCQlwcVNhdmVFcnJvclJlc3VsdChjb25uKTsKKwkJCQkJCXBxSW50ZXJuYWxO b3RpY2UoJmNvbm4tPm5vdGljZUhvb2tzLCAiJXMiLCBjb25uLT5lcnJvck1lc3NhZ2UuZGF0 YSk7CisJCQkJCX0KKwkJCQkJYnJlYWs7CisJCQkJY2FzZSAnWSc6CQkvKiBDb2x1bW4gRW5j cnlwdGlvbiBLZXkgKi8KKwkJCQkJaWYgKGdldENvbHVtbkVuY3J5cHRpb25LZXkoY29ubikp CisJCQkJCXsKKwkJCQkJCS8vIFRPRE86IHJldmlldyBlcnJvciBoYW5kbGluZyBoZXJlCisJ CQkJCQlwcVNhdmVFcnJvclJlc3VsdChjb25uKTsKKwkJCQkJCXBxSW50ZXJuYWxOb3RpY2Uo JmNvbm4tPm5vdGljZUhvb2tzLCAiJXMiLCBjb25uLT5lcnJvck1lc3NhZ2UuZGF0YSk7CisJ CQkJCX0KKwkJCQkJYnJlYWs7CiAJCQkJY2FzZSAnVCc6CQkvKiBSb3cgRGVzY3JpcHRpb24g Ki8KIAkJCQkJaWYgKGNvbm4tPmVycm9yX3Jlc3VsdCB8fAogCQkJCQkJKGNvbm4tPnJlc3Vs dCAhPSBOVUxMICYmCkBAIC01NzQsNiArNTkyLDggQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBH Y29ubiAqY29ubiwgaW50IG1zZ0xlbmd0aCkKIAkJaW50CQkJdHlwbGVuOwogCQlpbnQJCQlh dHR0eXBtb2Q7CiAJCWludAkJCWZvcm1hdDsKKwkJaW50CQkJY2VraWQ7CisJCWludAkJCWNl a2FsZzsKIAogCQlpZiAocHFHZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSB8fAogCQkJ cHFHZXRJbnQoJnRhYmxlaWQsIDQsIGNvbm4pIHx8CkBAIC01ODgsNiArNjA4LDIxIEBAIGdl dFJvd0Rlc2NyaXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJCQlnb3Rv IGFkdmFuY2VfYW5kX2Vycm9yOwogCQl9CiAKKwkJaWYgKGNvbm4tPmNvbHVtbl9lbmNyeXB0 aW9uX2VuYWJsZWQpCisJCXsKKwkJCWlmIChwcUdldEludCgmY2VraWQsIDQsIGNvbm4pIHx8 CisJCQkJcHFHZXRJbnQoJmNla2FsZywgMiwgY29ubikpCisJCQl7CisJCQkJZXJybXNnID0g bGlicHFfZ2V0dGV4dCgiaW5zdWZmaWNpZW50IGRhdGEgaW4gXCJUXCIgbWVzc2FnZSIpOwor CQkJCWdvdG8gYWR2YW5jZV9hbmRfZXJyb3I7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJ CQljZWtpZCA9IDA7CisJCQljZWthbGcgPSAwOworCQl9CisKIAkJLyoKIAkJICogU2luY2Ug cHFHZXRJbnQgdHJlYXRzIDItYnl0ZSBpbnRlZ2VycyBhcyB1bnNpZ25lZCwgd2UgbmVlZCB0 bwogCQkgKiBjb2VyY2UgdGhlc2UgcmVzdWx0cyB0byBzaWduZWQgZm9ybS4KQEAgLTYwOSw4 ICs2NDQsMTAgQEAgZ2V0Um93RGVzY3JpcHRpb25zKFBHY29ubiAqY29ubiwgaW50IG1zZ0xl bmd0aCkKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS50eXBpZCA9IHR5cGlkOwogCQlyZXN1bHQt PmF0dERlc2NzW2ldLnR5cGxlbiA9IHR5cGxlbjsKIAkJcmVzdWx0LT5hdHREZXNjc1tpXS5h dHR0eXBtb2QgPSBhdHR0eXBtb2Q7CisJCXJlc3VsdC0+YXR0RGVzY3NbaV0uY2VraWQgPSBj ZWtpZDsKKwkJcmVzdWx0LT5hdHREZXNjc1tpXS5jZWthbGcgPSBjZWthbGc7CiAKLQkJaWYg KGZvcm1hdCAhPSAxKQorCQlpZiAoKGZvcm1hdCAmIDB4MEYpICE9IDEpCiAJCQlyZXN1bHQt PmJpbmFyeSA9IDA7CiAJfQogCkBAIC03MTIsMTAgKzc0OSwzMSBAQCBnZXRQYXJhbURlc2Ny aXB0aW9ucyhQR2Nvbm4gKmNvbm4sIGludCBtc2dMZW5ndGgpCiAJZm9yIChpID0gMDsgaSA8 IG5wYXJhbXM7IGkrKykKIAl7CiAJCWludAkJCXR5cGlkOworCQlpbnQJCQljZWtpZDsKKwkJ aW50CQkJY2VrYWxnOworCQlpbnQJCQlmbGFnczsKIAogCQlpZiAocHFHZXRJbnQoJnR5cGlk LCA0LCBjb25uKSkKIAkJCWdvdG8gbm90X2Vub3VnaF9kYXRhOworCQlpZiAoY29ubi0+Y29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKKwkJeworCQkJaWYgKHBxR2V0SW50KCZjZWtpZCwg NCwgY29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCQlpZiAocHFHZXRJbnQo JmNla2FsZywgMiwgY29ubikpCisJCQkJZ290byBub3RfZW5vdWdoX2RhdGE7CisJCQlpZiAo cHFHZXRJbnQoJmZsYWdzLCAyLCBjb25uKSkKKwkJCQlnb3RvIG5vdF9lbm91Z2hfZGF0YTsK KwkJfQorCQllbHNlCisJCXsKKwkJCWNla2lkID0gMDsKKwkJCWNla2FsZyA9IDA7CisJCQlm bGFncyA9IDA7CisJCX0KIAkJcmVzdWx0LT5wYXJhbURlc2NzW2ldLnR5cGlkID0gdHlwaWQ7 CisJCXJlc3VsdC0+cGFyYW1EZXNjc1tpXS5jZWtpZCA9IGNla2lkOworCQlyZXN1bHQtPnBh cmFtRGVzY3NbaV0uY2VrYWxnID0gY2VrYWxnOworCQlyZXN1bHQtPnBhcmFtRGVzY3NbaV0u ZmxhZ3MgPSBmbGFnczsKIAl9CiAKIAkvKiBTdWNjZXNzISAqLwpAQCAtMTQxMyw2ICsxNDcx LDQwIEBAIHJlcG9ydEVycm9yUG9zaXRpb24oUFFFeHBCdWZmZXIgbXNnLCBjb25zdCBjaGFy ICpxdWVyeSwgaW50IGxvYywgaW50IGVuY29kaW5nKQogfQogCiAKK2ludAorcHFHZXROZWdv dGlhdGVQcm90b2NvbFZlcnNpb24zKFBHY29ubiAqY29ubikKK3sKKwlpbnQJCQl0aGVpcl92 ZXJzaW9uOworCWludAkJCW51bTsKKwlQUUV4cEJ1ZmZlckRhdGEgYnVmOworCisJaW5pdFBR RXhwQnVmZmVyKCZidWYpOworCWlmIChwcUdldEludCgmdGhlaXJfdmVyc2lvbiwgNCwgY29u bikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwlpZiAocHFHZXRJbnQoJm51bSwgNCwgY29ubikg IT0gMCkKKwkJcmV0dXJuIEVPRjsKKwlmb3IgKGludCBpID0gMDsgaSA8IG51bTsgaSsrKQor CXsKKwkJaWYgKHBxR2V0cygmY29ubi0+d29ya0J1ZmZlciwgY29ubikpCisJCQlyZXR1cm4g RU9GOworCQlpZiAoYnVmLmxlbiA+IDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlckNoYXIoJmJ1 ZiwgJyAnKTsKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgY29ubi0+d29ya0J1ZmZl ci5kYXRhKTsKKwl9CisKKwlpZiAodGhlaXJfdmVyc2lvbiAhPSBjb25uLT5wdmVyc2lvbikK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmNvbm4tPmVycm9yTWVzc2FnZSwKKwkJCQkJCSAgbGli cHFfZ2V0dGV4dCgicHJvdG9jb2wgdmVyc2lvbiBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlcjog Y2xpZW50IHVzZXMgJWQuJWQsIHNlcnZlciBzdXBwb3J0cyAlZC4lZCIpLAorCQkJCQkJICBQ R19QUk9UT0NPTF9NQUpPUihjb25uLT5wdmVyc2lvbiksIFBHX1BST1RPQ09MX01JTk9SKGNv bm4tPnB2ZXJzaW9uKSwKKwkJCQkJCSAgUEdfUFJPVE9DT0xfTUFKT1IodGhlaXJfdmVyc2lv biksIFBHX1BST1RPQ09MX01JTk9SKHRoZWlyX3ZlcnNpb24pKTsKKwllbHNlCisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisJCQkJCQkgIGxpYnBxX2dldHRl eHQoInByb3RvY29sIGV4dGVuc2lvbiBub3Qgc3VwcG9ydGVkIGJ5IHNlcnZlcjogJXNcbiIp LCBidWYuZGF0YSk7CisKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJcmV0dXJuIDA7Cit9 CisKIC8qCiAgKiBBdHRlbXB0IHRvIHJlYWQgYSBQYXJhbWV0ZXJTdGF0dXMgbWVzc2FnZS4K ICAqIFRoaXMgaXMgcG9zc2libGUgaW4gc2V2ZXJhbCBwbGFjZXMsIHNvIHdlIGJyZWFrIGl0 IG91dCBhcyBhIHN1YnJvdXRpbmUuCkBAIC0xNDQxLDYgKzE1MzMsODkgQEAgZ2V0UGFyYW1l dGVyU3RhdHVzKFBHY29ubiAqY29ubikKIAlyZXR1cm4gMDsKIH0KIAorLyoKKyAqIEF0dGVt cHQgdG8gcmVhZCBhIENvbHVtbk1hc3RlcktleSBtZXNzYWdlLgorICogRW50cnk6ICd5JyBt ZXNzYWdlIHR5cGUgYW5kIGxlbmd0aCBoYXZlIGFscmVhZHkgYmVlbiBjb25zdW1lZC4KKyAq IEV4aXQ6IHJldHVybnMgMCBpZiBzdWNjZXNzZnVsbHkgY29uc3VtZWQgbWVzc2FnZS4KKyAq CQkgcmV0dXJucyBFT0YgaWYgbm90IGVub3VnaCBkYXRhLgorICovCitzdGF0aWMgaW50Citn ZXRDb2x1bW5NYXN0ZXJLZXkoUEdjb25uICpjb25uKQoreworCWludAkJCWtleWlkOworCWNo YXIJICAgKmtleW5hbWU7CisJY2hhcgkgICAqa2V5cmVhbG07CisJaW50CQkJcmV0OworCisJ LyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFHZXRJbnQoJmtleWlkLCA0LCBjb25uKSAh PSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IG5hbWUgKi8KKwlpZiAocHFH ZXRzKCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCWtl eW5hbWUgPSBzdHJkdXAoY29ubi0+d29ya0J1ZmZlci5kYXRhKTsKKwlpZiAoIWtleW5hbWUp CisJCXJldHVybiBFT0Y7CisJLyogR2V0IHRoZSBrZXkgcmVhbG0gKi8KKwlpZiAocHFHZXRz KCZjb25uLT53b3JrQnVmZmVyLCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCWtleXJl YWxtID0gc3RyZHVwKGNvbm4tPndvcmtCdWZmZXIuZGF0YSk7CisJaWYgKCFrZXlyZWFsbSkK KwkJcmV0dXJuIEVPRjsKKwkvKiBBbmQgc2F2ZSBpdCAqLworCXJldCA9IHBxU2F2ZUNvbHVt bk1hc3RlcktleShjb25uLCBrZXlpZCwga2V5bmFtZSwga2V5cmVhbG0pOworCisJZnJlZShr ZXluYW1lKTsKKwlmcmVlKGtleXJlYWxtKTsKKworCXJldHVybiByZXQ7Cit9CisKKy8qCisg KiBBdHRlbXB0IHRvIHJlYWQgYSBDb2x1bW5FbmNyeXB0aW9uS2V5IG1lc3NhZ2UuCisgKiBF bnRyeTogJ1knIG1lc3NhZ2UgdHlwZSBhbmQgbGVuZ3RoIGhhdmUgYWxyZWFkeSBiZWVuIGNv bnN1bWVkLgorICogRXhpdDogcmV0dXJucyAwIGlmIHN1Y2Nlc3NmdWxseSBjb25zdW1lZCBt ZXNzYWdlLgorICoJCSByZXR1cm5zIEVPRiBpZiBub3QgZW5vdWdoIGRhdGEuCisgKi8KK3N0 YXRpYyBpbnQKK2dldENvbHVtbkVuY3J5cHRpb25LZXkoUEdjb25uICpjb25uKQoreworCWlu dAkJCWtleWlkOworCWludAkJCWNta2lkOworCWludAkJCWNta2FsZzsKKwljaGFyCSAgICpi dWY7CisJaW50CQkJdmFsbGVuOworCisJLyogR2V0IHRoZSBrZXkgSUQgKi8KKwlpZiAocHFH ZXRJbnQoJmtleWlkLCA0LCBjb25uKSAhPSAwKQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0 aGUgQ01LIElEICovCisJaWYgKHBxR2V0SW50KCZjbWtpZCwgNCwgY29ubikgIT0gMCkKKwkJ cmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhlIENNSyBhbGdvcml0aG0gKi8KKwlpZiAocHFHZXRJ bnQoJmNta2FsZywgMiwgY29ubikgIT0gMCkKKwkJcmV0dXJuIEVPRjsKKwkvKiBHZXQgdGhl IGtleSBkYXRhIGxlbiAqLworCWlmIChwcUdldEludCgmdmFsbGVuLCA0LCBjb25uKSAhPSAw KQorCQlyZXR1cm4gRU9GOworCS8qIEdldCB0aGUga2V5IGRhdGEgKi8KKwlidWYgPSBtYWxs b2ModmFsbGVuKTsKKwlpZiAoIWJ1ZikKKwkJcmV0dXJuIEVPRjsKKwlpZiAocHFHZXRuY2hh cihidWYsIHZhbGxlbiwgY29ubikgIT0gMCkKKwl7CisJCWZyZWUoYnVmKTsKKwkJcmV0dXJu IEVPRjsKKwl9CisJLyogQW5kIHNhdmUgaXQgKi8KKwlpZiAocHFTYXZlQ29sdW1uRW5jcnlw dGlvbktleShjb25uLCBrZXlpZCwgY21raWQsIGNta2FsZywgKHVuc2lnbmVkIGNoYXIgKikg YnVmLCB2YWxsZW4pICE9IDApCisJeworCQlmcmVlKGJ1Zik7CisJCXJldHVybiBFT0Y7CisJ fQorCWZyZWUoYnVmKTsKKwlyZXR1cm4gMDsKK30KIAogLyoKICAqIEF0dGVtcHQgdG8gcmVh ZCBhIE5vdGlmeSByZXNwb25zZSBtZXNzYWdlLgpAQCAtMjI2Niw2ICsyNDQxLDkgQEAgYnVp bGRfc3RhcnR1cF9wYWNrZXQoY29uc3QgUEdjb25uICpjb25uLCBjaGFyICpwYWNrZXQsCiAJ aWYgKGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsICYmIGNvbm4tPmNsaWVudF9lbmNv ZGluZ19pbml0aWFsWzBdKQogCQlBRERfU1RBUlRVUF9PUFRJT04oImNsaWVudF9lbmNvZGlu ZyIsIGNvbm4tPmNsaWVudF9lbmNvZGluZ19pbml0aWFsKTsKIAorCWlmIChjb25uLT5jb2x1 bW5fZW5jcnlwdGlvbl9lbmFibGVkKQorCQlBRERfU1RBUlRVUF9PUFRJT04oIl9wcV8uY29s dW1uX2VuY3J5cHRpb24iLCAiMSIpOworCiAJLyogQWRkIGFueSBlbnZpcm9ubWVudC1kcml2 ZW4gR1VDIHNldHRpbmdzIG5lZWRlZCAqLwogCWZvciAobmV4dF9lbyA9IG9wdGlvbnM7IG5l eHRfZW8tPmVudk5hbWU7IG5leHRfZW8rKykKIAl7CmRpZmYgLS1naXQgYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS10cmFjZS5jIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtdHJhY2Uu YwppbmRleCA1ZDY4Y2YyZWIzLi5kMmFlMGUwM2JiIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJm YWNlcy9saWJwcS9mZS10cmFjZS5jCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXRy YWNlLmMKQEAgLTQ1MCw3ICs0NTAsOCBAQCBwcVRyYWNlT3V0cHV0UyhGSUxFICpmLCBjb25z dCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvcikKIAogLyogUGFyYW1ldGVyRGVzY3JpcHRp b24gKi8KIHN0YXRpYyB2b2lkCi1wcVRyYWNlT3V0cHV0dChGSUxFICpmLCBjb25zdCBjaGFy ICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQorcHFUcmFjZU91dHB1dHQo RklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJvb2wgcmVncmVz cywKKwkJCSAgIGJvb2wgY29sdW1uX2VuY3J5cHRpb25fZW5hYmxlZCkKIHsKIAlpbnQJCQlu ZmllbGRzOwogCkBAIC00NTgsMTIgKzQ1OSwyMSBAQCBwcVRyYWNlT3V0cHV0dChGSUxFICpm LCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQgKmN1cnNvciwgYm9vbCByZWdyZXNzKQogCW5m aWVsZHMgPSBwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKIAogCWZv ciAoaW50IGkgPSAwOyBpIDwgbmZpZWxkczsgaSsrKQorCXsKIAkJcHFUcmFjZU91dHB1dElu dDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwgcmVncmVzcyk7CisJCWlmIChjb2x1bW5fZW5jcnlw dGlvbl9lbmFibGVkKQorCQl7CisJCQlwcVRyYWNlT3V0cHV0SW50MzIoZiwgbWVzc2FnZSwg Y3Vyc29yLCByZWdyZXNzKTsKKwkJCXBxVHJhY2VPdXRwdXRJbnQxNihmLCBtZXNzYWdlLCBj dXJzb3IpOworCQkJcHFUcmFjZU91dHB1dEludDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJ CX0KKwl9CiB9CiAKIC8qIFJvd0Rlc2NyaXB0aW9uICovCiBzdGF0aWMgdm9pZAotcHFUcmFj ZU91dHB1dFQoRklMRSAqZiwgY29uc3QgY2hhciAqbWVzc2FnZSwgaW50ICpjdXJzb3IsIGJv b2wgcmVncmVzcykKK3BxVHJhY2VPdXRwdXRUKEZJTEUgKmYsIGNvbnN0IGNoYXIgKm1lc3Nh Z2UsIGludCAqY3Vyc29yLCBib29sIHJlZ3Jlc3MsCisJCQkgICBib29sIGNvbHVtbl9lbmNy eXB0aW9uX2VuYWJsZWQpCiB7CiAJaW50CQkJbmZpZWxkczsKIApAQCAtNDc5LDYgKzQ4OSwx MSBAQCBwcVRyYWNlT3V0cHV0VChGSUxFICpmLCBjb25zdCBjaGFyICptZXNzYWdlLCBpbnQg KmN1cnNvciwgYm9vbCByZWdyZXNzKQogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2Fn ZSwgY3Vyc29yKTsKIAkJcHFUcmFjZU91dHB1dEludDMyKGYsIG1lc3NhZ2UsIGN1cnNvciwg ZmFsc2UpOwogCQlwcVRyYWNlT3V0cHV0SW50MTYoZiwgbWVzc2FnZSwgY3Vyc29yKTsKKwkJ aWYgKGNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpCisJCXsKKwkJCXBxVHJhY2VPdXRwdXRJ bnQzMihmLCBtZXNzYWdlLCBjdXJzb3IsIHJlZ3Jlc3MpOworCQkJcHFUcmFjZU91dHB1dElu dDE2KGYsIG1lc3NhZ2UsIGN1cnNvcik7CisJCX0KIAl9CiB9CiAKQEAgLTY0NywxMCArNjYy LDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAq bWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJCQlmcHJpbnRmKGNvbm4tPlBmZGVidWcsICJT eW5jIik7IC8qIG5vIG1lc3NhZ2UgY29udGVudCAqLwogCQkJYnJlYWs7CiAJCWNhc2UgJ3Qn OgkJCQkvKiBQYXJhbWV0ZXIgRGVzY3JpcHRpb24gKi8KLQkJCXBxVHJhY2VPdXRwdXR0KGNv bm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOworCQkJcHFUcmFj ZU91dHB1dHQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVncmVzcywK KwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpOwogCQkJYnJlYWs7 CiAJCWNhc2UgJ1QnOgkJCQkvKiBSb3cgRGVzY3JpcHRpb24gKi8KLQkJCXBxVHJhY2VPdXRw dXRUKGNvbm4tPlBmZGVidWcsIG1lc3NhZ2UsICZsb2dDdXJzb3IsIHJlZ3Jlc3MpOworCQkJ cHFUcmFjZU91dHB1dFQoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNvciwgcmVn cmVzcywKKwkJCQkJCSAgIGNvbm4tPmNvbHVtbl9lbmNyeXB0aW9uX2VuYWJsZWQpOwogCQkJ YnJlYWs7CiAJCWNhc2UgJ3YnOgkJCQkvKiBOZWdvdGlhdGUgUHJvdG9jb2wgVmVyc2lvbiAq LwogCQkJcHFUcmFjZU91dHB1dHYoY29ubi0+UGZkZWJ1ZywgbWVzc2FnZSwgJmxvZ0N1cnNv cik7CkBAIC02NjUsNiArNjgyLDEyIEBAIHBxVHJhY2VPdXRwdXRNZXNzYWdlKFBHY29ubiAq Y29ubiwgY29uc3QgY2hhciAqbWVzc2FnZSwgYm9vbCB0b1NlcnZlcikKIAkJCWZwcmludGYo Y29ubi0+UGZkZWJ1ZywgIlRlcm1pbmF0ZSIpOwogCQkJLyogTm8gbWVzc2FnZSBjb250ZW50 ICovCiAJCQlicmVhazsKKwkJY2FzZSAneSc6CisJCQlmcHJpbnRmKGNvbm4tPlBmZGVidWcs ICJDb2x1bW5NYXN0ZXJLZXlcdFRPRE8iKTsKKwkJCWJyZWFrOworCQljYXNlICdZJzoKKwkJ CWZwcmludGYoY29ubi0+UGZkZWJ1ZywgIkNvbHVtbkVuY3J5cHRpb25LZXlcdFRPRE8iKTsK KwkJCWJyZWFrOwogCQljYXNlICdaJzoJCQkJLyogUmVhZHkgRm9yIFF1ZXJ5ICovCiAJCQlw cVRyYWNlT3V0cHV0Wihjb25uLT5QZmRlYnVnLCBtZXNzYWdlLCAmbG9nQ3Vyc29yKTsKIAkJ CWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaCBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWZlLmgKaW5kZXggNzk4NjQ0NWYxYS4uNDJm YmUwY2Q0OSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZmUuaAor KysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9saWJwcS1mZS5oCkBAIC0yNjcsNiArMjY3LDgg QEAgdHlwZWRlZiBzdHJ1Y3QgcGdyZXNBdHREZXNjCiAJT2lkCQkJdHlwaWQ7CQkJLyogdHlw ZSBpZCAqLwogCWludAkJCXR5cGxlbjsJCQkvKiB0eXBlIHNpemUgKi8KIAlpbnQJCQlhdHR0 eXBtb2Q7CQkvKiB0eXBlLXNwZWNpZmljIG1vZGlmaWVyIGluZm8gKi8KKwlPaWQJCQljZWtp ZDsKKwlpbnQJCQljZWthbGc7CiB9IFBHcmVzQXR0RGVzYzsKIAogLyogLS0tLS0tLS0tLS0t LS0tLQpAQCAtNDM4LDYgKzQ0MCwxNSBAQCBleHRlcm4gUEdyZXN1bHQgKlBRZXhlY1ByZXBh cmVkKFBHY29ubiAqY29ubiwKIAkJCQkJCQkJY29uc3QgaW50ICpwYXJhbUxlbmd0aHMsCiAJ CQkJCQkJCWNvbnN0IGludCAqcGFyYW1Gb3JtYXRzLAogCQkJCQkJCQlpbnQgcmVzdWx0Rm9y bWF0KTsKK2V4dGVybiBQR3Jlc3VsdCAqUFFleGVjUHJlcGFyZWQyKFBHY29ubiAqY29ubiwK KwkJCQkJCQkJIGNvbnN0IGNoYXIgKnN0bXROYW1lLAorCQkJCQkJCQkgaW50IG5QYXJhbXMs CisJCQkJCQkJCSBjb25zdCBjaGFyICpjb25zdCAqcGFyYW1WYWx1ZXMsCisJCQkJCQkJCSBj b25zdCBpbnQgKnBhcmFtTGVuZ3RocywKKwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3Jt YXRzLAorCQkJCQkJCQkgY29uc3QgaW50ICpwYXJhbUZvcmNlQ29sdW1uRW5jcnlwdGlvbnMs CisJCQkJCQkJCSBpbnQgcmVzdWx0Rm9ybWF0LAorCQkJCQkJCQkgUEdyZXN1bHQgKnBhcmFt RGVzYyk7CiAKIC8qIEludGVyZmFjZSBmb3IgbXVsdGlwbGUtcmVzdWx0IG9yIGFzeW5jaHJv bm91cyBxdWVyaWVzICovCiAjZGVmaW5lIFBRX1FVRVJZX1BBUkFNX01BWF9MSU1JVCA2NTUz NQpAQCAtNDYxLDYgKzQ3MiwxNSBAQCBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5UHJlcGFyZWQo UEdjb25uICpjb25uLAogCQkJCQkJCQljb25zdCBpbnQgKnBhcmFtTGVuZ3RocywKIAkJCQkJ CQkJY29uc3QgaW50ICpwYXJhbUZvcm1hdHMsCiAJCQkJCQkJCWludCByZXN1bHRGb3JtYXQp OworZXh0ZXJuIGludAlQUXNlbmRRdWVyeVByZXBhcmVkMihQR2Nvbm4gKmNvbm4sCisJCQkJ CQkJCSBjb25zdCBjaGFyICpzdG10TmFtZSwKKwkJCQkJCQkJIGludCBuUGFyYW1zLAorCQkJ CQkJCQkgY29uc3QgY2hhciAqY29uc3QgKnBhcmFtVmFsdWVzLAorCQkJCQkJCQkgY29uc3Qg aW50ICpwYXJhbUxlbmd0aHMsCisJCQkJCQkJCSBjb25zdCBpbnQgKnBhcmFtRm9ybWF0cywK KwkJCQkJCQkJIGNvbnN0IGludCAqcGFyYW1Gb3JjZUNvbHVtbkVuY3J5cHRpb25zLAorCQkJ CQkJCQkgaW50IHJlc3VsdEZvcm1hdCwKKwkJCQkJCQkJIFBHcmVzdWx0ICpwYXJhbURlc2Mp OwogZXh0ZXJuIGludAlQUXNldFNpbmdsZVJvd01vZGUoUEdjb25uICpjb25uKTsKIGV4dGVy biBQR3Jlc3VsdCAqUFFnZXRSZXN1bHQoUEdjb25uICpjb25uKTsKIApAQCAtNTMxLDYgKzU1 MSw3IEBAIGV4dGVybiBpbnQJUFFmZm9ybWF0KGNvbnN0IFBHcmVzdWx0ICpyZXMsIGludCBm aWVsZF9udW0pOwogZXh0ZXJuIE9pZAlQUWZ0eXBlKGNvbnN0IFBHcmVzdWx0ICpyZXMsIGlu dCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWZzaXplKGNvbnN0IFBHcmVzdWx0ICpyZXMs IGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWZtb2QoY29uc3QgUEdyZXN1bHQgKnJl cywgaW50IGZpZWxkX251bSk7CitleHRlcm4gaW50CVBRZmlzZW5jcnlwdGVkKGNvbnN0IFBH cmVzdWx0ICpyZXMsIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGNoYXIgKlBRY21kU3RhdHVz KFBHcmVzdWx0ICpyZXMpOwogZXh0ZXJuIGNoYXIgKlBRb2lkU3RhdHVzKGNvbnN0IFBHcmVz dWx0ICpyZXMpOwkvKiBvbGQgYW5kIHVnbHkgKi8KIGV4dGVybiBPaWQJUFFvaWRWYWx1ZShj b25zdCBQR3Jlc3VsdCAqcmVzKTsJLyogbmV3IGFuZCBpbXByb3ZlZCAqLwpAQCAtNTQwLDYg KzU2MSw3IEBAIGV4dGVybiBpbnQJUFFnZXRsZW5ndGgoY29uc3QgUEdyZXN1bHQgKnJlcywg aW50IHR1cF9udW0sIGludCBmaWVsZF9udW0pOwogZXh0ZXJuIGludAlQUWdldGlzbnVsbChj b25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgdHVwX251bSwgaW50IGZpZWxkX251bSk7CiBleHRl cm4gaW50CVBRbnBhcmFtcyhjb25zdCBQR3Jlc3VsdCAqcmVzKTsKIGV4dGVybiBPaWQJUFFw YXJhbXR5cGUoY29uc3QgUEdyZXN1bHQgKnJlcywgaW50IHBhcmFtX251bSk7CitleHRlcm4g aW50CVBRcGFyYW1pc2VuY3J5cHRlZChjb25zdCBQR3Jlc3VsdCAqcmVzLCBpbnQgcGFyYW1f bnVtKTsKIAogLyogRGVzY3JpYmUgcHJlcGFyZWQgc3RhdGVtZW50cyBhbmQgcG9ydGFscyAq LwogZXh0ZXJuIFBHcmVzdWx0ICpQUWRlc2NyaWJlUHJlcGFyZWQoUEdjb25uICpjb25uLCBj b25zdCBjaGFyICpzdG10KTsKZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xp YnBxLWludC5oIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKaW5kZXggYzc1 ZWQ2M2EyYy4uMDkzMDdkYWIxMSAxMDA2NDQKLS0tIGEvc3JjL2ludGVyZmFjZXMvbGlicHEv bGlicHEtaW50LmgKKysrIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtaW50LmgKQEAg LTExMiw2ICsxMTIsOSBAQCB1bmlvbiBwZ3Jlc3VsdF9kYXRhCiB0eXBlZGVmIHN0cnVjdCBw Z3Jlc1BhcmFtRGVzYwogewogCU9pZAkJCXR5cGlkOwkJCS8qIHR5cGUgaWQgKi8KKwlPaWQJ CQljZWtpZDsKKwlpbnQJCQljZWthbGc7CisJaW50CQkJZmxhZ3M7CiB9IFBHcmVzUGFyYW1E ZXNjOwogCiAvKgpAQCAtMzQzLDYgKzM0NiwyNiBAQCB0eXBlZGVmIHN0cnVjdCBwZ19jb25u X2hvc3QKIAkJCQkJCQkJICogZm91bmQgaW4gcGFzc3dvcmQgZmlsZS4gKi8KIH0gcGdfY29u bl9ob3N0OwogCisvKgorICogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBkYXRhCisgKi8K KworLyogY29sdW1uIG1hc3RlciBrZXkgKi8KK3R5cGVkZWYgc3RydWN0IHBnX2Ntaworewor CU9pZAkJCWNta2lkOworCWNoYXIJICAgKmNta25hbWU7CisJY2hhcgkgICAqY21rcmVhbG07 Cit9IFBHQ01LOworCisvKiBjb2x1bW4gZW5jcnlwdGlvbiBrZXkgKi8KK3R5cGVkZWYgc3Ry dWN0IHBnX2NlaworeworCU9pZAkJCWNla2lkOworCXVuc2lnbmVkIGNoYXIgKmNla2RhdGE7 CQkvKiAoZGVjcnlwdGVkKSAqLworCXNpemVfdAkJY2VrZGF0YWxlbjsKK30gUEdDRUs7CisK IC8qCiAgKiBQR2Nvbm4gc3RvcmVzIGFsbCB0aGUgc3RhdGUgZGF0YSBhc3NvY2lhdGVkIHdp dGggYSBzaW5nbGUgY29ubmVjdGlvbgogICogdG8gYSBiYWNrZW5kLgpAQCAtMzk2LDYgKzQx OSw4IEBAIHN0cnVjdCBwZ19jb25uCiAJY2hhcgkgICAqc3NsX21pbl9wcm90b2NvbF92ZXJz aW9uOwkvKiBtaW5pbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9uICovCiAJY2hhcgkgICAqc3Ns X21heF9wcm90b2NvbF92ZXJzaW9uOwkvKiBtYXhpbXVtIFRMUyBwcm90b2NvbCB2ZXJzaW9u ICovCiAJY2hhcgkgICAqdGFyZ2V0X3Nlc3Npb25fYXR0cnM7CS8qIGRlc2lyZWQgc2Vzc2lv biBwcm9wZXJ0aWVzICovCisJY2hhcgkgICAqY21rbG9va3VwOwkJLyogQ01LIGxvb2t1cCBz cGVjaWZpY2F0aW9uICovCisJY2hhcgkgICAqY29sdW1uX2VuY3J5cHRpb25fc2V0dGluZzsJ LyogY29sdW1uX2VuY3J5cHRpb24gY29ubmVjdGlvbiBwYXJhbWV0ZXIgKDAgb3IgMSkgKi8K IAogCS8qIE9wdGlvbmFsIGZpbGUgdG8gd3JpdGUgdHJhY2UgaW5mbyB0byAqLwogCUZJTEUJ ICAgKlBmZGVidWc7CkBAIC00NzcsNiArNTAyLDEzIEBAIHN0cnVjdCBwZ19jb25uCiAJUEdW ZXJib3NpdHkgdmVyYm9zaXR5OwkJLyogZXJyb3Ivbm90aWNlIG1lc3NhZ2UgdmVyYm9zaXR5 ICovCiAJUEdDb250ZXh0VmlzaWJpbGl0eSBzaG93X2NvbnRleHQ7CS8qIHdoZXRoZXIgdG8g c2hvdyBDT05URVhUIGZpZWxkICovCiAJUEdsb2JqZnVuY3MgKmxvYmpmdW5jczsJCS8qIHBy aXZhdGUgc3RhdGUgZm9yIGxhcmdlLW9iamVjdCBhY2Nlc3MgZm5zICovCisJYm9vbAkJY29s dW1uX2VuY3J5cHRpb25fZW5hYmxlZDsJLyogcGFyc2VkIHZlcnNpb24gb2YgY29sdW1uX2Vu Y3J5cHRpb25fc2V0dGluZyAqLworCisJLyogQ29sdW1uIGVuY3J5cHRpb24gc3VwcG9ydCBk YXRhICovCisJaW50CQkJbmNta3M7CisJUEdDTUsJICAgKmNta3M7CisJaW50CQkJbmNla3M7 CisJUEdDRUsJICAgKmNla3M7CiAKIAkvKiBCdWZmZXIgZm9yIGRhdGEgcmVjZWl2ZWQgZnJv bSBiYWNrZW5kIGFuZCBub3QgeWV0IHByb2Nlc3NlZCAqLwogCWNoYXIJICAgKmluQnVmZmVy OwkJLyogY3VycmVudGx5IGFsbG9jYXRlZCBidWZmZXIgKi8KQEAgLTY3Myw2ICs3MDUsMTAg QEAgZXh0ZXJuIHZvaWQgcHFTYXZlTWVzc2FnZUZpZWxkKFBHcmVzdWx0ICpyZXMsIGNoYXIg Y29kZSwKIAkJCQkJCQkgICBjb25zdCBjaGFyICp2YWx1ZSk7CiBleHRlcm4gdm9pZCBwcVNh dmVQYXJhbWV0ZXJTdGF0dXMoUEdjb25uICpjb25uLCBjb25zdCBjaGFyICpuYW1lLAogCQkJ CQkJCQkgIGNvbnN0IGNoYXIgKnZhbHVlKTsKK2V4dGVybiBpbnQJcHFTYXZlQ29sdW1uTWFz dGVyS2V5KFBHY29ubiAqY29ubiwgaW50IGtleWlkLCBjb25zdCBjaGFyICprZXluYW1lLAor CQkJCQkJCQkgIGNvbnN0IGNoYXIgKmtleXJlYWxtKTsKK2V4dGVybiBpbnQJcHFTYXZlQ29s dW1uRW5jcnlwdGlvbktleShQR2Nvbm4gKmNvbm4sIGludCBrZXlpZCwgaW50IGNta2lkLCBp bnQgY21rYWxnLAorCQkJCQkJCQkJICBjb25zdCB1bnNpZ25lZCBjaGFyICp2YWx1ZSwgaW50 IGxlbik7CiBleHRlcm4gaW50CXBxUm93UHJvY2Vzc29yKFBHY29ubiAqY29ubiwgY29uc3Qg Y2hhciAqKmVycm1zZ3ApOwogZXh0ZXJuIHZvaWQgcHFDb21tYW5kUXVldWVBZHZhbmNlKFBH Y29ubiAqY29ubik7CiBleHRlcm4gaW50CVBRc2VuZFF1ZXJ5Q29udGludWUoUEdjb25uICpj b25uLCBjb25zdCBjaGFyICpxdWVyeSk7CkBAIC02ODUsNiArNzIxLDcgQEAgZXh0ZXJuIHZv aWQgcHFQYXJzZUlucHV0MyhQR2Nvbm4gKmNvbm4pOwogZXh0ZXJuIGludAlwcUdldEVycm9y Tm90aWNlMyhQR2Nvbm4gKmNvbm4sIGJvb2wgaXNFcnJvcik7CiBleHRlcm4gdm9pZCBwcUJ1 aWxkRXJyb3JNZXNzYWdlMyhQUUV4cEJ1ZmZlciBtc2csIGNvbnN0IFBHcmVzdWx0ICpyZXMs CiAJCQkJCQkJCSBQR1ZlcmJvc2l0eSB2ZXJib3NpdHksIFBHQ29udGV4dFZpc2liaWxpdHkg c2hvd19jb250ZXh0KTsKK2V4dGVybiBpbnQJcHFHZXROZWdvdGlhdGVQcm90b2NvbFZlcnNp b24zKFBHY29ubiAqY29ubik7CiBleHRlcm4gaW50CXBxR2V0Q29weURhdGEzKFBHY29ubiAq Y29ubiwgY2hhciAqKmJ1ZmZlciwgaW50IGFzeW5jKTsKIGV4dGVybiBpbnQJcHFHZXRsaW5l MyhQR2Nvbm4gKmNvbm4sIGNoYXIgKnMsIGludCBtYXhsZW4pOwogZXh0ZXJuIGludAlwcUdl dGxpbmVBc3luYzMoUEdjb25uICpjb25uLCBjaGFyICpidWZmZXIsIGludCBidWZzaXplKTsK ZGlmZiAtLWdpdCBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL25scy5tayBiL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL25scy5tawppbmRleCA5MjU2YjQyNmMxLi5jNDVmZTg2ZDFkIDEwMDY0NAot LS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9ubHMubWsKKysrIGIvc3JjL2ludGVyZmFjZXMv bGlicHEvbmxzLm1rCkBAIC0xLDUgKzEsNSBAQAogIyBzcmMvaW50ZXJmYWNlcy9saWJwcS9u bHMubWsKIENBVEFMT0dfTkFNRSAgICAgPSBsaWJwcQotR0VUVEVYVF9GSUxFUyAgICA9IGZl LWF1dGguYyBmZS1hdXRoLXNjcmFtLmMgZmUtY29ubmVjdC5jIGZlLWV4ZWMuYyBmZS1nc3Nh cGktY29tbW9uLmMgZmUtbG9iai5jIGZlLW1pc2MuYyBmZS1wcm90b2NvbDMuYyBmZS1zZWN1 cmUuYyBmZS1zZWN1cmUtY29tbW9uLmMgZmUtc2VjdXJlLWdzc2FwaS5jIGZlLXNlY3VyZS1v cGVuc3NsLmMgd2luMzIuYyAuLi8uLi9wb3J0L3RocmVhZC5jCitHRVRURVhUX0ZJTEVTICAg ID0gZmUtYXV0aC5jIGZlLWF1dGgtc2NyYW0uYyBmZS1jb25uZWN0LmMgZmUtZW5jcnlwdC1v cGVuc3NsLmMgZmUtZXhlYy5jIGZlLWdzc2FwaS1jb21tb24uYyBmZS1sb2JqLmMgZmUtbWlz Yy5jIGZlLXByb3RvY29sMy5jIGZlLXNlY3VyZS5jIGZlLXNlY3VyZS1jb21tb24uYyBmZS1z ZWN1cmUtZ3NzYXBpLmMgZmUtc2VjdXJlLW9wZW5zc2wuYyB3aW4zMi5jIC4uLy4uL3BvcnQv dGhyZWFkLmMKIEdFVFRFWFRfVFJJR0dFUlMgPSBsaWJwcV9nZXR0ZXh0IHBxSW50ZXJuYWxO b3RpY2U6MgogR0VUVEVYVF9GTEFHUyAgICA9IGxpYnBxX2dldHRleHQ6MTpwYXNzLWMtZm9y bWF0IHBxSW50ZXJuYWxOb3RpY2U6MjpjLWZvcm1hdApkaWZmIC0tZ2l0IGEvc3JjL2ludGVy ZmFjZXMvbGlicHEvdGVzdC8uZ2l0aWdub3JlIGIvc3JjL2ludGVyZmFjZXMvbGlicHEvdGVz dC8uZ2l0aWdub3JlCmluZGV4IDZiYTc4YWRiNjcuLjE4NDY1OTRlYzUgMTAwNjQ0Ci0tLSBh L3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvLmdpdGlnbm9yZQorKysgYi9zcmMvaW50ZXJm YWNlcy9saWJwcS90ZXN0Ly5naXRpZ25vcmUKQEAgLTEsMiArMSwzIEBACisvbGlicHFfdGVz dF9lbmNyeXB0CiAvbGlicHFfdGVzdGNsaWVudAogL2xpYnBxX3VyaV9yZWdyZXNzCmRpZmYg LS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlIGIvc3JjL2ludGVy ZmFjZXMvbGlicHEvdGVzdC9NYWtlZmlsZQppbmRleCA3NWFjMDhmOTQzLi5iMWViYWI5MGQ0 IDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS90ZXN0L01ha2VmaWxlCisrKyBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL3Rlc3QvTWFrZWZpbGUKQEAgLTE1LDEwICsxNSwxNyBA QCBvdmVycmlkZSBDUFBGTEFHUyA6PSAtSSQobGlicHFfc3JjZGlyKSAkKENQUEZMQUdTKQog TERGTEFHU19JTlRFUk5BTCArPSAkKGxpYnBxX3BncG9ydCkKIAogUFJPR1MgPSBsaWJwcV90 ZXN0Y2xpZW50IGxpYnBxX3VyaV9yZWdyZXNzCitpZmVxICgkKHdpdGhfc3NsKSxvcGVuc3Ns KQorUFJPR1MgKz0gbGlicHFfdGVzdF9lbmNyeXB0CitlbmRpZgorCiAKIGFsbDogJChQUk9H UykKIAogJChQUk9HUyk6ICQoV0lOMzJSRVMpCiAKK2xpYnBxX3Rlc3RfZW5jcnlwdDogLi4v ZmUtZW5jcnlwdC1vcGVuc3NsLmMKKwkkKENDKSAkKENQUEZMQUdTKSAtRFRFU1RfRU5DUllQ VCAkKENGTEFHUykgJF4gJChMREZMQUdTKSAkKExERkxBR1NfRVgpICQoTElCUykgLW8gJEAk KFgpCisKIGNsZWFuIGRpc3RjbGVhbiBtYWludGFpbmVyLWNsZWFuOgogCXJtIC1mICQoUFJP R1MpICoubwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVz X2Zkdy5vdXQKaW5kZXggN2JmMzU2MDJiMC4uMTlmM2YxOWRjZCAxMDA2NDQKLS0tIGEvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAorKysgYi9jb250 cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CkBAIC05NjI3LDcg Kzk2MjcsNyBAQCBETyAkZCQKICAgICBFTkQ7CiAkZCQ7CiBFUlJPUjogIGludmFsaWQgb3B0 aW9uICJwYXNzd29yZCIKLUhJTlQ6ICBWYWxpZCBvcHRpb25zIGluIHRoaXMgY29udGV4dCBh cmU6IHNlcnZpY2UsIHBhc3NmaWxlLCBjaGFubmVsX2JpbmRpbmcsIGNvbm5lY3RfdGltZW91 dCwgZGJuYW1lLCBob3N0LCBob3N0YWRkciwgcG9ydCwgb3B0aW9ucywgYXBwbGljYXRpb25f bmFtZSwga2VlcGFsaXZlcywga2VlcGFsaXZlc19pZGxlLCBrZWVwYWxpdmVzX2ludGVydmFs LCBrZWVwYWxpdmVzX2NvdW50LCB0Y3BfdXNlcl90aW1lb3V0LCBzc2xtb2RlLCBzc2xjb21w cmVzc2lvbiwgc3NsY2VydCwgc3Nsa2V5LCBzc2xyb290Y2VydCwgc3NsY3JsLCBzc2xjcmxk aXIsIHNzbHNuaSwgcmVxdWlyZXBlZXIsIHNzbF9taW5fcHJvdG9jb2xfdmVyc2lvbiwgc3Ns X21heF9wcm90b2NvbF92ZXJzaW9uLCBnc3NlbmNtb2RlLCBrcmJzcnZuYW1lLCBnc3NsaWIs IHRhcmdldF9zZXNzaW9uX2F0dHJzLCB1c2VfcmVtb3RlX2VzdGltYXRlLCBmZHdfc3RhcnR1 cF9jb3N0LCBmZHdfdHVwbGVfY29zdCwgZXh0ZW5zaW9ucywgdXBkYXRhYmxlLCB0cnVuY2F0 YWJsZSwgZmV0Y2hfc2l6ZSwgYmF0Y2hfc2l6ZSwgYXN5bmNfY2FwYWJsZSwgcGFyYWxsZWxf Y29tbWl0LCBrZWVwX2Nvbm5lY3Rpb25zCitISU5UOiAgVmFsaWQgb3B0aW9ucyBpbiB0aGlz IGNvbnRleHQgYXJlOiBzZXJ2aWNlLCBwYXNzZmlsZSwgY2hhbm5lbF9iaW5kaW5nLCBjb25u ZWN0X3RpbWVvdXQsIGRibmFtZSwgaG9zdCwgaG9zdGFkZHIsIHBvcnQsIG9wdGlvbnMsIGFw cGxpY2F0aW9uX25hbWUsIGtlZXBhbGl2ZXMsIGtlZXBhbGl2ZXNfaWRsZSwga2VlcGFsaXZl c19pbnRlcnZhbCwga2VlcGFsaXZlc19jb3VudCwgdGNwX3VzZXJfdGltZW91dCwgc3NsbW9k ZSwgc3NsY29tcHJlc3Npb24sIHNzbGNlcnQsIHNzbGtleSwgc3Nscm9vdGNlcnQsIHNzbGNy bCwgc3NsY3JsZGlyLCBzc2xzbmksIHJlcXVpcmVwZWVyLCBzc2xfbWluX3Byb3RvY29sX3Zl cnNpb24sIHNzbF9tYXhfcHJvdG9jb2xfdmVyc2lvbiwgZ3NzZW5jbW9kZSwga3Jic3J2bmFt ZSwgZ3NzbGliLCB0YXJnZXRfc2Vzc2lvbl9hdHRycywgY21rbG9va3VwLCBjb2x1bW5fZW5j cnlwdGlvbiwgdXNlX3JlbW90ZV9lc3RpbWF0ZSwgZmR3X3N0YXJ0dXBfY29zdCwgZmR3X3R1 cGxlX2Nvc3QsIGV4dGVuc2lvbnMsIHVwZGF0YWJsZSwgdHJ1bmNhdGFibGUsIGZldGNoX3Np emUsIGJhdGNoX3NpemUsIGFzeW5jX2NhcGFibGUsIHBhcmFsbGVsX2NvbW1pdCwga2VlcF9j b25uZWN0aW9ucwogQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkFMVEVSIFNFUlZFUiBsb29w YmFja19ub3B3IE9QVElPTlMgKEFERCBwYXNzd29yZCAnZHVtbXlwdycpIgogUEwvcGdTUUwg ZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAzIGF0IEVYRUNVVEUKIC0tIElmIHdl IGFkZCBhIHBhc3N3b3JkIGZvciBvdXIgdXNlciBtYXBwaW5nIGluc3RlYWQsIHdlIHNob3Vs ZCBnZXQgYSBkaWZmZXJlbnQKCmJhc2UtY29tbWl0OiBjOThiNmFjZGIyNTI1NDZlOWJlYTBi OWEzN2Q5NWNhNjNkMmZmMGZhCi0tIAoyLjM3LjEKCg== --------------Sqf0NHwuGJ8PX7xbrTHUUQ0y--