From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 6931DA04C2; Fri, 15 Nov 2019 13:40:46 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0F91F2C08; Fri, 15 Nov 2019 13:40:46 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 477482BA8 for ; Fri, 15 Nov 2019 13:40:44 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Nov 2019 04:40:43 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,308,1569308400"; d="scan'208";a="199189755" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga008.jf.intel.com with ESMTP; 15 Nov 2019 04:40:42 -0800 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 15 Nov 2019 04:40:42 -0800 Received: from cdsmsx102.ccr.corp.intel.com (172.17.3.35) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 15 Nov 2019 04:40:42 -0800 Received: from cdsmsx104.ccr.corp.intel.com ([169.254.4.66]) by CDSMSX102.ccr.corp.intel.com ([169.254.2.162]) with mapi id 14.03.0439.000; Fri, 15 Nov 2019 20:40:39 +0800 From: "Zhang, Tianfei" To: "Yigit, Ferruh" , "Xu, Rosen" , "dev@dpdk.org" CC: "Pei, Andy" , "Ye, Xiaolong" Thread-Topic: [PATCH v18 13/19] raw/ifpga/base: add secure support Thread-Index: AQHVmsqd14umbK+FHkimUudKJqftJaeLRoZQgAAzD4CAALRwAA== Date: Fri, 15 Nov 2019 12:40:39 +0000 Message-ID: References: <1571917119-149534-2-git-send-email-andy.pei@intel.com> <1573722187-148846-1-git-send-email-rosen.xu@intel.com> <1573722187-148846-14-git-send-email-rosen.xu@intel.com> <7e383fab-33d5-1d93-06d9-9fd8c7fdde9b@intel.com> In-Reply-To: <7e383fab-33d5-1d93-06d9-9fd8c7fdde9b@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.2.0.6 x-originating-ip: [172.17.6.105] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v18 13/19] raw/ifpga/base: add secure support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWlnaXQsIEZlcnJ1aA0K PiBTZW50OiBGcmlkYXksIE5vdmVtYmVyIDE1LCAyMDE5IDU6NTQgUE0NCj4gVG86IFpoYW5nLCBU aWFuZmVpIDx0aWFuZmVpLnpoYW5nQGludGVsLmNvbT47IFh1LCBSb3NlbiA8cm9zZW4ueHVAaW50 ZWwuY29tPjsNCj4gZGV2QGRwZGsub3JnDQo+IENjOiBQZWksIEFuZHkgPGFuZHkucGVpQGludGVs LmNvbT47IFllLCBYaWFvbG9uZyA8eGlhb2xvbmcueWVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBS ZTogW1BBVENIIHYxOCAxMy8xOV0gcmF3L2lmcGdhL2Jhc2U6IGFkZCBzZWN1cmUgc3VwcG9ydA0K PiANCj4gT24gMTEvMTQvMjAxOSAxMTowNSBQTSwgWmhhbmcsIFRpYW5mZWkgd3JvdGU6DQo+ID4N Cj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogWHUsIFJvc2VuDQo+ ID4+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAxNCwgMjAxOSA1OjAzIFBNDQo+ID4+IFRvOiBk ZXZAZHBkay5vcmcNCj4gPj4gQ2M6IFh1LCBSb3NlbiA8cm9zZW4ueHVAaW50ZWwuY29tPjsgWmhh bmcsIFRpYW5mZWkNCj4gPj4gPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPjsgUGVpLCBBbmR5IDxh bmR5LnBlaUBpbnRlbC5jb20+OyBZZSwNCj4gPj4gWGlhb2xvbmcgPHhpYW9sb25nLnllQGludGVs LmNvbT47IFlpZ2l0LCBGZXJydWgNCj4gPj4gPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+ IFN1YmplY3Q6IFtQQVRDSCB2MTggMTMvMTldIHJhdy9pZnBnYS9iYXNlOiBhZGQgc2VjdXJlIHN1 cHBvcnQNCj4gPj4NCj4gPj4gRnJvbTogVGlhbmZlaSB6aGFuZyA8dGlhbmZlaS56aGFuZ0BpbnRl bC5jb20+DQo+ID4+DQo+ID4+IEFkZCBzZWN1cmUgbWF4MTAgZGV2aWNlIHN1cHBvcnQuDQo+ID4N Cj4gPiBJbiBQQUMgTjMwMDAgQ2FyZCwgaXQgaW1wbGVtZW50cyB0aGUgc2VjdXJlIGZ1bmN0aW9u YWxpdHkgb24gdGhlIE1BWDEwDQo+IEJvYXJkIE1hbmFnZW1lbnQgQ29udHJvbGxlciAoQk1DKSBh cyBSb290IG9mIFRydXN0IChSb1QpLiBJdCBjaGFuZ2VzIHRvDQo+IE1BWDEwIChSVEwgYW5kIE5p b3MgRlcpIHRvIGVuYWJsZSBzZWN1cmUgUlNVIChSZW1vdGUgU3lzdGVtIFVwZGF0ZSkNCj4gYXV0 aGVudGljYXRpb24gYW5kIGludGVncml0eSBjaGVja3MgZm9yIEZQR0EgRmxhdCBpbWFnZSwgYW5k IEZXIHVwZGF0ZXMgdG8gdGhlDQo+IGNhcmQuIFRoZSBjYXJkJ3MgQk1DIGNvbnRpbnVlcyB0byBz dXBwb3J0IGZlYXR1cmVzIHN1Y2ggYXMgcG93ZXIgc2VxdWVuY2UNCj4gbWFuYWdlbWVudCwgYm9h cmQgbW9uaXRvcmluZyB2aWEgc2Vuc29ycywgSlRBRyBtYW5hZ2VtZW50IGFuZCBpbi1iYW5kIFNQ SQ0KPiBpbnRlcmZhY2UgYWNjZXNzLiBUaGUgZXh0ZXJuYWwgRmxhc2ggb24gdGhlIGNhcmQgc2hh bGwgYmUgcHJvZ3JhbW1lZCB3aXRoIHRoZQ0KPiBJbnRlbCByb290IHB1YmxpYyBrZXkgaGFzaCAo Zm9yIEJNQyBpbWFnZXMgYW5kIEZXKSBhbmQgQ3VzdG9tZXIvVXNlciBrZXkgKGZvcg0KPiBGUEdB IEZsYXQgaW1hZ2UpIGR1cmluZyBtYW51ZmFjdHVyaW5nLCBzbyB0aGUgaW1hZ2UgdXBkYXRlcyAo UlNVKSBzaGFsbCBiZQ0KPiB2ZXJpZmllZCB1c2luZyBFQ0RTQS0yNTYgUC0yNTYgYW5kIFNIQTIt MjU2IGJlZm9yZSBiZWluZyB3cml0dGVuIHRvIHRoZQ0KPiBNQVgxMCBJbWFnZSBGbGFzaCBvciBG UEdBIEltYWdlIEZsYXNoLg0KPiA+DQo+ID4gVGhpcyBwYXRjaCBhZGQgUm9UIHN1cHBvcnQgZm9y IE1BWDEwIGJlY2F1c2Ugc29tZSByZWdpc3RlcnMgYW5kIHRoZSBjb250ZW50DQo+IG9mIERldmlj ZSBUcmVlIGhhdmUgY2hhbmdlZCBiZXR3ZWVuIFJvVCBzb2x1dGlvbiBhbmQgTm9uLVJvVCBzb2x1 dGlvbi4NCj4gDQo+IFRoYW5rcyBUaWFuZmVpIGZvciB0aGUgYWRkaXRpb25hbCBpbmZvcm1hdGlv biwgSSB3aWxsIHVwZGF0ZSBjb21taXQgYXMgZm9sbG93aW5nLA0KPiBwbGVhc2UgbGV0IG1lIGtu b3cgaWYgeW91IGhhdmUgYW55IG9iamVjdGlvbjoNCj4gDQo+IHJhdy9pZnBnYS9iYXNlOiBzdXBw b3J0IG1heDEwIHNlY3VyaXR5IGZlYXR1cmUNCj4gDQo+IEluIFBBQyBOMzAwMCBDYXJkLCBNQVgx MCBCb2FyZCBNYW5hZ2VtZW50IENvbnRyb2xsZXIgKEJNQykgaW1wbGVtZW50cw0KPiB0aGUgc2Vj dXJpdHkgZnVuY3Rpb25hbGl0eS4NCj4gDQo+IFNlY3VyaXR5IGZ1bmN0aW9uYWxpdHkgYWRkcyBz ZWN1cmUgUmVtb3RlIFN5c3RlbSBVcGRhdGUgKFJTVSkgYXV0aGVudGljYXRpb24NCj4gYW5kIGlu dGVncml0eSBjaGVja3MgZm9yIEZQR0EgZmxhdCBpbWFnZSwgYW5kIEZXIHVwZGF0ZXMgdG8gdGhl IGNhcmQuDQo+IA0KPiBUaGlzIHBhdGNoIGFkZHMgc2VjdXJpdHkgZmVhdHVyZSBzdXBwb3J0IGZv ciBNQVgxMCwgaW4gc2VjdXJlIHNvbHV0aW9uIHNvbWUNCj4gcmVnaXN0ZXJzIGFuZCB0aGUgY29u dGVudCBvZiB0aGUgRGV2aWNlIFRyZWUgY2hhbmdlcy4NCg0KSXQgbG9va3MgZ29vZCBmb3IgbWUs IHRoYW5rcyBhIGxvdCENCg0KPiANCj4gPg0KPiA+DQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYtYnk6 IFRpYW5mZWkgemhhbmcgPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPg0KPiA+PiBTaWduZWQtb2Zm LWJ5OiBBbmR5IFBlaSA8YW5keS5wZWlAaW50ZWwuY29tPg0KPiA+PiAtLS0NCj4gPj4gIGRyaXZl cnMvcmF3L2lmcGdhL2Jhc2UvaWZwZ2FfZGVmaW5lcy5oICAgIHwgICAyICsNCj4gPj4gIGRyaXZl cnMvcmF3L2lmcGdhL2Jhc2UvaWZwZ2FfZm1lLmMgICAgICAgIHwgIDI2ICsrKystLQ0KPiA+PiAg ZHJpdmVycy9yYXcvaWZwZ2EvYmFzZS9vcGFlX2ludGVsX21heDEwLmMgfCAxMzcNCj4gPj4gKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tDQo+ID4+IGRyaXZlcnMvcmF3L2lmcGdhL2Jhc2Uv b3BhZV9pbnRlbF9tYXgxMC5oIHwgIDgwICsrKysrKysrKysrKy0tLS0tDQo+ID4+ICA0IGZpbGVz IGNoYW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmF3L2lmcGdhL2Jhc2UvaWZwZ2FfZGVmaW5lcy5oDQo+ID4+ IGIvZHJpdmVycy9yYXcvaWZwZ2EvYmFzZS9pZnBnYV9kZWZpbmVzLmgNCj4gPj4gaW5kZXggODk5 M2NjNi4uMWU4NGIxNSAxMDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9yYXcvaWZwZ2EvYmFzZS9p ZnBnYV9kZWZpbmVzLmgNCj4gPj4gKysrIGIvZHJpdmVycy9yYXcvaWZwZ2EvYmFzZS9pZnBnYV9k ZWZpbmVzLmgNCj4gPj4gQEAgLTE2OTgsNiArMTY5OCw4IEBAIHN0cnVjdCBpZnBnYV9mbWVfYm9h cmRfaW5mbyB7DQo+ID4+ICAJdTMyIHBhdGNoX3ZlcnNpb247DQo+ID4+ICAJdTMyIG1pbm9yX3Zl cnNpb247DQo+ID4+ICAJdTMyIG1ham9yX3ZlcnNpb247DQo+ID4+ICsJdTMyIG1heDEwX3ZlcnNp b247DQo+ID4+ICsJdTMyIG5pb3NfZndfdmVyc2lvbjsNCj4gPj4gIAl1MzIgbnVtc19vZl9yZXRp bWVyOw0KPiA+PiAgCXUzMiBwb3J0c19wZXJfcmV0aW1lcjsNCj4gPj4gIAl1MzIgbnVtc19vZl9m dmw7DQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Jhdy9pZnBnYS9iYXNlL2lmcGdhX2ZtZS5j DQo+ID4+IGIvZHJpdmVycy9yYXcvaWZwZ2EvYmFzZS9pZnBnYV9mbWUuYw0KPiA+PiBpbmRleCA3 OTRjYTA5Li44N2ZhNTk2IDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL3Jhdy9pZnBnYS9iYXNl L2lmcGdhX2ZtZS5jDQo+ID4+ICsrKyBiL2RyaXZlcnMvcmF3L2lmcGdhL2Jhc2UvaWZwZ2FfZm1l LmMNCj4gPj4gQEAgLTgyNSw2ICs4MjUsNyBAQCBzdGF0aWMgaW50IGJvYXJkX3R5cGVfdG9faW5m byh1MzIgdHlwZSwgIHN0YXRpYw0KPiA+PiBpbnQgZm1lX2dldF9ib2FyZF9pbnRlcmZhY2Uoc3Ry dWN0IGlmcGdhX2ZtZV9odyAqZm1lKSAgew0KPiA+PiAgCXN0cnVjdCBmbWVfYml0c3RyZWFtX2lk IGlkOw0KPiA+PiArCXUzMiB2YWw7DQo+ID4+DQo+ID4+ICAJaWYgKGZtZV9oZHJfZ2V0X2JpdHN0 cmVhbV9pZChmbWUsICZpZC5pZCkpDQo+ID4+ICAJCXJldHVybiAtRUlOVkFMOw0KPiA+PiBAQCAt ODUwLDYgKzg1MSwxOCBAQCBzdGF0aWMgaW50IGZtZV9nZXRfYm9hcmRfaW50ZXJmYWNlKHN0cnVj dA0KPiA+PiBpZnBnYV9mbWVfaHcgKmZtZSkNCj4gPj4gIAkJCWZtZS0+Ym9hcmRfaW5mby5udW1z X29mX2Z2bCwNCj4gPj4gIAkJCWZtZS0+Ym9hcmRfaW5mby5wb3J0c19wZXJfZnZsKTsNCj4gPj4N Cj4gPj4gKwlpZiAobWF4MTBfc3lzX3JlYWQoTUFYMTBfQlVJTERfVkVSLCAmdmFsKSkNCj4gPj4g KwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+ICsJZm1lLT5ib2FyZF9pbmZvLm1heDEwX3ZlcnNpb24g PSB2YWwgJiAweGZmZmZmZjsNCj4gPj4gKw0KPiA+PiArCWlmIChtYXgxMF9zeXNfcmVhZChOSU9T Ml9GV19WRVJTSU9OLCAmdmFsKSkNCj4gPj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ID4+ICsJZm1l LT5ib2FyZF9pbmZvLm5pb3NfZndfdmVyc2lvbiA9IHZhbCAmIDB4ZmZmZmZmOw0KPiA+PiArDQo+ ID4+ICsJZGV2X2luZm8oZm1lLCAibWF4MTAgdmVyc2lvbiAweCV4LCBuaW9zIGZ3IHZlcnNpb24g MHgleFxuIiwNCj4gPj4gKwkJZm1lLT5ib2FyZF9pbmZvLm1heDEwX3ZlcnNpb24sDQo+ID4+ICsJ CWZtZS0+Ym9hcmRfaW5mby5uaW9zX2Z3X3ZlcnNpb24pOw0KPiA+PiArDQo+ID4+ICAJcmV0dXJu IDA7DQo+ID4+ICB9DQo+ID4+DQo+ID4+IEBAIC04NTgsMTYgKzg3MSwxMSBAQCBzdGF0aWMgaW50 IHNwaV9zZWxmX2NoZWNraW5nKHZvaWQpDQo+ID4+ICAJdTMyIHZhbDsNCj4gPj4gIAlpbnQgcmV0 Ow0KPiA+Pg0KPiA+PiAtCXJldCA9IG1heDEwX3JlZ19yZWFkKDB4MzAwNDNjLCAmdmFsKTsNCj4g Pj4gKwlyZXQgPSBtYXgxMF9zeXNfcmVhZChNQVgxMF9URVNUX1JFRywgJnZhbCk7DQo+ID4+ICAJ aWYgKHJldCkNCj4gPj4gIAkJcmV0dXJuIC1FSU87DQo+ID4+DQo+ID4+IC0JaWYgKHZhbCAhPSAw eDg3NjU0MzIxKSB7DQo+ID4+IC0JCWRldl9lcnIoTlVMTCwgIlJlYWQgTUFYMTAgdGVzdCByZWdp c3RlciBmYWlsOiAweCV4XG4iLCB2YWwpOw0KPiA+PiAtCQlyZXR1cm4gLUVJTzsNCj4gPj4gLQl9 DQo+ID4+IC0NCj4gPj4gLQlkZXZfaW5mbyhOVUxMLCAiUmVhZCBNQVgxMCB0ZXN0IHJlZ2lzdGVy IHN1Y2Nlc3MsIFNQSSBzZWxmLXRlc3QgZG9uZVxuIik7DQo+ID4+ICsJZGV2X2luZm8oTlVMTCwg IlJlYWQgTUFYMTAgdGVzdCByZWdpc3RlciAweCV4XG4iLCB2YWwpOw0KPiA+Pg0KPiA+PiAgCXJl dHVybiAwOw0KPiA+PiAgfQ0KPiA+PiBAQCAtMTI4Myw3ICsxMjkxLDcgQEAgaW50IGZtZV9tZ3Jf Z2V0X3JldGltZXJfc3RhdHVzKHN0cnVjdA0KPiA+PiBpZnBnYV9mbWVfaHcgKmZtZSwNCj4gPj4g IAlpZiAoIWRldikNCj4gPj4gIAkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+DQo+ID4+IC0JaWYgKG1h eDEwX3JlZ19yZWFkKFBLVkxfTElOS19TVEFUVVMsICZ2YWwpKSB7DQo+ID4+ICsJaWYgKG1heDEw X3N5c19yZWFkKFBLVkxfTElOS19TVEFUVVMsICZ2YWwpKSB7DQo+ID4+ICAJCWRldl9lcnIoZGV2 LCAiJXM6IHJlYWQgcGt2bCBzdGF0dXMgZmFpbFxuIiwgX19mdW5jX18pOw0KPiA+PiAgCQlyZXR1 cm4gLUVJTlZBTDsNCj4gPj4gIAl9DQo+ID4+IEBAIC0xMzExLDcgKzEzMTksNyBAQCBpbnQgZm1l X21ncl9nZXRfc2Vuc29yX3ZhbHVlKHN0cnVjdA0KPiA+PiBpZnBnYV9mbWVfaHcgKmZtZSwNCj4g Pj4gIAlpZiAoIWRldikNCj4gPj4gIAkJcmV0dXJuIC1FTk9ERVY7DQo+ID4+DQo+ID4+IC0JaWYg KG1heDEwX3JlZ19yZWFkKHNlbnNvci0+dmFsdWVfcmVnLCB2YWx1ZSkpIHsNCj4gPj4gKwlpZiAo bWF4MTBfc3lzX3JlYWQoc2Vuc29yLT52YWx1ZV9yZWcsIHZhbHVlKSkgew0KPiA+PiAgCQlkZXZf ZXJyKGRldiwgIiVzOiByZWFkIHNlbnNvciB2YWx1ZSByZWdpc3RlciAweCV4IGZhaWxcbiIsDQo+ ID4+ICAJCQkJX19mdW5jX18sIHNlbnNvci0+dmFsdWVfcmVnKTsNCj4gPj4gIAkJcmV0dXJuIC1F SU5WQUw7DQo+ID4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3Jhdy9pZnBnYS9iYXNlL29wYWVfaW50 ZWxfbWF4MTAuYw0KPiA+PiBiL2RyaXZlcnMvcmF3L2lmcGdhL2Jhc2Uvb3BhZV9pbnRlbF9tYXgx MC5jDQo+ID4+IGluZGV4IGFlN2E4ZGYuLjc0OGFiNTYgMTAwNjQ0DQo+ID4+IC0tLSBhL2RyaXZl cnMvcmF3L2lmcGdhL2Jhc2Uvb3BhZV9pbnRlbF9tYXgxMC5jDQo+ID4+ICsrKyBiL2RyaXZlcnMv cmF3L2lmcGdhL2Jhc2Uvb3BhZV9pbnRlbF9tYXgxMC5jDQo+ID4+IEBAIC0zMCw2ICszMCwyMiBA QCBpbnQgbWF4MTBfcmVnX3dyaXRlKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludA0KPiB2 YWwpDQo+ID4+ICAJCQlyZWcsIDQsICh1bnNpZ25lZCBjaGFyICopJnRtcCk7DQo+ID4+ICB9DQo+ ID4+DQo+ID4+ICtpbnQgbWF4MTBfc3lzX3JlYWQodW5zaWduZWQgaW50IG9mZnNldCwgdW5zaWdu ZWQgaW50ICp2YWwpIHsNCj4gPj4gKwlpZiAoIWdfbWF4MTApDQo+ID4+ICsJCXJldHVybiAtRU5P REVWOw0KPiA+PiArDQo+ID4+ICsJcmV0dXJuIG1heDEwX3JlZ19yZWFkKGdfbWF4MTAtPmJhc2Ug KyBvZmZzZXQsIHZhbCk7IH0NCj4gPj4gKw0KPiA+PiAraW50IG1heDEwX3N5c193cml0ZSh1bnNp Z25lZCBpbnQgb2Zmc2V0LCB1bnNpZ25lZCBpbnQgdmFsKSB7DQo+ID4+ICsJaWYgKCFnX21heDEw KQ0KPiA+PiArCQlyZXR1cm4gLUVOT0RFVjsNCj4gPj4gKw0KPiA+PiArCXJldHVybiBtYXgxMF9y ZWdfd3JpdGUoZ19tYXgxMC0+YmFzZSArIG9mZnNldCwgdmFsKTsgfQ0KPiA+PiArDQo+ID4+ICBz dGF0aWMgc3RydWN0IG1heDEwX2NvbXBhdGlibGVfaWQgbWF4MTBfaWRfdGFibGVbXSA9IHsNCj4g Pj4gIAl7LmNvbXBhdGlibGUgPSBNQVgxMF9QQUMsfSwNCj4gPj4gIAl7LmNvbXBhdGlibGUgPSBN QVgxMF9QQUNfTjMwMDAsfSwNCj4gPj4gQEAgLTY2LDcgKzgyLDggQEAgc3RhdGljIHZvaWQgbWF4 MTBfY2hlY2tfY2FwYWJpbGl0eShzdHJ1Y3QNCj4gPj4gaW50ZWxfbWF4MTBfZGV2aWNlICptYXgx MCkNCj4gPj4gIAkJbWF4MTAtPmZsYWdzIHw9IE1BWDEwX0ZMQUdTX05PX0kyQzIgfA0KPiA+PiAg CQkJCU1BWDEwX0ZMQUdTX05PX0JNQ0lNR19GTEFTSDsNCj4gPj4gIAkJZGV2X2luZm8obWF4MTAs ICJmb3VuZCAlcyBjYXJkXG4iLCBtYXgxMC0+aWQtPmNvbXBhdGlibGUpOw0KPiA+PiAtCX0NCj4g Pj4gKwl9IGVsc2UNCj4gPj4gKwkJbWF4MTAtPmZsYWdzIHw9IE1BWDEwX0ZMQUdTX01BQ19DQUNI RTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIHN0YXRpYyBpbnQgYWx0ZXJhX25vcl9mbGFzaF9yZWFk KHUzMiBvZmZzZXQsIEBAIC0xMDAsNyArMTE3LDcgQEANCj4gPj4gc3RhdGljIGludCBlbmFibGVf bm9yX2ZsYXNoKGJvb2wgb24pDQo+ID4+ICAJdW5zaWduZWQgaW50IHZhbCA9IDA7DQo+ID4+ICAJ aW50IHJldDsNCj4gPj4NCj4gPj4gLQlyZXQgPSBtYXgxMF9yZWdfcmVhZChSU1VfUkVHX09GRiwg JnZhbCk7DQo+ID4+ICsJcmV0ID0gbWF4MTBfc3lzX3JlYWQoUlNVX1JFRywgJnZhbCk7DQo+ID4+ ICAJaWYgKHJldCkgew0KPiA+PiAgCQlkZXZfZXJyKE5VTEwgImVuYWJsaW5nIGZsYXNoIGVycm9y XG4iKTsNCj4gPj4gIAkJcmV0dXJuIHJldDsNCj4gPj4gQEAgLTExMSw3ICsxMjgsNyBAQCBzdGF0 aWMgaW50IGVuYWJsZV9ub3JfZmxhc2goYm9vbCBvbikNCj4gPj4gIAllbHNlDQo+ID4+ICAJCXZh bCAmPSB+UlNVX0VOQUJMRTsNCj4gPj4NCj4gPj4gLQlyZXR1cm4gbWF4MTBfcmVnX3dyaXRlKFJT VV9SRUdfT0ZGLCB2YWwpOw0KPiA+PiArCXJldHVybiBtYXgxMF9zeXNfd3JpdGUoUlNVX1JFRywg dmFsKTsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gIHN0YXRpYyBpbnQgaW5pdF9tYXgxMF9kZXZpY2Vf dGFibGUoc3RydWN0IGludGVsX21heDEwX2RldmljZSAqbWF4MTApDQo+ID4+IEBADQo+ID4+IC0x MjMsNyArMTQwLDcgQEAgc3RhdGljIGludCBpbml0X21heDEwX2RldmljZV90YWJsZShzdHJ1Y3QN Cj4gPj4gaW50ZWxfbWF4MTBfZGV2aWNlICptYXgxMCkNCj4gPj4gIAl1MzIgZHRfc2l6ZSwgZHRf YWRkciwgdmFsOw0KPiA+PiAgCWludCByZXQ7DQo+ID4+DQo+ID4+IC0JcmV0ID0gbWF4MTBfcmVn X3JlYWQoRFRfQVZBSUxfUkVHX09GRiwgJnZhbCk7DQo+ID4+ICsJcmV0ID0gbWF4MTBfc3lzX3Jl YWQoRFRfQVZBSUxfUkVHLCAmdmFsKTsNCj4gPj4gIAlpZiAocmV0KSB7DQo+ID4+ICAJCWRldl9l cnIobWF4MTAgImNhbm5vdCByZWFkIERUX0FWQUlMX1JFR1xuIik7DQo+ID4+ICAJCXJldHVybiBy ZXQ7DQo+ID4+IEBAIC0xMzQsNyArMTUxLDcgQEAgc3RhdGljIGludCBpbml0X21heDEwX2Rldmlj ZV90YWJsZShzdHJ1Y3QNCj4gPj4gaW50ZWxfbWF4MTBfZGV2aWNlICptYXgxMCkNCj4gPj4gIAkJ cmV0dXJuIC1FSU5WQUw7DQo+ID4+ICAJfQ0KPiA+Pg0KPiA+PiAtCXJldCA9IG1heDEwX3JlZ19y ZWFkKERUX0JBU0VfQUREUl9SRUdfT0ZGLCAmZHRfYWRkcik7DQo+ID4+ICsJcmV0ID0gbWF4MTBf c3lzX3JlYWQoRFRfQkFTRV9BRERSX1JFRywgJmR0X2FkZHIpOw0KPiA+PiAgCWlmIChyZXQpIHsN Cj4gPj4gIAkJZGV2X2luZm8obWF4MTAgImNhbm5vdCBnZXQgYmFzZSBhZGRyIG9mIGRldmljZSB0 YWJsZVxuIik7DQo+ID4+ICAJCXJldHVybiByZXQ7DQo+ID4+IEBAIC0zMTUsNyArMzMyLDcgQEAg c3RhdGljIGludCBtYXgxMF9hZGRfc2Vuc29yKHN0cnVjdA0KPiA+PiByYXdfc2Vuc29yX2luZm8g KmluZm8sDQo+ID4+ICAJCWlmICghc2Vuc29yX3JlZ192YWxpZCgmaW5mby0+cmVnc1tpXSkpDQo+ ID4+ICAJCQljb250aW51ZTsNCj4gPj4NCj4gPj4gLQkJcmV0ID0gbWF4MTBfcmVnX3JlYWQoaW5m by0+cmVnc1tpXS5yZWdvZmYsICZ2YWwpOw0KPiA+PiArCQlyZXQgPSBtYXgxMF9zeXNfcmVhZChp bmZvLT5yZWdzW2ldLnJlZ29mZiwgJnZhbCk7DQo+ID4+ICAJCWlmIChyZXQpDQo+ID4+ICAJCQli cmVhazsNCj4gPj4NCj4gPj4gQEAgLTM1NSw3ICszNzIsOCBAQCBzdGF0aWMgaW50IG1heDEwX2Fk ZF9zZW5zb3Ioc3RydWN0DQo+ID4+IHJhd19zZW5zb3JfaW5mbyAqaW5mbywNCj4gPj4gIAlyZXR1 cm4gcmV0Ow0KPiA+PiAgfQ0KPiA+Pg0KPiA+PiAtc3RhdGljIGludCBtYXgxMF9zZW5zb3JfaW5p dChzdHJ1Y3QgaW50ZWxfbWF4MTBfZGV2aWNlICpkZXYpDQo+ID4+ICtzdGF0aWMgaW50DQo+ID4+ ICttYXgxMF9zZW5zb3JfaW5pdChzdHJ1Y3QgaW50ZWxfbWF4MTBfZGV2aWNlICpkZXYsIGludCBw YXJlbnQpDQo+ID4+ICB7DQo+ID4+ICAJaW50IGksIHJldCA9IDAsIG9mZnNldCA9IDA7DQo+ID4+ ICAJY29uc3QgZmR0MzJfdCAqbnVtOw0KPiA+PiBAQCAtMzcwLDcgKzM4OCw3IEBAIHN0YXRpYyBp bnQgbWF4MTBfc2Vuc29yX2luaXQoc3RydWN0DQo+ID4+IGludGVsX21heDEwX2RldmljZQ0KPiA+ PiAqZGV2KQ0KPiA+PiAgCQlyZXR1cm4gMDsNCj4gPj4gIAl9DQo+ID4+DQo+ID4+IC0JZmR0X2Zv cl9lYWNoX3N1Ym5vZGUob2Zmc2V0LCBmZHRfcm9vdCwgMCkgew0KPiA+PiArCWZkdF9mb3JfZWFj aF9zdWJub2RlKG9mZnNldCwgZmR0X3Jvb3QsIHBhcmVudCkgew0KPiA+PiAgCQlwdHIgPSBmZHRf Z2V0X25hbWUoZmR0X3Jvb3QsIG9mZnNldCwgTlVMTCk7DQo+ID4+ICAJCWlmICghcHRyKSB7DQo+ ID4+ICAJCQlkZXZfZXJyKGRldiwgImZhaWxlZCB0byBmZHQgZ2V0IG5hbWVcbiIpOyBAQCAtNDE3 LDcNCj4gKzQzNSwxNiBAQA0KPiA+PiBzdGF0aWMgaW50IG1heDEwX3NlbnNvcl9pbml0KHN0cnVj dCBpbnRlbF9tYXgxMF9kZXZpY2UgKmRldikNCj4gPj4gIAkJCQljb250aW51ZTsNCj4gPj4gIAkJ CX0NCj4gPj4NCj4gPj4gLQkJCXJhdy0+cmVnc1tpXS5yZWdvZmYgPSBzdGFydDsNCj4gPj4gKwkJ CS8qIFRoaXMgaXMgYSBoYWNrIHRvIGNvbXBhdGlibGUgd2l0aCBub24tc2VjdXJlDQo+ID4+ICsJ CQkgKiBzb2x1dGlvbi4gSWYgc2Vuc29ycyBhcmUgaW5jbHVkZWQgaW4gcm9vdCBub2RlLA0KPiA+ PiArCQkJICogdGhlbiBpdCdzIG5vbi1zZWN1cmUgZHRiLCB3aGljaCB1c2UgYWJzb2x1dGUgYWRk cg0KPiA+PiArCQkJICogb2Ygbm9uLXNlY3VyZSBzb2x1dGlvbi4NCj4gPj4gKwkJCSAqLw0KPiA+ PiArCQkJaWYgKHBhcmVudCkNCj4gPj4gKwkJCQlyYXctPnJlZ3NbaV0ucmVnb2ZmID0gc3RhcnQ7 DQo+ID4+ICsJCQllbHNlDQo+ID4+ICsJCQkJcmF3LT5yZWdzW2ldLnJlZ29mZiA9IHN0YXJ0IC0N Cj4gPj4gKwkJCQkJTUFYMTBfQkFTRV9BRERSOw0KPiA+PiAgCQkJcmF3LT5yZWdzW2ldLnNpemUg PSBzaXplOw0KPiA+PiAgCQl9DQo+ID4+DQo+ID4+IEBAIC00NjksNiArNDk2LDYzIEBAIHN0YXRp YyBpbnQgbWF4MTBfc2Vuc29yX2luaXQoc3RydWN0DQo+ID4+IGludGVsX21heDEwX2RldmljZSAq ZGV2KQ0KPiA+PiAgCXJldHVybiByZXQ7DQo+ID4+ICB9DQo+ID4+DQo+ID4+ICtzdGF0aWMgaW50 IGNoZWNrX21heDEwX3ZlcnNpb24oc3RydWN0IGludGVsX21heDEwX2RldmljZSAqZGV2KSB7DQo+ ID4+ICsJdW5zaWduZWQgaW50IHY7DQo+ID4+ICsNCj4gPj4gKwlpZiAoIW1heDEwX3JlZ19yZWFk KE1BWDEwX1NFQ19CQVNFX0FERFIgKyBNQVgxMF9CVUlMRF9WRVIsDQo+ID4+ICsJCQkJJnYpKSB7 DQo+ID4+ICsJCWlmICh2ICE9IDB4ZmZmZmZmZmYpIHsNCj4gPj4gKwkJCWRldl9pbmZvKGRldiwg InNlY3VyZSBNQVgxMCBkZXRlY3RlZFxuIik7DQo+ID4+ICsJCQlkZXYtPmJhc2UgPSBNQVgxMF9T RUNfQkFTRV9BRERSOw0KPiA+PiArCQkJZGV2LT5mbGFncyB8PSBNQVgxMF9GTEFHU19TRUNVUkU7 DQo+ID4+ICsJCX0gZWxzZSB7DQo+ID4+ICsJCQlkZXZfaW5mbyhkZXYsICJub24tc2VjdXJlIE1B WDEwIGRldGVjdGVkXG4iKTsNCj4gPj4gKwkJCWRldi0+YmFzZSA9IE1BWDEwX0JBU0VfQUREUjsN Cj4gPj4gKwkJfQ0KPiA+PiArCQlyZXR1cm4gMDsNCj4gPj4gKwl9DQo+ID4+ICsNCj4gPj4gKwly ZXR1cm4gLUVOT0RFVjsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArc3RhdGljIGludA0KPiA+PiAr bWF4MTBfc2VjdXJlX2h3X2luaXQoc3RydWN0IGludGVsX21heDEwX2RldmljZSAqZGV2KSB7DQo+ ID4+ICsJaW50IG9mZnNldCwgc3lzbWdyX29mZnNldCA9IDA7DQo+ID4+ICsJY2hhciAqZmR0X3Jv b3Q7DQo+ID4+ICsNCj4gPj4gKwlmZHRfcm9vdCA9IGRldi0+ZmR0X3Jvb3Q7DQo+ID4+ICsJaWYg KCFmZHRfcm9vdCkgew0KPiA+PiArCQlkZXZfZGVidWcoZGV2LCAic2tpcCBpbml0IGFzIG5vdCBm aW5kIERldmljZSBUcmVlXG4iKTsNCj4gPj4gKwkJcmV0dXJuIDA7DQo+ID4+ICsJfQ0KPiA+PiAr DQo+ID4+ICsJZmR0X2Zvcl9lYWNoX3N1Ym5vZGUob2Zmc2V0LCBmZHRfcm9vdCwgMCkgew0KPiA+ PiArCQlpZiAoIWZkdF9ub2RlX2NoZWNrX2NvbXBhdGlibGUoZmR0X3Jvb3QsIG9mZnNldCwNCj4g Pj4gKwkJCQkJImludGVsLW1heDEwLHN5c3RlbS1tYW5hZ2VyIikpIHsNCj4gPj4gKwkJCXN5c21n cl9vZmZzZXQgPSBvZmZzZXQ7DQo+ID4+ICsJCQlicmVhazsNCj4gPj4gKwkJfQ0KPiA+PiArCX0N Cj4gPj4gKw0KPiA+PiArCW1heDEwX2NoZWNrX2NhcGFiaWxpdHkoZGV2KTsNCj4gPj4gKw0KPiA+ PiArCW1heDEwX3NlbnNvcl9pbml0KGRldiwgc3lzbWdyX29mZnNldCk7DQo+ID4+ICsNCj4gPj4g KwlyZXR1cm4gMDsNCj4gPj4gK30NCj4gPj4gKw0KPiA+PiArc3RhdGljIGludA0KPiA+PiArbWF4 MTBfbm9uX3NlY3VyZV9od19pbml0KHN0cnVjdCBpbnRlbF9tYXgxMF9kZXZpY2UgKmRldikgew0K PiA+PiArCW1heDEwX2NoZWNrX2NhcGFiaWxpdHkoZGV2KTsNCj4gPj4gKw0KPiA+PiArCW1heDEw X3NlbnNvcl9pbml0KGRldiwgMCk7DQo+ID4+ICsNCj4gPj4gKwlyZXR1cm4gMDsNCj4gPj4gK30N Cj4gPj4gKw0KPiA+PiAgc3RydWN0IGludGVsX21heDEwX2RldmljZSAqDQo+ID4+ICBpbnRlbF9t YXgxMF9kZXZpY2VfcHJvYmUoc3RydWN0IGFsdGVyYV9zcGlfZGV2aWNlICpzcGksDQo+ID4+ICAJ CWludCBjaGlwc2VsZWN0KQ0KPiA+PiBAQCAtNDkyLDMyICs1NzYsNDcgQEAgc3RydWN0IGludGVs X21heDEwX2RldmljZSAqDQo+ID4+ICAJLyogc2V0IHRoZSBtYXgxMCBkZXZpY2UgZmlyc3RseSAq Lw0KPiA+PiAgCWdfbWF4MTAgPSBkZXY7DQo+ID4+DQo+ID4+IC0JLyogaW5pdCB0aGUgTUFYMTAg ZGV2aWNlIHRhYmxlICovDQo+ID4+ICsJLyogY2hlY2sgdGhlIG1heDEwIHZlcnNpb24gKi8NCj4g Pj4gKwlyZXQgPSBjaGVja19tYXgxMF92ZXJzaW9uKGRldik7DQo+ID4+ICsJaWYgKHJldCkgew0K PiA+PiArCQlkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBmaW5kIG1heDEwIGhhcmR3YXJlIVxuIik7 DQo+ID4+ICsJCWdvdG8gZnJlZV9kZXY7DQo+ID4+ICsJfQ0KPiA+PiArDQo+ID4+ICsJLyogbG9h ZCB0aGUgTUFYMTAgZGV2aWNlIHRhYmxlICovDQo+ID4+ICAJcmV0ID0gaW5pdF9tYXgxMF9kZXZp Y2VfdGFibGUoZGV2KTsNCj4gPj4gIAlpZiAocmV0KSB7DQo+ID4+IC0JCWRldl9lcnIoZGV2LCAi aW5pdCBtYXgxMCBkZXZpY2UgdGFibGUgZmFpbFxuIik7DQo+ID4+ICsJCWRldl9lcnIoZGV2LCAi SW5pdCBtYXgxMCBkZXZpY2UgdGFibGUgZmFpbFxuIik7DQo+ID4+ICAJCWdvdG8gZnJlZV9kZXY7 DQo+ID4+ICAJfQ0KPiA+Pg0KPiA+PiAtCW1heDEwX2NoZWNrX2NhcGFiaWxpdHkoZGV2KTsNCj4g Pj4gKwkvKiBpbml0IG1heDEwIGRldmljZXMsIGxpa2Ugc2Vuc29yKi8NCj4gPj4gKwlpZiAoZGV2 LT5mbGFncyAmIE1BWDEwX0ZMQUdTX1NFQ1VSRSkNCj4gPj4gKwkJcmV0ID0gbWF4MTBfc2VjdXJl X2h3X2luaXQoZGV2KTsNCj4gPj4gKwllbHNlDQo+ID4+ICsJCXJldCA9IG1heDEwX25vbl9zZWN1 cmVfaHdfaW5pdChkZXYpOw0KPiA+PiArCWlmIChyZXQpIHsNCj4gPj4gKwkJZGV2X2VycihkZXYs ICJGYWlsZWQgdG8gaW5pdCBtYXgxMCBoYXJkd2FyZSFcbiIpOw0KPiA+PiArCQlnb3RvIGZyZWVf ZHRiOw0KPiA+PiArCX0NCj4gPj4NCj4gPj4gIAkvKiByZWFkIEZQR0EgbG9hZGluZyBpbmZvcm1h dGlvbiAqLw0KPiA+PiAtCXJldCA9IG1heDEwX3JlZ19yZWFkKEZQR0FfUEFHRV9JTkZPX09GRiwg JnZhbCk7DQo+ID4+ICsJcmV0ID0gbWF4MTBfc3lzX3JlYWQoRlBHQV9QQUdFX0lORk8sICZ2YWwp Ow0KPiA+PiAgCWlmIChyZXQpIHsNCj4gPj4gIAkJZGV2X2VycihkZXYsICJmYWlsIHRvIGdldCBG UEdBIGxvYWRpbmcgaW5mb1xuIik7DQo+ID4+IC0JCWdvdG8gc3BpX3RyYW5fZmFpbDsNCj4gPj4g KwkJZ290byByZWxlYXNlX21heDEwX2h3Ow0KPiA+PiAgCX0NCj4gPj4gIAlkZXZfaW5mbyhkZXYs ICJGUEdBIGxvYWRlZCBmcm9tICVzIEltYWdlXG4iLCB2YWwgPyAiVXNlciIgOg0KPiA+PiAiRmFj dG9yeSIpOw0KPiA+Pg0KPiA+PiAtDQo+ID4+IC0JbWF4MTBfc2Vuc29yX2luaXQoZGV2KTsNCj4g Pj4gLQ0KPiA+PiAgCXJldHVybiBkZXY7DQo+ID4+DQo+ID4+IC1zcGlfdHJhbl9mYWlsOg0KPiA+ PiArcmVsZWFzZV9tYXgxMF9odzoNCj4gPj4gKwltYXgxMF9zZW5zb3JfdWluaXQoKTsNCj4gPj4g K2ZyZWVfZHRiOg0KPiA+PiAgCWlmIChkZXYtPmZkdF9yb290KQ0KPiA+PiAgCQlvcGFlX2ZyZWUo ZGV2LT5mZHRfcm9vdCk7DQo+ID4+IC0Jc3BpX3RyYW5zYWN0aW9uX3JlbW92ZShkZXYtPnNwaV90 cmFuX2Rldik7DQo+ID4+ICsJaWYgKGRldi0+c3BpX3RyYW5fZGV2KQ0KPiA+PiArCQlzcGlfdHJh bnNhY3Rpb25fcmVtb3ZlKGRldi0+c3BpX3RyYW5fZGV2KTsNCj4gPj4gIGZyZWVfZGV2Og0KPiA+ PiAgCWdfbWF4MTAgPSBOVUxMOw0KPiA+PiAgCW9wYWVfZnJlZShkZXYpOw0KPiA+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9yYXcvaWZwZ2EvYmFzZS9vcGFlX2ludGVsX21heDEwLmgNCj4gPj4gYi9k cml2ZXJzL3Jhdy9pZnBnYS9iYXNlL29wYWVfaW50ZWxfbWF4MTAuaA0KPiA+PiBpbmRleCA5MGJm MDk4Li5lNjMyOTQxIDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL3Jhdy9pZnBnYS9iYXNlL29w YWVfaW50ZWxfbWF4MTAuaA0KPiA+PiArKysgYi9kcml2ZXJzL3Jhdy9pZnBnYS9iYXNlL29wYWVf aW50ZWxfbWF4MTAuaA0KPiA+PiBAQCAtMjMsNiArMjMsOCBAQCBzdHJ1Y3QgbWF4MTBfY29tcGF0 aWJsZV9pZCB7DQo+ID4+ICAjZGVmaW5lIE1BWDEwX0ZMQUdTX1NQSSAgICAgICAgICAgICAgICAg QklUKDMpDQo+ID4+ICAjZGVmaW5lIE1BWDEwX0ZMR0FTX05JT1NfU1BJICAgICAgICAgICAgQklU KDQpDQo+ID4+ICAjZGVmaW5lIE1BWDEwX0ZMQUdTX1BLVkwgICAgICAgICAgICAgICAgQklUKDUp DQo+ID4+ICsjZGVmaW5lIE1BWDEwX0ZMQUdTX1NFQ1VSRQkJQklUKDYpDQo+ID4+ICsjZGVmaW5l IE1BWDEwX0ZMQUdTX01BQ19DQUNIRQkJQklUKDcpDQo+ID4+DQo+ID4+ICBzdHJ1Y3QgaW50ZWxf bWF4MTBfZGV2aWNlIHsNCj4gPj4gIAl1bnNpZ25lZCBpbnQgZmxhZ3M7IC8qbWF4MTAgaGFyZHdh cmUgY2FwYWJpbGl0eSovIEBAIC0zMCw2ICszMiw3DQo+IEBADQo+ID4+IHN0cnVjdCBpbnRlbF9t YXgxMF9kZXZpY2Ugew0KPiA+PiAgCXN0cnVjdCBzcGlfdHJhbnNhY3Rpb25fZGV2ICpzcGlfdHJh bl9kZXY7DQo+ID4+ICAJc3RydWN0IG1heDEwX2NvbXBhdGlibGVfaWQgKmlkOyAvKm1heDEwIGNv bXBhdGlibGUqLw0KPiA+PiAgCWNoYXIgKmZkdF9yb290Ow0KPiA+PiArCXVuc2lnbmVkIGludCBi YXNlOyAvKiBtYXgxMCBiYXNlIGFkZHJlc3MgKi8NCj4gPj4gIH07DQo+ID4+DQo+ID4+ICAvKiBy ZXRpbWVyIHNwZWVkICovDQo+ID4+IEBAIC03NCwzMCArNzcsNjkgQEAgc3RydWN0IG9wYWVfcmV0 aW1lcl9zdGF0dXMgeyAgI2RlZmluZSBGTEFTSF9CQVNFDQo+ID4+IDB4MTAwMDAwMDAgICNkZWZp bmUgRkxBU0hfT1BUSU9OX0JJVFMgMHgxMDAwMA0KPiA+Pg0KPiA+PiAtI2RlZmluZSBOSU9TMl9G V19WRVJTSU9OX09GRiAgIDB4MzAwNDAwDQo+ID4+IC0jZGVmaW5lIFJTVV9SRUdfT0ZGICAgICAg ICAgICAgMHgzMDA0MmMNCj4gPj4gLSNkZWZpbmUgRlBHQV9SUF9MT0FECQlCSVQoMykNCj4gPj4g LSNkZWZpbmUgTklPUzJfUFJFUkVTRVQJCUJJVCg0KQ0KPiA+PiAtI2RlZmluZSBOSU9TMl9IQU5H CQlCSVQoNSkNCj4gPj4gLSNkZWZpbmUgUlNVX0VOQUJMRQkJQklUKDYpDQo+ID4+IC0jZGVmaW5l IE5JT1MyX1JFU0VUCQlCSVQoNykNCj4gPj4gLSNkZWZpbmUgTklPUzJfSTJDMl9QT0xMX1NUT1AJ QklUKDEzKQ0KPiA+PiAtI2RlZmluZSBGUEdBX1JFQ09ORl9SRUdfT0ZGCTB4MzAwNDMwDQo+ID4+ IC0jZGVmaW5lIENPVU5URE9XTl9TVEFSVAkJQklUKDE4KQ0KPiA+PiAtI2RlZmluZSBNQVgxMF9C VUlMRF9WRVJfT0ZGCTB4MzAwNDY4DQo+ID4+IC0jZGVmaW5lIFBDQl9JTkZPCQlHRU5NQVNLKDMx LCAyNCkNCj4gPj4gLSNkZWZpbmUgTUFYMTBfQlVJTERfVkVSSU9OCUdFTk1BU0soMjMsIDApDQo+ ID4+IC0jZGVmaW5lIEZQR0FfUEFHRV9JTkZPX09GRgkweDMwMDQ2Yw0KPiA+PiAtI2RlZmluZSBE VF9BVkFJTF9SRUdfT0ZGCTB4MzAwNDkwDQo+ID4+IC0jZGVmaW5lIERUX0FWQUlMCQlCSVQoMCkN Cj4gPj4gLSNkZWZpbmUgRFRfQkFTRV9BRERSX1JFR19PRkYJMHgzMDA0OTQNCj4gPj4gLSNkZWZp bmUgUEtWTF9QT0xMSU5HX0NUUkwgICAgICAgMHgzMDA0ODANCj4gPj4gLSNkZWZpbmUgUEtWTF9M SU5LX1NUQVRVUyAgICAgICAgMHgzMDA1NjQNCj4gPj4gKy8qIFN5c3RlbSBSZWdpc3RlcnMgKi8N Cj4gPj4gKyNkZWZpbmUgTUFYMTBfQkFTRV9BRERSCQkweDMwMDQwMA0KPiA+PiArI2RlZmluZSBN QVgxMF9TRUNfQkFTRV9BRERSCTB4MzAwODAwDQo+ID4+ICsvKiBSZWdpc3RlciBvZmZzZXQgb2Yg c3lzdGVtIHJlZ2lzdGVycyAqLw0KPiA+PiArI2RlZmluZSBOSU9TMl9GV19WRVJTSU9OCTB4MA0K PiA+PiArI2RlZmluZSBNQVgxMF9NQUNBRERSMQkJMHgxMA0KPiA+PiArI2RlZmluZSAgIE1BWDEw X01BQ19CWVRFNAlHRU5NQVNLKDcsIDApDQo+ID4+ICsjZGVmaW5lICAgTUFYMTBfTUFDX0JZVEUz CUdFTk1BU0soMTUsIDgpDQo+ID4+ICsjZGVmaW5lICAgTUFYMTBfTUFDX0JZVEUyCUdFTk1BU0so MjMsIDE2KQ0KPiA+PiArI2RlZmluZSAgIE1BWDEwX01BQ19CWVRFMQlHRU5NQVNLKDMxLCAyNCkN Cj4gPj4gKyNkZWZpbmUgTUFYMTBfTUFDQUREUjIJCTB4MTQNCj4gPj4gKyNkZWZpbmUgICBNQVgx MF9NQUNfQllURTYJR0VOTUFTSyg3LCAwKQ0KPiA+PiArI2RlZmluZSAgIE1BWDEwX01BQ19CWVRF NQlHRU5NQVNLKDE1LCA4KQ0KPiA+PiArI2RlZmluZSAgIE1BWDEwX01BQ19DT1VOVAlHRU5NQVNL KDIzLCAxNikNCj4gPj4gKyNkZWZpbmUgUlNVX1JFRwkJCTB4MmMNCj4gPj4gKyNkZWZpbmUgICBG UEdBX1JFQ09ORl9QQUdFCUdFTk1BU0soMiwgMCkNCj4gPj4gKyNkZWZpbmUgICBGUEdBX1JQX0xP QUQJCUJJVCgzKQ0KPiA+PiArI2RlZmluZSAgIE5JT1MyX1BSRVJFU0VUCUJJVCg0KQ0KPiA+PiAr I2RlZmluZSAgIE5JT1MyX0hBTkcJCUJJVCg1KQ0KPiA+PiArI2RlZmluZSAgIFJTVV9FTkFCTEUJ CUJJVCg2KQ0KPiA+PiArI2RlZmluZSAgIE5JT1MyX1JFU0VUCQlCSVQoNykNCj4gPj4gKyNkZWZp bmUgICBOSU9TMl9JMkMyX1BPTExfU1RPUAlCSVQoMTMpDQo+ID4+ICsjZGVmaW5lICAgUEtWTF9F RVBST01fTE9BRAlCSVQoMzEpDQo+ID4+ICsjZGVmaW5lIEZQR0FfUkVDT05GX1JFRwkJMHgzMA0K PiA+PiArI2RlZmluZSBNQVgxMF9URVNUX1JFRwkJMHgzYw0KPiA+PiArI2RlZmluZSAgIENPVU5U RE9XTl9TVEFSVAlCSVQoMTgpDQo+ID4+ICsjZGVmaW5lIE1BWDEwX0JVSUxEX1ZFUgkJMHg2OA0K PiA+PiArI2RlZmluZSAgIE1BWDEwX1ZFUlNJT05fTUFKT1IJR0VOTUFTSygyMywgMTYpDQo+ID4+ ICsjZGVmaW5lICAgUENCX0lORk8JCUdFTk1BU0soMzEsIDI0KQ0KPiA+PiArI2RlZmluZSBGUEdB X1BBR0VfSU5GTwkJMHg2Yw0KPiA+PiArI2RlZmluZSBEVF9BVkFJTF9SRUcJCTB4OTANCj4gPj4g KyNkZWZpbmUgICBEVF9BVkFJTAkJQklUKDApDQo+ID4+ICsjZGVmaW5lIERUX0JBU0VfQUREUl9S RUcJMHg5NA0KPiA+PiArI2RlZmluZSBNQVgxMF9ET09SQkVMTAkJMHg0MDANCj4gPj4gKyNkZWZp bmUgICBSU1VfUkVRVUVTVAkJQklUKDApDQo+ID4+ICsjZGVmaW5lICAgU0VDX1BST0dSRVNTCQlH RU5NQVNLKDcsIDQpDQo+ID4+ICsjZGVmaW5lICAgSE9TVF9TVEFUVVMJCUdFTk1BU0soMTEsIDgp DQo+ID4+ICsjZGVmaW5lICAgU0VDX1NUQVRVUwkJR0VOTUFTSygyMywgMTYpDQo+ID4+ICsNCj4g Pj4gKy8qIFBLVkwgcmVsYXRlZCByZWdpc3RlcnMsIGluIHN5c3RlbSByZWdpc3RlciByZWdpb24g Ki8NCj4gPj4gKyNkZWZpbmUgUEtWTF9QT0xMSU5HX0NUUkwJCTB4ODANCj4gPj4gKyNkZWZpbmUg ICBQT0xMSU5HX01PREUJCQlHRU5NQVNLKDE1LCAwKQ0KPiA+PiArI2RlZmluZSAgIFBLVkxfQV9Q UkVMT0FECQlCSVQoMTYpDQo+ID4+ICsjZGVmaW5lICAgUEtWTF9BX1BSRUxPQURfVElNRU9VVAlC SVQoMTcpDQo+ID4+ICsjZGVmaW5lICAgUEtWTF9BX0RBVEFfVE9PX0JJRwkJQklUKDE4KQ0KPiA+ PiArI2RlZmluZSAgIFBLVkxfQV9IRFJfQ0hFQ0tTVU0JCUJJVCgyMCkNCj4gPj4gKyNkZWZpbmUg ICBQS1ZMX0JfUFJFTE9BRAkJQklUKDI0KQ0KPiA+PiArI2RlZmluZSAgIFBLVkxfQl9QUkVMT0FE X1RJTUVPVVQJQklUKDI1KQ0KPiA+PiArI2RlZmluZSAgIFBLVkxfQl9EQVRBX1RPT19CSUcJCUJJ VCgyNikNCj4gPj4gKyNkZWZpbmUgICBQS1ZMX0JfSERSX0NIRUNLU1VNCQlCSVQoMjgpDQo+ID4+ ICsjZGVmaW5lICAgUEtWTF9FRVBST01fVVBHX1NUQVRVUwlHRU5NQVNLKDMxLCAxNikNCj4gPj4g KyNkZWZpbmUgUEtWTF9MSU5LX1NUQVRVUwkJMHgxNjQNCj4gPj4gKyNkZWZpbmUgUEtWTF9BX1ZF UlNJT04JCQkweDI1NA0KPiA+PiArI2RlZmluZSBQS1ZMX0JfVkVSU0lPTgkJCTB4MjU4DQo+ID4+ ICsjZGVmaW5lICAgU0VSREVTX1ZFUlNJT04JCUdFTk1BU0soMTUsIDApDQo+ID4+ICsjZGVmaW5l ICAgU0JVU19WRVJTSU9OCQkJR0VOTUFTSygzMSwgMTYpDQo+ID4+DQo+ID4+ICAjZGVmaW5lIERG VF9NQVhfU0laRQkJMHg3ZTAwMDANCj4gPj4NCj4gPj4gIGludCBtYXgxMF9yZWdfcmVhZCh1bnNp Z25lZCBpbnQgcmVnLCB1bnNpZ25lZCBpbnQgKnZhbCk7ICBpbnQNCj4gPj4gbWF4MTBfcmVnX3dy aXRlKHVuc2lnbmVkIGludCByZWcsIHVuc2lnbmVkIGludCB2YWwpOw0KPiA+PiAraW50IG1heDEw X3N5c19yZWFkKHVuc2lnbmVkIGludCBvZmZzZXQsIHVuc2lnbmVkIGludCAqdmFsKTsgaW50DQo+ ID4+ICttYXgxMF9zeXNfd3JpdGUodW5zaWduZWQgaW50IG9mZnNldCwgdW5zaWduZWQgaW50IHZh bCk7DQo+ID4+ICBzdHJ1Y3QgaW50ZWxfbWF4MTBfZGV2aWNlICoNCj4gPj4gIGludGVsX21heDEw X2RldmljZV9wcm9iZShzdHJ1Y3QgYWx0ZXJhX3NwaV9kZXZpY2UgKnNwaSwNCj4gPj4gIAkJaW50 IGNoaXBzZWxlY3QpOw0KPiA+PiAtLQ0KPiA+PiAxLjguMy4xDQo+ID4NCg0K