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 653FEA0352; Mon, 4 Nov 2019 11:46:55 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4220937A2; Mon, 4 Nov 2019 11:46:55 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id AA1192C2B for ; Mon, 4 Nov 2019 11:46:52 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Nov 2019 02:46:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,266,1569308400"; d="scan'208";a="232017097" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga002.fm.intel.com with ESMTP; 04 Nov 2019 02:46:51 -0800 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 4 Nov 2019 02:46:51 -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.439.0; Mon, 4 Nov 2019 02:46:50 -0800 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.108]) by SHSMSX105.ccr.corp.intel.com ([169.254.11.225]) with mapi id 14.03.0439.000; Mon, 4 Nov 2019 18:46:49 +0800 From: "Wang, Haiyue" To: Ray Kinsella , Thomas Monjalon CC: "dev@dpdk.org" , "Yigit, Ferruh" , 'Damjan Marion' , Jerin Jacob Kollanukkaran , "viacheslavo@mellanox.com" , "stephen@networkplumber.org" , "arybchenko@solarflare.com" Thread-Topic: [dpdk-dev] [PATCH v4 1/4] ethdev: add the API for getting burst mode information Thread-Index: AQHVgy4vnIA7MA5UA0Sl3pLNFwDOY6dqovQAgABMCACAABr4gIAABOkAgABrZQCAAOrKcP//moGAgAC0blD///LTAIAElsuAgAhCRACAACM3gIAAusqAgAABWYCAAAJ+AIAAkfnw Date: Mon, 4 Nov 2019 10:46:48 +0000 Message-ID: References: <20191015075133.38560-1-haiyue.wang@intel.com> <6097021.DVUxeYL0oo@xps> <4310025.8zu0hhGBfT@xps> <31ae4f6c-f55b-ae3f-4527-4870156b74ff@ashroe.eu> In-Reply-To: <31ae4f6c-f55b-ae3f-4527-4870156b74ff@ashroe.eu> Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOWYxZWExOTktYWMyNi00MWRhLTkzYTgtMDYxMmZlZjU1OGVlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUVROMW16OVwvWUU5RjV4RkF2T000REJlWjFZa0JTWWw5N1IwOHhxRGlmc0QxRVlPWGxQaW1FWEdnXC9WUGZ2SUJZIn0= 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" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSYXkgS2luc2VsbGEgPG1kckBh c2hyb2UuZXU+DQo+IFNlbnQ6IE1vbmRheSwgTm92ZW1iZXIgNCwgMjAxOSAxODowMw0KPiBUbzog VGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0Pg0KPiBDYzogZGV2QGRwZGsub3Jn OyBZaWdpdCwgRmVycnVoIDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgJ0RhbWphbiBNYXJpb24n IDxkbWFyaW9uQG1lLmNvbT47IFdhbmcsDQo+IEhhaXl1ZSA8aGFpeXVlLndhbmdAaW50ZWwuY29t PjsgSmVyaW4gSmFjb2IgS29sbGFudWtrYXJhbiA8amVyaW5qQG1hcnZlbGwuY29tPjsNCj4gdmlh Y2hlc2xhdm9AbWVsbGFub3guY29tOyBzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZzsgYXJ5YmNo ZW5rb0Bzb2xhcmZsYXJlLmNvbQ0KPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjQg MS80XSBldGhkZXY6IGFkZCB0aGUgQVBJIGZvciBnZXR0aW5nIGJ1cnN0IG1vZGUgaW5mb3JtYXRp b24NCj4gDQo+IA0KPiANCj4gT24gMDQvMTEvMjAxOSAwOTo1NCwgVGhvbWFzIE1vbmphbG9uIHdy b3RlOg0KPiA+IDA0LzExLzIwMTkgMTA6NDksIFJheSBLaW5zZWxsYToNCj4gPj4gT24gMDMvMTEv MjAxOSAyMjo0MSwgVGhvbWFzIE1vbmphbG9uIHdyb3RlOg0KPiA+Pj4gMDMvMTEvMjAxOSAyMToz NSwgUmF5IEtpbnNlbGxhOg0KPiA+Pj4+IE9uIDI5LzEwLzIwMTkgMTQ6MjcsIEZlcnJ1aCBZaWdp dCB3cm90ZToNCj4gPj4+Pj4gT24gMTAvMjYvMjAxOSA1OjIzIFBNLCBUaG9tYXMgTW9uamFsb24g d3JvdGU6DQo+ID4+Pj4+PiAyNi8xMC8yMDE5IDExOjIzLCBXYW5nLCBIYWl5dWU6DQo+ID4+Pj4+ Pj4gRnJvbTogVGhvbWFzIE1vbmphbG9uIFttYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldF0NCj4g Pj4+Pj4+Pj4gMjYvMTAvMjAxOSAwNjo0MCwgV2FuZywgSGFpeXVlOg0KPiA+Pj4+Pj4+Pj4gRnJv bTogVGhvbWFzIE1vbmphbG9uIFttYWlsdG86dGhvbWFzQG1vbmphbG9uLm5ldF0NCj4gPj4+Pj4+ Pj4+PiAyNS8xMC8yMDE5IDE4OjAyLCBKZXJpbiBKYWNvYjoNCj4gPj4+Pj4+Pj4+Pj4gT24gRnJp LCBPY3QgMjUsIDIwMTkgYXQgOToxNSBQTSBUaG9tYXMgTW9uamFsb24gPHRob21hc0Btb25qYWxv bi5uZXQ+IHdyb3RlOg0KPiA+Pj4+Pj4+Pj4+Pj4gMjUvMTAvMjAxOSAxNjowOCwgRmVycnVoIFlp Z2l0Og0KPiA+Pj4+Pj4+Pj4+Pj4+IE9uIDEwLzI1LzIwMTkgMTA6MzYgQU0sIFRob21hcyBNb25q YWxvbiB3cm90ZToNCj4gPj4+Pj4+Pj4+Pj4+Pj4gMTUvMTAvMjAxOSAwOTo1MSwgSGFpeXVlIFdh bmc6DQo+ID4+Pj4+Pj4+Pj4+Pj4+PiBTb21lIFBNRHMgaGF2ZSBtb3JlIHRoYW4gb25lIFJYL1RY IGJ1cnN0IHBhdGhzLCBhZGQgdGhlIGV0aGRldiBBUEkNCj4gPj4+Pj4+Pj4+Pj4+Pj4+IHRoYXQg YWxsb3dzIGFuIGFwcGxpY2F0aW9uIHRvIHJldHJpZXZlIHRoZSBtb2RlIGluZm9ybWF0aW9uIGFi b3V0DQo+ID4+Pj4+Pj4+Pj4+Pj4+PiBSeC9UeCBwYWNrZXQgYnVyc3Qgc3VjaCBhcyBTY2FsYXIg b3IgVmVjdG9yLCBhbmQgVmVjdG9yIHRlY2hub2xvZ3kNCj4gPj4+Pj4+Pj4+Pj4+Pj4+IGxpa2Ug QVZYMi4NCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4gSSBtaXNzZWQgdGhpcyBw YXRjaC4gSSBhbmQgQW5kcmV3LCBtYWludGFpbmVycyBvZiBldGhkZXYsIHdlcmUgbm90IENDJ2Vk Lg0KPiA+Pj4+Pj4+Pj4+Pj4+PiBGZXJydWgsIEkgd291bGQgZXhwZWN0IHRvIGJlIENjJ2VkIGFu ZC9vciBnZXQgYSBub3RpZmljYXRpb24gYmVmb3JlIG1lcmdpbmcuDQo+ID4+Pj4+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+Pj4+PiBJdCBoYXMgYmVlbiBkaXNjdXNzZWQgaW4gdGhlIG1haWwgbGlzdCBh bmQgd2VudCB0aHJvdWdoIG11bHRpcGxlIGRpc2N1c3Npb25zLA0KPiA+Pj4+Pj4+Pj4+Pj4+IHBh dGNoIGlzIG91dCBzaW5jZSB0aGUgQXVndXN0LCArMSB0byBjYyBhbGwgbWFpbnRhaW5lcnMgSSBt aXNzZWQgdGhhdCBwYXJ0LA0KPiA+Pj4+Pj4+Pj4+Pj4+IGJ1dCB3aGVuIHRoZSBwYXRjaCBpcyBy ZXZpZXdlZCBhbmQgdGhlcmUgaXMgbm8gb2JqZWN0aW9uLCB3aHkgYmxvY2sgdGhlIG1lcmdlPw0K PiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IEknbSBub3Qgc2F5aW5nIGJsb2NraW5nIHRo ZSBtZXJnZS4NCj4gPj4+Pj4+Pj4+Pj4+IE15IGJhZCBpcyB0aGF0IEkgbWlzc2VkIHRoZSBwYXRj aCBhbmQgSSBhbSBhc2tpbmcgZm9yIGhlbHAgd2l0aCBhIG5vdGlmaWNhdGlvbg0KPiA+Pj4+Pj4+ Pj4+Pj4gaW4gdGhpcyBjYXNlLiBTYW1lIGZvciBBbmRyZXcgSSBndWVzcy4NCj4gPj4+Pj4+Pj4+ Pj4+IE5vdGU6IGl0IGlzIG1lcmdlZCBpbiBtYXN0ZXIgYW5kIEkgYW0gbG9va2luZyB0byBpbXBy b3ZlIHRoaXMgZmVhdHVyZS4NCj4gPj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+ICsvKioN Cj4gPj4+Pj4+Pj4+Pj4+Pj4+ICsgKiBFdGhlcm5ldCBkZXZpY2UgUlgvVFggcXVldWUgcGFja2V0 IGJ1cnN0IG1vZGUgaW5mb3JtYXRpb24gc3RydWN0dXJlLg0KPiA+Pj4+Pj4+Pj4+Pj4+Pj4gKyAq IFVzZWQgdG8gcmV0cmlldmUgaW5mb3JtYXRpb24gYWJvdXQgcGFja2V0IGJ1cnN0IG1vZGUgc2V0 dGluZy4NCj4gPj4+Pj4+Pj4+Pj4+Pj4+ICsgKi8NCj4gPj4+Pj4+Pj4+Pj4+Pj4+ICtzdHJ1Y3Qg cnRlX2V0aF9idXJzdF9tb2RlIHsNCj4gPj4+Pj4+Pj4+Pj4+Pj4+ICsgIHVpbnQ2NF90IG9wdGlv bnM7DQo+ID4+Pj4+Pj4+Pj4+Pj4+PiArfTsNCj4gPj4+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+ Pj4+Pj4gV2h5IGEgc3RydWN0IGZvciBhbiBpbnRlZ2VyPw0KPiA+Pj4+Pj4+Pj4+Pj4+DQo+ID4+ Pj4+Pj4+Pj4+Pj4gQWdhaW4gYnkgYSByZXF1ZXN0IGZyb20gbWUsIHRvIG5vdCBuZWVkIHRvIGJy ZWFrIHRoZSBBUEkgaWYgd2UgbmVlZCB0byBhZGQgbW9yZQ0KPiA+Pj4+Pj4+Pj4+Pj4+IHRoaW5n IGluIHRoZSBmdXR1cmUuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gSSB3b3VsZCBy ZXBsYWNlIGl0IHdpdGggYSBzdHJpbmcuIFRoaXMgaXMgdGhlIG1vc3QgZmxleGlibGUgQVBJLg0K PiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBJTU8sIFByb2JhYmx5LCBiZXN0IG9mIGJvdGgg d29ybGRzIG1ha2UgYSBnb29kIG9wdGlvbiBoZXJlLA0KPiA+Pj4+Pj4+Pj4+PiBhcyBIYWl5dWUg c3VnZ2VzdGVkIGlmIHdlIGhhdmUgYW4gYWRkaXRpb25hbCBkZXZfc3BlY2lmaWNbMV0gaW4gc3Ry dWN0dXJlLg0KPiA+Pj4+Pj4+Pj4+PiBhbmQgd2hlbiBhIHBhc3MgdG8gdGhlIGFwcGxpY2F0aW9u LCBsZXQgY29tbW9uIGNvZGUgbWFrZSBmaW5hbCBzdHJpbmcgYXMNCj4gPj4+Pj4+Pj4+Pj4gKG9w dGlvbnMgZmxhZ3MgdG8gc3RyaW5nICsgZGV2X3NwZWNpZmljKQ0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+Pj4+PiBvcHRpb25zIGZsYWcgY2FuIGJlIHplcm8gaWYgUE1EIGRvZXMgbm90IGhhdmUg YW55IGdlbmVyaWMgZmxhZ3Mgbm9yDQo+ID4+Pj4+Pj4+Pj4+IGludGVyZXN0ZWQgaW4gc3VjaCBh IHNjaGVtZS4NCj4gPj4+Pj4+Pj4+Pj4gR2VuZXJpYyBmbGFncyB3aWxsIGhlbHAgYXQgbGVhc3Qg dG8gaGF2ZSBzb21lIGNvbW1vbiBjb2RlLg0KPiA+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBb MV0NCj4gPj4+Pj4+Pj4+Pj4gc3RydWN0IHJ0ZV9ldGhfYnVyc3RfbW9kZSB7DQo+ID4+Pj4+Pj4+ Pj4+ICAgICAgICAgdWludDY0X3Qgb3B0aW9uczsNCj4gPj4+Pj4+Pj4+Pj4gICAgICAgICBjaGFy IGRldl9zcGVjaWZpY1sxMjhdOyAvKiBQTUQgaGFzIHNwZWNpZmljIGJ1cnN0IG1vZGUgaW5mb3Jt YXRpb24gKi8NCj4gPj4+Pj4+Pj4+Pj4gfTsNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IEkg cmVhbGx5IGRvbid0IHNlZSBob3cgd2UgY2FuIGhhdmUgZ2VuZXJpYyBmbGFncy4NCj4gPj4+Pj4+ Pj4+PiBUaGUgZmxhZ3Mgd2hpY2ggYXJlIHByb3Bvc2VkIGFyZSBqdXN0IG1hdGNoaW5nDQo+ID4+ Pj4+Pj4+Pj4gdGhlIGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbiBJbnRlbCBQTURzLg0KPiA+Pj4+ Pj4+Pj4+IEFuZCB0aGlzIGlzIGEgY29tcGxpY2F0ZSBzb2x1dGlvbi4NCj4gPj4+Pj4+Pj4+PiBX aHkgbm90IGp1c3QgcmV0dXJuaW5nIGEgbmFtZSBmb3IgdGhlIHNlbGVjdGVkIFJ4L1R4IG1vZGU/ DQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4gSW50ZWwgUE1EcyB1c2UgdGhlICpnZW5lcmljKiBt ZXRob2RzIGxpa2UgeDg2IFNTRSwgQVZYMiwgQVJNIE5FT04sIFBQQyBBTFRJVkVDLA0KPiA+Pj4+ Pj4+Pj4gJ2Rldi0+ZGF0YS0+c2NhdHRlcmVkX3J4JyBldGMgZm9yIHRoZSB0YXJnZXQgOiAiRFBE SyBpcyB0aGUgRGF0YSBQbGFuZSBEZXZlbG9wbWVudCBLaXQNCj4gPj4+Pj4+Pj4+IHRoYXQgY29u c2lzdHMgb2YgbGlicmFyaWVzIHRvIGFjY2VsZXJhdGUgcGFja2V0IHByb2Nlc3Npbmcgd29ya2xv YWRzIHJ1bm5pbmcgb24gYSB3aWRlDQo+ID4+Pj4+Pj4+PiB2YXJpZXR5IG9mIENQVSBhcmNoaXRl Y3R1cmVzLiINCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gSG93IFJURV9FVEhfQlVSU1RfU0NBVFRF UkVEIGFuZCBSVEVfRVRIX0JVUlNUX0JVTEtfQUxMT0MgYXJlIGdlbmVyaWM/DQo+ID4+Pj4+Pj4+ IFRoZXkganVzdCBtYXRjaCBzb21lIGZlYXR1cmVzIG9mIHRoZSBJbnRlbCBQTURzLg0KPiA+Pj4+ Pj4+PiBXaHkgbm90IGV4cG9zaW5nIG90aGVyIG9wdGltaXphdGlvbnMgb2YgdGhlIFJ4L1R4IGlt cGxlbWVudGF0aW9ucz8NCj4gPj4+Pj4+Pj4gWW91IHRvdGFsbHkgbWlzc2VkIHRoZSBwb2ludCBv ZiBnZW5lcmljIGJ1cnN0IG1vZGUgZGVzY3JpcHRpb24uDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ PiBJZiB1bmRlcnN0YW5kIHRoZXNlIG5ldyBleHBlcmltZW50YWwgQVBJcyBmcm9tIGFib3ZlLCB0 aGVuIGJpdCBvcHRpb25zIGlzIHRoZSBiZXN0LA0KPiA+Pj4+Pj4+Pj4gYW5kIHdlIGRpZG4ndCBp bnZlbnQgbmV3IHdvcmRzIHRvIGRlc2NyaWJlIHRoZW0sIGp1c3QgZnJvbSB0aGUgQ1BVICYgb3Ro ZXIgKmdlbmVyaWMqDQo+ID4+Pj4+Pj4+PiB0ZWNobm9sb2d5LiBBbmQgdGhlIGFwcGxpY2F0aW9u IGNhbiBsb29wIHRvIGNoZWNrIHdoaWNoIGtpbmQgb2YgYnVyc3QgaXMgcnVubmluZyBieQ0KPiA+ Pj4+Pj4+Pj4ganVzdCBzaW1wbGUgYml0IHRlc3QuDQo+ID4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4g SWYgUE1EcyBtaXNzZWQgdGhlc2UsIHRoZXkgY2FuIHVwZGF0ZSB0aGVtIGluIGZ1dHVyZSByb2Fk bWFwcyB0byBlbmhhbmNlIHRoZWlyIFBNRHMsDQo+ID4+Pj4+Pj4+PiBsaWtlIE1MWDUgc3VwcG9y dHMgQVJNIE5FT04sIHg4NiBTU0UuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IEkgaGF2ZSBubyB3 b3JkIQ0KPiA+Pj4+Pj4+PiBZb3UgcmVhbGx5IHRoaW5rIG90aGVyIFBNRHMgc2hvdWxkIGxlYXJu IGZyb20gSW50ZWwgaG93IHRvICJlbmhhbmNlIiB0aGVpciBQTUQ/DQo+ID4+Pj4+Pj4+IFlvdSB0 YWxrIGFib3V0IG1seDUsIGRpZCB5b3UgbG9vayBhdCBpdHMgY29kZT8gRGlkIHlvdSBzZWUgdGhl IGJ1cnN0IG1vZGVzDQo+ID4+Pj4+Pj4+IGRlcGVuZGluZyBvbiB3aGljaCBzcGVjaWZpYyBoYXJk d2FyZSBwYXRoIGlzIHVzZWQgKE1QUlEsIEVNUFcsIGlubGluZSk/DQo+ID4+Pj4+Pj4+IE9yIGRl cGVuZGluZyBvbiB3aGljaCBvZmZsb2FkcyBhcmUgaGFuZGxlZD8NCj4gPj4+Pj4+Pj4NCj4gPj4+ Pj4+Pj4gQWdhaW4sIHRoZSBpbnN0cnVjdGlvbiBzZXQgdXNlZCBieSB0aGUgZnVuY3Rpb24gaXMg YSBzbWFsbCBwYXJ0DQo+ID4+Pj4+Pj4+IG9mIHRoZSBidXJzdCBtb2RlIG9wdGltaXphdGlvbi4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gU28geW91IGRpZCBub3QgcmVwbHkgdG8gbXkgcXVlc3Rp b246DQo+ID4+Pj4+Pj4+IFdoeSBub3QganVzdCByZXR1cm5pbmcgYSBuYW1lIGZvciB0aGUgc2Vs ZWN0ZWQgUngvVHggbW9kZT8NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEluIGZhY3QsIFJGQyB2MS92 MiByZXR1cm5zIHRoZSAqbmFtZSosIGJ1dCB0aGUgKm5hbWUqIGlzIGhhcmQgZm9yDQo+ID4+Pj4+ Pj4gYXBwbGljYXRpb24gdG8gZG8gZnVydGhlciBwcm9jZXNzaW5nLCBzdHJjbXAsIHN0cnN0ciA/ IE5vdCBzbyBuaWNlDQo+ID4+Pj4+Pj4gZm9yIEMgY29kZSwgYW5kIGl0IGlzIG5vdCBzbyBzdGFu ZGFyZCwgU28gc3dpdGNoIGl0IHRvIGJpdCBkZWZpbml0aW9uLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ IEFnYWluLCBwbGVhc2UgYW5zd2VyIG15IHF1ZXN0aW9uOiB3aHkgZG8geW91IG5lZWQgaXQ/DQo+ ID4+Pj4+PiBJIHRoaW5rIGl0IGlzIGp1c3QgaW5mb3JtYXRpdmUsIHRoYXQncyB3aHkgYSBzdHJp bmcgc2hvdWxkIGJlIGVub3VnaC4NCj4gPj4+Pj4+IEkgYW0gY2xlYXJseSBhZ2FpbnN0IHRoZSBi aXRtYXAgYmVjYXVzZSBpdCBpcyB3YXkgdG9vIG11Y2ggcmVzdHJpY3RpdmUuDQo+ID4+Pj4+PiBJ IGRpc2FncmVlIHRoYXQga25vd2luZyBpdCBpcyB1c2luZyBBVlgyIG9yIEFWWDUxMiBpcyBzbyBp bnRlcmVzdGluZy4NCj4gPj4+Pj4+IFdoYXQgeW91IHdvdWxkIGxpa2UgdG8ga25vdyBpcyB3aGV0 aGVyIGl0IGlzIHByb2Nlc3NpbmcgcGFja2V0cyA0IGJ5IDQsDQo+ID4+Pj4+PiBmb3IgaW5zdGFu Y2UsIG9yIHRvIGtub3cgd2hpY2ggb2ZmbG9hZCBpcyBzdXBwb3J0ZWQsIG9yIHdoYXQgaGFyZHdh cmUgdHJpY2sNCj4gPj4+Pj4+IGlzIHVzZWQgaW4gdGhlIGRhdGFwYXRoIGRlc2lnbi4NCj4gPj4+ Pj4+IFRoZXJlIGFyZSBzbyBtYW55IG9wdGlvbnMgaW4gYSBkYXRhcGF0aCBkZXNpZ24gdGhhdCBp dCBjYW5ub3QgYmUNCj4gPj4+Pj4+IHJlcHJlc2VudGVkIHdpdGggYSBiaXRtYXAuIEFuZCBpdCBt YWtlcyBubyBzZW5zZSB0byBoYXZlIHNvbWUgZGVzaWduDQo+ID4+Pj4+PiBjcml0ZXJpYXMgbW9y ZSBpbXBvcnRhbnQgdGhhbiBvdGhlcnMuDQo+ID4+Pj4+PiBJIENjIGFuIEludGVsIGFyY2hpdGVj dCAoRWR3aW4pIHdobyBjb3VsZCBleHBsYWluIHlvdSBob3cgbXVjaA0KPiA+Pj4+Pj4gYSBkYXRh cGF0aCBkZXNpZ24gaXMgbW9yZSBjb21wbGljYXRlIHRoYW4ganVzdCB1c2luZyBBVlggaW5zdHJ1 Y3Rpb25zLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBBcyBJIHVuZGVyc3RhbmQgdGhpcyBpcyB0byBsZXQg YXBwbGljYXRpb25zIHRvIGdpdmUgaW5mb3JtZWQgZGVjaXNpb24gYmFzZWQgb24NCj4gPj4+Pj4g d2hhdCB2ZWN0b3JpemF0aW9uIGlzIHVzZWQgaW4gdGhlIGRyaXZlciwgY3VycmVudGx5IHRoaXMg aXMgbm90IGtub3cgYnkgdGhlDQo+ID4+Pj4+IGFwcGxpY2F0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBBbmQgYXMgcHJldmlvdXNseSByZXBsaWVkLCB0aGUgbWFpbiB0YXJnZXQgb2YgdGhlIEFQSSBp cyB0byBkZWZpbmUgdGhlIHZlY3Rvcg0KPiA+Pj4+PiBwYXRoLCBub3QgYWxsIG9wdGltaXphdGlv bnMsIHNvIHRoZSBudW1iZXIgaXMgbGltaXRlZC4NCj4gPj4+DQo+ID4+PiBObyENCj4gPj4+IFRo ZSBuYW1lIG9mIHRoaXMgQVBJIGlzICJidXJzdCBtb2RlIGluZm9ybWF0aW9uIiwNCj4gPj4+IG5v dCAidmVjdG9yIGluc3RydWN0aW9ucyB1c2VkIi4NCj4gPj4+IEkgdGhpbmsgdGhlIG1haW4gZXJy b3IgaXMgdGhhdCBpbiBJbnRlbCBQTURzLA0KPiA+Pj4gZWFjaCBSeC9UeCBmdW5jdGlvbiB1c2Ug ZGlmZmVyZW50IHZlY3RvciBpbnN0cnVjdGlvbnMuDQo+ID4+PiBTbyB5b3UgZ2VuZXJhbGl6ZSB0 aGF0IGtub3dpbmcgdGhlIHZlY3RvcnMgaW5zdHJ1Y3Rpb25zDQo+ID4+PiB3aWxsIGdpdmUgeW91 IGEgZ29vZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcGVyZm9ybWFuY2UuDQo+ID4+PiBCdXQgdGhp cyBpcyBnZW5lcmFsbHkgd3JvbmchDQo+ID4+PiBUaGUgcmlnaHQgbGV2ZWwgb2YgaW5mb3MgaXMg bXVjaCBtb3JlIGNvbXBsZXguDQo+ID4+DQo+ID4+IEkgZG9uJ3QgdGhpbmsgYW55b25lIHdhcyBz dWdnZXN0aW5nIGxpbWl0aW5nIGl0IHRvIHB1cmVseSBkZXNjcmliaW5nIFBNRCBvcHRpbWl6YXRp b24NCj4gPj4gd2l0aCB2ZWN0b3IgaW5zdHJ1Y3Rpb25zLiBJZiB0aGVyZSBhcmUgb3RoZXIgY29t bW9uYWxpdGllcyBsZXQncyBkZXNjcmliZSB0aG9zZSBhbHNvLg0KPiA+Pg0KPiA+PiBWZWN0b3Jp emF0aW9uIHdhcyB0aG91Z2h0IHRvIGJlIGEgZ29vZCBzdGFydGluZyBwb2ludCAtIElNSE8gaXQg aXMuDQo+ID4+DQo+ID4+Pg0KPiA+Pj4+PiBUaGVyZSBhcmUgbWFueSBvcHRpbWl6YXRpb24gaW4g dGhlIGRhdGEgcGF0aCwgSSBhZ3JlZSB3ZSBtYXkgbm90IHJlcHJlc2VudCBhbGwNCj4gPj4+Pj4g b2YgdGhlbSwgYW5kIGFncmVlZCBleGlzdGluZyBlbnVtIGhhdmluZyAiUlRFX0VUSF9CVVJTVF9C VUxLX0FMTE9DIiBhbmQgc2ltaWxhcg0KPiA+Pj4+PiBjYXVzaW5nIHRoaXMgY29uZnVzaW9uLCBw ZXJoYXBzIHdlIGNhbiByZW1vdmUgdGhlbS4NCj4gPj4+Pj4NCj4gPj4+Pj4gQW5kIGlmIHRoZSBy ZXF1aXJlbWVudCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBpcyBqdXN0IGluZm9ybWF0aXZlLCBJIHdv dWxkIGFncmVlDQo+ID4+Pj4+IHRoYXQgZnJlZSB0ZXh0IHN0cmluZyB3aWxsIGJlIGJldHRlciwg cmlnaHQgbm93ICdydGVfZXRoX3J4L3R4X2J1cnN0X21vZGVfZ2V0KCknDQo+ID4+Pj4+IGlzIHRo ZSBtYWluIEFQSSB0byBwcm92aWRlIHRoZSBpbmZvcm1hdGlvbiBhbmQNCj4gPj4+Pj4gJ3J0ZV9l dGhfYnVyc3RfbW9kZV9vcHRpb25fbmFtZSgpJyBpcyBhIGhlbHBlciBmb3IgYXBwbGljYXRpb24v ZHJpdmVyIHRvIGxvZw0KPiA+Pj4+PiB0aGlzIGluZm9ybWF0aW9uLg0KPiA+Pj4+Pg0KPiA+Pj4+ DQo+ID4+Pj4gV2VsbCBsb29rIHdlIGhhdmUgYSBnZW5lcmFsIGRlZmljaXQgb2YgaW5mb3JtYXRp b24gYWJvdXQgd2hhdCBpcyBoYXBwZW5pbmcgdW5kZXINCj4gPj4+PiB0aGUgY292ZXJzIGluIERQ REsuIFRoZSBlbmQgdXNlciBtYXkgZ2V0IHdpbGRseSBkaWZmZXJlbnQgcGVyZm9ybWFuY2UgY2hh cmFjdGVyaXN0aWNzDQo+ID4+Pj4gYmFzZWQgb24gdGhlIERQREsgY29uZmlndXJhdGlvbi4gU2lt cGxlIGV4YW1wbGUgaXMgdXNpbmcgZmxvdyBkaXJlY3RvciBjYXVzZXMgdGhlIGk0MGUNCj4gPj4+ PiBQTUQgdG8gc3dpdGNoIHRvIHVzaW5nIGEgc2NhbGFyIGNvZGUgcGF0aCwgYW5kIHBlcmZvcm1h bmNlIG1heSBhcyBtdWNoIGFzIGhhbGYuDQo+ID4+Pj4NCj4gPj4+PiBUaGlzIGNhbiBjYXVzZSBu byBlbmQgb2YgaGVhZC1zY3JhdGNoaW5nIGluIGNvbnN1bWluZyBwcm9kdWN0cywgSSBoYXZlIGRv bmUgc29tZQ0KPiA+Pj4+IG9mIHRoYXQgaGVhZCBzY3JhdGNoaW5nIG15c2VsZiwgaXQgaXMgYSB1 c2FiaWxpdHkgbmlnaHRtYXJlLg0KPiA+Pj4+DQo+ID4+Pj4gRkQuaW8gVlBQIHRyaWVzIHRvIHdv cmsgYXJvdW5kIHRoaXMgYnkgbWluaW5nIHRoZSBjYWxsIHN0YWNrLCB0byBnaXZlIHRoZSB1c2Vy IF9zb21lXw0KPiA+Pj4+IGtpbmQgb2YgaW5mb3JtYXRpb24gYWJvdXQgd2hhdCBpcyBoYXBwZW5p bmcuIFRoZXNlIGtpbmQgb2YgaGVyb2ljcyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeS4NCj4gPj4+ Pg0KPiA+Pj4+IEZvciBleGFjdGx5IHRoZSBzYW1lIHJlYXNvbnMgYXMgdGVsZW1ldHJ5LCB3ZSBz aG91bGQgYmUgdHJ5aW5nIHRvIGdpdmUgdGhlIHVzZXJzIGFzIG11Y2gNCj4gPj4+PiBpbmZvcm1h dGlvbiBhcyBwb3NzaWJsZSwgaW4gYXMgc3RhbmRhcmQgYXMgZm9ybWF0IGFzIHBvc3NpYmxlLiBP dGhlcndpc2UgRFBESw0KPiA+Pj4+IGJlY29tZXMgYXJjYW5lIGxlYXZpbmcgdGhlIHVzZXIgcnVu bmluZyBnZGIgdG8gdW5kZXJzdGFuZCB3aGF0IGlzIGdvaW5nIG9uLCBhcyBJDQo+ID4+Pj4gZnJl cXVlbnRseSBkby4NCj4gPj4+DQo+ID4+PiBJIGFncmVlIHdlIG11c3QgcHJvdmlkZSBhIGNsdWUg dG8gdW5kZXJzdGFuZCB0aGUgcGVyZm9ybWFuY2UgcmVzdWx0Lg0KPiA+Pj4gQXMgU3RlcGhlbiBj b21tZW50ZWQgYXQgdGhlIHZlcnkgYmVnaW5uaW5nLCBhIGxvZyBpcyBlbm91Z2ggZm9yIHN1Y2gg ZGVidWcuDQo+ID4+PiBCdXQgaGlzIGNvbW1lbnQgd2FzIGlnbm9yZWQuDQo+ID4+DQo+ID4+IERv IHdlIGV4cGVjdCBhcHBsaWNhdGlvbnMgYnVpbHQgb24gRFBESyB0byBoYXZlIHRvIGdyZXAgaXQn cyBsb2cgdG8gbWFrZSBzdWNoIGRpc2NvdmVyaWVzPw0KPiA+PiBJdCdzIHZlcnkgYnJpdHRsZSBh bmQgYXJjYW5lIHdheSB0byBwcm92aWRlIGluZm9ybWF0aW9uLCBpZiBub3RoaW5nIGVsc2UuDQo+ ID4+DQo+ID4+PiBZb3Ugd2FudGVkIGFuIEFQSSwgZmluZS4NCj4gPj4+IEkgYW0gT0sgdG8gaGF2 ZSBhbiBBUEkgdG8gcmVxdWVzdCBpbmZvcyB3aGljaCBhcmUgYWxzbyBpbiBsb2dzLg0KPiA+Pg0K PiA+PiBJIHdvdWxkIHBvaW50IG91dCB0aGF0IGFuIEFQSSB0byBxdWVyeSBtZXRhLWRhdGEgaXMg Y29tbW9uIHByYWN0aWNlIGVsc2Ugd2hlcmUuDQo+ID4+IEdTdHJlYW1lciBHc3RDYXBzIGFuZCBM aW51eCBTeXNmcyBhcmUgdGhlIGNsb3Nlc3QgZXhhbXBsZSBJIGNhbiB0aGluayBvZi4NCj4gPj4N Cj4gPj4+DQo+ID4+Pj4gRmluYWxseSwgYWdhaW4gZm9yIHRoZSBzYW1lIHJlYXNvbnMgYXMgdGVs ZW1ldHJ5LCBJIHdvdWxkIHNheSB0aGF0IG1hY2hpbmUgcmVhZGFibGUgaXMgdGhlDQo+ID4+Pj4g aWRlYWwgaGVyZS4NCj4gPj4+DQo+ID4+PiBJIGRpc2FncmVlIGhlcmUuIFRoZXJlIGlzIG5vIG5l ZWQgdG8gbWFrZSB0aGlzIGluZm8gbWFjaGluZSByZWFkYWJsZS4NCj4gPj4+IFdlIHdhbnQgYSBj bHVlIGFib3V0IHRoZSBvcHRpbWl6YXRpb25zIHdoaWNoIGFyZSBhbGwgYWJvdXQgY3JlYXRpdml0 eS4NCj4gPj4+IEFuZCB3ZSBjYW5ub3QgbWFrZSBjcmVhdGl2aXR5IG9mIGRldmVsb3BlcnMgIm1h Y2hpbmUgcmVhZGFibGUiLg0KPiA+Pg0KPiA+PiBJIGFtIG1vcmUgY29uY2VybmVkIGFib3V0IHRo ZSBjcmVhdGl2aXR5IGluIGhvdyBkZXZlbG9wZXJzIGRlc2NyaWJlIG9wdGltaXphdGlvbnMuDQo+ ID4+IElmIHRoZXJlIGlzIG5vIHN0YW5kYXJkaXphdGlvbiBvZiBzdHJpbmdzIChvciBiaXRzKSwg dGhlIEFQSSB3aWxsIGJlIGNoYWxsZW5naW5nIHRvIHVzZS4NCj4gPg0KPiA+IE5vIGl0IHdvbid0 IGJlIGNoYWxsZW5naW5nIGJlY2F1c2UgaXQgd2lsbCBiZSBqdXN0IGEgc3RyaW5nIHRvIHByaW50 Lg0KPiANCj4gV2VsbCB0aGUgY2hhbGxlbmdlIGlzIGdldHRpbmcgZXZlcnlvbmUgdG8gdXNlIHRo ZSBzYW1lIHNldCBvZiBzdHJpbmdzLA0KPiBzdWNoIHRoYXQgd2hhdCBpcyByZXR1cm5lZCBieSB0 aGUgQVBJIGhhcyBjb21tb24gbWVhbmluZy4NCj4gDQo+IEkgYW0gZmluZSB3aXRoIHN0cmluZ3Mu DQo+IFNvIGxvbmcgYXMgd2UgaGF2ZSBhIG1ldGhvZCBvZiBlbmNvdXJhZ2luZyBmb2xrcyB0byB1 c2UgYSBzdGFuZGFyZCBzZXQgd2VyZSBwb3NzaWJsZS4NCj4gDQo+ID4gVGhlIGNoYWxsZW5nZSBp cyB0cnlpbmcgdG8gZml4IHRoZSBkZXNpZ24gY2hhcmFjdGVyaXN0aWNzIGluIGFuIEFQSS4NCj4g DQo+IEkgdGhvdWdodCBIYWl5dWUncyBwYXRjaCB3aXRoIGEgZmFpciBkZWdyZWUgb2YgaW5wdXQg ZnJvbSBGZXJydWggYW5kIG90aGVycyBpcyBhIHByZXR0eSBzb2xpZCBzdGFydC4NCj4gTGV0J3Mg ZGVzY3JpYmUgdGhvc2UgY29tbW9uYWxpdGllcyB0aGF0IF9kb18gZXhpc3QgdG9kYXkgLSBpdCBt YXkgbm90IGJlIGVub3VnaCwgYnV0IGl0J3MgYmV0dGVyIHRoYW4NCj4gd2UgaGFkLg0KDQpUaGVu LCB0aGlzIG9uZSA6IGh0dHA6Ly9wYXRjaHdvcmsuZHBkay5vcmcvcGF0Y2gvNjIzNjgvID8NCg==