From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ananyev, Konstantin" Subject: Re: mbuf changes Date: Tue, 25 Oct 2016 13:38:48 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772583F0CC805@irsmsx105.ger.corp.intel.com> References: <98CBD80474FA8B44BF855DF32C47DC359EA8B1@smartserver.smartshare.dk> <7910CF2F-7087-4307-A9AC-DE0287104185@intel.com> <20161024162538.GA34988@bricha3-MOBL3.ger.corp.intel.com> <20161025093915.GJ5733@6wind.com> <98CBD80474FA8B44BF855DF32C47DC359EA8B7@smartserver.smartshare.dk> <20161025110444.GK5733@6wind.com> <20161025111357.GA43504@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BA@smartserver.smartshare.dk> <20161025122008.GA54704@bricha3-MOBL3.ger.corp.intel.com> <98CBD80474FA8B44BF855DF32C47DC359EA8BB@smartserver.smartshare.dk> <20161025124508.GA59784@bricha3-MOBL3.ger.corp.intel.com> <4427b23b-e9c0-4e43-9c28-fb7e56da745c@6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: Adrien Mazarguil , "Wiles, Keith" , "dev@dpdk.org" , Oleg Kuporosov To: Olivier Matz , "Richardson, Bruce" , =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 32AFD590E for ; Tue, 25 Oct 2016 15:38:53 +0200 (CEST) In-Reply-To: <4427b23b-e9c0-4e43-9c28-fb7e56da745c@6wind.com> Content-Language: en-US List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IFttYWlsdG86ZGV2 LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBPbGl2aWVyIE1hdHoNCj4gU2VudDogVHVl c2RheSwgT2N0b2JlciAyNSwgMjAxNiAxOjQ5IFBNDQo+IFRvOiBSaWNoYXJkc29uLCBCcnVjZSA8 YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+OyBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFy ZXN5c3RlbXMuY29tPg0KPiBDYzogQWRyaWVuIE1hemFyZ3VpbCA8YWRyaWVuLm1hemFyZ3VpbEA2 d2luZC5jb20+OyBXaWxlcywgS2VpdGggPGtlaXRoLndpbGVzQGludGVsLmNvbT47IGRldkBkcGRr Lm9yZzsgT2xlZyBLdXBvcm9zb3YNCj4gPG9sZWdrQG1lbGxhbm94LmNvbT4NCj4gU3ViamVjdDog UmU6IFtkcGRrLWRldl0gbWJ1ZiBjaGFuZ2VzDQo+IA0KPiANCj4gDQo+IE9uIDEwLzI1LzIwMTYg MDI6NDUgUE0sIEJydWNlIFJpY2hhcmRzb24gd3JvdGU6DQo+ID4gT24gVHVlLCBPY3QgMjUsIDIw MTYgYXQgMDI6MzM6NTVQTSArMDIwMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4+IENvbW1l bnRzIGF0IHRoZSBlbmQuDQo+ID4+DQo+ID4+IE1lZCB2ZW5saWcgaGlsc2VuIC8ga2luZCByZWdh cmRzDQo+ID4+IC0gTW9ydGVuIEJyw7hydXANCj4gPj4NCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+PiBGcm9tOiBCcnVjZSBSaWNoYXJkc29uIFttYWlsdG86YnJ1Y2Uucmlj aGFyZHNvbkBpbnRlbC5jb21dDQo+ID4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2 IDI6MjAgUE0NCj4gPj4+IFRvOiBNb3J0ZW4gQnLDuHJ1cA0KPiA+Pj4gQ2M6IEFkcmllbiBNYXph cmd1aWw7IFdpbGVzLCBLZWl0aDsgZGV2QGRwZGsub3JnOyBPbGl2aWVyIE1hdHo7IE9sZWcNCj4g Pj4+IEt1cG9yb3Nvdg0KPiA+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gbWJ1ZiBjaGFuZ2Vz DQo+ID4+Pg0KPiA+Pj4gT24gVHVlLCBPY3QgMjUsIDIwMTYgYXQgMDI6MTY6MjlQTSArMDIwMCwg TW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+ID4+Pj4gQ29tbWVudHMgaW5saW5lLg0KPiA+Pj4+DQo+ ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4+IEZyb206IGRldiBbbWFp bHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgQnJ1Y2UNCj4gPj4+Pj4gUmlj aGFyZHNvbg0KPiA+Pj4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDE6MTQgUE0N Cj4gPj4+Pj4gVG86IEFkcmllbiBNYXphcmd1aWwNCj4gPj4+Pj4gQ2M6IE1vcnRlbiBCcsO4cnVw OyBXaWxlcywgS2VpdGg7IGRldkBkcGRrLm9yZzsgT2xpdmllciBNYXR6OyBPbGVnDQo+ID4+Pj4+ IEt1cG9yb3Nvdg0KPiA+Pj4+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBtYnVmIGNoYW5nZXMN Cj4gPj4+Pj4NCj4gPj4+Pj4gT24gVHVlLCBPY3QgMjUsIDIwMTYgYXQgMDE6MDQ6NDRQTSArMDIw MCwgQWRyaWVuIE1hemFyZ3VpbCB3cm90ZToNCj4gPj4+Pj4+IE9uIFR1ZSwgT2N0IDI1LCAyMDE2 IGF0IDEyOjExOjA0UE0gKzAyMDAsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+Pj4+Pj4+IENv bW1lbnRzIGlubGluZS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IE1lZCB2ZW5saWcgaGlsc2VuIC8g a2luZCByZWdhcmRzDQo+ID4+Pj4+Pj4gLSBNb3J0ZW4gQnLDuHJ1cA0KPiA+Pj4+Pj4+DQo+ID4+ Pj4+Pj4NCj4gPj4+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+Pj4g RnJvbTogQWRyaWVuIE1hemFyZ3VpbCBbbWFpbHRvOmFkcmllbi5tYXphcmd1aWxANndpbmQuY29t XQ0KPiA+Pj4+Pj4+PiBTZW50OiBUdWVzZGF5LCBPY3RvYmVyIDI1LCAyMDE2IDExOjM5IEFNDQo+ ID4+Pj4+Pj4+IFRvOiBCcnVjZSBSaWNoYXJkc29uDQo+ID4+Pj4+Pj4+IENjOiBXaWxlcywgS2Vp dGg7IE1vcnRlbiBCcsO4cnVwOyBkZXZAZHBkay5vcmc7IE9saXZpZXIgTWF0ejsNCj4gPj4+Pj4+ Pj4gT2xlZyBLdXBvcm9zb3YNCj4gPj4+Pj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gbWJ1 ZiBjaGFuZ2VzDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE9uIE1vbiwgT2N0IDI0LCAyMDE2IGF0 IDA1OjI1OjM4UE0gKzAxMDAsIEJydWNlIFJpY2hhcmRzb24NCj4gPj4+IHdyb3RlOg0KPiA+Pj4+ Pj4+Pj4gT24gTW9uLCBPY3QgMjQsIDIwMTYgYXQgMDQ6MTE6MzNQTSArMDAwMCwgV2lsZXMsIEtl aXRoDQo+ID4+PiB3cm90ZToNCj4gPj4+Pj4+Pj4gWy4uLl0NCj4gPj4+Pj4+Pj4+Pj4gT24gT2N0 IDI0LCAyMDE2LCBhdCAxMDo0OSBBTSwgTW9ydGVuIEJyw7hydXANCj4gPj4+Pj4+Pj4gPG1iQHNt YXJ0c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQo+ID4+Pj4+Pj4+IFsuLi5dDQo+ID4+Pj4NCj4g Pj4+Pj4+Pj4+IE9uZSBvdGhlciBwb2ludCBJJ2xsIG1lbnRpb24gaXMgdGhhdCB3ZSBuZWVkIHRv IGhhdmUgYQ0KPiA+Pj4+Pj4+Pj4gZGlzY3Vzc2lvbiBvbiBob3cvd2hlcmUgdG8gYWRkIGluIGEg dGltZXN0YW1wIHZhbHVlIGludG8NCj4gPj4+IHRoZQ0KPiA+Pj4+Pj4+Pj4gbWJ1Zi4gUGVyc29u YWxseSwgSSB0aGluayBpdCBjYW4gYmUgaW4gYSB1bmlvbiB3aXRoIHRoZQ0KPiA+Pj4+PiBzZXF1 ZW5jZQ0KPiA+Pj4+Pj4+Pj4gbnVtYmVyIHZhbHVlLCBidXQgSSBhbHNvIHN1c3BlY3QgdGhhdCAz Mi1iaXRzIG9mIGENCj4gPj4+IHRpbWVzdGFtcA0KPiA+Pj4+Pj4+Pj4gaXMgbm90IGdvaW5nIHRv IGJlIGVub3VnaCBmb3INCj4gPj4+Pj4+Pj4gbWFueS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ PiBUaG91Z2h0cz8NCj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gSWYgd2UgY29uc2lkZXIgdGhhdCB0 aW1lc3RhbXAgcmVwcmVzZW50YXRpb24gc2hvdWxkIHVzZQ0KPiA+Pj4+PiBuYW5vc2Vjb25kDQo+ ID4+Pj4+Pj4+IGdyYW51bGFyaXR5LCBhIDMyLWJpdCB2YWx1ZSBtYXkgbGlrZWx5IHdyYXAgYXJv dW5kIHRvbw0KPiA+Pj4gcXVpY2tseQ0KPiA+Pj4+Pj4+PiB0byBiZSB1c2VmdWwuIFdlIGNhbiBh bHNvIGFzc3VtZSB0aGF0IGFwcGxpY2F0aW9ucyByZXF1ZXN0aW5nDQo+ID4+Pj4+Pj4+IHRpbWVz dGFtcHMgbWF5IGNhcmUgbW9yZSBhYm91dCBsYXRlbmN5IHRoYW4gdGhyb3VnaHB1dCwgT2xlZw0K PiA+Pj4+PiBmb3VuZA0KPiA+Pj4+Pj4+PiB0aGF0IHVzaW5nIHRoZSBzZWNvbmQgY2FjaGUgbGlu ZSBmb3IgdGhpcyBwdXJwb3NlIGhhZCBhDQo+ID4+Pj4+IG5vdGljZWFibGUgaW1wYWN0IFsxXS4N Cj4gPj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4gIFsxXSBodHRwOi8vZHBkay5vcmcvbWwvYXJjaGl2ZXMv ZGV2LzIwMTYtT2N0b2Jlci8wNDkyMzcuaHRtbA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSSBhZ3Jl ZSB3aXRoIE9sZWcgYWJvdXQgdGhlIGxhdGVuY3kgdnMuIHRocm91Z2hwdXQgaW1wb3J0YW5jZQ0K PiA+Pj4+Pj4+IGZvcg0KPiA+Pj4+PiBzdWNoIGFwcGxpY2F0aW9ucy4NCj4gPj4+Pj4+Pg0KPiA+ Pj4+Pj4+IElmIHlvdSBuZWVkIGhpZ2ggcmVzb2x1dGlvbiB0aW1lc3RhbXBzLCBjb25zaWRlciB0 aGVtIHRvIGJlDQo+ID4+Pj4+IGdlbmVyYXRlZCBieSB0aGUgTklDIFJYIGRyaXZlciwgcG9zc2li bHkgYnkgdGhlIGhhcmR3YXJlIGl0c2VsZg0KPiA+Pj4+PiAoaHR0cDovL3czbmV3Lm5hcGF0ZWNo LmNvbS9mZWF0dXJlcy90aW1lLXByZWNpc2lvbi9oYXJkd2FyZS10aW1lLQ0KPiA+Pj4+PiBzdGFt cCksIHNvIHRoZSB0aW1lc3RhbXAgYmVsb25ncyBpbiB0aGUgZmlyc3QgY2FjaGUgbGluZS4gQW5k IEkgYW0NCj4gPj4+Pj4gcHJvcG9zaW5nIHRoYXQgaXQgc2hvdWxkIGhhdmUgdGhlIGhpZ2hlc3Qg cG9zc2libGUgYWNjdXJhY3ksIHdoaWNoDQo+ID4+Pj4+IG1ha2VzIHRoZSB2YWx1ZSBoYXJkd2Fy ZSBkZXBlbmRlbnQuDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBGdXJ0aGVybW9yZSwgSSBhbSBhcmd1 aW5nIHRoYXQgd2UgbGVhdmUgaXQgdXAgdG8gdGhlDQo+ID4+PiBhcHBsaWNhdGlvbg0KPiA+Pj4+ Pj4+IHRvDQo+ID4+Pj4+IGtlZXAgdHJhY2sgb2YgdGhlIHNsb3dseSBtb3ZpbmcgYml0cyAoaS5l LiBjb3VudGluZyB3aG9sZSBzZWNvbmRzLA0KPiA+Pj4+PiBob3VycyBhbmQgY2FsZW5kYXIgZGF0 ZSkgb3V0IG9mIGJhbmQsIHNvIHdlIGRvbid0IHVzZSBwcmVjaW91cw0KPiA+Pj4gc3BhY2UNCj4g Pj4+Pj4gaW4gdGhlIG1idWYuIFRoZSBhcHBsaWNhdGlvbiBkb2Vzbid0IG5lZWQgdGhlIE5JQyBS WCBkcml2ZXIncyBmYXN0DQo+ID4+Pj4+IHBhdGggdG8gY2FwdHVyZSB3aGljaCBkYXRlIChvciBl dmVuIHdoaWNoIHNlY29uZCkgYSBwYWNrZXQgd2FzDQo+ID4+Pj4+IHJlY2VpdmVkLiBZZXMsIGl0 IGFkZHMgY29tcGxleGl0eSB0byB0aGUgYXBwbGljYXRpb24sIGJ1dCB3ZSBjYW4ndA0KPiA+Pj4+ PiBzZXQgYXNpZGUgNjQgYml0IGZvciBhIGdlbmVyaWMgdGltZXN0YW1wLiBPciBhcyBhIHdlaXJk IHRyYWRlb2ZmOg0KPiA+Pj4+PiBQdXQgdGhlIGZhc3QgbW92aW5nIDMyIGJpdCBpbiB0aGUgZmly c3QgY2FjaGUgbGluZSBhbmQgdGhlIHNsb3cNCj4gPj4+Pj4gbW92aW5nIDMyIGJpdCBpbiB0aGUg c2Vjb25kIGNhY2hlIGxpbmUsIGFzIGEgcGxhY2Vob2xkZXIgZm9yIHRoZQ0KPiA+Pj4gYXBwbGlj YXRpb24gdG8gZmlsbCBvdXQgaWYgbmVlZGVkLg0KPiA+Pj4+PiBZZXMsIGl0IG1lYW5zIHRoYXQg dGhlIGFwcGxpY2F0aW9uIG5lZWRzIHRvIGNoZWNrIHRoZSB0aW1lIGFuZA0KPiA+Pj4+PiB1cGRh dGUgaXRzIHZhcmlhYmxlIGhvbGRpbmcgdGhlIHNsb3cgbW92aW5nIHRpbWUgb25jZSBldmVyeSBz ZWNvbmQNCj4gPj4+Pj4gb3Igc287IGJ1dCB0aGF0IHNob3VsZCBiZSBkb2FibGUgd2l0aG91dCBz aWduaWZpY2FudCBlZmZvcnQuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gVGhhdCdzIGEgZ29vZCBwb2lu dCwgaG93ZXZlciB3aXRob3V0IGEgNjQgYml0IHZhbHVlLCBlbGFwc2VkIHRpbWUNCj4gPj4+Pj4+ IGJldHdlZW4gdHdvIGFyYml0cmFyeSBtYnVmcyBjYW5ub3QgYmUgbWVhc3VyZWQgcmVsaWFibHkg ZHVlIHRvDQo+ID4+PiBub3QNCj4gPj4+Pj4+IGVub3VnaCBjb250ZXh0LCBvbmUgd2F5IG9yIGFu b3RoZXIgdGhlIGxvdyByZXNvbHV0aW9uIHZhbHVlIGlzDQo+ID4+Pj4+PiBhbHNvDQo+ID4+Pj4+ IG5lZWRlZC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBPYnZpb3VzbHkgbGF0ZW5jeS1zZW5zaXRpdmUg YXBwbGljYXRpb25zIGFyZSB1bmxpa2VseSB0byBwZXJmb3JtDQo+ID4+Pj4+PiBsZW5ndGh5IGJ1 ZmZlcmluZyBhbmQgcmVxdWlyZSB0aGlzIGJ1dCBJJ20gbm90IHN1cmUgYWJvdXQgYWxsIHRoZQ0K PiA+Pj4+Pj4gcG9zc2libGUgdXNlLWNhc2VzLiBDb25zaWRlcmluZyBtYW55IE5JQ3MgZXhwb3Nl IDY0IGJpdA0KPiA+Pj4gdGltZXN0YXBzLA0KPiA+Pj4+Pj4gSSBzdWdnZXN0IHdlIGRvIG5vdCB0 cnVuY2F0ZSB0aGVtLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IEknbSBub3QgYSBmYW4gb2YgdGhlIHdl aXJkIHRyYWRlb2ZmIGVpdGhlciwgUE1EcyB3aWxsIGJlIHRlbXB0ZWQNCj4gPj4+Pj4+IHRvIGZp bGwgdGhlIGV4dHJhIDMyIGJpdHMgd2hlbmV2ZXIgdGhleSBjYW4gYW5kIG5lZ2F0ZSB0aGUNCj4g Pj4+Pj4+IHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IG9mIHRoZSBmaXJzdCBjYWNoZSBsaW5lLg0K PiA+Pj4+Pg0KPiA+Pj4+PiBJIHdvdWxkIHRlbmQgdG8gYWdyZWUsIGFuZCBJIGRvbid0IHJlYWxs eSBzZWUgYW55IGNvbnZlbmllbnQgd2F5IHRvDQo+ID4+Pj4+IGF2b2lkIHB1dHRpbmcgaW4gYSA2 NC1iaXQgZmllbGQgZm9yIHRoZSB0aW1lc3RhbXAgaW4gY2FjaGUtbGluZSAwLg0KPiA+Pj4+PiBJ ZiB3ZSBhcmUgb2sgd2l0aCBoYXZpbmcgdGhpcyBvdmVybGFwL3BhcnRpYWxseSBvdmVybGFwIHdp dGgNCj4gPj4+Pj4gc2VxdWVuY2UgbnVtYmVyLCBpdCB3aWxsIHVzZSB1cCBhbiBleHRyYSA0QiBv ZiBzdG9yYWdlIGluIHRoYXQNCj4gPj4+IGNhY2hlbGluZS4NCj4gPj4+Pg0KPiA+Pj4+IEkgYWdy ZWUgYWJvdXQgdGhlIGxhY2sgb2YgY29udmVuaWVuY2UhIEFuZCBBZHJpZW4gY2VydGFpbmx5IGhh cyBhDQo+ID4+PiBwb2ludCBhYm91dCBQTUQgdGVtcHRhdGlvbnMuDQo+ID4+Pj4NCj4gPj4+PiBI b3dldmVyLCBJIHN0aWxsIGRvbid0IHRoaW5rIHRoYXQgYSBOSUNzIGFiaWxpdHkgdG8gZGF0ZS1z dGFtcCBhDQo+ID4+PiBwYWNrZXQgaXMgc3VmZmljaWVudCByZWFzb24gdG8gcHV0IGEgZGF0ZS1z dGFtcCBpbiBjYWNoZSBsaW5lIDAgb2YgdGhlDQo+ID4+PiBtYnVmLiBTdG9yaW5nIG9ubHkgdGhl IGZhc3QgbW92aW5nIDMyIGJpdCBpbiBjYWNoZSBsaW5lIDAgc2VlbXMgbGlrZSBhDQo+ID4+PiBn b29kIGNvbXByb21pc2UgdG8gbWUuDQo+ID4+Pj4NCj4gPj4+PiBNYXliZSB5b3UgY2FuIGZpbmQg anVzdCBvbmUgbW9yZSBieXRlLCBzbyBpdCBjYW4gaG9sZCAxNyBtaW51dGVzIHdpdGgNCj4gPj4+ PiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIChJJ20gam9raW5nISkNCj4gPj4+Pg0KPiA+Pj4+IFBs ZWFzZSBkb24ndCBzYWNyaWZpY2UgdGhlIHNlcXVlbmNlIG51bWJlciBmb3IgdGhlIHNlY29uZHMv aG91cnMvZGF5cw0KPiA+Pj4gcGFydCBhIHRpbWVzdGFtcC4gTWF5YmUgaXQgY291bGQgYmUgY29u ZmlndXJhYmxlIHRvIHVzZSBhIDMyIGJpdCBvciA2NA0KPiA+Pj4gYml0IHRpbWVzdGFtcC4NCj4g Pj4+Pg0KPiA+Pj4gRG8geW91IHNlZSBib3RoIHRpbWVzdGFtcCBhbmQgc2VxdWVuY2UgbnVtYmVy cyBiZWluZyB1c2VkIHRvZ2V0aGVyPyBJDQo+ID4+PiB3b3VsZCBoYXZlIHRob3VnaHQgdGhhdCBh cHBzIHdvdWxkIGVpdGhlciB1c2Ugb25lIG9yIHRoZSBvdGhlcj8NCj4gPj4+IEhvd2V2ZXIsIHlv dXIgc3VnZ2VzdGlvbiBpcyB3b3JrYWJsZSBpbiBhbnkgY2FzZSwgdG8gYWxsb3cgdGhlIHNlcXVl bmNlDQo+ID4+PiBudW1iZXIgdG8gb3ZlcmxhcCBqdXN0IHRoZSBoaWdoIDMyIGJpdHMgb2YgdGhl IHRpbWVzdGFtcCwgcmF0aGVyIHRoYW4NCj4gPj4+IHRoZSBsb3cuDQo+ID4+DQo+ID4+IEluIG91 ciBjYXNlLCBJIGNhbiBmb3Jlc2VlIHNlcXVlbmNlIG51bWJlcnMgdXNlZCBmb3IgcGFja2V0IHBy b2Nlc3NpbmcgYW5kIHRpbWVzdGFtcHMgZm9yIHRpbWluZyBhbmFseXNpcyAoYW5kIHBvc3NpYmx5 IGZvciBwYWNrZXQNCj4gY2FwdHVyaW5nLCB3aGVuIGJlaW5nIHVzZWQpLiANCg0KR3JlYXQsIGJ1 dCByaWdodCBub3cgbm9uZSBvZiB0aGVzZSBmaWVsZHMgYXJlIGZpbGxlZCBmcm9tIE5JQyBIVyBi eSBQTUQgUlggZnVuY3Rpb24NCihleGNlcHQgUkZDIGZvciBtZWxhbm94IHByb3ZpZGVkIGJ5IE9s ZWcsIGJ1dCBhZ2FpbiBpdCBpcyBwdXJlIFNXIGltcGxlbWVudGF0aW9uKS4NClNvIEkgd291bGQg cmVwZWF0IG15IHF1ZXN0aW9uOiB3aHkgdGhlc2UgZmllbGRzIHNob3VsZCBzdGF5IGluIHRoZSBm aXJzdCBjYWNoZS1saW5lPw0KSSB1bmRlcnN0YW5kIHRoYXQgIGl0IHdvdWxkIHNwZWVkLXVwIHNv bWUgcGFydGljdWxhciBhcHBsaWNhdGlvbiwgYnV0IHRoZXJlIGFyZSBwbGVudHkNCm9mIGFwcHMg d2hpY2ggZG8gdXNlIGRpZmZlcmVudCBtZXRhZGF0YS4NCkxldCBzYXkgbDIvbDMvbDQgbGVuIC0g aXMgdmVyeSB1c2VmdWwgaW5mb3JtYXRpb24gZm9yIHVwcGVyIGxheWVyIChMMy9MNCkgcGFja2V0 IHByb2Nlc3NpbmcuDQpTaG91bGQgcGVvcGxlIHdobyBkbyB1c2UgaXQgc3RhcnQgdG8gcHVzaCBt b3ZpbmcgdGhhdCBmaWVsZHMgaW50byBmaXJzdCBjYWNoZS1saW5lIHRvbz8gDQoNCj5Gb3IgdGlt aW5nIGFuYWx5c2lzLCB3ZSBkb27igJl0IG5lZWQgbG9uZyBkdXJhdGlvbnMsIGUuZy4gNCBzZWNv bmRzIHdpdGggMzIgYml0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBzdWZmaWNlcy4NCj4gQW5kIGZv ciBwYWNrZXQgY2FwdHVyaW5nIHdlIGFyZSBwZXJmZWN0bHkgY2FwYWJsZSBvZiBhZGRpbmcgdGhl IHNsb3dseSBtb3ZpbmcgMzIgYml0IG9mIHRoZSB0aW1lc3RhbXAgdG8gb3VyIG91dHB1dCBkYXRh IHN0cmVhbSB3aXRob3V0DQo+IGZldGNoaW5nIGl0IGZyb20gdGhlIG1idWYuDQo+ID4+DQo+IA0K PiBXZSBzaG91bGQga2VlcCBpbiBtaW5kIHRoYXQgdG9kYXkgd2UgaGF2ZSB0aGUgc2VxbiBmaWVs ZCBidXQgaXQgaXMNCj4gbm90IHVzZWQgYnkgYW55IFBNRC4gSW4gY2FzZSBpdCBpcyBpbXBsZW1l bnRlZCwgd291bGQgaXQgYmUgYSBwZXItcXVldWUNCj4gc2VxdWVuY2UgbnVtYmVyPyBJcyBpdCB1 c2VmdWwgZnJvbSBhbiBhcHBsaWNhdGlvbiB2aWV3Pw0KDQpFeGFjdGx5IC0gaXQgZGVwZW5kcyBm cm9tIFNXIHRoYXQgdXNlcyB0aGF0IGZpZWxkLCByaWdodD8NCkl0IGNvdWxkIGJlIHBlciBwcm9j ZXNzIC8gcGVyIGdyb3VwIG9mIGxjb3JlcyAvIHBlciBwb3J0IC8gcGVyIHF1ZXVlLCBldGMuDQpE ZXBlbmRpbmcgb24gd2hhdCBhcmUgdXBwZXIgbGF5ZXIgbmVlZHMuDQoNCj4gDQo+IFRoaXMgZmll bGQgaXMgb25seSB1c2VkIGJ5IHRoZSBsaWJydGVfcmVvcmRlciBsaWJyYXJ5LCBhbmQgaW4gbXkN Cj4gb3Bpbmlvbiwgd2Ugc2hvdWxkIGNvbnNpZGVyIG1vdmluZyBpdCBpbiB0aGUgc2Vjb25kIGNh Y2hlIGxpbmUgc2luY2UNCj4gaXQgaXMgbm90IGZpbGxlZCBieSB0aGUgUE1ELg0KDQorMQ0KDQo+ IA0KPiANCj4gPiBGb3IgdGhlIDMyLWJpdCB0aW1lc3RhbXAgY2FzZSwgaXQgbWlnaHQgYmUgdXNl ZnVsIHRvIGhhdmUgYSByaWdodC1zaGlmdA0KPiA+IHZhbHVlIHBhc3NlZCBpbiB0byB0aGUgZXRo ZGV2IGRyaXZlci4gSWYgd2UgYXNzdW1lIGEgTklDIHdpdGggbmFub3NlY29uZA0KPiA+IHJlc29s dXRpb24sIChvciBUU0MgdmFsdWUgd2l0aCByZXNvbHV0aW9uIG9mIHRoYXQgb3JkZXIgb2YgbWFn bml0dWRlKSwNCj4gPiB0aGVuIHRoZSBhcHAgY2FuIGNob29zZSB0byBoYXZlIDEgbnMgcmVzb2x1 dGlvbiB3aXRoIDQgc2Vjb25kDQo+ID4gd3JhcGFyb3VuZCwgb3IgYWx0ZXJuYXRpdmVseSA0bnMg cmVzb2x1dGlvbiB3aXRoIDE2IHNlY29uZCB3cmFwYXJvdW5kLA0KPiA+IG9yIGV2ZW4gbWljcm9z ZWNvbmQgcmVzb2x1dGlvbiB3aXRoIHdyYXAgYXJvdW5kIG9mIG92ZXIgYW4gaG91ci4NCj4gPiBU aGUgY29zdCBpcyBvYnZpb3VzbHkganVzdCBhIHNoaWZ0IG9wIGluIHRoZSBkcml2ZXIgY29kZSBw ZXIgcGFja2V0IC0NCj4gPiBob3BlZnVsbHkgd2l0aCBtdWx0aXBsZSBwYWNrZXRzIGRvbmUgYXQg YSB0aW1lIHVzaW5nIHZlY3RvciBvcGVyYXRpb25zLg0KPiANCj4gDQo+IEFib3V0IHRoZSB0aW1l c3RhbXAsIHdlIGNhbiBtYW5hZ2UgdG8gZmluZCA2NCBiaXRzIGluIHRoZSBmaXJzdCBjYWNoZQ0K PiBsaW5lLCB3aXRob3V0IHNhY3JpZnlpbmcgYW55IGZpZWxkIHdlIGhhdmUgdG9kYXkuIA0KDQpX ZSBjYW4gSSBzdXBwb3NlLCBidXQgYWdhaW4gd2hhdCBmb3IgYW5kIHdobyB3aWxsIGZpbGwgaXQ/ DQpJZiBQTUQsIHRoZW4gd2hlcmUgaXQgd2lsbCBnZXQgdGhpcyBpbmZvcm1hdGlvbj8NCklmIGl0 IGlzIGZyb20gcnRlX3JkdHNjKCkgb3IgY2xvY2soKSwgdGhlbiB3aHkgdXBwZXIgbGF5ZXIgY2Fu J3QgZG8gaXQgaXRzZWxmPw0KS29uc3RhbnRpbg0KDQo+VGhlIHF1ZXN0aW9uIGlzIG1vcmUNCj4g Zm9yIHRoZSBmaWVsZHMgd2UgbWF5IHdhbnQgdG8gYWRkIGxhdGVyLg0KPiANCj4gVG8gYW5zd2Vy IHRvIHRoZSBxdWVzdGlvbiBvZiB0aGUgc2l6ZSBvZiB0aGUgdGltZXN0YW1wLCB0aGUgZmlyc3QN Cj4gcXVlc3Rpb24gaXMgdG8ga25vdyB3aGF0IGlzIHRoZSBwcmVjaXNpb24gcmVxdWlyZWQgZm9y IHRoZQ0KPiBhcHBsaWNhdGlvbnMgdXNpbmcgaXQ/DQo+IA0KPiBJIGRvbid0IHF1aXRlIGxpa2Ug dGhlIGlkZWEgb2Ygc3BsaXR0aW5nIHRoZSB0aW1lc3RhbXAgaW4gdGhlIDIgY2FjaGUNCj4gbGlu ZXMsIEkgdGhpbmsgaXQgd291bGQgbm90IGJlIGVhc3kgdG8gdXNlLg0KPiANCj4gDQo+IE9saXZp ZXINCg==