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 CAB87A00BE; Tue, 29 Oct 2019 06:56:33 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EB599322C; Tue, 29 Oct 2019 06:56:32 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id E70B01BEF0 for ; Tue, 29 Oct 2019 06:56:30 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Oct 2019 22:56:30 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,242,1569308400"; d="scan'208";a="401041670" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by fmsmga006.fm.intel.com with ESMTP; 28 Oct 2019 22:56:30 -0700 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 28 Oct 2019 22:56:29 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 28 Oct 2019 22:56:29 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.108]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.213]) with mapi id 14.03.0439.000; Tue, 29 Oct 2019 13:56:27 +0800 From: "Wang, Haiyue" To: Jerin Jacob CC: Thomas Monjalon , "Yigit, Ferruh" , dpdk-dev , "Ye, Xiaolong" , "Kinsella, Ray" , "Iremonger, Bernard" , "Sun, Chenmin" , Andrew Rybchenko , "Slava Ovsiienko" , Stephen Hemminger , David Marchand , Jerin Jacob Thread-Topic: [dpdk-dev] [PATCH v4 1/4] ethdev: add the API for getting burst mode information Thread-Index: AQHVgy4vnIA7MA5UA0Sl3pLNFwDOY6dqovQAgABMCACAABr4gIAABOkAgABrZQCAAI7MAIAAsVSwgAPNloCAAJdSMP//hTIAgACJQAD//35gAIAAiCOA Date: Tue, 29 Oct 2019 05:56:27 +0000 Message-ID: References: <20191015075133.38560-1-haiyue.wang@intel.com> <1811898.7XjjD7ZjLQ@xps> <12001140.UMXFOKstgs@xps> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMzFkY2FmMTItYTFiZi00YTU2LWJlN2YtYmQyZTQ3NzM5YjU2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZ2h2UVo0TFpsem1ZN3pnaFo1NldmY3JpK1VVc2pRK1VKVElzMVVSQUVpeXRwaVVkeHp0NG92Y3Vud0ZuQTM2aiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 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 v4 1/4] ethdev: add the API for getting burst mode information 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKZXJpbiBKYWNvYiA8amVyaW5q YWNvYmtAZ21haWwuY29tPg0KPiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI5LCAyMDE5IDEzOjQ3 DQo+IFRvOiBXYW5nLCBIYWl5dWUgPGhhaXl1ZS53YW5nQGludGVsLmNvbT4NCj4gQ2M6IFRob21h cyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IFlpZ2l0LCBGZXJydWggPGZlcnJ1aC55 aWdpdEBpbnRlbC5jb20+OyBkcGRrLWRldg0KPiA8ZGV2QGRwZGsub3JnPjsgWWUsIFhpYW9sb25n IDx4aWFvbG9uZy55ZUBpbnRlbC5jb20+OyBLaW5zZWxsYSwgUmF5IDxyYXkua2luc2VsbGFAaW50 ZWwuY29tPjsNCj4gSXJlbW9uZ2VyLCBCZXJuYXJkIDxiZXJuYXJkLmlyZW1vbmdlckBpbnRlbC5j b20+OyBTdW4sIENoZW5taW4gPGNoZW5taW4uc3VuQGludGVsLmNvbT47IEFuZHJldw0KPiBSeWJj aGVua28gPGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb20+OyBTbGF2YSBPdnNpaWVua28gPHZpYWNo ZXNsYXZvQG1lbGxhbm94LmNvbT47IFN0ZXBoZW4gSGVtbWluZ2VyDQo+IDxzdGVwaGVuQG5ldHdv cmtwbHVtYmVyLm9yZz47IERhdmlkIE1hcmNoYW5kIDxkYXZpZC5tYXJjaGFuZEByZWRoYXQuY29t PjsgSmVyaW4gSmFjb2INCj4gPGplcmluakBtYXJ2ZWxsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtk cGRrLWRldl0gW1BBVENIIHY0IDEvNF0gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0dGluZyBi dXJzdCBtb2RlIGluZm9ybWF0aW9uDQo+IA0KPiBPbiBUdWUsIE9jdCAyOSwgMjAxOSBhdCAxMTox MiBBTSBXYW5nLCBIYWl5dWUgPGhhaXl1ZS53YW5nQGludGVsLmNvbT4gd3JvdGU6DQo+ID4NCj4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBKZXJpbiBKYWNvYiA8 amVyaW5qYWNvYmtAZ21haWwuY29tPg0KPiA+ID4gU2VudDogVHVlc2RheSwgT2N0b2JlciAyOSwg MjAxOSAxMzoyMA0KPiA+ID4gVG86IFdhbmcsIEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29t Pg0KPiA+ID4gQ2M6IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldD47IFlpZ2l0 LCBGZXJydWggPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+OyBkcGRrLWRldg0KPiA+ID4gPGRldkBk cGRrLm9yZz47IFllLCBYaWFvbG9uZyA8eGlhb2xvbmcueWVAaW50ZWwuY29tPjsgS2luc2VsbGEs IFJheSA8cmF5LmtpbnNlbGxhQGludGVsLmNvbT47DQo+ID4gPiBJcmVtb25nZXIsIEJlcm5hcmQg PGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbT47IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5A aW50ZWwuY29tPjsgQW5kcmV3DQo+ID4gPiBSeWJjaGVua28gPGFyeWJjaGVua29Ac29sYXJmbGFy ZS5jb20+OyBTbGF2YSBPdnNpaWVua28gPHZpYWNoZXNsYXZvQG1lbGxhbm94LmNvbT47IFN0ZXBo ZW4NCj4gSGVtbWluZ2VyDQo+ID4gPiA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+OyBEYXZp ZCBNYXJjaGFuZCA8ZGF2aWQubWFyY2hhbmRAcmVkaGF0LmNvbT47IEplcmluIEphY29iDQo+ID4g PiA8amVyaW5qQG1hcnZlbGwuY29tPg0KPiA+ID4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BB VENIIHY0IDEvNF0gZXRoZGV2OiBhZGQgdGhlIEFQSSBmb3IgZ2V0dGluZyBidXJzdCBtb2RlIGlu Zm9ybWF0aW9uDQo+ID4gPg0KPiA+ID4gT24gVHVlLCBPY3QgMjksIDIwMTkgYXQgMTA6MTQgQU0g V2FuZywgSGFpeXVlIDxoYWl5dWUud2FuZ0BpbnRlbC5jb20+IHdyb3RlOg0KPiA+ID4gPg0KPiA+ ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogSmVyaW4g SmFjb2IgPGplcmluamFjb2JrQGdtYWlsLmNvbT4NCj4gPiA+ID4gPiBTZW50OiBUdWVzZGF5LCBP Y3RvYmVyIDI5LCAyMDE5IDExOjM4DQo+ID4gPiA+ID4gVG86IFdhbmcsIEhhaXl1ZSA8aGFpeXVl LndhbmdAaW50ZWwuY29tPg0KPiA+ID4gPiA+IENjOiBUaG9tYXMgTW9uamFsb24gPHRob21hc0Bt b25qYWxvbi5uZXQ+OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgZHBk ay1kZXYNCj4gPiA+ID4gPiA8ZGV2QGRwZGsub3JnPjsgWWUsIFhpYW9sb25nIDx4aWFvbG9uZy55 ZUBpbnRlbC5jb20+OyBLaW5zZWxsYSwgUmF5IDxyYXkua2luc2VsbGFAaW50ZWwuY29tPjsNCj4g PiA+ID4gPiBJcmVtb25nZXIsIEJlcm5hcmQgPGJlcm5hcmQuaXJlbW9uZ2VyQGludGVsLmNvbT47 IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPjsgQW5kcmV3DQo+ID4gPiA+ID4g UnliY2hlbmtvIDxhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29tPjsgU2xhdmEgT3ZzaWllbmtvIDx2 aWFjaGVzbGF2b0BtZWxsYW5veC5jb20+OyBTdGVwaGVuDQo+ID4gPiBIZW1taW5nZXINCj4gPiA+ ID4gPiA8c3RlcGhlbkBuZXR3b3JrcGx1bWJlci5vcmc+OyBEYXZpZCBNYXJjaGFuZCA8ZGF2aWQu bWFyY2hhbmRAcmVkaGF0LmNvbT47IEplcmluIEphY29iDQo+ID4gPiA+ID4gPGplcmluakBtYXJ2 ZWxsLmNvbT4NCj4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjQgMS80 XSBldGhkZXY6IGFkZCB0aGUgQVBJIGZvciBnZXR0aW5nIGJ1cnN0IG1vZGUgaW5mb3JtYXRpb24N Cj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gc3RydWN0IHJ0ZV9ldGhfYnVyc3RfbW9kZSB7 DQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgIHVpbnQ2NF90IG9wdGlvbnM7DQo+ID4gPiA+ID4g PiA+ID4gPiAgICAgICAgIGNoYXIgZGV2X3NwZWNpZmljWzEyOF07IC8qIFBNRCBoYXMgc3BlY2lm aWMgYnVyc3QgbW9kZSBpbmZvcm1hdGlvbiAqLw0KPiA+ID4gPiA+ID4gPiA+ID4gfTsNCj4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgcmVhbGx5IGRvbid0IHNlZSBob3cgd2UgY2Fu IGhhdmUgZ2VuZXJpYyBmbGFncy4NCj4gPiA+ID4gPiA+ID4gPiBUaGUgZmxhZ3Mgd2hpY2ggYXJl IHByb3Bvc2VkIGFyZSBqdXN0IG1hdGNoaW5nDQo+ID4gPiA+ID4gPiA+ID4gdGhlIGZ1bmN0aW9u cyBpbXBsZW1lbnRlZCBpbiBJbnRlbCBQTURzLg0KPiA+ID4gPiA+ID4gPiA+IEFuZCB0aGlzIGlz IGEgY29tcGxpY2F0ZSBzb2x1dGlvbi4NCj4gPiA+ID4gPiA+ID4gPiBXaHkgbm90IGp1c3QgcmV0 dXJuaW5nIGEgbmFtZSBmb3IgdGhlIHNlbGVjdGVkIFJ4L1R4IG1vZGU/DQo+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ICsxIG9ubHkgZm9yIHRoZSBuYW1lDQo+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+IExldCBtZSBjbGFyaWZ5IG15IGVhcmxpZXIgcHJvcG9zYWw6DQo+ID4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiA+IDEpIFRoZSBwdWJsaWMgZXRoZGV2IEFQSSBzaG91bGQgcmV0dXJu IG9ubHkgInN0cmluZyIgaS5lIHRoZSBmbGFncw0KPiA+ID4gPiA+ID4gPiBTSE9VTEQgTk9UIGJl IGV4cG9zZWQgYXMgZXRoZGV2IEFQSQ0KPiA+ID4gPiA+ID4gPiBpLmUNCj4gPiA+ID4gPiA+ID4g aW50IHJ0ZV9ldGhfdHhfYnVyc3RfbW9kZV9uYW1lKHVpbnQxNl90IHBvcnRfaWQsIHVpbnQxNl90 IHF1ZXVlX2lkLCBjaGFyICpuYW1lKTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gMikg VGhlIFBNRCBpbnRlcmZhY2UgIHRvIHRoZSBjb21tb24gY29kZSBjYW4gYmUgZm9sbG93aW5nDQo+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ICBzdHJ1Y3QgZXRoX3BtZF9idXJzdF9tb2RlIHsN Cj4gPiA+ID4gPiA+ID4gICAgICAgICB1aW50NjRfdCBvcHRpb25zOw0KPiA+ID4gPiA+ID4gPiAg ICAgICAgICBjaGFyIG5hbWVbMTI4XTsgLyogUE1EIHNwZWNpZmljIGJ1cnN0IG1vZGUgaW5mb3Jt YXRpb24gKi8NCj4gPiA+ID4gPiA+ID4gfTsNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g dHlwZWRlZiBpbnQgKCpldGhfYnVyc3RfbW9kZV9nZXRfdCkoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsDQo+ID4gPiA+ID4gPiA+ICAgICAgICAgdWludDE2X3QgcXVldWVfaWQsIHN0cnVjdCBldGhf YnVyc3RfbW9kZSAqbW9kZSkNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gMykgVGhlIGlt cGxlbWVudGF0aW9uIG9mIHJ0ZV9ldGhfdHhfYnVyc3RfbW9kZV9uYW1lKCkgc2hhbGwgZG8gb3B0 b25zDQo+ID4gPiA+ID4gPiA+IGZsYWcgdG8gc3RyaW5nIGNvbnZlcmlvbihhZ2FpbiBpbnRlcm5h bCB0byBjb21tb24gY29kZSBpbXBsZW1ldGF0aW9uKQ0KPiA+ID4gPiA+ID4gPiBhbmQgY29uY2F0 ZW5hdGUgd2l0aCBldGhfcG1kX2J1cnN0X21vZGU6Om5hbWUNCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gVGhpcyB3b3VsZCBoZWxwIHRvIHJldXNlIHNvbWUgb2YgdGhlIGZsYWdzIHRvIG5h bWUgY29udmVyc2lvbiBsb2dpYw0KPiA+ID4gPiA+ID4gPiBhY3Jvc3MgYWxsIFBNRHMuDQo+ID4g PiA+ID4gPiA+IEFuZCBQTUQgYXJlIGZyZWUgdG8gcmV0dXJuICBldGhfcG1kX2J1cnN0X21vZGU6 Om9wdGlvbnMgYXMgemVybyBpbg0KPiA+ID4gPiA+ID4gPiB0aGF0IGNhc2UgZmluYWwNCj4gPiA+ ID4gPiA+ID4gc3RyaW5nIG9ubHkgYmUgZXRoX3BtZF9idXJzdF9tb2RlOjpuYW1lLg0KPiA+ID4g PiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEluIGZhY3QsICdydGVfZXRoX2J1cnN0 X21vZGVfb3B0aW9uX25hbWUnIGZvciBzaW5nbGUgb3B0aW9uLCBub3QNCj4gPiA+ID4gPiA+IGZv ciBzdHJ1Y3QgZXRoX3BtZF9idXJzdF9tb2RlOjpvcHRpb25bc10uIE5lZWQgbG9vcCB0byBkaXNw bGF5IHRoZW0uDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJIHNlZSB0d28gaXNzdWVzIHdpdGggdGhl IGZsYWcgYXBwcm9hY2ggaW4gcHVibGljIEFQSShJbnRlcm5hbGx5IGZvcg0KPiA+ID4gPiA+IGNv bW1vbiBjb2RlIGl0IGZpbmUgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbikNCj4gPiA+ID4gPg0K PiA+ID4gPiA+IDEpIFdlIGNhbiBub3Qgc3RhbmRhcmRpemUgYWxsIGZsYWdzIHdoZW4gaXQgY29t ZXMgdG8gSFcgc3BlY2lmaWMNCj4gPiA+ID4gPiBkZXRhaWxzLiBXZSBzaG91bGQgTk9UIHBvbGx1 dGUgcHVibGljIEFQSSB3aXRoIEhXIHNwZWNpZmljIGRldGFpbHMuDQo+ID4gPiA+DQo+ID4gPiA+ IEN1cnJlbnRseSwgbm8gZGV0YWlsIHRvIEhXIE5JQyBzcGVjaWZpYy4NCj4gPiA+DQo+ID4gPiBZ ZXMuIFdoYXQgaWYgSSB3YW50IHRvIGFkZCBhICJTdHJpbmciIHRoZXkgcmVwcmVzZW50IGEgc3Bl Y2lmaWMgbW9kZSBvZiBQTUQsDQo+ID4gPiBzbyB0aGF0IEkga25vdyB3aGF0IG1vZGUgUE1EIHJl YWxseSBydW5zLg0KPiA+ID4gSXQgaXMgbm90IHdvcnRoIGFkZGluZyBhIGZsYWcgZm9yIHRoYXQg aW4gcHVibGljIEFQSSBmb3IgSFcgc3BlY2lmaWMgbm90aW9uLg0KPiA+ID4gVGhhdCdzIHRoZSBw cm9ibGVtLg0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPiAyKSBUaGVyZSBpcyBhIGRhbmdlciBp ZiBhcHBsaWNhdGlvbiBzdGFydHMgdGFraW5nIGFueSBhY3Rpb24gYmFzZWQgb24NCj4gPiA+ID4g PiBmbGFncy4gSXQgc2hvdWxkIGJlIG9ubHkgZm9yIGRpc3BsYXkgcHVycG9zZSBzbyBpbiB0aGF0 IGNhc2UgcHVibGljDQo+ID4gPiA+ID4gQVBJIHNob3VsZCBiZSB0aGUgc3RyaW5nIHRvIGF2b2lk IG1pc3VzZSBvZiB0aGUgQVBJKGV2ZW50dWFsbHkgdGhlIGFwcA0KPiA+ID4gPiA+IHdpbGwgZmFp bCBvbiBzb21lIFBNRA0KPiA+ID4gPiA+IGlmIGl0IHRha2VzIGFueSBhY3Rpb24gYmFzZWQgb24g dGhlIGZsYWcpDQo+ID4gPiA+DQo+ID4gPiA+IFRoZXNlIGZsYWdzIGFyZSAqcmVhZCBvbmx5KiBm b3IgaW5mb3JtYXRpb24uIENhbid0IGltYWdlIGhvdyB0byBoYWNrIERQREsuIDstKQ0KPiA+ID4N Cj4gPiA+IFRvIGNsYXJpZnk6DQo+ID4gPiBJZiB3ZSBleHBvc2UgZmxhZyBzYXkgUlRFX0VUSF9C VVJTVF9TSU1QTEUgdGhlbiB0aGUgYXBwbGljYXRpb24gY2FuIHRha2UNCj4gPiA+IHNvbWUgYWN0 aW9uIGJhc2VkIG9uDQo+ID4gPiBpZiAoZmxhZyA9PSBSVEVfRVRIX0JVUlNUX1NJTVBMRSkNCj4g PiA+ICAgICBkb19zb21lX3RoaW5nKCk7DQo+ID4gPg0KPiA+ID4gSWYgdGhlIHB1cnBvc2UgaXMg T05MWSBmb3IgImRpc3BsYXkiIGFzIGluZm8gdGhlbiBleHBvc2luZyBhcyB0aGUgc3RyaW5nIHdp bGwNCj4gPiA+IGVuYWJsZSB0byBOT1Qgc3RhbmRhcmRpemUgaS5lIGFwcGxpY2F0aW9uIGNhbiBu ZXZlciBjaGVjayBiYXNlZCBvbg0KPiA+ID4gdGhlIHN0cmluZyBuYW1lKGFzIGl0IGlzIG5vdCBz dGFuZGFyZGl6ZWQpIGhlbmNlIG5vIGRhbmdlci4NCj4gPiA+DQo+ID4gPiBTbyB3aGF0IGlzIHRo ZSBwdXJwb3NlIG9mIHRoaXMgQVBJPyBKdXN0IGRpc3BsYXkgb3IgYXJlIHlvdSBleHBlY3RpbmcN Cj4gPiA+IHRoZSBhcHBsaWNhdGlvbiBjYW4gZG8gYW55IGFjdGlvbiBiYXNlZCBvbiB0aGlzPw0K PiA+DQo+ID4gT2gsIEkgc2VlLiBNYWlubHkgZm9yIHNob3dpbmcgd2hpY2ggYnVyc3QgcngvdHgg bW9kdWxlIHJ1bm5pbmc6DQo+IA0KPiBJZiBzbywgdGhlIHB1YmxpYyBBUEkgc2hvdWxkIGJlIGFz IHN0cmluZyB0byBhdm9pZCBhbnkgb3RoZXIgaW50ZXJwcmVhdGlvbiBvZg0KPiBmbGFncyBpbiBh cHBsaWNhdGlvbi4NCj4gDQo+IEFuZCBpdCBtYWtlcyBhcHBsaWNhdGlvbiBsaWZlIGVhc3kgdG9v Lg0KPiANCg0KTm8gb25lIGlzIGVhc3kuIDstKSBSZXF1aXJlbWVudCBpcyBlbmRsZXNzLg0KDQo+ IA0KPiA+DQo+ID4gaHR0cHM6Ly9kb2NzLmZkLmlvL3ZwcC8xOC4xMS9kNy9kMWQvcGx1Z2luc18y ZHBka18yZGV2aWNlXzJmb3JtYXRfOGNfc291cmNlLmh0bWwNCj4gPg0KPiA+IHMgPSBmb3JtYXQg KHMsICIlVXR4IGJ1cnN0IGZ1bmN0aW9uOiAlc1xuIiwNCj4gPiAgIDU3OSAgICAgICAgICAgICAg ICAgICBmb3JtYXRfd2hpdGVfc3BhY2UsIGluZGVudCArIDIsDQo+ID4gICA1ODAgICAgICAgICAg ICAgICAgICAgcHRyMnNuYW1lIChydGVfZXRoX2RldmljZXNbeGQtPnBvcnRfaWRdLnR4X3BrdF9i dXJzdCkpOw0KPiA+ICAgNTgxICAgICAgIHMgPSBmb3JtYXQgKHMsICIlVXJ4IGJ1cnN0IGZ1bmN0 aW9uOiAlc1xuIiwNCj4gPiAgIDU4MiAgICAgICAgICAgICAgICAgICBmb3JtYXRfd2hpdGVfc3Bh Y2UsIGluZGVudCArIDIsDQo+ID4gICA1ODMgICAgICAgICAgICAgICAgICAgcHRyMnNuYW1lIChy dGVfZXRoX2RldmljZXNbeGQtPnBvcnRfaWRdLnJ4X3BrdF9idXJzdCkpOw0KPiA+DQo+ID4gaHR0 cHM6Ly9kb2NzLmZkLmlvL3ZwcC8xOC4xMS9kNy9kMWQvcGx1Z2luc18yZHBka18yZGV2aWNlXzJm b3JtYXRfOGNfc291cmNlLmh0bWwNCj4gPg0KPiA+IDQ4OCBzdGF0aWMgY29uc3QgY2hhciAqDQo+ ID4gICA0ODkgcHRyMnNuYW1lICh2b2lkICpwKQ0KPiA+ICAgNDkwIHsNCj4gPiAgIDQ5MSAgIERs X2luZm8gaW5mbyA9IHsgMCB9Ow0KPiA+ICAgNDkyDQo+ID4gICA0OTMgICBpZiAoZGxhZGRyIChw LCAmaW5mbykgPT0gMCkNCj4gPiAgIDQ5NCAgICAgcmV0dXJuIDA7DQo+ID4gICA0OTUNCj4gPiAg IDQ5NiAgIHJldHVybiBpbmZvLmRsaV9zbmFtZTsNCj4gPiAgIDQ5NyB9DQo+ID4NCj4gPiAgICAg dHggYnVyc3QgZnVuY3Rpb246IGl4Z2JlX3htaXRfcGt0cw0KPiA+ICAgICByeCBidXJzdCBmdW5j dGlvbjogaXhnYmVfcmVjdl9wa3RzDQo+ID4NCj4gPiBJZiB0aGUgUE1EJ3MgcngvdHggaXMgKnN0 YXRpYyogZnVuY3Rpb24sICdwdHIybmFtZScgcmV0dXJucyAnbmlsJy4NCg==