From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web09.7032.1614066722817182225 for ; Mon, 22 Feb 2021 23:52:03 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=MFDHRye2; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: w.sheng@intel.com) IronPort-SDR: rVb54BtwiQxlvFkFkVc2P5d846pSJobXWTWISbWNCFYygoJ9O3ehBQbF1JghpiYStib91wSFSV eOmAvlwNN21w== X-IronPort-AV: E=McAfee;i="6000,8403,9903"; a="181285838" X-IronPort-AV: E=Sophos;i="5.81,199,1610438400"; d="scan'208";a="181285838" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2021 23:52:01 -0800 IronPort-SDR: V7R2uqeDYowDuUQNxw2FhLypi+G4RaUX6JO7aRw0gPOq7zN908FjWLZqQ5BTI+11F8rcDQInw1 pYtFei7K0NHA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.81,199,1610438400"; d="scan'208";a="380378101" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga002.jf.intel.com with ESMTP; 22 Feb 2021 23:52:01 -0800 Received: from orsmsx605.amr.corp.intel.com (10.22.229.18) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Mon, 22 Feb 2021 23:52:01 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx605.amr.corp.intel.com (10.22.229.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2 via Frontend Transport; Mon, 22 Feb 2021 23:52:01 -0800 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.105) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2106.2; Mon, 22 Feb 2021 23:51:58 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jmNNdEU7UjOjir+eAvPo7a5y/6DDdNSyUDRZOQPEIoJUL+MtcLa1b08F3DvUA5Ehz4ZG9Mp7DKyYCXtzTrg2uygq9OoNw8hOaOEuGyp4MaJA7mRL0YM6jKPMdLgzDL8UaDoWodjQTyHUnhqsf+FfPMaJCZ9zv5PuyPBE8qyBYaQT0fWGYwces4g1VeEjf68UhTviwnkz9N7n+x+x1+iq7tU1U18x9aoJ4IeXBJfHnC+iXL4jtdPYS4dZqtnp6Qaq2Jj80zhN9J4JAoKQebyUoDLMxw1xlBokFRTQidGbPcObV6yWQgWHF/CMSiyRdM/Pm3xGyZB1r2F/4i+aKM4BIg== 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-SenderADCheck; bh=MPbHIJZ7sA+LzFBf8BmcOgAGIKzht8QxqsvIfSM1CIs=; b=HamVCVK6lY1aONM8TcAEPG2zAlJFJ00GANSR67XNXFYNY94kcLSCJCd9m+dUeUnUjLjzyjsyBXtgfnlYeLiYOVQBlI63VUhtncsV7fg5VTs32NlixR5gUhvGrF/wYZF8/ltvu2wkpV3QlhjZONt1FSMK9u9+L0CfvvUkfK9YZxAQYbeKg4tQrLyUJQ7p5lRqFPPIeIltXzOW5j7uqKY2pCApTJ2QpFh99kBN/Oa2yJMMUIZJkTks+J9tYqZM2vHmQoMLO0ne3WPle3Qyw7NtBlzwtdno/csZT3sfw+0L7yBmQYnR8nnCnzham0eWavZwjhkCDD3rQ9dHMOIjfUwD4A== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MPbHIJZ7sA+LzFBf8BmcOgAGIKzht8QxqsvIfSM1CIs=; b=MFDHRye26cYk2vS6rBDX+ybKCEU9eSJsMCWHn7fk0X41jlXL16iYx9At0UxymLBf5buzhfNWMt6+6WwnsIz8kJVBWkId0FjXzt2PlC5ecU7JCLHGW29Iy3X1BXZ7hu5IBHGzsU9vxrNyp8UeRKiyNBiFrTk2BPPdxbcY79ZHfdI= Received: from MN2PR11MB4479.namprd11.prod.outlook.com (2603:10b6:208:17b::32) by MN2PR11MB4112.namprd11.prod.outlook.com (2603:10b6:208:137::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3868.33; Tue, 23 Feb 2021 07:51:57 +0000 Received: from MN2PR11MB4479.namprd11.prod.outlook.com ([fe80::cc6b:3ea8:355a:cae8]) by MN2PR11MB4479.namprd11.prod.outlook.com ([fe80::cc6b:3ea8:355a:cae8%6]) with mapi id 15.20.3868.033; Tue, 23 Feb 2021 07:51:56 +0000 From: "Sheng Wei" To: "devel@edk2.groups.io" , "Sheng, W" , "Ni, Ray" , "Yao, Jiewen" CC: "Dong, Eric" , Laszlo Ersek , "Kumar, Rahul1" , "Feng, Roger" Subject: Re: [edk2-devel] [PATCH v5 2/2] UefiCpuPkg/CpuExceptionHandlerLib: Clear CET shadow stack token busy bit Thread-Topic: [edk2-devel] [PATCH v5 2/2] UefiCpuPkg/CpuExceptionHandlerLib: Clear CET shadow stack token busy bit Thread-Index: AQHXBzautDo4PpneEE+acZHjdCHMCKpjcmVAgAHuwWA= Date: Tue, 23 Feb 2021 07:51:56 +0000 Message-ID: References: <20210220031501.24284-1-w.sheng@intel.com> <1665564E9CEC9D4A.5517@groups.io> <1665F02F00621E09.19946@groups.io> In-Reply-To: <1665F02F00621E09.19946@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: edk2.groups.io; dkim=none (message not signed) header.d=none;edk2.groups.io; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.102.204.37] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 465fc365-8b6b-4997-256f-08d8d7cfe4cd x-ms-traffictypediagnostic: MN2PR11MB4112: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RoI2k47fqXFmEOblnnjkCZryTHCdf7m6KoBPB9rK8x7dzpgu3SQ+bijtpKiCd5JHqBikCE7EjpHAmWEVCNJl42B4Cg1l/WdDHmps3RoM4SliWpv+pgsbBbFoFLQGbuBVdSNLhL/RpCXR6TbtliHoN01CWk+9HQQr9sWhRXsUyZecy4RJGCb3ywHBz6+biV+NMxJ/pqP8fwx6ynuytRGlJrfflE0ZVuGcAw72hstKbMHECgAkEX75A7LuPP0w1O3ZRFqMThGstz+ZMKb98gKv7zcUBZHTe/TAY3I9XsmccefBYsuxbHL+lvJG0RQ5NMdmNmiP4jdhLxFCii8rU6A7BmwHcoZQUL4p9t4zh51I//NBqzvk917th1/GnnyO2/QDReTUXWZRAu7SPiHklEWQIY38mQHlj0WY6Y2oaxxSrOM9lbgcrb5oETY0mtM9tQpvyQsSITktMbsJH99A0YoEmb3ax1AG1pdWWYqFFlaCE6QLnWG67v7UNQ40zhGY2IM0zmnPSf5iRkYXFIq6BWOp8qgxE7uVV/JSNGAGSs9mTozJjtOFAaETgxlAsQk4m9rF2qW5uIOea4WFkSIpJU1PC5zSbVjSehPO2JoRloDipfE= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR11MB4479.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(366004)(376002)(136003)(346002)(39860400002)(186003)(2906002)(55016002)(9686003)(26005)(966005)(8936002)(30864003)(33656002)(71200400001)(8676002)(66476007)(19627235002)(66556008)(4326008)(6636002)(110136005)(52536014)(83380400001)(478600001)(54906003)(6506007)(316002)(7696005)(53546011)(66946007)(76116006)(107886003)(86362001)(64756008)(66446008)(5660300002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?gb2312?B?cFl6eUR5MDFBWE9uTFZ3KzAra0RBNlpKM1BseVhqcyswZVp5RjBNSXZaQVNZ?= =?gb2312?B?bC9ZRDZwWDhLMCt6N0VMNGxZdGRoUWVYNGpCWDFvYlVwUzdwNTZrZnhPNVZT?= =?gb2312?B?ek5FYlA5NEd1VnNyLzd4Qk5BcmpUN0RhZWozUVFsMWZRSnhQbVdaOWl1eHVs?= =?gb2312?B?dHlZbHNqYlFQSklWKzB4WEhPRU9IMGF6bDZHbDlwQUw3TU1VWVNwVnp0VGh2?= =?gb2312?B?a0x6aVVFUjEvSWY4d21reDYxbkQ5ZnM3VjI2UGRtNU5xQ3k4bUdIODhZTkpI?= =?gb2312?B?ZVRxK21lcUVudHJwT285R2tZTERPOWlrNEpsVHlmN01SNDZFQVAwNW9qaW1E?= =?gb2312?B?elg1YWxXd2JjN0REYldHR1VJdFZ0MjUxWTAxQzdhUVZ6R1lOZ0x1NWdBZGVw?= =?gb2312?B?UHJNa2xUWHFEeUNsY0VWR3JOcTVZUHlLWStzL2d2THB5T1plTEdjNlAyU1N0?= =?gb2312?B?UHh3bVlVQmVCRjFPak50NU9kcnoweWo5RUhIV0E1cDVWaXBXQkZ4bXJXdC9j?= =?gb2312?B?Ui9ma1htWG45UW1idzNNSTRVUHc1elo2MVltN0trWFBxZk93YWhweWxyNVZv?= =?gb2312?B?TmpQdGRZSWlvYTRDTkUzNFBqMm9Ta01zb09sS1o3a0FIQ0s0cVd5dlhUNlZo?= =?gb2312?B?cmJVU2h2L2Rvb3J2ZkFEZlpmMk9hSnh3MWRyWis3a3RVd3p4enBnVnBHWis5?= =?gb2312?B?YUFPZFhDc1VZMFZtMkVzZEN0YmxRNVBhS1J2ZkZDaFlRNldxOElQakVFbStL?= =?gb2312?B?R0YxR0lzRVJiNk5uV0N0QzZpcGlZcEsrekJSZ2tBYzNaMnMrdDNwZU52QnRs?= =?gb2312?B?NlRHMEtuRDZqQmFDKysrNmllQmJrMFUzWmd2eWxlTVB4aDAzbXdiZTEvNDFk?= =?gb2312?B?ZzdDZzZxWlpra0VIdWxrVldaSzNIVU5pWG1oRy9kYkN2R3dNaERxZ3ZQTDdX?= =?gb2312?B?alRCMWJRcXk0Rmg0a24rZmJPd01nTkg3Y3UvNEVKVzdhU1A3c1R1K2tZSHg5?= =?gb2312?B?YlVvOEVid3lPMjBJbmczVTZOWnd5bUNkWG1FdTNVci9Eai93Sm0rTEFUTHlE?= =?gb2312?B?a2xxMHNxRm5UZ1d3QzdxeExJaCtuUXhyMXRRY2oycXpzRHQ3NGZNSytIS0xr?= =?gb2312?B?bWpndFZSOWZmdFRGVjBSM2dkUXBza2ttNUNKMDhhTTdvOTdINUVnN2dRRXZj?= =?gb2312?B?ZzFkQldrWnFXbnRkZGpmR2FUZEV3WkNiOFMvYmlWT0ozR0s0MSt3VVlPTHNG?= =?gb2312?B?VGh1TUVBSkVHM2RRWmtjWUgwenlsOXpoNTdHOUVZcWxaa1A2VU16bTVhZFdE?= =?gb2312?B?SVBQeTNZclNOQTd2MTVLMW9FK2FZYW5XVnZYK1FuYlBSN3NvT29ibDlkMXcv?= =?gb2312?B?NEZUVEo2elhZZWUvR2YwWW91Z0M5M2tURzZFS2ZpNXNZV2JPdThNazN1Tmta?= =?gb2312?B?OXpJWWdkODJvaFQzcjhpcDl2MG4zSTBiNW5Md3MzQ2gzSUxkKzBmME5SaWpU?= =?gb2312?B?VGNjSVduek5OanR3NFdBODZJek5YWmVFOXdGcjNQNk15bEtWSW1oUXJOQlFG?= =?gb2312?B?Nnl3RXlFOGhxU3VDY3craGFDRjhkdVFZVTVJQXQwRVg1OUdZWXdBS2ZGcnpJ?= =?gb2312?B?ZmlWa3U0eGErT2lGRWw2SFl4VnZLYjZWODFZTlliaUt4TCs2SWx1cWpEZ1RC?= =?gb2312?B?U0RXNlBYVEwrY3pwa04wTjlkaFJPalF1VWxEYnZtSnA2VGtCeDBBR1c2NjBJ?= =?gb2312?Q?8pMOVDdDqAIyoPxeNxo2rdozWCxOMTFOzS/DtyK?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR11MB4479.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 465fc365-8b6b-4997-256f-08d8d7cfe4cd X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2021 07:51:56.7598 (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: cjDfMOI5fckViNwqm7oU7ykew2do1CaCZ+lM7gD70S+a9l9sQBCRexrdYRv4pjho7H4i7tUbOXJq2dot86r+0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4112 Return-Path: w.sheng@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgSmlld2VuLCBSYXksDQpDb3VsZCB5b3UgaGVscCB0byByZXZpZXcgYW5kIGdpdmUgUmV2aWV3 LWJ5IGZvciB0aGlzIHBhdGNoIGZvciBmaXggQ0VUIHNoYWRvdyBzdGFjayB0b2tlbiBidXN5IGJp dCBpc3N1ZSA/DQpBcyB0aGUgY29tbW9uIGluIHY1IHBhdGNoIDEvMiBieSBMaW1pbiwgc2luY2Ug aXQgaXMgYSBidWcgZml4LCBpdCBjYW4gc3RpbGwgYmUgbWVyZ2VkIGluIDIwMjEwMiBzdGFibGUg dGFnIHNvZnQgZmVhdHVyZSBmcmVlemUgcGhhc2UuICANCmh0dHBzOi8vZWRrMi5ncm91cHMuaW8v Zy9kZXZlbC9tZXNzYWdlLzcyMDEzDQpUaGFuayB5b3UuDQpCUg0KU2hlbmcgV2VpDQoNCj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRl dmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgU2hlbmcNCj4gV2VpDQo+IFNlbnQ6IDIw MjHE6jLUwjIyyNUgMTA6MTUNCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBTaGVuZywgVyA8 dy5zaGVuZ0BpbnRlbC5jb20+DQo+IENjOiBEb25nLCBFcmljIDxlcmljLmRvbmdAaW50ZWwuY29t PjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47IExhc3psbw0KPiBFcnNlayA8bGVyc2VrQHJl ZGhhdC5jb20+OyBLdW1hciwgUmFodWwxIDxyYWh1bDEua3VtYXJAaW50ZWwuY29tPjsgWWFvLA0K PiBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgRmVuZywgUm9nZXIgPHJvZ2VyLmZlbmdA aW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2NSAyLzJdDQo+ IFVlZmlDcHVQa2cvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYjogQ2xlYXIgQ0VUIHNoYWRvdyBzdGFj ayB0b2tlbiBidXN5IGJpdA0KPiANCj4gSGkgSmlld2VuLA0KPiBUaGFuayB5b3UgZm9yIHJldmll dyB0aGUgcGF0Y2guDQo+IENvdWxkIHlvdSBnaXZlIHJldmlldy1ieSBvbiB0aGlzIHBhdGNoPw0K PiBUaGFuayB5b3UuDQo+IEJSDQo+IFNoZW5nIFdlaQ0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbyA8ZGV2ZWxAZWRr Mi5ncm91cHMuaW8+IE9uIEJlaGFsZiBPZiBTaGVuZw0KPiA+IFdlaQ0KPiA+IFNlbnQ6IDIwMjHE 6jLUwjIwyNUgMTE6MTUNCj4gPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gPiBDYzogRG9u ZywgRXJpYyA8ZXJpYy5kb25nQGludGVsLmNvbT47IE5pLCBSYXkgPHJheS5uaUBpbnRlbC5jb20+ Ow0KPiA+IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+OyBLdW1hciwgUmFodWwxDQo+ ID4gPHJhaHVsMS5rdW1hckBpbnRlbC5jb20+OyBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRl bC5jb20+OyBGZW5nLA0KPiA+IFJvZ2VyIDxyb2dlci5mZW5nQGludGVsLmNvbT4NCj4gPiBTdWJq ZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIHY1IDIvMl0gVWVmaUNwdVBrZy9DcHVFeGNlcHRpb25I YW5kbGVyTGliOg0KPiA+IENsZWFyIENFVCBzaGFkb3cgc3RhY2sgdG9rZW4gYnVzeSBiaXQNCj4g Pg0KPiA+IElmIENFVCBzaGFkb3dzIHN0YWNrIGZlYXR1cmUgZW5hYmxlZCBpbiBTTU0gYW5kIHN0 YWNrIHN3aXRjaCBpcyBlbmFibGVkLg0KPiA+IFdoZW4gY29kZSBleGVjdXRlIGZyb20gU01NIGhh bmRsZXIgdG8gU01NIGV4Y2VwdGlvbiwgQ1BVIHdpbGwgY2hlY2sNCj4gPiBTTU0gZXhjZXB0aW9u IHNoYWRvdyBzdGFjayB0b2tlbiBidXN5IGJpdCBpZiBpdCBpcyBjbGVhcmVkIG9yIG5vdC4NCj4g PiBJZiBpdCBpcyBzZXQsIGl0IHdpbGwgdHJpZ2dlciAjREYgZXhjZXB0aW9uLg0KPiA+IElmIGl0 IGlzIG5vdCBzZXQsIENQVSB3aWxsIHNldCB0aGUgYnVzeSBiaXQgd2hlbiBlbnRlciBTTU0gZXhj ZXB0aW9uLg0KPiA+IFNvLCB0aGUgYnVzeSBiaXQgc2hvdWxkIGJlIGNsZWFyZWQgd2hlbiByZXR1 cm4gYmFjayBmb3JtIFNNTSBleGNlcHRpb24NCj4gPiB0byBTTU0gaGFuZGxlci4gT3RoZXJ3aXNl LCBrZWVwaW5nIGJ1c3kgYml0IDEgd2lsbCBjYXVzZSB0byB0cmlnZ2VyDQo+ID4gI0RGIGV4Y2Vw dGlvbiB3aGVuIGVudGVyIFNNTSBleGNlcHRpb24gbmV4dCB0aW1lLg0KPiA+IFNvLCB3ZSB1c2Ug aW5zdHJ1Y3Rpb24gU0FWRVBSRVZTU1AsIENMUlNTQlNZIGFuZCBSU1RPUlNTUCB0byBjbGVhciB0 aGUNCj4gPiBzaGFkb3cgc3RhY2sgdG9rZW4gYnVzeSBiaXQgYmVmb3JlIFJFVEYgaW5zdHJ1Y3Rp b24gaW4gU01NIGV4Y2VwdGlvbi4NCj4gPg0KPiA+IFJFRjogaHR0cHM6Ly9idWd6aWxsYS50aWFu b2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTkyDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBT aGVuZyBXZWkgPHcuc2hlbmdAaW50ZWwuY29tPg0KPiA+IENjOiBFcmljIERvbmcgPGVyaWMuZG9u Z0BpbnRlbC5jb20+DQo+ID4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPiBDYzog TGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4NCj4gPiBDYzogUmFodWwgS3VtYXIgPHJh aHVsMS5rdW1hckBpbnRlbC5jb20+DQo+ID4gQ2M6IEppZXdlbiBZYW8gPGppZXdlbi55YW9AaW50 ZWwuY29tPg0KPiA+IENjOiBSb2dlciBGZW5nIDxyb2dlci5mZW5nQGludGVsLmNvbT4NCj4gPiAt LS0NCj4gPiAgLi4uL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaWIuaW5mICAgICAgICAgICAgICAg ICAgfCAgMyArKw0KPiA+ICAuLi4vUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5pbmYgICAgICAg ICAgICAgICAgICB8ICAzICsrDQo+ID4gIC4uLi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyTGli LmluZiAgICAgICAgICAgICAgIHwgIDQgKysNCj4gPiAgLi4uL1NtbUNwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIuaW5mICAgICAgICAgICAgICAgICAgfCAgMyArKw0KPiA+ICAuLi4vWDY0L1hjb2RlNUV4 Y2VwdGlvbkhhbmRsZXJBc20ubmFzbSAgICAgICAgICAgICB8IDQ2DQo+ID4gKysrKysrKysrKysr KysrKysrKysrLQ0KPiA+ICAuLi4vWGNvZGU1U2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi5p bmYgICAgICAgICB8ICA0ICsrDQo+ID4gIFVlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1Nt bUZ1bmNzQXJjaC5jICAgICAgIHwgMTUgKysrKysrLQ0KPiA+ICA3IGZpbGVzIGNoYW5nZWQsIDc1 IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0DQo+ID4N Cj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9EeGVDcHVFeGNl cHRpb25IYW5kbGVyTGliLg0KPiA+IGluZg0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0aW9uSGFuZGxlckxpYg0KPiA+IC5pbmYN Cj4gPiBpbmRleCAwN2IzNGM5MmE4Li5lN2E4MWJlYmRiIDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+ IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvRHhlQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi4NCj4gPiBpbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFy eS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL0R4ZUNwdUV4Y2VwdGlvbkhhbmRsZXJMaQ0KPiA+ICsr KyBiLmluZg0KPiA+IEBAIC00Myw2ICs0Myw5IEBADQo+ID4gICAgZ1VlZmlDcHVQa2dUb2tlblNw YWNlR3VpZC5QY2RDcHVTdGFja1N3aXRjaEV4Y2VwdGlvbkxpc3QNCj4gPiAgICBnVWVmaUNwdVBr Z1Rva2VuU3BhY2VHdWlkLlBjZENwdUtub3duR29vZFN0YWNrU2l6ZQ0KPiA+DQo+ID4gK1tGZWF0 dXJlUGNkXQ0KPiA+ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U21tU3RhY2tH dWFyZCAgICAgICAgICAgICAgICAgICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ICsNCj4gPiAgW1Bh Y2thZ2VzXQ0KPiA+ICAgIE1kZVBrZy9NZGVQa2cuZGVjDQo+ID4gICAgTWRlTW9kdWxlUGtnL01k ZU1vZHVsZVBrZy5kZWMNCj4gPiBkaWZmIC0tZ2l0DQo+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJh cnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9QZWlDcHVFeGNlcHRpb25IYW5kbGVyTGliLg0KPiA+ IGkNCj4gPiBuZg0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRs ZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi4NCj4gPiBpDQo+ID4gbmYNCj4gPiBpbmRl eCBmZWFlN2IzZTA2Li5jZjViZmU0MDgzIDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvVWVmaUNw dVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvUGVpQ3B1RXhjZXB0aW9uSGFuZGxl ckxpYi4NCj4gPiBpDQo+ID4gbmYNCj4gPiArKysNCj4gPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9D cHVFeGNlcHRpb25IYW5kbGVyTGliL1BlaUNwdUV4Y2VwdGlvbkhhbmRsZXJMaQ0KPiA+ICsrKyBi LmluZg0KPiA+IEBAIC01NywzICs1Nyw2IEBADQo+ID4gIFtQY2RdDQo+ID4gICAgZ0VmaU1kZU1v ZHVsZVBrZ1Rva2VuU3BhY2VHdWlkLlBjZENwdVN0YWNrR3VhcmQgICAgIyBDT05TVU1FUw0KPiA+ DQo+ID4gK1tGZWF0dXJlUGNkXQ0KPiA+ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNk Q3B1U21tU3RhY2tHdWFyZCAgICAgICAgICAgICAgICAgICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ ICsNCj4gPiBkaWZmIC0tZ2l0DQo+ID4NCj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0 aW9uSGFuZGxlckxpYi9TZWNQZWlDcHVFeGNlcHRpb25IYW5kbGVyDQo+ID4gTGliLmluZg0KPiA+ DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1 RXhjZXB0aW9uSGFuZGxlcg0KPiA+IExpYi5pbmYNCj4gPiBpbmRleCA5NjdjYjYxYmE2Li44YWU0 ZmVhZTYyIDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4 Y2VwdGlvbkhhbmRsZXJMaWIvU2VjUGVpQ3B1RXhjZXB0aW9uSGFuZGxlcg0KPiA+IExpYi5pbmYN Cj4gPiArKysNCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVy TGliL1NlY1BlaUNwdUV4Y2VwdGlvbkhhbmRsZQ0KPiA+ICsrKyByTGliLmluZg0KPiA+IEBAIC00 OSwzICs0OSw3IEBADQo+ID4gICAgTG9jYWxBcGljTGliDQo+ID4gICAgUGVDb2ZmR2V0RW50cnlQ b2ludExpYg0KPiA+ICAgIFZtZ0V4aXRMaWINCj4gPiArDQo+ID4gK1tGZWF0dXJlUGNkXQ0KPiA+ ICsgIGdVZWZpQ3B1UGtnVG9rZW5TcGFjZUd1aWQuUGNkQ3B1U21tU3RhY2tHdWFyZCAgICAgICAg ICAgICAgICAgICAgIyMNCj4gPiBDT05TVU1FUw0KPiA+ICsNCj4gPiBkaWZmIC0tZ2l0DQo+ID4N Cj4gYS9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9TbW1DcHVFeGNl cHRpb25IYW5kbGVyTGkNCj4gPiBiLmluZg0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJyYXJ5L0Nw dUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0aW9uSGFuZGxlckxpDQo+ID4gYi5pbmYN Cj4gPiBpbmRleCBlYTViMTBiNWM4Li5jOWYyMGRhMDU4IDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+ IGEvVWVmaUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvU21tQ3B1RXhjZXB0 aW9uSGFuZGxlckxpDQo+ID4gYi5pbmYNCj4gPiArKysNCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGli cmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1NtbUNwdUV4Y2VwdGlvbkhhbmRsZXJMaQ0KPiA+ ICsrKyBiLmluZg0KPiA+IEBAIC01MywzICs1Myw2IEBADQo+ID4gICAgRGVidWdMaWINCj4gPiAg ICBWbWdFeGl0TGliDQo+ID4NCj4gPiArW0ZlYXR1cmVQY2RdDQo+ID4gKyAgZ1VlZmlDcHVQa2dU b2tlblNwYWNlR3VpZC5QY2RDcHVTbW1TdGFja0d1YXJkICAgICAgICAgICAgICAgICAgICAjIw0K PiA+IENPTlNVTUVTDQo+ID4gKw0KPiA+IGRpZmYgLS1naXQNCj4gPg0KPiBhL1VlZmlDcHVQa2cv TGlicmFyeS9DcHVFeGNlcHRpb25IYW5kbGVyTGliL1g2NC9YY29kZTVFeGNlcHRpb25IYW5kbGUN Cj4gPiByQXNtLm5hc20NCj4gPg0KPiBiL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVFeGNlcHRpb25I YW5kbGVyTGliL1g2NC9YY29kZTVFeGNlcHRpb25IYW5kbGUNCj4gPiByQXNtLm5hc20NCj4gPiBp bmRleCAyNmNhZTU2Y2M1Li5lYmUwZWVjODc0IDEwMDY0NA0KPiA+IC0tLQ0KPiA+DQo+IGEvVWVm aUNwdVBrZy9MaWJyYXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L1hjb2RlNUV4Y2VwdGlv bkhhbmRsZQ0KPiA+IHJBc20ubmFzbQ0KPiA+ICsrKw0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWDY0L1hjb2RlNUV4Y2VwdGlvbkhhbmRsDQo+ID4g KysrIGVyQXNtLm5hc20NCj4gPiBAQCAtMTMsNiArMTMsNyBAQA0KPiA+ICA7IE5vdGVzOg0KPiA+ ICA7DQo+ID4NCj4gPiA7LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gLS0tLS0tLS0tDQo+ID4gKyVpbmNsdWRl ICJOYXNtLmluYyINCj4gPg0KPiA+ICA7DQo+ID4gIDsgQ29tbW9uRXhjZXB0aW9uSGFuZGxlcigp DQo+ID4gQEAgLTIzLDYgKzI0LDcgQEANCj4gPiAgZXh0ZXJuIEFTTV9QRlgobUVycm9yQ29kZUZs YWcpICAgIDsgRXJyb3IgY29kZSBmbGFncyBmb3IgZXhjZXB0aW9ucw0KPiA+ICBleHRlcm4gQVNN X1BGWChtRG9GYXJSZXR1cm5GbGFnKSAgOyBEbyBmYXIgcmV0dXJuIGZsYWcgIGV4dGVybg0KPiA+ IEFTTV9QRlgoQ29tbW9uRXhjZXB0aW9uSGFuZGxlcikNCj4gPiArZXh0ZXJuIEFTTV9QRlgoRmVh dHVyZVBjZEdldCAoUGNkQ3B1U21tU3RhY2tHdWFyZCkpDQo+ID4NCj4gPiAgU0VDVElPTiAuZGF0 YQ0KPiA+DQo+ID4gQEAgLTM3MSw4ICszNzMsNDggQEAgRG9SZXR1cm46DQo+ID4gICAgICBwdXNo ICAgIHF3b3JkIFtyYXggKyAweDE4XSAgICAgICA7IHNhdmUgRUZMQUdTIGluIG5ldyBsb2NhdGlv bg0KPiA+ICAgICAgbW92ICAgICByYXgsIFtyYXhdICAgICAgICA7IHJlc3RvcmUgcmF4DQo+ID4g ICAgICBwb3BmcSAgICAgICAgICAgICAgICAgICAgIDsgcmVzdG9yZSBFRkxBR1MNCj4gPiAtICAg IERCICAgICAgMHg0OCAgICAgICAgICAgICAgIDsgcHJlZml4IHRvIGNvbXBvc2l0ZSAicmV0cSIg d2l0aCBuZXh0ICJyZXRmIg0KPiA+IC0gICAgcmV0ZiAgICAgICAgICAgICAgICAgICAgICA7IGZh ciByZXR1cm4NCj4gPiArDQo+ID4gKyAgICA7IFRoZSBmb2xsb3cgYWxnb3JpdGhtIGlzIHVzZWQg Zm9yIGNsZWFyIHNoYWRvdyBzdGFjayB0b2tlbiBidXN5IGJpdC4NCj4gPiArICAgIDsgVGhlIGNv bW1lbnQgaXMgYmFzZWQgb24gdGhlIHNhbXBsZSBzaGFkb3cgc3RhY2suDQo+ID4gKyAgICA7IFRo ZSBzYW1wbGUgc2hhZG93IHN0YWNrIGxheW91dCA6DQo+ID4gKyAgICA7IEFkZHJlc3MgfCBDb250 ZXh0DQo+ID4gKyAgICA7ICAgICAgICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rDQo+ID4g KyAgICA7ICAweEZEMCAgfCAgIEZSRUUgICAgICAgICAgICAgICAgICB8IGl0IGlzIDB4RkQ4fDB4 MDJ8KExNQSAmIENTLkwpLCBhZnRlcg0KPiA+IFNBVkVQUkVWU1NQLg0KPiA+ICsgICAgOyAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICAgOyAgMHhGRDggIHwgIFBy ZXYgU1NQICAgICAgICAgICAgICAgfA0KPiA+ICsgICAgOyAgICAgICAgICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKw0KPiA+ICsgICAgOyAgMHhGRTAgIHwgICBSSVAgICAgICAgICAgICAgICAg ICAgfA0KPiA+ICsgICAgOyAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ ICsgICAgOyAgMHhGRTggIHwgICBDUyAgICAgICAgICAgICAgICAgICAgfA0KPiA+ICsgICAgOyAg ICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICAgOyAgMHhGRjAgIHwg IDB4RkYwIHwgQlVTWSAgICAgICAgICAgfCBCVVNZIGZsYWcgY2xlYXJlZCBhZnRlciBDTFJTU0JT WQ0KPiA+ICsgICAgOyAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsg ICAgOyAgMHhGRjggIHwgMHhGRDh8MHgwMnwoTE1BICYgQ1MuTCkgfA0KPiA+ICsgICAgOyAgICAg ICAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKw0KPiA+ICsgICAgOyBJbnN0cnVjdGlvbnMg Zm9yIEludGVsIENvbnRyb2wgRmxvdyBFbmZvcmNlbWVudCBUZWNobm9sb2d5DQo+ID4gKyAoQ0VU KSBhcmUNCj4gPiBzdXBwb3J0ZWQgc2luY2UgTkFTTSB2ZXJzaW9uIDIuMTUuMDEuDQo+ID4gKyAg ICBwdXNoICAgICByYXggICAgICAgICAgICAgICAgOyBTU1Agc2hvdWxkIGJlIDB4RkQ4IGF0IHRo aXMgcG9pbnQNCj4gPiArICAgIGNtcCAgICAgIGJ5dGUgW2R3b3JkIEFTTV9QRlgoRmVhdHVyZVBj ZEdldA0KPiA+IChQY2RDcHVTbW1TdGFja0d1YXJkKSldLCAwDQo+ID4gKyAgICBqeiAgICAgICBD ZXREb25lDQo+ID4gKyAgICBtb3YgICAgICByYXgsIGNyNA0KPiA+ICsgICAgYW5kICAgICAgcmF4 LCAweDgwMDAwMCAgICAgIDsgY2hlY2sgaWYgQ0VUIGlzIGVuYWJsZWQNCj4gPiArICAgIGp6ICAg ICAgIENldERvbmUNCj4gPiArICAgIG1vdiAgICAgIHJheCwgMHgwNCAgICAgICAgICA7IGFkdmFu Y2UgcGFzdCBjczpsaXA6cHJldnNzcDtzdXBlcnZpc29yIHNoYWRvdw0KPiA+IHN0YWNrIHRva2Vu DQo+ID4gKyAgICBJTkNTU1BfUkFYICAgICAgICAgICAgICAgICAgOyBBZnRlciB0aGlzIFNTUCBz aG91bGQgYmUgMHhGRjgNCj4gPiArICAgIFNBVkVQUkVWU1NQICAgICAgICAgICAgICAgICA7IG5v dyB0aGUgc2hhZG93IHN0YWNrIHJlc3RvcmUgdG9rZW4gd2lsbCBiZQ0KPiA+IGNyZWF0ZWQgYXQg MHhGRDANCj4gPiArICAgIFJFQURTU1BfUkFYICAgICAgICAgICAgICAgICA7IFJlYWQgbmV3IFNT UCwgU1NQIHNob3VsZCBiZSAweDEwMDANCj4gPiArICAgIHB1c2ggICAgIHJheA0KPiA+ICsgICAg c3ViICAgICAgcmF4LCAweDEwDQo+ID4gKyAgICBDTFJTU0JTWV9SQVggICAgICAgICAgICAgICAg OyBDbGVhciB0b2tlbiBhdCAweEZGMCwgU1NQIHNob3VsZCBiZSAwIGFmdGVyIHRoaXMNCj4gPiAr ICAgIHN1YiAgICAgIHJheCwgMHgyMA0KPiA+ICsgICAgUlNUT1JTU1BfUkFYICAgICAgICAgICAg ICAgIDsgUmVzdG9yZSB0byB0b2tlbiBhdCAweEZEMCwgbmV3IFNTUCB3aWxsIGJlDQo+IDB4RkQw DQo+ID4gKyAgICBwb3AgICAgICByYXgNCj4gPiArICAgIG1vdiAgICAgIHJheCwgMHgwMSAgICAg ICAgICA7IFBvcCBvZmYgdGhlIG5ldyBzYXZlIHRva2VuIGNyZWF0ZWQNCj4gPiArICAgIElOQ1NT UF9SQVggICAgICAgICAgICAgICAgICA7IFNTUCBzaG91bGQgYmUgMHhGRDggbm93DQo+ID4gK0Nl dERvbmU6DQo+ID4gKyAgICBwb3AgICAgICByYXggICAgICAgICAgICAgICAgOyByZXN0b3JlIHJh eA0KPiA+ICsNCj4gPiArICAgIERCICAgICAgIDB4NDggICAgICAgICAgICAgICA7IHByZWZpeCB0 byBjb21wb3NpdGUgInJldHEiIHdpdGggbmV4dCAicmV0ZiINCj4gPiArICAgIHJldGYgICAgICAg ICAgICAgICAgICAgICAgICA7IGZhciByZXR1cm4NCj4gPiAgRG9JcmV0Og0KPiA+ICAgICAgaXJl dHENCj4gPg0KPiA+IGRpZmYgLS1naXQNCj4gPg0KPiBhL1VlZmlDcHVQa2cvTGlicmFyeS9DcHVF eGNlcHRpb25IYW5kbGVyTGliL1hjb2RlNVNlY1BlaUNwdUV4Y2VwdGlvbg0KPiA+IEhhbmRsZXJM aWIuaW5mDQo+ID4NCj4gYi9VZWZpQ3B1UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxp Yi9YY29kZTVTZWNQZWlDcHVFeGNlcHRpb24NCj4gPiBIYW5kbGVyTGliLmluZg0KPiA+IGluZGV4 IDc0M2MyYWE3NjYuLmExNWYxMjVkNWIgMTAwNjQ0DQo+ID4gLS0tDQo+ID4NCj4gYS9VZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YY29kZTVTZWNQZWlDcHVFeGNlcHRp b24NCj4gPiBIYW5kbGVyTGliLmluZg0KPiA+ICsrKw0KPiA+DQo+IGIvVWVmaUNwdVBrZy9MaWJy YXJ5L0NwdUV4Y2VwdGlvbkhhbmRsZXJMaWIvWGNvZGU1U2VjUGVpQ3B1RXhjZXB0aW9uDQo+ID4g KysrIEhhbmRsZXJMaWIuaW5mDQo+ID4gQEAgLTU0LDMgKzU0LDcgQEANCj4gPiAgICBMb2NhbEFw aWNMaWINCj4gPiAgICBQZUNvZmZHZXRFbnRyeVBvaW50TGliDQo+ID4gICAgVm1nRXhpdExpYg0K PiA+ICsNCj4gPiArW0ZlYXR1cmVQY2RdDQo+ID4gKyAgZ1VlZmlDcHVQa2dUb2tlblNwYWNlR3Vp ZC5QY2RDcHVTbW1TdGFja0d1YXJkICAgICAgICAgICAgICAgICAgICAjIw0KPiA+IENPTlNVTUVT DQo+ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9VZWZpQ3B1UGtnL1BpU21tQ3B1RHhlU21tL1g2NC9T bW1GdW5jc0FyY2guYw0KPiA+IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9YNjQvU21tRnVu Y3NBcmNoLmMNCj4gPiBpbmRleCAyOGY4ZThlMTMzLi43ZWYzYjFkNDg4IDEwMDY0NA0KPiA+IC0t LSBhL1VlZmlDcHVQa2cvUGlTbW1DcHVEeGVTbW0vWDY0L1NtbUZ1bmNzQXJjaC5jDQo+ID4gKysr IGIvVWVmaUNwdVBrZy9QaVNtbUNwdUR4ZVNtbS9YNjQvU21tRnVuY3NBcmNoLmMNCj4gPiBAQCAt MTczLDYgKzE3Myw3IEBAIEluaXRTaGFkb3dTdGFjayAoDQo+ID4gIHsNCj4gPiAgICBVSU5UTiAg ICAgICBTbW1TaGFkb3dTdGFja1NpemU7DQo+ID4gICAgVUlOVDY0ICAgICAgKkludGVycnVwdFNz cFRhYmxlOw0KPiA+ICsgIFVJTlQzMiAgICAgIEludGVycnVwdFNzcDsNCj4gPg0KPiA+ICAgIGlm ICgoUGNkR2V0MzIgKFBjZENvbnRyb2xGbG93RW5mb3JjZW1lbnRQcm9wZXJ0eU1hc2spICE9IDAp ICYmDQo+ID4gbUNldFN1cHBvcnRlZCkgew0KPiA+ICAgICAgU21tU2hhZG93U3RhY2tTaXplID0g RUZJX1BBR0VTX1RPX1NJWkUgKEVGSV9TSVpFX1RPX1BBR0VTDQo+ID4gKFBjZEdldDMyIChQY2RD cHVTbW1TaGFkb3dTdGFja1NpemUpKSk7IEBAIC0xOTEsNyArMTkyLDE5IEBADQo+ID4gSW5pdFNo YWRvd1N0YWNrICgNCj4gPiAgICAgICAgICBBU1NFUlQgKG1TbW1JbnRlcnJ1cHRTc3BUYWJsZXMg IT0gMCk7DQo+ID4gICAgICAgICAgREVCVUcgKChERUJVR19JTkZPLCAibVNtbUludGVycnVwdFNz cFRhYmxlcyAtIDB4JXhcbiIsDQo+ID4gbVNtbUludGVycnVwdFNzcFRhYmxlcykpOw0KPiA+ICAg ICAgICB9DQo+ID4gLSAgICAgIG1DZXRJbnRlcnJ1cHRTc3AgPSAoVUlOVDMyKSgoVUlOVE4pU2hh ZG93U3RhY2sgKw0KPiA+IEVGSV9QQUdFU19UT19TSVpFKDEpIC0gc2l6ZW9mKFVJTlQ2NCkpOw0K PiA+ICsNCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgLy8gVGhlIGhpZ2hlc3QgYWRkcmVzcyBv biB0aGUgc3RhY2sgKDB4RkY4KSBpcyBhDQo+ID4gKyBzYXZlLXByZXZpb3VzLXNzcCB0b2tlbg0K PiA+IHBvaW50aW5nIHRvIGEgbG9jYXRpb24gdGhhdCBpcyA0MCBieXRlcyBhd2F5IC0gMHhGRDAu DQo+ID4gKyAgICAgIC8vIFRoZSBzdXBlcnZpc29yIHNoYWRvdyBzdGFjayB0b2tlbiBpcyBqdXN0 IGFib3ZlIGl0IGF0IGFkZHJlc3MgMHhGRjAuDQo+ID4gVGhpcyBpcyB3aGVyZSB0aGUgaW50ZXJy dXB0IFNTUCB0YWJsZSBwb2ludHMuDQo+ID4gKyAgICAgIC8vIFNvIHdoZW4gYW4gaW50ZXJydXB0 IG9mIGV4Y2VwdGlvbiBvY2N1cnMsIHdlIGNhbiB1c2UNCj4gPiBTQVZFU1NQL1JFU1RPUkVTU1Av Q0xFQVJTU0JVU1kgZm9yIHRoZSBzdXBlcnZpc29yIHNoYWRvdyBzdGFjaywNCj4gPiArICAgICAg Ly8gZHVlIHRvIHRoZSByZWFzb24gdGhlIFJFVEYgaW4gU01NIGV4Y2VwdGlvbiBoYW5kbGVyIGNh bm5vdA0KPiA+ICsgY2xlYXINCj4gPiB0aGUgQlVTWSBmbGFnIHdpdGggc2FtZSBDUEwuDQo+ID4g KyAgICAgIC8vIChvbmx5IElSRVQgb3IgUkVURiB3aXRoIGRpZmZlcmVudCBDUEwgY2FuIGNsZWFy IEJVU1kgZmxhZykNCj4gPiArICAgICAgLy8gUGxlYXNlIHJlZmVyIHRvDQo+ID4gKyBVZWZpQ3B1 UGtnL0xpYnJhcnkvQ3B1RXhjZXB0aW9uSGFuZGxlckxpYi9YNjQgZm9yDQo+ID4gdGhlIGZ1bGwg c3RhY2sgZnJhbWUgYXQgcnVudGltZS4NCj4gPiArICAgICAgLy8NCj4gPiArICAgICAgSW50ZXJy dXB0U3NwID0gKFVJTlQzMikoKFVJTlROKVNoYWRvd1N0YWNrICsNCj4gPiArIEVGSV9QQUdFU19U T19TSVpFKDEpDQo+ID4gLSBzaXplb2YoVUlOVDY0KSk7DQo+ID4gKyAgICAgICooVUlOVDMyICop KFVJTlROKUludGVycnVwdFNzcCA9IChJbnRlcnJ1cHRTc3AgLSBzaXplb2YoVUlOVDY0KQ0KPiA+ ICsgKiA0KSB8DQo+ID4gMHgyOw0KPiA+ICsgICAgICBtQ2V0SW50ZXJydXB0U3NwID0gSW50ZXJy dXB0U3NwIC0gc2l6ZW9mKFVJTlQ2NCk7DQo+ID4gKw0KPiA+ICAgICAgICBtQ2V0SW50ZXJydXB0 U3NwVGFibGUgPSAoVUlOVDMyKShVSU5UTikobVNtbUludGVycnVwdFNzcFRhYmxlcw0KPiA+ICsN Cj4gPiBzaXplb2YoVUlOVDY0KSAqIDggKiBDcHVJbmRleCk7DQo+ID4gICAgICAgIEludGVycnVw dFNzcFRhYmxlID0gKFVJTlQ2NCAqKShVSU5UTiltQ2V0SW50ZXJydXB0U3NwVGFibGU7DQo+ID4g ICAgICAgIEludGVycnVwdFNzcFRhYmxlWzFdID0gbUNldEludGVycnVwdFNzcDsNCj4gPiAtLQ0K PiA+IDIuMTYuMi53aW5kb3dzLjENCj4gPg0KPiA+DQo+ID4NCj4gPg0KPiA+DQo+IA0KPiANCj4g DQo+IA0KPiANCg0K