From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from huawei.com (huawei.com [45.249.212.187]) by mx.groups.io with SMTP id smtpd.web11.13202.1595400290043918759 for ; Tue, 21 Jul 2020 23:44:50 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: huawei.com, ip: 45.249.212.187, mailfrom: huangming23@huawei.com) Received: from DGGEMM403-HUB.china.huawei.com (unknown [172.30.72.54]) by Forcepoint Email with ESMTP id CC1C21D7AE0F918A1D55 for ; Wed, 22 Jul 2020 14:44:46 +0800 (CST) Received: from DGGEMM423-HUB.china.huawei.com (10.1.198.40) by DGGEMM403-HUB.china.huawei.com (10.3.20.211) with Microsoft SMTP Server (TLS) id 14.3.487.0; Wed, 22 Jul 2020 14:44:23 +0800 Received: from DGGEMM508-MBS.china.huawei.com ([169.254.4.119]) by dggemm423-hub.china.huawei.com ([10.1.198.40]) with mapi id 14.03.0487.000; Wed, 22 Jul 2020 14:44:15 +0800 From: "Ming Huang" To: "Jiang, Guomin" , "devel@edk2.groups.io" , "Wang, Jian J" , "Wu, Hao A" , "Gao, Liming" CC: Lidongzhan , Songdongkuang , wanghuiqiang , qiuliangen , Shenlimei , "xiewenyi (A)" , John Garry Subject: =?UTF-8?B?562U5aSNOiBbZWRrMi1kZXZlbF0gW1BBVENIIGVkazIgdjEgMS8xXSBNZGVNb2R1bGVQa2cvVmFyaWFibGU6IE1vdmUgRmluZFZhcmlhYmxlIGFmdGVyIEF1dG9VcGRhdGVMYW5nVmFyaWFibGU=?= Thread-Topic: [edk2-devel] [PATCH edk2 v1 1/1] MdeModulePkg/Variable: Move FindVariable after AutoUpdateLangVariable Thread-Index: AQHWTdvPEDjkQacN+0yi0X6v9ks7fajwT42QgADH24CAAMWXUIAD98uAgB0SMoCAAGI4EA== Date: Wed, 22 Jul 2020 06:44:15 +0000 Message-ID: <3A622B96E322004395454DF73A38DDFA7EC658F3@dggemm508-mbs.china.huawei.com> References: <1593410773-62704-1-git-send-email-huangming23@huawei.com> <1593410773-62704-2-git-send-email-huangming23@huawei.com> <16e7bca1-f07a-ce3e-7699-97603828d0b5@huawei.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.78.51.60] MIME-Version: 1.0 X-CFilter-Loop: Reflected Content-Language: zh-CN Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 SGkgR3VvTWluLA0KDQpJIGRvbid0IHRoaW5rIHRoZSBuZXcgY2hhbmdlIGNhbiBmaXggdGhpcyBp c3N1ZShpZD0yNjY3KS4gV2UgdXNlIG9sZGVyIGVkazIgdmVyc2lvbiB3aGljaCBkb24ndCBoYXZl IA0KU3luY2hyb25pemVSdW50aW1lVmFyaWFibGVDYWNoZSgpLg0KDQpUaGFua3MNCk1pbmcNCg0K LS0tLS3Tyrz+1K28/i0tLS0tDQq3orz+yMs6IEppYW5nLCBHdW9taW4gW21haWx0bzpndW9taW4u amlhbmdAaW50ZWwuY29tXSANCreiy83KsbzkOiAyMDIwxOo31MIyMsjVIDg6NDcNCsrVvP7Iyzog SHVhbmdtaW5nIChNYXJrKSA8aHVhbmdtaW5nMjNAaHVhd2VpLmNvbT47IGRldmVsQGVkazIuZ3Jv dXBzLmlvOyBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8 aGFvLmEud3VAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0K s63LzTogTGlkb25nemhhbiA8bGlkb25nemhhbkBodWF3ZWkuY29tPjsgU29uZ2RvbmdrdWFuZyA8 c29uZ2RvbmdrdWFuZ0BodWF3ZWkuY29tPjsgd2FuZ2h1aXFpYW5nIDx3YW5naHVpcWlhbmdAaHVh d2VpLmNvbT47IHFpdWxpYW5nZW4gPHFpdWxpYW5nZW5AaHVhd2VpLmNvbT47IFNoZW5saW1laSA8 c2hlbmxpbWVpQGh1YXdlaS5jb20+OyB4aWV3ZW55aSAoQSkgPHhpZXdlbnlpMkBodWF3ZWkuY29t PjsgSm9obiBHYXJyeSA8am9obi5nYXJyeUBodWF3ZWkuY29tPg0K1vfM4jogUkU6IFtlZGsyLWRl dmVsXSBbUEFUQ0ggZWRrMiB2MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZTogTW92ZSBGaW5k VmFyaWFibGUgYWZ0ZXIgQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZQ0KDQpIaSBNaW5nLA0KDQpUaGUg bmV3IHBvc3RlZCBjaGFuZ2UgaHR0cHM6Ly9lZGsyLmdyb3Vwcy5pby9nL2RldmVsL3RvcGljLzc1 NDEyMDA3IzYyMzI3IG1heSBiZSBoZWxwZnVsIGZvciB0aGlzIGlzc3VlLg0KDQpDYW4geW91IGFk ZCB0aGUgY2hhbmdlIGluIHlvdXIgY29kZSBhbmQgdmVyaWZ5IGl0Pw0KDQpUaGFua3MNCkd1b21p bg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNaW5nIEh1YW5nIDxodWFu Z21pbmcyM0BodWF3ZWkuY29tPg0KPiBTZW50OiBGcmlkYXksIEp1bHkgMywgMjAyMCA4OjQ5IFBN DQo+IFRvOiBKaWFuZywgR3VvbWluIDxndW9taW4uamlhbmdAaW50ZWwuY29tPjsgZGV2ZWxAZWRr Mi5ncm91cHMuaW87IA0KPiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1 LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgDQo+IEdhbywgTGltaW5nIDxsaW1pbmcuZ2Fv QGludGVsLmNvbT4NCj4gQ2M6IGxpZG9uZ3poYW5AaHVhd2VpLmNvbTsgc29uZ2RvbmdrdWFuZ0Bo dWF3ZWkuY29tOyANCj4gd2FuZ2h1aXFpYW5nQGh1YXdlaS5jb207IHFpdWxpYW5nZW5AaHVhd2Vp LmNvbTsgc2hlbmxpbWVpQGh1YXdlaS5jb207IA0KPiB4aWV3ZW55aTJAaHVhd2VpLmNvbTsgam9o bi5nYXJyeUBodWF3ZWkuY29tDQo+IFN1YmplY3Q6IFJlOiBbZWRrMi1kZXZlbF0gW1BBVENIIGVk azIgdjEgMS8xXSBNZGVNb2R1bGVQa2cvVmFyaWFibGU6DQo+IE1vdmUgRmluZFZhcmlhYmxlIGFm dGVyIEF1dG9VcGRhdGVMYW5nVmFyaWFibGUNCj4gDQo+IA0KPiANCj4g1NogMjAyMC83LzEgODoy MiwgSmlhbmcsIEd1b21pbiDQtLXAOg0KPiA+IFNvIEkgdGhpbmsgdGhlIGtleSBwb2ludCBpcyB3 aHkgQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZSgpIHJldHVybiANCj4gPiBzdWNjZXNzDQo+IHJhdGhl ciB0aGFuIGZhaWwsIGlmIGlzIGl0IHJlYXNvbmFibGUgZm9yIHRoaXMgY2FzZSBvciB3ZSBuZWVk IG90aGVyIA0KPiBlcnJvciBoYW5kaW5nPw0KPiANCj4gSSBkb24ndCB0aGluayBBdXRvVXBkYXRl TGFuZ1ZhcmlhYmxlKCkgc2hvdWxkIHJldHVybiBmYWlsIHdoaWxlIG9jY3VyIA0KPiByZWNsYWlt IGludGVybmFsIGluIEF1dG9VcGRhdGVMYW5nVmFyaWFibGUgKCkgZnVuY3Rpb24uIFRoZSBwcm9i bGVtIGlzIA0KPiB0aGUNCj4gVmFyaWFibGUoVkFSSUFCTEVfUE9JTlRFUl9UUkFDSykgZ2V0IGJ5 IEZpbmRWYXJpYWJsZSBpcyBpbnZhbGQgaW4gdGhpcyANCj4gc2l0dWF0aW9uIGFuZCB0aGlzIFZh cmlhYmxlIHdpbGwgYmUgcGFzcyB0byBVcGRhdGVWYXJpYWJsZSgpLg0KPiANCj4gICBpZiAobVZh cmlhYmxlTW9kdWxlR2xvYmFsLT5WYXJpYWJsZUdsb2JhbC5BdXRoU3VwcG9ydCkgew0KPiAgICAg U3RhdHVzID0gQXV0aFZhcmlhYmxlTGliUHJvY2Vzc1ZhcmlhYmxlIChWYXJpYWJsZU5hbWUsIFZl bmRvckd1aWQsIA0KPiBEYXRhLCBEYXRhU2l6ZSwgQXR0cmlidXRlcyk7DQo+ICAgfSBlbHNlIHsN Cj4gLy8gVGhpcyBWYXJpYWJsZSBpcyBpbnZhbGQgd2hpbGUgb2NjdXIgcmVjbGFpbSBpbnRlcm5h bCBpbiANCj4gQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZSAoKQ0KPiAgICAgU3RhdHVzID0gVXBkYXRl VmFyaWFibGUgKFZhcmlhYmxlTmFtZSwgVmVuZG9yR3VpZCwgRGF0YSwgRGF0YVNpemUsIA0KPiBB dHRyaWJ1dGVzLCAwLCAwLCAmVmFyaWFibGUsIE5VTEwpOw0KPiAgIH0NCj4gDQo+ID4NCj4gPiBJ IGFtIGdsYWQgdG8gaGVscCB5b3UgYnV0IEkgY2FuJ3QgcmVwcm9kdWNlIGl0IHVudGlsIG5vdywg Y2FuIHlvdSANCj4gPiBwcm92aWRlIGENCj4gc3RlcCB0byByZXByb2R1Y2UgaXQgaW4gc2ltdWxh dGlvbiBwbGF0Zm9ybS4NCj4gDQo+IEkgYW0gbm90IGZhbWlsaWFyIHdpdGggc2ltdWxhdGlvbiBw bGF0Zm9ybS4gV2UgcmVwcm9kdWN0IHRoaXMgaXNzdWUgaW4gDQo+IG91ciBib2FyZCBvbmNlLg0K PiBGb3IgYWNjZWxlcmF0aW5nIHJlcHJvZHVjdGlvbiB0aGlzIGlzc3VlLCBBZGQgUmVjbGFpbSgp IHRvDQo+IEF1dG9VcGRhdGVMYW5nVmFyaWFibGUoKSBmb3IgdGVzdC4NCj4gDQo+IFRoYW5rcywN Cj4gTWluZw0KPiANCj4gPg0KPiA+IElmIGl0IGlzIHVyZ2VudCwgSSBzdWdnZXN0IHRoYXQgZGlz Y3VzcyB3aXRoIHlvdXIgaW50ZXJuYWwgdGVhbSANCj4gPiBmaXJzdCBhbmQgZXhwbGFpbg0KPiB0 aGF0IHdlIG5lZWQgY29uc2lkZXIgdGhlIHJpc2sgY2hlY2sgaXQgaW50byBlZGsyLg0KPiA+DQo+ ID4gQmVzdCBSZWdhcmRzDQo+ID4gR3VvbWluDQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNz YWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMuaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPiBPbiBCZWhhbGYgT2YgTWluZyANCj4gPj4gSHVhbmcgdmlhIGdyb3Vwcy5pbw0KPiA+ PiBTZW50OiBUdWVzZGF5LCBKdW5lIDMwLCAyMDIwIDg6MjYgUE0NCj4gPj4gVG86IEppYW5nLCBH dW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgDQo+ ID4+IFdhbmcsIEppYW4gSiA8amlhbi5qLndhbmdAaW50ZWwuY29tPjsgV3UsIEhhbyBBIA0KPiA+ PiA8aGFvLmEud3VAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29t Pg0KPiA+PiBDYzogbGlkb25nemhhbkBodWF3ZWkuY29tOyBzb25nZG9uZ2t1YW5nQGh1YXdlaS5j b207IA0KPiA+PiB3YW5naHVpcWlhbmdAaHVhd2VpLmNvbTsgcWl1bGlhbmdlbkBodWF3ZWkuY29t Ow0KPiBzaGVubGltZWlAaHVhd2VpLmNvbTsNCj4gPj4geGlld2VueWkyQGh1YXdlaS5jb20NCj4g Pj4gU3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggZWRrMiB2MSAxLzFdIE1kZU1vZHVs ZVBrZy9WYXJpYWJsZToNCj4gPj4gTW92ZSBGaW5kVmFyaWFibGUgYWZ0ZXIgQXV0b1VwZGF0ZUxh bmdWYXJpYWJsZQ0KPiA+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiDU2iAyMDIwLzYvMzAgODo1OCwgSmlh bmcsIEd1b21pbiDQtLXAOg0KPiA+Pj4gSGkgSHVhbmcsDQo+ID4+Pg0KPiA+Pj4gPkZyb20gaXNz dWUgc3RhdGVtZW50LCBJIGd1ZXNzIHRoYXQNCj4gPj4+IDEuIEF1dG9VcGRhdGVMYW5nVmFyaWFi bGUoKSBpbnZva2VkLCBhbmQgaXQgd2lsbCBpbnZva2UNCj4gPj4+IEZpbmRWYXJpYWJsZSgpIGZp cnN0LCBhdCB0aGUgc2FtZSB0aW1lLCByZWNsYWltIG9jY3VyIGFuZCANCj4gPj4+IFZhcmlhYmxl LkN1cnJQdHIgaXMgaW52YWxpZCwgaXQgcmV0dXJuDQo+ID4+IHdpdGggc3VjY2VzcyAyLiBVcGRh dGVWYXJpYWJsZSgpIGlzIGludm9rZWQgd2hlbiBUaGUgb2xkIExhbmcncyANCj4gPj4gU3RhdGUg aXMgdmFsaWQgYW5kIHRoZSBuZXcgTGFuZydzIFN0YXRlIGlzIGFsc28gdmFsaWQuDQo+ID4+PiAz LiBJbiB0aGUgc2l0dWF0aW9uLCBGaW5kVmFyaWFibGUoKSBjaGVja2VkIExhbmcncyBTdGF0ZSBh bmQgb25seSANCj4gPj4+IGVuYWJsZSBvbmUNCj4gPj4gTGFuZydzIFN0YXRlLiBCdXQgaXQgZGlk bid0IGluIGZhY3QuDQo+ID4+PiA0LiBCbUZvckVhY2hWYXJpYWJsZSgpIGRlYWRsb29wIGluIHRo ZSBzaXR1YXRpb24uDQo+ID4+Pg0KPiA+Pj4gQW0gSSByaWdodD8NCj4gPj4NCj4gPj4gWWVzLCBy aWdodC4NCj4gPj4NCj4gPj4gVGhhbmtzLA0KPiA+PiBNaW5nDQo+ID4+DQo+ID4+Pg0KPiA+Pj4+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91 cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YNCj4gTWluZw0KPiA+Pj4+ IEh1YW5nIHZpYSBncm91cHMuaW8NCj4gPj4+PiBTZW50OiBNb25kYXksIEp1bmUgMjksIDIwMjAg MjowNiBQTQ0KPiA+Pj4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgV2FuZywgSmlhbiBKIDxq aWFuLmoud2FuZ0BpbnRlbC5jb20+OyANCj4gPj4+PiBXdSwgSGFvIEEgPGhhby5hLnd1QGludGVs LmNvbT47IEdhbywgTGltaW5nIA0KPiA+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPj4+ PiBDYzogbGlkb25nemhhbkBodWF3ZWkuY29tOyBodWFuZ21pbmcyM0BodWF3ZWkuY29tOyANCj4g Pj4+PiBzb25nZG9uZ2t1YW5nQGh1YXdlaS5jb207IHdhbmdodWlxaWFuZ0BodWF3ZWkuY29tOyAN Cj4gPj4+PiBxaXVsaWFuZ2VuQGh1YXdlaS5jb207IHNoZW5saW1laUBodWF3ZWkuY29tOw0KPiA+ PiB4aWV3ZW55aTJAaHVhd2VpLmNvbQ0KPiA+Pj4+IFN1YmplY3Q6IFtlZGsyLWRldmVsXSBbUEFU Q0ggZWRrMiB2MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZToNCj4gPj4gTW92ZQ0KPiA+Pj4+ IEZpbmRWYXJpYWJsZSBhZnRlciBBdXRvVXBkYXRlTGFuZ1ZhcmlhYmxlDQo+ID4+Pj4NCj4gPj4+ PiBXaGVuIG9jY3VyIHJlY2xhaW0gaW4gQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZSgpLCB0aGUgQ3Vy clB0ciBvZiANCj4gPj4+PiBWYXJpYWJsZSBpcyBpbnZhbGlkLiBUaGUgU3RhdGUgd2lsbCBiZSB1 cGRhdGUgd2l0aCB3cm9uZyBwb3NpdGlvbiANCj4gPj4+PiBhZnRlciBVcGRhdGVWYXJpYWJsZSBp biB0aGlzIHNpdHVhdGlvbiBhbmQgdHdvIHZhbGlkIFBsYXRmb3JtTGFuZyANCj4gPj4+PiBvciBM YW5nDQo+ID4+IHZhcmlhYmxlcyB3aWxsIGV4aXN0Lg0KPiA+Pj4+IEJtRm9yRWFjaFZhcmlhYmxl KCkgd2lsbCBlbnRlciBlbmRsZXNzIGxvb3Agd2hpbGUgZXhpc3QgdHdvIHZhbGlkIA0KPiA+Pj4+ IFBsYXRmb3JtTGFuZyB2YXJpYWJsZXMuIFNvIEZpbmRWYXJpYWJsZSgpIHNob3VsZCBiZSBpbnZv a2VkIGF0ZmVyIA0KPiA+Pj4+IEF1dG9VcGRhdGVMYW5nVmFyaWFibGUoKS4NCj4gPj4+Pg0KPiA+ Pj4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY2Nw0K PiA+Pj4+DQo+ID4+Pj4gU2lnbmVkLW9mZi1ieTogTWluZyBIdWFuZyA8aHVhbmdtaW5nMjNAaHVh d2VpLmNvbT4NCj4gPj4+PiAtLS0NCj4gPj4+PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJp YWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMgfCAyNg0KPiA+Pj4+ICsrKysrKysrKystLS0tLS0t LS0tDQo+ID4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAxMyBkZWxldGlv bnMoLSkNCj4gPj4+Pg0KPiA+Pj4+IGRpZmYgLS1naXQgDQo+ID4+Pj4gYS9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYw0KPiA+Pj4+IGIvTWRlTW9k dWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMNCj4gPj4+PiBp bmRleCAxZTcxZmM2Li4wY2VjOTgxIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL01kZU1vZHVsZVBrZy9V bml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJsZS5jDQo+ID4+Pj4gKysrIGIvTWRl TW9kdWxlUGtnL1VuaXZlcnNhbC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMNCj4gPj4+ PiBAQCAtMjc0MSw2ICsyNzQxLDE5IEBAIFZhcmlhYmxlU2VydmljZVNldFZhcmlhYmxlICgNCj4g Pj4+PiAgICAgIG1WYXJpYWJsZU1vZHVsZUdsb2JhbC0+Tm9uVm9sYXRpbGVMYXN0VmFyaWFibGVP ZmZzZXQgPSANCj4gPj4+PiAoVUlOVE4pIE5leHRWYXJpYWJsZSAtIChVSU5UTikgUG9pbnQ7DQo+ ID4+Pj4gICAgfQ0KPiA+Pj4+DQo+ID4+Pj4gKyAgaWYgKCFGZWF0dXJlUGNkR2V0IChQY2RVZWZp VmFyaWFibGVEZWZhdWx0TGFuZ0RlcHJlY2F0ZSkpIHsNCj4gPj4+PiArICAgIC8vDQo+ID4+Pj4g KyAgICAvLyBIb29rIHRoZSBvcGVyYXRpb24gb2Ygc2V0dGluZyANCj4gPj4+PiArIFBsYXRmb3Jt TGFuZ0NvZGVzL1BsYXRmb3JtTGFuZyBhbmQNCj4gPj4+PiBMYW5nQ29kZXMvTGFuZy4NCj4gPj4+ PiArICAgIC8vDQo+ID4+Pj4gKyAgICBTdGF0dXMgPSBBdXRvVXBkYXRlTGFuZ1ZhcmlhYmxlIChW YXJpYWJsZU5hbWUsIERhdGEsIERhdGFTaXplKTsNCj4gPj4+PiArICAgIGlmIChFRklfRVJST1Ig KFN0YXR1cykpIHsNCj4gPj4+PiArICAgICAgLy8NCj4gPj4+PiArICAgICAgLy8gVGhlIGF1dG8g dXBkYXRlIG9wZXJhdGlvbiBmYWlsZWQsIGRpcmVjdGx5IHJldHVybiB0byANCj4gPj4+PiArIGF2 b2lkDQo+ID4+Pj4gaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIFBsYXRmb3JtTGFuZyBhbmQgTGFuZy4N Cj4gPj4+PiArICAgICAgLy8NCj4gPj4+PiArICAgICAgZ290byBEb25lOw0KPiA+Pj4+ICsgICAg fQ0KPiA+Pj4+ICsgIH0NCj4gPj4+PiArDQo+ID4+Pj4gICAgLy8NCj4gPj4+PiAgICAvLyBDaGVj ayB3aGV0aGVyIHRoZSBpbnB1dCB2YXJpYWJsZSBpcyBhbHJlYWR5IGV4aXN0ZWQuDQo+ID4+Pj4g ICAgLy8NCj4gPj4+PiBAQCAtMjc2MywxOSArMjc3Niw2IEBAIFZhcmlhYmxlU2VydmljZVNldFZh cmlhYmxlICgNCj4gPj4+PiAgICAgIH0NCj4gPj4+PiAgICB9DQo+ID4+Pj4NCj4gPj4+PiAtICBp ZiAoIUZlYXR1cmVQY2RHZXQgKFBjZFVlZmlWYXJpYWJsZURlZmF1bHRMYW5nRGVwcmVjYXRlKSkg ew0KPiA+Pj4+IC0gICAgLy8NCj4gPj4+PiAtICAgIC8vIEhvb2sgdGhlIG9wZXJhdGlvbiBvZiBz ZXR0aW5nIFBsYXRmb3JtTGFuZ0NvZGVzL1BsYXRmb3JtTGFuZw0KPiBhbmQNCj4gPj4+PiBMYW5n Q29kZXMvTGFuZy4NCj4gPj4+PiAtICAgIC8vDQo+ID4+Pj4gLSAgICBTdGF0dXMgPSBBdXRvVXBk YXRlTGFuZ1ZhcmlhYmxlIChWYXJpYWJsZU5hbWUsIERhdGEsIERhdGFTaXplKTsNCj4gPj4+PiAt ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gPj4+PiAtICAgICAgLy8NCj4gPj4+PiAt ICAgICAgLy8gVGhlIGF1dG8gdXBkYXRlIG9wZXJhdGlvbiBmYWlsZWQsIGRpcmVjdGx5IHJldHVy biB0byBhdm9pZA0KPiA+PiBpbmNvbnNpc3RlbmN5DQo+ID4+Pj4gYmV0d2VlbiBQbGF0Zm9ybUxh bmcgYW5kIExhbmcuDQo+ID4+Pj4gLSAgICAgIC8vDQo+ID4+Pj4gLSAgICAgIGdvdG8gRG9uZTsN Cj4gPj4+PiAtICAgIH0NCj4gPj4+PiAtICB9DQo+ID4+Pj4gLQ0KPiA+Pj4+ICAgIGlmIChtVmFy aWFibGVNb2R1bGVHbG9iYWwtPlZhcmlhYmxlR2xvYmFsLkF1dGhTdXBwb3J0KSB7DQo+ID4+Pj4g ICAgICBTdGF0dXMgPSBBdXRoVmFyaWFibGVMaWJQcm9jZXNzVmFyaWFibGUgKFZhcmlhYmxlTmFt ZSwgDQo+ID4+Pj4gVmVuZG9yR3VpZCwgRGF0YSwgRGF0YVNpemUsIEF0dHJpYnV0ZXMpOw0KPiA+ Pj4+ICAgIH0gZWxzZSB7DQo+ID4+Pj4gLS0NCj4gPj4+PiAyLjguMQ0KPiA+Pj4+DQo+ID4+Pj4N Cj4gPj4+Pg0KPiA+Pj4NCj4gPj4+DQo+ID4+Pg0KPiA+Pg0KPiA+Pg0KPiA+PiANCj4gPg0KPiA+ DQo+ID4gLg0KPiA+DQoNCg==