From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.126; helo=mga18.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B88E22112501A for ; Thu, 7 Jun 2018 03:12:10 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Jun 2018 03:12:10 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,486,1520924400"; d="scan'208";a="47487104" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga008.jf.intel.com with ESMTP; 07 Jun 2018 03:12:09 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Jun 2018 03:12:09 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 7 Jun 2018 03:12:09 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.116]) with mapi id 14.03.0319.002; Thu, 7 Jun 2018 18:12:07 +0800 From: "Zeng, Star" To: Ard Biesheuvel CC: "Ni, Ruiyu" , "edk2-devel@lists.01.org" , "Gao, Liming" , "Yao, Jiewen" , Leif Lindholm , "Kinney, Michael D" , "Zeng, Star" Thread-Topic: [edk2] [PATCH] MdeModulePkg/CapsulePei: clean Dcache before consuming capsule data Thread-Index: AQHT/Xws8+sQHdZJdE2R/MRK1zEavKRSnX+AgAFnCPD//7BugIAAkwhw//+AeYCAAMMU4P//fd+AABD6JVA= Date: Thu, 7 Jun 2018 10:12:06 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103BB547E7@shsmsx102.ccr.corp.intel.com> References: <20180606095235.20822-1-ard.biesheuvel@linaro.org> <0C09AFA07DD0434D9E2A0C6AEB0483103BB542D7@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BB54543@shsmsx102.ccr.corp.intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103BB54798@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdeModulePkg/CapsulePei: clean Dcache before consuming capsule data X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2018 10:12:10 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U2luY2UgY2Fwc3VsZSBkYXRhIHBvaW50ZXIgbWF5IGJlIGludmFsaWQgKGZvciBleGFtcGxlLCBw b2ludCB0byBNTUlPKSwgd2UgZW5oYW5jZWQgY29kZSB0byB2YWxpZGF0ZSB0aGUgY2Fwc3VsZSBi eSBtZW1vcnkgcmVzb3VyY2UgSE9CLCBhbmQgKnJlY29tbWVuZCogcGxhdGZvcm0vc2lsaWNvbiAo bWVtb3J5IHJlZmVyZW5jZSBjb2RlKSB0byByZXBvcnQgbWVtb3J5IHJlc291cmNlIEhPQiBiZWZv cmUgY2Fwc3VsZSBjb2FsZXNjaW5nLg0KVG8gY29uc2lkZXIgYW5kIGNvbXBhdGlibGUgd2l0aCBz b21lIHBsYXRmb3JtIG1heSBub3QgcmVwb3J0IG1lbW9yeSByZXNvdXJjZSBIT0IgYmVmb3JlIGNh cHN1bGUgY29hbGVzY2luZywgdGhlbiBNZW1vcnlSZXNvdXJjZSA9PSBOVUxMIGFuZCB0aGUgY29k ZSB0aGlua3MgaXQgaXMgdmFsaWQuDQoNCg0KVGhhbmtzLA0KU3Rhcg0KLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCkZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxA bGluYXJvLm9yZ10gDQpTZW50OiBUaHVyc2RheSwgSnVuZSA3LCAyMDE4IDU6NTIgUE0NClRvOiBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPg0KQ2M6IE5pLCBSdWl5dSA8cnVpeXUubmlA aW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IExlaWYg TGluZGhvbG0gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEtpbm5leSwgTWljaGFlbCBEIDxt aWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NClN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIXSBN ZGVNb2R1bGVQa2cvQ2Fwc3VsZVBlaTogY2xlYW4gRGNhY2hlIGJlZm9yZSBjb25zdW1pbmcgY2Fw c3VsZSBkYXRhDQoNCk9uIDcgSnVuZSAyMDE4IGF0IDExOjQ2LCBaZW5nLCBTdGFyIDxzdGFyLnpl bmdAaW50ZWwuY29tPiB3cm90ZToNCj4gT2ssIEkgd2FudCB0byBrbm93IHdoZXRoZXIgb3RoZXJz IGhhdmUgc29tZSBpZGVhLCBzbyBsZXQncyB3YWl0IHNvbWUgdGltZT8NCj4NCj4gQWJvdXQgdGhl IGNvZGUgY2hhbmdlLCBJIGhhdmUgdGhyZWUgbWlub3IgY29tbWVudHMgYmVsb3cuDQo+IDEuIEkg c3VnZ2VzdCBhZGRpbmcgc29tZSBjb2RlIGNvbW1lbnQgZm9yIHRoZSBuZXcgbGluZSBjb2RlLg0K DQpPSw0KDQo+IDIuIFRoZXJlIGFyZSB0d28gcGF0aHMgaW4gVmFsaWRhdGVDYXBzdWxlQnlNZW1v cnlSZXNvdXJjZSgpIHRvIHJldHVybiBUUlVFLCBzaG91bGQgdGhlIG5ldyBsaW5lIGNvZGUgYmUg YWRkZWQgZm9yIGJvdGggb2YgdGhlbT8NCg0KR29vZCBxdWVzdGlvbjogSW4gd2hpY2ggY2lyY3Vt c3RhbmNlcyBpcyB0aGUgTWVtb3J5UmVzb3VyY2UgPT0gTlVMTCBjYXNlIGV4cGVjdGVkIHRvIG9j Y3VyPw0KDQo+IDMuIFRoZXJlIGlzIFZTMjAxNSBidWlsZGluZyBmYWlsdXJlIGxpa2UgYmVsb3cg d2l0aCB0aGUgcGF0Y2guIFRoZSBjb2RlIG5lZWRzIHRvIHR5cGVjYXN0IHBhcmFtZXRlciAnU2l6 ZScuDQo+DQo+IHdhcm5pbmcgQzQyNDQ6ICdmdW5jdGlvbic6IGNvbnZlcnNpb24gZnJvbSAnVUlO VDY0JyB0byAnVUlOVE4nLCANCj4gcG9zc2libGUgbG9zcyBvZiBkYXRhDQo+DQoNCldpbGwgZml4 Lg0KDQo+DQo+IFRoYW5rcywNCj4gU3Rhcg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24gQmVoYWxmIE9mIA0KPiBBcmQgQmllc2hldXZlbA0KPiBTZW50OiBUaHVyc2RheSwgSnVu ZSA3LCAyMDE4IDI6MDAgUE0NCj4gVG86IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+ DQo+IENjOiBOaSwgUnVpeXUgPHJ1aXl1Lm5pQGludGVsLmNvbT47IGVkazItZGV2ZWxAbGlzdHMu MDEub3JnOyBHYW8sIA0KPiBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgWWFvLCBKaWV3 ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgDQo+IExlaWYgTGluZGhvbG0gPGxlaWYubGluZGhv bG1AbGluYXJvLm9yZz47IEtpbm5leSwgTWljaGFlbCBEIA0KPiA8bWljaGFlbC5kLmtpbm5leUBp bnRlbC5jb20+DQo+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIXSBNZGVNb2R1bGVQa2cvQ2Fw c3VsZVBlaTogY2xlYW4gRGNhY2hlIA0KPiBiZWZvcmUgY29uc3VtaW5nIGNhcHN1bGUgZGF0YQ0K Pg0KPiBPbiA3IEp1bmUgMjAxOCBhdCAwNzo0MSwgWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVs LmNvbT4gd3JvdGU6DQo+PiBUaGFua3MsIGdvdCB0aGUgcG9pbnQuDQo+Pg0KPj4gSXQgc2VlbXMg dmFndWUgdGhhdCB3aG8gdG8gZW5zdXJlIHRoZSBjYWNoZSBjb2hlcmVuY3kuIE1NVT8gQ2FsbGVy IG9mIFVwZGF0ZUNhcHN1bGU/IFVwZGF0ZUNhcHN1bGU/IENvbnN1bWVyIG9mIGNhcHN1bGUgZGF0 YT8NCj4+DQo+DQo+IFVuZm9ydHVuYXRlbHksIHNpbmNlIHRoZSBzcGVjIGRvZXMgbm90IG1lbnRp b24gaXQgYXQgYWxsLCB3ZSBjYW5ub3QgcmVseSBvbiB0aGUgY2FsbGVyIG9mIFVwZGF0ZUNhcHN1 bGUoKSB0byBlbnN1cmUgdGhpcy4gVGhhdCB3b3VsZCByZXF1aXJlIGEgc3BlYyBjaGFuZ2UsIGFu ZCBicmVhayBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggb2xkZXIgcmV2aXNpb25zLg0KPg0K PiBUaGUgbWFpbiBpc3N1ZSBoZXJlIGlzIHRoYXQgQVJNIGRvZXMgbm90IHByb3ZpZGUgdGhlIG1l YW5zIHRvIGNsZWFuIHRoZSBlbnRpcmUgY2FjaGUsIHRoZSBvbmx5IGFyY2hpdGVjdHVyYWwgbWV0 aG9kIGlzIGNsZWFuIGNhY2hlbGluZSBieSB2aXJ0dWFsIGFkZHJlc3MuDQo+DQo+IFNvIHRoYXQg bGVhdmVzOg0KPiAtIFVwZGF0ZUNhcHN1bGUgLSBwcm9ibGVtYXRpYyBiZWNhdXNlIGl0IG1heSBi ZSBjYWxsZWQgYXQgcnVudGltZSBhbmQgDQo+IHRoZSBmaXJtd2FyZSBoYXMgbm8gbWVhbnMgb2Yg dHJhbnNsYXRpbmcgdGhlIHBoeXNpY2FsIGFkZHJlc3Nlcw0KPiAtIFJlc2V0U3lzdGVtIC0gc2Ft ZSBhcyBhYm92ZTogaXQgaXMgYSBydW50aW1lIHNlcnZpY2UsIGFuZCBzbyBpdCANCj4gY2Fubm90 IHJlbHkgb24gYSBtYXBwaW5nIHRvIGV4aXN0IGZvciB0aG9zZSBwaHlzaWNhbCBhZGRyZXNzZXMN Cj4gLSBTRUMgLSBsYWNrcyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdGhlIGNhcHN1bGUg cmVzaWRlcw0KPiAtIENhcHN1bGVQZWkgLSBhbHJlYWR5IGV4dHJhY3RzIHRoZSBpbmZvcm1hdGlv biBhYm91dCB0aGUgY2Fwc3VsZSBhZGRyZXNzIGluIG1lbW9yeSwgYW5kIGNhbiBwZXJmb3JtIHRo ZSBjYWNoZSBtYWludGVuYW5jZSByaWdodCBiZWZvcmUgY29uc3VtaW5nIHRoZSBkYXRhLg0KPg0K PiBTbyB1bmxlc3MgYW55b25lIGhhcyBhbnkgb3RoZXIgc3VnZ2VzdGlvbnMsIEkgdGhpbmsgdGhp cyBhcHByb2FjaCBpcyB0aGUgb25seSBmZWFzaWJsZSBvbmUuDQo+DQo+IElmIHRoZXJlIGFyZSBh bnkgY29uY2VybnMgYWJvdXQgYWRkaW5nIHRoaXMgZm9yIGFyY2hpdGVjdHVyZXMsIEkgY2FuIGxv b2sgaW50byByZWZhY3RvcmluZyBDYXBzdWxlUGVpIGFuZCBhZGQgaXQgb25seSBmb3IgQVJNL0FB UkNINjQuDQo+DQo+IFRoYW5rcywNCj4gQXJkLg0KPg0KPg0KPg0KPj4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5j ZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYgDQo+PiBPZiBBcmQgQmllc2hldXZlbA0KPj4gU2Vu dDogVGh1cnNkYXksIEp1bmUgNywgMjAxOCAxMjo1MCBQTQ0KPj4gVG86IFplbmcsIFN0YXIgPHN0 YXIuemVuZ0BpbnRlbC5jb20+DQo+PiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+ OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsgTGVpZiANCj4+IExpbmRob2xtIDxsZWlmLmxpbmRo b2xtQGxpbmFyby5vcmc+OyBZYW8sIEppZXdlbiANCj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47 IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwgDQo+PiBNaWNoYWVs IEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPj4gU3ViamVjdDogUmU6IFtlZGsyXSBb UEFUQ0hdIE1kZU1vZHVsZVBrZy9DYXBzdWxlUGVpOiBjbGVhbiBEY2FjaGUgDQo+PiBiZWZvcmUg Y29uc3VtaW5nIGNhcHN1bGUgZGF0YQ0KPj4NCj4+IE9uIDcgSnVuZSAyMDE4IGF0IDAzOjM3LCBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPiB3cm90ZToNCj4+PiBIaSBBcmQsDQo+Pj4N Cj4+PiBUaGUgaW5wdXQgcGFyYW1ldGVyIENhcHN1bGVIZWFkZXJBcnJheSBvZiBVcGRhdGVDYXBz dWxlIGhhcyB0aGUgdmlydHVhbCBhZGRyZXNzLg0KPj4+DQo+Pg0KPj4gSXQgaGFzIHRoZSB2aXJ0 dWFsIGFkZHJlc3Mgb2YgdGhlIGNhcHN1bGVzIHllcy4gQnV0IGhvdyBhYm91dCB0aGUgZGF0YSBz dHJ1Y3R1cmVzIHBhc3NlZCBhcyB0aGUgU2NhdHRlckdhdGhlckxpc3Q/DQo+Pg0KPj4NCj4+PiBD YXBzdWxlSGVhZGVyQXJyYXkNCj4+PiBWaXJ0dWFsIHBvaW50ZXIgdG8gYW4gYXJyYXkgb2Ygdmly dHVhbCBwb2ludGVycyB0byB0aGUgY2Fwc3VsZXMgDQo+Pj4gYmVpbmcgcGFzc2VkIGludG8gdXBk YXRlIGNhcHN1bGUuIEVhY2ggY2Fwc3VsZXMgaXMgYXNzdW1lZCB0byBzdG9yZWQgDQo+Pj4gaW4g Y29udGlndW91cyB2aXJ0dWFsIG1lbW9yeS4gVGhlIGNhcHN1bGVzIGluIHRoZSBDYXBzdWxlSGVh ZGVyQXJyYXkgDQo+Pj4gbXVzdCBiZSB0aGUgc2FtZSBjYXBzdWxlcyBhcyB0aGUgU2NhdHRlckdh dGhlckxpc3QuIFRoZSANCj4+PiBDYXBzdWxlSGVhZGVyQXJyYXkgbXVzdCBoYXZlIHRoZQ0KPj4+ DQo+Pj4NCj4+PiBUaGFua3MsDQo+Pj4gU3Rhcg0KPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+Pj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRvOmVkazItZGV2ZWwtYm91bmNlc0BsaXN0 cy4wMS5vcmddIE9uIEJlaGFsZiANCj4+PiBPZiBBcmQgQmllc2hldXZlbA0KPj4+IFNlbnQ6IFdl ZG5lc2RheSwgSnVuZSA2LCAyMDE4IDg6MTAgUE0NCj4+PiBUbzogZWRrMi1kZXZlbEBsaXN0cy4w MS5vcmcNCj4+PiBDYzogTmksIFJ1aXl1IDxydWl5dS5uaUBpbnRlbC5jb20+OyBBcmQgQmllc2hl dXZlbCANCj4+PiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IEdhbywgTGltaW5nIDxsaW1p bmcuZ2FvQGludGVsLmNvbT47IA0KPj4+IFlhbywgSmlld2VuIDxqaWV3ZW4ueWFvQGludGVsLmNv bT47IExlaWYgTGluZGhvbG0gDQo+Pj4gPGxlaWYubGluZGhvbG1AbGluYXJvLm9yZz47IEtpbm5l eSwgTWljaGFlbCBEIA0KPj4+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IFplbmcsIFN0 YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+DQo+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0hd IE1kZU1vZHVsZVBrZy9DYXBzdWxlUGVpOiBjbGVhbiBEY2FjaGUgDQo+Pj4gYmVmb3JlIGNvbnN1 bWluZyBjYXBzdWxlIGRhdGENCj4+Pg0KPj4+IE9uIDYgSnVuZSAyMDE4IGF0IDExOjUyLCBBcmQg Qmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4gd3JvdGU6DQo+Pj4+IFdoZW4g Y2Fwc3VsZSB1cGRhdGVzIGFyZSBzdGFnZWQgZm9yIHByb2Nlc3NpbmcgYWZ0ZXIgYSB3YXJtIHJl Ym9vdCwgDQo+Pj4+IHRoZXkgYXJlIGNvcGllZCBpbnRvIG1lbW9yeSB3aXRoIHRoZSBNTVUgYW5k IGNhY2hlcyBlbmFibGVkLiBXaGVuIA0KPj4+PiB0aGUgY2Fwc3VsZSBQRUkgZ2V0cyBhcm91bmQg dG8gY29hbGVzY2luZyB0aGUgY2Fwc3VsZSwgdGhlIE1NVSBhbmQgDQo+Pj4+IGNhY2hlcyBtYXkg c3RpbGwgYmUgZGlzYWJsZWQsIGFuZCBzbyBvbiBhcmNoaXRlY3R1cmVzIHdoZXJlIA0KPj4+PiB1 bmNhY2hlZCBhY2Nlc3NlcyBhcmUgaW5jb2hlcmVudCB3aXRoIHRoZSBjYWNoZXMgKHN1Y2ggYXMg QVJNIGFuZCANCj4+Pj4gQUFSQ0g2NCksIHdlIG1heSByZWFkIHN0YWxlIGRhdGEgaWYgd2UgZG9u J3QgY2xlYW4gdGhlIGNhY2hlcyB0byBtZW1vcnkgZmlyc3QuDQo+Pj4+DQo+Pj4+IENvbnRyaWJ1 dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uIEFncmVlbWVudCAxLjENCj4+Pj4gU2ln bmVkLW9mZi1ieTogQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+ Pj4NCj4+PiBMZWlmIGFza2VkIG1lIHRvIGluY2x1ZGUgYSBub3RlIHdoeSB0aGlzIGNhbm5vdCBi ZSBkb25lIHdoZW4NCj4+PiBVcGRhdGVDYXBzdWxlKCkgaXMgY2FsbGVkLg0KPj4+DQo+Pj4NCj4+ PiAiIiINCj4+PiBOb3RlIHRoYXQgdGhpcyBjYWNoZSBtYWludGVuYW5jZSBjYW5ub3QgYmUgZG9u ZSBkdXJpbmcgdGhlIGludm9jYXRpb24gb2YgVXBkYXRlQ2Fwc3VsZSgpLCBzaW5jZSB0aGUgU2Nh dHRlckdhdGhlckxpc3Qgc3RydWN0dXJlcyBhcmUgb25seSBpZGVudGlmaWVkIGJ5IHBoeXNpY2Fs IGFkZHJlc3MsIGFuZCBhdCBydW50aW1lLCB0aGUgZmlybXdhcmUgZG9lc24ndCBrbm93IHdoZXRo ZXIgYW5kIHdoZXJlIHRoaXMgbWVtb3J5IGlzIG1hcHBlZCwgYW5kIGNhY2hlIG1haW50ZW5hbmNl IHJlcXVpcmVzIGEgdmlydHVhbCBhZGRyZXNzLg0KPj4+ICIiIg0KPj4+DQo+Pj4+IC0tLQ0KPj4+ PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9DYXBzdWxlUGVpL0NhcHN1bGVQZWkuaW5mICAgICAg ICAgICB8IDEgKw0KPj4+PiAgTWRlTW9kdWxlUGtnL1VuaXZlcnNhbC9DYXBzdWxlUGVpL0NvbW1v bi9DYXBzdWxlQ29hbGVzY2UuYyB8IDQgDQo+Pj4+ICsrKysNCj4+Pj4gIDIgZmlsZXMgY2hhbmdl ZCwgNSBpbnNlcnRpb25zKCspDQo+Pj4+DQo+Pj4+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0NhcHN1bGVQZWkvQ2Fwc3VsZVBlaS5pbmYNCj4+Pj4gYi9NZGVNb2R1bGVQa2cv VW5pdmVyc2FsL0NhcHN1bGVQZWkvQ2Fwc3VsZVBlaS5pbmYNCj4+Pj4gaW5kZXggYzU0YmMyMWE5 NWE4Li41OTRlMTEwZDFmOGEgMTAwNjQ0DQo+Pj4+IC0tLSBhL01kZU1vZHVsZVBrZy9Vbml2ZXJz YWwvQ2Fwc3VsZVBlaS9DYXBzdWxlUGVpLmluZg0KPj4+PiArKysgYi9NZGVNb2R1bGVQa2cvVW5p dmVyc2FsL0NhcHN1bGVQZWkvQ2Fwc3VsZVBlaS5pbmYNCj4+Pj4gQEAgLTQ4LDYgKzQ4LDcgQEAg W1BhY2thZ2VzXQ0KPj4+Pg0KPj4+PiAgW0xpYnJhcnlDbGFzc2VzXQ0KPj4+PiAgICBCYXNlTGli DQo+Pj4+ICsgIENhY2hlTWFpbnRlbmFuY2VMaWINCj4+Pj4gICAgSG9iTGliDQo+Pj4+ICAgIEJh c2VNZW1vcnlMaWINCj4+Pj4gICAgUGVpU2VydmljZXNMaWINCj4+Pj4gZGlmZiAtLWdpdA0KPj4+ PiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fwc3VsZVBlaS9Db21tb24vQ2Fwc3VsZUNvYWxl c2NlLmMNCj4+Pj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NhcHN1bGVQZWkvQ29tbW9uL0Nh cHN1bGVDb2FsZXNjZS5jDQo+Pj4+IGluZGV4IDNlNzA1NGNkMzhhOS4uMTczMGY5MjVhZGM1IDEw MDY0NA0KPj4+PiAtLS0gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NhcHN1bGVQZWkvQ29tbW9u L0NhcHN1bGVDb2FsZXNjZS5jDQo+Pj4+ICsrKyBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ2Fw c3VsZVBlaS9Db21tb24vQ2Fwc3VsZUNvYWxlc2NlLmMNCj4+Pj4gQEAgLTI3LDYgKzI3LDcgQEAg V0lUSE9VVCBXQVJSQU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVS IEVYUFJFU1MgT1IgSU1QTElFRC4NCj4+Pj4gICNpbmNsdWRlIDxHdWlkL0NhcHN1bGVWZW5kb3Iu aD4NCj4+Pj4NCj4+Pj4gICNpbmNsdWRlIDxMaWJyYXJ5L0Jhc2VNZW1vcnlMaWIuaD4NCj4+Pj4g KyNpbmNsdWRlIDxMaWJyYXJ5L0NhY2hlTWFpbnRlbmFuY2VMaWIuaD4NCj4+Pj4gICNpbmNsdWRl IDxMaWJyYXJ5L0RlYnVnTGliLmg+DQo+Pj4+ICAjaW5jbHVkZSA8TGlicmFyeS9QcmludExpYi5o Pg0KPj4+PiAgI2luY2x1ZGUgPExpYnJhcnkvQmFzZUxpYi5oPg0KPj4+PiBAQCAtMjgzLDYgKzI4 NCw5IEBAIFZhbGlkYXRlQ2Fwc3VsZUJ5TWVtb3J5UmVzb3VyY2UgKA0KPj4+PiAgICAgICAgREVC VUcgKChFRklfRF9JTkZPLCAiQWRkcmVzcygweCVseCkgU2l6ZSgweCVseCkgaW4gTWVtb3J5UmVz b3VyY2VbMHgleF0gLSBTdGFydCgweCVseCkgTGVuZ3RoKDB4JWx4KVxuIiwNCj4+Pj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcywgU2l6ZSwNCj4+Pj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgSW5kZXgsDQo+Pj4+IE1lbW9yeVJlc291cmNlW0luZGV4XS5QaHlzaWNhbFN0 YXJ0LA0KPj4+PiBNZW1vcnlSZXNvdXJjZVtJbmRleF0uUmVzb3VyY2VMZW5ndGgpKTsNCj4+Pj4g Kw0KPj4+PiArICAgICAgV3JpdGVCYWNrRGF0YUNhY2hlUmFuZ2UgKChWT0lEICopKFVJTlROKUFk ZHJlc3MsIFNpemUpOw0KPj4+PiArDQo+Pj4+ICAgICAgICByZXR1cm4gVFJVRTsNCj4+Pj4gICAg ICB9DQo+Pj4+ICAgIH0NCj4+Pj4gLS0NCj4+Pj4gMi4xNy4wDQo+Pj4+DQo+Pj4gX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4+PiBlZGsyLWRldmVsIG1h aWxpbmcgbGlzdA0KPj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+Pj4gaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxp c3QNCj4+IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+PiBodHRwczovL2xpc3RzLjAxLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5m by9lZGsyLWRldmVsDQo=