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 1sBhwF-000naa-Bf for pgsql-hackers@arkaria.postgresql.org; Mon, 27 May 2024 21:31:29 +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 1sBhwE-007pOO-Q2 for pgsql-hackers@arkaria.postgresql.org; Mon, 27 May 2024 21:31:26 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sBhwE-007pNe-24 for pgsql-hackers@lists.postgresql.org; Mon, 27 May 2024 21:31:26 +0000 Received: from mx04.melco.co.jp ([192.218.140.144]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sBhw6-0014pq-CF for pgsql-hackers@postgresql.org; Mon, 27 May 2024 21:31:24 +0000 Received: from mr04.melco.co.jp (mr04 [133.141.98.166]) by mx04.melco.co.jp (Postfix) with ESMTP id 4Vp8362lVSzMqf05; Tue, 28 May 2024 06:31:14 +0900 (JST) Received: from mr04.melco.co.jp (unknown [127.0.0.1]) by mr04.imss (Postfix) with ESMTP id 4Vp8361h93zMrCwx; Tue, 28 May 2024 06:31:14 +0900 (JST) Received: from mf03_second.melco.co.jp (unknown [192.168.20.183]) by mr04.melco.co.jp (Postfix) with ESMTP id 4Vp8361KgkzMttLy; Tue, 28 May 2024 06:31:14 +0900 (JST) Received: from mf03.melco.co.jp (unknown [133.141.98.183]) by mf03_second.melco.co.jp (Postfix) with ESMTP id 4Vp8360zBGz6Z60; Tue, 28 May 2024 06:31:14 +0900 (JST) Received: from JPN01-TYC-obe.outbound.protection.outlook.com (unknown [104.47.23.169]) by mf03.melco.co.jp (Postfix) with ESMTP id 4Vp8360cNvzMqlyH; Tue, 28 May 2024 06:31:14 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cDV6FaWyGtKW1lSAylWRugpNQ8wHf7JlESczb9MiKksJgdrCEfQXH/pGXD5vKwZp9lUSyv6SR4EISp1MFe/z52TQqABgENRhXyiA8wVGQTw8x/Q6w1Q5mx5d3WdQPQKJqsj1+BDTBCk1yGJYSSsCLpSIBbusGe43nL0qgnN4ngDyKwUKGz6c2yCqTwWJ0+BD7yjYL4xhYkreu4TS9i5HDGxd0yFgrn9c6Aq84YMN1CPXvXyPH97gTdvnC/HgEs9EUe97Qz9W5/0XpD3LQcPZyxOw0gK0GQHHDEfoo9qP2/aPboOdxZ9Tm4ysEO++m0uTfRCE/JTZNpkEozmyEf1NHg== 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=bW2JMtoK2n5H5sW2EFFsc+RVH/WPWDOoGs0Q0OP1ntQ=; b=WyQYxkY7CadXu9CSQB+p3POldj8FtgrjAcABO9/UmdmGlbvh5ytQ9TtCOL38gifOXvOKlwRb6vJAbBmeVDUpXMtSItJmyWT3SkwfwkZKjPtQH7mM3/5SXa7y8FF87S4ojuaLxkCXJGFlGgBnstzrOqrPoJAPsPqGmhmudjU94wXu5o2LxsU/RLcxC4mGdwrufcCwNb/Vf/9b+6hBkGrDAX4QF6xDisFHVSJySnxt/QBiYwPAz64T2OZzZoPSK70715fkSPwF/YbAYkkZVePrjMkFxP3fEG5wKyd+DyzXM1wcM4GpoW7i4vSJQWpnP+qbA7XsB3TeypSYU2uAYD8i0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bW2JMtoK2n5H5sW2EFFsc+RVH/WPWDOoGs0Q0OP1ntQ=; b=UsU19c/S/mEsxqiJ3FCpGLSy/fmi8MxDVC5EWvIzNWN4d7NQZQpK3bVIARZI50sCStCCjQ8CUEvjpakNGWW6O0MHCwGSa8bi+UWEoL6Y8HsFsjE5dpatWtvj3bIwJvlq8tbU8eMk7sOkzmFS9R2nJ3FhR8uR5V4pdcYL4ARCtE0= Received: from TYAPR01MB3088.jpnprd01.prod.outlook.com (2603:1096:404:8d::22) by OS3PR01MB5848.jpnprd01.prod.outlook.com (2603:1096:604:c1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7611.30; Mon, 27 May 2024 21:31:10 +0000 Received: from TYAPR01MB3088.jpnprd01.prod.outlook.com ([fe80::3d1e:2141:2fe3:97fc]) by TYAPR01MB3088.jpnprd01.prod.outlook.com ([fe80::3d1e:2141:2fe3:97fc%6]) with mapi id 15.20.7611.025; Mon, 27 May 2024 21:31:10 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Alexander Pyhalov CC: Robert Haas , PostgreSQL-development , Tom Lane , Bruce Momjian , Stephen Frost , Andres Freund , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , vignesh C , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHaZV+FhOOC+4jqD0O6QaSNENpP/LEfzV+AgBnxJJCADnsVgIAB3niAgATs94CAXSjd0A== Date: Mon, 27 May 2024 21:30:59 +0000 Deferred-Delivery: Mon, 27 May 2024 21:30:42 +0000 Message-ID: References: <8175ddeb6d417d8a1f91e667fef77abf@postgrespro.ru> <4012625.1701120204@sss.pgh.pa.us> <31ab8f7b91cef6e837b3e31ea1e35a9a@postgrespro.ru> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYAPR01MB3088:EE_|OS3PR01MB5848:EE_ x-ms-office365-filtering-correlation-id: 6bb276b6-e851-4d89-aaf5-08dc7e94536b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230031|1800799015|7416005|376005|366007|38070700009; x-microsoft-antispam-message-info: =?utf-8?B?REwrL0lCVVR2YWZkUXRFTVFHaTlXd2M4cjdLSkY1RnpMcHNjYTliR3dCOW1O?= =?utf-8?B?WUxrNi9VUk1rM2lLMTFwdVMvUlhsbVpJU0ZGdmpZMFBFV2xGNmFpbm1PTkR6?= =?utf-8?B?VW1NbUN0YkRWcDY0MS9iL29ESnRXZWIxUDZDVzdEN01pV0p4aXdVYnozOURk?= =?utf-8?B?M0o1NnpLd01tZ1c2NHAyVGZ0MEdVUHhQekFaTUNzZEd0My90eTJjQUJUbDBv?= =?utf-8?B?YmZyR3VvTzhNWGg3RW9SVUR4OFV5QXh3aDBWc3l0K2doazdlRXVhT2tBVzUv?= =?utf-8?B?clM2cURZbkJXNERzWUozQSt4OUFzZWZuRFBZZmVscit1VjNNN25PQkJKaVl3?= =?utf-8?B?cVhZcmZGdWNnbjZ2MGFhb05IaHBnUWRhNzg5TEhwOFNTUFE2UFRYTExLT1Ru?= =?utf-8?B?amozaTVjOEpUc2xRQURiOVlucklUYzdvTFQ3T2xma0h1L1VSRk95WG5GSzhm?= =?utf-8?B?QWwwU3AwNDJTeVBGeGwrUU5vQzU4RU5EZllvd1VicDFYaUtvMm9IcHlKYnd3?= =?utf-8?B?ZERYQWFSREhpQWpPNlJQUEFLRXVuOGdKZzloVURqOFUxa0p0bUhDOWdLT0tI?= =?utf-8?B?WjF1UnZSNVI5cXo3ejNRb2FuK0pHd21vZFljZ0I1NUY4a0UxQUtRNXdUWkx2?= =?utf-8?B?NzZKYldTRTNaRVZBSHdlV1BNc0QvNzhuSjd3RjR6NG9XVXIxb1FheitwMW5p?= =?utf-8?B?a2hxczI1WTdCOStjUjQ2SU05aU9Nemo0eFlRby9USElOR2VXNlkwbjhVTjB4?= =?utf-8?B?L2RWSCtvVWd5amN2R0ZqUzRTVmwyQUJYVXc5ZVBXQ2tpZTFlZUNzVjlFOE5C?= =?utf-8?B?Q0d2YlZERmFnSTduWHIxWmdBZGloWVRWcUgybi9MRzMyTTNiWXJ3OGtGTEoz?= =?utf-8?B?MjN3L2loaFV3QkFXejVHdmVsNmZvKy9obmxYUVhhc1h4WEVDUWtuallTMWli?= =?utf-8?B?NW9KQk01UWIwZys5OVhzc2E4Nnd1eU52YkhldUt5UmgzS0RLS2V2MlZGNks2?= =?utf-8?B?ZTNHSnBKS1BQWk5OZGlTaWlkRTl1ZCtJckNqS25zZ0lWNnNVQ3hCN1E1Vlly?= =?utf-8?B?SW5UVUJKV01Yd3Y3bVdCd2tZa2IxS1JNRFpXLzlNNFZ5K0ZncVpmZXkyampv?= =?utf-8?B?WDNzL3BBWUNUa1Foa2NPRlZKenVES2ZlNFFJQ0NWMStzTWhBSGtIYVRwQnFn?= =?utf-8?B?ZGlPNUZyVjBBUjFDR28wcFBKWHlMRWtGM3F5R3ptMlREUFVEYWZYM25sWDR6?= =?utf-8?B?QkFrTEZTeUZwbDBVNkFTd0t1dkhMRW9JMTlxemZHRGxUY0NaQjdBNDBVdkIw?= =?utf-8?B?dVRMWDFQZHZudXdQRXdGZzhlbWYwRHlQN0xGTjZGOVdRc3VZcm1qMjJXaEZT?= =?utf-8?B?OEhRUjY5ZjNhNVVXSVZndHpmc1JJOFlxbXE0SGJ0Ky9Cb0tvdkk1OWg1d2lm?= =?utf-8?B?aUhwbTNFd25JRFZlWjNRYkYxVWRhbmI2MXoyOHN1eTVUQnNySmVGaXpUMkFQ?= =?utf-8?B?THF6UzNhWFM5OTBDdDNIdSswYVFMeGVtWHBiYjQ5bGR6VjdGYWR1clBpbnBZ?= =?utf-8?B?V0swcHdaMTJIeGVnUkNPeHY3WnBLVHI4UTVxYXRRVWxIbXNsdS9FSGNpT1hY?= =?utf-8?B?NmRpdFVBS0gwd2YyUEc4YUcxb3hmem54RVR4d1Q5M21SL3FhaGpzMTZESGNK?= =?utf-8?B?dU9McTlOU2hPekJTZ3AyTEdSclA3QTc4UmZqd28xMnhrbkVaSG5BaTJ4Rmk0?= =?utf-8?B?aEFhY0x2R244NlZDTWRqdlc0Yy95QnlkUUxiUFlrMEplN3Rhb3c2NE9yU0tq?= =?utf-8?B?Z3VwL1RxQWhHYlNKWjZOQT09?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYAPR01MB3088.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(1800799015)(7416005)(376005)(366007)(38070700009);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bXcxMTJta25VemxrWGczY3ZhWFBjd3NVS3FhYXBEUEdsLzRQanhzbUt1ckxM?= =?utf-8?B?SUtRaGxGQkpXaVNxOFM2TFBQUUJlaDJqNHA1ek1IUEMwN1pFWDk0VXVKSzdD?= =?utf-8?B?TENWZFE2NDltbVRXRU1OOHdXeWdpaTFtbUtraVJ6eXZielBrQWRSdklXNndn?= =?utf-8?B?TldRb042U0xnSFRXOXo1Z2lJMkFXYlpvVE1BdFhvMzZOVmM4cE5qa0VPeGpt?= =?utf-8?B?YWRCT0M0TzJUSmpjY0w3WXJSSmtlNitzTWlQOFhBQnRHZFNtSG5RWFNRVWdt?= =?utf-8?B?bmhLTEkxN2w2Um1UcUZmQWhLTVFWY1ZrajVpbWx6THYrSld1a3g0bzVhM0hs?= =?utf-8?B?QlBoSUlUVllxOE01WjFrc1lPRWcyVG1CRWxlcUY1MmRQdmdUWTFPbndQRXZI?= =?utf-8?B?Q2dOVW02WUM3cE9veG1JRWw5Z1RNSk94TDRNU0ZtWnBKM1RJdDQycThTZGwx?= =?utf-8?B?OHFWak5mamZBVW85dGtKbDdKeUpzRUszbGcwZE9kdFQ4RGZmbDFBYjhuMG51?= =?utf-8?B?L0hQWmhHMWJnZCtCZXNYa2ZpZy8vL1Z5OWVQMld3WmFzcmMxOWdqaFhMaHFo?= =?utf-8?B?Ym9JMkZhSlE4QVNEbk9FTHFwUm9BOEZDMEIvTmE1ZUN1eGx5dXJYbjJ5MnNJ?= =?utf-8?B?ck81dytJeWxwT2VVQ2tGb3JZQVp4NU5zejQ5cnVWR2hUYTZYNFdaUWFPSzR4?= =?utf-8?B?TnBQdlZPb0xRTEJHem8vWVgxK0tMbERFWlcyWEFzbmRCR2N5eGRES3AwVnFl?= =?utf-8?B?NjdHcUxGSmNRaDl0RmdTZkJjaEFFTEVVVW05WmY4QUp3YlhQNGwwVWJqL3JH?= =?utf-8?B?RlF5L3JUblVCMjJ6UVNHTng0ZW5ja01zS1ZBWDFpTHdvMERFU080eVFtWGpF?= =?utf-8?B?MGx3UTR0TGJIczhKdEZsUVozSFYzOERTUHBnTmlDNkxHbDZKUkJuVUFaMEV6?= =?utf-8?B?eFVzRm9IbVBKR0h1M1NuVm9wL2tPaU45WnI4eHB5Myt5alpHL0FXeUdtSGVu?= =?utf-8?B?UHJqOXlDaW92R21VTGRTbW9YKzlQT0Z5bWF0VVIrcktFSlMvdVNWekt0Y0Rq?= =?utf-8?B?KzdiQWNtcDgzSnVZdm15cnpMZWpKS3NjNjNqVTdWaWxhTENFNXgwQUZiYk1h?= =?utf-8?B?ZWRFVVpyaVhTNGk5Sjk5WGkyT3JtQkRvQ0o3VFZFL2V0eDZabVphZFpNelRp?= =?utf-8?B?Zi9QN1p4dGRWcFYrNGgwWjBpL2VLM3VkZUhnQS9MSllZakx2bXB5MmxzU3lP?= =?utf-8?B?dzZVejM4aC9hZGZQemJxUVR4QmJ3VW5iRktad0FXZkNybWFZV2pxZVdiMWtF?= =?utf-8?B?TzM3YnllZEVSNG1QcGc5Y1d6OVlyQUhEZEJqWUQ0N1dKSlFZS0pxcWRETkVW?= =?utf-8?B?STlJWjcyV0cwMnpwMit3MjB6NTVvcXZNdXRZNnJZMDJTK3pYTEQvZ1hYSk9p?= =?utf-8?B?T1JMam5IOWFFSGhVVFlnNGpBTkxhaEhlYzRoczB2OGZBMm9xNTBvMmNmdjd3?= =?utf-8?B?T2JhRE9ENjEyWGVyV01QS2k3OG1adTkybWV5WDhFeFl5NzNKUG4wV3NRRzQ2?= =?utf-8?B?T01jS2E0OWpQVmUzREhzMkI3R0xJZ1dzL3VGb1M4d2VCV3NRSkZsbDlLaU9P?= =?utf-8?B?cmNNdnlYVHc2eWtxWG5ETFlIOTJ2bGV0TURPK1ZVYUtLRUlpUjhIU1MxNnVQ?= =?utf-8?B?OFp1d2I5RThiRGg3bWJPMmkxU2dmc1FXVlFEN1gxVHA1dDZtcUdlY1dPWERa?= =?utf-8?B?ZWhUZHNqWGxCNWNPUjFQeVZrc1UvSmo0cXJ6Tkx2bTlxN3c0SSticjlpaU8v?= =?utf-8?B?L3ZCaktOaVhWWjZ2Sm16akttT3lPSk91b2IyelhTVWlTbTEwRGJxYlovdnF3?= =?utf-8?B?UG96cWRUWk0rK0hvT21IaG1oMmx1N0tiT0t5bUxSdEtOUVdvT0N5eU95V2RV?= =?utf-8?B?UFJiT3MxdG00L2g5a2d3aHg4bTgrYXEvNXFWbW1CdC9yRWZndDZpZlNnYTVJ?= =?utf-8?B?QmVOMTBpZmlIRFUxbmRRZnBGcEh2b2FvbXVRWDdDSlFjOStmcFNGK0gyNnU0?= =?utf-8?B?bDR0eEo0V0k2bEdGYTNBUUZabXZVMndRdDdCYkVqU3pDZmoxaDFhVHpQRFU3?= =?utf-8?Q?y7nIB8A1CMCUeG8CS+U+endUJ?= Content-Type: multipart/mixed; boundary="_002_TYAPR01MB30884F8E4D94038CD661FFEF95F02TYAPR01MB3088jpnp_" MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYAPR01MB3088.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6bb276b6-e851-4d89-aaf5-08dc7e94536b X-MS-Exchange-CrossTenant-originalarrivaltime: 27 May 2024 21:31:09.9282 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: mdqDw7saK7BQxAanhe5+BX0H4NYEquiiSlZMnejZtCyhwPU7ujOydbgpt62uhQnfI5CdsG+o3viZ15uBlZ6pAA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: OS3PR01MB5848 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_TYAPR01MB30884F8E4D94038CD661FFEF95F02TYAPR01MB3088jpnp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTXIuIFB5aGFsb3YuDQoNClNvcnJ5IGZvciB0aGUgbGF0ZSByZXBseS4NClRoYW5rIHlvdSBm b3IgeW91ciBtb2RpZmljYXRpb24gYW5kIGRldGFpbGVkIHJldmlldy4NCkkgYXR0YWNoIGEgZml4 ZWQgcGF0Y2gsIGhhdmUgYmVlbiBub3QgeWV0IHJlYmFzZWQuDQoNCk1vbmRheSwgMjUgTWFyY2gg MjAyNCAxNjowMSBBbGV4YW5kZXIgUHloYWxvdiA8YS5weWhhbG92QHBvc3RncmVzcHJvLnJ1Pjou DQo+IENvbW1lbnQgaW4gbm9kZUFnZy5jIHNlZW1zIHRvIGJlIHN0cmFuZ2U6DQo+DQo+IDEwNzkg LyoNCj4gMTA4MCAqIElmIHRoZSBhZ2cncyBmaW5hbGZuIGlzIHByb3ZpZGVkIGFuZCBQQVJUSUFM X0FHR1JFR0FURQ0KPiBrZXl3b3JkIGlzDQo+IDEwODEgKiBub3Qgc3BlY2lmaWVkLCBhcHBseSB0 aGUgYWdnJ3MgZmluYWxmbi4NCj4gMTA4MiAqIElmIFBBUlRJQUxfQUdHUkVHQVRFIGtleXdvcmQg aXMgc3BlY2lmaWVkIGFuZCB0aGUNCj4gdHJhbnNWYWx1ZSB0eXBlDQo+IDEwODMgKiBpcyBpbnRl cm5hbCwgYXBwbHkgdGhlIGFnZydzIHNlcmlhbGZuLiBJbiB0aGlzIGNhc2UsIGlmDQo+IHRoZSBh Z2cncw0KPiAxMDg0ICogc2VyaWFsZm4gbXVzdCBub3QgYmUgaW52YWxpZC4gT3RoZXJ3aXNlIHJl dHVybg0KPiB0cmFuc1ZhbHVlLg0KPiAxMDg1ICovDQo+DQo+IExpa2VseSwgeW91IG1lYW46DQo+ DQo+IC4uLiBJbiB0aGlzIGNhc2UgdGhlIGFnZydzcyBzZXJpYWxmbiBtdXN0IG5vdCBiZSBpbnZh bGlkLi4uDQpGaXhlZC4NCg0KPiBMb3dlciwgaW4gdGhlIHNhbWUgZmlsZSwgcGxlYXNlLCBjb3Jy ZWN0IGVycm9yIG1lc3NhZ2U6DQo+DQo+IDExMzYgaWYoIU9pZElzVmFsaWQocGVyYWdnLT5zZXJp YWxmbl9vaWQpKQ0KPiAxMTM3ICBlbG9nKEVSUk9SLCAic2VyaWFsZnVuYyBpcyBub3RlIHByb3Zp ZGVkDQo+IGZvciBwYXJ0aWFsIGFnZ3JlZ2F0ZSIpOw0KPg0KPiBpdCBzaG91bGQgYmUgInNlcmlh bGZ1bmMgaXMgbm90IHByb3ZpZGVkIGZvciBwYXJ0aWFsIGFnZ3JlZ2F0ZSINCkZpeGVkLg0KDQo+ IEFsc28gc29tZXRoaW5nIGlzIHdyb25nIHdpdGggdGhlIGZvbGxvd2luZyB0ZXN0IDoNCj4NCj4g U0VMRUNUIC8qIGFnZ3JlZ2F0ZSA8PiBwYXJ0aWFsIGFnZ3JlZ2F0ZSAqLw0KPiAgYXJyYXlfYWdn KGNfaW50NGFycmF5KSwgYXJyYXlfYWdnKGIpLA0KPiAgYXZnKGI6OmludDIpLCBhdmcoYjo6aW50 NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLA0KPiAgYXZnKGI6OmZsb2F0NCksIGF2 ZyhiOjpmbG9hdDgpLA0KPiAgY29ycihiOjpmbG9hdDgsIChiICogYik6OmZsb2F0OCksDQo+ICBj b3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLA0KPiAgY292YXJfc2FtcChiOjpm bG9hdDgsIChiICogYik6OmZsb2F0OCksDQo+ICByZWdyX2F2Z3goKDIgKiBiKTo6ZmxvYXQ4LCBi OjpmbG9hdDgpLA0KPiAuLi4uLg0KPg0KPiBJdHMgcmVzdWx0cyBoYXZlIGNoYW5nZWQgc2luY2Ug bGFzdCBwYXRjaC4gRG8gdGhleSBkZXBlbmQgb24gZGF5bGlnaHQNCj4gc2F2aW5nIHRpbWU/DQpZ b3UgYXJlIHJpZ2h0LiBJbiBteSBlbnZpcm9ubWVudCwgVGltZVpvbmUgaXMgc2V0IHRvICdQU1Q4 UERUJw0Kd2l0aCB3aGljaCB0aW1ldHogdmFsdWVzIGRlcGVuZHMgb24gZGF5bGlnaHQgc2F2aW5n IHRpbWUuDQpDaGFuZ2VkIFRpbWVab25lIHRvICdVVEMnIGluIHRoaXMgdGVzdC4NCg0KPiBZb3Ug Y2FuIHNlZSB0aGF0IGZpbHRlciBpcyBhcHBsaWVkIGJlZm9yZSBhcHBlbmQuIFRoZSByZXN1bHQg aXMgY29ycmVjdA0KPiBvbmx5IGJ5IGNoYW5jZSwgYXMgc3VtIGluIGV2ZXJ5IHBhcnRpdGlvbiBp cyBhY3R1YWxseSA8IDcwMC4gSWYgeW91DQo+IGxvd2VyIHRoaXMgYm91bmQsIGxldCdzIHNheSwg dG8gMjAwLCB5b3UnbGwgc3RhcnQgZ2V0dGluZyB3cm9uZyByZXN1bHRzDQo+IGFzIGRhdGEgaXMg ZmlsdGVyZWQgcHJpb3IgdG8gYWdncmVnYXRpb24uDQo+DQo+IEl0IHNlZW1zLCBob3dldmVyLCB0 aGF0IGluIHBhcnRpYWwgY2FzZSB5b3Ugc2hvdWxkIGp1c3QgYXZvaWQgcHVsbGluZw0KPiBjb25k aXRpb25zIGZyb20gaGF2aW5nIHF1YWwgYXQgYWxsLCBhbGwgZmlsdGVycyB3aWxsIGJlIGFwcGxp ZWQgb24gdXBwZXINCj4gbGV2ZWwuIFNvbWV0aGluZyBsaWtlDQpUaGFuayB5b3UgZm9yIHlvdXIg bW9kaWZpY2F0aW9uLg0KDQo+IEZvdW5kIG9uZSBtb3JlIHByb2JsZW0uIFlvdSBjYW4gZmlyZSBw YXJ0aWFsIGFnZ3JlZ2F0ZSBvdmVyIHBhcnRpdGlvbmVkDQo+IHRhYmxlLCBidXQgY29udmVydF9j b21iaW5pbmdfYWdncmVmcygpIHdpbGwgbWFrZSBub24tcGFydGlhbCBjb3B5LCB3aGljaA0KPiBs ZWFkcyB0bw0KPiAndmFyaWFibGUgbm90IGZvdW5kIGluIHN1YnBsYW4gdGFyZ2V0IGxpc3QnIGVy cm9yLg0KVGhhbmtzIGZvciB0aGUgY29ycmVjdGlvbiBhcyB3ZWxsLg0KQXMgeW91IHBvaW50ZWQg b3V0LA0KdGhlIG9yaWdpbmFsIHBhdGNoIGNlcnRhaW5seSBoYWQgdGhlIHBvdGVudGlhbCB0byBj YXVzZSBwcm9ibGVtcy4NCkhvd2V2ZXIsIEkgY291bGQgbm90IGFjdHVhbGx5IHJlcHJvZHVjZSB0 aGUgcHJvYmxlbSBpbiBjYXNlcyBzdWNoIGFzIHRoZSBmb2xsb3dpbmcuDQoNCiAgU2V0dGluZ3M6 DQogICAgdChjMSwgYzIpIGlzIGEgcGF0aXRpb25lZCB0YWJsZSB3aG9zZSBwYXJ0aXRpb24ga2V5 IGlzIGMxLg0KICAgIHQxLCB0MiBhcmUgcGF0aXRpb25zIG9mIHQgYW5kIGFyZSBwYXJ0aXRpb25l ZCB0YWJsZS4NCiAgICB0MTEsIHQxMjogcGFydGl0aW9ucyBvZiB0MSBhbmQgZm9yZWlnbiB0YWJs ZSBvZiBwb3N0Z3Jlc19mZHcuDQogICAgdDIxLCB0MjI6IHBhcnRpdGlvbnMgb2YgdDIgYW5kIGZv cmVpZ24gdGFibGUgb2YgcG9zdGdyZXNfZmR3Lg0KICBRdWVyeToNCiAgICBzZWxlY3QgYzIgLyAy LCBzdW0oYzEpIGZyb20gdCBncm91cCBieSBjMiAvIDIgb3JkZXIgYnkgMQ0KDQpJZiB5b3UgaGF2 ZSBhIHJlcHJvZHVjaWJsZSBleGFtcGxlLCBJIHdvdWxkIGxpa2UgdG8gYWRkIGl0IHRvDQp0aGUg cmVncmVzc2lvbiB0ZXN0Lg0KRG8geW91IGhhdmUgYSByZXByb2R1Y2libGUgZXhhbXBsZT8NCg0K PiBBbHNvIGRlbmllZCBwYXJ0aWFsIGFncmVnYXRlcyBwdXNoZG93biBvbiBzZXJ2ZXIgdmVyc2lv biBtaXNtYXRjaC4NCj4gU2hvdWxkIGNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgYmUg J3RydWUnIGJ5IGRlZmF1bHQ/DQpDb3VsZCB3ZSBkaXNjdXNzIHRoaXMgcG9pbnQgYWZ0ZXIgd2Ug ZGV0ZXJtaW5lIGhvdyB0byB0cmFuc2ZlciBzdGF0ZSB2YWx1ZXM/DQpJZiB3ZSBkZXRlcm1pbmUg dGhpcyBwb2ludCwgd2UgY2FuIGVhc2x5IGRldGVybWluZSB3aGV0aGVyIGNoZWNrX3BhcnRpYWxf YWdncmVnYXRlX3N1cHBvcnQgc2hvbGQgYmUgJ3RydWUnIGJ5IGRlZmF1bHQuDQoNCj4gSSdtIG5v dCBzdXJlIHdoYXQgdG8gZG8gd2l0aCBjdXJyZW50IGdyYW1tYXIgLSBpdCBwcmVjbHVkZXMgcGFy dGlhbA0KPiBkaXN0aW5jdCBhZ2dyZWdhdGVzLiBJIHVuZGVyc3RhbmQgdGhhdCBpdCdzIGN1cnJl bnRseSBpbXBvc3NpYmxlIHRvIGhhdmUNCj4gcGFydGlhbCBhZ2dyZWdhdGlvbiBmb3IgZGlzdGlu Y3QgYWdyZWdhdGVzIC1idXQgZG9lcyBpdCB3b3J0aCB0byBoYXZlDQo+IHN1Y2ggcmVzdHJpY3Rp b24gYXQgZ3JhbW1hciBsZXZlbD8NCklmIHBhcnRpYWwgYWdncmVnYXRpb24gZm9yIGRpc3RpbmN0 IGFncmVnYXRlcyBiZWNvbWVzIHBvc3NpYmxlIGluIHRoZSBmdXR1cmUsDQpJIHNlZSBubyBwcm9i bGVtIHdpdGggdGhlIHBvbGljeSBvZiBhY2NlcHRpbmcgbmV3IFNRTCBrZXl3b3JkcywNCnN1Y2gg YXMgIlBBUlRJTF9BR0dSRUdBVEUgRElTVElOQ1QiLg0KDQpTaW5jZXJlbHkgeW91cnMsDQpZdXVr aSBGdWppaQ0KDQotLQ0KWXV1a2kgRnVqaWkNCkluZm9ybWF0aW9uIFRlY2hub2xvZ3kgUiZEIENl bnRlciBNaXRzdWJpc2hpIEVsZWN0cmljIENvcnBvcmF0aW9uDQo= --_002_TYAPR01MB30884F8E4D94038CD661FFEF95F02TYAPR01MB3088jpnp_ Content-Type: application/octet-stream; name="0001-Partial-aggregates-push-down-SQL-keyword-v5.patch" Content-Description: 0001-Partial-aggregates-push-down-SQL-keyword-v5.patch Content-Disposition: attachment; filename="0001-Partial-aggregates-push-down-SQL-keyword-v5.patch"; size=151484; creation-date="Mon, 27 May 2024 21:30:58 GMT"; modification-date="Mon, 27 May 2024 21:30:58 GMT" Content-Transfer-Encoding: base64 RnJvbSAyODNlMmNlMTJkYmFlZWQ0NGM2NzVmNmU3NzZhYTc3YzYyMDYyYTdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBZdWtpIEZ1amlpIDxGdWppaS5ZdWtpQGRmLk1pdHN1YmlzaGlF bGVjdHJpYy5jby5qcD4KRGF0ZTogVHVlLCAyOCBNYXkgMjAyNCAwNjoyNzowMiArMDkwMApTdWJq ZWN0OiBbUEFUQ0hdIFBhcnRpYWwgYWdncmVnYXRlcyBwdXNoIGRvd24gU1FMIGtleXdvcmQgdjUK Ci0tLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5jICAgICAgICAgICAgICAgIHwgIDg1 ICsrLQogLi4uL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0ICAgIHwgNzE0 ICsrKysrKysrKysrKysrKystLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMgICAgICAg ICAgICAgICAgIHwgICA0ICstCiBjb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYyAg ICAgICAgICAgfCAgNDEgKy0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5oICAg ICAgICAgICB8ICAxMCArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNx bCAgICAgfCAxNjcgKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jICAgICAgICAg ICAgICAgIHwgIDYwICstCiBzcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyAgICAgICAgICAg ICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAg ICAgIHwgMTMzICsrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyAgICAg ICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwYWdnLmMgICAgICAg ICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAg IHwgIDI5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAg fCAgMjQgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jbGF1c2UuYyAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCAg IDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAy NCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgICAz ICstCiBzcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmggICAgICAgICAgICAgICAgfCAgIDkg Kwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNSArCiBz cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9hZ2cuaCAgICAgICAgICAgICAgICB8ICAgMiArLQogMjMgZmls ZXMgY2hhbmdlZCwgMTE5OSBpbnNlcnRpb25zKCspLCAxMjMgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZGVwYXJzZS5jIGIvY29udHJpYi9wb3N0Z3Jlc19m ZHcvZGVwYXJzZS5jCmluZGV4IDA5ZmQ0ODlhOTAuLmRkYzkyZjc4MjUgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2RlcGFyc2UuYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9k ZXBhcnNlLmMKQEAgLTIwMiw3ICsyMDIsNyBAQCBzdGF0aWMgYm9vbCBpc19zdWJxdWVyeV92YXIo VmFyICpub2RlLCBSZWxPcHRJbmZvICpmb3JlaWducmVsLAogCQkJCQkJCWludCAqcmVsbm8sIGlu dCAqY29sbm8pOwogc3RhdGljIHZvaWQgZ2V0X3JlbGF0aW9uX2NvbHVtbl9hbGlhc19pZHMoVmFy ICpub2RlLCBSZWxPcHRJbmZvICpmb3JlaWducmVsLAogCQkJCQkJCQkJCSAgaW50ICpyZWxubywg aW50ICpjb2xubyk7Ci0KK3N0YXRpYyBib29sIHBhcnRpYWxfYWdnX29rKEFnZ3JlZiAqYWdnLCBQ Z0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvKTsKIAogLyoKICAqIEV4YW1pbmUgZWFjaCBxdWFsIGNs YXVzZSBpbiBpbnB1dF9jb25kcywgYW5kIGNsYXNzaWZ5IHRoZW0gaW50byB0d28gZ3JvdXBzLApA QCAtOTA3LDggKzkwNyw5IEBAIGZvcmVpZ25fZXhwcl93YWxrZXIoTm9kZSAqbm9kZSwKIAkJCQlp ZiAoIUlTX1VQUEVSX1JFTChnbG9iX2N4dC0+Zm9yZWlnbnJlbCkpCiAJCQkJCXJldHVybiBmYWxz ZTsKIAotCQkJCS8qIE9ubHkgbm9uLXNwbGl0IGFnZ3JlZ2F0ZXMgYXJlIHB1c2hhYmxlLiAqLwot CQkJCWlmIChhZ2ctPmFnZ3NwbGl0ICE9IEFHR1NQTElUX1NJTVBMRSkKKwkJCQlpZiAoYWdnLT5h Z2dzcGxpdCAhPSBBR0dTUExJVF9TSU1QTEUgJiYgYWdnLT5hZ2dzcGxpdCAhPSBBR0dTUExJVF9J TklUSUFMX1NFUklBTCkKKwkJCQkJcmV0dXJuIGZhbHNlOworCQkJCWlmIChhZ2ctPmFnZ3NwbGl0 ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMICYmICFwYXJ0aWFsX2FnZ19vayhhZ2csIGZwaW5m bykpCiAJCQkJCXJldHVybiBmYWxzZTsKIAogCQkJCS8qIEFzIHVzdWFsLCBpdCBtdXN0IGJlIHNo aXBwYWJsZS4gKi8KQEAgLTM1MTcsMTggKzM1MTgsMzUgQEAgZGVwYXJzZUFnZ3JlZihBZ2dyZWYg Km5vZGUsIGRlcGFyc2VfZXhwcl9jeHQgKmNvbnRleHQpCiAJU3RyaW5nSW5mbwlidWYgPSBjb250 ZXh0LT5idWY7CiAJYm9vbAkJdXNlX3ZhcmlhZGljOwogCi0JLyogT25seSBiYXNpYywgbm9uLXNw bGl0IGFnZ3JlZ2F0aW9uIGFjY2VwdGVkLiAqLwotCUFzc2VydChub2RlLT5hZ2dzcGxpdCA9PSBB R0dTUExJVF9TSU1QTEUpOworCisJQXNzZXJ0KChub2RlLT5hZ2dzcGxpdCA9PSBBR0dTUExJVF9T SU1QTEUpIHx8CisJCSAgIChub2RlLT5hZ2dzcGxpdCA9PSBBR0dTUExJVF9JTklUSUFMX1NFUklB TCkpOwogCiAJLyogQ2hlY2sgaWYgbmVlZCB0byBwcmludCBWQVJJQURJQyAoY2YuIHJ1bGV1dGls cy5jKSAqLwogCXVzZV92YXJpYWRpYyA9IG5vZGUtPmFnZ3ZhcmlhZGljOwogCiAJLyogRmluZCBh Z2dyZWdhdGUgbmFtZSBmcm9tIGFnZ2Zub2lkIHdoaWNoIGlzIGEgcGdfcHJvYyBlbnRyeSAqLwog CWFwcGVuZEZ1bmN0aW9uTmFtZShub2RlLT5hZ2dmbm9pZCwgY29udGV4dCk7CisKIAlhcHBlbmRT dHJpbmdJbmZvQ2hhcihidWYsICcoJyk7CiAKLQkvKiBBZGQgRElTVElOQ1QgKi8KLQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKGJ1ZiwgKG5vZGUtPmFnZ2Rpc3RpbmN0ICE9IE5JTCkgPyAiRElTVElO Q1QgIiA6ICIiKTsKKwkvKiBBZGQgRElTVElOQ1Qgb3IgUEFSVElBTF9BR0dSRUdBVEUgKi8KKwlp ZiAobm9kZS0+YWdnZGlzdGluY3QgIT0gTklMKSB7CisJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCAiRElTVElOQ1QgIik7CisJfSBlbHNlIGlmIChub2RlLT5hZ2dzcGxpdCA9PSBBR0dTUExJ VF9JTklUSUFMX1NFUklBTCkgeworCQlIZWFwVHVwbGUJYWdndHVwOworCQlGb3JtX3BnX2FnZ3Jl Z2F0ZSBhZ2dmb3JtOworCisJCWFnZ3R1cCA9IFNlYXJjaFN5c0NhY2hlMShBR0dGTk9JRCwgT2Jq ZWN0SWRHZXREYXR1bShub2RlLT5hZ2dmbm9pZCkpOworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQo YWdndHVwKSkKKwkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBhZ2dyZWdh dGUgJXUiLCBub2RlLT5hZ2dmbm9pZCk7CisJCWFnZ2Zvcm0gPSAoRm9ybV9wZ19hZ2dyZWdhdGUp IEdFVFNUUlVDVChhZ2d0dXApOworCisJCWlmICgoYWdnZm9ybS0+YWdndHJhbnN0eXBlID09IElO VEVSTkFMT0lEKSB8fCBPaWRJc1ZhbGlkKGFnZ2Zvcm0tPmFnZ2ZpbmFsZm4pKQorCQkJYXBwZW5k U3RyaW5nSW5mb1N0cmluZyhidWYsICJQQVJUSUFMX0FHR1JFR0FURSAiKTsKKworCQlSZWxlYXNl U3lzQ2FjaGUoYWdndHVwKTsKKwl9CiAKIAlpZiAoQUdHS0lORF9JU19PUkRFUkVEX1NFVChub2Rl LT5hZ2draW5kKSkKIAl7CkBAIC0zNzIzLDkgKzM3NDEsMTAgQEAgYXBwZW5kR3JvdXBCeUNsYXVz ZShMaXN0ICp0bGlzdCwgZGVwYXJzZV9leHByX2N4dCAqY29udGV4dCkKIAlRdWVyeQkgICAqcXVl cnkgPSBjb250ZXh0LT5yb290LT5wYXJzZTsKIAlMaXN0Q2VsbCAgICpsYzsKIAlib29sCQlmaXJz dCA9IHRydWU7CisJUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbyA9IChQZ0Zkd1JlbGF0aW9uSW5m byAqKSBjb250ZXh0LT5mb3JlaWducmVsLT5mZHdfcHJpdmF0ZTsKIAogCS8qIE5vdGhpbmcgdG8g YmUgZG9uZSwgaWYgdGhlcmUncyBubyBHUk9VUCBCWSBjbGF1c2UgaW4gdGhlIHF1ZXJ5LiAqLwot CWlmICghcXVlcnktPmdyb3VwQ2xhdXNlKQorCWlmICghZnBpbmZvLT5ncm91cF9jbGF1c2UpCiAJ CXJldHVybjsKIAogCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIEdST1VQIEJZICIpOwpA QCAtMzc0Myw3ICszNzYyLDcgQEAgYXBwZW5kR3JvdXBCeUNsYXVzZShMaXN0ICp0bGlzdCwgZGVw YXJzZV9leHByX2N4dCAqY29udGV4dCkKIAkgKiB0byBlbXB0eSwgYW5kIGluIGFueSBjYXNlIHRo ZSByZWR1bmRhbmN5IHNpdHVhdGlvbiBvbiB0aGUgcmVtb3RlIG1pZ2h0CiAJICogYmUgZGlmZmVy ZW50IHRoYW4gd2hhdCB3ZSB0aGluayBoZXJlLgogCSAqLwotCWZvcmVhY2gobGMsIHF1ZXJ5LT5n cm91cENsYXVzZSkKKwlmb3JlYWNoKGxjLCBmcGluZm8tPmdyb3VwX2NsYXVzZSkKIAl7CiAJCVNv cnRHcm91cENsYXVzZSAqZ3JwID0gKFNvcnRHcm91cENsYXVzZSAqKSBsZmlyc3QobGMpOwogCkBA IC00MDQ3LDMgKzQwNjYsNTEgQEAgZ2V0X3JlbGF0aW9uX2NvbHVtbl9hbGlhc19pZHMoVmFyICpu b2RlLCBSZWxPcHRJbmZvICpmb3JlaWducmVsLAogCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwog CWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGV4cHJlc3Npb24gaW4gc3VicXVlcnkgb3V0cHV0Iik7 CiB9CisKKy8qCisgKiAtLS0tLS0tLS0tCisgKiBDaGVjayB0aGF0IHBhcnRpYWwgYWdncmVnYXRl ICJhZ2ciIGlzIHNhZmUgdG8gcHVzaCBkb3duLgorICoKKyAqIEl0IGlzIHB1c2hkb3duLXNhZmUg d2hlbiBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB0cnVlOgorICoKKyAqICAg ICogYWdnIGlzIGFuIEFHR0tJTkRfTk9STUFMIGFnZ3JlZ2F0ZSB3aGljaCBjb250YWlucyBubyBE SVNUSU5DVCBvcgorICogICAgT1JERVIgQlkgY2xhdXNlcworICogICAgKiByZW1vdGUgc2VydmVy IGNhbiByZXR1cm4gcGFydGlhbCBhZ2dyZWdhdGUgcmVzdWx0cworICogLS0tLS0tLS0tLQorICov CitzdGF0aWMgYm9vbAorcGFydGlhbF9hZ2dfb2soQWdncmVmICphZ2csIFBnRmR3UmVsYXRpb25J bmZvICpmcGluZm8pCit7CisJSGVhcFR1cGxlCWFnZ3R1cDsKKwlGb3JtX3BnX2FnZ3JlZ2F0ZSBh Z2dmb3JtOworCWJvb2wJCXBhcnRpYWxfYWdnX29rID0gdHJ1ZTsKKworCUFzc2VydChhZ2ctPmFn Z3NwbGl0ID09IEFHR1NQTElUX0lOSVRJQUxfU0VSSUFMKTsKKworCS8qIFdlIGRvbid0IHN1cHBv cnQgY29tcGxleCBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgKi8KKwlpZiAoYWdnLT5hZ2dkaXN0aW5jdCB8 fCBhZ2ctPmFnZ2tpbmQgIT0gQUdHS0lORF9OT1JNQUwgfHwgYWdnLT5hZ2dvcmRlciAhPSBOSUwp CisJCXJldHVybiBmYWxzZTsKKworCWFnZ3R1cCA9IFNlYXJjaFN5c0NhY2hlMShBR0dGTk9JRCwg T2JqZWN0SWRHZXREYXR1bShhZ2ctPmFnZ2Zub2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KGFnZ3R1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBhZ2dyZWdh dGUgJXUiLCBhZ2ctPmFnZ2Zub2lkKTsKKwlhZ2dmb3JtID0gKEZvcm1fcGdfYWdncmVnYXRlKSBH RVRTVFJVQ1QoYWdndHVwKTsKKworCWlmICgoT2lkSXNWYWxpZChhZ2dmb3JtLT5hZ2dmaW5hbGZu KSB8fAorCQkoYWdnZm9ybS0+YWdndHJhbnN0eXBlID09IElOVEVSTkFMT0lEKSkgJiYKKwkJZnBp bmZvLT5jaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0KQorCXsKKwkJaWYgKGZwaW5mby0+ cmVtb3RldmVyc2lvbiA9PSAwKQorCQl7CisJCQlQR2Nvbm4JICAgKmNvbm4gPSBHZXRDb25uZWN0 aW9uKGZwaW5mby0+dXNlciwgZmFsc2UsIE5VTEwpOworCisJCQlmcGluZm8tPnJlbW90ZXZlcnNp b24gPSBQUXNlcnZlclZlcnNpb24oY29ubik7CisJCX0KKworCQlpZiAoZnBpbmZvLT5yZW1vdGV2 ZXJzaW9uICE9IFBHX1ZFUlNJT05fTlVNKQorCQkJcGFydGlhbF9hZ2dfb2sgPSBmYWxzZTsKKwl9 CisKKwlSZWxlYXNlU3lzQ2FjaGUoYWdndHVwKTsKKwlyZXR1cm4gcGFydGlhbF9hZ2dfb2s7Cit9 CmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcu b3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dAppbmRl eCA2NGJjYzY2YjhkLi42MWI2ZGFhNDUyIDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zk dy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4 cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTk3NTcsMzYgKzk3NTcsNTcgQEAgUkVTRVQgZW5h YmxlX3BhcnRpdGlvbndpc2Vfam9pbjsKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgcGFydGl0aW9u d2lzZSBhZ2dyZWdhdGVzCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci1DUkVBVEUgVEFCTEUgcGFnZ190YWIgKGEg aW50LCBiIGludCwgYyB0ZXh0KSBQQVJUSVRJT04gQlkgUkFOR0UoYSk7CitBTFRFUiBTRVJWRVIg bG9vcGJhY2sgT1BUSU9OUyAoQUREIGZkd190dXBsZV9jb3N0ICcwLjEnKTsKK0NSRUFURSBUWVBF IG1vb2QgQVMgZW51bSAoJ3NhZCcsICdvaycsICdoYXBweScpOworQUxURVIgRVhURU5TSU9OIHBv c3RncmVzX2ZkdyBBREQgVFlQRSBtb29kOworQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiIChhIGludCwg YiBpbnQsIGMgdGV4dCwgY19zZXJpYWwgaW50NCwKKwkJCQkJY19pbnQ0YXJyYXkgX2ludDQsIGNf aW50ZXJ2YWwgaW50ZXJ2YWwsCisJCQkJCWNfbW9uZXkgbW9uZXksIGNfMWMgdGV4dCwgY18xYiBi eXRlYSwKKwkJCQkJY19iaXQgYml0KDIpLCBjXzFvcjNpbnQyIGludDIsCisJCQkJCWNfMW9yM2lu dDQgaW50NCwgY18xb3IzaW50OCBpbnQ4LAorCQkJCQljX2Jvb2wgYm9vbCwgY19lbnVtIG1vb2Qs IGNfcGdfbHNuIHBnX2xzbiwKKwkJCQkJY190aWQgdGlkLCBjX2ludDRyYW5nZSBpbnQ0cmFuZ2Us CisJCQkJCWNfaW50NG11bHRpcmFuZ2UgaW50NG11bHRpcmFuZ2UsCisJCQkJCWNfdGltZSB0aW1l LCBjX3RpbWV0eiB0aW1ldHosCisJCQkJCWNfdGltZXN0YW1wIHRpbWVzdGFtcCwgY190aW1lc3Rh bXB0eiB0aW1lc3RhbXB0eiwKKwkJCQkJY194aWQ4IHhpZDgpCisJUEFSVElUSU9OIEJZIFJBTkdF KGEpOwogQ1JFQVRFIFRBQkxFIHBhZ2dfdGFiX3AxIChMSUtFIHBhZ2dfdGFiKTsKIENSRUFURSBU QUJMRSBwYWdnX3RhYl9wMiAoTElLRSBwYWdnX3RhYik7CiBDUkVBVEUgVEFCTEUgcGFnZ190YWJf cDMgKExJS0UgcGFnZ190YWIpOwotSU5TRVJUIElOVE8gcGFnZ190YWJfcDEgU0VMRUNUIGkgJSAz MCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7Ci1JTlNFUlQgSU5UTyBwYWdnX3RhYl9wMiBT RUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpIEZST00gZ2VuZXJh dGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAyMCBhbmQgKGkgJSAzMCkgPj0g MTA7Ci1JTlNFUlQgSU5UTyBwYWdnX3RhYl9wMyBTRUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2No YXIoaS8zMCwgJ0ZNMDAwMCcpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUg KGkgJSAzMCkgPCAzMCBhbmQgKGkgJSAzMCkgPj0gMjA7CitTRVQgVGltZVpvbmUgPSAnVVRDJzsK K0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AxIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihp LzMwLCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29u ZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgo aSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEIn MDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBl bmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChp ICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0 cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxz ZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8 ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwg aSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcg c2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRz Jyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycp OjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycp OjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3Nlcmllcygx LCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7CitJTlNFUlQgSU5UTyBwYWdnX3RhYl9wMiBT RUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpLCBpLCBhcnJheVso aSAlIDIpLCAwXSwgKChpICUgMikgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoaSAlIDIpOjpt b25leSwgKChpIC0gMSkgJSAxMCk6OnRleHQsICgoKGkgLSAxKSAlIDEwKTo6dGV4dCk6OmJ5dGVh LCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiBCJzAxJyBlbHNlIEInMTEnIGVuZCwgY2FzZSB3 aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAg dGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVu ZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gdHJ1ZSBlbHNlIGZhbHNlIGVuZCwgKGNhc2Ug d2hlbiAoaSAlIDIpID0gMCB0aGVuICdzYWQnIGVsc2UgJ2hhcHB5JyBlbmQpOjptb29kLCAoJzAv JyB8fCBpKTo6cGdfbHNuLCAoJygwLCcgfHwgaSB8fCAnKScpOjp0aWQsIGludDRyYW5nZSgwLCBp KSwgaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKDAsIGkpLCBpbnQ0cmFuZ2UoMTAwLCAxMDAgKyBp KSksICcwMDowMDowMCc6OnRpbWUgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcwMDow MDowMCc6OnRpbWV0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEn Ojp0aW1lc3RhbXAgKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6 dGltZXN0YW1wdHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICgoaSAlIDEwKTo6dGV4 dCk6OnhpZDggRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMzAwMCkgaSBXSEVSRSAoaSAlIDMwKSA8 IDIwIGFuZCAoaSAlIDMwKSA+PSAxMDsKK0lOU0VSVCBJTlRPIHBhZ2dfdGFiX3AzIFNFTEVDVCBp ICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAnRk0wMDAwJyksIGksIGFycmF5WyhpICUgMiks IDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAo KGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEpICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ug d2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVsc2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkg JSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEg ZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNl IHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVsc2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChp ICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFwcHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkp OjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0 bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGludDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAw OjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6 dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVz dGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3Rh bXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlk OCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMzAgYW5k IChpICUgMzApID49IDIwOwogLS0gQ3JlYXRlIGZvcmVpZ24gcGFydGl0aW9ucwogQ1JFQVRFIEZP UkVJR04gVEFCTEUgZnBhZ2dfdGFiX3AxIFBBUlRJVElPTiBPRiBwYWdnX3RhYiBGT1IgVkFMVUVT IEZST00gKDApIFRPICgxMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3Bh Z2dfdGFiX3AxJyk7CiBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmcGFnZ190YWJfcDIgUEFSVElUSU9O IE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCkgU0VSVkVSIGxvb3BiYWNr IE9QVElPTlMgKHRhYmxlX25hbWUgJ3BhZ2dfdGFiX3AyJyk7CiBDUkVBVEUgRk9SRUlHTiBUQUJM RSBmcGFnZ190YWJfcDMgUEFSVElUSU9OIE9GIHBhZ2dfdGFiIEZPUiBWQUxVRVMgRlJPTSAoMjAp IFRPICgzMCkgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKHRhYmxlX25hbWUgJ3BhZ2dfdGFiX3Az Jyk7CiBBTkFMWVpFIHBhZ2dfdGFiOworQU5BTFlaRSBwYWdnX3RhYl9wMTsKK0FOQUxZWkUgcGFn Z190YWJfcDI7CitBTkFMWVpFIHBhZ2dfdGFiX3AzOwogQU5BTFlaRSBmcGFnZ190YWJfcDE7CiBB TkFMWVpFIGZwYWdnX3RhYl9wMjsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AzOworU0VUIGV4dHJhX2Zs b2F0X2RpZ2l0cyA9IDA7CiAtLSBXaGVuIEdST1VQIEJZIGNsYXVzZSBtYXRjaGVzIHdpdGggUEFS VElUSU9OIEtFWS4KIC0tIFBsYW4gd2l0aCBwYXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMgaXMgZGlz YWJsZWQKIFNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9hZ2dyZWdhdGUgVE8gZmFsc2U7CiBFWFBM QUlOIChDT1NUUyBPRkYpCiBTRUxFQ1QgYSwgc3VtKGIpLCBtaW4oYiksIGNvdW50KCopIEZST00g cGFnZ190YWIgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwgMjIgT1JERVIgQlkgMTsKLSAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEdyb3VwQWdn cmVnYXRlCi0gICBHcm91cCBLZXk6IHBhZ2dfdGFiLmEKLSAgIEZpbHRlcjogKGF2ZyhwYWdnX3Rh Yi5iKSA8ICcyMic6Om51bWVyaWMpCi0gICAtPiAgQXBwZW5kCi0gICAgICAgICAtPiAgRm9yZWln biBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCi0gICAgICAgICAtPiAgRm9yZWlnbiBT Y2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCi0gICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu IG9uIGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCi0oNyByb3dzKQorICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAg U29ydCBLZXk6IHBhZ2dfdGFiLmEKKyAgIC0+ICBIYXNoQWdncmVnYXRlCisgICAgICAgICBHcm91 cCBLZXk6IHBhZ2dfdGFiLmEKKyAgICAgICAgIEZpbHRlcjogKGF2ZyhwYWdnX3RhYi5iKSA8ICcy Mic6Om51bWVyaWMpCisgICAgICAgICAtPiAgQXBwZW5kCisgICAgICAgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCisgICAgICAgICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMiBwYWdnX3RhYl8yCisgICAgICAgICAgICAgICAt PiAgRm9yZWlnbiBTY2FuIG9uIGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCisoOSByb3dzKQogCiAt LSBQbGFuIHdpdGggcGFydGl0aW9ud2lzZSBhZ2dyZWdhdGVzIGlzIGVuYWJsZWQKIFNFVCBlbmFi bGVfcGFydGl0aW9ud2lzZV9hZ2dyZWdhdGUgVE8gdHJ1ZTsKQEAgLTk4MTYsMzYgKzk4MzcsNjYg QEAgU0VMRUNUIGEsIHN1bShiKSwgbWluKGIpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQ IEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE8KICAyMSB8IDIxMDAgfCAgIDEgfCAgIDEwMAogKDYg cm93cykKIAorLS0gQ2hlY2sgcGFydGlhbCBhZ2dyZWdhdGUgb3ZlciBwYXJ0aXRpb25lZCB0YWJs ZQorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGF2ZyhQQVJUSUFMX0FHR1JF R0FURSBhKSwgYXZnKGEpIEZST00gcGFnZ190YWI7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRmluYWxpemUgQWdncmVnYXRlCisgICBPdXRwdXQ6 IGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBwYWdnX3RhYi5hKSwgYXZnKHBhZ2dfdGFiLmEpCisgICAt PiAgQXBwZW5kCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICBPdXRw dXQ6IChQQVJUSUFMIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBwYWdnX3RhYi5hKSksIChQQVJUSUFM IGF2ZyhwYWdnX3RhYi5hKSkKKyAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9u IChwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiKQorICAgICAgICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGEpIEZST00gcHVibGljLnBhZ2dfdGFiX3AxCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisg ICAgICAgICAgICAgICBPdXRwdXQ6IChQQVJUSUFMIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBwYWdn X3RhYl8xLmEpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzEuYSkpCisgICAgICAgICAgICAgICBS ZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQor ICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBh KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpIEZST00gcHVibGljLnBhZ2dfdGFiX3AyCisgICAg ICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICBPdXRwdXQ6IChQQVJUSUFMIGF2 ZyhQQVJUSUFMX0FHR1JFR0FURSBwYWdnX3RhYl8yLmEpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFi XzIuYSkpCisgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZw YWdnX3RhYl9wMyBwYWdnX3RhYl8yKQorICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNU IGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpIEZST00g cHVibGljLnBhZ2dfdGFiX3AzCisoMTUgcm93cykKKworU0VMRUNUIGF2ZyhQQVJUSUFMX0FHR1JF R0FURSBhKSwgYXZnKGEpIEZST00gcGFnZ190YWI7CisgICAgIGF2ZyAgICAgIHwgICAgICAgICBh dmcgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHszMDAw LDQzNTAwfSB8IDE0LjUwMDAwMDAwMDAwMDAwMDAKKygxIHJvdykKKwogLS0gQ2hlY2sgd2l0aCB3 aG9sZS1yb3cgcmVmZXJlbmNlCiAtLSBTaG91bGQgaGF2ZSBhbGwgdGhlIGNvbHVtbnMgaW4gdGhl IHRhcmdldCBsaXN0IGZvciB0aGUgZ2l2ZW4gcmVsYXRpb24KIEVYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKIFNFTEVDVCBhLCBjb3VudCh0MSkgRlJPTSBwYWdnX3RhYiB0MSBHUk9VUCBCWSBh IEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gTWVyZ2Ug QXBwZW5kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgT3V0cHV0OiB0MS5hLCAoY291bnQoKCh0MS4q KTo6cGFnZ190YWIpKSkKICAgIFNvcnQgS2V5OiB0MS5hCi0gICAtPiAgR3JvdXBBZ2dyZWdhdGUK LSAgICAgICAgIE91dHB1dDogdDEuYSwgY291bnQoKCh0MS4qKTo6cGFnZ190YWIpKQotICAgICAg ICAgR3JvdXAgS2V5OiB0MS5hCi0gICAgICAgICBGaWx0ZXI6IChhdmcodDEuYikgPCAnMjInOjpu dW1lcmljKQotICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3Ax IHQxCi0gICAgICAgICAgICAgICBPdXRwdXQ6IHQxLmEsIHQxLiosIHQxLmIKLSAgICAgICAgICAg ICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIE9S REVSIEJZIGEgQVNDIE5VTExTIExBU1QKLSAgIC0+ICBHcm91cEFnZ3JlZ2F0ZQotICAgICAgICAg T3V0cHV0OiB0MV8xLmEsIGNvdW50KCgodDFfMS4qKTo6cGFnZ190YWIpKQotICAgICAgICAgR3Jv dXAgS2V5OiB0MV8xLmEKLSAgICAgICAgIEZpbHRlcjogKGF2Zyh0MV8xLmIpIDwgJzIyJzo6bnVt ZXJpYykKLSAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMiB0 MV8xCi0gICAgICAgICAgICAgICBPdXRwdXQ6IHQxXzEuYSwgdDFfMS4qLCB0MV8xLmIKLSAgICAg ICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVibGljLnBhZ2dfdGFi X3AyIE9SREVSIEJZIGEgQVNDIE5VTExTIExBU1QKLSAgIC0+ICBHcm91cEFnZ3JlZ2F0ZQotICAg ICAgICAgT3V0cHV0OiB0MV8yLmEsIGNvdW50KCgodDFfMi4qKTo6cGFnZ190YWIpKQotICAgICAg ICAgR3JvdXAgS2V5OiB0MV8yLmEKLSAgICAgICAgIEZpbHRlcjogKGF2Zyh0MV8yLmIpIDwgJzIy Jzo6bnVtZXJpYykKLSAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVibGljLmZwYWdnX3Rh Yl9wMyB0MV8yCi0gICAgICAgICAgICAgICBPdXRwdXQ6IHQxXzIuYSwgdDFfMi4qLCB0MV8yLmIK LSAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVibGljLnBh Z2dfdGFiX3AzIE9SREVSIEJZIGEgQVNDIE5VTExTIExBU1QKLSgyMyByb3dzKQorICAgLT4gIEFw cGVuZAorICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgIE91dHB1dDog dDEuYSwgY291bnQoKCh0MS4qKTo6cGFnZ190YWIpKQorICAgICAgICAgICAgICAgR3JvdXAgS2V5 OiB0MS5hCisgICAgICAgICAgICAgICBGaWx0ZXI6IChhdmcodDEuYikgPCAnMjInOjpudW1lcmlj KQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3Ax IHQxCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHQxLmEsIHQxLiosIHQxLmIKKyAgICAg ICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjLCBjX3NlcmlhbCwgY19p bnQ0YXJyYXksIGNfaW50ZXJ2YWwsIGNfbW9uZXksIGNfMWMsIGNfMWIsIGNfYml0LCBjXzFvcjNp bnQyLCBjXzFvcjNpbnQ0LCBjXzFvcjNpbnQ4LCBjX2Jvb2wsIGNfZW51bSwgY19wZ19sc24sIGNf dGlkLCBjX2ludDRyYW5nZSwgY19pbnQ0bXVsdGlyYW5nZSwgY190aW1lLCBjX3RpbWV0eiwgY190 aW1lc3RhbXAsIGNfdGltZXN0YW1wdHosIGNfeGlkOCBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMQor ICAgICAgICAgLT4gIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgICAgICAgIE91dHB1dDogdDFfMS5h LCBjb3VudCgoKHQxXzEuKik6OnBhZ2dfdGFiKSkKKyAgICAgICAgICAgICAgIEdyb3VwIEtleTog dDFfMS5hCisgICAgICAgICAgICAgICBGaWx0ZXI6IChhdmcodDFfMS5iKSA8ICcyMic6Om51bWVy aWMpCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJf cDIgdDFfMQorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiB0MV8xLmEsIHQxXzEuKiwgdDFf MS5iCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYywgY19z ZXJpYWwsIGNfaW50NGFycmF5LCBjX2ludGVydmFsLCBjX21vbmV5LCBjXzFjLCBjXzFiLCBjX2Jp dCwgY18xb3IzaW50MiwgY18xb3IzaW50NCwgY18xb3IzaW50OCwgY19ib29sLCBjX2VudW0sIGNf cGdfbHNuLCBjX3RpZCwgY19pbnQ0cmFuZ2UsIGNfaW50NG11bHRpcmFuZ2UsIGNfdGltZSwgY190 aW1ldHosIGNfdGltZXN0YW1wLCBjX3RpbWVzdGFtcHR6LCBjX3hpZDggRlJPTSBwdWJsaWMucGFn Z190YWJfcDIKKyAgICAgICAgIC0+ICBIYXNoQWdncmVnYXRlCisgICAgICAgICAgICAgICBPdXRw dXQ6IHQxXzIuYSwgY291bnQoKCh0MV8yLiopOjpwYWdnX3RhYikpCisgICAgICAgICAgICAgICBH cm91cCBLZXk6IHQxXzIuYQorICAgICAgICAgICAgICAgRmlsdGVyOiAoYXZnKHQxXzIuYikgPCAn MjInOjpudW1lcmljKQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu ZnBhZ2dfdGFiX3AzIHQxXzIKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogdDFfMi5hLCB0 MV8yLiosIHQxXzIuYgorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEs IGIsIGMsIGNfc2VyaWFsLCBjX2ludDRhcnJheSwgY19pbnRlcnZhbCwgY19tb25leSwgY18xYywg Y18xYiwgY19iaXQsIGNfMW9yM2ludDIsIGNfMW9yM2ludDQsIGNfMW9yM2ludDgsIGNfYm9vbCwg Y19lbnVtLCBjX3BnX2xzbiwgY190aWQsIGNfaW50NHJhbmdlLCBjX2ludDRtdWx0aXJhbmdlLCBj X3RpbWUsIGNfdGltZXR6LCBjX3RpbWVzdGFtcCwgY190aW1lc3RhbXB0eiwgY194aWQ4IEZST00g cHVibGljLnBhZ2dfdGFiX3AzCisoMjUgcm93cykKIAogU0VMRUNUIGEsIGNvdW50KHQxKSBGUk9N IHBhZ2dfdGFiIHQxIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9SREVSIEJZIDE7CiAg YSAgfCBjb3VudCAKQEAgLTk4NTgsMjcgKzk5MDksNTc4IEBAIFNFTEVDVCBhLCBjb3VudCh0MSkg RlJPTSBwYWdnX3RhYiB0MSBHUk9VUCBCWSBhIEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAx OwogIDIxIHwgICAxMDAKICg2IHJvd3MpCiAKLS0tIFdoZW4gR1JPVVAgQlkgY2xhdXNlIGRvZXMg bm90IG1hdGNoIHdpdGggUEFSVElUSU9OIEtFWS4KLUVYUExBSU4gKENPU1RTIE9GRikKKy0tIFBh cnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNoIGRvd24gd2hlbiB0aGVyZSBpcyBhIEhB VklORyBjbGF1c2UKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKIFNFTEVDVCBiLCBhdmco YSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIEhBVklORyBzdW0o YSkgPCA3MDAgT1JERVIgQlkgMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIEZpbmFsaXplIEdyb3VwQWdncmVnYXRlCi0g ICBHcm91cCBLZXk6IHBhZ2dfdGFiLmIKLSAgIEZpbHRlcjogKHN1bShwYWdnX3RhYi5hKSA8IDcw MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFNvcnQKKyAgIE91dHB1dDogcGFnZ190YWIuYiwgKGF2Zyhw YWdnX3RhYi5hKSksIChtYXgocGFnZ190YWIuYSkpLCAoY291bnQoKikpCisgICBTb3J0IEtleTog cGFnZ190YWIuYgorICAgLT4gIEZpbmFsaXplIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgIE91dHB1 dDogcGFnZ190YWIuYiwgYXZnKHBhZ2dfdGFiLmEpLCBtYXgocGFnZ190YWIuYSksIGNvdW50KCop CisgICAgICAgICBHcm91cCBLZXk6IHBhZ2dfdGFiLmIKKyAgICAgICAgIEZpbHRlcjogKHN1bShw YWdnX3RhYi5hKSA8IDcwMCkKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAgICAgIC0+ ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWIuYiwg KFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmEpKSwgKFBB UlRJQUwgY291bnQoKikpLCAoUEFSVElBTCBzdW0ocGFnZ190YWIuYSkpCisgICAgICAgICAgICAg ICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMSBwYWdn X3RhYikKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFS VElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKiksIHN1bShhKSBGUk9NIHB1YmxpYy5w YWdnX3RhYl9wMSBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisg ICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzEuYiwgKFBBUlRJQUwgYXZnKHBh Z2dfdGFiXzEuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5hKSksIChQQVJUSUFMIGNvdW50 KCopKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFiXzEuYSkpCisgICAgICAgICAgICAgICAgICAgICBS ZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQor ICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJUSUFMX0FH R1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSwgc3VtKGEpIEZST00gcHVibGljLnBhZ2dfdGFi X3AyIEdST1VQIEJZIDEKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAg ICAgICAgICAgICAgIE91dHB1dDogcGFnZ190YWJfMi5iLCAoUEFSVElBTCBhdmcocGFnZ190YWJf Mi5hKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmEpKSwgKFBBUlRJQUwgY291bnQoKikpLCAo UEFSVElBTCBzdW0ocGFnZ190YWJfMi5hKSkKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9u czogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzIpCisgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IGEpLCBtYXgoYSksIGNvdW50KCopLCBzdW0oYSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgR1JP VVAgQlkgMQorKDIwIHJvd3MpCisKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikg RlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIEhBVklORyBzdW0oYSkgPCA3MDAgT1JERVIgQlkgMTsK KyBiICB8ICAgICAgICAgYXZnICAgICAgICAgfCBtYXggfCBjb3VudCAKKy0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0KKyAgMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAg MjAgfCAgICA2MAorICAxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMTAg fCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAxMSB8IDExLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjEgfCAgICA2MAorIDIwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAg IDYwCisgMjEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAzMCB8IDEwLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDMxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyMSB8ICAgIDYwCisgNDAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyA0 MSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorKDEwIHJvd3MpCisKKy0tIFBh cnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNoIGRvd24gd2l0aG91dCBoYXZpbmcgY2xh dXNlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgo YSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFNvcnQKKyAgIE91dHB1dDogcGFnZ190YWIuYiwgKGF2ZyhwYWdnX3RhYi5h KSksIChtYXgocGFnZ190YWIuYSkpLCAoY291bnQoKikpCisgICBTb3J0IEtleTogcGFnZ190YWIu YgorICAgLT4gIEZpbmFsaXplIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAgIE91dHB1dDogcGFnZ190 YWIuYiwgYXZnKHBhZ2dfdGFiLmEpLCBtYXgocGFnZ190YWIuYSksIGNvdW50KCopCisgICAgICAg ICBHcm91cCBLZXk6IHBhZ2dfdGFiLmIKKyAgICAgICAgIC0+ICBBcHBlbmQKKyAgICAgICAgICAg ICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogcGFnZ190 YWIuYiwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmEp KSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICAgICAgICAgICAgICBSZWxhdGlvbnM6IEFn Z3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMSBwYWdnX3RhYikKKyAgICAgICAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1h eChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFnZ190YWJfcDEgR1JPVVAgQlkgMQorICAgICAg ICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBw YWdnX3RhYl8xLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgbWF4KHBh Z2dfdGFiXzEuYSkpLCAoUEFSVElBTCBjb3VudCgqKSkKKyAgICAgICAgICAgICAgICAgICAgIFJl bGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AyIHBhZ2dfdGFiXzEpCisg ICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdH UkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AyIEdST1VQ IEJZIDEKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogcGFnZ190YWJfMi5iLCAoUEFSVElBTCBhdmcocGFnZ190YWJfMi5hKSksIChQ QVJUSUFMIG1heChwYWdnX3RhYl8yLmEpKSwgKFBBUlRJQUwgY291bnQoKikpCisgICAgICAgICAg ICAgICAgICAgICBSZWxhdGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMyBw YWdnX3RhYl8yKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIsIGF2 ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdn X3RhYl9wMyBHUk9VUCBCWSAxCisoMTkgcm93cykKKworU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEp LCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKKyBiICB8ICAg ICAgICAgYXZnICAgICAgICAgfCBtYXggfCBjb3VudCAKKy0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tKy0tLS0tLS0KKyAgMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2 MAorICAxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgIDIgfCAxMi4wMDAw MDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAgMyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAg MjMgfCAgICA2MAorICA0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgIDUg fCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAgNiB8IDE2LjAwMDAwMDAwMDAw MDAwMDAgfCAgMjYgfCAgICA2MAorICA3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAg IDYwCisgIDggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyAgOSB8IDE5LjAw MDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDEwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyMCB8ICAgIDYwCisgMTEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAx MiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAorIDEzIHwgMTMuMDAwMDAwMDAw MDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMTQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwg ICAgNjAKKyAxNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAorIDE2IHwgMTYu MDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMTcgfCAxNy4wMDAwMDAwMDAwMDAwMDAw IHwgIDI3IHwgICAgNjAKKyAxOCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAor IDE5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgMjAgfCAxMC4wMDAwMDAw MDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAyMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEg fCAgICA2MAorIDIyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgMjMgfCAx My4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAyNCB8IDE0LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjQgfCAgICA2MAorIDI1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYw CisgMjYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyAyNyB8IDE3LjAwMDAw MDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDI4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAy OCB8ICAgIDYwCisgMjkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAzMCB8 IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAorIDMxIHwgMTEuMDAwMDAwMDAwMDAw MDAwMCB8ICAyMSB8ICAgIDYwCisgMzIgfCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAg NjAKKyAzMyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMgfCAgICA2MAorIDM0IHwgMTQuMDAw MDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgMzUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwg IDI1IHwgICAgNjAKKyAzNiB8IDE2LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDM3 IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYwCisgMzggfCAxOC4wMDAwMDAwMDAw MDAwMDAwIHwgIDI4IHwgICAgNjAKKyAzOSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAg ICA2MAorIDQwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgNDEgfCAxMS4w MDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyA0MiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAg fCAgMjIgfCAgICA2MAorIDQzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisg NDQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyA0NSB8IDE1LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjUgfCAgICA2MAorIDQ2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8 ICAgIDYwCisgNDcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyA0OCB8IDE4 LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorIDQ5IHwgMTkuMDAwMDAwMDAwMDAwMDAw MCB8ICAyOSB8ICAgIDYwCisoNTAgcm93cykKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVzIGFyZSBz YWZlIHRvIHB1c2ggZG93biBldmVuIGlmIHdlIG5lZWQgYm90aCB2YXJpYWJsZSBhbmQgdmFyaWFi bGUtYmFzZWQgZXhwcmVzc2lvbgorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNU IGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSwgKGIvMik6Om51bWVyaWMgRlJPTSBwYWdnX3RhYiBH Uk9VUCBCWSBiLzIgT1JERVIgQlkgNDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTb3J0CisgICBPdXRwdXQ6IChhdmcocGFnZ190 YWIuYSkpLCAobWF4KHBhZ2dfdGFiLmEpKSwgKGNvdW50KCopKSwgKCgoKHBhZ2dfdGFiLmIgLyAy KSkpOjpudW1lcmljKSwgKChwYWdnX3RhYi5iIC8gMikpCisgICBTb3J0IEtleTogKCgoKHBhZ2df dGFiLmIgLyAyKSkpOjpudW1lcmljKQorICAgLT4gIEZpbmFsaXplIEhhc2hBZ2dyZWdhdGUKKyAg ICAgICAgIE91dHB1dDogYXZnKHBhZ2dfdGFiLmEpLCBtYXgocGFnZ190YWIuYSksIGNvdW50KCop LCAoKChwYWdnX3RhYi5iIC8gMikpKTo6bnVtZXJpYywgKChwYWdnX3RhYi5iIC8gMikpCisgICAg ICAgICBHcm91cCBLZXk6ICgocGFnZ190YWIuYiAvIDIpKQorICAgICAgICAgLT4gIEFwcGVuZAor ICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiAoKHBhZ2dfdGFiLmIgLyAyKSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYi5hKSksIChQQVJU SUFMIG1heChwYWdnX3RhYi5hKSksIChQQVJUSUFMIGNvdW50KCopKSwgcGFnZ190YWIuYgorICAg ICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190 YWJfcDEgcGFnZ190YWIpCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1Qg KGIgLyAyKSwgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZS T00gcHVibGljLnBhZ2dfdGFiX3AxIEdST1VQIEJZIDEsIDIKKyAgICAgICAgICAgICAgIC0+ICBG b3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogKChwYWdnX3RhYl8xLmIg LyAyKSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8xLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFi XzEuYSkpLCAoUEFSVElBTCBjb3VudCgqKSksIHBhZ2dfdGFiXzEuYgorICAgICAgICAgICAgICAg ICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190 YWJfMSkKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAoYiAvIDIpLCBi LCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMu cGFnZ190YWJfcDIgR1JPVVAgQlkgMSwgMgorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh bgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiAoKHBhZ2dfdGFiXzIuYiAvIDIpKSwgKFBB UlRJQUwgYXZnKHBhZ2dfdGFiXzIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5hKSksIChQ QVJUSUFMIGNvdW50KCopKSwgcGFnZ190YWJfMi5iCisgICAgICAgICAgICAgICAgICAgICBSZWxh dGlvbnM6IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMyBwYWdnX3RhYl8yKQorICAg ICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIChiIC8gMiksIGIsIGF2ZyhQQVJU SUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9w MyBHUk9VUCBCWSAxLCAyCisoMTkgcm93cykKKworU0VMRUNUIGF2ZyhhKSwgbWF4KGEpLCBjb3Vu dCgqKSwgKGIvMik6Om51bWVyaWMgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiLzIgT1JERVIgQlkg NDsKKyAgICAgICAgIGF2ZyAgICAgICAgIHwgbWF4IHwgY291bnQgfCBudW1lcmljIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tCisgMTAuNTAwMDAwMDAwMDAw MDAwMCB8ICAyMSB8ICAgMTIwIHwgICAgICAgMAorIDEyLjUwMDAwMDAwMDAwMDAwMDAgfCAgMjMg fCAgIDEyMCB8ICAgICAgIDEKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAxMjAgfCAg ICAgICAyCisgMTYuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIwIHwgICAgICAgMworIDE4 LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgIDQKKyAxMC41MDAwMDAwMDAw MDAwMDAwIHwgIDIxIHwgICAxMjAgfCAgICAgICA1CisgMTIuNTAwMDAwMDAwMDAwMDAwMCB8ICAy MyB8ICAgMTIwIHwgICAgICAgNgorIDE0LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgIDEyMCB8 ICAgICAgIDcKKyAxNi41MDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAxMjAgfCAgICAgICA4Cisg MTguNTAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgMTIwIHwgICAgICAgOQorIDEwLjUwMDAwMDAw MDAwMDAwMDAgfCAgMjEgfCAgIDEyMCB8ICAgICAgMTAKKyAxMi41MDAwMDAwMDAwMDAwMDAwIHwg IDIzIHwgICAxMjAgfCAgICAgIDExCisgMTQuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgMTIw IHwgICAgICAxMgorIDE2LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgIDEyMCB8ICAgICAgMTMK KyAxOC41MDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAxMjAgfCAgICAgIDE0CisgMTAuNTAwMDAw MDAwMDAwMDAwMCB8ICAyMSB8ICAgMTIwIHwgICAgICAxNQorIDEyLjUwMDAwMDAwMDAwMDAwMDAg fCAgMjMgfCAgIDEyMCB8ICAgICAgMTYKKyAxNC41MDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAx MjAgfCAgICAgIDE3CisgMTYuNTAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgMTIwIHwgICAgICAx OAorIDE4LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgIDEyMCB8ICAgICAgMTkKKyAxMC41MDAw MDAwMDAwMDAwMDAwIHwgIDIxIHwgICAxMjAgfCAgICAgIDIwCisgMTIuNTAwMDAwMDAwMDAwMDAw MCB8ICAyMyB8ICAgMTIwIHwgICAgICAyMQorIDE0LjUwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAg IDEyMCB8ICAgICAgMjIKKyAxNi41MDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAxMjAgfCAgICAg IDIzCisgMTguNTAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgMTIwIHwgICAgICAyNAorKDI1IHJv d3MpCisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBwdXNoZG93biBiZWhhdmVzIHNhbmUgd2l0aCBu b24tc2hpcHBlZCBncm91cGluZyBlbGVtZW50cworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZG KQorU0VMRUNUIGF2ZyhhKSwgKGIvMik6Om51bWVyaWMsICd0ZXN0JyB0ZXN0IEZST00gcGFnZ190 YWIgR1JPVVAgQlkgMywgYi8yIE9SREVSIEJZIDEsIDIgTElNSVQgMTA7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgTGltaXQKKyAgIE91dHB1dDogKGF2ZyhwYWdnX3RhYi5hKSksICgoKChwYWdnX3RhYi5i IC8gMikpKTo6bnVtZXJpYyksICd0ZXN0Jzo6dGV4dCwgKChwYWdnX3RhYi5iIC8gMikpCisgICAt PiAgU29ydAorICAgICAgICAgT3V0cHV0OiAoYXZnKHBhZ2dfdGFiLmEpKSwgKCgoKHBhZ2dfdGFi LmIgLyAyKSkpOjpudW1lcmljKSwgJ3Rlc3QnOjp0ZXh0LCAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAg ICAgICAgIFNvcnQgS2V5OiAoYXZnKHBhZ2dfdGFiLmEpKSwgKCgoKHBhZ2dfdGFiLmIgLyAyKSkp OjpudW1lcmljKQorICAgICAgICAgLT4gIEZpbmFsaXplIEhhc2hBZ2dyZWdhdGUKKyAgICAgICAg ICAgICAgIE91dHB1dDogYXZnKHBhZ2dfdGFiLmEpLCAoKChwYWdnX3RhYi5iIC8gMikpKTo6bnVt ZXJpYywgJ3Rlc3QnOjp0ZXh0LCAoKHBhZ2dfdGFiLmIgLyAyKSkKKyAgICAgICAgICAgICAgIEdy b3VwIEtleTogKChwYWdnX3RhYi5iIC8gMikpCisgICAgICAgICAgICAgICAtPiAgQXBwZW5kCisg ICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6ICgocGFnZ190YWIuYiAvIDIpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFi LmEpKSwgcGFnZ190YWIuYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBB Z2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDEgcGFnZ190YWIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgKGIgLyAyKSwgYiwgYXZnKFBBUlRJQUxf QUdHUkVHQVRFIGEpIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIEdST1VQIEJZIDEsIDIKKyAgICAg ICAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIE91dHB1dDogKChwYWdnX3RhYl8xLmIgLyAyKSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8x LmEpKSwgcGFnZ190YWJfMS5iCisgICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGlvbnM6 IEFnZ3JlZ2F0ZSBvbiAocHVibGljLmZwYWdnX3RhYl9wMiBwYWdnX3RhYl8xKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIChiIC8gMiksIGIsIGF2ZyhQQVJU SUFMX0FHR1JFR0FURSBhKSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBHUk9VUCBCWSAxLCAyCisg ICAgICAgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAg ICAgICAgICBPdXRwdXQ6ICgocGFnZ190YWJfMi5iIC8gMikpLCAoUEFSVElBTCBhdmcocGFnZ190 YWJfMi5hKSksIHBhZ2dfdGFiXzIuYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRp b25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDMgcGFnZ190YWJfMikKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAoYiAvIDIpLCBiLCBhdmco UEFSVElBTF9BR0dSRUdBVEUgYSkgRlJPTSBwdWJsaWMucGFnZ190YWJfcDMgR1JPVVAgQlkgMSwg MgorKDIxIHJvd3MpCisKK1NFTEVDVCBhdmcoYSksIChiLzIpOjpudW1lcmljLCAndGVzdCcgdGVz dCBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIDMsIGIvMiBPUkRFUiBCWSAxLCAyIExJTUlUIDEwOwor ICAgICAgICAgYXZnICAgICAgICAgfCBudW1lcmljIHwgdGVzdCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tCisgMTAuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAgIDAgfCB0 ZXN0CisgMTAuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAgIDUgfCB0ZXN0CisgMTAuNTAwMDAwMDAw MDAwMDAwMCB8ICAgICAgMTAgfCB0ZXN0CisgMTAuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAgMTUg fCB0ZXN0CisgMTAuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAgMjAgfCB0ZXN0CisgMTIuNTAwMDAw MDAwMDAwMDAwMCB8ICAgICAgIDEgfCB0ZXN0CisgMTIuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAg IDYgfCB0ZXN0CisgMTIuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAgMTEgfCB0ZXN0CisgMTIuNTAw MDAwMDAwMDAwMDAwMCB8ICAgICAgMTYgfCB0ZXN0CisgMTIuNTAwMDAwMDAwMDAwMDAwMCB8ICAg ICAgMjEgfCB0ZXN0CisoMTAgcm93cykKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVzIGFyZSBzYWZl IHRvIHB1c2ggZG93biBmb3IgYWxsIGJ1aWx0LWluIGFnZ3JlZ2F0ZXMKK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikKK1NFTEVDVCAvKiBhZ2dyZWdhdGUgPD4gcGFydGlhbCBhZ2dyZWdhdGUg Ki8KKyAgICBhcnJheV9hZ2coY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coYiksCisgICAgYXZnKGI6 OmludDIpLCBhdmcoYjo6aW50NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLCBhdmco Yjo6ZmxvYXQ0KSwgYXZnKGI6OmZsb2F0OCksIGF2ZyhiOjpudW1lcmljKSwKKyAgICBjb3JyKGI6 OmZsb2F0OCwgKGIgKiBiKTo6ZmxvYXQ4KSwKKyAgICBjb3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAq IGIpOjpmbG9hdDgpLAorICAgIGNvdmFyX3NhbXAoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgp LAorICAgIHJlZ3JfYXZneCgoMiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9h dmd5KCgyICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX2ludGVyY2VwdCgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3JfcjIoKGIgKiBiKTo6ZmxvYXQ4 LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc2xvcGUoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6Zmxv YXQ4KSwKKyAgICByZWdyX3N4eCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAg IHJlZ3Jfc3h5KChiICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N5eSgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHN0ZGRldihiOjpmbG9hdDQpLCBzdGRk ZXYoYjo6ZmxvYXQ4KSwgc3RkZGV2KGI6OmludDIpLCBzdGRkZXYoYjo6aW50NCksIHN0ZGRldihi OjppbnQ4KSwgc3RkZGV2KGI6Om51bWVyaWMpLAorICAgIHN0ZGRldl9wb3AoYjo6ZmxvYXQ0KSwg c3RkZGV2X3BvcChiOjpmbG9hdDgpLCBzdGRkZXZfcG9wKGI6OmludDIpLCBzdGRkZXZfcG9wKGI6 OmludDQpLCBzdGRkZXZfcG9wKGI6OmludDgpLCBzdGRkZXZfcG9wKGI6Om51bWVyaWMpLAorICAg IHN0ZGRldl9zYW1wKGI6OmZsb2F0NCksIHN0ZGRldl9zYW1wKGI6OmZsb2F0OCksIHN0ZGRldl9z YW1wKGI6OmludDIpLCBzdGRkZXZfc2FtcChiOjppbnQ0KSwgc3RkZGV2X3NhbXAoYjo6aW50OCks IHN0ZGRldl9zYW1wKGI6Om51bWVyaWMpLAorICAgIHN0cmluZ19hZ2coY18xYywgJywnKSwgc3Ry aW5nX2FnZyhjXzFiLCAnLCcpLAorICAgIHN1bShiOjppbnQ4KSwgc3VtKGI6Om51bWVyaWMpLAor ICAgIHZhcmlhbmNlKGI6OmZsb2F0NCksIHZhcmlhbmNlKGI6OmZsb2F0OCksIHZhcmlhbmNlKGI6 OmludDIpLCB2YXJpYW5jZShiOjppbnQ0KSwgdmFyaWFuY2UoYjo6aW50OCksIHZhcmlhbmNlKGI6 Om51bWVyaWMpLAorICAgIHZhcl9wb3AoYjo6ZmxvYXQ0KSwgdmFyX3BvcChiOjpmbG9hdDgpLCB2 YXJfcG9wKGI6OmludDIpLCB2YXJfcG9wKGI6OmludDQpLCB2YXJfcG9wKGI6OmludDgpLCB2YXJf cG9wKGI6Om51bWVyaWMpLAorICAgIHZhcl9zYW1wKGI6OmZsb2F0NCksIHZhcl9zYW1wKGI6OmZs b2F0OCksIHZhcl9zYW1wKGI6OmludDIpLCB2YXJfc2FtcChiOjppbnQ0KSwgdmFyX3NhbXAoYjo6 aW50OCksIHZhcl9zYW1wKGI6Om51bWVyaWMpLAorICAgIC8qIGFnZ3JlZ2F0ZSA9IHBhcnRpYWwg YWdncmVnYXRlICovCisgICAgYW55X3ZhbHVlKGIgKiAwKSwKKyAgICBiaXRfYW5kKGNfYml0KSwg Yml0X2FuZChjXzFvcjNpbnQyKSwgYml0X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNp bnQ4KSwKKyAgICBiaXRfb3IoY19iaXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFv cjNpbnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLAorICAgIGJpdF94b3IoY19iaXQpLCBiaXRfeG9y KGNfMW9yM2ludDIpLCBiaXRfeG9yKGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLAor ICAgIGJvb2xfYW5kKGNfYm9vbCksCisgICAgYm9vbF9vcihjX2Jvb2wpLAorICAgIGNvdW50KGIp LCBjb3VudCgqKSwKKyAgICBldmVyeShjX2Jvb2wpLAorICAgIG1heChjX2ludDRhcnJheSksIG1h eChjX2VudW0pLCBtYXgoY18xYzo6Y2hhcigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBi KSwgbWF4KCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0 OCksIG1heChiOjppbnQyKSwgbWF4KGI6OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVy dmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19w Z19sc24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHop LCBtYXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorICAg IG1pbihjX2ludDRhcnJheSksIG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbign MjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6 ZmxvYXQ0KSwgbWluKGI6OmZsb2F0OCksIG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4o Yjo6aW50OCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyks IG1pbihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihj X3RpbWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0 eiksIG1pbihjX3hpZDgpLAorICAgIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCBy YW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50NG11bHRpcmFuZ2UpLAorICAgIHJlZ3JfY291bnQoKDIg KiBiICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICBzdW0oYjo6ZmxvYXQ0KSwgc3VtKGI6 OmZsb2F0OCksIHN1bShiOjppbnQyKSwgc3VtKGI6OmludDQpLAlzdW0oY19pbnRlcnZhbCksIHN1 bShjX21vbmV5KQorICBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQg MzA7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExB TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgRmluYWxpemUgQWdncmVnYXRlCisgICBP dXRwdXQ6IGFycmF5X2FnZyhwYWdnX3RhYi5jX2ludDRhcnJheSksIGFycmF5X2FnZyhwYWdnX3Rh Yi5iKSwgYXZnKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpLCBhdmcocGFnZ190YWIuYiksIGF2Zygo cGFnZ190YWIuYik6OmJpZ2ludCksIGF2ZyhwYWdnX3RhYi5jX2ludGVydmFsKSwgYXZnKChwYWdn X3RhYi5iKTo6cmVhbCksIGF2ZygocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCBhdmco KHBhZ2dfdGFiLmIpOjpudW1lcmljKSwgY29ycigocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNp b24sICgocGFnZ190YWIuYiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFy X3BvcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFnZ190YWIuYiAqIHBhZ2df dGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFyX3NhbXAoKHBhZ2dfdGFiLmIpOjpkb3Vi bGUgcHJlY2lzaW9uLCAoKHBhZ2dfdGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNp b24pLCByZWdyX2F2Z3goKCgyICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFn Z190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2F2Z3koKCgyICogcGFnZ190YWIuYikp Ojpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdy X2ludGVyY2VwdCgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChw YWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfcjIoKChwYWdnX3RhYi5iICogcGFn Z190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNp b24pLCByZWdyX3Nsb3BlKCgoKDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lv biwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zeHgoKCgoMiAqIHBhZ2df dGFiLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVj aXNpb24pLCByZWdyX3N4eSgoKHBhZ2dfdGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVj aXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3l5KCgoKDIgKiBw YWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUg cHJlY2lzaW9uKSwgc3RkZGV2KChwYWdnX3RhYi5iKTo6cmVhbCksIHN0ZGRldigocGFnZ190YWIu Yik6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIHN0 ZGRldihwYWdnX3RhYi5iKSwgc3RkZGV2KChwYWdnX3RhYi5iKTo6YmlnaW50KSwgc3RkZGV2KChw YWdnX3RhYi5iKTo6bnVtZXJpYyksIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgc3Rk ZGV2X3BvcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXZfcG9wKChwYWdn X3RhYi5iKTo6c21hbGxpbnQpLCBzdGRkZXZfcG9wKHBhZ2dfdGFiLmIpLCBzdGRkZXZfcG9wKChw YWdnX3RhYi5iKTo6YmlnaW50KSwgc3RkZGV2X3BvcCgocGFnZ190YWIuYik6Om51bWVyaWMpLCBz dGRkZXZfc2FtcCgocGFnZ190YWIuYik6OnJlYWwpLCBzdGRkZXZfc2FtcCgocGFnZ190YWIuYik6 OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXZfc2FtcCgocGFnZ190YWIuYik6OnNtYWxsaW50KSwg c3RkZGV2X3NhbXAocGFnZ190YWIuYiksIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6YmlnaW50 KSwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiLmIpOjpudW1lcmljKSwgc3RyaW5nX2FnZyhwYWdnX3Rh Yi5jXzFjLCAnLCc6OnRleHQpLCBzdHJpbmdfYWdnKHBhZ2dfdGFiLmNfMWIsICdceDJjJzo6Ynl0 ZWEpLCBzdW0oKHBhZ2dfdGFiLmIpOjpiaWdpbnQpLCBzdW0oKHBhZ2dfdGFiLmIpOjpudW1lcmlj KSwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpk b3VibGUgcHJlY2lzaW9uKSwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIHZhcmlh bmNlKHBhZ2dfdGFiLmIpLCB2YXJpYW5jZSgocGFnZ190YWIuYik6OmJpZ2ludCksIHZhcmlhbmNl KChwYWdnX3RhYi5iKTo6bnVtZXJpYyksIHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpyZWFsKSwgdmFy X3BvcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJfcG9wKChwYWdnX3RhYi5i KTo6c21hbGxpbnQpLCB2YXJfcG9wKHBhZ2dfdGFiLmIpLCB2YXJfcG9wKChwYWdnX3RhYi5iKTo6 YmlnaW50KSwgdmFyX3BvcCgocGFnZ190YWIuYik6Om51bWVyaWMpLCB2YXJfc2FtcCgocGFnZ190 YWIuYik6OnJlYWwpLCB2YXJfc2FtcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCB2 YXJfc2FtcCgocGFnZ190YWIuYik6OnNtYWxsaW50KSwgdmFyX3NhbXAocGFnZ190YWIuYiksIHZh cl9zYW1wKChwYWdnX3RhYi5iKTo6YmlnaW50KSwgdmFyX3NhbXAoKHBhZ2dfdGFiLmIpOjpudW1l cmljKSwgYW55X3ZhbHVlKChwYWdnX3RhYi5iICogMCkpLCBiaXRfYW5kKHBhZ2dfdGFiLmNfYml0 KSwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNpbnQyKSwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNp bnQ0KSwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNpbnQ4KSwgYml0X29yKHBhZ2dfdGFiLmNfYml0 KSwgYml0X29yKHBhZ2dfdGFiLmNfMW9yM2ludDIpLCBiaXRfb3IocGFnZ190YWIuY18xb3IzaW50 NCksIGJpdF9vcihwYWdnX3RhYi5jXzFvcjNpbnQ4KSwgYml0X3hvcihwYWdnX3RhYi5jX2JpdCks IGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50MiksIGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50 NCksIGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50OCksIGJvb2xfYW5kKHBhZ2dfdGFiLmNfYm9v bCksIGJvb2xfb3IocGFnZ190YWIuY19ib29sKSwgY291bnQocGFnZ190YWIuYiksIGNvdW50KCop LCBldmVyeShwYWdnX3RhYi5jX2Jvb2wpLCBtYXgocGFnZ190YWIuY19pbnQ0YXJyYXkpLCBtYXgo cGFnZ190YWIuY19lbnVtKSwgbWF4KChwYWdnX3RhYi5jXzFjKTo6Y2hhcmFjdGVyKDEpKSwgbWF4 KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3RhYi5iKSksIG1heCgoJzAuMC4wLjAnOjppbmV0 ICsgKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgbWF4KChwYWdnX3RhYi5iKTo6cmVhbCksIG1heCgo cGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pLCBtYXgoKHBhZ2dfdGFiLmIpOjpzbWFsbGlu dCksIG1heChwYWdnX3RhYi5iKSwgbWF4KChwYWdnX3RhYi5iKTo6YmlnaW50KSwgbWF4KHBhZ2df dGFiLmNfaW50ZXJ2YWwpLCBtYXgocGFnZ190YWIuY19tb25leSksIG1heCgocGFnZ190YWIuYik6 Om51bWVyaWMpLCBtYXgoKHBhZ2dfdGFiLmIpOjpvaWQpLCBtYXgocGFnZ190YWIuY19wZ19sc24p LCBtYXgocGFnZ190YWIuY190aWQpLCBtYXgocGFnZ190YWIuY18xYyksIG1heChwYWdnX3RhYi5j X3RpbWUpLCBtYXgocGFnZ190YWIuY190aW1ldHopLCBtYXgocGFnZ190YWIuY190aW1lc3RhbXAp LCBtYXgocGFnZ190YWIuY190aW1lc3RhbXB0eiksIG1heChwYWdnX3RhYi5jX3hpZDgpLCBtaW4o cGFnZ190YWIuY19pbnQ0YXJyYXkpLCBtaW4ocGFnZ190YWIuY19lbnVtKSwgbWluKChwYWdnX3Rh Yi5jXzFjKTo6Y2hhcmFjdGVyKDEpKSwgbWluKCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3Rh Yi5iKSksIG1pbigoJzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgbWlu KChwYWdnX3RhYi5iKTo6cmVhbCksIG1pbigocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24p LCBtaW4oKHBhZ2dfdGFiLmIpOjpzbWFsbGludCksIG1pbihwYWdnX3RhYi5iKSwgbWluKChwYWdn X3RhYi5iKTo6YmlnaW50KSwgbWluKHBhZ2dfdGFiLmNfaW50ZXJ2YWwpLCBtaW4ocGFnZ190YWIu Y19tb25leSksIG1pbigocGFnZ190YWIuYik6Om51bWVyaWMpLCBtaW4oKHBhZ2dfdGFiLmIpOjpv aWQpLCBtaW4ocGFnZ190YWIuY19wZ19sc24pLCBtaW4ocGFnZ190YWIuY190aWQpLCBtaW4ocGFn Z190YWIuY18xYyksIG1pbihwYWdnX3RhYi5jX3RpbWUpLCBtaW4ocGFnZ190YWIuY190aW1ldHop LCBtaW4ocGFnZ190YWIuY190aW1lc3RhbXApLCBtaW4ocGFnZ190YWIuY190aW1lc3RhbXB0eiks IG1pbihwYWdnX3RhYi5jX3hpZDgpLCByYW5nZV9pbnRlcnNlY3RfYWdnKHBhZ2dfdGFiLmNfaW50 NHJhbmdlKSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhwYWdnX3RhYi5jX2ludDRtdWx0aXJhbmdlKSwg cmVncl9jb3VudCgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChw YWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbiksIHN1bSgocGFnZ190YWIuYik6OnJlYWwpLCBz dW0oKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSwgc3VtKChwYWdnX3RhYi5iKTo6c21h bGxpbnQpLCBzdW0ocGFnZ190YWIuYiksIHN1bShwYWdnX3RhYi5jX2ludGVydmFsKSwgc3VtKHBh Z2dfdGFiLmNfbW9uZXkpCisgICAtPiAgQXBwZW5kCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu CisgICAgICAgICAgICAgICBPdXRwdXQ6IChQQVJUSUFMIGFycmF5X2FnZyhwYWdnX3RhYi5jX2lu dDRhcnJheSkpLCAoUEFSVElBTCBhcnJheV9hZ2cocGFnZ190YWIuYikpLCAoUEFSVElBTCBhdmco KHBhZ2dfdGFiLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBhdmcocGFnZ190YWIuYikpLCAoUEFS VElBTCBhdmcoKHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgYXZnKHBhZ2dfdGFiLmNf aW50ZXJ2YWwpKSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBh dmcoKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGF2ZygocGFnZ190 YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgY29ycigocGFnZ190YWIuYik6OmRvdWJsZSBwcmVj aXNpb24sICgocGFnZ190YWIuYiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbikpLCAo UEFSVElBTCBjb3Zhcl9wb3AoKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uLCAoKHBhZ2df dGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgY292YXJf c2FtcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFnZ190YWIuYiAqIHBhZ2df dGFiLmIpKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX2F2Z3goKCgyICogcGFn Z190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgcmVncl9hdmd5KCgoMiAqIHBhZ2dfdGFiLmIpKTo6ZG91YmxlIHByZWNp c2lvbiwgKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfaW50 ZXJjZXB0KCgoKDIgKiBwYWdnX3RhYi5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2df dGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfcjIoKChwYWdnX3RhYi5i ICogcGFnZ190YWIuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBw cmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9zbG9wZSgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6 OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFS VElBTCByZWdyX3N4eCgoKCgyICogcGFnZ190YWIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24s IChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3N4eSgoKHBh Z2dfdGFiLmIgKiBwYWdnX3RhYi5iKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX3N5eSgoKCgyICogcGFnZ190YWIuYikg KyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYi5iKTo6ZG91YmxlIHByZWNpc2lvbikp LCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFMIHN0ZGRldigo cGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3Rh Yi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3RkZGV2KHBhZ2dfdGFiLmIpKSwgKFBBUlRJQUwg c3RkZGV2KChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWIu Yik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWIuYik6OnJlYWwpKSwg KFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBB UlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRl dl9wb3AocGFnZ190YWIuYikpLCAoUEFSVElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYi5iKTo6Ymln aW50KSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiLmIpOjpudW1lcmljKSksIChQQVJU SUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdGRkZXZfc2Ft cCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAo KHBhZ2dfdGFiLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBzdGRkZXZfc2FtcChwYWdnX3RhYi5i KSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFM IHN0ZGRldl9zYW1wKChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdHJpbmdfYWdn KHBhZ2dfdGFiLmNfMWMsICcsJzo6dGV4dCkpLCAoUEFSVElBTCBzdHJpbmdfYWdnKHBhZ2dfdGFi LmNfMWIsICdceDJjJzo6Ynl0ZWEpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYi5iKTo6YmlnaW50 KSksIChQQVJUSUFMIHN1bSgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgdmFyaWFu Y2UoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYi5iKTo6 ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFnZ190YWIuYik6OnNtYWxs aW50KSksIChQQVJUSUFMIHZhcmlhbmNlKHBhZ2dfdGFiLmIpKSwgKFBBUlRJQUwgdmFyaWFuY2Uo KHBhZ2dfdGFiLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgdmFyaWFuY2UoKHBhZ2dfdGFiLmIpOjpu dW1lcmljKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQQVJUSUFM IHZhcl9wb3AoKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHZhcl9w b3AoKHBhZ2dfdGFiLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJfcG9wKHBhZ2dfdGFiLmIp KSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCB2YXJf cG9wKChwYWdnX3RhYi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWIu Yik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJ QUwgdmFyX3NhbXAocGFnZ190YWIuYikpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWIuYik6 OmJpZ2ludCkpLCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBB UlRJQUwgYW55X3ZhbHVlKChwYWdnX3RhYi5iICogMCkpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdn X3RhYi5jX2JpdCkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiLmNfMW9yM2ludDIpKSwgKFBB UlRJQUwgYml0X2FuZChwYWdnX3RhYi5jXzFvcjNpbnQ0KSksIChQQVJUSUFMIGJpdF9hbmQocGFn Z190YWIuY18xb3IzaW50OCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWIuY19iaXQpKSwgKFBB UlRJQUwgYml0X29yKHBhZ2dfdGFiLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2df dGFiLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiLmNfMW9yM2ludDgpKSwg KFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYi5jX2JpdCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2df dGFiLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYi5jXzFvcjNpbnQ0KSks IChQQVJUSUFMIGJpdF94b3IocGFnZ190YWIuY18xb3IzaW50OCkpLCAoUEFSVElBTCBib29sX2Fu ZChwYWdnX3RhYi5jX2Jvb2wpKSwgKFBBUlRJQUwgYm9vbF9vcihwYWdnX3RhYi5jX2Jvb2wpKSwg KFBBUlRJQUwgY291bnQocGFnZ190YWIuYikpLCAoUEFSVElBTCBjb3VudCgqKSksIChQQVJUSUFM IGV2ZXJ5KHBhZ2dfdGFiLmNfYm9vbCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY19pbnQ0YXJy YXkpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfZW51bSkpLCAoUEFSVElBTCBtYXgoKHBhZ2df dGFiLmNfMWMpOjpjaGFyYWN0ZXIoMSkpKSwgKFBBUlRJQUwgbWF4KCgnMDEtMDEtMjAwMCc6OmRh dGUgKyBwYWdnX3RhYi5iKSkpLCAoUEFSVElBTCBtYXgoKCcwLjAuMC4wJzo6aW5ldCArIChwYWdn X3RhYi5iKTo6YmlnaW50KSkpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiLmIpOjpyZWFsKSksIChQ QVJUSUFMIG1heCgocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgbWF4 KChwYWdnX3RhYi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmIpKSwgKFBB UlRJQUwgbWF4KChwYWdnX3RhYi5iKTo6YmlnaW50KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5j X2ludGVydmFsKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX21vbmV5KSksIChQQVJUSUFMIG1h eCgocGFnZ190YWIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYi5iKTo6b2lk KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3BnX2xzbikpLCAoUEFSVElBTCBtYXgocGFnZ190 YWIuY190aWQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiLmNfMWMpKSwgKFBBUlRJQUwgbWF4KHBh Z2dfdGFiLmNfdGltZSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuY190aW1ldHopKSwgKFBBUlRJ QUwgbWF4KHBhZ2dfdGFiLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3Rp bWVzdGFtcHR6KSksIChQQVJUSUFMIG1heChwYWdnX3RhYi5jX3hpZDgpKSwgKFBBUlRJQUwgbWlu KHBhZ2dfdGFiLmNfaW50NGFycmF5KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX2VudW0pKSwg KFBBUlRJQUwgbWluKChwYWdnX3RhYi5jXzFjKTo6Y2hhcmFjdGVyKDEpKSksIChQQVJUSUFMIG1p bigoJzAxLTAxLTIwMDAnOjpkYXRlICsgcGFnZ190YWIuYikpKSwgKFBBUlRJQUwgbWluKCgnMC4w LjAuMCc6OmluZXQgKyAocGFnZ190YWIuYik6OmJpZ2ludCkpKSwgKFBBUlRJQUwgbWluKChwYWdn X3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmIpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIG1pbigocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIG1p bihwYWdnX3RhYi5iKSksIChQQVJUSUFMIG1pbigocGFnZ190YWIuYik6OmJpZ2ludCkpLCAoUEFS VElBTCBtaW4ocGFnZ190YWIuY19pbnRlcnZhbCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY19t b25leSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiLmIpOjpudW1lcmljKSksIChQQVJUSUFMIG1p bigocGFnZ190YWIuYik6Om9pZCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY19wZ19sc24pKSwg KFBBUlRJQUwgbWluKHBhZ2dfdGFiLmNfdGlkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jXzFj KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3RpbWUpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFi LmNfdGltZXR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYi5jX3RpbWVzdGFtcCkpLCAoUEFSVElB TCBtaW4ocGFnZ190YWIuY190aW1lc3RhbXB0eikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWIuY194 aWQ4KSksIChQQVJUSUFMIHJhbmdlX2ludGVyc2VjdF9hZ2cocGFnZ190YWIuY19pbnQ0cmFuZ2Up KSwgKFBBUlRJQUwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhwYWdnX3RhYi5jX2ludDRtdWx0aXJhbmdl KSksIChQQVJUSUFMIHJlZ3JfY291bnQoKCgoMiAqIHBhZ2dfdGFiLmIpICsgMykpOjpkb3VibGUg cHJlY2lzaW9uLCAocGFnZ190YWIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3Vt KChwYWdnX3RhYi5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiLmIpOjpkb3VibGUg cHJlY2lzaW9uKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWIuYik6OnNtYWxsaW50KSksIChQQVJU SUFMIHN1bShwYWdnX3RhYi5iKSksIChQQVJUSUFMIHN1bShwYWdnX3RhYi5jX2ludGVydmFsKSks IChQQVJUSUFMIHN1bShwYWdnX3RhYi5jX21vbmV5KSkKKyAgICAgICAgICAgICAgIFJlbGF0aW9u czogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiKQorICAgICAgICAg ICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGFycmF5X2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjX2lu dDRhcnJheSksIGFycmF5X2FnZyhQQVJUSUFMX0FHR1JFR0FURSBiKSwgYXZnKFBBUlRJQUxfQUdH UkVHQVRFIGI6OnNtYWxsaW50KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBhdmcoUEFSVElB TF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGNfaW50ZXJ2YWwp LCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBi Ojpkb3VibGUgcHJlY2lzaW9uKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBj b3JyKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24sIChiICogYik6OmRvdWJs ZSBwcmVjaXNpb24pLCBjb3Zhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNp c2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFyX3NhbXAoUEFSVElBTF9BR0dS RUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIHJl Z3JfYXZneChQQVJUSUFMX0FHR1JFR0FURSAoMiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpk b3VibGUgcHJlY2lzaW9uKSwgcmVncl9hdmd5KFBBUlRJQUxfQUdHUkVHQVRFICgyICogYik6OmRv dWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2ludGVyY2VwdChQQVJU SUFMX0FHR1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUg cHJlY2lzaW9uKSwgcmVncl9yMihQQVJUSUFMX0FHR1JFR0FURSAoYiAqIGIpOjpkb3VibGUgcHJl Y2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zbG9wZShQQVJUSUFMX0FHR1JFR0FU RSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwg cmVncl9zeHgoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lv biwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc3h5KFBBUlRJQUxfQUdHUkVHQVRFIChiICog Yik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N5eShQQVJU SUFMX0FHR1JFR0FURSAoKDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUg cHJlY2lzaW9uKSwgc3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBzdGRkZXYoUEFS VElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldihQQVJUSUFMX0FHR1JF R0FURSBiOjpzbWFsbGludCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2KFBB UlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpu dW1lcmljKSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgc3RkZGV2X3Bv cChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2X3BvcChQQVJU SUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUg YiksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3RkZGV2X3BvcChQ QVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdB VEUgYjo6cmVhbCksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVj aXNpb24pLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHN0ZGRl dl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FU RSBiOjpiaWdpbnQpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwg c3RyaW5nX2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjXzFjLCAnLCc6OnRleHQpLCBzdHJpbmdfYWdn KFBBUlRJQUxfQUdHUkVHQVRFIGNfMWIsIEUnXFx4MmMnOjpieXRlYSksIHN1bShQQVJUSUFMX0FH R1JFR0FURSBiOjpiaWdpbnQpLCBzdW0oUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHZh cmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JF R0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6 c21hbGxpbnQpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiKSwgdmFyaWFuY2UoUEFSVElB TF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVt ZXJpYyksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHZhcl9wb3AoUEFSVElB TF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdB VEUgYjo6c21hbGxpbnQpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGIpLCB2YXJfcG9wKFBB UlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6 bnVtZXJpYyksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJfc2FtcChQ QVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgdmFyX3NhbXAoUEFSVElBTF9B R0dSRUdBVEUgYjo6c21hbGxpbnQpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgdmFy X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyX3NhbXAoUEFSVElBTF9BR0dS RUdBVEUgYjo6bnVtZXJpYyksIGFueV92YWx1ZSgoYiAqIDApKSwgYml0X2FuZChjX2JpdCksIGJp dF9hbmQoY18xb3IzaW50MiksIGJpdF9hbmQoY18xb3IzaW50NCksIGJpdF9hbmQoY18xb3IzaW50 OCksIGJpdF9vcihjX2JpdCksIGJpdF9vcihjXzFvcjNpbnQyKSwgYml0X29yKGNfMW9yM2ludDQp LCBiaXRfb3IoY18xb3IzaW50OCksIGJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIp LCBiaXRfeG9yKGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLCBib29sX2FuZChjX2Jv b2wpLCBib29sX29yKGNfYm9vbCksIGNvdW50KGIpLCBjb3VudCgqKSwgZXZlcnkoY19ib29sKSwg bWF4KGNfaW50NGFycmF5KSwgbWF4KGNfZW51bSksIG1heChjXzFjOjpjaGFyYWN0ZXIoMSkpLCBt YXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIGIpKSwgbWF4KCgnMC4wLjAuMCc6OmluZXQgKyBiKSks IG1heChiOjpyZWFsKSwgbWF4KGI6OmRvdWJsZSBwcmVjaXNpb24pLCBtYXgoYjo6c21hbGxpbnQp LCBtYXgoYiksIG1heChiOjpiaWdpbnQpLCBtYXgoY19pbnRlcnZhbCksIG1heChjX21vbmV5KSwg bWF4KGI6Om51bWVyaWMpLCBtYXgoYjo6b2lkKSwgbWF4KGNfcGdfbHNuKSwgbWF4KGNfdGlkKSwg bWF4KGNfMWMpLCBtYXgoY190aW1lKSwgbWF4KGNfdGltZXR6KSwgbWF4KGNfdGltZXN0YW1wKSwg bWF4KGNfdGltZXN0YW1wdHopLCBtYXgoY194aWQ4KSwgbWluKGNfaW50NGFycmF5KSwgbWluKGNf ZW51bSksIG1pbihjXzFjOjpjaGFyYWN0ZXIoMSkpLCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0ZSAr IGIpKSwgbWluKCgnMC4wLjAuMCc6OmluZXQgKyBiKSksIG1pbihiOjpyZWFsKSwgbWluKGI6OmRv dWJsZSBwcmVjaXNpb24pLCBtaW4oYjo6c21hbGxpbnQpLCBtaW4oYiksIG1pbihiOjpiaWdpbnQp LCBtaW4oY19pbnRlcnZhbCksIG1pbihjX21vbmV5KSwgbWluKGI6Om51bWVyaWMpLCBtaW4oYjo6 b2lkKSwgbWluKGNfcGdfbHNuKSwgbWluKGNfdGlkKSwgbWluKGNfMWMpLCBtaW4oY190aW1lKSwg bWluKGNfdGltZXR6KSwgbWluKGNfdGltZXN0YW1wKSwgbWluKGNfdGltZXN0YW1wdHopLCBtaW4o Y194aWQ4KSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRyYW5nZSksIHJhbmdlX2ludGVyc2Vj dF9hZ2coY19pbnQ0bXVsdGlyYW5nZSksIHJlZ3JfY291bnQoKCgyICogYikgKyAzKTo6ZG91Ymxl IHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN1bShiOjpyZWFsKSwgc3VtKGI6OmRv dWJsZSBwcmVjaXNpb24pLCBzdW0oYjo6c21hbGxpbnQpLCBzdW0oYiksIHN1bShjX2ludGVydmFs KSwgc3VtKGNfbW9uZXkpIEZST00gcHVibGljLnBhZ2dfdGFiX3AxIFdIRVJFICgoY19zZXJpYWwg Pj0gMSkpIEFORCAoKGNfc2VyaWFsIDw9IDMwKSkKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4K KyAgICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwgYXJyYXlfYWdnKHBhZ2dfdGFiXzEuY19p bnQ0YXJyYXkpKSwgKFBBUlRJQUwgYXJyYXlfYWdnKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBh dmcoKHBhZ2dfdGFiXzEuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8xLmIp KSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgYXZnKHBh Z2dfdGFiXzEuY19pbnRlcnZhbCkpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFiXzEuYik6OnJlYWwp KSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJU SUFMIGF2ZygocGFnZ190YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBjb3JyKChwYWdnX3Rh Yl8xLmIpOjpkb3VibGUgcHJlY2lzaW9uLCAoKHBhZ2dfdGFiXzEuYiAqIHBhZ2dfdGFiXzEuYikp Ojpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIGNvdmFyX3BvcCgocGFnZ190YWJfMS5iKTo6 ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYl8xLmIgKiBwYWdnX3RhYl8xLmIpKTo6ZG91Ymxl IHByZWNpc2lvbikpLCAoUEFSVElBTCBjb3Zhcl9zYW1wKChwYWdnX3RhYl8xLmIpOjpkb3VibGUg cHJlY2lzaW9uLCAoKHBhZ2dfdGFiXzEuYiAqIHBhZ2dfdGFiXzEuYikpOjpkb3VibGUgcHJlY2lz aW9uKSksIChQQVJUSUFMIHJlZ3JfYXZneCgoKDIgKiBwYWdnX3RhYl8xLmIpKTo6ZG91YmxlIHBy ZWNpc2lvbiwgKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVn cl9hdmd5KCgoMiAqIHBhZ2dfdGFiXzEuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJf MS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX2ludGVyY2VwdCgoKCgyICog cGFnZ190YWJfMS5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzEuYik6OmRv dWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9yMigoKHBhZ2dfdGFiXzEuYiAqIHBhZ2df dGFiXzEuYikpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNp c2lvbikpLCAoUEFSVElBTCByZWdyX3Nsb3BlKCgoKDIgKiBwYWdnX3RhYl8xLmIpICsgMykpOjpk b3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFS VElBTCByZWdyX3N4eCgoKCgyICogcGFnZ190YWJfMS5iKSArIDMpKTo6ZG91YmxlIHByZWNpc2lv biwgKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9zeHko KChwYWdnX3RhYl8xLmIgKiBwYWdnX3RhYl8xLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2df dGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9zeXkoKCgoMiAqIHBh Z2dfdGFiXzEuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYl8xLmIpOjpkb3Vi bGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMS5iKTo6cmVhbCkpLCAo UEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgc3RkZGV2KChwYWdnX3RhYl8xLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBzdGRkZXYocGFn Z190YWJfMS5iKSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMS5iKTo6YmlnaW50KSksIChQ QVJUSUFMIHN0ZGRldigocGFnZ190YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdGRkZXZf cG9wKChwYWdnX3RhYl8xLmIpOjpyZWFsKSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFi XzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWJf MS5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgc3RkZGV2X3BvcChwYWdnX3RhYl8xLmIpKSwgKFBB UlRJQUwgc3RkZGV2X3BvcCgocGFnZ190YWJfMS5iKTo6YmlnaW50KSksIChQQVJUSUFMIHN0ZGRl dl9wb3AoKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBh Z2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzEuYik6 OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzEuYik6 OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElB TCBzdGRkZXZfc2FtcCgocGFnZ190YWJfMS5iKTo6YmlnaW50KSksIChQQVJUSUFMIHN0ZGRldl9z YW1wKChwYWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHN0cmluZ19hZ2cocGFnZ190 YWJfMS5jXzFjLCAnLCc6OnRleHQpKSwgKFBBUlRJQUwgc3RyaW5nX2FnZyhwYWdnX3RhYl8xLmNf MWIsICdceDJjJzo6Ynl0ZWEpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8xLmIpOjpiaWdpbnQp KSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHZhcmlh bmNlKChwYWdnX3RhYl8xLmIpOjpyZWFsKSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8x LmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8xLmIp OjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJpYW5jZShwYWdnX3RhYl8xLmIpKSwgKFBBUlRJQUwg dmFyaWFuY2UoKHBhZ2dfdGFiXzEuYik6OmJpZ2ludCkpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFn Z190YWJfMS5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8xLmIpOjpy ZWFsKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24p KSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWJfMS5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwg dmFyX3BvcChwYWdnX3RhYl8xLmIpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190YWJfMS5iKTo6 YmlnaW50KSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzEuYik6Om51bWVyaWMpKSwgKFBB UlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgdmFyX3NhbXAo KHBhZ2dfdGFiXzEuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBh Z2dfdGFiXzEuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHZhcl9zYW1wKHBhZ2dfdGFiXzEuYikp LCAoUEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWJfMS5iKTo6YmlnaW50KSksIChQQVJUSUFMIHZh cl9zYW1wKChwYWdnX3RhYl8xLmIpOjpudW1lcmljKSksIChQQVJUSUFMIGFueV92YWx1ZSgocGFn Z190YWJfMS5iICogMCkpKSwgKFBBUlRJQUwgYml0X2FuZChwYWdnX3RhYl8xLmNfYml0KSksIChQ QVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMS5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF9hbmQo cGFnZ190YWJfMS5jXzFvcjNpbnQ0KSksIChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMS5jXzFv cjNpbnQ4KSksIChQQVJUSUFMIGJpdF9vcihwYWdnX3RhYl8xLmNfYml0KSksIChQQVJUSUFMIGJp dF9vcihwYWdnX3RhYl8xLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzEu Y18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWJfMS5jXzFvcjNpbnQ4KSksIChQ QVJUSUFMIGJpdF94b3IocGFnZ190YWJfMS5jX2JpdCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2df dGFiXzEuY18xb3IzaW50MikpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiXzEuY18xb3IzaW50 NCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiXzEuY18xb3IzaW50OCkpLCAoUEFSVElBTCBi b29sX2FuZChwYWdnX3RhYl8xLmNfYm9vbCkpLCAoUEFSVElBTCBib29sX29yKHBhZ2dfdGFiXzEu Y19ib29sKSksIChQQVJUSUFMIGNvdW50KHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBjb3VudCgq KSksIChQQVJUSUFMIGV2ZXJ5KHBhZ2dfdGFiXzEuY19ib29sKSksIChQQVJUSUFMIG1heChwYWdn X3RhYl8xLmNfaW50NGFycmF5KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfZW51bSkpLCAo UEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuY18xYyk6OmNoYXJhY3RlcigxKSkpLCAoUEFSVElBTCBt YXgoKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiXzEuYikpKSwgKFBBUlRJQUwgbWF4KCgn MC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWJfMS5iKTo6YmlnaW50KSkpLCAoUEFSVElBTCBtYXgo KHBhZ2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8xLmIpOjpkb3Vi bGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMS5iKTo6c21hbGxpbnQpKSwg KFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzEuYik6 OmJpZ2ludCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5jX2ludGVydmFsKSksIChQQVJUSUFM IG1heChwYWdnX3RhYl8xLmNfbW9uZXkpKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8xLmIpOjpu dW1lcmljKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJfMS5iKTo6b2lkKSksIChQQVJUSUFMIG1h eChwYWdnX3RhYl8xLmNfcGdfbHNuKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfdGlkKSks IChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfMWMpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEu Y190aW1lKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfdGltZXR6KSksIChQQVJUSUFMIG1h eChwYWdnX3RhYl8xLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8xLmNfdGlt ZXN0YW1wdHopKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzEuY194aWQ4KSksIChQQVJUSUFMIG1p bihwYWdnX3RhYl8xLmNfaW50NGFycmF5KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfZW51 bSkpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzEuY18xYyk6OmNoYXJhY3RlcigxKSkpLCAoUEFS VElBTCBtaW4oKCcwMS0wMS0yMDAwJzo6ZGF0ZSArIHBhZ2dfdGFiXzEuYikpKSwgKFBBUlRJQUwg bWluKCgnMC4wLjAuMCc6OmluZXQgKyAocGFnZ190YWJfMS5iKTo6YmlnaW50KSkpLCAoUEFSVElB TCBtaW4oKHBhZ2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8xLmIp Ojpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMS5iKTo6c21hbGxp bnQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFi XzEuYik6OmJpZ2ludCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMS5jX2ludGVydmFsKSksIChQ QVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfbW9uZXkpKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8x LmIpOjpudW1lcmljKSksIChQQVJUSUFMIG1pbigocGFnZ190YWJfMS5iKTo6b2lkKSksIChQQVJU SUFMIG1pbihwYWdnX3RhYl8xLmNfcGdfbHNuKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNf dGlkKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfMWMpKSwgKFBBUlRJQUwgbWluKHBhZ2df dGFiXzEuY190aW1lKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8xLmNfdGltZXR6KSksIChQQVJU SUFMIG1pbihwYWdnX3RhYl8xLmNfdGltZXN0YW1wKSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8x LmNfdGltZXN0YW1wdHopKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzEuY194aWQ4KSksIChQQVJU SUFMIHJhbmdlX2ludGVyc2VjdF9hZ2cocGFnZ190YWJfMS5jX2ludDRyYW5nZSkpLCAoUEFSVElB TCByYW5nZV9pbnRlcnNlY3RfYWdnKHBhZ2dfdGFiXzEuY19pbnQ0bXVsdGlyYW5nZSkpLCAoUEFS VElBTCByZWdyX2NvdW50KCgoKDIgKiBwYWdnX3RhYl8xLmIpICsgMykpOjpkb3VibGUgcHJlY2lz aW9uLCAocGFnZ190YWJfMS5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdW0oKHBh Z2dfdGFiXzEuYik6OnJlYWwpKSwgKFBBUlRJQUwgc3VtKChwYWdnX3RhYl8xLmIpOjpkb3VibGUg cHJlY2lzaW9uKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWJfMS5iKTo6c21hbGxpbnQpKSwgKFBB UlRJQUwgc3VtKHBhZ2dfdGFiXzEuYikpLCAoUEFSVElBTCBzdW0ocGFnZ190YWJfMS5jX2ludGVy dmFsKSksIChQQVJUSUFMIHN1bShwYWdnX3RhYl8xLmNfbW9uZXkpKQorICAgICAgICAgICAgICAg UmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190YWJfMSkK KyAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhcnJheV9hZ2coUEFSVElBTF9BR0dS RUdBVEUgY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coUEFSVElBTF9BR0dSRUdBVEUgYiksIGF2ZyhQ QVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiKSwg YXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBj X2ludGVydmFsKSwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBhdmcoUEFSVElBTF9B R0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpu dW1lcmljKSwgY29ycihQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAq IGIpOjpkb3VibGUgcHJlY2lzaW9uKSwgY292YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRv dWJsZSBwcmVjaXNpb24sIChiICogYik6OmRvdWJsZSBwcmVjaXNpb24pLCBjb3Zhcl9zYW1wKFBB UlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24sIChiICogYik6OmRvdWJsZSBwcmVj aXNpb24pLCByZWdyX2F2Z3goUEFSVElBTF9BR0dSRUdBVEUgKDIgKiBiKTo6ZG91YmxlIHByZWNp c2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfYXZneShQQVJUSUFMX0FHR1JFR0FURSAo MiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9pbnRl cmNlcHQoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwg Yjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3JfcjIoUEFSVElBTF9BR0dSRUdBVEUgKGIgKiBiKTo6 ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiksIHJlZ3Jfc2xvcGUoUEFSVElB TF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHBy ZWNpc2lvbiksIHJlZ3Jfc3h4KFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJs ZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N4eShQQVJUSUFMX0FHR1JF R0FURSAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVn cl9zeXkoUEFSVElBTF9BR0dSRUdBVEUgKCgyICogYikgKyAzKTo6ZG91YmxlIHByZWNpc2lvbiwg Yjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwg c3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXYoUEFS VElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYiks IHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBzdGRkZXYoUEFSVElBTF9BR0dS RUdBVEUgYjo6bnVtZXJpYyksIHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCks IHN0ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRl dl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBzdGRkZXZfcG9wKFBBUlRJQUxf QUdHUkVHQVRFIGIpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0 ZGRldl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6bnVtZXJpYyksIHN0ZGRldl9zYW1wKFBBUlRJ QUxfQUdHUkVHQVRFIGI6OnJlYWwpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpk b3VibGUgcHJlY2lzaW9uKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxp bnQpLCBzdGRkZXZfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2X3NhbXAoUEFSVElB TF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6 bnVtZXJpYyksIHN0cmluZ19hZ2coUEFSVElBTF9BR0dSRUdBVEUgY18xYywgJywnOjp0ZXh0KSwg c3RyaW5nX2FnZyhQQVJUSUFMX0FHR1JFR0FURSBjXzFiLCBFJ1xceDJjJzo6Ynl0ZWEpLCBzdW0o UEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51 bWVyaWMpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgdmFyaWFuY2UoUEFS VElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcmlhbmNlKFBBUlRJQUxfQUdH UkVHQVRFIGI6OnNtYWxsaW50KSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYiksIHZhcmlh bmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVH QVRFIGI6Om51bWVyaWMpLCB2YXJfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnJlYWwpLCB2YXJf cG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJfcG9wKFBBUlRJ QUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiKSwg dmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCB2YXJfcG9wKFBBUlRJQUxfQUdH UkVHQVRFIGI6Om51bWVyaWMpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwg dmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHZhcl9zYW1w KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdB VEUgYiksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHZhcl9zYW1wKFBB UlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBhbnlfdmFsdWUoKGIgKiAwKSksIGJpdF9hbmQo Y19iaXQpLCBiaXRfYW5kKGNfMW9yM2ludDIpLCBiaXRfYW5kKGNfMW9yM2ludDQpLCBiaXRfYW5k KGNfMW9yM2ludDgpLCBiaXRfb3IoY19iaXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihj XzFvcjNpbnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLCBiaXRfeG9yKGNfYml0KSwgYml0X3hvcihj XzFvcjNpbnQyKSwgYml0X3hvcihjXzFvcjNpbnQ0KSwgYml0X3hvcihjXzFvcjNpbnQ4KSwgYm9v bF9hbmQoY19ib29sKSwgYm9vbF9vcihjX2Jvb2wpLCBjb3VudChiKSwgY291bnQoKiksIGV2ZXJ5 KGNfYm9vbCksIG1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6Y2hhcmFj dGVyKDEpKSwgbWF4KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBiKSksIG1heCgoJzAuMC4wLjAnOjpp bmV0ICsgYikpLCBtYXgoYjo6cmVhbCksIG1heChiOjpkb3VibGUgcHJlY2lzaW9uKSwgbWF4KGI6 OnNtYWxsaW50KSwgbWF4KGIpLCBtYXgoYjo6YmlnaW50KSwgbWF4KGNfaW50ZXJ2YWwpLCBtYXgo Y19tb25leSksIG1heChiOjpudW1lcmljKSwgbWF4KGI6Om9pZCksIG1heChjX3BnX2xzbiksIG1h eChjX3RpZCksIG1heChjXzFjKSwgbWF4KGNfdGltZSksIG1heChjX3RpbWV0eiksIG1heChjX3Rp bWVzdGFtcCksIG1heChjX3RpbWVzdGFtcHR6KSwgbWF4KGNfeGlkOCksIG1pbihjX2ludDRhcnJh eSksIG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcmFjdGVyKDEpKSwgbWluKCgnMDEtMDEtMjAw MCc6OmRhdGUgKyBiKSksIG1pbigoJzAuMC4wLjAnOjppbmV0ICsgYikpLCBtaW4oYjo6cmVhbCks IG1pbihiOjpkb3VibGUgcHJlY2lzaW9uKSwgbWluKGI6OnNtYWxsaW50KSwgbWluKGIpLCBtaW4o Yjo6YmlnaW50KSwgbWluKGNfaW50ZXJ2YWwpLCBtaW4oY19tb25leSksIG1pbihiOjpudW1lcmlj KSwgbWluKGI6Om9pZCksIG1pbihjX3BnX2xzbiksIG1pbihjX3RpZCksIG1pbihjXzFjKSwgbWlu KGNfdGltZSksIG1pbihjX3RpbWV0eiksIG1pbihjX3RpbWVzdGFtcCksIG1pbihjX3RpbWVzdGFt cHR6KSwgbWluKGNfeGlkOCksIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCByYW5n ZV9pbnRlcnNlY3RfYWdnKGNfaW50NG11bHRpcmFuZ2UpLCByZWdyX2NvdW50KCgoMiAqIGIpICsg Myk6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdW0oYjo6cmVhbCks IHN1bShiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3VtKGI6OnNtYWxsaW50KSwgc3VtKGIpLCBzdW0o Y19pbnRlcnZhbCksIHN1bShjX21vbmV5KSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMiBXSEVSRSAo KGNfc2VyaWFsID49IDEpKSBBTkQgKChjX3NlcmlhbCA8PSAzMCkpCisgICAgICAgICAtPiAgRm9y ZWlnbiBTY2FuCisgICAgICAgICAgICAgICBPdXRwdXQ6IChQQVJUSUFMIGFycmF5X2FnZyhwYWdn X3RhYl8yLmNfaW50NGFycmF5KSksIChQQVJUSUFMIGFycmF5X2FnZyhwYWdnX3RhYl8yLmIpKSwg KFBBUlRJQUwgYXZnKChwYWdnX3RhYl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBhdmcocGFn Z190YWJfMi5iKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMi5iKTo6YmlnaW50KSksIChQQVJU SUFMIGF2ZyhwYWdnX3RhYl8yLmNfaW50ZXJ2YWwpKSwgKFBBUlRJQUwgYXZnKChwYWdnX3RhYl8y LmIpOjpyZWFsKSksIChQQVJUSUFMIGF2ZygocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lv bikpLCAoUEFSVElBTCBhdmcoKHBhZ2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgY29y cigocGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYl8yLmIgKiBwYWdn X3RhYl8yLmIpKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBjb3Zhcl9wb3AoKHBhZ2df dGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24sICgocGFnZ190YWJfMi5iICogcGFnZ190YWJfMi5i KSk6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgY292YXJfc2FtcCgocGFnZ190YWJfMi5i KTo6ZG91YmxlIHByZWNpc2lvbiwgKChwYWdnX3RhYl8yLmIgKiBwYWdnX3RhYl8yLmIpKTo6ZG91 YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCByZWdyX2F2Z3goKCgyICogcGFnZ190YWJfMi5iKSk6 OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQ QVJUSUFMIHJlZ3JfYXZneSgoKDIgKiBwYWdnX3RhYl8yLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwg KHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9pbnRlcmNl cHQoKCgoMiAqIHBhZ2dfdGFiXzIuYikgKyAzKSk6OmRvdWJsZSBwcmVjaXNpb24sIChwYWdnX3Rh Yl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3JfcjIoKChwYWdnX3RhYl8y LmIgKiBwYWdnX3RhYl8yLmIpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRv dWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJQUwgcmVncl9zbG9wZSgoKCgyICogcGFnZ190YWJfMi5i KSArIDMpKTo6ZG91YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNp b24pKSwgKFBBUlRJQUwgcmVncl9zeHgoKCgoMiAqIHBhZ2dfdGFiXzIuYikgKyAzKSk6OmRvdWJs ZSBwcmVjaXNpb24sIChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFM IHJlZ3Jfc3h5KCgocGFnZ190YWJfMi5iICogcGFnZ190YWJfMi5iKSk6OmRvdWJsZSBwcmVjaXNp b24sIChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHJlZ3Jfc3l5 KCgoKDIgKiBwYWdnX3RhYl8yLmIpICsgMykpOjpkb3VibGUgcHJlY2lzaW9uLCAocGFnZ190YWJf Mi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiXzIuYik6 OnJlYWwpKSwgKFBBUlRJQUwgc3RkZGV2KChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9u KSksIChQQVJUSUFMIHN0ZGRldigocGFnZ190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwg c3RkZGV2KHBhZ2dfdGFiXzIuYikpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiXzIuYik6OmJp Z2ludCkpLCAoUEFSVElBTCBzdGRkZXYoKHBhZ2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJ QUwgc3RkZGV2X3BvcCgocGFnZ190YWJfMi5iKTo6cmVhbCkpLCAoUEFSVElBTCBzdGRkZXZfcG9w KChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN0ZGRldl9wb3Ao KHBhZ2dfdGFiXzIuYik6OnNtYWxsaW50KSksIChQQVJUSUFMIHN0ZGRldl9wb3AocGFnZ190YWJf Mi5iKSksIChQQVJUSUFMIHN0ZGRldl9wb3AoKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFS VElBTCBzdGRkZXZfcG9wKChwYWdnX3RhYl8yLmIpOjpudW1lcmljKSksIChQQVJUSUFMIHN0ZGRl dl9zYW1wKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChwYWdn X3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHN0ZGRldl9zYW1wKChwYWdn X3RhYl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCBzdGRkZXZfc2FtcChwYWdnX3RhYl8yLmIp KSwgKFBBUlRJQUwgc3RkZGV2X3NhbXAoKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElB TCBzdGRkZXZfc2FtcCgocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBzdHJpbmdf YWdnKHBhZ2dfdGFiXzIuY18xYywgJywnOjp0ZXh0KSksIChQQVJUSUFMIHN0cmluZ19hZ2cocGFn Z190YWJfMi5jXzFiLCAnXHgyYyc6OmJ5dGVhKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWJfMi5i KTo6YmlnaW50KSksIChQQVJUSUFMIHN1bSgocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFS VElBTCB2YXJpYW5jZSgocGFnZ190YWJfMi5iKTo6cmVhbCkpLCAoUEFSVElBTCB2YXJpYW5jZSgo cGFnZ190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCB2YXJpYW5jZSgocGFn Z190YWJfMi5iKTo6c21hbGxpbnQpKSwgKFBBUlRJQUwgdmFyaWFuY2UocGFnZ190YWJfMi5iKSks IChQQVJUSUFMIHZhcmlhbmNlKChwYWdnX3RhYl8yLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgdmFy aWFuY2UoKHBhZ2dfdGFiXzIuYik6Om51bWVyaWMpKSwgKFBBUlRJQUwgdmFyX3BvcCgocGFnZ190 YWJfMi5iKTo6cmVhbCkpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8yLmIpOjpkb3VibGUg cHJlY2lzaW9uKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2dfdGFiXzIuYik6OnNtYWxsaW50KSks IChQQVJUSUFMIHZhcl9wb3AocGFnZ190YWJfMi5iKSksIChQQVJUSUFMIHZhcl9wb3AoKHBhZ2df dGFiXzIuYik6OmJpZ2ludCkpLCAoUEFSVElBTCB2YXJfcG9wKChwYWdnX3RhYl8yLmIpOjpudW1l cmljKSksIChQQVJUSUFMIHZhcl9zYW1wKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFM IHZhcl9zYW1wKChwYWdnX3RhYl8yLmIpOjpkb3VibGUgcHJlY2lzaW9uKSksIChQQVJUSUFMIHZh cl9zYW1wKChwYWdnX3RhYl8yLmIpOjpzbWFsbGludCkpLCAoUEFSVElBTCB2YXJfc2FtcChwYWdn X3RhYl8yLmIpKSwgKFBBUlRJQUwgdmFyX3NhbXAoKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpLCAo UEFSVElBTCB2YXJfc2FtcCgocGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBhbnlf dmFsdWUoKHBhZ2dfdGFiXzIuYiAqIDApKSksIChQQVJUSUFMIGJpdF9hbmQocGFnZ190YWJfMi5j X2JpdCkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2dfdGFiXzIuY18xb3IzaW50MikpLCAoUEFSVElB TCBiaXRfYW5kKHBhZ2dfdGFiXzIuY18xb3IzaW50NCkpLCAoUEFSVElBTCBiaXRfYW5kKHBhZ2df dGFiXzIuY18xb3IzaW50OCkpLCAoUEFSVElBTCBiaXRfb3IocGFnZ190YWJfMi5jX2JpdCkpLCAo UEFSVElBTCBiaXRfb3IocGFnZ190YWJfMi5jXzFvcjNpbnQyKSksIChQQVJUSUFMIGJpdF9vcihw YWdnX3RhYl8yLmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X29yKHBhZ2dfdGFiXzIuY18xb3Iz aW50OCkpLCAoUEFSVElBTCBiaXRfeG9yKHBhZ2dfdGFiXzIuY19iaXQpKSwgKFBBUlRJQUwgYml0 X3hvcihwYWdnX3RhYl8yLmNfMW9yM2ludDIpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYl8y LmNfMW9yM2ludDQpKSwgKFBBUlRJQUwgYml0X3hvcihwYWdnX3RhYl8yLmNfMW9yM2ludDgpKSwg KFBBUlRJQUwgYm9vbF9hbmQocGFnZ190YWJfMi5jX2Jvb2wpKSwgKFBBUlRJQUwgYm9vbF9vcihw YWdnX3RhYl8yLmNfYm9vbCkpLCAoUEFSVElBTCBjb3VudChwYWdnX3RhYl8yLmIpKSwgKFBBUlRJ QUwgY291bnQoKikpLCAoUEFSVElBTCBldmVyeShwYWdnX3RhYl8yLmNfYm9vbCkpLCAoUEFSVElB TCBtYXgocGFnZ190YWJfMi5jX2ludDRhcnJheSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5j X2VudW0pKSwgKFBBUlRJQUwgbWF4KChwYWdnX3RhYl8yLmNfMWMpOjpjaGFyYWN0ZXIoMSkpKSwg KFBBUlRJQUwgbWF4KCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3RhYl8yLmIpKSksIChQQVJU SUFMIG1heCgoJzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkpKSwgKFBB UlRJQUwgbWF4KChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIG1heCgocGFnZ190YWJf Mi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIuYik6OnNt YWxsaW50KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgbWF4KChwYWdn X3RhYl8yLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuY19pbnRlcnZhbCkp LCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5jX21vbmV5KSksIChQQVJUSUFMIG1heCgocGFnZ190 YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBtYXgoKHBhZ2dfdGFiXzIuYik6Om9pZCkpLCAo UEFSVElBTCBtYXgocGFnZ190YWJfMi5jX3BnX2xzbikpLCAoUEFSVElBTCBtYXgocGFnZ190YWJf Mi5jX3RpZCkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5jXzFjKSksIChQQVJUSUFMIG1heChw YWdnX3RhYl8yLmNfdGltZSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMi5jX3RpbWV0eikpLCAo UEFSVElBTCBtYXgocGFnZ190YWJfMi5jX3RpbWVzdGFtcCkpLCAoUEFSVElBTCBtYXgocGFnZ190 YWJfMi5jX3RpbWVzdGFtcHR6KSksIChQQVJUSUFMIG1heChwYWdnX3RhYl8yLmNfeGlkOCkpLCAo UEFSVElBTCBtaW4ocGFnZ190YWJfMi5jX2ludDRhcnJheSkpLCAoUEFSVElBTCBtaW4ocGFnZ190 YWJfMi5jX2VudW0pKSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8yLmNfMWMpOjpjaGFyYWN0ZXIo MSkpKSwgKFBBUlRJQUwgbWluKCgnMDEtMDEtMjAwMCc6OmRhdGUgKyBwYWdnX3RhYl8yLmIpKSks IChQQVJUSUFMIG1pbigoJzAuMC4wLjAnOjppbmV0ICsgKHBhZ2dfdGFiXzIuYik6OmJpZ2ludCkp KSwgKFBBUlRJQUwgbWluKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIG1pbigocGFn Z190YWJfMi5iKTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzIu Yik6OnNtYWxsaW50KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgbWlu KChwYWdnX3RhYl8yLmIpOjpiaWdpbnQpKSwgKFBBUlRJQUwgbWluKHBhZ2dfdGFiXzIuY19pbnRl cnZhbCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5jX21vbmV5KSksIChQQVJUSUFMIG1pbigo cGFnZ190YWJfMi5iKTo6bnVtZXJpYykpLCAoUEFSVElBTCBtaW4oKHBhZ2dfdGFiXzIuYik6Om9p ZCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5jX3BnX2xzbikpLCAoUEFSVElBTCBtaW4ocGFn Z190YWJfMi5jX3RpZCkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5jXzFjKSksIChQQVJUSUFM IG1pbihwYWdnX3RhYl8yLmNfdGltZSkpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5jX3RpbWV0 eikpLCAoUEFSVElBTCBtaW4ocGFnZ190YWJfMi5jX3RpbWVzdGFtcCkpLCAoUEFSVElBTCBtaW4o cGFnZ190YWJfMi5jX3RpbWVzdGFtcHR6KSksIChQQVJUSUFMIG1pbihwYWdnX3RhYl8yLmNfeGlk OCkpLCAoUEFSVElBTCByYW5nZV9pbnRlcnNlY3RfYWdnKHBhZ2dfdGFiXzIuY19pbnQ0cmFuZ2Up KSwgKFBBUlRJQUwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhwYWdnX3RhYl8yLmNfaW50NG11bHRpcmFu Z2UpKSwgKFBBUlRJQUwgcmVncl9jb3VudCgoKCgyICogcGFnZ190YWJfMi5iKSArIDMpKTo6ZG91 YmxlIHByZWNpc2lvbiwgKHBhZ2dfdGFiXzIuYik6OmRvdWJsZSBwcmVjaXNpb24pKSwgKFBBUlRJ QUwgc3VtKChwYWdnX3RhYl8yLmIpOjpyZWFsKSksIChQQVJUSUFMIHN1bSgocGFnZ190YWJfMi5i KTo6ZG91YmxlIHByZWNpc2lvbikpLCAoUEFSVElBTCBzdW0oKHBhZ2dfdGFiXzIuYik6OnNtYWxs aW50KSksIChQQVJUSUFMIHN1bShwYWdnX3RhYl8yLmIpKSwgKFBBUlRJQUwgc3VtKHBhZ2dfdGFi XzIuY19pbnRlcnZhbCkpLCAoUEFSVElBTCBzdW0ocGFnZ190YWJfMi5jX21vbmV5KSkKKyAgICAg ICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AzIHBh Z2dfdGFiXzIpCisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYXJyYXlfYWdnKFBB UlRJQUxfQUdHUkVHQVRFIGNfaW50NGFycmF5KSwgYXJyYXlfYWdnKFBBUlRJQUxfQUdHUkVHQVRF IGIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYjo6c21hbGxpbnQpLCBhdmcoUEFSVElBTF9BR0dS RUdBVEUgYiksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCBhdmcoUEFSVElBTF9B R0dSRUdBVEUgY19pbnRlcnZhbCksIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgYXZn KFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBhdmcoUEFSVElBTF9BR0dS RUdBVEUgYjo6bnVtZXJpYyksIGNvcnIoUEFSVElBTF9BR0dSRUdBVEUgYjo6ZG91YmxlIHByZWNp c2lvbiwgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiksIGNvdmFyX3BvcChQQVJUSUFMX0FHR1JF R0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAqIGIpOjpkb3VibGUgcHJlY2lzaW9uKSwgY292 YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uLCAoYiAqIGIpOjpk b3VibGUgcHJlY2lzaW9uKSwgcmVncl9hdmd4KFBBUlRJQUxfQUdHUkVHQVRFICgyICogYik6OmRv dWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX2F2Z3koUEFSVElBTF9B R0dSRUdBVEUgKDIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNpc2lvbiks IHJlZ3JfaW50ZXJjZXB0KFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJsZSBw cmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3IyKFBBUlRJQUxfQUdHUkVHQVRF IChiICogYik6OmRvdWJsZSBwcmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3Ns b3BlKFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJsZSBwcmVjaXNpb24sIGI6 OmRvdWJsZSBwcmVjaXNpb24pLCByZWdyX3N4eChQQVJUSUFMX0FHR1JFR0FURSAoKDIgKiBiKSAr IDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgcmVncl9zeHkoUEFS VElBTF9BR0dSRUdBVEUgKGIgKiBiKTo6ZG91YmxlIHByZWNpc2lvbiwgYjo6ZG91YmxlIHByZWNp c2lvbiksIHJlZ3Jfc3l5KFBBUlRJQUxfQUdHUkVHQVRFICgoMiAqIGIpICsgMyk6OmRvdWJsZSBw cmVjaXNpb24sIGI6OmRvdWJsZSBwcmVjaXNpb24pLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUg Yjo6cmVhbCksIHN0ZGRldihQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwg c3RkZGV2KFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgc3RkZGV2KFBBUlRJQUxfQUdH UkVHQVRFIGIpLCBzdGRkZXYoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgc3RkZGV2KFBB UlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRF IGI6OnJlYWwpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNp b24pLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OnNtYWxsaW50KSwgc3RkZGV2X3Bv cChQQVJUSUFMX0FHR1JFR0FURSBiKSwgc3RkZGV2X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpi aWdpbnQpLCBzdGRkZXZfcG9wKFBBUlRJQUxfQUdHUkVHQVRFIGI6Om51bWVyaWMpLCBzdGRkZXZf c2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpyZWFsKSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dS RUdBVEUgYjo6ZG91YmxlIHByZWNpc2lvbiksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRF IGI6OnNtYWxsaW50KSwgc3RkZGV2X3NhbXAoUEFSVElBTF9BR0dSRUdBVEUgYiksIHN0ZGRldl9z YW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN0ZGRldl9zYW1wKFBBUlRJQUxfQUdH UkVHQVRFIGI6Om51bWVyaWMpLCBzdHJpbmdfYWdnKFBBUlRJQUxfQUdHUkVHQVRFIGNfMWMsICcs Jzo6dGV4dCksIHN0cmluZ19hZ2coUEFSVElBTF9BR0dSRUdBVEUgY18xYiwgRSdcXHgyYyc6OmJ5 dGVhKSwgc3VtKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmJpZ2ludCksIHN1bShQQVJUSUFMX0FHR1JF R0FURSBiOjpudW1lcmljKSwgdmFyaWFuY2UoUEFSVElBTF9BR0dSRUdBVEUgYjo6cmVhbCksIHZh cmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24pLCB2YXJpYW5jZShQ QVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZhcmlhbmNlKFBBUlRJQUxfQUdHUkVHQVRF IGIpLCB2YXJpYW5jZShQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCB2YXJpYW5jZShQQVJU SUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpy ZWFsKSwgdmFyX3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpkb3VibGUgcHJlY2lzaW9uKSwgdmFy X3BvcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZhcl9wb3AoUEFSVElBTF9BR0dS RUdBVEUgYiksIHZhcl9wb3AoUEFSVElBTF9BR0dSRUdBVEUgYjo6YmlnaW50KSwgdmFyX3BvcChQ QVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgdmFyX3NhbXAoUEFSVElBTF9BR0dSRUdBVEUg Yjo6cmVhbCksIHZhcl9zYW1wKFBBUlRJQUxfQUdHUkVHQVRFIGI6OmRvdWJsZSBwcmVjaXNpb24p LCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpzbWFsbGludCksIHZhcl9zYW1wKFBBUlRJ QUxfQUdHUkVHQVRFIGIpLCB2YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpiaWdpbnQpLCB2 YXJfc2FtcChQQVJUSUFMX0FHR1JFR0FURSBiOjpudW1lcmljKSwgYW55X3ZhbHVlKChiICogMCkp LCBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwgYml0X2FuZChjXzFvcjNpbnQ0 KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwgYml0X29yKGNfYml0KSwgYml0X29yKGNfMW9yM2ludDIp LCBiaXRfb3IoY18xb3IzaW50NCksIGJpdF9vcihjXzFvcjNpbnQ4KSwgYml0X3hvcihjX2JpdCks IGJpdF94b3IoY18xb3IzaW50MiksIGJpdF94b3IoY18xb3IzaW50NCksIGJpdF94b3IoY18xb3Iz aW50OCksIGJvb2xfYW5kKGNfYm9vbCksIGJvb2xfb3IoY19ib29sKSwgY291bnQoYiksIGNvdW50 KCopLCBldmVyeShjX2Jvb2wpLCBtYXgoY19pbnQ0YXJyYXkpLCBtYXgoY19lbnVtKSwgbWF4KGNf MWM6OmNoYXJhY3RlcigxKSksIG1heCgoJzAxLTAxLTIwMDAnOjpkYXRlICsgYikpLCBtYXgoKCcw LjAuMC4wJzo6aW5ldCArIGIpKSwgbWF4KGI6OnJlYWwpLCBtYXgoYjo6ZG91YmxlIHByZWNpc2lv biksIG1heChiOjpzbWFsbGludCksIG1heChiKSwgbWF4KGI6OmJpZ2ludCksIG1heChjX2ludGVy dmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19w Z19sc24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHop LCBtYXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLCBtaW4o Y19pbnQ0YXJyYXkpLCBtaW4oY19lbnVtKSwgbWluKGNfMWM6OmNoYXJhY3RlcigxKSksIG1pbigo JzAxLTAxLTIwMDAnOjpkYXRlICsgYikpLCBtaW4oKCcwLjAuMC4wJzo6aW5ldCArIGIpKSwgbWlu KGI6OnJlYWwpLCBtaW4oYjo6ZG91YmxlIHByZWNpc2lvbiksIG1pbihiOjpzbWFsbGludCksIG1p bihiKSwgbWluKGI6OmJpZ2ludCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBtaW4o Yjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBtaW4o Y18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBtaW4o Y190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50NHJh bmdlKSwgcmFuZ2VfaW50ZXJzZWN0X2FnZyhjX2ludDRtdWx0aXJhbmdlKSwgcmVncl9jb3VudCgo KDIgKiBiKSArIDMpOjpkb3VibGUgcHJlY2lzaW9uLCBiOjpkb3VibGUgcHJlY2lzaW9uKSwgc3Vt KGI6OnJlYWwpLCBzdW0oYjo6ZG91YmxlIHByZWNpc2lvbiksIHN1bShiOjpzbWFsbGludCksIHN1 bShiKSwgc3VtKGNfaW50ZXJ2YWwpLCBzdW0oY19tb25leSkgRlJPTSBwdWJsaWMucGFnZ190YWJf cDMgV0hFUkUgKChjX3NlcmlhbCA+PSAxKSkgQU5EICgoY19zZXJpYWwgPD0gMzApKQorKDE1IHJv d3MpCisKK1NFTEVDVCAvKiBhZ2dyZWdhdGUgPD4gcGFydGlhbCBhZ2dyZWdhdGUgKi8KKyAgICBh cnJheV9hZ2coY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coYiksCisgICAgYXZnKGI6OmludDIpLCBh dmcoYjo6aW50NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLAorICAgIGF2ZyhiOjpm bG9hdDQpLCBhdmcoYjo6ZmxvYXQ4KSwKKyAgICBjb3JyKGI6OmZsb2F0OCwgKGIgKiBiKTo6Zmxv YXQ4KSwKKyAgICBjb3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNv dmFyX3NhbXAoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIHJlZ3JfYXZneCgoMiAq IGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9hdmd5KCgyICogYik6OmZsb2F0OCwg Yjo6ZmxvYXQ4KSwKKyAgICByZWdyX2ludGVyY2VwdCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpm bG9hdDgpLAorICAgIHJlZ3JfcjIoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJl Z3Jfc2xvcGUoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N4eCgo MiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3h5KChiICogYik6OmZs b2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N5eSgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpm bG9hdDgpLAorICAgIHN0ZGRldihiOjpmbG9hdDQpLCBzdGRkZXYoYjo6ZmxvYXQ4KSwgc3RkZGV2 KGI6OmludDIpLCBzdGRkZXYoYjo6aW50NCksIHN0ZGRldihiOjppbnQ4KSwgc3RkZGV2KGI6Om51 bWVyaWMpLAorICAgIHN0ZGRldl9wb3AoYjo6ZmxvYXQ0KSwgc3RkZGV2X3BvcChiOjpmbG9hdDgp LCBzdGRkZXZfcG9wKGI6OmludDIpLCBzdGRkZXZfcG9wKGI6OmludDQpLCBzdGRkZXZfcG9wKGI6 OmludDgpLCBzdGRkZXZfcG9wKGI6Om51bWVyaWMpLAorICAgIHN0ZGRldl9zYW1wKGI6OmZsb2F0 NCksIHN0ZGRldl9zYW1wKGI6OmZsb2F0OCksIHN0ZGRldl9zYW1wKGI6OmludDIpLCBzdGRkZXZf c2FtcChiOjppbnQ0KSwgc3RkZGV2X3NhbXAoYjo6aW50OCksIHN0ZGRldl9zYW1wKGI6Om51bWVy aWMpLAorICAgIHN0cmluZ19hZ2coY18xYywgJywnKSwgc3RyaW5nX2FnZyhjXzFiLCAnLCcpLAor ICAgIHN1bShiOjppbnQ4KSwgc3VtKGI6Om51bWVyaWMpLAorICAgIHZhcmlhbmNlKGI6OmZsb2F0 NCksIHZhcmlhbmNlKGI6OmZsb2F0OCksIHZhcmlhbmNlKGI6OmludDIpLCB2YXJpYW5jZShiOjpp bnQ0KSwgdmFyaWFuY2UoYjo6aW50OCksIHZhcmlhbmNlKGI6Om51bWVyaWMpLAorICAgIHZhcl9w b3AoYjo6ZmxvYXQ0KSwgdmFyX3BvcChiOjpmbG9hdDgpLCB2YXJfcG9wKGI6OmludDIpLCB2YXJf cG9wKGI6OmludDQpLCB2YXJfcG9wKGI6OmludDgpLCB2YXJfcG9wKGI6Om51bWVyaWMpLAorICAg IHZhcl9zYW1wKGI6OmZsb2F0NCksIHZhcl9zYW1wKGI6OmZsb2F0OCksIHZhcl9zYW1wKGI6Omlu dDIpLCB2YXJfc2FtcChiOjppbnQ0KSwgdmFyX3NhbXAoYjo6aW50OCksIHZhcl9zYW1wKGI6Om51 bWVyaWMpLAorICAgIC8qIGFnZ3JlZ2F0ZSA9IHBhcnRpYWwgYWdncmVnYXRlICovCisgICAgYW55 X3ZhbHVlKGIgKiAwKSwKKyAgICBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwg Yml0X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwKKyAgICBiaXRfb3IoY19i aXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9y M2ludDgpLAorICAgIGJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIpLCBiaXRfeG9y KGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLAorICAgIGJvb2xfYW5kKGNfYm9vbCks CisgICAgYm9vbF9vcihjX2Jvb2wpLAorICAgIGNvdW50KGIpLCBjb3VudCgqKSwKKyAgICBldmVy eShjX2Jvb2wpLAorICAgIG1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6 Y2hhcigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWF4KCcwLjAuMC4wJzo6aW5l dCArIGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0OCksIG1heChiOjppbnQyKSwgbWF4 KGI6OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVydmFsKSwgbWF4KGNfbW9uZXkpLCBt YXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19sc24pLCBtYXgoY190aWQpLCBt YXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBtYXgoY190aW1lc3RhbXApLCBt YXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorICAgIG1pbihjX2ludDRhcnJheSksIG1p bihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbignMjAwMC0wMS0wMSc6OmRhdGUgKyBi KSwgbWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6ZmxvYXQ0KSwgbWluKGI6OmZsb2F0 OCksIG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4oYjo6aW50OCksIG1pbihjX2ludGVy dmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19w Z19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHop LCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLAorICAg IHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNf aW50NG11bHRpcmFuZ2UpLAorICAgIHJlZ3JfY291bnQoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6 ZmxvYXQ4KSwKKyAgICBzdW0oYjo6ZmxvYXQ0KSwgc3VtKGI6OmZsb2F0OCksIHN1bShiOjppbnQy KSwgc3VtKGI6OmludDQpLAlzdW0oY19pbnRlcnZhbCksIHN1bShjX21vbmV5KQorICBGUk9NIHBh Z2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBhcnJheV9hZ2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5X2FnZyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgIGF2ZyAgICAgICAgIHwgICAgICAgICBh dmcgICAgICAgICB8ICAgICAgICAgYXZnICAgICAgICAgfCAgICBhdmcgICAgIHwgYXZnICB8IGF2 ZyAgfCAgICAgICBjb3JyICAgICAgICB8ICAgIGNvdmFyX3BvcCAgICAgfCBjb3Zhcl9zYW1wIHwg cmVncl9hdmd4IHwgcmVncl9hdmd5IHwgcmVncl9pbnRlcmNlcHQgfCAgICAgIHJlZ3JfcjIgICAg ICB8IHJlZ3Jfc2xvcGUgfCByZWdyX3N4eCB8IHJlZ3Jfc3h5IHwgcmVncl9zeXkgfCAgICAgc3Rk ZGV2ICAgICAgfCAgICAgc3RkZGV2ICAgICAgfCAgICAgICBzdGRkZXYgICAgICAgfCAgICAgICBz dGRkZXYgICAgICAgfCAgICAgICBzdGRkZXYgICAgICAgfCAgICAgICBzdGRkZXYgICAgICAgfCAg ICBzdGRkZXZfcG9wICAgIHwgICAgc3RkZGV2X3BvcCAgICB8ICAgICBzdGRkZXZfcG9wICAgICB8 ICAgICBzdGRkZXZfcG9wICAgICB8ICAgICBzdGRkZXZfcG9wICAgICB8ICAgICBzdGRkZXZfcG9w ICAgICB8ICAgc3RkZGV2X3NhbXAgICB8ICAgc3RkZGV2X3NhbXAgICB8ICAgIHN0ZGRldl9zYW1w ICAgICB8ICAgIHN0ZGRldl9zYW1wICAgICB8ICAgIHN0ZGRldl9zYW1wICAgICB8ICAgIHN0ZGRl dl9zYW1wICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZ19hZ2cgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cmluZ19hZ2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgc3VtIHwgc3VtIHwgdmFyaWFuY2UgfCB2YXJpYW5j ZSB8ICAgICAgdmFyaWFuY2UgICAgICAgfCAgICAgIHZhcmlhbmNlICAgICAgIHwgICAgICB2YXJp YW5jZSAgICAgICB8ICAgICAgdmFyaWFuY2UgICAgICAgfCAgICAgdmFyX3BvcCAgICAgIHwgICAg IHZhcl9wb3AgICAgICB8ICAgICAgIHZhcl9wb3AgICAgICAgfCAgICAgICB2YXJfcG9wICAgICAg IHwgICAgICAgdmFyX3BvcCAgICAgICB8ICAgICAgIHZhcl9wb3AgICAgICAgfCB2YXJfc2FtcCB8 IHZhcl9zYW1wIHwgICAgICB2YXJfc2FtcCAgICAgICB8ICAgICAgdmFyX3NhbXAgICAgICAgfCAg ICAgIHZhcl9zYW1wICAgICAgIHwgICAgICB2YXJfc2FtcCAgICAgICB8IGFueV92YWx1ZSB8IGJp dF9hbmQgfCBiaXRfYW5kIHwgYml0X2FuZCB8IGJpdF9hbmQgfCBiaXRfb3IgfCBiaXRfb3IgfCBi aXRfb3IgfCBiaXRfb3IgfCBiaXRfeG9yIHwgYml0X3hvciB8IGJpdF94b3IgfCBiaXRfeG9yIHwg Ym9vbF9hbmQgfCBib29sX29yIHwgY291bnQgfCBjb3VudCB8IGV2ZXJ5IHwgIG1heCAgfCAgbWF4 ICB8IG1heCB8ICAgIG1heCAgICAgfCAgIG1heCAgICB8IG1heCB8IG1heCB8IG1heCB8IG1heCB8 IG1heCB8ICAgbWF4ICAgfCAgbWF4ICB8IG1heCB8IG1heCB8IG1heCAgfCAgbWF4ICAgfCBtYXgg fCAgIG1heCAgICB8ICAgICBtYXggICAgIHwgICAgICAgICAgIG1heCAgICAgICAgICAgIHwgICAg ICAgICAgICAgbWF4ICAgICAgICAgICAgICB8IG1heCB8ICBtaW4gIHwgbWluIHwgbWluIHwgICAg bWluICAgICB8ICAgbWluICAgfCBtaW4gfCBtaW4gfCBtaW4gfCBtaW4gfCBtaW4gfCBtaW4gfCAg bWluICB8IG1pbiB8IG1pbiB8IG1pbiB8ICBtaW4gIHwgbWluIHwgICBtaW4gICAgfCAgICAgbWlu ICAgICB8ICAgICAgICAgICBtaW4gICAgICAgICAgICB8ICAgICAgICAgICAgIG1pbiAgICAgICAg ICAgICAgfCBtaW4gfCByYW5nZV9pbnRlcnNlY3RfYWdnIHwgcmFuZ2VfaW50ZXJzZWN0X2FnZyB8 IHJlZ3JfY291bnQgfCBzdW0gfCBzdW0gfCBzdW0gfCBzdW0gfCAgICBzdW0gICAgfCAgc3VtICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLSstLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0r LS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0rLS0t LS0tKy0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0t LSstLS0tLSstLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t LS0tKy0tLS0tKy0tLS0tKy0tLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0rLS0tLS0tLSstLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tCisge3sxLDB9LHswLDB9LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9 LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9LHswLDB9LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9LHsx LDB9LHswLDB9LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9 LHsxLDB9LHswLDB9LHsxLDB9LHswLDB9LHsxLDB9fSB8IHsxLDIsMyw0LDUsNiw3LDgsOSwzMCwx MCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywyNCwyNSwyNiwyNywyOCwy OX0gfCAxNS41MDAwMDAwMDAwMDAwMDAwIHwgMTUuNTAwMDAwMDAwMDAwMDAwMCB8IDE1LjUwMDAw MDAwMDAwMDAwMDAgfCBAIDAuNSBzZWNzIHwgMTUuNSB8IDE1LjUgfCAwLjk3MDI5ODkxMzU4OTI1 OCB8IDIzMjIuNDE2NjY2NjY2NjcgfCAgICAgMjQwMi41IHwgICAgICAxNS41IHwgICAgICAgIDMx IHwgICAgICAgICAgICAgIDMgfCAwLjk0MTQ3OTk4MTcxMjQ5NCB8ICAgICAgICAgIDIgfCAgIDIy NDcuNSB8ICA2OTY3Mi41IHwgICAgIDg5OTAgfCA4LjgwMzQwODQzMDgyOTUgfCA4LjgwMzQwODQz MDgyOTUgfCA4LjgwMzQwODQzMDgyOTUwNDYgfCA4LjgwMzQwODQzMDgyOTUwNDYgfCA4LjgwMzQw ODQzMDgyOTUwNDYgfCA4LjgwMzQwODQzMDgyOTUwNDYgfCA4LjY1NTQ0MTQ0ODM5OTE5IHwgOC42 NTU0NDE0NDgzOTkxOSB8IDguNjU1NDQxNDQ4Mzk5MTg5OSB8IDguNjU1NDQxNDQ4Mzk5MTg5OSB8 IDguNjU1NDQxNDQ4Mzk5MTg5OSB8IDguNjU1NDQxNDQ4Mzk5MTg5OSB8IDguODAzNDA4NDMwODI5 NSB8IDguODAzNDA4NDMwODI5NSB8IDguODAzNDA4NDMwODI5NTA0NiB8IDguODAzNDA4NDMwODI5 NTA0NiB8IDguODAzNDA4NDMwODI5NTA0NiB8IDguODAzNDA4NDMwODI5NTA0NiB8IDAsMSwyLDMs NCw1LDYsNyw4LDksOSwwLDEsMiwzLDQsNSw2LDcsOCw5LDAsMSwyLDMsNCw1LDYsNyw4IHwgXHgz MDJjMzEyYzMyMmMzMzJjMzQyYzM1MmMzNjJjMzcyYzM4MmMzOTJjMzkyYzMwMmMzMTJjMzIyYzMz MmMzNDJjMzUyYzM2MmMzNzJjMzgyYzM5MmMzMDJjMzEyYzMyMmMzMzJjMzQyYzM1MmMzNjJjMzcy YzM4IHwgNDY1IHwgNDY1IHwgICAgIDc3LjUgfCAgICAgNzcuNSB8IDc3LjUwMDAwMDAwMDAwMDAw MDAgfCA3Ny41MDAwMDAwMDAwMDAwMDAwIHwgNzcuNTAwMDAwMDAwMDAwMDAwMCB8IDc3LjUwMDAw MDAwMDAwMDAwMDAgfCA3NC45MTY2NjY2NjY2NjY3IHwgNzQuOTE2NjY2NjY2NjY2NyB8IDc0Ljkx NjY2NjY2NjY2NjY2NjcgfCA3NC45MTY2NjY2NjY2NjY2NjY3IHwgNzQuOTE2NjY2NjY2NjY2NjY2 NyB8IDc0LjkxNjY2NjY2NjY2NjY2NjcgfCAgICAgNzcuNSB8ICAgICA3Ny41IHwgNzcuNTAwMDAw MDAwMDAwMDAwMCB8IDc3LjUwMDAwMDAwMDAwMDAwMDAgfCA3Ny41MDAwMDAwMDAwMDAwMDAwIHwg NzcuNTAwMDAwMDAwMDAwMDAwMCB8ICAgICAgICAgMCB8IDAxICAgICAgfCAgICAgICAxIHwgICAg ICAgMSB8ICAgICAgIDEgfCAxMSAgICAgfCAgICAgIDMgfCAgICAgIDMgfCAgICAgIDMgfCAxMCAg ICAgIHwgICAgICAgMiB8ICAgICAgIDIgfCAgICAgICAyIHwgZiAgICAgICAgfCB0ICAgICAgIHwg ICAgMzAgfCAgICAzMCB8IGYgICAgIHwgezEsMH0gfCBoYXBweSB8IDkgICB8IDAxLTMxLTIwMDAg fCAwLjAuMC4zMCB8ICAzMCB8ICAzMCB8ICAzMCB8ICAzMCB8ICAzMCB8IEAgMSBzZWMgfCAkMS4w MCB8ICAzMCB8ICAzMCB8IDAvMzAgfCAoMCwzMCkgfCA5ICAgfCAwMDowMDozMCB8IDAwOjAwOjMw KzAwIHwgU2F0IEphbiAwMSAwMDowMDozMCAyMDAwIHwgU2F0IEphbiAwMSAwMDowMDozMCAyMDAw IFVUQyB8ICAgOSB8IHswLDB9IHwgc2FkIHwgMCAgIHwgMDEtMDItMjAwMCB8IDAuMC4wLjEgfCAg IDEgfCAgIDEgfCAgIDEgfCAgIDEgfCAgIDEgfCBAIDAgfCAkMC4wMCB8ICAgMSB8ICAgMSB8IDAv MSB8ICgwLDEpIHwgMCAgIHwgMDA6MDA6MDEgfCAwMDowMDowMSswMCB8IFNhdCBKYW4gMDEgMDA6 MDA6MDEgMjAwMCB8IFNhdCBKYW4gMDEgMDA6MDA6MDEgMjAwMCBVVEMgfCAgIDAgfCBbMCwxKSAg ICAgICAgICAgICAgIHwge1swLDEpLFsxMDAsMTAxKX0gICB8ICAgICAgICAgMzAgfCA0NjUgfCA0 NjUgfCA0NjUgfCA0NjUgfCBAIDE1IHNlY3MgfCAkMTUuMDAKKygxIHJvdykKKworLS0gVGVzdHMg Zm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05T IChBREQgY2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCAnZmFsc2UnKTsKK0VYUExBSU4g KFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikg RlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg U29ydAorICAgT3V0cHV0OiBwYWdnX3RhYi5iLCAoYXZnKHBhZ2dfdGFiLmEpKSwgKG1heChwYWdn X3RhYi5hKSksIChjb3VudCgqKSkKKyAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCisgICAtPiAgRmlu YWxpemUgSGFzaEFnZ3JlZ2F0ZQorICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYi5iLCBhdmcocGFn Z190YWIuYSksIG1heChwYWdnX3RhYi5hKSwgY291bnQoKikKKyAgICAgICAgIEdyb3VwIEtleTog cGFnZ190YWIuYgorICAgICAgICAgLT4gIEFwcGVuZAorICAgICAgICAgICAgICAgLT4gIEZvcmVp Z24gU2NhbgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYi5iLCAoUEFSVElB TCBhdmcocGFnZ190YWIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuYSkpLCAoUEFSVElBTCBj b3VudCgqKSkKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChw dWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3Rl IFNRTDogU0VMRUNUIGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgq KSBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMSBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAg Rm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzEuYiwg KFBBUlRJQUwgYXZnKHBhZ2dfdGFiXzEuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5hKSks IChQQVJUSUFMIGNvdW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dy ZWdhdGUgb24gKHB1YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190YWJfMSkKKyAgICAgICAgICAgICAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1h eChhKSwgY291bnQoKikgRlJPTSBwdWJsaWMucGFnZ190YWJfcDIgR1JPVVAgQlkgMQorICAgICAg ICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBw YWdnX3RhYl8yLmIsIChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8yLmEpKSwgKFBBUlRJQUwgbWF4KHBh Z2dfdGFiXzIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSkKKyAgICAgICAgICAgICAgICAgICAgIFJl bGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzIpCisg ICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdH UkVHQVRFIGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AzIEdST1VQ IEJZIDEKKygxOSByb3dzKQorCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZS T00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworIGIgIHwgICAgICAgICBhdmcgICAg ICAgICB8IG1heCB8IGNvdW50IAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0t LS0tLQorICAwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgIDEgfCAxMS4w MDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAgMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAg fCAgMjIgfCAgICA2MAorICAzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisg IDQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAgNSB8IDE1LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjUgfCAgICA2MAorICA2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8 ICAgIDYwCisgIDcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAgOCB8IDE4 LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorICA5IHwgMTkuMDAwMDAwMDAwMDAwMDAw MCB8ICAyOSB8ICAgIDYwCisgMTAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAK KyAxMSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDEyIHwgMTIuMDAwMDAw MDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgMTMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIz IHwgICAgNjAKKyAxNCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDE1IHwg MTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgMTYgfCAxNi4wMDAwMDAwMDAwMDAw MDAwIHwgIDI2IHwgICAgNjAKKyAxNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2 MAorIDE4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMTkgfCAxOS4wMDAw MDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyAyMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAg MjAgfCAgICA2MAorIDIxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMjIg fCAxMi4wMDAwMDAwMDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAyMyB8IDEzLjAwMDAwMDAwMDAw MDAwMDAgfCAgMjMgfCAgICA2MAorIDI0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAg IDYwCisgMjUgfCAxNS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAyNiB8IDE2LjAw MDAwMDAwMDAwMDAwMDAgfCAgMjYgfCAgICA2MAorIDI3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyNyB8ICAgIDYwCisgMjggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyAy OSB8IDE5LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDMwIHwgMTAuMDAwMDAwMDAw MDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgMzEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwg ICAgNjAKKyAzMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAorIDMzIHwgMTMu MDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgMzQgfCAxNC4wMDAwMDAwMDAwMDAwMDAw IHwgIDI0IHwgICAgNjAKKyAzNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAor IDM2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMzcgfCAxNy4wMDAwMDAw MDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAzOCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjgg fCAgICA2MAorIDM5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgNDAgfCAx MC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyA0MSB8IDExLjAwMDAwMDAwMDAwMDAw MDAgfCAgMjEgfCAgICA2MAorIDQyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYw CisgNDMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyA0NCB8IDE0LjAwMDAw MDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDQ1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAy NSB8ICAgIDYwCisgNDYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyA0NyB8 IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDQ4IHwgMTguMDAwMDAwMDAwMDAw MDAwMCB8ICAyOCB8ICAgIDYwCisgNDkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAg NjAKKyg1MCByb3dzKQorCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoU0VUIGNoZWNr X3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgJ3RydWUnKTsKK0VYUExBSU4gKFZFUkJPU0UsIENP U1RTIE9GRikKK1NFTEVDVCBiLCBhdmcoYSksIG1heChhKSwgY291bnQoKikgRlJPTSBwYWdnX3Rh YiBHUk9VUCBCWSBiIE9SREVSIEJZIDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU29ydAorICAgT3V0 cHV0OiBwYWdnX3RhYi5iLCAoYXZnKHBhZ2dfdGFiLmEpKSwgKG1heChwYWdnX3RhYi5hKSksIChj b3VudCgqKSkKKyAgIFNvcnQgS2V5OiBwYWdnX3RhYi5iCisgICAtPiAgRmluYWxpemUgSGFzaEFn Z3JlZ2F0ZQorICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYi5iLCBhdmcocGFnZ190YWIuYSksIG1h eChwYWdnX3RhYi5hKSwgY291bnQoKikKKyAgICAgICAgIEdyb3VwIEtleTogcGFnZ190YWIuYgor ICAgICAgICAgLT4gIEFwcGVuZAorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbgorICAg ICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYi5iLCAoUEFSVElBTCBhdmcocGFnZ190 YWIuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWIuYSkpLCAoUEFSVElBTCBjb3VudCgqKSkKKyAg ICAgICAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uIChwdWJsaWMuZnBhZ2df dGFiX3AxIHBhZ2dfdGFiKQorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNU IGIsIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHB1Ymxp Yy5wYWdnX3RhYl9wMSBHUk9VUCBCWSAxCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2Fu CisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6IHBhZ2dfdGFiXzEuYiwgKFBBUlRJQUwgYXZn KHBhZ2dfdGFiXzEuYSkpLCAoUEFSVElBTCBtYXgocGFnZ190YWJfMS5hKSksIChQQVJUSUFMIGNv dW50KCopKQorICAgICAgICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKHB1 YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190YWJfMSkKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90 ZSBTUUw6IFNFTEVDVCBiLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSksIG1heChhKSwgY291bnQo KikgRlJPTSBwdWJsaWMucGFnZ190YWJfcDIgR1JPVVAgQlkgMQorICAgICAgICAgICAgICAgLT4g IEZvcmVpZ24gU2NhbgorICAgICAgICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmIs IChQQVJUSUFMIGF2ZyhwYWdnX3RhYl8yLmEpKSwgKFBBUlRJQUwgbWF4KHBhZ2dfdGFiXzIuYSkp LCAoUEFSVElBTCBjb3VudCgqKSkKKyAgICAgICAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdn cmVnYXRlIG9uIChwdWJsaWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzIpCisgICAgICAgICAgICAg ICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYiwgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIGEpLCBt YXgoYSksIGNvdW50KCopIEZST00gcHVibGljLnBhZ2dfdGFiX3AzIEdST1VQIEJZIDEKKygxOSBy b3dzKQorCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIg R1JPVVAgQlkgYiBPUkRFUiBCWSAxOworIGIgIHwgICAgICAgICBhdmcgICAgICAgICB8IG1heCB8 IGNvdW50IAorLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0rLS0tLS0tLQorICAwIHwg MTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMCB8ICAgIDYwCisgIDEgfCAxMS4wMDAwMDAwMDAwMDAw MDAwIHwgIDIxIHwgICAgNjAKKyAgMiB8IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2 MAorICAzIHwgMTMuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMyB8ICAgIDYwCisgIDQgfCAxNC4wMDAw MDAwMDAwMDAwMDAwIHwgIDI0IHwgICAgNjAKKyAgNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAg MjUgfCAgICA2MAorICA2IHwgMTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgIDcg fCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwgIDI3IHwgICAgNjAKKyAgOCB8IDE4LjAwMDAwMDAwMDAw MDAwMDAgfCAgMjggfCAgICA2MAorICA5IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAg IDYwCisgMTAgfCAxMC4wMDAwMDAwMDAwMDAwMDAwIHwgIDIwIHwgICAgNjAKKyAxMSB8IDExLjAw MDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAgICA2MAorIDEyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8 ICAyMiB8ICAgIDYwCisgMTMgfCAxMy4wMDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyAx NCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjQgfCAgICA2MAorIDE1IHwgMTUuMDAwMDAwMDAw MDAwMDAwMCB8ICAyNSB8ICAgIDYwCisgMTYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwg ICAgNjAKKyAxNyB8IDE3LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDE4IHwgMTgu MDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8ICAgIDYwCisgMTkgfCAxOS4wMDAwMDAwMDAwMDAwMDAw IHwgIDI5IHwgICAgNjAKKyAyMCB8IDEwLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjAgfCAgICA2MAor IDIxIHwgMTEuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMSB8ICAgIDYwCisgMjIgfCAxMi4wMDAwMDAw MDAwMDAwMDAwIHwgIDIyIHwgICAgNjAKKyAyMyB8IDEzLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjMg fCAgICA2MAorIDI0IHwgMTQuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNCB8ICAgIDYwCisgMjUgfCAx NS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI1IHwgICAgNjAKKyAyNiB8IDE2LjAwMDAwMDAwMDAwMDAw MDAgfCAgMjYgfCAgICA2MAorIDI3IHwgMTcuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNyB8ICAgIDYw CisgMjggfCAxOC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI4IHwgICAgNjAKKyAyOSB8IDE5LjAwMDAw MDAwMDAwMDAwMDAgfCAgMjkgfCAgICA2MAorIDMwIHwgMTAuMDAwMDAwMDAwMDAwMDAwMCB8ICAy MCB8ICAgIDYwCisgMzEgfCAxMS4wMDAwMDAwMDAwMDAwMDAwIHwgIDIxIHwgICAgNjAKKyAzMiB8 IDEyLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjIgfCAgICA2MAorIDMzIHwgMTMuMDAwMDAwMDAwMDAw MDAwMCB8ICAyMyB8ICAgIDYwCisgMzQgfCAxNC4wMDAwMDAwMDAwMDAwMDAwIHwgIDI0IHwgICAg NjAKKyAzNSB8IDE1LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjUgfCAgICA2MAorIDM2IHwgMTYuMDAw MDAwMDAwMDAwMDAwMCB8ICAyNiB8ICAgIDYwCisgMzcgfCAxNy4wMDAwMDAwMDAwMDAwMDAwIHwg IDI3IHwgICAgNjAKKyAzOCB8IDE4LjAwMDAwMDAwMDAwMDAwMDAgfCAgMjggfCAgICA2MAorIDM5 IHwgMTkuMDAwMDAwMDAwMDAwMDAwMCB8ICAyOSB8ICAgIDYwCisgNDAgfCAxMC4wMDAwMDAwMDAw MDAwMDAwIHwgIDIwIHwgICAgNjAKKyA0MSB8IDExLjAwMDAwMDAwMDAwMDAwMDAgfCAgMjEgfCAg ICA2MAorIDQyIHwgMTIuMDAwMDAwMDAwMDAwMDAwMCB8ICAyMiB8ICAgIDYwCisgNDMgfCAxMy4w MDAwMDAwMDAwMDAwMDAwIHwgIDIzIHwgICAgNjAKKyA0NCB8IDE0LjAwMDAwMDAwMDAwMDAwMDAg fCAgMjQgfCAgICA2MAorIDQ1IHwgMTUuMDAwMDAwMDAwMDAwMDAwMCB8ICAyNSB8ICAgIDYwCisg NDYgfCAxNi4wMDAwMDAwMDAwMDAwMDAwIHwgIDI2IHwgICAgNjAKKyA0NyB8IDE3LjAwMDAwMDAw MDAwMDAwMDAgfCAgMjcgfCAgICA2MAorIDQ4IHwgMTguMDAwMDAwMDAwMDAwMDAwMCB8ICAyOCB8 ICAgIDYwCisgNDkgfCAxOS4wMDAwMDAwMDAwMDAwMDAwIHwgIDI5IHwgICAgNjAKKyg1MCByb3dz KQorCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoU0VUIGZkd190dXBsZV9jb3N0ICcx LjAnKTsKK1NFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9qb2luPW9uOworRVhQTEFJTiAoVkVSQk9T RSwgQ09TVFMgT0ZGKQorU0VMRUNUIGF2Zyh0MS5iKSwgYXZnKHQxLmI6OmludDgpIEZST00gcGFn Z190YWIgdDEgSk9JTiBwYWdnX3RhYiB0MiBVU0lORyhhKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIEZpbmFsaXplIEFnZ3JlZ2F0ZQorICAgT3V0cHV0OiBhdmcodDEuYiksIGF2ZygodDEu Yik6OmJpZ2ludCkKKyAgIC0+ICBBcHBlbmQKKyAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4KKyAg ICAgICAgICAgICAgIE91dHB1dDogKFBBUlRJQUwgYXZnKHQxLmIpKSwgKFBBUlRJQUwgYXZnKCh0 MS5iKTo6YmlnaW50KSkKKyAgICAgICAgICAgICAgIFJlbGF0aW9uczogQWdncmVnYXRlIG9uICgo cHVibGljLmZwYWdnX3RhYl9wMSB0MSkgSU5ORVIgSk9JTiAocHVibGljLmZwYWdnX3RhYl9wMSB0 MikpCisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYXZnKFBBUlRJQUxfQUdHUkVH QVRFIHI0LmIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjQuYjo6YmlnaW50KSBGUk9NIChwdWJs aWMucGFnZ190YWJfcDEgcjQgSU5ORVIgSk9JTiBwdWJsaWMucGFnZ190YWJfcDEgcjcgT04gKCgo cjQuYSA9IHI3LmEpKSkpCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAg ICBPdXRwdXQ6IChQQVJUSUFMIGF2Zyh0MV8xLmIpKSwgKFBBUlRJQUwgYXZnKCh0MV8xLmIpOjpi aWdpbnQpKQorICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKChwdWJsaWMu ZnBhZ2dfdGFiX3AyIHQxXzEpIElOTkVSIEpPSU4gKHB1YmxpYy5mcGFnZ190YWJfcDIgdDJfMSkp CisgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYXZnKFBBUlRJQUxfQUdHUkVHQVRF IHI1LmIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjUuYjo6YmlnaW50KSBGUk9NIChwdWJsaWMu cGFnZ190YWJfcDIgcjUgSU5ORVIgSk9JTiBwdWJsaWMucGFnZ190YWJfcDIgcjggT04gKCgocjUu YSA9IHI4LmEpKSkpCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuCisgICAgICAgICAgICAgICBP dXRwdXQ6IChQQVJUSUFMIGF2Zyh0MV8yLmIpKSwgKFBBUlRJQUwgYXZnKCh0MV8yLmIpOjpiaWdp bnQpKQorICAgICAgICAgICAgICAgUmVsYXRpb25zOiBBZ2dyZWdhdGUgb24gKChwdWJsaWMuZnBh Z2dfdGFiX3AzIHQxXzIpIElOTkVSIEpPSU4gKHB1YmxpYy5mcGFnZ190YWJfcDMgdDJfMikpCisg ICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYXZnKFBBUlRJQUxfQUdHUkVHQVRFIHI2 LmIpLCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgcjYuYjo6YmlnaW50KSBGUk9NIChwdWJsaWMucGFn Z190YWJfcDMgcjYgSU5ORVIgSk9JTiBwdWJsaWMucGFnZ190YWJfcDMgcjkgT04gKCgocjYuYSA9 IHI5LmEpKSkpCisoMTUgcm93cykKKworU0VMRUNUIGF2Zyh0MS5iKSwgYXZnKHQxLmI6OmludDgp IEZST00gcGFnZ190YWIgdDEgSk9JTiBwYWdnX3RhYiB0MiBVU0lORyhhKTsKKyAgICAgICAgIGF2 ZyAgICAgICAgIHwgICAgICAgICBhdmcgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAyNC41MDAwMDAwMDAwMDAwMDAwIHwgMjQuNTAwMDAwMDAw MDAwMDAwMAorKDEgcm93KQorCitSRVNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9qb2luOworQUxU RVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBmZHdfdHVwbGVfY29zdCAnMC4xJyk7CitB TFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0 ZV9zdXBwb3J0KTsKKy0tIEl0IGlzIHVuc2FmZSB0byBwdXNoIGRvd24gcGFydGlhbCBhZ2dyZWdh dGVzIHdoaWNoIGNvbnRhaW4gRElTVElOQ1QgY2xhdXNlcworRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKQorU0VMRUNUIG1heChhKSwgY291bnQoZGlzdGluY3QgYikgRlJPTSBwYWdnX3RhYjsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgT3V0cHV0OiBtYXgocGFnZ190YWIuYSksIGNvdW50 KERJU1RJTkNUIHBhZ2dfdGFiLmIpCiAgICAtPiAgTWVyZ2UgQXBwZW5kCiAgICAgICAgICBTb3J0 IEtleTogcGFnZ190YWIuYgotICAgICAgICAgLT4gIFBhcnRpYWwgR3JvdXBBZ2dyZWdhdGUKLSAg ICAgICAgICAgICAgIEdyb3VwIEtleTogcGFnZ190YWIuYgotICAgICAgICAgICAgICAgLT4gIEZv cmVpZ24gU2NhbiBvbiBmcGFnZ190YWJfcDEgcGFnZ190YWIKLSAgICAgICAgIC0+ICBQYXJ0aWFs IEdyb3VwQWdncmVnYXRlCi0gICAgICAgICAgICAgICBHcm91cCBLZXk6IHBhZ2dfdGFiXzEuYgot ICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBmcGFnZ190YWJfcDIgcGFnZ190YWJf MQotICAgICAgICAgLT4gIFBhcnRpYWwgR3JvdXBBZ2dyZWdhdGUKLSAgICAgICAgICAgICAgIEdy b3VwIEtleTogcGFnZ190YWJfMi5iCi0gICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IGZwYWdnX3RhYl9wMyBwYWdnX3RhYl8yCi0oMTQgcm93cykKKyAgICAgICAgIC0+ICBGb3JlaWdu IFNjYW4gb24gcHVibGljLmZwYWdnX3RhYl9wMSBwYWdnX3RhYl8xCisgICAgICAgICAgICAgICBP dXRwdXQ6IHBhZ2dfdGFiXzEuYSwgcGFnZ190YWJfMS5iCisgICAgICAgICAgICAgICBSZW1vdGUg U1FMOiBTRUxFQ1QgYSwgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMSBPUkRFUiBCWSBiIEFTQyBO VUxMUyBMQVNUCisgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mcGFnZ190YWJf cDIgcGFnZ190YWJfMgorICAgICAgICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYl8yLmEsIHBhZ2df dGFiXzIuYgorICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIgRlJPTSBwdWJs aWMucGFnZ190YWJfcDIgT1JERVIgQlkgYiBBU0MgTlVMTFMgTEFTVAorICAgICAgICAgLT4gIEZv cmVpZ24gU2NhbiBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AzIHBhZ2dfdGFiXzMKKyAgICAgICAgICAg ICAgIE91dHB1dDogcGFnZ190YWJfMy5hLCBwYWdnX3RhYl8zLmIKKyAgICAgICAgICAgICAgIFJl bW90ZSBTUUw6IFNFTEVDVCBhLCBiIEZST00gcHVibGljLnBhZ2dfdGFiX3AzIE9SREVSIEJZIGIg QVNDIE5VTExTIExBU1QKKygxMyByb3dzKQorCitTRUxFQ1QgbWF4KGEpLCBjb3VudChkaXN0aW5j dCBiKSBGUk9NIHBhZ2dfdGFiOworIG1heCB8IGNvdW50IAorLS0tLS0rLS0tLS0tLQorICAyOSB8 ICAgIDUwCisoMSByb3cpCisKKy0tIEl0IGlzIHVuc2FmZSB0byBwdXNoIGRvd24gcGFydGlhbCBh Z2dyZWdhdGVzIHdoaWNoIGNvbnRhaW4gT1JERVIgQlkgY2xhdXNlcworRVhQTEFJTiAoVkVSQk9T RSwgQ09TVFMgT0ZGKSBTRUxFQ1QgYXJyYXlfYWdnKGIgb3JkZXIgYnkgYikgRlJPTSBwYWdnX3Rh YiBXSEVSRSBjX3NlcmlhbCBiZXR3ZWVuIDEgYW5kIDMwOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICBPdXRw dXQ6IGFycmF5X2FnZyhwYWdnX3RhYi5iIE9SREVSIEJZIHBhZ2dfdGFiLmIpCisgICAtPiAgU29y dAorICAgICAgICAgT3V0cHV0OiBwYWdnX3RhYi5iCisgICAgICAgICBTb3J0IEtleTogcGFnZ190 YWIuYgorICAgICAgICAgLT4gIEFwcGVuZAorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh biBvbiBwdWJsaWMuZnBhZ2dfdGFiX3AxIHBhZ2dfdGFiXzEKKyAgICAgICAgICAgICAgICAgICAg IE91dHB1dDogcGFnZ190YWJfMS5iCisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBT RUxFQ1QgYiBGUk9NIHB1YmxpYy5wYWdnX3RhYl9wMSBXSEVSRSAoKGNfc2VyaWFsID49IDEpKSBB TkQgKChjX3NlcmlhbCA8PSAzMCkpCisgICAgICAgICAgICAgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5mcGFnZ190YWJfcDIgcGFnZ190YWJfMgorICAgICAgICAgICAgICAgICAgICAgT3V0 cHV0OiBwYWdnX3RhYl8yLmIKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBiIEZST00gcHVibGljLnBhZ2dfdGFiX3AyIFdIRVJFICgoY19zZXJpYWwgPj0gMSkpIEFORCAo KGNfc2VyaWFsIDw9IDMwKSkKKyAgICAgICAgICAgICAgIC0+ICBGb3JlaWduIFNjYW4gb24gcHVi bGljLmZwYWdnX3RhYl9wMyBwYWdnX3RhYl8zCisgICAgICAgICAgICAgICAgICAgICBPdXRwdXQ6 IHBhZ2dfdGFiXzMuYgorICAgICAgICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGIg RlJPTSBwdWJsaWMucGFnZ190YWJfcDMgV0hFUkUgKChjX3NlcmlhbCA+PSAxKSkgQU5EICgoY19z ZXJpYWwgPD0gMzApKQorKDE1IHJvd3MpCisKK1NFTEVDVCBhcnJheV9hZ2coYiBvcmRlciBieSBi KSBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJyYXlfYWdnICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsxLDIs Myw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwyMiwyMywy NCwyNSwyNiwyNywyOCwyOSwzMH0KKygxIHJvdykKIAorQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9Q VElPTlMgKERST1AgZmR3X3R1cGxlX2Nvc3QpOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gYWNjZXNzIHJp Z2h0cyBhbmQgc3VwZXJ1c2VyCiAtLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmRpZmYgLS1naXQgYS9jb250cmliL3Bv c3RncmVzX2Zkdy9vcHRpb24uYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jCmluZGV4 IDhjODIyZjRlZjkuLjY3ZTE1YzhiYjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L29wdGlvbi5jCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jCkBAIC0xMjYsNyAr MTI2LDggQEAgcG9zdGdyZXNfZmR3X3ZhbGlkYXRvcihQR19GVU5DVElPTl9BUkdTKQogCQkJc3Ry Y21wKGRlZi0+ZGVmbmFtZSwgImFzeW5jX2NhcGFibGUiKSA9PSAwIHx8CiAJCQlzdHJjbXAoZGVm LT5kZWZuYW1lLCAicGFyYWxsZWxfY29tbWl0IikgPT0gMCB8fAogCQkJc3RyY21wKGRlZi0+ZGVm bmFtZSwgInBhcmFsbGVsX2Fib3J0IikgPT0gMCB8fAotCQkJc3RyY21wKGRlZi0+ZGVmbmFtZSwg ImtlZXBfY29ubmVjdGlvbnMiKSA9PSAwKQorCQkJc3RyY21wKGRlZi0+ZGVmbmFtZSwgImtlZXBf Y29ubmVjdGlvbnMiKSA9PSAwIHx8CisJCQlzdHJjbXAoZGVmLT5kZWZuYW1lLCAiY2hlY2tfcGFy dGlhbF9hZ2dyZWdhdGVfc3VwcG9ydCIpID09IDApCiAJCXsKIAkJCS8qIHRoZXNlIGFjY2VwdCBv bmx5IGJvb2xlYW4gdmFsdWVzICovCiAJCQkodm9pZCkgZGVmR2V0Qm9vbGVhbihkZWYpOwpAQCAt MjY4LDYgKzI2OSw3IEBAIEluaXRQZ0Zkd09wdGlvbnModm9pZCkKIAkJLyogYmF0Y2hfc2l6ZSBp cyBhdmFpbGFibGUgb24gYm90aCBzZXJ2ZXIgYW5kIHRhYmxlICovCiAJCXsiYmF0Y2hfc2l6ZSIs IEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmYWxzZX0sCiAJCXsiYmF0Y2hfc2l6ZSIsIEZvcmVp Z25UYWJsZVJlbGF0aW9uSWQsIGZhbHNlfSwKKwkJeyJjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9z dXBwb3J0IiwgRm9yZWlnblNlcnZlclJlbGF0aW9uSWQsIGZhbHNlfSwKIAkJLyogYXN5bmNfY2Fw YWJsZSBpcyBhdmFpbGFibGUgb24gYm90aCBzZXJ2ZXIgYW5kIHRhYmxlICovCiAJCXsiYXN5bmNf Y2FwYWJsZSIsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmYWxzZX0sCiAJCXsiYXN5bmNfY2Fw YWJsZSIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWQsIGZhbHNlfSwKZGlmZiAtLWdpdCBhL2NvbnRy aWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9z dGdyZXNfZmR3LmMKaW5kZXggNmRlMmJlYzNiNy4uMTM1MGVkM2QyOCAxMDA2NDQKLS0tIGEvY29u dHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19m ZHcvcG9zdGdyZXNfZmR3LmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIv cGF0aG5vZGUuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvcGF0aHMuaCIKICNpbmNsdWRlICJvcHRp bWl6ZXIvcGxhbm1haW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvcGxhbm5lci5oIgogI2luY2x1 ZGUgIm9wdGltaXplci9wcmVwLmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL3Jlc3RyaWN0aW5mby5o IgogI2luY2x1ZGUgIm9wdGltaXplci90bGlzdC5oIgpAQCAtNTE5LDcgKzUyMCw3IEBAIHN0YXRp YyBib29sIGZvcmVpZ25fam9pbl9vayhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqam9p bnJlbCwKIAkJCQkJCQlKb2luVHlwZSBqb2ludHlwZSwgUmVsT3B0SW5mbyAqb3V0ZXJyZWwsIFJl bE9wdEluZm8gKmlubmVycmVsLAogCQkJCQkJCUpvaW5QYXRoRXh0cmFEYXRhICpleHRyYSk7CiBz dGF0aWMgYm9vbCBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJ bmZvICpncm91cGVkX3JlbCwKLQkJCQkJCQkJTm9kZSAqaGF2aW5nUXVhbCk7CisJCQkJCQkJCUdy b3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpOwogc3RhdGljIExpc3QgKmdldF91c2VmdWxfcGF0aGtl eXNfZm9yX3JlbGF0aW9uKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkgIFJlbE9wdElu Zm8gKnJlbCk7CiBzdGF0aWMgTGlzdCAqZ2V0X3VzZWZ1bF9lY3NfZm9yX3JlbGF0aW9uKFBsYW5u ZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwpOwpAQCAtNjUwLDYgKzY1MSw4IEBAIHBvc3Rn cmVzR2V0Rm9yZWlnblJlbFNpemUoUGxhbm5lckluZm8gKnJvb3QsCiAJZnBpbmZvLT5mZHdfdHVw bGVfY29zdCA9IERFRkFVTFRfRkRXX1RVUExFX0NPU1Q7CiAJZnBpbmZvLT5zaGlwcGFibGVfZXh0 ZW5zaW9ucyA9IE5JTDsKIAlmcGluZm8tPmZldGNoX3NpemUgPSAxMDA7CisJZnBpbmZvLT5jaGVj a19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0ID0gZmFsc2U7CisJZnBpbmZvLT5yZW1vdGV2ZXJz aW9uID0gMDsKIAlmcGluZm8tPmFzeW5jX2NhcGFibGUgPSBmYWxzZTsKIAogCWFwcGx5X3NlcnZl cl9vcHRpb25zKGZwaW5mbyk7CkBAIC02NjEsNyArNjY0LDcgQEAgcG9zdGdyZXNHZXRGb3JlaWdu UmVsU2l6ZShQbGFubmVySW5mbyAqcm9vdCwKIAkgKiBzaG91bGQgbWF0Y2ggd2hhdCBFeGVjQ2hl Y2tQZXJtaXNzaW9ucygpIGRvZXMuICBJZiB3ZSBmYWlsIGR1ZSB0byBsYWNrCiAJICogb2YgcGVy bWlzc2lvbnMsIHRoZSBxdWVyeSB3b3VsZCBoYXZlIGZhaWxlZCBhdCBydW50aW1lIGFueXdheS4K IAkgKi8KLQlpZiAoZnBpbmZvLT51c2VfcmVtb3RlX2VzdGltYXRlKQorCWlmIChmcGluZm8tPnVz ZV9yZW1vdGVfZXN0aW1hdGUgfHwgZnBpbmZvLT5jaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBw b3J0KQogCXsKIAkJT2lkCQkJdXNlcmlkOwogCkBAIC01OTQ4LDkgKzU5NTEsMTAgQEAgZm9yZWln bl9qb2luX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpqb2lucmVsLCBKb2luVHlw ZSBqb2ludHlwZSwKIAlmcGluZm8tPnB1c2hkb3duX3NhZmUgPSB0cnVlOwogCiAJLyogR2V0IHVz ZXIgbWFwcGluZyAqLwotCWlmIChmcGluZm8tPnVzZV9yZW1vdGVfZXN0aW1hdGUpCisJaWYgKGZw aW5mby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSB8fCBmcGluZm8tPmNoZWNrX3BhcnRpYWxfYWdncmVn YXRlX3N1cHBvcnQpCiAJewotCQlpZiAoZnBpbmZvX28tPnVzZV9yZW1vdGVfZXN0aW1hdGUpCisJ CWlmIChmcGluZm9fby0+dXNlX3JlbW90ZV9lc3RpbWF0ZSB8fAorCQkJZnBpbmZvX28tPmNoZWNr X3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQpCiAJCQlmcGluZm8tPnVzZXIgPSBmcGluZm9fby0+ dXNlcjsKIAkJZWxzZQogCQkJZnBpbmZvLT51c2VyID0gZnBpbmZvX2ktPnVzZXI7CkBAIC02MTMy LDYgKzYxMzYsOCBAQCBhcHBseV9zZXJ2ZXJfb3B0aW9ucyhQZ0Zkd1JlbGF0aW9uSW5mbyAqZnBp bmZvKQogCQkJCUV4dHJhY3RFeHRlbnNpb25MaXN0KGRlZkdldFN0cmluZyhkZWYpLCBmYWxzZSk7 CiAJCWVsc2UgaWYgKHN0cmNtcChkZWYtPmRlZm5hbWUsICJmZXRjaF9zaXplIikgPT0gMCkKIAkJ CSh2b2lkKSBwYXJzZV9pbnQoZGVmR2V0U3RyaW5nKGRlZiksICZmcGluZm8tPmZldGNoX3NpemUs IDAsIE5VTEwpOworCQllbHNlIGlmIChzdHJjbXAoZGVmLT5kZWZuYW1lLCAiY2hlY2tfcGFydGlh bF9hZ2dyZWdhdGVfc3VwcG9ydCIpID09IDApCisJCQlmcGluZm8tPmNoZWNrX3BhcnRpYWxfYWdn cmVnYXRlX3N1cHBvcnQgPSBkZWZHZXRCb29sZWFuKGRlZik7CiAJCWVsc2UgaWYgKHN0cmNtcChk ZWYtPmRlZm5hbWUsICJhc3luY19jYXBhYmxlIikgPT0gMCkKIAkJCWZwaW5mby0+YXN5bmNfY2Fw YWJsZSA9IGRlZkdldEJvb2xlYW4oZGVmKTsKIAl9CkBAIC02MTkxLDYgKzYxOTcsOCBAQCBtZXJn ZV9mZHdfb3B0aW9ucyhQZ0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvLAogCWZwaW5mby0+c2hpcHBh YmxlX2V4dGVuc2lvbnMgPSBmcGluZm9fby0+c2hpcHBhYmxlX2V4dGVuc2lvbnM7CiAJZnBpbmZv LT51c2VfcmVtb3RlX2VzdGltYXRlID0gZnBpbmZvX28tPnVzZV9yZW1vdGVfZXN0aW1hdGU7CiAJ ZnBpbmZvLT5mZXRjaF9zaXplID0gZnBpbmZvX28tPmZldGNoX3NpemU7CisJZnBpbmZvLT5jaGVj a19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBwb3J0ID0gZnBpbmZvX28tPmNoZWNrX3BhcnRpYWxfYWdn cmVnYXRlX3N1cHBvcnQ7CisJZnBpbmZvLT5yZW1vdGV2ZXJzaW9uID0gZnBpbmZvX28tPnJlbW90 ZXZlcnNpb247CiAJZnBpbmZvLT5hc3luY19jYXBhYmxlID0gZnBpbmZvX28tPmFzeW5jX2NhcGFi bGU7CiAKIAkvKiBNZXJnZSB0aGUgdGFibGUgbGV2ZWwgb3B0aW9ucyBmcm9tIGVpdGhlciBzaWRl IG9mIHRoZSBqb2luLiAqLwpAQCAtNjM3Myw3ICs2MzgxLDcgQEAgcG9zdGdyZXNHZXRGb3JlaWdu Sm9pblBhdGhzKFBsYW5uZXJJbmZvICpyb290LAogICovCiBzdGF0aWMgYm9vbAogZm9yZWlnbl9n cm91cGluZ19vayhQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqZ3JvdXBlZF9yZWwsCi0J CQkJCU5vZGUgKmhhdmluZ1F1YWwpCisJCQkJCUdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpCiB7 CiAJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CiAJUGdGZHdSZWxhdGlvbkluZm8gKmZw aW5mbyA9IChQZ0Zkd1JlbGF0aW9uSW5mbyAqKSBncm91cGVkX3JlbC0+ZmR3X3ByaXZhdGU7CkBA IC02MzgyLDYgKzYzOTAsNyBAQCBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290 LCBSZWxPcHRJbmZvICpncm91cGVkX3JlbCwKIAlMaXN0Q2VsbCAgICpsYzsKIAlpbnQJCQlpOwog CUxpc3QJICAgKnRsaXN0ID0gTklMOworCWJvb2wJCXBhcnRpYWwgPSBleHRyYS0+cGF0eXBlID09 IFBBUlRJVElPTldJU0VfQUdHUkVHQVRFX1BBUlRJQUw7CiAKIAkvKiBXZSBjdXJyZW50bHkgZG9u J3Qgc3VwcG9ydCBwdXNoaW5nIEdyb3VwaW5nIFNldHMuICovCiAJaWYgKHF1ZXJ5LT5ncm91cGlu Z1NldHMpCkBAIC02NDE1LDYgKzY0MjQsMTIgQEAgZm9yZWlnbl9ncm91cGluZ19vayhQbGFubmVy SW5mbyAqcm9vdCwgUmVsT3B0SW5mbyAqZ3JvdXBlZF9yZWwsCiAJICogYSBub2RlLCBhcyBsb25n IGFzIGl0J3Mgbm90IGF0IHRvcCBsZXZlbDsgdGhlbiBubyBtYXRjaCBpcyBwb3NzaWJsZS4KIAkg Ki8KIAlpID0gMDsKKwlmcGluZm8tPmdyb3VwX2NsYXVzZSA9IHF1ZXJ5LT5ncm91cENsYXVzZTsK KwlpZiAocGFydGlhbCkKKwl7CisJCWZwaW5mby0+Z3JvdXBfY2xhdXNlID0gZXh0cmEtPmdyb3Vw Q2xhdXNlUGFydGlhbDsKKwkJZ3JvdXBpbmdfdGFyZ2V0ID0gZXh0cmEtPnBhcnRpYWxfdGFyZ2V0 OworCX0KIAlmb3JlYWNoKGxjLCBncm91cGluZ190YXJnZXQtPmV4cHJzKQogCXsKIAkJRXhwcgkg ICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CkBAIC02NDI2LDcgKzY0NDEsNyBAQCBmb3Jl aWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91cGVkX3Jl bCwKIAkJICogY2hlY2sgdGhlIHdob2xlIEdST1VQIEJZIGNsYXVzZSBub3QganVzdCBwcm9jZXNz ZWRfZ3JvdXBDbGF1c2UsCiAJCSAqIGJlY2F1c2Ugd2Ugd2lsbCBzaGlwIGFsbCBvZiBpdCwgY2Yu IGFwcGVuZEdyb3VwQnlDbGF1c2UuCiAJCSAqLwotCQlpZiAoc2dyZWYgJiYgZ2V0X3NvcnRncm91 cHJlZl9jbGF1c2Vfbm9lcnIoc2dyZWYsIHF1ZXJ5LT5ncm91cENsYXVzZSkpCisJCWlmIChzZ3Jl ZiAmJiBnZXRfc29ydGdyb3VwcmVmX2NsYXVzZV9ub2VycihzZ3JlZiwgZnBpbmZvLT5ncm91cF9j bGF1c2UpKQogCQl7CiAJCQlUYXJnZXRFbnRyeSAqdGxlOwogCkBAIC02NTEyLDkgKzY1MjcsOSBA QCBmb3JlaWduX2dyb3VwaW5nX29rKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpncm91 cGVkX3JlbCwKIAkgKiBDbGFzc2lmeSB0aGUgcHVzaGFibGUgYW5kIG5vbi1wdXNoYWJsZSBIQVZJ TkcgY2xhdXNlcyBhbmQgc2F2ZSB0aGVtIGluCiAJICogcmVtb3RlX2NvbmRzIGFuZCBsb2NhbF9j b25kcyBvZiB0aGUgZ3JvdXBlZCByZWwncyBmcGluZm8uCiAJICovCi0JaWYgKGhhdmluZ1F1YWwp CisJaWYgKGV4dHJhLT5oYXZpbmdRdWFsICYmICFwYXJ0aWFsKQogCXsKLQkJZm9yZWFjaChsYywg KExpc3QgKikgaGF2aW5nUXVhbCkKKwkJZm9yZWFjaChsYywgKExpc3QgKikgZXh0cmEtPmhhdmlu Z1F1YWwpCiAJCXsKIAkJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOwogCQkJ UmVzdHJpY3RJbmZvICpyaW5mbzsKQEAgLTY2MjgsNiArNjY0Myw3IEBAIHBvc3RncmVzR2V0Rm9y ZWlnblVwcGVyUGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFVwcGVyUmVsYXRpb25LaW5kIHN0YWdl LAogCiAJLyogSWdub3JlIHN0YWdlcyB3ZSBkb24ndCBzdXBwb3J0OyBhbmQgc2tpcCBhbnkgZHVw bGljYXRlIGNhbGxzLiAqLwogCWlmICgoc3RhZ2UgIT0gVVBQRVJSRUxfR1JPVVBfQUdHICYmCisJ CSBzdGFnZSAhPSBVUFBFUlJFTF9QQVJUSUFMX0dST1VQX0FHRyAmJgogCQkgc3RhZ2UgIT0gVVBQ RVJSRUxfT1JERVJFRCAmJgogCQkgc3RhZ2UgIT0gVVBQRVJSRUxfRklOQUwpIHx8CiAJCW91dHB1 dF9yZWwtPmZkd19wcml2YXRlKQpAQCAtNjY0NCw2ICs2NjYwLDEwIEBAIHBvc3RncmVzR2V0Rm9y ZWlnblVwcGVyUGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFVwcGVyUmVsYXRpb25LaW5kIHN0YWdl LAogCQkJYWRkX2ZvcmVpZ25fZ3JvdXBpbmdfcGF0aHMocm9vdCwgaW5wdXRfcmVsLCBvdXRwdXRf cmVsLAogCQkJCQkJCQkJICAgKEdyb3VwUGF0aEV4dHJhRGF0YSAqKSBleHRyYSk7CiAJCQlicmVh azsKKwkJY2FzZSBVUFBFUlJFTF9QQVJUSUFMX0dST1VQX0FHRzoKKwkJCWFkZF9mb3JlaWduX2dy b3VwaW5nX3BhdGhzKHJvb3QsIGlucHV0X3JlbCwgb3V0cHV0X3JlbCwKKwkJCQkJCQkJCSAgIChH cm91cFBhdGhFeHRyYURhdGEgKikgZXh0cmEpOworCQkJYnJlYWs7CiAJCWNhc2UgVVBQRVJSRUxf T1JERVJFRDoKIAkJCWFkZF9mb3JlaWduX29yZGVyZWRfcGF0aHMocm9vdCwgaW5wdXRfcmVsLCBv dXRwdXRfcmVsKTsKIAkJCWJyZWFrOwpAQCAtNjY4NCw3ICs2NzA0LDggQEAgYWRkX2ZvcmVpZ25f Z3JvdXBpbmdfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmlucHV0X3JlbCwK IAkJcmV0dXJuOwogCiAJQXNzZXJ0KGV4dHJhLT5wYXR5cGUgPT0gUEFSVElUSU9OV0lTRV9BR0dS RUdBVEVfTk9ORSB8fAotCQkgICBleHRyYS0+cGF0eXBlID09IFBBUlRJVElPTldJU0VfQUdHUkVH QVRFX0ZVTEwpOworCQkgICBleHRyYS0+cGF0eXBlID09IFBBUlRJVElPTldJU0VfQUdHUkVHQVRF X0ZVTEwgfHwKKwkJICAgZXh0cmEtPnBhdHlwZSA9PSBQQVJUSVRJT05XSVNFX0FHR1JFR0FURV9Q QVJUSUFMKTsKIAogCS8qIHNhdmUgdGhlIGlucHV0X3JlbCBhcyBvdXRlcnJlbCBpbiBmcGluZm8g Ki8KIAlmcGluZm8tPm91dGVycmVsID0gaW5wdXRfcmVsOwpAQCAtNjcwNCw3ICs2NzI1LDcgQEAg YWRkX2ZvcmVpZ25fZ3JvdXBpbmdfcGF0aHMoUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8g KmlucHV0X3JlbCwKIAkgKiBVc2UgSEFWSU5HIHF1YWwgZnJvbSBleHRyYS4gSW4gY2FzZSBvZiBj aGlsZCBwYXJ0aXRpb24sIGl0IHdpbGwgaGF2ZQogCSAqIHRyYW5zbGF0ZWQgVmFycy4KIAkgKi8K LQlpZiAoIWZvcmVpZ25fZ3JvdXBpbmdfb2socm9vdCwgZ3JvdXBlZF9yZWwsIGV4dHJhLT5oYXZp bmdRdWFsKSkKKwlpZiAoIWZvcmVpZ25fZ3JvdXBpbmdfb2socm9vdCwgZ3JvdXBlZF9yZWwsIGV4 dHJhKSkKIAkJcmV0dXJuOwogCiAJLyoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3Bvc3RncmVzX2Zkdy5oIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmgKaW5k ZXggNDcxNTdhYzg4Ny4uYTFhOTY4OGM5ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvcG9zdGdyZXNfZmR3LmgKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3 LmgKQEAgLTg2LDYgKzg2LDE1IEBAIHR5cGVkZWYgc3RydWN0IFBnRmR3UmVsYXRpb25JbmZvCiAJ Rm9yZWlnblNlcnZlciAqc2VydmVyOwogCVVzZXJNYXBwaW5nICp1c2VyOwkJCS8qIG9ubHkgc2V0 IGluIHVzZV9yZW1vdGVfZXN0aW1hdGUgbW9kZSAqLwogCisJLyogZm9yIHBhcnRpYWwgYWdncmVn YXRlIHB1c2hkb3duICovCisJYm9vbAkJY2hlY2tfcGFydGlhbF9hZ2dyZWdhdGVfc3VwcG9ydDsK KworCS8qCisJICogSWYgcmVtb3RldmVyc2lvbiBpcyB6ZXJvLCBpdCBtZWFucyB0aGUgcmVtb3Rl IHNlcnZlciB2ZXJzaW9uIGhhcyBub3QKKwkgKiBiZWVuIGFjcXVpcmVkLgorCSAqLworCWludAkJ CXJlbW90ZXZlcnNpb247CisKIAlpbnQJCQlmZXRjaF9zaXplOwkJLyogZmV0Y2ggc2l6ZSBmb3Ig dGhpcyByZW1vdGUgdGFibGUgKi8KIAogCS8qCkBAIC0xMTAsNiArMTE5LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgUGdGZHdSZWxhdGlvbkluZm8KIAogCS8qIEdyb3VwaW5nIGluZm9ybWF0aW9uICovCiAJ TGlzdAkgICAqZ3JvdXBlZF90bGlzdDsKKwlMaXN0CSAgICpncm91cF9jbGF1c2U7CiAKIAkvKiBT dWJxdWVyeSBpbmZvcm1hdGlvbiAqLwogCWJvb2wJCW1ha2Vfb3V0ZXJyZWxfc3VicXVlcnk7IC8q IGRvIHdlIGRlcGFyc2Ugb3V0ZXJyZWwgYXMgYQpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbAppbmRleCAyZDE0ZWVhZGI1Li40OTU1OGQ3YTBmIDEwMDY0NAotLS0gYS9j b250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbAorKysgYi9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbApAQCAtMjk5MywxNiArMjk5MywzMyBAQCBS RVNFVCBlbmFibGVfcGFydGl0aW9ud2lzZV9qb2luOwogLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLS0gdGVzdCBw YXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotQ1JFQVRFIFRBQkxFIHBh Z2dfdGFiIChhIGludCwgYiBpbnQsIGMgdGV4dCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOworQUxU RVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBmZHdfdHVwbGVfY29zdCAnMC4xJyk7CisK K0NSRUFURSBUWVBFIG1vb2QgQVMgZW51bSAoJ3NhZCcsICdvaycsICdoYXBweScpOworQUxURVIg RVhURU5TSU9OIHBvc3RncmVzX2ZkdyBBREQgVFlQRSBtb29kOworCitDUkVBVEUgVEFCTEUgcGFn Z190YWIgKGEgaW50LCBiIGludCwgYyB0ZXh0LCBjX3NlcmlhbCBpbnQ0LAorCQkJCQljX2ludDRh cnJheSBfaW50NCwgY19pbnRlcnZhbCBpbnRlcnZhbCwKKwkJCQkJY19tb25leSBtb25leSwgY18x YyB0ZXh0LCBjXzFiIGJ5dGVhLAorCQkJCQljX2JpdCBiaXQoMiksIGNfMW9yM2ludDIgaW50MiwK KwkJCQkJY18xb3IzaW50NCBpbnQ0LCBjXzFvcjNpbnQ4IGludDgsCisJCQkJCWNfYm9vbCBib29s LCBjX2VudW0gbW9vZCwgY19wZ19sc24gcGdfbHNuLAorCQkJCQljX3RpZCB0aWQsIGNfaW50NHJh bmdlIGludDRyYW5nZSwKKwkJCQkJY19pbnQ0bXVsdGlyYW5nZSBpbnQ0bXVsdGlyYW5nZSwKKwkJ CQkJY190aW1lIHRpbWUsIGNfdGltZXR6IHRpbWV0eiwKKwkJCQkJY190aW1lc3RhbXAgdGltZXN0 YW1wLCBjX3RpbWVzdGFtcHR6IHRpbWVzdGFtcHR6LAorCQkJCQljX3hpZDggeGlkOCkKKwlQQVJU SVRJT04gQlkgUkFOR0UoYSk7CiAKIENSRUFURSBUQUJMRSBwYWdnX3RhYl9wMSAoTElLRSBwYWdn X3RhYik7CiBDUkVBVEUgVEFCTEUgcGFnZ190YWJfcDIgKExJS0UgcGFnZ190YWIpOwogQ1JFQVRF IFRBQkxFIHBhZ2dfdGFiX3AzIChMSUtFIHBhZ2dfdGFiKTsKIAotSU5TRVJUIElOVE8gcGFnZ190 YWJfcDEgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSBGUk9N IGdlbmVyYXRlX3NlcmllcygxLCAzMDAwKSBpIFdIRVJFIChpICUgMzApIDwgMTA7Ci1JTlNFUlQg SU5UTyBwYWdnX3RhYl9wMiBTRUxFQ1QgaSAlIDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZN MDAwMCcpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAy MCBhbmQgKGkgJSAzMCkgPj0gMTA7Ci1JTlNFUlQgSU5UTyBwYWdnX3RhYl9wMyBTRUxFQ1QgaSAl IDMwLCBpICUgNTAsIHRvX2NoYXIoaS8zMCwgJ0ZNMDAwMCcpIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAzMCBhbmQgKGkgJSAzMCkgPj0gMjA7CitTRVQg VGltZVpvbmUgPSAnVVRDJzsKKworSU5TRVJUIElOVE8gcGFnZ190YWJfcDEgU0VMRUNUIGkgJSAz MCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAnKSwgaSwgYXJyYXlbKGkgJSAyKSwgMF0s ICgoaSAlIDIpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZhbCwgKGkgJSAyKTo6bW9uZXksICgoaSAt IDEpICUgMTApOjp0ZXh0LCAoKChpIC0gMSkgJSAxMCk6OnRleHQpOjpieXRlYSwgY2FzZSB3aGVu IChpICUgMikgPSAwIHRoZW4gQicwMScgZWxzZSBCJzExJyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIp ID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gMSBlbHNl IDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hl biAoaSAlIDIpID0gMCB0aGVuIHRydWUgZWxzZSBmYWxzZSBlbmQsIChjYXNlIHdoZW4gKGkgJSAy KSA9IDAgdGhlbiAnc2FkJyBlbHNlICdoYXBweScgZW5kKTo6bW9vZCwgKCcwLycgfHwgaSk6OnBn X2xzbiwgKCcoMCwnIHx8IGkgfHwgJyknKTo6dGlkLCBpbnQ0cmFuZ2UoMCwgaSksIGludDRtdWx0 aXJhbmdlKGludDRyYW5nZSgwLCBpKSwgaW50NHJhbmdlKDEwMCwgMTAwICsgaSkpLCAnMDA6MDA6 MDAnOjp0aW1lICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMDA6MDA6MDAnOjp0aW1l dHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWwsICcyMDAwLTAxLTAxJzo6dGltZXN0YW1w ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcHR6 ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAoKGkgJSAxMCk6OnRleHQpOjp4aWQ4IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hFUkUgKGkgJSAzMCkgPCAxMDsKK0lOU0VS VCBJTlRPIHBhZ2dfdGFiX3AyIFNFTEVDVCBpICUgMzAsIGkgJSA1MCwgdG9fY2hhcihpLzMwLCAn Rk0wMDAwJyksIGksIGFycmF5WyhpICUgMiksIDBdLCAoKGkgJSAyKSB8fCAnIHNlY29uZHMnKTo6 aW50ZXJ2YWwsIChpICUgMik6Om1vbmV5LCAoKGkgLSAxKSAlIDEwKTo6dGV4dCwgKCgoaSAtIDEp ICUgMTApOjp0ZXh0KTo6Ynl0ZWEsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIEInMDEnIGVs c2UgQicxMScgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAxIGVsc2UgMyBlbmQsIGNh c2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVuIChpICUgMikg PSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiB0cnVlIGVs c2UgZmFsc2UgZW5kLCAoY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gJ3NhZCcgZWxzZSAnaGFw cHknIGVuZCk6Om1vb2QsICgnMC8nIHx8IGkpOjpwZ19sc24sICgnKDAsJyB8fCBpIHx8ICcpJyk6 OnRpZCwgaW50NHJhbmdlKDAsIGkpLCBpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UoMCwgaSksIGlu dDRyYW5nZSgxMDAsIDEwMCArIGkpKSwgJzAwOjAwOjAwJzo6dGltZSArIChpIHx8ICcgc2Vjb25k cycpOjppbnRlcnZhbCwgJzAwOjAwOjAwJzo6dGltZXR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6Omlu dGVydmFsLCAnMjAwMC0wMS0wMSc6OnRpbWVzdGFtcCArIChpIHx8ICcgc2Vjb25kcycpOjppbnRl cnZhbCwgJzIwMDAtMDEtMDEnOjp0aW1lc3RhbXB0eiArIChpIHx8ICcgc2Vjb25kcycpOjppbnRl cnZhbCwgKChpICUgMTApOjp0ZXh0KTo6eGlkOCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzMDAw KSBpIFdIRVJFIChpICUgMzApIDwgMjAgYW5kIChpICUgMzApID49IDEwOworSU5TRVJUIElOVE8g cGFnZ190YWJfcDMgU0VMRUNUIGkgJSAzMCwgaSAlIDUwLCB0b19jaGFyKGkvMzAsICdGTTAwMDAn KSwgaSwgYXJyYXlbKGkgJSAyKSwgMF0sICgoaSAlIDIpIHx8ICcgc2Vjb25kcycpOjppbnRlcnZh bCwgKGkgJSAyKTo6bW9uZXksICgoaSAtIDEpICUgMTApOjp0ZXh0LCAoKChpIC0gMSkgJSAxMCk6 OnRleHQpOjpieXRlYSwgY2FzZSB3aGVuIChpICUgMikgPSAwIHRoZW4gQicwMScgZWxzZSBCJzEx JyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIDEgZWxzZSAzIGVuZCwgY2FzZSB3aGVu IChpICUgMikgPSAwIHRoZW4gMSBlbHNlIDMgZW5kLCBjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhl biAxIGVsc2UgMyBlbmQsIGNhc2Ugd2hlbiAoaSAlIDIpID0gMCB0aGVuIHRydWUgZWxzZSBmYWxz ZSBlbmQsIChjYXNlIHdoZW4gKGkgJSAyKSA9IDAgdGhlbiAnc2FkJyBlbHNlICdoYXBweScgZW5k KTo6bW9vZCwgKCcwLycgfHwgaSk6OnBnX2xzbiwgKCcoMCwnIHx8IGkgfHwgJyknKTo6dGlkLCBp bnQ0cmFuZ2UoMCwgaSksIGludDRtdWx0aXJhbmdlKGludDRyYW5nZSgwLCBpKSwgaW50NHJhbmdl KDEwMCwgMTAwICsgaSkpLCAnMDA6MDA6MDAnOjp0aW1lICsgKGkgfHwgJyBzZWNvbmRzJyk6Omlu dGVydmFsLCAnMDA6MDA6MDAnOjp0aW1ldHogKyAoaSB8fCAnIHNlY29uZHMnKTo6aW50ZXJ2YWws ICcyMDAwLTAxLTAxJzo6dGltZXN0YW1wICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAn MjAwMC0wMS0wMSc6OnRpbWVzdGFtcHR6ICsgKGkgfHwgJyBzZWNvbmRzJyk6OmludGVydmFsLCAo KGkgJSAxMCk6OnRleHQpOjp4aWQ4IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDMwMDApIGkgV0hF UkUgKGkgJSAzMCkgPCAzMCBhbmQgKGkgJSAzMCkgPj0gMjA7CiAKIC0tIENyZWF0ZSBmb3JlaWdu IHBhcnRpdGlvbnMKIENSRUFURSBGT1JFSUdOIFRBQkxFIGZwYWdnX3RhYl9wMSBQQVJUSVRJT04g T0YgcGFnZ190YWIgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMTApIFNFUlZFUiBsb29wYmFjayBP UFRJT05TICh0YWJsZV9uYW1lICdwYWdnX3RhYl9wMScpOwpAQCAtMzAxMCw5ICszMDI3LDEzIEBA IENSRUFURSBGT1JFSUdOIFRBQkxFIGZwYWdnX3RhYl9wMiBQQVJUSVRJT04gT0YgcGFnZ190YWIg Rk9SIFZBTFVFUyBGUk9NICgxMCkgVE8KIENSRUFURSBGT1JFSUdOIFRBQkxFIGZwYWdnX3RhYl9w MyBQQVJUSVRJT04gT0YgcGFnZ190YWIgRk9SIFZBTFVFUyBGUk9NICgyMCkgVE8gKDMwKSBTRVJW RVIgbG9vcGJhY2sgT1BUSU9OUyAodGFibGVfbmFtZSAncGFnZ190YWJfcDMnKTsKIAogQU5BTFla RSBwYWdnX3RhYjsKK0FOQUxZWkUgcGFnZ190YWJfcDE7CitBTkFMWVpFIHBhZ2dfdGFiX3AyOwor QU5BTFlaRSBwYWdnX3RhYl9wMzsKIEFOQUxZWkUgZnBhZ2dfdGFiX3AxOwogQU5BTFlaRSBmcGFn Z190YWJfcDI7CiBBTkFMWVpFIGZwYWdnX3RhYl9wMzsKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMg PSAwOwogCiAtLSBXaGVuIEdST1VQIEJZIGNsYXVzZSBtYXRjaGVzIHdpdGggUEFSVElUSU9OIEtF WS4KIC0tIFBsYW4gd2l0aCBwYXJ0aXRpb253aXNlIGFnZ3JlZ2F0ZXMgaXMgZGlzYWJsZWQKQEAg LTMwMjYsMTYgKzMwNDcsMTQ4IEBAIEVYUExBSU4gKENPU1RTIE9GRikKIFNFTEVDVCBhLCBzdW0o YiksIG1pbihiKSwgY291bnQoKikgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSBhIEhBVklORyBhdmco YikgPCAyMiBPUkRFUiBCWSAxOwogU0VMRUNUIGEsIHN1bShiKSwgbWluKGIpLCBjb3VudCgqKSBG Uk9NIHBhZ2dfdGFiIEdST1VQIEJZIGEgSEFWSU5HIGF2ZyhiKSA8IDIyIE9SREVSIEJZIDE7CiAK Ky0tIENoZWNrIHBhcnRpYWwgYWdncmVnYXRlIG92ZXIgcGFydGl0aW9uZWQgdGFibGUKK0VYUExB SU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcoUEFSVElBTF9BR0dSRUdBVEUgYSks IGF2ZyhhKSBGUk9NIHBhZ2dfdGFiOworU0VMRUNUIGF2ZyhQQVJUSUFMX0FHR1JFR0FURSBhKSwg YXZnKGEpIEZST00gcGFnZ190YWI7CisKIC0tIENoZWNrIHdpdGggd2hvbGUtcm93IHJlZmVyZW5j ZQogLS0gU2hvdWxkIGhhdmUgYWxsIHRoZSBjb2x1bW5zIGluIHRoZSB0YXJnZXQgbGlzdCBmb3Ig dGhlIGdpdmVuIHJlbGF0aW9uCiBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxFQ1Qg YSwgY291bnQodDEpIEZST00gcGFnZ190YWIgdDEgR1JPVVAgQlkgYSBIQVZJTkcgYXZnKGIpIDwg MjIgT1JERVIgQlkgMTsKIFNFTEVDVCBhLCBjb3VudCh0MSkgRlJPTSBwYWdnX3RhYiB0MSBHUk9V UCBCWSBhIEhBVklORyBhdmcoYikgPCAyMiBPUkRFUiBCWSAxOwogCi0tLSBXaGVuIEdST1VQIEJZ IGNsYXVzZSBkb2VzIG5vdCBtYXRjaCB3aXRoIFBBUlRJVElPTiBLRVkuCi1FWFBMQUlOIChDT1NU UyBPRkYpCistLSBQYXJ0aWFsIGFnZ3JlZ2F0ZXMgYXJlIHNhZmUgdG8gcHVzaCBkb3duIHdoZW4g dGhlcmUgaXMgYSBIQVZJTkcgY2xhdXNlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitT RUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkg YiBIQVZJTkcgc3VtKGEpIDwgNzAwIE9SREVSIEJZIDE7CiBTRUxFQ1QgYiwgYXZnKGEpLCBtYXgo YSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBIQVZJTkcgc3VtKGEpIDwgNzAw IE9SREVSIEJZIDE7CiAKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBhcmUgc2FmZSB0byBwdXNoIGRv d24gd2l0aG91dCBoYXZpbmcgY2xhdXNlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitT RUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkg YiBPUkRFUiBCWSAxOworU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBh Z2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVzIGFy ZSBzYWZlIHRvIHB1c2ggZG93biBldmVuIGlmIHdlIG5lZWQgYm90aCB2YXJpYWJsZSBhbmQgdmFy aWFibGUtYmFzZWQgZXhwcmVzc2lvbgorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VM RUNUIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSwgKGIvMik6Om51bWVyaWMgRlJPTSBwYWdnX3Rh YiBHUk9VUCBCWSBiLzIgT1JERVIgQlkgNDsKK1NFTEVDVCBhdmcoYSksIG1heChhKSwgY291bnQo KiksIChiLzIpOjpudW1lcmljIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYi8yIE9SREVSIEJZIDQ7 CisKKy0tIFBhcnRpYWwgYWdncmVnYXRlcyBwdXNoZG93biBiZWhhdmVzIHNhbmUgd2l0aCBub24t c2hpcHBlZCBncm91cGluZyBlbGVtZW50cworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQor U0VMRUNUIGF2ZyhhKSwgKGIvMik6Om51bWVyaWMsICd0ZXN0JyB0ZXN0IEZST00gcGFnZ190YWIg R1JPVVAgQlkgMywgYi8yIE9SREVSIEJZIDEsIDIgTElNSVQgMTA7CitTRUxFQ1QgYXZnKGEpLCAo Yi8yKTo6bnVtZXJpYywgJ3Rlc3QnIHRlc3QgRlJPTSBwYWdnX3RhYiBHUk9VUCBCWSAzLCBiLzIg T1JERVIgQlkgMSwgMiBMSU1JVCAxMDsKKworLS0gUGFydGlhbCBhZ2dyZWdhdGVzIGFyZSBzYWZl IHRvIHB1c2ggZG93biBmb3IgYWxsIGJ1aWx0LWluIGFnZ3JlZ2F0ZXMKK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikKK1NFTEVDVCAvKiBhZ2dyZWdhdGUgPD4gcGFydGlhbCBhZ2dyZWdhdGUg Ki8KKyAgICBhcnJheV9hZ2coY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coYiksCisgICAgYXZnKGI6 OmludDIpLCBhdmcoYjo6aW50NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLCBhdmco Yjo6ZmxvYXQ0KSwgYXZnKGI6OmZsb2F0OCksIGF2ZyhiOjpudW1lcmljKSwKKyAgICBjb3JyKGI6 OmZsb2F0OCwgKGIgKiBiKTo6ZmxvYXQ4KSwKKyAgICBjb3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAq IGIpOjpmbG9hdDgpLAorICAgIGNvdmFyX3NhbXAoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgp LAorICAgIHJlZ3JfYXZneCgoMiAqIGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9h dmd5KCgyICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX2ludGVyY2VwdCgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3JfcjIoKGIgKiBiKTo6ZmxvYXQ4 LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc2xvcGUoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6Zmxv YXQ4KSwKKyAgICByZWdyX3N4eCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAg IHJlZ3Jfc3h5KChiICogYik6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N5eSgoMiAq IGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHN0ZGRldihiOjpmbG9hdDQpLCBzdGRk ZXYoYjo6ZmxvYXQ4KSwgc3RkZGV2KGI6OmludDIpLCBzdGRkZXYoYjo6aW50NCksIHN0ZGRldihi OjppbnQ4KSwgc3RkZGV2KGI6Om51bWVyaWMpLAorICAgIHN0ZGRldl9wb3AoYjo6ZmxvYXQ0KSwg c3RkZGV2X3BvcChiOjpmbG9hdDgpLCBzdGRkZXZfcG9wKGI6OmludDIpLCBzdGRkZXZfcG9wKGI6 OmludDQpLCBzdGRkZXZfcG9wKGI6OmludDgpLCBzdGRkZXZfcG9wKGI6Om51bWVyaWMpLAorICAg IHN0ZGRldl9zYW1wKGI6OmZsb2F0NCksIHN0ZGRldl9zYW1wKGI6OmZsb2F0OCksIHN0ZGRldl9z YW1wKGI6OmludDIpLCBzdGRkZXZfc2FtcChiOjppbnQ0KSwgc3RkZGV2X3NhbXAoYjo6aW50OCks IHN0ZGRldl9zYW1wKGI6Om51bWVyaWMpLAorICAgIHN0cmluZ19hZ2coY18xYywgJywnKSwgc3Ry aW5nX2FnZyhjXzFiLCAnLCcpLAorICAgIHN1bShiOjppbnQ4KSwgc3VtKGI6Om51bWVyaWMpLAor ICAgIHZhcmlhbmNlKGI6OmZsb2F0NCksIHZhcmlhbmNlKGI6OmZsb2F0OCksIHZhcmlhbmNlKGI6 OmludDIpLCB2YXJpYW5jZShiOjppbnQ0KSwgdmFyaWFuY2UoYjo6aW50OCksIHZhcmlhbmNlKGI6 Om51bWVyaWMpLAorICAgIHZhcl9wb3AoYjo6ZmxvYXQ0KSwgdmFyX3BvcChiOjpmbG9hdDgpLCB2 YXJfcG9wKGI6OmludDIpLCB2YXJfcG9wKGI6OmludDQpLCB2YXJfcG9wKGI6OmludDgpLCB2YXJf cG9wKGI6Om51bWVyaWMpLAorICAgIHZhcl9zYW1wKGI6OmZsb2F0NCksIHZhcl9zYW1wKGI6OmZs b2F0OCksIHZhcl9zYW1wKGI6OmludDIpLCB2YXJfc2FtcChiOjppbnQ0KSwgdmFyX3NhbXAoYjo6 aW50OCksIHZhcl9zYW1wKGI6Om51bWVyaWMpLAorICAgIC8qIGFnZ3JlZ2F0ZSA9IHBhcnRpYWwg YWdncmVnYXRlICovCisgICAgYW55X3ZhbHVlKGIgKiAwKSwKKyAgICBiaXRfYW5kKGNfYml0KSwg Yml0X2FuZChjXzFvcjNpbnQyKSwgYml0X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNp bnQ4KSwKKyAgICBiaXRfb3IoY19iaXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFv cjNpbnQ0KSwgYml0X29yKGNfMW9yM2ludDgpLAorICAgIGJpdF94b3IoY19iaXQpLCBiaXRfeG9y KGNfMW9yM2ludDIpLCBiaXRfeG9yKGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLAor ICAgIGJvb2xfYW5kKGNfYm9vbCksCisgICAgYm9vbF9vcihjX2Jvb2wpLAorICAgIGNvdW50KGIp LCBjb3VudCgqKSwKKyAgICBldmVyeShjX2Jvb2wpLAorICAgIG1heChjX2ludDRhcnJheSksIG1h eChjX2VudW0pLCBtYXgoY18xYzo6Y2hhcigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBi KSwgbWF4KCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0 OCksIG1heChiOjppbnQyKSwgbWF4KGI6OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVy dmFsKSwgbWF4KGNfbW9uZXkpLCBtYXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19w Z19sc24pLCBtYXgoY190aWQpLCBtYXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHop LCBtYXgoY190aW1lc3RhbXApLCBtYXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorICAg IG1pbihjX2ludDRhcnJheSksIG1pbihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbign MjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6 ZmxvYXQ0KSwgbWluKGI6OmZsb2F0OCksIG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4o Yjo6aW50OCksIG1pbihjX2ludGVydmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyks IG1pbihiOjpvaWQpLCBtaW4oY19wZ19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihj X3RpbWUpLCBtaW4oY190aW1ldHopLCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0 eiksIG1pbihjX3hpZDgpLAorICAgIHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCBy YW5nZV9pbnRlcnNlY3RfYWdnKGNfaW50NG11bHRpcmFuZ2UpLAorICAgIHJlZ3JfY291bnQoKDIg KiBiICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICBzdW0oYjo6ZmxvYXQ0KSwgc3VtKGI6 OmZsb2F0OCksIHN1bShiOjppbnQyKSwgc3VtKGI6OmludDQpLAlzdW0oY19pbnRlcnZhbCksIHN1 bShjX21vbmV5KQorICBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQg MzA7CisKK1NFTEVDVCAvKiBhZ2dyZWdhdGUgPD4gcGFydGlhbCBhZ2dyZWdhdGUgKi8KKyAgICBh cnJheV9hZ2coY19pbnQ0YXJyYXkpLCBhcnJheV9hZ2coYiksCisgICAgYXZnKGI6OmludDIpLCBh dmcoYjo6aW50NCksIGF2ZyhiOjppbnQ4KSwgYXZnKGNfaW50ZXJ2YWwpLAorICAgIGF2ZyhiOjpm bG9hdDQpLCBhdmcoYjo6ZmxvYXQ4KSwKKyAgICBjb3JyKGI6OmZsb2F0OCwgKGIgKiBiKTo6Zmxv YXQ4KSwKKyAgICBjb3Zhcl9wb3AoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIGNv dmFyX3NhbXAoYjo6ZmxvYXQ4LCAoYiAqIGIpOjpmbG9hdDgpLAorICAgIHJlZ3JfYXZneCgoMiAq IGIpOjpmbG9hdDgsIGI6OmZsb2F0OCksCisgICAgcmVncl9hdmd5KCgyICogYik6OmZsb2F0OCwg Yjo6ZmxvYXQ4KSwKKyAgICByZWdyX2ludGVyY2VwdCgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpm bG9hdDgpLAorICAgIHJlZ3JfcjIoKGIgKiBiKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJl Z3Jfc2xvcGUoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N4eCgo MiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpmbG9hdDgpLAorICAgIHJlZ3Jfc3h5KChiICogYik6OmZs b2F0OCwgYjo6ZmxvYXQ4KSwKKyAgICByZWdyX3N5eSgoMiAqIGIgKyAzKTo6ZmxvYXQ4LCBiOjpm bG9hdDgpLAorICAgIHN0ZGRldihiOjpmbG9hdDQpLCBzdGRkZXYoYjo6ZmxvYXQ4KSwgc3RkZGV2 KGI6OmludDIpLCBzdGRkZXYoYjo6aW50NCksIHN0ZGRldihiOjppbnQ4KSwgc3RkZGV2KGI6Om51 bWVyaWMpLAorICAgIHN0ZGRldl9wb3AoYjo6ZmxvYXQ0KSwgc3RkZGV2X3BvcChiOjpmbG9hdDgp LCBzdGRkZXZfcG9wKGI6OmludDIpLCBzdGRkZXZfcG9wKGI6OmludDQpLCBzdGRkZXZfcG9wKGI6 OmludDgpLCBzdGRkZXZfcG9wKGI6Om51bWVyaWMpLAorICAgIHN0ZGRldl9zYW1wKGI6OmZsb2F0 NCksIHN0ZGRldl9zYW1wKGI6OmZsb2F0OCksIHN0ZGRldl9zYW1wKGI6OmludDIpLCBzdGRkZXZf c2FtcChiOjppbnQ0KSwgc3RkZGV2X3NhbXAoYjo6aW50OCksIHN0ZGRldl9zYW1wKGI6Om51bWVy aWMpLAorICAgIHN0cmluZ19hZ2coY18xYywgJywnKSwgc3RyaW5nX2FnZyhjXzFiLCAnLCcpLAor ICAgIHN1bShiOjppbnQ4KSwgc3VtKGI6Om51bWVyaWMpLAorICAgIHZhcmlhbmNlKGI6OmZsb2F0 NCksIHZhcmlhbmNlKGI6OmZsb2F0OCksIHZhcmlhbmNlKGI6OmludDIpLCB2YXJpYW5jZShiOjpp bnQ0KSwgdmFyaWFuY2UoYjo6aW50OCksIHZhcmlhbmNlKGI6Om51bWVyaWMpLAorICAgIHZhcl9w b3AoYjo6ZmxvYXQ0KSwgdmFyX3BvcChiOjpmbG9hdDgpLCB2YXJfcG9wKGI6OmludDIpLCB2YXJf cG9wKGI6OmludDQpLCB2YXJfcG9wKGI6OmludDgpLCB2YXJfcG9wKGI6Om51bWVyaWMpLAorICAg IHZhcl9zYW1wKGI6OmZsb2F0NCksIHZhcl9zYW1wKGI6OmZsb2F0OCksIHZhcl9zYW1wKGI6Omlu dDIpLCB2YXJfc2FtcChiOjppbnQ0KSwgdmFyX3NhbXAoYjo6aW50OCksIHZhcl9zYW1wKGI6Om51 bWVyaWMpLAorICAgIC8qIGFnZ3JlZ2F0ZSA9IHBhcnRpYWwgYWdncmVnYXRlICovCisgICAgYW55 X3ZhbHVlKGIgKiAwKSwKKyAgICBiaXRfYW5kKGNfYml0KSwgYml0X2FuZChjXzFvcjNpbnQyKSwg Yml0X2FuZChjXzFvcjNpbnQ0KSwgYml0X2FuZChjXzFvcjNpbnQ4KSwKKyAgICBiaXRfb3IoY19i aXQpLCBiaXRfb3IoY18xb3IzaW50MiksIGJpdF9vcihjXzFvcjNpbnQ0KSwgYml0X29yKGNfMW9y M2ludDgpLAorICAgIGJpdF94b3IoY19iaXQpLCBiaXRfeG9yKGNfMW9yM2ludDIpLCBiaXRfeG9y KGNfMW9yM2ludDQpLCBiaXRfeG9yKGNfMW9yM2ludDgpLAorICAgIGJvb2xfYW5kKGNfYm9vbCks CisgICAgYm9vbF9vcihjX2Jvb2wpLAorICAgIGNvdW50KGIpLCBjb3VudCgqKSwKKyAgICBldmVy eShjX2Jvb2wpLAorICAgIG1heChjX2ludDRhcnJheSksIG1heChjX2VudW0pLCBtYXgoY18xYzo6 Y2hhcigxKSksIG1heCgnMjAwMC0wMS0wMSc6OmRhdGUgKyBiKSwgbWF4KCcwLjAuMC4wJzo6aW5l dCArIGIpLCBtYXgoYjo6ZmxvYXQ0KSwgbWF4KGI6OmZsb2F0OCksIG1heChiOjppbnQyKSwgbWF4 KGI6OmludDQpLCBtYXgoYjo6aW50OCksIG1heChjX2ludGVydmFsKSwgbWF4KGNfbW9uZXkpLCBt YXgoYjo6bnVtZXJpYyksIG1heChiOjpvaWQpLCBtYXgoY19wZ19sc24pLCBtYXgoY190aWQpLCBt YXgoY18xYyksIG1heChjX3RpbWUpLCBtYXgoY190aW1ldHopLCBtYXgoY190aW1lc3RhbXApLCBt YXgoY190aW1lc3RhbXB0eiksIG1heChjX3hpZDgpLAorICAgIG1pbihjX2ludDRhcnJheSksIG1p bihjX2VudW0pLCBtaW4oY18xYzo6Y2hhcigxKSksIG1pbignMjAwMC0wMS0wMSc6OmRhdGUgKyBi KSwgbWluKCcwLjAuMC4wJzo6aW5ldCArIGIpLCBtaW4oYjo6ZmxvYXQ0KSwgbWluKGI6OmZsb2F0 OCksIG1pbihiOjppbnQyKSwgbWluKGI6OmludDQpLCBtaW4oYjo6aW50OCksIG1pbihjX2ludGVy dmFsKSwgbWluKGNfbW9uZXkpLCBtaW4oYjo6bnVtZXJpYyksIG1pbihiOjpvaWQpLCBtaW4oY19w Z19sc24pLCBtaW4oY190aWQpLCBtaW4oY18xYyksIG1pbihjX3RpbWUpLCBtaW4oY190aW1ldHop LCBtaW4oY190aW1lc3RhbXApLCBtaW4oY190aW1lc3RhbXB0eiksIG1pbihjX3hpZDgpLAorICAg IHJhbmdlX2ludGVyc2VjdF9hZ2coY19pbnQ0cmFuZ2UpLCByYW5nZV9pbnRlcnNlY3RfYWdnKGNf aW50NG11bHRpcmFuZ2UpLAorICAgIHJlZ3JfY291bnQoKDIgKiBiICsgMyk6OmZsb2F0OCwgYjo6 ZmxvYXQ4KSwKKyAgICBzdW0oYjo6ZmxvYXQ0KSwgc3VtKGI6OmZsb2F0OCksIHN1bShiOjppbnQy KSwgc3VtKGI6OmludDQpLAlzdW0oY19pbnRlcnZhbCksIHN1bShjX21vbmV5KQorICBGUk9NIHBh Z2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdlZW4gMSBhbmQgMzA7CisKKy0tIFRlc3RzIGZvciBi YWNrd2FyZCBjb21wYXRpYmlsaXR5CitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQURE IGNoZWNrX3BhcnRpYWxfYWdncmVnYXRlX3N1cHBvcnQgJ2ZhbHNlJyk7CitFWFBMQUlOIChWRVJC T1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZnKGEpLCBtYXgoYSksIGNvdW50KCopIEZST00g cGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAxOworU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEp LCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQIEJZIGIgT1JERVIgQlkgMTsKKworQUxURVIg U0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0ZV9zdXBw b3J0ICd0cnVlJyk7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgYiwgYXZn KGEpLCBtYXgoYSksIGNvdW50KCopIEZST00gcGFnZ190YWIgR1JPVVAgQlkgYiBPUkRFUiBCWSAx OworU0VMRUNUIGIsIGF2ZyhhKSwgbWF4KGEpLCBjb3VudCgqKSBGUk9NIHBhZ2dfdGFiIEdST1VQ IEJZIGIgT1JERVIgQlkgMTsKKworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKFNFVCBm ZHdfdHVwbGVfY29zdCAnMS4wJyk7CitTRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbj1vbjsK K0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCBhdmcodDEuYiksIGF2Zyh0MS5i OjppbnQ4KSBGUk9NIHBhZ2dfdGFiIHQxIEpPSU4gcGFnZ190YWIgdDIgVVNJTkcoYSk7CitTRUxF Q1QgYXZnKHQxLmIpLCBhdmcodDEuYjo6aW50OCkgRlJPTSBwYWdnX3RhYiB0MSBKT0lOIHBhZ2df dGFiIHQyIFVTSU5HKGEpOworUkVTRVQgZW5hYmxlX3BhcnRpdGlvbndpc2Vfam9pbjsKK0FMVEVS IFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChTRVQgZmR3X3R1cGxlX2Nvc3QgJzAuMScpOworCitB TFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoRFJPUCBjaGVja19wYXJ0aWFsX2FnZ3JlZ2F0 ZV9zdXBwb3J0KTsKKworLS0gSXQgaXMgdW5zYWZlIHRvIHB1c2ggZG93biBwYXJ0aWFsIGFnZ3Jl Z2F0ZXMgd2hpY2ggY29udGFpbiBESVNUSU5DVCBjbGF1c2VzCitFWFBMQUlOIChWRVJCT1NFLCBD T1NUUyBPRkYpCitTRUxFQ1QgbWF4KGEpLCBjb3VudChkaXN0aW5jdCBiKSBGUk9NIHBhZ2dfdGFi OworU0VMRUNUIG1heChhKSwgY291bnQoZGlzdGluY3QgYikgRlJPTSBwYWdnX3RhYjsKKworLS0g SXQgaXMgdW5zYWZlIHRvIHB1c2ggZG93biBwYXJ0aWFsIGFnZ3JlZ2F0ZXMgd2hpY2ggY29udGFp biBPUkRFUiBCWSBjbGF1c2VzCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCBh cnJheV9hZ2coYiBvcmRlciBieSBiKSBGUk9NIHBhZ2dfdGFiIFdIRVJFIGNfc2VyaWFsIGJldHdl ZW4gMSBhbmQgMzA7CitTRUxFQ1QgYXJyYXlfYWdnKGIgb3JkZXIgYnkgYikgRlJPTSBwYWdnX3Rh YiBXSEVSRSBjX3NlcmlhbCBiZXR3ZWVuIDEgYW5kIDMwOworCitBTFRFUiBTRVJWRVIgbG9vcGJh Y2sgT1BUSU9OUyAoRFJPUCBmZHdfdHVwbGVfY29zdCk7CisKIC0tID09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIGFj Y2VzcyByaWdodHMgYW5kIHN1cGVydXNlcgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFnZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUFn Zy5jCmluZGV4IGYxNTRmMjg5MDIuLjY3ZTBmZmE2NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVBZ2cuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQWdnLmMK QEAgLTEwNzcsOSArMTA3NywxNCBAQCBmaW5hbGl6ZV9hZ2dyZWdhdGUoQWdnU3RhdGUgKmFnZ3N0 YXRlLAogCX0KIAogCS8qCi0JICogQXBwbHkgdGhlIGFnZydzIGZpbmFsZm4gaWYgb25lIGlzIHBy b3ZpZGVkLCBlbHNlIHJldHVybiB0cmFuc1ZhbHVlLgorCSAqIElmIHRoZSBhZ2cncyBmaW5hbGZu IGlzIHByb3ZpZGVkIGFuZCBQQVJUSUFMX0FHR1JFR0FURSBrZXl3b3JkIGlzCisJICogbm90IHNw ZWNpZmllZCwgYXBwbHkgdGhlIGFnZydzIGZpbmFsZm4uCisJICogSWYgUEFSVElBTF9BR0dSRUdB VEUga2V5d29yZCBpcyBzcGVjaWZpZWQgYW5kIHRoZSB0cmFuc1ZhbHVlIHR5cGUKKwkgKiBpcyBp bnRlcm5hbCwgYXBwbHkgdGhlIGFnZydzIHNlcmlhbGZuLiBJbiB0aGlzIGNhc2UgdGhlIGFnZydz CisJICogc2VyaWFsZm4gbXVzdCBub3QgYmUgaW52YWxpZC4gT3RoZXJ3aXNlIHJldHVybiB0cmFu c1ZhbHVlLgogCSAqLwotCWlmIChPaWRJc1ZhbGlkKHBlcmFnZy0+ZmluYWxmbl9vaWQpKQorCWlm IChPaWRJc1ZhbGlkKHBlcmFnZy0+ZmluYWxmbl9vaWQpICYmCisJCShwZXJhZ2ctPmFnZ3JlZi0+ YWdnX3BhcnRpYWwgPT0gZmFsc2UpKQogCXsKIAkJaW50CQkJbnVtRmluYWxBcmdzID0gcGVyYWdn LT5udW1GaW5hbEFyZ3M7CiAKQEAgLTExMjUsNiArMTEzMCw0NCBAQCBmaW5hbGl6ZV9hZ2dyZWdh dGUoQWdnU3RhdGUgKmFnZ3N0YXRlLAogCQl9CiAJCWFnZ3N0YXRlLT5jdXJwZXJhZ2cgPSBOVUxM OwogCX0KKwllbHNlIGlmIChwZXJhZ2ctPmFnZ3JlZi0+YWdnX3BhcnRpYWwKKwkJCSYmIChwZXJh Z2ctPmFnZ3JlZi0+YWdndHJhbnN0eXBlID09IElOVEVSTkFMT0lEKSkKKwl7CisJCWlmKCFPaWRJ c1ZhbGlkKHBlcmFnZy0+c2VyaWFsZm5fb2lkKSkKKwkJCWVsb2coRVJST1IsICJzZXJpYWxmdW5j IGlzIG5vdCBwcm92aWRlZCBmb3IgcGFydGlhbCBhZ2dyZWdhdGUiKTsKKworCQkvKiBzZXQgdXAg YWdnc3RhdGUtPmN1cnBlcmFnZyBmb3IgQWdnR2V0QWdncmVmKCkgKi8KKwkJYWdnc3RhdGUtPmN1 cnBlcmFnZyA9IHBlcmFnZzsKKworCQlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywg JnBlcmFnZy0+c2VyaWFsZm4sIDEsCisJCQkJCQkJCSBJbnZhbGlkT2lkLCAodm9pZCAqKSBhZ2dz dGF0ZSwgTlVMTCk7CisKKwkJLyogRmlsbCBpbiB0aGUgdHJhbnNpdGlvbiBzdGF0ZSB2YWx1ZSAq LworCQlmY2luZm8tPmFyZ3NbMF0udmFsdWUgPQorCQkJTWFrZUV4cGFuZGVkT2JqZWN0UmVhZE9u bHkocGVyZ3JvdXBzdGF0ZS0+dHJhbnNWYWx1ZSwKKwkJCQkJCQkJCSAgIHBlcmdyb3Vwc3RhdGUt PnRyYW5zVmFsdWVJc051bGwsCisJCQkJCQkJCQkgICBwZXJ0cmFucy0+dHJhbnN0eXBlTGVuKTsK KwkJZmNpbmZvLT5hcmdzWzBdLmlzbnVsbCA9IHBlcmdyb3Vwc3RhdGUtPnRyYW5zVmFsdWVJc051 bGw7CisJCWFueW51bGwgfD0gcGVyZ3JvdXBzdGF0ZS0+dHJhbnNWYWx1ZUlzTnVsbDsKKworCQlp ZiAoZmNpbmZvLT5mbGluZm8tPmZuX3N0cmljdCAmJiBhbnludWxsKQorCQl7CisJCQkvKiBkb24n dCBjYWxsIGEgc3RyaWN0IGZ1bmN0aW9uIHdpdGggTlVMTCBpbnB1dHMgKi8KKwkJCSpyZXN1bHRW YWwgPSAoRGF0dW0pIDA7CisJCQkqcmVzdWx0SXNOdWxsID0gdHJ1ZTsKKwkJfQorCQllbHNlCisJ CXsKKwkJCURhdHVtCQlyZXN1bHQ7CisKKwkJCXJlc3VsdCA9IEZ1bmN0aW9uQ2FsbEludm9rZShm Y2luZm8pOworCQkJKnJlc3VsdElzTnVsbCA9IGZjaW5mby0+aXNudWxsOworCQkJKnJlc3VsdFZh bCA9IE1ha2VFeHBhbmRlZE9iamVjdFJlYWRPbmx5KHJlc3VsdCwKKwkJCQkJCQkJCQkJCQlmY2lu Zm8tPmlzbnVsbCwKKwkJCQkJCQkJCQkJCQlwZXJhZ2ctPnJlc3VsdHR5cGVMZW4pOworCQl9CisJ CWFnZ3N0YXRlLT5jdXJwZXJhZ2cgPSBOVUxMOworCX0KIAllbHNlCiAJewogCQkqcmVzdWx0VmFs ID0KQEAgLTM2NjMsNyArMzcwNiw3IEBAIEV4ZWNJbml0QWdnKEFnZyAqbm9kZSwgRVN0YXRlICpl c3RhdGUsIGludCBlZmxhZ3MpCiAJCU9pZAkJCXNlcmlhbGZuX29pZCwKIAkJCQkJZGVzZXJpYWxm bl9vaWQ7CiAJCU9pZAkJCWFnZ093bmVyOwotCQlFeHByCSAgICpmaW5hbGZuZXhwcjsKKwkJRXhw cgkgICAqZmluYWxmbmV4cHIsICpzZXJpYWxmbmV4cHI7CiAJCU9pZAkJCWFnZ3RyYW5zdHlwZTsK IAogCQkvKiBQbGFubmVyIHNob3VsZCBoYXZlIGFzc2lnbmVkIGFnZ3JlZ2F0ZSB0byBjb3JyZWN0 IGxldmVsICovCkBAIC0zODIwLDYgKzM4NjMsMTcgQEAgRXhlY0luaXRBZ2coQWdnICpub2RlLCBF U3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFncykKIAkJCWZtZ3JfaW5mbyhmaW5hbGZuX29pZCwgJnBl cmFnZy0+ZmluYWxmbik7CiAJCQlmbWdyX2luZm9fc2V0X2V4cHIoKE5vZGUgKikgZmluYWxmbmV4 cHIsICZwZXJhZ2ctPmZpbmFsZm4pOwogCQl9CisJCS8qCisJCSAqIGJ1aWxkIGV4cHJlc3Npb24g dHJlZXMgZm9yIHRoZSBzZXJpYWxmbiwgaWYgaXQgZXhpc3RzIGFuZCBpcyByZXF1aXJlZC4KKwkJ ICovCisJCWlmIChPaWRJc1ZhbGlkKGFnZ2Zvcm0tPmFnZ3NlcmlhbGZuKSAmJiBwZXJhZ2ctPmFn Z3JlZi0+YWdnX3BhcnRpYWwpCisJCXsKKwkJCWJ1aWxkX2FnZ3JlZ2F0ZV9zZXJpYWxmbl9leHBy KGFnZ2Zvcm0tPmFnZ3NlcmlhbGZuLAorCQkJCQkJCQkJCSAmc2VyaWFsZm5leHByKTsKKwkJCXBl cmFnZy0+c2VyaWFsZm5fb2lkID0gYWdnZm9ybS0+YWdnc2VyaWFsZm47CisJCQlmbWdyX2luZm8o YWdnZm9ybS0+YWdnc2VyaWFsZm4sICZwZXJhZ2ctPnNlcmlhbGZuKTsKKwkJCWZtZ3JfaW5mb19z ZXRfZXhwcigoTm9kZSAqKSBzZXJpYWxmbmV4cHIsICZwZXJhZ2ctPnNlcmlhbGZuKTsKKwkJfQog CiAJCS8qIGdldCBpbmZvIGFib3V0IHRoZSBvdXRwdXQgdmFsdWUncyBkYXRhdHlwZSAqLwogCQln ZXRfdHlwbGVuYnl2YWwoYWdncmVmLT5hZ2d0eXBlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv bm9kZXMvbWFrZWZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYwppbmRleCBj NmZiNTcxOTgyLi43M2QwNTlmNTk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9tYWtl ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYwpAQCAtNTk3LDYgKzU5 Nyw3IEBAIG1ha2VGdW5jQ2FsbChMaXN0ICpuYW1lLCBMaXN0ICphcmdzLCBDb2VyY2lvbkZvcm0g ZnVuY2Zvcm1hdCwgaW50IGxvY2F0aW9uKQogCW4tPmFnZ193aXRoaW5fZ3JvdXAgPSBmYWxzZTsK IAluLT5hZ2dfc3RhciA9IGZhbHNlOwogCW4tPmFnZ19kaXN0aW5jdCA9IGZhbHNlOworCW4tPmFn Z19wYXJ0aWFsID0gZmFsc2U7CiAJbi0+ZnVuY192YXJpYWRpYyA9IGZhbHNlOwogCW4tPmZ1bmNm b3JtYXQgPSBmdW5jZm9ybWF0OwogCW4tPmxvY2F0aW9uID0gbG9jYXRpb247CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggYThjZWE1ZWZlMS4uNjgyOTgzYTE1MyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMjA2LDcgKzIwNiw3IEBAIHN0YXRpYyBQ YXRoVGFyZ2V0ICptYWtlX2dyb3VwX2lucHV0X3RhcmdldChQbGFubmVySW5mbyAqcm9vdCwKIAkJ CQkJCQkJCQkgICBQYXRoVGFyZ2V0ICpmaW5hbF90YXJnZXQpOwogc3RhdGljIFBhdGhUYXJnZXQg Km1ha2VfcGFydGlhbF9ncm91cGluZ190YXJnZXQoUGxhbm5lckluZm8gKnJvb3QsCiAJCQkJCQkJ CQkJCQlQYXRoVGFyZ2V0ICpncm91cGluZ190YXJnZXQsCi0JCQkJCQkJCQkJCQlOb2RlICpoYXZp bmdRdWFsKTsKKwkJCQkJCQkJCQkJCUdyb3VwUGF0aEV4dHJhRGF0YSAqZXh0cmEpOwogc3RhdGlj IExpc3QgKnBvc3Rwcm9jZXNzX3NldG9wX3RsaXN0KExpc3QgKm5ld190bGlzdCwgTGlzdCAqb3Jp Z190bGlzdCk7CiBzdGF0aWMgdm9pZCBvcHRpbWl6ZV93aW5kb3dfY2xhdXNlcyhQbGFubmVySW5m byAqcm9vdCwKIAkJCQkJCQkJCVdpbmRvd0Z1bmNMaXN0cyAqd2ZsaXN0cyk7CkBAIC01NDE1LDYg KzU0MTUsOTkgQEAgbWFrZV9ncm91cF9pbnB1dF90YXJnZXQoUGxhbm5lckluZm8gKnJvb3QsIFBh dGhUYXJnZXQgKmZpbmFsX3RhcmdldCkKIAlyZXR1cm4gc2V0X3BhdGh0YXJnZXRfY29zdF93aWR0 aChyb290LCBpbnB1dF90YXJnZXQpOwogfQogCisvKgorICogc2V0R3JvdXBDbGF1c2VQYXJ0aWFs CisgKgkgIEdlbmVyYXRlIGEgZ3JvdXBDbGF1c2UgYW5kIGEgcGF0aHRhcmdldCBmb3IgcGFydGlh bCBhZ2dyZWdhdGUKKyAqCSAgcHVzaGRvd24gYnkgRkRXIGFuZCBzZXQgdGhlbSB0byBHcm91cFBh dGhFeHRyYURhdGEuCisgKi8KK3N0YXRpYyB2b2lkCitzZXRHcm91cENsYXVzZVBhcnRpYWwoUGF0 aFRhcmdldCAqcGFydGlhbF90YXJnZXQsIExpc3QgKm5vbl9ncm91cF9leHBycywKKwkJCQkJICBM aXN0ICpncm91cENsYXVzZSwgR3JvdXBQYXRoRXh0cmFEYXRhICpleHRyYSkKK3sKKwlpbnQJCQll eHBybm8sCisJCQkJcmVmbm87CisJTGlzdENlbGwgICAqbGM7CisJSW5kZXgJCW1heFJlZiA9IDA7 CisJTGlzdAkgICAqZXhwcnNfcHJvY2Vzc2VkID0gTklMOworCWludAkJCWV4cHJzX251bSA9IDA7 CisKKwlmb3JlYWNoKGxjLCBncm91cENsYXVzZSkKKwl7CisJCVNvcnRHcm91cENsYXVzZSAqc2dj ID0gKFNvcnRHcm91cENsYXVzZSAqKSBsZmlyc3QobGMpOworCisJCWlmIChzZ2MtPnRsZVNvcnRH cm91cFJlZiA+IG1heFJlZikKKwkJCW1heFJlZiA9IHNnYy0+dGxlU29ydEdyb3VwUmVmOworCX0K KwltYXhSZWYrKzsKKworCWV4dHJhLT5ncm91cENsYXVzZVBhcnRpYWwgPSBsaXN0X2NvcHlfZGVl cChncm91cENsYXVzZSk7CisJZXh0cmEtPnBhcnRpYWxfdGFyZ2V0ID0gY29weV9wYXRodGFyZ2V0 KHBhcnRpYWxfdGFyZ2V0KTsKKworCWlmIChwYXJ0aWFsX3RhcmdldC0+ZXhwcnMpCisJCWV4cHJz X251bSA9IHBhcnRpYWxfdGFyZ2V0LT5leHBycy0+bGVuZ3RoOworCisJZm9yZWFjaChsYywgbm9u X2dyb3VwX2V4cHJzKQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7 CisKKwkJcmVmbm8gPSAtMTsKKwkJaWYgKGxpc3RfbWVtYmVyKGV4cHJzX3Byb2Nlc3NlZCwgZXhw cikgfHwKKwkJCSghSXNBKGV4cHIsIFZhcikgJiYgIUlzQShleHByLCBQbGFjZUhvbGRlclZhcikp KQorCQkJY29udGludWU7CisJCWV4cHJzX3Byb2Nlc3NlZCA9IGxhcHBlbmQoZXhwcnNfcHJvY2Vz c2VkLCBleHByKTsKKwkJZm9yIChleHBybm8gPSAwOyBleHBybm8gPCBleHByc19udW07IGV4cHJu bysrKQorCQl7CisJCQlFeHByCSAgICp0YXJnZXRfZXhwciA9IChFeHByICopIGxpc3RfbnRoKHBh cnRpYWxfdGFyZ2V0LT5leHBycywgZXhwcm5vKTsKKworCQkJaWYgKGVxdWFsKHRhcmdldF9leHBy LCBleHByKSkKKwkJCXsKKwkJCQlyZWZubyA9IGV4cHJubzsKKwkJCQlicmVhazsKKwkJCX0KKwkJ fQorCQlpZiAocmVmbm8gPCAwKQorCQl7CisJCQlTb3J0R3JvdXBDbGF1c2UgKmdycGNsID0gbWFr ZU5vZGUoU29ydEdyb3VwQ2xhdXNlKTsKKworCQkJZ3JwY2wtPnRsZVNvcnRHcm91cFJlZiA9IG1h eFJlZisrOworCQkJZXh0cmEtPmdyb3VwQ2xhdXNlUGFydGlhbCA9IGxhcHBlbmQoZXh0cmEtPmdy b3VwQ2xhdXNlUGFydGlhbCwgZ3JwY2wpOworCQkJYWRkX2NvbHVtbl90b19wYXRodGFyZ2V0KGV4 dHJhLT5wYXJ0aWFsX3RhcmdldCwgZXhwciwgZ3JwY2wtPnRsZVNvcnRHcm91cFJlZik7CisJCX0K Kwl9Cit9CisKKy8qCisgKiBhZGp1c3RBZ2dyZWZGb3JQYXJ0aWFsCisgKiBBZGp1c3QgQWdncmVm cyB0byBwdXQgdGhlbSBpbiBwYXJ0aWFsIG1vZGUKKyAqLworc3RhdGljIHZvaWQKK2FkanVzdEFn Z3JlZkZvclBhcnRpYWwoTGlzdCAqZXhwcnMpCit7CisJTGlzdENlbGwgICAqbGM7CisKKwlmb3Jl YWNoKGxjLCBleHBycykKKwl7CisJCUFnZ3JlZgkgICAqYWdncmVmID0gKEFnZ3JlZiAqKSBsZmly c3QobGMpOworCisJCWlmIChJc0EoYWdncmVmLCBBZ2dyZWYpKQorCQl7CisJCQlBZ2dyZWYJICAg Km5ld2FnZ3JlZjsKKworCQkJLyoKKwkJCSAqIFdlIHNob3VsZG4ndCBuZWVkIHRvIGNvcHkgdGhl IHN1YnN0cnVjdHVyZSBvZiB0aGUgQWdncmVmIG5vZGUsCisJCQkgKiBidXQgZmxhdC1jb3B5IHRo ZSBub2RlIGl0c2VsZiB0byBhdm9pZCBkYW1hZ2luZyBvdGhlciB0cmVlcy4KKwkJCSAqLworCQkJ bmV3YWdncmVmID0gbWFrZU5vZGUoQWdncmVmKTsKKwkJCW1lbWNweShuZXdhZ2dyZWYsIGFnZ3Jl Ziwgc2l6ZW9mKEFnZ3JlZikpOworCisJCQkvKiBGb3Igbm93LCBhc3N1bWUgc2VyaWFsaXphdGlv biBpcyByZXF1aXJlZCAqLworCQkJbWFya19wYXJ0aWFsX2FnZ3JlZihuZXdhZ2dyZWYsIEFHR1NQ TElUX0lOSVRJQUxfU0VSSUFMKTsKKworCQkJbGZpcnN0KGxjKSA9IG5ld2FnZ3JlZjsKKwkJfQor CX0KK30KKwogLyoKICAqIG1ha2VfcGFydGlhbF9ncm91cGluZ190YXJnZXQKICAqCSAgR2VuZXJh dGUgYXBwcm9wcmlhdGUgUGF0aFRhcmdldCBmb3Igb3V0cHV0IG9mIHBhcnRpYWwgYWdncmVnYXRl CkBAIC01NDMwLDExICs1NTIzLDE1IEBAIG1ha2VfZ3JvdXBfaW5wdXRfdGFyZ2V0KFBsYW5uZXJJ bmZvICpyb290LCBQYXRoVGFyZ2V0ICpmaW5hbF90YXJnZXQpCiAgKgogICogZ3JvdXBpbmdfdGFy Z2V0IGlzIHRoZSB0bGlzdCB0byBiZSBlbWl0dGVkIGJ5IHRoZSB0b3Btb3N0IGFnZ3JlZ2F0aW9u IHN0ZXAuCiAgKiBoYXZpbmdRdWFsIHJlcHJlc2VudHMgdGhlIEhBVklORyBjbGF1c2UuCisgKgor ICogTW9kaWZpZWQgUGF0aFRhcmdldCBjYW5ub3QgYmUgdXNlZCBieSBGRFcgYXMtaXMgdG8gZGVw YXJzZSB0aGlzIHN0YXRlbWVudC4KKyAqIFNvLCBiZWZvcmUgbW9kaWZ5aW5nIFBhdGhUYXJnZXQs IHNldEdyb3VwQ2xhdXNlUGFydGlhbCBnZW5lcmF0ZXMKKyAqIGFub3RoZXIgUGF0aHRhcmdldCBh bmQgYW5vdGhlciBsaXN0IG9mIFNvcnRHcm91cENsYXVzZXMuCiAgKi8KIHN0YXRpYyBQYXRoVGFy Z2V0ICoKIG1ha2VfcGFydGlhbF9ncm91cGluZ190YXJnZXQoUGxhbm5lckluZm8gKnJvb3QsCiAJ CQkJCQkJIFBhdGhUYXJnZXQgKmdyb3VwaW5nX3RhcmdldCwKLQkJCQkJCQkgTm9kZSAqaGF2aW5n UXVhbCkKKwkJCQkJCQkgR3JvdXBQYXRoRXh0cmFEYXRhICpleHRyYSkKIHsKIAlQYXRoVGFyZ2V0 ICpwYXJ0aWFsX3RhcmdldDsKIAlMaXN0CSAgICpub25fZ3JvdXBfY29sczsKQEAgLTU0NzYsOCAr NTU3Myw4IEBAIG1ha2VfcGFydGlhbF9ncm91cGluZ190YXJnZXQoUGxhbm5lckluZm8gKnJvb3Qs CiAJLyoKIAkgKiBJZiB0aGVyZSdzIGEgSEFWSU5HIGNsYXVzZSwgd2UnbGwgbmVlZCB0aGUgVmFy cy9BZ2dyZWZzIGl0IHVzZXMsIHRvby4KIAkgKi8KLQlpZiAoaGF2aW5nUXVhbCkKLQkJbm9uX2dy b3VwX2NvbHMgPSBsYXBwZW5kKG5vbl9ncm91cF9jb2xzLCBoYXZpbmdRdWFsKTsKKwlpZiAoZXh0 cmEtPmhhdmluZ1F1YWwpCisJCW5vbl9ncm91cF9jb2xzID0gbGFwcGVuZChub25fZ3JvdXBfY29s cywgZXh0cmEtPmhhdmluZ1F1YWwpOwogCiAJLyoKIAkgKiBQdWxsIG91dCBhbGwgdGhlIFZhcnMs IFBsYWNlSG9sZGVyVmFycywgYW5kIEFnZ3JlZnMgbWVudGlvbmVkIGluCkBAIC01NDkwLDM1ICs1 NTg3LDE3IEBAIG1ha2VfcGFydGlhbF9ncm91cGluZ190YXJnZXQoUGxhbm5lckluZm8gKnJvb3Qs CiAJCQkJCQkJCQkgIFBWQ19JTkNMVURFX0FHR1JFR0FURVMgfAogCQkJCQkJCQkJICBQVkNfUkVD VVJTRV9XSU5ET1dGVU5DUyB8CiAJCQkJCQkJCQkgIFBWQ19JTkNMVURFX1BMQUNFSE9MREVSUyk7 Ci0KKwlzZXRHcm91cENsYXVzZVBhcnRpYWwocGFydGlhbF90YXJnZXQsIG5vbl9ncm91cF9leHBy cywgcm9vdC0+cHJvY2Vzc2VkX2dyb3VwQ2xhdXNlLCBleHRyYSk7CiAJYWRkX25ld19jb2x1bW5z X3RvX3BhdGh0YXJnZXQocGFydGlhbF90YXJnZXQsIG5vbl9ncm91cF9leHBycyk7CisJYWRkX25l d19jb2x1bW5zX3RvX3BhdGh0YXJnZXQoZXh0cmEtPnBhcnRpYWxfdGFyZ2V0LCBub25fZ3JvdXBf ZXhwcnMpOwogCiAJLyoKIAkgKiBBZGp1c3QgQWdncmVmcyB0byBwdXQgdGhlbSBpbiBwYXJ0aWFs IG1vZGUuICBBdCB0aGlzIHBvaW50IGFsbCBBZ2dyZWZzCiAJICogYXJlIGF0IHRoZSB0b3AgbGV2 ZWwgb2YgdGhlIHRhcmdldCBsaXN0LCBzbyB3ZSBjYW4ganVzdCBzY2FuIHRoZSBsaXN0CiAJICog cmF0aGVyIHRoYW4gcmVjdXJzaW5nIHRocm91Z2ggdGhlIGV4cHJlc3Npb24gdHJlZXMuCiAJICov Ci0JZm9yZWFjaChsYywgcGFydGlhbF90YXJnZXQtPmV4cHJzKQotCXsKLQkJQWdncmVmCSAgICph Z2dyZWYgPSAoQWdncmVmICopIGxmaXJzdChsYyk7Ci0KLQkJaWYgKElzQShhZ2dyZWYsIEFnZ3Jl ZikpCi0JCXsKLQkJCUFnZ3JlZgkgICAqbmV3YWdncmVmOwotCi0JCQkvKgotCQkJICogV2Ugc2hv dWxkbid0IG5lZWQgdG8gY29weSB0aGUgc3Vic3RydWN0dXJlIG9mIHRoZSBBZ2dyZWYgbm9kZSwK LQkJCSAqIGJ1dCBmbGF0LWNvcHkgdGhlIG5vZGUgaXRzZWxmIHRvIGF2b2lkIGRhbWFnaW5nIG90 aGVyIHRyZWVzLgotCQkJICovCi0JCQluZXdhZ2dyZWYgPSBtYWtlTm9kZShBZ2dyZWYpOwotCQkJ bWVtY3B5KG5ld2FnZ3JlZiwgYWdncmVmLCBzaXplb2YoQWdncmVmKSk7Ci0KLQkJCS8qIEZvciBu b3csIGFzc3VtZSBzZXJpYWxpemF0aW9uIGlzIHJlcXVpcmVkICovCi0JCQltYXJrX3BhcnRpYWxf YWdncmVmKG5ld2FnZ3JlZiwgQUdHU1BMSVRfSU5JVElBTF9TRVJJQUwpOwotCi0JCQlsZmlyc3Qo bGMpID0gbmV3YWdncmVmOwotCQl9Ci0JfQorCWFkanVzdEFnZ3JlZkZvclBhcnRpYWwocGFydGlh bF90YXJnZXQtPmV4cHJzKTsKKwlhZGp1c3RBZ2dyZWZGb3JQYXJ0aWFsKGV4dHJhLT5wYXJ0aWFs X3RhcmdldC0+ZXhwcnMpOwogCiAJLyogY2xlYW4gdXAgY3J1ZnQgKi8KIAlsaXN0X2ZyZWUobm9u X2dyb3VwX2V4cHJzKTsKQEAgLTcxNDgsNyArNzIyNyw3IEBAIGNyZWF0ZV9wYXJ0aWFsX2dyb3Vw aW5nX3BhdGhzKFBsYW5uZXJJbmZvICpyb290LAogCSAqLwogCXBhcnRpYWxseV9ncm91cGVkX3Jl bC0+cmVsdGFyZ2V0ID0KIAkJbWFrZV9wYXJ0aWFsX2dyb3VwaW5nX3RhcmdldChyb290LCBncm91 cGVkX3JlbC0+cmVsdGFyZ2V0LAotCQkJCQkJCQkJIGV4dHJhLT5oYXZpbmdRdWFsKTsKKwkJCQkJ CQkJCSBleHRyYSk7CiAKIAlpZiAoIWV4dHJhLT5wYXJ0aWFsX2Nvc3RzX3NldCkKIAl7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggZmMzNzA5NTEwZC4uOTViM2JmMjc3NiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpAQCAtMjU1Nyw2ICsyNTU3LDcgQEAg Y29udmVydF9jb21iaW5pbmdfYWdncmVmcyhOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogCQlw YXJlbnRfYWdnID0gY29weU9iamVjdChjaGlsZF9hZ2cpOwogCQljaGlsZF9hZ2ctPmFyZ3MgPSBv cmlnX2FnZy0+YXJnczsKIAkJY2hpbGRfYWdnLT5hZ2dmaWx0ZXIgPSBvcmlnX2FnZy0+YWdnZmls dGVyOworCQljaGlsZF9hZ2ctPmFnZ19wYXJ0aWFsID0gb3JpZ19hZ2ctPmFnZ19wYXJ0aWFsOwog CiAJCS8qCiAJCSAqIE5vdywgc2V0IHVwIGNoaWxkX2FnZyB0byByZXByZXNlbnQgdGhlIGZpcnN0 IHBoYXNlIG9mIHBhcnRpYWwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBhZ2cuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBhZ2cuYwppbmRleCA4 MDYwNzgzMTFjLi44ZTNkMzNjMzc0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cHJlcC9wcmVwYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGFnZy5j CkBAIC00MTIsNiArNDEyLDcgQEAgZmluZF9jb21wYXRpYmxlX2FnZyhQbGFubmVySW5mbyAqcm9v dCwgQWdncmVmICpuZXdhZ2csCiAJCS8qIGFsbCBvZiB0aGUgZm9sbG93aW5nIG11c3QgYmUgdGhl IHNhbWUgb3IgaXQncyBubyBtYXRjaCAqLwogCQlpZiAobmV3YWdnLT5pbnB1dGNvbGxpZCAhPSBl eGlzdGluZ1JlZi0+aW5wdXRjb2xsaWQgfHwKIAkJCW5ld2FnZy0+YWdndHJhbnN0eXBlICE9IGV4 aXN0aW5nUmVmLT5hZ2d0cmFuc3R5cGUgfHwKKwkJCW5ld2FnZy0+YWdnX3BhcnRpYWwgIT0gZXhp c3RpbmdSZWYtPmFnZ19wYXJ0aWFsIHx8CiAJCQluZXdhZ2ctPmFnZ3N0YXIgIT0gZXhpc3RpbmdS ZWYtPmFnZ3N0YXIgfHwKIAkJCW5ld2FnZy0+YWdndmFyaWFkaWMgIT0gZXhpc3RpbmdSZWYtPmFn Z3ZhcmlhZGljIHx8CiAJCQluZXdhZ2ctPmFnZ2tpbmQgIT0gZXhpc3RpbmdSZWYtPmFnZ2tpbmQg fHwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IGMyMjRkZjRlY2MuLmQ2YWQ2Mjk3MDAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpA QCAtNzQzLDcgKzc0Myw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChj aGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJT1JERVIgT1JESU5B TElUWSBPVEhFUlMgT1VUX1AgT1VURVJfUAogCU9WRVIgT1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklE SU5HIE9XTkVEIE9XTkVSCiAKLQlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFS VElUSU9OIFBBU1NJTkcgUEFTU1dPUkQKKwlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJ QUwgUEFSVElBTF9BR0dSRUdBVEUgUEFSVElUSU9OIFBBU1NJTkcgUEFTU1dPUkQKIAlQTEFDSU5H IFBMQU5TIFBPTElDWQogCVBPU0lUSU9OIFBSRUNFRElORyBQUkVDSVNJT04gUFJFU0VSVkUgUFJF UEFSRSBQUkVQQVJFRCBQUklNQVJZCiAJUFJJT1IgUFJJVklMRUdFUyBQUk9DRURVUkFMIFBST0NF RFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFVCTElDQVRJT04KQEAgLTE1MjYzLDYgKzE1MjYzLDI2 IEBAIGZ1bmNfYXBwbGljYXRpb246IGZ1bmNfbmFtZSAnKCcgJyknCiAJCQkJCW4tPmFnZ19kaXN0 aW5jdCA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IGZ1bmNfbmFt ZSAnKCcgUEFSVElBTF9BR0dSRUdBVEUgZnVuY19hcmdfbGlzdCBvcHRfc29ydF9jbGF1c2UgJykn CisJCQkJeworCQkJCQlGdW5jQ2FsbCAgICpuID0gbWFrZUZ1bmNDYWxsKCQxLCAkNCwKKwkJCQkJ CQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQkJCQkJCQkJCSBAMSk7CisKKwkJCQkJ bi0+YWdnX29yZGVyID0gJDU7CisJCQkJCW4tPmFnZ19wYXJ0aWFsID0gdHJ1ZTsKKwkJCQkJJCQg PSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgZnVuY19uYW1lICcoJyBQQVJUSUFMX0FHR1JFR0FU RSAnKicgJyknCisJCQkJeworCQkJCQlGdW5jQ2FsbCAgICpuID0gbWFrZUZ1bmNDYWxsKCQxLCBO SUwsCisJCQkJCQkJCQkJCQkgQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJCQkJCQkJCQkJCQkgQDEp OworCisJCQkJCW4tPmFnZ19zdGFyID0gdHJ1ZTsKKwkJCQkJbi0+YWdnX3BhcnRpYWwgPSB0cnVl OworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQkJfCBmdW5jX25hbWUgJygnICcqJyAn KScKIAkJCQl7CiAJCQkJCS8qCkBAIC0xNTMxOCw2ICsxNTMzOCwxMSBAQCBmdW5jX2V4cHI6IGZ1 bmNfYXBwbGljYXRpb24gd2l0aGluX2dyb3VwX2NsYXVzZSBmaWx0ZXJfY2xhdXNlIG92ZXJfY2xh dXNlCiAJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCiAJCQkJCQkJCQkg ZXJybXNnKCJjYW5ub3QgdXNlIERJU1RJTkNUIHdpdGggV0lUSElOIEdST1VQIiksCiAJCQkJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKEAyKSkpOworCQkJCQkJaWYgKG4tPmFnZ19wYXJ0aWFsKQor CQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCisJCQkJCQkJCQkgZXJybXNnKCJjYW5ub3QgdXNlIFBBUlRJQUxfQUdHUkVHQVRFIHdp dGggV0lUSElOIEdST1VQIiksCisJCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKEAyKSkpOwog CQkJCQkJaWYgKG4tPmZ1bmNfdmFyaWFkaWMpCiAJCQkJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTE3NTUxLDYgKzE3NTc2LDcg QEAgcmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgT05MWQogCQkJfCBPUgogCQkJfCBPUkRFUgorCQkJ fCBQQVJUSUFMX0FHR1JFR0FURQogCQkJfCBQTEFDSU5HCiAJCQl8IFBSSU1BUlkKIAkJCXwgUkVG RVJFTkNFUwpAQCAtMTc4NTcsNiArMTc4ODMsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8 IFBBUkFNRVRFUgogCQkJfCBQQVJTRVIKIAkJCXwgUEFSVElBTAorCQkJfCBQQVJUSUFMX0FHR1JF R0FURQogCQkJfCBQQVJUSVRJT04KIAkJCXwgUEFTU0lORwogCQkJfCBQQVNTV09SRApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2FnZy5jCmluZGV4IDliYmFkMzNmYmQuLjA1ZDhiMWVjODMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfYWdnLmMKQEAgLTEwMCw4ICsxMDAsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZV9hZ2dfYXJnKE9p ZCBhcmd0eXBlLCBPaWQgYXJnY29sbGF0aW9uKTsKICAqIHBzdGF0ZSBsZXZlbC4KICAqLwogdm9p ZAotdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIEFnZ3JlZiAqYWdn LAotCQkJCQkgICBMaXN0ICphcmdzLCBMaXN0ICphZ2dvcmRlciwgYm9vbCBhZ2dfZGlzdGluY3Qp Cit0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWdncmVmICphZ2cs IExpc3QgKmFyZ3MsCisJCQkJCSAgIExpc3QgKmFnZ29yZGVyLCBib29sIGFnZ19kaXN0aW5jdCwg Ym9vbCBhZ2dfcGFydGlhbCkKIHsKIAlMaXN0CSAgICphcmd0eXBlcyA9IE5JTDsKIAlMaXN0CSAg ICp0bGlzdCA9IE5JTDsKQEAgLTE0Niw4ICsxNDYsOCBAQCB0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxs KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWdncmVmICphZ2csCiAJCQkJCQkJCQkJIHRvcmRlciwgdGxp c3QsIHNvcnRieSk7CiAJCX0KIAotCQkvKiBOZXZlciBhbnkgRElTVElOQ1QgaW4gYW4gb3JkZXJl ZC1zZXQgYWdnICovCi0JCUFzc2VydCghYWdnX2Rpc3RpbmN0KTsKKwkJLyogTmV2ZXIgYW55IERJ U1RJTkNUIGFuZCBQQVJUSUFMX0FHRyBpbiBhbiBvcmRlcmVkLXNldCBhZ2cgKi8KKwkJQXNzZXJ0 KCFhZ2dfZGlzdGluY3QgfHwgIWFnZ19wYXJ0aWFsKTsKIAl9CiAJZWxzZQogCXsKQEAgLTIyMSw2 ICsyMjEsMjIgQEAgdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIEFn Z3JlZiAqYWdnLAogCWFnZy0+YXJncyA9IHRsaXN0OwogCWFnZy0+YWdnb3JkZXIgPSB0b3JkZXI7 CiAJYWdnLT5hZ2dkaXN0aW5jdCA9IHRkaXN0aW5jdDsKKwlhZ2ctPmFnZ19wYXJ0aWFsID0gYWdn X3BhcnRpYWw7CisJaWYoYWdnLT5hZ2dfcGFydGlhbCl7CisJCUhlYXBUdXBsZQlhZ2d0dXA7CisJ CUZvcm1fcGdfYWdncmVnYXRlIGFnZ2Zvcm07CisKKwkJYWdndHVwID0gU2VhcmNoU3lzQ2FjaGUx KEFHR0ZOT0lELCBPYmplY3RJZEdldERhdHVtKGFnZy0+YWdnZm5vaWQpKTsKKwkJaWYgKCFIZWFw VHVwbGVJc1ZhbGlkKGFnZ3R1cCkpCisJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxl ZCBmb3IgYWdncmVnYXRlICV1IiwgYWdnLT5hZ2dmbm9pZCk7CisJCWFnZ2Zvcm0gPSAoRm9ybV9w Z19hZ2dyZWdhdGUpIEdFVFNUUlVDVChhZ2d0dXApOworCQlSZWxlYXNlU3lzQ2FjaGUoYWdndHVw KTsKKwkJaWYoYWdnZm9ybS0+YWdndHJhbnN0eXBlID09IElOVEVSTkFMT0lEKXsKKwkJCWFnZy0+ YWdndHlwZSA9IEJZVEVBT0lEOworCQl9IGVsc2UgeworCQkJYWdnLT5hZ2d0eXBlID0gYWdnZm9y bS0+YWdndHJhbnN0eXBlOworCQl9CisJfQogCiAJLyoKIAkgKiBOb3cgYnVpbGQgdGhlIGFnZ2Fy Z3R5cGVzIGxpc3Qgd2l0aCB0aGUgdHlwZSBPSURzIG9mIHRoZSBkaXJlY3QgYW5kCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY2xhdXNlLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfY2xhdXNlLmMKaW5kZXggMzM0YjliNDJiZC4uMTUwM2JkZWY5NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NsYXVzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jbGF1c2UuYwpAQCAtNTQzLDYgKzU0Myw3IEBAIHRyYW5zZm9ybVJhbmdlRnVu Y3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZUZ1bmN0aW9uICpyKQogCQkJCWZjLT5vdmVy ID09IE5VTEwgJiYKIAkJCQkhZmMtPmFnZ19zdGFyICYmCiAJCQkJIWZjLT5hZ2dfZGlzdGluY3Qg JiYKKwkJCQkhZmMtPmFnZ19wYXJ0aWFsICYmCiAJCQkJIWZjLT5mdW5jX3ZhcmlhZGljICYmCiAJ CQkJY29sZGVmbGlzdCA9PSBOSUwpCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA2 NGM1ODJjMzQ0Li42ZjJmMmFlYmM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTM3NzYs NyArMzc3Niw4IEBAIHRyYW5zZm9ybUpzb25BZ2dDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3Rh dGUsIEpzb25BZ2dDb25zdHJ1Y3RvciAqYWdnX2N0b3IsCiAJCWFnZ3JlZi0+YWdndHJhbnNubyA9 IC0xOwogCQlhZ2dyZWYtPmxvY2F0aW9uID0gYWdnX2N0b3ItPmxvY2F0aW9uOwogCi0JCXRyYW5z Zm9ybUFnZ3JlZ2F0ZUNhbGwocHN0YXRlLCBhZ2dyZWYsIGFyZ3MsIGFnZ19jdG9yLT5hZ2dfb3Jk ZXIsIGZhbHNlKTsKKwkJdHJhbnNmb3JtQWdncmVnYXRlQ2FsbChwc3RhdGUsIGFnZ3JlZiwgYXJn cywgYWdnX2N0b3ItPmFnZ19vcmRlciwgZmFsc2UsCisJCQkJCQkJICAgZmFsc2UpOwogCiAJCW5v ZGUgPSAoTm9kZSAqKSBhZ2dyZWY7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggNmMy OTQ3MWJiMy4uMDY1Yzg3NGE0ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC05Nyw2ICs5 Nyw3IEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25h bWUsIExpc3QgKmZhcmdzLAogCWJvb2wJCWFnZ193aXRoaW5fZ3JvdXAgPSAoZm4gPyBmbi0+YWdn X3dpdGhpbl9ncm91cCA6IGZhbHNlKTsKIAlib29sCQlhZ2dfc3RhciA9IChmbiA/IGZuLT5hZ2df c3RhciA6IGZhbHNlKTsKIAlib29sCQlhZ2dfZGlzdGluY3QgPSAoZm4gPyBmbi0+YWdnX2Rpc3Rp bmN0IDogZmFsc2UpOworCWJvb2wJCWFnZ19wYXJ0aWFsID0gKGZuID8gZm4tPmFnZ19wYXJ0aWFs IDogZmFsc2UpOwogCWJvb2wJCWZ1bmNfdmFyaWFkaWMgPSAoZm4gPyBmbi0+ZnVuY192YXJpYWRp YyA6IGZhbHNlKTsKIAlDb2VyY2lvbkZvcm0gZnVuY2Zvcm1hdCA9IChmbiA/IGZuLT5mdW5jZm9y bWF0IDogQ09FUkNFX0VYUExJQ0lUX0NBTEwpOwogCWJvb2wJCWNvdWxkX2JlX3Byb2plY3Rpb247 CkBAIC0yMjIsNyArMjIzLDggQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRl LCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJICovCiAJY291bGRfYmVfcHJvamVjdGlv biA9IChuYXJncyA9PSAxICYmICFwcm9jX2NhbGwgJiYKIAkJCQkJCSAgIGFnZ19vcmRlciA9PSBO SUwgJiYgYWdnX2ZpbHRlciA9PSBOVUxMICYmCi0JCQkJCQkgICAhYWdnX3N0YXIgJiYgIWFnZ19k aXN0aW5jdCAmJiBvdmVyID09IE5VTEwgJiYKKwkJCQkJCSAgICFhZ2dfc3RhciAmJiAhYWdnX2Rp c3RpbmN0ICYmCisJCQkJCQkgICAhYWdnX3BhcnRpYWwgJiYgb3ZlciA9PSBOVUxMICYmCiAJCQkJ CQkgICAhZnVuY192YXJpYWRpYyAmJiBhcmduYW1lcyA9PSBOSUwgJiYKIAkJCQkJCSAgIGxpc3Rf bGVuZ3RoKGZ1bmNuYW1lKSA9PSAxICYmCiAJCQkJCQkgICAoYWN0dWFsX2FyZ190eXBlc1swXSA9 PSBSRUNPUkRPSUQgfHwKQEAgLTMyMiw2ICszMjQsMTIgQEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFy c2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJCQkJCSBlcnJt c2coIkRJU1RJTkNUIHNwZWNpZmllZCwgYnV0ICVzIGlzIG5vdCBhbiBhZ2dyZWdhdGUgZnVuY3Rp b24iLAogCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoZnVuY25hbWUpKSwKIAkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCQlpZiAoYWdnX3BhcnRpYWwpCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwK KwkJCQkJIGVycm1zZygiUEFSVElBTF9BR0dSRUdBVEUgc3BlY2lmaWVkLCBidXQgJXMgaXMgbm90 IGFuIGFnZ3JlZ2F0ZSBmdW5jdGlvbiIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhmdW5jbmFt ZSkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAJCWlm IChhZ2dfd2l0aGluX2dyb3VwKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJS Q09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCkBAIC0zOTIsNiArNDAwLDggQEAgUGFyc2VGdW5jT3JD b2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwgTGlzdCAqZmFyZ3MsCiAJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CiAJCQkvKiBncmFt LnkgcmVqZWN0cyBESVNUSU5DVCArIFdJVEhJTiBHUk9VUCAqLwogCQkJQXNzZXJ0KCFhZ2dfZGlz dGluY3QpOworCQkJLyogZ3JhbS55IHJlamVjdHMgUEFSVElBTF9BR0dSRUdBVEUgKi8KKwkJCUFz c2VydCghYWdnX3BhcnRpYWwpOwogCQkJLyogZ3JhbS55IHJlamVjdHMgVkFSSUFESUMgKyBXSVRI SU4gR1JPVVAgKi8KIAkJCUFzc2VydCghZnVuY192YXJpYWRpYyk7CiAKQEAgLTgxNCw3ICs4MjQs OCBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1l LCBMaXN0ICpmYXJncywKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9u KSkpOwogCiAJCS8qIHBhcnNlX2FnZy5jIGRvZXMgYWRkaXRpb25hbCBhZ2dyZWdhdGUtc3BlY2lm aWMgcHJvY2Vzc2luZyAqLwotCQl0cmFuc2Zvcm1BZ2dyZWdhdGVDYWxsKHBzdGF0ZSwgYWdncmVm LCBmYXJncywgYWdnX29yZGVyLCBhZ2dfZGlzdGluY3QpOworCQl0cmFuc2Zvcm1BZ2dyZWdhdGVD YWxsKHBzdGF0ZSwgYWdncmVmLCBmYXJncywgYWdnX29yZGVyLCBhZ2dfZGlzdGluY3QsCisJCQkJ CQkJICAgYWdnX3BhcnRpYWwpOwogCiAJCXJldHZhbCA9IChOb2RlICopIGFnZ3JlZjsKIAl9CkBA IC04NDUsNiArODU2LDE1IEBAIFBhcnNlRnVuY09yQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCQkJCQkgZXJybXNnKCJESVNUSU5DVCBpcyBu b3QgaW1wbGVtZW50ZWQgZm9yIHdpbmRvdyBmdW5jdGlvbnMiKSwKIAkJCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCisJCS8qCisJCSAqIHBhcnRpYWwgYWdncmVn YXRlcyBub3QgYWxsb3dlZCBpbiB3aW5kb3dzIHlldAorCQkgKi8KKwkJaWYgKGFnZ19wYXJ0aWFs KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9T VVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJQQVJUSUFMX0FHR1JFR0FURSBpcyBub3QgaW1wbGVt ZW50ZWQgZm9yIHdpbmRvdyBmdW5jdGlvbnMiKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGxvY2F0aW9uKSkpOworCiAJCS8qCiAJCSAqIFJlamVjdCBhdHRlbXB0IHRvIGNhbGwg YSBwYXJhbWV0ZXJsZXNzIGFnZ3JlZ2F0ZSB3aXRob3V0ICgqKQogCQkgKiBzeW50YXguICBUaGlz IGlzIG1lcmUgcGVkYW50cnkgYnV0IHNvbWUgZm9sa3MgaW5zaXN0ZWQgLi4uCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMKaW5kZXggZWQ3ZjQwZjA1My4uZGVmYWQ0NTNjNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYwpAQCAtMTAxMjMsNyArMTAxMjMsOCBAQCBnZXRfYWdnX2V4cHJfaGVs cGVyKEFnZ3JlZiAqYWdncmVmLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQsCiAKIAkvKiBQcmlu dCB0aGUgYWdncmVnYXRlIG5hbWUsIHNjaGVtYS1xdWFsaWZpZWQgaWYgbmVlZGVkICovCiAJYXBw ZW5kU3RyaW5nSW5mbyhidWYsICIlcyglcyIsIGZ1bmNuYW1lLAotCQkJCQkgKGFnZ3JlZi0+YWdn ZGlzdGluY3QgIT0gTklMKSA/ICJESVNUSU5DVCAiIDogIiIpOworCQkJCQkgKGFnZ3JlZi0+YWdn ZGlzdGluY3QgIT0gTklMKSA/ICJESVNUSU5DVCAiIDoKKwkJCQkJIGFnZ3JlZi0+YWdnX3BhcnRp YWwgPyAiUEFSVElBTF9BR0dSRUdBVEUgIiA6ICIiKTsKIAogCWlmIChBR0dLSU5EX0lTX09SREVS RURfU0VUKGFnZ3JlZi0+YWdna2luZCkpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3Ivbm9kZUFnZy5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZUFnZy5oCmluZGV4IDRl NDNiODZkMzEuLmIxYzg5NDVhNDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25v ZGVBZ2cuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlQWdnLmgKQEAgLTIwNiw2ICsy MDYsMTUgQEAgdHlwZWRlZiBzdHJ1Y3QgQWdnU3RhdGVQZXJBZ2dEYXRhCiAJICovCiAJRm1ncklu Zm8JZmluYWxmbjsKIAorCS8qIE9wdGlvbmFsIE9pZCBvZiBzZXJpYWwgZnVuY3Rpb24gKG1heSBi ZSBJbnZhbGlkT2lkKSAqLworCU9pZAkJCXNlcmlhbGZuX29pZDsKKworCS8qCisJICogZm1nciBs b29rdXAgZGF0YSBmb3Igc2VyaWFsIGZ1bmN0aW9uIC0tLSBvbmx5IHZhbGlkIHdoZW4gc2VyaWFs Zm5fb2lkIGlzCisJICogbm90IEludmFsaWRPaWQuCisJICovCisJRm1nckluZm8Jc2VyaWFsZm47 CisKIAkvKgogCSAqIE51bWJlciBvZiBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZmluYWxmbi4g IFRoaXMgaXMgYWx3YXlzIGF0IGxlYXN0IDEKIAkgKiAodGhlIHRyYW5zaXRpb24gc3RhdGUgdmFs dWUpIHBsdXMgYW55IG9yZGVyZWQtc2V0IGRpcmVjdCBhcmdzLiBJZiB0aGUKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCBlNDk0MzA5ZGE4Li40YzZmMDUxZGE1IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC00MjEsNiArNDIxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgRnVuY0NhbGwKIAlib29sCQlh Z2dfd2l0aGluX2dyb3VwOwkvKiBPUkRFUiBCWSBhcHBlYXJlZCBpbiBXSVRISU4gR1JPVVAgKi8K IAlib29sCQlhZ2dfc3RhcjsJCS8qIGFyZ3VtZW50IHdhcyByZWFsbHkgJyonICovCiAJYm9vbAkJ YWdnX2Rpc3RpbmN0OwkvKiBhcmd1bWVudHMgd2VyZSBsYWJlbGVkIERJU1RJTkNUICovCisJYm9v bAkJYWdnX3BhcnRpYWw7CS8qIGFyZ3VtZW50cyB3ZXJlIGxhYmVsZWQgUEFSVElBTF9BR0dSRUdB VEUgKi8KIAlib29sCQlmdW5jX3ZhcmlhZGljOwkvKiBsYXN0IGFyZ3VtZW50IHdhcyBsYWJlbGVk IFZBUklBRElDICovCiAJQ29lcmNpb25Gb3JtIGZ1bmNmb3JtYXQ7CS8qIGhvdyB0byBkaXNwbGF5 IHRoaXMgbm9kZSAqLwogCWludAkJCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggZWQ4NWRjNzQxNC4uNDExYTI0 OTQ4MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTMyNDMsNiArMzI0Myw5IEBAIHR5cGVkZWYg ZW51bQogICogaGF2aW5nUXVhbCBnaXZlcyBsaXN0IG9mIHF1YWxzIHRvIGJlIGFwcGxpZWQgYWZ0 ZXIgYWdncmVnYXRpb24uCiAgKiB0YXJnZXRMaXN0IGdpdmVzIGxpc3Qgb2YgY29sdW1ucyB0byBi ZSBwcm9qZWN0ZWQuCiAgKiBwYXR5cGUgaXMgdGhlIHR5cGUgb2YgcGFydGl0aW9ud2lzZSBhZ2dy ZWdhdGlvbiB0aGF0IGlzIGJlaW5nIHBlcmZvcm1lZC4KKyAqIGdyb3VwQ2xhdXNlUGFydGlhbCBp cyBMaXN0IG9mIFNvcnRHcm91cENsYXVzZXMgZm9yIHBhcnRpYWwgYWdncmVnYXRlCisgKiAJCXB1 c2hkb3duIGJ5IEZEVworICogcGFydGlhbF90YXJnZXQgaXMgUGF0aFRhcmdldCBmb3IgcGFydGlh bCBhZ2dyZWdhdGUgcHVzaGRvd24gYnkgRkRXCiAgKi8KIHR5cGVkZWYgc3RydWN0CiB7CkBAIC0z MjU3LDYgKzMyNjAsOCBAQCB0eXBlZGVmIHN0cnVjdAogCU5vZGUJICAgKmhhdmluZ1F1YWw7CiAJ TGlzdAkgICAqdGFyZ2V0TGlzdDsKIAlQYXJ0aXRpb253aXNlQWdncmVnYXRlVHlwZSBwYXR5cGU7 CisJTGlzdAkgICAqZ3JvdXBDbGF1c2VQYXJ0aWFsOworCVBhdGhUYXJnZXQgKnBhcnRpYWxfdGFy Z2V0OwogfSBHcm91cFBhdGhFeHRyYURhdGE7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4 IGJiOTMwYWZiNTIuLjEyODdlZmYyOWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC00NTksNiAr NDU5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWdncmVmCiAJLyogRElTVElOQ1QgKGxpc3Qgb2YgU29y dEdyb3VwQ2xhdXNlKSAqLwogCUxpc3QJICAgKmFnZ2Rpc3RpbmN0OwogCisJLyogdHJ1ZSBpZiB0 aGVyZSBpcyBQQVJUSUFMX0FHR1JFR0FURSBrZXl3b3JkICovCisJYm9vbCAgICAgICAgYWdnX3Bh cnRpYWw7CisKIAkvKiBGSUxURVIgZXhwcmVzc2lvbiwgaWYgYW55ICovCiAJRXhwcgkgICAqYWdn ZmlsdGVyOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggNTk4NGRjZmE0Yi4uMTVkYmU0MTNkOSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaApAQCAtMzIzLDYgKzMyMyw3IEBAIFBHX0tFWVdPUkQoInBhcmFsbGVsIiwg UEFSQUxMRUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBh cmFtZXRlciIsIFBBUkFNRVRFUiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgicGFyc2VyIiwgUEFSU0VSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwp CiBQR19LRVlXT1JEKCJwYXJ0aWFsIiwgUEFSVElBTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQorUEdfS0VZV09SRCgicGFydGlhbF9hZ2dyZWdhdGUiLCBQQVJUSUFMX0FHR1JFR0FU RSwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRpdGlvbiIs IFBBUlRJVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cGFzc2luZyIsIFBBU1NJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoInBhc3N3b3JkIiwgUEFTU1dPUkQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9hZ2cuaCBiL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9hZ2cuaAppbmRleCBlOWFmZDk5ZDExLi4yODhmOGE3N2QzIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfYWdnLmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX2FnZy5oCkBAIC0xNyw3ICsxNyw3IEBACiAKIGV4dGVybiB2b2lkIHRyYW5z Zm9ybUFnZ3JlZ2F0ZUNhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBZ2dyZWYgKmFnZywKIAkJCQkJ CQkJICAgTGlzdCAqYXJncywgTGlzdCAqYWdnb3JkZXIsCi0JCQkJCQkJCSAgIGJvb2wgYWdnX2Rp c3RpbmN0KTsKKwkJCQkJCQkJICAgYm9vbCBhZ2dfZGlzdGluY3QsIGJvb2wgYWdnX3BhcnRpYWwp OwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtR3JvdXBpbmdGdW5jKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgR3JvdXBpbmdGdW5jICpwKTsKIAotLSAKMi4zMS4xCgo= --_002_TYAPR01MB30884F8E4D94038CD661FFEF95F02TYAPR01MB3088jpnp_--