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 5363BA0521; Tue, 3 Nov 2020 13:10:13 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AAD2BC96C; Tue, 3 Nov 2020 13:10:11 +0100 (CET) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 5CCA2C964; Tue, 3 Nov 2020 13:10:08 +0100 (CET) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Tue, 3 Nov 2020 13:10:05 +0100 X-MimeOLE: Produced By Microsoft Exchange V6.5 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C613DB@smartserver.smartshare.dk> In-Reply-To: <13044489.RHGIMAnax8@thomas> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH 15/15] mbuf: move pool pointer in hotterfirst half Thread-Index: AdaxMP3bKctIcuzgR/GII+18GDIpyAAn0m7A References: <20201029092751.3837177-1-thomas@monjalon.net> <3086227.yllCKDRCEA@thomas> <98CBD80474FA8B44BF855DF32C47DC35C613CD@smartserver.smartshare.dk> <13044489.RHGIMAnax8@thomas> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Thomas Monjalon" , , Cc: "Ajit Khaparde" , "Ananyev, Konstantin" , "Andrew Rybchenko" , , "Yigit, Ferruh" , , "Richardson, Bruce" , , , , , , , , , "Matan Azrad" , "Shahaf Shuler" Subject: Re: [dpdk-dev] [PATCH 15/15] mbuf: move pool pointer in hotterfirst half 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" PiBGcm9tOiBUaG9tYXMgTW9uamFsb24gW21haWx0bzp0aG9tYXNAbW9uamFsb24ubmV0XQ0KPiBT ZW50OiBNb25kYXksIE5vdmVtYmVyIDIsIDIwMjAgNDo1OCBQTQ0KPiANCj4gK0NjIHRlY2hib2Fy ZA0KPiANCj4gV2UgbmVlZCBiZW5jaG1hcmsgbnVtYmVycyBpbiBvcmRlciB0byB0YWtlIGEgZGVj aXNpb24uDQo+IFBsZWFzZSBhbGwsIHByZXBhcmUgc29tZSBhcmd1bWVudHMgYW5kIG51bWJlcnMg c28gd2UgY2FuIGRpc2N1c3MNCj4gdGhlIG1idWYgbGF5b3V0IGluIHRoZSBuZXh0IHRlY2hib2Fy ZCBtZWV0aW5nLg0KDQpJIHByb3Bvc2UgdGhhdCB0aGUgdGVjaGJvYXJkIGNvbnNpZGVycyB0aGlz IGZyb20gdHdvIGFuZ2VsczoNCg0KMS4gTG9uZyB0ZXJtIGdvYWxzIGFuZCB0aGVpciByZWxhdGl2 ZSBwcmlvcml0eS4gSS5lLiB3aGF0IGNhbiBiZQ0KYWNoaWV2ZWQgd2l0aCB3aWRlLXJhbmdpbmcg bW9kaWZpY2F0aW9ucywgcmVxdWlyaW5nIHlldCBhbm90aGVyIEFCSQ0KYnJlYWsgYW5kIGR1ZSBu b3RpY2VzLg0KDQoyLiBTaG9ydCB0ZXJtIGdvYWxzLCBpLmUuIHdoYXQgY2FuIGJlIGFjaGlldmVk IGZvciB0aGlzIHJlbGVhc2UuDQoNCg0KTXkgc3VnZ2VzdGlvbnMgZm9sbG93Li4uDQoNCjEuIFJl Z2FyZGluZyBsb25nIHRlcm0gZ29hbHM6DQoNCkkgaGF2ZSBhcmd1ZWQgdGhhdCBzaW1wbGUgZm9y d2FyZGluZyBvZiBub24tc2VnbWVudGVkIHBhY2tldHMgdXNpbmcNCm9ubHkgdGhlIGZpcnN0IG1i dWYgY2FjaGUgbGluZSBjYW4gYmUgYWNoaWV2ZWQgYnkgbWFraW5nIHRocmVlDQptb2RpZmljYXRp b25zOg0KDQphKSBNb3ZlIG0tPnR4X29mZmxvYWQgdG8gdGhlIGZpcnN0IGNhY2hlIGxpbmUuDQpi KSBVc2UgYW4gOCBiaXQgcGt0bWJ1ZiBtZW1wb29sIGluZGV4IGluIHRoZSBmaXJzdCBjYWNoZSBs aW5lLA0KICAgaW5zdGVhZCBvZiB0aGUgNjQgYml0IG0tPnBvb2wgcG9pbnRlciBpbiB0aGUgc2Vj b25kIGNhY2hlIGxpbmUuDQpjKSBEbyBub3QgYWNjZXNzIG0tPm5leHQgd2hlbiB3ZSBrbm93IHRo YXQgaXQgaXMgTlVMTC4NCiAgIFdlIGNhbiB1c2UgbS0+bmJfc2VncyA9PSAxIG9yIHNvbWUgb3Ro ZXIgaW52YXJpYW50IGFzIHRoZSBnYXRlLg0KICAgSXQgY2FuIGJlIGltcGxlbWVudGVkIGJ5IGFk ZGluZyBhbiBtLT5uZXh0IGFjY2Vzc29yIGZ1bmN0aW9uOg0KICAgc3RydWN0IHJ0ZV9tYnVmICog cnRlX21idWZfbmV4dChzdHJ1Y3QgcnRlX21idWYgKiBtKQ0KICAgew0KICAgICAgIHJldHVybiBt LT5uYl9zZWdzID09IDEgPyBOVUxMIDogbS0+bmV4dDsNCiAgIH0NCg0KUmVnYXJkaW5nIHRoZSBw cmlvcml0eSBvZiB0aGlzIGdvYWwsIEkgZ3Vlc3MgdGhhdCBzaW1wbGUgZm9yd2FyZGluZw0Kb2Yg bm9uLXNlZ21lbnRlZCBwYWNrZXRzIGlzIHByb2JhYmx5IHRoZSBwYXRoIHRha2VuIGJ5IHRoZSBt YWpvcml0eQ0Kb2YgcGFja2V0cyBoYW5kbGVkIGJ5IERQREsuDQoNCg0KQW4gYWx0ZXJuYXRpdmUg Z29hbCBjb3VsZCBiZToNCkRvIG5vdCB0b3VjaCB0aGUgc2Vjb25kIGNhY2hlIGxpbmUgZHVyaW5n IFJYLg0KQSBjb21tZW50IGluIHRoZSBtYnVmIHN0cnVjdHVyZSBzYXlzIHNvLCBidXQgaXQgaXMg bm90IHRydWUgYW55bW9yZS4NCg0KKEkgZ3Vlc3MgdGhhdCByZWdyZXNzaW9uIHRlc3RpbmcgZGlk bid0IGNhdGNoIHRoaXMgYmVjYXVzZSB0aGUgdGVzdHMNCnBlcmZvcm0gVFggaW1tZWRpYXRlbHkg YWZ0ZXIgUlgsIHNvIHRoZSBjYWNoZSBtaXNzIGp1c3QgbW92ZXMgZnJvbQ0KdGhlIFRYIHRvIHRo ZSBSWCBwYXJ0IG9mIHRoZSB0ZXN0IGFwcGxpY2F0aW9uLikNCg0KDQoyLiBSZWdhcmRpbmcgc2hv cnQgdGVybSBnb2FsczoNCg0KVGhlIGN1cnJlbnQgRFBESyBzb3VyY2UgY29kZSBsb29rcyB0byBt ZSBsaWtlIG0tPm5leHQgaXMgdGhlIG1vc3QNCmZyZXF1ZW50bHkgYWNjZXNzZWQgZmllbGQgaW4g dGhlIHNlY29uZCBjYWNoZSBsaW5lLCBzbyBpdCBtYWtlcyBzZW5zZQ0KbW92aW5nIHRoaXMgdG8g dGhlIGZpcnN0IGNhY2hlIGxpbmUsIHJhdGhlciB0aGFuIG0tPnBvb2wuDQpCZW5jaG1hcmtpbmcg bWF5IGhlbHAgaGVyZS4NCg0KSWYgd2UgLSB3aXRob3V0IGJyZWFraW5nIHRoZSBBQkkgLSBjYW4g aW50cm9kdWNlIGEgZ2F0ZSB0byBhdm9pZA0KYWNjZXNzaW5nIG0tPm5leHQgd2hlbiB3ZSBrbm93 IHRoYXQgaXQgaXMgTlVMTCwgd2Ugc2hvdWxkIGtlZXAgaXQgaW4NCnRoZSBzZWNvbmQgY2FjaGUg bGluZS4NCg0KSW4gdGhpcyBjYXNlLCBJIHdvdWxkIHByZWZlciB0byBtb3ZlIG0tPnR4X29mZmxv YWQgdG8gdGhlIGZpcnN0IGNhY2hlDQpsaW5lLCB0aGVyZWJ5IHByb3ZpZGluZyBhIGZpZWxkIGF2 YWlsYWJsZSBmb3IgYXBwbGljYXRpb24gdXNlLCB1bnRpbA0KdGhlIGFwcGxpY2F0aW9uIHByZXBh cmVzIHRoZSBwYWNrZXQgZm9yIHRyYW5zbWlzc2lvbi4NCg0KDQo+IA0KPiANCj4gMDEvMTEvMjAy MCAyMTo1OSwgTW9ydGVuIEJyw7hydXA6DQo+ID4gPiBGcm9tOiBUaG9tYXMgTW9uamFsb24gW21h aWx0bzp0aG9tYXNAbW9uamFsb24ubmV0XQ0KPiA+ID4gU2VudDogU3VuZGF5LCBOb3ZlbWJlciAx LCAyMDIwIDU6MzggUE0NCj4gPiA+DQo+ID4gPiAwMS8xMS8yMDIwIDEwOjEyLCBNb3J0ZW4gQnLD uHJ1cDoNCj4gPiA+ID4gT25lIHRoaW5nIGhhcyBhbHdheXMgcHV6emxlZCBtZToNCj4gPiA+ID4g V2h5IGRvIHdlIHVzZSA2NCBiaXRzIHRvIGluZGljYXRlIHdoaWNoIG1lbW9yeSBwb29sDQo+ID4g PiA+IGFuIG1idWYgYmVsb25ncyB0bz8NCj4gPiA+ID4gVGhlIHBvcnRpZCBvbmx5IHVzZXMgMTYg Yml0cyBhbmQgYW4gaW5kaXJlY3Rpb24gaW5kZXguDQo+ID4gPiA+IFdoeSBkb24ndCB3ZSB1c2Ug dGhlIHNhbWUga2luZCBvZiBpbmRpcmVjdGlvbiBpbmRleCBmb3IgbWJ1Zg0KPiBwb29scz8NCj4g PiA+DQo+ID4gPiBJIHdvbmRlciB3aGF0IHdvdWxkIGJlIHRoZSBjb3N0IG9mIGluZGlyZWN0aW9u LiBQcm9iYWJseQ0KPiBuZWdsZWN0aWJsZS4NCj4gPg0KPiA+IFByb2JhYmx5LiBUaGUgcG9ydGlk IGRvZXMgaXQsIGFuZCB0aGF0IGluZGlyZWN0aW9uIGlzIGhlYXZpbHkgdXNlZA0KPiBldmVyeXdo ZXJlLg0KPiA+DQo+ID4gVGhlIHNpemUgb2YgbWJ1ZiBtZW1vcnkgcG9vbCBpbmRpcmVjdGlvbiBh cnJheSBzaG91bGQgYmUgY29tcGlsZSB0aW1lDQo+IGNvbmZpZ3VyYWJsZSwgbGlrZSB0aGUgc2l6 ZSBvZiB0aGUgcG9ydGlkIGluZGlyZWN0aW9uIGFycmF5Lg0KPiA+DQo+ID4gQW5kIGZvciByZWZl cmVuY2UsIHRoZSBpbmRpcmVjdGlvbiBhcnJheSB3aWxsIGZpdCBpbnRvIG9uZSBjYWNoZSBsaW5l DQo+IGlmIHdlIGRlZmF1bHQgdG8gOCBtYnVmIHBvb2xzLCB0aHVzIHN1cHBvcnRpbmcgYW4gOCBD UFUgc29ja2V0IHN5c3RlbQ0KPiB3aXRoIG9uZSBtYnVmIHBvb2wgcGVyIENQVSBzb2NrZXQsIG9y IGEgNCBDUFUgc29ja2V0IHN5c3RlbSB3aXRoIHR3bw0KPiBtYnVmIHBvb2xzIHBlciBDUFUgc29j a2V0Lg0KPiA+DQo+ID4gKEFuZCBhcyBhIHNpZGUgbm90ZTogT3VyIGFwcGxpY2F0aW9uIGlzIG9w dGltaXplZCBmb3Igc2luZ2xlLXNvY2tldA0KPiBzeXN0ZW1zLCBhbmQgd2Ugb25seSB1c2Ugb25l IG1idWYgcG9vbC4gSSBndWVzcyBtYW55IGFwcGxpY2F0aW9ucyB3ZXJlDQo+IGRldmVsb3BlZCB3 aXRob3V0IGNhcmVmdWxseSBvcHRpbWl6aW5nIGZvciBtdWx0aS1zb2NrZXQgc3lzdGVtcywgYW5k DQo+IGFsc28ganVzdCB1c2Ugb25lIG1idWYgcG9vbC4gSW4gdGhlc2UgY2FzZXMsIHRoZSBtYnVm IHN0cnVjdHVyZSBkb2Vzbid0DQo+IHJlYWxseSBuZWVkIGEgcG9vbCBmaWVsZC4gQnV0IGl0IGlz IHN0aWxsIHRoZXJlLCBhbmQgdGhlIERQREsgbGlicmFyaWVzDQo+IHVzZSBpdCwgc28gd2UgZGlk bid0IGJvdGhlciByZW1vdmluZyBpdC4pDQo+ID4NCj4gPiA+IEkgdGhpbmsgaXQgaXMgYSBnb29k IHByb3Bvc2FsLi4uDQo+ID4gPiAuLi4gZm9yIG5leHQgeWVhciwgYWZ0ZXIgYSBkZXByZWNhdGlv biBub3RpY2UuDQo+ID4gPg0KPiA+ID4gPiBJIGNhbiBlYXNpbHkgaW1hZ2luZSB1c2luZyBvbmUg bWJ1ZiBwb29sIChvciBwZXJoYXBzIGEgZmV3IHBvb2xzKQ0KPiA+ID4gPiBwZXIgQ1BVIHNvY2tl dCAob3IgcGVyIHBoeXNpY2FsIG1lbW9yeSBidXMgY2xvc2VzdCB0byBhbiBhdHRhY2hlZA0KPiBO SUMpLA0KPiA+ID4gPiBidXQgbm90IG1vcmUgdGhhbiAyNTYgbWJ1ZiBtZW1vcnkgcG9vbHMgaW4g dG90YWwuDQo+ID4gPiA+IFNvLCBsZXQncyBpbnRyb2R1Y2UgYW4gbWJ1ZnBvb2xpZCBsaWtlIHRo ZSBwb3J0aWQsDQo+ID4gPiA+IGFuZCBjdXQgdGhpcyBtYnVmIGZpZWxkIGRvd24gZnJvbSA2NCB0 byA4IGJpdHMuDQo+IA0KPiBXZSB3aWxsIG5lZWQgdG8gbWVhc3VyZSB0aGUgcGVyZiBvZiB0aGUg c29sdXRpb24uDQo+IFRoZXJlIGlzIGEgY2hhbmNlIGZvciB0aGUgY29zdCB0byBiZSB0b28gbXVj aCBoaWdoLg0KPiANCj4gDQo+ID4gPiA+IElmIHdlIGFsc28gY3V0IGRvd24gbS0+cGt0X2xlbiBm cm9tIDMyIHRvIDI0IGJpdHMsDQo+ID4gPg0KPiA+ID4gV2hvIGlzIHVzaW5nIHBhY2tldHMgbGFy Z2VyIHRoYW4gNjRrPyBBcmUgMTYgYml0cyBlbm91Z2g/DQo+ID4NCj4gPiBJIHBlcnNvbmFsbHkg Y29uc2lkZXIgNjRrIGEgcmVhc29uYWJsZSBwYWNrZXQgc2l6ZSBsaW1pdC4gRXhvdGljDQo+IGFw cGxpY2F0aW9ucyB3aXRoIGV2ZW4gbGFyZ2VyIHBhY2tldHMgd291bGQgaGF2ZSB0byBsaXZlIHdp dGggdGhpcw0KPiBjb25zdHJhaW50LiBCdXQgbGV0J3Mgc2VlIGlmIHRoZXJlIGFyZSBhbnkgb2Jq ZWN0aW9ucy4gRm9yIHJlZmVyZW5jZSwNCj4gNjRrIGNvcnJlc3BvbmRzIHRvIGNhLiA0NCBFdGhl cm5ldCAoMTUwMCBieXRlKSBwYWNrZXRzLg0KPiA+DQo+ID4gKFRoZSBsaW1pdCBjb3VsZCBiZSA2 NTUzNSBieXRlcywgdG8gYXZvaWQgdHJhbnNsYXRpb24gb2YgdGhlIHZhbHVlIDANCj4gaW50byA2 NTUzNiBieXRlcy4pDQo+ID4NCj4gPiBUaGlzIG1vZGlmaWNhdGlvbiB3b3VsZCBnbyBuaWNlbHkg aGFuZCBpbiBoYW5kIHdpdGggdGhlIG1idWYgcG9vbA0KPiBpbmRpcmVjdGlvbiBtb2RpZmljYXRp b24uDQo+ID4NCj4gPiAuLi4gYWZ0ZXIgeWV0IGFub3RoZXIgcm91bmQgb2YgQUJJIHN0YWJpbGl0 eSBkaXNjdXNzaW9ucywNCj4gZGVwcmVjaWF0aW9uIG5vdGljZXMsIGFuZCBzbyBvbi4gOi0pDQo+ IA0KPiBBZnRlciBtb3JlIHRob3VnaHRzLCBJJ20gYWZyYWlkIDY0ayBpcyB0b28gc21hbGwgaW4g c29tZSBjYXNlcy4NCj4gQW5kIDI0LWJpdCBtYW5pcHVsYXRpb24gd291bGQgcHJvYmFibHkgYnJl YWsgcGVyZm9ybWFuY2UuDQo+IEknbSBhZnJhaWQgd2UgYXJlIHN0dWNrIHdpdGggMzItYml0IGxl bmd0aC4NCg0KWWVzLCAyNCBiaXQgbWFuaXB1bGF0aW9uIHdvdWxkIHByb2JhYmx5IGJyZWFrIHBl cmZvcm1hbmNlLg0KDQpQZXJoYXBzIGEgc29sdXRpb24gZXhpc3RzIHdpdGggMTYgYml0cyAobGVh c3Qgc2lnbmlmaWNhbnQgYml0cykgZm9yDQp0aGUgY29tbW9uIGNhc2VzLCBhbmQgOCBiaXRzIG1v cmUgKG1vc3Qgc2lnbmlmaWNhbnQgYml0cykgZm9yIHRoZSBsZXNzDQpjb21tb24gY2FzZXMuIEp1 c3QgdGhpbmtpbmcgb3V0IGxvdWQgaGVyZS4uLg0KDQo+IA0KPiA+ID4gPiB3ZSBjYW4gZ2V0IHRo ZSA4IGJpdCBtYnVmIHBvb2wgaW5kZXggaW50byB0aGUgZmlyc3QgY2FjaGUgbGluZQ0KPiA+ID4g PiBhdCBubyBhZGRpdGlvbmFsIGNvc3QuDQo+ID4gPg0KPiA+ID4gSSBsaWtlIHRoZSBpZGVhLg0K PiA+ID4gSXQgbWVhbnMgd2UgZG9uJ3QgbmVlZCB0byBtb3ZlIHRoZSBwb29sIHBvaW50ZXIgbm93 LA0KPiA+ID4gaS5lLiBpdCBkb2VzIG5vdCBoYXZlIHRvIHJlcGxhY2UgdGhlIHRpbWVzdGFtcCBm aWVsZC4NCj4gPg0KPiA+IEFncmVlZCEgRG9uJ3QgbW92ZSBtLT5wb29sIHRvIHRoZSBmaXJzdCBj YWNoZSBsaW5lOyBpdCBpcyBub3QgdXNlZA0KPiBmb3IgUlguDQo+ID4NCj4gPiA+DQo+ID4gPiA+ IEluIG90aGVyIHdvcmRzOiBUaGlzIHdvdWxkIGZyZWUgdXAgYW5vdGhlciA2NCBiaXQgZmllbGQg aW4gdGhlDQo+IG1idWYNCj4gPiA+IHN0cnVjdHVyZSENCj4gPiA+DQo+ID4gPiBUaGF0IHdvdWxk IGJlIGdyZWF0IQ0KPiA+ID4NCj4gPiA+DQo+ID4gPiA+IEFuZCBldmVuIHRob3VnaCB0aGUgbS0+ bmV4dCBwb2ludGVyIGZvciBzY2F0dGVyZWQgcGFja2V0cyByZXNpZGVzDQo+ID4gPiA+IGluIHRo ZSBzZWNvbmQgY2FjaGUgbGluZSwgdGhlIGxpYnJhcmllcyBhbmQgYXBwbGljYXRpb24ga25vd3MN Cj4gPiA+ID4gdGhhdCBtLT5uZXh0IGlzIE5VTEwgd2hlbiBtLT5uYl9zZWdzIGlzIDEuDQo+ID4g PiA+IFRoaXMgcHJvdmVzIHRoYXQgbXkgc3VnZ2VzdGlvbiB3b3VsZCBtYWtlIHRvdWNoaW5nDQo+ ID4gPiA+IHRoZSBzZWNvbmQgY2FjaGUgbGluZSB1bm5lY2Vzc2FyeSAoaW4gc2ltcGxlIGNhc2Vz KSwNCj4gPiA+ID4gZXZlbiBmb3IgcmUtaW5pdGlhbGl6aW5nIHRoZSBtYnVmLg0KPiA+ID4NCj4g PiA+IFNvIHlvdSB0aGluayB0aGUgIm5leHQiIHBvaW50ZXIgc2hvdWxkIHN0YXkgaW4gdGhlIHNl Y29uZCBoYWxmIG9mDQo+IG1idWY/DQo+ID4gPg0KPiA+ID4gSSBmZWVsIHlvdSB3b3VsZCBsaWtl IHRvIG1vdmUgdGhlIFR4IG9mZmxvYWRzIGluIHRoZSBmaXJzdCBoYWxmDQo+ID4gPiB0byBpbXBy b3ZlIHBlcmZvcm1hbmNlIG9mIHZlcnkgc2ltcGxlIGFwcHMuDQo+ID4NCj4gPiAiVmVyeSBzaW1w bGUgYXBwcyIgc291bmRzIGxpa2UgYSBtaW5vcml0eSBvZiBhcHBzLiBJIHdvdWxkIHJhdGhlciBz YXkNCj4gInZlcnkgc2ltcGxlIHBhY2tldCBoYW5kbGluZyBzY2VuYXJpb3MiLCBlLmcuIGZvcndh cmRpbmcgb2Ygbm9ybWFsIHNpemUNCj4gbm9uLXNlZ21lbnRlZCBwYWNrZXRzLiBJIHdvdWxkIGd1 ZXNzIHRoYXQgdGhlIHZhc3QgbWFqb3JpdHkgb2YgcGFja2V0cw0KPiBoYW5kbGVkIGJ5IERQREsg YXBwbGljYXRpb25zIGFjdHVhbGx5IG1hdGNoIHRoaXMgc2NlbmFyaW8uIFNvIEknbQ0KPiBwcm9w b3NpbmcgdG8gb3B0aW1pemUgZm9yIHdoYXQgSSB0aGluayBpcyB0aGUgbW9zdCBjb21tb24gc2Nl bmFyaW8uDQo+ID4NCj4gPiBJZiBzZWdtZW50ZWQgcGFja2V0cyBhcmUgY29tbW9uLCB0aGVuIG0t Pm5leHQgY291bGQgYmUgbW92ZWQgdG8gdGhlDQo+IGZpcnN0IGNhY2hlIGxpbmUuIEJ1dCBpdCB3 aWxsIG9ubHkgaW1wcm92ZSB0aGUgcHVyZSBSWCBzdGVwcyBvZiB0aGUNCj4gcGlwZWxpbmUuIFdo ZW4gcHJlcGFyaW5nIHRoZSBwYWNrZXQgZm9yIFRYLCBtLT50eF9vZmZsb2FkcyB3aWxsIG5lZWQg dG8NCj4gYmUgc2V0LCBhbmQgdGhlIHNlY29uZCBjYWNoZSBsaW5lIGNvbWVzIGludG8gcGxheS4g U28gSSdtIHdvbmRlcmluZyBob3cNCj4gYmlnIHRoZSBiZW5lZml0IG9mIGhhdmluZyBtLT5uZXh0 IGluIHRoZSBmaXJzdCBjYWNoZSBsaW5lIHJlYWxseSBpcyAtDQo+IGFzc3VtaW5nIHRoYXQgbS0+ bmJfc2VncyB3aWxsIGJlIGNoZWNrZWQgYmVmb3JlIGFjY2Vzc2luZyBtLT5uZXh0Lg0KPiA+DQo+ ID4gPiBJIGFtIHRoaW5raW5nIHRoZSBvcHBvc2l0ZTogd2UgY291bGQgaGF2ZSBzb21lIGR5bmFt aWMgZmllbGRzIHNwYWNlDQo+ID4gPiBpbiB0aGUgZmlyc3QgaGFsZiB0byBpbXByb3ZlIHBlcmZv cm1hbmNlIG9mIGNvbXBsZXggUnguDQo+ID4gPiBOb3RlOiB3ZSBjYW4gYWRkIGEgZmxhZyBoaW50 IGZvciBmaWVsZCByZWdpc3RyYXRpb24gaW4gdGhpcyBmaXJzdA0KPiBoYWxmLg0KPiA+ID4NCj4g Pg0KPiA+IEkgaGF2ZSBoYWQgdGhlIHNhbWUgdGhvdWdodHMuIEhvd2V2ZXIsIEkgd291bGQgcHJl ZmVyIGJlaW5nIGFibGUgdG8NCj4gZm9yd2FyZCBvcmRpbmFyeSBwYWNrZXRzIHdpdGhvdXQgdXNp bmcgdGhlIHNlY29uZCBtYnVmIGNhY2hlIGxpbmUgYXQNCj4gYWxsIChhbHRob3VnaCBvbmx5IGlu IHNwZWNpZmljIHNjZW5hcmlvcyBsaWtlIG15IGV4YW1wbGUgYWJvdmUpLg0KPiA+DQo+ID4gRnVy dGhlcm1vcmUsIHRoZSBhcHBsaWNhdGlvbiBjYW4gYWJ1c2UgdGhlIDY0IGJpdCBtLT50eF9vZmZs b2FkIGZpZWxkDQo+IGZvciBwcml2YXRlIHB1cnBvc2VzIHVudGlsIGl0IGlzIHRpbWUgdG8gcHJl cGFyZSB0aGUgcGFja2V0IGZvciBUWCBhbmQNCj4gcGFzcyBpdCBvbiB0byB0aGUgZHJpdmVyLiBU aGlzIGhhY2sgc29tZXdoYXQgcmVzZW1ibGVzIGEgZHluYW1pYyBmaWVsZA0KPiBpbiB0aGUgZmly c3QgY2FjaGUgbGluZSwgYW5kIHdpbGwgbm90IGJlIHBvc3NpYmxlIGlmIHRoZSBtLT5wb29sIG9y IG0tDQo+ID5uZXh0IGZpZWxkIGlzIG1vdmVkIHRoZXJlLg0KPiANCj4gDQo+IA0KDQo=