From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.16827.1688631847041049744 for ; Thu, 06 Jul 2023 01:24:07 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=YnQmoNtz; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: w.sheng@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1688631847; x=1720167847; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=M6wsCmyQpIhaFs2OXe2syshkDgx1btPK8mjBmOU9vG8=; b=YnQmoNtz306FIcCtCZzlXbN1cMaCqqI2wlkJNZT2DWw+KlGdXDR/2QkL 1V8GmKjkEfcHzzoJMtKTR4OS9FZyZ3vcFrdKessuVOaX04L37ixt+/B6G fupYHQO4bM5jegiSd9teCCD1kP/7jpvXtBkXBgz7UBHSW5QyGtpN7RO2I AiI0NSW26hbUUZCB9EIqeIiHEwCFDMJjfqY/PC/XW2EkyimyDgOULxqoX KLTplr8QFLVpiPOhpWd/ZU8R/m0a2PLiREFptB28nu88OVhtwjYXnlgBU NvGJJ3VuN+4lb9ZRB+uZMuEeckPKoLrxPoJjmDkcezRTX6Nyevm3maJ8B g==; X-IronPort-AV: E=McAfee;i="6600,9927,10762"; a="343871503" X-IronPort-AV: E=Sophos;i="6.01,185,1684825200"; d="scan'208,223";a="343871503" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jul 2023 01:24:05 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10762"; a="893482625" X-IronPort-AV: E=Sophos;i="6.01,185,1684825200"; d="scan'208,223";a="893482625" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga005.jf.intel.com with ESMTP; 06 Jul 2023 01:24:04 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Thu, 6 Jul 2023 01:24:03 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Thu, 6 Jul 2023 01:24:03 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.169) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Thu, 6 Jul 2023 01:24:03 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IPhLBhFharZpg/MTa6w0bCweV+Yq2kcWNgMgdkxVyGohUzX5Rt173kvS0xXkXE8AJwGpbnP8whyldVAduicjOC7jukk6FwwweOPuj68I0/puof6ivrjabkZpBL+GlpYxpHxv+5CqSli3T4g5qXfXmU8Ig0Z2xfBxF66WCM1wF0zKP8BlsLdng6X/q+WwQmDaeXATbzOUTgNuqOmtB26ldX/24FVvKOWlpCvh3VHu8IluBK8K4mK9XHuxo729IKz7zW4UGHkjAAbMikmlol7Rju4m8XJjn53cbY1uexv63913lyFqqYtJM9UCMfdG2PArD7rYh/VtAArmlgD5ivHDGA== 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=g0ycpVRp16DRRBA/zpJXFvY72IY0dHQ4r90350tTzDg=; b=YcoLNhF9pVgeUe3irwHoA+FfO06KWEbqVw3DcS0N/qKX0/I1R3IwsgGbmBI/iI10lQ2UbyeYwSk9tjt3voG268gA9KVK79lWmHSXeS3K4ErfG3dCrHJoOe246Tybc81/zwXZEx/3CDDv2NzPoNUltDrw1OW9Klpv6Tz5lzwu0s8KnwCUz+q0IaDq1/Y4JfjCyLaEN8ZdaoLlJDLxuUmY+Ph6EqFYpO+YquQeTV+2KoTKMHOaGrazz26KA/aGFEnCPuMOIye0opYiU5iuP1Dz/1O7kfrUsLdOX0DA4pWtvfcbZhk95L7t2AqQFDG/ehPcB0mRxnUyY5ek5+MJO1e2fQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB4870.namprd11.prod.outlook.com (2603:10b6:510:34::16) by MW3PR11MB4746.namprd11.prod.outlook.com (2603:10b6:303:5f::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.17; Thu, 6 Jul 2023 08:23:59 +0000 Received: from PH0PR11MB4870.namprd11.prod.outlook.com ([fe80::8319:9f44:4a00:6ff2]) by PH0PR11MB4870.namprd11.prod.outlook.com ([fe80::8319:9f44:4a00:6ff2%5]) with mapi id 15.20.6565.016; Thu, 6 Jul 2023 08:23:58 +0000 From: "Sheng Wei" To: "Yao, Jiewen" , "devel@edk2.groups.io" CC: "Wang, Jian J" , "Xu, Min M" , "Chen, Zeyi" , "Wang, Fiona" Subject: Re: [PATCH] SecurityPkg/SecureBoot: Support RSA 512 and RSA 384 Thread-Topic: [PATCH] SecurityPkg/SecureBoot: Support RSA 512 and RSA 384 Thread-Index: AQHZjskJ013VdJPEo0+BUvJoerQ0VK+WlClQgAybtrCAAEWxUIAJFZFggAAG1WCAAAYRsIAAEDfw Date: Thu, 6 Jul 2023 08:23:57 +0000 Message-ID: References: <20230525052316.512-1-w.sheng@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB4870:EE_|MW3PR11MB4746:EE_ x-ms-office365-filtering-correlation-id: 7451019a-6f54-42e2-b87e-08db7dfa5837 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vqPwpZ2URjOHQNsTB5OPbyhs4BIRiIabI1io33wvq+d183oWRKPeHglM4g21jusI53Qugw6DYh4PnWbT6gNEpLZfrQvNQZMFeEkDpTEDHljzgnJWtmguNlXN2wPnht5+19XxSNOr0J/w+VEAZK7ic0O2+P+xWRIzr9THvOnq+pcRJsFPfSXNU0UXHvNNIWjjqv++aTy69wI5ECQLTC6Moy21lKtEAMUUGHC5ltLAcJ3ZDuKYc+qPr+L4Oa7yYOfHWy1AegAoZgmxOErxmbFaYVDA1+iYFbDMPjz3Jgmwr1f/WkOz3iFmgJdzLn+zcVzTzP7Na8HX/WgyYrQP5JyttJvqvDh4I2tk2ZzGRJnkdF7B7i4Xul1Yrd/9lZQciGRuuTrDCL48i3Hl7AQekyLb6Kv6JBND7YeeewUT17m6CPutEJsgGZgHMGeMQSO70Cs1Pn2a3GX9F+KU2ovaf98WiWt/K2QrseKgKrQY7i1oMOv14lmE+SnoqbfD3z6+Uap50/XkKFHwfob/4x7Ed+6WSe3PQyEiHP4PKxeeC9QHt89IdhKyOQHWi9kwSFB2ywzLJV+9yh+CPbrLt9MCQNLuMJjQtfReixR15d3mrPOpZyo= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB4870.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(396003)(136003)(366004)(376002)(39860400002)(346002)(451199021)(55016003)(82960400001)(110136005)(54906003)(66476007)(66446008)(122000001)(99936003)(7696005)(71200400001)(478600001)(76116006)(41300700001)(8676002)(8936002)(66946007)(38100700002)(316002)(4326008)(64756008)(66556008)(19627235002)(2940100002)(186003)(53546011)(107886003)(966005)(83380400001)(9686003)(6506007)(26005)(33656002)(86362001)(15650500001)(52536014)(2906002)(38070700005)(30864003)(5660300002)(579004)(559001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?gb2312?B?U1RmT2hKK2s2elJCdUhPNmdhTnFCRTk4VkM4bUMwY3JIcjg5MXFaMHF6cnhW?= =?gb2312?B?QWVKaGxFSnRTb2RkYXdTNHFLSGx5aVVtNkZLaWsrVDZmM25LbmppRVVyMGZZ?= =?gb2312?B?N0JRYVNXRytsL1BwZEZNZ25oMDBUZHdMR2lIb2lqZHhCSmtoQzhKZHRzZzVG?= =?gb2312?B?dGp0cFlqWmdheVdKaG9qK2xYQlFibHBJVUhuNTBsaEJ3a3hZU0thZlNoa3hM?= =?gb2312?B?bVFCQ3Bwc1lDQmVLSDBYUnpQZ3V1Sk45Umx0eGVGR0pLOStROUxYVlVtT3NZ?= =?gb2312?B?cStYQmVudlhxK2hZdjlFOTVuR1ZFOXlWZlo3YTRRSldjZEloYlExSS9QUDVJ?= =?gb2312?B?QmIvaEIxMVNZM24xYjluVm5aYk92MEFEOTZkK0ZBcms5UFVqMUsyOEo4VFli?= =?gb2312?B?enpFaG5MaXpLVmFxdUYvVktZVW9qakIrUFhCdzhrM2tIeDVJL0dKbzgrYlhC?= =?gb2312?B?a0ZEaXVxMUNJZHV3U0RURThrTEN1WU4yazE2YlZMazJBY3drR3NOWE4zREtP?= =?gb2312?B?TVFGOXF3MFRHYzIvS1pvaUY3bXRoVEE3SzBQL3RUdEExN3BpQXk5SFVuM0d0?= =?gb2312?B?ZndUdFpDUFUvL1NTOGdsY2JqMGtHa01qcytkRm5HUEl3U0U3S1RNdUNZeUpO?= =?gb2312?B?UThhOFI4bDJ3Sy9YeWU2ZitCMzJaRDlhQjhQcW1DME9UZGx6RmpoSzZpUWs5?= =?gb2312?B?cmlvWWlucllJRFFtS3Nwb2tyM1hoWVpnTVhDbkdJZGFnbEMrQnhGMFZndzNI?= =?gb2312?B?Rk1IOTN1Q2ZNZThTTzlsYk95bk5WQktEYUtYdXVTZlhNRGZ1K2ZZeDM4OEpX?= =?gb2312?B?SkVyRU9ud1doYjdxcUhMcGJQRmIwUElNRHB1YkZrZHZzejBWdjVta042WEwz?= =?gb2312?B?Mk11RXI0RlhHbWVXRmdyZVdKMjVha2R0VUZHQWdoUFkvWlEwM2VFL0gwZWF4?= =?gb2312?B?b2l0bllDL2VnRXArMGRvRklCSmxXZG1xTzVNeVJYRFpQSy9ob3lOWWRuMm9n?= =?gb2312?B?SjBoOEpqb1JFVjFTY0l5eXB2T3NSM3Z6RHFiYnR2WFRLcTZiNFpYZmN1MXg4?= =?gb2312?B?QWpjV1RXSHc5UUJhNHRJZ1d5VnVpQzZOcXRtb0JsTG1NejJMM1FwUWhpeGF6?= =?gb2312?B?Q3UxUEF3OHlrd3V5ZVVkWUF2Z3NON1VJZEZNdmwyRzJGbmNaajMySWhVL1Q3?= =?gb2312?B?STA3Tlp3aFR1NGIwRmk5K3Y0MHJaS0E2dzVZMkM1S1NHMS9XRVA2ZmNqU2tX?= =?gb2312?B?QVNqbHdXTklmYncxRzgyUC9pOGVieWtkSlNzd0RJMEdzZVR0QUp0c0tSMVFV?= =?gb2312?B?MWVIa3ZiU3ZlL1A3ZlpDT3ViWU5qYmJJV3kwZ2Y5c0NtN1hiVnRpSnliWTZm?= =?gb2312?B?MlI4dXhuQUNvVml2Ylp0Zm1Td2dvRWx3Q29GSTNoU0MrKzhrY2MwYXNYb0Vr?= =?gb2312?B?OVpBbndEZUZyUzVqWndabjhKVis2TE9wNFNVaGdzUDJQaStVd29kQW9Vd0Qr?= =?gb2312?B?SmQrcmY0MFZ6VWkxSkU3UlZlSmMyRU0vVGNqSU1SQm5QOVk3dWx1WFR1bjA0?= =?gb2312?B?NzNIbG5xOVdBMS9Wb0MyQjdWUTgyTDlaZm9yVHQ3eFpsQ0Z2VXcvSnpTcUE5?= =?gb2312?B?TUdSMGpycUZHcG5UV0FCM3lrcE5hTDN5REhFenN4Y05wRXoxNi9GNTBIS0lh?= =?gb2312?B?VUlFUGxTaEFqZkRNUEdaV2FVcFptMmVDZGR4NkUvb3J6bmVrMVBpdUhpRzFH?= =?gb2312?B?SFdYT21FeDUzeVZ5UnpDQzhMUU9vK2hWM2dJZGZtdDYzNmRoQWQzL0lKQ3Jn?= =?gb2312?B?QXVPOHRCczYzdDl3WFRHVmFpb0t3YVh2dkdjdnlOSXBhZjNoWXAwY3E5TmVF?= =?gb2312?B?QjhGY1pxc29FaVE2VUVrWjRCZGtXWERUNG9qbkRoYXhRNjJxNnVCR3h0bmQ0?= =?gb2312?B?T3FoOW1FbUw0NTl6RUZHWkVyS1dmNk5yMk9tVXgvbUMyQzYvQlYvTENDSzF6?= =?gb2312?B?YW9hclo0WDZoV2grU0c0M0V5ekxMRk9UWndJdFBsRFBKQ3RZbXJYaUkwdndk?= =?gb2312?B?QTNRK01MZE5BRDgyTWdPL3hBVWgxY2FWZTVJWnE4bjg2UFFNZUMzbVdabTFn?= =?gb2312?Q?a2u4=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB4870.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7451019a-6f54-42e2-b87e-08db7dfa5837 X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Jul 2023 08:23:57.8247 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 6/CxavrEdeMKd3VggZu+CVbz+qLjqLgGQMggFbWdZlFOzcz/0pacTAU6Ad2tCrPkc/qGazbKDLa6eFK52r4s4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW3PR11MB4746 Return-Path: w.sheng@intel.com X-OriginatorOrg: intel.com X-Groupsio-MsgNum: 106684 Content-Language: en-US Content-Type: multipart/mixed; boundary="_002_PH0PR11MB48708F98A4F272DAC1250C7DE12CAPH0PR11MB4870namp_" --_002_PH0PR11MB48708F98A4F272DAC1250C7DE12CAPH0PR11MB4870namp_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmlld2VuLA0KSSBqdXN0IHJhaXNlZCB0aGUgcGF0Y2ggVjQgZm9yIHRoaXMgc3VnZ2VzdGlv bi4NCkRvIHlvdSBoYXZlIGFueSBjb21tZW50IGFib3V0IHRoaXMgc29sdXRpb24gPw0KVGhhbmsg eW91DQpCUg0KU2hlbmcgV2VpDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogU2hlbmcsIFcNCj4gU2VudDogMjAyM8TqN9TCNsjVIDE1OjI5DQo+IFRvOiBZYW8sIEppZXdl biA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiBDYzogV2Fu ZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBYdSwgTWluIE0gPG1pbi5tLnh1QGlu dGVsLmNvbT47DQo+IENoZW4sIFpleWkgPFpleWkuQ2hlbkBpbnRlbC5jb20+OyBXYW5nLCBGaW9u YSA8ZmlvbmEud2FuZ0BpbnRlbC5jb20+DQo+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIFNlY3VyaXR5 UGtnL1NlY3VyZUJvb3Q6IFN1cHBvcnQgUlNBIDUxMiBhbmQgUlNBIDM4NA0KPiANCj4gSGkgSmll d2VuLA0KPiBBcyB5b3VyIHN1Z2dlc3Rpb24uDQo+IEkgd2lsbCBjaGVjayBpZiBDUExfS0VZX0lO Rk8uIEtleVR5cGUgPT0gMCBmaXJzdC4NCj4gSWYgdHJ1ZSwgSSB3aWxsIHVzZSBiZWxvdyB0YWJs ZSB0byBzZWxlY3QgUlNBIGFsZ29yaXRobS4NCj4gS2V5TGVuZ3RoSW5CaXRzICAgIFJTQSBhbGdv cml0aG0NCj4gMjA0OCAgICAgICAgICAgICAgICAgICAgICAgIFJTQSAySw0KPiAzMDcyICAgICAg ICAgICAgICAgICAgICAgICAgUlNBIDNLDQo+IDQwOTYgICAgICAgICAgICAgICAgICAgICAgICBS U0EgNEsNCj4gRG8geW91IGhhdmUgYW55IGNvbW1lbnQgYWJvdXQgdGhpcyBzb2x1dGlvbiA/DQo+ IA0KPiBUaGFuayB5b3UNCj4gQlINCj4gU2hlbmcgV2VpDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdp bmFsIE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVs LmNvbT4NCj4gPiBTZW50OiAyMDIzxOo31MI2yNUgMTU6MDYNCj4gPiBUbzogU2hlbmcsIFcgPHcu c2hlbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogV2FuZywgSmlh biBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+OyBYdSwgTWluIE0NCj4gPiA8bWluLm0ueHVAaW50 ZWwuY29tPjsgQ2hlbiwgWmV5aSA8emV5aS5jaGVuQGludGVsLmNvbT47IFdhbmcsIEZpb25hDQo+ ID4gPGZpb25hLndhbmdAaW50ZWwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIFNlY3Vy aXR5UGtnL1NlY3VyZUJvb3Q6IFN1cHBvcnQgUlNBIDUxMiBhbmQgUlNBDQo+IDM4NA0KPiA+DQo+ ID4gQ1BMX0tFWV9JTkZPIGlzIG5vdCBzdGFuZGFyZCwgYnV0IGltcGxlbWVudGF0aW9uIGNob2lj ZS4NCj4gPg0KPiA+IEkgbm90aWNlIEtleVR5cGUgZmllbGQgaXMgbm90IHVzZWQgdG9kYXkuIEkg YXNzdW1lIGl0IGlzIDAgdG9kYXkuDQo+ID4NCj4gPiBDYW4gd2UgdXNlIDAgdG8gaW5kaWNhdGUg UlNBU1NBPw0KPiA+DQo+ID4gVGhhbmsgeW91DQo+ID4gWWFvLCBKaWV3ZW4NCj4gPg0KPiA+DQo+ ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBTaGVuZywg VyA8dy5zaGVuZ0BpbnRlbC5jb20+DQo+ID4gPiBTZW50OiBUaHVyc2RheSwgSnVseSA2LCAyMDIz IDI6NDggUE0NCj4gPiA+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gQ2M6IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdA aW50ZWwuY29tPjsgWHUsIE1pbiBNDQo+ID4gPG1pbi5tLnh1QGludGVsLmNvbT47DQo+ID4gPiBD aGVuLCBaZXlpIDx6ZXlpLmNoZW5AaW50ZWwuY29tPjsgV2FuZywgRmlvbmEgPGZpb25hLndhbmdA aW50ZWwuY29tPg0KPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gU2VjdXJpdHlQa2cvU2VjdXJl Qm9vdDogU3VwcG9ydCBSU0EgNTEyIGFuZCBSU0ENCj4gPiAzODQNCj4gPiA+DQo+ID4gPiBIaSBK aWV3ZW4sDQo+ID4gPiBJIHJhaXNlZCB0aGUgcGF0Y2ggVjMsIEFuZCBJIGFsc28gYXR0YWNoZWQg dGhlIHBhdGNoIGZpbGUuDQo+ID4gPiBGb3IgNCwNCj4gPiA+IE15IHNvbHV0aW9uIGlzIGJlbG93 Lg0KPiA+ID4gV2hlbiBlbnJvbGwgdGhlIHVuc2lnbmVkIGltYWdlLCBCSU9TIHdpbGwgc2VsZWN0 IHRoZSBtb3N0IHN1cHBvcnRlZA0KPiA+IGNvbXBsZXgNCj4gPiA+IGhhc2ggYWxnb3JpdGhtIHRv IGdldCB0aGUgaGFzaC4NCj4gPiA+IFdoZW4gZG8gdGhlIHZlcmlmaWNhdGlvbiwgQklPUyB3aWxs IHRyeSBhbGwgc3VwcG9ydGVkIGhhc2ggYWxnb3JpdGhtIGluDQo+ICJkYiINCj4gPiBhbmQNCj4g PiA+ICJkYngiLg0KPiA+ID4NCj4gPiA+IEZvciA1Lg0KPiA+ID4gVGhlIHN0cnVjdCBvZiBDUExf S0VZX0lORk8gc2hvdWxkIGJlIGJpbmRlZCB0byAucGJrIGZpbGUgZm9ybWF0Lg0KPiA+ID4gSSBj YW5ub3QgZmluZCB0aGUgc3BlYyBvZiAucGJrIGZpbGUuIEkgY2FuIG5vdCBjaGFuZ2UgdGhlIHN0 cnVjdCBpdGVtcy4NCj4gPiA+IERvIHlvdSBrbm93IHdoZXJlIHRvIGZpbmQgdGhlIHNwZWMgb2Yg cHVibGljIGtleSBzdG9yaW5nIGZpbGUgKCoucGJrKSA/DQo+ID4gPiBPciBpcyAqLnBiayBmaWxl IGEgbGVnYWN5IGZpbGUgZm9ybWF0PyBXZSBkbyBub3QgbmVlZCB0byBjaGFuZ2UgdGhpcyBwYXJ0 DQo+IGFuZA0KPiA+ID4ga2VlcCBpdCBmb3IgUlNBIDIwNDggb25seSA/DQo+ID4gPg0KPiA+ID4g VGhhbmsgeW91DQo+ID4gPiBCUg0KPiA+ID4gU2hlbmcgV2VpDQo+ID4gPg0KPiA+ID4gPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2Vu Lnlhb0BpbnRlbC5jb20+DQo+ID4gPiA+IFNlbnQ6IDIwMjPE6jbUwjMwyNUgMTk6NTcNCj4gPiA+ ID4gVG86IFNoZW5nLCBXIDx3LnNoZW5nQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlv DQo+ID4gPiA+IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFh1LCBN aW4gTQ0KPiA+ID4gPiA8bWluLm0ueHVAaW50ZWwuY29tPjsgQ2hlbiwgWmV5aSA8emV5aS5jaGVu QGludGVsLmNvbT47IFdhbmcsDQo+IEZpb25hDQo+ID4gPiA+IDxmaW9uYS53YW5nQGludGVsLmNv bT4NCj4gPiA+ID4gU3ViamVjdDogUkU6IFtQQVRDSF0gU2VjdXJpdHlQa2cvU2VjdXJlQm9vdDog U3VwcG9ydCBSU0EgNTEyIGFuZCBSU0ENCj4gPiAzODQNCj4gPiA+ID4NCj4gPiA+ID4gRm9yIDQs IEkgdGhpbmsgd2UgY2FuIGVucm9sbCBhbGwgc3VwcG9ydGVkIGFsZ29yaXRobXMsIG9yIHRoZSBh Y3RpdmUNCj4gPiBhbGdvcml0aG0uIEkNCj4gPiA+ID4gZG9uoa90IHRoaW5rIHRoZSBQQ0QgaXMg bmVlZGVkLg0KPiA+ID4gPg0KPiA+ID4gPiBGb3IgNSwgSSBzdWdnZXN0IHRvIGNoYW5nZSB0aGUg ZGF0YSBzdHJ1Y3R1cmUgdG8gaW5jbHVkZSB0aGUgYWxnb3JpdGhtIElELg0KPiA+ID4gPg0KPiA+ ID4gPiBUaGFuayB5b3UNCj4gPiA+ID4gWWFvLCBKaWV3ZW4NCj4gPiA+ID4NCj4gPiA+ID4NCj4g PiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IFNoZW5n LCBXIDx3LnNoZW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBGcmlkYXksIEp1bmUgMzAs IDIwMjMgMzo1MiBQTQ0KPiA+ID4gPiA+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRl bC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbw0KPiA+ID4gPiA+IENjOiBXYW5nLCBKaWFuIEog PGppYW4uai53YW5nQGludGVsLmNvbT47IFh1LCBNaW4gTQ0KPiA+ID4gPiA8bWluLm0ueHVAaW50 ZWwuY29tPjsNCj4gPiA+ID4gPiBDaGVuLCBaZXlpIDx6ZXlpLmNoZW5AaW50ZWwuY29tPjsgV2Fu ZywgRmlvbmENCj4gPiA8ZmlvbmEud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gU3ViamVjdDog UkU6IFtQQVRDSF0gU2VjdXJpdHlQa2cvU2VjdXJlQm9vdDogU3VwcG9ydCBSU0EgNTEyIGFuZA0K PiBSU0ENCj4gPiA+ID4gMzg0DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBIaSBKaWV3ZW4sDQo+ID4g PiA+ID4gSSByYWlzZWQgdGhlIHBhdGNoIFYyLg0KPiA+ID4gPiA+IEkgZG8gdGhlIGZpeCBmb3Ig MSkgLCAyKSwgMykuDQo+ID4gPiA+ID4gQnV0IGZvciA0KSA1KSwgSSBoYXZlIGJlbG93IGNvbW1l bnRzLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gNCkgSSBhbSBub3Qgc3VyZSB3aHkgd2UgbmVlZCB0 aGlzIFBDRC4gV2h5IGNhbm5vdCB3ZSBzdXBwb3J0IGFsbCBvZg0KPiA+IGhhc2gNCj4gPiA+ID4g YWxnbz8NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICsgICMjIEluZGljYXRlcyBkZWZhdWx0IGhhc2gg YWxnb3JpdGhtIGluIFNlY3VyZSBCb290DQo+ID4gPiA+ID4gKyAgIyAgIDAgLSBVc2UgU0hBMjU2 DQo+ID4gPiA+ID4gKyAgIyAgIDEgLSBVc2UgU0hBMzg0DQo+ID4gPiA+ID4gKyAgIyAgIDIgLSBV c2UgU0hBNTEyDQo+ID4gPiA+ID4gKyAgIyBAUHJvbXB0IFNlY3VyZSBCb290IGRlZmF1bHQgaGFz aCBhbGdvcml0aG0NCj4gPiA+ID4gPiArDQo+ID4gPiA+ID4gKw0KPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4NCj4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VjdXJlQm9vdERlZmF1 bHRIYXNoQWxnfDB8VUlOVDh8MHgNCj4gPiA+ID4gMDANCj4gPiA+ID4gPiArIDAxMDA0MA0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gUENEIFBjZFNlY3VyZUJvb3REZWZhdWx0SGFzaEFsZyBpcyB1c2Vk IGZvciB0aGUgb25seSBjYXNlIG9mIGVucm9sbA0KPiBhbg0KPiA+ID4gPiA+IHVuc2lnbmVkIGlt YWdlLg0KPiA+ID4gPiA+IFRoZSBvcmlnaW5hbCBsb2dpYyBpcyBCSU9TIHdpbGwgZ2VucmF0ZSBT SEEyNTYgZGlnZXN0IGZvciB0aGlzIHVuc2lnbmVkDQo+ID4gaW1hZ2UNCj4gPiA+ID4gYW5kDQo+ ID4gPiA+ID4gc2F2ZSBpdC4NCj4gPiA+ID4gPiBUaGUgUENEIGlzIHVzZWQgdG8gc2VsZWN0IHRo ZSBoYXNoIGFsZ29yaXRobSBmb3IgdGhpcyBjYXNlLg0KPiA+ID4gPiA+IFNvIHdlIGhhdmUgdG8g dXNlIGEgUENEIHRvIHNlbGVjdCB0aGUgYWxnb3JpdGhtIG1hbnVsbHkuDQo+ID4gPiA+ID4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+IDUpIEkgZG9uoa90IGJlbGlldmUgdGhhdCB5b3UgY2FuIHVzZSBz aXplIHRvIGRldGVybWluZSB0aGUgYWxnb3JpdGhtLg0KPiBXZQ0KPiA+ID4gPiBuZWVkIGENCj4g PiA+ID4gPiBtb3JlIHJvYnVzdCB3YXksIHN1Y2ggYXMgYWxnb3JpdGhtIElELg0KPiA+ID4gPiA+ DQo+ID4gPiA+ID4gKyAgc3dpdGNoIChLZXlMZW5JbkJ5dGVzKSB7DQo+ID4gPiA+ID4gKyAgY2Fz ZSBXSU5fQ0VSVF9VRUZJX1JTQTIwNDhfU0laRToNCj4gPiA+ID4gPiArICAgIENvcHlHdWlkICgm S2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1aWQpOw0KPiA+ID4g PiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTMwNzJf U0laRToNCj4gPiA+ID4gPiArICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlw ZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpOw0KPiA+ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+ ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTQwOTZfU0laRToNCj4gPiA+ID4gPiArICAgIENv cHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhNDA5Nkd1aWQp Ow0KPiA+ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFRoaXMgY29kZSBpcyB1c2VkIHdoZW4gZW5yb2xsIGEgUlNBIHB1YmxpYyBr ZXkgc3RvcmluZyBmaWxlICgqLnBiaykuDQo+ID4gPiA+ID4gSGVyZSBpcyB0aGUgaGVhZGVyIFN0 cnVjdCBvZiB0aGlzIGZpbGUuDQo+ID4gPiA+ID4gdHlwZWRlZiBzdHJ1Y3QgX0NQTF9LRVlfSU5G TyB7DQo+ID4gPiA+ID4gICBVSU5UMzIgICAgS2V5TGVuZ3RoSW5CaXRzOyAgICAgICAgLy8gS2V5 IExlbmd0aCBJbiBCaXRzDQo+ID4gPiA+ID4gICBVSU5UMzIgICAgQmxvY2tTaXplOyAgICAgICAg ICAgICAgLy8gT3BlcmF0aW9uIEJsb2NrIFNpemUgaW4gQnl0ZXMNCj4gPiA+ID4gPiAgIFVJTlQz MiAgICBDaXBoZXJCbG9ja1NpemU7ICAgICAgICAvLyBPdXRwdXQgQ2lwaGVyIEJsb2NrIFNpemUg aW4gQnl0ZXMNCj4gPiA+ID4gPiAgIFVJTlQzMiAgICBLZXlUeXBlOyAgICAgICAgICAgICAgICAv LyBLZXkgVHlwZQ0KPiA+ID4gPiA+ICAgVUlOVDMyICAgIENpcGhlck1vZGU7ICAgICAgICAgICAg IC8vIENpcGhlciBNb2RlIGZvciBTeW1tZXRyaWMNCj4gQWxnb3JpdGhtDQo+ID4gPiA+ID4gICBV SU5UMzIgICAgRmxhZ3M7ICAgICAgICAgICAgICAgICAgLy8gQWRkaXRpb25hbCBLZXkgUHJvcGVy dHkgRmxhZ3MNCj4gPiA+ID4gPiB9IENQTF9LRVlfSU5GTzsNCj4gPiA+ID4gPg0KPiA+ID4gPg0K PiA+DQo+IEVkazIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RD b25maWdEeGUvU2VjdXJlQm9vdA0KPiA+ID4gPiBDb24NCj4gPiA+ID4gPiBmaWdJbXBsLmgNCj4g PiA+ID4gPiBXZSBjYW4gb25seSBnZXQgdG8ga25vdyB0aGUgUlNBIGFsZ29yaXRobSBieSBLZXlM ZW5ndGhJbkJpdHMuDQo+ID4gPiA+ID4gKFJTQTIwNDgvUlNBMzA3Mi9SU0E0MDk2KQ0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gVGhhbmsgeW91Lg0KPiA+ID4gPiA+IEJSDQo+ID4gPiA+ID4gU2hlbmcg V2VpDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+ID4gPiBGcm9tOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4g PiA+ID4gPiBTZW50OiAyMDIzxOo21MIyMsjVIDE1OjIyDQo+ID4gPiA+ID4gPiBUbzogU2hlbmcs IFcgPHcuc2hlbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiA+ID4gPiA+ IENjOiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFh1LCBNaW4gTQ0KPiA+ ID4gPiA8bWluLm0ueHVAaW50ZWwuY29tPjsNCj4gPiA+ID4gPiA+IENoZW4sIFpleWkgPHpleWku Y2hlbkBpbnRlbC5jb20+OyBXYW5nLCBGaW9uYQ0KPiA+IDxmaW9uYS53YW5nQGludGVsLmNvbT4N Cj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIFNlY3VyaXR5UGtnL1NlY3VyZUJvb3Q6 IFN1cHBvcnQgUlNBIDUxMiBhbmQNCj4gPiBSU0ENCj4gPiA+ID4gMzg0DQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gVGhhbmsgeW91IHZlcnkgbXVjaCB0byBjb250cmlidXRlIHRoaXMgcGF0Y2gu IEhlcmUgaXMgbXkgZmVlZGJhY2suDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMSkgSSBkb26h r3QgYmVsaWV2ZSB0aGF0IHlvdSBjYW5ub3QgdXNlIGRpZ2VzdCBzaXplIHRvIGRldGVybWluZSB0 aGUNCj4gPiA+ID4gYWxnb3JpdGhtLA0KPiA+ID4gPiA+ID4gYmVjYXVzZSBkaWZmZXJlbnQgaGFz aCBhbGdvcml0aG0gbWF5IGhhdmUgc2FtZSB0aW1lLiBFLmcuIFNIQTI1Ng0KPiA+IGFuZA0KPiA+ ID4gPiA+ID4gU0hBM18yNTYuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgaWYgKERpZ2Vz dFNpemUgPT0gU0hBMjU2X0RJR0VTVF9TSVpFKSB7DQo+ID4gPiA+ID4gPiArICAgIFN0YXR1cyA9 IENhbGN1bGF0ZVByaXZBdXRoVmFyU2lnbkNoYWluU0hBMjU2RGlnZXN0ICgNCj4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICBTaWduZXJDZXJ0LA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg IFNpZ25lckNlcnRTaXplLA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIFRvcExldmVsQ2Vy dCwNCj4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBUb3BMZXZlbENlcnRTaXplLA0KPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgIFNoYURpZ2VzdA0KPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICk7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gMikgSSBkb26hr3QgYmVsaWV2ZSB0aGF0 IHlvdSBjYW5ub3QgYXNzdW1pbmcgQ3R4U2l6ZSBvZiBTSEE1MTIgaXMNCj4gPiBiaWdnZXINCj4g PiA+ID4gdGhhbg0KPiA+ID4gPiA+ID4gU0hBMjU2LiBJIHRoaW5rIHdlIG1heSBuZWVkIGNyZWF0 ZSBjb250ZXh0IGZvciBlYWNoIGFsZ28uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gQEAgLTEz NSw3ICsxMzUsNyBAQCBBdXRoVmFyaWFibGVMaWJJbml0aWFsaXplICgNCj4gPiA+ID4gPiA+ICAg IC8vDQo+ID4gPiA+ID4gPiAgICAvLyBJbml0aWFsaXplIGhhc2ggY29udGV4dC4NCj4gPiA+ID4g PiA+ICAgIC8vDQo+ID4gPiA+ID4gPiAtICBDdHhTaXplICA9IFNoYTI1NkdldENvbnRleHRTaXpl ICgpOw0KPiA+ID4gPiA+ID4gKyAgQ3R4U2l6ZSAgPSBTaGE1MTJHZXRDb250ZXh0U2l6ZSAoKTsN Cj4gPiA+ID4gPiA+ICAgIG1IYXNoQ3R4ID0gQWxsb2NhdGVSdW50aW1lUG9vbCAoQ3R4U2l6ZSk7 DQo+ID4gPiA+ID4gPiAgICBpZiAobUhhc2hDdHggPT0gTlVMTCkgew0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+IDMpIEkgYmVsaWV2ZSB3ZSBzaG91bGQgdXNlIDAgZm9yIFNIQTI1NiBhbmQgQVNT RVJUIGluIGRlZmF1bHQuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gKyAgc3dpdGNoIChQY2RH ZXQ4IChQY2RTZWN1cmVCb290RGVmYXVsdEhhc2hBbGcpKSB7ICBjYXNlIDE6DQo+ID4gPiA+ID4g PiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhIHVzZSBTSEEzODQiLCBfX2Z1bmNfXykpOw0K PiA+ID4gPiA+ID4gKyAgICBIYXNoQWxnID0gSEFTSEFMR19TSEEzODQ7DQo+ID4gPiA+ID4gPiAr ICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gKyAgY2FzZSAyOg0KPiA+ID4gPiA+ID4gKyAgICBERUJV RyAoKERFQlVHX0lORk8sICIlYSB1c2UgU0hBNTEyIiwgX19mdW5jX18pKTsNCj4gPiA+ID4gPiA+ ICsgICAgSGFzaEFsZyA9IEhBU0hBTEdfU0hBNTEyOw0KPiA+ID4gPiA+ID4gKyAgICBicmVhazsN Cj4gPiA+ID4gPiA+ICsgIGRlZmF1bHQ6DQo+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdf SU5GTywgIiVhIHVzZSBTSEEyNTYiLCBfX2Z1bmNfXykpOw0KPiA+ID4gPiA+ID4gKyAgICBIYXNo QWxnID0gSEFTSEFMR19TSEEyNTY7DQo+ID4gPiA+ID4gPiArICAgIGJyZWFrOw0KPiA+ID4gPiA+ ID4gKyAgfQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IDQpIEkgYW0gbm90IHN1cmUgd2h5IHdl IG5lZWQgdGhpcyBQQ0QuIFdoeSBjYW5ub3Qgd2Ugc3VwcG9ydCBhbGwNCj4gb2YNCj4gPiA+ID4g aGFzaA0KPiA+ID4gPiA+ID4gYWxnbz8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArICAjIyBJ bmRpY2F0ZXMgZGVmYXVsdCBoYXNoIGFsZ29yaXRobSBpbiBTZWN1cmUgQm9vdA0KPiA+ID4gPiA+ ID4gKyAgIyAgIDAgLSBVc2UgU0hBMjU2DQo+ID4gPiA+ID4gPiArICAjICAgMSAtIFVzZSBTSEEz ODQNCj4gPiA+ID4gPiA+ICsgICMgICAyIC0gVXNlIFNIQTUxMg0KPiA+ID4gPiA+ID4gKyAgIyBA UHJvbXB0IFNlY3VyZSBCb290IGRlZmF1bHQgaGFzaCBhbGdvcml0aG0NCj4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4NCj4gZ0VmaVNlY3VyaXR5 UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnfDB8VUlOVDh8MHgN Cj4gPiA+ID4gPiA+IDAwDQo+ID4gPiA+ID4gPiArIDAxMDA0MA0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+IDUpIEkgZG9uoa90IGJlbGlldmUgdGhhdCB5b3UgY2FuIHVzZSBzaXplIHRvIGRldGVy bWluZSB0aGUgYWxnb3JpdGhtLg0KPiA+IFdlDQo+ID4gPiA+IG5lZWQNCj4gPiA+ID4gPiA+IGEg bW9yZSByb2J1c3Qgd2F5LCBzdWNoIGFzIGFsZ29yaXRobSBJRC4NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiArICBzd2l0Y2ggKEtleUxlbkluQnl0ZXMpIHsNCj4gPiA+ID4gPiA+ICsgIGNhc2Ug V0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU6DQo+ID4gPiA+ID4gPiArICAgIENvcHlHdWlkICgm S2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1aWQpOw0KPiA+ID4g PiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0Ez MDcyX1NJWkU6DQo+ID4gPiA+ID4gPiArICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0 dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpOw0KPiA+ID4gPiA+ID4gKyAgICBicmVhazsN Cj4gPiA+ID4gPiA+ICsgIGNhc2UgV0lOX0NFUlRfVUVGSV9SU0E0MDk2X1NJWkU6DQo+ID4gPiA+ ID4gPiArICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0 UnNhNDA5Nkd1aWQpOw0KPiA+ID4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4gPiA+ICsgICAg YnJlYWs7DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGhhbmsgeW91DQo+ID4gPiA+ID4gPiBZ YW8sIEppZXdlbg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gRnJvbTogU2hlbmcsIFcgPHcuc2hlbmdAaW50ZWwuY29t Pg0KPiA+ID4gPiA+ID4gPiBTZW50OiBUaHVyc2RheSwgTWF5IDI1LCAyMDIzIDE6MjMgUE0NCj4g PiA+ID4gPiA+ID4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ID4gPiA+ID4gPiA+IENjOiBZ YW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+OyBXYW5nLCBKaWFuIEoNCj4gPiA+ID4g PiA+ID4gPGppYW4uai53YW5nQGludGVsLmNvbT47IFh1LCBNaW4gTSA8bWluLm0ueHVAaW50ZWwu Y29tPjsNCj4gQ2hlbiwNCj4gPiA+ID4gWmV5aQ0KPiA+ID4gPiA+ID4gPiA8emV5aS5jaGVuQGlu dGVsLmNvbT47IFdhbmcsIEZpb25hIDxmaW9uYS53YW5nQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ ID4gU3ViamVjdDogW1BBVENIXSBTZWN1cml0eVBrZy9TZWN1cmVCb290OiBTdXBwb3J0IFJTQSA1 MTIgYW5kDQo+IFJTQQ0KPiA+ID4gPiAzODQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g UkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTM0MTMN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9A aW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGlu dGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gQ2M6IE1pbiBYdSA8bWluLm0ueHVAaW50ZWwuY29tPg0K PiA+ID4gPiA+ID4gPiBDYzogWmV5aSBDaGVuIDx6ZXlpLmNoZW5AaW50ZWwuY29tPg0KPiA+ID4g PiA+ID4gPiBDYzogRmlvbmEgV2FuZyA8ZmlvbmEud2FuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ID4g PiA+IFNpZ25lZC1vZmYtYnk6IFNoZW5nIFdlaSA8dy5zaGVuZ0BpbnRlbC5jb20+DQo+ID4gPiA+ ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gPiAgQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGli L1BrL0NyeXB0VHMuYyAgIHwgICAzICstDQo+ID4gPiA+ID4gPiA+ICBNZGVQa2cvSW5jbHVkZS9H dWlkL0ltYWdlQXV0aGVudGljYXRpb24uaCAgICAgfCAgMjYgKysNCj4gPiA+ID4gPiA+ID4gIE1k ZVBrZy9NZGVQa2cuZGVjICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQo+ID4g PiA+ID4gPiA+ICAuLi4vTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2UuYyAgICAg fCAyNzINCj4gPiArKysrKysrKysrKysrKysrLQ0KPiA+ID4gPiAtDQo+ID4gPiA+ID4gPiA+ICAu Li4vTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZhcmlhYmxlTGliLmMgfCAgIDQgKy0NCj4g PiA+ID4gPiA+ID4gIC4uLi9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi5jICAgICAgICAgICAgICAg ICB8ICAzNSArKy0NCj4gPiA+ID4gPiA+ID4gIC4uLi9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi5p bmYgICAgICAgICAgICAgICB8ICAgMSArDQo+ID4gPiA+ID4gPiA+ICBTZWN1cml0eVBrZy9TZWN1 cml0eVBrZy5kZWMgICAgICAgICAgICAgICAgICAgfCAgIDcgKw0KPiA+ID4gPiA+ID4gPiAgLi4u L1NlY3VyZUJvb3RDb25maWdEeGUuaW5mICAgICAgICAgICAgICAgICAgIHwgIDE5ICsrDQo+ID4g PiA+ID4gPiA+ICAuLi4vU2VjdXJlQm9vdENvbmZpZ0ltcGwuYyAgICAgICAgICAgICAgICAgICAg fCAxMjIgKysrKysrKy0NCj4gPiA+ID4gPiA+ID4gIC4uLi9TZWN1cmVCb290Q29uZmlnSW1wbC5o ICAgICAgICAgICAgICAgICAgICB8ICAgMiArDQo+ID4gPiA+ID4gPiA+ICAuLi4vU2VjdXJlQm9v dENvbmZpZ1N0cmluZ3MudW5pICAgICAgICAgICAgICAgfCAgIDYgKw0KPiA+ID4gPiA+ID4gPiAg MTIgZmlsZXMgY2hhbmdlZCwgNDYzIGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQ0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvQ3J5cHRvUGtnL0xpYnJhcnkv QmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYw0KPiA+ID4gPiA+ID4gPiBiL0NyeXB0b1BrZy9MaWJy YXJ5L0Jhc2VDcnlwdExpYi9Qay9DcnlwdFRzLmMNCj4gPiA+ID4gPiA+ID4gaW5kZXggMDI3ZGJi Njg0Mi4uOTQ0YmNmOGQzOCAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvQ3J5cHRvUGtnL0xp YnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYw0KPiA+ID4gPiA+ID4gPiArKysgYi9Dcnlw dG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRUcy5jDQo+ID4gPiA+ID4gPiA+IEBA IC01OTEsNyArNTkxLDggQEAgSW1hZ2VUaW1lc3RhbXBWZXJpZnkgKA0KPiA+ID4gPiA+ID4gPiAg ICAvLyBSZWdpc3RlciAmIEluaXRpYWxpemUgbmVjZXNzYXJ5IGRpZ2VzdCBhbGdvcml0aG1zIGZv ciBQS0NTIzcNCj4gPiBIYW5kbGluZy4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg Ly8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgaWYgKChFVlBfYWRkX2RpZ2VzdCAo RVZQX21kNSAoKSkgPT0gMCkgfHwgKEVWUF9hZGRfZGlnZXN0DQo+ID4gPiA+IChFVlBfc2hhMQ0K PiA+ID4gPiA+ID4gPiAoKSkgPT0gMCkNCj4gPiA+ID4gPiA+ID4gfHwNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gLSAgICAgIChFVlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTI1NiAoKSkgPT0g MCkgfHwNCj4gPiAoKEVWUF9hZGRfZGlnZXN0X2FsaWFzDQo+ID4gPiA+ID4gPiA+IChTTl9zaGEx V2l0aFJTQUVuY3J5cHRpb24sIFNOX3NoYTFXaXRoUlNBKSkgPT0gMCkpDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgICAoRVZQX2FkZF9kaWdlc3QgKEVWUF9zaGEyNTYgKCkpID09 IDApIHx8IChFVlBfYWRkX2RpZ2VzdA0KPiA+ID4gPiA+ID4gPiArIChFVlBfc2hhMzg0ICgpKQ0K PiA+ID4gPiA+ID4gPiA9PSAwKSB8fA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAg ICAgKEVWUF9hZGRfZGlnZXN0IChFVlBfc2hhNTEyICgpKSA9PSAwKSB8fA0KPiA+ICgoRVZQX2Fk ZF9kaWdlc3RfYWxpYXMNCj4gPiA+ID4gPiA+ID4gKFNOX3NoYTFXaXRoUlNBRW5jcnlwdGlvbiwg U05fc2hhMVdpdGhSU0EpKSA9PSAwKSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg ew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIHJldHVybiBGQUxTRTsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUvR3VpZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmgN Cj4gPiA+ID4gPiA+ID4gYi9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24u aA0KPiA+ID4gPiA+ID4gPiBpbmRleCBmZTgzNTk2NTcxLi5jOGVhMmMxNGZiIDEwMDY0NA0KPiA+ ID4gPiA+ID4gPiAtLS0gYS9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24u aA0KPiA+ID4gPiA+ID4gPiArKysgYi9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGlj YXRpb24uaA0KPiA+ID4gPiA+ID4gPiBAQCAtMTQ0LDYgKzE0NCwzMCBAQCB0eXBlZGVmIHN0cnVj dCB7DQo+ID4gPiA+ID4gPiA+ICAgICAgMHgzYzU3NjZlOCwgMHgyNjljLCAweDRlMzQsIHsweGFh LCAweDE0LCAweGVkLCAweDc3LCAweDZlLCAweDg1LA0KPiA+ID4gPiA+ID4gPiAweGIzLCAweGI2 fSBcDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIH0NCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKy8vLw0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArLy8vIFRoaXMgaWRlbnRpZmllcyBhIHNpZ25hdHVyZSBjb250 YWluaW5nIGFuIFJTQS0zMDcyIGtleS4gVGhlDQo+IGtleQ0KPiA+ID4gPiA+ID4gPiArKG9ubHkg dGhlDQo+ID4gPiA+ID4gPiA+IG1vZHVsdXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g Ky8vLyBzaW5jZSB0aGUgcHVibGljIGtleSBleHBvbmVudCBpcyBrbm93biB0byBiZSAweDEwMDAx KSBzaGFsbA0KPiBiZQ0KPiA+ID4gPiA+ID4gPiArc3RvcmVkIGluIGJpZy0NCj4gPiA+ID4gPiA+ ID4gZW5kaWFuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsvLy8gb3JkZXIuDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsvLy8gVGhlIFNpZ25hdHVyZUhlYWRlciBzaXplIHNo YWxsIGFsd2F5cyBiZSAwLiBUaGUgU2lnbmF0dXJlU2l6ZQ0KPiA+ID4gPiA+ID4gPiArc2hhbGwg YWx3YXlzDQo+ID4gPiA+ID4gPiA+IGJlIDE2IChzaXplDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsvLy8gb2YgU2lnbmF0dXJlT3duZXIgY29tcG9uZW50KSArIDM4NCBieXRlcy4NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKy8vLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArI2RlZmluZSBFRklfQ0VSVF9SU0EzMDcyX0dVSUQgXA0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiArICB7IFwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAweGVk ZDMyMGMyLCAweGIwNTcsIDB4NGI4ZSwgezB4YWQsIDB4NDYsIDB4MmMsIDB4OWIsIDB4ODUsDQo+ IDB4ODksDQo+ID4gPiA+ID4gPiA+ICsgMHhlZSwNCj4gPiA+ID4gPiA+ID4gMHg5MiB9IFwNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsvLy8NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKy8vLyBUaGlzIGlkZW50aWZpZXMgYSBzaWduYXR1cmUgY29udGFpbmlu ZyBhbiBSU0EtNDA5NiBrZXkuIFRoZQ0KPiBrZXkNCj4gPiA+ID4gPiA+ID4gKyhvbmx5IHRoZQ0K PiA+ID4gPiA+ID4gPiBtb2R1bHVzDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsvLy8g c2luY2UgdGhlIHB1YmxpYyBrZXkgZXhwb25lbnQgaXMga25vd24gdG8gYmUgMHgxMDAwMSkgc2hh bGwNCj4gYmUNCj4gPiA+ID4gPiA+ID4gK3N0b3JlZCBpbiBiaWctDQo+ID4gPiA+ID4gPiA+IGVu ZGlhbg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArLy8vIG9yZGVyLg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArLy8vIFRoZSBTaWduYXR1cmVIZWFkZXIgc2l6ZSBzaGFsbCBh bHdheXMgYmUgMC4gVGhlIFNpZ25hdHVyZVNpemUNCj4gPiA+ID4gPiA+ID4gK3NoYWxsIGFsd2F5 cw0KPiA+ID4gPiA+ID4gPiBiZSAxNiAoc2l6ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArLy8vIG9mIFNpZ25hdHVyZU93bmVyIGNvbXBvbmVudCkgKyA1MTIgYnl0ZXMuDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsvLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyNkZWZpbmUgRUZJX0NFUlRfUlNBNDA5Nl9HVUlEIFwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgeyBcDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgMHhiMjNlODlh NiwgMHg4YzhiLCAweDQ0MTIsIHsweDg1LCAweDczLCAweDE1LCAweDRlLCAweDhkLA0KPiAweDAw LA0KPiA+ID4gPiA+ID4gPiArIDB4OTgsDQo+ID4gPiA+ID4gPiA+IDB4MmMgfSBcDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgLy8vDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICAvLy8gVGhpcyBpZGVudGlmaWVzIGEgc2lnbmF0dXJlIGNvbnRhaW5pbmcgYSBS U0EtMjA0OCBzaWduYXR1cmUgb2YgYQ0KPiA+ID4gPiA+ID4gPiBTSEEtMjU2IGhhc2guICBUaGUN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8vLyBTaWduYXR1cmVIZWFkZXIgc2l6ZSBz aGFsbCBhbHdheXMgYmUgMC4gVGhlIFNpZ25hdHVyZVNpemUgc2hhbGwNCj4gPiA+ID4gPiA+ID4g YWx3YXlzIGJlIDE2IChzaXplIG9mDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEBAIC0z MzAsNiArMzU0LDggQEAgdHlwZWRlZiBzdHJ1Y3Qgew0KPiA+ID4gPiA+ID4gPiAgZXh0ZXJuIEVG SV9HVUlEICBnRWZpSW1hZ2VTZWN1cml0eURhdGFiYXNlR3VpZDsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRTaGEyNTZHdWlkOw0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgZXh0ZXJuIEVGSV9HVUlEICBnRWZpQ2VydFJzYTIwNDhH dWlkOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArZXh0ZXJuIEVGSV9HVUlEICBnRWZp Q2VydFJzYTMwNzJHdWlkOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArZXh0ZXJuIEVG SV9HVUlEICBnRWZpQ2VydFJzYTQwOTZHdWlkOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiAgZXh0ZXJuIEVGSV9HVUlEICBnRWZpQ2VydFJzYTIwNDhTaGEyNTZHdWlkOw0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgZXh0ZXJuIEVGSV9HVUlEICBnRWZpQ2VydFNoYTFHdWlkOw0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgZXh0ZXJuIEVGSV9HVUlEICBnRWZpQ2VydFJz YTIwNDhTaGExR3VpZDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBh L01kZVBrZy9NZGVQa2cuZGVjIGIvTWRlUGtnL01kZVBrZy5kZWMgaW5kZXgNCj4gPiA+ID4gPiA+ ID4gODBiNjU1OTA1My4uNzgyZjZkMTg0ZCAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvTWRl UGtnL01kZVBrZy5kZWMNCj4gPiA+ID4gPiA+ID4gKysrIGIvTWRlUGtnL01kZVBrZy5kZWMNCj4g PiA+ID4gPiA+ID4gQEAgLTU2Miw2ICs1NjIsOCBAQA0KPiA+ID4gPiA+ID4gPiAgICBnRWZpSW1h Z2VTZWN1cml0eURhdGFiYXNlR3VpZCAgPSB7IDB4ZDcxOWIyY2IsIDB4M2QzYSwgMHg0NTk2LA0K PiA+ID4gPiA+ID4gPiB7MHhhMywgMHhiYywgMHhkYSwgMHhkMCwgIDB4ZSwgMHg2NywgMHg2NSwg MHg2ZiB9fQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBnRWZpQ2VydFNoYTI1Nkd1 aWQgICAgICAgICAgICAgPSB7IDB4YzFjNDE2MjYsIDB4NTA0YywgMHg0MDkyLCB7MHhhYywNCj4g PiAweGE5LA0KPiA+ID4gPiA+ID4gMHg0MSwNCj4gPiA+ID4gPiA+ID4gMHhmOSwgMHgzNiwgMHg5 MywgMHg0MywgMHgyOCB9fQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBnRWZpQ2Vy dFJzYTIwNDhHdWlkICAgICAgICAgICAgPSB7IDB4M2M1NzY2ZTgsIDB4MjY5YywgMHg0ZTM0LCB7 MHhhYSwNCj4gPiA+IDB4MTQsDQo+ID4gPiA+ID4gPiAweGVkLA0KPiA+ID4gPiA+ID4gPiAweDc3 LCAweDZlLCAweDg1LCAweGIzLCAweGI2IH19DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgIGdFZmlDZXJ0UnNhMzA3Mkd1aWQgICAgICAgICAgICA9IHsgMHhlZGQzMjBjMiwgMHhiMDU3 LCAweDRiOGUsDQo+IHsweGFkLA0KPiA+ID4gPiAweDQ2LA0KPiA+ID4gPiA+ID4gPiAweDJjLCAw eDliLCAweDg1LCAweDg5LCAweGVlLCAweDkyIH19DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICsgIGdFZmlDZXJ0UnNhNDA5Nkd1aWQgICAgICAgICAgICA9IHsgMHhiMjNlODlhNiwgMHg4 YzhiLCAweDQ0MTIsDQo+IHsweDg1LA0KPiA+ID4gPiAweDczLA0KPiA+ID4gPiA+ID4gPiAweDE1 LCAweDRlLCAweDhkLCAweDAwLCAweDk4LCAweDJjIH19DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICAgIGdFZmlDZXJ0UnNhMjA0OFNoYTI1Nkd1aWQgICAgICA9IHsgMHhlMmIzNjE5MCwg MHg4NzliLCAweDRhM2QsDQo+ID4gezB4YWQsDQo+ID4gPiA+ID4gPiAweDhkLA0KPiA+ID4gPiA+ ID4gPiAweGYyLCAweGU3LCAweGJiLCAweGEzLCAweDI3LCAweDg0IH19DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICAgIGdFZmlDZXJ0U2hhMUd1aWQgICAgICAgICAgICAgICA9IHsgMHg4 MjZjYTUxMiwgMHhjZjEwLCAweDRhYzksIHsweGIxLA0KPiA+IDB4ODcsDQo+ID4gPiA+ID4gMHhi ZSwNCj4gPiA+ID4gPiA+ID4gMHgxLCAweDQ5LCAweDY2LCAweDMxLCAweGJkIH19DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGdFZmlDZXJ0UnNhMjA0OFNoYTFHdWlkICAgICAgICA9 IHsgMHg2N2Y4NDQ0ZiwgMHg4NzQzLCAweDQ4ZjEsDQo+IHsweGEzLA0KPiA+ID4gPiAweDI4LA0K PiA+ID4gPiA+ID4gPiAweDFlLCAweGFhLCAweGI4LCAweDczLCAweDYwLCAweDgwIH19DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5 L0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZS5jDQo+ID4gPiA+ID4gPiA+IGIvU2VjdXJpdHlQ a2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2UuYw0KPiA+ID4gPiA+ID4gPiBp bmRleCA0NTJlZDQ5MWVhLi4yODhlNDRhMzU5IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9T ZWN1cml0eVBrZy9MaWJyYXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZS5jDQo+ID4gPiA+ ID4gPiA+ICsrKyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2 aWNlLmMNCj4gPiA+ID4gPiA+ID4gQEAgLTI5LDEyICsyOSwxNiBAQCBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLQ0KPiA+IFBhdGVudA0KPiA+ID4gPiA+ID4gPiAjaW5jbHVk ZSA8UHJvdG9jb2wvVmFyaWFibGVQb2xpY3kuaD4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gICNpbmNsdWRlIDxMaWJyYXJ5L1ZhcmlhYmxlUG9saWN5TGliLmg+DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIFNI QV9ESUdFU1RfU0laRV9NQVggU0hBNTEyX0RJR0VTVF9TSVpFDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8vDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICAvLyBQdWJsaWMgRXhwb25lbnQgb2YgUlNBIEtleS4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICBDT05TVCBVSU5UOCAgbVJzYUVbXSA9IHsgMHgwMSwgMHgwMCwgMHgwMSB9Ow0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgQ09OU1Qg VUlOVDggIG1TaGEyNTZPaWRWYWx1ZVtdID0geyAweDYwLCAweDg2LCAweDQ4LCAweDAxLCAweDY1 LA0KPiA+ID4gPiA+ID4gPiAweDAzLCAweDA0LCAweDAyLCAweDAxIH07DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICtDT05TVCBVSU5UOCAgbVNoYTM4NE9pZFZhbHVlW10gPSB7IDB4NjAs IDB4ODYsIDB4NDgsIDB4MDEsDQo+IDB4NjUsDQo+ID4gPiA+ID4gPiA+ICsweDAzLA0KPiA+ID4g PiA+ID4gPiAweDA0LCAweDAyLCAweDAyIH07DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICtDT05TVCBVSU5UOCAgbVNoYTUxMk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4 MDEsDQo+IDB4NjUsDQo+ID4gPiA+ID4gPiA+ICsweDAzLA0KPiA+ID4gPiA+ID4gPiAweDA0LCAw eDAyLCAweDAzIH07DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICAvLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgLy8gUmVx dWlyZW1lbnQgZm9yIGRpZmZlcmVudCBzaWduYXR1cmUgdHlwZSB3aGljaCBoYXZlIGJlZW4NCj4g PiBkZWZpbmVkDQo+ID4gPiA+ID4gPiA+IGluIFVFRkkgc3BlYy4NCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gQEAgLTQ0LDYgKzQ4LDggQEAgRUZJX1NJR05BVFVSRV9JVEVNICBtU3VwcG9y dFNpZ0l0ZW1bXSA9DQo+IHsNCj4gPiA+ID4gPiA+ID4gICAgLy8ge1NpZ1R5cGUsICAgICAgICAg ICAgICAgICAgICAgICBTaWdIZWFkZXJTaXplLCAgIFNpZ0RhdGFTaXplICB9DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICAgIHsgRUZJX0NFUlRfU0hBMjU2X0dVSUQsICAgICAgICAgMCwg MzIgICAgICAgICAgICB9LA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICB7IEVGSV9D RVJUX1JTQTIwNDhfR1VJRCwgICAgICAgIDAsIDI1NiAgICAgICAgICAgfSwNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gKyAgeyBFRklfQ0VSVF9SU0EzMDcyX0dVSUQsICAgICAgICAwLCAz ODQgICAgICAgICAgIH0sDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIHsgRUZJX0NF UlRfUlNBNDA5Nl9HVUlELCAgICAgICAgMCwgNTEyICAgICAgICAgICB9LA0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAgICB7IEVGSV9DRVJUX1JTQTIwNDhfU0hBMjU2X0dVSUQsIDAsIDI1 NiAgICAgICAgICAgfSwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgeyBFRklfQ0VS VF9TSEExX0dVSUQsICAgICAgICAgICAwLCAyMCAgICAgICAgICAgIH0sDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICAgIHsgRUZJX0NFUlRfUlNBMjA0OF9TSEExX0dVSUQsICAgMCwgMjU2 ICAgICAgICAgICB9LA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBAQCAtMTE3Miw2ICsx MTc4LDE3MiBAQA0KPiA+ID4gPiBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRp Z2VzdCAoDQo+ID4gPiA+ID4gPiA+ICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKy8qKg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArICBDYWxjdWxhdGUgU0hBMzggZGlnZXN0IG9mIFNpZ25lckNlcnQgQ29tbW9uTmFtZSArDQo+ ID4gVG9wbGV2ZWxDZXJ0DQo+ID4gPiA+ID4gPiA+IHRic0NlcnRpZmljYXRlDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICsgIFNpZ25lckNlcnQgYW5kIFRvcGxldmVsQ2VydCBhcmUgaW5z aWRlIHRoZSBzaWduZXIgY2VydGlmaWNhdGUNCj4gY2hhaW4uDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgQHBhcmFtW2luXSAg U2lnbmVyQ2VydCAgICAgICAgICBBIHBvaW50ZXIgdG8gU2lnbmVyQ2VydCBkYXRhLg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBAcGFyYW1baW5dICBTaWduZXJDZXJ0U2l6ZSAgICAg IExlbmd0aCBvZiBTaWduZXJDZXJ0IGRhdGEuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgIEBwYXJhbVtpbl0gIFRvcExldmVsQ2VydCAgICAgICAgQSBwb2ludGVyIHRvIFRvcExldmVs Q2VydCBkYXRhLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBAcGFyYW1baW5dICBU b3BMZXZlbENlcnRTaXplICAgIExlbmd0aCBvZiBUb3BMZXZlbENlcnQgZGF0YS4NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgQHBhcmFtW291dF0gU2hhMzg0RGlnZXN0ICAgICAgIFNo YTM4NCBkaWdlc3QgY2FsY3VsYXRlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBAcmV0dXJuIEVGSV9BQk9SVEVEICAgICAg ICAgIERpZ2VzdCBwcm9jZXNzIGZhaWxlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAgICBTSEEzODQgRGlnZXN0IGlzIHN1Y2Nlc3Nm dWxseQ0KPiA+IGNhbGN1bGF0ZWQuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyoqLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArQ2FsY3VsYXRl UHJpdkF1dGhWYXJTaWduQ2hhaW5TSEEzODREaWdlc3QgKA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICBJTiAgICAgVUlOVDggICpTaWduZXJDZXJ0LA0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiArICBJTiAgICAgVUlOVE4gIFNpZ25lckNlcnRTaXplLA0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICBJTiAgICAgVUlOVDggICpUb3BMZXZlbENlcnQsDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIElOICAgICBVSU5UTiAgVG9wTGV2ZWxDZXJ0U2l6ZSwN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgT1VUICAgIFVJTlQ4ICAqU2hhMzg0RGln ZXN0DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICkNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgVUlOVDggICAg ICAgKlRic0NlcnQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIFVJTlROICAgICAg IFRic0NlcnRTaXplOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBDSEFSOCAgICAg ICBDZXJ0Q29tbW9uTmFtZVsxMjhdOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBV SU5UTiAgICAgICBDZXJ0Q29tbW9uTmFtZVNpemU7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICsgIEJPT0xFQU4gICAgIENyeXB0b1N0YXR1czsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgRUZJX1NUQVRVUyAgU3RhdHVzOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIENlcnRDb21tb25OYW1lU2l6ZSA9 IHNpemVvZiAoQ2VydENvbW1vbk5hbWUpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAr DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgIC8vIEdldCBTaWduZXJDZXJ0IENvbW1vbk5hbWUNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgU3Rh dHVzID0gWDUwOUdldENvbW1vbk5hbWUgKFNpZ25lckNlcnQsIFNpZ25lckNlcnRTaXplLA0KPiA+ ID4gPiA+ID4gPiBDZXJ0Q29tbW9uTmFtZSwgJkNlcnRDb21tb25OYW1lU2l6ZSk7DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8sICIlYSBHZXQg U2lnbmVyQ2VydCBDb21tb25OYW1lDQo+ID4gZmFpbGVkDQo+ID4gPiA+IHdpdGgNCj4gPiA+ID4g PiA+ID4gc3RhdHVzICV4XG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICsgIC8vIEdldCBUb3BMZXZlbENlcnQgdGJzQ2VydGlmaWNhdGUNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgaWYg KCFYNTA5R2V0VEJTQ2VydCAoVG9wTGV2ZWxDZXJ0LCBUb3BMZXZlbENlcnRTaXplLCAmVGJzQ2Vy dCwNCj4gPiA+ID4gPiA+ID4gJlRic0NlcnRTaXplKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhIEdldCBUb3AtbGV2ZWwgQ2VydCB0 YnNDZXJ0aWZpY2F0ZQ0KPiA+ID4gPiA+ID4gPiArIGZhaWxlZCFcbiIsDQo+ID4gPiA+ID4gPiA+ IF9fRlVOQ1RJT05fXykpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVy biBFRklfQUJPUlRFRDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg IC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIC8vIERpZ2VzdCBTaWduZXJDZXJ0 IENOICsgVG9wTGV2ZWxDZXJ0IHRic0NlcnRpZmljYXRlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIFplcm9NZW0gKFNo YTM4NERpZ2VzdCwgU0hBMzg0X0RJR0VTVF9TSVpFKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgQ3J5cHRvU3RhdHVzID0gU2hhMzg0SW5pdCAobUhhc2hDdHgpOw0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICBpZiAoIUNyeXB0b1N0YXR1cykgew0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICsgIC8vICdcMCcgaXMgZm9yY2VkIGluIENlcnRDb21tb25OYW1lLiBObyBvdmVyZmxvdyBp c3N1ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAvLw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICBDcnlwdG9TdGF0dXMgPSBTaGEzODRVcGRhdGUgKA0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIG1IYXNoQ3R4LA0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIENlcnRDb21tb25OYW1l LA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgIEFzY2lp U3RyTGVuIChDZXJ0Q29tbW9uTmFtZSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBpZiAo IUNyeXB0b1N0YXR1cykgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVy biBFRklfQUJPUlRFRDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg IENyeXB0b1N0YXR1cyA9IFNoYTM4NFVwZGF0ZSAobUhhc2hDdHgsIFRic0NlcnQsIFRic0NlcnRT aXplKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgaWYgKCFDcnlwdG9TdGF0dXMp IHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICByZXR1cm4gRUZJX0FCT1JURUQ7 DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBDcnlwdG9TdGF0dXMg PSBTaGEzODRGaW5hbCAobUhhc2hDdHgsIFNoYTM4NERpZ2VzdCk7DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICsgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gKyAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsvKioNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgQ2FsY3VsYXRlIFNIQTUxMiBkaWdlc3Qgb2YgU2lnbmVyQ2VydCBDb21tb25OYW1lICsNCj4g PiBUb3BsZXZlbENlcnQNCj4gPiA+ID4gPiA+ID4gdGJzQ2VydGlmaWNhdGUNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gKyAgU2lnbmVyQ2VydCBhbmQgVG9wbGV2ZWxDZXJ0IGFyZSBpbnNp ZGUgdGhlIHNpZ25lciBjZXJ0aWZpY2F0ZQ0KPiBjaGFpbi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBAcGFyYW1baW5dICBT aWduZXJDZXJ0ICAgICAgICAgIEEgcG9pbnRlciB0byBTaWduZXJDZXJ0IGRhdGEuDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIEBwYXJhbVtpbl0gIFNpZ25lckNlcnRTaXplICAgICAg TGVuZ3RoIG9mIFNpZ25lckNlcnQgZGF0YS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgQHBhcmFtW2luXSAgVG9wTGV2ZWxDZXJ0ICAgICAgICBBIHBvaW50ZXIgdG8gVG9wTGV2ZWxD ZXJ0IGRhdGEuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIEBwYXJhbVtpbl0gIFRv cExldmVsQ2VydFNpemUgICAgTGVuZ3RoIG9mIFRvcExldmVsQ2VydCBkYXRhLg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICBAcGFyYW1bb3V0XSBTaGE1MTJEaWdlc3QgICAgICAgU2hh NTEyIGRpZ2VzdCBjYWxjdWxhdGVkLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIEByZXR1cm4gRUZJX0FCT1JURUQgICAgICAg ICAgRGlnZXN0IHByb2Nlc3MgZmFpbGVkLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAr ICBAcmV0dXJuIEVGSV9TVUNDRVNTICAgICAgICAgIFNIQTUxMiBEaWdlc3QgaXMgc3VjY2Vzc2Z1 bGx5DQo+ID4gY2FsY3VsYXRlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArKiovDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICtFRklfU1RBVFVTDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICtDYWxjdWxhdGVQ cml2QXV0aFZhclNpZ25DaGFpblNIQTUxMkRpZ2VzdCAoDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgIElOICAgICBVSU5UOCAgKlNpZ25lckNlcnQsDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgIElOICAgICBVSU5UTiAgU2lnbmVyQ2VydFNpemUsDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgIElOICAgICBVSU5UOCAgKlRvcExldmVsQ2VydCwNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgSU4gICAgIFVJTlROICBUb3BMZXZlbENlcnRTaXplLA0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBPVVQgICAgVUlOVDggICpTaGE1MTJEaWdl c3QNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgKQ0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBVSU5UOCAgICAg ICAqVGJzQ2VydDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgVUlOVE4gICAgICAg VGJzQ2VydFNpemU7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIENIQVI4ICAgICAg IENlcnRDb21tb25OYW1lWzEyOF07DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIFVJ TlROICAgICAgIENlcnRDb21tb25OYW1lU2l6ZTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKyAgQk9PTEVBTiAgICAgQ3J5cHRvU3RhdHVzOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArICBFRklfU1RBVFVTICBTdGF0dXM7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgQ2VydENvbW1vbk5hbWVTaXplID0g c2l6ZW9mIChDZXJ0Q29tbW9uTmFtZSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gKyAgLy8gR2V0IFNpZ25lckNlcnQgQ29tbW9uTmFtZQ0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICAvLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBTdGF0 dXMgPSBYNTA5R2V0Q29tbW9uTmFtZSAoU2lnbmVyQ2VydCwgU2lnbmVyQ2VydFNpemUsDQo+ID4g PiA+ID4gPiA+IENlcnRDb21tb25OYW1lLCAmQ2VydENvbW1vbk5hbWVTaXplKTsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywgIiVhIEdldCBT aWduZXJDZXJ0IENvbW1vbk5hbWUNCj4gPiBmYWlsZWQNCj4gPiA+ID4gd2l0aA0KPiA+ID4gPiA+ ID4gPiBzdGF0dXMgJXhcbiIsIF9fRlVOQ1RJT05fXywgU3RhdHVzKSk7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKyAgLy8gR2V0IFRvcExldmVsQ2VydCB0YnNDZXJ0aWZpY2F0ZQ0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICAvLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBpZiAo IVg1MDlHZXRUQlNDZXJ0IChUb3BMZXZlbENlcnQsIFRvcExldmVsQ2VydFNpemUsICZUYnNDZXJ0 LA0KPiA+ID4gPiA+ID4gPiAmVGJzQ2VydFNpemUpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgICAgREVCVUcgKChERUJVR19JTkZPLCAiJWEgR2V0IFRvcC1sZXZlbCBDZXJ0IHRi c0NlcnRpZmljYXRlDQo+ID4gPiA+ID4gPiA+ICsgZmFpbGVkIVxuIiwNCj4gPiA+ID4gPiA+ID4g X19GVU5DVElPTl9fKSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICB9DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAg Ly8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgLy8gRGlnZXN0IFNpZ25lckNlcnQg Q04gKyBUb3BMZXZlbENlcnQgdGJzQ2VydGlmaWNhdGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgWmVyb01lbSAoU2hh NTEyRGlnZXN0LCBTSEE1MTJfRElHRVNUX1NJWkUpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArICBDcnlwdG9TdGF0dXMgPSBTaGE1MTJJbml0IChtSGFzaEN0eCk7DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICsgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKyAgLy8gJ1wwJyBpcyBmb3JjZWQgaW4gQ2VydENvbW1vbk5hbWUuIE5vIG92ZXJmbG93IGlz c3VlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICsgIENyeXB0b1N0YXR1cyA9IFNoYTUxMlVwZGF0ZSAoDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgbUhhc2hDdHgsDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgQ2VydENvbW1vbk5hbWUs DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgQXNjaWlT dHJMZW4gKENlcnRDb21tb25OYW1lKQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIGlmICgh Q3J5cHRvU3RhdHVzKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJu IEVGSV9BQk9SVEVEOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICB9DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAg Q3J5cHRvU3RhdHVzID0gU2hhNTEyVXBkYXRlIChtSGFzaEN0eCwgVGJzQ2VydCwgVGJzQ2VydFNp emUpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBpZiAoIUNyeXB0b1N0YXR1cykg ew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBFRklfQUJPUlRFRDsN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIENyeXB0b1N0YXR1cyA9 IFNoYTUxMkZpbmFsIChtSGFzaEN0eCwgU2hhNTEyRGlnZXN0KTsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gKyAgaWYgKCFDcnlwdG9TdGF0dXMpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gKyAgICByZXR1cm4gRUZJX0FCT1JURUQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICByZXR1cm4gRUZJX1NVQ0NFU1M7DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAg ICBGaW5kIG1hdGNoaW5nIHNpZ25lcidzIGNlcnRpZmljYXRlcyBmb3IgY29tbW9uIGF1dGhlbnRp Y2F0ZWQNCj4gPiA+ID4gPiA+ID4gdmFyaWFibGUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gICAgYnkgY29ycmVzcG9uZGluZyBWYXJpYWJsZU5hbWUgYW5kIFZlbmRvckd1aWQgZnJvbSAi Y2VydGRiIg0KPiBvcg0KPiA+ID4gPiA+ID4gImNlcnRkYnYiLg0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBAQCAtMTUyNiw2ICsxNjk4LDcgQEAgRGVsZXRlQ2VydHNGcm9tRGIgKA0KPiA+ ID4gPiA+ID4gPiAgICBAcGFyYW1baW5dICBTaWduZXJDZXJ0U2l6ZSAgICBMZW5ndGggb2Ygc2ln bmVyIGNlcnRpZmljYXRlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBAcGFyYW1b aW5dICBUb3BMZXZlbENlcnQgICAgICBUb3AtbGV2ZWwgY2VydGlmaWNhdGUgZGF0YS4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgQHBhcmFtW2luXSAgVG9wTGV2ZWxDZXJ0U2l6ZSAg TGVuZ3RoIG9mIHRvcC1sZXZlbCBjZXJ0aWZpY2F0ZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgQHBhcmFtW2luXSAgRGlnZXN0U2l6ZSAgICAgICAgRGlnZXN0IFNpemUuDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg IEByZXR2YWwgIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBBbnkgaW5wdXQgcGFyYW1ldGVyIGlzDQo+ IGludmFsaWQuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIEByZXR2YWwgIEVGSV9B Q0NFU1NfREVOSUVEICAgICBBbiBBVVRIX0NFUlRfREJfREFUQSBlbnRyeQ0KPiA+IHdpdGgNCj4g PiA+ID4gPiA+IHNhbWUNCj4gPiA+ID4gPiA+ID4gVmFyaWFibGVOYW1lDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IEBAIC0xNTQyLDcgKzE3MTUsOCBAQCBJbnNlcnRDZXJ0c1RvRGIgKA0K PiA+ID4gPiA+ID4gPiAgICBJTiAgICAgVUlOVDggICAgICpTaWduZXJDZXJ0LA0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBJTiAgICAgVUlOVE4gICAgIFNpZ25lckNlcnRTaXplLA0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBJTiAgICAgVUlOVDggICAgICpUb3BMZXZl bENlcnQsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gIElOICAgICBVSU5UTiAgICAg VG9wTGV2ZWxDZXJ0U2l6ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBJTiAgICAg VUlOVE4gICAgIFRvcExldmVsQ2VydFNpemUsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgIElOICAgICBVSU5UMzIgICAgRGlnZXN0U2l6ZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiAgICApDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICB7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICAgIEVGSV9TVEFUVVMgICAgICAgICBTdGF0dXM7DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IEBAIC0xNTU2LDcgKzE3MzAsNyBAQCBJbnNlcnRDZXJ0c1RvRGIg KA0KPiA+ID4gPiA+ID4gPiAgICBVSU5UMzIgICAgICAgICAgICAgQ2VydERhdGFTaXplOw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBBVVRIX0NFUlRfREJfREFUQSAgKlB0cjsNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgQ0hBUjE2ICAgICAgICAgICAgICpEYk5hbWU7 DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gIFVJTlQ4ICAgICAgICAgICAgICBTaGEy NTZEaWdlc3RbU0hBMjU2X0RJR0VTVF9TSVpFXTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKyAgVUlOVDggICAgICAgICAgICAgIFNoYURpZ2VzdFtTSEFfRElHRVNUX1NJWkVfTUFYXTsN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gICAgaWYgKChWYXJpYWJsZU5hbWUgPT0gTlVMTCkgfHwgKFZlbmRvckd1aWQgPT0gTlVMTCkg fHwNCj4gPiAoU2lnbmVyQ2VydA0KPiA+ID4gPiA+ID4gPiA9PSBOVUxMKQ0KPiA+ID4gPiA+ID4g PiB8fCAoVG9wTGV2ZWxDZXJ0ID09IE5VTEwpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICAgICAgcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gQEAgLTE2MTgsMjAgKzE3OTIsNDEgQEAgSW5zZXJ0Q2VydHNUb0RiICgNCj4g PiA+ID4gPiA+ID4gICAgLy8gQ29uc3RydWN0IG5ldyBkYXRhIGNvbnRlbnQgb2YgdmFyaWFibGUg ImNlcnRkYiIgb3IgImNlcnRkYnYiLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAv Lw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBOYW1lU2l6ZSAgICAgID0gKFVJTlQz MilTdHJMZW4gKFZhcmlhYmxlTmFtZSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0g IENlcnREYXRhU2l6ZSAgPSBzaXplb2YgKFNoYTI1NkRpZ2VzdCk7DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICsgIENlcnREYXRhU2l6ZSAgPSBEaWdlc3RTaXplOw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAgICBDZXJ0Tm9kZVNpemUgID0gc2l6ZW9mIChBVVRIX0NFUlRfREJf REFUQSkgKw0KPiA+ID4gPiAoVUlOVDMyKUNlcnREYXRhU2l6ZSArDQo+ID4gPiA+ID4gPiA+IE5h bWVTaXplICogc2l6ZW9mIChDSEFSMTYpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAg ICBOZXdDZXJ0RGJTaXplID0gKFVJTlQzMilEYXRhU2l6ZSArIENlcnROb2RlU2l6ZTsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgaWYgKE5ld0NlcnREYlNpemUgPiBtTWF4Q2VydERi U2l6ZSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIHJldHVybiBFRklfT1VU X09GX1JFU09VUkNFUzsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgfQ0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICBT dGF0dXMgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgU2lnbmVyQ2VydCwNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICBTaWduZXJDZXJ0U2l6ZSwNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICBUb3BMZXZlbENlcnQsDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6 ZSwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICBTaGEyNTZEaWdl c3QNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgICAgICAgICAgICApOw0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBpZiAoRGlnZXN0U2l6ZSA9PSBTSEEyNTZfRElHRVNU X1NJWkUpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBTdGF0dXMgPSBDYWxj dWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBTaWduZXJDZXJ0LA0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgU2lnbmVyQ2VydFNpemUsDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBUb3BMZXZlbENlcnQsDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBUb3BMZXZlbENlcnRTaXplLA0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgU2hhRGlnZXN0DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICB9IGVsc2UgaWYgKERpZ2VzdFNpemUgPT0gU0hBMzg0X0RJ R0VTVF9TSVpFKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgU3RhdHVzID0g Q2FsY3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hhaW5TSEEzODREaWdlc3QgKA0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgU2lnbmVyQ2VydCwNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIFNpZ25lckNlcnRTaXplLA0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0LA0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6 ZSwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIFNoYURpZ2Vz dA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgKTsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfSBlbHNlIGlmIChEaWdlc3RTaXplID09IFNIQTUx Ml9ESUdFU1RfU0laRSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIFN0YXR1 cyA9IENhbGN1bGF0ZVByaXZBdXRoVmFyU2lnbkNoYWluU0hBNTEyRGlnZXN0ICgNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIFNpZ25lckNlcnQsDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBTaWduZXJDZXJ0U2l6ZSwNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIFRvcExldmVsQ2VydCwN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgIFRvcExldmVsQ2Vy dFNpemUsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICBTaGFE aWdlc3QNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICk7DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIH0gZWxzZSB7DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICsgICAgcmV0dXJuIEVGSV9VTlNVUFBPUlRFRDsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEBA IC0xNjYzLDcgKzE4NTgsNyBAQCBJbnNlcnRDZXJ0c1RvRGIgKA0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBDb3B5TWVtICgNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gICAgICAoVUlOVDggKilQdHIgKyAgc2l6ZW9mIChBVVRIX0NFUlRfREJfREFU QSkgKyBOYW1lU2l6ZSAqDQo+ID4gc2l6ZW9mDQo+ID4gPiA+ID4gPiA+IChDSEFSMTYpLA0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICAgIFNoYTI1NkRpZ2VzdCwNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBTaGFEaWdlc3QsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICAgICAgQ2VydERhdGFTaXplDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg ICAgKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gQEAgLTE4NTcsNyArMjA1Miw3IEBAIFZlcmlmeVRpbWVCYXNlZFBheWxvYWQgKA0K PiA+ID4gPiA+ID4gPiAgICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgQ2VydFN0YWNr U2l6ZTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgVUlOVDggICAgICAgICAgICAg ICAgICAgICAgICAgICpDZXJ0c0luQ2VydERiOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiAgICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgQ2VydHNTaXplaW5EYjsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAg IFNoYTI1NkRpZ2VzdFtTSEEyNTZfRElHRVNUX1NJWkVdOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgU2hhRGlnZXN0W1NIQV9E SUdFU1RfU0laRV9NQVhdOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBFRklfQ0VS VF9EQVRBICAgICAgICAgICAgICAgICAgKkNlcnREYXRhUHRyOw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAvLw0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiBAQCAtMTkyOCw3ICsyMTIzLDcgQEAgVmVyaWZ5VGltZUJhc2Vk UGF5bG9hZCAoDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg IC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIC8vIFNpZ25lZERhdGEuZGlnZXN0 QWxnb3JpdGhtcyBzaGFsbCBjb250YWluIHRoZSBkaWdlc3QgYWxnb3JpdGhtDQo+ID4gPiA+ID4g PiA+IHVzZWQgd2hlbiBwcmVwYXJpbmcgdGhlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ IC0gIC8vIHNpZ25hdHVyZS4gT25seSBhIGRpZ2VzdCBhbGdvcml0aG0gb2YgU0hBLTI1NiBpcyBh Y2NlcHRlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgLy8gc2lnbmF0dXJlLiBP bmx5IGEgZGlnZXN0IGFsZ29yaXRobSBvZiBTSEEtMjU2LCBTSEEtMzg0IG9yDQo+ID4gPiA+ID4g PiA+ICsgU0hBLTUxMiBpcw0KPiA+ID4gPiA+ID4gPiBhY2NlcHRlZC4NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gICAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgLy8g ICAgQWNjb3JkaW5nIHRvIFBLQ1MjNyBEZWZpbml0aW9uIChodHRwczovL3d3dy5yZmMtDQo+ID4g PiA+ID4gPiBlZGl0b3Iub3JnL3JmYy9yZmMyMzE1KToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gICAgLy8gICAgICAgIFNpZ25lZERhdGEgOjo9IFNFUVVFTkNFIHsNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gQEAgLTE5NzgsNyArMjE3MywxOSBAQCBWZXJpZnlUaW1lQmFzZWRQ YXlsb2FkICgNCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICB8fCAoQ29tcGFyZU1lbSAoU2ln RGF0YSArIDEzLCAmbVNoYTI1Nk9pZFZhbHVlLA0KPiBzaXplb2YNCj4gPiA+ID4gPiA+ID4gKG1T aGEyNTZPaWRWYWx1ZSkpICE9IDApKSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg ICAgICAmJiAoICAoU2lnRGF0YVNpemUgPj0gKDMyICsgc2l6ZW9mIChtU2hhMjU2T2lkVmFsdWUp KSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAmJiAoICAoKCooU2ln RGF0YSArIDIwKSAmIFRXT19CWVRFX0VOQ09ERSkgIT0NCj4gPiA+ID4gPiA+ID4gVFdPX0JZVEVf RU5DT0RFKQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICAgICAgICAgICAgIHx8IChD b21wYXJlTWVtIChTaWdEYXRhICsgMzIsICZtU2hhMjU2T2lkVmFsdWUsDQo+IHNpemVvZg0KPiA+ ID4gPiA+ID4gPiAobVNoYTI1Nk9pZFZhbHVlKSkgIT0gMCkpKSkNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgICAgICB8fCAoQ29tcGFyZU1lbSAoU2lnRGF0YSArIDMyLCAm bVNoYTI1Nk9pZFZhbHVlLA0KPiBzaXplb2YNCj4gPiA+ID4gPiA+ID4gKG1TaGEyNTZPaWRWYWx1 ZSkpICE9IDApKSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAmJiAoICAo U2lnRGF0YVNpemUgPj0gKDEzICsgc2l6ZW9mIChtU2hhMzg0T2lkVmFsdWUpKSkNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAmJiAoICAoKCooU2lnRGF0YSArIDEpICYg VFdPX0JZVEVfRU5DT0RFKSAhPQ0KPiA+ID4gPiA+ID4gPiArIFRXT19CWVRFX0VOQ09ERSkNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICB8fCAoQ29tcGFyZU1lbSAo U2lnRGF0YSArIDEzLCAmbVNoYTM4NE9pZFZhbHVlLA0KPiBzaXplb2YNCj4gPiA+ID4gPiA+ID4g KG1TaGEzODRPaWRWYWx1ZSkpICE9IDApKSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgICAgICAmJiAoICAoU2lnRGF0YVNpemUgPj0gKDMyICsgc2l6ZW9mIChtU2hhMzg0T2lkVmFs dWUpKSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAmJiAoICAoKCoo U2lnRGF0YSArIDIwKSAmIFRXT19CWVRFX0VOQ09ERSkgIT0NCj4gPiA+ID4gPiA+ID4gKyBUV09f QllURV9FTkNPREUpDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg fHwgKENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAzMiwgJm1TaGEzODRPaWRWYWx1ZSwNCj4gc2l6ZW9m DQo+ID4gPiA+ID4gPiA+IChtU2hhMzg0T2lkVmFsdWUpKSAhPSAwKSkpDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgJiYgKCAgKFNpZ0RhdGFTaXplID49ICgxMyArIHNpemVv ZiAobVNoYTUxMk9pZFZhbHVlKSkpDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgJiYgKCAgKCgqKFNpZ0RhdGEgKyAxKSAmIFRXT19CWVRFX0VOQ09ERSkgIT0NCj4gPiA+ ID4gPiA+ID4gKyBUV09fQllURV9FTkNPREUpDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgfHwgKENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAxMywgJm1TaGE1MTJPaWRW YWx1ZSwNCj4gc2l6ZW9mDQo+ID4gPiA+ID4gPiA+IChtU2hhNTEyT2lkVmFsdWUpKSAhPSAwKSkp DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgJiYgKCAgKFNpZ0RhdGFTaXpl ID49ICgzMiArIHNpemVvZiAobVNoYTUxMk9pZFZhbHVlKSkpDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgICAgICAgICAgJiYgKCAgKCgqKFNpZ0RhdGEgKyAyMCkgJiBUV09fQllURV9F TkNPREUpICE9DQo+ID4gPiA+ID4gPiA+ICsgVFdPX0JZVEVfRU5DT0RFKQ0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgIHx8IChDb21wYXJlTWVtIChTaWdEYXRhICsg MzIsICZtU2hhNTEyT2lkVmFsdWUsDQo+IHNpemVvZg0KPiA+ID4gPiA+ID4gPiAobVNoYTUxMk9p ZFZhbHVlKSkgIT0gMCkpKSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICB7DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICByZXR1cm4gRUZJX1NFQ1VSSVRZX1ZJ T0xBVElPTjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICB9DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IEBAIC0yMTgwLDkgKzIzODcsMzkgQEAgVmVyaWZ5VGltZUJhc2Vk UGF5bG9hZCAoDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWFkVW5h bGlnbmVkMzIgKChVSU5UMzINCj4gPiA+ID4gPiA+ID4gKikmKENlcnREYXRhUHRyLT5DZXJ0RGF0 YUxlbmd0aCkpLA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg ICAgICAgICAgVG9wTGV2ZWxDZXJ0LA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgIFNoYTI1NkRpZ2VzdA0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgU2hhRGlnZXN0 DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAp Ow0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpIHx8IChDb21wYXJlTWVtIChTaGFEaWdlc3QsDQo+ID4gPiA+ID4gPiA+ICsgQ2VydHNJ bkNlcnREYiwNCj4gPiA+ID4gPiA+ID4gQ2VydHNTaXplaW5EYikgIT0gMCkpIHsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICBnb3RvIEV4aXQ7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgICAgIH0gZWxzZSBpZiAoQ2VydHNTaXplaW5EYiA9PSBTSEEzODRfRElHRVNUX1NJWkUpIHsN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgLy8NCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgLy8gQ2hlY2sgaGFzaCBvZiBzaWduZXIgY2VydCBDb21t b25OYW1lICsgVG9wLWxldmVsDQo+IGlzc3Vlcg0KPiA+ID4gPiA+ID4gPiB0YnNDZXJ0aWZpY2F0 ZSBhZ2FpbnN0IGRhdGEgaW4gQ2VydERiDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIENlcnREYXRh UHRyID0gKEVGSV9DRVJUX0RBVEEgKikoU2lnbmVyQ2VydHMgKyAxKTsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgICAgICAgU3RhdHVzICAgICAgPSBDYWxjdWxhdGVQcml2QXV0aFZh clNpZ25DaGFpblNIQTM4NERpZ2VzdCAoDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBDZXJ0RGF0YVB0ci0+Q2VydERhdGFCdWZmZXIsDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBSZWFkVW5h bGlnbmVkMzIgKChVSU5UMzINCj4gPiA+ID4gPiA+ID4gKyAqKSYoQ2VydERhdGFQdHItPkNlcnRE YXRhTGVuZ3RoKSksDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICBUb3BMZXZlbENlcnQsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBUb3BMZXZlbENlcnRTaXplLA0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgU2hhRGlnZXN0DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8 IChDb21wYXJlTWVtIChTaGFEaWdlc3QsDQo+ID4gPiA+ID4gPiA+ICsgQ2VydHNJbkNlcnREYiwN Cj4gPiA+ID4gPiA+ID4gQ2VydHNTaXplaW5EYikgIT0gMCkpIHsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgICBnb3RvIEV4aXQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgIH0g ZWxzZSBpZiAoQ2VydHNTaXplaW5EYiA9PSBTSEE1MTJfRElHRVNUX1NJWkUpIHsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgLy8gQ2hlY2sgaGFzaCBvZiBzaWduZXIgY2VydCBDb21tb25OYW1lICsg VG9wLWxldmVsDQo+IGlzc3Vlcg0KPiA+ID4gPiA+ID4gPiB0YnNDZXJ0aWZpY2F0ZSBhZ2FpbnN0 IGRhdGEgaW4gQ2VydERiDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIC8v DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIENlcnREYXRhUHRyID0gKEVG SV9DRVJUX0RBVEEgKikoU2lnbmVyQ2VydHMgKyAxKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgU3RhdHVzICAgICAgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFp blNIQTUxMkRpZ2VzdCAoDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBDZXJ0RGF0YVB0ci0+Q2VydERhdGFCdWZmZXIsDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICBSZWFkVW5hbGlnbmVkMzIg KChVSU5UMzINCj4gPiA+ID4gPiA+ID4gKyAqKSYoQ2VydERhdGFQdHItPkNlcnREYXRhTGVuZ3Ro KSksDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICBUb3BMZXZlbENlcnQsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBUb3BMZXZlbENlcnRTaXplLA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgU2hhRGlnZXN0DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICApOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiAtICAgICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IChDb21wYXJl TWVtIChTaGEyNTZEaWdlc3QsDQo+ID4gPiA+ID4gPiBDZXJ0c0luQ2VydERiLA0KPiA+ID4gPiA+ ID4gPiBDZXJ0c1NpemVpbkRiKSAhPSAwKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArICAgICAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpIHx8IChDb21wYXJlTWVtIChTaGFEaWdl c3QsDQo+ID4gPiA+ID4gPiA+ICsgQ2VydHNJbkNlcnREYiwNCj4gPiA+ID4gPiA+ID4gQ2VydHNT aXplaW5EYikgIT0gMCkpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAg ICBnb3RvIEV4aXQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgIH0NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIH0gZWxzZSB7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IEBAIC0yMjIxLDcgKzI0NTgsOCBAQCBWZXJpZnlUaW1lQmFzZWRQYXls b2FkICgNCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICBDZXJ0RGF0YVB0ci0+ Q2VydERhdGFCdWZmZXIsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgUmVhZFVuYWxpZ25lZDMyICgoVUlOVDMyDQo+ID4gPiA+ID4gPiA+ICopJihD ZXJ0RGF0YVB0ci0+Q2VydERhdGFMZW5ndGgpKSwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gICAgICAgICAgICAgICAgICAgICAgICBUb3BMZXZlbENlcnQsDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6ZQ0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgIFRvcExldmVs Q2VydFNpemUsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgQ2VydHNTaXplaW5EYg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBp ZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg ICAgICAgIFZlcmlmeVN0YXR1cyA9IEZBTFNFOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZh cmlhYmxlTGliLmMNCj4gPiA+ID4gPiA+ID4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0F1dGhWYXJp YWJsZUxpYi9BdXRoVmFyaWFibGVMaWIuYw0KPiA+ID4gPiA+ID4gPiBpbmRleCBkYzYxYWU4NDBj Li41NTJjMGU5OWJlIDEwMDY0NA0KPiA+ID4gPiA+ID4gPiAtLS0gYS9TZWN1cml0eVBrZy9MaWJy YXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRoVmFyaWFibGVMaWIuYw0KPiA+ID4gPiA+ID4gPiArKysg Yi9TZWN1cml0eVBrZy9MaWJyYXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRoVmFyaWFibGVMaWIuYw0K PiA+ID4gPiA+ID4gPiBAQCAtMjYsNyArMjYsNyBAQCBVSU5UMzIgIG1NYXhDZXJ0RGJTaXplOw0K PiA+ID4gPiA+ID4gPiAgVUlOVDMyICBtUGxhdGZvcm1Nb2RlOw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiAgVUlOVDggICBtVmVuZG9yS2V5U3RhdGU7DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC1FRklfR1VJRCAgbVNpZ25h dHVyZVN1cHBvcnRbXSA9IHsgRUZJX0NFUlRfU0hBMV9HVUlELA0KPiA+ID4gPiA+ID4gPiBFRklf Q0VSVF9TSEEyNTZfR1VJRCwgRUZJX0NFUlRfUlNBMjA0OF9HVUlELA0KPiA+ID4gPiA+ID4gRUZJ X0NFUlRfWDUwOV9HVUlEIH07DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICtFRklfR1VJ RCAgbVNpZ25hdHVyZVN1cHBvcnRbXSA9IHsgRUZJX0NFUlRfU0hBMV9HVUlELA0KPiA+ID4gPiA+ ID4gPiBFRklfQ0VSVF9TSEEyNTZfR1VJRCwgRUZJX0NFUlRfU0hBMzg0X0dVSUQsDQo+ID4gPiA+ ID4gPiBFRklfQ0VSVF9TSEE1MTJfR1VJRCwNCj4gPiA+ID4gPiA+ID4gRUZJX0NFUlRfUlNBMjA0 OF9HVUlELCBFRklfQ0VSVF9SU0EzMDcyX0dVSUQsDQo+ID4gPiA+ID4gPiBFRklfQ0VSVF9SU0E0 MDk2X0dVSUQsDQo+ID4gPiA+ID4gPiA+IEVGSV9DRVJUX1g1MDlfR1VJRCB9Ow0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgLy8NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8vIEhhc2ggY29udGV4dCBwb2ludGVyDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEBAIC0xMzUsNyArMTM1LDcgQEAgQXV0aFZhcmlhYmxl TGliSW5pdGlhbGl6ZSAoDQo+ID4gPiA+ID4gPiA+ICAgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICAgIC8vIEluaXRpYWxpemUgaGFzaCBjb250ZXh0Lg0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiAgICAvLw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICBDdHhT aXplICA9IFNoYTI1NkdldENvbnRleHRTaXplICgpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiArICBDdHhTaXplICA9IFNoYTUxMkdldENvbnRleHRTaXplICgpOw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAgICBtSGFzaEN0eCA9IEFsbG9jYXRlUnVudGltZVBvb2wgKEN0eFNp emUpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBpZiAobUhhc2hDdHggPT0gTlVM TCkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIHJldHVybiBFRklfT1VUX09G X1JFU09VUkNFUzsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAtLWdpdA0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VWZXJp ZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4gPiA+ID4gPiA+IGMNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVy aWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLg0KPiA+ID4gPiA+ID4gPiBjDQo+ ID4gPiA+ID4gPiA+IGluZGV4IDY2ZTJmNWVhYTMuLmY2NDJhYWQ2NGQgMTAwNjQ0DQo+ID4gPiA+ ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiBhL1NlY3VyaXR5UGtnL0xpYnJh cnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuDQo+ID4g PiA+ID4gPiA+IGMNCj4gPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+IGIvU2VjdXJpdHlQa2cvTGli cmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbg0KPiA+ID4g PiA+ID4gPiArKysgTGliLmMNCj4gPiA+ID4gPiA+ID4gQEAgLTE2MDYsNiArMTYwNiwzNSBAQCBE b25lOg0KPiA+ID4gPiA+ID4gPiAgICByZXR1cm4gVmVyaWZ5U3RhdHVzOw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgIEdldCBIYXNoIEFsZyBieSBQY2RTZWN1cmVCb290RGVmYXVsdEhhc2hBbGcNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBA cmV0dmFsICBVSU5UMzIgICAgICAgSGFzaCBBbGcNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKyAgKiovDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICtVSU5UMzINCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gK0dldERlZmF1bHRIYXNoQWxnICgNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgVk9JRA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAp DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgIFVJTlQzMiAgSGFzaEFsZzsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBzd2l0Y2ggKFBjZEdldDggKFBjZFNl Y3VyZUJvb3REZWZhdWx0SGFzaEFsZykpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgY2FzZSAxOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVC VUdfSU5GTywgIiVhIHVzZSBTSEEzODQiLCBfX2Z1bmNfXykpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiArICAgIEhhc2hBbGcgPSBIQVNIQUxHX1NIQTM4NDsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgY2FzZSAyOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVC VUdfSU5GTywgIiVhIHVzZSBTSEE1MTIiLCBfX2Z1bmNfXykpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiArICAgIEhhc2hBbGcgPSBIQVNIQUxHX1NIQTUxMjsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgZGVmYXVsdDoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBERUJVRyAoKERF QlVHX0lORk8sICIlYSB1c2UgU0hBMjU2IiwgX19mdW5jX18pKTsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gKyAgICBIYXNoQWxnID0gSEFTSEFMR19TSEEyNTY7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgIH0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgcmV0dXJuIEhhc2hBbGc7DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiAgICBQcm92aWRlIHZlcmlmaWNhdGlvbiBzZXJ2aWNlIGZvciBzaWduZWQg aW1hZ2VzLCB3aGljaCBpbmNsdWRlDQo+IGJvdGgNCj4gPiA+ID4gPiA+ID4gc2lnbmF0dXJlIHZh bGlkYXRpb24NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgYW5kIHBsYXRmb3JtIHBv bGljeSBjb250cm9sLiBGb3Igc2lnbmF0dXJlIHR5cGVzLCBib3RoIFVFRkkNCj4gPiA+ID4gPiA+ ID4gV0lOX0NFUlRJRklDQVRFX1VFRklfR1VJRCBhbmQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gQEAgLTE2MjAsNyArMTY0OSw3IEBAIERvbmU6DQo+ID4gPiA+ID4gPiA+ICAgICAgICBp biB0aGUgc2VjdXJpdHkgZGF0YWJhc2UgImRiIiwgYW5kIG5vIHZhbGlkIHNpZ25hdHVyZSBub3Ig YW55DQo+ID4gPiA+ID4gPiA+IGhhc2ggdmFsdWUgb2YgdGhlIGltYWdlIG1heQ0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgYmUgcmVmbGVjdGVkIGluIHRoZSBzZWN1cml0eSBk YXRhYmFzZSAiZGJ4Ii4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBPdGhlcndp c2UsIHRoZSBpbWFnZSBpcyBub3Qgc2lnbmVkLA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiAtICAgICAgVGhlIFNIQTI1NiBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtdXN0IG1hdGNoIGEg cmVjb3JkIGluDQo+IHRoZQ0KPiA+ID4gPiA+ID4gc2VjdXJpdHkNCj4gPiA+ID4gPiA+ID4gZGF0 YWJhc2UgImRiIiwgYW5kDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICBUaGUg aGFzaCB2YWx1ZSBvZiB0aGUgaW1hZ2UgbXVzdCBtYXRjaCBhIHJlY29yZCBpbiB0aGUNCj4gc2Vj dXJpdHkNCj4gPiA+ID4gPiA+ID4gKyBkYXRhYmFzZQ0KPiA+ID4gPiA+ID4gPiAiZGIiLCBhbmQN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIG5vdCBiZSByZWZsZWN0ZWQgaW4g dGhlIHNlY3VyaXR5IGRhdGEgYmFzZSAiZGJ4Ii4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgQ2F1dGlvbjogVGhpcyBmdW5jdGlv biBtYXkgcmVjZWl2ZSB1bnRydXN0ZWQgaW5wdXQuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IEBAIC0xODMyLDEwICsxODYxLDEwIEBAIER4ZUltYWdlVmVyaWZpY2F0aW9uSGFuZGxlciAo DQo+ID4gPiA+ID4gPiA+ICAgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGlm ICgoU2VjRGF0YURpciA9PSBOVUxMKSB8fCAoU2VjRGF0YURpci0+U2l6ZSA9PSAwKSkgew0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+IC0gICAgLy8gVGhpcyBpbWFnZSBpcyBub3Qgc2lnbmVkLiBUaGUgU0hBMjU2IGhhc2gg dmFsdWUgb2YgdGhlIGltYWdlDQo+ID4gbXVzdA0KPiA+ID4gPiA+ID4gbWF0Y2gNCj4gPiA+ID4g PiA+ID4gYSByZWNvcmQgaW4gdGhlIHNlY3VyaXR5IGRhdGFiYXNlICJkYiIsDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgLy8gVGhpcyBpbWFnZSBpcyBub3Qgc2lnbmVkLiBUaGUg aGFzaCB2YWx1ZSBvZiB0aGUgaW1hZ2UgbXVzdA0KPiA+ID4gPiA+ID4gPiArIG1hdGNoIGEgcmVj b3JkDQo+ID4gPiA+ID4gPiA+IGluIHRoZSBzZWN1cml0eSBkYXRhYmFzZSAiZGIiLA0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIC8vIGFuZCBub3QgYmUgcmVmbGVjdGVkIGluIHRo ZSBzZWN1cml0eSBkYXRhIGJhc2UgImRieCIuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICAgICAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgICBpZiAoIUhhc2hQZUlt YWdlIChIQVNIQUxHX1NIQTI1NikpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAg ICBpZiAoIUhhc2hQZUltYWdlIChHZXREZWZhdWx0SGFzaEFsZyAoKSkpIHsNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIERFQlVHICgoREVCVUdfSU5GTywgIkR4ZUltYWdlVmVy aWZpY2F0aW9uTGliOiBGYWlsZWQgdG8NCj4gaGFzaA0KPiA+ID4gPiA+ID4gPiB0aGlzIGltYWdl IHVzaW5nICVzLlxuIiwgbUhhc2hUeXBlU3RyKSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICAgICAgICBnb3RvIEZhaWxlZDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg ICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQNCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4NCj4gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9u TGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLg0KPiA+ID4gPiA+ID4gPiBpbmYNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4NCj4gYi9TZWN1cml0eVBrZy9MaWJyYXJ5L0R4ZUltYWdlVmVyaWZpY2F0 aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLg0KPiA+ID4gPiA+ID4gPiBpbmYNCj4gPiA+ ID4gPiA+ID4gaW5kZXggMWUxYTYzOTg1Ny4uZjFlZjkyMzZjMiAxMDA2NDQNCj4gPiA+ID4gPiA+ ID4gLS0tDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9E eGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi4NCj4gPiA+ID4g PiA+ID4gaW5mDQo+ID4gPiA+ID4gPiA+ICsrKw0KPiA+ID4gPiBiL1NlY3VyaXR5UGtnL0xpYnJh cnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb24NCj4gPiA+ID4g PiA+ID4gKysrIExpYi5pbmYNCj4gPiA+ID4gPiA+ID4gQEAgLTkzLDMgKzkzLDQgQEANCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNkT3B0aW9u Um9tSW1hZ2VWZXJpZmljYXRpb25Qb2xpY3kNCj4gPiA+ID4gPiA+ID4gIyMgU09NRVRJTUVTX0NP TlNVTUVTDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPg0KPiA+ID4gPg0KPiA+DQo+IGdFZmlTZWN1cml0eVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZFJlbW92YWJsZU1lZGlhSW1hZ2VWZXJpZmljYXRpb25Qb2xpYw0KPiA+ID4gPiA+ID4geQ0KPiA+ ID4gPiA+ID4gPiAjIyBTT01FVElNRVNfQ09OU1VNRVMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNkRml4ZWRNZWRp YUltYWdlVmVyaWZpY2F0aW9uUG9saWN5DQo+ID4gPiA+ID4gPiAjIw0KPiA+ID4gPiA+ID4gPiBT T01FVElNRVNfQ09OU1VNRVMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgZ0VmaVNl Y3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2VjdXJlQm9vdERlZmF1bHRIYXNoQWxnDQo+ID4g PiA+ID4gPiAjIw0KPiA+ID4gPiA+ID4gPiBDT05TVU1FUw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBkaWZmIC0tZ2l0IGEvU2VjdXJpdHlQa2cvU2VjdXJpdHlQa2cuZGVjDQo+ID4gYi9T ZWN1cml0eVBrZy9TZWN1cml0eVBrZy5kZWMNCj4gPiA+ID4gPiA+ID4gaW5kZXggMDM4MjA5MGY0 ZS4uNGFkYzJhNzJhYiAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvU2VjdXJpdHlQa2cvU2Vj dXJpdHlQa2cuZGVjDQo+ID4gPiA+ID4gPiA+ICsrKyBiL1NlY3VyaXR5UGtnL1NlY3VyaXR5UGtn LmRlYw0KPiA+ID4gPiA+ID4gPiBAQCAtNTIxLDYgKzUyMSwxMyBAQA0KPiA+ID4gPiA+ID4gPiAg ICAjIEBQcm9tcHQgU2tpcCBIZGQgUGFzc3dvcmQgcHJvbXB0Lg0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiBn RWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RTa2lwSGRkUGFzc3dvcmRQcm9tcHR8RkFM U0V8Qk9PTEUNCj4gPiA+ID4gPiA+IEFOfA0KPiA+ID4gPiA+ID4gPiAweDAwMDEwMDIxDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg ICMjIEluZGljYXRlcyBkZWZhdWx0IGhhc2ggYWxnb3JpdGhtIGluIFNlY3VyZSBCb290DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICMgICAwIC0gVXNlIFNIQTI1Ng0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICAjICAgMSAtIFVzZSBTSEEzODQNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgIyAgIDIgLSBVc2UgU0hBNTEyDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgICMgQFByb21wdCBTZWN1cmUgQm9vdCBkZWZhdWx0IGhhc2ggYWxnb3JpdGht DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+DQo+ID4NCj4gZ0VmaVNlY3VyaXR5UGtnVG9rZW5TcGFjZUd1aWQuUGNkU2Vj dXJlQm9vdERlZmF1bHRIYXNoQWxnfDB8VUlOVDh8MHgNCj4gPiA+ID4gPiA+IDAwDQo+ID4gPiA+ ID4gPiA+IDANCj4gPiA+ID4gPiA+ID4gMTAwNDANCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgW1BjZHNEeW5hbWljLCBQY2RzRHlu YW1pY0V4XQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiAgICAjIyBUaGlzIFBDRCBpbmRpY2F0ZXMgSGFzaCBtYXNrIGZvciBUUE0gMi4w LiBCaXQgZGVmaW5pdGlvbg0KPiA+ID4gPiA+ID4gPiBzdHJpY3RseSBmb2xsb3dzIFRDRyBBbGdv cml0aG0gUmVnaXN0cnkuPEJSPjxCUj4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlm ZiAtLWdpdA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiBhL1Nl Y3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3Vy ZUJvb3RDb24NCj4gPiA+ID4gPiA+IGYNCj4gPiA+ID4gPiA+ID4gaWcNCj4gPiA+ID4gPiA+ID4g RHhlLmluZg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiBiL1Nl Y3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3Vy ZUJvb3RDb24NCj4gPiA+ID4gPiA+IGYNCj4gPiA+ID4gPiA+ID4gaWcNCj4gPiA+ID4gPiA+ID4g RHhlLmluZg0KPiA+ID4gPiA+ID4gPiBpbmRleCAxNjcxZDViZTdjLi40YjAwMTJkMDMzIDEwMDY0 NA0KPiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ DQo+ID4NCj4gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENv bmZpZ0R4ZS9TZWN1cmVCb290Q29uDQo+ID4gPiA+ID4gPiBmDQo+ID4gPiA+ID4gPiA+IGlnDQo+ ID4gPiA+ID4gPiA+IER4ZS5pbmYNCj4gPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50 aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gPiA+ID4gZg0K PiA+ID4gPiA+ID4gPiBpZw0KPiA+ID4gPiA+ID4gPiBEeGUuaW5mDQo+ID4gPiA+ID4gPiA+IEBA IC03MCw2ICs3MCwxNCBAQA0KPiA+ID4gPiA+ID4gPiAgICAjIyBTT01FVElNRVNfUFJPRFVDRVMg ICAgICAjIyBHVUlEICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRoZQ0KPiA+IHR5cGUNCj4g PiA+ID4gb2YNCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiBzaWduYXR1cmUuDQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGdFZmlDZXJ0UnNhMjA0OEd1aWQNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgIyMg U09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZv cg0KPiB0aGUNCj4gPiA+ID4gdHlwZSBvZg0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+ IHNpZ25hdHVyZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgIyMgU09NRVRJTUVT X1BST0RVQ0VTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvcg0KPiB0aGUN Cj4gPiB0eXBlDQo+ID4gPiA+IG9mDQo+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gc2ln bmF0dXJlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBnRWZpQ2VydFJzYTMwNzJH dWlkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gKyAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMgR1VJRCAgICAgICAgICAg ICMgVW5pcXVlIElEIGZvcg0KPiB0aGUNCj4gPiA+ID4gdHlwZSBvZg0KPiA+ID4gPiA+ID4gdGhl DQo+ID4gPiA+ID4gPiA+IHNpZ25hdHVyZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgIyMgU09NRVRJTUVTX1BST0RVQ0VTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVl IElEIGZvcg0KPiB0aGUNCj4gPiB0eXBlDQo+ID4gPiA+IG9mDQo+ID4gPiA+ID4gPiB0aGUNCj4g PiA+ID4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBn RWZpQ2VydFJzYTQwOTZHdWlkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMg R1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvcg0KPiB0aGUNCj4gPiB0eXBlDQo+ID4gPiA+ IG9mDQo+ID4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBHVUlE ICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRoZQ0KPiA+IHR5cGUNCj4gPiA+ID4gb2YNCj4g PiA+ID4gPiA+IHRoZQ0KPiA+ID4gPiA+ID4gPiBzaWduYXR1cmUuDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICAgIGdFZmlDZXJ0WDUwOUd1aWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gQEAgLTgyLDYgKzkwLDE0IEBADQo+ID4gPiA+ID4gPiA+ICAgICMjIFNPTUVUSU1FU19Q Uk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlDQo+ID4g dHlwZQ0KPiA+ID4gPiBvZg0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4gPiA+IHNpZ25hdHVy ZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgZ0VmaUNlcnRTaGEyNTZHdWlkDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICsgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1 ZSBJRCBmb3INCj4gdGhlDQo+ID4gPiA+IHR5cGUgb2YNCj4gPiA+ID4gPiA+IHRoZQ0KPiA+ID4g PiA+ID4gPiBzaWduYXR1cmUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICMjIFNP TUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IN Cj4gdGhlDQo+ID4gdHlwZQ0KPiA+ID4gPiBvZg0KPiA+ID4gPiA+ID4gdGhlDQo+ID4gPiA+ID4g PiA+IHNpZ25hdHVyZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgZ0VmaUNlcnRT aGEzODRHdWlkDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMgR1VJRCAgICAg ICAgICAgICMgVW5pcXVlIElEIGZvcg0KPiB0aGUNCj4gPiA+ID4gdHlwZSBvZg0KPiA+ID4gPiA+ ID4gdGhlDQo+ID4gPiA+ID4gPiA+IHNpZ25hdHVyZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgIyMgU09NRVRJTUVTX1BST0RVQ0VTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMg VW5pcXVlIElEIGZvcg0KPiB0aGUNCj4gPiB0eXBlDQo+ID4gPiA+IG9mDQo+ID4gPiA+ID4gPiB0 aGUNCj4gPiA+ID4gPiA+ID4gc2lnbmF0dXJlLg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArICBnRWZpQ2VydFNoYTUxMkd1aWQNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICAg ICAjIyBWYXJpYWJsZTpMImRiIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAjIyBT T01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBWYXJpYWJsZTpMImRiIg0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiAgICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICAgICAjIyBWYXJpYWJsZTpM ImRieCINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQEAgLTEwNyw2ICsxMjMsOSBAQA0K PiA+ID4gPiA+ID4gPiAgICBnRWZpQ2VydFg1MDlTaGEzODRHdWlkICAgICAgICAgICAgICAgICAg ICAgICAgIyMgU09NRVRJTUVTX1BST0RVQ0VTDQo+ID4gIyMNCj4gPiA+ID4gR1VJRA0KPiA+ID4g PiA+ID4gIw0KPiA+ID4gPiA+ID4gPiBVbmlxdWUgSUQgZm9yIHRoZSB0eXBlIG9mIHRoZSBjZXJ0 aWZpY2F0ZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgZ0VmaUNlcnRYNTA5U2hh NTEyR3VpZCAgICAgICAgICAgICAgICAgICAgICAgICMjIFNPTUVUSU1FU19QUk9EVUNFUw0KPiA+ ICMjDQo+ID4gPiA+IEdVSUQNCj4gPiA+ID4gPiA+ICMNCj4gPiA+ID4gPiA+ID4gVW5pcXVlIElE IGZvciB0aGUgdHlwZSBvZiB0aGUgY2VydGlmaWNhdGUuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICtbUGNkXQ0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICBnRWZpU2VjdXJpdHlQa2dUb2tlblNwYWNlR3VpZC5QY2RTZWN1 cmVCb290RGVmYXVsdEhhc2hBbGcNCj4gPiA+ID4gPiA+ICMjDQo+ID4gPiA+ID4gPiA+IENPTlNV TUVTDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gIFtQcm90b2NvbHNdDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGdF ZmlIaWlDb25maWdBY2Nlc3NQcm90b2NvbEd1aWQgICAgICAgICAgICAgICAjIyBQUk9EVUNFUw0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBnRWZpRGV2aWNlUGF0aFByb3RvY29sR3Vp ZCAgICAgICAgICAgICAgICAgICAgIyMgUFJPRFVDRVMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gZGlmZiAtLWdpdA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4g Pg0KPiBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmln RHhlL1NlY3VyZUJvb3RDb24NCj4gPiA+ID4gPiA+IGYNCj4gPiA+ID4gPiA+ID4gaWdJDQo+ID4g PiA+ID4gPiA+IG1wbC5jDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdE eGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gPiA+ID4gZg0KPiA+ID4gPiA+ID4gPiBpZ0kNCj4gPiA+ ID4gPiA+ID4gbXBsLmMNCj4gPiA+ID4gPiA+ID4gaW5kZXggNDI5OWE2YjVlNS4uMGJhMDI5YTM5 NCAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0K PiA+ID4gPg0KPiA+DQo+IGEvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3Vy ZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gPiA+ID4gZg0KPiA+ID4gPiA+ID4g PiBpZ0kNCj4gPiA+ID4gPiA+ID4gbXBsLmMNCj4gPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFibGVB dXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gPiA+ ID4gZg0KPiA+ID4gPiA+ID4gPiBpZ0kNCj4gPiA+ID4gPiA+ID4gbXBsLmMNCj4gPiA+ID4gPiA+ ID4gQEAgLTU2MCw3ICs1NjAsNyBAQCBPTl9FWElUOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgKiovDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICBF RklfU1RBVFVTDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC1FbnJvbGxSc2EyMDQ4VG9L ZWsgKA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArRW5yb2xsUnNhVG9LZWsgKA0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBJTiBTRUNVUkVCT09UX0NPTkZJR19QUklWQVRF X0RBVEEgICpQcml2YXRlDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICkNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g QEAgLTYwMyw4ICs2MDMsMTMgQEAgRW5yb2xsUnNhMjA0OFRvS2VrICgNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgQVNTRVJUIChLZXlCbG9iICE9IE5VTEwp Ow0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBLZXlJbmZvID0gKENQTF9LRVlfSU5G TyAqKUtleUJsb2I7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gIGlmIChLZXlJbmZv LT5LZXlMZW5ndGhJbkJpdHMgLyA4ICE9DQo+ID4gV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUp IHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSAgICBERUJVRyAoKERFQlVHX0VSUk9S LCAiVW5zdXBwb3J0ZWQga2V5IGxlbmd0aCwgT25seQ0KPiA+IFJTQTIwNDggaXMNCj4gPiA+ID4g PiA+ID4gc3VwcG9ydGVkLlxuIikpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBz d2l0Y2ggKEtleUluZm8tPktleUxlbmd0aEluQml0cyAvIDgpIHsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTIwNDhfU0laRToNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTMwNzJfU0laRToN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgY2FzZSBXSU5fQ0VSVF9VRUZJX1JTQTQw OTZfU0laRToNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBicmVhazsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgZGVmYXVsdCA6DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIlVuc3VwcG9ydGVkIGtleSBsZW5n dGgsIE9ubHkNCj4gPiBSU0EyMDQ4LA0KPiA+ID4gPiA+ID4gPiArIFJTQTMwNzINCj4gPiA+ID4g PiA+ID4gYW5kIFJTQTQwOTYgYXJlIHN1cHBvcnRlZC5cbiIpKTsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gICAgICBTdGF0dXMgPSBFRklfVU5TVVBQT1JURUQ7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICAgICAgZ290byBPTl9FWElUOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiAgICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEBAIC02MzIsNyArNjM3 LDcgQEAgRW5yb2xsUnNhMjA0OFRvS2VrICgNCj4gPiA+ID4gPiA+ID4gICAgLy8NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgS2VrU2lnTGlzdFNpemUgPSBzaXplb2YgKEVGSV9TSUdO QVRVUkVfTElTVCkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAg ICAgICArIHNpemVvZiAoRUZJX1NJR05BVFVSRV9EQVRBKSAtIDENCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gLSAgICAgICAgICAgICAgICAgICArIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9T SVpFOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICsg S2V5TGVuSW5CeXRlczsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gICAgS2VrU2lnTGlzdCA9IChFRklfU0lHTkFUVVJFX0xJU1QgKilB bGxvY2F0ZVplcm9Qb29sDQo+ID4gPiA+ID4gPiA+IChLZWtTaWdMaXN0U2l6ZSk7DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGlmIChLZWtTaWdMaXN0ID09IE5VTEwpIHsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQEAgLTY0MiwxNyArNjQ3LDMyIEBAIEVucm9sbFJzYTIw NDhUb0tlayAoDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg IEtla1NpZ0xpc3QtPlNpZ25hdHVyZUxpc3RTaXplID0gc2l6ZW9mIChFRklfU0lHTkFUVVJFX0xJ U1QpDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKyBzaXplb2YgKEVGSV9TSUdOQVRVUkVfREFUQSkgLSAxDQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyBX SU5fQ0VSVF9VRUZJX1JTQTIwNDhfU0laRTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArIChVSU5UMzIpIEtleUxlbkluQnl0 ZXM7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIEtla1NpZ0xpc3QtPlNpZ25hdHVy ZUhlYWRlclNpemUgPSAwOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICBLZWtTaWdM aXN0LT5TaWduYXR1cmVTaXplICAgICAgID0gc2l6ZW9mIChFRklfU0lHTkFUVVJFX0RBVEEpIC0N Cj4gMQ0KPiA+ICsNCj4gPiA+ID4gPiA+ID4gV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU7DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2ln bmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0OEd1aWQpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICBLZWtTaWdMaXN0LT5TaWduYXR1cmVTaXplICAgICAgID0gc2l6ZW9mIChFRklf U0lHTkFUVVJFX0RBVEEpIC0NCj4gMQ0KPiA+ICsNCj4gPiA+ID4gPiA+IChVSU5UMzIpDQo+ID4g PiA+ID4gPiA+IEtleUxlbkluQnl0ZXM7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg IHN3aXRjaCAoS2V5TGVuSW5CeXRlcykgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAr ICBjYXNlIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9TSVpFOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwNCj4gJmdF ZmlDZXJ0UnNhMjA0OEd1aWQpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIGJy ZWFrOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBjYXNlIFdJTl9DRVJUX1VFRklf UlNBMzA3Ml9TSVpFOg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIENvcHlHdWlk ICgmS2VrU2lnTGlzdC0+U2lnbmF0dXJlVHlwZSwNCj4gJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpOw0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICBjYXNlIFdJTl9DRVJUX1VFRklfUlNBNDA5Nl9TSVpFOg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIENvcHlHdWlkICgmS2VrU2lnTGlzdC0+U2lnbmF0 dXJlVHlwZSwNCj4gJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIGJy ZWFrOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBkZWZhdWx0IDoNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVW5zdXBwb3J0 ZWQga2V5IGxlbmd0aC5cbiIpKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBT dGF0dXMgPSBFRklfVU5TVVBQT1JURUQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg ICAgZ290byBPTl9FWElUOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICB9DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAg IEtFS1NpZ0RhdGEgPSAoRUZJX1NJR05BVFVSRV9EQVRBICopKChVSU5UOCAqKUtla1NpZ0xpc3Qg Kw0KPiA+IHNpemVvZg0KPiA+ID4gPiA+ID4gPiAoRUZJX1NJR05BVFVSRV9MSVNUKSk7DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIENvcHlHdWlkICgmS0VLU2lnRGF0YS0+U2lnbmF0 dXJlT3duZXIsIFByaXZhdGUtDQo+ID4gPlNpZ25hdHVyZUdVSUQpOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiAgICBDb3B5TWVtICgNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g ICAgICBLRUtTaWdEYXRhLT5TaWduYXR1cmVEYXRhLA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiAgICAgIEtleUJsb2IgKyBzaXplb2YgKENQTF9LRVlfSU5GTyksDQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IC0gICAgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBLZXlMZW5JbkJ5dGVzDQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICAgICAgKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gQEAgLTg5MCw3ICs5MTAsNyBAQCBFbnJvbGxLZXlFeGNoYW5nZUtleSAoDQo+ID4gPiA+ID4g PiA+ICAgIGlmIChJc0RlckVuY29kZUNlcnRpZmljYXRlIChGaWxlUG9zdEZpeCkpIHsNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICByZXR1cm4gRW5yb2xsWDUwOVRvS2VrIChQcml2 YXRlKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgfSBlbHNlIGlmIChDb21wYXJl TWVtIChGaWxlUG9zdEZpeCwgTCIucGJrIiwgNCkgPT0gMCkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiAtICAgIHJldHVybiBFbnJvbGxSc2EyMDQ4VG9LZWsgKFByaXZhdGUpOw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBFbnJvbGxSc2FUb0tlayAoUHJp dmF0ZSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIH0gZWxzZSB7DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgLy8NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gICAgICAvLyBGaWxlIHR5cGUgaXMgd3JvbmcsIHNpbXBseSBjbG9zZSBpdA0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiBAQCAtMTg0Nyw3ICsxODY3LDcgQEAgSGFzaFBlSW1hZ2UgKA0K PiA+ID4gPiA+ID4gPiAgICBTZWN0aW9uSGVhZGVyID0gTlVMTDsNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gICAgU3RhdHVzICAgICAgICA9IEZBTFNFOw0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAtICBpZiAoSGFzaEFsZyAh PSBIQVNIQUxHX1NIQTI1Nikgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBpZiAo KEhhc2hBbGcgPj0gSEFTSEFMR19NQVgpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICAgICAgcmV0dXJuIEZBTFNFOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICB9DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ IEBAIC0xODU2LDggKzE4NzYsMjUgQEAgSGFzaFBlSW1hZ2UgKA0KPiA+ID4gPiA+ID4gPiAgICAv Lw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICBaZXJvTWVtIChtSW1hZ2VEaWdlc3Qs IE1BWF9ESUdFU1RfU0laRSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gIG1JbWFnZURpZ2VzdFNpemUgPSBTSEEyNTZfRElHRVNU X1NJWkU7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gIG1DZXJ0VHlwZSAgICAgICAg PSBnRWZpQ2VydFNoYTI1Nkd1aWQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICBz d2l0Y2ggKEhhc2hBbGcpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBjYXNl IEhBU0hBTEdfU0hBMjU2Og0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgbUlt YWdlRGlnZXN0U2l6ZSA9IFNIQTI1Nl9ESUdFU1RfU0laRTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gKyAgICAgIG1DZXJ0VHlwZSAgICAgICAgPSBnRWZpQ2VydFNoYTI1Nkd1aWQ7DQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIGNhc2Ug SEFTSEFMR19TSEEzODQ6DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICBtSW1h Z2VEaWdlc3RTaXplID0gU0hBMzg0X0RJR0VTVF9TSVpFOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICAgICAgbUNlcnRUeXBlICAgICAgICA9IGdFZmlDZXJ0U2hhMzg0R3VpZDsNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgY2FzZSBI QVNIQUxHX1NIQTUxMjoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgIG1JbWFn ZURpZ2VzdFNpemUgPSBTSEE1MTJfRElHRVNUX1NJWkU7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgICAgICBtQ2VydFR5cGUgICAgICAgID0gZ0VmaUNlcnRTaGE1MTJHdWlkOw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBkZWZhdWx0 Og0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgcmV0dXJuIEZBTFNFOw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIEN0eFNpemUgPSBtSGFzaFtIYXNo QWxnXS5HZXRDb250ZXh0U2l6ZSAoKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQEAgLTIyMjIsNiArMjI1OSwzNSBAQCBPTl9FWElU Og0KPiA+ID4gPiA+ID4gPiAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArLyoqDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIEdldCBI YXNoIEFsZyBieSBQY2RTZWN1cmVCb290RGVmYXVsdEhhc2hBbGcNCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBAcmV0dmFsICBV SU5UMzIgICAgICAgSGFzaCBBbGcNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgKiov DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICtVSU5UMzINCj4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gK0dldERlZmF1bHRIYXNoQWxnICgNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgVk9JRA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICApDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsg IFVJTlQzMiAgSGFzaEFsZzsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICBzd2l0Y2ggKFBjZEdldDggKFBjZFNlY3VyZUJvb3RE ZWZhdWx0SGFzaEFsZykpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgY2FzZSAx Og0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywg IiVhIHVzZSBTSEEzODQiLCBfX2Z1bmNfXykpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArICAgIEhhc2hBbGcgPSBIQVNIQUxHX1NIQTM4NDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgY2FzZSAy Og0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIERFQlVHICgoREVCVUdfSU5GTywg IiVhIHVzZSBTSEE1MTIiLCBfX2Z1bmNfXykpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiArICAgIEhhc2hBbGcgPSBIQVNIQUxHX1NIQTUxMjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgZGVmYXVs dDoNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBERUJVRyAoKERFQlVHX0lORk8s ICIlYSB1c2UgU0hBMjU2IiwgX19mdW5jX18pKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gKyAgICBIYXNoQWxnID0gSEFTSEFMR19TSEEyNTY7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ICsgICAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgIH0NCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgcmV0dXJuIEhhc2hBbGc7DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8qKg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiAgICBFbnJvbGwgYSBuZXcgc2lnbmF0dXJlIG9mIGV4ZWN1dGFibGUgaW50byBTaWduYXR1 cmUgRGF0YWJhc2UuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+IEBAIC0yMjg5LDcgKzIzNTUsNyBAQCBFbnJvbGxJbWFnZVNpZ25hdHVy ZVRvU2lnREIgKA0KPiA+ID4gPiA+ID4gPiAgICB9DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgIGlmIChtU2VjRGF0YURpci0+U2l6 ZU9mQ2VydCA9PSAwKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IC0gICAgaWYgKCFI YXNoUGVJbWFnZSAoSEFTSEFMR19TSEEyNTYpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICsgICAgaWYgKCFIYXNoUGVJbWFnZSAoR2V0RGVmYXVsdEhhc2hBbGcgKCkpKSB7DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBTdGF0dXMgPSAgRUZJX1NFQ1VSSVRZX1ZJ T0xBVElPTjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIGdvdG8gT05fRVhJ VDsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICB9DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+IEBAIC0yNTg5LDYgKzI2NTUsMTAgQEAgVXBkYXRlRGVsZXRlUGFnZSAoDQo+ ID4gPiA+ID4gPiA+ICAgIHdoaWxlICgoSXRlbURhdGFTaXplID4gMCkgJiYgKEl0ZW1EYXRhU2l6 ZSA+PQ0KPiA+ID4gPiA+ID4gPiBDZXJ0TGlzdC0+U2lnbmF0dXJlTGlzdFNpemUpKSB7DQo+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3Qt PlNpZ25hdHVyZVR5cGUsDQo+ID4gJmdFZmlDZXJ0UnNhMjA0OEd1aWQpKQ0KPiA+ID4gPiA+ID4g PiB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBIZWxwID0gU1RSSU5HX1RP S0VODQo+ID4gKFNUUl9DRVJUX1RZUEVfUlNBMjA0OF9TSEEyNTZfR1VJRCk7DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0 LT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiA+ID4gPiArICZnRWZpQ2VydFJzYTMwNzJHdWlkKSkg ew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgSGVscCA9IFNUUklOR19UT0tF Tg0KPiA+IChTVFJfQ0VSVF9UWVBFX1JTQTMwNzJfU0hBMzg0X0dVSUQpOw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiArICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+ U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gKyAmZ0VmaUNlcnRSc2E0MDk2R3VpZCkpIHsN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgIEhlbHAgPSBTVFJJTkdfVE9LRU4N Cj4gPiAoU1RSX0NFUlRfVFlQRV9SU0E0MDk2X1NIQTUxMl9HVUlEKTsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gICAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNp Z25hdHVyZVR5cGUsDQo+ID4gPiA+ID4gPiA+ICZnRWZpQ2VydFg1MDlHdWlkKSkgew0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgICAgSGVscCA9IFNUUklOR19UT0tFTiAoU1RSX0NF UlRfVFlQRV9QQ0tTN19HVUlEKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ ID4gPiA+ICZnRWZpQ2VydFNoYTFHdWlkKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiBAQCAtMjc1MCw2ICsyODIwLDggQEAgRGVsZXRlS2V5RXhjaGFuZ2VLZXkgKA0KPiA+ID4gPiA+ ID4gPiAgICBHdWlkSW5kZXggICAgICA9IDA7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ ICAgIHdoaWxlICgoS2VrRGF0YVNpemUgPiAwKSAmJiAoS2VrRGF0YVNpemUgPj0NCj4gPiA+ID4g PiA+ID4gQ2VydExpc3QtPlNpZ25hdHVyZUxpc3RTaXplKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiAgICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBl LA0KPiA+ICZnRWZpQ2VydFJzYTIwNDhHdWlkKQ0KPiA+ID4gPiA+ID4gPiB8fA0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICBDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWdu YXR1cmVUeXBlLA0KPiA+ICZnRWZpQ2VydFJzYTMwNzJHdWlkKQ0KPiA+ID4gPiA+ID4gPiArIHx8 DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIENvbXBhcmVHdWlkICgmQ2Vy dExpc3QtPlNpZ25hdHVyZVR5cGUsDQo+ID4gJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpDQo+ID4gPiA+ ID4gPiA+ICsgfHwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgQ29tcGFy ZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwNCj4gJmdFZmlDZXJ0WDUwOUd1aWQpKQ0K PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gICAgICAgIENvcHlNZW0gKERhdGEgKyBPZmZzZXQsIENlcnRMaXN0LCAoc2l6ZW9m DQo+IChFRklfU0lHTkFUVVJFX0xJU1QpDQo+ID4gPiA+ID4gPiA+ICsgQ2VydExpc3QtDQo+ID4g PiA+ID4gPiA+ID5TaWduYXR1cmVIZWFkZXJTaXplKSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+IEBAIC0yOTUyLDYgKzMwMjQsOCBAQCBEZWxldGVTaWduYXR1cmUgKA0KPiA+ID4gPiA+ ID4gPiAgICBHdWlkSW5kZXggICAgPSAwOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAg ICB3aGlsZSAoKEl0ZW1EYXRhU2l6ZSA+IDApICYmIChJdGVtRGF0YVNpemUgPj0NCj4gPiA+ID4g PiA+ID4gQ2VydExpc3QtPlNpZ25hdHVyZUxpc3RTaXplKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiAgICAgIGlmIChDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBl LA0KPiA+ICZnRWZpQ2VydFJzYTIwNDhHdWlkKQ0KPiA+ID4gPiA+ID4gPiB8fA0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgICAgICBDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWdu YXR1cmVUeXBlLA0KPiA+ICZnRWZpQ2VydFJzYTMwNzJHdWlkKQ0KPiA+ID4gPiA+ID4gPiArIHx8 DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIENvbXBhcmVHdWlkICgmQ2Vy dExpc3QtPlNpZ25hdHVyZVR5cGUsDQo+ID4gJmdFZmlDZXJ0UnNhNDA5Nkd1aWQpDQo+ID4gPiA+ ID4gPiA+ICsgfHwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgQ29tcGFy ZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0WDUwOUd1aWQpDQo+ID4g fHwNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgQ29tcGFyZUd1aWQgKCZD ZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0U2hhMUd1aWQpDQo+ID4gfHwNCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+ U2lnbmF0dXJlVHlwZSwNCj4gJmdFZmlDZXJ0U2hhMjU2R3VpZCkNCj4gPiA+ID4gPiA+ID4gfHwN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQEAgLTM3NTgsMTIgKzM4MzIsMjAgQEAgTG9h ZFNpZ25hdHVyZUxpc3QgKA0KPiA+ID4gPiA+ID4gPiAgICB3aGlsZSAoKFJlbWFpbmluZ1NpemUg PiAwKSAmJiAoUmVtYWluaW5nU2l6ZSA+PQ0KPiA+ID4gPiA+ID4gPiBMaXN0V2Fsa2VyLT5TaWdu YXR1cmVMaXN0U2l6ZSkpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBpZiAo Q29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiA+ID4gPiAm Z0VmaUNlcnRSc2EyMDQ4R3VpZCkpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAg ICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1JTQTIwNDhfU0hBMjU2 KTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICB9IGVsc2UgaWYgKENvbXBhcmVH dWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gKyAmZ0VmaUNl cnRSc2EzMDcyR3VpZCkpDQo+ID4gPiA+ID4gPiA+IHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1JTQTMw NzJfU0hBMzg0KTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICB9IGVsc2UgaWYg KENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4g KyAmZ0VmaUNlcnRSc2E0MDk2R3VpZCkpDQo+ID4gPiA+ID4gPiA+IHsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9U WVBFX1JTQTQwOTZfU0hBNTEyKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ ID4gPiA+ID4gJmdFZmlDZXJ0WDUwOUd1aWQpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICAgICAgICBMaXN0VHlwZSA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9YNTA5KTsN Cj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlk ICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gJmdFZmlDZXJ0U2hh MUd1aWQpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgICBMaXN0VHlwZSA9 IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9TSEExKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gICAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0 dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gJmdFZmlDZXJ0U2hhMjU2R3VpZCkpIHsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJf TElTVF9UWVBFX1NIQTI1Nik7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgfSBl bHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ ID4gPiA+ICsgJmdFZmlDZXJ0U2hhMzg0R3VpZCkpDQo+ID4gPiA+ID4gPiA+IHsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJf TElTVF9UWVBFX1NIQTM4NCk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsgICAgfSBl bHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ ID4gPiA+ICsgJmdFZmlDZXJ0U2hhNTEyR3VpZCkpDQo+ID4gPiA+ID4gPiA+IHsNCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJf TElTVF9UWVBFX1NIQTUxMik7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgfSBl bHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsDQo+ID4gPiA+ ID4gPiA+ICZnRWZpQ2VydFg1MDlTaGEyNTZHdWlkKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiAgICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfWDUw OV9TSEEyNTYpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIH0gZWxzZSBpZiAo Q29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLA0KPiA+ID4gPiA+ID4gPiAm Z0VmaUNlcnRYNTA5U2hhMzg0R3VpZCkpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g QEAgLTQwMDEsNiArNDA4MywxNCBAQCBGb3JtYXRIZWxwSW5mbyAoDQo+ID4gPiA+ID4gPiA+ICAg ICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTg0KPiAoU1RSX0xJU1RfVFlQRV9SU0EyMDQ4X1NI QTI1Nik7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgRGF0YVNpemUgICA9IExp c3RFbnRyeS0+U2lnbmF0dXJlU2l6ZSAtIHNpemVvZiAoRUZJX0dVSUQpOw0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAgICAgIElzQ2VydCAgICAgPSBUUlVFOw0KPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiArICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWdu YXR1cmVUeXBlLA0KPiA+ID4gPiA+ID4gPiArICZnRWZpQ2VydFJzYTMwNzJHdWlkKSkgew0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9LRU4N Cj4gKFNUUl9MSVNUX1RZUEVfUlNBMzA3Ml9TSEEzODQpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiArICAgIERhdGFTaXplICAgPSBMaXN0RW50cnktPlNpZ25hdHVyZVNpemUgLSBzaXpl b2YgKEVGSV9HVUlEKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBJc0NlcnQg ICAgID0gVFJVRTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfSBlbHNlIGlmIChD b21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gKyAm Z0VmaUNlcnRSc2E0MDk2R3VpZCkpIHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAg ICBMaXN0VHlwZUlkID0gU1RSSU5HX1RPS0VODQo+IChTVFJfTElTVF9UWVBFX1JTQTQwOTZfU0hB NTEyKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgICBEYXRhU2l6ZSAgID0gTGlz dEVudHJ5LT5TaWduYXR1cmVTaXplIC0gc2l6ZW9mIChFRklfR1VJRCk7DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsgICAgSXNDZXJ0ICAgICA9IFRSVUU7DQo+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0RW50cnktPlNpZ25h dHVyZVR5cGUsDQo+ID4gPiA+ID4gPiA+ICZnRWZpQ2VydFg1MDlHdWlkKSkgew0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9LRU4gKFNUUl9M SVNUX1RZUEVfWDUwOSk7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAgICAgRGF0YVNp emUgICA9IExpc3RFbnRyeS0+U2lnbmF0dXJlU2l6ZSAtIHNpemVvZiAoRUZJX0dVSUQpOw0KPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBAQCAtNDAxMSw2ICs0MTAxLDEyIEBAIEZvcm1hdEhl bHBJbmZvICgNCj4gPiA+ID4gPiA+ID4gICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RF bnRyeS0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gJmdFZmlDZXJ0U2hhMjU2R3VpZCkp IHsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICAgICBMaXN0VHlwZUlkID0gU1RSSU5H X1RPS0VOIChTVFJfTElTVF9UWVBFX1NIQTI1Nik7DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ICAgICAgRGF0YVNpemUgICA9IDMyOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAr ICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLA0KPiA+ ID4gPiA+ID4gPiArICZnRWZpQ2VydFNoYTM4NEd1aWQpKSB7DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICsgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQRV9T SEEzODQpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIERhdGFTaXplICAgPSA0 ODsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gKyAgfSBlbHNlIGlmIChDb21wYXJlR3Vp ZCAoJkxpc3RFbnRyeS0+U2lnbmF0dXJlVHlwZSwNCj4gPiA+ID4gPiA+ID4gKyAmZ0VmaUNlcnRT aGE1MTJHdWlkKSkgew0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArICAgIExpc3RUeXBl SWQgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBNTEyKTsNCj4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gKyAgICBEYXRhU2l6ZSAgID0gNjQ7DQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0RW50cnktPlNpZ25hdHVy ZVR5cGUsDQo+ID4gPiA+ID4gPiA+ICZnRWZpQ2VydFg1MDlTaGEyNTZHdWlkKSkgew0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgICAgIExpc3RUeXBlSWQgPSBTVFJJTkdfVE9LRU4gKFNU Ul9MSVNUX1RZUEVfWDUwOV9TSEEyNTYpOw0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAg ICAgIERhdGFTaXplICAgPSAzMjsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAt LWdpdA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiBhL1NlY3Vy aXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJv b3RDb24NCj4gPiA+ID4gPiA+IGYNCj4gPiA+ID4gPiA+ID4gaWdJDQo+ID4gPiA+ID4gPiA+IG1w bC5oDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+DQo+IGIvU2VjdXJp dHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9v dENvbg0KPiA+ID4gPiA+ID4gZg0KPiA+ID4gPiA+ID4gPiBpZ0kNCj4gPiA+ID4gPiA+ID4gbXBs LmgNCj4gPiA+ID4gPiA+ID4gaW5kZXggMzdjNjZmMWI5NS4uYWU1MGQ5MjlhNyAxMDA2NDQNCj4g PiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+ DQo+IGEvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdE eGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gPiA+ID4gZg0KPiA+ID4gPiA+ID4gPiBpZ0kNCj4gPiA+ ID4gPiA+ID4gbXBsLmgNCj4gPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPg0KPiA+ID4gPg0KPiA+DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVk L1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4gPiA+ID4gZg0KPiA+ID4g PiA+ID4gPiBpZ0kNCj4gPiA+ID4gPiA+ID4gbXBsLmgNCj4gPiA+ID4gPiA+ID4gQEAgLTgyLDYg KzgyLDggQEAgZXh0ZXJuICBFRklfSUZSX0dVSURfTEFCRUwgICptRW5kTGFiZWw7DQo+ID4gPiA+ ICNkZWZpbmUNCj4gPiA+ID4gPiA+ID4gTUFYX0RJR0VTVF9TSVpFICBTSEE1MTJfRElHRVNUX1NJ WkUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gICNkZWZpbmUgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUgIDI1Ng0KPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiArI2RlZmluZSBXSU5fQ0VSVF9VRUZJX1JTQTMwNzJfU0laRSAg Mzg0DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsjZGVmaW5lIFdJTl9DRVJUX1VFRklf UlNBNDA5Nl9TSVpFICA1MTINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gIC8vDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAv LyBTdXBwb3J0IGhhc2ggdHlwZXMNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gZGlmZiAt LWdpdA0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPg0KPiBhL1NlY3Vy aXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJv b3RDb24NCj4gPiA+ID4gPiA+IGYNCj4gPiA+ID4gPiA+ID4gaWdTDQo+ID4gPiA+ID4gPiA+IHRy aW5ncy51bmkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4NCj4gYi9T ZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1 cmVCb290Q29uDQo+ID4gPiA+ID4gPiBmDQo+ID4gPiA+ID4gPiA+IGlnUw0KPiA+ID4gPiA+ID4g PiB0cmluZ3MudW5pDQo+ID4gPiA+ID4gPiA+IGluZGV4IDBkMDE3MDFkZTcuLjFiNDhhY2M4MDAg MTAwNjQ0DQo+ID4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4g PiA+ID4NCj4gPg0KPiBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVC b290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb24NCj4gPiA+ID4gPiA+IGYNCj4gPiA+ID4gPiA+ID4g aWdTDQo+ID4gPiA+ID4gPiA+IHRyaW5ncy51bmkNCj4gPiA+ID4gPiA+ID4gKysrDQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+DQo+IGIvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbg0KPiA+ID4g PiA+ID4gZg0KPiA+ID4gPiA+ID4gPiBpZ1MNCj4gPiA+ID4gPiA+ID4gdHJpbmdzLnVuaQ0KPiA+ ID4gPiA+ID4gPiBAQCAtMTEzLDYgKzExMyw4IEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC U0QtMi1DbGF1c2UtDQo+ID4gUGF0ZW50DQo+ID4gPiA+ID4gPiA+ICAjc3RyaW5nIFNUUl9GT1JN X0VOUk9MTF9LRUtfRlJPTV9GSUxFX1RJVExFX0hFTFANCj4gPiAjbGFuZ3VhZ2UNCj4gPiA+ID4g ZW4tDQo+ID4gPiA+ID4gPiBVUw0KPiA+ID4gPiA+ID4gPiAiUmVhZCB0aGUgcHVibGljIGtleSBv ZiBLRUsgZnJvbSBmaWxlIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgI3N0cmluZyBT VFJfRklMRV9FWFBMT1JFUl9USVRMRSAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMg IkZpbGUNCj4gPiA+ID4gPiA+IEV4cGxvcmVyIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiAgI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1JTQTIwNDhfU0hBMjU2X0dVSUQgICAgICAgICAjbGFu Z3VhZ2UNCj4gZW4tDQo+ID4gVVMNCj4gPiA+ID4gPiA+ID4gIlJTQTIwNDhfU0hBMjU2X0dVSUQi DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsjc3RyaW5nIFNUUl9DRVJUX1RZUEVfUlNB MzA3Ml9TSEEzODRfR1VJRCAgICAgICAgICNsYW5ndWFnZQ0KPiA+IGVuLVVTDQo+ID4gPiA+ID4g PiA+ICJSU0EzMDcyX1NIQTM4NF9HVUlEIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAr I3N0cmluZyBTVFJfQ0VSVF9UWVBFX1JTQTQwOTZfU0hBNTEyX0dVSUQgICAgICAgICAjbGFuZ3Vh Z2UNCj4gPiBlbi1VUw0KPiA+ID4gPiA+ID4gPiAiUlNBNDA5Nl9TSEE1MTJfR1VJRCINCj4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICNzdHJpbmcgU1RSX0NFUlRfVFlQRV9QQ0tTN19HVUlE ICAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ID4gPiAiUEtDUzdfR1VJ RCINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gICNzdHJpbmcgU1RSX0NFUlRfVFlQRV9T SEExX0dVSUQgICAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTDQo+ID4gPiA+ID4gPiAi U0hBMV9HVUlEIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgI3N0cmluZyBTVFJfQ0VS VF9UWVBFX1NIQTI1Nl9HVUlEICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ ID4gPiA+ID4gIlNIQTI1Nl9HVUlEIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBAQCAt MTIxLDkgKzEyMywxMyBAQCBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLQ0K PiA+IFBhdGVudA0KPiA+ID4gPiA+ID4gPiAgI3N0cmluZyBTVFJfQ0VSVF9UWVBFX1g1MDlfU0hB NTEyX0dVSUQgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tDQo+ID4gVVMNCj4gPiA+ID4gPiA+ID4g Ilg1MDlfU0hBNTEyX0dVSUQiDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICAjc3RyaW5nIFNUUl9MSVNUX1RZUEVfUlNBMjA0OF9TSEEy NTYgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ID4gPiA+ID4gPiAiUlNBMjA0OF9T SEEyNTYiDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsjc3RyaW5nIFNUUl9MSVNUX1RZ UEVfUlNBMzA3Ml9TSEEzODQgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUw0KPiA+ID4gPiA+ ID4gPiAiUlNBMzA3Ml9TSEEzODQiDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICsjc3Ry aW5nIFNUUl9MSVNUX1RZUEVfUlNBNDA5Nl9TSEE1MTIgICAgICAgICAgICAgICNsYW5ndWFnZSBl bi1VUw0KPiA+ID4gPiA+ID4gPiAiUlNBNDA5Nl9TSEE1MTIiDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ICAjc3RyaW5nIFNUUl9MSVNUX1RZUEVfWDUwOSAgICAgICAgICAgICAgICAgICAg ICAgICNsYW5ndWFnZSBlbi1VUyAiWDUwOSINCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g ICNzdHJpbmcgU1RSX0xJU1RfVFlQRV9TSEExICAgICAgICAgICAgICAgICAgICAgICAgI2xhbmd1 YWdlIGVuLVVTICJTSEExIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgI3N0cmluZyBT VFJfTElTVF9UWVBFX1NIQTI1NiAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMN Cj4gPiAiU0hBMjU2Ig0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArI3N0cmluZyBTVFJf TElTVF9UWVBFX1NIQTM4NCAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4g PiAiU0hBMzg0Ig0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiArI3N0cmluZyBTVFJfTElT VF9UWVBFX1NIQTUxMiAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiAi U0hBNTEyIg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgI3N0cmluZyBTVFJfTElTVF9U WVBFX1g1MDlfU0hBMjU2ICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ID4g PiA+ID4gIlg1MDlfU0hBMjU2Ig0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiAgI3N0cmlu ZyBTVFJfTElTVF9UWVBFX1g1MDlfU0hBMzg0ICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4t VVMNCj4gPiA+ID4gPiA+ID4gIlg1MDlfU0hBMzg0Ig0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiAgI3N0cmluZyBTVFJfTElTVF9UWVBFX1g1MDlfU0hBNTEyICAgICAgICAgICAgICAgICAj bGFuZ3VhZ2UgZW4tVVMNCj4gPiA+ID4gPiA+ID4gIlg1MDlfU0hBNTEyIg0KPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gPiAyLjI2LjIud2luZG93cy4xDQoNCg== --_002_PH0PR11MB48708F98A4F272DAC1250C7DE12CAPH0PR11MB4870namp_ Content-Type: application/octet-stream; name="0001-SecurityPkg-SecureBoot-Support-RSA-512-and-RSA-384.patch" Content-Description: 0001-SecurityPkg-SecureBoot-Support-RSA-512-and-RSA-384.patch Content-Disposition: attachment; filename="0001-SecurityPkg-SecureBoot-Support-RSA-512-and-RSA-384.patch"; size=44840; creation-date="Thu, 06 Jul 2023 08:22:41 GMT"; modification-date="Thu, 06 Jul 2023 08:23:56 GMT" Content-Transfer-Encoding: base64 RnJvbSA0OWZlMGY4MjMxNzQyMWMxYjllYTk5OWVkODY0MTgxYWI1NzVhNzFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGVuZyBXZWkgPHcuc2hlbmdAaW50ZWwuY29tPgpEYXRlOiBG cmksIDI4IEFwciAyMDIzIDE2OjA4OjI1ICswODAwClN1YmplY3Q6IFtQQVRDSCB2NF0gU2VjdXJp dHlQa2cvU2VjdXJlQm9vdDogU3VwcG9ydCBSU0EgNTEyIGFuZCBSU0EgMzg0CgpSRUY6IGh0dHBz Oi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQxMwoKQ2M6IEppZXdl biBZYW8gPGppZXdlbi55YW9AaW50ZWwuY29tPgpDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5n QGludGVsLmNvbT4KQ2M6IE1pbiBYdSA8bWluLm0ueHVAaW50ZWwuY29tPgpDYzogWmV5aSBDaGVu IDx6ZXlpLmNoZW5AaW50ZWwuY29tPgpDYzogRmlvbmEgV2FuZyA8ZmlvbmEud2FuZ0BpbnRlbC5j b20+ClNpZ25lZC1vZmYtYnk6IFNoZW5nIFdlaSA8dy5zaGVuZ0BpbnRlbC5jb20+Ci0tLQogQ3J5 cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYyAgIHwgICAzICstCiBNZGVQ a2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaCAgICAgfCAgMjYgKysrCiBNZGVQ a2cvTWRlUGtnLmRlYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogLi4uL0xp YnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlLmMgICAgIHwgMjIwICsrKysrKysrKysr KysrKy0tLQogLi4uL0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZUludGVybmFsLmggICAgIHwg ICA0ICstCiAuLi4vTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFZhcmlhYmxlTGliLmMgfCAg NDIgKystLQogLi4uL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLmMgICAgICAgICAgICAgICAgIHwg IDczICsrKy0tLQogLi4uL1NlY3VyZUJvb3RDb25maWdEeGUuaW5mICAgICAgICAgICAgICAgICAg IHwgIDE2ICsrCiAuLi4vU2VjdXJlQm9vdENvbmZpZ0ltcGwuYyAgICAgICAgICAgICAgICAgICAg fCAxMTQgKysrKysrKy0tCiAuLi4vU2VjdXJlQm9vdENvbmZpZ0ltcGwuaCAgICAgICAgICAgICAg ICAgICAgfCAgIDIgKwogLi4uL1NlY3VyZUJvb3RDb25maWdTdHJpbmdzLnVuaSAgICAgICAgICAg ICAgIHwgICA2ICsKIDExIGZpbGVzIGNoYW5nZWQsIDQxNiBpbnNlcnRpb25zKCspLCA5MiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9DcnlwdG9Qa2cvTGlicmFyeS9CYXNlQ3J5cHRMaWIvUGsv Q3J5cHRUcy5jIGIvQ3J5cHRvUGtnL0xpYnJhcnkvQmFzZUNyeXB0TGliL1BrL0NyeXB0VHMuYwpp bmRleCAwMjdkYmI2ODQyLi45NDRiY2Y4ZDM4IDEwMDY0NAotLS0gYS9DcnlwdG9Qa2cvTGlicmFy eS9CYXNlQ3J5cHRMaWIvUGsvQ3J5cHRUcy5jCisrKyBiL0NyeXB0b1BrZy9MaWJyYXJ5L0Jhc2VD cnlwdExpYi9Qay9DcnlwdFRzLmMKQEAgLTU5MSw3ICs1OTEsOCBAQCBJbWFnZVRpbWVzdGFtcFZl cmlmeSAoCiAgIC8vIFJlZ2lzdGVyICYgSW5pdGlhbGl6ZSBuZWNlc3NhcnkgZGlnZXN0IGFsZ29y aXRobXMgZm9yIFBLQ1MjNyBIYW5kbGluZy4NCiAgIC8vDQogICBpZiAoKEVWUF9hZGRfZGlnZXN0 IChFVlBfbWQ1ICgpKSA9PSAwKSB8fCAoRVZQX2FkZF9kaWdlc3QgKEVWUF9zaGExICgpKSA9PSAw KSB8fA0KLSAgICAgIChFVlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTI1NiAoKSkgPT0gMCkgfHwgKChF VlBfYWRkX2RpZ2VzdF9hbGlhcyAoU05fc2hhMVdpdGhSU0FFbmNyeXB0aW9uLCBTTl9zaGExV2l0 aFJTQSkpID09IDApKQ0KKyAgICAgIChFVlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTI1NiAoKSkgPT0g MCkgfHwgKEVWUF9hZGRfZGlnZXN0IChFVlBfc2hhMzg0ICgpKSA9PSAwKSB8fA0KKyAgICAgIChF VlBfYWRkX2RpZ2VzdCAoRVZQX3NoYTUxMiAoKSkgPT0gMCkgfHwgKChFVlBfYWRkX2RpZ2VzdF9h bGlhcyAoU05fc2hhMVdpdGhSU0FFbmNyeXB0aW9uLCBTTl9zaGExV2l0aFJTQSkpID09IDApKQ0K ICAgew0KICAgICByZXR1cm4gRkFMU0U7DQogICB9DQpkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1 ZGUvR3VpZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmggYi9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdl QXV0aGVudGljYXRpb24uaAppbmRleCBmZTgzNTk2NTcxLi5jOGVhMmMxNGZiIDEwMDY0NAotLS0g YS9NZGVQa2cvSW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaAorKysgYi9NZGVQa2cv SW5jbHVkZS9HdWlkL0ltYWdlQXV0aGVudGljYXRpb24uaApAQCAtMTQ0LDYgKzE0NCwzMCBAQCB0 eXBlZGVmIHN0cnVjdCB7CiAgICAgMHgzYzU3NjZlOCwgMHgyNjljLCAweDRlMzQsIHsweGFhLCAw eDE0LCAweGVkLCAweDc3LCAweDZlLCAweDg1LCAweGIzLCAweGI2fSBcDQogICB9DQogDQorLy8v DQorLy8vIFRoaXMgaWRlbnRpZmllcyBhIHNpZ25hdHVyZSBjb250YWluaW5nIGFuIFJTQS0zMDcy IGtleS4gVGhlIGtleSAob25seSB0aGUgbW9kdWx1cw0KKy8vLyBzaW5jZSB0aGUgcHVibGljIGtl eSBleHBvbmVudCBpcyBrbm93biB0byBiZSAweDEwMDAxKSBzaGFsbCBiZSBzdG9yZWQgaW4gYmln LWVuZGlhbg0KKy8vLyBvcmRlci4NCisvLy8gVGhlIFNpZ25hdHVyZUhlYWRlciBzaXplIHNoYWxs IGFsd2F5cyBiZSAwLiBUaGUgU2lnbmF0dXJlU2l6ZSBzaGFsbCBhbHdheXMgYmUgMTYgKHNpemUN CisvLy8gb2YgU2lnbmF0dXJlT3duZXIgY29tcG9uZW50KSArIDM4NCBieXRlcy4NCisvLy8NCisj ZGVmaW5lIEVGSV9DRVJUX1JTQTMwNzJfR1VJRCBcDQorICB7IFwNCisgICAgMHhlZGQzMjBjMiwg MHhiMDU3LCAweDRiOGUsIHsweGFkLCAweDQ2LCAweDJjLCAweDliLCAweDg1LCAweDg5LCAweGVl LCAweDkyIH0gXA0KKyAgfQ0KKw0KKy8vLw0KKy8vLyBUaGlzIGlkZW50aWZpZXMgYSBzaWduYXR1 cmUgY29udGFpbmluZyBhbiBSU0EtNDA5NiBrZXkuIFRoZSBrZXkgKG9ubHkgdGhlIG1vZHVsdXMN CisvLy8gc2luY2UgdGhlIHB1YmxpYyBrZXkgZXhwb25lbnQgaXMga25vd24gdG8gYmUgMHgxMDAw MSkgc2hhbGwgYmUgc3RvcmVkIGluIGJpZy1lbmRpYW4NCisvLy8gb3JkZXIuDQorLy8vIFRoZSBT aWduYXR1cmVIZWFkZXIgc2l6ZSBzaGFsbCBhbHdheXMgYmUgMC4gVGhlIFNpZ25hdHVyZVNpemUg c2hhbGwgYWx3YXlzIGJlIDE2IChzaXplDQorLy8vIG9mIFNpZ25hdHVyZU93bmVyIGNvbXBvbmVu dCkgKyA1MTIgYnl0ZXMuDQorLy8vDQorI2RlZmluZSBFRklfQ0VSVF9SU0E0MDk2X0dVSUQgXA0K KyAgeyBcDQorICAgIDB4YjIzZTg5YTYsIDB4OGM4YiwgMHg0NDEyLCB7MHg4NSwgMHg3MywgMHgx NSwgMHg0ZSwgMHg4ZCwgMHgwMCwgMHg5OCwgMHgyYyB9IFwNCisgIH0NCisNCiAvLy8NCiAvLy8g VGhpcyBpZGVudGlmaWVzIGEgc2lnbmF0dXJlIGNvbnRhaW5pbmcgYSBSU0EtMjA0OCBzaWduYXR1 cmUgb2YgYSBTSEEtMjU2IGhhc2guICBUaGUNCiAvLy8gU2lnbmF0dXJlSGVhZGVyIHNpemUgc2hh bGwgYWx3YXlzIGJlIDAuIFRoZSBTaWduYXR1cmVTaXplIHNoYWxsIGFsd2F5cyBiZSAxNiAoc2l6 ZSBvZg0KQEAgLTMzMCw2ICszNTQsOCBAQCB0eXBlZGVmIHN0cnVjdCB7CiBleHRlcm4gRUZJX0dV SUQgIGdFZmlJbWFnZVNlY3VyaXR5RGF0YWJhc2VHdWlkOw0KIGV4dGVybiBFRklfR1VJRCAgZ0Vm aUNlcnRTaGEyNTZHdWlkOw0KIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4R3VpZDsN CitleHRlcm4gRUZJX0dVSUQgIGdFZmlDZXJ0UnNhMzA3Mkd1aWQ7DQorZXh0ZXJuIEVGSV9HVUlE ICBnRWZpQ2VydFJzYTQwOTZHdWlkOw0KIGV4dGVybiBFRklfR1VJRCAgZ0VmaUNlcnRSc2EyMDQ4 U2hhMjU2R3VpZDsNCiBleHRlcm4gRUZJX0dVSUQgIGdFZmlDZXJ0U2hhMUd1aWQ7DQogZXh0ZXJu IEVGSV9HVUlEICBnRWZpQ2VydFJzYTIwNDhTaGExR3VpZDsNCmRpZmYgLS1naXQgYS9NZGVQa2cv TWRlUGtnLmRlYyBiL01kZVBrZy9NZGVQa2cuZGVjCmluZGV4IGQ2YzQxNzliMmEuLmM4OGU4OGZh NmIgMTAwNjQ0Ci0tLSBhL01kZVBrZy9NZGVQa2cuZGVjCisrKyBiL01kZVBrZy9NZGVQa2cuZGVj CkBAIC01NzEsNiArNTcxLDggQEAKICAgZ0VmaUltYWdlU2VjdXJpdHlEYXRhYmFzZUd1aWQgID0g eyAweGQ3MTliMmNiLCAweDNkM2EsIDB4NDU5NiwgezB4YTMsIDB4YmMsIDB4ZGEsIDB4ZDAsICAw eGUsIDB4NjcsIDB4NjUsIDB4NmYgfX0NCiAgIGdFZmlDZXJ0U2hhMjU2R3VpZCAgICAgICAgICAg ICA9IHsgMHhjMWM0MTYyNiwgMHg1MDRjLCAweDQwOTIsIHsweGFjLCAweGE5LCAweDQxLCAweGY5 LCAweDM2LCAweDkzLCAweDQzLCAweDI4IH19DQogICBnRWZpQ2VydFJzYTIwNDhHdWlkICAgICAg ICAgICAgPSB7IDB4M2M1NzY2ZTgsIDB4MjY5YywgMHg0ZTM0LCB7MHhhYSwgMHgxNCwgMHhlZCwg MHg3NywgMHg2ZSwgMHg4NSwgMHhiMywgMHhiNiB9fQ0KKyAgZ0VmaUNlcnRSc2EzMDcyR3VpZCAg ICAgICAgICAgID0geyAweGVkZDMyMGMyLCAweGIwNTcsIDB4NGI4ZSwgezB4YWQsIDB4NDYsIDB4 MmMsIDB4OWIsIDB4ODUsIDB4ODksIDB4ZWUsIDB4OTIgfX0NCisgIGdFZmlDZXJ0UnNhNDA5Nkd1 aWQgICAgICAgICAgICA9IHsgMHhiMjNlODlhNiwgMHg4YzhiLCAweDQ0MTIsIHsweDg1LCAweDcz LCAweDE1LCAweDRlLCAweDhkLCAweDAwLCAweDk4LCAweDJjIH19DQogICBnRWZpQ2VydFJzYTIw NDhTaGEyNTZHdWlkICAgICAgPSB7IDB4ZTJiMzYxOTAsIDB4ODc5YiwgMHg0YTNkLCB7MHhhZCwg MHg4ZCwgMHhmMiwgMHhlNywgMHhiYiwgMHhhMywgMHgyNywgMHg4NCB9fQ0KICAgZ0VmaUNlcnRT aGExR3VpZCAgICAgICAgICAgICAgID0geyAweDgyNmNhNTEyLCAweGNmMTAsIDB4NGFjOSwgezB4 YjEsIDB4ODcsIDB4YmUsICAweDEsIDB4NDksIDB4NjYsIDB4MzEsIDB4YmQgfX0NCiAgIGdFZmlD ZXJ0UnNhMjA0OFNoYTFHdWlkICAgICAgICA9IHsgMHg2N2Y4NDQ0ZiwgMHg4NzQzLCAweDQ4ZjEs IHsweGEzLCAweDI4LCAweDFlLCAweGFhLCAweGI4LCAweDczLCAweDYwLCAweDgwIH19DQpkaWZm IC0tZ2l0IGEvU2VjdXJpdHlQa2cvTGlicmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2Uu YyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlLmMKaW5k ZXggZDgxYzU4MWQ3OC4uNGMyNjhhODVjZCAxMDA2NDQKLS0tIGEvU2VjdXJpdHlQa2cvTGlicmFy eS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2UuYworKysgYi9TZWN1cml0eVBrZy9MaWJyYXJ5 L0F1dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZS5jCkBAIC0yOSwxMiArMjksMTI1IEBAIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50CiAjaW5jbHVkZSA8UHJvdG9j b2wvVmFyaWFibGVQb2xpY3kuaD4NCiAjaW5jbHVkZSA8TGlicmFyeS9WYXJpYWJsZVBvbGljeUxp Yi5oPg0KIA0KKyNkZWZpbmUgU0hBX0RJR0VTVF9TSVpFX01BWCBTSEE1MTJfRElHRVNUX1NJWkUN CisNCisvKioNCisgIFJldHJpZXZlcyB0aGUgc2l6ZSwgaW4gYnl0ZXMsIG9mIHRoZSBjb250ZXh0 IGJ1ZmZlciByZXF1aXJlZCBmb3IgaGFzaCBvcGVyYXRpb25zLg0KKw0KKyAgSWYgdGhpcyBpbnRl cmZhY2UgaXMgbm90IHN1cHBvcnRlZCwgdGhlbiByZXR1cm4gemVyby4NCisNCisgIEByZXR1cm4g IFRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGNvbnRleHQgYnVmZmVyIHJlcXVpcmVkIGZvciBo YXNoIG9wZXJhdGlvbnMuDQorICBAcmV0dmFsICAwICAgVGhpcyBpbnRlcmZhY2UgaXMgbm90IHN1 cHBvcnRlZC4NCisNCisqKi8NCit0eXBlZGVmDQorVUlOVE4NCisoRUZJQVBJICpFRklfSEFTSF9H RVRfQ09OVEVYVF9TSVpFKSgNCisgIFZPSUQNCisgICk7DQorDQorLyoqDQorICBJbml0aWFsaXpl cyB1c2VyLXN1cHBsaWVkIG1lbW9yeSBwb2ludGVkIGJ5IFNoYTFDb250ZXh0IGFzIGhhc2ggY29u dGV4dCBmb3INCisgIHN1YnNlcXVlbnQgdXNlLg0KKw0KKyAgSWYgSGFzaENvbnRleHQgaXMgTlVM TCwgdGhlbiByZXR1cm4gRkFMU0UuDQorICBJZiB0aGlzIGludGVyZmFjZSBpcyBub3Qgc3VwcG9y dGVkLCB0aGVuIHJldHVybiBGQUxTRS4NCisNCisgIEBwYXJhbVtvdXRdICBIYXNoQ29udGV4dCAg UG9pbnRlciB0byBIYXNoY29udGV4dCBiZWluZyBpbml0aWFsaXplZC4NCisNCisgIEByZXR2YWwg VFJVRSAgIEhhc2ggY29udGV4dCBpbml0aWFsaXphdGlvbiBzdWNjZWVkZWQuDQorICBAcmV0dmFs IEZBTFNFICBIYXNoIGNvbnRleHQgaW5pdGlhbGl6YXRpb24gZmFpbGVkLg0KKyAgQHJldHZhbCBG QUxTRSAgVGhpcyBpbnRlcmZhY2UgaXMgbm90IHN1cHBvcnRlZC4NCisNCisqKi8NCit0eXBlZGVm DQorQk9PTEVBTg0KKyhFRklBUEkgKkVGSV9IQVNIX0lOSVQpKA0KKyAgT1VUICBWT0lEICAqSGFz aENvbnRleHQNCisgICk7DQorDQorLyoqDQorICBEaWdlc3RzIHRoZSBpbnB1dCBkYXRhIGFuZCB1 cGRhdGVzIEhhc2ggY29udGV4dC4NCisNCisgIFRoaXMgZnVuY3Rpb24gcGVyZm9ybXMgSGFzaCBk aWdlc3Qgb24gYSBkYXRhIGJ1ZmZlciBvZiB0aGUgc3BlY2lmaWVkIHNpemUuDQorICBJdCBjYW4g YmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHRvIGNvbXB1dGUgdGhlIGRpZ2VzdCBvZiBsb25nIG9y IGRpc2NvbnRpbnVvdXMgZGF0YSBzdHJlYW1zLg0KKyAgSGFzaCBjb250ZXh0IHNob3VsZCBiZSBh bHJlYWR5IGNvcnJlY3RseSBpbml0aWFsaXplZCBieSBIYXNoSW5pdCgpLCBhbmQgc2hvdWxkIG5v dCBiZSBmaW5hbGl6ZWQNCisgIGJ5IEhhc2hGaW5hbCgpLiBCZWhhdmlvciB3aXRoIGludmFsaWQg Y29udGV4dCBpcyB1bmRlZmluZWQuDQorDQorICBJZiBIYXNoQ29udGV4dCBpcyBOVUxMLCB0aGVu IHJldHVybiBGQUxTRS4NCisgIElmIHRoaXMgaW50ZXJmYWNlIGlzIG5vdCBzdXBwb3J0ZWQsIHRo ZW4gcmV0dXJuIEZBTFNFLg0KKw0KKyAgQHBhcmFtW2luLCBvdXRdICBIYXNoQ29udGV4dCAgUG9p bnRlciB0byB0aGUgSGFzaCBjb250ZXh0Lg0KKyAgQHBhcmFtW2luXSAgICAgICBEYXRhICAgICAg ICAgUG9pbnRlciB0byB0aGUgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gYmUgaGFzaGVk Lg0KKyAgQHBhcmFtW2luXSAgICAgICBEYXRhU2l6ZSAgICAgU2l6ZSBvZiBEYXRhIGJ1ZmZlciBp biBieXRlcy4NCisNCisgIEByZXR2YWwgVFJVRSAgIFNIQS0xIGRhdGEgZGlnZXN0IHN1Y2NlZWRl ZC4NCisgIEByZXR2YWwgRkFMU0UgIFNIQS0xIGRhdGEgZGlnZXN0IGZhaWxlZC4NCisgIEByZXR2 YWwgRkFMU0UgIFRoaXMgaW50ZXJmYWNlIGlzIG5vdCBzdXBwb3J0ZWQuDQorDQorKiovDQordHlw ZWRlZg0KK0JPT0xFQU4NCisoRUZJQVBJICpFRklfSEFTSF9VUERBVEUpKA0KKyAgSU4gT1VUICBW T0lEICAgICAgICAqSGFzaENvbnRleHQsDQorICBJTiAgICAgIENPTlNUIFZPSUQgICpEYXRhLA0K KyAgSU4gICAgICBVSU5UTiAgICAgICBEYXRhU2l6ZQ0KKyAgKTsNCisNCisvKioNCisgIENvbXBs ZXRlcyBjb21wdXRhdGlvbiBvZiB0aGUgSGFzaCBkaWdlc3QgdmFsdWUuDQorDQorICBUaGlzIGZ1 bmN0aW9uIGNvbXBsZXRlcyBoYXNoIGNvbXB1dGF0aW9uIGFuZCByZXRyaWV2ZXMgdGhlIGRpZ2Vz dCB2YWx1ZSBpbnRvDQorICB0aGUgc3BlY2lmaWVkIG1lbW9yeS4gQWZ0ZXIgdGhpcyBmdW5jdGlv biBoYXMgYmVlbiBjYWxsZWQsIHRoZSBIYXNoIGNvbnRleHQgY2Fubm90DQorICBiZSB1c2VkIGFn YWluLg0KKyAgSGFzaCBjb250ZXh0IHNob3VsZCBiZSBhbHJlYWR5IGNvcnJlY3RseSBpbml0aWFs aXplZCBieSBIYXNoSW5pdCgpLCBhbmQgc2hvdWxkIG5vdCBiZQ0KKyAgZmluYWxpemVkIGJ5IEhh c2hGaW5hbCgpLiBCZWhhdmlvciB3aXRoIGludmFsaWQgSGFzaCBjb250ZXh0IGlzIHVuZGVmaW5l ZC4NCisNCisgIElmIEhhc2hDb250ZXh0IGlzIE5VTEwsIHRoZW4gcmV0dXJuIEZBTFNFLg0KKyAg SWYgSGFzaFZhbHVlIGlzIE5VTEwsIHRoZW4gcmV0dXJuIEZBTFNFLg0KKyAgSWYgdGhpcyBpbnRl cmZhY2UgaXMgbm90IHN1cHBvcnRlZCwgdGhlbiByZXR1cm4gRkFMU0UuDQorDQorICBAcGFyYW1b aW4sIG91dF0gIEhhc2hDb250ZXh0ICBQb2ludGVyIHRvIHRoZSBIYXNoIGNvbnRleHQuDQorICBA cGFyYW1bb3V0XSAgICAgIEhhc2hWYWx1ZSAgICBQb2ludGVyIHRvIGEgYnVmZmVyIHRoYXQgcmVj ZWl2ZXMgdGhlIEhhc2ggZGlnZXN0DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWx1ZS4NCisNCisgIEByZXR2YWwgVFJVRSAgIEhhc2ggZGlnZXN0IGNvbXB1dGF0aW9uIHN1Y2Nl ZWRlZC4NCisgIEByZXR2YWwgRkFMU0UgIEhhc2ggZGlnZXN0IGNvbXB1dGF0aW9uIGZhaWxlZC4N CisgIEByZXR2YWwgRkFMU0UgIFRoaXMgaW50ZXJmYWNlIGlzIG5vdCBzdXBwb3J0ZWQuDQorDQor KiovDQordHlwZWRlZg0KK0JPT0xFQU4NCisoRUZJQVBJICpFRklfSEFTSF9GSU5BTCkoDQorICBJ TiBPVVQgIFZPSUQgICAqSGFzaENvbnRleHQsDQorICBPVVQgICAgIFVJTlQ4ICAqSGFzaFZhbHVl DQorICApOw0KKw0KK3R5cGVkZWYgc3RydWN0IHsNCisgIFVJTlQzMiAgICAgICAgICAgICAgICAg ICAgICAgSGFzaFNpemU7DQorICBFRklfSEFTSF9HRVRfQ09OVEVYVF9TSVpFICAgIEdldENvbnRl eHRTaXplOw0KKyAgRUZJX0hBU0hfSU5JVCAgICAgICAgICAgICAgICBJbml0Ow0KKyAgRUZJX0hB U0hfVVBEQVRFICAgICAgICAgICAgICBVcGRhdGU7DQorICBFRklfSEFTSF9GSU5BTCAgICAgICAg ICAgICAgIEZpbmFsOw0KKyAgVk9JRCAgICAgICAgICAgICAgICAgICAgICAgICAqKkhhc2hTaGFD dHg7DQorICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICpPaWRWYWx1ZTsNCisgIFVJTlRO ICAgICAgICAgICAgICAgICAgICAgICAgT2lkTGVuZ3RoOw0KK30gRUZJX0hBU0hfSU5GTzsNCisN CiAvLw0KIC8vIFB1YmxpYyBFeHBvbmVudCBvZiBSU0EgS2V5Lg0KIC8vDQogQ09OU1QgVUlOVDgg IG1Sc2FFW10gPSB7IDB4MDEsIDB4MDAsIDB4MDEgfTsNCiANCi1DT05TVCBVSU5UOCAgbVNoYTI1 Nk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4MDQs IDB4MDIsIDB4MDEgfTsNCitVSU5UOCAgbVNoYTI1Nk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYs IDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4MDQsIDB4MDIsIDB4MDEgfTsNCitVSU5UOCAgbVNo YTM4NE9pZFZhbHVlW10gPSB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4 MDQsIDB4MDIsIDB4MDIgfTsNCitVSU5UOCAgbVNoYTUxMk9pZFZhbHVlW10gPSB7IDB4NjAsIDB4 ODYsIDB4NDgsIDB4MDEsIDB4NjUsIDB4MDMsIDB4MDQsIDB4MDIsIDB4MDMgfTsNCisNCitFRklf SEFTSF9JTkZPICBtSGFzaEluZm9bXSA9IHsNCisgIHtTSEEyNTZfRElHRVNUX1NJWkUsIFNoYTI1 NkdldENvbnRleHRTaXplLCBTaGEyNTZJbml0LCBTaGEyNTZVcGRhdGUsIFNoYTI1NkZpbmFsLCAm bUhhc2hTaGEyNTZDdHgsIG1TaGEyNTZPaWRWYWx1ZSwgOX0sDQorICB7U0hBMzg0X0RJR0VTVF9T SVpFLCBTaGEzODRHZXRDb250ZXh0U2l6ZSwgU2hhMzg0SW5pdCwgU2hhMzg0VXBkYXRlLCBTaGEz ODRGaW5hbCwgJm1IYXNoU2hhMzg0Q3R4LCBtU2hhMzg0T2lkVmFsdWUsIDl9LA0KKyAge1NIQTUx Ml9ESUdFU1RfU0laRSwgU2hhNTEyR2V0Q29udGV4dFNpemUsIFNoYTUxMkluaXQsIFNoYTUxMlVw ZGF0ZSwgU2hhNTEyRmluYWwsICZtSGFzaFNoYTUxMkN0eCwgbVNoYTUxMk9pZFZhbHVlLCA5fSwN Cit9Ow0KIA0KIC8vDQogLy8gUmVxdWlyZW1lbnQgZm9yIGRpZmZlcmVudCBzaWduYXR1cmUgdHlw ZSB3aGljaCBoYXZlIGJlZW4gZGVmaW5lZCBpbiBVRUZJIHNwZWMuDQpAQCAtNDQsNiArMTU3LDgg QEAgRUZJX1NJR05BVFVSRV9JVEVNICBtU3VwcG9ydFNpZ0l0ZW1bXSA9IHsKICAgLy8ge1NpZ1R5 cGUsICAgICAgICAgICAgICAgICAgICAgICBTaWdIZWFkZXJTaXplLCAgIFNpZ0RhdGFTaXplICB9 DQogICB7IEVGSV9DRVJUX1NIQTI1Nl9HVUlELCAgICAgICAgIDAsIDMyICAgICAgICAgICAgfSwN CiAgIHsgRUZJX0NFUlRfUlNBMjA0OF9HVUlELCAgICAgICAgMCwgMjU2ICAgICAgICAgICB9LA0K KyAgeyBFRklfQ0VSVF9SU0EzMDcyX0dVSUQsICAgICAgICAwLCAzODQgICAgICAgICAgIH0sDQor ICB7IEVGSV9DRVJUX1JTQTQwOTZfR1VJRCwgICAgICAgIDAsIDUxMiAgICAgICAgICAgfSwNCiAg IHsgRUZJX0NFUlRfUlNBMjA0OF9TSEEyNTZfR1VJRCwgMCwgMjU2ICAgICAgICAgICB9LA0KICAg eyBFRklfQ0VSVF9TSEExX0dVSUQsICAgICAgICAgICAwLCAyMCAgICAgICAgICAgIH0sDQogICB7 IEVGSV9DRVJUX1JTQTIwNDhfU0hBMV9HVUlELCAgIDAsIDI1NiAgICAgICAgICAgfSwNCkBAIC0x MDkwLDI2ICsxMjA1LDI4IEBAIEF1dGhTZXJ2aWNlSW50ZXJuYWxDb21wYXJlVGltZVN0YW1wICgK IH0NCiANCiAvKioNCi0gIENhbGN1bGF0ZSBTSEEyNTYgZGlnZXN0IG9mIFNpZ25lckNlcnQgQ29t bW9uTmFtZSArIFRvcGxldmVsQ2VydCB0YnNDZXJ0aWZpY2F0ZQ0KKyAgQ2FsY3VsYXRlIFNIQSBk aWdlc3Qgb2YgU2lnbmVyQ2VydCBDb21tb25OYW1lICsgVG9wbGV2ZWxDZXJ0IHRic0NlcnRpZmlj YXRlDQogICBTaWduZXJDZXJ0IGFuZCBUb3BsZXZlbENlcnQgYXJlIGluc2lkZSB0aGUgc2lnbmVy IGNlcnRpZmljYXRlIGNoYWluLg0KIA0KKyAgQHBhcmFtW2luXSAgSGFzaEFsZ0lkICAgICAgICAg ICBIYXNoIGFsZ29yaXRobSBpbmRleA0KICAgQHBhcmFtW2luXSAgU2lnbmVyQ2VydCAgICAgICAg ICBBIHBvaW50ZXIgdG8gU2lnbmVyQ2VydCBkYXRhLg0KICAgQHBhcmFtW2luXSAgU2lnbmVyQ2Vy dFNpemUgICAgICBMZW5ndGggb2YgU2lnbmVyQ2VydCBkYXRhLg0KICAgQHBhcmFtW2luXSAgVG9w TGV2ZWxDZXJ0ICAgICAgICBBIHBvaW50ZXIgdG8gVG9wTGV2ZWxDZXJ0IGRhdGEuDQogICBAcGFy YW1baW5dICBUb3BMZXZlbENlcnRTaXplICAgIExlbmd0aCBvZiBUb3BMZXZlbENlcnQgZGF0YS4N Ci0gIEBwYXJhbVtvdXRdIFNoYTI1NkRpZ2VzdCAgICAgICBTaGEyNTYgZGlnZXN0IGNhbGN1bGF0 ZWQuDQorICBAcGFyYW1bb3V0XSBTaGFEaWdlc3QgICAgICAgICAgIFNoYSBkaWdlc3QgY2FsY3Vs YXRlZC4NCiANCiAgIEByZXR1cm4gRUZJX0FCT1JURUQgICAgICAgICAgRGlnZXN0IHByb2Nlc3Mg ZmFpbGVkLg0KLSAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAgICBTSEEyNTYgRGlnZXN0IGlz IHN1Y2Nlc3NmdWxseSBjYWxjdWxhdGVkLg0KKyAgQHJldHVybiBFRklfU1VDQ0VTUyAgICAgICAg ICBTSEEgRGlnZXN0IGlzIHN1Y2Nlc3NmdWxseSBjYWxjdWxhdGVkLg0KIA0KICoqLw0KIEVGSV9T VEFUVVMNCi1DYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoDQorQ2Fs Y3VsYXRlUHJpdkF1dGhWYXJTaWduQ2hhaW5TSEFEaWdlc3QgKA0KKyAgSU4gICAgIFVJTlQ4ICBI YXNoQWxnSWQsDQogICBJTiAgICAgVUlOVDggICpTaWduZXJDZXJ0LA0KICAgSU4gICAgIFVJTlRO ICBTaWduZXJDZXJ0U2l6ZSwNCiAgIElOICAgICBVSU5UOCAgKlRvcExldmVsQ2VydCwNCiAgIElO ICAgICBVSU5UTiAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCi0gIE9VVCAgICBVSU5UOCAgKlNoYTI1NkRp Z2VzdA0KKyAgT1VUICAgIFVJTlQ4ICAqU2hhRGlnZXN0DQogICApDQogew0KICAgVUlOVDggICAg ICAgKlRic0NlcnQ7DQpAQCAtMTExOSw2ICsxMjM2LDExIEBAIENhbGN1bGF0ZVByaXZBdXRoVmFy U2lnbkNoYWluU0hBMjU2RGlnZXN0ICgKICAgQk9PTEVBTiAgICAgQ3J5cHRvU3RhdHVzOw0KICAg RUZJX1NUQVRVUyAgU3RhdHVzOw0KIA0KKyAgaWYgKEhhc2hBbGdJZCA+PSAoc2l6ZW9mIChtSGFz aEluZm8pIC8gc2l6ZW9mIChFRklfSEFTSF9JTkZPKSkpIHsNCisgICAgREVCVUcgKChERUJVR19J TkZPLCAiJWEgVW5zdXBwb3J0ZWQgSGFzaCBBbGdvcml0aG0gJWRcbiIsIF9fZnVuY19fLCBIYXNo QWxnSWQpKTsNCisgICAgcmV0dXJuIEVGSV9BQk9SVEVEOw0KKyAgfQ0KKw0KICAgQ2VydENvbW1v bk5hbWVTaXplID0gc2l6ZW9mIChDZXJ0Q29tbW9uTmFtZSk7DQogDQogICAvLw0KQEAgLTExNDEs OCArMTI2Myw4IEBAIENhbGN1bGF0ZVByaXZBdXRoVmFyU2lnbkNoYWluU0hBMjU2RGlnZXN0ICgK ICAgLy8NCiAgIC8vIERpZ2VzdCBTaWduZXJDZXJ0IENOICsgVG9wTGV2ZWxDZXJ0IHRic0NlcnRp ZmljYXRlDQogICAvLw0KLSAgWmVyb01lbSAoU2hhMjU2RGlnZXN0LCBTSEEyNTZfRElHRVNUX1NJ WkUpOw0KLSAgQ3J5cHRvU3RhdHVzID0gU2hhMjU2SW5pdCAobUhhc2hDdHgpOw0KKyAgWmVyb01l bSAoU2hhRGlnZXN0LCBtSGFzaEluZm9bSGFzaEFsZ0lkXS5IYXNoU2l6ZSk7DQorICBDcnlwdG9T dGF0dXMgPSBtSGFzaEluZm9bSGFzaEFsZ0lkXS5Jbml0ICgqKG1IYXNoSW5mb1tIYXNoQWxnSWRd Lkhhc2hTaGFDdHgpKTsNCiAgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQogICAgIHJldHVybiBFRklf QUJPUlRFRDsNCiAgIH0NCkBAIC0xMTUwLDggKzEyNzIsOCBAQCBDYWxjdWxhdGVQcml2QXV0aFZh clNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoCiAgIC8vDQogICAvLyAnXDAnIGlzIGZvcmNlZCBpbiBD ZXJ0Q29tbW9uTmFtZS4gTm8gb3ZlcmZsb3cgaXNzdWUNCiAgIC8vDQotICBDcnlwdG9TdGF0dXMg PSBTaGEyNTZVcGRhdGUgKA0KLSAgICAgICAgICAgICAgICAgICBtSGFzaEN0eCwNCisgIENyeXB0 b1N0YXR1cyA9IG1IYXNoSW5mb1tIYXNoQWxnSWRdLlVwZGF0ZSAoDQorICAgICAgICAgICAgICAg ICAgICoobUhhc2hJbmZvW0hhc2hBbGdJZF0uSGFzaFNoYUN0eCksDQogICAgICAgICAgICAgICAg ICAgIENlcnRDb21tb25OYW1lLA0KICAgICAgICAgICAgICAgICAgICBBc2NpaVN0ckxlbiAoQ2Vy dENvbW1vbk5hbWUpDQogICAgICAgICAgICAgICAgICAgICk7DQpAQCAtMTE1OSwxMiArMTI4MSwx MiBAQCBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAoCiAgICAgcmV0 dXJuIEVGSV9BQk9SVEVEOw0KICAgfQ0KIA0KLSAgQ3J5cHRvU3RhdHVzID0gU2hhMjU2VXBkYXRl IChtSGFzaEN0eCwgVGJzQ2VydCwgVGJzQ2VydFNpemUpOw0KKyAgQ3J5cHRvU3RhdHVzID0gbUhh c2hJbmZvW0hhc2hBbGdJZF0uVXBkYXRlICgqKG1IYXNoSW5mb1tIYXNoQWxnSWRdLkhhc2hTaGFD dHgpLCBUYnNDZXJ0LCBUYnNDZXJ0U2l6ZSk7DQogICBpZiAoIUNyeXB0b1N0YXR1cykgew0KICAg ICByZXR1cm4gRUZJX0FCT1JURUQ7DQogICB9DQogDQotICBDcnlwdG9TdGF0dXMgPSBTaGEyNTZG aW5hbCAobUhhc2hDdHgsIFNoYTI1NkRpZ2VzdCk7DQorICBDcnlwdG9TdGF0dXMgPSBtSGFzaElu Zm9bSGFzaEFsZ0lkXS5GaW5hbCAoKihtSGFzaEluZm9bSGFzaEFsZ0lkXS5IYXNoU2hhQ3R4KSwg U2hhRGlnZXN0KTsNCiAgIGlmICghQ3J5cHRvU3RhdHVzKSB7DQogICAgIHJldHVybiBFRklfQUJP UlRFRDsNCiAgIH0NCkBAIC0xNTE2LDkgKzE2MzgsMTAgQEAgRGVsZXRlQ2VydHNGcm9tRGIgKAog LyoqDQogICBJbnNlcnQgc2lnbmVyJ3MgY2VydGlmaWNhdGVzIGZvciBjb21tb24gYXV0aGVudGlj YXRlZCB2YXJpYWJsZSB3aXRoIFZhcmlhYmxlTmFtZQ0KICAgYW5kIFZlbmRvckd1aWQgaW4gQVVU SF9DRVJUX0RCX0RBVEEgdG8gImNlcnRkYiIgb3IgImNlcnRkYnYiIGFjY29yZGluZyB0bw0KLSAg dGltZSBiYXNlZCBhdXRoZW50aWNhdGVkIHZhcmlhYmxlIGF0dHJpYnV0ZXMuIENlcnREYXRhIGlz IHRoZSBTSEEyNTYgZGlnZXN0IG9mDQorICB0aW1lIGJhc2VkIGF1dGhlbnRpY2F0ZWQgdmFyaWFi bGUgYXR0cmlidXRlcy4gQ2VydERhdGEgaXMgdGhlIFNIQSBkaWdlc3Qgb2YNCiAgIFNpZ25lckNl cnQgQ29tbW9uTmFtZSArIFRvcExldmVsQ2VydCB0YnNDZXJ0aWZpY2F0ZS4NCiANCisgIEBwYXJh bVtpbl0gIEhhc2hBbGdJZCAgICAgICAgIEhhc2ggYWxnb3JpdGhtIGluZGV4Lg0KICAgQHBhcmFt W2luXSAgVmFyaWFibGVOYW1lICAgICAgTmFtZSBvZiBhdXRoZW50aWNhdGVkIFZhcmlhYmxlLg0K ICAgQHBhcmFtW2luXSAgVmVuZG9yR3VpZCAgICAgICAgVmVuZG9yIEdVSUQgb2YgYXV0aGVudGlj YXRlZCBWYXJpYWJsZS4NCiAgIEBwYXJhbVtpbl0gIEF0dHJpYnV0ZXMgICAgICAgIEF0dHJpYnV0 ZXMgb2YgYXV0aGVudGljYXRlZCB2YXJpYWJsZS4NCkBAIC0xNTM2LDYgKzE2NTksNyBAQCBEZWxl dGVDZXJ0c0Zyb21EYiAoCiAqKi8NCiBFRklfU1RBVFVTDQogSW5zZXJ0Q2VydHNUb0RiICgNCisg IElOICAgICBVSU5UOCAgICAgSGFzaEFsZ0lkLA0KICAgSU4gICAgIENIQVIxNiAgICAqVmFyaWFi bGVOYW1lLA0KICAgSU4gICAgIEVGSV9HVUlEICAqVmVuZG9yR3VpZCwNCiAgIElOICAgICBVSU5U MzIgICAgQXR0cmlidXRlcywNCkBAIC0xNTU2LDEyICsxNjgwLDE2IEBAIEluc2VydENlcnRzVG9E YiAoCiAgIFVJTlQzMiAgICAgICAgICAgICBDZXJ0RGF0YVNpemU7DQogICBBVVRIX0NFUlRfREJf REFUQSAgKlB0cjsNCiAgIENIQVIxNiAgICAgICAgICAgICAqRGJOYW1lOw0KLSAgVUlOVDggICAg ICAgICAgICAgIFNoYTI1NkRpZ2VzdFtTSEEyNTZfRElHRVNUX1NJWkVdOw0KKyAgVUlOVDggICAg ICAgICAgICAgIFNoYURpZ2VzdFtTSEFfRElHRVNUX1NJWkVfTUFYXTsNCiANCiAgIGlmICgoVmFy aWFibGVOYW1lID09IE5VTEwpIHx8IChWZW5kb3JHdWlkID09IE5VTEwpIHx8IChTaWduZXJDZXJ0 ID09IE5VTEwpIHx8IChUb3BMZXZlbENlcnQgPT0gTlVMTCkpIHsNCiAgICAgcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUjsNCiAgIH0NCiANCisgIGlmIChIYXNoQWxnSWQgPj0gKHNpemVvZiAo bUhhc2hJbmZvKSAvIHNpemVvZiAoRUZJX0hBU0hfSU5GTykpKSB7DQorICAgIHJldHVybiBFRklf SU5WQUxJRF9QQVJBTUVURVI7DQorICB9DQorDQogICBpZiAoKEF0dHJpYnV0ZXMgJiBFRklfVkFS SUFCTEVfTk9OX1ZPTEFUSUxFKSAhPSAwKSB7DQogICAgIC8vDQogICAgIC8vIEdldCB2YXJpYWJs ZSAiY2VydGRiIi4NCkBAIC0xNjE4LDIwICsxNzQ2LDIyIEBAIEluc2VydENlcnRzVG9EYiAoCiAg IC8vIENvbnN0cnVjdCBuZXcgZGF0YSBjb250ZW50IG9mIHZhcmlhYmxlICJjZXJ0ZGIiIG9yICJj ZXJ0ZGJ2Ii4NCiAgIC8vDQogICBOYW1lU2l6ZSAgICAgID0gKFVJTlQzMilTdHJMZW4gKFZhcmlh YmxlTmFtZSk7DQotICBDZXJ0RGF0YVNpemUgID0gc2l6ZW9mIChTaGEyNTZEaWdlc3QpOw0KKyAg Q2VydERhdGFTaXplICA9IG1IYXNoSW5mb1tIYXNoQWxnSWRdLkhhc2hTaXplOw0KICAgQ2VydE5v ZGVTaXplICA9IHNpemVvZiAoQVVUSF9DRVJUX0RCX0RBVEEpICsgKFVJTlQzMilDZXJ0RGF0YVNp emUgKyBOYW1lU2l6ZSAqIHNpemVvZiAoQ0hBUjE2KTsNCiAgIE5ld0NlcnREYlNpemUgPSAoVUlO VDMyKURhdGFTaXplICsgQ2VydE5vZGVTaXplOw0KICAgaWYgKE5ld0NlcnREYlNpemUgPiBtTWF4 Q2VydERiU2l6ZSkgew0KICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9DQog DQotICBTdGF0dXMgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQTI1NkRpZ2VzdCAo DQorICBTdGF0dXMgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFpblNIQURpZ2VzdCAoDQor ICAgICAgICAgICAgIEhhc2hBbGdJZCwNCiAgICAgICAgICAgICAgU2lnbmVyQ2VydCwNCiAgICAg ICAgICAgICAgU2lnbmVyQ2VydFNpemUsDQogICAgICAgICAgICAgIFRvcExldmVsQ2VydCwNCiAg ICAgICAgICAgICAgVG9wTGV2ZWxDZXJ0U2l6ZSwNCi0gICAgICAgICAgICAgU2hhMjU2RGlnZXN0 DQorICAgICAgICAgICAgIFNoYURpZ2VzdA0KICAgICAgICAgICAgICApOw0KKw0KICAgaWYgKEVG SV9FUlJPUiAoU3RhdHVzKSkgew0KICAgICByZXR1cm4gU3RhdHVzOw0KICAgfQ0KQEAgLTE2NjMs NyArMTc5Myw3IEBAIEluc2VydENlcnRzVG9EYiAoCiANCiAgIENvcHlNZW0gKA0KICAgICAoVUlO VDggKilQdHIgKyAgc2l6ZW9mIChBVVRIX0NFUlRfREJfREFUQSkgKyBOYW1lU2l6ZSAqIHNpemVv ZiAoQ0hBUjE2KSwNCi0gICAgU2hhMjU2RGlnZXN0LA0KKyAgICBTaGFEaWdlc3QsDQogICAgIENl cnREYXRhU2l6ZQ0KICAgICApOw0KIA0KQEAgLTE3OTAsNiArMTkyMCwzNiBAQCBDbGVhbkNlcnRz RnJvbURiICgKICAgcmV0dXJuIFN0YXR1czsNCiB9DQogDQorLyoqDQorICBGaW5kIGhhc2ggYWxn b3JpdGhtIGluZGV4DQorDQorICBAcGFyYW1baW5dICBTaWdEYXRhICAgICAgUG9pbnRlciB0byB0 aGUgUEtDUyM3IG1lc3NhZ2UNCisgIEBwYXJhbVtpbl0gIFNpZ0RhdGFTaXplICBMZW5ndGggb2Yg dGhlIFBLQ1MjNyBtZXNzYWdlDQorDQorICBAcmV0dmFsIFVJTlQ4ICAgICAgICBIYXNoIEFsZ29y aXRobSBJbmRleA0KKyoqLw0KK1VJTlQ4DQorRmluZEhhc2hBbGdvcml0aG1JbmRleCAoDQorICBJ TiAgICAgVUlOVDggICAgICAgICAqU2lnRGF0YSwNCisgIElOICAgICBVSU5UMzIgICAgICAgIFNp Z0RhdGFTaXplDQorKQ0KK3sNCisgIFVJTlQ4IGk7DQorDQorICBmb3IgKGkgPSAwOyBpIDwgKHNp emVvZiAobUhhc2hJbmZvKSAvIHNpemVvZiAoRUZJX0hBU0hfSU5GTykpOyBpKyspIHsNCisgICAg aWYgKCAgKCAgKFNpZ0RhdGFTaXplID49ICgxMyArIG1IYXNoSW5mb1tpXS5PaWRMZW5ndGgpKQ0K KyAgICAgICAgICAmJiAoICAoKCooU2lnRGF0YSArIDEpICYgVFdPX0JZVEVfRU5DT0RFKSA9PSBU V09fQllURV9FTkNPREUpDQorICAgICAgICAgICAgJiYgKENvbXBhcmVNZW0gKFNpZ0RhdGEgKyAx MywgbUhhc2hJbmZvW2ldLk9pZFZhbHVlLCBtSGFzaEluZm9baV0uT2lkTGVuZ3RoKSA9PSAwKSkp DQorICAgICAgfHwgKCggIChTaWdEYXRhU2l6ZSA+PSAoMzIgKyAgbUhhc2hJbmZvW2ldLk9pZExl bmd0aCkpKQ0KKyAgICAgICAgJiYgKCAgKCgqKFNpZ0RhdGEgKyAyMCkgJiBUV09fQllURV9FTkNP REUpID09IFRXT19CWVRFX0VOQ09ERSkNCisgICAgICAgICAgJiYgKENvbXBhcmVNZW0gKFNpZ0Rh dGEgKyAzMiwgbUhhc2hJbmZvW2ldLk9pZFZhbHVlLCBtSGFzaEluZm9baV0uT2lkTGVuZ3RoKSA9 PSAwKSkpKQ0KKyAgICB7DQorICAgICAgYnJlYWs7DQorICAgIH0NCisgIH0NCisgIHJldHVybiBp Ow0KK30NCisNCiAvKioNCiAgIFByb2Nlc3MgdmFyaWFibGUgd2l0aCBFRklfVkFSSUFCTEVfVElN RV9CQVNFRF9BVVRIRU5USUNBVEVEX1dSSVRFX0FDQ0VTUyBzZXQNCiANCkBAIC0xODU3LDggKzIw MTcsOSBAQCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgKICAgVUlOVE4gICAgICAgICAgICAgICAg ICAgICAgICAgIENlcnRTdGFja1NpemU7DQogICBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAg ICAgKkNlcnRzSW5DZXJ0RGI7DQogICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICAgICAgQ2Vy dHNTaXplaW5EYjsNCi0gIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICBTaGEyNTZEaWdl c3RbU0hBMjU2X0RJR0VTVF9TSVpFXTsNCisgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAg ICBTaGFEaWdlc3RbU0hBX0RJR0VTVF9TSVpFX01BWF07DQogICBFRklfQ0VSVF9EQVRBICAgICAg ICAgICAgICAgICAgKkNlcnREYXRhUHRyOw0KKyAgVUlOVDggICAgICAgICAgICAgICAgICAgICAg ICAgIEhhc2hBbGdJZDsNCiANCiAgIC8vDQogICAvLyAxLiBUb3BMZXZlbENlcnQgaXMgdGhlIHRv cC1sZXZlbCBpc3N1ZXIgY2VydGlmaWNhdGUgaW4gc2lnbmF0dXJlIFNpZ25lciBDZXJ0IENoYWlu DQpAQCAtMTkyOCw3ICsyMDg5LDcgQEAgVmVyaWZ5VGltZUJhc2VkUGF5bG9hZCAoCiANCiAgIC8v DQogICAvLyBTaWduZWREYXRhLmRpZ2VzdEFsZ29yaXRobXMgc2hhbGwgY29udGFpbiB0aGUgZGln ZXN0IGFsZ29yaXRobSB1c2VkIHdoZW4gcHJlcGFyaW5nIHRoZQ0KLSAgLy8gc2lnbmF0dXJlLiBP bmx5IGEgZGlnZXN0IGFsZ29yaXRobSBvZiBTSEEtMjU2IGlzIGFjY2VwdGVkLg0KKyAgLy8gc2ln bmF0dXJlLiBPbmx5IGEgZGlnZXN0IGFsZ29yaXRobSBvZiBTSEEtMjU2LCBTSEEtMzg0IG9yIFNI QS01MTIgaXMgYWNjZXB0ZWQuDQogICAvLw0KICAgLy8gICAgQWNjb3JkaW5nIHRvIFBLQ1MjNyBE ZWZpbml0aW9uIChodHRwczovL3d3dy5yZmMtZWRpdG9yLm9yZy9yZmMvcmZjMjMxNSk6DQogICAv LyAgICAgICAgU2lnbmVkRGF0YSA6Oj0gU0VRVUVOQ0Ugew0KQEAgLTE5NzIsMTQgKzIxMzMsOSBA QCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgKICAgLy8NCiAgIC8vIEV4YW1wbGUgZ2VuZXJhdGVk IHdpdGg6IGh0dHBzOi8vd2lraS5hcmNobGludXgub3JnL3RpdGxlL1VuaWZpZWRfRXh0ZW5zaWJs ZV9GaXJtd2FyZV9JbnRlcmZhY2UvU2VjdXJlX0Jvb3QjTWFudWFsX3Byb2Nlc3MNCiAgIC8vDQor ICBIYXNoQWxnSWQgPSBGaW5kSGFzaEFsZ29yaXRobUluZGV4IChTaWdEYXRhLCBTaWdEYXRhU2l6 ZSk7DQogICBpZiAoKEF0dHJpYnV0ZXMgJiBFRklfVkFSSUFCTEVfVElNRV9CQVNFRF9BVVRIRU5U SUNBVEVEX1dSSVRFX0FDQ0VTUykgIT0gMCkgew0KLSAgICBpZiAoICAoICAoU2lnRGF0YVNpemUg Pj0gKDEzICsgc2l6ZW9mIChtU2hhMjU2T2lkVmFsdWUpKSkNCi0gICAgICAgICAgJiYgKCAgKCgq KFNpZ0RhdGEgKyAxKSAmIFRXT19CWVRFX0VOQ09ERSkgIT0gVFdPX0JZVEVfRU5DT0RFKQ0KLSAg ICAgICAgICAgICB8fCAoQ29tcGFyZU1lbSAoU2lnRGF0YSArIDEzLCAmbVNoYTI1Nk9pZFZhbHVl LCBzaXplb2YgKG1TaGEyNTZPaWRWYWx1ZSkpICE9IDApKSkNCi0gICAgICAgJiYgKCAgKFNpZ0Rh dGFTaXplID49ICgzMiArIHNpemVvZiAobVNoYTI1Nk9pZFZhbHVlKSkpDQotICAgICAgICAgICYm ICggICgoKihTaWdEYXRhICsgMjApICYgVFdPX0JZVEVfRU5DT0RFKSAhPSBUV09fQllURV9FTkNP REUpDQotICAgICAgICAgICAgIHx8IChDb21wYXJlTWVtIChTaWdEYXRhICsgMzIsICZtU2hhMjU2 T2lkVmFsdWUsIHNpemVvZiAobVNoYTI1Nk9pZFZhbHVlKSkgIT0gMCkpKSkNCi0gICAgew0KKyAg ICBpZiAoSGFzaEFsZ0lkID49IChzaXplb2YgKG1IYXNoSW5mbykgLyBzaXplb2YgKEVGSV9IQVNI X0lORk8pKSkgew0KICAgICAgIHJldHVybiBFRklfU0VDVVJJVFlfVklPTEFUSU9OOw0KICAgICB9 DQogICB9DQpAQCAtMjE3MCwxOSArMjMyNiwyMCBAQCBWZXJpZnlUaW1lQmFzZWRQYXlsb2FkICgK ICAgICAgICAgZ290byBFeGl0Ow0KICAgICAgIH0NCiANCi0gICAgICBpZiAoQ2VydHNTaXplaW5E YiA9PSBTSEEyNTZfRElHRVNUX1NJWkUpIHsNCisgICAgICBpZiAoKEhhc2hBbGdJZCA8IChzaXpl b2YgKG1IYXNoSW5mbykgLyBzaXplb2YgKEVGSV9IQVNIX0lORk8pKSkgJiYgKENlcnRzU2l6ZWlu RGIgPT0gbUhhc2hJbmZvW0hhc2hBbGdJZF0uSGFzaFNpemUpKSB7DQogICAgICAgICAvLw0KICAg ICAgICAgLy8gQ2hlY2sgaGFzaCBvZiBzaWduZXIgY2VydCBDb21tb25OYW1lICsgVG9wLWxldmVs IGlzc3VlciB0YnNDZXJ0aWZpY2F0ZSBhZ2FpbnN0IGRhdGEgaW4gQ2VydERiDQogICAgICAgICAv Lw0KICAgICAgICAgQ2VydERhdGFQdHIgPSAoRUZJX0NFUlRfREFUQSAqKShTaWduZXJDZXJ0cyAr IDEpOw0KLSAgICAgICAgU3RhdHVzICAgICAgPSBDYWxjdWxhdGVQcml2QXV0aFZhclNpZ25DaGFp blNIQTI1NkRpZ2VzdCAoDQorICAgICAgICBTdGF0dXMgICAgICA9IENhbGN1bGF0ZVByaXZBdXRo VmFyU2lnbkNoYWluU0hBRGlnZXN0ICgNCisgICAgICAgICAgICAgICAgICAgICAgICBIYXNoQWxn SWQsDQogICAgICAgICAgICAgICAgICAgICAgICAgQ2VydERhdGFQdHItPkNlcnREYXRhQnVmZmVy LA0KICAgICAgICAgICAgICAgICAgICAgICAgIFJlYWRVbmFsaWduZWQzMiAoKFVJTlQzMiAqKSYo Q2VydERhdGFQdHItPkNlcnREYXRhTGVuZ3RoKSksDQogICAgICAgICAgICAgICAgICAgICAgICAg VG9wTGV2ZWxDZXJ0LA0KICAgICAgICAgICAgICAgICAgICAgICAgIFRvcExldmVsQ2VydFNpemUs DQotICAgICAgICAgICAgICAgICAgICAgICAgU2hhMjU2RGlnZXN0DQorICAgICAgICAgICAgICAg ICAgICAgICAgU2hhRGlnZXN0DQogICAgICAgICAgICAgICAgICAgICAgICAgKTsNCi0gICAgICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgKENvbXBhcmVNZW0gKFNoYTI1NkRpZ2VzdCwgQ2Vy dHNJbkNlcnREYiwgQ2VydHNTaXplaW5EYikgIT0gMCkpIHsNCisgICAgICAgIGlmIChFRklfRVJS T1IgKFN0YXR1cykgfHwgKENvbXBhcmVNZW0gKFNoYURpZ2VzdCwgQ2VydHNJbkNlcnREYiwgQ2Vy dHNTaXplaW5EYikgIT0gMCkpIHsNCiAgICAgICAgICAgZ290byBFeGl0Ow0KICAgICAgICAgfQ0K ICAgICAgIH0gZWxzZSB7DQpAQCAtMjIxNSw2ICsyMzcyLDcgQEAgVmVyaWZ5VGltZUJhc2VkUGF5 bG9hZCAoCiAgICAgICAvLw0KICAgICAgIENlcnREYXRhUHRyID0gKEVGSV9DRVJUX0RBVEEgKiko U2lnbmVyQ2VydHMgKyAxKTsNCiAgICAgICBTdGF0dXMgICAgICA9IEluc2VydENlcnRzVG9EYiAo DQorICAgICAgICAgICAgICAgICAgICAgIEhhc2hBbGdJZCwNCiAgICAgICAgICAgICAgICAgICAg ICAgVmFyaWFibGVOYW1lLA0KICAgICAgICAgICAgICAgICAgICAgICBWZW5kb3JHdWlkLA0KICAg ICAgICAgICAgICAgICAgICAgICBBdHRyaWJ1dGVzLA0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtn L0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlSW50ZXJuYWwuaCBiL1NlY3VyaXR5 UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhTZXJ2aWNlSW50ZXJuYWwuaAppbmRleCBi MjAyZTYxM2JjLi5mN2JmNzcxZDU1IDEwMDY0NAotLS0gYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0F1 dGhWYXJpYWJsZUxpYi9BdXRoU2VydmljZUludGVybmFsLmgKKysrIGIvU2VjdXJpdHlQa2cvTGli cmFyeS9BdXRoVmFyaWFibGVMaWIvQXV0aFNlcnZpY2VJbnRlcm5hbC5oCkBAIC05Miw3ICs5Miw5 IEBAIGV4dGVybiBVSU5UMzIgIG1NYXhDZXJ0RGJTaXplOwogZXh0ZXJuIFVJTlQzMiAgbVBsYXRm b3JtTW9kZTsNCiBleHRlcm4gVUlOVDggICBtVmVuZG9yS2V5U3RhdGU7DQogDQotZXh0ZXJuIFZP SUQgICptSGFzaEN0eDsNCitleHRlcm4gVk9JRCAgKm1IYXNoU2hhMjU2Q3R4Ow0KK2V4dGVybiBW T0lEICAqbUhhc2hTaGEzODRDdHg7DQorZXh0ZXJuIFZPSUQgICptSGFzaFNoYTUxMkN0eDsNCiAN CiBleHRlcm4gQVVUSF9WQVJfTElCX0NPTlRFWFRfSU4gICptQXV0aFZhckxpYkNvbnRleHRJbjsN CiANCmRpZmYgLS1naXQgYS9TZWN1cml0eVBrZy9MaWJyYXJ5L0F1dGhWYXJpYWJsZUxpYi9BdXRo VmFyaWFibGVMaWIuYyBiL1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhW YXJpYWJsZUxpYi5jCmluZGV4IGRjNjFhZTg0MGMuLjE5ZTAwMDQ2OTkgMTAwNjQ0Ci0tLSBhL1Nl Y3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhWYXJpYWJsZUxpYi5jCisrKyBi L1NlY3VyaXR5UGtnL0xpYnJhcnkvQXV0aFZhcmlhYmxlTGliL0F1dGhWYXJpYWJsZUxpYi5jCkBA IC0yNiwxMiArMjYsMTQgQEAgVUlOVDMyICBtTWF4Q2VydERiU2l6ZTsKIFVJTlQzMiAgbVBsYXRm b3JtTW9kZTsNCiBVSU5UOCAgIG1WZW5kb3JLZXlTdGF0ZTsNCiANCi1FRklfR1VJRCAgbVNpZ25h dHVyZVN1cHBvcnRbXSA9IHsgRUZJX0NFUlRfU0hBMV9HVUlELCBFRklfQ0VSVF9TSEEyNTZfR1VJ RCwgRUZJX0NFUlRfUlNBMjA0OF9HVUlELCBFRklfQ0VSVF9YNTA5X0dVSUQgfTsNCitFRklfR1VJ RCAgbVNpZ25hdHVyZVN1cHBvcnRbXSA9IHsgRUZJX0NFUlRfU0hBMV9HVUlELCBFRklfQ0VSVF9T SEEyNTZfR1VJRCwgRUZJX0NFUlRfU0hBMzg0X0dVSUQsIEVGSV9DRVJUX1NIQTUxMl9HVUlELCBF RklfQ0VSVF9SU0EyMDQ4X0dVSUQsIEVGSV9DRVJUX1JTQTMwNzJfR1VJRCwgRUZJX0NFUlRfUlNB NDA5Nl9HVUlELCBFRklfQ0VSVF9YNTA5X0dVSUQgfTsNCiANCiAvLw0KIC8vIEhhc2ggY29udGV4 dCBwb2ludGVyDQogLy8NCi1WT0lEICAqbUhhc2hDdHggPSBOVUxMOw0KK1ZPSUQgICptSGFzaFNo YTI1NkN0eCA9IE5VTEw7DQorVk9JRCAgKm1IYXNoU2hhMzg0Q3R4ID0gTlVMTDsNCitWT0lEICAq bUhhc2hTaGE1MTJDdHggPSBOVUxMOw0KIA0KIFZBUklBQkxFX0VOVFJZX1BST1BFUlRZICBtQXV0 aFZhckVudHJ5W10gPSB7DQogICB7DQpAQCAtOTEsNyArOTMsNyBAQCBWQVJJQUJMRV9FTlRSWV9Q Uk9QRVJUWSAgbUF1dGhWYXJFbnRyeVtdID0gewogICB9LA0KIH07DQogDQotVk9JRCAgKiptQXV0 aFZhckFkZHJlc3NQb2ludGVyWzldOw0KK1ZPSUQgICoqbUF1dGhWYXJBZGRyZXNzUG9pbnRlclsx MV07DQogDQogQVVUSF9WQVJfTElCX0NPTlRFWFRfSU4gICptQXV0aFZhckxpYkNvbnRleHRJbiA9 IE5VTEw7DQogDQpAQCAtMTIwLDcgKzEyMiw2IEBAIEF1dGhWYXJpYWJsZUxpYkluaXRpYWxpemUg KAogICBVSU5UMzIgICAgICBWYXJBdHRyOw0KICAgVUlOVDggICAgICAgKkRhdGE7DQogICBVSU5U TiAgICAgICBEYXRhU2l6ZTsNCi0gIFVJTlROICAgICAgIEN0eFNpemU7DQogICBVSU5UOCAgICAg ICBTZWN1cmVCb290TW9kZTsNCiAgIFVJTlQ4ICAgICAgIFNlY3VyZUJvb3RFbmFibGU7DQogICBV SU5UOCAgICAgICBDdXN0b21Nb2RlOw0KQEAgLTEzNSw5ICsxMzYsMTggQEAgQXV0aFZhcmlhYmxl TGliSW5pdGlhbGl6ZSAoCiAgIC8vDQogICAvLyBJbml0aWFsaXplIGhhc2ggY29udGV4dC4NCiAg IC8vDQotICBDdHhTaXplICA9IFNoYTI1NkdldENvbnRleHRTaXplICgpOw0KLSAgbUhhc2hDdHgg PSBBbGxvY2F0ZVJ1bnRpbWVQb29sIChDdHhTaXplKTsNCi0gIGlmIChtSGFzaEN0eCA9PSBOVUxM KSB7DQorICBtSGFzaFNoYTI1NkN0eCA9IEFsbG9jYXRlUnVudGltZVBvb2wgKFNoYTI1NkdldENv bnRleHRTaXplICgpKTsNCisgIGlmIChtSGFzaFNoYTI1NkN0eCA9PSBOVUxMKSB7DQorICAgIHJl dHVybiBFRklfT1VUX09GX1JFU09VUkNFUzsNCisgIH0NCisNCisgIG1IYXNoU2hhMzg0Q3R4ID0g QWxsb2NhdGVSdW50aW1lUG9vbCAoU2hhMzg0R2V0Q29udGV4dFNpemUgKCkpOw0KKyAgaWYgKG1I YXNoU2hhMzg0Q3R4ID09IE5VTEwpIHsNCisgICAgcmV0dXJuIEVGSV9PVVRfT0ZfUkVTT1VSQ0VT Ow0KKyAgfQ0KKw0KKyAgbUhhc2hTaGE1MTJDdHggPSBBbGxvY2F0ZVJ1bnRpbWVQb29sIChTaGE1 MTJHZXRDb250ZXh0U2l6ZSAoKSk7DQorICBpZiAobUhhc2hTaGE1MTJDdHggPT0gTlVMTCkgew0K ICAgICByZXR1cm4gRUZJX09VVF9PRl9SRVNPVVJDRVM7DQogICB9DQogDQpAQCAtMzU2LDE0ICsz NjYsMTYgQEAgQXV0aFZhcmlhYmxlTGliSW5pdGlhbGl6ZSAoCiAgIEF1dGhWYXJMaWJDb250ZXh0 T3V0LT5BdXRoVmFyRW50cnkgICAgICAgID0gbUF1dGhWYXJFbnRyeTsNCiAgIEF1dGhWYXJMaWJD b250ZXh0T3V0LT5BdXRoVmFyRW50cnlDb3VudCAgID0gQVJSQVlfU0laRSAobUF1dGhWYXJFbnRy eSk7DQogICBtQXV0aFZhckFkZHJlc3NQb2ludGVyWzBdICAgICAgICAgICAgICAgICA9IChWT0lE ICoqKSZtQ2VydERiU3RvcmU7DQotICBtQXV0aFZhckFkZHJlc3NQb2ludGVyWzFdICAgICAgICAg ICAgICAgICA9IChWT0lEICoqKSZtSGFzaEN0eDsNCi0gIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJb Ml0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJm1BdXRoVmFyTGliQ29udGV4dEluOw0KLSAg bUF1dGhWYXJBZGRyZXNzUG9pbnRlclszXSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1B dXRoVmFyTGliQ29udGV4dEluLT5GaW5kVmFyaWFibGUpLA0KLSAgbUF1dGhWYXJBZGRyZXNzUG9p bnRlcls0XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1BdXRoVmFyTGliQ29udGV4dElu LT5GaW5kTmV4dFZhcmlhYmxlKSwNCi0gIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJbNV0gICAgICAg ICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0aFZhckxpYkNvbnRleHRJbi0+VXBkYXRlVmFyaWFi bGUpLA0KLSAgbUF1dGhWYXJBZGRyZXNzUG9pbnRlcls2XSAgICAgICAgICAgICAgICAgPSAoVk9J RCAqKikmKG1BdXRoVmFyTGliQ29udGV4dEluLT5HZXRTY3JhdGNoQnVmZmVyKSwNCi0gIG1BdXRo VmFyQWRkcmVzc1BvaW50ZXJbN10gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0aFZh ckxpYkNvbnRleHRJbi0+Q2hlY2tSZW1haW5pbmdTcGFjZUZvckNvbnNpc3RlbmN5KSwNCi0gIG1B dXRoVmFyQWRkcmVzc1BvaW50ZXJbOF0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0 aFZhckxpYkNvbnRleHRJbi0+QXRSdW50aW1lKSwNCisgIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJb MV0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJm1IYXNoU2hhMjU2Q3R4Ow0KKyAgbUF1dGhW YXJBZGRyZXNzUG9pbnRlclsyXSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmbUhhc2hTaGEz ODRDdHg7DQorICBtQXV0aFZhckFkZHJlc3NQb2ludGVyWzNdICAgICAgICAgICAgICAgICA9IChW T0lEICoqKSZtSGFzaFNoYTUxMkN0eDsNCisgIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJbNF0gICAg ICAgICAgICAgICAgID0gKFZPSUQgKiopJm1BdXRoVmFyTGliQ29udGV4dEluOw0KKyAgbUF1dGhW YXJBZGRyZXNzUG9pbnRlcls1XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1BdXRoVmFy TGliQ29udGV4dEluLT5GaW5kVmFyaWFibGUpLA0KKyAgbUF1dGhWYXJBZGRyZXNzUG9pbnRlcls2 XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikmKG1BdXRoVmFyTGliQ29udGV4dEluLT5GaW5k TmV4dFZhcmlhYmxlKSwNCisgIG1BdXRoVmFyQWRkcmVzc1BvaW50ZXJbN10gICAgICAgICAgICAg ICAgID0gKFZPSUQgKiopJihtQXV0aFZhckxpYkNvbnRleHRJbi0+VXBkYXRlVmFyaWFibGUpLA0K KyAgbUF1dGhWYXJBZGRyZXNzUG9pbnRlcls4XSAgICAgICAgICAgICAgICAgPSAoVk9JRCAqKikm KG1BdXRoVmFyTGliQ29udGV4dEluLT5HZXRTY3JhdGNoQnVmZmVyKSwNCisgIG1BdXRoVmFyQWRk cmVzc1BvaW50ZXJbOV0gICAgICAgICAgICAgICAgID0gKFZPSUQgKiopJihtQXV0aFZhckxpYkNv bnRleHRJbi0+Q2hlY2tSZW1haW5pbmdTcGFjZUZvckNvbnNpc3RlbmN5KSwNCisgIG1BdXRoVmFy QWRkcmVzc1BvaW50ZXJbMTBdICAgICAgICAgICAgICAgICA9IChWT0lEICoqKSYobUF1dGhWYXJM aWJDb250ZXh0SW4tPkF0UnVudGltZSksDQogICBBdXRoVmFyTGliQ29udGV4dE91dC0+QWRkcmVz c1BvaW50ZXIgICAgICA9IG1BdXRoVmFyQWRkcmVzc1BvaW50ZXI7DQogICBBdXRoVmFyTGliQ29u dGV4dE91dC0+QWRkcmVzc1BvaW50ZXJDb3VudCA9IEFSUkFZX1NJWkUgKG1BdXRoVmFyQWRkcmVz c1BvaW50ZXIpOw0KIA0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL0xpYnJhcnkvRHhlSW1hZ2VW ZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuYyBiL1NlY3VyaXR5UGtnL0xp YnJhcnkvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIvRHhlSW1hZ2VWZXJpZmljYXRpb25MaWIuYwpp bmRleCA1ZDhkYmQ1NDY4Li44OGIyZDNjNmMxIDEwMDY0NAotLS0gYS9TZWN1cml0eVBrZy9MaWJy YXJ5L0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliL0R4ZUltYWdlVmVyaWZpY2F0aW9uTGliLmMKKysr IGIvU2VjdXJpdHlQa2cvTGlicmFyeS9EeGVJbWFnZVZlcmlmaWNhdGlvbkxpYi9EeGVJbWFnZVZl cmlmaWNhdGlvbkxpYi5jCkBAIC0xNjIwLDcgKzE2MjAsNyBAQCBEb25lOgogICAgICAgaW4gdGhl IHNlY3VyaXR5IGRhdGFiYXNlICJkYiIsIGFuZCBubyB2YWxpZCBzaWduYXR1cmUgbm9yIGFueSBo YXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtYXkNCiAgICAgICBiZSByZWZsZWN0ZWQgaW4gdGhlIHNl Y3VyaXR5IGRhdGFiYXNlICJkYngiLg0KICAgICBPdGhlcndpc2UsIHRoZSBpbWFnZSBpcyBub3Qg c2lnbmVkLA0KLSAgICAgIFRoZSBTSEEyNTYgaGFzaCB2YWx1ZSBvZiB0aGUgaW1hZ2UgbXVzdCBt YXRjaCBhIHJlY29yZCBpbiB0aGUgc2VjdXJpdHkgZGF0YWJhc2UgImRiIiwgYW5kDQorICAgICAg VGhlIGhhc2ggdmFsdWUgb2YgdGhlIGltYWdlIG11c3QgbWF0Y2ggYSByZWNvcmQgaW4gdGhlIHNl Y3VyaXR5IGRhdGFiYXNlICJkYiIsIGFuZA0KICAgICAgIG5vdCBiZSByZWZsZWN0ZWQgaW4gdGhl IHNlY3VyaXR5IGRhdGEgYmFzZSAiZGJ4Ii4NCiANCiAgIENhdXRpb246IFRoaXMgZnVuY3Rpb24g bWF5IHJlY2VpdmUgdW50cnVzdGVkIGlucHV0Lg0KQEAgLTE2OTAsNiArMTY5MCw4IEBAIER4ZUlt YWdlVmVyaWZpY2F0aW9uSGFuZGxlciAoCiAgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAg IFZhclN0YXR1czsNCiAgIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgICAgIFZhckF0dHI7DQog ICBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICBJc0ZvdW5kOw0KKyAgVUlOVDggICAgICAg ICAgICAgICAgICAgICAgICAgSGFzaEFsZzsNCisgIEJPT0xFQU4gICAgICAgICAgICAgICAgICAg ICAgIElzRm91bmRJbkRhdGFiYXNlOw0KIA0KICAgU2lnbmF0dXJlTGlzdCAgICAgPSBOVUxMOw0K ICAgU2lnbmF0dXJlTGlzdFNpemUgPSAwOw0KQEAgLTE2OTksNiArMTcwMSw3IEBAIER4ZUltYWdl VmVyaWZpY2F0aW9uSGFuZGxlciAoCiAgIEFjdGlvbiAgICAgICAgICAgID0gRUZJX0lNQUdFX0VY RUNVVElPTl9BVVRIX1VOVEVTVEVEOw0KICAgSXNWZXJpZmllZCAgICAgICAgPSBGQUxTRTsNCiAg IElzRm91bmQgICAgICAgICAgID0gRkFMU0U7DQorICBJc0ZvdW5kSW5EYXRhYmFzZSA9IEZBTFNF Ow0KIA0KICAgLy8NCiAgIC8vIENoZWNrIHRoZSBpbWFnZSB0eXBlIGFuZCBnZXQgcG9saWN5IHNl dHRpbmcuDQpAQCAtMTgzNyw0MCArMTg0MCw1MCBAQCBEeGVJbWFnZVZlcmlmaWNhdGlvbkhhbmRs ZXIgKAogICAvLw0KICAgaWYgKChTZWNEYXRhRGlyID09IE5VTEwpIHx8IChTZWNEYXRhRGlyLT5T aXplID09IDApKSB7DQogICAgIC8vDQotICAgIC8vIFRoaXMgaW1hZ2UgaXMgbm90IHNpZ25lZC4g VGhlIFNIQTI1NiBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtdXN0IG1hdGNoIGEgcmVjb3JkIGlu IHRoZSBzZWN1cml0eSBkYXRhYmFzZSAiZGIiLA0KKyAgICAvLyBUaGlzIGltYWdlIGlzIG5vdCBz aWduZWQuIFRoZSBoYXNoIHZhbHVlIG9mIHRoZSBpbWFnZSBtdXN0IG1hdGNoIGEgcmVjb3JkIGlu IHRoZSBzZWN1cml0eSBkYXRhYmFzZSAiZGIiLA0KICAgICAvLyBhbmQgbm90IGJlIHJlZmxlY3Rl ZCBpbiB0aGUgc2VjdXJpdHkgZGF0YSBiYXNlICJkYngiLg0KICAgICAvLw0KLSAgICBpZiAoIUhh c2hQZUltYWdlIChIQVNIQUxHX1NIQTI1NikpIHsNCi0gICAgICBERUJVRyAoKERFQlVHX0lORk8s ICJEeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjogRmFpbGVkIHRvIGhhc2ggdGhpcyBpbWFnZSB1c2lu ZyAlcy5cbiIsIG1IYXNoVHlwZVN0cikpOw0KLSAgICAgIGdvdG8gRmFpbGVkOw0KLSAgICB9DQor ICAgIEhhc2hBbGcgPSBzaXplb2YgKG1IYXNoKSAvIHNpemVvZiAoSEFTSF9UQUJMRSk7DQorICAg IHdoaWxlIChIYXNoQWxnID4gMCkgew0KKyAgICAgIEhhc2hBbGctLTsNCisgICAgICBpZiAoKG1I YXNoW0hhc2hBbGddLkdldENvbnRleHRTaXplID09IE5VTEwpIHx8IChtSGFzaFtIYXNoQWxnXS5I YXNoSW5pdCA9PSBOVUxMKSB8fCAobUhhc2hbSGFzaEFsZ10uSGFzaFVwZGF0ZSA9PSBOVUxMKSB8 fCAobUhhc2hbSGFzaEFsZ10uSGFzaEZpbmFsID09IE5VTEwpKSB7DQorICAgICAgICBjb250aW51 ZTsNCisgICAgICB9DQorICAgICAgaWYgKCFIYXNoUGVJbWFnZSAoSGFzaEFsZykpIHsNCisgICAg ICAgIGNvbnRpbnVlOw0KKyAgICAgIH0NCiANCi0gICAgRGJTdGF0dXMgPSBJc1NpZ25hdHVyZUZv dW5kSW5EYXRhYmFzZSAoDQotICAgICAgICAgICAgICAgICBFRklfSU1BR0VfU0VDVVJJVFlfREFU QUJBU0UxLA0KLSAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0LA0KLSAgICAgICAgICAgICAg ICAgJm1DZXJ0VHlwZSwNCi0gICAgICAgICAgICAgICAgIG1JbWFnZURpZ2VzdFNpemUsDQotICAg ICAgICAgICAgICAgICAmSXNGb3VuZA0KLSAgICAgICAgICAgICAgICAgKTsNCi0gICAgaWYgKEVG SV9FUlJPUiAoRGJTdGF0dXMpIHx8IElzRm91bmQpIHsNCi0gICAgICAvLw0KLSAgICAgIC8vIElt YWdlIEhhc2ggaXMgaW4gZm9yYmlkZGVuIGRhdGFiYXNlIChEQlgpLg0KLSAgICAgIC8vDQotICAg ICAgREVCVUcgKChERUJVR19JTkZPLCAiRHhlSW1hZ2VWZXJpZmljYXRpb25MaWI6IEltYWdlIGlz IG5vdCBzaWduZWQgYW5kICVzIGhhc2ggb2YgaW1hZ2UgaXMgZm9yYmlkZGVuIGJ5IERCWC5cbiIs IG1IYXNoVHlwZVN0cikpOw0KLSAgICAgIGdvdG8gRmFpbGVkOw0KKyAgICAgIERiU3RhdHVzID0g SXNTaWduYXR1cmVGb3VuZEluRGF0YWJhc2UgKA0KKyAgICAgICAgICAgICAgICAgICBFRklfSU1B R0VfU0VDVVJJVFlfREFUQUJBU0UxLA0KKyAgICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdlc3Qs DQorICAgICAgICAgICAgICAgICAgICZtQ2VydFR5cGUsDQorICAgICAgICAgICAgICAgICAgIG1J bWFnZURpZ2VzdFNpemUsDQorICAgICAgICAgICAgICAgICAgICZJc0ZvdW5kDQorICAgICAgICAg ICAgICAgICAgICk7DQorICAgICAgaWYgKEVGSV9FUlJPUiAoRGJTdGF0dXMpIHx8IElzRm91bmQp IHsNCisgICAgICAgIC8vDQorICAgICAgICAvLyBJbWFnZSBIYXNoIGlzIGluIGZvcmJpZGRlbiBk YXRhYmFzZSAoREJYKS4NCisgICAgICAgIC8vDQorICAgICAgICBERUJVRyAoKERFQlVHX0lORk8s ICJEeGVJbWFnZVZlcmlmaWNhdGlvbkxpYjogSW1hZ2UgaXMgbm90IHNpZ25lZCBhbmQgJXMgaGFz aCBvZiBpbWFnZSBpcyBmb3JiaWRkZW4gYnkgREJYLlxuIiwgbUhhc2hUeXBlU3RyKSk7DQorICAg ICAgICBnb3RvIEZhaWxlZDsNCisgICAgICB9DQorDQorICAgICAgRGJTdGF0dXMgPSBJc1NpZ25h dHVyZUZvdW5kSW5EYXRhYmFzZSAoDQorICAgICAgICAgICAgICAgICAgIEVGSV9JTUFHRV9TRUNV UklUWV9EQVRBQkFTRSwNCisgICAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0LA0KKyAgICAg ICAgICAgICAgICAgICAmbUNlcnRUeXBlLA0KKyAgICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdl c3RTaXplLA0KKyAgICAgICAgICAgICAgICAgICAmSXNGb3VuZA0KKyAgICAgICAgICAgICAgICAg ICApOw0KKyAgICAgIGlmICghRUZJX0VSUk9SIChEYlN0YXR1cykgJiYgSXNGb3VuZCkgew0KKyAg ICAgICAgLy8NCisgICAgICAgIC8vIEltYWdlIEhhc2ggaXMgaW4gYWxsb3dlZCBkYXRhYmFzZSAo REIpLg0KKyAgICAgICAgLy8NCisgICAgICAgIElzRm91bmRJbkRhdGFiYXNlID0gVFJVRTsNCisg ICAgICB9DQogICAgIH0NCiANCi0gICAgRGJTdGF0dXMgPSBJc1NpZ25hdHVyZUZvdW5kSW5EYXRh YmFzZSAoDQotICAgICAgICAgICAgICAgICBFRklfSU1BR0VfU0VDVVJJVFlfREFUQUJBU0UsDQot ICAgICAgICAgICAgICAgICBtSW1hZ2VEaWdlc3QsDQotICAgICAgICAgICAgICAgICAmbUNlcnRU eXBlLA0KLSAgICAgICAgICAgICAgICAgbUltYWdlRGlnZXN0U2l6ZSwNCi0gICAgICAgICAgICAg ICAgICZJc0ZvdW5kDQotICAgICAgICAgICAgICAgICApOw0KLSAgICBpZiAoIUVGSV9FUlJPUiAo RGJTdGF0dXMpICYmIElzRm91bmQpIHsNCi0gICAgICAvLw0KLSAgICAgIC8vIEltYWdlIEhhc2gg aXMgaW4gYWxsb3dlZCBkYXRhYmFzZSAoREIpLg0KLSAgICAgIC8vDQorICAgIGlmIChJc0ZvdW5k SW5EYXRhYmFzZSkgew0KICAgICAgIHJldHVybiBFRklfU1VDQ0VTUzsNCiAgICAgfQ0KIA0KZGlm ZiAtLWdpdCBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29u ZmlnRHhlL1NlY3VyZUJvb3RDb25maWdEeGUuaW5mIGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRo ZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0R4ZS5pbmYKaW5k ZXggMTY3MWQ1YmU3Yy4uY2I1MmExNmMwOSAxMDA2NDQKLS0tIGEvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0R4ZS5p bmYKKysrIGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25m aWdEeGUvU2VjdXJlQm9vdENvbmZpZ0R4ZS5pbmYKQEAgLTcwLDYgKzcwLDE0IEBACiAgICMjIFNP TUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3Ig dGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCiAgIGdFZmlDZXJ0UnNhMjA0OEd1aWQNCiANCisg ICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJ RCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCisgICMjIFNPTUVUSU1FU19QUk9EVUNF UyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhl IHNpZ25hdHVyZS4NCisgIGdFZmlDZXJ0UnNhMzA3Mkd1aWQNCisNCisgICMjIFNPTUVUSU1FU19D T05TVU1FUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUg b2YgdGhlIHNpZ25hdHVyZS4NCisgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQg ICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCisg IGdFZmlDZXJ0UnNhNDA5Nkd1aWQNCisNCiAgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAgICMj IEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVy ZS4NCiAgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAjIFVu aXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCiAgIGdFZmlDZXJ0WDUwOUd1 aWQNCkBAIC04Miw2ICs5MCwxNCBAQAogICAjIyBTT01FVElNRVNfUFJPRFVDRVMgICAgICAjIyBH VUlEICAgICAgICAgICAgIyBVbmlxdWUgSUQgZm9yIHRoZSB0eXBlIG9mIHRoZSBzaWduYXR1cmUu DQogICBnRWZpQ2VydFNoYTI1Nkd1aWQNCiANCisgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgICAg ICMjIEdVSUQgICAgICAgICAgICAjIFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25h dHVyZS4NCisgICMjIFNPTUVUSU1FU19QUk9EVUNFUyAgICAgICMjIEdVSUQgICAgICAgICAgICAj IFVuaXF1ZSBJRCBmb3IgdGhlIHR5cGUgb2YgdGhlIHNpZ25hdHVyZS4NCisgIGdFZmlDZXJ0U2hh Mzg0R3VpZA0KKw0KKyAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAgICAgIyMgR1VJRCAgICAgICAg ICAgICMgVW5pcXVlIElEIGZvciB0aGUgdHlwZSBvZiB0aGUgc2lnbmF0dXJlLg0KKyAgIyMgU09N RVRJTUVTX1BST0RVQ0VTICAgICAgIyMgR1VJRCAgICAgICAgICAgICMgVW5pcXVlIElEIGZvciB0 aGUgdHlwZSBvZiB0aGUgc2lnbmF0dXJlLg0KKyAgZ0VmaUNlcnRTaGE1MTJHdWlkDQorDQogICAj IyBTT01FVElNRVNfQ09OU1VNRVMgICAgICAjIyBWYXJpYWJsZTpMImRiIg0KICAgIyMgU09NRVRJ TUVTX1BST0RVQ0VTICAgICAgIyMgVmFyaWFibGU6TCJkYiINCiAgICMjIFNPTUVUSU1FU19DT05T VU1FUyAgICAgICMjIFZhcmlhYmxlOkwiZGJ4Ig0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL1Zh cmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJ bXBsLmMgYi9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZp Z0R4ZS9TZWN1cmVCb290Q29uZmlnSW1wbC5jCmluZGV4IDBlMzE1MDJiMWIuLjkwMjY4ZDM0ZDMg MTAwNjQ0Ci0tLSBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290 Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJbXBsLmMKKysrIGIvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0ltcGwu YwpAQCAtNTYwLDcgKzU2MCw3IEBAIE9OX0VYSVQ6CiANCiAqKi8NCiBFRklfU1RBVFVTDQotRW5y b2xsUnNhMjA0OFRvS2VrICgNCitFbnJvbGxSc2FUb0tlayAoDQogICBJTiBTRUNVUkVCT09UX0NP TkZJR19QUklWQVRFX0RBVEEgICpQcml2YXRlDQogICApDQogew0KQEAgLTYwMyw4ICs2MDMsMTkg QEAgRW5yb2xsUnNhMjA0OFRvS2VrICgKIA0KICAgQVNTRVJUIChLZXlCbG9iICE9IE5VTEwpOw0K ICAgS2V5SW5mbyA9IChDUExfS0VZX0lORk8gKilLZXlCbG9iOw0KLSAgaWYgKEtleUluZm8tPktl eUxlbmd0aEluQml0cyAvIDggIT0gV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkUpIHsNCi0gICAg REVCVUcgKChERUJVR19FUlJPUiwgIlVuc3VwcG9ydGVkIGtleSBsZW5ndGgsIE9ubHkgUlNBMjA0 OCBpcyBzdXBwb3J0ZWQuXG4iKSk7DQorICBpZiAoS2V5SW5mby0+S2V5VHlwZSA9PSAwKSB7DQor ICAgIHN3aXRjaCAoS2V5SW5mby0+S2V5TGVuZ3RoSW5CaXRzIC8gOCkgew0KKyAgICBjYXNlIFdJ Tl9DRVJUX1VFRklfUlNBMjA0OF9TSVpFOg0KKyAgICBjYXNlIFdJTl9DRVJUX1VFRklfUlNBMzA3 Ml9TSVpFOg0KKyAgICBjYXNlIFdJTl9DRVJUX1VFRklfUlNBNDA5Nl9TSVpFOg0KKyAgICAgIGJy ZWFrOw0KKyAgICBkZWZhdWx0IDoNCisgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVW5zdXBw b3J0ZWQga2V5IGxlbmd0aCwgT25seSBSU0EyMDQ4LCBSU0EzMDcyIGFuZCBSU0E0MDk2IGFyZSBz dXBwb3J0ZWQuXG4iKSk7DQorICAgICAgU3RhdHVzID0gRUZJX1VOU1VQUE9SVEVEOw0KKyAgICAg IGdvdG8gT05fRVhJVDsNCisgICAgfQ0KKyAgfSBlbHNlIHsNCisgICAgREVCVUcgKChERUJVR19F UlJPUiwgIlVuc3VwcG9ydGVkIGtleSB0eXBlIDogJWQsIG9ubHkgMCBpcyBzdXBwb3J0ZWQuXG4i LCBLZXlJbmZvLT5LZXlUeXBlKSk7DQogICAgIFN0YXR1cyA9IEVGSV9VTlNVUFBPUlRFRDsNCiAg ICAgZ290byBPTl9FWElUOw0KICAgfQ0KQEAgLTYzMiw3ICs2NDMsNyBAQCBFbnJvbGxSc2EyMDQ4 VG9LZWsgKAogICAvLw0KICAgS2VrU2lnTGlzdFNpemUgPSBzaXplb2YgKEVGSV9TSUdOQVRVUkVf TElTVCkNCiAgICAgICAgICAgICAgICAgICAgKyBzaXplb2YgKEVGSV9TSUdOQVRVUkVfREFUQSkg LSAxDQotICAgICAgICAgICAgICAgICAgICsgV0lOX0NFUlRfVUVGSV9SU0EyMDQ4X1NJWkU7DQor ICAgICAgICAgICAgICAgICAgICsgS2V5TGVuSW5CeXRlczsNCiANCiAgIEtla1NpZ0xpc3QgPSAo RUZJX1NJR05BVFVSRV9MSVNUICopQWxsb2NhdGVaZXJvUG9vbCAoS2VrU2lnTGlzdFNpemUpOw0K ICAgaWYgKEtla1NpZ0xpc3QgPT0gTlVMTCkgew0KQEAgLTY0MiwxNyArNjUzLDMyIEBAIEVucm9s bFJzYTIwNDhUb0tlayAoCiANCiAgIEtla1NpZ0xpc3QtPlNpZ25hdHVyZUxpc3RTaXplID0gc2l6 ZW9mIChFRklfU0lHTkFUVVJFX0xJU1QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsgc2l6ZW9mIChFRklfU0lHTkFUVVJFX0RBVEEpIC0gMQ0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICArIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9TSVpFOw0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICArIChVSU5UMzIpIEtleUxlbkluQnl0ZXM7DQogICBL ZWtTaWdMaXN0LT5TaWduYXR1cmVIZWFkZXJTaXplID0gMDsNCi0gIEtla1NpZ0xpc3QtPlNpZ25h dHVyZVNpemUgICAgICAgPSBzaXplb2YgKEVGSV9TSUdOQVRVUkVfREFUQSkgLSAxICsgV0lOX0NF UlRfVUVGSV9SU0EyMDQ4X1NJWkU7DQotICBDb3B5R3VpZCAoJktla1NpZ0xpc3QtPlNpZ25hdHVy ZVR5cGUsICZnRWZpQ2VydFJzYTIwNDhHdWlkKTsNCisgIEtla1NpZ0xpc3QtPlNpZ25hdHVyZVNp emUgICAgICAgPSBzaXplb2YgKEVGSV9TSUdOQVRVUkVfREFUQSkgLSAxICsgKFVJTlQzMikgS2V5 TGVuSW5CeXRlczsNCisgIHN3aXRjaCAoS2V5TGVuSW5CeXRlcykgew0KKyAgY2FzZSBXSU5fQ0VS VF9VRUZJX1JTQTIwNDhfU0laRToNCisgICAgQ29weUd1aWQgKCZLZWtTaWdMaXN0LT5TaWduYXR1 cmVUeXBlLCAmZ0VmaUNlcnRSc2EyMDQ4R3VpZCk7DQorICAgIGJyZWFrOw0KKyAgY2FzZSBXSU5f Q0VSVF9VRUZJX1JTQTMwNzJfU0laRToNCisgICAgQ29weUd1aWQgKCZLZWtTaWdMaXN0LT5TaWdu YXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2EzMDcyR3VpZCk7DQorICAgIGJyZWFrOw0KKyAgY2FzZSBX SU5fQ0VSVF9VRUZJX1JTQTQwOTZfU0laRToNCisgICAgQ29weUd1aWQgKCZLZWtTaWdMaXN0LT5T aWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2E0MDk2R3VpZCk7DQorICAgIGJyZWFrOw0KKyAgICBi cmVhazsNCisgIGRlZmF1bHQgOg0KKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiVW5zdXBwb3J0 ZWQga2V5IGxlbmd0aC5cbiIpKTsNCisgICAgU3RhdHVzID0gRUZJX1VOU1VQUE9SVEVEOw0KKyAg ICBnb3RvIE9OX0VYSVQ7DQorICB9DQogDQogICBLRUtTaWdEYXRhID0gKEVGSV9TSUdOQVRVUkVf REFUQSAqKSgoVUlOVDggKilLZWtTaWdMaXN0ICsgc2l6ZW9mIChFRklfU0lHTkFUVVJFX0xJU1Qp KTsNCiAgIENvcHlHdWlkICgmS0VLU2lnRGF0YS0+U2lnbmF0dXJlT3duZXIsIFByaXZhdGUtPlNp Z25hdHVyZUdVSUQpOw0KICAgQ29weU1lbSAoDQogICAgIEtFS1NpZ0RhdGEtPlNpZ25hdHVyZURh dGEsDQogICAgIEtleUJsb2IgKyBzaXplb2YgKENQTF9LRVlfSU5GTyksDQotICAgIFdJTl9DRVJU X1VFRklfUlNBMjA0OF9TSVpFDQorICAgIEtleUxlbkluQnl0ZXMNCiAgICAgKTsNCiANCiAgIC8v DQpAQCAtODkwLDcgKzkxNiw3IEBAIEVucm9sbEtleUV4Y2hhbmdlS2V5ICgKICAgaWYgKElzRGVy RW5jb2RlQ2VydGlmaWNhdGUgKEZpbGVQb3N0Rml4KSkgew0KICAgICByZXR1cm4gRW5yb2xsWDUw OVRvS2VrIChQcml2YXRlKTsNCiAgIH0gZWxzZSBpZiAoQ29tcGFyZU1lbSAoRmlsZVBvc3RGaXgs IEwiLnBiayIsIDQpID09IDApIHsNCi0gICAgcmV0dXJuIEVucm9sbFJzYTIwNDhUb0tlayAoUHJp dmF0ZSk7DQorICAgIHJldHVybiBFbnJvbGxSc2FUb0tlayAoUHJpdmF0ZSk7DQogICB9IGVsc2Ug ew0KICAgICAvLw0KICAgICAvLyBGaWxlIHR5cGUgaXMgd3JvbmcsIHNpbXBseSBjbG9zZSBpdA0K QEAgLTE4NDcsNyArMTg3Myw3IEBAIEhhc2hQZUltYWdlICgKICAgU2VjdGlvbkhlYWRlciA9IE5V TEw7DQogICBTdGF0dXMgICAgICAgID0gRkFMU0U7DQogDQotICBpZiAoSGFzaEFsZyAhPSBIQVNI QUxHX1NIQTI1Nikgew0KKyAgaWYgKChIYXNoQWxnID49IEhBU0hBTEdfTUFYKSkgew0KICAgICBy ZXR1cm4gRkFMU0U7DQogICB9DQogDQpAQCAtMTg1Niw4ICsxODgyLDI1IEBAIEhhc2hQZUltYWdl ICgKICAgLy8NCiAgIFplcm9NZW0gKG1JbWFnZURpZ2VzdCwgTUFYX0RJR0VTVF9TSVpFKTsNCiAN Ci0gIG1JbWFnZURpZ2VzdFNpemUgPSBTSEEyNTZfRElHRVNUX1NJWkU7DQotICBtQ2VydFR5cGUg ICAgICAgID0gZ0VmaUNlcnRTaGEyNTZHdWlkOw0KKyAgIHN3aXRjaCAoSGFzaEFsZykgew0KKyAg ICBjYXNlIEhBU0hBTEdfU0hBMjU2Og0KKyAgICAgIG1JbWFnZURpZ2VzdFNpemUgPSBTSEEyNTZf RElHRVNUX1NJWkU7DQorICAgICAgbUNlcnRUeXBlICAgICAgICA9IGdFZmlDZXJ0U2hhMjU2R3Vp ZDsNCisgICAgICBicmVhazsNCisNCisgICAgY2FzZSBIQVNIQUxHX1NIQTM4NDoNCisgICAgICBt SW1hZ2VEaWdlc3RTaXplID0gU0hBMzg0X0RJR0VTVF9TSVpFOw0KKyAgICAgIG1DZXJ0VHlwZSAg ICAgICAgPSBnRWZpQ2VydFNoYTM4NEd1aWQ7DQorICAgICAgYnJlYWs7DQorDQorICAgIGNhc2Ug SEFTSEFMR19TSEE1MTI6DQorICAgICAgbUltYWdlRGlnZXN0U2l6ZSA9IFNIQTUxMl9ESUdFU1Rf U0laRTsNCisgICAgICBtQ2VydFR5cGUgICAgICAgID0gZ0VmaUNlcnRTaGE1MTJHdWlkOw0KKyAg ICAgIGJyZWFrOw0KKw0KKyAgICBkZWZhdWx0Og0KKyAgICAgIHJldHVybiBGQUxTRTsNCisgIH0N CiANCiAgIEN0eFNpemUgPSBtSGFzaFtIYXNoQWxnXS5HZXRDb250ZXh0U2l6ZSAoKTsNCiANCkBA IC0yMjUxLDYgKzIyOTQsNyBAQCBFbnJvbGxJbWFnZVNpZ25hdHVyZVRvU2lnREIgKAogICBVSU5U MzIgICAgICAgICAgICAgICAgICAgICBBdHRyOw0KICAgV0lOX0NFUlRJRklDQVRFX1VFRklfR1VJ RCAgKkd1aWRDZXJ0RGF0YTsNCiAgIEVGSV9USU1FICAgICAgICAgICAgICAgICAgIFRpbWU7DQor ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgICBIYXNoQWxnOw0KIA0KICAgRGF0YSAgICAgICAg ID0gTlVMTDsNCiAgIEd1aWRDZXJ0RGF0YSA9IE5VTEw7DQpAQCAtMjI4OSw4ICsyMzMzLDIwIEBA IEVucm9sbEltYWdlU2lnbmF0dXJlVG9TaWdEQiAoCiAgIH0NCiANCiAgIGlmIChtU2VjRGF0YURp ci0+U2l6ZU9mQ2VydCA9PSAwKSB7DQotICAgIGlmICghSGFzaFBlSW1hZ2UgKEhBU0hBTEdfU0hB MjU2KSkgew0KLSAgICAgIFN0YXR1cyA9ICBFRklfU0VDVVJJVFlfVklPTEFUSU9OOw0KKyAgICBT dGF0dXMgPSBFRklfU0VDVVJJVFlfVklPTEFUSU9OOw0KKyAgICBIYXNoQWxnID0gc2l6ZW9mICht SGFzaCkgLyBzaXplb2YgKEhBU0hfVEFCTEUpOw0KKyAgICB3aGlsZSAoSGFzaEFsZyA+IDApIHsN CisgICAgICBIYXNoQWxnLS07DQorICAgICAgaWYgKChtSGFzaFtIYXNoQWxnXS5HZXRDb250ZXh0 U2l6ZSA9PSBOVUxMKSB8fCAobUhhc2hbSGFzaEFsZ10uSGFzaEluaXQgPT0gTlVMTCkgfHwgKG1I YXNoW0hhc2hBbGddLkhhc2hVcGRhdGUgPT0gTlVMTCkgfHwgKG1IYXNoW0hhc2hBbGddLkhhc2hG aW5hbCA9PSBOVUxMKSkgew0KKyAgICAgICAgY29udGludWU7DQorICAgICAgfQ0KKyAgICAgIGlm IChIYXNoUGVJbWFnZSAoSGFzaEFsZykpIHsNCisgICAgICAgIFN0YXR1cyA9IEVGSV9TVUNDRVNT Ow0KKyAgICAgICAgYnJlYWs7DQorICAgICAgfQ0KKyAgICB9DQorICAgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCisgICAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiRmFpbCB0byBnZXQgaGFz aCBkaWdlc3Q6ICVyIiwgU3RhdHVzKSk7DQogICAgICAgZ290byBPTl9FWElUOw0KICAgICB9DQog ICB9IGVsc2Ugew0KQEAgLTI1ODksNiArMjY0NSwxMCBAQCBVcGRhdGVEZWxldGVQYWdlICgKICAg d2hpbGUgKChJdGVtRGF0YVNpemUgPiAwKSAmJiAoSXRlbURhdGFTaXplID49IENlcnRMaXN0LT5T aWduYXR1cmVMaXN0U2l6ZSkpIHsNCiAgICAgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNp Z25hdHVyZVR5cGUsICZnRWZpQ2VydFJzYTIwNDhHdWlkKSkgew0KICAgICAgIEhlbHAgPSBTVFJJ TkdfVE9LRU4gKFNUUl9DRVJUX1RZUEVfUlNBMjA0OF9TSEEyNTZfR1VJRCk7DQorICAgIH0gZWxz ZSBpZiAoQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNh MzA3Mkd1aWQpKSB7DQorICAgICAgSGVscCA9IFNUUklOR19UT0tFTiAoU1RSX0NFUlRfVFlQRV9S U0EzMDcyX1NIQTM4NF9HVUlEKTsNCisgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkNlcnRM aXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2E0MDk2R3VpZCkpIHsNCisgICAgICBIZWxw ID0gU1RSSU5HX1RPS0VOIChTVFJfQ0VSVF9UWVBFX1JTQTQwOTZfU0hBNTEyX0dVSUQpOw0KICAg ICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZp Q2VydFg1MDlHdWlkKSkgew0KICAgICAgIEhlbHAgPSBTVFJJTkdfVE9LRU4gKFNUUl9DRVJUX1RZ UEVfUENLUzdfR1VJRCk7DQogICAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+ U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0U2hhMUd1aWQpKSB7DQpAQCAtMjc1MCw2ICsyODEwLDgg QEAgRGVsZXRlS2V5RXhjaGFuZ2VLZXkgKAogICBHdWlkSW5kZXggICAgICA9IDA7DQogICB3aGls ZSAoKEtla0RhdGFTaXplID4gMCkgJiYgKEtla0RhdGFTaXplID49IENlcnRMaXN0LT5TaWduYXR1 cmVMaXN0U2l6ZSkpIHsNCiAgICAgaWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVy ZVR5cGUsICZnRWZpQ2VydFJzYTIwNDhHdWlkKSB8fA0KKyAgICAgICAgQ29tcGFyZUd1aWQgKCZD ZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpIHx8DQorICAgICAg ICBDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2E0MDk2 R3VpZCkgfHwNCiAgICAgICAgIENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUs ICZnRWZpQ2VydFg1MDlHdWlkKSkNCiAgICAgew0KICAgICAgIENvcHlNZW0gKERhdGEgKyBPZmZz ZXQsIENlcnRMaXN0LCAoc2l6ZW9mIChFRklfU0lHTkFUVVJFX0xJU1QpICsgQ2VydExpc3QtPlNp Z25hdHVyZUhlYWRlclNpemUpKTsNCkBAIC0yOTUyLDYgKzMwMTQsOCBAQCBEZWxldGVTaWduYXR1 cmUgKAogICBHdWlkSW5kZXggICAgPSAwOw0KICAgd2hpbGUgKChJdGVtRGF0YVNpemUgPiAwKSAm JiAoSXRlbURhdGFTaXplID49IENlcnRMaXN0LT5TaWduYXR1cmVMaXN0U2l6ZSkpIHsNCiAgICAg aWYgKENvbXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFJzYTIw NDhHdWlkKSB8fA0KKyAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlw ZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpIHx8DQorICAgICAgICBDb21wYXJlR3VpZCAoJkNlcnRM aXN0LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRSc2E0MDk2R3VpZCkgfHwNCiAgICAgICAgIENv bXBhcmVHdWlkICgmQ2VydExpc3QtPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFg1MDlHdWlkKSB8 fA0KICAgICAgICAgQ29tcGFyZUd1aWQgKCZDZXJ0TGlzdC0+U2lnbmF0dXJlVHlwZSwgJmdFZmlD ZXJ0U2hhMUd1aWQpIHx8DQogICAgICAgICBDb21wYXJlR3VpZCAoJkNlcnRMaXN0LT5TaWduYXR1 cmVUeXBlLCAmZ0VmaUNlcnRTaGEyNTZHdWlkKSB8fA0KQEAgLTM3NTgsMTIgKzM4MjIsMjAgQEAg TG9hZFNpZ25hdHVyZUxpc3QgKAogICB3aGlsZSAoKFJlbWFpbmluZ1NpemUgPiAwKSAmJiAoUmVt YWluaW5nU2l6ZSA+PSBMaXN0V2Fsa2VyLT5TaWduYXR1cmVMaXN0U2l6ZSkpIHsNCiAgICAgaWYg KENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMjA0 OEd1aWQpKSB7DQogICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVf UlNBMjA0OF9TSEEyNTYpOw0KKyAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtl ci0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0UnNhMzA3Mkd1aWQpKSB7DQorICAgICAgTGlzdFR5 cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfUlNBMzA3Ml9TSEEzODQpOw0KKyAgICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwgJmdFZmlD ZXJ0UnNhNDA5Nkd1aWQpKSB7DQorICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9M SVNUX1RZUEVfUlNBNDA5Nl9TSEE1MTIpOw0KICAgICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgm TGlzdFdhbGtlci0+U2lnbmF0dXJlVHlwZSwgJmdFZmlDZXJ0WDUwOUd1aWQpKSB7DQogICAgICAg TGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfWDUwOSk7DQogICAgIH0gZWxz ZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0V2Fsa2VyLT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRT aGExR3VpZCkpIHsNCiAgICAgICBMaXN0VHlwZSA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQ RV9TSEExKTsNCiAgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25h dHVyZVR5cGUsICZnRWZpQ2VydFNoYTI1Nkd1aWQpKSB7DQogICAgICAgTGlzdFR5cGUgPSBTVFJJ TkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBMjU2KTsNCisgICAgfSBlbHNlIGlmIChDb21wYXJl R3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFNoYTM4NEd1aWQpKSB7 DQorICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBMzg0KTsN CisgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUs ICZnRWZpQ2VydFNoYTUxMkd1aWQpKSB7DQorICAgICAgTGlzdFR5cGUgPSBTVFJJTkdfVE9LRU4g KFNUUl9MSVNUX1RZUEVfU0hBNTEyKTsNCiAgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxp c3RXYWxrZXItPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFg1MDlTaGEyNTZHdWlkKSkgew0KICAg ICAgIExpc3RUeXBlID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1g1MDlfU0hBMjU2KTsN CiAgICAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RXYWxrZXItPlNpZ25hdHVyZVR5cGUs ICZnRWZpQ2VydFg1MDlTaGEzODRHdWlkKSkgew0KQEAgLTQwMDEsNiArNDA3MywxNCBAQCBGb3Jt YXRIZWxwSW5mbyAoCiAgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJU1RfVFlQ RV9SU0EyMDQ4X1NIQTI1Nik7DQogICAgIERhdGFTaXplICAgPSBMaXN0RW50cnktPlNpZ25hdHVy ZVNpemUgLSBzaXplb2YgKEVGSV9HVUlEKTsNCiAgICAgSXNDZXJ0ICAgICA9IFRSVUU7DQorICB9 IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNl cnRSc2EzMDcyR3VpZCkpIHsNCisgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAoU1RSX0xJ U1RfVFlQRV9SU0EzMDcyX1NIQTM4NCk7DQorICAgIERhdGFTaXplICAgPSBMaXN0RW50cnktPlNp Z25hdHVyZVNpemUgLSBzaXplb2YgKEVGSV9HVUlEKTsNCisgICAgSXNDZXJ0ICAgICA9IFRSVUU7 DQorICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLCAm Z0VmaUNlcnRSc2E0MDk2R3VpZCkpIHsNCisgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAo U1RSX0xJU1RfVFlQRV9SU0E0MDk2X1NIQTUxMik7DQorICAgIERhdGFTaXplICAgPSBMaXN0RW50 cnktPlNpZ25hdHVyZVNpemUgLSBzaXplb2YgKEVGSV9HVUlEKTsNCisgICAgSXNDZXJ0ICAgICA9 IFRSVUU7DQogICB9IGVsc2UgaWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVU eXBlLCAmZ0VmaUNlcnRYNTA5R3VpZCkpIHsNCiAgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tF TiAoU1RSX0xJU1RfVFlQRV9YNTA5KTsNCiAgICAgRGF0YVNpemUgICA9IExpc3RFbnRyeS0+U2ln bmF0dXJlU2l6ZSAtIHNpemVvZiAoRUZJX0dVSUQpOw0KQEAgLTQwMTEsNiArNDA5MSwxMiBAQCBG b3JtYXRIZWxwSW5mbyAoCiAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1aWQgKCZMaXN0RW50cnktPlNp Z25hdHVyZVR5cGUsICZnRWZpQ2VydFNoYTI1Nkd1aWQpKSB7DQogICAgIExpc3RUeXBlSWQgPSBT VFJJTkdfVE9LRU4gKFNUUl9MSVNUX1RZUEVfU0hBMjU2KTsNCiAgICAgRGF0YVNpemUgICA9IDMy Ow0KKyAgfSBlbHNlIGlmIChDb21wYXJlR3VpZCAoJkxpc3RFbnRyeS0+U2lnbmF0dXJlVHlwZSwg JmdFZmlDZXJ0U2hhMzg0R3VpZCkpIHsNCisgICAgTGlzdFR5cGVJZCA9IFNUUklOR19UT0tFTiAo U1RSX0xJU1RfVFlQRV9TSEEzODQpOw0KKyAgICBEYXRhU2l6ZSAgID0gNDg7DQorICB9IGVsc2Ug aWYgKENvbXBhcmVHdWlkICgmTGlzdEVudHJ5LT5TaWduYXR1cmVUeXBlLCAmZ0VmaUNlcnRTaGE1 MTJHdWlkKSkgew0KKyAgICBMaXN0VHlwZUlkID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBF X1NIQTUxMik7DQorICAgIERhdGFTaXplICAgPSA2NDsNCiAgIH0gZWxzZSBpZiAoQ29tcGFyZUd1 aWQgKCZMaXN0RW50cnktPlNpZ25hdHVyZVR5cGUsICZnRWZpQ2VydFg1MDlTaGEyNTZHdWlkKSkg ew0KICAgICBMaXN0VHlwZUlkID0gU1RSSU5HX1RPS0VOIChTVFJfTElTVF9UWVBFX1g1MDlfU0hB MjU2KTsNCiAgICAgRGF0YVNpemUgICA9IDMyOw0KZGlmZiAtLWdpdCBhL1NlY3VyaXR5UGtnL1Zh cmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJ bXBsLmggYi9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhlbnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZp Z0R4ZS9TZWN1cmVCb290Q29uZmlnSW1wbC5oCmluZGV4IDM3YzY2ZjFiOTUuLmFlNTBkOTI5YTcg MTAwNjQ0Ci0tLSBhL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290 Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdJbXBsLmgKKysrIGIvU2VjdXJpdHlQa2cvVmFyaWFi bGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdEeGUvU2VjdXJlQm9vdENvbmZpZ0ltcGwu aApAQCAtODIsNiArODIsOCBAQCBleHRlcm4gIEVGSV9JRlJfR1VJRF9MQUJFTCAgKm1FbmRMYWJl bDsKICNkZWZpbmUgTUFYX0RJR0VTVF9TSVpFICBTSEE1MTJfRElHRVNUX1NJWkUNCiANCiAjZGVm aW5lIFdJTl9DRVJUX1VFRklfUlNBMjA0OF9TSVpFICAyNTYNCisjZGVmaW5lIFdJTl9DRVJUX1VF RklfUlNBMzA3Ml9TSVpFICAzODQNCisjZGVmaW5lIFdJTl9DRVJUX1VFRklfUlNBNDA5Nl9TSVpF ICA1MTINCiANCiAvLw0KIC8vIFN1cHBvcnQgaGFzaCB0eXBlcw0KZGlmZiAtLWdpdCBhL1NlY3Vy aXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9TZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJv b3RDb25maWdTdHJpbmdzLnVuaSBiL1NlY3VyaXR5UGtnL1ZhcmlhYmxlQXV0aGVudGljYXRlZC9T ZWN1cmVCb290Q29uZmlnRHhlL1NlY3VyZUJvb3RDb25maWdTdHJpbmdzLnVuaQppbmRleCAwZDAx NzAxZGU3Li4xYjQ4YWNjODAwIDEwMDY0NAotLS0gYS9TZWN1cml0eVBrZy9WYXJpYWJsZUF1dGhl bnRpY2F0ZWQvU2VjdXJlQm9vdENvbmZpZ0R4ZS9TZWN1cmVCb290Q29uZmlnU3RyaW5ncy51bmkK KysrIGIvU2VjdXJpdHlQa2cvVmFyaWFibGVBdXRoZW50aWNhdGVkL1NlY3VyZUJvb3RDb25maWdE eGUvU2VjdXJlQm9vdENvbmZpZ1N0cmluZ3MudW5pCkBAIC0xMTMsNiArMTEzLDggQEAgU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQKICNzdHJpbmcgU1RSX0ZPUk1f RU5ST0xMX0tFS19GUk9NX0ZJTEVfVElUTEVfSEVMUCAgICAjbGFuZ3VhZ2UgZW4tVVMgIlJlYWQg dGhlIHB1YmxpYyBrZXkgb2YgS0VLIGZyb20gZmlsZSINCiAjc3RyaW5nIFNUUl9GSUxFX0VYUExP UkVSX1RJVExFICAgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiRmlsZSBFeHBsb3Jl ciINCiAjc3RyaW5nIFNUUl9DRVJUX1RZUEVfUlNBMjA0OF9TSEEyNTZfR1VJRCAgICAgICAgICNs YW5ndWFnZSBlbi1VUyAiUlNBMjA0OF9TSEEyNTZfR1VJRCINCisjc3RyaW5nIFNUUl9DRVJUX1RZ UEVfUlNBMzA3Ml9TSEEzODRfR1VJRCAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiUlNBMzA3Ml9T SEEzODRfR1VJRCINCisjc3RyaW5nIFNUUl9DRVJUX1RZUEVfUlNBNDA5Nl9TSEE1MTJfR1VJRCAg ICAgICAgICNsYW5ndWFnZSBlbi1VUyAiUlNBNDA5Nl9TSEE1MTJfR1VJRCINCiAjc3RyaW5nIFNU Ul9DRVJUX1RZUEVfUENLUzdfR1VJRCAgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAi UEtDUzdfR1VJRCINCiAjc3RyaW5nIFNUUl9DRVJUX1RZUEVfU0hBMV9HVUlEICAgICAgICAgICAg ICAgICAgICNsYW5ndWFnZSBlbi1VUyAiU0hBMV9HVUlEIg0KICNzdHJpbmcgU1RSX0NFUlRfVFlQ RV9TSEEyNTZfR1VJRCAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJTSEEyNTZfR1VJ RCINCkBAIC0xMjEsOSArMTIzLDEzIEBAIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50CiAjc3RyaW5nIFNUUl9DRVJUX1RZUEVfWDUwOV9TSEE1MTJfR1VJRCAgICAg ICAgICAgICNsYW5ndWFnZSBlbi1VUyAiWDUwOV9TSEE1MTJfR1VJRCINCiANCiAjc3RyaW5nIFNU Ul9MSVNUX1RZUEVfUlNBMjA0OF9TSEEyNTYgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAi UlNBMjA0OF9TSEEyNTYiDQorI3N0cmluZyBTVFJfTElTVF9UWVBFX1JTQTMwNzJfU0hBMzg0ICAg ICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlJTQTMwNzJfU0hBMzg0Ig0KKyNzdHJpbmcgU1RS X0xJU1RfVFlQRV9SU0E0MDk2X1NIQTUxMiAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJS U0E0MDk2X1NIQTUxMiINCiAjc3RyaW5nIFNUUl9MSVNUX1RZUEVfWDUwOSAgICAgICAgICAgICAg ICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiWDUwOSINCiAjc3RyaW5nIFNUUl9MSVNUX1RZUEVf U0hBMSAgICAgICAgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBlbi1VUyAiU0hBMSINCiAjc3Ry aW5nIFNUUl9MSVNUX1RZUEVfU0hBMjU2ICAgICAgICAgICAgICAgICAgICAgICNsYW5ndWFnZSBl bi1VUyAiU0hBMjU2Ig0KKyNzdHJpbmcgU1RSX0xJU1RfVFlQRV9TSEEzODQgICAgICAgICAgICAg ICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJTSEEzODQiDQorI3N0cmluZyBTVFJfTElTVF9UWVBF X1NIQTUxMiAgICAgICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlNIQTUxMiINCiAj c3RyaW5nIFNUUl9MSVNUX1RZUEVfWDUwOV9TSEEyNTYgICAgICAgICAgICAgICAgICNsYW5ndWFn ZSBlbi1VUyAiWDUwOV9TSEEyNTYiDQogI3N0cmluZyBTVFJfTElTVF9UWVBFX1g1MDlfU0hBMzg0 ICAgICAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIlg1MDlfU0hBMzg0Ig0KICNzdHJpbmcg U1RSX0xJU1RfVFlQRV9YNTA5X1NIQTUxMiAgICAgICAgICAgICAgICAgI2xhbmd1YWdlIGVuLVVT ICJYNTA5X1NIQTUxMiINCi0tIAoyLjI2LjIud2luZG93cy4xCgo= --_002_PH0PR11MB48708F98A4F272DAC1250C7DE12CAPH0PR11MB4870namp_--