From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.115; helo=mga14.intel.com; envelope-from=star.zeng@intel.com; receiver=edk2-devel@lists.01.org Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) (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 0B94620356263 for ; Tue, 5 Dec 2017 00:45:51 -0800 (PST) Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Dec 2017 00:50:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,363,1508828400"; d="scan'208";a="9707784" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga004.fm.intel.com with ESMTP; 05 Dec 2017 00:50:21 -0800 Received: from fmsmsx124.amr.corp.intel.com (10.18.125.39) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 5 Dec 2017 00:50:21 -0800 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx124.amr.corp.intel.com (10.18.125.39) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 5 Dec 2017 00:50:21 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.218]) with mapi id 14.03.0319.002; Tue, 5 Dec 2017 16:50:18 +0800 From: "Zeng, Star" To: "Ni, Ruiyu" , Ard Biesheuvel , "edk2-devel@lists.01.org" CC: "Wu, Hao A" , "Kinney, Michael D" , "Tian, Feng" , "leif.lindholm@linaro.org" , "Zeng, Star" Thread-Topic: [edk2] [PATCH v2 1/2] MdeModulePkg: introduce SD/MMC override protocol Thread-Index: AQHTacOw4aXIawdLXUidB+SaSxsuxKMz1hqAgACIwMD//4/4AIAAiCtw Date: Tue, 5 Dec 2017 08:50:18 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103B9BFB70@shsmsx102.ccr.corp.intel.com> References: <20171130101132.18317-1-ard.biesheuvel@linaro.org> <20171130101132.18317-2-ard.biesheuvel@linaro.org> <1c1b4095-3d21-552e-c54e-251a34191740@Intel.com> <0C09AFA07DD0434D9E2A0C6AEB0483103B9BFA78@shsmsx102.ccr.corp.intel.com> <9c301a27-024d-3ba8-65f5-260303d2c9ac@Intel.com> In-Reply-To: <9c301a27-024d-3ba8-65f5-260303d2c9ac@Intel.com> 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 v2 1/2] MdeModulePkg: introduce SD/MMC override protocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Dec 2017 08:45:52 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmVnYXJkbGVzcyB0aGUgcHJvdG9jb2wgbmFtZSBTZE1tY092ZXJyaWRlL1NkTW1jUGxhdGZvcm0s IHNvIHlvdSBtZWFuIHRoZSBwcm90b2NvbCBzaG91bGQgYmUgcHJvZHVjZWQgYnkgYSBEWEUgZHJp dmVyLCBidXQgbm90IGEgVUVGSSBkcml2ZXIsIHJpZ2h0PyBJIHNhdyB0aGUgZXhhbXBsZSBhdCBo dHRwczovL2xpc3RzLjAxLm9yZy9waXBlcm1haWwvZWRrMi1kZXZlbC8yMDE3LU5vdmVtYmVyLzAx NzY3Mi5odG1sIHNoYXJlZCBieSBBcmQgaW5zdGFsbHMgdGhlIHByb3RvY29sIGluIFBsYXRmb3Jt RHhlIHRoYXQgaXMgYSBEWEUgZHJpdmVyLg0KDQpBbmQgeW91IG1lYW4gdGhlIFNEL01NQyBob3N0 IGNvbnRyb2xsZXIgZHJpdmVyIGNvZGUgc2hvdWxkIHVzZSBMb2NhdGVQcm90b2NvbCwgYnV0IG5v dCBIYW5kbGVQcm90b2NvbCB0byBmaW5kIG91dCB0aGUgcHJvdG9jb2wgaW5zdGFuY2UsIHJpZ2h0 Pw0KDQoNClRoYW5rcywNClN0YXINCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBO aSwgUnVpeXUgDQpTZW50OiBUdWVzZGF5LCBEZWNlbWJlciA1LCAyMDE3IDQ6MzcgUE0NClRvOiBa ZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwgPGFyZC5iaWVz aGV1dmVsQGxpbmFyby5vcmc+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KQ2M6IFd1LCBIYW8g QSA8aGFvLmEud3VAaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5u ZXlAaW50ZWwuY29tPjsgVGlhbiwgRmVuZyA8ZmVuZy50aWFuQGludGVsLmNvbT47IGxlaWYubGlu ZGhvbG1AbGluYXJvLm9yZw0KU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIgMS8yXSBNZGVN b2R1bGVQa2c6IGludHJvZHVjZSBTRC9NTUMgb3ZlcnJpZGUgcHJvdG9jb2wNCg0KT24gMTIvNS8y MDE3IDM6MjAgUE0sIFplbmcsIFN0YXIgd3JvdGU6DQo+IElmIG1ha2luZyB0aGlzIHByb3RvY29s IGEgcGxhdGZvcm0gbGV2ZWwgc2luZ2xldG9uIGluc3RhbmNlLCBpcyBpdCBzbyBoYXJkIHRvIGRl ZmluZSB0aGUgaW50ZXJmYWNlcyBhbmQgcGFyYW1ldGVycyBzaW5jZSBkaWZmZXJlbnQgY29udHJv bGxlcnMgbWF5IG5lZWQgZGlmZmVyZW50IGhvb2sgcG9pbnRzIGFuZCBwYXJhbWV0ZXJzPw0KPiAN Cj4gVGhhbmtzLA0KPiBTdGFyDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IE5pLCBSdWl5dQ0KPiBTZW50OiBUdWVzZGF5LCBEZWNlbWJlciA1LCAyMDE3IDM6MDkgUE0NCj4g VG86IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgDQo+IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnDQo+IENjOiAiaGFvLmEud3VAaW50ZWwuY29tOyBLaW5uZXkuZC5t aWNoYWVsIkBpbnRlbC5jb207IFRpYW4sIEZlbmcgDQo+IDxmZW5nLnRpYW5AaW50ZWwuY29tPjsg WmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47IA0KPiBsZWlmLmxpbmRob2xtQGxpbmFy by5vcmcNCj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIgMS8yXSBNZGVNb2R1bGVQa2c6 IGludHJvZHVjZSBTRC9NTUMgDQo+IG92ZXJyaWRlIHByb3RvY29sDQo+IA0KPiBPbiAxMS8zMC8y MDE3IDY6MTEgUE0sIEFyZCBCaWVzaGV1dmVsIHdyb3RlOg0KPj4gTWFueSBBUk0gYmFzZWQgU29D cyBoYXZlIGludGVncmF0ZWQgU0RIQ0kgY29udHJvbGxlcnMsIGFuZCBvZnRlbiwgDQo+PiB0aGVz ZSBpbXBsZW1lbnRhdGlvbnMgZGV2aWF0ZSBpbiBzdWJ0bGUgd2F5cyBmcm9tIHRoZSBwZXJ0aW5l bnQgDQo+PiBzcGVjaWZpY2F0aW9ucy4gT24gdGhlIG9uZSBoYW5kLCB0aGVzZSBkZXZpYXRpb25z IGFyZSBxdWl0ZSBlYXN5IHRvIA0KPj4gd29yayBhcm91bmQsIGJ1dCBvbiB0aGUgb3RoZXIgaGFu ZCwgaGF2aW5nIGEgY29sbGVjdGlvbiBvZiBTb0MgDQo+PiBzcGVjaWZpYyB3b3JrYXJvdW5kcyBp biB0aGUgZ2VuZXJpYyBkcml2ZXIgc3RhY2sgaXMgdW5kZXNpcmFibGUuDQo+Pg0KPj4gU28gbGV0 J3MgaW50cm9kdWNlIGFuIG9wdGlvbmFsIFNEL01NQyBvdmVycmlkZSBwcm90b2NvbCB0aGF0IHdl IGNhbiANCj4+IGludm9rZSBhdCB0aGUgYXBwcm9wcmlhdGUgbW9tZW50cyBpbiB0aGUgZGV2aWNl IGluaXRpYWxpemF0aW9uLg0KPj4gVGhhdCB3YXksIHRoZSB3b3JrYXJvdW5kIGl0c2VsZiByZW1h aW5zIHBsYXRmb3JtIHNwZWNpZmljLCBidXQgd2UgY2FuIA0KPj4gc3RpbGwgdXNlIHRoZSBnZW5l cmljIGRyaXZlciBzdGFjayBvbiBzdWNoIHBsYXRmb3Jtcy4NCj4+DQo+PiBDb250cmlidXRlZC11 bmRlcjogVGlhbm9Db3JlIENvbnRyaWJ1dGlvbiBBZ3JlZW1lbnQgMS4xDQo+PiBTaWduZWQtb2Zm LWJ5OiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4+IC0tLQ0K Pj4gICAgTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvU2RNbWNPdmVycmlkZS5oIHwgMTAz ICsrKysrKysrKysrKysrKysrKysrDQo+PiAgICBNZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtnLmRl YyAgICAgICAgICAgICAgICAgfCAgIDMgKw0KPj4gICAgMiBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5z ZXJ0aW9ucygrKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90 b2NvbC9TZE1tY092ZXJyaWRlLmgNCj4+IGIvTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wv U2RNbWNPdmVycmlkZS5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAw MDAwMDAwLi41YTVjMzkzODk2ZjQNCj4+IC0tLSAvZGV2L251bGwNCj4+ICsrKyBiL01kZU1vZHVs ZVBrZy9JbmNsdWRlL1Byb3RvY29sL1NkTW1jT3ZlcnJpZGUuaA0KPj4gQEAgLTAsMCArMSwxMDMg QEANCj4+ICsvKiogQGZpbGUNCj4+ICsgIFByb3RvY29sIHRvIGRlc2NyaWJlIG92ZXJyaWRlcyBy ZXF1aXJlZCB0byBzdXBwb3J0IG5vbi1zdGFuZGFyZCANCj4+ICtTREhDSQ0KPj4gKyAgaW1wbGVt ZW50YXRpb25zDQo+PiArDQo+PiArICBDb3B5cmlnaHQgKGMpIDIwMTcsIExpbmFybywgTHRkLiBB bGwgcmlnaHRzIHJlc2VydmVkLjxCUj4NCj4+ICsNCj4+ICsgIFRoaXMgcHJvZ3JhbSBhbmQgdGhl IGFjY29tcGFueWluZyBtYXRlcmlhbHMgIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSANCj4+ICsgYXZh aWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgQlNEIExpY2Vuc2Ug IHdoaWNoIA0KPj4gKyBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbi4gIFRoZSBmdWxsIHRl eHQgb2YgdGhlIGxpY2Vuc2UgbWF5IGJlIA0KPj4gKyBmb3VuZCBhdCAgaHR0cDovL29wZW5zb3Vy Y2Uub3JnL2xpY2Vuc2VzL2JzZC1saWNlbnNlLnBocA0KPj4gKw0KPj4gKyAgVEhFIFBST0dSQU0g SVMgRElTVFJJQlVURUQgVU5ERVIgVEhFIEJTRCBMSUNFTlNFIE9OIEFOICJBUyBJUyINCj4+ICsg QkFTSVMsICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgUkVQUkVTRU5UQVRJT05TIE9GIEFOWSBLSU5E LCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVELg0KPj4gKw0KPj4gKyoqLw0KPj4gKw0KPj4gKyNp Zm5kZWYgX19TRF9NTUNfT1ZFUlJJREVfSF9fDQo+PiArI2RlZmluZSBfX1NEX01NQ19PVkVSUklE RV9IX18NCj4+ICsNCj4+ICsjaW5jbHVkZSA8UHJvdG9jb2wvU2RNbWNQYXNzVGhydS5oPg0KPj4g Kw0KPj4gKyNkZWZpbmUgRURLSUlfU0RfTU1DX09WRVJSSURFX1BST1RPQ09MX0dVSUQgXA0KPj4g KyAgeyAweGVhZjllM2MxLCAweGM5Y2QsIDB4NDZkYiwgeyAweGE1LCAweGU1LCAweDVhLCAweDEy LCAweDRjLCANCj4+ICsweDgzLCAweDIzLCAweDIzIH0gfQ0KPj4gKw0KPj4gKyNkZWZpbmUgRURL SUlfU0RfTU1DX09WRVJSSURFX1BST1RPQ09MX1ZFUlNJT04gICAgMHgxDQo+PiArDQo+PiArdHlw ZWRlZiBzdHJ1Y3QgX1NEX01NQ19PVkVSUklERSBTRF9NTUNfT1ZFUlJJREU7DQo+PiArDQo+PiAr dHlwZWRlZiBlbnVtIHsNCj4+ICsgIFNEX01NQ19PVkVSUklERV9SRVNFVF9QUkVfSE9PSywNCj4+ ICsgIFNEX01NQ19PVkVSUklERV9SRVNFVF9QT1NUX0hPT0ssDQo+PiArICBTRF9NTUNfT1ZFUlJJ REVfSU5JVF9IT1NUX1BSRV9IT09LLA0KPj4gKyAgU0RfTU1DX09WRVJSSURFX0lOSVRfSE9TVF9Q T1NUX0hPT0ssDQo+PiArfSBTRF9NTUNfT1ZFUlJJREVfSE9PSzsNCj4+ICsNCj4+ICsvKioNCj4+ ICsNCj4+ICsgIE92ZXJyaWRlIGZ1bmN0aW9uIGZvciBTREhDSSBjYXBhYmlsaXR5IGJpdHMNCj4+ ICsNCj4+ICsgIEBwYXJhbVtpbl0gICAgICBQYXNzVGhydSAgICAgICAgICAgICAgQSBwb2ludGVy IHRvIHRoZQ0KPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklf U0RfTU1DX1BBU1NfVEhSVV9QUk9UT0NPTCBpbnN0YW5jZS4NCj4+ICsgIEBwYXJhbVtpbl0gICAg ICBDb250cm9sbGVySGFuZGxlICAgICAgVGhlIEVGSV9IQU5ETEUgb2YgdGhlIGNvbnRyb2xsZXIu DQo+PiArICBAcGFyYW1baW5dICAgICAgU2xvdCAgICAgICAgICAgICAgICAgIFRoZSAwIGJhc2Vk IHNsb3QgaW5kZXguDQo+PiArICBAcGFyYW1baW4sb3V0XSAgU2RNbWNIY1Nsb3RDYXBhYmlsaXR5 IFRoZSBTREhDSSBjYXBhYmlsaXR5IHN0cnVjdHVyZS4NCj4+ICsNCj4+ICsgIEByZXR2YWwgRUZJ X1NVQ0NFU1MgICAgICAgICAgIFRoZSBvdmVycmlkZSBmdW5jdGlvbiBjb21wbGV0ZWQgc3VjY2Vz c2Z1bGx5Lg0KPj4gKyAgQHJldHZhbCBFRklfTk9UX0ZPVU5EICAgICAgICAgVGhlIHNwZWNpZmll ZCBjb250cm9sbGVyIG9yIHNsb3QgZG9lcyBub3QgZXhpc3QuDQo+PiArICBAcmV0dmFsIEVGSV9J TlZBTElEX1BBUkFNRVRFUiBTZE1tY0hjU2xvdENhcGFiaWxpdHkgaXMgTlVMTA0KPj4gKw0KPj4g KyoqLw0KPj4gK3R5cGVkZWYNCj4+ICtFRklfU1RBVFVTDQo+PiArKEVGSUFQSSAqIFNEX01NQ19P VkVSUklERV9DQVBBQklMSVRZKSAoDQo+PiArICBJTiAgICAgIEVGSV9TRF9NTUNfUEFTU19USFJV X1BST1RPQ09MICAgKlBhc3NUaHJ1LA0KPj4gKyAgSU4gICAgICBFRklfSEFORExFICAgICAgICAg ICAgICAgICAgICAgIENvbnRyb2xsZXJIYW5kbGUsDQo+PiArICBJTiAgICAgIFVJTlQ4ICAgICAg ICAgICAgICAgICAgICAgICAgICAgU2xvdCwNCj4+ICsgIElOICBPVVQgVUlOVDY0ICAgICAgICAg ICAgICAgICAgICAgICAgICAqU2RNbWNIY1Nsb3RDYXBhYmlsaXR5DQo+PiArICApOw0KPj4gKw0K Pj4gKy8qKg0KPj4gKw0KPj4gKyAgT3ZlcnJpZGUgZnVuY3Rpb24gZm9yIFNESENJIGNvbnRyb2xs ZXIgb3BlcmF0aW9ucw0KPj4gKw0KPj4gKyAgQHBhcmFtW2luXSAgICAgIFBhc3NUaHJ1ICAgICAg ICAgICAgICBBIHBvaW50ZXIgdG8gdGhlDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEVGSV9TRF9NTUNfUEFTU19USFJVX1BST1RPQ09MIGluc3RhbmNlLg0KPj4g KyAgQHBhcmFtW2luXSAgICAgIENvbnRyb2xsZXJIYW5kbGUgICAgICBUaGUgRUZJX0hBTkRMRSBv ZiB0aGUgY29udHJvbGxlci4NCj4+ICsgIEBwYXJhbVtpbl0gICAgICBTbG90ICAgICAgICAgICAg ICAgICAgVGhlIDAgYmFzZWQgc2xvdCBpbmRleC4NCj4+ICsgIEBwYXJhbVtpbixvdXRdICBIb29r VHlwZSAgICAgICAgICAgICAgVGhlIHR5cGUgb2Ygb3BlcmF0aW9uIGFuZCB3aGV0aGVyIHRoZQ0K Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob29rIGlzIGludm9r ZWQgcmlnaHQgYmVmb3JlIChwcmUpIG9yDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJpZ2h0IGFmdGVyIChwb3N0KQ0KPj4gKw0KPj4gKyAgQHJldHZhbCBFRklf U1VDQ0VTUyAgICAgICAgICAgVGhlIG92ZXJyaWRlIGZ1bmN0aW9uIGNvbXBsZXRlZCBzdWNjZXNz ZnVsbHkuDQo+PiArICBAcmV0dmFsIEVGSV9OT1RfRk9VTkQgICAgICAgICBUaGUgc3BlY2lmaWVk IGNvbnRyb2xsZXIgb3Igc2xvdCBkb2VzIG5vdCBleGlzdC4NCj4+ICsgIEByZXR2YWwgRUZJX0lO VkFMSURfUEFSQU1FVEVSIEhvb2tUeXBlIGlzIGludmFsaWQNCj4+ICsNCj4+ICsqKi8NCj4+ICt0 eXBlZGVmDQo+PiArRUZJX1NUQVRVUw0KPj4gKyhFRklBUEkgKiBTRF9NTUNfT1ZFUlJJREVfSU5W T0tFX0hPT0spICgNCj4+ICsgIElOICAgICAgRUZJX1NEX01NQ19QQVNTX1RIUlVfUFJPVE9DT0wg ICAqUGFzc1RocnUsDQo+PiArICBJTiAgICAgIEVGSV9IQU5ETEUgICAgICAgICAgICAgICAgICAg ICAgQ29udHJvbGxlckhhbmRsZSwNCj4+ICsgIElOICAgICAgVUlOVDggICAgICAgICAgICAgICAg ICAgICAgICAgICBTbG90LA0KPj4gKyAgSU4gICAgICBTRF9NTUNfT1ZFUlJJREVfSE9PSyAgICAg ICAgICAgIEhvb2tUeXBlDQo+PiArICApOw0KPj4gKw0KPj4gK3N0cnVjdCBfU0RfTU1DX09WRVJS SURFIHsNCj4+ICsgIC8vDQo+PiArICAvLyBQcm90b2NvbCB2ZXJzaW9uIG9mIHRoaXMgaW1wbGVt ZW50YXRpb24NCj4+ICsgIC8vDQo+PiArICBVSU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAg IFZlcnNpb247DQo+PiArICAvLw0KPj4gKyAgLy8gQ2FsbGJhY2sgdG8gb3ZlcnJpZGUgU0QvTU1D IGhvc3QgY29udHJvbGxlciBjYXBhYmlsaXR5IGJpdHMNCj4+ICsgIC8vDQo+PiArICBTRF9NTUNf T1ZFUlJJREVfQ0FQQUJJTElUWSAgICAgIE92ZXJyaWRlQ2FwYWJpbGl0eTsNCj4+ICsgIC8vDQo+ PiArICAvLyBDYWxsYmFjayB0byBpbnZva2UgU0QvTU1DIG92ZXJyaWRlIGhvb2tzDQo+PiArICAv Lw0KPj4gKyAgU0RfTU1DX09WRVJSSURFX0lOVk9LRV9IT09LICAgICBJbnZva2VIb29rOw0KPj4g K307DQo+PiArDQo+PiArZXh0ZXJuIEVGSV9HVUlEIGdFZGtpaVNkTW1jT3ZlcnJpZGVQcm90b2Nv bEd1aWQ7DQo+PiArDQo+PiArI2VuZGlmDQo+PiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL01k ZU1vZHVsZVBrZy5kZWMgDQo+PiBiL01kZU1vZHVsZVBrZy9NZGVNb2R1bGVQa2cuZGVjIGluZGV4 IDg1NmQ2N2FjZWIyMS4uNjRjZWVhMDI5Zjk0DQo+PiAxMDA2NDQNCj4+IC0tLSBhL01kZU1vZHVs ZVBrZy9NZGVNb2R1bGVQa2cuZGVjDQo+PiArKysgYi9NZGVNb2R1bGVQa2cvTWRlTW9kdWxlUGtn LmRlYw0KPj4gQEAgLTU2Miw2ICs1NjIsOSBAQCBbUHJvdG9jb2xzXQ0KPj4gICAgICAjIyBJbmNs dWRlL1Byb3RvY29sL1NtbU1lbW9yeUF0dHJpYnV0ZS5oDQo+PiAgICAgIGdFZGtpaVNtbU1lbW9y eUF0dHJpYnV0ZVByb3RvY29sR3VpZCA9IHsgMHg2OWI3OTJlYSwgMHgzOWNlLCANCj4+IDB4NDAy ZCwgeyAweGEyLCAweGE2LCAweGY3LCAweDIxLCAweGRlLCAweDM1LCAweDFkLCAweGZlIH0gfQ0K Pj4gICAgDQo+PiArICAjIyBJbmNsdWRlL1Byb3RvY29sL1NkTW1jT3ZlcnJpZGUuaCANCj4+ICsg Z0Vka2lpU2RNbWNPdmVycmlkZVByb3RvY29sR3VpZCA9IHsgMHhlYWY5ZTNjMSwgMHhjOWNkLCAw eDQ2ZGIsIHsgDQo+PiArIDB4YTUsIDB4ZTUsIDB4NWEsIDB4MTIsIDB4NGMsIDB4ODMsIDB4MjMs IDB4MjMgfSB9DQo+PiArDQo+PiAgICAjDQo+PiAgICAjIFtFcnJvci5nRWZpTWRlTW9kdWxlUGtn VG9rZW5TcGFjZUd1aWRdDQo+PiAgICAjICAgMHg4MDAwMDAwMSB8IEludmFsaWQgdmFsdWUgcHJv dmlkZWQuDQo+Pg0KPiBCYXNlZCBvbiB5b3VyIHBhdGNoICMyLCBJIHRoaW5rIHRoZSBwcm90b2Nv bCBpcyBzdXBwb3NlZCB0byBiZSBpbnN0YWxsZWQgYnkgYSBwbGF0Zm9ybSBkcml2ZXIgKGxldCdz IGNhbGwgaXQgU2RNbWNPdmVycmlkZVBsYXRmb3JtKSBvbiB0aGUgY29udHJvbGxlciBoYW5kbGUu DQo+IA0KPiBUaGVyZSBhcmUgdHdvIHdheXMgdG8gcHJvZHVjZSB0aGlzIE92ZXJyaWRlIHByb3Rv Y29sOg0KPiAxLiBTZE1tY092ZXJyaWRlUGxhdGZvcm0gcmVnaXN0ZXJzIGEgcHJvdG9jb2wgbm90 aWZpY2F0aW9uIG9uIFBjaUlvIGFuZCBmaW5kIHRoZSBTRE1NQyBob3N0IGNvbnRyb2xsZXIgUENJ IGhhbmRsZSwgdGhlbiBpbnN0YWxsIFNkTW1jT3ZlcnJpZGUgb24gdGhhdCBoYW5kbGUuDQo+IDIu IFNkTU1jT3ZlcnJpZGVQbGF0Zm9ybSBpcyB3cml0dGVuIGFzIGEgZHJpdmVyIG1vZGVsIGRyaXZl ci4NCj4gRHJpdmVyQmluZGluZ1N0YXJ0KCkgb3BlbnMgUGNpSW8gQllfRFJJVkVSIGFuZCBwcm9k dWNlcyBTZE1tY092ZXJyaWRlLg0KPiBUaGVuIFNkTW1jUGNpSGMgZHJpdmVyIG9wZW5zIFNkTW1j T3ZlcnJpZGUgQllfRFJJVkVSIGFuZCBwcm9kdWNlcyBTZE1tY1Bhc3N0aHJ1Lg0KPiANCj4gQnV0 IHNpbmNlIHRoZSBTZE1tY092ZXJyaWRlIHByb3RvY29sIGlzIG9wdGlvbmFsLCB0aGF0IG1ha2Vz ICMyIG5vdCB3b3JrYWJsZS4NCj4gDQo+IEJ1dCAjMSBjYW5ub3QgaGFuZGxlIHRoZSAicmVjb25u ZWN0IC1yIiBjYXNlLiBCZWNhdXNlIHRoZXJlIGlzIG5vIHByb3RvY29sIG5vdGlmaWNhdGlvbiBv biB1bmluc3RhbGwuDQo+IA0KPiBTbyBJIGFtIHRoaW5raW5nIGlmIGl0J3MgbW9yZSBwcm9wZXIg dG8gbWFrZSB0aGlzIHByb3RvY29sIGEgcGxhdGZvcm0gbGV2ZWwgc2luZ2xldG9uIGluc3RhbmNl LiBJIG5vdGljZWQgdGhhdCBhbGwgQVBJcyBleHBvc2VkIGJ5IHRoaXMgcHJvdG9jb2wgYWxyZWFk eSBjYXJyeSB0aGUgQ29udHJvbGxlciBIYW5kbGUuDQo+IA0KPiAtLQ0KPiBUaGFua3MsDQo+IFJh eQ0KPiANClN0YXIsDQpJIG1lYW50IHRvIGNyZWF0ZSBhIFNkTW1jUGxhdGZvcm0gcHJvdG9jb2wu DQoNCg0KLS0NClRoYW5rcywNClJheQ0K