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.43; helo=mga05.intel.com; envelope-from=hao.a.wu@intel.com; receiver=edk2-devel@lists.01.org Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) (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 5EDB62117FD44 for ; Fri, 2 Nov 2018 19:57:21 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Nov 2018 19:57:21 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,458,1534834800"; d="scan'208";a="105035828" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga001.jf.intel.com with ESMTP; 02 Nov 2018 19:57:21 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 2 Nov 2018 19:57:20 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.117]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.161]) with mapi id 14.03.0415.000; Sat, 3 Nov 2018 10:57:18 +0800 From: "Wu, Hao A" To: Marcin Wojtas CC: edk2-devel-01 , "Kinney, Michael D" , "Gao, Liming" , "Leif Lindholm" , Ard Biesheuvel , "nadavh@marvell.com" , "jsd@semihalf.com" , Tomasz Michalec Thread-Topic: [PATCH v2 2/4] MdeModulePkg/SdMmcPciHcDxe: Add UhsSignaling to SdMmcOverride protocol Thread-Index: AQHUXK7s5hpZLYj2dU+NUJr/BC8HcaU3RF8QgASGU4CAAEGwgIABe0qA Date: Sat, 3 Nov 2018 02:57:17 +0000 Message-ID: References: <1538745911-22484-1-git-send-email-mw@semihalf.com> <1538745911-22484-3-git-send-email-mw@semihalf.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 v2 2/4] MdeModulePkg/SdMmcPciHcDxe: Add UhsSignaling to SdMmcOverride protocol X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 03 Nov 2018 02:57:22 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXJjaW4gV29qdGFzIFttYWls dG86bXdAc2VtaWhhbGYuY29tXQ0KPiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDAyLCAyMDE4IDg6 MTcgUE0NCj4gVG86IFd1LCBIYW8gQQ0KPiBDYzogZWRrMi1kZXZlbC0wMTsgS2lubmV5LCBNaWNo YWVsIEQ7IEdhbywgTGltaW5nOyBMZWlmIExpbmRob2xtOyBBcmQNCj4gQmllc2hldXZlbDsgbmFk YXZoQG1hcnZlbGwuY29tOyBqc2RAc2VtaWhhbGYuY29tOyBUb21hc3ogTWljaGFsZWMNCj4gU3Vi amVjdDogUmU6IFtQQVRDSCB2MiAyLzRdIE1kZU1vZHVsZVBrZy9TZE1tY1BjaUhjRHhlOiBBZGQg VWhzU2lnbmFsaW5nDQo+IHRvIFNkTW1jT3ZlcnJpZGUgcHJvdG9jb2wNCj4gDQo+IHB0LiwgMiBs aXMgMjAxOCBvIDA5OjIxIE1hcmNpbiBXb2p0YXMgPG13QHNlbWloYWxmLmNvbT4gbmFwaXNhxYIo YSk6DQo+ID4NCj4gPiBIaSBIYW8sDQo+ID4NCj4gPiBjencuLCAxIGxpcyAyMDE4IG8gMDg6MDYg V3UsIEhhbyBBIDxoYW8uYS53dUBpbnRlbC5jb20+IG5hcGlzYcWCKGEpOg0KPiA+ID4NCj4gPiA+ IEhpIE1hcmNpbiwNCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ ID4gPiA+IEZyb206IE1hcmNpbiBXb2p0YXMgW21haWx0bzptd0BzZW1paGFsZi5jb21dDQo+ID4g PiA+IFNlbnQ6IEZyaWRheSwgT2N0b2JlciAwNSwgMjAxOCA5OjI1IFBNDQo+ID4gPiA+IFRvOiBl ZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gPiBDYzogVGlhbiwgRmVuZzsgS2lubmV5LCBN aWNoYWVsIEQ7IEdhbywgTGltaW5nOyBsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc7DQo+IFd1LA0K PiA+ID4gPiBIYW8gQTsgYXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZzsgbmFkYXZoQG1hcnZlbGwu Y29tOw0KPiA+ID4gPiBtd0BzZW1paGFsZi5jb207IGpzZEBzZW1paGFsZi5jb207IHRtQHNlbWlo YWxmLmNvbQ0KPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0ggdjIgMi80XSBNZGVNb2R1bGVQa2cvU2RN bWNQY2lIY0R4ZTogQWRkDQo+IFVoc1NpZ25hbGluZw0KPiA+ID4gPiB0byBTZE1tY092ZXJyaWRl IHByb3RvY29sDQo+ID4gPiA+DQo+ID4gPiA+IEZyb206IFRvbWFzeiBNaWNoYWxlYyA8dG1Ac2Vt aWhhbGYuY29tPg0KPiA+ID4gPg0KPiA+ID4gPiBTb21lIFNEIEhvc3QgQ29udHJvbGVycyB1c2Ug ZGlmZmVyZW50IHZhbHVlcyBpbiBIb3N0IENvbnRyb2wgMiBSZWdpc3Rlcg0KPiA+ID4gPiB0byBz ZWxlY3QgVUhTIE1vZGUuIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBVaHNTaWduYWxpbmcgdHlwZSBy b3V0aW5lIHRvDQo+ID4gPiA+IHRoZSBOb3RpZnlQaGFzZSBvZiB0aGUgU2RNbWNPdmVycmlkZSBw cm90b2NvbC4NCj4gPiA+ID4NCj4gPiA+ID4gVUhTIHNpZ25hbGluZyBjb25maWd1cmF0aW9uIGlz IG1vdmVkIHRvIGEgY29tbW9uLCBkZWZhdWx0IHJvdXRpbmUNCj4gPiA+ID4gKFNkTW1jSGNVaHNT aWduYWxpbmcpLCB3aGljaCBpcyBjYWxsZWQgd2hlbiBTZE1tY092ZXJyaWRlIGRvZXMgbm90DQo+ ID4gPiA+IGNvdmVyIHRoaXMgZnVuY3Rpb25hbGl0eS4NCj4gPiA+ID4NCj4gPiA+ID4gQ29udHJp YnV0ZWQtdW5kZXI6IFRpYW5vQ29yZSBDb250cmlidXRpb24gQWdyZWVtZW50IDEuMQ0KPiA+ID4g PiBTaWduZWQtb2ZmLWJ5OiBNYXJjaW4gV29qdGFzIDxtd0BzZW1paGFsZi5jb20+DQo+ID4gPiA+ IC0tLQ0KPiA+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZE1tY1Bj aUhjaS5oIHwgIDUwICsrKysrKysNCj4gPiA+ID4gIE1kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3Rv Y29sL1NkTW1jT3ZlcnJpZGUuaCAgICB8ICAgMiArDQo+ID4gPiA+ICBNZGVNb2R1bGVQa2cvQnVz L1BjaS9TZE1tY1BjaUhjRHhlL0VtbWNEZXZpY2UuYyAgfCAxNTMNCj4gPiA+ID4gKysrKysrKysr KysrLS0tLS0tLS0NCj4gPiA+ID4gIE1kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUv U2REZXZpY2UuYyAgICB8ICAzNyArKystLQ0KPiA+ID4gPiAgTWRlTW9kdWxlUGtnL0J1cy9QY2kv U2RNbWNQY2lIY0R4ZS9TZE1tY1BjaUhjaS5jIHwgIDY5DQo+ICsrKysrKysrKw0KPiA+ID4gPiAg NSBmaWxlcyBjaGFuZ2VkLCAyNDMgaW5zZXJ0aW9ucygrKSwgNjggZGVsZXRpb25zKC0pDQo+ID4g PiA+DQo+ID4gPiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhj RHhlL1NkTW1jUGNpSGNpLmgNCj4gPiA+ID4gYi9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1Bj aUhjRHhlL1NkTW1jUGNpSGNpLmgNCj4gPiA+ID4gaW5kZXggZTM4OWQ1Mi4uYTAzMTYwZCAxMDA2 NDQNCj4gPiA+ID4gLS0tIGEvTWRlTW9kdWxlUGtnL0J1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZE1t Y1BjaUhjaS5oDQo+ID4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNE eGUvU2RNbWNQY2lIY2kuaA0KPiA+ID4gPiBAQCAtNjMsNiArNjMsMzkgQEAgV0lUSE9VVCBXQVJS QU5USUVTIE9SIFJFUFJFU0VOVEFUSU9OUyBPRg0KPiA+ID4gPiBBTlkgS0lORCwgRUlUSEVSIEVY UFJFU1MgT1IgSU1QTElFRC4NCj4gPiA+ID4gICNkZWZpbmUgU0RfTU1DX0hDX0NUUkxfVkVSICAg ICAgICAgICAgMHhGRQ0KPiA+ID4gPg0KPiA+ID4gPiAgLy8NCj4gPiA+ID4gKy8vIFNEIEhvc3Qg Q29udHJvbGVyIGJpdHMgdG8gSE9TVF9DVFJMMiByZWdpc3Rlcg0KPiA+ID4gPiArLy8NCj4gPiA+ ID4gKyNkZWZpbmUgU0RfTU1DX0hDX0NUUkxfVUhTX01BU0sgICAgICAgMHgwMDA3DQo+ID4gPiA+ ICsjZGVmaW5lIFNEX01NQ19IQ19DVFJMX1VIU19TRFIxMiAgICAgIDB4MDAwMA0KPiA+ID4gPiAr I2RlZmluZSBTRF9NTUNfSENfQ1RSTF9VSFNfU0RSMjUgICAgICAweDAwMDENCj4gPiA+ID4gKyNk ZWZpbmUgU0RfTU1DX0hDX0NUUkxfVUhTX1NEUjUwICAgICAgMHgwMDAyDQo+ID4gPiA+ICsjZGVm aW5lIFNEX01NQ19IQ19DVFJMX1VIU19TRFIxMDQgICAgIDB4MDAwMw0KPiA+ID4gPiArI2RlZmlu ZSBTRF9NTUNfSENfQ1RSTF9VSFNfRERSNTAgICAgICAweDAwMDQNCj4gPiA+ID4gKyNkZWZpbmUg U0RfTU1DX0hDX0NUUkxfTU1DX0REUjUyICAgICAgMHgwMDA0DQo+ID4gPiA+ICsjZGVmaW5lIFNE X01NQ19IQ19DVFJMX01NQ19TRFI1MCAgICAgIDB4MDAwMg0KPiA+ID4NCj4gPiA+IEkgdGhpbmsg U0RfTU1DX0hDX0NUUkxfTU1DX1NEUjUwIGlzIG5vdCBuZWVkZWQgaGVyZS4NCj4gPiA+DQo+ID4g PiBTaW5jZSBhY2NvcmRpbmcgdG8gdGhlIFNEIFBoeXNpY2FsIExheWVyIFNpbXBsaWZpZWQgU3Bl Y2lmaWNhdGlvbiwgbWF4IGNsb2NrDQo+ID4gPiBmcmVxdWVuY3kgZm9yIFNEIGJ1cyBtb2RlIFNE UjUwIGlzIDEwME1Iei4gQW5kIHRoZXJlIGlzIG5vIGVNTUMgYnVzDQo+IG1vZGUgd2hvc2UNCj4g PiA+IG1heCBjbG9jayBmcmVxdWVuY3kgaXMgYXQgMTAwTUh6IGluIEVtYmVkZGVkIE11bHRpLU1l ZGlhIENhcmQgRWxlY3RyaWNhbA0KPiA+ID4gU3RhbmRhcmQgKDUuMSkuDQo+ID4NCj4gPiBPaywg d2lsbCBkcm9wIGl0Lg0KPiA+DQo+ID4gPg0KPiA+ID4gPiArI2RlZmluZSBTRF9NTUNfSENfQ1RS TF9NTUNfU0RSMjUgICAgICAweDAwMDENCj4gPiA+ID4gKyNkZWZpbmUgU0RfTU1DX0hDX0NUUkxf TU1DX1NEUjEyICAgICAgMHgwMDAwDQo+ID4gPiA+ICsjZGVmaW5lIFNEX01NQ19IQ19DVFJMX0hT MjAwICAgICAgICAgIDB4MDAwMw0KPiA+ID4gPiArI2RlZmluZSBTRF9NTUNfSENfQ1RSTF9IUzQw MCAgICAgICAgICAweDAwMDUNCj4gPiA+DQo+ID4gPiBIb3cgYWJvdXQgdGhlIGJlbG93IHJlbmFt ZXMgJiByZW9yZGVyPw0KPiA+ID4NCj4gPiA+IFNEX01NQ19IQ19DVFJMX01NQ19MRUdBQ1kgICAg ICAweDAwMDANCj4gPiA+IFNEX01NQ19IQ19DVFJMX01NQ19IU19TRFIgICAgICAweDAwMDENCj4g PiA+IFNEX01NQ19IQ19DVFJMX01NQ19IU19ERFIgICAgICAweDAwMDQNCj4gPiA+IFNEX01NQ19I Q19DVFJMX01NQ19IUzIwMCAgICAgIDB4MDAwMw0KPiA+ID4gU0RfTU1DX0hDX0NUUkxfTU1DX0hT NDAwICAgICAgMHgwMDA1DQo+ID4NCj4gPiBPay4NCj4gPg0KPiA+ID4NCj4gPiA+ID4gKw0KPiA+ ID4gPiArLy8NCj4gPiA+ID4gKy8vIFRpbWluZyBtb2RlcyBmb3IgdWhzDQo+ID4gPiA+ICsvLw0K PiA+ID4gPiArdHlwZWRlZiBlbnVtIHsNCj4gPiA+ID4gKyAgU2RNbWNVaHNTZHIxMiwNCj4gPiA+ ID4gKyAgU2RNbWNVaHNTZHIyNSwNCj4gPiA+ID4gKyAgU2RNbWNVaHNTZHI1MCwNCj4gPiA+ID4g KyAgU2RNbWNVaHNTZHIxMDQsDQo+ID4gPiA+ICsgIFNkTW1jVWhzRGRyNTAsDQo+ID4gPiA+ICsg IFNkTW1jTW1jRGRyNTIsDQo+ID4gPiA+ICsgIFNkTW1jTW1jU2RyNTAsDQo+ID4gPiA+ICsgIFNk TW1jTW1jU2RyMjUsDQo+ID4gPiA+ICsgIFNkTW1jTW1jU2RyMTIsDQo+ID4gPiA+ICsgIFNkTW1j TW1jSHMyMDAsDQo+ID4gPiA+ICsgIFNkTW1jTW1jSHM0MDAsDQo+ID4gPiA+ICt9IFNEX01NQ19V SFNfVElNSU5HOw0KPiA+ID4NCj4gPiA+IFN1Z2dlc3QgYSBzaW1pbGFyIGRyb3Agb2YgJ1NkTW1j TW1jU2RyNTAnIGFuZCByZW5hbWUgYWNjb3JkaW5nIHRvIHRoZQ0KPiBhYm92ZQ0KPiA+ID4gY29t bWVudHMgdXBvbiBIT1NUX0NUUkwyIHJlZ2lzdGVyIHZhbHVlIGRlZmluaXRpb25zLiBBbHNvLCBo b3cgYWJvdXQgYQ0KPiByZW5hbWUNCj4gPiA+IGZvciBlbnVtIHRvIFNEX01NQ19CVVNfTU9ERT8N Cj4gPg0KPiA+IE9rLg0KPiA+DQo+ID4gPg0KPiA+ID4gPiArDQo+ID4gPiA+ICsvLw0KPiA+ID4g PiAgLy8gVGhlIHRyYW5zZmVyIG1vZGVzIHN1cHBvcnRlZCBieSBTRCBIb3N0IENvbnRyb2xsZXIN Cj4gPiA+ID4gIC8vIFNpbXBsaWZpZWQgU3BlYyAzLjAgVGFibGUgMS0yDQo+ID4gPiA+ICAvLw0K PiA+ID4gPiBAQCAtNTA4LDQgKzU0MSwyMSBAQCBTZE1tY0hjSW5pdFRpbWVvdXRDdHJsICgNCj4g PiA+ID4gICAgSU4gVUlOVDggICAgICAgICAgICAgICAgICBTbG90DQo+ID4gPiA+ICAgICk7DQo+ ID4gPiA+DQo+ID4gPiA+ICsvKioNCj4gPiA+ID4gKyAgU2V0IFNEIEhvc3QgQ29udHJvbGVyIGNv bnRyb2wgMiByZWdpc3RyeSBhY2NvcmRpbmcgdG8gc2VsZWN0ZWQgc3BlZWQuDQo+ID4gPiA+ICsN Cj4gPiA+ID4gKyAgQHBhcmFtW2luXSBQY2lJbyAgICAgICAgICBUaGUgUENJIElPIHByb3RvY29s IGluc3RhbmNlLg0KPiA+ID4gPiArICBAcGFyYW1baW5dIFNsb3QgICAgICAgICAgIFRoZSBzbG90 IG51bWJlciBvZiB0aGUgU0QgY2FyZCB0byBzZW5kIHRoZQ0KPiA+ID4gPiBjb21tYW5kIHRvLg0K PiA+ID4gPiArICBAcGFyYW1baW5dIFRpbWluZyAgICAgICAgIFRoZSB0aW1pbmcgdG8gc2VsZWN0 Lg0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgVGhlIHRp bWluZyBpcyBzZXQgc3VjY2Vzc2Z1bGx5Lg0KPiA+ID4gPiArICBAcmV0dmFsIE90aGVycyAgICAg ICAgICAgIFRoZSB0aW1pbmcgaXNuJ3Qgc2V0IHN1Y2Nlc3NmdWxseS4NCj4gPiA+ID4gKyoqLw0K PiA+ID4gPiArRUZJX1NUQVRVUw0KPiA+ID4gPiArU2RNbWNIY1Voc1NpZ25hbGluZyAoDQo+ID4g PiA+ICsgIElOIEVGSV9QQ0lfSU9fUFJPVE9DT0wgICAgKlBjaUlvLA0KPiA+ID4gPiArICBJTiBV SU5UOCAgICAgICAgICAgICAgICAgIFNsb3QsDQo+ID4gPiA+ICsgIElOIFNEX01NQ19VSFNfVElN SU5HICAgICAgVGltaW5nDQo+ID4gPiA+ICsgICk7DQo+ID4gPiA+ICsNCj4gPiA+ID4gICNlbmRp Zg0KPiA+ID4gPiBkaWZmIC0tZ2l0IGEvTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvU2RN bWNPdmVycmlkZS5oDQo+ID4gPiA+IGIvTWRlTW9kdWxlUGtnL0luY2x1ZGUvUHJvdG9jb2wvU2RN bWNPdmVycmlkZS5oDQo+ID4gPiA+IGluZGV4IDE3ODk0NWYuLjI1ZGI5OGEgMTAwNjQ0DQo+ID4g PiA+IC0tLSBhL01kZU1vZHVsZVBrZy9JbmNsdWRlL1Byb3RvY29sL1NkTW1jT3ZlcnJpZGUuaA0K PiA+ID4gPiArKysgYi9NZGVNb2R1bGVQa2cvSW5jbHVkZS9Qcm90b2NvbC9TZE1tY092ZXJyaWRl LmgNCj4gPiA+ID4gQEAgLTE3LDYgKzE3LDcgQEANCj4gPiA+ID4gICNpZm5kZWYgX19TRF9NTUNf T1ZFUlJJREVfSF9fDQo+ID4gPiA+ICAjZGVmaW5lIF9fU0RfTU1DX09WRVJSSURFX0hfXw0KPiA+ ID4gPg0KPiA+ID4gPiArI2luY2x1ZGUgPEJ1cy9QY2kvU2RNbWNQY2lIY0R4ZS9TZE1tY1BjaUhj aS5oPg0KPiA+ID4NCj4gPiA+IFBsZWFzZSBkbyBub3QgZXhwb3NlIGEgbW9kdWxlIHByaXZhdGUg aGVhZGVyIGZpbGUgaGVyZS4NCj4gPiA+DQo+ID4gPiBPbmUgYXBwcm9hY2ggY29tZXMgdG8gbWUg aXMgdG8ga2VlcCB0aGUgU0QvTU1DIGJ1cyBtb2RlIGVudW1lcmF0aW9uDQo+IHN0cnVjdHVyZQ0K PiA+ID4gaW4gdGhpcyBwcm90b2NvbCBoZWFkZXIgZmlsZS4gU2RNbWNQY2lIY0R4ZSBkcml2ZXIg YW5kIHByb2R1Y2VycyBvZiB0aGUNCj4gPiA+IE92ZXJyaWRlIHByb3RvY29sIGtlZXAgYSB2ZXJz aW9uIG9mIHRoZSBIT1NUX0NUUkwyIHJlZ2lzdGVyIHZhbHVlIG1hY3Jvcw0KPiBvZg0KPiA+ID4g dGhlaXIgb3duLg0KPiA+DQo+ID4gQWdyZWUuIEkgd2lsbCBtb3ZlIG5lY2Vzc2FyeSBkZWZpbmVz IHRvDQo+ID4gSW5jbHVkZS9Qcm90b2NvbC9TZE1tY092ZXJyaWRlLmggaW5zdGVhZCBvZiBleHBv c2luZyBTZE1tY1BjaUhjaS5oLg0KPiA+IEhPU1RfQ1RSTDIgY29udGVudHMgd2lsbCBiZSBhIGxv Y2FsIGRlZmluZSBpbiBwcm9kdWNlciBjb2RlLg0KPiA+DQo+ID4gPg0KPiA+ID4gPiAgI2luY2x1 ZGUgPFByb3RvY29sL1NkTW1jUGFzc1RocnUuaD4NCj4gPiA+ID4NCj4gPiA+ID4gICNkZWZpbmUg RURLSUlfU0RfTU1DX09WRVJSSURFX1BST1RPQ09MX0dVSUQgXA0KPiA+ID4gPiBAQCAtMzEsNiAr MzIsNyBAQCB0eXBlZGVmIGVudW0gew0KPiA+ID4gPiAgICBFZGtpaVNkTW1jUmVzZXRQb3N0LA0K PiA+ID4gPiAgICBFZGtpaVNkTW1jSW5pdEhvc3RQcmUsDQo+ID4gPiA+ICAgIEVka2lpU2RNbWNJ bml0SG9zdFBvc3QsDQo+ID4gPiA+ICsgIEVka2lpU2RNbWNVaHNTaWduYWxpbmcsDQo+ID4gPiA+ ICB9IEVES0lJX1NEX01NQ19QSEFTRV9UWVBFOw0KPiA+ID4gPg0KPiA+ID4gPiAgLyoqDQo+ID4g PiA+IGRpZmYgLS1naXQgYS9NZGVNb2R1bGVQa2cvQnVzL1BjaS9TZE1tY1BjaUhjRHhlL0VtbWNE ZXZpY2UuYw0KPiA+ID4gPiBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvRW1t Y0RldmljZS5jDQo+ID4gPiA+IGluZGV4IGM1ZmQyMTQuLjA1YmQ0YTAgMTAwNzU1DQo+ID4gPiA+ IC0tLSBhL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvRW1tY0RldmljZS5jDQo+ ID4gPiA+ICsrKyBiL01kZU1vZHVsZVBrZy9CdXMvUGNpL1NkTW1jUGNpSGNEeGUvRW1tY0Rldmlj ZS5jDQo+ID4gPiA+IEBAIC03NDAsMTAgKzc0MCwxMyBAQCBFbW1jU3dpdGNoVG9IaWdoU3BlZWQg KA0KPiA+ID4gPiAgICBJTiBVSU5UOCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1c1dp ZHRoDQo+ID4gPiA+ICAgICkNCj4gPiA+ID4gIHsNCj4gPiA+ID4gLSAgRUZJX1NUQVRVUyAgICAg ICAgICBTdGF0dXM7DQo+ID4gPiA+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgSHNUaW1pbmc7DQo+ ID4gPiA+IC0gIFVJTlQ4ICAgICAgICAgICAgICAgSG9zdEN0cmwxOw0KPiA+ID4gPiAtICBVSU5U OCAgICAgICAgICAgICAgIEhvc3RDdHJsMjsNCj4gPiA+ID4gKyAgRUZJX1NUQVRVUyAgICAgICAg ICAgICAgU3RhdHVzOw0KPiA+ID4gPiArICBVSU5UOCAgICAgICAgICAgICAgICAgICBIc1RpbWlu ZzsNCj4gPiA+ID4gKyAgVUlOVDggICAgICAgICAgICAgICAgICAgSG9zdEN0cmwxOw0KPiA+ID4g PiArICBTRF9NTUNfVUhTX1RJTUlORyAgICAgICBUaW1pbmc7DQo+ID4gPiA+ICsgIFNEX01NQ19I Q19QUklWQVRFX0RBVEEgICpQcml2YXRlOw0KPiA+ID4gPiArDQo+ID4gPiA+ICsgIFByaXZhdGUg PSBTRF9NTUNfSENfUFJJVkFURV9GUk9NX1RISVMgKFBhc3NUaHJ1KTsNCj4gPiA+ID4NCj4gPiA+ ID4gICAgU3RhdHVzID0gRW1tY1N3aXRjaEJ1c1dpZHRoIChQY2lJbywgUGFzc1RocnUsIFNsb3Qs IFJjYSwgSXNEZHIsDQo+IEJ1c1dpZHRoKTsNCj4gPiA+ID4gICAgaWYgKEVGSV9FUlJPUiAoU3Rh dHVzKSkgew0KPiA+ID4gPiBAQCAtNzU4LDI3ICs3NjEsMzcgQEAgRW1tY1N3aXRjaFRvSGlnaFNw ZWVkICgNCj4gPiA+ID4gICAgICByZXR1cm4gU3RhdHVzOw0KPiA+ID4gPiAgICB9DQo+ID4gPiA+ DQo+ID4gPiA+IC0gIC8vDQo+ID4gPiA+IC0gIC8vIENsZWFuIFVIUyBNb2RlIFNlbGVjdCBmaWVs ZCBvZiBIb3N0IENvbnRyb2wgMiByZWlnc3RlciBiZWZvcmUgdXBkYXRlDQo+ID4gPiA+IC0gIC8v DQo+ID4gPiA+IC0gIEhvc3RDdHJsMiA9IChVSU5UOCl+MHg3Ow0KPiA+ID4gPiAtICBTdGF0dXMg PSBTZE1tY0hjQW5kTW1pbyAoUGNpSW8sIFNsb3QsIFNEX01NQ19IQ19IT1NUX0NUUkwyLA0KPiA+ ID4gPiBzaXplb2YgKEhvc3RDdHJsMiksICZIb3N0Q3RybDIpOw0KPiA+ID4gPiAtICBpZiAoRUZJ X0VSUk9SIChTdGF0dXMpKSB7DQo+ID4gPiA+IC0gICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ID4g LSAgfQ0KPiA+ID4gPiAtICAvLw0KPiA+ID4gPiAtICAvLyBTZXQgVUhTIE1vZGUgU2VsZWN0IGZp ZWxkIG9mIEhvc3QgQ29udHJvbCAyIHJlaWdzdGVyIHRvIFNEUjEyLzI1LzUwDQo+ID4gPiA+IC0g IC8vDQo+ID4gPiA+ICAgIGlmIChJc0Rkcikgew0KPiA+ID4gPiAtICAgIEhvc3RDdHJsMiA9IEJJ VDI7DQo+ID4gPiA+ICsgICAgVGltaW5nID0gU2RNbWNNbWNEZHI1MjsNCj4gPiA+ID4gICAgfSBl bHNlIGlmIChDbG9ja0ZyZXEgPT0gNTIpIHsNCj4gPiA+ID4gLSAgICBIb3N0Q3RybDIgPSBCSVQw Ow0KPiA+ID4gPiArICAgIFRpbWluZyA9IFNkTW1jTW1jU2RyNTA7DQo+ID4gPiA+ICsgIH0gZWxz ZSBpZiAoQ2xvY2tGcmVxID09IDI2KSB7DQo+ID4gPiA+ICsgICAgVGltaW5nID0gU2RNbWNNbWNT ZHIyNTsNCj4gPiA+ID4gICAgfSBlbHNlIHsNCj4gPiA+ID4gLSAgICBIb3N0Q3RybDIgPSAwOw0K PiA+ID4gPiArICAgIFRpbWluZyA9IFNkTW1jTW1jU2RyMTI7DQo+ID4gPiA+ICAgIH0NCj4gPiA+ DQo+ID4gPiBBcyBtZW50aW9uZWQgYWJvdmUsICJTZE1tY01tY1NkcjUwIiBjYW4gYmUgZHJvcHBl ZCBoZXJlLg0KPiA+ID4gQW5kIGNvbnNpZGVyaW5nIHRoZSByZW5hbWUgYWJvdmUsIGhvdyBhYm91 dDoNCj4gPiA+DQo+ID4gPiAgIGlmIChJc0Rkcikgew0KPiA+ID4gICAgIFRpbWluZyA9IFNkTW1j TW1jSHNEZHI7DQo+ID4gPiAgIH0gZWxzZSBpZiAoQ2xvY2tGcmVxID09IDUyKSB7DQo+ID4gPiAg ICAgVGltaW5nID0gU2RNbWNNbWNIc1NkcjsNCj4gPiA+ICAgfSBlbHNlIHsNCj4gPiA+ICAgICBU aW1pbmcgPSBTZE1tY01tY0xlZ2FjeTsNCj4gPiA+ICAgfQ0KPiA+DQo+ID4gT2suDQo+ID4NCj4g PiA+DQo+ID4gPiA+IC0gIFN0YXR1cyA9IFNkTW1jSGNPck1taW8gKFBjaUlvLCBTbG90LCBTRF9N TUNfSENfSE9TVF9DVFJMMiwNCj4gc2l6ZW9mDQo+ID4gPiA+IChIb3N0Q3RybDIpLCAmSG9zdEN0 cmwyKTsNCj4gPiA+ID4gLSAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiAtICAg IHJldHVybiBTdGF0dXM7DQo+ID4gPiA+ICsNCj4gPiA+ID4gKyAgaWYgKG1PdmVycmlkZSAhPSBO VUxMICYmIG1PdmVycmlkZS0+Tm90aWZ5UGhhc2UgIT0gTlVMTCkgew0KPiA+ID4gPiArICAgIFN0 YXR1cyA9IG1PdmVycmlkZS0+Tm90aWZ5UGhhc2UgKA0KPiA+ID4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICBQcml2YXRlLT5Db250cm9sbGVySGFuZGxlLA0KPiA+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICBTbG90LA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBFZGtpaVNkTW1jVWhzU2lnbmFsaW5nLA0KPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAmVGltaW5nDQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICk7DQo+ID4g PiA+ICsgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiArICAgICAgREVCVUcg KCgNCj4gPiA+ID4gKyAgICAgICAgREVCVUdfRVJST1IsDQo+ID4gPiA+ICsgICAgICAgICIlYTog U0QvTU1DIHVocyBzaWduYWxpbmcgbm90aWZpZXIgY2FsbGJhY2sgZmFpbGVkIC0gJXJcbiIsDQo+ ID4gPiA+ICsgICAgICAgIF9fRlVOQ1RJT05fXywNCj4gPiA+ID4gKyAgICAgICAgU3RhdHVzDQo+ ID4gPiA+ICsgICAgICAgICkpOw0KPiA+ID4gPiArICAgICAgcmV0dXJuIFN0YXR1czsNCj4gPiA+ ID4gKyAgICB9DQo+ID4gPiA+ICsgIH0gZWxzZSB7DQo+ID4gPiA+ICsgICAgU3RhdHVzID0gU2RN bWNIY1Voc1NpZ25hbGluZyAoUGNpSW8sIFNsb3QsIFRpbWluZyk7DQo+ID4gPiA+ICsgICAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+ID4gPiArICAgICAgcmV0dXJuIFN0YXR1czsNCj4g PiA+ID4gKyAgICB9DQo+ID4gPiA+ICAgIH0NCj4gPiA+DQo+ID4gPiBJIGhhdmUgY29uY2VybiBm b3IgdGhpcywgY3VycmVudCBleGlzdGluZyBob29rIHBvaW50cyBmb3IgdGhlIE5vdGlmeVBoYXNl KCkNCj4gPiA+IHNlcnZpY2UgYXJlIHBlcmZvcm1pbmcgYWRkaXRpb25hbCBvcGVyYXRpb25zIGR1 cmluZyB0aGUgY29udHJvbGxlcg0KPiA+ID4gaW5pdGlhbGl6YXRpb24gcHJvY2Vzcy4NCj4gPiA+ DQo+ID4gPiBQcm9kdWNlciBvZiB0aGUgb3ZlcnJpZGUgcHJvdG9jb2wgY2FuIHNpbXBseSByZXR1 cm4gRUZJX1NVQ0NFU1MsIGlmIHRoZXJlIGlzDQo+ID4gPiBub3RoaW5nIHRvIGRvIGZvciBhIHNw ZWNpZmljIGhvb2sgcG9pbnQuDQo+ID4gPg0KPiA+ID4gQnV0IHRoaXMgaG9vayBoZXJlIGlzIHRv IG92ZXJyaWRlIHRoZSBiZWhhdmlvciB3aGVuIHNldHRpbmcgdGhlICJVSFMgTW9kZQ0KPiA+ID4g U2VsZWN0IiBmaWVsZCBvZiBIb3N0IENvbnRyb2wgMiBSZWdpc3Rlci4gSWYgdGhlIG92ZXJyaWRl IHByb3RvY29sIHByb2R1Y2VyDQo+ID4gPiBkb2VzIG5vdCB3YW50IHRvIG92ZXJyaWRlIHRoZSBi ZWhhdmlvciBhdCB0aGUgJ0Vka2lpU2RNbWNVaHNTaWduYWxpbmcnDQo+IGhvb2ssDQo+ID4gPiBi dXQgaGFzIHRvIGRvIHNvbWV0aGluZyBpbiBvdGhlciBob29rcywgb25lIGNhbm5vdCBkaXJlY3Rs eSByZXR1cm4NCj4gRUZJX1NVQ0NFU1MNCj4gPiA+IGZvciB0aGUgJ0Vka2lpU2RNbWNVaHNTaWdu YWxpbmcnIGhvb2suIEZvciB0aGlzIGNhc2UsIG9uZSBoYXMgdG8gaW1wbGVtZW50DQo+IHRoZQ0K PiA+ID4gJ0Vka2lpU2RNbWNVaHNTaWduYWxpbmcnIGhvb2sgZXZlbiBpZiB0aGUgYmVoYXZpb3Ig d2lsbCBiZSBleGFjdGx5IHRoZQ0KPiBzYW1lIGFzDQo+ID4gPiB0aGUgU2RNbWNQY2lIY0R4ZSBk cml2ZXIuDQo+ID4NCj4gPiBJIHNlZSB5b3VyIHBvaW50LiBJdCdzIG5vdCBhZGRpdGlvbmFsIGNv ZGUsIGJ1dCByZXBsYWNpbmcgdGhlIGRlZmF1bHQuDQo+ID4gSU1PIHRoZSBlYXNpZXN0IHdheSB0 byBoYW5kbGUgaXQgaXMgdG8gZ28gYmFjayB0byBhIHNlcGFyYXRlDQo+ID4gVWhzU2lnbmFsaW5n IGNhbGxiYWNrLCBzbyB0aGF0IGl0J3MgZWl0aGVyIG9taXR0ZWQgb3IgZXhwbGljaXRseQ0KPiA+ IGRlZmluZWQgYnkgT3ZlcnJpZGUgcHJvdG9jb2wgcHJvZHVjZXIgZHJpdmVyLiBXaGF0IGRvIHlv dSB0aGluaz8NCj4gPg0KPiANCj4gU2Vjb25kIHRob3VnaHQgaGVyZSwgYXMgcHJldmlvdXNseSBJ IGRpc2N1c3NlZCBhIGxvdCB3aXRoIEFyZCwgaG93IHRvDQo+IGtlZXAgb25seSBOb3RpZnkgYW5k IENhcGFiaWxpdHkgY2FsbGJhY2tzLiBJIHRoaW5rIHRoZSBiZXN0IGNvbXByb21pc2UNCj4gd291 bGQgYmUgdG8gY2FsbCBTZE1tY0hjVWhzU2lnbmFsaW5nIHVuY29uZGl0aW9uYWxseSBiZWZvcmUN Cj4gU2RNbWNPdmVycmlkZSBjYWxsYmFjay4gSW4gY2FzZSB0aGUgcHJvZHVjZXIgZG9lcyBub3Ro aW5nLCB0aGUNCj4gZGVmYXVsdHMgd291bGQgYmUgdXNlZC4gVGhpcyB3YXksIGluIGNhc2Ugb2Yg ZGV2aWF0aW9ucyBmcm9tIHN0YW5kYXJkLA0KPiB0aGUgdGhlIHByb2R1Y2VyIGRyaXZlciB3b3Vs ZCBoYXZlIHRvIGhhbmRsZSB1cGRhdGluZyBvbmx5IGFmZmVjdGVkDQo+IHRpbWluZyB2YWx1ZXMu DQoNClllcywgSSB3YXMgdGhpbmtpbmcgcXVpdGUgdGhlIHNhbWU6DQoNCkEuIFNldCB0aGUgIlVI UyBNb2RlIFNlbGVjdCIgZmllbGQgbW9yZSB0aGFuIDEgdGltZQ0KDQpBYnN0cmFjdGVkIGNvZGU6 DQoNCiAgU3RhdHVzID0gU2RNbWNIY1Voc1NpZ25hbGluZyAoUGNpSW8sIFNsb3QsIFRpbWluZyk7 DQogIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCiAgICByZXR1cm4gU3RhdHVzOw0KICB9DQoN CiAgaWYgKG1PdmVycmlkZSAhPSBOVUxMICYmIG1PdmVycmlkZS0+Tm90aWZ5UGhhc2UgIT0gTlVM TCkgew0KICAgIFN0YXR1cyA9IG1PdmVycmlkZS0+Tm90aWZ5UGhhc2UgKEVka2lpU2RNbWNVaHNT aWduYWxpbmcpOw0KICAgIC4uLg0KICB9DQoNCkZvciB0aGlzIGFwcHJvYWNoLCBJIGFtIG5vdCB2 ZXJ5IHN1cmUgaWYgc2V0dGluZyB0aGUgIlVIUyBNb2RlIFNlbGVjdCIgZmllbGQNCm11bHRpcGxl IHRpbWVzIHdpbGwgYnJpbmcgYW55IHNpZGUgZWZmZWN0Lg0KDQoNCkFub3RoZXIgcG9zc2libGUg YXBwcm9hY2ggY29tZXMgdG8gbXkgbWluZCBpcyB0aGF0Og0KDQpCLiBJbnRyb2R1Y2UgYSBuZXcg cmV0dXJuIHN0YXR1cyB0byB0aGUgTm90aWZ5UGhhc2UoKSBzZXJ2aWNlIHRvIGluZGljYXRlDQpu b3RoaW5nIGhhcyBiZWVuIGRvbmUgKGluIG90aGVyIHdvcmRzLCB0aGUgaG9vayB0eXBlIGlzIGp1 c3QgaWdub3JlZCBieSB0aGUNCmltcGxlbWVudGF0aW9uKQ0KDQpUaGUgY3VycmVudCBpbXBsZW1l bnRhdGlvbiBvZiB0aGUgTm90aWZ5UGhhc2UoKSBzZXJ2aWNlIHdpbGwgcmV0dXJuIEVGSV9TVUND RVNTDQp3aGVuOg0KMSkgdGhlIGFkZGl0aW9uYWwgb3BlcmF0aW9ucyBmaW5pc2hlZCBzdWNjZXNz ZnVsbHk7DQoyKSBub3RoaW5nIGhhcyBiZWVuIGRvbmUgZm9yIGEgc3BlY2lmaWMgaG9vayB0eXBl Lg0KDQpJIGFtIHRoaW5raW5nIHdoZXRoZXIgYSBuZXcgcmV0dXJuIHN0YXR1cyAobGlrZSBFRklf VU5TVVBQT1JURUQpIGNhbiBiZQ0KaW50cm9kdWNlZCB0byBkaXN0aW5ndWlzaCB0aGUgYWJvdmUg MiBjYXNlcy4NCg0KRm9yIHRoaXMgYXBwcm9hY2gsIHRoZSBjYWxsZXIgb2YgdGhlIE5vdGlmeVBo YXNlKCkgd2lsbCB0aGVuIG5vdCB0cmVhdCB0aGlzIG5ldw0KcmV0dXJuIHN0YXR1cyBhcyBhIGZh dGFsIGVycm9yLCBhbmQgdGhlIGluaXRpYWxpemF0aW9uIHByb2Nlc3Mgc2hvdWxkIGNvbnRpbnVl Lg0KDQoNCkJlc3QgUmVnYXJkcywNCkhhbyBXdQ0KDQo+IA0KPiBCZXN0IHJlZ2FyZHMsDQo+IE1h cmNpbg0K