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 8B357A00BE; Wed, 30 Oct 2019 09:15:06 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id E5BDE1BEB6; Wed, 30 Oct 2019 09:15:05 +0100 (CET) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 75EF61BEB4 for ; Wed, 30 Oct 2019 09:15:02 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Oct 2019 01:15:01 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,246,1569308400"; d="scan'208";a="190207766" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga007.jf.intel.com with ESMTP; 30 Oct 2019 01:15:01 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 30 Oct 2019 01:15:00 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 30 Oct 2019 01:15:00 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.108]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.60]) with mapi id 14.03.0439.000; Wed, 30 Oct 2019 16:14:58 +0800 From: "Wang, Haiyue" To: "Yigit, Ferruh" , Jerin Jacob , Thomas Monjalon CC: 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: AQHVgy4vnIA7MA5UA0Sl3pLNFwDOY6dqovQAgABMCACAABr4gIAABOkAgABrZQCAAI7MAIAFXuaAgAGEeZA= Date: Wed, 30 Oct 2019 08:14:58 +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: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmQyOGJlNjUtNTU1NC00OTc1LWI1YWYtNTEwZDhjNDViNTQ2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiSHJkRElDQVBxRDNvTGRwMGdOTUlFd2xwQXJ6cHdsNkN3MXBETWY0MFVcL0RlWUNqbzI4VDhaNkJhcTdGZ2w3dFUifQ== 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBZaWdpdCwgRmVycnVoIDxmZXJy dWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIE9jdG9iZXIgMzAsIDIwMTkg MDA6NTkNCj4gVG86IEplcmluIEphY29iIDxqZXJpbmphY29ia0BnbWFpbC5jb20+OyBUaG9tYXMg TW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+DQo+IENjOiBXYW5nLCBIYWl5dWUgPGhhaXl1 ZS53YW5nQGludGVsLmNvbT47IGRwZGstZGV2IDxkZXZAZHBkay5vcmc+OyBZZSwgWGlhb2xvbmcN Cj4gPHhpYW9sb25nLnllQGludGVsLmNvbT47IEtpbnNlbGxhLCBSYXkgPHJheS5raW5zZWxsYUBp bnRlbC5jb20+OyBJcmVtb25nZXIsIEJlcm5hcmQNCj4gPGJlcm5hcmQuaXJlbW9uZ2VyQGludGVs LmNvbT47IFN1biwgQ2hlbm1pbiA8Y2hlbm1pbi5zdW5AaW50ZWwuY29tPjsgQW5kcmV3IFJ5YmNo ZW5rbw0KPiA8YXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbT47IFNsYXZhIE92c2lpZW5rbyA8dmlh Y2hlc2xhdm9AbWVsbGFub3guY29tPjsgU3RlcGhlbiBIZW1taW5nZXINCj4gPHN0ZXBoZW5AbmV0 d29ya3BsdW1iZXIub3JnPjsgRGF2aWQgTWFyY2hhbmQgPGRhdmlkLm1hcmNoYW5kQHJlZGhhdC5j b20+OyBKZXJpbiBKYWNvYg0KPiA8amVyaW5qQG1hcnZlbGwuY29tPg0KPiBTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBbUEFUQ0ggdjQgMS80XSBldGhkZXY6IGFkZCB0aGUgQVBJIGZvciBnZXR0aW5n IGJ1cnN0IG1vZGUgaW5mb3JtYXRpb24NCj4gDQo+IE9uIDEwLzI2LzIwMTkgNzo1OCBBTSwgSmVy aW4gSmFjb2Igd3JvdGU6DQo+ID4gT24gU2F0LCBPY3QgMjYsIDIwMTkgYXQgMzo1NyBBTSBUaG9t YXMgTW9uamFsb24gPHRob21hc0Btb25qYWxvbi5uZXQ+IHdyb3RlOg0KPiA+Pg0KPiA+PiAyNS8x MC8yMDE5IDE4OjAyLCBKZXJpbiBKYWNvYjoNCj4gPj4+IE9uIEZyaSwgT2N0IDI1LCAyMDE5IGF0 IDk6MTUgUE0gVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PiB3cm90ZToNCj4g Pj4+PiAyNS8xMC8yMDE5IDE2OjA4LCBGZXJydWggWWlnaXQ6DQo+ID4+Pj4+IE9uIDEwLzI1LzIw MTkgMTA6MzYgQU0sIFRob21hcyBNb25qYWxvbiB3cm90ZToNCj4gPj4+Pj4+IDE1LzEwLzIwMTkg MDk6NTEsIEhhaXl1ZSBXYW5nOg0KPiA+Pj4+Pj4+IFNvbWUgUE1EcyBoYXZlIG1vcmUgdGhhbiBv bmUgUlgvVFggYnVyc3QgcGF0aHMsIGFkZCB0aGUgZXRoZGV2IEFQSQ0KPiA+Pj4+Pj4+IHRoYXQg YWxsb3dzIGFuIGFwcGxpY2F0aW9uIHRvIHJldHJpZXZlIHRoZSBtb2RlIGluZm9ybWF0aW9uIGFi b3V0DQo+ID4+Pj4+Pj4gUngvVHggcGFja2V0IGJ1cnN0IHN1Y2ggYXMgU2NhbGFyIG9yIFZlY3Rv ciwgYW5kIFZlY3RvciB0ZWNobm9sb2d5DQo+ID4+Pj4+Pj4gbGlrZSBBVlgyLg0KPiA+Pj4+Pj4N Cj4gPj4+Pj4+IEkgbWlzc2VkIHRoaXMgcGF0Y2guIEkgYW5kIEFuZHJldywgbWFpbnRhaW5lcnMg b2YgZXRoZGV2LCB3ZXJlIG5vdCBDQydlZC4NCj4gPj4+Pj4+IEZlcnJ1aCwgSSB3b3VsZCBleHBl Y3QgdG8gYmUgQ2MnZWQgYW5kL29yIGdldCBhIG5vdGlmaWNhdGlvbiBiZWZvcmUgbWVyZ2luZy4N Cj4gPj4+Pj4NCj4gPj4+Pj4gSXQgaGFzIGJlZW4gZGlzY3Vzc2VkIGluIHRoZSBtYWlsIGxpc3Qg YW5kIHdlbnQgdGhyb3VnaCBtdWx0aXBsZSBkaXNjdXNzaW9ucywNCj4gPj4+Pj4gcGF0Y2ggaXMg b3V0IHNpbmNlIHRoZSBBdWd1c3QsICsxIHRvIGNjIGFsbCBtYWludGFpbmVycyBJIG1pc3NlZCB0 aGF0IHBhcnQsDQo+ID4+Pj4+IGJ1dCB3aGVuIHRoZSBwYXRjaCBpcyByZXZpZXdlZCBhbmQgdGhl cmUgaXMgbm8gb2JqZWN0aW9uLCB3aHkgYmxvY2sgdGhlIG1lcmdlPw0KPiA+Pj4+DQo+ID4+Pj4g SSdtIG5vdCBzYXlpbmcgYmxvY2tpbmcgdGhlIG1lcmdlLg0KPiA+Pj4+IE15IGJhZCBpcyB0aGF0 IEkgbWlzc2VkIHRoZSBwYXRjaCBhbmQgSSBhbSBhc2tpbmcgZm9yIGhlbHAgd2l0aCBhIG5vdGlm aWNhdGlvbg0KPiA+Pj4+IGluIHRoaXMgY2FzZS4gU2FtZSBmb3IgQW5kcmV3IEkgZ3Vlc3MuDQo+ ID4+Pj4gTm90ZTogaXQgaXMgbWVyZ2VkIGluIG1hc3RlciBhbmQgSSBhbSBsb29raW5nIHRvIGlt cHJvdmUgdGhpcyBmZWF0dXJlLg0KPiA+Pj4NCj4gPj4+Pj4+PiArLyoqDQo+ID4+Pj4+Pj4gKyAq IEV0aGVybmV0IGRldmljZSBSWC9UWCBxdWV1ZSBwYWNrZXQgYnVyc3QgbW9kZSBpbmZvcm1hdGlv biBzdHJ1Y3R1cmUuDQo+ID4+Pj4+Pj4gKyAqIFVzZWQgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24g YWJvdXQgcGFja2V0IGJ1cnN0IG1vZGUgc2V0dGluZy4NCj4gPj4+Pj4+PiArICovDQo+ID4+Pj4+ Pj4gK3N0cnVjdCBydGVfZXRoX2J1cnN0X21vZGUgew0KPiA+Pj4+Pj4+ICsgIHVpbnQ2NF90IG9w dGlvbnM7DQo+ID4+Pj4+Pj4gK307DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gV2h5IGEgc3RydWN0IGZv ciBhbiBpbnRlZ2VyPw0KPiA+Pj4+Pg0KPiA+Pj4+PiBBZ2FpbiBieSBhIHJlcXVlc3QgZnJvbSBt ZSwgdG8gbm90IG5lZWQgdG8gYnJlYWsgdGhlIEFQSSBpZiB3ZSBuZWVkIHRvIGFkZCBtb3JlDQo+ ID4+Pj4+IHRoaW5nIGluIHRoZSBmdXR1cmUuDQo+ID4+Pj4NCj4gPj4+PiBJIHdvdWxkIHJlcGxh Y2UgaXQgd2l0aCBhIHN0cmluZy4gVGhpcyBpcyB0aGUgbW9zdCBmbGV4aWJsZSBBUEkuDQo+ID4+ Pg0KPiA+Pj4gSU1PLCBQcm9iYWJseSwgYmVzdCBvZiBib3RoIHdvcmxkcyBtYWtlIGEgZ29vZCBv cHRpb24gaGVyZSwNCj4gPj4+IGFzIEhhaXl1ZSBzdWdnZXN0ZWQgaWYgd2UgaGF2ZSBhbiBhZGRp dGlvbmFsIGRldl9zcGVjaWZpY1sxXSBpbiBzdHJ1Y3R1cmUuDQo+ID4+PiBhbmQgd2hlbiBhIHBh c3MgdG8gdGhlIGFwcGxpY2F0aW9uLCBsZXQgY29tbW9uIGNvZGUgbWFrZSBmaW5hbCBzdHJpbmcg YXMNCj4gPj4+IChvcHRpb25zIGZsYWdzIHRvIHN0cmluZyArIGRldl9zcGVjaWZpYykNCj4gPj4+ DQo+ID4+PiBvcHRpb25zIGZsYWcgY2FuIGJlIHplcm8gaWYgUE1EIGRvZXMgbm90IGhhdmUgYW55 IGdlbmVyaWMgZmxhZ3Mgbm9yDQo+ID4+PiBpbnRlcmVzdGVkIGluIHN1Y2ggYSBzY2hlbWUuDQo+ ID4+PiBHZW5lcmljIGZsYWdzIHdpbGwgaGVscCBhdCBsZWFzdCB0byBoYXZlIHNvbWUgY29tbW9u IGNvZGUuDQo+ID4+Pg0KPiA+Pj4gWzFdDQo+ID4+PiBzdHJ1Y3QgcnRlX2V0aF9idXJzdF9tb2Rl IHsNCj4gPj4+ICAgICAgICAgdWludDY0X3Qgb3B0aW9uczsNCj4gPj4+ICAgICAgICAgY2hhciBk ZXZfc3BlY2lmaWNbMTI4XTsgLyogUE1EIGhhcyBzcGVjaWZpYyBidXJzdCBtb2RlIGluZm9ybWF0 aW9uICovDQo+ID4+PiB9Ow0KPiA+Pg0KPiA+PiBJIHJlYWxseSBkb24ndCBzZWUgaG93IHdlIGNh biBoYXZlIGdlbmVyaWMgZmxhZ3MuDQo+ID4+IFRoZSBmbGFncyB3aGljaCBhcmUgcHJvcG9zZWQg YXJlIGp1c3QgbWF0Y2hpbmcNCj4gPj4gdGhlIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbiBJbnRl bCBQTURzLg0KPiA+PiBBbmQgdGhpcyBpcyBhIGNvbXBsaWNhdGUgc29sdXRpb24uDQo+ID4+IFdo eSBub3QganVzdCByZXR1cm5pbmcgYSBuYW1lIGZvciB0aGUgc2VsZWN0ZWQgUngvVHggbW9kZT8N Cj4gPg0KPiA+ICsxIG9ubHkgZm9yIHRoZSBuYW1lDQo+ID4NCj4gPiBMZXQgbWUgY2xhcmlmeSBt eSBlYXJsaWVyIHByb3Bvc2FsOg0KPiA+DQo+ID4gMSkgVGhlIHB1YmxpYyBldGhkZXYgQVBJIHNo b3VsZCByZXR1cm4gb25seSAic3RyaW5nIiBpLmUgdGhlIGZsYWdzDQo+ID4gU0hPVUxEIE5PVCBi ZSBleHBvc2VkIGFzIGV0aGRldiBBUEkNCj4gPiBpLmUNCj4gPiBpbnQgcnRlX2V0aF90eF9idXJz dF9tb2RlX25hbWUodWludDE2X3QgcG9ydF9pZCwgdWludDE2X3QgcXVldWVfaWQsIGNoYXIgKm5h bWUpOw0KPiA+DQo+ID4gMikgVGhlIFBNRCBpbnRlcmZhY2UgIHRvIHRoZSBjb21tb24gY29kZSBj YW4gYmUgZm9sbG93aW5nDQo+ID4NCj4gPiAgc3RydWN0IGV0aF9wbWRfYnVyc3RfbW9kZSB7DQo+ ID4gICAgICAgICB1aW50NjRfdCBvcHRpb25zOw0KPiA+ICAgICAgICAgIGNoYXIgbmFtZVsxMjhd OyAvKiBQTUQgc3BlY2lmaWMgYnVyc3QgbW9kZSBpbmZvcm1hdGlvbiAqLw0KPiA+IH07DQo+ID4N Cj4gPiB0eXBlZGVmIGludCAoKmV0aF9idXJzdF9tb2RlX2dldF90KShzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiwNCj4gPiAgICAgICAgIHVpbnQxNl90IHF1ZXVlX2lkLCBzdHJ1Y3QgZXRoX2J1cnN0 X21vZGUgKm1vZGUpDQo+ID4NCj4gPiAzKSBUaGUgaW1wbGVtZW50YXRpb24gb2YgcnRlX2V0aF90 eF9idXJzdF9tb2RlX25hbWUoKSBzaGFsbCBkbyBvcHRvbnMNCj4gPiBmbGFnIHRvIHN0cmluZyBj b252ZXJpb24oYWdhaW4gaW50ZXJuYWwgdG8gY29tbW9uIGNvZGUgaW1wbGVtZXRhdGlvbikNCj4g PiBhbmQgY29uY2F0ZW5hdGUgd2l0aCBldGhfcG1kX2J1cnN0X21vZGU6Om5hbWUNCj4gPg0KPiA+ IFRoaXMgd291bGQgaGVscCB0byByZXVzZSBzb21lIG9mIHRoZSBmbGFncyB0byBuYW1lIGNvbnZl cnNpb24gbG9naWMNCj4gPiBhY3Jvc3MgYWxsIFBNRHMuDQo+ID4gQW5kIFBNRCBhcmUgZnJlZSB0 byByZXR1cm4gIGV0aF9wbWRfYnVyc3RfbW9kZTo6b3B0aW9ucyBhcyB6ZXJvIGluDQo+ID4gdGhh dCBjYXNlIGZpbmFsDQo+ID4gc3RyaW5nIG9ubHkgYmUgZXRoX3BtZF9idXJzdF9tb2RlOjpuYW1l Lg0KPiA+DQo+ID4gSSBkb24ndCBzZWUgYW55IGRvd25zaWRlIHdpdGggdGhpcyBhcHByb2FjaCBh bmQgaXQgYmVzdCBvZiBib3RoIHdvcmxkcy4NCj4gPg0KPiANCj4gSSBhZ3JlZSBpdCB3aWxsIGJl IGhhcmQgb3IgcmVzdHJpY3RpdmUgaWYgd2Ugd2FudCB0byByZXByZXNlbnQgdGhlIGFsbCBkYXRh IHBhdGgNCj4gb3B0aW9ucyB3aXRoIHN0YW5kYXJkaXplZCBkYXRhLg0KPiANCj4gQnV0IHRoZSBm cmVlIHRleHQgc3RyaW5nIGlzIGdvb2QgZm9yIGxvZ2dpbmcsIGJ1dCBub3QgZ29vZCBpZiB0aGUg YXBwbGljYXRpb24NCj4gd2lsbCBnZXQgdGhpcyBpbnB1dCBhbmQgZ2l2ZSBzb21lIGRlY2lzaW9u IHdpdGggaXQuDQo+IA0KPiBUbyBjb21iaW5lIGJvdGggdHdvLCB3aGF0IGRvIHlvdSB0aGluayBh IG1peGVkIGFwcHJvYWNoLCBzaW1pbGFyIHRvIHdoYXQgSmVyaW4NCj4gZGVzY3JpYmVkIGJ1dCBi b3RoIG9wdGlvbnMgYW5kIHN0cmluZyBpcyB2aXNpYmxlIHRvIGFwcGxpY2F0aW9uLA0KPiBhbmQg bWFrZSAnb3B0aW9ucycgb25seSBmb3IgdmVjdG9yaXphdGlvbiBpbmZvcm1hdGlvbiB3aGljaCBp cyBsaW1pdGVkIGFuZCBiZQ0KPiBzdGFuZGFyZGl6ZWQ6DQo+IA0KPiBpbnQgcnRlX2V0aF90eF9i dXJzdF9tb2RlX2dldCh1aW50MTZfdCBwb3J0X2lkLCB1aW50MTZfdCBxdWV1ZV9pZCwNCj4gCXN0 cnVjdCBydGVfZXRoX2J1cnN0X21vZGUgKm1vZGUpOw0KPiANCj4gc3RydWN0IHJ0ZV9ldGhfYnVy c3RfbW9kZSB7DQo+IAl1aW50NjRfdCBvcHRpb25zOyAvLyBUaGlzIGlzIG9ubHkgZm9yIFZFQ1RP UklaQVRJT04gbW9kZQ0KPiAJY2hhciAqYWx0ZXJuYXRlX29wdGlvbnM7DQo+IH0NCj4gDQo+IHNp bmNlICJidXJzdF9tb2RlOm9wdGlvbnMiIG9ubHkgZm9yIHZlY3Rvcml6YXRpb24sIGl0IGlzIGxp bWl0ZWQgYW5kIGNhbiBiZSBlYXN5DQo+IHRvIGNvbnN1bWUgYnkgYXBwbGljYXRpb25zLg0KPiBU aGlzIG1lYW5zIHJlbW92aW5nIHNvbWUgZGF0YSBwYXRoIG9wdGlvbnMsIGxpa2UgIkJVTEtfQUxM T0MiIGZyb20gY3VycmVudCBzdHJ1Y3QuDQo+IA0KPiAncnRlX2V0aF9idXJzdF9tb2RlX29wdGlv bl9uYW1lKCknIGNhbiBnZXQgInN0cnVjdCBydGVfZXRoX2J1cnN0X21vZGUiIGFzDQo+IHBhcmFt ZXRlciBhbmQgY29udmVydCB0aGUgJ29wdGlvbnMnIHRvIHN0cmluZyBhbmQgY29tYmluZSBpbnRv IHNpbmdsZSBzdHJpbmcgYXMNCj4gYSBoZWxwZXIgZnVuY3Rpb24gdG8gdGhlIGFwcGxpY2F0aW9u cy4NCj4gDQoNCkNoYW5nZToNCmNvbnN0IGNoYXIgKg0KcnRlX2V0aF9idXJzdF9tb2RlX29wdGlv bl9uYW1lKHVpbnQ2NF90IG9wdGlvbikNCg0KdG86DQppbnQNCnJ0ZV9ldGhfYnVyc3RfbW9kZV9v cHRpb25fbmFtZShzdHJ1Y3QgcnRlX2V0aF9idXJzdF9tb2RlICptb2RlLCBjaGFyICpzdHIpID8N CklmIHN0ciA9PSBOVUxMLCByZXR1cm4gdGhlIGxlbmd0aCBvZiAnbW9kZS0+b3B0aW9ucycgPw0K DQoNCj4gQW5kICsxIHRvIHByb3ZpZGluZyBOVUxMICJhbHRlcm5hdGVfb3B0aW9ucyIgY2FuIHJl dHVybiB0aGUgc2l6ZSBvZiB0aGF0IHN0cmluZy4NCj4gDQoNCnN0cnVjdCBydGVfZXRoX2J1cnN0 X21vZGUgbW9kZTsNCg0KbW9kZS5hbHRlcm5hdGVfb3B0aW9ucyA9IE5VTEwNCnJ0ZV9ldGhfdHhf YnVyc3RfbW9kZV9nZXQoMCwgMCwgJm1vZGUpIHJldHVybiB0aGUgbGVuZ3RoIG9mICdtb2RlLmFs dGVybmF0ZV9vcHRpb25zJyA/DQpJZiBzbywgaXQgbWVhbnMgdGhhdCBldmVyeSBQTUQgbmVlZCB0 byBoYW5kbGUgdGhpcywgcmlnaHQgPw0KDQo+IEFuZCBhcyB3ZSBmaW5kIG1vcmUgY29tbW9uL3N0 YW5kYXJkIGRhdGEgcGF0aCBvcHRpb25zLCB3ZSBjYW4gbW92ZSB0aGVtIHRvIHRoZQ0KPiBiaXRm aWVsZCBhbmQgcmVtb3ZlIGZyb20gdGhlIGZyZWUgdGV4dC4gRG9lcyBpdCBtYWtlIHNlbnNlPw0K DQo=