From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by dpdk.org (Postfix) with ESMTP id 357082E83 for ; Wed, 12 Jul 2017 17:57:29 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Wed, 12 Jul 2017 17:57:27 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC359EB297@smartserver.smartshare.dk> In-Reply-To: <20170712083550.62bd9442@xeon-e3> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH v2 6/8] mbuf: use 2 bytes for port andnbsegments Thread-Index: AdL7JJQ1i+zaKYrLQSqxG1mSRNpS4QAAa+Iw References: <1488966121-22853-1-git-send-email-olivier.matz@6wind.com> <130C769A-180F-4C74-A974-EA51E7FAD1EC@intel.com> <98CBD80474FA8B44BF855DF32C47DC359EB27E@smartserver.smartshare.dk> <53564501.0VCaTE2lYi@xps> <98CBD80474FA8B44BF855DF32C47DC359EB285@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC359EB28A@smartserver.smartshare.dk> <98CBD80474FA8B44BF855DF32C47DC359EB28F@smartserver.smartshare.dk> <20170712083550.62bd9442@xeon-e3> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Stephen Hemminger" Cc: "Yang, Zhiyong" , "Wiles, Keith" , "Thomas Monjalon" , "DPDK" , "Olivier Matz" , "Wang, Zhihong" , "Yuanhan Liu" , "Ananyev, Konstantin" , "Richardson, Bruce" , "Chilikin, Andrey" , "Jan Blunck" , =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= , , Subject: Re: [dpdk-dev] [PATCH v2 6/8] mbuf: use 2 bytes for port andnbsegments 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: , X-List-Received-Date: Wed, 12 Jul 2017 15:57:29 -0000 PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91 bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIFN0ZXBoZW4gSGVtbWluZ2VyDQo+IFNlbnQ6IFdl ZG5lc2RheSwgSnVseSAxMiwgMjAxNyA1OjM2IFBNDQo+IFRvOiBNb3J0ZW4gQnLDuHJ1cA0KPiBD YzogWWFuZywgWmhpeW9uZzsgV2lsZXMsIEtlaXRoOyBUaG9tYXMgTW9uamFsb247IERQREs7IE9s aXZpZXIgTWF0ejsNCj4gV2FuZywgWmhpaG9uZzsgWXVhbmhhbiBMaXU7IEFuYW55ZXYsIEtvbnN0 YW50aW47IFJpY2hhcmRzb24sIEJydWNlOw0KPiBDaGlsaWtpbiwgQW5kcmV5OyBKYW4gQmx1bmNr OyBOw6lsaW8gTGFyYW5qZWlybzsNCj4gYXJ5YmNoZW5rb0Bzb2xhcmZsYXJlLmNvbTsgamVyaW4u amFjb2JAY2F2aXVtbmV0d29ya3MuY29tDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRD SCB2MiA2LzhdIG1idWY6IHVzZSAyIGJ5dGVzIGZvciBwb3J0DQo+IGFuZG5ic2VnbWVudHMNCj4g DQo+IE9uIFdlZCwgMTIgSnVsIDIwMTcgMTE6NTA6MzggKzAyMDANCj4gTW9ydGVuIEJyw7hydXAg PG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT4gd3JvdGU6DQo+IA0KPiA+ID4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPiA+IEZyb206IFlhbmcsIFpoaXlvbmcgW21haWx0bzp6aGl5b25n LnlhbmdAaW50ZWwuY29tXQ0KPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDEyLCAyMDE3IDEx OjAyIEFNDQo+ID4gPiBUbzogTW9ydGVuIEJyw7hydXA7IFdpbGVzLCBLZWl0aA0KPiA+ID4gQ2M6 IFRob21hcyBNb25qYWxvbjsgRFBESzsgT2xpdmllciBNYXR6OyBXYW5nLCBaaGlob25nOyBZdWFu aGFuDQo+IExpdTsNCj4gPiA+IEFuYW55ZXYsIEtvbnN0YW50aW47IFJpY2hhcmRzb24sIEJydWNl OyBDaGlsaWtpbiwgQW5kcmV5OyBKYW4NCj4gPiA+IEJsdW5jazsgTsOpbGlvIExhcmFuamVpcm87 IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207DQo+ID4gPiBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3 b3Jrcy5jb20NCj4gPiA+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtQQVRDSCB2MiA2LzhdIG1i dWY6IHVzZSAyIGJ5dGVzIGZvciBwb3J0DQo+ID4gPiBhbmRuYnNlZ21lbnRzDQo+ID4gPg0KPiA+ ID4NCj4gPiA+DQo+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+IEZy b206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgTW9ydGVu DQo+IEJyw7hydXANCj4gPiA+ID4gU2VudDogV2VkbmVzZGF5LCBKdWx5IDEyLCAyMDE3IDM6MjUg UE0NCj4gPiA+ID4gVG86IFdpbGVzLCBLZWl0aCA8a2VpdGgud2lsZXNAaW50ZWwuY29tPg0KPiA+ ID4gPiBDYzogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgRFBESyA8ZGV2 QGRwZGsub3JnPjsNCj4gPiA+ID4gT2xpdmllciBNYXR6IDxvbGl2aWVyLm1hdHpANndpbmQuY29t PjsgV2FuZywgWmhpaG9uZw0KPiA+ID4gPiA8emhpaG9uZy53YW5nQGludGVsLmNvbT47IFl1YW5o YW4gTGl1DQo+ID4gPiA+IDx5dWFuaGFuLmxpdUBsaW51eC5pbnRlbC5jb20+OyBBbmFueWV2LCBL b25zdGFudGluDQo+ID4gPiA+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgUmljaGFy ZHNvbiwgQnJ1Y2UNCj4gPiA+ID4gPGJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPjsgQ2hpbGlr aW4sIEFuZHJleQ0KPiA+ID4gPiA8YW5kcmV5LmNoaWxpa2luQGludGVsLmNvbT47IEphbiBCbHVu Y2sgPGpibHVuY2tAaW5mcmFkZWFkLm9yZz47DQo+ID4gPiBOw6lsaW8NCj4gPiA+ID4gTGFyYW5q ZWlybyA8bmVsaW8ubGFyYW5qZWlyb0A2d2luZC5jb20+Ow0KPiA+ID4gPiBhcnliY2hlbmtvQHNv bGFyZmxhcmUuY29tOyBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20NCj4gPiA+ID4gU3Vi amVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIIHYyIDYvOF0gbWJ1ZjogdXNlIDIgYnl0ZXMgZm9y IHBvcnQNCj4gPiA+ID4gYW5kIG5ic2VnbWVudHMNCj4gPiA+ID4NCj4gPiA+ID4gPiAtLS0tLU9y aWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3Vu Y2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgV2lsZXMsDQo+ID4gPiA+ID4gS2VpdGgNCj4gPiA+ ID4gPiBTZW50OiBUdWVzZGF5LCBKdWx5IDExLCAyMDE3IDY6NDggUE0NCj4gPiA+ID4gPiBUbzog TW9ydGVuIEJyw7hydXANCj4gPiA+ID4gPiBDYzogVGhvbWFzIE1vbmphbG9uOyBEUERLOyBPbGl2 aWVyIE1hdHo7IFdhbmcsIFpoaWhvbmc7IFl1YW5oYW4NCj4gPiA+IExpdTsNCj4gPiA+ID4gPiBB bmFueWV2LCBLb25zdGFudGluOyBSaWNoYXJkc29uLCBCcnVjZTsgQ2hpbGlraW4sIEFuZHJleTsg SmFuDQo+ID4gPiA+ID4gQmx1bmNrOyBOw6lsaW8gTGFyYW5qZWlybzsgYXJ5YmNoZW5rb0Bzb2xh cmZsYXJlLmNvbTsNCj4gPiA+ID4gPiBqZXJpbi5qYWNvYkBjYXZpdW1uZXR3b3Jrcy5jb20NCj4g PiA+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjIgNi84XSBtYnVmOiB1c2Ug MiBieXRlcyBmb3INCj4gPiA+ID4gPiBwb3J0IGFuZCBuYnNlZ21lbnRzDQo+ID4gPiA+ID4NCj4g PiA+ID4gPg0KPiA+ID4gPiA+ID4gT24gSnVsIDExLCAyMDE3LCBhdCAxMDoyMyBBTSwgTW9ydGVu IEJyw7hydXANCj4gPiA+ID4gPiA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPiB3cm90ZToNCj4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ ID4gPiA+PiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxm IE9mIFRob21hcw0KPiA+ID4gPiA+ID4+IE1vbmphbG9uDQo+ID4gPiA+ID4gPj4gU2VudDogVHVl c2RheSwgSnVseSAxMSwgMjAxNyA1OjA2IFBNDQo+ID4gPiA+ID4gPj4gVG86IE1vcnRlbiBCcsO4 cnVwDQo+ID4gPiA+ID4gPj4gQ2M6IGRldkBkcGRrLm9yZzsgV2lsZXMsIEtlaXRoOyBPbGl2aWVy IE1hdHo7IFdhbmcsIFpoaWhvbmc7DQo+ID4gPiA+ID4gPj4gWXVhbmhhbiBMaXU7IEFuYW55ZXYs IEtvbnN0YW50aW47IFJpY2hhcmRzb24sIEJydWNlOw0KPiA+ID4gPiA+ID4+IENoaWxpa2luLCBB bmRyZXk7IEphbiBCbHVuY2s7IG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tOw0KPiA+ID4gPiA+ ID4+IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207IGplcmluLmphY29iQGNhdml1bW5ldHdvcmtz LmNvbQ0KPiA+ID4gPiA+ID4+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MiA2Lzhd IG1idWY6IHVzZSAyIGJ5dGVzIGZvcg0KPiA+ID4gcG9ydA0KPiA+ID4gPiA+IGFuZA0KPiA+ID4g PiA+ID4+IG5ic2VnbWVudHMNCj4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4+IDExLzA3LzIwMTcg MTU6MzAsIE1vcnRlbiBCcsO4cnVwOg0KPiA+ID4gPiA+ID4+PiBNb3J0ZW4gQnLDuHJ1cCB3cm90 ZToNCj4gPiA+ID4gPiA+Pj4+IE9saXZpZXIgTWF0eiB3cm90ZToNCj4gPiA+ID4gPiA+Pj4+PiBB cyBJIHNhaWQgaW4gYSBwcmV2aW91cyBtZXNzYWdlLCBJIHRoaW5rIGEgZ29vZCBmaXJzdA0KPiBz dGVwDQo+ID4gPiA+ID4gPj4+Pj4gd291bGQgYmUgdG8gaW50cm9kdWNlIGEgdHlwZWRlZiBmb3Ig dGhlIHBvcnQgbnVtYmVyOg0KPiA+ID4gPiA+ID4+IHJ0ZV9ldGhfcG9ydF9udW1fdC4NCj4gPiA+ ID4gPiA+Pj4+PiBJdCBjYW4gc3RpbGwgYmUgdWludDhfdCBmb3Igbm93LCBhbmQgY2FuIGJlIHN3 aXRjaGVkIHRvDQo+IDE2DQo+ID4gPiA+ID4gPj4+Pj4gYml0cw0KPiA+ID4gPiA+ID4+IGluDQo+ ID4gPiA+ID4gPj4+Pj4gb25lIHN0ZXAgd2hlbiBldmVyeW9uZSB1c2VzIHRoaXMgbmV3IHR5cGUu DQo+ID4gPiA+ID4gPj4+Pg0KPiA+ID4gPiA+ID4+Pj4gSSB0aGluayB0aGF0IERQREsgZm9sbG93 cyB0aGUgTGludXggdHJhZGl0aW9uIG9mIGV4cG9zaW5nDQo+ID4gPiA+ID4gPj4+PiB0aGUgdmFy aWFibGUgdHlwZXMsIGFzIG9wcG9zZWQgdG8gaGlkaW5nIHRoZW0gYmVoaW5kDQo+IHR5cGVkZWZz Lg0KPiA+ID4gVGhpcw0KPiA+ID4gPiA+IGhhcw0KPiA+ID4gPiA+ID4+Pj4gdGhlIHVuZm9ydHVu YXRlIGNvbnNlcXVlbmNlIHRoYXQgd2hlbiBhIHZhcmlhYmxlIHR5cGUNCj4gPiA+ID4gPiA+Pj4+ IGNoYW5nZXMsIGl0IGhhcyB0byBiZSBjaGFuZ2VkIGV2ZXJ5d2hlcmUuDQo+ID4gPiA+ID4gPj4+ Pg0KPiA+ID4gPiA+ID4+Pj4gSW50cm9kdWNpbmcgYSBydGVfZXRoX3BvcnRfbnVtX3Qgd2lsbCBy ZXF1aXJlIGNoYW5naW5nIHRoZQ0KPiA+ID4gc2FtZQ0KPiA+ID4gPiA+ID4+Pj4gZmlsZXMgYXQg dGhlIHNhbWUgbG9jYXRpb25zIGV2ZXJ5d2hlcmUsIHNvIG5vdCBldmVuIGFzIGENCj4gPiA+ID4g PiA+Pj4+IHRlbXBvcmFyeSBzb2x1dGlvbiB3aWxsIGl0IGJlIGJlbmVmaWNpYWwuDQo+ID4gPiA+ ID4gPj4gWy4uLl0NCj4gPiA+ID4gPiA+Pj4gV2hhdCBJIHdhcyB0cnlpbmcgdG8gY29tbXVuaWNh dGUgd2l0aCBteSBsb25nIGFyZ3VtZW50DQo+IGFib3V0DQo+ID4gPiA+ID4gPj4+IHR5cGUNCj4g PiA+ID4gPiA+PiBkZWZpbml0aW9ucyB3YXM6IFdoZW4gdGhlIHR5cGUgY2hhbmdlZCBmcm9tIDgg Yml0IHRvIDE2IGJpdCwNCj4gPiA+ID4gPiA+PiB0aGUNCj4gPiA+ID4gPiB0eXBlDQo+ID4gPiA+ ID4gPj4gbmVlZHMgdG8gY2hhbmdlIGZyb20gdWludDhfdCB0byB1aW50MTZfdCBldmVyeXdoZXJl IHRvbywNCj4gPiA+ID4gPiA+PiBpbmNsdWRpbmcNCj4gPiA+ID4gPiBpbg0KPiA+ID4gPiA+ID4+ IHRoZSBldGhkZXYgQVBJcy4NCj4gPiA+ID4gPiA+Pj4NCj4gPiA+ID4gPiA+Pj4gRG9uJ3Qgc3Rh cnQgYnJlYWtpbmcgY29kaW5nIGNvbnZlbnRpb25zIGhlcmUgYnkgaGlkaW5nIHRoZQ0KPiA+ID4g PiA+ID4+PiB0eXBlIG9mDQo+ID4gPiA+ID4gPj4gdGhpcyB2YXJpYWJsZS4NCj4gPiA+ID4gPiA+ Pg0KPiA+ID4gPiA+ID4+IFNvLCBNb3J0ZW4sIHlvdSBhcmUgYWdhaW5zdCB0aGUgdHlwZWRlZiwg cmlnaHQ/DQo+ID4gPiA+ID4gPj4gQmVjYXVzZSB3ZSBuZWVkIHRvIGNoYW5nZSBpdCBldmVyeXdo ZXJlIGFueXdheSwgcmlnaHQ/DQo+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+PiBOb3RlOiBJIGhh dmUgbm8gc3Ryb25nIG9waW5pb24uDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSSdtIGFnYWlu c3QgdGhlIHR5cGVkZWYgYmVjYXVzZSBpdCB3b3VsZCBicmVhayBjb252ZW50aW9uLA0KPiBhbmQN Cj4gPiA+IEknbQ0KPiA+ID4gPiA+ID4gYQ0KPiA+ID4gPiA+IHN0cm9uZyBwcm9wb25lbnQgb2Yg Y29udmVudGlvbnMuIEluIG90aGVyIHByb2plY3RzLCBJJ20gYWxsIGZvcg0KPiA+ID4gPiA+IHR5 cGVkZWZzLCB2aXJ0dWFsIGNsYXNzZXMsIGluaGVyaXRhbmNlIGV0Yy4sIGJ1dCBEUERLIGZvbGxv d3MNCj4gPiA+ID4gPiB0aGUgTGludXggY29udmVudGlvbiBvZiBub3QgaGlkaW5nIHNpbXBsZSB0 eXBlcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBXZSBuZWVkIHRvIGNoYW5nZSBpdCBmcm9t IHVpbnQ4X3QgZXZlcnl3aGVyZSwgcmVnYXJkbGVzcyB3aGF0DQo+ID4gPiA+ID4gPiB3ZSBjaGFu Z2UgaXQgdG8uIChCdXQgaWYgd2UgbmVlZCB0byBjaGFuZ2UgaXQgYWdhaW4gc29tZXRpbWUNCj4g PiA+ID4gPiA+IGluIHRoZSBmdXR1cmUsIHRoZW4gYSB0eXBlZGVmIHdpbGwgc2F2ZSB1cyBuZXh0 IHRpbWUuKQ0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSWYgdGhlIG51bWJlciBvZiBwb3J0cyBnbyBi ZXlvbmQgNjRLIHRoZW4gSSB3aWxsIGJlIHRoZSBmaXJzdA0KPiA+ID4gPiA+IG9uZSAoaWYgc3Rp bGwgYWxpdmUpIHRvIGVhdCB0aGlzIGVtYWlsLiA6LSkgVGhlIG9ubHkgcmVhc29uIHRvDQo+ID4g PiA+ID4gaGF2ZQ0KPiA+ID4gbW9yZQ0KPiA+ID4gPiA+IHRoZW4NCj4gPiA+ID4gPiAyIGJ5dGVz IHdvdWxkIGJlIHRvIGVuY29kZSBzb21ldGhpbmcgaW50byB0aGUgcG9ydCBpZCB2YWx1ZSwNCj4g PiA+ID4gPiB3aGljaA0KPiA+ID4gSQ0KPiA+ID4gPiA+IGNvdWxkIHNlZSwgYnV0IGEgdmVyeSBz bGltIGNoYW5jZSBJTUhPLg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSG93 ZXZlciwgaWYgd2UgY2hhbmdlIHRoZSBjb252ZW50aW9uIGFuZCBzdGFydCBoaWRpbmcgc2ltcGxl DQo+ID4gPiA+ID4gPiB0eXBlcywNCj4gPiA+ID4gPiB0aGV5IHN0aWxsIG5lZWQgdGhlIHJ0ZV8g cHJlZml4IHJlZ2FyZGxlc3MgaWYgdGhleSBhcmUgcG9wdWxhcg0KPiA+ID4gPiA+IG9yIG9ic2N1 cmUgdHlwZXMuIEV2ZW4gc3RydWN0IHJ0ZV9tYnVmIGhhcyB0aGUgcnRlXyBwcmVmaXgsIGFuZA0K PiA+ID4gPiA+IEkgY29uc2lkZXIgdGhhdCBhIHZlcnkgcG9wdWxhciB0eXBlLiBJZiBzbywgcnRl X3BvcnRfdCB3b3VsZCBiZQ0KPiA+ID4gPiA+IGENCj4gPiA+IGdvb2QNCj4gPiA+ID4gPiBuYW1l IGZvciB0aGlzIHR5cGUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gTXkgcHJlZmVyZW5jZTog Rm9sbG93IGNvbnZlbnRpb24gYW5kIGNoYW5nZSBpdCB0byB1aW50MTZfdA0KPiA+ID4gPiA+IGV2 ZXJ5d2hlcmUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gTWVkIHZlbmxpZyBoaWxzZW4gLyBr aW5kIHJlZ2FyZHMNCj4gPiA+ID4gPiA+IC0gTW9ydGVuIEJyw7hydXANCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBBcyB3ZSBtdXN0IGNoYW5nZSB0aGUgdWludDhfdCB0byB1aW50 MTZfdCwgdGhlbiBJIHdvdWxkIGxpa2UgaXQNCj4gPiA+ID4gPiB0byBiZSBtb3JlIGRlc2NyaXB0 aXZlIHZpYSBhIHR5cGVkZWYuIEkgcmVhbGx5IGRvIG5vdCBzZWUgdXMNCj4gPiA+ID4gPiBuZWVk aW5nDQo+ID4gPiB0bw0KPiA+ID4gPiA+IGNoYW5nZSBpdCBhZ2FpbiBpbiB0aGUgbmVhciBmdXR1 cmUuIFRoZSBvbmx5IHJlYXNvbiB0byBtYWtlIGl0DQo+IGENCj4gPiA+ID4gPiB0eXBlZGVmIGlz IHRvIGJlIGFibGUgdG8gaWRlbnRpZnkgZnJvbSBqdXN0IHRoZSBwcm90b3R5cGUgb2YNCj4gdGhl DQo+ID4gPiA+ID4gZnVuY3Rpb24gdGhhdCBpdCB0YWtlcyBhIHBvcnQgSUQgdmFsdWUsIHdoaWNo IEkgYW0gaW4gZmF2b3Igb2YNCj4gPiA+IGRvaW5nDQo+ID4gPiA+ID4gaGVyZSBmb3IgdGhhdCBy ZWFzb24uDQo+ID4gPiA+DQo+ID4gPiA+IFRoYXQgaXMgbm90IGEgdmVyeSBnb29kIHJlYXNvbjog V2hlbiB1c2VkIGFzIGEgZnVuY3Rpb24NCj4gcGFyYW1ldGVyLA0KPiA+ID4gdGhlDQo+ID4gPiA+ IHR5cGUgaXMgb25seSBzaG93biBpbiB0aGUgZnVuY3Rpb24gZGVjbGFyYXRpb24sIHdoZXJlYXMg dGhlDQo+ID4gPiA+IHZhcmlhYmxlIG5hbWUgaXMgc2hvd24gZXZlcnkgdGltZSBpdCBpcyB1c2Vk IGluc2lkZSB0aGUgZnVuY3Rpb24uDQo+ID4gPiA+IFNvIHJlbWVtYmVyIHRvIGFsd2F5cyB1c2Ug bWVhbmluZ2Z1bCB2YXJpYWJsZSBuYW1lcywgc3VjaCBhcw0KPiA+ID4gPiAicG9ydCIgKGxpa2Ug aW4gdGhlIG1idWYgc3RydWN0dXJlKSBvciAicG9ydF9pZCIgKHVzZWQgaW4gb3RoZXINCj4gcGxh Y2VzKS4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFzIGZvciBPbGl2aWVy4oCZcyBz dGF0ZW1lbnQgYWJvdXQgdGhlIHR5cGVkZWYgbmFtZSBJIGRvIG5vdCBzZWUNCj4gPiA+ID4gPiB0 aGUgbmVlZCBmb3Ig4oCYX2V0aF8nIHRvIGJlIHBhcnQgb2YgdGhlIHR5cGVkZWYgYXMgaXQgY29u dmV5cyBubw0KPiA+ID4gPiA+IGV4dHJhIGluZm9ybWF0aW9uIGluIHRoZSBuYW1lLiBFdmVyeXRo aW5nIHBvcnQgcmVsYXRlZCBpbiBEUERLDQo+ID4gPiA+ID4gaXMgYSBldGhlcm5ldCB0eXBlIGRl dmljZSBvciBwb3J0LiBJZiB3ZSBkbyBhZGQgc29tZXRoaW5nIGxpa2UNCj4gPiA+ID4gPiBmaWJl ciBjaGFubmVsIG1heWJlIHJ0ZV9waWRfdCBpcyByZWFzb24gdG8gdGhhdCB0b28sIGJ1dCBpZiBp dA0KPiA+ID4gPiA+IGNvbnRhaW5zIOKAmF9ldGhf4oCZIGl0IHdvdWxkIG5vdC4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IEkgd291bGQgbGlrZSB0byBzZWUgbmFtZXMgdGhhdCBhcmUganVzdCBzaG9y dCBlbm91Z2ggdG8gY29udmV5DQo+ID4gPiA+ID4gdGhlIGluZm9ybWF0aW9uIGFuZCBub3QgYmUg cmVkdW5kYW50LiBJTUhPIHJ0ZV9waWRfdCBpcyBmaW5lLA0KPiA+ID4gPiA+IGJ1dCBpZiB3ZSB1 c2Ugc29tZSBzb21ldGhpbmcgc2ltaWxhciB0byB0aGUgbGVuZ3RoIG9mIHVpbnQ4X3QNCj4gPiA+ ID4gPiAoNykgb3IgdWludDE2X3QNCj4gPiA+ID4gPiAoOCkgY2hhcmFjdGVycyB0aGVuIHdlIHdv dWxkIG5vdCBoYXZlIHRvIGFsc28gcmVmb3JtYXQgdGhlIGxpbmUNCj4gPiA+IG1vcmUNCj4gPiA+ ID4gPiB0aGVuIG5lZWRlZC4gVXNpbmcgcnRlX3BpZF90IChwaWQgPT0gcG9ydF9pZCkgd2Ugb25s eSBleHRlbmQNCj4gdGhlDQo+ID4gPiA+ID4gbGVuZ3RoIGJ5IG9uZSAob3IgdHdvKSBjaGFyYWN0 ZXJzIGFuZCBtb3N0IGxpa2VseSB0aGUgYWRkZWQNCj4gPiA+ID4gPiBieXRlKHMpIHdpbGwgbm90 IGNhdXNlIG1vcmUgZm9ybWF0IHByb2JsZW1zIGluIHRoZSBjb2RlLg0KPiA+ID4gPg0KPiA+ID4g PiBJIHN0aWxsIGRvbid0IHN1cHBvcnQgdHlwZWRlZnMgZm9yIHNjYWxhciB0eXBlcy4gSSBjb25z aWRlciBpdA0KPiA+ID4gYWdhaW5zdA0KPiA+ID4gPiB0aGUgY29kaW5nIHN0eWxlLCBhbHRob3Vn aCBhZnRlciByZXZpZXdpbmcgdGhlIG9mZmljaWFsIERQREsNCj4gPiA+ID4gQ29kaW5nIFN0eWxl IGRvY3VtZW50YXRpb24NCj4gPiA+ID4gKGh0dHA6Ly9kcGRrLm9yZy9kb2MvZ3VpZGVzL2NvbnRy aWJ1dGluZy9jb2Rpbmdfc3R5bGUuaHRtbCksIEkNCj4gY2FuDQo+ID4gPiBzZWUNCj4gPiA+ID4g dGhhdCBpdCBpcyBub3QgZXhwbGljaXRseSBzdGF0ZWQuIFBsZWFzZSBhbHNvIG5vdGUgdGhhdCBz ZWN0aW9uDQo+ID4gPiA+IDEuNS43IG9mIHRoZSBEUERLIENvZGluZyBTdHlsZSBkb2N1bWVudGF0 aW9uIHNheXMgdGhhdCB0aGUgX3QNCj4gPiA+ID4gcG9zdGZpeA0KPiA+ID4gc2hvdWxkDQo+ID4g PiA+IGJlIGF2b2lkZWQuIEFueXdheSwgaWYgd2UgZW5kIHVwIHdpdGggYSB0eXBlZGVmLCBwbGVh c2UgZG9uJ3QgdXNlDQo+ID4gPiA+IHNvbWV0aGluZyByZXNlbWJsaW5nIHBpZF90IGtub3duIGZy b20gUE9TSVgNCj4gPiA+ID4gKGh0dHBzOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliYy9tYW51 YWwvaHRtbF9ub2RlL1Byb2Nlc3MtDQo+ID4gPiA+IElkZW50aWZpY2F0aW9uLmh0bWwpLg0KPiA+ ID4gPg0KPiA+ID4NCj4gPiA+IEhvdyBhYm91dCBydGVfZGV2X2lkX3Q/DQo+ID4gPg0KPiA+ID4g VGhhbmtzDQo+ID4gPiBaaGl5b25nDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ ID4gUmVnYXJkcywNCj4gPiA+ID4gPiBLZWl0aA0KPiA+DQo+ID4gSWYgdGhlIERQREsgQ29kaW5n IFN0eWxlIGlzIGJhc2VkIG9uIExpbnV4IENvZGluZyBTdHlsZSwgd2Ugc2hvdWxkDQo+ID4gYXZv aWQgdHlwZWRlZnMgaW4gZ2VuZXJhbCwgbm90IGp1c3QgZm9yIHN0cnVjdHVyZXMuIFBsZWFzZSBy ZWFkIExpbnVzDQo+ID4gVG9ydmFsZHMnIG9waW5pb25zIGFib3V0IGl0Og0KPiA+IGh0dHA6Ly95 YXJjaGl2ZS5uZXQvY29tcC9saW51eC90eXBlZGVmcy5odG1sDQo+ID4NCj4gPiBQZXJoYXBzIHRo ZSBEUERLIENvZGluZyBTdHlsZSBzaG91bGQgYmUgdXBkYXRlZCB0byBjbGFyaWZ5IHRoaXMuIChP cg0KPiA+IGlmIHdlIGRlY2lkZSBvdGhlcndpc2UsIHRvIGV4cGxpY2l0bHkgbWVudGlvbiB0aGlz IGRldmlhdGlvbiBmcm9tIHRoZQ0KPiA+IExpbnV4IGNvZGluZyBzdHlsZS4pDQo+IA0KPiBJdCBp cyBsb2dpY2FsIHRvIHVzZSB0eXBlZGVmJ3MgZm9yIHRoaXMga2luZCBvZiBzY2FsYXIgdHlwZSB0 aGF0IG1heQ0KPiBuZWVkIHRvIGNoYW5nZS4NCj4gTmFtZXMgbWF0dGVyLCBwbGVhc2UgYXZvaWQg cGlkIChjb25mdXNlIHdpdGggcG9zaXgpIGFuZCAgZGV2IChjb25mdXNlDQo+IHdpdGggZGV2aWNl IGlkKS4NCj4gSSB3b3VsZCBwcmVmZXI6IHJ0ZV9wb3J0aWRfdCBhbmQgcnRlX3F1ZXVlaWRfdA0K PiANCj4gTG9uZ2VyIHRlcm0sIHByb2JhYmx5IHJ0ZV9ldGhfZGV2aWNlc1tdIG5lZWRzIHRvIGdv LiBDaGFuZ2UgcG9ydCBpZA0KPiBpbnRvIHNvbWV0aGluZyBtb3JlIGxpa2UgaWZpbmRleC4gQW5k IHVzZSBzcGFyc2UgZGF0YSBzdHJ1Y3R1cmUgdG8NCj4gYWxsb3cgdmVyeSBsYXJnZSBudW1iZXIg b2YgZGV2aWNlcyBhbmQgbm9uLWNvbnRpZ3VvdXMgbG9va3VwLiBUaGluayBvZg0KPiBhIFZQTiBz ZXJ2ZXIgd2hlcmUgZWFjaCBWUE4gY29ubmVjdGlvbiBsb29rcyBsaWtlIGEgRFBESyBkZXZpY2Uu DQoNCldlIGFyZSB1c2luZyBhIG5vbi1jb250aWd1b3VzIGlmaW5kZXggaW4gb3VyIGZpcm13YXJl LCBmb3IgdmlydHVhbCBpbnRlcmZhY2VzIGFzIHlvdSBtZW50aW9uLCBzbyBJIGdldCB5b3VyIHBv aW50IGhlcmUhIEJ1dCB1bnRpbCBEUERLIGdldHMgdGhlcmUsIEkgc3VwcG9zZSB0aGUgRFBESyBw b3J0IGlkIGlzIGNvbnNpZGVyZWQgbW9yZSBvciBsZXNzIGNvbnRpZ3VvdXMuDQoNCllvdSBjbGVh cmx5IGhhdmUgYSBsb25nZXIgdHJhY2sgcmVjb3JkIHdvcmtpbmcgd2l0aCBMaW51cyB0aGFuIG1l LCBzbyBpZiB5b3UgaW50ZXJwcmV0IHRoZSBjb2Rpbmcgc3R5bGUgbGlrZSB0aGF0LCBJIHdpbGwg bm90IG9iamVjdCBhbnltb3JlIC0gYXMgbXkgb2JqZWN0aW9uIHdhcyBiYXNlZCBvbiBjb2Rpbmcg c3R5bGUuIEFuZCB3aWxsIHNvbWVvbmUgcGxlYXNlIHVwZGF0ZSB0aGUgRFBESyBDb2RpbmcgU3R5 bGUgZG9jdW1lbnQgYWNjb3JkaW5nbHkuLi4NCg0KcnRlX3BvcnRpZF90IGlzIGZpbmUgd2l0aCBt ZSwgYnV0IHdoeSBub3QganVzdCBydGVfcG9ydF90Pw0KDQpQUzogdWludDE2X3QgaXMgYSBzdGFu ZGFyZCBDIHR5cGUsIG5vdCBhIExpbnV4IHNwZWNpZmljIHR5cGUuDQoNCg0KTWVkIHZlbmxpZyBo aWxzZW4gLyBraW5kIHJlZ2FyZHMNCi0gTW9ydGVuIEJyw7hydXANCg0K