From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.24, mailfrom: eric.jin@intel.com) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by groups.io with SMTP; Mon, 26 Aug 2019 02:24:37 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Aug 2019 02:24:36 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,431,1559545200"; d="scan'208";a="187540704" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by FMSMGA003.fm.intel.com with ESMTP; 26 Aug 2019 02:24:35 -0700 Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 26 Aug 2019 02:24:35 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 26 Aug 2019 02:24:35 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.139]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.62]) with mapi id 14.03.0439.000; Mon, 26 Aug 2019 17:24:33 +0800 From: "Eric Jin" To: Supreeth Venkatesh , "devel@edk2.groups.io" Subject: Re: [edk2-test][Patch V2 1/1] uefi-sct/SctPkg: Eliminate 2nd execution of ExitBootServices Test Thread-Topic: [edk2-test][Patch V2 1/1] uefi-sct/SctPkg: Eliminate 2nd execution of ExitBootServices Test Thread-Index: AQHVWdMO8klgXp24HUSyu22aJkB96qcNLBBw Date: Mon, 26 Aug 2019 09:24:32 +0000 Message-ID: References: <20190823054613.11376-1-eric.jin@intel.com> <57e19cdac7501ab96f27512260bc3b65acd9930e.camel@arm.com> In-Reply-To: <57e19cdac7501ab96f27512260bc3b65acd9930e.camel@arm.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: eric.jin@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UHVzaGVkIDRkMzM5NWE5YTU0ZDU3NTg1MGZhMTJjYTA0MzI2Yzc5N2I3ZTFmZTkNClJlLW9yZGVy IHRoZSBzdGF0ZW1lbnRzIGFzIFN1cHJlZXRoJ3MgY29tbWVudC4gDQoNCkJlc3QgUmVnYXJkcw0K RXJpYw0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogU3VwcmVldGggVmVua2F0 ZXNoIDxzdXByZWV0aC52ZW5rYXRlc2hAYXJtLmNvbT4gDQpTZW50OiBTYXR1cmRheSwgQXVndXN0 IDI0LCAyMDE5IDEyOjUyIEFNDQpUbzogSmluLCBFcmljIDxlcmljLmppbkBpbnRlbC5jb20+OyBk ZXZlbEBlZGsyLmdyb3Vwcy5pbw0KU3ViamVjdDogUmU6IFtlZGsyLXRlc3RdW1BhdGNoIFYyIDEv MV0gdWVmaS1zY3QvU2N0UGtnOiBFbGltaW5hdGUgMm5kIGV4ZWN1dGlvbiBvZiBFeGl0Qm9vdFNl cnZpY2VzIFRlc3QNCg0KT24gRnJpLCAyMDE5LTA4LTIzIGF0IDAwOjQ2IC0wNTAwLCBFcmljIEpp biB3cm90ZToNCj4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcu Y2dpP2lkPTIwOTgNCj4gDQo+IEluIHRoZSBFeGl0Qm9vdFNlcnZpY2VzKCkgdGVzdCwgYWZ0ZXIg RXhpdEJvb3RTZXJ2aWNlcygpIGNhbGwsIGFsbCANCj4gYm9vdCBzZXJ2aWNlcyBhcmUgZm9yYmlk ZGVuLiBUaGUgb3JpZ2luYWwgZGVzaWduIGlzIHRvIHNhdmUgdGhlIHJldHVybiANCj4gc3RhdHVz IHZhbHVlIG9mIEV4aXRCb290U2VydmljZXMoKSBpbiB2YXJpYWJsZSB1c2luZyB2YXJpYWJsZSBz ZXJ2aWNlIA0KPiBhbmQgcmVzZXQsIGJ1dCB0aGlzIG5lZWRzIG9uZSBhZGRpdGlvbmFsIGV4ZWN1 dGlvbiBvZiB0aGUgdGVzdCB0byANCj4gcmV0cmlldmUgdGhlIHZhbHVlIGZyb20gdmFyaWFibGUg YW5kIHRoaXMgZGVzaWduIHdhcyBub3QgDQo+IHN0cmFpZ2h0Zm9yd2FyZCBmcm9tIGVuZCB1c2Vy IHBlcnNwZWN0aXZlLg0KPiBUaGlzIHBhdGNoIGVuaGFuY2VzIHRoZSB0ZXN0IGJ5IGxldmVyYWdp bmcgUmVjb3ZlcnlMaWIgdG8gcmVzdG9yZSANCj4gZXhlY3V0aW9uIGFmdGVyIHJlc2V0IGF1dG9t YXRpY2FsbHksIHRodXMgcmVxdWlyaW5nIG9ubHkgb25lIA0KPiBleGVjdXRpb24uDQo+IA0KPiBD YzogU3VwcmVldGggVmVua2F0ZXNoIDxzdXByZWV0aC52ZW5rYXRlc2hAYXJtLmNvbT4NCj4gU2ln bmVkLW9mZi1ieTogRXJpYyBKaW4gPGVyaWMuamluQGludGVsLmNvbT4NCg0KDQpQbGVhc2UgcmUt b3JkZXIgdGhlIHN0YXRlbWVudHMgbGlrZSBiZWxvdyB0byBtYWtlIGl0IG1vcmUgY2xlYXIgc2lu Y2UgUmVzZXREYXRhIGlzIGEganVzdCBhIHBvaW50ZXIgdG8gQnVmZmVyIEFycmF5IHdoaWNoIGlz IHN0YXRpY2FsbHkgYWxsb2NhdGVkIHRvIDEwMjQgYW5kIFJlc2V0RGF0YSBpcyBub3QgYmVpbmcg cmVhbGx5IGluaXRpYWxpemVkIHRvIFJlc2V0IFJlY29yZCBhZnRlciByZWFkaW5nIHJlc2V0IHJl Y29yZCwgYnV0IHRvIEJ1ZmZlciBBcnJheS4NCjEuIFJlc2V0RGF0YSA9IChSRVNFVF9EQVRBICop QnVmZmVyOw0KMi4gUmVjb3ZlcnlMaWItPlJlYWRSZXNldFJlY29yZChSZWNvdmVyeUxpYiwgU2l6 ZSwgQnVmZmVyKTsgd2hpbGUgY29tbWl0aW5nIGl0Lg0KDQpXaXRoIHRoYXQsDQpSZXZpZXdlZC1i eTogU3VwcmVldGggVmVua2F0ZXNoIDxzdXByZWV0aC52ZW5rYXRlc2hAYXJtLmNvbT4NCg0KDQo+ IC0tLQ0KPiAgdWVmaS0NCj4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2Vydmlj ZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+IEltYWdlQkJUZXN0LmluZiAgICAgICAg ICB8ICAgMyArKy0NCj4gIHVlZmktDQo+IHNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvQm9v dFNlcnZpY2VzL0ltYWdlU2VydmljZXMvQmxhY2tCb3hUZXN0Lw0KPiBJbWFnZUJCVGVzdC5oICAg ICAgICAgICAgfCAgIDkgKysrKysrKystDQo+ICB1ZWZpLQ0KPiBzY3QvU2N0UGtnL1Rlc3RDYXNl L1VFRkkvRUZJL0Jvb3RTZXJ2aWNlcy9JbWFnZVNlcnZpY2VzL0JsYWNrQm94VGVzdC8NCj4gSW1h Z2VCQlRlc3RDb25mb3JtYW5jZS5jIHwgMTIxDQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tDQo+ICAzIGZpbGVzIGNo YW5nZWQsIDExNSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1n aXQgYS91ZWZpLQ0KPiBzY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvRUZJL0Jvb3RTZXJ2aWNlcy9J bWFnZVNlcnZpY2VzL0JsYWNrQm94VGVzdC8NCj4gSW1hZ2VCQlRlc3QuaW5mIGIvdWVmaS0NCj4g c2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9C bGFja0JveFRlc3QvDQo+IEltYWdlQkJUZXN0LmluZg0KPiBpbmRleCA0OWFkNzk5MTU5MzQuLjNk ZTQzYTIwZThhNCAxMDA2NDQNCj4gLS0tIGEvdWVmaS0NCj4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9V RUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+IEltYWdl QkJUZXN0LmluZg0KPiArKysgYi91ZWZpLQ0KPiBzY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvRUZJ L0Jvb3RTZXJ2aWNlcy9JbWFnZVNlcnZpY2VzL0JsYWNrQm94VGVzdC8NCj4gSW1hZ2VCQlRlc3Qu aW5mDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgIyMgQGZpbGUNCj4gICMNCj4gICMgIENvcHlyaWdo dCAyMDA2IC0gMjAxMiBVbmlmaWVkIEVGSSwgSW5jLjxCUj4gLSMgIENvcHlyaWdodCAoYykgMjAx MCANCj4gLSAyMDEyLCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+ DQo+ICsjICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cw0KPiByZXNlcnZlZC48QlI+DQo+ICAjDQo+ICAjICBUaGlzIHByb2dyYW0gYW5kIHRo ZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzICAjICBhcmUgbGljZW5zZWQgYW5kIA0KPiBtYWRlIGF2 YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEJTRCBMaWNlbnNl IEBAIA0KPiAtNTMsNCArNTMsNSBAQA0KPiAgDQo+ICBbUHJvdG9jb2xzXQ0KPiAgICBnRWZpVGVz dFByb2ZpbGVMaWJyYXJ5R3VpZA0KPiArICBnRWZpVGVzdFJlY292ZXJ5TGlicmFyeUd1aWQNCj4g ICAgZ0JsYWNrQm94RWZpSElJUGFja2FnZUxpc3RQcm90b2NvbEd1aWQNCj4gZGlmZiAtLWdpdCBh L3VlZmktDQo+IHNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvQm9vdFNlcnZpY2VzL0ltYWdl U2VydmljZXMvQmxhY2tCb3hUZXN0Lw0KPiBJbWFnZUJCVGVzdC5oIGIvdWVmaS0NCj4gc2N0L1Nj dFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0Jv eFRlc3QvDQo+IEltYWdlQkJUZXN0LmgNCj4gaW5kZXggYjFjMzVmZWU3NDM1Li4wMDg1ODQ1Nzdl ZDEgMTAwNjQ0DQo+IC0tLSBhL3VlZmktDQo+IHNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkv Qm9vdFNlcnZpY2VzL0ltYWdlU2VydmljZXMvQmxhY2tCb3hUZXN0Lw0KPiBJbWFnZUJCVGVzdC5o DQo+ICsrKyBiL3VlZmktDQo+IHNjdC9TY3RQa2cvVGVzdENhc2UvVUVGSS9FRkkvQm9vdFNlcnZp Y2VzL0ltYWdlU2VydmljZXMvQmxhY2tCb3hUZXN0Lw0KPiBJbWFnZUJCVGVzdC5oDQo+IEBAIC0x LDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+ICANCj4gICAgQ29weXJpZ2h0IDIwMDYgLSAyMDE3 IFVuaWZpZWQgRUZJLCBJbmMuPEJSPg0KPiAtICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE3LCBJ bnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJSPg0KPiArICBDb3B5 cmlnaHQgKGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0KPiBy ZXNlcnZlZC48QlI+DQo+ICANCj4gICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5n IG1hdGVyaWFscw0KPiAgICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRo ZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiANCj4gdGhlIEJTRCBMaWNlbnNlIEBAIC0zNSw2ICsz NSwxMyBAQCBBYnN0cmFjdDoNCj4gICNpbmNsdWRlIEVGSV9QUk9UT0NPTF9ERUZJTklUSU9OIChM b2FkRmlsZSkNCj4gIA0KPiAgI2luY2x1ZGUgRUZJX1RFU1RfUFJPVE9DT0xfREVGSU5JVElPTiAo VGVzdFByb2ZpbGVMaWJyYXJ5KQ0KPiArI2luY2x1ZGUgRUZJX1RFU1RfUFJPVE9DT0xfREVGSU5J VElPTiAoVGVzdFJlY292ZXJ5TGlicmFyeSkNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3QgX1JFU0VU X0RBVEEgew0KPiArICBVSU5UTiAgICAgICAgICAgU3RlcDsNCj4gKyAgVUlOVE4gICAgICAgICAg IFRwbEluZGV4Ow0KPiArICBVSU5UMzIgICAgICAgICAgUmVwZWF0VGltZXM7DQo+ICt9IFJFU0VU X0RBVEE7DQo+ICANCj4gICNpZiAoRUZJX1NQRUNJRklDQVRJT05fVkVSU0lPTiA+PSAweDAwMDIw MDBBKQ0KPiAgDQo+IGRpZmYgLS1naXQgYS91ZWZpLQ0KPiBzY3QvU2N0UGtnL1Rlc3RDYXNlL1VF RkkvRUZJL0Jvb3RTZXJ2aWNlcy9JbWFnZVNlcnZpY2VzL0JsYWNrQm94VGVzdC8NCj4gSW1hZ2VC QlRlc3RDb25mb3JtYW5jZS5jIGIvdWVmaS0NCj4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VG SS9Cb290U2VydmljZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+IEltYWdlQkJUZXN0 Q29uZm9ybWFuY2UuYw0KPiBpbmRleCAwYTI2ZDQ2ODQ3ZGEuLjZjZTFkMmQ3MjY2OSAxMDA2NDQN Cj4gLS0tIGEvdWVmaS0NCj4gc2N0L1NjdFBrZy9UZXN0Q2FzZS9VRUZJL0VGSS9Cb290U2Vydmlj ZXMvSW1hZ2VTZXJ2aWNlcy9CbGFja0JveFRlc3QvDQo+IEltYWdlQkJUZXN0Q29uZm9ybWFuY2Uu Yw0KPiArKysgYi91ZWZpLQ0KPiBzY3QvU2N0UGtnL1Rlc3RDYXNlL1VFRkkvRUZJL0Jvb3RTZXJ2 aWNlcy9JbWFnZVNlcnZpY2VzL0JsYWNrQm94VGVzdC8NCj4gSW1hZ2VCQlRlc3RDb25mb3JtYW5j ZS5jDQo+IEBAIC0xLDcgKzEsNyBAQA0KPiAgLyoqIEBmaWxlDQo+ICANCj4gICAgQ29weXJpZ2h0 IDIwMDYgLSAyMDE2IFVuaWZpZWQgRUZJLCBJbmMuPEJSPg0KPiAtICBDb3B5cmlnaHQgKGMpIDIw MTAgLSAyMDE2LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyANCj4gcmVzZXJ2ZWQuPEJS Pg0KPiArICBDb3B5cmlnaHQgKGMpIDIwMTAgLSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cw0KPiByZXNlcnZlZC48QlI+DQo+ICANCj4gICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUg YWNjb21wYW55aW5nIG1hdGVyaWFscw0KPiAgICBhcmUgbGljZW5zZWQgYW5kIG1hZGUgYXZhaWxh YmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiANCj4gdGhlIEJTRCBMaWNlbnNl IEBAIC0zMCw3ICszMCw4IEBAIEFic3RyYWN0Og0KPiAgI2RlZmluZSBURVNUX1ZFTkRPUjFfR1VJ RCAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICAgIHsgMHhGNkZBQjA0RiwgMHhBQ0FGLCAw eDRhZjMsIHsgMHhCOSwgMHhGQSwgMHhEQywgMHhGOSwgMHg3RiwgMHhCNCwgDQo+IDB4NDIsIDB4 NkYgfSB9DQo+ICANCj4gLSNkZWZpbmUgTUFYX0JVRkZFUl9TSVpFICAxMA0KPiArI2RlZmluZSBT VEFUVVNfQlVGRkVSX1NJWkUgICA4DQo+ICsjZGVmaW5lIFJFQ09WRVJfQlVGRkVSX1NJWkUgIDEw MjQNCj4gIA0KPiAgRUZJX0dVSUQgZ1Rlc3RWZW5kb3IxR3VpZCA9IFRFU1RfVkVORE9SMV9HVUlE Ow0KPiAgDQo+IEBAIC03NzgsMTkgKzc3OSwyMyBAQCBCQlRlc3RFeGl0Qm9vdFNlcnZpY2VzQ29u c2lzdGVuY3lUZXN0ICgNCj4gICAgKQ0KPiAgew0KPiAgICBFRklfU1RBTkRBUkRfVEVTVF9MSUJS QVJZX1BST1RPQ09MICAgKlN0YW5kYXJkTGliOw0KPiArICBFRklfVEVTVF9SRUNPVkVSWV9MSUJS QVJZX1BST1RPQ09MICAgKlJlY292ZXJ5TGliOw0KPiAgICBFRklfU1RBVFVTICAgICAgICAgICAg ICAgICAgICAgICAgICAgU3RhdHVzOw0KPiAgICBFRklfVEVTVF9BU1NFUlRJT04gICAgICAgICAg ICAgICAgICAgQXNzZXJ0aW9uVHlwZTsNCj4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE1hcEtleTsNCj4gLQ0KPiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU2l6ZTsNCj4gICAgVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE51bWJlcnM7DQo+ICAgIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEYXRh U2l6ZTsNCj4gLSAgVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGFbTUFY X0JVRkZFUl9TSVpFXTsNCj4gKyAgUkVTRVRfREFUQSAgICAgICAgICAgICAgICAgICAgICAgICAg ICpSZXNldERhdGE7DQo+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBE YXRhW1NUQVRVU19CVUZGRVJfU0laRV07DQo+ICsgIFVJTlQ4ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCdWZmZXJbUkVDT1ZFUl9CVUZGRVJfU0laRV07DQo+ICAgIEVGSV9TVEFUVVMg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5TdGF0dXM7DQo+ICANCj4gICAgLy8NCj4g ICAgLy8gSW5pdA0KPiAgICAvLw0KPiAgICBTdGFuZGFyZExpYiA9IE5VTEw7DQo+ICsgIFJlY292 ZXJ5TGliID0gTlVMTDsNCj4gIA0KPiAgICAvLw0KPiAgICAvLyBHZXQgdGhlIFN0YW5kYXJkIExp YnJhcnkgSW50ZXJmYWNlIEBAIC04MDMsNiArODA4LDE0IEBAIA0KPiBCQlRlc3RFeGl0Qm9vdFNl cnZpY2VzQ29uc2lzdGVuY3lUZXN0ICgNCj4gICAgICByZXR1cm4gU3RhdHVzOw0KPiAgICB9DQo+ ICANCj4gKyAgU3RhdHVzID0gZ3RCUy0+SGFuZGxlUHJvdG9jb2wgKA0KPiArICAgICAgICAgICAg ICAgICAgIFN1cHBvcnRIYW5kbGUsDQo+ICsgICAgICAgICAgICAgICAgICAgJmdFZmlUZXN0UmVj b3ZlcnlMaWJyYXJ5R3VpZCwNCj4gKyAgICAgICAgICAgICAgICAgICAoVk9JRCAqKikgJlJlY292 ZXJ5TGliKTsgIGlmIChFRklfRVJST1IoU3RhdHVzKSkgew0KPiArICAgIHJldHVybiBTdGF0dXM7 DQo+ICsgIH0NCj4gKw0KPiAgICBTdGF0dXMgPSBJbWFnZVRlc3RDaGVja0ZvckNsZWFuRW52aXJv bm1lbnQgKCZOdW1iZXJzKTsNCj4gICAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICAgICAg U3RhbmRhcmRMaWItPlJlY29yZEFzc2VydGlvbiAoDQo+IEBAIC04MTksMjUgKzgzMiwxMDEgQEAg QkJUZXN0RXhpdEJvb3RTZXJ2aWNlc0NvbnNpc3RlbmN5VGVzdCAoDQo+ICAgICAgcmV0dXJuIFN0 YXR1czsNCj4gICAgfQ0KPiAgDQo+IC0gIERhdGFTaXplID0gTUFYX0JVRkZFUl9TSVpFOw0KPiAt ICBTdGF0dXMgPSBndFJULT5HZXRWYXJpYWJsZSAoDQo+IC0gICAgICAgICAgICAgICAgIEwiRXhp dEJvb3RTZXJ2aWNlc1Rlc3RWYXJpYWJsZSIsICAgICAgICAgICAgIC8vDQo+IFZhcmlhYmxlTmFt ZQ0KPiAtICAgICAgICAgICAgICAgICAmZ1Rlc3RWZW5kb3IxR3VpZCwgICAgICAgICAgICAgICAg ICAgICAgICAgICAvLw0KPiBWZW5kb3JHdWlkDQo+IC0gICAgICAgICAgICAgICAgIE5VTEwsICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vDQo+IEF0dHJpYnV0ZXMNCj4g LSAgICAgICAgICAgICAgICAgJkRhdGFTaXplLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLy8NCj4gRGF0YVNpemUNCj4gLSAgICAgICAgICAgICAgICAgJlJldHVyblN0YXR1cyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8NCj4gRGF0YQ0KPiAtICAgICAgICAgICAg ICAgICApOw0KPiArICAvLw0KPiArICAvLyBSZWFkIHJlc2V0IHJlY29yZA0KPiArICAvLw0KPiAr ICBTdGF0dXMgPSBSZWNvdmVyeUxpYi0+UmVhZFJlc2V0UmVjb3JkICgNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgUmVjb3ZlcnlMaWIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICZTaXplLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBCdWZmZXINCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgKTsNCj4gKyAgUmVzZXREYXRhID0gKFJFU0VUX0RBVEEgKilCdWZm ZXI7DQo+ICANCj4gLSAgaWYgKFN0YXR1cyA9PSBFRklfU1VDQ0VTUykgew0KPiAtICAgIGdvdG8g Q2hlY2tSZXN1bHQ7DQo+ICsgIC8vDQo+ICsgIC8vIFRoZSB3b3JrZmxvdyB0byBjaGVjayB0aGUg cmVjb3ZlcnkgZGF0YSAgLy8gIGlmIChFRklfU1VDQ0VTUyA9PSANCj4gKyBTdGF0dXMpIHsNCj4g KyAgICAvLw0KPiArICAgIC8vIFRvIGNoZWNrIHRoZSByZWNvdmVyeSBkYXRhIHNpemUNCj4gKyAg ICAvLw0KPiArICAgIGlmIChTaXplID09IHNpemVvZihSRVNFVF9EQVRBKSl7DQo+ICsgICAgICAv Lw0KPiArICAgICAgLy8gVG8gQ2hlY2sgdGhlIHJlY292ZXJ5IGRhdGENCj4gKyAgICAgIC8vDQo+ ICsgICAgICBpZiAoUmVzZXREYXRhLT5TdGVwID09IDEpIHsNCj4gKyAgICAgICAgLy8NCj4gKyAg ICAgICAgLy8gU3RlcCAxOiBmaW5kIHRoZSB2YWxpZCByZWNvdmVyeSBkYXRhLCB0byByZXRyaXZl IHByZXNhdmVkDQo+IHN0YXR1cyBmcm9tIHZhcmlhYmxlDQo+ICsgICAgICAgIC8vDQo+ICsgICAg ICAgIERhdGFTaXplID0gU1RBVFVTX0JVRkZFUl9TSVpFOw0KPiArICAgICAgICBTdGF0dXMgICA9 IGd0UlQtPkdldFZhcmlhYmxlICgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICBMIkV4aXRC b290U2VydmljZXNUZXN0VmFyaWFibGUiLCAgICAvLw0KPiBWYXJpYWJsZU5hbWUNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAmZ1Rlc3RWZW5kb3IxR3VpZCwgICAgICAgICAgICAgICAgICAv Lw0KPiBWZW5kb3JHdWlkDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLy8NCj4gQXR0cmlidXRlcw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICZEYXRhU2l6ZSwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vDQo+IERh dGFTaXplDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgJlJldHVyblN0YXR1cyAgICAgICAg ICAgICAgICAgICAgICAgLy8gRGF0YQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICk7DQo+ ICsNCj4gKyAgICAgICAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7DQo+ICsgICAgICAgICAgU3Rh bmRhcmRMaWItPlJlY29yZEFzc2VydGlvbiAoDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIFN0 YW5kYXJkTGliLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBFRklfVEVTVF9BU1NFUlRJT05f RkFJTEVELA0KPiArICAgICAgICAgICAgICAgICAgICAgICBnVGVzdEdlbmVyaWNGYWlsdXJlR3Vp ZCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgTCJHZXRWYXJpYWJsZSAtIENhbid0IGdldCB0 aGUgdGVzdCB2YXJpYWJsZSAtDQo+IEV4aXRCb290U2VydmljZXNUZXN0VmFyaWFibGUiLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICBMIiVhOiVkOlN0YXR1cyAtICVyIiwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgX19GSUxFX18sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIChVSU5U TilfX0xJTkVfXywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgU3RhdHVzDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICk7DQo+ICsgICAgICAgICAgcmV0dXJuIFN0YXR1czsNCj4gKyAgICAg ICAgfQ0KPiArICAgICAgICBnb3RvIENoZWNrUmVzdWx0Ow0KPiArICAgICAgfSBlbHNlIHsNCj4g KyAgICAgICAgLy8NCj4gKyAgICAgICAgLy8gSXQgaXMgaW52YWxpZCByZWNvdmVyeSBkYXRhDQo+ ICsgICAgICAgIC8vDQo+ICsgICAgICAgIHJldHVybiBFRklfTE9BRF9FUlJPUjsNCj4gKyAgICAg IH0NCj4gKyAgICB9IGVsc2Ugew0KPiArICAgICAgLy8NCj4gKyAgICAgIC8vIFRoZSBzaXplIG9m IHJlY292ZXJ5IGRhdGEgaXMgaW52YWxpZA0KPiArICAgICAgLy8NCj4gKyAgICAgIHJldHVybiBF RklfTE9BRF9FUlJPUjsNCj4gKyAgICB9DQo+ICAgIH0NCj4gIA0KPiArICAvLw0KPiArICAvLyBT dGVwIDA6IE5vIHJlY292ZXJ5IGRhdGEgaXMgZm91bmQuDQo+ICsgIC8vDQo+ICsNCj4gICAgLy8N Cj4gICAgLy8gUHJpbnQgb3V0IHNvbWUgaW5mb3JtYXRpb24gdG8gYXZvaWQgdGhlIHVzZXIgdGhv dWdodCBpdCBpcyBhbiANCj4gZXJyb3INCj4gICAgLy8NCj4gLSAgU2N0UHJpbnQgKEwiU3lzdGVt IHdpbGwgY29sZCByZXNldCBhZnRlciAyIHNlY29uZC4gcGxlYXNlIHJ1biB0aGlzIA0KPiB0ZXN0 IGFnYWluLi4uIik7DQo+ICsgIFNjdFByaW50IChMIlN5c3RlbSB3aWxsIGNvbGQgcmVzZXQgYWZ0 ZXIgMiBzZWNvbmQgYW5kIHRlc3Qgd2lsbCBiZQ0KPiByZXN1bWVkIGFmdGVyIHJlYm9vdC4iKTsN Cj4gICAgZ3RCUy0+U3RhbGwgKDIwMDAwMDApOw0KPiAgDQo+ICsNCj4gKyAgUmVzZXREYXRhLT5T dGVwID0gMTsNCj4gKyAgUmVzZXREYXRhLT5UcGxJbmRleCA9IDA7DQo+ICsgIFN0YXR1cyA9IFJl Y292ZXJ5TGliLT5Xcml0ZVJlc2V0UmVjb3JkICgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBSZWNvdmVyeUxpYiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yg KFJFU0VUX0RBVEEpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIChVSU5UOCopUmVz ZXREYXRhDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gKyAgaWYgKEVGSV9F UlJPUihTdGF0dXMpKSB7DQo+ICsgICAgU3RhbmRhcmRMaWItPlJlY29yZEFzc2VydGlvbiAoDQo+ ICsgICAgICAgICAgICAgICAgICAgU3RhbmRhcmRMaWIsDQo+ICsgICAgICAgICAgICAgICAgICAg RUZJX1RFU1RfQVNTRVJUSU9OX0ZBSUxFRCwNCj4gKyAgICAgICAgICAgICAgICAgICBnVGVzdEdl bmVyaWNGYWlsdXJlR3VpZCwNCj4gKyAgICAgICAgICAgICAgICAgICBMIlRlc3RSZWNvdmVyeUxp YiAtIFdyaXRlUmVzZXRSZWNvcmQiLA0KPiArICAgICAgICAgICAgICAgICAgIEwiJWE6JWQ6U3Rh dHVzIC0gJXIiLA0KPiArICAgICAgICAgICAgICAgICAgIF9fRklMRV9fLA0KPiArICAgICAgICAg ICAgICAgICAgIChVSU5UTilfX0xJTkVfXywNCj4gKyAgICAgICAgICAgICAgICAgICBTdGF0dXMN Cj4gKyAgICAgICAgICAgICAgICAgICApOw0KPiArICAgIHJldHVybiBTdGF0dXM7DQo+ICsgIH0N Cj4gKw0KPiArDQo+ICAgIC8vDQo+ICAgIC8vIENoZWNrcG9pbnQgMToNCj4gICAgLy8gMy41LjIu MSAgRXhpdEJvb3RTZXJ2aWNlcyBzaG91bGQgbm90IHN1Y2NlZWQgd2l0aCBhbiBpbnZhbGlkIA0K PiBNYXBLZXkgQEAgLTg4NSw3ICs5NzQsNyBAQCBCQlRlc3RFeGl0Qm9vdFNlcnZpY2VzQ29uc2lz dGVuY3lUZXN0ICgNCj4gICAgLy9yZXNldCBzeXN0ZW0NCj4gICAgZ3RSVC0+UmVzZXRTeXN0ZW0g KEVmaVJlc2V0Q29sZCwgRUZJX1NVQ0NFU1MsIDAsIE5VTEwpOw0KPiAgDQo+IC0gIC8vIGdldCB2 YXIgdG8gZ2V0IHRoZSBzdGF0dXMNCj4gKw0KPiAgQ2hlY2tSZXN1bHQ6DQo+ICANCj4gICAgaWYg KFJldHVyblN0YXR1cyA9PSBFRklfSU5WQUxJRF9QQVJBTUVURVIpIHsNCg0K