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.31, mailfrom: liming.gao@intel.com) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by groups.io with SMTP; Thu, 29 Aug 2019 09:01:17 -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 orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 29 Aug 2019 09:01:13 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,443,1559545200"; d="scan'208";a="188591884" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by FMSMGA003.fm.intel.com with ESMTP; 29 Aug 2019 09:01:07 -0700 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 29 Aug 2019 09:01:00 -0700 Received: from shsmsx153.ccr.corp.intel.com (10.239.6.53) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.439.0; Thu, 29 Aug 2019 09:00:59 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.112]) by SHSMSX153.ccr.corp.intel.com ([169.254.12.215]) with mapi id 14.03.0439.000; Fri, 30 Aug 2019 00:00:57 +0800 From: "Liming Gao" To: Laszlo Ersek , "devel@edk2.groups.io" , "Feng, Bob C" , "Kinney, Michael D" , Leif Lindholm CC: "afish@apple.com" Subject: Re: [edk2-devel] [Patch][edk2-stable201908] BaseTools: Fixed regression issue for building !x86 builds Thread-Topic: [edk2-devel] [Patch][edk2-stable201908] BaseTools: Fixed regression issue for building !x86 builds Thread-Index: AQHVXYFt3n2HCG9ZxUSez/o0kyaPpqcQEQ6AgACcXtD//7ImAIAAj1iAgAC9OoCAAJ3z8A== Date: Thu, 29 Aug 2019 16:00:57 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4DE483@SHSMSX104.ccr.corp.intel.com> References: <20190828091710.22372-1-bob.c.feng@intel.com> <20190828140129.GJ29255@bivouac.eciton.net> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4DDB42@SHSMSX104.ccr.corp.intel.com> <08650203BA1BD64D8AD9B6D5D74A85D16152A852@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTYzZGM3MTEtMDMxNi00NjAwLThjOTMtNDM4NWI3ZGQ5YmIyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiejZEVnJ6ZW54SHVlMm5WOUhEUVFWdk1mUThTYkhHczZ6c1dGUW5rUERWemhHVTJZc1Z4MlBubUVcL2tlNkNpcGcifQ== dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TGFzemxvOg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBF cnNlayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgQXVndXN0 IDI5LCAyMDE5IDEwOjMzIFBNDQo+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgRmVuZywgQm9i IEMgPGJvYi5jLmZlbmdAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5r aW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcNCj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsg TGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiBDYzogYWZpc2hAYXBw bGUuY29tDQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BhdGNoXVtlZGsyLXN0YWJsZTIw MTkwOF0gQmFzZVRvb2xzOiBGaXhlZCByZWdyZXNzaW9uIGlzc3VlIGZvciBidWlsZGluZyAheDg2 IGJ1aWxkcw0KPiANCj4gQm9iLA0KPiANCj4gT24gMDgvMjkvMTkgMDU6MTUsIEJvYiBGZW5nIHdy b3RlOg0KPiA+IFB1c2hlZCBhdCAzN2VlZjkxMDE3YWQwNDIwMzUwOTBjYWU0NjU1N2Y5ZDZlMmQ1 OTE3DQo+IA0KPiBJZiBJIHVuZGVyc3RhbmQgY29ycmVjdGx5LCBpdCByZW1haW5zIHRoZSBjYXNl IHRoYXQgdGhlIEJhc2VUb29scw0KPiBiZWhhdmlvciAtLSB3aGljaCBoYXMgbm93IGJlZW4gcmVz dG9yZWQsIHdpdGggdGhpcyBjb21taXQgLS0gZG9lcyBub3QNCj4gbWF0Y2ggdGhlIHByaW9yaXR5 IG9yZGVyIGZvciBsaWIgY2xhc3MgcmVzb2x1dGlvbnMgaW4gdGhlIERTQyBzcGVjaWZpY2F0aW9u Lg0KDQpZZXMuIEtlZXAgdGhlIG9yaWdpbmFsIGJlaGF2aW9yLiANCg0KPiANCj4gQ2FuIHlvdSBw bGVhc2UgZmlsZSBhIGRvY3VtZW50YXRpb24gQlogZm9yIHRoYXQ/DQo+IA0KSSBqdXN0IHN1Ym1p dCBCWiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDEN Cg0KVGhhbmtzDQpMaW1pbmcNCj4gU2luY2UgdGhlIEJhc2VUb29scyBtYWludGFpbmVycyBrbm93 IHRoZSBEU0MgaW50ZXJuYWxzIGJlc3QsIGl0IHdvdWxkIGJlDQo+IGdyZWF0IGlmIHlvdSBjb3Vs ZCBhbHNvIHN1Ym1pdCB0aGUgRFNDIGRvY3VtZW50YXRpb24gcGF0Y2ggdG9vLCBmb3IgdGhlDQo+ IG5ldyBCWi4gSWYgeW91IGRvbid0IGhhdmUgdGltZSBmb3IgdGhhdCwgdGhlbiBwbGVhc2UgYmUg KnZlcnkqIHNwZWNpZmljDQo+IGluIHRoZSBkb2N1bWVudGF0aW9uIEJaLCByZWdhcmRpbmcgdGhl IGFjdHVhbCByZXNvbHV0aW9uIG9yZGVyIC0tIHBsZWFzZQ0KPiBkb24ndCBqdXN0IHNheSAicmVw bGFjZSB0aGlzIHdpdGggdGhhdCIsIGJ1dCBwbGVhc2UgcHJvdmlkZSB0aGUgZnVsbA0KPiBvcmRl ciwgZm9yIGRlc2NyaWJpbmcgdGhlIGRlc2lyZWQgKD0gbm93LWZpeGVkKSBCYXNlVG9vbHMgYmVo YXZpb3IuDQo+IA0KPiBUaGFua3MNCj4gTGFzemxvDQo+IA0KPiANCj4gPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiA+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gU2VudDogVGh1 cnNkYXksIEF1Z3VzdCAyOSwgMjAxOSAyOjQzIEFNDQo+ID4gVG86IEdhbywgTGltaW5nIDxsaW1p bmcuZ2FvQGludGVsLmNvbT47IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9y Zz47IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBGZW5nLCBCb2IgQw0KPiA8Ym9iLmMuZmVuZ0BpbnRl bC5jb20+OyBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ ID4gQ2M6IGFmaXNoQGFwcGxlLmNvbTsgTGFzemxvIEVyc2VrIChsZXJzZWtAcmVkaGF0LmNvbSkg PGxlcnNla0ByZWRoYXQuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BhdGNo XVtlZGsyLXN0YWJsZTIwMTkwOF0gQmFzZVRvb2xzOiBGaXhlZCByZWdyZXNzaW9uIGlzc3VlIGZv ciBidWlsZGluZyAheDg2IGJ1aWxkcw0KPiA+DQo+ID4gSGkgQm9iLA0KPiA+DQo+ID4gSSBhZ3Jl ZSB0aGlzIGlzIGEgY3JpdGljYWwgcmVncmVzc2lvbiBpc3N1ZSB0aGF0IG11c3QgYmUgZml4ZWQg Zm9yIHRoZSBlZGsyLXN0YWJsZTIwMTkwOCByZWxlYXNlLg0KPiA+DQo+ID4gVGVzdGVkLWJ5OiBN aWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPiBBY2tlZC1i eTogTWljaGFlbCBEIEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4NCj4g PiBUaGFua3MsDQo+ID4NCj4gPiBNaWtlDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPj4gRnJvbTogR2FvLCBMaW1pbmcNCj4gPj4gU2VudDogV2VkbmVzZGF5LCBBdWd1 c3QgMjgsIDIwMTkgODoyMiBBTQ0KPiA+PiBUbzogTGVpZiBMaW5kaG9sbSA8bGVpZi5saW5kaG9s bUBsaW5hcm8ub3JnPjsgZGV2ZWxAZWRrMi5ncm91cHMuaW87DQo+ID4+IEZlbmcsIEJvYiBDIDxi b2IuYy5mZW5nQGludGVsLmNvbT4NCj4gPj4gQ2M6IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT47IGFmaXNoQGFwcGxlLmNvbTsNCj4gPj4gTGFzemxvIEVyc2Vr IChsZXJzZWtAcmVkaGF0LmNvbSkgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+PiBTdWJqZWN0OiBS RTogW2VkazItZGV2ZWxdIFtQYXRjaF1bZWRrMi1zdGFibGUyMDE5MDhdDQo+ID4+IEJhc2VUb29s czogRml4ZWQgcmVncmVzc2lvbiBpc3N1ZSBmb3IgYnVpbGRpbmcgIXg4NiBidWlsZHMNCj4gPj4N Cj4gPj4gQm9iOg0KPiA+PiAgIFRoaXMgZml4IGlzIGNsZWFyLiBSZXZpZXdlZC1ieTogTGltaW5n IEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4+DQo+ID4+IFRoYW5rcw0KPiA+PiBMaW1p bmcNCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBMZWlmIExp bmRob2xtIFttYWlsdG86bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnXQ0KPiA+Pj4gU2VudDogV2Vk bmVzZGF5LCBBdWd1c3QgMjgsIDIwMTkgMTA6MDEgUE0NCj4gPj4+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgRmVuZywgQm9iIEMNCj4gPj4gPGJvYi5jLmZlbmdAaW50ZWwuY29tPg0KPiA+Pj4g Q2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPj4+IFN1YmplY3Q6IFJl OiBbZWRrMi1kZXZlbF0gW1BhdGNoXVtlZGsyLXN0YWJsZTIwMTkwOF0NCj4gPj4gQmFzZVRvb2xz OiBGaXhlZA0KPiA+Pj4gcmVncmVzc2lvbiBpc3N1ZSBmb3IgYnVpbGRpbmcgIXg4NiBidWlsZHMN Cj4gPj4+DQo+ID4+PiBPbiBXZWQsIEF1ZyAyOCwgMjAxOSBhdCAwNToxNzoxMFBNICswODAwLCBC b2IgRmVuZw0KPiA+PiB3cm90ZToNCj4gPj4+PiBCWjoNCj4gPj4gaHR0cHM6Ly9idWd6aWxsYS50 aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM0DQo+ID4+Pj4NCj4gPj4+PiBUaGlzIHBh dGNoIGlzIHRvIGZpeCBhIGJ1aWxkIHRvb2wgcmVncmVzc2lvbiBpc3N1ZQ0KPiA+PiB3aGljaCB3 YXMNCj4gPj4+PiBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBlODQ0OWUxZDhlLg0KPiA+Pj4+DQo+ID4+ Pj4gSW4gY29tbWl0IGU4NDQ5ZTFkOGUsIGJ1aWxkIHRvb2wgY2hlY2sgdGhlIHBjZA0KPiA+PiBi ZWZvcmUgZmlsdGVyIG91dCB0aGUNCj4gPj4+PiBpcnJlbGV2YW50IGxpYnJhcnkgaW5zdGFuY2Uu DQo+ID4+Pj4NCj4gPj4+PiBUaGUgbG9naWMgb2YgZXZhbHVhdGluZyB0aGUgcHJpb3JpdHkgb2Yg dGhlIGxpYnJhcnkNCj4gPj4gY2xhc3MNCj4gPj4+PiByZXNvbHV0aW9ucyB3YXMgbm90IGNoYW5n ZWQuDQo+ID4+Pg0KPiA+Pj4gQWgsIE9LLCB0aGF0IGdyZWF0bHkgc2ltcGxpZmllcyB0aGluZ3Mu DQo+ID4+Pg0KPiA+Pj4gVGhpcyByZXNvbHZlcyB0aGUgaXNzdWUocykgZm9yIG1lIC0gdGhhbmtz IQ0KPiA+Pj4NCj4gPj4+PiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ ID4+Pj4gU2lnbmVkLW9mZi1ieTogQm9iIEZlbmcgPGJvYi5jLmZlbmdAaW50ZWwuY29tPg0KPiA+ Pj4NCj4gPj4+IEFja2VkLWJ5OiBMZWlmIExpbmRob2xtIDxsZWlmLmxpbmRob2xtQGxpbmFyby5v cmc+DQo+ID4+PiBUZXN0ZWQtYnk6IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJv Lm9yZz4NCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+ICAuLi4vU291cmNlL1B5dGhv bi9Xb3Jrc3BhY2UvSW5mQnVpbGREYXRhLnB5ICAgfCAyOQ0KPiA+PiArKysrKysrKysrLS0tLS0t LS0tDQo+ID4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAxNiBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkNCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1naXQNCj4gPj4gYS9CYXNlVG9vbHMvU291cmNl L1B5dGhvbi9Xb3Jrc3BhY2UvSW5mQnVpbGREYXRhLnB5DQo+ID4+Pj4gYi9CYXNlVG9vbHMvU291 cmNlL1B5dGhvbi9Xb3Jrc3BhY2UvSW5mQnVpbGREYXRhLnB5DQo+ID4+Pj4gaW5kZXggZTYzMjQ2 YjAzYi4uNzY3NWIwZWEwMCAxMDA2NDQNCj4gPj4+PiAtLS0NCj4gPj4gYS9CYXNlVG9vbHMvU291 cmNlL1B5dGhvbi9Xb3Jrc3BhY2UvSW5mQnVpbGREYXRhLnB5DQo+ID4+Pj4gKysrDQo+ID4+IGIv QmFzZVRvb2xzL1NvdXJjZS9QeXRob24vV29ya3NwYWNlL0luZkJ1aWxkRGF0YS5weQ0KPiA+Pj4+ IEBAIC0xNTQsMTIgKzE1NCwxMSBAQCBjbGFzcw0KPiA+PiBJbmZCdWlsZERhdGEoTW9kdWxlQnVp bGRDbGFzc09iamVjdCk6DQo+ID4+Pj4gICAgICAgICAgc2VsZi5fUGNkQ29tbWVudHMgPSBOb25l DQo+ID4+Pj4gICAgICAgICAgc2VsZi5fQnVpbGRPcHRpb25zID0gTm9uZQ0KPiA+Pj4+ICAgICAg ICAgIHNlbGYuX0RlcGVuZGVuY3lGaWxlTGlzdCA9IE5vbmUNCj4gPj4+PiAgICAgICAgICBzZWxm LkxpYkluc3RhbmNlcyA9IFtdDQo+ID4+Pj4gICAgICAgICAgc2VsZi5SZWZlcmVuY2VNb2R1bGVz ID0gc2V0KCkNCj4gPj4+PiAtICAgICAgICBzZWxmLkd1aWRzDQo+ID4+Pj4gLSAgICAgICAgc2Vs Zi5QY2RzDQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICAgZGVmIFNldFJlZmVyZW5jZU1vZHVsZShzZWxm LE1vZHVsZSk6DQo+ID4+Pj4gICAgICAgICAgc2VsZi5SZWZlcmVuY2VNb2R1bGVzLmFkZChNb2R1 bGUpDQo+ID4+Pj4gICAgICAgICAgcmV0dXJuIHNlbGYNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgIyMg WFhYW2tleV0gPSB2YWx1ZQ0KPiA+Pj4+IEBAIC02NTQsMTAgKzY1MywyNCBAQCBjbGFzcw0KPiA+ PiBJbmZCdWlsZERhdGEoTW9kdWxlQnVpbGRDbGFzc09iamVjdCk6DQo+ID4+Pj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIlZhbHVlIG9mIEd1aWQNCj4gPj4gWyVzXSBpcyBub3Qg Zm91bmQgdW5kZXIgW0d1aWRzXSBzZWN0aW9uIGluIiAlIENOYW1lLA0KPiA+Pj4+DQo+ID4+IEV4 dHJhRGF0YT1QYWNrYWdlTGlzdCwgRmlsZT1zZWxmLk1ldGFGaWxlLA0KPiA+PiBMaW5lPVJlY29y ZFstMV0pDQo+ID4+Pj4gICAgICAgICAgICAgIFJldFZhbFtDTmFtZV0gPSBWYWx1ZQ0KPiA+Pj4+ ICAgICAgICAgICAgICBDb21tZW50UmVjb3JkcyA9DQo+ID4+IHNlbGYuX1Jhd0RhdGFbTU9ERUxf TUVUQV9EQVRBX0NPTU1FTlQsIHNlbGYuX0FyY2gsIHNlbGYuX1BsYXRmb3JtLA0KPiA+PiBSZWNv cmRbNV1dDQo+ID4+Pj4gICAgICAgICAgICAgIHNlbGYuX0d1aWRDb21tZW50c1tDTmFtZV0gPSBb YVswXSBmb3INCj4gPj4gYSBpbg0KPiA+Pj4+IENvbW1lbnRSZWNvcmRzXQ0KPiA+Pj4+ICsNCj4g Pj4+PiArICAgICAgICBmb3IgVHlwZSBpbg0KPiA+Pj4NCj4gPj4gW01PREVMX1BDRF9GSVhFRF9B VF9CVUlMRCxNT0RFTF9QQ0RfUEFUQ0hBQkxFX0lOX01PRFVMRQ0KPiA+PiAsTU9ERUxfUENEX0ZF QVQNCj4gPj4+IFVSRV9GTEFHLE1PREVMX1BDRF9EWU5BTUlDLE1PREVMX1BDRA0KPiA+Pj4gX0RZ TkFNSUNfRVhdOg0KPiA+Pj4+ICsgICAgICAgICAgICBSZWNvcmRMaXN0ID0gc2VsZi5fUmF3RGF0 YVtUeXBlLA0KPiA+PiBzZWxmLl9BcmNoLCBzZWxmLl9QbGF0Zm9ybV0NCj4gPj4+PiArICAgICAg ICAgICAgZm9yIFRva2VuU3BhY2VHdWlkLCBfLCBfLCBfLCBfLCBfLA0KPiA+PiBMaW5lTm8gaW4g UmVjb3JkTGlzdDoNCj4gPj4+PiArICAgICAgICAgICAgICAgICMgZ2V0IHRoZSBndWlkIHZhbHVl DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICBpZiBUb2tlblNwYWNlR3VpZCBub3QgaW4gUmV0VmFs Og0KPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgIFZhbHVlID0NCj4gPj4gR3VpZFZhbHVlKFRv a2VuU3BhY2VHdWlkLCBzZWxmLlBhY2thZ2VzLA0KPiA+PiBzZWxmLk1ldGFGaWxlLlBhdGgpDQo+ ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgaWYgVmFsdWUgaXMgTm9uZToNCj4gPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgUGFja2FnZUxpc3QgPQ0KPiA+PiAiXG5cdCIuam9pbihzdHIo UCkgZm9yIFAgaW4gc2VsZi5QYWNrYWdlcykNCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgRWRrTG9nZ2VyLmVycm9yKCdidWlsZCcsDQo+ID4+IFJFU09VUkNFX05PVF9BVkFJTEFCTEUs DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVmFsdWUg b2YNCj4gPj4gR3VpZCBbJXNdIGlzIG5vdCBmb3VuZCB1bmRlciBbR3VpZHNdIHNlY3Rpb24gaW4i ICUgVG9rZW5TcGFjZUd1aWQsDQo+ID4+Pj4gKw0KPiA+PiBFeHRyYURhdGE9UGFja2FnZUxpc3Qs IEZpbGU9c2VsZi5NZXRhRmlsZSwgTGluZT1MaW5lTm8pDQo+ID4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgUmV0VmFsW1Rva2VuU3BhY2VHdWlkXSA9IFZhbHVlDQo+ID4+Pj4gKw0KPiA+PiBzZWxm Ll9HdWlkc1VzZWRCeVBjZFtUb2tlblNwYWNlR3VpZF0gPSBWYWx1ZQ0KPiA+Pj4+ICAgICAgICAg IHJldHVybiBSZXRWYWwNCj4gPj4+Pg0KPiA+Pj4+ICAgICAgIyMgUmV0cmlldmUgaW5jbHVkZSBw YXRocyBuZWNlc3NhcnkgZm9yIHRoaXMNCj4gPj4gbW9kdWxlIChmb3IgRWRrLnggc3R5bGUgb2Yg bW9kdWxlcykNCj4gPj4+PiAgICAgIEBjYWNoZWRfcHJvcGVydHkNCj4gPj4+PiAgICAgIGRlZiBJ bmNsdWRlcyhzZWxmKToNCj4gPj4+PiBAQCAtODU2LDExICs4NjksMTEgQEAgY2xhc3MNCj4gPj4g SW5mQnVpbGREYXRhKE1vZHVsZUJ1aWxkQ2xhc3NPYmplY3QpOg0KPiA+Pj4+ICAgICAgICAgICAg ICBpZiBmaWxlX25hbWUudXBwZXIoKS5lbmRzd2l0aCgiREVDIik6DQo+ID4+Pj4gICAgICAgICAg ICAgICAgICBwa2cgPQ0KPiA+PiBvcy5wYXRoLmpvaW4oVG9wRGlyLGZpbGVfbmFtZSkNCj4gPj4+ PiAgICAgICAgICByZXR1cm4gcGtnDQo+ID4+Pj4gICAgICBAY2FjaGVkX2NsYXNzX2Z1bmN0aW9u DQo+ID4+Pj4gICAgICBkZWYgR2V0R3VpZHNVc2VkQnlQY2Qoc2VsZik6DQo+ID4+Pj4gLSAgICAg ICAgc2VsZi5QY2RzDQo+ID4+Pj4gKyAgICAgICAgc2VsZi5HdWlkDQo+ID4+Pj4gICAgICAgICAg cmV0dXJuIHNlbGYuX0d1aWRzVXNlZEJ5UGNkDQo+ID4+Pj4NCj4gPj4+PiAgICAgICMjIFJldHJp ZXZlIFBDRCBmb3IgZ2l2ZW4gdHlwZQ0KPiA+Pj4+ICAgICAgZGVmIF9HZXRQY2Qoc2VsZiwgVHlw ZSk6DQo+ID4+Pj4gICAgICAgICAgUGNkcyA9IE9yZGVyZWREaWN0KCkNCj4gPj4+PiBAQCAtODY4 LDIwICs4ODEsMTAgQEAgY2xhc3MNCj4gPj4gSW5mQnVpbGREYXRhKE1vZHVsZUJ1aWxkQ2xhc3NP YmplY3QpOg0KPiA+Pj4+ICAgICAgICAgIFBjZExpc3QgPSBbXQ0KPiA+Pj4+ICAgICAgICAgIFJl Y29yZExpc3QgPSBzZWxmLl9SYXdEYXRhW1R5cGUsDQo+ID4+IHNlbGYuX0FyY2gsIHNlbGYuX1Bs YXRmb3JtXQ0KPiA+Pj4+ICAgICAgICAgIGZvciBUb2tlblNwYWNlR3VpZCwgUGNkQ05hbWUsIFNl dHRpbmcsDQo+ID4+IEFyY2gsIFBsYXRmb3JtLCBJZCwgTGluZU5vIGluIFJlY29yZExpc3Q6DQo+ ID4+Pj4gICAgICAgICAgICAgIFBjZERpY3RbQXJjaCwgUGxhdGZvcm0sIFBjZENOYW1lLA0KPiA+ PiBUb2tlblNwYWNlR3VpZF0gPSAoU2V0dGluZywgTGluZU5vKQ0KPiA+Pj4+ICAgICAgICAgICAg ICBQY2RMaXN0LmFwcGVuZCgoUGNkQ05hbWUsDQo+ID4+IFRva2VuU3BhY2VHdWlkKSkNCj4gPj4+ PiAtICAgICAgICAgICAgIyBnZXQgdGhlIGd1aWQgdmFsdWUNCj4gPj4+PiAtICAgICAgICAgICAg aWYgVG9rZW5TcGFjZUd1aWQgbm90IGluIHNlbGYuR3VpZHM6DQo+ID4+Pj4gLSAgICAgICAgICAg ICAgICBWYWx1ZSA9IEd1aWRWYWx1ZShUb2tlblNwYWNlR3VpZCwNCj4gPj4gc2VsZi5QYWNrYWdl cywgc2VsZi5NZXRhRmlsZS5QYXRoKQ0KPiA+Pj4+IC0gICAgICAgICAgICAgICAgaWYgVmFsdWUg aXMgTm9uZToNCj4gPj4+PiAtICAgICAgICAgICAgICAgICAgICBQYWNrYWdlTGlzdCA9DQo+ID4+ ICJcblx0Ii5qb2luKHN0cihQKSBmb3IgUCBpbiBzZWxmLlBhY2thZ2VzKQ0KPiA+Pj4+IC0gICAg ICAgICAgICAgICAgICAgIEVka0xvZ2dlci5lcnJvcignYnVpbGQnLA0KPiA+PiBSRVNPVVJDRV9O T1RfQVZBSUxBQkxFLA0KPiA+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAiVmFsdWUgb2YgR3VpZA0KPiA+PiBbJXNdIGlzIG5vdCBmb3VuZCB1bmRlciBbR3VpZHNdIHNl Y3Rpb24gaW4iICUgVG9rZW5TcGFjZUd1aWQsDQo+ID4+Pj4gLQ0KPiA+PiBFeHRyYURhdGE9UGFj a2FnZUxpc3QsIEZpbGU9c2VsZi5NZXRhRmlsZSwgTGluZT1MaW5lTm8pDQo+ID4+Pj4gLSAgICAg ICAgICAgICAgICBzZWxmLkd1aWRzW1Rva2VuU3BhY2VHdWlkXSA9IFZhbHVlDQo+ID4+Pj4gLQ0K PiA+PiBzZWxmLl9HdWlkc1VzZWRCeVBjZFtUb2tlblNwYWNlR3VpZF0gPSBWYWx1ZQ0KPiA+Pj4+ ICAgICAgICAgICAgICBDb21tZW50UmVjb3JkcyA9DQo+ID4+IHNlbGYuX1Jhd0RhdGFbTU9ERUxf TUVUQV9EQVRBX0NPTU1FTlQsIHNlbGYuX0FyY2gsIHNlbGYuX1BsYXRmb3JtLCBJZF0NCj4gPj4+ PiAgICAgICAgICAgICAgQ29tbWVudHMgPSBbXQ0KPiA+Pj4+ICAgICAgICAgICAgICBmb3IgQ210 UmVjIGluIENvbW1lbnRSZWNvcmRzOg0KPiA+Pj4+ICAgICAgICAgICAgICAgICAgQ29tbWVudHMu YXBwZW5kKENtdFJlY1swXSkNCj4gPj4+PiAgICAgICAgICAgICAgc2VsZi5fUGNkQ29tbWVudHNb VG9rZW5TcGFjZUd1aWQsDQo+ID4+IFBjZENOYW1lXSA9IENvbW1lbnRzDQo+ID4+Pj4gLS0NCj4g Pj4+PiAyLjIwLjEud2luZG93cy4xDQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4g Pg0KPiA+IA0KPiA+DQoNCg==