From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 12E8C2C17 for ; Thu, 7 Mar 2019 08:16:20 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Mar 2019 23:16:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,451,1544515200"; d="scan'208";a="152810572" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga001.fm.intel.com with ESMTP; 06 Mar 2019 23:16:19 -0800 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 6 Mar 2019 23:16:19 -0800 Received: from shsmsx105.ccr.corp.intel.com (10.239.4.158) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 6 Mar 2019 23:16:18 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.74]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.113]) with mapi id 14.03.0415.000; Thu, 7 Mar 2019 15:16:15 +0800 From: "Xu, Rosen" To: "Yigit, Ferruh" , "dev@dpdk.org" CC: "Zhang, Tianfei" , "Wei, Dan" , "Pei, Andy" , "Yang, Qiming" , "Wang, Haiyue" , "Chen, Santos" , "Zhang, Zhang" , Hemant Agrawal , Shreyansh Jain Thread-Topic: [PATCH v1 04/11] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev Thread-Index: AQHU1BiOHAwkOtkOR0GmWJ+jAtUnO6X/aQgw Date: Thu, 7 Mar 2019 07:16:14 +0000 Message-ID: <0E78D399C70DA940A335608C6ED296D73A5DA59A@SHSMSX104.ccr.corp.intel.com> References: <1551338000-120348-1-git-send-email-rosen.xu@intel.com> <1551338000-120348-5-git-send-email-rosen.xu@intel.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNmY3ZmI3NjQtNjk4My00NmZkLThkYjQtZWFmYTMzYjZhNjExIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoibzZJaHkrNmlNVzhCZ0NCbzlSVjEya1VxSlFuM1gxXC9OOGNHVFNCUGNvdDFNNVdibllrTnQ1WENrQlFrRk55TGsifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v1 04/11] drivers/raw/ifpga_rawdev: add IPN3KE support for IFPGA Rawdev 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: , X-List-Received-Date: Thu, 07 Mar 2019 07:16:21 -0000 SGksDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWWlnaXQsIEZlcnJ1 aA0KPiBTZW50OiBXZWRuZXNkYXksIE1hcmNoIDA2LCAyMDE5IDIwOjMxDQo+IFRvOiBYdSwgUm9z ZW4gPHJvc2VuLnh1QGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogWmhhbmcsIFRpYW5m ZWkgPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPjsgV2VpLCBEYW4NCj4gPGRhbi53ZWlAaW50ZWwu Y29tPjsgUGVpLCBBbmR5IDxhbmR5LnBlaUBpbnRlbC5jb20+OyBZYW5nLCBRaW1pbmcNCj4gPHFp bWluZy55YW5nQGludGVsLmNvbT47IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29t PjsgQ2hlbiwNCj4gU2FudG9zIDxzYW50b3MuY2hlbkBpbnRlbC5jb20+OyBaaGFuZywgWmhhbmcg PHpoYW5nLnpoYW5nQGludGVsLmNvbT47DQo+IEhlbWFudCBBZ3Jhd2FsIDxoZW1hbnQuYWdyYXdh bEBueHAuY29tPjsgU2hyZXlhbnNoIEphaW4NCj4gPHNocmV5YW5zaC5qYWluQG54cC5jb20+DQo+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjEgMDQvMTFdIGRyaXZlcnMvcmF3L2lmcGdhX3Jhd2Rldjog YWRkIElQTjNLRQ0KPiBzdXBwb3J0IGZvciBJRlBHQSBSYXdkZXYNCj4gDQo+IE9uIDIvMjgvMjAx OSA3OjEzIEFNLCBSb3NlbiBYdSB3cm90ZToNCj4gPiBBZGQgSW50ZWwgRlBHQSBBY2NlbGVyYXRp b24gTklDIElQTjNLRSBzdXBwb3J0IGZvciBJRlBHQSBSYXdkZXYuDQo+ID4NCj4gPiBTaWduZWQt b2ZmLWJ5OiBSb3NlbiBYdSA8cm9zZW4ueHVAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6 IFRpYW5mZWkgWmhhbmcgPHRpYW5mZWkuemhhbmdAaW50ZWwuY29tPg0KPiA+IFNpZ25lZC1vZmYt Ynk6IEFuZHkgUGVpIDxhbmR5LnBlaUBpbnRlbC5jb20+DQo+IDwuLi4+DQo+IA0KPiA+ICtzdGF0 aWMgaW50DQo+ID4gK2lmZ3BhX3Jhd2Rldl9nZXRfYXR0cihzdHJ1Y3QgcnRlX3Jhd2RldiAqZGV2 LA0KPiA+ICsJCSAgICAgY29uc3QgY2hhciAqYXR0cl9uYW1lLA0KPiA+ICsJCSAgICAgdWludDY0 X3QgKmF0dHJfdmFsdWUpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBpZnBnYV9yYXdkZXZfbWFjX2lu Zm8gKm1hY19pbmZvOw0KPiA+ICsJc3RydWN0IGlmcGdhX3Jhd2RldmdfcmV0aW1lcl9pbmZvICpy ZXRpbWVyX2luZm87DQo+ID4gKwlzdHJ1Y3Qgb3BhZV9yZXRpbWVyX2luZm8gb3JfaW5mbzsNCj4g PiArCXN0cnVjdCBvcGFlX2FkYXB0ZXIgKmFkYXB0ZXI7DQo+ID4gKwlzdHJ1Y3Qgb3BhZV9tYW5h Z2VyICptZ3I7DQo+ID4gKwlzdHJ1Y3QgaWZwZ2FfcmF3ZGV2Z19saW5rX2luZm8gKmxpbmZvOw0K PiA+ICsJc3RydWN0IG9wYWVfcmV0aW1lcl9zdGF0dXMgcnN0YXR1czsNCj4gPiArDQo+ID4gKwlJ RlBHQV9SQVdERVZfUE1EX0ZVTkNfVFJBQ0UoKTsNCj4gPiArDQo+ID4gKwlpZiAoIWRldiB8fCAh YXR0cl9uYW1lIHx8ICFhdHRyX3ZhbHVlKSB7DQo+ID4gKwkJSUZQR0FfQlVTX0VSUigiSW52YWxp ZCBhcmd1bWVudHMgZm9yIGdldHRpbmcgYXR0cmlidXRlcyIpOw0KPiA+ICsJCXJldHVybiAtMTsN Cj4gPiArCX0NCj4gPiArDQo+ID4gKwlhZGFwdGVyID0gaWZwZ2FfcmF3ZGV2X2dldF9wcml2KGRl dik7DQo+ID4gKwlpZiAoIWFkYXB0ZXIpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiAr CW1nciA9IG9wYWVfYWRhcHRlcl9nZXRfbWdyKGFkYXB0ZXIpOw0KPiA+ICsJaWYgKCFtZ3IpDQo+ ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCWlmICghc3RyY21wKGF0dHJfbmFtZSwgInJl dGltZXJfaW5mbyIpKSB7DQo+ID4gKwkJcmV0aW1lcl9pbmZvID0gKHN0cnVjdCBpZnBnYV9yYXdk ZXZnX3JldGltZXJfaW5mbw0KPiAqKWF0dHJfdmFsdWU7DQo+IA0KPiBIb3cgeW91IGFyZSB1c2lu ZyB0aGUgJ2dldF9hdHRyJyAmICdzZXRfYXR0cicgaXMgYSBsaXR0bGUgb2RkLg0KPiANCj4gSSB0 aGluayB0aGUgaW50ZW50aW9uIHdpdGggdGhlc2UgQVBJcyB0byBwcm92aWRlIGEgbWFwL2RpY3Rp b25hcnkgbGlrZSBkYXRhDQo+IHN0cnVjdHVyZSwgc2F2ZS9nZXQgJ2F0dHJfdmFsdWVzJyBieSAn YXR0cl9uYW1lJy4NCj4gDQo+IEhvdyB5b3UgYXJlIHVzaW5nIGlzLCBpbnN0ZWFkIG9mIGdldHRp bmcgJ2F0dHJfdmFsdWUnLCB5b3UgYXJlIHBhc3NpbmcgdmFsaWQNCj4gcG9pbnRlcnMgdmlhICdh dHRyX3ZhbHVlJyBhbmQgbWFrZSB0aGlzIGZ1bmN0aW9uIHRvIGZpbGwgdGhhdCBzdHJ1Y3QuIFdo eSB5b3UNCj4gZG9uJ3QgaGF2ZSBhIHNwZWNpZmljIGZ1bmN0aW9uIGZvciB0aGlzIHB1cnBvc2Ug aW5zdGVhZCBvZiB1c2luZyAnZ2V0X2F0dHInICYNCj4gJ3NldF9hdHRyJyBvcHM/IEkgYmVsaWV2 ZSB0aGlzIHdpbGwgYmUgc291cmNlIG9mIGNvbmZ1c2lvbiBpbiBsb25nIHRlcm0uDQo+IA0KDQpH b29kIHN1Z2dlc3Rpb25zLCBJIHdpbGwgbW9kaWZ5IGl0IGluIHYyIHBhdGNoIHNldC4NCg0KPiA+ ICsJCWlmIChvcGFlX21hbmFnZXJfZ2V0X3JldGltZXJfaW5mbyhtZ3IsICZvcl9pbmZvKSkNCj4g PiArCQkJcmV0dXJuIC0xOw0KPiA+ICsNCj4gPiArCQlyZXRpbWVyX2luZm8tPnJldGltZXJfbnVt ID0gb3JfaW5mby5udW1fcmV0aW1lcjsNCj4gPiArCQlyZXRpbWVyX2luZm8tPnBvcnRfbnVtID0g b3JfaW5mby5udW1fcG9ydDsNCj4gPiArCQlzd2l0Y2ggKG9yX2luZm8uc3VwcG9ydF9zcGVlZCkg ew0KPiA+ICsJCWNhc2UgTVhEXzEwR0I6DQo+ID4gKwkJCXJldGltZXJfaW5mby0+bWFjX3R5cGUg PQ0KPiA+ICsJCQlJRlBHQV9SQVdERVZfUkVUSU1FUl9NQUNfVFlQRV8xMEdFX1hGSTsNCj4gPiAr CQkJYnJlYWs7DQo+ID4gKwkJY2FzZSBNWERfMjVHQjoNCj4gPiArCQkJcmV0aW1lcl9pbmZvLT5t YWNfdHlwZSA9DQo+ID4gKwkJCUlGUEdBX1JBV0RFVl9SRVRJTUVSX01BQ19UWVBFXzI1R0VfMjVH QVVJOw0KPiA+ICsJCQlicmVhazsNCj4gPiArCQljYXNlIE1YRF80MEdCOg0KPiA+ICsJCQlyZXRp bWVyX2luZm8tPm1hY190eXBlID0NCj4gPiArCQkJSUZQR0FfUkFXREVWR19SRVRJTUVSX01BQ19U WVBFXzQwR0VfWExBVUk7DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCWNhc2UgTVhEXzEwMEdCOg0K PiA+ICsJCQlyZXRpbWVyX2luZm8tPm1hY190eXBlID0NCj4gPiArCQkJSUZQR0FfUkFXREVWX1JF VElNRVJfTUFDX1RZUEVfMTAwR0VfQ0FVSTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJZGVmYXVs dDoNCj4gPiArCQkJcmV0aW1lcl9pbmZvLT5tYWNfdHlwZSA9DQo+ID4gKwkJCUlGUEdBX1JBV0RF Vl9SRVRJTUVSX01BQ19UWVBFX1VOS05PV047DQo+ID4gKwkJCWJyZWFrOw0KPiA+ICsJCX0NCj4g PiArCQlyZXR1cm4gMDsNCj4gPiArCX0gZWxzZSBpZiAoIXN0cmNtcChhdHRyX25hbWUsICJkZWZh dWx0X21hYyIpKSB7DQo+ID4gKwkJLyogbm90IGltcGxlbWVudCBieSBNQVggKi8NCj4gPiArCQlt YWNfaW5mbyA9IChzdHJ1Y3QgaWZwZ2FfcmF3ZGV2X21hY19pbmZvICopYXR0cl92YWx1ZTsNCj4g PiArCQltYWNfaW5mby0+YWRkci5hZGRyX2J5dGVzWzBdID0gMDsNCj4gPiArCQltYWNfaW5mby0+ YWRkci5hZGRyX2J5dGVzWzFdID0gMDsNCj4gPiArCQltYWNfaW5mby0+YWRkci5hZGRyX2J5dGVz WzJdID0gMDsNCj4gPiArCQltYWNfaW5mby0+YWRkci5hZGRyX2J5dGVzWzNdID0gMDsNCj4gPiAr CQltYWNfaW5mby0+YWRkci5hZGRyX2J5dGVzWzRdID0gMDsNCj4gPiArCQltYWNfaW5mby0+YWRk ci5hZGRyX2J5dGVzWzVdID0gMHhBICsgbWFjX2luZm8tPnBvcnRfaWQ7DQo+ID4gKw0KPiA+ICsJ CXJldHVybiAwOw0KPiA+ICsJfSBlbHNlIGlmICghc3RyY21wKGF0dHJfbmFtZSwgInJldGltZXJf bGlua3N0YXR1cyIpKSB7DQo+ID4gKwkJbGluZm8gPSAoc3RydWN0IGlmcGdhX3Jhd2RldmdfbGlu a19pbmZvICopYXR0cl92YWx1ZTsNCj4gPiArCQlsaW5mby0+bGlua191cCA9IDA7DQo+ID4gKwkJ bGluZm8tPmxpbmtfc3BlZWQgPSBJRlBHQV9SQVdERVZfTElOS19TUEVFRF9VTktOT1dOOw0KPiA+ ICsNCj4gPiArCQlpZiAob3BhZV9tYW5hZ2VyX2dldF9yZXRpbWVyX3N0YXR1cyhtZ3IsIGxpbmZv LT5wb3J0LA0KPiAmcnN0YXR1cykpDQo+ID4gKwkJCXJldHVybiAtMTsNCj4gPiArDQo+ID4gKwkJ bGluZm8tPmxpbmtfdXAgPSByc3RhdHVzLmxpbmVfbGluazsNCj4gPiArCQlzd2l0Y2ggKHJzdGF0 dXMuc3BlZWQpIHsNCj4gPiArCQljYXNlIE1YRF8xMEdCOg0KPiA+ICsJCQlsaW5mby0+bGlua19z cGVlZCA9DQo+ID4gKwkJCQlJRlBHQV9SQVdERVZfTElOS19TUEVFRF8xMEdCOw0KPiA+ICsJCQli cmVhazsNCj4gPiArCQljYXNlIE1YRF8yNUdCOg0KPiA+ICsJCQlsaW5mby0+bGlua19zcGVlZCA9 DQo+ID4gKwkJCQlJRlBHQV9SQVdERVZfTElOS19TUEVFRF8yNUdCOw0KPiA+ICsJCQlicmVhazsN Cj4gPiArCQljYXNlIE1YRF80MEdCOg0KPiA+ICsJCQlsaW5mby0+bGlua19zcGVlZCA9DQo+ID4g KwkJCQlJRlBHQV9SQVdERVZfTElOS19TUEVFRF80MEdCOw0KPiA+ICsJCQlicmVhazsNCj4gPiAr CQlkZWZhdWx0Og0KPiA+ICsJCQlsaW5mby0+bGlua19zcGVlZCA9DQo+ID4gKwkJCQlJRlBHQV9S QVdERVZfTElOS19TUEVFRF9VTktOT1dOOw0KPiA+ICsJCQlicmVhazsNCj4gPiArCQl9DQo+ID4g Kw0KPiA+ICsJCXJldHVybiAwOw0KPiA+ICsJfSBlbHNlDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ ICsNCj4gPiArCS8qIEF0dHJpYnV0ZSBub3QgZm91bmQgKi8NCj4gPiArCXJldHVybiAtMTsNCj4g PiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBpZmdwYV9yYXdkZXZfc2V0X2F0dHIoc3RydWN0 IHJ0ZV9yYXdkZXYgKmRldiwNCj4gPiArCQkJCSAgICAgY29uc3QgY2hhciAqYXR0cl9uYW1lLA0K PiA+ICsJCQkJICAgICBjb25zdCB1aW50NjRfdCBhdHRyX3ZhbHVlKQ0KPiA+ICt7DQo+ID4gKwlz dHJ1Y3Qgb3BhZV9hZGFwdGVyICphZGFwdGVyOw0KPiA+ICsJc3RydWN0IG9wYWVfbWFuYWdlciAq bWdyOw0KPiA+ICsJLypzdHJ1Y3QgaWZwZ2FfcmF3ZGV2Z19saW5rX2luZm8gKmxpbmZvOyovDQo+ ID4gKwkvKnN0cnVjdCBvcGFlX3JldGltZXJfc3RhdHVzIHJzdGF0dXM7Ki8NCj4gDQo+IFBsZWFz ZSByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlLg0KDQpBcHBsaWVkLg0KDQo+ID4gKw0KPiA+ICsJ SUZQR0FfUkFXREVWX1BNRF9GVU5DX1RSQUNFKCk7DQo+ID4gKw0KPiA+ICsJaWYgKCFkZXYgfHwg IWF0dHJfbmFtZSkgew0KPiA+ICsJCUlGUEdBX0JVU19FUlIoIkludmFsaWQgYXJndW1lbnRzIGZv ciBzZXR0aW5nIGF0dHJpYnV0ZXMiKTsNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKwl9DQo+ID4g Kw0KPiA+ICsJYWRhcHRlciA9IGlmcGdhX3Jhd2Rldl9nZXRfcHJpdihkZXYpOw0KPiA+ICsJaWYg KCFhZGFwdGVyKQ0KPiA+ICsJCXJldHVybiAtMTsNCj4gPiArDQo+ID4gKwltZ3IgPSBvcGFlX2Fk YXB0ZXJfZ2V0X21ncihhZGFwdGVyKTsNCj4gPiArCWlmICghbWdyKQ0KPiA+ICsJCXJldHVybiAt MTsNCj4gDQo+IG5vdGhpbmcgZG9uZSB3aXRoICdhZGFwdGVyJyAmICdtZ3InID8gV2h5IGdldHRp bmcgdGhlbT8NCg0KQ3VycmVudGx5IHdlIGFyZSBub3QgdXNpbmcgc2V0X2F0dHIsIEkgd2lsbCBy ZW1vdmUgaXQuDQoNCj4gPiArDQo+ID4gKwlpZiAoIXN0cmNtcChhdHRyX25hbWUsICJyZXRpbWVy X2xpbmtzdGF0dXMiKSkNCj4gPiArCQlwcmludGYoImlmZ3BhX3Jhd2Rldl9zZXRfYXR0cl9mdW5j ICVseFxuIiwgYXR0cl92YWx1ZSk7DQo+IA0KPiAlbHggdXNhZ2UgaXMgd3JvbmcgZm9yIDMyYml0 cywgaXQgaXMgZ2l2aW5nIGEgYnVpbGQgd2FybmluZyBbMV0sIGFsc28gcGxlYXNlIGRvbid0DQo+ IHVzZSAncHJpbnRmJyBmb3IgbG9nZ2luZy4NCkZpeGVkIGluIHYyIHBhdGNoLg0KPiBBbmQgd2h5 IHRoZXJlIGlzIGEgc3BlY2lmaWMgY2hlY2sgZm9yIGEgdmFsdWUgYW5kIGxvZywgaW4gYSBnZW5l cmljIGZ1bmN0aW9uIGxpa2UNCj4gc2V0X2F0dHI/DQoNCkN1cnJlbnRseSB3ZSBhcmUgbm90IHVz aW5nIHNldF9hdHRyLCBJIHdpbGwgcmVtb3ZlIGl0Lg0KDQo+IFsxXQ0KPiAuLi4vZHJpdmVycy9y YXcvaWZwZ2FfcmF3ZGV2L2lmcGdhX3Jhd2Rldi5jOiBJbiBmdW5jdGlvbg0KPiDigJhpZmdwYV9y YXdkZXZfc2V0X2F0dHLigJk6DQo+IC4uLi9kcml2ZXJzL3Jhdy9pZnBnYV9yYXdkZXYvaWZwZ2Ff cmF3ZGV2LmM6NDY1OjQwOiBlcnJvcjogZm9ybWF0IOKAmCVseOKAmQ0KPiBleHBlY3RzIGFyZ3Vt ZW50IG9mIHR5cGUg4oCYbG9uZyB1bnNpZ25lZCBpbnTigJksIGJ1dCBhcmd1bWVudCAyIGhhcyB0 eXBlDQo+IOKAmHVpbnQ2NF904oCZIHtha2Eg4oCYY29uc3QgbG9uZyBsb25nIHVuc2lnbmVkIGlu dOKAmX0gWy1XZSQgcm9yPWZvcm1hdD1dDQo+ICAgIHByaW50ZigiaWZncGFfcmF3ZGV2X3NldF9h dHRyX2Z1bmMgJWx4XG4iLCBhdHRyX3ZhbHVlKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB+fl4gICAgIH5+fn5+fn5+fn4NCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAlbGx4DQoNCkl0J3MganVzdCBmb3IgZGVidWcuDQpDdXJyZW50bHkg d2UgYXJlIG5vdCB1c2luZyBzZXRfYXR0ciwgSSB3aWxsIHJlbW92ZSBpdC4NCg0KPiA+ICsNCj4g PiArCXJldHVybiAtMTsNCj4gDQo+IFdpbGwgZnVuY3Rpb24gYWx3YXlzIGZhaWw/DQo+IEFuZCBh cmUgeW91IGF3YXJlIHRoZSB5b3UgZGlkIG5vdCBzZXQgYW55dGhpbmcgaW4gdGhpcyBmdW5jdGlv bj8gSnVzdCBpZ25vcmVkDQo+IHRoZSAnYXR0cl92YWx1ZSc/DQo+IA0KPiA8Li4uPg0KDQpDdXJy ZW50bHkgd2UgYXJlIG5vdCB1c2luZyBzZXRfYXR0ciwgSSB3aWxsIHJlbW92ZSBpdC4NCg0KPiA+ IEBAIC00MTksNyArNTU5LDcgQEANCj4gPg0KPiA+ICAJcmF3ZGV2LT5kZXZfb3BzID0gJmlmcGdh X3Jhd2Rldl9vcHM7DQo+ID4gIAlyYXdkZXYtPmRldmljZSA9ICZwY2lfZGV2LT5kZXZpY2U7DQo+ ID4gLQlyYXdkZXYtPmRyaXZlcl9uYW1lID0gcGNpX2Rldi0+ZGV2aWNlLmRyaXZlci0+bmFtZTsN Cj4gPiArCXJhd2Rldi0+ZHJpdmVyX25hbWUgPSBwY2lfZGV2LT5kcml2ZXItPmRyaXZlci5uYW1l Ow0KPiANCj4gVGhleSBhcmUgYm90aCBzYW1lIHJpZ2h0Pw0KWWVzLCB0aGV5IGFyZSBzYW1lLg0K DQo+IDwuLi4+DQo+IA0KPiA+ICsNCj4gPiArI2luY2x1ZGUgPHJ0ZV9ldGhlci5oPg0KPiA+ICsN Cj4gPiArI2lmbmRlZiBFVEhfQUxFTg0KPiA+ICsjZGVmaW5lIEVUSF9BTEVOCTYNCj4gPiArI2Vu ZGlmDQo+IA0KPiBZb3UgY2FuIHVzZSAiRVRIRVJfQUREUl9MRU4iIGluc3RlYWQsIGl0IGlzIGRl ZmluZWQgaW4gYWJvdmUgaW5jbHVkZWQNCj4gJ3J0ZV9ldGhlci5oJyBoZWFkZXIuDQoNClRoYW5r cywgSSB3aWxsIHJlcGxhY2UgIiBFVEhfQUxFTiAiIHdpdGggIkVUSEVSX0FERFJfTEVOIi4NCg==