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 10DB5A04DD; Wed, 21 Oct 2020 15:01:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EB3EEAC63; Wed, 21 Oct 2020 15:01:44 +0200 (CEST) Received: from mailgw01.pantheon.sk (mailgw01.pantheon.sk [46.229.239.26]) by dpdk.org (Postfix) with ESMTP id 589B67F45 for ; Wed, 21 Oct 2020 15:01:43 +0200 (CEST) Received: from mailgw01.pantheon.sk (localhost.localdomain [127.0.0.1]) by mailgw01.pantheon.sk (Proxmox) with ESMTP id 0B7C8202647; Wed, 21 Oct 2020 15:01:42 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pantheon.tech; h=cc:cc:content-transfer-encoding:content-type:content-type :date:from:from:in-reply-to:message-id:mime-version:references :reply-to:subject:subject:to:to; s=dkim; bh=eSu2zJRlytVixzkJOKHk bFJ3Q5k7FGoFxO6/kT+r5qM=; b=v0Bt0Wp0CUdkRVdU1Nqzcz9LooEsHG2htwIW G4SazjRku0WlmqDqK6t+uV9dor1Spxc9jJHtCL/JtyJm4DDoIBssHQEwRUwaDLfJ qwdHXRBDOUtJi4OtyZjBKFn/2PH4YuQroP+hk0OmY0lCMne6pL8HDgMV6m6+xFF2 levEBFlORLRneId2PNz5YivSaSVxWZPReLsF0CEvQHQQRzwDafDQbas9GMN3YI0k bY43rwHQtZ2CgCwDpUWl15dBlGnDejGttU+mOIyTm3G+QVdfYLIzETdKg0OjhLn0 mbPwZkc49rfVWccKIdb/dqIh6LAoA+gKiGOLT6+dcvOH9wBrdQ== From: =?utf-8?B?SnVyYWogTGlua2XFoQ==?= To: Bruce Richardson CC: "Ruifeng.Wang@arm.com" , "Honnappa.Nagarahalli@arm.com" , "Phil.Yang@arm.com" , "vcchunga@amazon.com" , "Dharmik.Thakkar@arm.com" , "jerinjacobk@gmail.com" , "hemant.agrawal@nxp.com" , "dev@dpdk.org" Thread-Topic: [RFC PATCH v3 3/6] build: automatic NUMA and cpu counts detection Thread-Index: AQHWp56fojjDhTEMUUC082zv7zxFhKmh00kAgAAlvLA= Date: Wed, 21 Oct 2020 13:01:41 +0000 Message-ID: <54e20244e1e841148669eb93b6b8876c@pantheon.tech> References: <1602600882-695-1-git-send-email-juraj.linkes@pantheon.tech> <1603280261-20206-1-git-send-email-juraj.linkes@pantheon.tech> <1603280261-20206-4-git-send-email-juraj.linkes@pantheon.tech> <20201021120220.GC592@bricha3-MOBL.ger.corp.intel.com> In-Reply-To: <20201021120220.GC592@bricha3-MOBL.ger.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.101.4.10] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC PATCH v3 3/6] build: automatic NUMA and cpu counts detection 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQnJ1Y2UgUmljaGFyZHNv biA8YnJ1Y2UucmljaGFyZHNvbkBpbnRlbC5jb20+DQo+IFNlbnQ6IFdlZG5lc2RheSwgT2N0b2Jl ciAyMSwgMjAyMCAyOjAyIFBNDQo+IFRvOiBKdXJhaiBMaW5rZcWhIDxqdXJhai5saW5rZXNAcGFu dGhlb24udGVjaD4NCj4gQ2M6IFJ1aWZlbmcuV2FuZ0Bhcm0uY29tOyBIb25uYXBwYS5OYWdhcmFo YWxsaUBhcm0uY29tOw0KPiBQaGlsLllhbmdAYXJtLmNvbTsgdmNjaHVuZ2FAYW1hem9uLmNvbTsg RGhhcm1pay5UaGFra2FyQGFybS5jb207DQo+IGplcmluamFjb2JrQGdtYWlsLmNvbTsgaGVtYW50 LmFncmF3YWxAbnhwLmNvbTsgZGV2QGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbUkZDIFBBVENI IHYzIDMvNl0gYnVpbGQ6IGF1dG9tYXRpYyBOVU1BIGFuZCBjcHUgY291bnRzDQo+IGRldGVjdGlv bg0KPiANCj4gT24gV2VkLCBPY3QgMjEsIDIwMjAgYXQgMDE6Mzc6MzhQTSArMDIwMCwgSnVyYWog TGlua2XFoSB3cm90ZToNCj4gPiBUaGUgYnVpbGQgbWFjaGluZSdzIG51bWJlciBvZiBjcHVzIGFu ZCBudW1hIG5vZGVzIHZhcnksIHJlc3VsdGluZyBpbg0KPiA+IG1pc21hdGNoZWQgY291bnRzIG9m IFJURV9NQVhfTENPUkUgYW5kIFJURV9NQVhfTlVNQV9OT0RFUyBmb3INCj4gbWFueQ0KPiA+IGJ1 aWxkcy4gQXV0b21hdGljYWxseSBkaXNjb3ZlciB0aGUgaG9zdCdzIG51bWEgYW5kIGNwdSBjb3Vu dHMgdG8NCj4gPiByZW1vdmUgdGhpcyBtaXNtYXRjaCBmb3IgbmF0aXZlIGJ1aWxkcy4gVXNlIGN1 cnJlbnQgZGVmYXVsdHMgZm9yIGRlZmF1bHQgYnVpbGRzLg0KPiA+IEZvcmNlIHRoZSB1c2VycyB0 byBzcGVjaWZ5IHRoZSBjb3VudHMgZm9yIGNyb3NzIGJ1aWxkIGluIGNyb3NzIGZpbGVzDQo+ID4g b3Igb24gdGhlIGNvbW1hbmQgbGluZS4NCj4gPiBHaXZlIHVzZXJzIHRoZSBvcHRpb24gdG8gb3Zl cnJpZGUgdGhlIGRpc2NvdmVyeSBvciB2YWx1ZXMgZnJvbSBjcm9zcw0KPiA+IGZpbGVzIGJ5IHNw ZWNpZnlpbmcgdGhlbSBvbiB0aGUgY29tbWFuZCBsaW5lIHdpdGggLURtYXhfbGNvcmVzIGFuZA0K PiA+IC1EbWF4X251bWFfbm9kZXMuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKdXJhaiBMaW5r ZcWhIDxqdXJhai5saW5rZXNAcGFudGhlb24udGVjaD4NCj4gPiAtLS0NCj4gPiAgYnVpbGR0b29s cy9nZXRfY3B1X2NvdW50LnB5ICB8ICA3ICsrKysrKw0KPiA+IGJ1aWxkdG9vbHMvZ2V0X251bWFf Y291bnQucHkgfCAyMiArKysrKysrKysrKysrKysrKysrDQo+ID4gIGJ1aWxkdG9vbHMvbWVzb24u YnVpbGQgICAgICAgfCAgMiArKw0KPiA+ICBjb25maWcvbWVzb24uYnVpbGQgICAgICAgICAgIHwg NDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tDQo+ID4gIG1lc29uX29wdGlv bnMudHh0ICAgICAgICAgICAgfCAgOCArKystLS0tDQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgNzUg aW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkgIGNyZWF0ZSBtb2RlIDEwMDY0NA0KPiA+IGJ1 aWxkdG9vbHMvZ2V0X2NwdV9jb3VudC5weSAgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+ID4gYnVpbGR0 b29scy9nZXRfbnVtYV9jb3VudC5weQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBhL2J1aWxkdG9vbHMv Z2V0X2NwdV9jb3VudC5weSBiL2J1aWxkdG9vbHMvZ2V0X2NwdV9jb3VudC5weQ0KPiA+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0IGluZGV4IDAwMDAwMDAwMC4uMzg2Zjg1ZjhiDQo+ID4gLS0tIC9kZXYv bnVsbA0KPiA+ICsrKyBiL2J1aWxkdG9vbHMvZ2V0X2NwdV9jb3VudC5weQ0KPiA+IEBAIC0wLDAg KzEsNyBAQA0KPiA+ICsjIS91c3IvYmluL3B5dGhvbjMNCj4gPiArIyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTMtQ2xhdXNlICMgQ29weXJpZ2h0IChjKSAyMDIwDQo+ID4gK1BBTlRIRU9O LnRlY2ggcy5yLm8uDQo+ID4gKw0KPiA+ICtpbXBvcnQgb3MNCj4gPiArDQo+ID4gK3ByaW50KG9z LmNwdV9jb3VudCgpKQ0KPiA+IGRpZmYgLS1naXQgYS9idWlsZHRvb2xzL2dldF9udW1hX2NvdW50 LnB5DQo+ID4gYi9idWlsZHRvb2xzL2dldF9udW1hX2NvdW50LnB5IG5ldyBmaWxlIG1vZGUgMTAw NjQ0IGluZGV4DQo+ID4gMDAwMDAwMDAwLi5mMGM0OTk3M2ENCj4gPiAtLS0gL2Rldi9udWxsDQo+ ID4gKysrIGIvYnVpbGR0b29scy9nZXRfbnVtYV9jb3VudC5weQ0KPiA+IEBAIC0wLDAgKzEsMjIg QEANCj4gPiArIyEvdXNyL2Jpbi9weXRob24zDQo+ID4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEJTRC0zLUNsYXVzZSAjIENvcHlyaWdodCAoYykgMjAyMA0KPiA+ICtQQU5USEVPTi50ZWNo IHMuci5vLg0KPiA+ICsNCj4gPiAraW1wb3J0IGN0eXBlcw0KPiA+ICtpbXBvcnQgZ2xvYg0KPiA+ ICtpbXBvcnQgb3MNCj4gPiAraW1wb3J0IHN1YnByb2Nlc3MNCj4gPiArDQo+ID4gK2lmIG9zLm5h bWUgPT0gJ3Bvc2l4JzoNCj4gPiArICAgIGlmIG9zLnBhdGguaXNkaXIoJy9zeXMvZGV2aWNlcy9z eXN0ZW0vbm9kZScpOg0KPiA+ICsgICAgICAgIHByaW50KGxlbihnbG9iLmdsb2IoJy9zeXMvZGV2 aWNlcy9zeXN0ZW0vbm9kZS9ub2RlKicpKSkNCj4gPiArICAgIGVsc2U6DQo+ID4gKyAgICAgICAg cHJpbnQoc3VicHJvY2Vzcy5ydW4oWydzeXNjdGwnLCAndm0ubmRvbWFpbnMnXSwNCj4gPiArY2Fw dHVyZV9vdXRwdXQ9VHJ1ZSkuc3Rkb3V0KQ0KPiA+ICsNCj4gPiArZWxpZiBvcy5uYW1lID09ICdu dCc6DQo+ID4gKyAgICBsaWJrZXJuZWwzMiA9IGN0eXBlcy53aW5kbGwua2VybmVsMzINCj4gPiAr DQo+ID4gKyAgICBjb3VudCA9IGN0eXBlcy5jX3Vsb25nKCkNCj4gPiArDQo+ID4gKyAgICBsaWJr ZXJuZWwzMi5HZXROdW1hSGlnaGVzdE5vZGVOdW1iZXIoY3R5cGVzLnBvaW50ZXIoY291bnQpKQ0K PiA+ICsgICAgcHJpbnQoY291bnQudmFsdWUgKyAxKQ0KPiA+IGRpZmYgLS1naXQgYS9idWlsZHRv b2xzL21lc29uLmJ1aWxkIGIvYnVpbGR0b29scy9tZXNvbi5idWlsZCBpbmRleA0KPiA+IDA0ODA4 ZGFiYy4uOTI1ZTczM2IxIDEwMDY0NA0KPiA+IC0tLSBhL2J1aWxkdG9vbHMvbWVzb24uYnVpbGQN Cj4gPiArKysgYi9idWlsZHRvb2xzL21lc29uLmJ1aWxkDQo+ID4gQEAgLTE3LDMgKzE3LDUgQEAg ZWxzZQ0KPiA+ICBlbmRpZg0KPiA+ICBtYXBfdG9fd2luX2NtZCA9IHB5MyArIGZpbGVzKCdtYXBf dG9fd2luLnB5JykgIHNwaGlueF93cmFwcGVyID0gcHkzICsNCj4gPiBmaWxlcygnY2FsbC1zcGhp bngtYnVpbGQucHknKQ0KPiA+ICtnZXRfY3B1X2NvdW50X2NtZCA9IHB5MyArIGZpbGVzKCdnZXRf Y3B1X2NvdW50LnB5JykNCj4gPiArZ2V0X251bWFfY291bnRfY21kID0gcHkzICsgZmlsZXMoJ2dl dF9udW1hX2NvdW50LnB5JykNCj4gPiBkaWZmIC0tZ2l0IGEvY29uZmlnL21lc29uLmJ1aWxkIGIv Y29uZmlnL21lc29uLmJ1aWxkIGluZGV4DQo+ID4gYTU3YzhhZTllLi5jNDQ3N2Y5NzcgMTAwNjQ0 DQo+ID4gLS0tIGEvY29uZmlnL21lc29uLmJ1aWxkDQo+ID4gKysrIGIvY29uZmlnL21lc29uLmJ1 aWxkDQo+ID4gQEAgLTc0LDcgKzc0LDExIEBAIGVuZGlmDQo+ID4gICMgc3RpbGwgYmVpbmcgYWJs ZSB0byBzdXBwb3J0IHRoZSBDUFUgZmVhdHVyZXMgcmVxdWlyZWQgZm9yIERQREsuDQo+ID4gICMg VGhpcyBjYW4gYmUgYnVtcGVkIHVwIGJ5IHRoZSBEUERLIHByb2plY3QsIGJ1dCBpdCBjYW4gbmV2 ZXIgYmUgYW4NCj4gPiAjIGludmFyaWFudCBsaWtlICduYXRpdmUnDQo+ID4gK21heF9sY29yZXMg PSBnZXRfb3B0aW9uKCdtYXhfbGNvcmVzJykgbWF4X251bWFfbm9kZXMgPQ0KPiA+ICtnZXRfb3B0 aW9uKCdtYXhfbnVtYV9ub2RlcycpDQo+ID4gIGlmIG1hY2hpbmUgPT0gJ2RlZmF1bHQnDQo+ID4g KwltYXhfbnVtYV9ub2RlcyA9IDQNCj4gPiArCW1heF9sY29yZXMgPSAxMjgNCj4gDQo+IFRoaXMg ZG9lc24ndCBzZWVtIHJpZ2h0LCBzaW5jZSB5b3UgYXJlIG92ZXJyaWRpbmcgdGhlIHVzZXItc3Bl Y2lmaWVkIHZhbHVlcyB3aXRoDQo+IGhhcmQtY29kZWQgb25lcy4NCj4gDQoNCkkgdW5kZXJzdGFu ZCB3ZSdyZSB1c2luZyB0aGUgZGVmYXVsdCBidWlsZC9nZW5lcmljIHRvIGJ1aWxkIHBvcnRhbGJl IGRwZGsgZGlzdHJvIHBhY2thZ2VzLCBtZWFuaW5nIHRoZSBzZXR0aW5ncyBmb3IgdGhvc2UgcGFj a2FnZXMgc2hvdWxkIGFsd2F5cyBiZSB0aGUgc2FtZSwgbm8/IElmIG5vdCwgd2hhdCBzaG91bGQg dGhlIGRlZmF1bHQvZ2VuZXJpYyBidWlsZCBiZT8gQW5kIHdoZW4gd291bGQgc29tZW9uZSBkbyBh IGRlZmF1bHQvZ2VuZXJpYyBidWlsZCB3aXRoIHRoZWlyIHZhbHVlcz8gSXQgd291bGRuJ3QgYmUg YSBkZWZhdWx0L2dlbmVyaWMgYW55bW9yZSwgcmlnaHQ/DQoNCj4gPiAgCWlmIGhvc3RfbWFjaGlu ZS5jcHVfZmFtaWx5KCkuc3RhcnRzd2l0aCgneDg2JykNCj4gPiAgCQkjIG1hdGNoZXMgdGhlIG9s ZCBwcmUtbWVzb24gYnVpbGQgc3lzdGVtcyBkZWZhdWx0DQo+ID4gIAkJbWFjaGluZSA9ICdjb3Jl aTcnDQo+ID4gQEAgLTgzLDYgKzg3LDIyIEBAIGlmIG1hY2hpbmUgPT0gJ2RlZmF1bHQnDQo+ID4g IAllbGlmIGhvc3RfbWFjaGluZS5jcHVfZmFtaWx5KCkuc3RhcnRzd2l0aCgncHBjJykNCj4gPiAg CQltYWNoaW5lID0gJ3Bvd2VyOCcNCj4gPiAgCWVuZGlmDQo+ID4gK2VsaWYgbm90IG1lc29uLmlz X2Nyb3NzX2J1aWxkKCkNCj4gPiArCSMgZmluZCBob3N0IGNvcmUgY291bnQgYW5kIG51bWEgbm9k ZSBjb3VudCBmb3IgbmF0aXZlIGJ1aWxkcw0KPiA+ICsJaWYgbWF4X2xjb3JlcyA9PSAwDQo+ID4g KwkJbWF4X2xjb3JlcyA9DQo+IHJ1bl9jb21tYW5kKGdldF9jcHVfY291bnRfY21kKS5zdGRvdXQo KS50b19pbnQoKQ0KPiA+ICsJCW1pbl9sY29yZXMgPSAyDQo+ID4gKwkJaWYgbWF4X2xjb3JlcyA8 IG1pbl9sY29yZXMNCj4gPiArCQkJbWVzc2FnZSgnRm91bmQgbGVzcyB0aGFuIEAwQCBjb3Jlcywg YnVpbGRpbmcgZm9yDQo+IEAwQCBjb3JlcycuZm9ybWF0KG1pbl9sY29yZXMpKQ0KPiA+ICsJCQlt YXhfbGNvcmVzID0gbWluX2xjb3Jlcw0KPiA+ICsJCWVsc2UNCj4gPiArCQkJbWVzc2FnZSgnRm91 bmQgQDBAIGNvcmVzJy5mb3JtYXQobWF4X2xjb3JlcykpDQo+ID4gKwkJZW5kaWYNCj4gPiArCWVu ZGlmDQo+ID4gKwlpZiBtYXhfbnVtYV9ub2RlcyA9PSAwDQo+ID4gKwkJbWF4X251bWFfbm9kZXMg PQ0KPiBydW5fY29tbWFuZChnZXRfbnVtYV9jb3VudF9jbWQpLnN0ZG91dCgpLnRvX2ludCgpDQo+ ID4gKwkJbWVzc2FnZSgnRm91bmQgQDBAIG51bWEgbm9kZXMnLmZvcm1hdChtYXhfbnVtYV9ub2Rl cykpDQo+ID4gKwllbmRpZg0KPiA+ICBlbmRpZg0KPiA+DQo+ID4gIGRwZGtfY29uZi5zZXQoJ1JU RV9NQUNISU5FJywgbWFjaGluZSkgQEAgLTIyNyw4ICsyNDcsMTAgQEAgZm9yZWFjaA0KPiA+IGFy Zzogd2FybmluZ19mbGFncyAgZW5kZm9yZWFjaA0KPiA+DQo+ID4gICMgc2V0IG90aGVyIHZhbHVl cyBwdWxsZWQgZnJvbSB0aGUgYnVpbGQgb3B0aW9ucw0KPiA+IC1kcGRrX2NvbmYuc2V0KCdSVEVf TUFYX0xDT1JFJywgZ2V0X29wdGlvbignbWF4X2xjb3JlcycpKQ0KPiA+IC1kcGRrX2NvbmYuc2V0 KCdSVEVfTUFYX05VTUFfTk9ERVMnLCBnZXRfb3B0aW9uKCdtYXhfbnVtYV9ub2RlcycpKQ0KPiA+ ICtpZiBub3QgbWVzb24uaXNfY3Jvc3NfYnVpbGQoKQ0KPiA+ICsJZHBka19jb25mLnNldCgnUlRF X01BWF9MQ09SRScsIG1heF9sY29yZXMpDQo+ID4gKwlkcGRrX2NvbmYuc2V0KCdSVEVfTUFYX05V TUFfTk9ERVMnLCBtYXhfbnVtYV9ub2RlcykgZW5kaWYNCj4gDQo+IFJhdGhlciB0aGFuIGNvbmRp dGlvbmFsbHkgc2V0dGluZyB0aGUgdmFsdWUgaGVyZSwgeW91IHNob3VsZCBtb3ZlIHRoZSBjaGVj a3MNCj4gYmVsb3cgdXAgYWJvdmUgdGhpcyB0byBzaW1wbGlmeSB0aGluZ3MuDQo+IA0KDQpEbyB5 b3UgbWVhbiB0aGUgY3Jvc3MgYnVpbGQgY2hlY2tzPyBUaG9zZSBoYXZlIHRvIGJlIGFmdGVyIHN1 YmRpcihhcmNoX3N1YmRpcikgc28gdGhhdCB3ZSBjYW4gb3ZlcnJpZGUgdGhlIHZhbHVlcyBmcm9t IGNyb3NzIGZpbGVzIChhcyB0aGUgY29tbWl0IG1lc3NhZ2Ugc2F5cykuIA0KDQo+ID4gIGRwZGtf Y29uZi5zZXQoJ1JURV9NQVhfRVRIUE9SVFMnLCBnZXRfb3B0aW9uKCdtYXhfZXRocG9ydHMnKSkN Cj4gPiBkcGRrX2NvbmYuc2V0KCdSVEVfTElCRUFMX1VTRV9IUEVUJywgZ2V0X29wdGlvbigndXNl X2hwZXQnKSkNCj4gPiBkcGRrX2NvbmYuc2V0KCdSVEVfRU5BQkxFX1RSQUNFX0ZQJywgZ2V0X29w dGlvbignZW5hYmxlX3RyYWNlX2ZwJykpIEBADQo+ID4gLTI0Nyw2ICsyNjksMjIgQEAgY29tcGls ZV90aW1lX2NwdWZsYWdzID0gW10NCj4gPiAgc3ViZGlyKGFyY2hfc3ViZGlyKQ0KPiA+ICBkcGRr X2NvbmYuc2V0KCdSVEVfQ09NUElMRV9USU1FX0NQVUZMQUdTJywNCj4gPiAnLCcuam9pbihjb21w aWxlX3RpbWVfY3B1ZmxhZ3MpKQ0KPiA+DQo+ID4gKyMgY2hlY2sgdGhhdCBjcHUgYW5kIG51bWEg Y291bnQgaXMgc2V0IGluIGNyb3NzIGJ1aWxkcyBpZg0KPiA+ICttZXNvbi5pc19jcm9zc19idWls ZCgpDQo+ID4gKyAgICAJaWYgbWF4X2xjb3JlcyA+IDANCj4gPiArCQkjIHNwZWNpZmllZCBvbiB0 aGUgY21kbGluZQ0KPiA+ICsJCWRwZGtfY29uZi5zZXQoJ1JURV9NQVhfTENPUkUnLCBtYXhfbGNv cmVzKQ0KPiA+ICsJZWxpZiBub3QgZHBka19jb25mLmhhcygnUlRFX01BWF9MQ09SRScpDQo+ID4g KwkJZXJyb3IoJ051bWJlciBvZiBjb3JlcyBmb3IgY3Jvc3MgYnVpbGQgbm90IHNwZWNpZmllZCBp biBAMEANCj4gc3ViZGlyIChlLmcuIGluIGEgY3Jvc3MtZmlsZSkgbm9yIG9uIHRoZSBjbWRsaW5l Jy5mb3JtYXQoYXJjaF9zdWJkaXIpKQ0KPiA+ICsJZW5kaWYNCj4gPiArCWlmIG1heF9udW1hX25v ZGVzID4gMA0KPiA+ICsJCSMgc3BlY2lmaWVkIG9uIHRoZSBjbWRsaW5lDQo+ID4gKwkJZHBka19j b25mLnNldCgnUlRFX01BWF9OVU1BX05PREVTJywgbWF4X251bWFfbm9kZXMpDQo+ID4gKwllbGlm IG5vdCBkcGRrX2NvbmYuaGFzKCdSVEVfTUFYX05VTUFfTk9ERVMnKQ0KPiA+ICsJCWVycm9yKCdO dW1iZXIgb2YgbnVtYSBub2RlcyBmb3IgY3Jvc3MgYnVpbGQgbm90IHNwZWNpZmllZCBpbg0KPiBA MEAgc3ViZGlyIChlLmcuIGluIGEgY3Jvc3MtZmlsZSkgbm9yIG9uIHRoZSBjbWRsaW5lJy5mb3Jt YXQoYXJjaF9zdWJkaXIpKQ0KPiA+ICsJZW5kaWYNCj4gPiArZW5kaWYNCj4gPiArDQo+ID4gICMg c2V0IHRoZSBpbnN0YWxsIHBhdGggZm9yIHRoZSBkcml2ZXJzDQo+ID4gZHBka19jb25mLnNldF9x dW90ZWQoJ1JURV9FQUxfUE1EX1BBVEgnLCBlYWxfcG1kX3BhdGgpDQo+ID4NCj4gPiBkaWZmIC0t Z2l0IGEvbWVzb25fb3B0aW9ucy50eHQgYi9tZXNvbl9vcHRpb25zLnR4dCBpbmRleA0KPiA+IDli ZjE4YWI2Yi4uMDFiMGM0NWMzIDEwMDY0NA0KPiA+IC0tLSBhL21lc29uX29wdGlvbnMudHh0DQo+ ID4gKysrIGIvbWVzb25fb3B0aW9ucy50eHQNCj4gPiBAQCAtMjYsMTAgKzI2LDEwIEBAIG9wdGlv bignbWFjaGluZScsIHR5cGU6ICdzdHJpbmcnLCB2YWx1ZTogJ25hdGl2ZScsDQo+ID4gIAlkZXNj cmlwdGlvbjogJ3NldCB0aGUgdGFyZ2V0IG1hY2hpbmUgdHlwZScpICBvcHRpb24oJ21heF9ldGhw b3J0cycsDQo+ID4gdHlwZTogJ2ludGVnZXInLCB2YWx1ZTogMzIsDQo+ID4gIAlkZXNjcmlwdGlv bjogJ21heGltdW0gbnVtYmVyIG9mIEV0aGVybmV0IGRldmljZXMnKQ0KPiA+IC1vcHRpb24oJ21h eF9sY29yZXMnLCB0eXBlOiAnaW50ZWdlcicsIHZhbHVlOiAxMjgsDQo+ID4gLQlkZXNjcmlwdGlv bjogJ21heGltdW0gbnVtYmVyIG9mIGNvcmVzL3RocmVhZHMgc3VwcG9ydGVkIGJ5IEVBTCcpDQo+ ID4gLW9wdGlvbignbWF4X251bWFfbm9kZXMnLCB0eXBlOiAnaW50ZWdlcicsIHZhbHVlOiA0LA0K PiA+IC0JZGVzY3JpcHRpb246ICdtYXhpbXVtIG51bWJlciBvZiBOVU1BIG5vZGVzIHN1cHBvcnRl ZCBieSBFQUwnKQ0KPiA+ICtvcHRpb24oJ21heF9sY29yZXMnLCB0eXBlOiAnaW50ZWdlcicsIHZh bHVlOiAwLA0KPiA+ICsJZGVzY3JpcHRpb246ICdtYXhpbXVtIG51bWJlciBvZiBjb3Jlcy90aHJl YWRzIHN1cHBvcnRlZCBieSBFQUwuDQo+ID4gK1ZhbHVlIDAgbWVhbnMgdGhlIG51bWJlciBvZiBj cHVzIG9uIHRoZSBob3N0IHdpbGwgYmUgdXNlZC4gRm9yIGNyb3NzIGJ1aWxkLA0KPiBzZXQgdG8g bm9uLXplcm8gdG8gb3ZlcndyaXRlIHRoZSBjcm9zcy1maWxlIHZhbHVlLicpIG9wdGlvbignbWF4 X251bWFfbm9kZXMnLA0KPiB0eXBlOiAnaW50ZWdlcicsIHZhbHVlOiAwLA0KPiA+ICsJZGVzY3Jp cHRpb246ICdtYXhpbXVtIG51bWJlciBvZiBOVU1BIG5vZGVzIHN1cHBvcnRlZCBieSBFQUwuIFZh bHVlDQo+IDANCj4gPiArbWVhbnMgdGhlIG51bWJlciBvZiBudW1hIG5vZGVzIG9uIHRoZSBob3N0 IHdpbGwgYmUgdXNlZC4gRm9yIGNyb3NzDQo+ID4gK2J1aWxkLCBzZXQgdG8gbm9uLXplcm8gdG8g b3ZlcndyaXRlIHRoZSBjcm9zcy1maWxlIHZhbHVlLicpDQo+IA0KPiBJIGRvbid0IGxpa2UgdGhp cyBjaGFuZ2UsIGJlY2F1c2UgaXQgdmVyeSBtdWNoIGFzc3VtZXMgZm9yIG5vbi1jcm9zcy1jb21w aWxlcw0KPiB0aGF0IHBlb3BsZSB3aWxsIGJlIHJ1bm5pbmcgRFBESyBvbiB0aGUgc3lzdGVtIHRo ZXkgYnVpbGQgaXQgb24uIFRoYXQncyBhIHZlcnksDQo+IHZlcnkgYmlnIGFzc3VtcHRpb24hDQoN CkknbGwgYmUgdXNpbmcgZGVmaW5pdGlvbnMgZnJvbSBodHRwczovL21lc29uYnVpbGQuY29tL0Ny b3NzLWNvbXBpbGF0aW9uLmh0bWwuDQpJIHVuZGVyc3RhbmQgY3Jvc3MgY29tcGlsYXRpb24gdG8g YmUgYnVpbGRpbmcgZm9yIGEgZGlmZmVudCBob3N0IG1hY2hpbmUgdGhhbiB0aGUgYnVpbGQgbWFj aGluZSAod2hpY2ggaXMgYWxpZ25lZCB3aXRoIHByZXR0eSBtdWNoIGV2ZXJ5IGRlZmluaXRpb24g SSBmb3VuZCkuIEkgdW5kZXJzdGFuZCB0aGlzIHRvIGJlIHRydWUgbm90IG9ubHkgZm9yIGJ1aWxk cyBiZXR3ZWVuIGFyY2hpdGVjdHVyZXMsIGJ1dCBhbHNvIHdpdGhpbiBhbiBhcmNoaXRlY3R1cmUg KGUuZy4geDg2XzY0IGJ1aWxkIG1hY2hpbmUgYnVpbGRpbmcgZm9yIHg4Nl82NCBob3N0IG1hY2hp bmUpLg0KU28geWVzLCB3aGVuIHNvbWVvbmUgZG9lcyBhIG5hdGl2ZSBidWlsZCwgaXQgc3RhbmRz IHRvIHJlYXNvbiB0aGV5IHdhbnQgdG8gdXNlIGl0IG9uIHRoZSBidWlsZCBtYWNoaW5lLiBJZiB0 aGV5IHdhbnRlZCB0byB1c2UgaXQgZWxzZXdoZXJlLCB0aGV5IHdvdWxkIGNyb3NzIGNvbXBpbGUu DQpBbm90aGVyIHRoaW5nIGlzIHRoZSBjdXJyZW50IGJ1aWxkIHBoaWxvc29waHkgaXMgdG8gZGV0 ZWN0IGFzIG11Y2ggYXMgcG9zc2libGUgKG5vdCBoYXZpbmcgc3RhdGljYWxseSBkZWZpbmVkIGNv bmZpZ3VyYXRpb24sIGFzIHlvdSBtZW50aW9uZWQgaW4gdGhlIHBhc3QpLiBEZXRlY3RpbmcgdGhl IG51bWJlciBvZiBjb3JlcyBhbmQgbnVtYSBub2RlcyBmaXRzIHRoaXMgcGVyZmVjdGx5Lg0KQW5k IHlldCBhbm90aGVyIHRoaW5nIGlzIHRoYXQgdGhlIGFzc3VtcHRpb24gc2VlbXMgdG8gYmUgYWxy ZWFkeSBwcmVzZW50IGluIHRoZSBidWlsZCBzeXN0ZW0gLSBpdCBhbHJlYWR5IGRldGVjdHMgYSBs b3QgdGhpbmdzLCBzb21lIG9mIHdoaWNoIG1heSBub3QgYmUgc2F0aXNmaWVkIG9uIG1hY2hpbmVz IG90aGVyIHRoYW4gdGhlIGJ1aWxkIG1hY2hpbmUuIEkgbWF5IGJlIHdyb25nIGFib3V0IHRoaXMu DQoNCj4gSSdtIG9rIHdpdGggaGF2aW5nIHplcm8gYXMgYSAiZGV0ZWN0IiBvcHRpb24sIGFuZCBo YXZpbmcNCj4gdGhlIHZhbHVlcyBvdmVycmlkZGVuIGZyb20gY3Jvc3MtZmlsZXMsIGJ1dCBub3Qg d2l0aCBkZXRlY3Rpb24gYXMgdGhlIGRlZmF1bHQgb3V0LQ0KPiBvZi10aGUtYm94IG9wdGlvbiEg TG90cyBvZiB1c2VycyBtYXkgcHVsbCBidWlsZHMgZnJvbSBhIENJIGJhc2VkIG9uIFZNcyB3aXRo DQo+IGp1c3QgYSBmZXcgY29yZXMsIGZvciBpbnN0YW5jZS4NCg0KSWYgbm90IGhhdmluZyB0aGUg YXV0b21hdGljIGRldGVjdGlvbiBpcyBhIGNvbmNlcm4gYmVjYXVzZSBvZiB1c2VycyB1c2luZyBD SSBidWlsZHMsIHRoZW4gd2UgKGlmIGl0J3MgZnJvbSBvdXIgQ0kpIGNhbiBjaGFuZ2Ugd2hhdCB3 ZSdyZSBidWlsZGluZyBpbiBDSSAtIHRoZSBkZWZhdWx0L2dlbmVyaWMgYnVpbGQgc2VlbXMgbGlr ZSBhIGdvb2QgZml0IGJlY2F1c2UgaXQncyBzdXBwb3NlZCB0byB3b3JrIG9uIGEgdmFyaWV0eSBv ZiBzeXN0ZW1zLiBFeHBlY3RpbmcgdGhhdCBuYXRpdmUgYnVpbGQgZnJvbSByYW5kb20gVk1zIHdv dWxkIHdvcmsgYW55d2hlcmUgZG9lc24ndCBzZWVuIHZlcnkgcmVhbGlzdGljIC0gaXQncyBiZWVu IGJ1aWxkIGZvciB0aGF0IFZNIGVudmlyb25tZW50IChiZWNhdXNlIGl0J3MgYSBuYXRpdmUgYnVp bGQpLg0KDQpIZXJlJ3MgbXkgdW5kZXJzdGFuZGluZyBvbiB3aGljaCB0aGUgY3VycmVudCB2ZXJz aW9uIGlzIGJhc2VkOg0KMS4gU2luY2Ugd2Ugd2FudCB0byBnZXQgYXdheSBmcm9tIGhhdmluZyBz dGF0aWNhbGx5IGRlZmluZWQgY29uZmlndXJhdGlvbiwgbnVtYSBhbmQgY29yZSBjb3VudCBkaXNj b3ZlcnkgaXMgZXhhY3RseSB3aGF0IHdlIHNob3VsZCBoYXZlIGluIHRoZSBidWlsZCBzeXN0ZW0u IFNpbmNlIGRpc2NvcmVyeSBpcyBjdXJyZW50bHkgdGhlIGRlZmF1bHQgZm9yIGxpYi9kcml2ZXJz LCBpdCBzdGFuZHMgdG8gcmVhc29uIGl0IHNob3VsZCBiZSBkZWZhdWx0IGZvciBldmVyeXRoaW5n IGVsc2UsIGlmIHBvc3NpYmxlLg0KMi4gTmF0aXZlIGJ1aWxkIHNob3VsZCBwcm9kdWNlIGJpbmFy aWVzIG1hdGNoaW5nIHRoZSBidWlsZCBtYWNoaW5lIGFzIHdlbGwgYXMgcG9zc2libGUuDQozLiBE ZWZhdWx0L2dlbmVyaWMgYnVpbGQgc2hvdWxkIHByb2R1Y2UgYmluYXJpZXMgZXhlY3V0YWJsZSBv biBhIHJhbmdlIG9mIHN5c3RlbXMgKGlkZWFsbHkgYWxsIHN5c3RlbXMgb2YgYSBnaXZlbiBhcmNo aXRlY3R1cmUpLg0KNC4gT3RoZXIgYnVpbGRzLCB0aGF0IGlzIG5vbi1uYXRpdmUgYnVpbGRzLCBh cmUgY3Jvc3MtY29tcGlsYXRpb24sIHNpbmNlIHdlJ3JlIGJ1aWxkaW5nIGZvciBob3N0IG1hY2hp bmUgb3RoZXIgdGhhdCB0aGUgYnVpbGQgbWFjaGluZS4NCg0KV2hhdCBJIGhhdmVuJ3QgdGFrZW4g aW50byBhY2NvdW50IGlzIHVzZXJzIHVzaW5nIENJIGJ1aWxkcy4gVGhhdCBjb3VsZCBiZSByZW1l ZGllZCBieSBtb2RpZnlpbmcgdGhlIENJIGEgYml0IHdoaWxlIGJlaW5nIGNvbnNpc3RlbnQgd2l0 aCB3aGF0IG5hdGl2ZS9kZWZhdWx0L2dlbmVyaWMvY3Jvc3MgYnVpbGRzIGFyZSAob3Igc2hvdWxk IGJlKS4gQW5kIGluIGFueSBjYXNlLCBpZiB3ZSdyZSBub3QgaW50ZXJlc3RlZCBpbiB0ZXN0aW5n IHRoZSBleGFjdCBDSSBlbnZpcm9ubWVudCAod2hpY2ggd2UgYXJlbid0LCBzaW5jZSB3ZSBkb24n dCB3YW50IHRvIHVzZSAyIGNvcmVzIHdpdGggMSBudW1hKSwgd2UgcmVhbGx5IHNob3VsZG4ndCBi ZSBkb2luZyBuYXRpdmUgYnVpbGRzIHRoZXJlLg0KDQpJJ20gaW50ZXJlc3RlZCBpbiBoZWFyaW5n IHdoZXJlIG15IHRoaW5raW5nIGRldmlhdGVzIGZyb20geW91cnMuDQoNCj4gDQo+ID4gIG9wdGlv bignZW5hYmxlX3RyYWNlX2ZwJywgdHlwZTogJ2Jvb2xlYW4nLCB2YWx1ZTogZmFsc2UsDQo+ID4g IAlkZXNjcmlwdGlvbjogJ2VuYWJsZSBmYXN0IHBhdGggdHJhY2UgcG9pbnRzLicpICBvcHRpb24o J3Rlc3RzJywNCj4gPiB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiB0cnVlLA0KPiA+IC0tDQo+ID4g Mi4yMC4xDQo+ID4NCg0K