Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9odP-005Ka8-PH for pgsql-hackers@arkaria.postgresql.org; Wed, 22 May 2024 16:16:13 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1s9odP-00170z-Ke for pgsql-hackers@arkaria.postgresql.org; Wed, 22 May 2024 16:16:11 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9odN-00170q-Ty for pgsql-hackers@lists.postgresql.org; Wed, 22 May 2024 16:16:11 +0000 Received: from mail-co1nam11olkn2096.outbound.protection.outlook.com ([40.92.18.96] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1s9odH-001Tcr-V0 for pgsql-hackers@postgresql.org; Wed, 22 May 2024 16:16:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=J+KN1rhRCf+yyNxHDo+TVzxZeFLzljbAcMFLJIOli0USgTDzyt0DJmiFVxO4pD/M7PE2LwAs9krVnqEx6xFd5edIyiCWBsb4ZImo1ok2KN4nnLpVtacFz39wdPx4j/JaVejzGh9ZNb2hj5vHYn35h4onWWZHt9KIQjxV9DdNCd5sBSLAJOhzXLdh6JV7lDWw+9iycrtSrNliUytcjWftd4OWjP2qIuH3d1S0BdOU+T15WHHUQybSOz42bL5o+aIFVO1EqhkHMY2qoudIpZpHIK7AlIAb59oXKdvq2kbHwZhDh5kO+mQe9DVfxKmxQOvdWJ2VanF24ULzmMZ8oXL99A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=HhTnb+GjTm/XewR8AIDtuWpWWYamIPZESVRl9Yijft0=; b=jWyO2bVImnn9FICvY/GqVfZeGE0rAv7Nkizm7wc6Cyfho2LETWZu9YKmU58wAOHUtuiRKgw5qyZVCuCWbDvEkEBzLhXah7+xy0te7/vjhJqOp4YhLq4lf+lkAz/12ygpxwZL6nQcUSTgcXaGD58hn0WOtuZ8a+qUhxP6oRh5a9NxQx6BUWev3vgoyPYaBWrdYFS8S37JRIfl37FBO/rw2ksZLVA/jQ9FSKOIh7RlNdpalSGowV7v13npNktdk59iURCqSYMven/XlYTV0n13+mFaARVRWQb6IKhXgcetx6BUB6YynmBSt9VMTJppLShE+f9KbfFGLBUlR+Za0ud4ng== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HhTnb+GjTm/XewR8AIDtuWpWWYamIPZESVRl9Yijft0=; b=FCBiVbZ7zrtBParpkaiuyTVFQy1n0bFNzNM3FjBX4uJVDBsOz2g4vG42DYXa5H67HFkgJQglbcDs2xfRIlD1X3LnPqsBdG0iuRMY0j+ub758P1FAwFo8suQq9q5zcVwsok8eEjNQN9irht/gVUfhd9rtKHpPtjv+cjzmpDZK+7TaaKwtdV1JNmQRhEkt7PSPsRTsqe1t6W6kvCVO9IvBkmadgqrz0ga7+qnAqds3BFX9vwcj/inG9XSQGmuAOUOQ8ICZQR0R1WvlPPzyTvddm7tCEssfPAvGWCJwZLgTs79msCfrXLZqeNcRacOM0tOw53w3JG/hBcEQz4IZKpxlBA== Received: from CY5PR11MB6392.namprd11.prod.outlook.com (2603:10b6:930:37::15) by CO1PR11MB4786.namprd11.prod.outlook.com (2603:10b6:303:94::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7587.38; Wed, 22 May 2024 16:15:59 +0000 Received: from CY5PR11MB6392.namprd11.prod.outlook.com ([fe80::9cd9:1cf0:dc54:3790]) by CY5PR11MB6392.namprd11.prod.outlook.com ([fe80::9cd9:1cf0:dc54:3790%4]) with mapi id 15.20.7611.016; Wed, 22 May 2024 16:15:59 +0000 From: Sriram RK To: Alvaro Herrera , "pgsql-hackers@postgresql.org" , Noah Misch , Heikki Linnakangas CC: Bruce Momjian , Peter Eisentraut , Michael Paquier , Andres Freund , Tom Lane , Thomas Munro , "tvk1271@gmail.com" , "sriram.rk@in.ibm.com" Subject: Re: AIX support Thread-Topic: AIX support Thread-Index: AQHae4rr5/ageaPz8EuxaB+VNKiBu7FCOGKAgAArgSaACn9l2IABLM4AgAADTgCAAAP8gIAABU6AgAvJNWiAAB/ogIATySEqgACu3ACAARripYAB4tSAgAAMOICABwWYgIAAB3wAgAAD0oCAAAcGgIACYnHWgAxC+/6AAz5ikoAC7ZKggAAzhgCAAAZWgIALF3TtgAAGbYCAAAc8toABabZigAAKZACACX4wBA== Date: Wed, 22 May 2024 16:15:35 +0000 Message-ID: References: <202405161430.ukr5bwspmfdp@alvherre.pgsql> In-Reply-To: <202405161430.ukr5bwspmfdp@alvherre.pgsql> Accept-Language: en-US Content-Language: en-IN X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-tmn: [mRK6cb2RqzNqdc7P1G54Kdq6fx3kYNew9RL3P+sl4Dc0uiNz3rOUWEEgX29+8wHB] x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY5PR11MB6392:EE_|CO1PR11MB4786:EE_ x-ms-office365-filtering-correlation-id: eba7e642-9a8f-4178-2021-08dc7a7a77e6 x-microsoft-antispam: BCL:0;ARA:14566002|461199019|6092099003|9400799015|1602099003|3412199016|440099019|102099023; x-microsoft-antispam-message-info: SiL31XfEMURc2OBFXf0otgZsRK+ICoqWWoBod2edwr578hPcEH64e8r+2dKHqTCxcwZc4Fdg1NoNcIwJ2enzCr2qin3c0588uXjNnxGoS+c4TwaAgbyHn1CP1HmrSv1C8dws8puNnl0cJSmgMfsY7nv24NVVXwma2FWHeGgQmdqXLd881jndE1uoAAJoY2KHnfdHRAr9EumpmIlNVd8bgzmSt+AlQ8oe4SBGKOETqRD3sX3+5LsEJz4TxZhHnVVB+vlUiv2KQpZp/NTOxyQTpP/BHsQlFcIVwzgl0J/fdG1EGSwiqCLxixOZc1VV9Whhir22uvmU1FnCvueT2Mb0QkWyWXzLV65MM1LiOFkAqNxxkunup+VsYfvFTM65BBtAkSRCIDR9e9z8F3RN/H38/T9/RuF7neTzIZFdKv0u7/IOgYhXKmuACYOQyPL0zGF++pLXeZMWDyqGnQ2pN9IrUc0iuNhGxmaoKdcBPZqzE6pxZw7pv30hGxcsF7usS8TCSnySHqOmQ5LLTa4ev3PE6HJ7/sKsU1UIdR2bkDjfptxAKkxiUl46C0aOb5BRBSeqxgQqVvF0fVsRcC37tH3frMHvOkL5rLjPaW7yr+NFkZO9m7DC1nxBbHFPS+DB0jhBJmREKpa5gWSt0FPYWs9Zu/O9mrfDcIhw1Qgqn9lVtzTxWU33NbTxScFS34gfCL52cz5US7fowIgJwWgEqkKmuZVXOe3v3tK3j8SiowNXTik= x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?Windows-1252?Q?it5pv5yLC+BmoWcHDJPXQYG03ff/wboTi5iIsMYysh1QLyp2Zc+4Y9h5?= =?Windows-1252?Q?YhT3uYtae/rGnOEz7lvjLH1F3LLkA5nAl3YguWdUC25LCFOYJGD8mieN?= =?Windows-1252?Q?FEwEIiqon8eWSP4U7efrq2qgZWRk/Ox02cPUTsjop/ikQ5oE6awMn/5s?= =?Windows-1252?Q?e7E6LcunTwIMeAKRB8ReJkeUdEnwGn7VX9fTirVqcjpdGygZeXguDvDB?= =?Windows-1252?Q?D0vxFYiSaws8YtbsmQ/hJZCv9x9ASfGY7ujZmrHS0esnSAvEUnUVWcAJ?= =?Windows-1252?Q?jLshCxD4b+I6REWQ0DES20zRAp7IJX+TUDoT8TkGL8uOClt9ZnjA6X9w?= =?Windows-1252?Q?zeo4NjcJ+ZqV+jQ72Y7yDMlkLOo8SWNTK2KudcG4e9aFxdGCDa1FsrEe?= =?Windows-1252?Q?ACzhbxivQhUDq7z+AF+tJ9uFcPy1eubJOI/DKwyqyhBjeVSTsrISAstL?= =?Windows-1252?Q?xKJTKRKS0tXIT44nWwp5CrsHk1+VjioXKyX9I6Eri3bgE8hntfMIJBBm?= =?Windows-1252?Q?vidb9KndmySk+815bwB2gEaNuto8McT+J543hWnmhtudO3Oe+ZQw+Uh7?= =?Windows-1252?Q?UUZHEJQpqbaMfOTcFOkQhbZltRS/nTAeZ57xRHrg/+YNPF+jH5aIUxiF?= =?Windows-1252?Q?NUq6s0ayB3+t9Xwdp5ie+Cc0RMlWhcHfIzL+Bn8oCKhuHlPDv/OjdbmI?= =?Windows-1252?Q?y/g30pdGdmNi1+NFvm341Xvsag6BCCKdwCdPDpwFiEV7hMy0LPqNjwrk?= =?Windows-1252?Q?K0u7AWeKRw6X56GGBfJwPlM24SROM/yeONYRNXmk7Z0vNt+tX+ruxTSo?= =?Windows-1252?Q?3XXZ+AVHBkvTahmxg7xhx/1mhMXzrj0GDJi87CiSuklVryyhjWJGQrEb?= =?Windows-1252?Q?2EN83dgmYLK09gKkhP2L0Y/k1Z/aIMOYtuVG1tNLY9EbfEJJpu6SIh1Q?= =?Windows-1252?Q?uzMBldd1ElebDEK1DtVEsz7o/XYFWl0tZDFS19NH6Bv2wiFrc8RyFqXd?= =?Windows-1252?Q?L6/b/on90POiYZSUBZe1UsX1Lov62Q4RmTosJdIM8GKipeAhkrM8HNhg?= =?Windows-1252?Q?6m5j0GltVUpp8jFhixwFQ3kyylLWiuUODukL9WhUs8+fK/jepT5yHvkP?= =?Windows-1252?Q?z1kRhTKJCRqm9FlzOzwq4cmEyTc84ry6hd3VQlMt/SOHPik8eTyMJqjL?= =?Windows-1252?Q?Gw7Cn4ocF1bGirsIWEQfhXUqLXALIDPjmJ81iAX7JubqMOmMVSSbLuE/?= =?Windows-1252?Q?Ve0BvRUYYrSeYSV8xHdz7j1YOiK0xXNkcXU9P6nCRZv1UGI93KzYUdt2?= =?Windows-1252?Q?gnX/LXTd7AXSJ9RyPRBj52vbynC5DkSEFUxOPfWJQPcR2YE6c9jPfqcl?= =?Windows-1252?Q?eoUnVod08Dg2UoGdsQuDSvtKhuQlnghAWPY=3D?= Content-Type: multipart/mixed; boundary="_004_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_" MIME-Version: 1.0 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY5PR11MB6392.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-CrossTenant-Network-Message-Id: eba7e642-9a8f-4178-2021-08dc7a7a77e6 X-MS-Exchange-CrossTenant-originalarrivaltime: 22 May 2024 16:15:59.5805 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB4786 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_004_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_ Content-Type: multipart/alternative; boundary="_000_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_" --_000_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Thanks Alvaro, for the info=85 Hi Team, We referred to the below links to build this patch =85 https://wiki.postgresql.org/wiki/Submitting_a_Patch https://peter.eisentraut.org/blog/2023/05/09/how-to-submit-a-patch-by-email= -2023-edition Please find the attached patch. Apart from the AIX specific changes, there is a minor change in this file w= rt to XLC, below is the error for which we removed inline. Later, the build and tests passed for both XLC(16.1.0.18) and gcc(12) as we= ll. src/backend/storage/buffer/bufmgr.c "bufmgr.c", line 811.39: 1506-780 (S) Reference to "RelationGetSmgr" with= internal linkage is not allowed within inline definition of "ReadBufferExt= ended". "bufmgr.c", line 811.15: 1506-780 (S) Reference to "ReadBuffer_common" wi= th internal linkage is not allowed within inline definition of "ReadBufferE= xtended". gmake[4]: *** [: bufmgr.o] Error 1 Please let us know your feedback. Thanks, Sriram. --_000_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable

Than= ks Alvaro, for the info=85

 

Hi T= eam,

We r= eferred to the below links to build this patch =85

https://wiki.po= stgresql.org/wiki/Submitting_a_Patch

https://peter.eisentraut.org/blog/2023/05/09/how-to-s= ubmit-a-patch-by-email-2023-edition

 

Plea= se find the attached patch.

 

Apar= t from the AIX specific changes, there is a minor change in this file wrt t= o XLC, below is the error for which we removed inline.

Late= r, the build and tests passed for both XLC(16.1.0.18) and gcc(12) as well.<= o:p>

 

  src/backend/storage/buffer/bufmgr.c<= /p>

 

  "bufmgr.c", line 811.39: 1506-780 (S) Refere= nce to "RelationGetSmgr" with internal linkage is not allowed wit= hin inline definition of "ReadBufferExtended".<= /p>

  "bufmgr.c", line 811.15: 1506-780 (S) Refere= nce to "ReadBuffer_common" with internal linkage is not allowed w= ithin inline definition of "ReadBufferExtended".

  gmake[4]: *** [<builtin>: bufmgr.o] Error 1=

 

 

Plea= se let us know your feedback.

 

Than= ks,

Srir= am.

--_000_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_-- --_004_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_ Content-Type: application/octet-stream; name="0001-AIX-support-revert-the-changes-from-0b16bb8776bb8.patch" Content-Description: 0001-AIX-support-revert-the-changes-from-0b16bb8776bb8.patch Content-Disposition: attachment; filename="0001-AIX-support-revert-the-changes-from-0b16bb8776bb8.patch"; size=62564; creation-date="Wed, 22 May 2024 15:43:25 GMT"; modification-date="Wed, 22 May 2024 15:43:25 GMT" Content-Transfer-Encoding: base64 RnJvbSAxNWQwY2Y1NGVlNDlhODhjNTY2Y2I0MzkzOTZiODcwZDVlNmMzOTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTcmlyYW0gUksgPHNyaXJhbS5ya0Bpbi5pYm0uY29tPgpEYXRl OiBNb24sIDIwIE1heSAyMDI0IDAxOjM4OjU5IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gQUlYIHN1 cHBvcnQsIHJldmVydCB0aGUgY2hhbmdlcyBmcm9tIDBiMTZiYjg3NzZiYjguCgotLS0KIE1ha2Vm aWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiAtCiBjb25maWcv Yy1jb21waWxlci5tNCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGNvbmZpZ3Vy ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDMyOSArKysrKysrKysrKysr KysrLS0KIGNvbmZpZ3VyZS5hYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA1 NSArLS0KIGRvYy9zcmMvc2dtbC9kZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAgICB8ICAx OSArCiBkb2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwgICAgICAgICAgICAgICAgfCAxMTkg KysrKysrLQogZG9jL3NyYy9zZ21sL3J1bnRpbWUuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwg IDIzICsrCiBtZXNvbi5idWlsZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg NTcgKy0tCiBzcmMvTWFrZWZpbGUuc2hsaWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg MjkgKysKIHNyYy9iYWNrZW5kL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy MCArKwogc3JjL2JhY2tlbmQvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgIHwgIDE1 ICsKIHNyYy9iYWNrZW5kL3BvcnQvYWl4L21rbGRleHBvcnQuc2ggICAgICAgICAgICB8ICA2MSAr KysrCiBzcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYyAgICAgICAgICAgfCAgIDIg Ky0KIHNyYy9iYWNrZW5kL3V0aWxzL2Vycm9yL2Vsb2cuYyAgICAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvYmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1cy5jICAgICAgICAgICAgfCAgIDQgKy0K IHNyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsICB8ICAgMyArLQog c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwgICAgICAgIHwgICAzICstCiBz cmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwgfCAgIDMgKy0KIHNy Yy9pbmNsdWRlL2MuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3Jj L2luY2x1ZGUvcG9ydC9haXguaCAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICsKIHNyYy9p bmNsdWRlL3BvcnQvYXRvbWljcy5oICAgICAgICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvc3RvcmFnZS9zX2xvY2suaCAgICAgICAgICAgICAgICAgIHwgIDMxICstCiBzcmMvaW50 ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbnRl cmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL21ha2Vm aWxlcy9NYWtlZmlsZS5haXggICAgICAgICAgICAgICAgICAgIHwgIDM5ICsrKwogc3JjL3BvcnQv UkVBRE1FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvcG9ydC9z dHJlcnJvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3RlbXBsYXRl L2FpeCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI1ICsrCiBzcmMvdGVzdC9yZWdy ZXNzL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zYW5pdHlfY2hlY2sub3V0ICAgIHwgIDI5ICsrCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Rlc3Rfc2V0dXAub3V0ICAgICAgfCAgIDQgKwogc3JjL3Rlc3QvcmVncmVzcy9y ZWdyZXNzLmMgICAgICAgICAgICAgICAgICAgIHwgIDQwICsrKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2FuaXR5X2NoZWNrLnNxbCAgICAgICAgIHwgIDI2ICsrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC90ZXN0X3NldHVwLnNxbCAgICAgICAgICAgfCAgIDUgKwogc3JjL3Rvb2xzL2dlbl9leHBvcnQu cGwgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICstCiBzcmMvdG9vbHMvcGdpbmNsdWRlL2hl YWRlcnNjaGVjayAgICAgICAgICAgICAgfCAgIDEgKwogMzYgZmlsZXMgY2hhbmdlZCwgOTA4IGlu c2VydGlvbnMoKyksIDEwNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDc1NSBzcmMvYmFj a2VuZC9wb3J0L2FpeC9ta2xkZXhwb3J0LnNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1 ZGUvcG9ydC9haXguaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9tYWtlZmlsZXMvTWFrZWZpbGUu YWl4CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3RlbXBsYXRlL2FpeAoKZGlmZiAtLWdpdCBhL01h a2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggOGEyZWM5Mzk2Yi4uOWJjMWE0ZWMxNyAxMDA2NDQKLS0t IGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEzLDggKzEzLDYgQEAKIAogIyBBSVggbWFr ZSBkZWZhdWx0cyB0byBidWlsZGluZyAqZXZlcnkqIHRhcmdldCBvZiB0aGUgZmlyc3QgcnVsZS4g IFN0YXJ0IHdpdGgKICMgYSBzaW5nbGUtdGFyZ2V0LCBlbXB0eSBydWxlIHRvIG1ha2UgdGhlIG90 aGVyIHRhcmdldHMgbm9uLWRlZmF1bHQuCi0jIChXZSBkb24ndCBzdXBwb3J0IEFJWCBhbnltb3Jl LCBidXQgaWYgc29tZW9uZSB0cmllcyB0byBidWlsZCBvbiBBSVggYW55d2F5LAotIyBhdCBsZWFz dCB0aGV5J2xsIGdldCB0aGUgaW5zdHJ1Y3Rpb25zIHRvIHJ1biAnY29uZmlndXJlJyBmaXJzdC4p CiBhbGw6CiAKIGFsbCBjaGVjayBpbnN0YWxsIGluc3RhbGxkaXJzIGluc3RhbGxjaGVjayBpbnN0 YWxsY2hlY2stcGFyYWxsZWwgdW5pbnN0YWxsIGNsZWFuIGRpc3RjbGVhbiBtYWludGFpbmVyLWNs ZWFuIGRpc3QgZGlzdGNoZWNrIHdvcmxkIGNoZWNrLXdvcmxkIGluc3RhbGwtd29ybGQgaW5zdGFs bGNoZWNrLXdvcmxkOgpkaWZmIC0tZ2l0IGEvY29uZmlnL2MtY29tcGlsZXIubTQgYi9jb25maWcv Yy1jb21waWxlci5tNAppbmRleCAxMGY4YzdiZDBhLi5hZDk5YjkxMDMyIDEwMDY0NAotLS0gYS9j b25maWcvYy1jb21waWxlci5tNAorKysgYi9jb25maWcvYy1jb21waWxlci5tNApAQCAtMTM3LDcg KzEzNyw3IEBAIGlmIHRlc3QgeCIkcGdhY19jdl9fMTI4Yml0X2ludCIgPSB4eWVzIDsgdGhlbgog ICBBQ19DQUNIRV9DSEVDSyhbZm9yIF9faW50MTI4IGFsaWdubWVudCBidWddLCBbcGdhY19jdl9f MTI4Yml0X2ludF9idWddLAogICBbQUNfUlVOX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFsKIC8q IFRoaXMgbXVzdCBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBjb2RlIGluIGMuaDogKi8KLSNpZiBk ZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpCisjaWYgZGVmaW5lZChfX0dO VUNfXykgfHwgZGVmaW5lZChfX1NVTlBST19DKSB8fCBkZWZpbmVkKF9fSUJNQ19fKQogI2RlZmlu ZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSBfX2F0dHJpYnV0ZV9fKChhbGlnbmVkKGEpKSkKICNl bGlmIGRlZmluZWQoX01TQ19WRVIpCiAjZGVmaW5lIHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEpIF9f ZGVjbHNwZWMoYWxpZ24oYSkpCmRpZmYgLS1naXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKaW5k ZXggODk2NDRmMjI0OS4uOGNhN2VjNWNmZSAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2Nv bmZpZ3VyZQpAQCAtMjk4OCw2ICsyOTg4LDcgQEAgZWxzZQogIyAtLXdpdGgtdGVtcGxhdGUgbm90 IGdpdmVuCiAKIGNhc2UgJGhvc3Rfb3MgaW4KKyAgICAgYWl4KikgdGVtcGxhdGU9YWl4IDs7CiAg IGN5Z3dpbip8bXN5cyopIHRlbXBsYXRlPWN5Z3dpbiA7OwogICBkYXJ3aW4qKSB0ZW1wbGF0ZT1k YXJ3aW4gOzsKIGRyYWdvbmZseSopIHRlbXBsYXRlPW5ldGJzZCA7OwpAQCAtMzg5NCw4ICszODk1 LDEwIEBAIF9BQ0VPRgogCiAjIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbGlzdCBvZiBjb21waWxl cnMgdG8gdGVzdCwgdGhlIEFDX1BST0dfQ0MgYW5kCiAjIEFDX1BST0dfQ1hYIG1hY3JvcyB0ZXN0 IGZvciBhIGxvbmcgbGlzdCBvZiB1bnN1cHBvcnRlZCBjb21waWxlcnMuCi1wZ2FjX2NjX2xpc3Q9 ImdjYyBjYyIKLXBnYWNfY3h4X2xpc3Q9ImcrKyBjKysiCitjYXNlICR0ZW1wbGF0ZSBpbgorICBh aXgpIHBnYWNfY2NfbGlzdD0iZ2NjIHhsYyI7IHBnYWNfY3h4X2xpc3Q9ImcrKyB4bEMiOzsKKyAg ICAqKSBwZ2FjX2NjX2xpc3Q9ImdjYyBjYyI7IHBnYWNfY3h4X2xpc3Q9ImcrKyBjKysiOzsKK2Vz YWMKIAogYWNfZXh0PWMKIGFjX2NwcD0nJENQUCAkQ1BQRkxBR1MnCkBAIC02ODQ5LDYgKzY4NTIs MTkwIEBAIGlmIHRlc3QgeCIkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fZm5vX3N0cmljdF9h bGlhc2luZyIgPSB4InllcyI7IHRoZW4KIGZpCiAKIAorZWxpZiB0ZXN0ICIkUE9SVE5BTUUiID0g ImFpeCI7IHRoZW4KKyAgIyBBSVgncyB4bGMgaGFzIHRvIGhhdmUgc3RyaWN0IGFsaWFzaW5nIHR1 cm5lZCBvZmYgdG9vCisKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgd2hldGhlciAke0NDfSBzdXBwb3J0cyAtcW5vYW5zaWFsaWFzLCBmb3IgQ0ZMQUdT IiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtDQ30gc3VwcG9ydHMgLXFub2Fu c2lhbGlhcywgZm9yIENGTEFHUy4uLiAiID4mNjsgfQoraWYgJHtwZ2FjX2N2X3Byb2dfQ0NfY2Zs YWdzX19xbm9hbnNpYWxpYXMrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgorZWxzZQorICBwZ2FjX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKK3BnYWNfc2F2ZV9DQz0k Q0MKK0NDPSR7Q0N9CitDRkxBR1M9IiR7Q0ZMQUdTfSAtcW5vYW5zaWFsaWFzIgorYWNfc2F2ZV9j X3dlcnJvcl9mbGFnPSRhY19jX3dlcnJvcl9mbGFnCithY19jX3dlcnJvcl9mbGFnPXllcworY2F0 IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZz LmguICAqLworCitpbnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9G CitpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIHBnYWNfY3ZfcHJv Z19DQ19jZmxhZ3NfX3Fub2Fuc2lhbGlhcz15ZXMKK2Vsc2UKKyAgcGdhY19jdl9wcm9nX0NDX2Nm bGFnc19fcW5vYW5zaWFsaWFzPW5vCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CithY19jX3dlcnJvcl9mbGFnPSRhY19zYXZl X2Nfd2Vycm9yX2ZsYWcKK0NGTEFHUz0iJHBnYWNfc2F2ZV9DRkxBR1MiCitDQz0iJHBnYWNfc2F2 ZV9DQyIKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3Fub2Fuc2lhbGlhcyIgPiY1CiskYXNfZWNobyAi JHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3Fub2Fuc2lhbGlhcyIgPiY2OyB9CitpZiB0ZXN0IHgi JHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3Fub2Fuc2lhbGlhcyIgPSB4InllcyI7IHRoZW4KKyAg Q0ZMQUdTPSIke0NGTEFHU30gLXFub2Fuc2lhbGlhcyIKK2ZpCisKKworICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJHtDWFh9IHN1cHBv cnRzIC1xbm9hbnNpYWxpYXMsIGZvciBDWFhGTEFHUyIgPiY1CiskYXNfZWNob19uICJjaGVja2lu ZyB3aGV0aGVyICR7Q1hYfSBzdXBwb3J0cyAtcW5vYW5zaWFsaWFzLCBmb3IgQ1hYRkxBR1MuLi4g IiA+JjY7IH0KK2lmICR7cGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcW5vYW5zaWFsaWFzKzp9 IGZhbHNlOyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgcGdh Y19zYXZlX0NYWEZMQUdTPSRDWFhGTEFHUworcGdhY19zYXZlX0NYWD0kQ1hYCitDWFg9JHtDWFh9 CitDWFhGTEFHUz0iJHtDWFhGTEFHU30gLXFub2Fuc2lhbGlhcyIKK2FjX3NhdmVfY3h4X3dlcnJv cl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKK2FjX2N4eF93ZXJyb3JfZmxhZz15ZXMKK2FjX2V4 dD1jcHAKK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCithY19jb21waWxlPSckQ1hYIC1jICRD WFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCithY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JworYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251CisKK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KKworaW50CittYWluICgpCit7CisKKyAgOworICByZXR1cm4gMDsK K30KK19BQ0VPRgoraWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Cisg IHBnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3NfX3Fub2Fuc2lhbGlhcz15ZXMKK2Vsc2UKKyAgcGdh Y19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcW5vYW5zaWFsaWFzPW5vCitmaQorcm0gLWYgY29yZSBj b25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0CithY19leHQ9 YworYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDQyAtYyAkQ0ZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDQyAtbyBjb25mdGVzdCRh Y19leGVleHQgJENGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCithY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251CisKK2FjX2N4eF93 ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWcKK0NYWEZMQUdTPSIkcGdhY19zYXZl X0NYWEZMQUdTIgorQ1hYPSIkcGdhY19zYXZlX0NYWCIKK2ZpCit7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHBnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3Nf X3Fub2Fuc2lhbGlhcyIgPiY1CiskYXNfZWNobyAiJHBnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3Nf X3Fub2Fuc2lhbGlhcyIgPiY2OyB9CitpZiB0ZXN0IHgiJHBnYWNfY3ZfcHJvZ19DWFhfY3h4Zmxh Z3NfX3Fub2Fuc2lhbGlhcyIgPSB4InllcyI7IHRoZW4KKyAgQ1hYRkxBR1M9IiR7Q1hYRkxBR1N9 IC1xbm9hbnNpYWxpYXMiCitmaQorCisKKworeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyICR7Q0N9IHN1cHBvcnRzIC1xbG9uZ2xvbmcsIGZv ciBDRkxBR1MiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciAke0NDfSBzdXBwb3J0 cyAtcWxvbmdsb25nLCBmb3IgQ0ZMQUdTLi4uICIgPiY2OyB9CitpZiAke3BnYWNfY3ZfcHJvZ19D Q19jZmxhZ3NfX3Fsb25nbG9uZys6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2CitlbHNlCisgIHBnYWNfc2F2ZV9DRkxBR1M9JENGTEFHUworcGdhY19zYXZlX0ND PSRDQworQ0M9JHtDQ30KK0NGTEFHUz0iJHtDRkxBR1N9IC1xbG9uZ2xvbmciCithY19zYXZlX2Nf d2Vycm9yX2ZsYWc9JGFjX2Nfd2Vycm9yX2ZsYWcKK2FjX2Nfd2Vycm9yX2ZsYWc9eWVzCitjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0CisvKiBlbmQgY29uZmRlZnMu aC4gICovCisKK2ludAorbWFpbiAoKQoreworCisgIDsKKyAgcmV0dXJuIDA7Cit9CitfQUNFT0YK K2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgcGdhY19jdl9wcm9n X0NDX2NmbGFnc19fcWxvbmdsb25nPXllcworZWxzZQorICBwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdz X19xbG9uZ2xvbmc9bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2FjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVfY193ZXJy b3JfZmxhZworQ0ZMQUdTPSIkcGdhY19zYXZlX0NGTEFHUyIKK0NDPSIkcGdhY19zYXZlX0NDIgor ZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkcGdh Y19jdl9wcm9nX0NDX2NmbGFnc19fcWxvbmdsb25nIiA+JjUKKyRhc19lY2hvICIkcGdhY19jdl9w cm9nX0NDX2NmbGFnc19fcWxvbmdsb25nIiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19jdl9wcm9n X0NDX2NmbGFnc19fcWxvbmdsb25nIiA9IHgieWVzIjsgdGhlbgorICBDRkxBR1M9IiR7Q0ZMQUdT fSAtcWxvbmdsb25nIgorZmkKKworCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgd2hldGhlciAke0NYWH0gc3VwcG9ydHMgLXFsb25nbG9uZywgZm9y IENYWEZMQUdTIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgJHtDWFh9IHN1cHBv cnRzIC1xbG9uZ2xvbmcsIGZvciBDWFhGTEFHUy4uLiAiID4mNjsgfQoraWYgJHtwZ2FjX2N2X3By b2dfQ1hYX2N4eGZsYWdzX19xbG9uZ2xvbmcrOn0gZmFsc2U7IHRoZW4gOgorICAkYXNfZWNob19u ICIoY2FjaGVkKSAiID4mNgorZWxzZQorICBwZ2FjX3NhdmVfQ1hYRkxBR1M9JENYWEZMQUdTCitw Z2FjX3NhdmVfQ1hYPSRDWFgKK0NYWD0ke0NYWH0KK0NYWEZMQUdTPSIke0NYWEZMQUdTfSAtcWxv bmdsb25nIgorYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3JfZmxhZworYWNf Y3h4X3dlcnJvcl9mbGFnPXllcworYWNfZXh0PWNwcAorYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCithY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKworY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21haW4g KCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jeHhfdHJ5X2Nv bXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcWxv bmdsb25nPXllcworZWxzZQorICBwZ2FjX2N2X3Byb2dfQ1hYX2N4eGZsYWdzX19xbG9uZ2xvbmc9 bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKK2FjX2V4dD1jCithY19jcHA9JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGls ZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGlu az0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21w aWxlcl9nbnUKKworYWNfY3h4X3dlcnJvcl9mbGFnPSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwor Q1hYRkxBR1M9IiRwZ2FjX3NhdmVfQ1hYRkxBR1MiCitDWFg9IiRwZ2FjX3NhdmVfQ1hYIgorZmkK K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkcGdhY19j dl9wcm9nX0NYWF9jeHhmbGFnc19fcWxvbmdsb25nIiA+JjUKKyRhc19lY2hvICIkcGdhY19jdl9w cm9nX0NYWF9jeHhmbGFnc19fcWxvbmdsb25nIiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19jdl9w cm9nX0NYWF9jeHhmbGFnc19fcWxvbmdsb25nIiA9IHgieWVzIjsgdGhlbgorICBDWFhGTEFHUz0i JHtDWFhGTEFHU30gLXFsb25nbG9uZyIKK2ZpCisKKwogZmkKIAogIyBJZiB0aGUgY29tcGlsZXIg a25vd3MgaG93IHRvIGhpZGUgc3ltYm9scywgYWRkIHRoZSBzd2l0Y2ggbmVlZGVkIGZvciB0aGF0 IHRvCkBAIC03MDAzLDYgKzcxOTAsMTAzIEBAIGlmIHRlc3QgeCIkcGdhY19jdl9wcm9nX0NYWF9j eHhmbGFnc19fZnZpc2liaWxpdHlfaW5saW5lc19oaWRkZW4iID0geCJ5ZXMiOyB0aGVuCiBmaQog CiAgIGhhdmVfdmlzaWJpbGl0eV9hdHRyaWJ1dGU9JHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX2Z2 aXNpYmlsaXR5X2hpZGRlbgorZWxpZiB0ZXN0ICIkUE9SVE5BTUUiID0gImFpeCI7IHRoZW4KKyAg IyBOb3RlIHRoYXQgeGxjIGFjY2VwdHMgLWZ2aXNpYmlsaXR5PWhpZGRlbiBhcyBhIGZpbGUuCisg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhl ciAke0NDfSBzdXBwb3J0cyAtcXZpc2liaWxpdHk9aGlkZGVuLCBmb3IgQ0ZMQUdTX1NMX01PRFVM RSIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyICR7Q0N9IHN1cHBvcnRzIC1xdmlz aWJpbGl0eT1oaWRkZW4sIGZvciBDRkxBR1NfU0xfTU9EVUxFLi4uICIgPiY2OyB9CitpZiAke3Bn YWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbis6fSBmYWxzZTsgdGhlbiA6 CisgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2CitlbHNlCisgIHBnYWNfc2F2ZV9DRkxBR1M9 JENGTEFHUworcGdhY19zYXZlX0NDPSRDQworQ0M9JHtDQ30KK0NGTEFHUz0iJHtDRkxBR1NfU0xf TU9EVUxFfSAtcXZpc2liaWxpdHk9aGlkZGVuIgorYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRhY19j X3dlcnJvcl9mbGFnCithY19jX3dlcnJvcl9mbGFnPXllcworY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitpbnQKK21h aW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9jX3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6CisgIHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNp YmlsaXR5X2hpZGRlbj15ZXMKK2Vsc2UKKyAgcGdhY19jdl9wcm9nX0NDX2NmbGFnc19fcXZpc2li aWxpdHlfaGlkZGVuPW5vCitmaQorcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBjb25mdGVzdC4kYWNfZXh0CithY19jX3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nfd2Vy cm9yX2ZsYWcKK0NGTEFHUz0iJHBnYWNfc2F2ZV9DRkxBR1MiCitDQz0iJHBnYWNfc2F2ZV9DQyIK K2ZpCit7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJHBn YWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbiIgPiY1CiskYXNfZWNobyAi JHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbiIgPiY2OyB9CitpZiB0 ZXN0IHgiJHBnYWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbiIgPSB4Inll cyI7IHRoZW4KKyAgQ0ZMQUdTX1NMX01PRFVMRT0iJHtDRkxBR1NfU0xfTU9EVUxFfSAtcXZpc2li aWxpdHk9aGlkZGVuIgorZmkKKworCisgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgd2hldGhlciAke0NYWH0gc3VwcG9ydHMgLXF2aXNpYmlsaXR5PWhp ZGRlbiwgZm9yIENYWEZMQUdTX1NMX01PRFVMRSIgPiY1CiskYXNfZWNob19uICJjaGVja2luZyB3 aGV0aGVyICR7Q1hYfSBzdXBwb3J0cyAtcXZpc2liaWxpdHk9aGlkZGVuLCBmb3IgQ1hYRkxBR1Nf U0xfTU9EVUxFLi4uICIgPiY2OyB9CitpZiAke3BnYWNfY3ZfcHJvZ19DWFhfY3h4ZmxhZ3NfX3F2 aXNpYmlsaXR5X2hpZGRlbis6fSBmYWxzZTsgdGhlbiA6CisgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2CitlbHNlCisgIHBnYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxBR1MKK3BnYWNfc2F2ZV9D WFg9JENYWAorQ1hYPSR7Q1hYfQorQ1hYRkxBR1M9IiR7Q1hYRkxBR1NfU0xfTU9EVUxFfSAtcXZp c2liaWxpdHk9aGlkZGVuIgorYWNfc2F2ZV9jeHhfd2Vycm9yX2ZsYWc9JGFjX2N4eF93ZXJyb3Jf ZmxhZworYWNfY3h4X3dlcnJvcl9mbGFnPXllcworYWNfZXh0PWNwcAorYWNfY3BwPSckQ1hYQ1BQ ICRDUFBGTEFHUycKK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCith Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKKworY2F0IGNvbmZkZWZzLmgg LSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAorLyogZW5kIGNvbmZkZWZzLmguICAqLworCitp bnQKK21haW4gKCkKK3sKKworICA7CisgIHJldHVybiAwOworfQorX0FDRU9GCitpZiBhY19mbl9j eHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKKyAgcGdhY19jdl9wcm9nX0NYWF9jeHhm bGFnc19fcXZpc2liaWxpdHlfaGlkZGVuPXllcworZWxzZQorICBwZ2FjX2N2X3Byb2dfQ1hYX2N4 eGZsYWdzX19xdmlzaWJpbGl0eV9oaWRkZW49bm8KK2ZpCitybSAtZiBjb3JlIGNvbmZ0ZXN0LmVy ciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKK2FjX2V4dD1jCithY19jcHA9 JyRDUFAgJENQUEZMQUdTJworYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JworYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKK2Fj X2NvbXBpbGVyX2dudT0kYWNfY3ZfY19jb21waWxlcl9nbnUKKworYWNfY3h4X3dlcnJvcl9mbGFn PSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZworQ1hYRkxBR1M9IiRwZ2FjX3NhdmVfQ1hYRkxBR1Mi CitDWFg9IiRwZ2FjX3NhdmVfQ1hYIgorZmkKK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcXZpc2liaWxp dHlfaGlkZGVuIiA+JjUKKyRhc19lY2hvICIkcGdhY19jdl9wcm9nX0NYWF9jeHhmbGFnc19fcXZp c2liaWxpdHlfaGlkZGVuIiA+JjY7IH0KK2lmIHRlc3QgeCIkcGdhY19jdl9wcm9nX0NYWF9jeHhm bGFnc19fcXZpc2liaWxpdHlfaGlkZGVuIiA9IHgieWVzIjsgdGhlbgorICBDWFhGTEFHU19TTF9N T0RVTEU9IiR7Q1hYRkxBR1NfU0xfTU9EVUxFfSAtcXZpc2liaWxpdHk9aGlkZGVuIgorZmkKKwor ICBoYXZlX3Zpc2liaWxpdHlfYXR0cmlidXRlPSRwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19xdmlz aWJpbGl0eV9oaWRkZW4KKyAgIyBPbGQgeGxjIHZlcnNpb25zICg8MTMuMSkgZG9uJ3QgaGF2ZSBz dXBwb3J0IGZvciAtcXZpc2liaWxpdHkuIFVzZSBleHBmdWxsIHRvIGZvcmNlCisgICMgYWxsIGV4 dGVuc2lvbiBtb2R1bGUgc3ltYm9scyB0byBiZSBleHBvcnRlZC4KKyAgaWYgdGVzdCAiJHBnYWNf Y3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbiIgIT0gInllcyI7IHRoZW4KKyAg ICBDRkxBR1NfU0xfTU9EVUxFPSIkQ0ZMQUdTX1NMX01PRFVMRSAtV2wsLWIsZXhwZnVsbCIKKyAg ZmkKIGZpCiAKIGlmIHRlc3QgIiRoYXZlX3Zpc2liaWxpdHlfYXR0cmlidXRlIiA9ICJ5ZXMiOyB0 aGVuCkBAIC0xMjg2MCw3ICsxMzE0NCw4IEBAIGZpCiAKIGZpCiAKLSMgTm90ZTogV2UgY2FuIHRl c3QgZm9yIGxpYmxkYXBfciBvbmx5IGFmdGVyIHdlIGtub3cgUFRIUkVBRF9MSUJTCisjIE5vdGU6 IFdlIGNhbiB0ZXN0IGZvciBsaWJsZGFwX3Igb25seSBhZnRlciB3ZSBrbm93IFBUSFJFQURfTElC UzsKKyMgYWxzbywgb24gQUlYLCB3ZSBtYXkgbmVlZCB0byBoYXZlIG9wZW5zc2wgaW4gTElCUyBm b3IgdGhpcyBzdGVwLgogaWYgdGVzdCAiJHdpdGhfbGRhcCIgPSB5ZXMgOyB0aGVuCiAgIF9MSUJT PSIkTElCUyIKICAgaWYgdGVzdCAiJFBPUlROQU1FIiAhPSAid2luMzIiOyB0aGVuCkBAIC0xNDcx OCw2ICsxNTAwMywxMCBAQCBmaQogIyBzcGVsbGluZyBpdCB1bmRlcnN0YW5kcywgYmVjYXVzZSBp dCBjb25mbGljdHMgd2l0aAogIyBfX2RlY2xzcGVjKHJlc3RyaWN0KS4gVGhlcmVmb3JlIHdlIGRl ZmluZSBwZ19yZXN0cmljdCB0byB0aGUKICMgYXBwcm9wcmlhdGUgZGVmaW5pdGlvbiwgd2hpY2gg cHJlc3VtYWJseSB3b24ndCBjb25mbGljdC4KKyMKKyMgQWxsb3cgcGxhdGZvcm1zIHdpdGggYnVn Z3kgY29tcGlsZXJzIHRvIGZvcmNlIHJlc3RyaWN0IHRvIG5vdCBiZQorIyB1c2VkIGJ5IHNldHRp bmcgJEZPUkNFX0RJU0FCTEVfUkVTVFJJQ1Q9eWVzIGluIHRoZSByZWxldmFudAorIyB0ZW1wbGF0 ZS4KIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9y IEMvQysrIHJlc3RyaWN0IGtleXdvcmQiID4mNQogJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMv QysrIHJlc3RyaWN0IGtleXdvcmQuLi4gIiA+JjY7IH0KIGlmICR7YWNfY3ZfY19yZXN0cmljdCs6 fSBmYWxzZTsgdGhlbiA6CkBAIC0xNDc2NCw3ICsxNTA1Myw3IEBAIF9BQ0VPRgogIDs7CiAgZXNh YwogCi1pZiB0ZXN0ICIkYWNfY3ZfY19yZXN0cmljdCIgPSAibm8iOyB0aGVuCitpZiB0ZXN0ICIk YWNfY3ZfY19yZXN0cmljdCIgPSAibm8iIC1vICJ4JEZPUkNFX0RJU0FCTEVfUkVTVFJJQ1QiID0g Inh5ZXMiOyB0aGVuCiAgIHBnX3Jlc3RyaWN0PSIiCiBlbHNlCiAgIHBnX3Jlc3RyaWN0PSIkYWNf Y3ZfY19yZXN0cmljdCIKQEAgLTE2OTUxLDI4ICsxNzI0MCwxOCBAQCBfQUNFT0YKIAogCiAjIENv bXB1dGUgbWF4aW11bSBhbGlnbm1lbnQgb2YgYW55IGJhc2ljIHR5cGUuCi0jCi0jIFdlIHJlcXVp cmUgJ2RvdWJsZScgdG8gaGF2ZSB0aGUgc3RyaWN0ZXN0IGFsaWdubWVudCBhbW9uZyB0aGUgYmFz aWMgdHlwZXMsCi0jIGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBDIEFCSSBtaWdodCBpbXBvc2UgOC1i eXRlIGFsaWdubWVudCBvbiBzb21lIG9mIHRoZQotIyBvdGhlciBDIHR5cGVzIHRoYXQgY29ycmVz cG9uZCB0byBUWVBBTElHTl9ET1VCTEUgU1FMIHR5cGVzLiAgVGhhdCBjb3VsZAotIyBjYXVzZSBh IG1pc21hdGNoIGJldHdlZW4gdGhlIHR1cGxlIGxheW91dCBhbmQgdGhlIEMgc3RydWN0IGxheW91 dCBvZiBhCi0jIGNhdGFsb2cgdHVwbGUuICBXZSB1c2VkIHRvIGNhcmVmdWxseSBvcmRlciBjYXRh bG9nIGNvbHVtbnMgc3VjaCB0aGF0IGFueQotIyBmaXhlZC13aWR0aCwgYXR0YWxpZ249NCBjb2x1 bW5zIHdlcmUgYXQgb2Zmc2V0cyBkaXZpc2libGUgYnkgOCByZWdhcmRsZXNzCi0jIG9mIE1BWElN VU1fQUxJR05PRiB0byBhdm9pZCB0aGF0LCBidXQgd2Ugbm8gbG9uZ2VyIHN1cHBvcnQgYW55IHBs YXRmb3JtcwotIyB3aGVyZSBUWVBBTElHTl9ET1VCTEUgIT0gTUFYSU1VTV9BTElHTk9GLgotIwot IyBXZSBhc3N1bWUgd2l0aG91dCBjaGVja2luZyB0aGF0IGxvbmcncyBhbGlnbm1lbnQgaXMgYXQg bGVhc3QgYXMgc3Ryb25nIGFzCi0jIGNoYXIsIHNob3J0LCBvciBpbnQuICBOb3RlIHRoYXQgd2Ug aW50ZW50aW9uYWxseSBkbyBub3QgY29uc2lkZXIgYW55IHR5cGVzCi0jIHdpZGVyIHRoYW4gNjQg Yml0cywgYXMgYWxsb3dpbmcgTUFYSU1VTV9BTElHTk9GIHRvIGV4Y2VlZCA4IHdvdWxkIGJlIHRv bwotIyBtdWNoIG9mIGEgcGVuYWx0eSBmb3IgZGlzayBhbmQgbWVtb3J5IHNwYWNlLgotCi1NQVhf QUxJR05PRj0kYWNfY3ZfYWxpZ25vZl9kb3VibGUKKyMgV2UgYXNzdW1lIGxvbmcncyBhbGlnbm1l bnQgaXMgYXQgbGVhc3QgYXMgc3Ryb25nIGFzIGNoYXIsIHNob3J0LCBvciBpbnQ7CisjIGJ1dCB3 ZSBtdXN0IGNoZWNrIGxvbmcgbG9uZyAoaWYgaXQgaXMgYmVpbmcgdXNlZCBmb3IgaW50NjQpIGFu ZCBkb3VibGUuCisjIE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGRvIG5vdCBjb25zaWRlciBh bnkgdHlwZXMgd2lkZXIgdGhhbiA2NCBiaXRzLAorIyBhcyBhbGxvd2luZyBNQVhJTVVNX0FMSUdO T0YgdG8gZXhjZWVkIDggd291bGQgYmUgdG9vIG11Y2ggb2YgYSBwZW5hbHR5CisjIGZvciBkaXNr IGFuZCBtZW1vcnkgc3BhY2UuCiAKLWlmIHRlc3QgJGFjX2N2X2FsaWdub2ZfbG9uZyAtZ3QgJE1B WF9BTElHTk9GIDsgdGhlbgotICBhc19mbl9lcnJvciAkPyAiYWxpZ25tZW50IG9mICdsb25nJyBp cyBncmVhdGVyIHRoYW4gdGhlIGFsaWdubWVudCBvZiAnZG91YmxlJyIgIiRMSU5FTk8iIDUKK01B WF9BTElHTk9GPSRhY19jdl9hbGlnbm9mX2xvbmcKK2lmIHRlc3QgJE1BWF9BTElHTk9GIC1sdCAk YWNfY3ZfYWxpZ25vZl9kb3VibGUgOyB0aGVuCisgIE1BWF9BTElHTk9GPSRhY19jdl9hbGlnbm9m X2RvdWJsZQogZmkKLWlmIHRlc3QgeCIkSEFWRV9MT05HX0xPTkdfSU5UXzY0IiA9IHh5ZXMgJiYg dGVzdCAkYWNfY3ZfYWxpZ25vZl9sb25nX2xvbmdfaW50IC1ndCAkTUFYX0FMSUdOT0YgOyB0aGVu Ci0gIGFzX2ZuX2Vycm9yICQ/ICJhbGlnbm1lbnQgb2YgJ2xvbmcgbG9uZyBpbnQnIGlzIGdyZWF0 ZXIgdGhhbiB0aGUgYWxpZ25tZW50IG9mICdkb3VibGUnIiAiJExJTkVOTyIgNQoraWYgdGVzdCB4 IiRIQVZFX0xPTkdfTE9OR19JTlRfNjQiID0geHllcyAmJiB0ZXN0ICRNQVhfQUxJR05PRiAtbHQg JGFjX2N2X2FsaWdub2ZfbG9uZ19sb25nX2ludCA7IHRoZW4KKyAgTUFYX0FMSUdOT0Y9IiRhY19j dl9hbGlnbm9mX2xvbmdfbG9uZ19pbnQiCiBmaQogCiBjYXQgPj5jb25mZGVmcy5oIDw8X0FDRU9G CkBAIC0xNzA5MCw3ICsxNzM2OSw3IEBAIGVsc2UKIC8qIGVuZCBjb25mZGVmcy5oLiAgKi8KIAog LyogVGhpcyBtdXN0IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgaW4gYy5oOiAqLwotI2lm IGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19TVU5QUk9fQykKKyNpZiBkZWZpbmVkKF9f R05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpIHx8IGRlZmluZWQoX19JQk1DX18pCiAjZGVm aW5lIHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEpIF9fYXR0cmlidXRlX18oKGFsaWduZWQoYSkpKQog I2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKICNkZWZpbmUgcGdfYXR0cmlidXRlX2FsaWduZWQoYSkg X19kZWNsc3BlYyhhbGlnbihhKSkKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3Vy ZS5hYwppbmRleCBjNzMyMmUyOTJjLi5iMmUxOWNmODIyIDEwMDY0NAotLS0gYS9jb25maWd1cmUu YWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC02Miw2ICs2Miw3IEBAIFBHQUNfQVJHX1JFUSh3aXRo LCB0ZW1wbGF0ZSwgW05BTUVdLCBbb3ZlcnJpZGUgb3BlcmF0aW5nIHN5c3RlbSB0ZW1wbGF0ZV0s CiAjIC0td2l0aC10ZW1wbGF0ZSBub3QgZ2l2ZW4KIAogY2FzZSAkaG9zdF9vcyBpbgorICAgICBh aXgqKSB0ZW1wbGF0ZT1haXggOzsKICAgY3lnd2luKnxtc3lzKikgdGVtcGxhdGU9Y3lnd2luIDs7 CiAgIGRhcndpbiopIHRlbXBsYXRlPWRhcndpbiA7OwogZHJhZ29uZmx5KikgdGVtcGxhdGU9bmV0 YnNkIDs7CkBAIC0zNjgsMTAgKzM2OSwxMCBAQCBBQ19ERUZJTkVfVU5RVU9URUQoW1hMT0dfQkxD S1NaXSwgJHtYTE9HX0JMQ0tTWn0sIFsKICMgQyBjb21waWxlcgogIwogCi0jIElmIHlvdSBkb24n dCBzcGVjaWZ5IGEgbGlzdCBvZiBjb21waWxlcnMgdG8gdGVzdCwgdGhlIEFDX1BST0dfQ0MgYW5k Ci0jIEFDX1BST0dfQ1hYIG1hY3JvcyB0ZXN0IGZvciBhIGxvbmcgbGlzdCBvZiB1bnN1cHBvcnRl ZCBjb21waWxlcnMuCi1wZ2FjX2NjX2xpc3Q9ImdjYyBjYyIKLXBnYWNfY3h4X2xpc3Q9ImcrKyBj KysiCitjYXNlICR0ZW1wbGF0ZSBpbgorICBhaXgpIHBnYWNfY2NfbGlzdD0iZ2NjIHhsYyI7IHBn YWNfY3h4X2xpc3Q9ImcrKyB4bEMiOzsKKyAgICAqKSBwZ2FjX2NjX2xpc3Q9ImdjYyBjYyI7IHBn YWNfY3h4X2xpc3Q9ImcrKyBjKysiOzsKK2VzYWMKIAogQUNfUFJPR19DQyhbJHBnYWNfY2NfbGlz dF0pCiBBQ19QUk9HX0NDX0M5OSgpCkBAIC01ODgsNiArNTg5LDEyIEBAIGVsaWYgdGVzdCAiJElD QyIgPSB5ZXM7IHRoZW4KICAgIyBNYWtlIHN1cmUgc3RyaWN0IGFsaWFzaW5nIGlzIG9mZiAodGhv dWdoIHRoaXMgaXMgc2FpZCB0byBiZSB0aGUgZGVmYXVsdCkKICAgUEdBQ19QUk9HX0NDX0NGTEFH U19PUFQoWy1mbm8tc3RyaWN0LWFsaWFzaW5nXSkKICAgUEdBQ19QUk9HX0NYWF9DRkxBR1NfT1BU KFstZm5vLXN0cmljdC1hbGlhc2luZ10pCitlbGlmIHRlc3QgIiRQT1JUTkFNRSIgPSAiYWl4Ijsg dGhlbgorICAjIEFJWCdzIHhsYyBoYXMgdG8gaGF2ZSBzdHJpY3QgYWxpYXNpbmcgdHVybmVkIG9m ZiB0b28KKyAgUEdBQ19QUk9HX0NDX0NGTEFHU19PUFQoWy1xbm9hbnNpYWxpYXNdKQorICBQR0FD X1BST0dfQ1hYX0NGTEFHU19PUFQoWy1xbm9hbnNpYWxpYXNdKQorICBQR0FDX1BST0dfQ0NfQ0ZM QUdTX09QVChbLXFsb25nbG9uZ10pCisgIFBHQUNfUFJPR19DWFhfQ0ZMQUdTX09QVChbLXFsb25n bG9uZ10pCiBmaQogCiAjIElmIHRoZSBjb21waWxlciBrbm93cyBob3cgdG8gaGlkZSBzeW1ib2xz LCBhZGQgdGhlIHN3aXRjaCBuZWVkZWQgZm9yIHRoYXQgdG8KQEAgLTYwNiw2ICs2MTMsMTYgQEAg aWYgdGVzdCAiJEdDQyIgPSB5ZXMgLW8gIiRTVU5fU1RVRElPX0NDIiA9IHllcyA7IHRoZW4KICAg UEdBQ19QUk9HX1ZBUkNYWF9WQVJGTEFHU19PUFQoQ1hYLCBDWFhGTEFHU19TTF9NT0RVTEUsIFst ZnZpc2liaWxpdHk9aGlkZGVuXSkKICAgUEdBQ19QUk9HX1ZBUkNYWF9WQVJGTEFHU19PUFQoQ1hY LCBDWFhGTEFHU19TTF9NT0RVTEUsIFstZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW5dKQogICBo YXZlX3Zpc2liaWxpdHlfYXR0cmlidXRlPSRwZ2FjX2N2X3Byb2dfQ0NfY2ZsYWdzX19mdmlzaWJp bGl0eV9oaWRkZW4KK2VsaWYgdGVzdCAiJFBPUlROQU1FIiA9ICJhaXgiOyB0aGVuCisgICMgTm90 ZSB0aGF0IHhsYyBhY2NlcHRzIC1mdmlzaWJpbGl0eT1oaWRkZW4gYXMgYSBmaWxlLgorICBQR0FD X1BST0dfQ0NfVkFSX09QVChDRkxBR1NfU0xfTU9EVUxFLCBbLXF2aXNpYmlsaXR5PWhpZGRlbl0p CisgIFBHQUNfUFJPR19WQVJDWFhfVkFSRkxBR1NfT1BUKENYWCwgQ1hYRkxBR1NfU0xfTU9EVUxF LCBbLXF2aXNpYmlsaXR5PWhpZGRlbl0pCisgIGhhdmVfdmlzaWJpbGl0eV9hdHRyaWJ1dGU9JHBn YWNfY3ZfcHJvZ19DQ19jZmxhZ3NfX3F2aXNpYmlsaXR5X2hpZGRlbgorICAjIE9sZCB4bGMgdmVy c2lvbnMgKDwxMy4xKSBkb24ndCBoYXZlIHN1cHBvcnQgZm9yIC1xdmlzaWJpbGl0eS4gVXNlIGV4 cGZ1bGwgdG8gZm9yY2UKKyAgIyBhbGwgZXh0ZW5zaW9uIG1vZHVsZSBzeW1ib2xzIHRvIGJlIGV4 cG9ydGVkLgorICBpZiB0ZXN0ICIkcGdhY19jdl9wcm9nX0NDX2NmbGFnc19fcXZpc2liaWxpdHlf aGlkZGVuIiAhPSAieWVzIjsgdGhlbgorICAgIENGTEFHU19TTF9NT0RVTEU9IiRDRkxBR1NfU0xf TU9EVUxFIC1XbCwtYixleHBmdWxsIgorICBmaQogZmkKIAogaWYgdGVzdCAiJGhhdmVfdmlzaWJp bGl0eV9hdHRyaWJ1dGUiID0gInllcyI7IHRoZW4KQEAgLTEzODUsNyArMTQwMiw4IEBAIGlmIHRl c3QgIiR3aXRoX3pzdGQiID0geWVzIDsgdGhlbgogICBBQ19DSEVDS19MSUIoenN0ZCwgWlNURF9j b21wcmVzcywgW10sIFtBQ19NU0dfRVJST1IoW2xpYnJhcnkgJ3pzdGQnIGlzIHJlcXVpcmVkIGZv ciBaU1REIHN1cHBvcnRdKV0pCiBmaQogCi0jIE5vdGU6IFdlIGNhbiB0ZXN0IGZvciBsaWJsZGFw X3Igb25seSBhZnRlciB3ZSBrbm93IFBUSFJFQURfTElCUworIyBOb3RlOiBXZSBjYW4gdGVzdCBm b3IgbGlibGRhcF9yIG9ubHkgYWZ0ZXIgd2Uga25vdyBQVEhSRUFEX0xJQlM7CisjIGFsc28sIG9u IEFJWCwgd2UgbWF5IG5lZWQgdG8gaGF2ZSBvcGVuc3NsIGluIExJQlMgZm9yIHRoaXMgc3RlcC4K IGlmIHRlc3QgIiR3aXRoX2xkYXAiID0geWVzIDsgdGhlbgogICBfTElCUz0iJExJQlMiCiAgIGlm IHRlc3QgIiRQT1JUTkFNRSIgIT0gIndpbjMyIjsgdGhlbgpAQCAtMTY0Myw4ICsxNjYxLDEyIEBA IFBHQUNfVFlQRV9MT0NBTEVfVAogIyBzcGVsbGluZyBpdCB1bmRlcnN0YW5kcywgYmVjYXVzZSBp dCBjb25mbGljdHMgd2l0aAogIyBfX2RlY2xzcGVjKHJlc3RyaWN0KS4gVGhlcmVmb3JlIHdlIGRl ZmluZSBwZ19yZXN0cmljdCB0byB0aGUKICMgYXBwcm9wcmlhdGUgZGVmaW5pdGlvbiwgd2hpY2gg cHJlc3VtYWJseSB3b24ndCBjb25mbGljdC4KKyMKKyMgQWxsb3cgcGxhdGZvcm1zIHdpdGggYnVn Z3kgY29tcGlsZXJzIHRvIGZvcmNlIHJlc3RyaWN0IHRvIG5vdCBiZQorIyB1c2VkIGJ5IHNldHRp bmcgJEZPUkNFX0RJU0FCTEVfUkVTVFJJQ1Q9eWVzIGluIHRoZSByZWxldmFudAorIyB0ZW1wbGF0 ZS4KIEFDX0NfUkVTVFJJQ1QKLWlmIHRlc3QgIiRhY19jdl9jX3Jlc3RyaWN0IiA9ICJubyI7IHRo ZW4KK2lmIHRlc3QgIiRhY19jdl9jX3Jlc3RyaWN0IiA9ICJubyIgLW8gIngkRk9SQ0VfRElTQUJM RV9SRVNUUklDVCIgPSAieHllcyI7IHRoZW4KICAgcGdfcmVzdHJpY3Q9IiIKIGVsc2UKICAgcGdf cmVzdHJpY3Q9IiRhY19jdl9jX3Jlc3RyaWN0IgpAQCAtMTk5NiwyMiArMjAxOCwxMSBAQCBmaQog QUNfQ0hFQ0tfQUxJR05PRihkb3VibGUpCiAKICMgQ29tcHV0ZSBtYXhpbXVtIGFsaWdubWVudCBv ZiBhbnkgYmFzaWMgdHlwZS4KLSMKLSMgV2UgcmVxdWlyZSAnZG91YmxlJyB0byBoYXZlIHRoZSBz dHJpY3Rlc3QgYWxpZ25tZW50IGFtb25nIHRoZSBiYXNpYyB0eXBlcywKLSMgYmVjYXVzZSBvdGhl cndpc2UgdGhlIEMgQUJJIG1pZ2h0IGltcG9zZSA4LWJ5dGUgYWxpZ25tZW50IG9uIHNvbWUgb2Yg dGhlCi0jIG90aGVyIEMgdHlwZXMgdGhhdCBjb3JyZXNwb25kIHRvIFRZUEFMSUdOX0RPVUJMRSBT UUwgdHlwZXMuICBUaGF0IGNvdWxkCi0jIGNhdXNlIGEgbWlzbWF0Y2ggYmV0d2VlbiB0aGUgdHVw bGUgbGF5b3V0IGFuZCB0aGUgQyBzdHJ1Y3QgbGF5b3V0IG9mIGEKLSMgY2F0YWxvZyB0dXBsZS4g IFdlIHVzZWQgdG8gY2FyZWZ1bGx5IG9yZGVyIGNhdGFsb2cgY29sdW1ucyBzdWNoIHRoYXQgYW55 Ci0jIGZpeGVkLXdpZHRoLCBhdHRhbGlnbj00IGNvbHVtbnMgd2VyZSBhdCBvZmZzZXRzIGRpdmlz aWJsZSBieSA4IHJlZ2FyZGxlc3MKLSMgb2YgTUFYSU1VTV9BTElHTk9GIHRvIGF2b2lkIHRoYXQs IGJ1dCB3ZSBubyBsb25nZXIgc3VwcG9ydCBhbnkgcGxhdGZvcm1zCi0jIHdoZXJlIFRZUEFMSUdO X0RPVUJMRSAhPSBNQVhJTVVNX0FMSUdOT0YuCi0jCi0jIFdlIGFzc3VtZSB3aXRob3V0IGNoZWNr aW5nIHRoYXQgbG9uZydzIGFsaWdubWVudCBpcyBhdCBsZWFzdCBhcyBzdHJvbmcgYXMKLSMgY2hh ciwgc2hvcnQsIG9yIGludC4gIE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGRvIG5vdCBjb25z aWRlciBhbnkgdHlwZXMKLSMgd2lkZXIgdGhhbiA2NCBiaXRzLCBhcyBhbGxvd2luZyBNQVhJTVVN X0FMSUdOT0YgdG8gZXhjZWVkIDggd291bGQgYmUgdG9vCi0jIG11Y2ggb2YgYSBwZW5hbHR5IGZv ciBkaXNrIGFuZCBtZW1vcnkgc3BhY2UuCi0KLU1BWF9BTElHTk9GPSRhY19jdl9hbGlnbm9mX2Rv dWJsZQorIyBXZSBhc3N1bWUgbG9uZydzIGFsaWdubWVudCBpcyBhdCBsZWFzdCBhcyBzdHJvbmcg YXMgY2hhciwgc2hvcnQsIG9yIGludDsKKyMgYnV0IHdlIG11c3QgY2hlY2sgbG9uZyBsb25nIChp ZiBpdCBpcyBiZWluZyB1c2VkIGZvciBpbnQ2NCkgYW5kIGRvdWJsZS4KKyMgTm90ZSB0aGF0IHdl IGludGVudGlvbmFsbHkgZG8gbm90IGNvbnNpZGVyIGFueSB0eXBlcyB3aWRlciB0aGFuIDY0IGJp dHMsCisjIGFzIGFsbG93aW5nIE1BWElNVU1fQUxJR05PRiB0byBleGNlZWQgOCB3b3VsZCBiZSB0 b28gbXVjaCBvZiBhIHBlbmFsdHkKKyMgZm9yIGRpc2sgYW5kIG1lbW9yeSBzcGFjZS4KIAogaWYg dGVzdCAkYWNfY3ZfYWxpZ25vZl9sb25nIC1ndCAkTUFYX0FMSUdOT0YgOyB0aGVuCiAgIEFDX01T R19FUlJPUihbYWxpZ25tZW50IG9mICdsb25nJyBpcyBncmVhdGVyIHRoYW4gdGhlIGFsaWdubWVu dCBvZiAnZG91YmxlJ10pCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGZ1bmMuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9kZnVuYy5zZ21sCmluZGV4IGI5NGFlZmNkMGMuLjU1NGY5ZmFjNGMgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZnVuYy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZnVuYy5z Z21sCkBAIC0yMDIsNCArMjAyLDIzIEBAIGdjYyAtRyAtbyBmb28uc28gZm9vLm8KICAgc2VydmVy IGV4cGVjdHMgdG8gZmluZCB0aGUgc2hhcmVkIGxpYnJhcnkgZmlsZXMuCiAgPC9wYXJhPgogCis8 IS0tCitVbmRlciBBSVgsIG9iamVjdCBmaWxlcyBhcmUgY29tcGlsZWQgbm9ybWFsbHkgYnV0IGJ1 aWxkaW5nIHRoZSBzaGFyZWQKK2xpYnJhcnkgcmVxdWlyZXMgYSBjb3VwbGUgb2Ygc3RlcHMuICBG aXJzdCwgY3JlYXRlIHRoZSBvYmplY3QgZmlsZToKKy5uZgorY2MgPG90aGVyIGZsYWdzPiAtYyBm b28uYworLmZpCitZb3UgbXVzdCB0aGVuIGNyZWF0ZSBhIHN5bWJvbCBcKihscWV4cG9ydHNcKihy cSBmaWxlIGZvciB0aGUgb2JqZWN0CitmaWxlOgorLm5mCitta2xkZXhwb3J0IGZvby5vIGBwd2Rg ICZndDsgZm9vLmV4cAorLmZpCitGaW5hbGx5LCB5b3UgY2FuIGNyZWF0ZSB0aGUgc2hhcmVkIGxp YnJhcnk6CisubmYKK2xkIDxvdGhlciBmbGFncz4gLUg1MTIgLVQ1MTIgLW8gZm9vLnNvIC1lIF9u b3N0YXJ0IFxlCisgICAtYkk6Li4uL2xpYi9wb3N0Z3Jlcy5leHAgLWJFOmZvby5leHAgZm9vLm8g XGUKKyAgIC1sbSAtbGMgMj4vZGV2L251bGwKKy5maQorICAtLT4KKwogPC9zZWN0Mj4KZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9pbnN0YWxsYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9pbnN0 YWxsYXRpb24uc2dtbAppbmRleCAxYjMyZDVjYTYyLi42YjI3YTEyNTBiIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvaW5zdGFsbGF0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2luc3RhbGxh dGlvbi5zZ21sCkBAIC0zNDAxLDcgKzM0MDEsNyBAQCBleHBvcnQgTUFOUEFUSAogICA8cGFyYT4K ICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gY2FuIGJlIGV4cGVjdGVk IHRvIHdvcmsgb24gY3VycmVudAogICAgdmVyc2lvbnMgb2YgdGhlc2Ugb3BlcmF0aW5nIHN5c3Rl bXM6IExpbnV4LCBXaW5kb3dzLAotICAgRnJlZUJTRCwgT3BlbkJTRCwgTmV0QlNELCBEcmFnb25G bHlCU0QsIG1hY09TLCBTb2xhcmlzLCBhbmQgaWxsdW1vcy4KKyAgIEZyZWVCU0QsIE9wZW5CU0Qs IE5ldEJTRCwgRHJhZ29uRmx5QlNELCBtYWNPUywgQUlYLCBTb2xhcmlzLCBhbmQgaWxsdW1vcy4K ICAgIE90aGVyIFVuaXgtbGlrZSBzeXN0ZW1zIG1heSBhbHNvIHdvcmsgYnV0IGFyZSBub3QgY3Vy cmVudGx5CiAgICBiZWluZyB0ZXN0ZWQuICBJbiBtb3N0IGNhc2VzLCBhbGwgQ1BVIGFyY2hpdGVj dHVyZXMgc3VwcG9ydGVkIGJ5CiAgICBhIGdpdmVuIG9wZXJhdGluZyBzeXN0ZW0gd2lsbCB3b3Jr LiAgTG9vayBpbgpAQCAtMzQ0NSw2ICszNDQ1LDEyMyBAQCBleHBvcnQgTUFOUEFUSAogICAgaW5z dGFsbGF0aW9uIGlzc3Vlcy4KICAgPC9wYXJhPgogCisgIDxzZWN0MiBpZD0iaW5zdGFsbGF0aW9u LW5vdGVzLWFpeCI+CisgICA8dGl0bGU+QUlYPC90aXRsZT4KKworICAgPGluZGV4dGVybSB6b25l PSJpbnN0YWxsYXRpb24tbm90ZXMtYWl4Ij4KKyAgICA8cHJpbWFyeT5BSVg8L3ByaW1hcnk+Cisg ICAgPHNlY29uZGFyeT5pbnN0YWxsYXRpb24gb248L3NlY29uZGFyeT4KKyAgIDwvaW5kZXh0ZXJt PgorCisgICA8cGFyYT4KKyAgICBZb3UgY2FuIHVzZSBHQ0Mgb3IgdGhlIG5hdGl2ZSBJQk0gY29t cGlsZXIgPGNvbW1hbmQ+eGxjPC9jb21tYW5kPgorICAgIHRvIGJ1aWxkIDxwcm9kdWN0bmFtZT5Q b3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgICBvbiA8cHJvZHVjdG5hbWU+QUlYPC9wcm9kdWN0 bmFtZT4uCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIDxwcm9kdWN0bmFtZT5BSVg8L3By b2R1Y3RuYW1lPiB2ZXJzaW9ucyBiZWZvcmUgNy4xIGFyZSBubyBsb25nZXIKKyAgICB0ZXN0ZWQg bm9yIHN1cHBvcnRlZCBieSB0aGUgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1l PgorICAgIGNvbW11bml0eS4KKyAgIDwvcGFyYT4KKworICAgPHNlY3QzIGlkPSJpbnN0YWxsYXRp b24tbm90ZXMtYWl4LW1lbS1tYW5hZ2VtZW50Ij4KKyAgICA8dGl0bGU+TWVtb3J5IE1hbmFnZW1l bnQ8L3RpdGxlPgorICAgIDwhLS0gaHR0cHM6Ly9hcmNoaXZlcy5wb3N0Z3Jlc3FsLm9yZy9tZXNz YWdlLWlkLzYwM2JncW1wbDkuZnNmQGRiYTIuaW50LmxpYmVydHlybXMuY29tIC0tPgorCisgICAg PHBhcmE+CisgICAgIEFJWCBjYW4gYmUgc29tZXdoYXQgcGVjdWxpYXIgd2l0aCByZWdhcmRzIHRv IHRoZSB3YXkgaXQgZG9lcworICAgICBtZW1vcnkgbWFuYWdlbWVudC4gIFlvdSBjYW4gaGF2ZSBh IHNlcnZlciB3aXRoIG1hbnkgbXVsdGlwbGVzIG9mCisgICAgIGdpZ2FieXRlcyBvZiBSQU0gZnJl ZSwgYnV0IHN0aWxsIGdldCBvdXQgb2YgbWVtb3J5IG9yIGFkZHJlc3MKKyAgICAgc3BhY2UgZXJy b3JzIHdoZW4gcnVubmluZyBhcHBsaWNhdGlvbnMuICBPbmUgZXhhbXBsZQorICAgICBpcyBsb2Fk aW5nIG9mIGV4dGVuc2lvbnMgZmFpbGluZyB3aXRoIHVudXN1YWwgZXJyb3JzLgorICAgICBGb3Ig ZXhhbXBsZSwgcnVubmluZyBhcyB0aGUgb3duZXIgb2YgdGhlIFBvc3RncmVTUUwgaW5zdGFsbGF0 aW9uOgorPHNjcmVlbj4KKz0jIENSRUFURSBFWFRFTlNJT04gcGxwZXJsOworRVJST1I6ICBjb3Vs ZCBub3QgbG9hZCBsaWJyYXJ5ICIvb3B0L2Ricy9wZ3NxbC9saWIvcGxwZXJsLnNvIjogQSBtZW1v cnkgYWRkcmVzcyBpcyBub3QgaW4gdGhlIGFkZHJlc3Mgc3BhY2UgZm9yIHRoZSBwcm9jZXNzLgor PC9zY3JlZW4+CisgICAgUnVubmluZyBhcyBhIG5vbi1vd25lciBpbiB0aGUgZ3JvdXAgcG9zc2Vz c2luZyB0aGUgUG9zdGdyZVNRTAorICAgIGluc3RhbGxhdGlvbjoKKzxzY3JlZW4+Cis9IyBDUkVB VEUgRVhURU5TSU9OIHBscGVybDsKK0VSUk9SOiAgY291bGQgbm90IGxvYWQgbGlicmFyeSAiL29w dC9kYnMvcGdzcWwvbGliL3BscGVybC5zbyI6IEJhZCBhZGRyZXNzCis8L3NjcmVlbj4KKyAgICAg QW5vdGhlciBleGFtcGxlIGlzIG91dCBvZiBtZW1vcnkgZXJyb3JzIGluIHRoZSBQb3N0Z3JlU1FM IHNlcnZlcgorICAgICBsb2dzLCB3aXRoIGV2ZXJ5IG1lbW9yeSBhbGxvY2F0aW9uIG5lYXIgb3Ig Z3JlYXRlciB0aGFuIDI1NiBNQgorICAgICBmYWlsaW5nLgorICAgIDwvcGFyYT4KKworICAgIDxw YXJhPgorICAgICBUaGUgb3ZlcmFsbCBjYXVzZSBvZiBhbGwgdGhlc2UgcHJvYmxlbXMgaXMgdGhl IGRlZmF1bHQgYml0dGVkbmVzcworICAgICBhbmQgbWVtb3J5IG1vZGVsIHVzZWQgYnkgdGhlIHNl cnZlciBwcm9jZXNzLiAgQnkgZGVmYXVsdCwgYWxsCisgICAgIGJpbmFyaWVzIGJ1aWx0IG9uIEFJ WCBhcmUgMzItYml0LiAgVGhpcyBkb2VzIG5vdCBkZXBlbmQgdXBvbgorICAgICBoYXJkd2FyZSB0 eXBlIG9yIGtlcm5lbCBpbiB1c2UuICBUaGVzZSAzMi1iaXQgcHJvY2Vzc2VzIGFyZQorICAgICBs aW1pdGVkIHRvIDQgR0Igb2YgbWVtb3J5IGxhaWQgb3V0IGluIDI1NiBNQiBzZWdtZW50cyB1c2lu ZyBvbmUKKyAgICAgb2YgYSBmZXcgbW9kZWxzLiAgVGhlIGRlZmF1bHQgYWxsb3dzIGZvciBsZXNz IHRoYW4gMjU2IE1CIGluIHRoZQorICAgICBoZWFwIGFzIGl0IHNoYXJlcyBhIHNpbmdsZSBzZWdt ZW50IHdpdGggdGhlIHN0YWNrLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBJbiB0 aGUgY2FzZSBvZiB0aGUgPGxpdGVyYWw+cGxwZXJsPC9saXRlcmFsPiBleGFtcGxlLCBhYm92ZSwK KyAgICAgY2hlY2sgeW91ciB1bWFzayBhbmQgdGhlIHBlcm1pc3Npb25zIG9mIHRoZSBiaW5hcmll cyBpbiB5b3VyCisgICAgIFBvc3RncmVTUUwgaW5zdGFsbGF0aW9uLiAgVGhlIGJpbmFyaWVzIGlu dm9sdmVkIGluIHRoYXQgZXhhbXBsZQorICAgICB3ZXJlIDMyLWJpdCBhbmQgaW5zdGFsbGVkIGFz IG1vZGUgNzUwIGluc3RlYWQgb2YgNzU1LiAgRHVlIHRvIHRoZQorICAgICBwZXJtaXNzaW9ucyBi ZWluZyBzZXQgaW4gdGhpcyBmYXNoaW9uLCBvbmx5IHRoZSBvd25lciBvciBhIG1lbWJlcgorICAg ICBvZiB0aGUgcG9zc2Vzc2luZyBncm91cCBjYW4gbG9hZCB0aGUgbGlicmFyeS4gIFNpbmNlIGl0 IGlzbid0CisgICAgIHdvcmxkLXJlYWRhYmxlLCB0aGUgbG9hZGVyIHBsYWNlcyB0aGUgb2JqZWN0 IGludG8gdGhlIHByb2Nlc3MnCisgICAgIGhlYXAgaW5zdGVhZCBvZiB0aGUgc2hhcmVkIGxpYnJh cnkgc2VnbWVudHMgd2hlcmUgaXQgd291bGQKKyAgICAgb3RoZXJ3aXNlIGJlIHBsYWNlZC4KKyAg ICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxxdW90ZT5pZGVhbDwvcXVvdGU+IHNv bHV0aW9uIGZvciB0aGlzIGlzIHRvIHVzZSBhIDY0LWJpdAorICAgICBidWlsZCBvZiBQb3N0Z3Jl U1FMLCBidXQgdGhhdCBpcyBub3QgYWx3YXlzIHByYWN0aWNhbCwgYmVjYXVzZQorICAgICBzeXN0 ZW1zIHdpdGggMzItYml0IHByb2Nlc3NvcnMgY2FuIGJ1aWxkLCBidXQgbm90IHJ1biwgNjQtYml0 CisgICAgIGJpbmFyaWVzLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBJZiBhIDMy LWJpdCBiaW5hcnkgaXMgZGVzaXJlZCwgc2V0IDxzeW1ib2w+TERSX0NOVFJMPC9zeW1ib2w+IHRv CisgICAgIDxsaXRlcmFsPk1BWERBVEE9MHg8cmVwbGFjZWFibGU+bjwvcmVwbGFjZWFibGU+MDAw MDAwMDwvbGl0ZXJhbD4sCisgICAgIHdoZXJlIDEgJmx0Oz0gbiAmbHQ7PSA4LCBiZWZvcmUgc3Rh cnRpbmcgdGhlIFBvc3RncmVTUUwgc2VydmVyLAorICAgICBhbmQgdHJ5IGRpZmZlcmVudCB2YWx1 ZXMgYW5kIDxmaWxlbmFtZT5wb3N0Z3Jlc3FsLmNvbmY8L2ZpbGVuYW1lPgorICAgICBzZXR0aW5n cyB0byBmaW5kIGEgY29uZmlndXJhdGlvbiB0aGF0IHdvcmtzIHNhdGlzZmFjdG9yaWx5LiAgVGhp cworICAgICB1c2Ugb2YgPHN5bWJvbD5MRFJfQ05UUkw8L3N5bWJvbD4gdGVsbHMgQUlYIHRoYXQg eW91IHdhbnQgdGhlCisgICAgIHNlcnZlciB0byBoYXZlIDxzeW1ib2w+TUFYREFUQTwvc3ltYm9s PiBieXRlcyBzZXQgYXNpZGUgZm9yIHRoZQorICAgICBoZWFwLCBhbGxvY2F0ZWQgaW4gMjU2IE1C IHNlZ21lbnRzLiAgV2hlbiB5b3UgZmluZCBhIHdvcmthYmxlCisgICAgIGNvbmZpZ3VyYXRpb24s CisgICAgIDxjb21tYW5kPmxkZWRpdDwvY29tbWFuZD4gY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRo ZSBiaW5hcmllcyBzbworICAgICB0aGF0IHRoZXkgZGVmYXVsdCB0byB1c2luZyB0aGUgZGVzaXJl ZCBoZWFwIHNpemUuICBQb3N0Z3JlU1FMIGNhbgorICAgICBhbHNvIGJlIHJlYnVpbHQsIHBhc3Np bmcgPGxpdGVyYWw+Y29uZmlndXJlCisgICAgIExERkxBR1M9Ii1XbCwtYm1heGRhdGE6MHg8cmVw bGFjZWFibGU+bjwvcmVwbGFjZWFibGU+MDAwMDAwMCI8L2xpdGVyYWw+CisgICAgIHRvIGFjaGll dmUgdGhlIHNhbWUgZWZmZWN0LgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3Ig YSA2NC1iaXQgYnVpbGQsIHNldCA8ZW52YXI+T0JKRUNUX01PREU8L2VudmFyPiB0byA2NCBhbmQK KyAgICAgcGFzcyA8bGl0ZXJhbD5DQz0iZ2NjIC1tYWl4NjQiPC9saXRlcmFsPgorICAgICBhbmQg PGxpdGVyYWw+TERGTEFHUz0iLVdsLC1iYmlndG9jIjwvbGl0ZXJhbD4KKyAgICAgdG8gPGNvbW1h bmQ+Y29uZmlndXJlPC9jb21tYW5kPi4gIChPcHRpb25zIGZvcgorICAgIDxjb21tYW5kPnhsYzwv Y29tbWFuZD4gbWlnaHQgZGlmZmVyLikgIElmIHlvdSBvbWl0IHRoZSBleHBvcnQgb2YKKyAgICA8 ZW52YXI+T0JKRUNUX01PREU8L2VudmFyPiwgeW91ciBidWlsZCBtYXkgZmFpbCB3aXRoIGxpbmtl ciBlcnJvcnMuICBXaGVuCisgICAgPGVudmFyPk9CSkVDVF9NT0RFPC9lbnZhcj4gaXMgc2V0LCBp dCB0ZWxscyBBSVgncyBidWlsZCB1dGlsaXRpZXMKKyAgICBzdWNoIGFzIDxjb21tYW5kPmFyPC9j b21tYW5kPiwgPGNvbW1hbmQ+YXM8L2NvbW1hbmQ+LCBhbmQgPGNvbW1hbmQ+bGQ8L2NvbW1hbmQ+ IHdoYXQKKyAgICB0eXBlIG9mIG9iamVjdHMgdG8gZGVmYXVsdCB0byBoYW5kbGluZy4KKyAgICA8 L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgQnkgZGVmYXVsdCwgb3ZlcmNvbW1pdCBvZiBwYWdp bmcgc3BhY2UgY2FuIGhhcHBlbi4gIFdoaWxlIHdlIGhhdmUKKyAgICAgbm90IHNlZW4gdGhpcyBv Y2N1ciwgQUlYIHdpbGwga2lsbCBwcm9jZXNzZXMgd2hlbiBpdCBydW5zIG91dCBvZgorICAgICBt ZW1vcnkgYW5kIHRoZSBvdmVyY29tbWl0IGlzIGFjY2Vzc2VkLiAgVGhlIGNsb3Nlc3QgdG8gdGhp cyB0aGF0CisgICAgIHdlIGhhdmUgc2VlbiBpcyBmb3JrIGZhaWxpbmcgYmVjYXVzZSB0aGUgc3lz dGVtIGRlY2lkZWQgdGhhdAorICAgICB0aGVyZSB3YXMgbm90IGVub3VnaCBtZW1vcnkgZm9yIGFu b3RoZXIgcHJvY2Vzcy4gIExpa2UgbWFueSBvdGhlcgorICAgICBwYXJ0cyBvZiBBSVgsIHRoZSBw YWdpbmcgc3BhY2UgYWxsb2NhdGlvbiBtZXRob2QgYW5kCisgICAgIG91dC1vZi1tZW1vcnkga2ls bCBpcyBjb25maWd1cmFibGUgb24gYSBzeXN0ZW0tIG9yIHByb2Nlc3Mtd2lkZQorICAgICBiYXNp cyBpZiB0aGlzIGJlY29tZXMgYSBwcm9ibGVtLgorICAgIDwvcGFyYT4KKyAgIDwvc2VjdDM+Cisg IDwvc2VjdDI+CisKICAgPHNlY3QyIGlkPSJpbnN0YWxsYXRpb24tbm90ZXMtY3lnd2luIj4KICAg IDx0aXRsZT5DeWd3aW48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcnVudGlt ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3J1bnRpbWUuc2dtbAppbmRleCA2MDQ3YjgxNzFkLi42NDc1 M2Q5YzAxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcnVudGltZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9ydW50aW1lLnNnbWwKQEAgLTg5MSw2ICs4OTEsMjkgQEAgcHNxbDogZXJyb3I6IGNv bm5lY3Rpb24gdG8gc2VydmVyIG9uIHNvY2tldCAiL3RtcC8ucy5QR1NRTC41NDMyIiBmYWlsZWQ6 IE5vIHN1Y2gKIAogCiAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAg ICAgIDx0ZXJtPjxzeXN0ZW1pdGVtIGNsYXNzPSJvc25hbWUiPkFJWDwvc3lzdGVtaXRlbT4KKyAg ICAgIDxpbmRleHRlcm0+PHByaW1hcnk+QUlYPC9wcmltYXJ5PjxzZWNvbmRhcnk+SVBDIGNvbmZp Z3VyYXRpb248L3NlY29uZGFyeT48L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxs aXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgSXQgc2hvdWxkIG5vdCBiZSBuZWNlc3Nh cnkgdG8gZG8KKyAgICAgICAgYW55IHNwZWNpYWwgY29uZmlndXJhdGlvbiBmb3Igc3VjaCBwYXJh bWV0ZXJzIGFzCisgICAgICAgIDx2YXJuYW1lPlNITU1BWDwvdmFybmFtZT4sIGFzIGl0IGFwcGVh cnMgdGhpcyBpcyBjb25maWd1cmVkIHRvCisgICAgICAgIGFsbG93IGFsbCBtZW1vcnkgdG8gYmUg dXNlZCBhcyBzaGFyZWQgbWVtb3J5LiAgVGhhdCBpcyB0aGUKKyAgICAgICAgc29ydCBvZiBjb25m aWd1cmF0aW9uIGNvbW1vbmx5IHVzZWQgZm9yIG90aGVyIGRhdGFiYXNlcyBzdWNoCisgICAgICAg IGFzIDxhcHBsaWNhdGlvbj5EQi8yPC9hcHBsaWNhdGlvbj4uPC9wYXJhPgorCisgICAgICAgPHBh cmE+IEl0IG1pZ2h0LCBob3dldmVyLCBiZSBuZWNlc3NhcnkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwK KyAgICAgICA8Y29tbWFuZD51bGltaXQ8L2NvbW1hbmQ+IGluZm9ybWF0aW9uIGluCisgICAgICAg PGZpbGVuYW1lPi9ldGMvc2VjdXJpdHkvbGltaXRzPC9maWxlbmFtZT4sIGFzIHRoZSBkZWZhdWx0 IGhhcmQKKyAgICAgICBsaW1pdHMgZm9yIGZpbGUgc2l6ZXMgKDx2YXJuYW1lPmZzaXplPC92YXJu YW1lPikgYW5kIG51bWJlcnMgb2YKKyAgICAgICBmaWxlcyAoPHZhcm5hbWU+bm9maWxlczwvdmFy bmFtZT4pIG1pZ2h0IGJlIHRvbyBsb3cuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKwogICAgICA8dmFybGlzdGVudHJ5PgogICAgICAg PHRlcm0+PHN5c3RlbWl0ZW0gY2xhc3M9Im9zbmFtZSI+RnJlZUJTRDwvc3lzdGVtaXRlbT4KICAg ICAgIDxpbmRleHRlcm0+PHByaW1hcnk+RnJlZUJTRDwvcHJpbWFyeT48c2Vjb25kYXJ5PklQQyBj b25maWd1cmF0aW9uPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9tZXNvbi5i dWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDFjMDU3OWQ1YTYuLmYxYWMxNTRjZGMgMTAwNjQ0Ci0t LSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBAIC0xOTYsNyArMTk2LDI2IEBAIGVu ZGlmCiAjIHRoYXQgcHVycG9zZS4KIHBvcnRuYW1lID0gaG9zdF9zeXN0ZW0KIAotaWYgaG9zdF9z eXN0ZW0gPT0gJ2N5Z3dpbicKK2lmIGhvc3Rfc3lzdGVtID09ICdhaXgnCisgIGxpYnJhcnlfcGF0 aF92YXIgPSAnTElCUEFUSCcKKworICBleHBvcnRfZmlsZV9mb3JtYXQgPSAnYWl4JworICBleHBv cnRfZm10ID0gJy1XbCwtYkU6QDBAJworICBtb2RfbGlua19hcmdzX2ZtdCA9IFsnLVdsLC1iSTpA MEAnXQorICBtb2RfbGlua193aXRoX2RpciA9ICdsaWJkaXInCisgIG1vZF9saW5rX3dpdGhfbmFt ZSA9ICdAMEAuaW1wJworCisgICMgTTpTUkUgc2V0cyBhIGZsYWcgaW5kaWNhdGluZyB0aGF0IGFu IG9iamVjdCBpcyBhIHNoYXJlZCBsaWJyYXJ5LiBTZWVtcyB0bworICAjIHdvcmsgaW4gc29tZSBj aXJjdW1zdGFuY2VzIHdpdGhvdXQsIGJ1dCByZXF1aXJlZCBpbiBvdGhlcnMuCisgIGxkZmxhZ3Nf c2wgKz0gJy1XbCwtYk06U1JFJworICBsZGZsYWdzX2JlICs9ICctV2wsLWJydGxsaWInCisKKyAg IyBOYXRpdmUgbWVtc2V0KCkgaXMgZmFzdGVyLCB0ZXN0ZWQgb246CisgICMgLSBBSVggNS4xIGFu ZCA1LjIsIFhMQyA2LjAgKElCTSdzIGNjKQorICAjIC0gQUlYIDUuMyBNTDMsIGdjYyA0LjAuMQor ICBtZW1zZXRfbG9vcF9saW1pdCA9IDAKKworZWxpZiBob3N0X3N5c3RlbSA9PSAnY3lnd2luJwog ICBzZW1hX2tpbmQgPSAndW5uYW1lZF9wb3NpeCcKICAgY3BwZmxhZ3MgKz0gJy1EX0dOVV9TT1VS Q0UnCiAgIGRsc3VmZml4ID0gJy5kbGwnCkBAIC0xNDkwLDExICsxNTA5LDExIEBAIHNpemVvZl9s b25nID0gY2Muc2l6ZW9mKCdsb25nJywgYXJnczogdGVzdF9jX2FyZ3MpCiBjZGF0YS5zZXQoJ1NJ WkVPRl9MT05HJywgc2l6ZW9mX2xvbmcpCiBpZiBzaXplb2ZfbG9uZyA9PSA4CiAgIGNkYXRhLnNl dCgnSEFWRV9MT05HX0lOVF82NCcsIDEpCi0gIHBnX2ludDY0X3R5cGUgPSAnbG9uZyBpbnQnCisg IGNkYXRhLnNldCgnUEdfSU5UNjRfVFlQRScsICdsb25nIGludCcpCiAgIGNkYXRhLnNldF9xdW90 ZWQoJ0lOVDY0X01PRElGSUVSJywgJ2wnKQogZWxpZiBzaXplb2ZfbG9uZyA9PSA0IGFuZCBjYy5z aXplb2YoJ2xvbmcgbG9uZycsIGFyZ3M6IHRlc3RfY19hcmdzKSA9PSA4CiAgIGNkYXRhLnNldCgn SEFWRV9MT05HX0xPTkdfSU5UXzY0JywgMSkKLSAgcGdfaW50NjRfdHlwZSA9ICdsb25nIGxvbmcg aW50JworICBjZGF0YS5zZXQoJ1BHX0lOVDY0X1RZUEUnLCAnbG9uZyBsb25nIGludCcpCiAgIGNk YXRhLnNldF9xdW90ZWQoJ0lOVDY0X01PRElGSUVSJywgJ2xsJykKIGVsc2UKICAgZXJyb3IoJ2Rv IG5vdCBrbm93IGhvdyB0byBnZXQgYSA2NGJpdCBpbnQnKQpAQCAtMTUwOCwzMSArMTUyNywxNSBA QCBlbmRpZgogIyBEZXRlcm1pbmUgbWVtb3J5IGFsaWdubWVudCByZXF1aXJlbWVudHMgZm9yIHRo ZSBiYXNpYyBDIGRhdGEgdHlwZXMuCiAKIGFsaWdub2ZfdHlwZXMgPSBbJ3Nob3J0JywgJ2ludCcs ICdsb25nJywgJ2RvdWJsZSddCittYXhhbGlnbiA9IDAKIGZvcmVhY2ggdCA6IGFsaWdub2ZfdHlw ZXMKICAgYWxpZ24gPSBjYy5hbGlnbm1lbnQodCwgYXJnczogdGVzdF9jX2FyZ3MpCisgIGlmIG1h eGFsaWduIDwgYWxpZ24KKyAgICBtYXhhbGlnbiA9IGFsaWduCisgIGVuZGlmCiAgIGNkYXRhLnNl dCgnQUxJR05PRl9AMEAnLmZvcm1hdCh0LnRvX3VwcGVyKCkpLCBhbGlnbikKIGVuZGZvcmVhY2gK LQotIyBDb21wdXRlIG1heGltdW0gYWxpZ25tZW50IG9mIGFueSBiYXNpYyB0eXBlLgotIwotIyBX ZSByZXF1aXJlICdkb3VibGUnIHRvIGhhdmUgdGhlIHN0cmljdGVzdCBhbGlnbm1lbnQgYW1vbmcg dGhlIGJhc2ljIHR5cGVzLAotIyBiZWNhdXNlIG90aGVyd2lzZSB0aGUgQyBBQkkgbWlnaHQgaW1w b3NlIDgtYnl0ZSBhbGlnbm1lbnQgb24gc29tZSBvZiB0aGUKLSMgb3RoZXIgQyB0eXBlcyB0aGF0 IGNvcnJlc3BvbmQgdG8gVFlQQUxJR05fRE9VQkxFIFNRTCB0eXBlcy4gIFRoYXQgY291bGQKLSMg Y2F1c2UgYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSB0dXBsZSBsYXlvdXQgYW5kIHRoZSBDIHN0cnVj dCBsYXlvdXQgb2YgYQotIyBjYXRhbG9nIHR1cGxlLiAgV2UgdXNlZCB0byBjYXJlZnVsbHkgb3Jk ZXIgY2F0YWxvZyBjb2x1bW5zIHN1Y2ggdGhhdCBhbnkKLSMgZml4ZWQtd2lkdGgsIGF0dGFsaWdu PTQgY29sdW1ucyB3ZXJlIGF0IG9mZnNldHMgZGl2aXNpYmxlIGJ5IDggcmVnYXJkbGVzcwotIyBv ZiBNQVhJTVVNX0FMSUdOT0YgdG8gYXZvaWQgdGhhdCwgYnV0IHdlIG5vIGxvbmdlciBzdXBwb3J0 IGFueSBwbGF0Zm9ybXMKLSMgd2hlcmUgVFlQQUxJR05fRE9VQkxFICE9IE1BWElNVU1fQUxJR05P Ri4KLSMKLSMgV2UgYXNzdW1lIHdpdGhvdXQgY2hlY2tpbmcgdGhhdCBpbnQ2NCdzIGFsaWdubWVu dCBpcyBhdCBsZWFzdCBhcyBzdHJvbmcKLSMgYXMgbG9uZywgY2hhciwgc2hvcnQsIG9yIGludC4g IE5vdGUgdGhhdCB3ZSBpbnRlbnRpb25hbGx5IGRvIG5vdCBjb25zaWRlcgotIyBhbnkgdHlwZXMg d2lkZXIgdGhhbiA2NCBiaXRzLCBhcyBhbGxvd2luZyBNQVhJTVVNX0FMSUdOT0YgdG8gZXhjZWVk IDgKLSMgd291bGQgYmUgdG9vIG11Y2ggb2YgYSBwZW5hbHR5IGZvciBkaXNrIGFuZCBtZW1vcnkg c3BhY2UuCi1hbGlnbm9mX2RvdWJsZSA9IGNkYXRhLmdldCgnQUxJR05PRl9ET1VCTEUnKQotaWYg Y2MuYWxpZ25tZW50KHBnX2ludDY0X3R5cGUsIGFyZ3M6IHRlc3RfY19hcmdzKSA+IGFsaWdub2Zf ZG91YmxlCi0gIGVycm9yKCdhbGlnbm1lbnQgb2YgaW50NjQgaXMgZ3JlYXRlciB0aGFuIHRoZSBh bGlnbm1lbnQgb2YgZG91YmxlJykKLWVuZGlmCi1jZGF0YS5zZXQoJ01BWElNVU1fQUxJR05PRics IGFsaWdub2ZfZG91YmxlKQorY2RhdGEuc2V0KCdNQVhJTVVNX0FMSUdOT0YnLCBtYXhhbGlnbikK IAogY2RhdGEuc2V0KCdTSVpFT0ZfVk9JRF9QJywgY2Muc2l6ZW9mKCd2b2lkIConLCBhcmdzOiB0 ZXN0X2NfYXJncykpCiBjZGF0YS5zZXQoJ1NJWkVPRl9TSVpFX1QnLCBjYy5zaXplb2YoJ3NpemVf dCcsIGFyZ3M6IHRlc3RfY19hcmdzKSkKQEAgLTE1ODEsNyArMTU4NCw3IEBAIGlmIGNjLmxpbmtz KCcnJwogICBpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQogICAgIHIgPSBjYy5ydW4oJycn CiAgICAgLyogVGhpcyBtdXN0IG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIGNvZGUgaW4gYy5oOiAq LwotICAgICNpZiBkZWZpbmVkKF9fR05VQ19fKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpCisgICAg I2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChf X0lCTUNfXykKICAgICAjZGVmaW5lIHBnX2F0dHJpYnV0ZV9hbGlnbmVkKGEpIF9fYXR0cmlidXRl X18oKGFsaWduZWQoYSkpKQogICAgICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCiAgICAgI2RlZmlu ZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSBfX2RlY2xzcGVjKGFsaWduKGEpKQpAQCAtMjQ3Niw2 ICsyNDc5LDEwIEBAIGVuZGlmCiAjIGNvbmZsaWN0LgogIwogIyBXZSBhc3N1bWUgQzk5IHN1cHBv cnQsIHNvIHdlIGRvbid0IG5lZWQgdG8gbWFrZSB0aGlzIGNvbmRpdGlvbmFsLgorIworIyBYWFg6 IEhpc3RvcmljYWxseSB3ZSBhbGxvd2VkIHBsYXRmb3JtcyB0byBkaXNhYmxlIHJlc3RyaWN0IGlu IHRlbXBsYXRlCisjIGZpbGVzLCBidXQgdGhhdCB3YXMgb25seSBhZGRlZCBmb3IgQUlYIHdoZW4g YnVpbGRpbmcgd2l0aCBYTEMsIHdoaWNoIHdlCisjIGRvbid0IHN1cHBvcnQgeWV0LgogY2RhdGEu c2V0KCdwZ19yZXN0cmljdCcsICdfX3Jlc3RyaWN0JykKIAogCmRpZmYgLS1naXQgYS9zcmMvTWFr ZWZpbGUuc2hsaWIgYi9zcmMvTWFrZWZpbGUuc2hsaWIKaW5kZXggZmE4MWY2ZmZkZC4uOGNhNTFj YTAzZiAxMDA2NDQKLS0tIGEvc3JjL01ha2VmaWxlLnNobGliCisrKyBiL3NyYy9NYWtlZmlsZS5z aGxpYgpAQCAtMTA2LDYgKzEwNiwyMCBAQCBpZmRlZiBTT19NQUpPUl9WRVJTSU9OCiBvdmVycmlk ZSBDUFBGTEFHUyArPSAtRFNPX01BSk9SX1ZFUlNJT049JChTT19NQUpPUl9WRVJTSU9OKQogZW5k aWYKIAoraWZlcSAoJChQT1JUTkFNRSksIGFpeCkKKyAgTElOSy5zaGFyZWQJCT0gJChDT01QSUxF UikKKyAgaWZkZWYgU09fTUFKT1JfVkVSU0lPTgorICAgIHNobGliCQk9IGxpYiQoTkFNRSkkKERM U1VGRklYKS4kKFNPX01BSk9SX1ZFUlNJT04pCisgIGVuZGlmCisgIGhhc2xpYmFydWxlICAgPSB5 ZXMKKyAgIyAkKGV4cG9ydHNfZmlsZSkgaXMgYWxzbyB1c2FibGUgYXMgYW4gaW1wb3J0IGZpbGUK KyAgZXhwb3J0c19maWxlCQk9IGxpYiQoTkFNRSkuZXhwCisgIEJVSUxELmV4cG9ydHMJCT0gKCBl Y2hvICdcIyEgJChzaGxpYiknOyAkKEFXSykgJy9eW15cI10vIHtwcmludGYgIiVzXG4iLCQkMX0n ICQ8ICkgPiAkQAorICBpZm5lcSAoLCQoU0hMSUJfRVhQT1JUUykpCisgICAgTElOSy5zaGFyZWQJ CSs9IC1XbCwtYkU6JChleHBvcnRzX2ZpbGUpCisgIGVuZGlmCitlbmRpZgorCiBpZmVxICgkKFBP UlROQU1FKSwgZGFyd2luKQogICBpZmRlZiBzb25hbWUKICAgICAjIGxpbmthYmxlIGxpYnJhcnkK QEAgLTI1NCw2ICsyNjgsMTQgQEAgJChzdGxpYik6ICQoT0JKUykgfCAkKFNITElCX1BSRVJFUVMp CiAJdG91Y2ggJEAKIGVuZGlmICNoYXNsaWJhcnVsZQogCisjIEFJWCB3cmFwcyBzaGFyZWQgbGli cmFyaWVzIGluc2lkZSBhIHN0YXRpYyBsaWJyYXJ5LCBjYW4gYmUgdXNlZCBib3RoCisjIGZvciBz dGF0aWMgYW5kIHNoYXJlZCBsaW5raW5nCitpZmVxICgkKFBPUlROQU1FKSwgYWl4KQorJChzdGxp Yik6ICQoc2hsaWIpCisJcm0gLWYgJChzdGxpYikKKwkkKEFSKSAkKEFST1BUKSAkKHN0bGliKSAk KHNobGliKQorZW5kaWYgIyBhaXgKKwogaWZlcSAoLCQoZmlsdGVyIGN5Z3dpbiB3aW4zMiwkKFBP UlROQU1FKSkpCiAKICMgTm9ybWFsIGNhc2UKQEAgLTI2Nyw4ICsyODksMTEgQEAgaWZuZXEgKCQo c2hsaWIpLCAkKHNobGliX21ham9yKSkKIGVuZGlmCiAjIE1ha2Ugc3VyZSB3ZSBoYXZlIGEgbGlu ayB0byBhIG5hbWUgd2l0aG91dCBhbnkgdmVyc2lvbiBudW1iZXJzCiBpZm5lcSAoJChzaGxpYiks ICQoc2hsaWJfYmFyZSkpCisjIGV4Y2VwdCBvbiBBSVgsIHdoZXJlIHRoYXQncyBub3QgYSB0aGlu ZworaWZuZXEgKCQoUE9SVE5BTUUpLCBhaXgpCiAJcm0gLWYgJChzaGxpYl9iYXJlKQogCSQoTE5f UykgJChzaGxpYikgJChzaGxpYl9iYXJlKQorZW5kaWYgIyBhaXgKIGVuZGlmICMgc2hsaWJfYmFy ZQogZW5kaWYgIyBzaGxpYl9tYWpvcgogCkBAIC0zNzYsNiArNDAxLDkgQEAgaW5zdGFsbC1saWIt c3RhdGljOiAkKHN0bGliKSBpbnN0YWxsZGlycy1saWIKIAogaW5zdGFsbC1saWItc2hhcmVkOiAk KHNobGliKSBpbnN0YWxsZGlycy1saWIKIGlmZGVmIHNvbmFtZQorIyB3ZSBkb24ndCBpbnN0YWxs ICQoc2hsaWIpIG9uIEFJWAorIyAoc2VlIGh0dHA6Ly9hcmNoaXZlcy5wb3N0Z3Jlc3FsLm9yZy9t ZXNzYWdlLWlkLzUyRUYyMEIyRTMyMDk0NDNCQzM3NzM2RDAwQzNDMTM4MEE2RTc5RkVARVhBRFYx Lmhvc3QubWFnd2llbi5ndi5hdCkKK2lmbmVxICgkKFBPUlROQU1FKSwgYWl4KQogCSQoSU5TVEFM TF9TSExJQikgJDwgJyQoREVTVERJUikkKGxpYmRpcikvJChzaGxpYiknCiBpZm5lcSAoJChQT1JU TkFNRSksIGN5Z3dpbikKIGlmbmVxICgkKFBPUlROQU1FKSwgd2luMzIpCkBAIC0zOTEsNiArNDE5 LDcgQEAgaWZuZXEgKCQoc2hsaWIpLCAkKHNobGliX2JhcmUpKQogZW5kaWYKIGVuZGlmICMgbm90 IHdpbjMyCiBlbmRpZiAjIG5vdCBjeWd3aW4KK2VuZGlmICMgbm90IGFpeAogaWZuZXEgKCwkKGZp bmRzdHJpbmcgJChQT1JUTkFNRSksd2luMzIgY3lnd2luKSkKIAkkKElOU1RBTExfU0hMSUIpICQ8 ICckKERFU1RESVIpJChiaW5kaXIpLyQoc2hsaWIpJwogZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvTWFrZWZpbGUKaW5kZXggNjcwMGFlYzAzOS4u OTU0YjE0OTYyZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvTWFrZWZpbGUKKysrIGIvc3JjL2Jh Y2tlbmQvTWFrZWZpbGUKQEAgLTYyLDEyICs2MiwxNCBAQCBhbGw6IHN1Ym1ha2UtbGlicGdwb3J0 IHN1Ym1ha2UtY2F0YWxvZy1oZWFkZXJzIHN1Ym1ha2UtdXRpbHMtaGVhZGVycyBwb3N0Z3JlcyAk KAogCiBpZm5lcSAoJChQT1JUTkFNRSksIGN5Z3dpbikKIGlmbmVxICgkKFBPUlROQU1FKSwgd2lu MzIpCitpZm5lcSAoJChQT1JUTkFNRSksIGFpeCkKIAogcG9zdGdyZXM6ICQoT0JKUykKIAkkKEND KSAkKENGTEFHUykgJChjYWxsIGV4cGFuZF9zdWJzeXMsJF4pICQoTERGTEFHUykgJChMSUJTKSAt byAkQAogCiBlbmRpZgogZW5kaWYKK2VuZGlmCiAKIGlmZXEgKCQoUE9SVE5BTUUpLCBjeWd3aW4p CiAKQEAgLTk0LDYgKzk2LDI0IEBAIGxpYnBvc3RncmVzLmE6IHBvc3RncmVzCiAKIGVuZGlmICMg d2luMzIKIAoraWZlcSAoJChQT1JUTkFNRSksIGFpeCkKKworcG9zdGdyZXM6ICQoUE9TVEdSRVNf SU1QKQorCSQoQ0MpICQoQ0ZMQUdTKSAkKGNhbGwgZXhwYW5kX3N1YnN5cywkKE9CSlMpKSAkKExE RkxBR1MpIC1XbCwtYkU6JCh0b3BfYnVpbGRkaXIpL3NyYy9iYWNrZW5kLyQoUE9TVEdSRVNfSU1Q KSAkKExJQlMpIC1XbCwtYnJ0bGxpYiAtbyAkQAorCisjIExpbmtpbmcgdG8gYSBzaW5nbGUgLm8g d2l0aCAtciBpcyBhIGxvdCBmYXN0ZXIgdGhhbiBidWlsZGluZyBhIC5hIG9yIHBhc3NpbmcKKyMg YWxsIG9iamVjdHMgdG8gTUtMREVYUE9SVC4KKyMKKyMgSXQgbG9va3MgYWxsdXJpbmcgdG8gdXNl ICQoQ0MpIC1yIGluc3RlYWQgb2YgbGQgLXIsIGJ1dCB0aGF0IGRvZXNuJ3QKKyMgdHJpdmlhbGx5 IHdvcmsgd2l0aCBnY2MsIGR1ZSB0byBnY2Mgc3BlY2lmaWMgc3RhdGljIGxpYnJhcmllcyBsaW5r ZWQgaW4gd2l0aAorIyAtci4KKyQoUE9TVEdSRVNfSU1QKTogJChPQkpTKQorCWxkIC1yIC1vIFNV QlNZUy5vICQoY2FsbCBleHBhbmRfc3Vic3lzLCReKQorCSQoTUtMREVYUE9SVCkgU1VCU1lTLm8g LiA+ICRACisJQHJtIC1mIFNVQlNZUy5vCisKK2VuZGlmICMgYWl4CisKICQodG9wX2J1aWxkZGly KS9zcmMvcG9ydC9saWJwZ3BvcnRfc3J2LmE6IHwgc3VibWFrZS1saWJwZ3BvcnQKIAogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL21lc29uLmJ1aWxk CmluZGV4IDQzNmMwNGFmMDguLjg3NjdhYWJhNjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL21l c29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL21lc29uLmJ1aWxkCkBAIC05MSw2ICs5MSwyMSBA QCBpZiBjYy5nZXRfaWQoKSA9PSAnbXN2YycKICAgIyBiZSByZXN0cmljdGVkIHRvIGJfcGNoPXRy dWUuCiAgIGJhY2tlbmRfbGlua193aXRoICs9IHBvc3RncmVzX2xpYgogCitlbGlmIGhvc3Rfc3lz dGVtID09ICdhaXgnCisgICMgVGhlICcuJyBhcmd1bWVudCBsZWFkcyBta2xkZXhwb3J0LnNoIHRv IGVtaXQgIiMhIC4iLCB3aGljaCByZWZlcnMgdG8gdGhlCisgICMgbWFpbiBleGVjdXRhYmxlLCBh bGxvd2luZyBleHRlbnNpb24gbGlicmFyaWVzIHRvIHJlc29sdmUgdGhlaXIgdW5kZWZpbmVkCisg ICMgc3ltYm9scyB0byBzeW1ib2xzIGluIHRoZSBwb3N0Z3JlcyBiaW5hcnkuCisgIHBvc3RncmVz X2ltcCA9IGN1c3RvbV90YXJnZXQoJ3Bvc3RncmVzLmltcCcsCisgICAgY29tbWFuZDogW2ZpbGVz KCdwb3J0L2FpeC9ta2xkZXhwb3J0LnNoJyksICdASU5QVVRAJywgJy4nXSwKKyAgICBpbnB1dDog cG9zdGdyZXNfbGliLAorICAgIG91dHB1dDogJ3Bvc3RncmVzLmltcCcsCisgICAgY2FwdHVyZTog dHJ1ZSwKKyAgICBpbnN0YWxsOiB0cnVlLAorICAgIGluc3RhbGxfZGlyOiBkaXJfbGliLAorICAg IGJ1aWxkX2J5X2RlZmF1bHQ6IGZhbHNlLAorICApCisgIGJhY2tlbmRfbGlua19hcmdzICs9ICct V2wsLWJFOkAwQCcuZm9ybWF0KHBvc3RncmVzX2ltcC5mdWxsX3BhdGgoKSkKKyAgYmFja2VuZF9s aW5rX2RlcGVuZHMgKz0gcG9zdGdyZXNfaW1wCiBlbmRpZgogCiBiYWNrZW5kX2lucHV0ID0gW10K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BvcnQvYWl4L21rbGRleHBvcnQuc2ggYi9zcmMvYmFj a2VuZC9wb3J0L2FpeC9ta2xkZXhwb3J0LnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAw MDAwMDAwMDAuLmFkZjM3OTNlODYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9wb3J0 L2FpeC9ta2xkZXhwb3J0LnNoCkBAIC0wLDAgKzEsNjEgQEAKKyMhL2Jpbi9zaAorIworIyBta2xk ZXhwb3J0CisjCWNyZWF0ZSBhbiBBSVggZXhwb3J0cyBmaWxlIGZyb20gYW4gb2JqZWN0IGZpbGUK KyMKKyMgc3JjL2JhY2tlbmQvcG9ydC9haXgvbWtsZGV4cG9ydC5zaAorIworIyBVc2FnZToKKyMJ bWtsZGV4cG9ydCBvYmplY3RmaWxlIFtsb2NhdGlvbl0KKyMgd2hlcmUKKyMJb2JqZWN0ZmlsZSBp cyB0aGUgY3VycmVudCBsb2NhdGlvbiBvZiB0aGUgb2JqZWN0IGZpbGUuCisjCWxvY2F0aW9uIGlz IHRoZSBldmVudHVhbCAoaW5zdGFsbGVkKSBsb2NhdGlvbiBvZiB0aGUKKyMJCW9iamVjdCBmaWxl IChpZiBkaWZmZXJlbnQgZnJvbSB0aGUgY3VycmVudAorIwkJd29ya2luZyBkaXJlY3RvcnkpLgor IworIyBbVGhpcyBmaWxlIGNvbWVzIGZyb20gdGhlIFBvc3RncmVzIDQuMiBkaXN0cmlidXRpb24u IC0gYXkgNy85NV0KKyMKKyMgSGVhZGVyOiAvdXNyL2xvY2FsL2RldmVsL3Bvc3RncmVzL3NyYy90 b29scy9ta2xkZXhwb3J0L1JDUy9ta2xkZXhwb3J0LnNoLHYgMS4yIDE5OTQvMDMvMTMgMDQ6NTk6 MTIgYW9raSBFeHAKKyMKKworIyBzZXR0aW5nIHRoaXMgdG8gbm0gLUIgbWlnaHQgYmUgYmV0dGVy CisjIC4uLiBkdWUgdG8gY2hhbmdlcyBpbiBBSVggNC54IC4uLgorIyAuLi4gbGV0IHVzIHNlYXJj aCBpbiBkaWZmZXJlbnQgZGlyZWN0b3JpZXMgLSBHZXJoYXJkIFJlaXRob2ZlcgoraWYgWyAteCAv dXNyL3VjYi9ubSBdCit0aGVuIE5NPS91c3IvdWNiL25tCitlbGlmIFsgLXggL3Vzci9iaW4vbm0g XQordGhlbiBOTT0vdXNyL2Jpbi9ubQorZWxpZiBbIC14IC91c3IvY2NzL2Jpbi9ubSBdCit0aGVu IE5NPS91c3IvY2NzL2Jpbi9ubQorZWxpZiBbIC14IC91c3IvdXNnL2Jpbi9ubSBdCit0aGVuIE5N PS91c3IvdXNnL2Jpbi9ubQorZWxzZSBlY2hvICJGYXRhbCBlcnJvcjogY2Fubm90IGZpbmQgYG5t JyAuLi4gcGxlYXNlIGNoZWNrIHlvdXIgaW5zdGFsbGF0aW9uLiIKKyAgICAgZXhpdCAxCitmaQor CitDTUROQU1FPWBiYXNlbmFtZSAkMGAKK2lmIFsgLXogIiQxIiBdOyB0aGVuCisJZWNobyAiVXNh Z2U6ICRDTUROQU1FIG9iamVjdCBbbG9jYXRpb25dIgorCWV4aXQgMQorZmkKK09CSk5BTUU9YGJh c2VuYW1lICQxYAoraWYgWyAiYGJhc2VuYW1lICRPQkpOQU1FYCIgIT0gImBiYXNlbmFtZSAkT0JK TkFNRSAub2AiIF07IHRoZW4KKwlPQkpOQU1FPWBiYXNlbmFtZSAkT0JKTkFNRSAub2Auc28KK2Zp CitpZiBbIC16ICIkMiIgXTsgdGhlbgorCWVjaG8gJyMhJworZWxzZQorCWlmIFsgIiQyIiA9ICIu IiBdOyB0aGVuCisJCSMgZm9yIHRoZSBiYXNlIGV4ZWN1dGFibGUgKEFJWCA0LjIgYW5kIHVwKQor CQllY2hvICcjISAuJworCWVsc2UKKwkJZWNobyAnIyEnICQyCisJZmkKK2ZpCiskTk0gLUJDZyAk MSB8IFwKKwllZ3JlcCAnIFtUREJdICcgfCBcCisJc2VkIC1lICdzLy4qIC8vJyB8IFwKKwllZ3Jl cCAtdiAnXCQnIHwgXAorCXNlZCAtZSAncy9eWy5dLy8nIHwgXAorCXNvcnQgfCBcCisJdW5pcQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9idWZmZXIvYnVmbWdyLmMgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwppbmRleCA0OTYzNzI4NGY5Li5iYWRlMDYxMjcx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYworKysgYi9z cmMvYmFja2VuZC9zdG9yYWdlL2J1ZmZlci9idWZtZ3IuYwpAQCAtNzg4LDcgKzc4OCw3IEBAIFJl YWRCdWZmZXIoUmVsYXRpb24gcmVsbiwgQmxvY2tOdW1iZXIgYmxvY2tOdW0pCiAgKiBJZiBzdHJh dGVneSBpcyBub3QgTlVMTCwgYSBub25kZWZhdWx0IGJ1ZmZlciBhY2Nlc3Mgc3RyYXRlZ3kgaXMg dXNlZC4KICAqIFNlZSBidWZmZXIvUkVBRE1FIGZvciBkZXRhaWxzLgogICovCi1pbmxpbmUgQnVm ZmVyCitCdWZmZXIKIFJlYWRCdWZmZXJFeHRlbmRlZChSZWxhdGlvbiByZWxuLCBGb3JrTnVtYmVy IGZvcmtOdW0sIEJsb2NrTnVtYmVyIGJsb2NrTnVtLAogCQkJCSAgIFJlYWRCdWZmZXJNb2RlIG1v ZGUsIEJ1ZmZlckFjY2Vzc1N0cmF0ZWd5IHN0cmF0ZWd5KQogewpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZXJyb3IvZWxvZy5j CmluZGV4IGQ5MWE4NWNiMmQuLjdiNTFlOTRmNGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2Vycm9yL2Vsb2cuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9lcnJvci9lbG9nLmMKQEAg LTkwOCw3ICs5MDgsOSBAQCBlcnJjb2RlX2Zvcl9maWxlX2FjY2Vzcyh2b2lkKQogCQkJLyogV3Jv bmcgb2JqZWN0IHR5cGUgb3Igc3RhdGUgKi8KIAkJY2FzZSBFTk9URElSOgkJCS8qIE5vdCBhIGRp cmVjdG9yeSAqLwogCQljYXNlIEVJU0RJUjoJCQkvKiBJcyBhIGRpcmVjdG9yeSAqLworI2lmIGRl ZmluZWQoRU5PVEVNUFRZKSAmJiAoRU5PVEVNUFRZICE9IEVFWElTVCkgLyogc2FtZSBjb2RlIG9u IEFJWCAqLwogCQljYXNlIEVOT1RFTVBUWToJCQkvKiBEaXJlY3Rvcnkgbm90IGVtcHR5ICovCisj ZW5kaWYKIAkJCWVkYXRhLT5zcWxlcnJjb2RlID0gRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRTsK IAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1 cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wc19zdGF0dXMuYwppbmRleCA5ZGE2Mzc3NDAy Li41MzJlYWMzMWI0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3BzX3N0YXR1 cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcHNfc3RhdHVzLmMKQEAgLTUwLDcgKzUw LDcgQEAgYm9vbAkJdXBkYXRlX3Byb2Nlc3NfdGl0bGUgPSBERUZBVUxUX1VQREFURV9QUk9DRVNT X1RJVExFOwogI2RlZmluZSBQU19VU0VfU0VUUFJPQ1RJVExFX0ZBU1QKICNlbGlmIGRlZmluZWQo SEFWRV9TRVRQUk9DVElUTEUpCiAjZGVmaW5lIFBTX1VTRV9TRVRQUk9DVElUTEUKLSNlbGlmIGRl ZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fc3VuKSB8fCBkZWZpbmVkKF9fZGFyd2luX18p CisjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUlYKSB8fCBkZWZpbmVkKF9f c3VuKSB8fCBkZWZpbmVkKF9fZGFyd2luX18pCiAjZGVmaW5lIFBTX1VTRV9DTE9CQkVSX0FSR1YK ICNlbGlmIGRlZmluZWQoV0lOMzIpCiAjZGVmaW5lIFBTX1VTRV9XSU4zMgpAQCAtNjAsNyArNjAs NyBAQCBib29sCQl1cGRhdGVfcHJvY2Vzc190aXRsZSA9IERFRkFVTFRfVVBEQVRFX1BST0NFU1Nf VElUTEU7CiAKIAogLyogRGlmZmVyZW50IHN5c3RlbXMgd2FudCB0aGUgYnVmZmVyIHBhZGRlZCBk aWZmZXJlbnRseSAqLwotI2lmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fZGFyd2lu X18pCisjaWYgZGVmaW5lZChfQUlYKSB8fCBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChf X2Rhcndpbl9fKQogI2RlZmluZSBQU19QQURESU5HICdcMCcKICNlbHNlCiAjZGVmaW5lIFBTX1BB RERJTkcgJyAnCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2Jhc2ViYWNrdXAvdC8wMTBfcGdfYmFz ZWJhY2t1cC5wbCBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBs CmluZGV4IDJkNGI3NWE2ZmUuLmNlOTM2OTU5YzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfYmFz ZWJhY2t1cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCisrKyBiL3NyYy9iaW4vcGdfYmFzZWJhY2t1 cC90LzAxMF9wZ19iYXNlYmFja3VwLnBsCkBAIC00MDEsNyArNDAxLDggQEAgU0tJUDoKIHsKIAlt eSAkdGFyID0gJEVOVntUQVJ9OwogCSMgZG9uJ3QgY2hlY2sgZm9yIGEgd29ya2luZyB0YXIgaGVy ZSwgdG8gYWNjb21tb2RhdGUgdmFyaW91cyBvZGQKLQkjIGNhc2VzLiBJZiB0YXIgZG9lc24ndCB3 b3JrIHRoZSBpbml0X2Zyb21fYmFja3VwIGJlbG93IHdpbGwgZmFpbC4KKwkjIGNhc2VzIHN1Y2gg YXMgQUlYLiBJZiB0YXIgZG9lc24ndCB3b3JrIHRoZSBpbml0X2Zyb21fYmFja3VwIGJlbG93CisJ IyB3aWxsIGZhaWwuCiAJc2tpcCAibm8gdGFyIHByb2dyYW0gYXZhaWxhYmxlIiwgMQogCSAgaWYg KCFkZWZpbmVkICR0YXIgfHwgJHRhciBlcSAnJyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf dmVyaWZ5YmFja3VwL3QvMDA4X3VudGFyLnBsIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8w MDhfdW50YXIucGwKaW5kZXggN2EwOWYzYjc1Yi4uMzBkOWYzZjdmMCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDhfdW50YXIucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJp ZnliYWNrdXAvdC8wMDhfdW50YXIucGwKQEAgLTEwNCw3ICsxMDQsOCBAQCBmb3IgbXkgJHRjIChA dGVzdF9jb25maWd1cmF0aW9uKQogCQl7CiAJCQlteSAkdGFyID0gJEVOVntUQVJ9OwogCQkJIyBk b24ndCBjaGVjayBmb3IgYSB3b3JraW5nIHRhciBoZXJlLCB0byBhY2NvbW1vZGF0ZSB2YXJpb3Vz IG9kZAotCQkJIyBjYXNlcy4gSWYgdGFyIGRvZXNuJ3Qgd29yayB0aGUgaW5pdF9mcm9tX2JhY2t1 cCBiZWxvdyB3aWxsIGZhaWwuCisJCQkjIGNhc2VzIHN1Y2ggYXMgQUlYLiBJZiB0YXIgZG9lc24n dCB3b3JrIHRoZSBpbml0X2Zyb21fYmFja3VwIGJlbG93CisJCQkjIHdpbGwgZmFpbC4KIAkJCXNr aXAgIm5vIHRhciBwcm9ncmFtIGF2YWlsYWJsZSIsIDEKIAkJCSAgaWYgKCFkZWZpbmVkICR0YXIg fHwgJHRhciBlcSAnJyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Qv MDEwX2NsaWVudF91bnRhci5wbCBiL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3QvMDEwX2NsaWVu dF91bnRhci5wbAppbmRleCA4YzA3NmQ0NmRlLi40NTAxMGQ3OWFjIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX3ZlcmlmeWJhY2t1cC90LzAxMF9jbGllbnRfdW50YXIucGwKKysrIGIvc3JjL2Jpbi9w Z192ZXJpZnliYWNrdXAvdC8wMTBfY2xpZW50X3VudGFyLnBsCkBAIC0xMzQsNyArMTM0LDggQEAg Zm9yIG15ICR0YyAoQHRlc3RfY29uZmlndXJhdGlvbikKIAkJewogCQkJbXkgJHRhciA9ICRFTlZ7 VEFSfTsKIAkJCSMgZG9uJ3QgY2hlY2sgZm9yIGEgd29ya2luZyB0YXIgaGVyZSwgdG8gYWNjb21t b2RhdGUgdmFyaW91cyBvZGQKLQkJCSMgY2FzZXMuIElmIHRhciBkb2Vzbid0IHdvcmsgdGhlIGlu aXRfZnJvbV9iYWNrdXAgYmVsb3cgd2lsbCBmYWlsLgorCQkJIyBjYXNlcyBzdWNoIGFzIEFJWC4g SWYgdGFyIGRvZXNuJ3Qgd29yayB0aGUgaW5pdF9mcm9tX2JhY2t1cCBiZWxvdworCQkJIyB3aWxs IGZhaWwuCiAJCQlza2lwICJubyB0YXIgcHJvZ3JhbSBhdmFpbGFibGUiLCAxCiAJCQkgIGlmICgh ZGVmaW5lZCAkdGFyIHx8ICR0YXIgZXEgJycpOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j LmggYi9zcmMvaW5jbHVkZS9jLmgKaW5kZXggZGMxODQxMzQ2Yy4uYjY2N2FjNTRhMCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvYy5oCisrKyBiL3NyYy9pbmNsdWRlL2MuaApAQCAtMTA1LDYgKzEw NSw4IEBACiAgKiBHQ0M6IGh0dHBzOi8vZ2NjLmdudS5vcmcvb25saW5lZG9jcy9nY2MvVHlwZS1B dHRyaWJ1dGVzLmh0bWwKICAqIENsYW5nOiBodHRwczovL2NsYW5nLmxsdm0ub3JnL2RvY3MvQXR0 cmlidXRlUmVmZXJlbmNlLmh0bWwKICAqIFN1bnBybzogaHR0cHM6Ly9kb2NzLm9yYWNsZS5jb20v Y2QvRTE4NjU5XzAxL2h0bWwvODIxLTEzODQvZ2p6a2UuaHRtbAorICogWExDOiBodHRwczovL3d3 dy5pYm0uY29tL3N1cHBvcnQva25vd2xlZGdlY2VudGVyL1NTR0gyS18xMy4xLjIvY29tLmlibS54 bGMxMzEuYWl4LmRvYy9sYW5ndWFnZV9yZWYvZnVuY3Rpb25fYXR0cmlidXRlcy5odG1sCisgKiBY TEM6IGh0dHBzOi8vd3d3LmlibS5jb20vc3VwcG9ydC9rbm93bGVkZ2VjZW50ZXIvU1NHSDJLXzEz LjEuMi9jb20uaWJtLnhsYzEzMS5haXguZG9jL2xhbmd1YWdlX3JlZi90eXBlX2F0dHJpYi5odG1s CiAgKi8KIAogLyoKQEAgLTE4Miw4ICsxODQsOCBAQAogI2RlZmluZSBQR19VU0VEX0ZPUl9BU1NF UlRTX09OTFkgcGdfYXR0cmlidXRlX3VudXNlZCgpCiAjZW5kaWYKIAotLyogR0NDIHN1cHBvcnRz IGZvcm1hdCBhdHRyaWJ1dGVzICovCi0jaWYgZGVmaW5lZChfX0dOVUNfXykKKy8qIEdDQyBhbmQg WExDIHN1cHBvcnQgZm9ybWF0IGF0dHJpYnV0ZXMgKi8KKyNpZiBkZWZpbmVkKF9fR05VQ19fKSB8 fCBkZWZpbmVkKF9fSUJNQ19fKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfZm9ybWF0X2FyZyhhKSBf X2F0dHJpYnV0ZV9fKChmb3JtYXRfYXJnKGEpKSkKICNkZWZpbmUgcGdfYXR0cmlidXRlX3ByaW50 ZihmLGEpIF9fYXR0cmlidXRlX18oKGZvcm1hdChQR19QUklOVEZfQVRUUklCVVRFLCBmLCBhKSkp CiAjZWxzZQpAQCAtMTkxLDggKzE5Myw4IEBACiAjZGVmaW5lIHBnX2F0dHJpYnV0ZV9wcmludGYo ZixhKQogI2VuZGlmCiAKLS8qIEdDQyBhbmQgU3VucHJvIHN1cHBvcnQgYWxpZ25lZCwgcGFja2Vk IGFuZCBub3JldHVybiAqLwotI2lmIGRlZmluZWQoX19HTlVDX18pIHx8IGRlZmluZWQoX19TVU5Q Uk9fQykKKy8qIEdDQywgU3VucHJvIGFuZCBYTEMgc3VwcG9ydCBhbGlnbmVkLCBwYWNrZWQgYW5k IG5vcmV0dXJuICovCisjaWYgZGVmaW5lZChfX0dOVUNfXykgfHwgZGVmaW5lZChfX1NVTlBST19D KSB8fCBkZWZpbmVkKF9fSUJNQ19fKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfYWxpZ25lZChhKSBf X2F0dHJpYnV0ZV9fKChhbGlnbmVkKGEpKSkKICNkZWZpbmUgcGdfYXR0cmlidXRlX25vcmV0dXJu KCkgX19hdHRyaWJ1dGVfXygobm9yZXR1cm4pKQogI2RlZmluZSBwZ19hdHRyaWJ1dGVfcGFja2Vk KCkgX19hdHRyaWJ1dGVfXygocGFja2VkKSkKQEAgLTIyMyw4ICsyMjUsOCBAQAogICogY2hvb3Nl IG5vdCB0by4gIEJ1dCwgaWYgcG9zc2libGUsIGRvbid0IGZvcmNlIGlubGluaW5nIGluIHVub3B0 aW1pemVkCiAgKiBkZWJ1ZyBidWlsZHMuCiAgKi8KLSNpZiAoZGVmaW5lZChfX0dOVUNfXykgJiYg X19HTlVDX18gPiAzICYmIGRlZmluZWQoX19PUFRJTUlaRV9fKSkgfHwgZGVmaW5lZChfX1NVTlBS T19DKQotLyogR0NDID4gMyBhbmQgU3VucHJvIHN1cHBvcnQgYWx3YXlzX2lubGluZSB2aWEgX19h dHRyaWJ1dGVfXyAqLworI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA+IDMgJiYg ZGVmaW5lZChfX09QVElNSVpFX18pKSB8fCBkZWZpbmVkKF9fU1VOUFJPX0MpIHx8IGRlZmluZWQo X19JQk1DX18pCisvKiBHQ0MgPiAzLCBTdW5wcm8gYW5kIFhMQyBzdXBwb3J0IGFsd2F5c19pbmxp bmUgdmlhIF9fYXR0cmlidXRlX18gKi8KICNkZWZpbmUgcGdfYXR0cmlidXRlX2Fsd2F5c19pbmxp bmUgX19hdHRyaWJ1dGVfXygoYWx3YXlzX2lubGluZSkpIGlubGluZQogI2VsaWYgZGVmaW5lZChf TVNDX1ZFUikKIC8qIE1TVkMgaGFzIGEgc3BlY2lhbCBrZXl3b3JkIGZvciB0aGlzICovCkBAIC0y NDAsOCArMjQyLDggQEAKICAqIGZvciBwcm9wZXIgY29zdCBhdHRyaWJ1dGlvbi4gIE5vdGUgdGhh dCB1bmxpa2UgdGhlIHBnX2F0dHJpYnV0ZV9YWFggbWFjcm9zCiAgKiBhYm92ZSwgdGhpcyBzaG91 bGQgYmUgcGxhY2VkIGJlZm9yZSB0aGUgZnVuY3Rpb24ncyByZXR1cm4gdHlwZSBhbmQgbmFtZS4K ICAqLwotLyogR0NDIGFuZCBTdW5wcm8gc3VwcG9ydCBub2lubGluZSB2aWEgX19hdHRyaWJ1dGVf XyAqLwotI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA+IDIpIHx8IGRlZmluZWQo X19TVU5QUk9fQykKKy8qIEdDQywgU3VucHJvIGFuZCBYTEMgc3VwcG9ydCBub2lubGluZSB2aWEg X19hdHRyaWJ1dGVfXyAqLworI2lmIChkZWZpbmVkKF9fR05VQ19fKSAmJiBfX0dOVUNfXyA+IDIp IHx8IGRlZmluZWQoX19TVU5QUk9fQykgfHwgZGVmaW5lZChfX0lCTUNfXykKICNkZWZpbmUgcGdf bm9pbmxpbmUgX19hdHRyaWJ1dGVfXygobm9pbmxpbmUpKQogLyogbXN2YyB2aWEgZGVjbHNwZWMg Ki8KICNlbGlmIGRlZmluZWQoX01TQ19WRVIpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wb3J0 L2FpeC5oIGIvc3JjL2luY2x1ZGUvcG9ydC9haXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwLi41YjExNTljNTc4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUv cG9ydC9haXguaApAQCAtMCwwICsxLDE0IEBACisvKgorICogc3JjL2luY2x1ZGUvcG9ydC9haXgu aAorICovCisjZGVmaW5lIENMQVNTX0NPTkZMSUNUCisjZGVmaW5lIERJU0FCTEVfWE9QRU5fTkxT CisKKy8qCisgKiAiSUJNIFhMIEMvQysrIGZvciBBSVgsIFYxMi4xIiBtaXNjb21waWxlcywgZm9y IDMyLWJpdCwgc29tZSBpbmxpbmUKKyAqIGV4cGFuc2lvbnMgb2YgZ2luQ29tcGFyZUl0ZW1Qb2lu dGVycygpICJsb25nIGxvbmciIGFyaXRobWV0aWMuICBUbyB0YWtlCisgKiBhZHZhbnRhZ2Ugb2Yg aW5saW5pbmcsIGJ1aWxkIGEgNjQtYml0IFBvc3RncmVTUUwuCisgKi8KKyNpZiBkZWZpbmVkKF9f SUxQMzJfXykgJiYgZGVmaW5lZChfX0lCTUNfXykKKyNkZWZpbmUgUEdfRk9SQ0VfRElTQUJMRV9J TkxJTkUKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcG9ydC9hdG9taWNzLmggYi9z cmMvaW5jbHVkZS9wb3J0L2F0b21pY3MuaAppbmRleCA3ODk4N2YzMTU0Li41YjJiNzBmZTVmIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wb3J0L2F0b21pY3MuaAorKysgYi9zcmMvaW5jbHVkZS9w b3J0L2F0b21pY3MuaApAQCAtODQsOSArODQsMTEgQEAKICAqIHVzaW5nIGNvbXBpbGVyIGludHJp bnNpY3MgYXJlIGEgZ29vZCBpZGVhLgogICovCiAvKgotICogZ2NjIG9yIGNvbXBhdGlibGUsIGlu Y2x1ZGluZyBjbGFuZyBhbmQgaWNjLgorICogZ2NjIG9yIGNvbXBhdGlibGUsIGluY2x1ZGluZyBj bGFuZyBhbmQgaWNjLiAgRXhjbHVkZSB4bGMuICBUaGUgcHBjNjRsZSAiSUJNCisgKiBYTCBDL0Mr KyBmb3IgTGludXgsIFYxMy4xLjIiIGVtdWxhdGVzIGdjYywgYnV0IF9fc3luY19sb2NrX3Rlc3Rf YW5kX3NldCgpCisgKiBvZiBvbmUtYnl0ZSB0eXBlcyBlbGljaXRzIFNJR1NFR1YuICBUaGF0IGJ1 ZyB3YXMgZ29uZSBieSBWMTMuMS41ICgyMDE2LTEyKS4KICAqLwotI2lmIGRlZmluZWQoX19HTlVD X18pIHx8IGRlZmluZWQoX19JTlRFTF9DT01QSUxFUikKKyNpZiAoZGVmaW5lZChfX0dOVUNfXykg fHwgZGVmaW5lZChfX0lOVEVMX0NPTVBJTEVSKSkgJiYgIShkZWZpbmVkKF9fSUJNQ19fKSB8fCBk ZWZpbmVkKF9fSUJNQ1BQX18pKQogI2luY2x1ZGUgInBvcnQvYXRvbWljcy9nZW5lcmljLWdjYy5o IgogI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKICNpbmNsdWRlICJwb3J0L2F0b21pY3MvZ2VuZXJp Yy1tc3ZjLmgiCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oIGIvc3Jj L2luY2x1ZGUvc3RvcmFnZS9zX2xvY2suaAppbmRleCAyOWFjNmNkY2Q5Li42OTU4MmY0YWU3IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3NfbG9jay5oCisrKyBiL3NyYy9pbmNsdWRl L3N0b3JhZ2Uvc19sb2NrLmgKQEAgLTQxNCw2ICs0MTQsMTIgQEAgdHlwZWRlZiB1bnNpZ25lZCBp bnQgc2xvY2tfdDsKICAqIGFuIGlzeW5jIGlzIGEgc3VmZmljaWVudCBzeW5jaHJvbml6YXRpb24g YmFycmllciBhZnRlciBhIGx3YXJ4L3N0d2N4IGxvb3AuCiAgKiBCdXQgaWYgdGhlIHNwaW5sb2Nr IGlzIGluIG9yZGluYXJ5IG1lbW9yeSwgd2UgY2FuIHVzZSBsd3N5bmMgaW5zdGVhZCBmb3IKICAq IGJldHRlciBwZXJmb3JtYW5jZS4KKyAqCisgKiBPcmRpbmFyaWx5LCB3ZSdkIGNvZGUgdGhlIGJy YW5jaGVzIGhlcmUgdXNpbmcgR05VLXN0eWxlIGxvY2FsIHN5bWJvbHMsIHRoYXQKKyAqIGlzICIx ZiIgcmVmZXJlbmNpbmcgIjE6IiBhbmQgc28gb24uICBCdXQgc29tZSBwZW9wbGUgcnVuIGdjYyBv biBBSVggd2l0aAorICogSUJNJ3MgYXNzZW1ibGVyIGFzIGJhY2tlbmQsIGFuZCBJQk0ncyBhc3Nl bWJsZXIgZG9lc24ndCBkbyBsb2NhbCBzeW1ib2xzLgorICogU28gaGFuZC1jb2RlIHRoZSBicmFu Y2ggb2Zmc2V0czsgZm9ydHVuYXRlbHksIGFsbCBQUEMgaW5zdHJ1Y3Rpb25zIGFyZQorICogZXhh Y3RseSA0IGJ5dGVzIGVhY2gsIHNvIGl0J3Mgbm90IHRvbyBoYXJkIHRvIGNvdW50LgogICovCiBz dGF0aWMgX19pbmxpbmVfXyBpbnQKIHRhcyh2b2xhdGlsZSBzbG9ja190ICpsb2NrKQpAQCAtNDI0 LDE3ICs0MzAsMTUgQEAgdGFzKHZvbGF0aWxlIHNsb2NrX3QgKmxvY2spCiAJX19hc21fXyBfX3Zv bGF0aWxlX18oCiAiCWx3YXJ4ICAgJTAsMCwlMywxCVxuIgogIgljbXB3aSAgICUwLDAJCVxuIgot IglibmUgICAgIDFmCQkJXG4iCisiCWJuZSAgICAgJCsxNgkJXG4iCQkvKiBicmFuY2ggdG8gbGkg JTEsMSAqLwogIglhZGRpICAgICUwLCUwLDEJCVxuIgogIglzdHdjeC4gICUwLDAsJTMJCVxuIgot IgliZXEgICAgIDJmCQkJXG4iCi0iMTogXG4iCisiCWJlcSAgICAgJCsxMgkJXG4iCQkvKiBicmFu Y2ggdG8gbHdzeW5jICovCiAiCWxpICAgICAgJTEsMQkJXG4iCi0iCWIgICAgICAgM2YJCQlcbiIK LSIyOiBcbiIKKyIJYiAgICAgICAkKzEyCQlcbiIJCS8qIGJyYW5jaCB0byBlbmQgb2YgYXNtIHNl cXVlbmNlICovCiAiCWx3c3luYwkJCQlcbiIKICIJbGkgICAgICAlMSwwCQlcbiIKLSIzOiBcbiIK KwogOgkiPSZiIihfdCksICI9ciIoX3JlcyksICIrbSIoKmxvY2spCiA6CSJyIihsb2NrKQogOgki bWVtb3J5IiwgImNjIik7CkBAIC02NjIsNiArNjY2LDIxIEBAIHRhcyh2b2xhdGlsZSBzbG9ja190 ICpsb2NrKQogCiAjaWYgIWRlZmluZWQoSEFTX1RFU1RfQU5EX1NFVCkJLyogV2UgZGlkbid0IHRy aWdnZXIgYWJvdmUsIGxldCdzIHRyeSBoZXJlICovCiAKKyNpZiBkZWZpbmVkKF9BSVgpCS8qIEFJ WCAqLworLyoKKyAqIEFJWCAoUE9XRVIpCisgKi8KKyNkZWZpbmUgSEFTX1RFU1RfQU5EX1NFVAor CisjaW5jbHVkZSA8c3lzL2F0b21pY19vcC5oPgorCit0eXBlZGVmIGludCBzbG9ja190OworCisj ZGVmaW5lIFRBUyhsb2NrKQkJCV9jaGVja19sb2NrKChzbG9ja190ICopIChsb2NrKSwgMCwgMSkK KyNkZWZpbmUgU19VTkxPQ0sobG9jaykJCV9jbGVhcl9sb2NrKChzbG9ja190ICopIChsb2NrKSwg MCkKKyNlbmRpZgkgLyogX0FJWCAqLworCisKIC8qIFRoZXNlIGFyZSBpbiBzdW5zdHVkaW9fKHNw YXJjfHg4NikucyAqLwogCiAjaWYgZGVmaW5lZChfX1NVTlBST19DKSAmJiAoZGVmaW5lZChfX2kz ODYpIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3NwYXJjX18pIHx8IGRlZmlu ZWQoX19zcGFyYykpCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9NYWtlZmlsZSBi L3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlCmluZGV4IGIzNmE3NjU3NjQuLjE1NDQyOWQ0 ZDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlCisrKyBiL3NyYy9p bnRlcmZhY2VzL2xpYnBxL01ha2VmaWxlCkBAIC0xMTQsNyArMTE0LDcgQEAgYmFja2VuZF9zcmMg PSAkKHRvcF9zcmNkaXIpL3NyYy9iYWNrZW5kCiAjIGNvZGluZyBydWxlLgogbGlicHEtcmVmcy1z dGFtcDogJChzaGxpYikKIGlmbmVxICgkKGVuYWJsZV9jb3ZlcmFnZSksIHllcykKLWlmZXEgKCwk KGZpbHRlciBzb2xhcmlzLCQoUE9SVE5BTUUpKSkKK2lmZXEgKCwkKGZpbHRlciBhaXggc29sYXJp cywkKFBPUlROQU1FKSkpCiAJQGlmIG5tIC1BIC11ICQ8IDI+L2Rldi9udWxsIHwgZ3JlcCAtdiAt ZSBfX2N4YV9hdGV4aXQgLWUgX190c2FuX2Z1bmNfZXhpdCB8IGdyZXAgZXhpdDsgdGhlbiBcCiAJ CWVjaG8gJ2xpYnBxIG11c3Qgbm90IGJlIGNhbGxpbmcgYW55IGZ1bmN0aW9uIHdoaWNoIGludm9r ZXMgZXhpdCc7IGV4aXQgMTsgXAogCWZpCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJw cS9tZXNvbi5idWlsZCBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCmluZGV4IGVk MmE0MDQ4ZDEuLjdlMjAxN2RhZjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21l c29uLmJ1aWxkCisrKyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL21lc29uLmJ1aWxkCkBAIC01NCw4 ICs1NCw5IEBAIGxpYnBxX2NfYXJncyA9IFsnLURTT19NQUpPUl9WRVJTSU9OPTUnXQogIyAgICBs aWJwcV9zdCwgYW5kIHtwZ3BvcnQsY29tbW9ufV9zaGxpYiBmb3IgbGlicHFfc2gKICMKICMgV2Ug Y291bGQgdHJ5IHRvIGF2b2lkIGJ1aWxkaW5nIHRoZSBzb3VyY2UgZmlsZXMgdHdpY2UsIGJ1dCBp dCBwcm9iYWJseSBhZGRzCi0jIG1vcmUgY29tcGxleGl0eSB0aGFuIGl0cyB3b3J0aCAocmV1c2lu ZyBvYmplY3QgZmlsZXMgcmVxdWlyZXMgYWxzbyBsaW5raW5nCi0jIHRvIHRoZSBsaWJyYXJ5IG9u IHdpbmRvd3Mgb3IgYnJlYWtzIHByZWNvbXBpbGVkIGhlYWRlcnMpLgorIyBtb3JlIGNvbXBsZXhp dHkgdGhhbiBpdHMgd29ydGggKEFJWCBkb2Vzbid0IHN1cHBvcnQgbGlua193aG9sZSB5ZXQsIHJl dXNpbmcKKyMgb2JqZWN0IGZpbGVzIHJlcXVpcmVzIGFsc28gbGlua2luZyB0byB0aGUgbGlicmFy eSBvbiB3aW5kb3dzIG9yIGJyZWFrcworIyBwcmVjb21waWxlZCBoZWFkZXJzKS4KIGxpYnBxX3N0 ID0gc3RhdGljX2xpYnJhcnkoJ2xpYnBxJywKICAgbGlicHFfc291cmNlcywKICAgaW5jbHVkZV9k aXJlY3RvcmllczogW2xpYnBxX2luY10sCmRpZmYgLS1naXQgYS9zcmMvbWFrZWZpbGVzL01ha2Vm aWxlLmFpeCBiL3NyYy9tYWtlZmlsZXMvTWFrZWZpbGUuYWl4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAuLmRkMTZhN2EwMzcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvbWFr ZWZpbGVzL01ha2VmaWxlLmFpeApAQCAtMCwwICsxLDM5IEBACisjIE1BS0VfRVhQT1JUUyBpcyBy ZXF1aXJlZCBmb3Igc3ZyNCBsb2FkZXJzIHRoYXQgd2FudCBhIGZpbGUgb2YKKyMgc3ltYm9sIG5h bWVzIHRvIHRlbGwgdGhlbSB3aGF0IHRvIGV4cG9ydC9pbXBvcnQuCitNQUtFX0VYUE9SVFM9IHRy dWUKKworIyAtYmxpYnBhdGggbXVzdCBjb250YWluIEFMTCBkaXJlY3RvcmllcyB3aGVyZSB3ZSBz aG91bGQgbG9vayBmb3IgbGlicmFyaWVzCitsaWJwYXRoIDo9ICQoc2hlbGwgZWNobyAkKHN1YnN0 IC1MLDosJChmaWx0ZXIgLUwvJSwkKExERkxBR1MpKSkgfCBzZWQgLWUncy8gLy9nJyk6L3Vzci9s aWI6L2xpYgorCisjIHdoZW4gYnVpbGRpbmcgd2l0aCBnY2MsIG5lZWQgdG8gbWFrZSBzdXJlIHRo YXQgbGliZ2NjIGNhbiBiZSBmb3VuZAoraWZlcSAoJChHQ0MpLCB5ZXMpCitsaWJwYXRoIDo9ICQo bGlicGF0aCk6JChkaXIgJChzaGVsbCBnY2MgLXByaW50LWxpYmdjYy1maWxlLW5hbWUpKQorZW5k aWYKKworcnBhdGggPSAtV2wsLWJsaWJwYXRoOickKHJwYXRoZGlyKSQobGlicGF0aCknCisKK0xE RkxBR1NfU0wgKz0gLVdsLC1ibm9lbnRyeSAtV2wsLUg1MTIgLVdsLC1iTTpTUkUKKworIyBnY2Mg bmVlZHMgdG8ga25vdyBpdCdzIGJ1aWxkaW5nIGEgc2hhcmVkIGxpYiwgb3RoZXJ3aXNlIGl0J2xs IG5vdCBlbWl0CisjIGNvcnJlY3QgY29kZSAvIGxpbmsgdG8gdGhlIHJpZ2h0IHN1cHBvcnQgbGli cmFyaWVzCitpZmVxICgkKEdDQyksIHllcykKK0xERkxBR1NfU0wgKz0gLXNoYXJlZAorZW5kaWYK KworIyBlbnYgdmFyIG5hbWUgdG8gdXNlIGluIHBsYWNlIG9mIExEX0xJQlJBUllfUEFUSAorbGRf bGlicmFyeV9wYXRoX3ZhciA9IExJQlBBVEgKKworCitQT1NUR1JFU19JTVA9IHBvc3RncmVzLmlt cAorCitpZmRlZiBQR1hTCitCRV9ETExMSUJTPSAtV2wsLWJJOiQocGtnbGliZGlyKS8kKFBPU1RH UkVTX0lNUCkKK2Vsc2UKK0JFX0RMTExJQlM9IC1XbCwtYkk6JCh0b3BfYnVpbGRkaXIpL3NyYy9i YWNrZW5kLyQoUE9TVEdSRVNfSU1QKQorZW5kaWYKKworTUtMREVYUE9SVF9ESVI9c3JjL2JhY2tl bmQvcG9ydC9haXgKK01LTERFWFBPUlQ9JCh0b3Bfc3JjZGlyKS8kKE1LTERFWFBPUlRfRElSKS9t a2xkZXhwb3J0LnNoCisKKyUkKERMU1VGRklYKTogJS5vCisJJChDQykgJChDRkxBR1MpICQqLm8g JChMREZMQUdTKSAkKExERkxBR1NfU0wpIC1vICRAICQoQkVfRExMTElCUykKZGlmZiAtLWdpdCBh L3NyYy9wb3J0L1JFQURNRSBiL3NyYy9wb3J0L1JFQURNRQppbmRleCBlZDVjNTRhNzJmLi45N2Yx OGE2MjMzIDEwMDY0NAotLS0gYS9zcmMvcG9ydC9SRUFETUUKKysrIGIvc3JjL3BvcnQvUkVBRE1F CkBAIC0yOCw1ICsyOCw1IEBAIGFwcGxpY2F0aW9ucy4KIGZyb20gbGlicGdwb3J0IGFyZSBsaW5r ZWQgZmlyc3QuICBUaGlzIGF2b2lkcyBoYXZpbmcgYXBwbGljYXRpb25zCiBkZXBlbmRlbnQgb24g c3ltYm9scyB0aGF0IGFyZSBfdXNlZF8gYnkgbGlicHEsIGJ1dCBub3QgaW50ZW5kZWQgdG8gYmUK IGV4cG9ydGVkIGJ5IGxpYnBxLiAgbGlicHEncyBsaWJwZ3BvcnQgdXNhZ2UgY2hhbmdlcyBvdmVy IHRpbWUsIHNvIHN1Y2ggYQotZGVwZW5kZW5jeSBpcyBhIHByb2JsZW0uICBXaW5kb3dzLCBMaW51 eCwgYW5kIG1hY09TIHVzZSBhbiBleHBvcnQKK2RlcGVuZGVuY3kgaXMgYSBwcm9ibGVtLiAgV2lu ZG93cywgTGludXgsIEFJWCwgYW5kIG1hY09TIHVzZSBhbiBleHBvcnQKIGxpc3QgdG8gY29udHJv bCB0aGUgc3ltYm9scyBleHBvcnRlZCBieSBsaWJwcS4KZGlmZiAtLWdpdCBhL3NyYy9wb3J0L3N0 cmVycm9yLmMgYi9zcmMvcG9ydC9zdHJlcnJvci5jCmluZGV4IDQ5MThiYTgyMWMuLjEwNzBhNDk4 MDIgMTAwNjQ0Ci0tLSBhL3NyYy9wb3J0L3N0cmVycm9yLmMKKysrIGIvc3JjL3BvcnQvc3RyZXJy b3IuYwpAQCAtMjE0LDggKzIxNCwxMCBAQCBnZXRfZXJybm9fc3ltYm9sKGludCBlcnJudW0pCiAJ CQlyZXR1cm4gIkVOT1RDT05OIjsKIAkJY2FzZSBFTk9URElSOgogCQkJcmV0dXJuICJFTk9URElS IjsKKyNpZiBkZWZpbmVkKEVOT1RFTVBUWSkgJiYgKEVOT1RFTVBUWSAhPSBFRVhJU1QpIC8qIHNh bWUgY29kZSBvbiBBSVggKi8KIAkJY2FzZSBFTk9URU1QVFk6CiAJCQlyZXR1cm4gIkVOT1RFTVBU WSI7CisjZW5kaWYKIAkJY2FzZSBFTk9UU09DSzoKIAkJCXJldHVybiAiRU5PVFNPQ0siOwogI2lm ZGVmIEVOT1RTVVAKZGlmZiAtLWdpdCBhL3NyYy90ZW1wbGF0ZS9haXggYi9zcmMvdGVtcGxhdGUv YWl4Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQ3ZmE4OTkwYTcKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVtcGxhdGUvYWl4CkBAIC0wLDAgKzEsMjUgQEAKKyMgc3Jj L3RlbXBsYXRlL2FpeAorCisjIFNldCBkZWZhdWx0IG9wdGlvbnMgaWYgdXNpbmcgeGxjLiAgVGhp cyBmb3JtZXJseSBpbmNsdWRlZCAtcXNyY21zZywgYnV0IHRoYXQKKyMgb3B0aW9uIGVsaWNpdHMg aW50ZXJuYWwgY29tcGlsZXIgZXJyb3JzIGZyb20geGxjIHYxNi4xLjAuICBOb3RlOiBjb25maWd1 cmUKKyMgd2lsbCBhZGQgLXFub2Fuc2lhbGlhcyBpZiB0aGUgY29tcGlsZXIgYWNjZXB0cyBpdCwg ZXZlbiBpZiB1c2VyIHNwZWNpZmllcyBhCisjIG5vbi1kZWZhdWx0IENGTEFHUyBzZXR0aW5nLgor aWYgdGVzdCAiJEdDQyIgIT0geWVzIDsgdGhlbgorICBjYXNlICRob3N0X29zIGluCisgICAgKikK KyAgICAgIENGTEFHUz0iLU8yIC1xbWF4bWVtPTE2Mzg0IgorICAgICAgOzsKKyAgZXNhYworCisg ICMgRHVlIHRvIGEgY29tcGlsZXIgYnVnLCBzZWUgMjAxNzEwMTMwMjM1MzYuR0E0OTIxNDZAcmZk LmxlYWRib2F0LmNvbSBmb3IgZGV0YWlscywKKyAgIyBmb3JjZSByZXN0cmljdCBub3QgdG8gYmUg dXNlZCB3aGVuIGNvbXBpbGluZyB3aXRoIHhsYy4KKyAgRk9SQ0VfRElTQUJMRV9SRVNUUklDVD15 ZXMKK2ZpCisKKyMgRXh0cmEgQ0ZMQUdTIGZvciBjb2RlIHRoYXQgd2lsbCBnbyBpbnRvIGEgc2hh cmVkIGxpYnJhcnkKK0NGTEFHU19TTD0iIgorCisjIE5hdGl2ZSBtZW1zZXQoKSBpcyBmYXN0ZXIs IHRlc3RlZCBvbjoKKyMgCUFJWCA1LjEgYW5kIDUuMiwgWExDIDYuMCAoSUJNJ3MgY2MpCisjIAlB SVggNS4zIE1MMywgZ2NjIDQuMC4xCitNRU1TRVRfTE9PUF9MSU1JVD0wCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL01ha2VmaWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9NYWtlZmlsZQppbmRl eCA2NDA5YTQ4NWU4Li43YzY2NWZmODkyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL01h a2VmaWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvTWFrZWZpbGUKQEAgLTcsNiArNywxMSBAQAog IyBHTlUgbWFrZSB1c2VzIGEgbWFrZSBmaWxlIG5hbWVkICJHTlVtYWtlZmlsZSIgaW4gcHJlZmVy ZW5jZSB0byAiTWFrZWZpbGUiCiAjIGlmIGl0IGV4aXN0cy4gIFBvc3RncmVzIGlzIHNoaXBwZWQg d2l0aCBhICJHTlVtYWtlZmlsZSIuCiAKKworIyBBSVggbWFrZSBkZWZhdWx0cyB0byBidWlsZGlu ZyAqZXZlcnkqIHRhcmdldCBvZiB0aGUgZmlyc3QgcnVsZS4gIFN0YXJ0IHdpdGgKKyMgYSBzaW5n bGUtdGFyZ2V0LCBlbXB0eSBydWxlIHRvIG1ha2UgdGhlIG90aGVyIHRhcmdldHMgbm9uLWRlZmF1 bHQuCithbGw6CisKIGFsbCBpbnN0YWxsIGNsZWFuIGNoZWNrIGluc3RhbGxjaGVjazoKIAlAZWNo byAiWW91IG11c3QgdXNlIEdOVSBtYWtlIHRvIHVzZSBQb3N0Z3Jlcy4gIEl0IG1heSBiZSBpbnN0 YWxsZWQiCiAJQGVjaG8gIm9uIHlvdXIgc3lzdGVtIHdpdGggdGhlIG5hbWUgJ2dtYWtlJy4iCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nhbml0eV9jaGVjay5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nhbml0eV9jaGVjay5vdXQKaW5kZXggODM3MGMxNTYx Yy4uYzVjNjc1Yjc1MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zYW5p dHlfY2hlY2sub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2FuaXR5X2NoZWNr Lm91dApAQCAtMjUsMyArMjUsMzIgQEAgU0VMRUNUIHJlbG5hbWUsIHJlbGtpbmQKIC0tLS0tLS0t LSstLS0tLS0tLS0KICgwIHJvd3MpCiAKKy0tCistLSBXaGVuIEFMSUdOT0ZfRE9VQkxFPT00IChl LmcuIEFJWCksIHRoZSBDIEFCSSBtYXkgaW1wb3NlIDgtYnl0ZSBhbGlnbm1lbnQgb24KKy0tIHNv bWUgb2YgdGhlIEMgdHlwZXMgdGhhdCBjb3JyZXNwb25kIHRvIFRZUEFMSUdOX0RPVUJMRSBTUUwg dHlwZXMuICBUbyBlbnN1cmUKKy0tIGNhdGFsb2cgQyBzdHJ1Y3QgbGF5b3V0IG1hdGNoZXMgY2F0 YWxvZyB0dXBsZSBsYXlvdXQsIGFycmFuZ2UgZm9yIHRoZSB0dXBsZQorLS0gb2Zmc2V0IG9mIGVh Y2ggZml4ZWQtd2lkdGgsIGF0dGFsaWduPSdkJyBjYXRhbG9nIGNvbHVtbiB0byBiZSBkaXZpc2li bGUgYnkgOAorLS0gdW5jb25kaXRpb25hbGx5LiAgS2VlcCBzdWNoIGNvbHVtbnMgYmVmb3JlIHRo ZSBmaXJzdCBOYW1lRGF0YSBjb2x1bW4gb2YgdGhlCistLSBjYXRhbG9nLCBzaW5jZSBwYWNrYWdl cnMgY2FuIG92ZXJyaWRlIE5BTUVEQVRBTEVOIHRvIGFuIG9kZCBudW1iZXIuCistLQorV0lUSCBj aGVja19jb2x1bW5zIEFTICgKKyBTRUxFQ1QgcmVsbmFtZSwgYXR0bmFtZSwKKyAgYXJyYXkoCisg ICBTRUxFQ1QgdC5vaWQKKyAgICBGUk9NIHBnX3R5cGUgdCBKT0lOIHBnX2F0dHJpYnV0ZSBwYSBP TiB0Lm9pZCA9IHBhLmF0dHR5cGlkCisgICAgV0hFUkUgcGEuYXR0cmVsaWQgPSBhLmF0dHJlbGlk IEFORAorICAgICAgICAgIHBhLmF0dG51bSA+IDAgQU5EIHBhLmF0dG51bSA8IGEuYXR0bnVtCisg ICAgT1JERVIgQlkgcGEuYXR0bnVtKSBBUyBjb2x0eXBlcworIEZST00gcGdfYXR0cmlidXRlIGEg Sk9JTiBwZ19jbGFzcyBjIE9OIGMub2lkID0gYXR0cmVsaWQKKyAgSk9JTiBwZ19uYW1lc3BhY2Ug biBPTiBjLnJlbG5hbWVzcGFjZSA9IG4ub2lkCisgV0hFUkUgYXR0YWxpZ24gPSAnZCcgQU5EIHJl bGtpbmQgPSAncicgQU5ECisgIGF0dG5vdG51bGwgQU5EIGF0dGxlbiA8PiAtMSBBTkQgbi5uc3Bu YW1lID0gJ3BnX2NhdGFsb2cnCispCitTRUxFQ1QgcmVsbmFtZSwgYXR0bmFtZSwgY29sdHlwZXMs IGdldF9jb2x1bW5zX2xlbmd0aChjb2x0eXBlcykKKyBGUk9NIGNoZWNrX2NvbHVtbnMKKyBXSEVS RSBnZXRfY29sdW1uc19sZW5ndGgoY29sdHlwZXMpICUgOCAhPSAwIE9SCisgICAgICAgJ25hbWUn OjpyZWd0eXBlOjpvaWQgPSBBTlkoY29sdHlwZXMpOworIHJlbG5hbWUgfCBhdHRuYW1lIHwgY29s dHlwZXMgfCBnZXRfY29sdW1uc19sZW5ndGggCistLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdGVzdF9zZXR1cC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Rlc3Rfc2V0dXAub3V0CmluZGV4IDNkMGVlZWM5OTYuLjVkOWU2YmYxMmIgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdGVzdF9zZXR1cC5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC90ZXN0X3NldHVwLm91dApAQCAtMjA5LDYgKzIwOSwxMCBAQCBD UkVBVEUgRlVOQ1RJT04gdHRkdW1teSAoKQogICAgIFJFVFVSTlMgdHJpZ2dlcgogICAgIEFTIDon cmVncmVzc2xpYicKICAgICBMQU5HVUFHRSBDOworQ1JFQVRFIEZVTkNUSU9OIGdldF9jb2x1bW5z X2xlbmd0aChvaWRbXSkKKyAgICBSRVRVUk5TIGludAorICAgIEFTIDoncmVncmVzc2xpYicKKyAg ICBMQU5HVUFHRSBDIFNUUklDVCBTVEFCTEUgUEFSQUxMRUwgU0FGRTsKIC0tIFVzZSBoYW5kLXJv bGxlZCBoYXNoIGZ1bmN0aW9ucyBhbmQgb3BlcmF0b3IgY2xhc3NlcyB0byBnZXQgcHJlZGljdGFi bGUKIC0tIHJlc3VsdCBvbiBkaWZmZXJlbnQgbWFjaGluZXMuICBUaGUgaGFzaCBmdW5jdGlvbiBm b3IgaW50NCBzaW1wbHkgcmV0dXJucwogLS0gdGhlIHN1bSBvZiB0aGUgdmFsdWVzIHBhc3NlZCB0 byBpdCBhbmQgdGhlIG9uZSBmb3IgdGV4dCByZXR1cm5zIHRoZSBsZW5ndGgKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvcmVncmVzcy5jIGIvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMK aW5kZXggZGVmZmFlYTU3OC4uY2M2MzM4NjRkNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9yZWdyZXNzLmMKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9yZWdyZXNzLmMKQEAgLTEyMjEsMyAr MTIyMSw0MyBAQCBiaW5hcnlfY29lcmNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRV Uk5fQk9PTChJc0JpbmFyeUNvZXJjaWJsZShzcmN0eXBlLCB0YXJnZXR0eXBlKSk7CiB9CisKKy8q CisgKiBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgcG9ydGlvbiBvZiBhIHR1cGxlIGNvbnNpc3Rp bmcgb2YgdGhlIGdpdmVuIGFycmF5CisgKiBvZiBkYXRhIHR5cGVzLiAgVGhlIGlucHV0IGRhdGEg dHlwZXMgbXVzdCBiZSBmaXhlZC1sZW5ndGggZGF0YSB0eXBlcy4KKyAqLworUEdfRlVOQ1RJT05f SU5GT19WMShnZXRfY29sdW1uc19sZW5ndGgpOworRGF0dW0KK2dldF9jb2x1bW5zX2xlbmd0aChQ R19GVU5DVElPTl9BUkdTKQoreworCUFycmF5VHlwZSAgKnRhID0gUEdfR0VUQVJHX0FSUkFZVFlQ RV9QKDApOworCU9pZAkJICAgKnR5cGVfb2lkczsKKwlpbnQJCQludHlwZXM7CisJaW50CQkJY29s dW1uX29mZnNldCA9IDA7CisKKwlpZiAoQVJSX0hBU05VTEwodGEpICYmIGFycmF5X2NvbnRhaW5z X251bGxzKHRhKSkKKwkJZWxvZyhFUlJPUiwgImFyZ3VtZW50IG11c3Qgbm90IGNvbnRhaW4gbnVs bHMiKTsKKworCWlmIChBUlJfTkRJTSh0YSkgPiAxKQorCQllbG9nKEVSUk9SLCAiYXJndW1lbnQg bXVzdCBiZSBlbXB0eSBvciBvbmUtZGltZW5zaW9uYWwgYXJyYXkiKTsKKworCXR5cGVfb2lkcyA9 IChPaWQgKikgQVJSX0RBVEFfUFRSKHRhKTsKKwludHlwZXMgPSBBcnJheUdldE5JdGVtcyhBUlJf TkRJTSh0YSksIEFSUl9ESU1TKHRhKSk7CisJZm9yIChpbnQgaSA9IDA7IGkgPCBudHlwZXM7IGkr KykKKwl7CisJCU9pZAkJCXR5cGVvaWQgPSB0eXBlX29pZHNbaV07CisJCWludDE2CQl0eXBsZW47 CisJCWJvb2wJCXR5cGJ5dmFsOworCQljaGFyCQl0eXBhbGlnbjsKKworCQlnZXRfdHlwbGVuYnl2 YWxhbGlnbih0eXBlb2lkLCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0eXBhbGlnbik7CisKKwkJLyog dGhlIGRhdGEgdHlwZSBtdXN0IGJlIGZpeGVkLWxlbmd0aCAqLworCQlpZiAodHlwbGVuIDwgMCkK KwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBmaXhlZC1sZW5ndGggZGF0YSB0eXBlIiwg dHlwZW9pZCk7CisKKwkJY29sdW1uX29mZnNldCA9IGF0dF9hbGlnbl9ub21pbmFsKGNvbHVtbl9v ZmZzZXQgKyB0eXBsZW4sIHR5cGFsaWduKTsKKwl9CisKKwlQR19SRVRVUk5fSU5UMzIoY29sdW1u X29mZnNldCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5pdHlfY2hl Y2suc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2FuaXR5X2NoZWNrLnNxbAppbmRleCAxNjJl NTMyNGI1Li43ZjMzOGQxOTFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zYW5p dHlfY2hlY2suc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nhbml0eV9jaGVjay5zcWwK QEAgLTE5LDMgKzE5LDI5IEBAIFNFTEVDVCByZWxuYW1lLCByZWxraW5kCiAgIEZST00gcGdfY2xh c3MKICBXSEVSRSByZWxraW5kIElOICgndicsICdjJywgJ2YnLCAncCcsICdJJykKICAgICAgICBB TkQgcmVsZmlsZW5vZGUgPD4gMDsKKworLS0KKy0tIFdoZW4gQUxJR05PRl9ET1VCTEU9PTQgKGUu Zy4gQUlYKSwgdGhlIEMgQUJJIG1heSBpbXBvc2UgOC1ieXRlIGFsaWdubWVudCBvbgorLS0gc29t ZSBvZiB0aGUgQyB0eXBlcyB0aGF0IGNvcnJlc3BvbmQgdG8gVFlQQUxJR05fRE9VQkxFIFNRTCB0 eXBlcy4gIFRvIGVuc3VyZQorLS0gY2F0YWxvZyBDIHN0cnVjdCBsYXlvdXQgbWF0Y2hlcyBjYXRh bG9nIHR1cGxlIGxheW91dCwgYXJyYW5nZSBmb3IgdGhlIHR1cGxlCistLSBvZmZzZXQgb2YgZWFj aCBmaXhlZC13aWR0aCwgYXR0YWxpZ249J2QnIGNhdGFsb2cgY29sdW1uIHRvIGJlIGRpdmlzaWJs ZSBieSA4CistLSB1bmNvbmRpdGlvbmFsbHkuICBLZWVwIHN1Y2ggY29sdW1ucyBiZWZvcmUgdGhl IGZpcnN0IE5hbWVEYXRhIGNvbHVtbiBvZiB0aGUKKy0tIGNhdGFsb2csIHNpbmNlIHBhY2thZ2Vy cyBjYW4gb3ZlcnJpZGUgTkFNRURBVEFMRU4gdG8gYW4gb2RkIG51bWJlci4KKy0tCitXSVRIIGNo ZWNrX2NvbHVtbnMgQVMgKAorIFNFTEVDVCByZWxuYW1lLCBhdHRuYW1lLAorICBhcnJheSgKKyAg IFNFTEVDVCB0Lm9pZAorICAgIEZST00gcGdfdHlwZSB0IEpPSU4gcGdfYXR0cmlidXRlIHBhIE9O IHQub2lkID0gcGEuYXR0dHlwaWQKKyAgICBXSEVSRSBwYS5hdHRyZWxpZCA9IGEuYXR0cmVsaWQg QU5ECisgICAgICAgICAgcGEuYXR0bnVtID4gMCBBTkQgcGEuYXR0bnVtIDwgYS5hdHRudW0KKyAg ICBPUkRFUiBCWSBwYS5hdHRudW0pIEFTIGNvbHR5cGVzCisgRlJPTSBwZ19hdHRyaWJ1dGUgYSBK T0lOIHBnX2NsYXNzIGMgT04gYy5vaWQgPSBhdHRyZWxpZAorICBKT0lOIHBnX25hbWVzcGFjZSBu IE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKKyBXSEVSRSBhdHRhbGlnbiA9ICdkJyBBTkQgcmVs a2luZCA9ICdyJyBBTkQKKyAgYXR0bm90bnVsbCBBTkQgYXR0bGVuIDw+IC0xIEFORCBuLm5zcG5h bWUgPSAncGdfY2F0YWxvZycKKykKK1NFTEVDVCByZWxuYW1lLCBhdHRuYW1lLCBjb2x0eXBlcywg Z2V0X2NvbHVtbnNfbGVuZ3RoKGNvbHR5cGVzKQorIEZST00gY2hlY2tfY29sdW1ucworIFdIRVJF IGdldF9jb2x1bW5zX2xlbmd0aChjb2x0eXBlcykgJSA4ICE9IDAgT1IKKyAgICAgICAnbmFtZSc6 OnJlZ3R5cGU6Om9pZCA9IEFOWShjb2x0eXBlcyk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC90ZXN0X3NldHVwLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Rlc3Rfc2V0dXAu c3FsCmluZGV4IDA2YjBlMjEyMWYuLjFiMmQ0MzQ2ODMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Rlc3Rfc2V0dXAuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Rlc3Rf c2V0dXAuc3FsCkBAIC0yNTcsNiArMjU3LDExIEBAIENSRUFURSBGVU5DVElPTiB0dGR1bW15ICgp CiAgICAgQVMgOidyZWdyZXNzbGliJwogICAgIExBTkdVQUdFIEM7CiAKK0NSRUFURSBGVU5DVElP TiBnZXRfY29sdW1uc19sZW5ndGgob2lkW10pCisgICAgUkVUVVJOUyBpbnQKKyAgICBBUyA6J3Jl Z3Jlc3NsaWInCisgICAgTEFOR1VBR0UgQyBTVFJJQ1QgU1RBQkxFIFBBUkFMTEVMIFNBRkU7CisK IC0tIFVzZSBoYW5kLXJvbGxlZCBoYXNoIGZ1bmN0aW9ucyBhbmQgb3BlcmF0b3IgY2xhc3NlcyB0 byBnZXQgcHJlZGljdGFibGUKIC0tIHJlc3VsdCBvbiBkaWZmZXJlbnQgbWFjaGluZXMuICBUaGUg aGFzaCBmdW5jdGlvbiBmb3IgaW50NCBzaW1wbHkgcmV0dXJucwogLS0gdGhlIHN1bSBvZiB0aGUg dmFsdWVzIHBhc3NlZCB0byBpdCBhbmQgdGhlIG9uZSBmb3IgdGV4dCByZXR1cm5zIHRoZSBsZW5n dGgKZGlmZiAtLWdpdCBhL3NyYy90b29scy9nZW5fZXhwb3J0LnBsIGIvc3JjL3Rvb2xzL2dlbl9l eHBvcnQucGwKaW5kZXggZDlmZGFhYWY2ZC4uODg4YzhhMTk3YSAxMDA2NDQKLS0tIGEvc3JjL3Rv b2xzL2dlbl9leHBvcnQucGwKKysrIGIvc3JjL3Rvb2xzL2dlbl9leHBvcnQucGwKQEAgLTE2LDEx ICsxNiwxMiBAQCBHZXRPcHRpb25zKAogCSdpbnB1dDpzJyA9PiBcJGlucHV0LAogCSdvdXRwdXQ6 cycgPT4gXCRvdXRwdXQpIG9yIGRpZSAid3JvbmcgYXJndW1lbnRzIjsKIAotaWYgKG5vdCggICAk Zm9ybWF0IGVxICdkYXJ3aW4nCitpZiAobm90KCAgICRmb3JtYXQgZXEgJ2FpeCcKKwkJb3IgJGZv cm1hdCBlcSAnZGFyd2luJwogCQlvciAkZm9ybWF0IGVxICdnbnUnCiAJCW9yICRmb3JtYXQgZXEg J3dpbicpKQogewotCWRpZSAiJDA6ICRmb3JtYXQgaXMgbm90IHlldCBoYW5kbGVkIChvbmx5IGRh cndpbiwgZ251LCB3aW4gYXJlKVxuIjsKKwlkaWUgIiQwOiAkZm9ybWF0IGlzIG5vdCB5ZXQgaGFu ZGxlZCAob25seSBhaXgsIGRhcndpbiwgZ251LCB3aW4gYXJlKVxuIjsKIH0KIAogb3BlbihteSAk aW5wdXRfaGFuZGxlLCAnPCcsICRpbnB1dCkKQEAgLTU1LDcgKzU2LDExIEBAIHdoaWxlICg8JGlu cHV0X2hhbmRsZT4pCiAJfQogCWVsc2lmICgvXihcUyspXHMrKFxTKykvKQogCXsKLQkJaWYgKCRm b3JtYXQgZXEgJ2RhcndpbicpCisJCWlmICgkZm9ybWF0IGVxICdhaXgnKQorCQl7CisJCQlwcmlu dCAkb3V0cHV0X2hhbmRsZSAiJDFcbiI7CisJCX0KKwkJZWxzaWYgKCRmb3JtYXQgZXEgJ2Rhcndp bicpCiAJCXsKIAkJCXByaW50ICRvdXRwdXRfaGFuZGxlICJfJDFcbiI7CiAJCX0KZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luY2x1ZGUvaGVhZGVyc2NoZWNrIGIvc3JjL3Rvb2xzL3BnaW5jbHVk ZS9oZWFkZXJzY2hlY2sKaW5kZXggNGExNTdkMGE1Zi4uY2ZkOGM2ODk2YyAxMDA3NTUKLS0tIGEv c3JjL3Rvb2xzL3BnaW5jbHVkZS9oZWFkZXJzY2hlY2sKKysrIGIvc3JjL3Rvb2xzL3BnaW5jbHVk ZS9oZWFkZXJzY2hlY2sKQEAgLTg1LDYgKzg1LDcgQEAgZG8KIAogCSMgVGhlc2UgZmlsZXMgYXJl IHBsYXRmb3JtLXNwZWNpZmljLCBhbmQgYy5oIHdpbGwgaW5jbHVkZSB0aGUKIAkjIG9uZSB0aGF0 J3MgcmVsZXZhbnQgZm9yIG91ciBjdXJyZW50IHBsYXRmb3JtIGFueXdheS4KKwl0ZXN0ICIkZiIg PSBzcmMvaW5jbHVkZS9wb3J0L2FpeC5oICYmIGNvbnRpbnVlCiAJdGVzdCAiJGYiID0gc3JjL2lu Y2x1ZGUvcG9ydC9jeWd3aW4uaCAmJiBjb250aW51ZQogCXRlc3QgIiRmIiA9IHNyYy9pbmNsdWRl L3BvcnQvZGFyd2luLmggJiYgY29udGludWUKIAl0ZXN0ICIkZiIgPSBzcmMvaW5jbHVkZS9wb3J0 L2ZyZWVic2QuaCAmJiBjb250aW51ZQotLSAKMi40MS4wCgo= --_004_CY5PR11MB6392F178646E31D9BF417118FDEB2CY5PR11MB6392namp_--