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 E551F91E4 for ; Tue, 15 Sep 2015 11:39:28 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Date: Tue, 15 Sep 2015 11:39:22 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC358AF3C1@smartserver.smartshare.dk> In-Reply-To: X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH v4 0/2] ethdev: add port speed capability bitmap Thread-Index: AdDvk0ATstNqBI/VTjqyTu8AnQ6M1wABHZTg References: <20150909131037.GA25122@autoinstall.dev.6wind.com><2699193.9riTyGPe1z@xps13><2046894.c3eJ0QZGuc@xps13><98CBD80474FA8B44BF855DF32C47DC358AF3B7@smartserver.smartshare.dk><98CBD80474FA8B44BF855DF32C47DC358AF3BD@smartserver.smartshare.dk><20150915082544.GG25122@autoinstall.dev.6wind.com> From: =?UTF-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Marc Sune" , =?UTF-8?B?TsOpbGlvIExhcmFuamVpcm8=?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH v4 0/2] ethdev: add port speed capability bitmap X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Sep 2015 09:39:29 -0000 TmVsaW8sIE1hcmMsDQoNCiANCg0KSSB0aGluayBNYXJjIGlzIG9uIHRoZSByaWdodCB0cmFjayBo ZXJlOiBZb3Ugc2hvdWxkIGRlc2lnbiB0aGUgQVBJIGJhc2VkIG9uIHJlcXVpcmVtZW50cyBhbmQg dXNlZnVsbmVzcywgbm90IGJhc2VkIG9uIHdoYXQgaXMgYWxyZWFkeSBpbXBsZW1lbnRlZCBpbiBz b21lIGRyaXZlcnMuIEFuZCBhcyBNYXJjIHBvaW50ZWQgb3V0LCB0aGlzIGlzIGNvbnRyb2wgcGxh bmUgc3R1ZmYsIHNvIHBlcmZvcm1hbmNlIHNob3VsZCBub3QgYmUgYW4gaXNzdWUuDQoNCiANCg0K TGV0IG1lIHRocm93IGluIGFub3RoZXIgZGV0YWlsLiBSZWFkIGNsYXVzZSAyMi4yLjQuMi4xMyBp biB0aGUgSUVFRSA4MDIuMyBzdGFuZGFyZCB2ZXJ5IGNhcmVmdWxseS4gSXQgc2F5cyB0aGF0IHRo ZSBMaW5rIFN0YXR1cyByZWdpc3RlciBpbiB0aGUgUEhZIGxhdGNoZXMgYSBsaW5rIGZhaWx1cmUg dW50aWwgdGhlIExpbmsgU3RhdHVzIGJpdCBoYXMgYmVlbiByZWFkLiBUaGUgcHVycG9zZSBvZiB0 aGlzIGlzIHRvIG1ha2UgaXQgcG9zc2libGUgZm9yIHNsb3dseSBwb2xsaW5nIHNvZnR3YXJlIHRv IGRldGVjdCB0aGF0IHRoZSBsaW5rIGhhcyBiZWVuIHRlbXBvcmFyaWx5IGRvd24sIGV2ZW4gdGhv dWdoIGl0IGhhcyBjb21lIHVwIGFnYWluLiBXaHkgd291bGQgdGhlIGFwcGxpY2F0aW9uIG5lZWQg dG8ga25vdyB0aGF0IHRoZSBsaW5rIGhhcyBiZWVuIHRlbXBvcmFyaWx5IGRvd24sIHdoZW4gaXQg aXMgYWxyZWFkeSB1cCBhZ2Fpbj8gQmVjYXVzZSB0aGUgbGluayBtaWdodCBoYXZlIGNvbWUgdXAg aW4gYW5vdGhlciBzcGVlZC9kdXBsZXgsIGF1dG8gbmVnb3RpYXRpb24gb3IgZmxvdyBjb250cm9s IG1vZGUgdGhhbiBpdCB3YXMgYmVmb3JlLg0KDQogDQoNCkFuZCB3aGlsZSBJ4oCZbSBhdCBpdDog UmVtZW1iZXIgdGhlIGZsb3cgY29udHJvbCAoUEFVU0UpIG9wZXJhdGlvbnMuIEl0IGlzIGltcG9y dGFudCB0byBiZSBhYmxlIHRvIGVuYWJsZS9kaXNhYmxlIGZsb3cgY29udHJvbCDigJMgZXZlbiBj aGVhcCDigJx3ZWIgbWFuYWdlZOKAnSBzd2l0Y2hlcyBoYXZlIHRoZSBhYmlsaXR5IHRvIGRpc2Fi bGUgZmxvdyBjb250cm9sLg0KDQogDQoNCiANCg0KTWVkIHZlbmxpZyBoaWxzZW4gLyBraW5kIHJl Z2FyZHMNCg0KLSBNb3J0ZW4gQnLDuHJ1cA0KDQogDQoNCkZyb206IE1hcmMgU3VuZSBbbWFpbHRv Om1hcmNkZXZlbEBnbWFpbC5jb21dIA0KU2VudDogMTUuIHNlcHRlbWJlciAyMDE1IDEwOjQ4DQpU bzogTsOpbGlvIExhcmFuamVpcm8NCkNjOiBNb3J0ZW4gQnLDuHJ1cDsgVGhvbWFzIE1vbmphbG9u OyBkZXZAZHBkay5vcmc7IE9sZ2EgU2hlcm47IEFkcmllbiBNYXphcmd1aWwNClN1YmplY3Q6IFJl OiBbZHBkay1kZXZdIFtQQVRDSCB2NCAwLzJdIGV0aGRldjogYWRkIHBvcnQgc3BlZWQgY2FwYWJp bGl0eSBiaXRtYXANCg0KIA0KDQpJIHdpbGwgYW5zd2VyIE1vcnRlbiBpbiBhbm90aGVyIG1haWws IGJlY2F1c2UgSSBnb3QgaGlzIHBvaW50IG9uIHRoZSBBVVRPTkVHIGFzIGEgc2VwYXJhdGUgYml0 LCBhbmQgaXQgX21ha2VzXyBzZW5zZSB0byBtZS4NCg0KIA0KDQpCdXQgTmVpbG8sDQoNCiANCg0K MjAxNS0wOS0xNSAxMDoyNSBHTVQrMDI6MDAgTsOpbGlvIExhcmFuamVpcm8gPG5lbGlvLmxhcmFu amVpcm9ANndpbmQuY29tPjoNCg0KT24gVHVlLCBTZXAgMTUsIDIwMTUgYXQgMTI6NTA6MTFBTSAr MDIwMCwgTW9ydGVuIEJyw7hydXAgd3JvdGU6DQo+IENvbW1lbnRzIGlubGluZSwgbWFya2VkIE1C Pi4NCj4NCj4gTWVkIHZlbmxpZyBoaWxzZW4gLyBraW5kIHJlZ2FyZHMNCj4gLSBNb3J0ZW4gQnLD uHJ1cA0KPg0KPiBNYXJjIFN1bmUgPG1hcmNkZXZlbEBnbWFpbC5jb20+IG9uIDE0LiBzZXB0ZW1i ZXIgMjAxNSAyMzozNCB3cm90ZToNCj4NCj4gMjAxNS0wOS0xNCAxMjo1MiBHTVQrMDI6MDAgTW9y dGVuIEJyw7hydXAgPG1iQHNtYXJ0c2hhcmVzeXN0ZW1zLmNvbT46DQo+ID4gSXQgaXMgaW1wb3J0 YW50IHRvIGNvbnNpZGVyIHRoYXQgYSBtdWx0aXBhdGggbGluayAoYm9uZGluZyBldGMuKSBpcyBu b3QgYSBwaHlzaWNhbCBsaW5rLCBidXQgYSBsb2dpY2FsIGxpbmsgKGJ1aWx0IG9uIHRvcCBvZiBt dWx0aXBsZSBwaHlzaWNhbCBsaW5rcykuIFJlZ2FyZGxlc3Mgd2hldGhlciBpdCBpcyBhIExheWVy MiBsaW5rIGFnZ3JlZ2F0ZSAoSUVFRSA4MDIuMWFkLCBFdGhlcm5ldCBib25kaW5nLCBFdGhlckNo YW5uZWwsIERTTCBwYWlyIGJvbmRpbmcsIGV0Yy4pIG9yIGEgTGF5ZXIzIG11bHRpcGF0aCBsaW5r IChlLmcuIHNpbXVsdGFuZW91c2x5IHVzaW5nIFdpLUZpIGFuZCBtb2JpbGUgbmV0d29ya3MpLiBT byBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdHJ5aW5nIHRvIGltcG9zZSBwaHlzaWNhbCBsaW5rIHBy b3BlcnRpZXMgb24gYSBwdXJlbHkgbG9naWNhbCBsaW5rLiBMaWtld2lzZSwgaXQgZG9lc24ndCBt YWtlIHNlbnNlIHRvIGltcG9zZSBsb2dpY2FsIGxpbmsgcHJvcGVydGllcyBvbiBwaHlzaWNhbCBs aW5rcy4gSW4gb3RoZXIgd29yZHM6IERvbid0IGNvbnNpZGVyIGJvbmRpbmcgb3IgYW55IG90aGVy IGxvZ2ljYWwgbGluayB0eXBlcyB3aGVuIGRlc2lnbmluZyB0aGUgUEhZIEFQSS4NCj4NCj4gKzEN Cg0KKzEuDQoNCj4gIA0KPg0KPiA+IEkgdGhpbmsgdGhlcmUgaXMgY29uc2Vuc3VzIHRoYXQgMS8g KFBIWSBjYXBhYmlsaXRpZXMpIGFuZCAyLyAoUEhZIGFkdmVydGlzZW1lbnRzKSBzaG91bGQgdXNl IHRoZSBzYW1lIGRlZmluaXRpb25zLCBzcGVjaWZpY2FsbHkgYSBiaXRtYXAgZmllbGQuIEFuZCB3 aGVuIHlvdSBkaXNyZWdhcmQgYm9uZGluZywgSSBkb24ndCBzZWUgYW55IHJlYXNvbiB0byB1c2Ug ZGlmZmVyZW50IGRlZmluaXRpb25zIGZvciAzLyAoUEhZIG5lZ290aWF0aW9uIHJlc3VsdCkuIFRo aXMgbWFrZXMgaXQgb25lIHVuaWZpZWQgQVBJIGZvciBhbGwgdGhyZWUgcHVycG9zZXMuDQo+DQo+ IEFncmVlLg0KDQpJIGRvbid0IGFncmVlIHdpdGggdGhpcyBvbmUsIHNvbWUgUE1EcyBkb24ndCB1 c2UgdGhlIGFkdmVydGlzZSBvZg0KYXV0b25lZyByZXN1bHQgdG8gZ2V0IHRoZSBzcGVlZCBvciB0 aGUgZHVwbGV4LiAgWW91IG1ha2UgYQ0KZ2VuZXJhbGl0eSBmcm9tIHlvdXIgY2FzZSBhYm92ZSBh bGwgUE1Ecy4NCg0KIA0KDQpjYW4geW91IHBsZWFzZSBleHBsYWluIGhvdyBhIHBhcnRpY3VsYXIg UE1EIGlzIHJlY292ZXJpbmcgdGhlIGFjdHVhbCBsaW5rIHNwZWVkIGFuZCB0aGUgZHVwbGV4IGhh cyB0byBkbyB3aXRoIHRoZSBkZXNpZ24gb2YgdGhlIChnZW5lcmFsKSBBUEk/DQoNCiANCg0KCQ0K CU1lbGxhbm94IGdldCB0aGUgc3BlZWQsIGR1cGxleCBhbmQgc3RhdHVzIGluZm9ybWF0aW9uIGZy b20gSU9DVExzDQoJd2hpY2ggYXJlIG5vdCByZWxhdGVkIHRvIHlvdXIgYml0bWFwLiAgU28gYXQg bGVhc3QgZm9yIHRoaXMgUE1ELCB0aGVyZQ0KCWlzIGFscmVhZHkgYSBjb252ZXJzaW9uIGZyb20g MyBmaWVsZHMgdG8gYSBiaXRtYXAsIGtub3dpbmcgdGhhdCBpdCB3aWxsDQoJdXNlIHRoZSBzcGVl ZCBhcyBhbiBpbnRlZ2VyIGFmdGVyLiAgV2hhdCBpcyB0aGUgYmVuZWZpdCBvZiB5b3VyIHNvbHV0 aW9uPw0KDQogDQoNCkkgc2FpZCBhbHJlYWR5IEkgZG9uJ3QgaGF2ZSBhIHN0cm9uZyBwcmVmZXJl bmNlIGZvciAzLy4gQnV0IHN0ZWVyaW5nIHRoZSBkZXNpZ24gb2YgYW4gQVBJIHRocm91Z2ggYSAi bWluaW11bSBjb21tb24gZGVub21pbmF0b3IiIHByaW5jaXBsZSBpcyBub3QgYSBnb29kIGlkZWEs IHNwZWNpYWxseSBzaW5jZSB3ZSBhcmUgdGFsa2luZyBhYm91dCBhIHN1cGVyIHNpbXBsZSBtYXBw aW5nIGlzc3VlIGZvciB0aGlzIHNwZWNpZmljIFBNRC4NCg0KIA0KDQoJDQoJPiA+IE5lbGlvIHN1 Z2dlc3RlZCBhZGRpbmcgYSBzdXBwb3J0IGZ1bmN0aW9uIHRvIGNvbnZlcnQgdGhlIGJpdG1hcCBm aWVsZCB0byBhIHNwZWVkIHZhbHVlIGFzIGFuIGludGVnZXIuIEkgc3Ryb25nbHkgc3VwcG9ydCB0 aGlzLCBiZWNhdXNlIHlvdSBjYW5ub3QgZXhwZWN0IHRoZSBiaXRtYXAgdG8gYmUgb3JkZXJlZCBi eSBzcGVlZC4NCgk+DQoJPiBBZ3JlZSB3aXRoIE5lbGlvJnlvdS4gVGhpcyBpcyB1c2VmdWwuDQoJ DQoJSXQgd2FzIGV4YWN0bHkgdGhlIGV4dHJlbWUgb3Bwb3NpdGUsIGEgZnVuY3Rpb24gd2hpY2gg dGFrZXMgYQ0KCXJ0ZV9ldGhfbGluayB0byBhIGJpdG1hcCBpLmUuIHNwZWVkX3RvX2JtIChydGVf ZXRoX2xpbmsgbGluaykgYmVjYXVzZSwNCgl0aGUgc3BlZWQgaXMgbW9zdGx5IHVzZWQgYXMgYW4g aW50ZWdlciBhbmQgbm90IHNvbWUga2luZCBvZiBiaXRtYXAuDQoJDQoJPiA+IFRoaXMgc3VwcG9y dCBmdW5jdGlvbiB3aWxsIGJlIGFibGUgdG8gZGV0ZXJtaW5lIHdoaWNoIHNwZWVkIGlzIGhpZ2hl ciB3aGVuIGV4b3RpYyBzcGVlZHMgYXJlIGFkZGVkIHRvIHRoZSBiaXRtYXAuIFBsZWFzZSBleHRl bmQgdGhpcyBjb252ZXJzaW9uIGZ1bmN0aW9uIHRvIGdpdmUgdGhyZWUgb3V0cHV0IHBhcmFtZXRl cnM6IHNwZWVkLCBmdWxsL2hhbGYgZHVwbGV4LCBhdXRvIG5lZ290aWF0aW9uL25vbi1hdXRvIG5l Z290aWF0aW9uLCBvciBhZGQgdHdvIHNlcGFyYXRlIGZ1bmN0aW9ucyB0byBnZXQgdGhlIGR1cGxl eCBhbmQgYXV0by1uZWdvdGlhdGlvbi4NCgk+DQoJPiBTaW5jZSwgRnVsbC9IYWxmIGR1cGxleCBp cyBmb3IgbGVnYWN5IDEwLzEwME1icHMgb25seSAoYWZhaWspLCBJIGhhdmUgbXkgZG91YnRzIG9u IHVzaW5nIGEgYml0IGZvciBhbGwgc3BlZWRzLiBJIHdvdWxkIHN1Z2dlc3QgdG8gZGVmaW5lICh1 bnJvbGwpIDEwME0gKG9yIDEwME1fRkQpIGFuZCAxMDBNX0hELCBhbmQgdGhlIHNhbWUgMTBNYnBz LzFnYnBzLCBhcyBUaG9tYXMgd2FzIHN1Z2dlc3Rpbmcgc29tZSBtYWlscyBhZ28uDQoJPg0KCT4g VGhpcyB3YXMgZG9uZSBpbiB2NCAoaW1wbGljaXRlbHkgMTAwTSA9PSAxMDBNX0ZEKS4gU2VlIGJl bG93Lg0KCT4gIA0KCT4gTUI+IEkgZGlkbid0IGludGVuZCB0d28gYml0cyB0byBiZSBhbGxvY2F0 ZWQgaW4gdGhlIGJpdG1hcCBmb3IgYWxsIHNwZWVkcyB0byBzdXBwb3J0IGZ1bGwvaGFsZiBkdXBs ZXgsIG9ubHkgZm9yIHRoZSByZWxldmFudCBzcGVlZHMuIFNpbmNlIGZ1bGwgZHVwbGV4IGlzIGRv bWluYW50LCBJIGFncmVlIHdpdGggdGhlIHByZXZpb3VzIGRlY2lzaW9uIChvcmlnaW5hbGx5IHN1 Z2dlc3RlZCBieSBUaG9tYXMsIEkgdGhpbmspIHRvIG1ha2UgZnVsbCBkdXBsZXggaW1wbGljaXQg dW5sZXNzIGhhbGYgZHVwbGV4IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLiBFLmcuIDEwTV9IRCwg MTBNIChhbGlhcyAxME1fRkQpLCAxMDBNX0hELCAxMDBNIChhbGlhcyAxMDBNX0ZEKSwgMTAwME0g KG9yIDFHKSwgMjUwME0sIDEwRywgNDBHLCAxMDBHLCBldGMuDQoJPg0KCT4NCgk+ID4gSSBoYXZl bid0IHJlYWQgdGhlIHN1Z2dlc3RlZCBjb2RlLCBidXQgdGhlcmUgc2hvdWxkIGJlIHNvbWUgbWVh bnMgaW4gMi8gKGFkdmVydGlzZW1lbnRzKSB0byBkaXNhYmxlIGF1dG8gbmVnb3RpYXRpb24sIGUu Zy4gYSBzaW5nbGUgYml0IGluIHRoZSBiaXRtYXAgdG8gaW5kaWNhdGUgaWYgdGhlIHNwZWVkL2R1 cGxleC1pbmRpY2F0aW5nIGJpdHMgaW4gdGhlIGJpdG1hcCBtZWFucyBmb3JjZWQgc3BlZWQvZHVw bGV4IChpbiB3aGljaCBjYXNlIG9ubHkgYSBzaW5nbGUgc3BlZWQvZHVwbGV4LWJpdCBzaG91bGQg YmUgc2V0KSBvciBhdXRvIG5lZ290aWF0aW9uIGFkdmVydGlzZWQgc3BlZWQvZHVwbGV4IChpbiB3 aGljaCBjYXNlIG11bHRpcGxlIHNwZWVkL2R1cGxleC1iaXRzIGNhbiBiZSBzZXQpLg0KCT4NCgk+ IEFncmVlLg0KCT4NCgk+IHYzLzQgb2YgdGhpcyBwYXRjaCBhZGRzIHRoZSBiaXRtYXAgaW4gdGhl IGFkdmVydGlzZWQsIGFzIHBlciBkaXNjdXNzZWQsIHRvIHNlbGVjdCBhIGdyb3VwIG9mIHNwZWVk cyBUaGlzIGlzIG5vdCBpbXBsZW1lbnRlZCBieSBkcml2ZXJzIHlldCAoISkuDQoJPg0KCT4gU28s IGFzIG9mIHY0IG9mIHRoaXMgcGF0Y2gsIHRoZXJlIGNvdWxkIGJlOiBhKSBhdXRvbmVnIGFueSBz dXBwb3J0ZWQgc3BlZWQgKD0+IGJpdG1hcCA9PSAwKSBiKSBhdXRvbmVnIG92ZXIgZ3JvdXAgb2Yg c3BlZWRzICg9PiBtb3JlIHRoYW4gb25lIGJpdCBzZXQgaW4gdGhlIGJpdG1hcCkgYykgZm9yY2Vk IHNwZWVkIChvbmUgYW5kIG9ubHkgb25lIHNldCBpbiB0aGUgYml0bWFwKS4NCgk+DQoJPiBJIHRo aW5rIHRoaXMgaXMgcHJlY2lzZWx5IHdoYXQgeW91IG1lYW50ICsgYikgYXMgYSBib251cw0KCT4N Cgk+IE1CPiBUaGlzIHdhcyBub3Qgd2hhdCBJIG1lYW50LCBidXQgaXQgd2Fzbid0IHZlcnkgY2xl YXJseSB3cml0dGVuLCBzbyBJJ2xsIHRyeSBhZ2FpbjogQWRkIGFuIGFkZGl0aW9uYWwgc2luZ2xl IGJpdCAiTk9fQVVUT05FRyIgKG9yIHdoYXRldmVyIHlvdSB3YW50IHRvIG5hbWUgaXQpIHRvIHRo ZSAyLyAoYWR2ZXJ0aXNlbWVudHMpIGJpdG1hcCB0aGF0IGV4cGxpY2l0bHkgdHVybnMgb2ZmIGF1 dG8gbmVnb3RpYXRpb24gYW5kIHRyaWVzIHRvIGZvcmNlIHRoZSBzZWxlY3RlZCBzcGVlZC9kdXBs ZXggKGkuZS4gb25seSBvbmUgb3RoZXIgYml0IGNhbiBiZSBzZXQgaW4gdGhlIGJpdG1hcCB3aGVu IHRoZSBOT19BVVRPTkVHIGJpdCBpcyBzZXQpLiBZb3VyIGMpIG1ha2VzIGl0IGltcG9zc2libGUg dG8gdXNlIGF1dG8gbmVnb3RpYXRpb24gdG8gYWR2ZXJ0aXNlIGEgc3BlY2lmaWMgc3BlZWQvZHVw bGV4LCBlLmcuIDEwME1fRkQuIE15IHN1Z2dlc3RlZCBOT19BVVRPTkVHIGJpdCBjYW4gYWxzbyBi ZSB1c2VkIGluIDMvIChyZXN1bHQpIHRvIGluZGljYXRlIHRoYXQgdGhlIHNwZWVkIHdhcyBhIHJl c3VsdCBvZiBQYXJhbGxlbCBEZXRlY3Rpb24sIGkuZS4gdGhhdCBhdXRvIG5lZ290aWF0aW9uIGZh aWxlZCBvciB3YXMgZGlzYWJsZWQgaW4gZWl0aGVyIGVuZCBvZiB0aGUgbGluay4NCgk+DQoJPiBN Qj4gSG93ZXZlciwgSSBsaWtlIHlvdXIgc3VnZ2VzdGlvbiBhKS4NCgk+DQoJPiAgDQoJPiA+IEFu ZCBzb21lIG1lYW5zIGluIDMvIChyZXN1bHQpIGFuZCBtYXliZSAyLyAoYWR2ZXJ0aXNlbWVudHMp IHRvIHNlbGVjdCBhbmQvb3IgaW5kaWNhdGUgcGh5c2ljYWwgaW50ZXJmYWNlIGluIGR1YWwtcGVy c29uYWxpdHkgcG9ydHMgKGUuZy4gcG9ydHMgd2hlcmUgdGhlIFBIWSBoYXMgYm90aCBhbiBTRlAg YW5kIGEgUko0NSBjb25uZWN0b3IsIGJ1dCBvbmx5IG9uZSBvZiB0aGUgdHdvIGNhbiBiZSB1c2Vk IGF0IGFueSB0aW1lKS4NCgk+DQoJPiBGb3IgcnRlX2V0aF9saW5rX2dldCgpIEkgZG9uJ3QgaGF2 ZSBzdWNoIGEgc3Ryb25nIG9waW5pb24uIFlvdSBlaXRoZXINCgk+DQoJPiAqIGVuY29kZSB0aGUg bGluayBzcGVlZCBhbmQgZHVwbGV4IGFzIG9mIG5vdywgc2VwYXJhdGluZyBkdXBsZXggYW5kIG51 bWVyaWMgc3BlZWQuIEkgd291bGQgc3VnZ2VzdCB0byBhZGQgdGhlIGVuY29kZWQgc3BlZWQrZHVw bGV4IGJpdG1hcCBmbGFnIGZvciBjb25zaXN0ZW5jeSAoYWx0aG91Z2ggcmVkdW5kYW50KS4NCgk+ ICogb3IgeW91IHJldHVybiBhIHNpbmdsZSB2YWx1ZSwgdGhlIGJpdG1hcCB3aXRoIGEgc2luZ2xl IGZsYWcgc2V0IG9mIHRoZSB1bnJvbGxlZCBzcGVlZHMsIGFuZCB0aGVuIGhhdmUgdGhlIGhlbHBl cnMgaW50IHJ0ZV9ldGhfc3BlZWRfZnJvbV9ibShpbnQgdmFsX2JtKSBhbmQgYm9vbCBydGVfZXRo X2R1cGxleF9mcm9tX2JtKGludCB2YWxfYm0pLg0KCT4NCgk+IE1CPiBJIHByZWZlciB0aGUgbGF0 dGVyIG9mIHRoZSB0d28sIG9ubHkgYmVjYXVzZSBpdCBtYWtlcyAzLyAocmVzdWx0KSBjb25zaXN0 ZW50IHdpdGggMS8gKGNhcGFiaWxpdGllcykgYW5kIDIvIChhZHZlcnRpc2VtZW50cykuDQoJDQoJ U28gSSBhZ3JlZSBmb3IgMS8gY2FwYWJpbGl0aWVzIGFuZCAyLyBhZHZlcnRpc2VtZW50cy4NCgkN CglCdXQsIEkgZG9uJ3QgYWdyZWUgdG8gbW9kaWZ5IHJ0ZV9ldGhfbGlua19nZXQgQVBJDQoJKGFu ZCBydGVfZXRoX2xpbmsgc3RydWN0dXJlKSB0aHVzIDMvIHJlc3VsdC4NCglXZSBkb24ndCBuZWVk IGEgImNvbnNpc3RlbnQiIHJlc3VsdCwgd2UgbmVlZCBzb21ldGhpbmcgdXNhYmxlLiAgVGhpcyBp cw0KCW5vdCB0aGUgY2FzZSBvZiB0aGUgYml0bWFwIGFuZCB1c2luZyBzb21lIGNvbnZlcnNpb24g ZnVuY3Rpb25zLg0KCVJlbWVtYmVyIHRoYXQgdGhlIHNwZWVkIGFuZCBkdXBsZXggd2lsbCBub3Qg Y2hhbmdlIHVudGlsIHRoZSBuZXh0IGxpbmsNCglkb3duIGFuZCB0aGVyZSBpcyBhIGxvdCBvZiBj b2RlIHVzaW5nIHNwZWVkcyBhcyBpbnRlZ2Vycy4NCglZb3VyIHNvbHV0aW9uIHdpbGwganVzdCBp bmNyZWFzZSB0aGUgbnVtYmVyIG9mIGluc3RydWN0aW9uIHRvIGdldCB0aGUNCglzYW1lIHJlc3Vs dCwgaXMgdGhhdCBhIGJlbmVmaXQ/DQoNCiANCg0KU28gZG8geW91IHRoaW5rIHdlIHNob3VsZCBj YXJlIGFib3V0IHJvdWdobHkgMTBjeWNsZXMgKGF0IHZlcnkgbW9zdCkgd2hpY2ggaXMgd2hhdCBh IHVuaXF1ZSBzd2l0Y2ggY2FzZSBtYXBwaW5nIHdpbGwgdGFrZT8gV2UgYXJlIG5vdCB0YWxraW5n IGFib3V0IHRoZSBkYXRhcGxhbmUgaGVyZSwgTmVpbG8uDQoNCiANCg0KVGhlIGJlbmVmaXQgdGhh dCBNb3J0ZW4gaXMgYXJndWluZyBoZXJlIGlzIHRvIGhhdmUgYSB1bmlmaWVkIEFQSSwgY29uc2lz dGVudCBmb3IgdGhlIHVzZXIuIE9uY2UgbW9yZSwgSSBkb24ndCBoYXZlIGEgcHJlZmVyZW5jZSwg dGhvdWdoIEkgc2VlIHdoYXQgaGUgbWVhbnMuIEkgYW0gbm90IHN1cmUgaWYgdGhlIGJpdG1hcCBm b3IgcmV0cmlldmluZyB0aGUgbGluayBpcyByZWFsbHkgbW9yZSB1c2FibGUgdGhhbiB0aGUgY3Vy cmVudCBBUEksIHdoaWNoIGlzIElNSE8gd2hhdCBzaG91bGQgc3RlZXIgdGhlIGRpc2N1c3Npb24s IG5vdCBwZXJmb3JtYW5jZS4NCg0KIA0KDQptYXJjDQoNCiANCg0KCQ0KCUluIGFkZGl0aW9uLCBz b21lIFBNRHMgbmVlZCB0aGUgc3BlZWQgdG8gbWFrZSBzb21lIHN0dWZmIHdpdGggaXQsDQoJc28g dGhpcyBzdHJ1Y3R1cmUgd2lsbCBiZSByZXBsaWNhdGVkIGFsbCBvdmVyIERQREsuDQoJDQoJLS0N CglOw6lsaW8gTGFyYW5qZWlybw0KCTZXSU5EDQoNCiANCg0K