From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Ananyev, Konstantin" Subject: Re: [PATCH] eal: add option --avail-cores to detect lcores Date: Wed, 9 Mar 2016 19:33:46 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725836B1AA0C@irsmsx105.ger.corp.intel.com> References: <1453661393-85704-1-git-send-email-jianfeng.tan@intel.com> <1457085957-115339-1-git-send-email-jianfeng.tan@intel.com> <56DE9359.1090705@redhat.com> <56DF0E0A.8000108@intel.com> <56E01F94.2060906@redhat.com> <56E02AC2.7010704@intel.com> <2601191342CEEE43887BDE71AB97725836B1A536@irsmsx105.ger.corp.intel.com> <56E03078.3000501@intel.com> <2601191342CEEE43887BDE71AB97725836B1A5A2@irsmsx105.ger.corp.intel.com> <56E03977.7050103@intel.com> <2601191342CEEE43887BDE71AB97725836B1A5FD@irsmsx105.ger.corp.intel.com> <56E06156.2080400@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 To: "Tan, Jianfeng" , Panu Matilainen , "dev@dpdk.org" Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 75A322E81 for ; Wed, 9 Mar 2016 20:33:54 +0100 (CET) In-Reply-To: <56E06156.2080400@intel.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" DQoNCj4gPj4+Pj4+Pj4gT24gMy84LzIwMTYgNDo1NCBQTSwgUGFudSBNYXRpbGFpbmVuIHdyb3Rl Og0KPiA+Pj4+Pj4+Pj4gT24gMDMvMDQvMjAxNiAxMjowNSBQTSwgSmlhbmZlbmcgVGFuIHdyb3Rl Og0KPiA+Pj4+Pj4+Pj4+IFRoaXMgcGF0Y2ggYWRkcyBvcHRpb24sIC0tYXZhaWwtY29yZXMsIHRv IHVzZSBsY29yZXMgd2hpY2ggYXJlDQo+ID4+Pj4+Pj4+Pj4gYXZhaWxhYmxlDQo+ID4+Pj4+Pj4+ Pj4gYnkgY2FsbGluZyBwdGhyZWFkX2dldGFmZmluaXR5X25wKCkgdG8gbmFycm93IGRvd24gZGV0 ZWN0ZWQgY29yZXMNCj4gPj4+Pj4+Pj4+PiBiZWZvcmUNCj4gPj4+Pj4+Pj4+PiBwYXJzaW5nIGNv cmVtYXNrICgtYyksIGNvcmVsaXN0ICgtbCksIGFuZCBjb3JlbWFwICgtLWxjb3JlcykuDQo+ID4+ Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBUZXN0IGV4YW1wbGU6DQo+ID4+Pj4+Pj4+Pj4gJCB0YXNr c2V0IDB4YzAwMDAgLi9leGFtcGxlcy9oZWxsb3dvcmxkL2J1aWxkL2hlbGxvd29ybGQgXA0KPiA+ Pj4+Pj4+Pj4+ICAgICAgICAgICAgLS1hdmFpbC1jb3JlcyAtbSAxMDI0DQo+ID4+Pj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBKaWFuZmVuZyBUYW4gPGppYW5mZW5nLnRhbkBp bnRlbC5jb20+DQo+ID4+Pj4+Pj4+Pj4gQWNrZWQtYnk6IE5laWwgSG9ybWFuIDxuaG9ybWFuQHR1 eGRyaXZlci5jb20+DQo+ID4+Pj4+Pj4+PiBIbW0sIHRvIG1lIHRoaXMgc291bmRzIGxpa2Ugc29t ZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGRvbmUgYWx3YXlzIHNvDQo+ID4+Pj4+Pj4+PiB0aGVyZSdz IG5vIG5lZWQgZm9yIGFuIG9wdGlvbi4gT3IgaWYgdGhlcmUncyBhIGNoYW5jZSBpdCBtaWdodCBk byB0aGUNCj4gPj4+Pj4+Pj4+IHdyb25nIHRoaW5nIGluIHNvbWUgcmFyZSBjaXJjdW1zdGFuY2Ug dGhlbiBwZXJoYXBzIHRoZXJlIHNob3VsZCBiZSBhDQo+ID4+Pj4+Pj4+PiBkaXNhYmxlciBvcHRp b24gaW5zdGVhZD8NCj4gPj4+Pj4+Pj4gVGhhbmtzIGZvciBjb21tZW50cy4NCj4gPj4+Pj4+Pj4N Cj4gPj4+Pj4+Pj4gWWVzLCB0aGVyZSdzIGEgdXNlIGNhc2UgdGhhdCB3ZSBjYW5ub3QgaGFuZGxl Lg0KPiA+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+PiBJZiB3ZSBtYWtlIGl0IGFzIGRlZmF1bHQsIERQREsg YXBwbGljYXRpb25zIG1heSBmYWlsIHRvIHN0YXJ0LCB3aGVuIHVzZXINCj4gPj4+Pj4+Pj4gc3Bl Y2lmaWVzIGEgY29yZSBpbiBpc29sY3B1cyBhbmQgaXRzIHBhcmVudCBwcm9jZXNzIChzYXkgYmFz aCkgaGFzIGENCj4gPj4+Pj4+Pj4gY3B1c2V0IGFmZmluaXR5IHRoYXQgZXhjbHVkZXMgaXNvbGNw dXMuIE9yaWdpbmFsbHksIERQREsgYXBwbGljYXRpb25zDQo+ID4+Pj4+Pj4+IGp1c3QgYmxpbmRs eSBkbyBwdGhyZWFkX3NldGFmZmluaXR5X25wKCkgYW5kIGl0IGFsd2F5cyBzdWNjZWVkcyBiZWNh dXNlDQo+ID4+Pj4+Pj4+IGl0IGFsd2F5cyBoYXMgcm9vdCBwcml2aWxlZ2UgdG8gY2hhbmdlIGFu eSBjcHUgYWZmaW5pdHkuDQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+IE5vdywgaWYgd2UgZG8gdGhl IGNoZWNraW5nIGluIHJ0ZV9lYWxfY3B1X2luaXQoKSwgdGhvc2UgbGNvcmVzIHdpbGwgYmUNCj4g Pj4+Pj4+Pj4gZmxhZ2dlZCBhcyB1bmRldGVjdGVkIChpbiBteSBvbGRlciBpbXBsZW1lbnRhdGlv bikgYW5kIGxlYWRzIHRvIGZhaWx1cmUuDQo+ID4+Pj4+Pj4+IFRvIG1ha2UgaXQgY29ycmVjdCwg d2Ugd291bGQgYWx3YXlzIGFkZCAidGFza3NldCBtYXNrIiAob3Igb3RoZXIgd2F5cykNCj4gPj4+ Pj4+Pj4gYmVmb3JlIERQREsgYXBwbGljYXRpb24gY21kIGxpbmVzLg0KPiA+Pj4+Pj4+Pg0KPiA+ Pj4+Pj4+PiBIb3cgZG8geW91IHRoaW5rPw0KPiA+Pj4+Pj4+IEkgc3RpbGwgdGhpbmsgaXQgc291 bmRzIGxpa2Ugc29tZXRoaW5nIHRoYXQgc2hvdWxkIGJlIGRvbmUgYnkgZGVmYXVsdA0KPiA+Pj4+ Pj4+IGFuZCBtYXliZSBiZSBvdmVycmlkYWJsZSB3aXRoIHNvbWUgZmxhZywgcmF0aGVyIHRoYW4g dGhlIG90aGVyIHdheQ0KPiA+Pj4+Pj4+IGFyb3VuZC4gQW5vdGhlciBhbHRlcm5hdGl2ZSBtaWdo dCBiZSBkZXRlY3RpbmcgdGhlIGNvcmVzIGFsd2F5cyBidXQgaWYNCj4gPj4+Pj4+PiBydW5uaW5n IGFzIHJvb3QsIG92ZXJyaWRlIGJ1dCB3aXRoIGEgd2FybmluZy4NCj4gPj4+Pj4+IEZvciB5b3Vy IHNlY29uZCBzb2x1dGlvbiwgb25seSByb290IGNhbiBzZXRhZmZpbml0eSB0byBpc29sY3B1cz8N Cj4gPj4+Pj4+IFlvdXIgZmlyc3Qgc29sdXRpb24gc2VlbXMgbGlrZSBhIHByb21pc2luZyB3YXkg Zm9yIG1lLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiBCdXQgSSBkb250IGtub3csIGp1c3Qgd29uZGVy aW5nLiBUbyBsb29rIGF0IGl0IGZyb20gYW5vdGhlciBhbmdsZTogd2h5DQo+ID4+Pj4+Pj4gd291 bGQgc29tZWJvZHkgdXNlIHRoaXMgbmV3IC0tYXZhaWwtY29yZXMgb3B0aW9uIGFuZCBpbiB3aGF0 DQo+ID4+Pj4+Pj4gc2l0dWF0aW9uLCBpZiB0aGluZ3MgImp1c3Qgd29yayIgb3RoZXJ3aXNlIGFu eXdheT8NCj4gPj4+Pj4+IEZvciBEUERLIGFwcGxpY2F0aW9ucywgdGhlIG1vc3QgY29tbW9uIGNh c2UgdG8gaW5pdGlhbGl6ZSBEUERLIGlzIGxpa2UNCj4gPj4+Pj4+IHRoaXM6ICIkZHBkay1hcHAg W29wdGlvbnMgZm9yIERQREtdIC0tIFtvcHRpb25zIGZvciBhcHBdIiwgc28gdXNlcnMgbmVlZA0K PiA+Pj4+Pj4gdG8gc3BlY2lmeSB3aGljaCBjb3JlcyB0byBydW4gYW5kIGhvdyBtdWNoIGh1Z2Vw YWdlcyBhcmUgdXNlZC4gU3VwcG9zZQ0KPiA+Pj4+Pj4gd2UgbmVlZCB0aGlzIGRwZGstYXBwIHRv IHJ1biBpbiBhIGNvbnRhaW5lciwgdXNlcnMgYWxyZWFkeSBnaXZlIHRob3NlDQo+ID4+Pj4+PiBp bmZvcm1hdGlvbiB3aGVuIHRoZXkgYnVpbGQgdXAgdGhlIGNncm91cCBmb3IgaXQgdG8gcnVuIGlu c2lkZSwgdGhpcw0KPiA+Pj4+Pj4gb3B0aW9uIG9yIHRoaXMgcGF0Y2ggaXMgdG8gbWFrZSBEUERL IG1vcmUgc21hcnQgdG8gZGlzY292ZXIgaG93IG11Y2gNCj4gPj4+Pj4+IHJlc291cmNlIHdpbGwg YmUgdXNlZC4gTWFrZSBzZW5zZT8NCj4gPj4+Pj4gQnV0IHRoZW4sIGFsbCB3ZSBuZWVkIG1pZ2h0 IGJlIGp1c3QgYSBzY3JpcHQgdGhhdCB3b3VsZCBleHRyYWN0IHRoaXMgaW5mb3JtYXRpb24gZnJv bSB0aGUgc3lzdGVtDQo+ID4+Pj4+IGFuZCBmb3JtIGEgcHJvcGVyIGNtZGxpbmUgcGFyYW1ldGVy IGZvciBEUERLPw0KPiA+Pj4+IFllcywgYSBzY3JpcHQgd2lsbCB3b3JrLiBPciB0byBjb25zdHJ1 Y3QgKGFyZ2MsIGFyZ3YpIHRvIGNhbGwNCj4gPj4+PiBydGVfZWFsX2luaXQoKSBpbiB0aGUgYXBw bGljYXRpb24uIEJ1dCBhcyBOZWlsIEhvcm1hbiBvbmNlIHN1Z2dlc3RlZCwgYQ0KPiA+Pj4+IHNp bXBsZSBwdGhyZWFkX2dldGFmZmluaXR5X25wKCkgd2lsbCBnZXQgYWxsIHRoaW5ncyBkb25lLiBT byBpZiBpdCB3b3J0aA0KPiA+Pj4+IGEgcGF0Y2ggaGVyZT8NCj4gPj4+IERvbid0IGtub3cuLi4N Cj4gPj4+IFBlcnNvbmFsbHkgSSB3b3VsZCBwcmVmZXIgbm90IHRvIHB1dCBleHRyYSBsb2dpYyBp bnNpZGUgRUFMLg0KPiA+Pj4gRm9yIG1lIC0gdGhlcmUgYXJlIHRvbyBtYW55IGRpZmZlcmVudCBv cHRpb25zIGFscmVhZHkuDQo+ID4+IFRoZW4gaG93IGFib3V0IG1ha2UgaXQgZGVmYXVsdCBpbiBy dGVfZWFsX2NwdV9pbml0KCk/IEFuZCBpdCBpcyBhbHJlYWR5DQo+ID4+IGtub3duIGl0IHdpbGwg YnJpbmcgdHJvdWJsZSB0byB0aG9zZSB1c2UgaXNvbGNwdXMgdXNlcnMsIHRoZXkgbmVlZCB0bw0K PiA+PiBhZGQgInRhc2tzZXQgW21hc2tdIiBiZWZvcmUgc3RhcnRpbmcgYSBEUERLIGFwcC4NCj4g PiBBcyBJIHNhaWQgLSBwcm92aWRlIGEgc2NyaXB0Pw0KPiANCj4gWWVzLiBCdXQgd2hhdCBJIHdh bnQgdG8gc2F5IGlzIHRoaXMgc2NyaXB0IGlzIGhhcmQgdG8gYmUgcmlnaHQsIGlmIHRoZXJlDQo+ IGFyZSBkaWZmZXJlbnQga2luZHMgb2YgbGltaXRhdGlvbnMuIChCYXJlbHkgaGFwcGVuIHRob3Vn aCA6LSkgKQ0KDQpNeSB0aG91Z2h0IHdhcyB0byBrZWVwIGRwZGsgY29kZSB1bnRvdWNoZWQgLSBp LmUuIGxldCBpdCBzdGlsbCBibGluZGx5IHNldF9wdGhyZWFkX2FmZmluaXR5KCkNCmJhc2VkIG9u IHRoZSBpbnB1dCBwYXJhbWV0ZXJzLCBhbmQgaW4gYWRkaXRpb24gcHJvdmlkZSBhIHNjcmlwdCBm b3IgdGhvc2Ugd2hvIHdhbnQgdG8gcnVuDQppbiAnLS1hdmFpbC1jb3JlcycgbW9kZS4gDQpTbyBp dCBjb3VsZCBkbyAndGFza3NldCAtcCAkJCcgYW5kIHRoZW4gZWl0aGVyIGZvcm0gLWMgcGFyYW1l dGVyIGxpc3QgIGZvciB0aGUgYXBwLA0Kb3IgY2hlY2sgZXhpc3RpbmcgLWMvLWwvLS1sY29yZXMg cGFyYW1ldGVyIGFuZCBjb21wbGFpbiBpZiBub3QgYWxsb3dlZCBwY3B1IGRldGVjdGVkLg0KQnV0 IG9rLCBtaWdodCBiZSBpdCBpcyBlYXNpZXIgYW5kIG1vcmUgY29udmVuaWVudCB0byBoYXZlIHRo aXMgbG9naWMgaW5zaWRlIEVBTCwNCnRoZW4gaW4gYSBzZXBhcmF0ZSBzY3JpcHQuDQoNCj4gDQo+ ID4gU2FtZSBtaWdodCBiZSBmb3IgYW1vdW50IG9mIGh1Z2VwYWdlIG1lbW9yeSBhdmFpbGFibGUg dG8gdGhlIHVzZXI/DQo+IA0KPiBEaXR0by4gTGltaXRhdGlvbnMgbGlrZSBodWdldGxiZnMgcXVv dGEsIGNncm91cCBodWdldGxiLCBzb21lIGFyZSB1c2VkDQo+IGJ5IGFwcCB0aGVtc2VsZiAobW9y ZSBsaWtlIGFuIGFydGlmaWNpYWwgYXJndW1lbnQpIC4uLg0KPiA+DQo+ID4+PiAgIEZyb20gb3Ro ZXIgc2lkZSBsb29raW5nIGF0IHRoZSBwYXRjaCBpdHNlbGY6DQo+ID4+PiBZb3UgYXJlIHVwZGF0 aW5nIGxjb3JlX2NvdW50IGFuZCBsY29yZV9jb25maWdbXSxiYXNlZCBvbiBwaHlzaWNhbCBjcHUg YXZhaWxhYmlsaXR5LA0KPiA+Pj4gYnV0IHRoZXNlIGRheXMgaXQgaXMgbm90IGFsd2F5cyBvbmUt dG8tb25lIG1hcHBpbmcgYmV0d2VlbiBFQUwgbGNvcmUgYW5kIHBoeXNpY2FsIGNwdS4NCj4gPj4+ IFNob3VsZG4ndCB0aGF0IGJlIHRha2VuIGludG8gYWNjb3VudD8NCj4gPj4gSSBoYXZlIG5vdCBz ZWUgdGhlIHByb2JsZW0gc28gZmFyLCBiZWNhdXNlIHRoaXMgd29yayBpcyBkb25lIGJlZm9yZQ0K PiA+PiBwYXJzaW5nIGNvcmVtYXNrICgtYyksIGNvcmVsaXN0ICgtbCksIGFuZCBjb3JlbWFwICgt LWxjb3JlcykuIElmIGEgY29yZQ0KPiA+PiBpcyBkaXNhYmxlZCBoZXJlLCBpdCdzIGxpa2UgaXQg aXMgbm90IGRldGVjdGVkIGluIHJ0ZV9lYWxfY3B1X2luaXQoKS4gT3INCj4gPj4gY291bGQgeW91 IHBsZWFzZSBnaXZlIG1vcmUgaGludHM/DQo+ID4gSSBkaWRuJ3QgdGVzdCB0cnkgY2hhbmdlcywg c28gcHJvYmFibHkgSSBhbSBtaXNzaW5nIHNvbWV0aGluZy4NCj4gPiBMZXQgc2F5IGl1c2VyIGFs bG93ZWQgdG8gdXNlIG9ubHkgY3B1cyAwLTMuDQo+ID4gSWYgaGUgd291bGQgdHlwZSB3aXRoOg0K PiA+ICAgLS1hdmFpbC1jb3JlcyAgLS1sY29yZXM9JygxLTcpQDInLA0KPiA+IHRoZW4gb25seSBs Y29yZXMgMS0zIHdvdWxkIGJlIHN0YXJ0ZWQuDQo+ID4gQWdhaW4gaWYgdXNlciB3b3VsZCBzcGVj aWZ5ICcyQCgxLTcpJyBpdCB3b3VsZCBhbHNvIGJlIHVuZGV0ZWN0ZWQNCj4gPiB0aGF0IGNwdXMg NC03IGFyZSBub3RlIGF2YWlsYWJsZSB0byB0aGUgdXNlci4NCj4gPiBJcyB0aGF0IHNvPw0KPiAN Cj4gQWZ0ZXIgcmVhZGluZyB0aGUgY29kZToNCj4gRm9yIGNhc2UgLS1sY29yZXM9JygxLTcpQDIn LCBsY29yZXMgMS03IHdvdWxkIGJlIHN0YXJ0ZWQsIGFuZCBiaW5kIHRvDQo+IHBjb3JlIDIuDQo+ IEZvciBjYXNlIC0tbGNvcmVzPScyQCgxLTcpJywgdGhpcyB3aWxsIGZhaWwgd2l0aCAiY29yZSA0 IHVuYXZhaWxhYmxlIi4NCj4gDQo+IEl0J3MgYmVjYXVzZToNCj4gYS4gIGFsdGhvdWdoIDE6MSBt YXBwaW5nIGlzIGJ1aWx0LXVwIGFuZCBmbGFnZ2VkIGFzIGRldGVjdGVkIGlmIHBjb3JlIGlzDQo+ IGZvdW5kIGluIHN5c2ZzLiAoUk9MRV9SVEUsIGNwdXNldCwgZGV0ZWN0ZWQgaXMgdHJ1ZSkNCj4g Yi4gaW4gdGhlIGJlZ2lubmluZyBvZiBlYWxfcGFyc2VfbGNvcmVzKCksICJyZXNldCBsY29yZSBj b25maWciLg0KPiAoUk9MRV9PRkYsIGNwdXNldCBpcyBlbXB0eSwgZGV0ZWN0ZWQgaXMgc3RpbGwg dHJ1ZSkNCj4gYy4gcGNvcmUgY3B1c2V0IHdpbGwgYmUgY2hlY2tlZCBieSBjb252ZXJ0X3RvX2Nw dXNldCB1c2luZyB0aGUgcHJldmlvdXMNCj4gImRldGVjdGVkIiB2YWx1ZS4NCg0KT2ssIG15IGJh ZCB0aGVuIC0gSSBtaXN1bmRlcnN0b29kIHRoZSBjb2RlLg0KVGhhbmtzIGZvciBleHBsYW5hdGlv bi4NClNvIGlmIEkgZ2V0IGl0IHJpZ2h0IG5vdyAtIGZpcnN0IGluc2lkZSBsaWIvbGlicnRlX2Vh bC9jb21tb24vZWFsX2NvbW1vbl9sY29yZS5jDQpCb3RoIGxjb3JlX2NvdW50IGFuZCBsY29yZV9j b25maWcgcmVsYXRlIHRvIHRoZSBwY3B1cy4NClRoZW4gbGF0ZXIsIGF0IGxpYi9saWJydGVfZWFs L2NvbW1vbi9lYWxfY29tbW9uX29wdGlvbnMuYw0KdGhleSBhcmUgb3ZlcndyaXR0ZW4gcmVsYXRl ZCB0byBsY29yZXMgaW5mb3JtYXRpb24uDQpFeGNlcHQgbGNvcmVfY29uZmlnW10uZGV0ZWN0ZWQs IHdoaWNoIHNlZW1zIGtlcHQgaW50YWN0Lg0KSXMgdGhhdCBjb3JyZWN0PyANCg0KPiANCj4gSSBo YXZlIHRlc3RlZCBpdCB3aXRoIHRoZSBwYXRjaC4gUmVzdWx0IGFsaWducyBhYm92ZSBhbmFseXNp cy4NCj4gRm9yIGNhc2UgLS1sY29yZXM9JygxLTcpQDInOiBzdWRvIHRhc2tzZXQgMHhmDQo+IC4v ZXhhbXBsZXMvaGVsbG93b3JsZC9idWlsZC9oZWxsb3dvcmxkIC0tYXZhaWwtY29yZXMgLS1sY29y ZXM9JygxLTcpQDInDQo+IC4uLg0KPiBoZWxsbyBmcm9tIGNvcmUgMg0KPiBoZWxsbyBmcm9tIGNv cmUgMw0KPiBoZWxsbyBmcm9tIGNvcmUgNA0KPiBoZWxsbyBmcm9tIGNvcmUgNQ0KPiBoZWxsbyBm cm9tIGNvcmUgNg0KPiBoZWxsbyBmcm9tIGNvcmUgNw0KPiBoZWxsbyBmcm9tIGNvcmUgMQ0KPiAN Cj4gRm9yIGNhc2UgLS1sY29yZXM9JzJAKDEtNyknOiBzdWRvIHRhc2tzZXQgMHhmDQo+IC4vZXhh bXBsZXMvaGVsbG93b3JsZC9idWlsZC9oZWxsb3dvcmxkIC0tYXZhaWwtY29yZXMgLS1sY29yZXM9 JzJAKDEtNyknDQo+IC4uLg0KPiBFQUw6IGNvcmUgNCB1bmF2YWlsYWJsZQ0KPiBFQUw6IGludmFs aWQgcGFyYW1ldGVyIGZvciAtLWxjb3Jlcw0KPiAuLi4NCj4gDQo+IE9uZSB0aGluZyBtYXkgd29y dGggbWVudGlvbjogc2hhbGwgImRldGVjdGVkIiBiZSBtYWludGFpbmVkIGluIHN0cnVjdA0KPiBs Y29yZV9jb25maWc/IE1heWJlIHdlIG5lZWQgdG8gbWFpbnRhaW4gYW4gZGF0YSBzdHJ1Y3R1cmUg Zm9yIHBjb3Jlcz8NCg0KWWVzLCBpdCBtaWdodCBiZSBnb29kIHRvIHNwbGl0IHBjcHUgYW5kIGxj b3JlcyBpbmZvcm1hdGlvbiBzb21laG93LA0KYXMgaXQgaXMgYSBiaXQgY29uZnVzaW5nIHJpZ2h0 IG5vdy4NCkJ1dCBJIHN1cHBvc2UgdGhpcyBpcyBhIHN1YmplY3QgZm9yIGFub3RoZXIgcGF0Y2gv ZGlzY3Vzc2lvbi4NCktvbnN0YW50aW4NCg0KDQo=