From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= Subject: Re: [RFC 0/8] mbuf: structure reorganization Date: Tue, 21 Feb 2017 16:18:50 +0100 Message-ID: <98CBD80474FA8B44BF855DF32C47DC359EAD0F@smartserver.smartshare.dk> References: <1485271173-13408-1-git-send-email-olivier.matz@6wind.com><2601191342CEEE43887BDE71AB9772583F111A29@irsmsx105.ger.corp.intel.com><20170216144807.7add2c71@platinum><20170216154619.GA115208@bricha3-MOBL3.ger.corp.intel.com><20170216171410.57bff4ed@platinum><98CBD80474FA8B44BF855DF32C47DC359EAD0D@smartserver.smartshare.dk> <20170221160440.58695572@glumotte.dev.6wind.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: "Bruce Richardson" , "Ananyev, Konstantin" , To: "Olivier MATZ" Return-path: Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id B5DF75599 for ; Tue, 21 Feb 2017 16:18:51 +0100 (CET) Content-class: urn:content-classes:message In-Reply-To: <20170221160440.58695572@glumotte.dev.6wind.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Q29tbWVudHMgaW5saW5lLg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogT2xpdmllciBNQVRaIFttYWlsdG86b2xpdmllci5tYXR6QDZ3aW5kLmNvbV0NCj4gU2VudDog VHVlc2RheSwgRmVicnVhcnkgMjEsIDIwMTcgNDowNSBQTQ0KPiBUbzogTW9ydGVuIEJyw7hydXAN Cj4gQ2M6IE9saXZpZXIgTWF0ejsgQnJ1Y2UgUmljaGFyZHNvbjsgQW5hbnlldiwgS29uc3RhbnRp bjsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtSRkMgMC84XSBtYnVm OiBzdHJ1Y3R1cmUgcmVvcmdhbml6YXRpb24NCj4gDQo+IEhpIE1vcnRlbiwNCj4gDQo+IE9uIFR1 ZSwgMjEgRmViIDIwMTcgMTU6MjA6MjMgKzAxMDAsIE1vcnRlbiBCcsO4cnVwDQo+IDxtYkBzbWFy dHNoYXJlc3lzdGVtcy5jb20+IHdyb3RlOg0KPiA+IENvbW1lbnRzIGF0IHRoZSBlbmQuDQo+ID4N Cj4gPg0KPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IGRldiBb bWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgT2xpdmllciBNYXR6DQo+ ID4gPiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgMTYsIDIwMTcgNToxNCBQTQ0KPiA+ID4gVG86 IEJydWNlIFJpY2hhcmRzb24NCj4gPiA+IENjOiBBbmFueWV2LCBLb25zdGFudGluOyBkZXZAZHBk ay5vcmcNCj4gPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtSRkMgMC84XSBtYnVmOiBzdHJ1 Y3R1cmUgcmVvcmdhbml6YXRpb24NCj4gPiA+DQo+ID4gPiBPbiBUaHUsIDE2IEZlYiAyMDE3IDE1 OjQ2OjE5ICswMDAwLCBCcnVjZSBSaWNoYXJkc29uDQo+ID4gPiA8YnJ1Y2UucmljaGFyZHNvbkBp bnRlbC5jb20+IHdyb3RlOg0KPiA+ID4gPiBPbiBUaHUsIEZlYiAxNiwgMjAxNyBhdCAwMjo0ODow N1BNICswMTAwLCBPbGl2aWVyIE1hdHogd3JvdGU6DQo+ID4gPiA+ID4gSGkgS29uc3RhbnRpbiwN Cj4gPiA+ID4gPg0KPiA+ID4gPiA+IFRoYW5rcyBmb3IgdGhlIGZlZWRiYWNrLg0KPiA+ID4gPiA+ IENvbW1lbnRzIGlubGluZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT24gTW9u LCA2IEZlYiAyMDE3IDE4OjQxOjI3ICswMDAwLCAiQW5hbnlldiwgS29uc3RhbnRpbiINCj4gPiA+ ID4gPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4gd3JvdGU6DQo+ID4gPiA+ID4gPiBI aSBPbGl2aWVyLA0KPiA+ID4gPiA+ID4gTG9va3MgZ29vZCBpbiBnZW5lcmFsLCBzb21lIGNvbW1l bnRzIGZyb20gbWUgYmVsb3cuDQo+ID4gPiA+ID4gPiBUaGFua3MNCj4gPiA+ID4gPiA+IEtvbnN0 YW50aW4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoZSBtYWlu IGNoYW5nZXMgYXJlOg0KPiA+ID4gPiA+ID4gPiAtIHJlb3JkZXIgc3RydWN0dXJlIHRvIGluY3Jl YXNlIHZlY3RvciBwZXJmb3JtYW5jZSBvbiBzb21lDQo+ID4gPiA+ID4gPiA+IG5vbi1pYSBwbGF0 Zm9ybXMuDQo+ID4gPiA+ID4gPiA+IC0gYWRkIGEgNjRiaXRzIHRpbWVzdGFtcCBmaWVsZCBpbiB0 aGUgMXN0IGNhY2hlIGxpbmUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBXb25kZXIgd2h5IGl0 IGRlc2VydmVzIHRvIGJlIGluIGZpcnN0IGNhY2hlIGxpbmU/DQo+ID4gPiA+ID4gPiBIb3cgaXQg ZGlmZmVycyBmcm9tIHNlcW4gYmVsb3cgKHB1cmUgU1cgc3R1ZmYgcmlnaHQgbm93KS4NCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IEluIGNhc2UgdGhlIHRpbWVzdGFtcCBpcyBzZXQgZnJvbSBhIE5JQyB2 YWx1ZSwgaXQgaXMgc2V0IGluIHRoZQ0KPiA+ID4gPiA+IFJ4IHBhdGguIFNvIHRoYXQncyB3aHkg SSB0aGluayBpdCBkZXNlcnZlIHRvIGJlIGxvY2F0ZWQgaW4gdGhlDQo+ID4gPiA+ID4gMXN0IGNh Y2hlIGxpbmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBBcyB5b3Ugc2FpZCwgdGhlIHNlcW4gaXMg YSBwdXJlIHN3IHN0dWZmIHJpZ2h0OiBpdCBpcyBzZXQgaW4gYQ0KPiA+ID4gPiA+IGxpYiwgbm90 IGluIGEgUE1EIHJ4IHBhdGguDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gLSBtLT5uZXh0LCBt LT5uYl9zZWdzLCBhbmQgbS0+cmVmY250IGFyZSBhbHdheXMgaW5pdGlhbGl6ZWQNCj4gPiA+ID4g PiA+ID4gZm9yIG1idWZzIGluIHRoZSBwb29sLCBhdm9pZGluZyB0aGUgbmVlZCBvZiBzZXR0aW5n DQo+ID4gPiA+ID4gPiA+IG0tPm5leHQNCj4gPiA+IChsb2NhdGVkDQo+ID4gPiA+ID4gPiA+IGlu IHRoZSAybmQgY2FjaGUgbGluZSkgaW4gdGhlIFJ4IHBhdGggZm9yIG1vbm8tc2VnbWVudA0KPiA+ ID4gPiA+ID4gPiBwYWNrZXRzLg0KPiA+ID4gPiA+ID4gPiAtIGNoYW5nZSBwb3J0IGFuZCBuYl9z ZWdzIHRvIDE2IGJpdHMNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBOb3QgdGhhdCBJIGFtIGNv bXBsZXRlbHkgYWdhaW5zdCBpdCwgYnV0IGNoYW5naW5nIG5iX3NlZ3MgdG8NCj4gPiA+ID4gPiA+ IDE2IGJpdHMgc2VlbXMgbGlrZSBhbiBvdmVya2lsbCB0byBtZS4NCj4gPiA+ID4gPiA+IEkgdGhp bmsgd2UgY2FuIGtlZXAgYW5kIGV4dHJhIDhiaXRzIGZvciBzb21ldGhpbmcgbW9yZSB1c2VmdWwN Cj4gPiA+ID4gPiA+IGluIGZ1dHVyZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEluIG15IGNhc2Us IEkgdXNlIHRoZSBtLT5uZXh0IGZpZWxkIHRvIGNoYWluIG1vcmUgdGhhbiAyNTYNCj4gPiA+ID4g PiBzZWdtZW50cyBmb3IgTDQgc29ja2V0IGJ1ZmZlcnMuIEl0IGFsc28gdXBkYXRlcyBuYl9zZWcg dGhhdCBjYW4NCj4gPiA+ID4gPiBvdmVyZmxvdy4gSXQncyBub3QgYSBiaWcgaXNzdWUgc2luY2Ug YXQgdGhlIGVuZCwgbmJfc2VnIGlzDQo+ID4gPiA+ID4gZGVjcmVtZW50ZWQgZm9yIGVhY2ggc2Vn bWVudC4gT24gdGhlIG90aGVyIGhhbmQsIGlmIEkgZW5hYmxlDQo+ID4gPiA+ID4gc29tZSBzYW5p dHkgY2hlY2tzIG9uIG1idWZzLCBpdCBjb21wbGFpbnMgYmVjYXVzZSB0aGUgbnVtYmVyIG9mDQo+ ID4gPiA+ID4gc2VnbWVudHMgaXMgbm90IGVxdWFsIHRvIG5iX3NlZy4NCj4gPiA+ID4gPg0KPiA+ ID4gPiA+IFRoZXJlIGlzIGFsc28gYW5vdGhlciB1c2UgY2FzZSB3aXRoIGZyYWdtZW50YXRpb24g YXMgZGlzY3Vzc2VkDQo+ID4gPiA+ID4gcmVjZW50bHk6IGh0dHA6Ly9kcGRrLm9yZy9kZXYvcGF0 Y2h3b3JrL3BhdGNoLzE5ODE5Lw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gT2YgY291cnNlLCBkZWFs aW5nIHdpdGggYSBsb25nIG1idWYgbGlzdCBpcyBub3QgdGhhdCBlZmZpY2llbnQsDQo+ID4gPiA+ ID4gYnV0IHRoZSBhcHBsaWNhdGlvbiBjYW4gbWFpbnRhaW4gYW5vdGhlciBzdHJ1Y3R1cmUgdG8N Cj4gYWNjZWxlcmF0ZQ0KPiA+ID4gPiA+IHRoZSBhY2Nlc3MgdG8gdGhlIG1pZGRsZS9lbmQgb2Yg dGhlIGxpc3QuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBGaW5hbGx5LCB3ZSBoYXZlIG90aGVyIGlk ZWFzIHRvIGdldCBhZGRpdGlvbmFsIDggYml0cyBpZg0KPiA+ID4gPiA+IHJlcXVpcmVkDQo+ID4g PiBpbg0KPiA+ID4gPiA+IHRoZSBmdXR1cmUsIHNvIEkgZG9uJ3QgdGhpbmsgaXQncyByZWFsbHkg YSBwcm9ibGVtLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+IC0gbW92ZSBzZXFuIGluIHRoZSAybmQgY2FjaGUgbGluZQ0KPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiBUaGluZ3MgZGlzY3Vzc2VkIGJ1dCBub3QgZG9uZSBpbiB0aGUgcGF0Y2hzZXQ6 DQo+ID4gPiA+ID4gPiA+IC0gbW92ZSByZWZjbnQgYW5kIG5iX3NlZ3MgdG8gdGhlIDJuZCBjYWNo ZSBsaW5lOiBtYW55DQo+ID4gPiA+ID4gPiA+IGRyaXZlcnMgc2V0cyB0aGVtIGluIHRoZSBSeCBw YXRoLCBzbyBpdCBjb3VsZCBpbnRyb2R1Y2UgYQ0KPiA+ID4gPiA+ID4gPiBwZXJmb3JtYW5jZSBy ZWdyZXNzaW9uLCBvcg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgd29uZGVyIGNhbiByZWZj bnQgb25seSBiZSBtb3ZlZCBpbnRvIHRoZSAyLW5kIGNhY2hlbGluZT8NCj4gPiA+ID4gPiA+IEFz IEkgdW5kZXJzdGFuZCB0aGFua3MgdG8gb3RoZXIgY2hhbmdlIChmcm9tIGFib3ZlKQ0KPiA+ID4g PiA+ID4gbS0+cmVmY250DQo+ID4gPiB3aWxsDQo+ID4gPiA+ID4gPiBhbHJlYWR5IGJlIGluaXRp YWxpemVkLCBzbyBSWCBjb2RlIGRvbid0IG5lZWQgdG8gdG91Y2ggaXQuDQo+ID4gPiA+ID4gPiBU aG91Z2ggeWVzLCBpdCBzdGlsbCB3b3VsZCByZXF1aXJlIGNoYW5nZXMgaW4gYWxsIFBNRHMuDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBZZXMsIEkgYWdyZWUsIHNvbWUgZmllbGRzIGNvdWxkIGJlIG1v dmVkIGluIHRoZSAybmQgY2FjaGUgbGluZQ0KPiA+ID4gPiA+IG9uY2UgYWxsIFBNRHMgc3RvcCB0 byB3cml0ZSB0aGVtIGluIFJYIHBhdGguIEkgcHJvcG9zZSB0byBpc3N1ZQ0KPiA+ID4gPiA+IHNv bWUgZ3VpZGVsaW5lcyB0byBQTUQgbWFpbnRhaW5lcnMgYXQgdGhlIHNhbWUgdGltZSB0aGUNCj4g cGF0Y2hzZXQNCj4gPiA+ID4gPiBpcyBwdXNoZWQuIFRoZW4gd2UgY2FuIGNvbnNpZGVyIGNoYW5n aW5nIGl0IGluIGEgZnV0dXJlDQo+IHZlcnNpb24sDQo+ID4gPiA+ID4gaW4gY2FzZSB3ZSBuZWVk IG1vcmUgcm9vbSBpbiB0aGUgMXN0IG1idWYgY2FjaGUgbGluZS4NCj4gPiA+ID4NCj4gPiA+ID4g SWYgd2UgYXJlIGNoYW5naW5nIHRoaW5ncywgd2Ugc2hvdWxkIHJlYWxseSBkbyBhbGwgdGhhdCBu b3csDQo+ID4gPiA+IHJhdGhlciB0aGFuIHN0b3JpbmcgdXAgZnV0dXJlIGJyZWFrcyB0byBtYnVm LiBXb3JzdCBjYXNlLCB3ZQ0KPiA+ID4gPiBzaG91bGQgcGxhbiBmb3IgaXQgaW1tZWRpYXRlbHkg YWZ0ZXIgdGhlIHJlbGVhc2Ugd2hlcmUgd2UgbWFrZQ0KPiA+ID4gPiB0aGVzZSBjaGFuZ2VzLiBI YXZlDQo+ID4gPiB0d28NCj4gPiA+ID4gcmVsZWFzZXMgdGhhdCBicmVhayBtYnVmIGltbWVkaWF0 ZWx5IGFmdGVyIGVhY2ggb3RoZXIgLSBhbmQNCj4gPiA+ID4gZmxhZ2dlZA0KPiA+ID4gYXMNCj4g PiA+ID4gc3VjaCwgYnV0IGtlZXAgaXQgc3RhYmxlIHRoZXJlYWZ0ZXIuIEkgZG9uJ3QgbGlrZSBo YXZpbmcNCj4gdGVjaG5pY2FsDQo+ID4gPiA+IGRlYnQgb24gbWJ1ZiBqdXN0IGFmdGVyIHdlIHN1 cHBvc2VkbHkgImZpeCIgaXQuDQo+ID4gPg0KPiA+ID4gSSB0aGluayB0aGVyZSBpcyBubyBuZWVk IHRvIGRvIHRoaXMgY2hhbmdlIG5vdy4gQW5kIEkgZG9uJ3QgZmVlbA0KPiA+ID4gZ29vZCB3aXRo IHRoZSBpZGVhIG9mIGhhdmluZyBhIHBhdGNoc2V0IHRoYXQgdXBkYXRlcyBhbGwgdGhlIFBNRHMN Cj4gdG8NCj4gPiA+IHJlbW92ZSB0aGUgYWNjZXNzIHRvIGEgZmllbGQgYmVjYXVzZSBpdCBtb3Zl ZCB0byB0aGUgMm5kIGNhY2hlIGxpbmUNCj4gPiA+IChlc3BlY2lhbGx5IHRoaW5raW5nIGFib3V0 IHZlY3RvciBQTURzKS4NCj4gPiA+DQo+ID4gPiBUaGF0J3Mgd2h5IEkgdGhpbmsgdGhlIHBsYW4g Y291bGQgYmU6DQo+ID4gPiAtIHB1c2ggYW4gdXBkYXRlZCB2ZXJzaW9uIG9mIHRoaXMgcGF0Y2hz ZXQgcXVpY2tseQ0KPiA+ID4gLSBhZHZlcnRpc2UgdG8gUE1EIG1haW50YWluZXJzICJ5b3UgZG9u J3QgbmVlZCB0byBzZXQgdGhlIG0tPm5leHQsDQo+ID4gPiAgIG0tPnJlZmNudCwgYW5kIG0tPm5i X3NlZ3MgaW4gdGhlIFJYIHBhdGgsIHBsZWFzZSB1cGRhdGUgeW91cg0KPiA+ID4gZHJpdmVycyIN Cj4gPiA+IC0gbGF0ZXIsIGlmIHdlIG5lZWQgbW9yZSByb29tIGluIHRoZSAxc3QgY2FjaGUgbGlu ZSBvZiB0aGUgbWJ1Ziwgd2UNCj4gPiA+ICAgY2FuIG1vdmUgcmVmY250IGFuZCBuYl9zZWcsIHBy b2JhYmx5IHdpdGhvdXQgaW1wYWN0aW5nIHRoZQ0KPiA+ID4gICBwZXJmb3JtYW5jZS4NCj4gPiA+ DQo+ID4gPg0KPiA+ID4gT2xpdmllcg0KPiA+DQo+ID4gSSBzdXBwb3NlIHlvdSBtZWFuIHRoYXQg UE1EcyBkb24ndCBuZWVkIHRvIC9pbml0aWFsaXplLyBtLT5uZXh0LA0KPiA+IG0tPnJlZmNudCBh bmQgbS0+bmJfc2Vncy4NCj4gPg0KPiA+IEZvcmdpdmUgbXkgaWdub3JhbmNlLCBhbmQgdGhpcyBp cyB3aWxkIHNwZWN1bGF0aW9uLCBidXQ6IFdvdWxkIGEgUE1EDQo+ID4gbm90IG5lZWQgdG8gc2V0 IG0tPm5leHQgYW5kIG0tPm5iX3NlZ3MgaWYgaXQgcmVjZWl2ZXMgYSBqdW1ib2dyYW0NCj4gPiBs YXJnZXIgdGhhbiBhbiBtYnVmIHBhY2tldCBidWZmZXI/IEFuZCBpZiB0aGlzIGlzIGEgcmVhbGlz dGljIHVzZQ0KPiA+IGNhc2UsIHRoZXNlIGZpZWxkcyBhY3R1YWxseSBkbyBiZWxvbmcgaW4gdGhl IDFzdCBjYWNoZSBsaW5lLiBQTUQNCj4gPiBkZXZlbG9wZXJzIHBsZWFzZSBjaGltZSBpbi4NCj4g DQo+IE5vdGhpbmcgdG8gYWRkIHRvIEJydWNlJ3MgYW5zd2VyIDopDQoNCkFDSyB0aGF0IQ0KDQo+ IA0KPiA+DQo+ID4gQW5kIEkgdGVuZCB0byBhZ3JlZSB3aXRoIEJydWNlIGFib3V0IG1ha2luZyBh bGwgdGhlc2UgbWJ1ZiBjaGFuZ2VzIGluDQo+ID4gb25lIGdvLCByYXRoZXIgdGhhbiBwb3N0cG9u aW5nIHNvbWUgb2YgdGhlbSB0byBsYXRlci4gRXNwZWNpYWxseQ0KPiA+IGJlY2F1c2UgdGhlIHBv c3Rwb25lbWVudCBhbHNvIGNsb3NlcyBhbmQgcmVvcGVucyB0aGUgd2hvbGUgZGlzY3Vzc2lvbg0K PiA+IGFuZCBkZWNpc2lvbiBwcm9jZXNzISAoTm90IGluaXRpYWxpemluZyBhIGZldyBmaWVsZHMg aW4gYSBQTUQgY2Fubm90DQo+ID4gcmVxdWlyZSBhIGxvdCBvZiB3b3JrIGJ5IHRoZSBQTUQgZGV2 ZWxvcGVycy4gTW92aW5nIHRoZSBmaWVsZHMgdG8gdGhlDQo+ID4gMm5kIGNhY2hlIGxpbmUgd2ls bCBpbiB0aGUgd29yc3QgY2FzZSBkZWdyYWRlIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUNCj4gPiBu b24tdXBkYXRlZCBQTURzLikNCj4gPg0KPiA+IEEgdHdvIHN0ZXAgcHJvY2VzcyBtYWtlcyBnb29k IHNlbnNlIGZvciB0aGUgZGV2ZWxvcGVycyBvZiBEUERLLCBidXQNCj4gPiBib3RoIHN0ZXBzIHNo b3VsZCBiZSB0YWtlbiB3aXRoaW4gdGhlIHNhbWUgcmVsZWFzZSwgc28gdGhleSBhcmUNCj4gPiB0 cmFuc3BhcmVudCB0byB0aGUgdXNlcnMgb2YgRFBESy4NCj4gDQo+IEkgZG9uJ3QgdGhpbmsgdGhp cyBpcyBkb2FibGUsIGtub3dpbmcgdGhlIHN1Ym1pc3Npb24gZGVhZCBsaW5lIGlzIGluDQo+IGxl c3MgdGhhbiAyIHdlZWtzLiBPbiBteSBzaWRlLCBob25lc3RseSwgSSBkb24ndCB3YW50IHRvIGRp dmUgaW4gdGhlDQo+IGNvZGUgb2YgaW50byBhbGwgUE1Ecy4gSSBmZWVsIHRoaXMgd291bGQgYmUg bW9yZSByaXNreSB0aGFuIGxldHRpbmcgdGhlDQo+IFBNRCBtYWludGFpbmVycyB1cGRhdGUgdGhl aXIgb3duIFBNRCBjb2RlLg0KPiANCj4gT2xpdmllcg0KDQpJIHdhcyBhc3N1bWluZyB0aGF0IHRo ZSB3b3JrIG9mIHVwZGF0aW5nIHRoZSBQTUQgY29kZSBhY2NvcmRpbmcgdG8gdGhlIG5ldyBtYnVm IGNvZGUgd291bGQgYmUgbGVmdCB0byB0aGUgUE1EIGRldmVsb3BlcnMuIEkuZS4geW91IHRha2Ug dGhlIGZpcnN0IHN0ZXAgKG9mIHVwZGF0aW5nIHRoZSBtYnVmIGNvbXBsZXRlbHkpLCBhbmQgdGhl IFBNRCBkZXZlbG9wZXJzL21haW50YWluZXJzIHRha2UgdGhlIHNlY29uZCBzdGVwLg0KDQpBbHRo b3VnaCBJIGFtIG5vdCBkb2luZyBhbnkgb2YgdGhlIGFjdHVhbCB3b3JrIGhlcmUsIGl0IHNlZW1z IGxpa2UgYSByZWxhdGl2ZWx5IHNtYWxsIHRhc2sgZm9yIGVhY2ggUE1EIG1haW50YWluZXIgdG8g dXBkYXRlIGhpcyBQTUQgYWNjb3JkaW5nbHksIHNvIHBlcmhhcHMgeW91IHNob3VsZCBhc2sgdGhl bSBkaXJlY3RseSBhYm91dCB0aGUgZGVhZGxpbmUgaXNzdWUuIEZyb20gYSBwcm9qZWN0IHJlbGVh c2UgcGVyc3BlY3RpdmUsIGNvbXBsZXRpbmcgdGhlIG1idWYgc3RydWN0dXJlIHJlb3JnYW5pemF0 aW9uIGluIG9uZSByZWxlYXNlIHNlZW1zIGJldHRlciB0aGFuIHBvc3Rwb25pbmcgc29tZSBvZiB0 aGUgaW50ZW5kZWQgbW9kaWZpY2F0aW9ucyBmb3IgbGF0ZXIuDQoNCk1lZCB2ZW5saWcgaGlsc2Vu IC8ga2luZCByZWdhcmRzDQotIE1vcnRlbiBCcsO4cnVwDQo=