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.web12.13412.1595400530127761841 for ; Tue, 21 Jul 2020 23:48:50 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=x2eDB46R; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: guomin.jiang@intel.com) IronPort-SDR: inw1z6aNBXrEAVo62b9WtjEYDXT6ugII0oLJsqAkrC9d+WEQfEddLzQ3NEmHwewv3x+qF2rmhs T15Al4YbEjeg== X-IronPort-AV: E=McAfee;i="6000,8403,9689"; a="130362797" X-IronPort-AV: E=Sophos;i="5.75,381,1589266800"; d="scan'208";a="130362797" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 21 Jul 2020 23:48:49 -0700 IronPort-SDR: zQmGSw9VSRJ5lLXbS7PSjbN3DvW7v3VsFu/T7d6neksQmQW69VTpk9eSDDeM/jL9sec2ReXJ9T 6he1AljDy7Kg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,381,1589266800"; d="scan'208";a="326611831" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by FMSMGA003.fm.intel.com with ESMTP; 21 Jul 2020 23:48:49 -0700 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Tue, 21 Jul 2020 23:48:48 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Tue, 21 Jul 2020 23:48:48 -0700 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.173) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 21 Jul 2020 23:48:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ik7gvuZEB5DgH4m/utUUsd76YXcuUR9NLYEZsMAVCMcDOfjorpuTzcN+YckhmTsnWJLpmUsYG5i8oavrW/hKxo8RPovzOt4YopixKQdoyRDqPJw/ft3qNoBfLgQoJO/zNwEQFWvBo2fLDpExOzOaTlxOBMJ9Q48ca619uUjbnNOcOg9LNbHGg2JrQdc2eCvUCdPHSgdxdpFZu6BIfTUgjn808oYlbdYyg4cR1kyZM3NO1wLaFutLx7iAbpYw0ZAO9FItwv4BW6ZkYjCgNl/vl0snXwgSRUDPChyOiGHooY7thzPj1r/rWst6pxZA4VsdgzsMj4S9uKZ7xZxks7YeeA== 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=3uLUkOzUBxxNZhRnQfCHjlvjuCTbayrllbv3pclwQns=; b=Q2sDeg6ihTsoqTZsNgxTHy29zr3JyJSwTsI/aeadPiCKr3b0f5tQUWXt8tWrkSSnFHi13ckOErCBrxvLOVBEQwGzv2eb94k5hDFcj2oWSfCxIFBAug8ETvIjrBWxzLx8/t1fQciVSi4zesv+Safg4Jth7CCeYtxYc+5PSyIhxFIQpIyI3xiu+YVSo5je3DP9a8kdIN3CocIrDywl8elnhs/9+U/92FU02z/whqEWm/UYuPJx8nIStaAeI7AClwM9MiXM9MRhSQhtxtM89p+8yRaloSAkTRLpF6qizuISm4YdBS3urQf/PhTBse+SFM4BhYr3Mn1F6Iys0NpqW+rNhg== 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=3uLUkOzUBxxNZhRnQfCHjlvjuCTbayrllbv3pclwQns=; b=x2eDB46RiCu4tL1y2+EA+cdDLQnH2sbUVTz5gln1tMO5ExS9K2z8lwjAHykasMXOSbt8GEkOer1a5U8owX80sQHCi+dB2vxRAhCeT3dIaOsojDdU3gRndkWmVfMDEvEHAduNb8L3OiBFT2zW2IJ4xxW+KuNk+VXG5XQ3AW3OqXE= Received: from DM6PR11MB2955.namprd11.prod.outlook.com (2603:10b6:5:65::31) by DM6PR11MB3626.namprd11.prod.outlook.com (2603:10b6:5:146::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.20; Wed, 22 Jul 2020 06:48:46 +0000 Received: from DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d]) by DM6PR11MB2955.namprd11.prod.outlook.com ([fe80::e916:c766:fc41:b51d%5]) with mapi id 15.20.3174.031; Wed, 22 Jul 2020 06:48:46 +0000 From: "Guomin Jiang" To: "Huangming (Mark)" , "devel@edk2.groups.io" , "Wang, Jian J" , "Wu, Hao A" , "Gao, Liming" CC: Lidongzhan , Songdongkuang , wanghuiqiang , qiuliangen , Shenlimei , "xiewenyi (A)" , John Garry Subject: Re: [edk2-devel] [PATCH edk2 v1 1/1] MdeModulePkg/Variable: Move FindVariable after AutoUpdateLangVariable Thread-Topic: [edk2-devel] [PATCH edk2 v1 1/1] MdeModulePkg/Variable: Move FindVariable after AutoUpdateLangVariable Thread-Index: AQHWTdvc/EERFE2Is0WZy87gpc5s7qjwT42QgADH24CAAMWXUIAD98uAgB0SMoCAAGRUgIAAAM2w Date: Wed, 22 Jul 2020 06:48:45 +0000 Message-ID: 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> <3A622B96E322004395454DF73A38DDFA7EC658F3@dggemm508-mbs.china.huawei.com> In-Reply-To: <3A622B96E322004395454DF73A38DDFA7EC658F3@dggemm508-mbs.china.huawei.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: huawei.com; dkim=none (message not signed) header.d=none;huawei.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.203] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 53616762-b181-4da3-e9a5-08d82e0b480b x-ms-traffictypediagnostic: DM6PR11MB3626: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: HwzClOYZDRUf9EMy9tnUITlKp66hC7vRNOQXT3YE61wX6HAVaFa7To41uQFGZTOp21qPswBkYe3ASN9e/aNEfbKnxiI80vJnVkwVkvIhBDvjFdS2zd2Ji+QSePvmOm8mmlfmX9IX2mbq4wlE4OcZsR2+ohM6r83OyjL/ISBwdnXPS+zddB2T1VCagKXgYT0QhAwH9MmQgTSpfAbh7TK6IGu2n1pCRPugPL+KocICKdyAgWkweMS8pPE4n+BEb0G4VFslh34RLQgxqNz3FIXzO4UKziI82xLjTWKj92ep9rCnnbHTzhm75RTOVSqRu4pap/i3UA0dyhL3gaegHz4vaW+mWSQPQvQpwdqs6ZkfNRtbyyBEUq0k+DR8EE/FfKo5URoEJNx+UukwbcG/Tihe6Q== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB2955.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(346002)(136003)(376002)(366004)(396003)(39860400002)(6636002)(55016002)(9686003)(8676002)(478600001)(186003)(66556008)(966005)(52536014)(7696005)(66446008)(6506007)(66476007)(53546011)(83380400001)(76116006)(66946007)(64756008)(316002)(33656002)(54906003)(26005)(8936002)(5660300002)(4326008)(2906002)(86362001)(110136005)(71200400001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: XSR7kOuw6gqE4r8RA39F3udT2f0g9OSXnpV8hpGl6QalKVGgNklUb4Mo9r+J37VJ6Ge20jFkHOYneasc6WISTClwbh+fcw5tqs3/pG8AIUTztvidIyRdQr9A9QxE118HYpkbRRtLY4TU3UfG8IsZnkL8BPJ/FdAlmd1ceIpBBiG7Jr5dQZtqzAWWLZATjbXToF6U1w5Wbk0oE+54HRjwSA9uqiQtjDsfX4nmY1uj3do8bDUzQTQJyQrCK1qRrDsk7K7MlKc4imLNWM5ry8osOY8kH+scz9UwCB09o3VLT6zYfAZSRjeUxY0heC8y9ZOH7it3sFfB+rPgPvvJlLYGAwIOFLRsnI60Wtu15w3Gz8VMjN1Z0ud/A5NIeJJe7fWZq1HkVT1HfuHJWzLHIbZpTPSXnfKXvhGU8gWdsWuobPp9xlkxAWdWIHycbb9uQVhN4imsHA92sf4hLQ31QDp1F2DhXw3VZ/B8t+Nv/6IoIOTcPk6Fl7EphHK8rD5qSQPq MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB2955.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 53616762-b181-4da3-e9a5-08d82e0b480b X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Jul 2020 06:48:46.0363 (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: mF1OfQj/vetnZ/rxdd8aMes0KZF8DfUA1yhDEb9vvSd5rIwSyiNJTZ5/T16jhTVBaN9tu8ZSLAT4/SsfBnzVBg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3626 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTWluZywNCg0KQ2FuIHlvdSB0cnkgdGhlIG5ld2VzdCBlZGsyPw0KDQpUaGFua3MNCkd1b21p bg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBIdWFuZ21pbmcgKE1hcmsp IDxodWFuZ21pbmcyM0BodWF3ZWkuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEp1bHkgMjIsIDIw MjAgMjo0NCBQTQ0KPiBUbzogSmlhbmcsIEd1b21pbiA8Z3VvbWluLmppYW5nQGludGVsLmNvbT47 IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBXYW5nLA0KPiBKaWFuIEogPGppYW4uai53YW5nQGludGVs LmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgR2FvLA0KPiBMaW1pbmcgPGxp bWluZy5nYW9AaW50ZWwuY29tPg0KPiBDYzogTGlkb25nemhhbiA8bGlkb25nemhhbkBodWF3ZWku Y29tPjsgU29uZ2RvbmdrdWFuZw0KPiA8c29uZ2RvbmdrdWFuZ0BodWF3ZWkuY29tPjsgd2FuZ2h1 aXFpYW5nDQo+IDx3YW5naHVpcWlhbmdAaHVhd2VpLmNvbT47IHFpdWxpYW5nZW4gPHFpdWxpYW5n ZW5AaHVhd2VpLmNvbT47DQo+IFNoZW5saW1laSA8c2hlbmxpbWVpQGh1YXdlaS5jb20+OyB4aWV3 ZW55aSAoQSkNCj4gPHhpZXdlbnlpMkBodWF3ZWkuY29tPjsgSm9obiBHYXJyeSA8am9obi5nYXJy eUBodWF3ZWkuY29tPg0KPiBTdWJqZWN0OiDnrZTlpI06IFtlZGsyLWRldmVsXSBbUEFUQ0ggZWRr MiB2MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZToNCj4gTW92ZSBGaW5kVmFyaWFibGUgYWZ0 ZXIgQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZQ0KPiANCj4gSGkgR3VvTWluLA0KPiANCj4gSSBkb24n dCB0aGluayB0aGUgbmV3IGNoYW5nZSBjYW4gZml4IHRoaXMgaXNzdWUoaWQ9MjY2NykuIFdlIHVz ZSBvbGRlciBlZGsyDQo+IHZlcnNpb24gd2hpY2ggZG9uJ3QgaGF2ZSBTeW5jaHJvbml6ZVJ1bnRp bWVWYXJpYWJsZUNhY2hlKCkuDQo+IA0KPiBUaGFua3MNCj4gTWluZw0KPiANCj4gLS0tLS3pgq7k u7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEppYW5nLCBHdW9taW4gW21haWx0bzpndW9taW4u amlhbmdAaW50ZWwuY29tXQ0KPiDlj5HpgIHml7bpl7Q6IDIwMjDlubQ35pyIMjLml6UgODo0Nw0K PiDmlLbku7bkuro6IEh1YW5nbWluZyAoTWFyaykgPGh1YW5nbWluZzIzQGh1YXdlaS5jb20+Ow0K PiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5j b20+OyBXdSwgSGFvIEENCj4gPGhhby5hLnd1QGludGVsLmNvbT47IEdhbywgTGltaW5nIDxsaW1p bmcuZ2FvQGludGVsLmNvbT4NCj4g5oqE6YCBOiBMaWRvbmd6aGFuIDxsaWRvbmd6aGFuQGh1YXdl aS5jb20+OyBTb25nZG9uZ2t1YW5nDQo+IDxzb25nZG9uZ2t1YW5nQGh1YXdlaS5jb20+OyB3YW5n aHVpcWlhbmcNCj4gPHdhbmdodWlxaWFuZ0BodWF3ZWkuY29tPjsgcWl1bGlhbmdlbiA8cWl1bGlh bmdlbkBodWF3ZWkuY29tPjsNCj4gU2hlbmxpbWVpIDxzaGVubGltZWlAaHVhd2VpLmNvbT47IHhp ZXdlbnlpIChBKQ0KPiA8eGlld2VueWkyQGh1YXdlaS5jb20+OyBKb2huIEdhcnJ5IDxqb2huLmdh cnJ5QGh1YXdlaS5jb20+DQo+IOS4u+mimDogUkU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggZWRrMiB2 MSAxLzFdIE1kZU1vZHVsZVBrZy9WYXJpYWJsZTogTW92ZQ0KPiBGaW5kVmFyaWFibGUgYWZ0ZXIg QXV0b1VwZGF0ZUxhbmdWYXJpYWJsZQ0KPiANCj4gSGkgTWluZywNCj4gDQo+IFRoZSBuZXcgcG9z dGVkIGNoYW5nZQ0KPiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdG9waWMvNzU0MTIw MDcjNjIzMjcgbWF5IGJlIGhlbHBmdWwgZm9yDQo+IHRoaXMgaXNzdWUuDQo+IA0KPiBDYW4geW91 IGFkZCB0aGUgY2hhbmdlIGluIHlvdXIgY29kZSBhbmQgdmVyaWZ5IGl0Pw0KPiANCj4gVGhhbmtz DQo+IEd1b21pbg0KPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogTWlu ZyBIdWFuZyA8aHVhbmdtaW5nMjNAaHVhd2VpLmNvbT4NCj4gPiBTZW50OiBGcmlkYXksIEp1bHkg MywgMjAyMCA4OjQ5IFBNDQo+ID4gVG86IEppYW5nLCBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRl bC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsNCj4gPiBXYW5nLCBKaWFuIEogPGppYW4uai53 YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsNCj4gPiBHYW8s IExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4gQ2M6IGxpZG9uZ3poYW5AaHVhd2Vp LmNvbTsgc29uZ2RvbmdrdWFuZ0BodWF3ZWkuY29tOw0KPiA+IHdhbmdodWlxaWFuZ0BodWF3ZWku Y29tOyBxaXVsaWFuZ2VuQGh1YXdlaS5jb207DQo+IHNoZW5saW1laUBodWF3ZWkuY29tOw0KPiA+ IHhpZXdlbnlpMkBodWF3ZWkuY29tOyBqb2huLmdhcnJ5QGh1YXdlaS5jb20NCj4gPiBTdWJqZWN0 OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBlZGsyIHYxIDEvMV0gTWRlTW9kdWxlUGtnL1Zhcmlh YmxlOg0KPiA+IE1vdmUgRmluZFZhcmlhYmxlIGFmdGVyIEF1dG9VcGRhdGVMYW5nVmFyaWFibGUN Cj4gPg0KPiA+DQo+ID4NCj4gPiDlnKggMjAyMC83LzEgODoyMiwgSmlhbmcsIEd1b21pbiDlhpnp gZM6DQo+ID4gPiBTbyBJIHRoaW5rIHRoZSBrZXkgcG9pbnQgaXMgd2h5IEF1dG9VcGRhdGVMYW5n VmFyaWFibGUoKSByZXR1cm4NCj4gPiA+IHN1Y2Nlc3MNCj4gPiByYXRoZXIgdGhhbiBmYWlsLCBp ZiBpcyBpdCByZWFzb25hYmxlIGZvciB0aGlzIGNhc2Ugb3Igd2UgbmVlZCBvdGhlcg0KPiA+IGVy cm9yIGhhbmRpbmc/DQo+ID4NCj4gPiBJIGRvbid0IHRoaW5rIEF1dG9VcGRhdGVMYW5nVmFyaWFi bGUoKSBzaG91bGQgcmV0dXJuIGZhaWwgd2hpbGUgb2NjdXINCj4gPiByZWNsYWltIGludGVybmFs IGluIEF1dG9VcGRhdGVMYW5nVmFyaWFibGUgKCkgZnVuY3Rpb24uIFRoZSBwcm9ibGVtIGlzDQo+ ID4gdGhlDQo+ID4gVmFyaWFibGUoVkFSSUFCTEVfUE9JTlRFUl9UUkFDSykgZ2V0IGJ5IEZpbmRW YXJpYWJsZSBpcyBpbnZhbGQgaW4gdGhpcw0KPiA+IHNpdHVhdGlvbiBhbmQgdGhpcyBWYXJpYWJs ZSB3aWxsIGJlIHBhc3MgdG8gVXBkYXRlVmFyaWFibGUoKS4NCj4gPg0KPiA+ICAgaWYgKG1WYXJp YWJsZU1vZHVsZUdsb2JhbC0+VmFyaWFibGVHbG9iYWwuQXV0aFN1cHBvcnQpIHsNCj4gPiAgICAg U3RhdHVzID0gQXV0aFZhcmlhYmxlTGliUHJvY2Vzc1ZhcmlhYmxlIChWYXJpYWJsZU5hbWUsIFZl bmRvckd1aWQsDQo+ID4gRGF0YSwgRGF0YVNpemUsIEF0dHJpYnV0ZXMpOw0KPiA+ICAgfSBlbHNl IHsNCj4gPiAvLyBUaGlzIFZhcmlhYmxlIGlzIGludmFsZCB3aGlsZSBvY2N1ciByZWNsYWltIGlu dGVybmFsIGluDQo+ID4gQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZSAoKQ0KPiA+ICAgICBTdGF0dXMg PSBVcGRhdGVWYXJpYWJsZSAoVmFyaWFibGVOYW1lLCBWZW5kb3JHdWlkLCBEYXRhLCBEYXRhU2l6 ZSwNCj4gPiBBdHRyaWJ1dGVzLCAwLCAwLCAmVmFyaWFibGUsIE5VTEwpOw0KPiA+ICAgfQ0KPiA+ DQo+ID4gPg0KPiA+ID4gSSBhbSBnbGFkIHRvIGhlbHAgeW91IGJ1dCBJIGNhbid0IHJlcHJvZHVj ZSBpdCB1bnRpbCBub3csIGNhbiB5b3UNCj4gPiA+IHByb3ZpZGUgYQ0KPiA+IHN0ZXAgdG8gcmVw cm9kdWNlIGl0IGluIHNpbXVsYXRpb24gcGxhdGZvcm0uDQo+ID4NCj4gPiBJIGFtIG5vdCBmYW1p bGlhciB3aXRoIHNpbXVsYXRpb24gcGxhdGZvcm0uIFdlIHJlcHJvZHVjdCB0aGlzIGlzc3VlIGlu DQo+ID4gb3VyIGJvYXJkIG9uY2UuDQo+ID4gRm9yIGFjY2VsZXJhdGluZyByZXByb2R1Y3Rpb24g dGhpcyBpc3N1ZSwgQWRkIFJlY2xhaW0oKSB0bw0KPiA+IEF1dG9VcGRhdGVMYW5nVmFyaWFibGUo KSBmb3IgdGVzdC4NCj4gPg0KPiA+IFRoYW5rcywNCj4gPiBNaW5nDQo+ID4NCj4gPiA+DQo+ID4g PiBJZiBpdCBpcyB1cmdlbnQsIEkgc3VnZ2VzdCB0aGF0IGRpc2N1c3Mgd2l0aCB5b3VyIGludGVy bmFsIHRlYW0NCj4gPiA+IGZpcnN0IGFuZCBleHBsYWluDQo+ID4gdGhhdCB3ZSBuZWVkIGNvbnNp ZGVyIHRoZSByaXNrIGNoZWNrIGl0IGludG8gZWRrMi4NCj4gPiA+DQo+ID4gPiBCZXN0IFJlZ2Fy ZHMNCj4gPiA+IEd1b21pbg0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0t LQ0KPiA+ID4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5p bz4gT24gQmVoYWxmIE9mDQo+IE1pbmcNCj4gPiA+PiBIdWFuZyB2aWEgZ3JvdXBzLmlvDQo+ID4g Pj4gU2VudDogVHVlc2RheSwgSnVuZSAzMCwgMjAyMCA4OjI2IFBNDQo+ID4gPj4gVG86IEppYW5n LCBHdW9taW4gPGd1b21pbi5qaWFuZ0BpbnRlbC5jb20+OyBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsN Cj4gPiA+PiBXYW5nLCBKaWFuIEogPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBIYW8gQQ0K PiA+ID4+IDxoYW8uYS53dUBpbnRlbC5jb20+OyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRl bC5jb20+DQo+ID4gPj4gQ2M6IGxpZG9uZ3poYW5AaHVhd2VpLmNvbTsgc29uZ2RvbmdrdWFuZ0Bo dWF3ZWkuY29tOw0KPiA+ID4+IHdhbmdodWlxaWFuZ0BodWF3ZWkuY29tOyBxaXVsaWFuZ2VuQGh1 YXdlaS5jb207DQo+ID4gc2hlbmxpbWVpQGh1YXdlaS5jb207DQo+ID4gPj4geGlld2VueWkyQGh1 YXdlaS5jb20NCj4gPiA+PiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCBlZGsyIHYx IDEvMV0NCj4gTWRlTW9kdWxlUGtnL1ZhcmlhYmxlOg0KPiA+ID4+IE1vdmUgRmluZFZhcmlhYmxl IGFmdGVyIEF1dG9VcGRhdGVMYW5nVmFyaWFibGUNCj4gPiA+Pg0KPiA+ID4+DQo+ID4gPj4NCj4g PiA+PiDlnKggMjAyMC82LzMwIDg6NTgsIEppYW5nLCBHdW9taW4g5YaZ6YGTOg0KPiA+ID4+PiBI aSBIdWFuZywNCj4gPiA+Pj4NCj4gPiA+Pj4gPkZyb20gaXNzdWUgc3RhdGVtZW50LCBJIGd1ZXNz IHRoYXQNCj4gPiA+Pj4gMS4gQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZSgpIGludm9rZWQsIGFuZCBp dCB3aWxsIGludm9rZQ0KPiA+ID4+PiBGaW5kVmFyaWFibGUoKSBmaXJzdCwgYXQgdGhlIHNhbWUg dGltZSwgcmVjbGFpbSBvY2N1ciBhbmQNCj4gPiA+Pj4gVmFyaWFibGUuQ3VyclB0ciBpcyBpbnZh bGlkLCBpdCByZXR1cm4NCj4gPiA+PiB3aXRoIHN1Y2Nlc3MgMi4gVXBkYXRlVmFyaWFibGUoKSBp cyBpbnZva2VkIHdoZW4gVGhlIG9sZCBMYW5nJ3MNCj4gPiA+PiBTdGF0ZSBpcyB2YWxpZCBhbmQg dGhlIG5ldyBMYW5nJ3MgU3RhdGUgaXMgYWxzbyB2YWxpZC4NCj4gPiA+Pj4gMy4gSW4gdGhlIHNp dHVhdGlvbiwgRmluZFZhcmlhYmxlKCkgY2hlY2tlZCBMYW5nJ3MgU3RhdGUgYW5kIG9ubHkNCj4g PiA+Pj4gZW5hYmxlIG9uZQ0KPiA+ID4+IExhbmcncyBTdGF0ZS4gQnV0IGl0IGRpZG4ndCBpbiBm YWN0Lg0KPiA+ID4+PiA0LiBCbUZvckVhY2hWYXJpYWJsZSgpIGRlYWRsb29wIGluIHRoZSBzaXR1 YXRpb24uDQo+ID4gPj4+DQo+ID4gPj4+IEFtIEkgcmlnaHQ/DQo+ID4gPj4NCj4gPiA+PiBZZXMs IHJpZ2h0Lg0KPiA+ID4+DQo+ID4gPj4gVGhhbmtzLA0KPiA+ID4+IE1pbmcNCj4gPiA+Pg0KPiA+ ID4+Pg0KPiA+ID4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+Pj4+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m DQo+ID4gTWluZw0KPiA+ID4+Pj4gSHVhbmcgdmlhIGdyb3Vwcy5pbw0KPiA+ID4+Pj4gU2VudDog TW9uZGF5LCBKdW5lIDI5LCAyMDIwIDI6MDYgUE0NCj4gPiA+Pj4+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgV2FuZywgSmlhbiBKIDxqaWFuLmoud2FuZ0BpbnRlbC5jb20+Ow0KPiA+ID4+Pj4g V3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA+ID4+Pj4gPGxp bWluZy5nYW9AaW50ZWwuY29tPg0KPiA+ID4+Pj4gQ2M6IGxpZG9uZ3poYW5AaHVhd2VpLmNvbTsg aHVhbmdtaW5nMjNAaHVhd2VpLmNvbTsNCj4gPiA+Pj4+IHNvbmdkb25na3VhbmdAaHVhd2VpLmNv bTsgd2FuZ2h1aXFpYW5nQGh1YXdlaS5jb207DQo+ID4gPj4+PiBxaXVsaWFuZ2VuQGh1YXdlaS5j b207IHNoZW5saW1laUBodWF3ZWkuY29tOw0KPiA+ID4+IHhpZXdlbnlpMkBodWF3ZWkuY29tDQo+ ID4gPj4+PiBTdWJqZWN0OiBbZWRrMi1kZXZlbF0gW1BBVENIIGVkazIgdjEgMS8xXSBNZGVNb2R1 bGVQa2cvVmFyaWFibGU6DQo+ID4gPj4gTW92ZQ0KPiA+ID4+Pj4gRmluZFZhcmlhYmxlIGFmdGVy IEF1dG9VcGRhdGVMYW5nVmFyaWFibGUNCj4gPiA+Pj4+DQo+ID4gPj4+PiBXaGVuIG9jY3VyIHJl Y2xhaW0gaW4gQXV0b1VwZGF0ZUxhbmdWYXJpYWJsZSgpLCB0aGUgQ3VyclB0ciBvZg0KPiA+ID4+ Pj4gVmFyaWFibGUgaXMgaW52YWxpZC4gVGhlIFN0YXRlIHdpbGwgYmUgdXBkYXRlIHdpdGggd3Jv bmcgcG9zaXRpb24NCj4gPiA+Pj4+IGFmdGVyIFVwZGF0ZVZhcmlhYmxlIGluIHRoaXMgc2l0dWF0 aW9uIGFuZCB0d28gdmFsaWQgUGxhdGZvcm1MYW5nDQo+ID4gPj4+PiBvciBMYW5nDQo+ID4gPj4g dmFyaWFibGVzIHdpbGwgZXhpc3QuDQo+ID4gPj4+PiBCbUZvckVhY2hWYXJpYWJsZSgpIHdpbGwg ZW50ZXIgZW5kbGVzcyBsb29wIHdoaWxlIGV4aXN0IHR3byB2YWxpZA0KPiA+ID4+Pj4gUGxhdGZv cm1MYW5nIHZhcmlhYmxlcy4gU28gRmluZFZhcmlhYmxlKCkgc2hvdWxkIGJlIGludm9rZWQgYXRm ZXINCj4gPiA+Pj4+IEF1dG9VcGRhdGVMYW5nVmFyaWFibGUoKS4NCj4gPiA+Pj4+DQo+ID4gPj4+ PiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTI2NjcNCj4g PiA+Pj4+DQo+ID4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBNaW5nIEh1YW5nIDxodWFuZ21pbmcyM0Bo dWF3ZWkuY29tPg0KPiA+ID4+Pj4gLS0tDQo+ID4gPj4+PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNh bC9WYXJpYWJsZS9SdW50aW1lRHhlL1ZhcmlhYmxlLmMgfCAyNg0KPiA+ID4+Pj4gKysrKysrKysr Ky0tLS0tLS0tLS0NCj4gPiA+Pj4+ICAxIGZpbGUgY2hhbmdlZCwgMTMgaW5zZXJ0aW9ucygrKSwg MTMgZGVsZXRpb25zKC0pDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gZGlmZiAtLWdpdA0KPiA+ID4+Pj4g YS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFyaWFibGUuYw0K PiA+ID4+Pj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRpbWVEeGUvVmFy aWFibGUuYw0KPiA+ID4+Pj4gaW5kZXggMWU3MWZjNi4uMGNlYzk4MSAxMDA2NDQNCj4gPiA+Pj4+ IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvVmFyaWFibGUvUnVudGltZUR4ZS9WYXJpYWJs ZS5jDQo+ID4gPj4+PiArKysgYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL1ZhcmlhYmxlL1J1bnRp bWVEeGUvVmFyaWFibGUuYw0KPiA+ID4+Pj4gQEAgLTI3NDEsNiArMjc0MSwxOSBAQCBWYXJpYWJs ZVNlcnZpY2VTZXRWYXJpYWJsZSAoDQo+ID4gPj4+PiAgICAgIG1WYXJpYWJsZU1vZHVsZUdsb2Jh bC0+Tm9uVm9sYXRpbGVMYXN0VmFyaWFibGVPZmZzZXQgPQ0KPiA+ID4+Pj4gKFVJTlROKSBOZXh0 VmFyaWFibGUgLSAoVUlOVE4pIFBvaW50Ow0KPiA+ID4+Pj4gICAgfQ0KPiA+ID4+Pj4NCj4gPiA+ Pj4+ICsgIGlmICghRmVhdHVyZVBjZEdldCAoUGNkVWVmaVZhcmlhYmxlRGVmYXVsdExhbmdEZXBy ZWNhdGUpKSB7DQo+ID4gPj4+PiArICAgIC8vDQo+ID4gPj4+PiArICAgIC8vIEhvb2sgdGhlIG9w ZXJhdGlvbiBvZiBzZXR0aW5nDQo+ID4gPj4+PiArIFBsYXRmb3JtTGFuZ0NvZGVzL1BsYXRmb3Jt TGFuZyBhbmQNCj4gPiA+Pj4+IExhbmdDb2Rlcy9MYW5nLg0KPiA+ID4+Pj4gKyAgICAvLw0KPiA+ ID4+Pj4gKyAgICBTdGF0dXMgPSBBdXRvVXBkYXRlTGFuZ1ZhcmlhYmxlIChWYXJpYWJsZU5hbWUs IERhdGEsIERhdGFTaXplKTsNCj4gPiA+Pj4+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkg ew0KPiA+ID4+Pj4gKyAgICAgIC8vDQo+ID4gPj4+PiArICAgICAgLy8gVGhlIGF1dG8gdXBkYXRl IG9wZXJhdGlvbiBmYWlsZWQsIGRpcmVjdGx5IHJldHVybiB0bw0KPiA+ID4+Pj4gKyBhdm9pZA0K PiA+ID4+Pj4gaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIFBsYXRmb3JtTGFuZyBhbmQgTGFuZy4NCj4g PiA+Pj4+ICsgICAgICAvLw0KPiA+ID4+Pj4gKyAgICAgIGdvdG8gRG9uZTsNCj4gPiA+Pj4+ICsg ICAgfQ0KPiA+ID4+Pj4gKyAgfQ0KPiA+ID4+Pj4gKw0KPiA+ID4+Pj4gICAgLy8NCj4gPiA+Pj4+ ICAgIC8vIENoZWNrIHdoZXRoZXIgdGhlIGlucHV0IHZhcmlhYmxlIGlzIGFscmVhZHkgZXhpc3Rl ZC4NCj4gPiA+Pj4+ICAgIC8vDQo+ID4gPj4+PiBAQCAtMjc2MywxOSArMjc3Niw2IEBAIFZhcmlh YmxlU2VydmljZVNldFZhcmlhYmxlICgNCj4gPiA+Pj4+ICAgICAgfQ0KPiA+ID4+Pj4gICAgfQ0K PiA+ID4+Pj4NCj4gPiA+Pj4+IC0gIGlmICghRmVhdHVyZVBjZEdldCAoUGNkVWVmaVZhcmlhYmxl RGVmYXVsdExhbmdEZXByZWNhdGUpKSB7DQo+ID4gPj4+PiAtICAgIC8vDQo+ID4gPj4+PiAtICAg IC8vIEhvb2sgdGhlIG9wZXJhdGlvbiBvZiBzZXR0aW5nIFBsYXRmb3JtTGFuZ0NvZGVzL1BsYXRm b3JtTGFuZw0KPiA+IGFuZA0KPiA+ID4+Pj4gTGFuZ0NvZGVzL0xhbmcuDQo+ID4gPj4+PiAtICAg IC8vDQo+ID4gPj4+PiAtICAgIFN0YXR1cyA9IEF1dG9VcGRhdGVMYW5nVmFyaWFibGUgKFZhcmlh YmxlTmFtZSwgRGF0YSwgRGF0YVNpemUpOw0KPiA+ID4+Pj4gLSAgICBpZiAoRUZJX0VSUk9SIChT dGF0dXMpKSB7DQo+ID4gPj4+PiAtICAgICAgLy8NCj4gPiA+Pj4+IC0gICAgICAvLyBUaGUgYXV0 byB1cGRhdGUgb3BlcmF0aW9uIGZhaWxlZCwgZGlyZWN0bHkgcmV0dXJuIHRvIGF2b2lkDQo+ID4g Pj4gaW5jb25zaXN0ZW5jeQ0KPiA+ID4+Pj4gYmV0d2VlbiBQbGF0Zm9ybUxhbmcgYW5kIExhbmcu DQo+ID4gPj4+PiAtICAgICAgLy8NCj4gPiA+Pj4+IC0gICAgICBnb3RvIERvbmU7DQo+ID4gPj4+ PiAtICAgIH0NCj4gPiA+Pj4+IC0gIH0NCj4gPiA+Pj4+IC0NCj4gPiA+Pj4+ICAgIGlmIChtVmFy aWFibGVNb2R1bGVHbG9iYWwtPlZhcmlhYmxlR2xvYmFsLkF1dGhTdXBwb3J0KSB7DQo+ID4gPj4+ PiAgICAgIFN0YXR1cyA9IEF1dGhWYXJpYWJsZUxpYlByb2Nlc3NWYXJpYWJsZSAoVmFyaWFibGVO YW1lLA0KPiA+ID4+Pj4gVmVuZG9yR3VpZCwgRGF0YSwgRGF0YVNpemUsIEF0dHJpYnV0ZXMpOw0K PiA+ID4+Pj4gICAgfSBlbHNlIHsNCj4gPiA+Pj4+IC0tDQo+ID4gPj4+PiAyLjguMQ0KPiA+ID4+ Pj4NCj4gPiA+Pj4+DQo+ID4gPj4+Pg0KPiA+ID4+Pg0KPiA+ID4+Pg0KPiA+ID4+Pg0KPiA+ID4+ DQo+ID4gPj4NCj4gPiA+PiANCj4gPiA+DQo+ID4gPg0KPiA+ID4gLg0KPiA+ID4NCg0K