From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id CCAAB1BB20 for ; Fri, 22 Jun 2018 08:50:02 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jun 2018 23:50:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,255,1526367600"; d="scan'208";a="65365548" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga004.fm.intel.com with ESMTP; 21 Jun 2018 23:50:00 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 21 Jun 2018 23:50:00 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 21 Jun 2018 23:50:00 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.51]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.82]) with mapi id 14.03.0319.002; Fri, 22 Jun 2018 14:49:57 +0800 From: "Zhang, Qi Z" To: "Burakov, Anatoly" , "thomas@monjalon.net" CC: "Ananyev, Konstantin" , "dev@dpdk.org" , "Richardson, Bruce" , "Yigit, Ferruh" , "Shelton, Benjamin H" , "Vangati, Narender" Thread-Topic: [PATCH 22/22] examples/devmgm_mp: add simple device management sample Thread-Index: AQHUBvAyXmRIyvxYF0Cx4z3UXggCAqRr2Mgw Date: Fri, 22 Jun 2018 06:49:56 +0000 Message-ID: <039ED4275CED7440929022BC67E706115323B90F@SHSMSX103.ccr.corp.intel.com> References: <20180607123849.14439-1-qi.z.zhang@intel.com> <20180607123849.14439-23-qi.z.zhang@intel.com> <181b45a2-93cc-5700-5f9e-2dfdf474e38c@intel.com> In-Reply-To: <181b45a2-93cc-5700-5f9e-2dfdf474e38c@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZmM5Y2FlZDctODFlZS00NjQ0LWE1YmQtYjQzMjFlZmVkNzllIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiOElpeDVLYkE0QWhPa29JSis5K0JCelwvNkt6YWU5OTlcL2IrY1J3UFhqS0NXZ2pHczZaYnBlMTdaNWttN3Nha2VwIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 22/22] examples/devmgm_mp: add simple device management sample 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: Fri, 22 Jun 2018 06:50:04 -0000 SGkgQW5hdG9seToNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBCdXJh a292LCBBbmF0b2x5DQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAxOCwgMjAxOCA2OjM2IFBNDQo+IFRv OiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyB0aG9tYXNAbW9uamFsb24ubmV0 DQo+IENjOiBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29t PjsgZGV2QGRwZGsub3JnOw0KPiBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2UucmljaGFyZHNvbkBp bnRlbC5jb20+OyBZaWdpdCwgRmVycnVoDQo+IDxmZXJydWgueWlnaXRAaW50ZWwuY29tPjsgU2hl bHRvbiwgQmVuamFtaW4gSA0KPiA8YmVuamFtaW4uaC5zaGVsdG9uQGludGVsLmNvbT47IFZhbmdh dGksIE5hcmVuZGVyDQo+IDxuYXJlbmRlci52YW5nYXRpQGludGVsLmNvbT4NCj4gU3ViamVjdDog UmU6IFtQQVRDSCAyMi8yMl0gZXhhbXBsZXMvZGV2bWdtX21wOiBhZGQgc2ltcGxlIGRldmljZQ0K PiBtYW5hZ2VtZW50IHNhbXBsZQ0KPiANCj4gT24gMDctSnVuLTE4IDE6MzggUE0sIFFpIFpoYW5n IHdyb3RlOg0KPiA+IFRoZSBzYW1wbGUgY29kZSBkZW1vbnN0cmF0ZSBkZXZpY2UgKGV0aGRldiBv bmx5KSBtYW5hZ2VtZW50IGF0DQo+ID4gbXVsdGktcHJvY2VzcyBlbnZyaW9ubWVudC4gVXNlciBj YW4gYXR0YWNoL2RldGFjaCBhIGRldmljZSBvbiBwcmltYXJ5DQo+ID4gcHJvY2VzcyBhbmQgc2Vl IGl0IGlzIHN5bmNlZCBvbiBzZWNvbmRhcnkgcHJvY2VzcyBhdXRvbWF0aWNhbGx5LCBhbHNvDQo+ ID4gdXNlciBjYW4gbG9jayBhIGRldmljZSB0byBwcmV2ZW50IGl0IGJlIGRldGFjaGVkIG9yIHVu bG9jayBpdCB0byBnbw0KPiA+IGJhY2sgdG8gZGVmYXVsdCBiZWhhdmlvdXIuDQo+ID4NCj4gPiBI b3cgdG8gc3RhcnQ/DQo+ID4gLi9kZXZtZ21fbXAgLS1wcm9jLXR5cGU9YXV0bw0KPiA+DQo+ID4g Q29tbWFuZCBMaW5lIEV4YW1wbGU6DQo+ID4NCj4gPj4gaGVscA0KPiA+PiBsaXN0DQo+ID4NCj4g PiAvKiBhdHRhY2ggYSBhZl9wYWNrZXQgdmRldiAqLw0KPiA+PiBhdHRhY2ggbmV0X2FmX3BhY2tl dCxpZmFjZT1ldGgwDQo+ID4NCj4gPiAvKiBkZXRhY2ggcG9ydCAwICovDQo+ID4+IGRldGFjaCAw DQo+ID4NCj4gPiAvKiBhdHRhY2ggYSBwcml2YXRlIGFmX3BhY2tldCB2ZGV2IChzZWNvbmRhcnkg cHJvY2VzcyBvbmx5KSovDQo+ID4+IGF0dGFjaHAgbmV0X2FmX3BhY2tldCxpZmFjZT1ldGgwDQo+ ID4NCj4gPiAvKiBkZXRhY2ggYSBwcml2YXRlIGRldmljZSAoc2Vjb25kYXJ5IHByb2Nlc3Mgb25s eSkgKi8NCj4gPj4gZGV0YWNocCAwDQo+ID4NCj4gPiAvKiBsb2NrIHBvcnQgMCAqLw0KPiA+PiBs b2NrIDANCj4gPg0KPiA+IC8qIHVubG9jayBwb3J0IDAgKi8NCj4gPj4gdW5sb2NrIDANCj4gPg0K PiA+IFNpZ25lZC1vZmYtYnk6IFFpIFpoYW5nIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gPiAt LS0NCj4gDQo+IEkgdGhpbmsgdGhlICJkZXZtZ21fbXAiIGlzIG5vdCBhIGRlc2NyaXB0aXZlIGVu b3VnaCBuYW1lLiBXaGF0IHRoaXMNCj4gZXhhbXBsZSBkZW1vbnN0cmF0ZXMsIGlzIGRldmljZSBo b3RwbHVnLiBTbyBob3cgYWJvdXQgbmFtaW5nIHRoZSBleGFtcGxlDQo+IGFwcCAiaG90cGx1ZyI/ IChvciAibXBfaG90cGx1ZyIgdG8gaW5kaWNhdGUgdGhhdCBpdCBzcGVjaWZpY2FsbHkgc2V0cyBv dXQgdG8NCj4gZGVtb25zdHJhdGUgbXVsdGlwcm9jZXNzIGhvdHBsdWcpDQoNCg0KT2ssIEkgc2F3 IGFsbCB0aGUgbXVsdGktcHJvY2VzcyBzYW1wbGVzIGFyZSBpbiBleGFtcGxlcy9tdWx0aV9wcm9j ZXNzLCBzbyBJIHRoaW5rIHRoaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIGFkZA0KaXQgY291bGQgYmUg ImhvdHBsdWdfbXAiIHRvIGZvbGxvdyBvdGhlciBzYW1wbGVzIG5hbWluZyBydWxlLg0KPiANCj4g PiAgIGV4YW1wbGVzL2Rldm1nbV9tcC9NYWtlZmlsZSAgICB8ICA2NCArKysrKysrDQo+ID4gICBl eGFtcGxlcy9kZXZtZ21fbXAvY29tbWFuZHMuYyAgfCAzODMNCj4gKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgIGV4YW1wbGVzL2Rldm1nbV9tcC9jb21tYW5k cy5oICB8ICAxMCArKw0KPiA+ICAgZXhhbXBsZXMvZGV2bWdtX21wL21haW4uYyAgICAgIHwgIDQx ICsrKysrDQo+ID4gICBleGFtcGxlcy9kZXZtZ21fbXAvbWVzb24uYnVpbGQgfCAgMTEgKysNCj4g PiAgIDUgZmlsZXMgY2hhbmdlZCwgNTA5IGluc2VydGlvbnMoKykNCj4gPiAgIGNyZWF0ZSBtb2Rl IDEwMDY0NCBleGFtcGxlcy9kZXZtZ21fbXAvTWFrZWZpbGUNCj4gPiAgIGNyZWF0ZSBtb2RlIDEw MDY0NCBleGFtcGxlcy9kZXZtZ21fbXAvY29tbWFuZHMuYw0KPiA+ICAgY3JlYXRlIG1vZGUgMTAw NjQ0IGV4YW1wbGVzL2Rldm1nbV9tcC9jb21tYW5kcy5oDQo+ID4gICBjcmVhdGUgbW9kZSAxMDA2 NDQgZXhhbXBsZXMvZGV2bWdtX21wL21haW4uYw0KPiA+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGV4 YW1wbGVzL2Rldm1nbV9tcC9tZXNvbi5idWlsZA0KPiA+DQo+IA0KPiA8c25pcD4NCj4gDQo+ID4g KyNpbmNsdWRlIDxzdGRpby5oPg0KPiA+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ID4gKyNpbmNs dWRlIDxzdHJpbmcuaD4NCj4gPiArI2luY2x1ZGUgPHN0ZGxpYi5oPg0KPiA+ICsjaW5jbHVkZSA8 c3RkYXJnLmg+DQo+ID4gKyNpbmNsdWRlIDxlcnJuby5oPg0KPiA+ICsjaW5jbHVkZSA8bmV0aW5l dC9pbi5oPg0KPiA+ICsjaW5jbHVkZSA8dGVybWlvcy5oPg0KPiA+ICsjaWZuZGVmIF9fbGludXhf Xw0KPiA+ICsJI2lmZGVmIF9fRnJlZUJTRF9fDQo+ID4gKwkJI2luY2x1ZGUgPHN5cy9zb2NrZXQu aD4NCj4gPiArCSNlbHNlDQo+ID4gKwkJI2luY2x1ZGUgPG5ldC9zb2NrZXQuaD4NCj4gPiArCSNl bmRpZg0KPiA+ICsjZW5kaWYNCj4gDQo+IFRoaXMgc2VlbXMgbGlrZSBhIHdlaXJkIGRlZmluZS4g Q2FyZSB0byBlbGFib3JhdGUgd2h5IGFyZSB3ZSBjaGVja2luZyBmb3INCj4gX19saW51eF9fIG5v dCBiZWluZyBkZWZpbmVkPw0KDQpPSywgdGhpcyBpcyBjb3B5IGZyb20gZXhpc3Qgc2FtcGxlIGNv ZGUgOiksIEkgd2lsbCBjbGVhbiB1cCB0aGUgaGVhZGVyIGZpbGUgaW4gdjMuDQoNCj4gDQo+IElm IHlvdSdyZSB0cnlpbmcgdG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIExpbnV4IGFuZCBGcmVlQlNE LCB0aGVyZSdzIGEgcmVhZGx5DQo+IFJURV9FWEVDX0VOVl8qIGNvbmZpZyBvcHRpb25zLCBlLmcu DQo+IA0KPiAjaWZkZWYgUlRFX0VYRUNfRU5WX0xJTlVYQVBQDQo+IC8vIGxpbnV4IGRlZmluZXMN Cj4gI2VuZGlmDQo+ICNpZmRlZiBSVEVfRVhFQ19FTlZfQlNEQVBQDQo+IC8vIGJzZCBkZWZpbmVz DQo+ICNlbmRpZg0KPiANCj4gb3Igc29tZXRoaW5nIHRvIHRoYXQgZWZmZWN0Lg0KPiANCj4gPiAr DQo+ID4gKyNpbmNsdWRlIDxjbWRsaW5lX3JkbGluZS5oPg0KPiA+ICsjaW5jbHVkZSA8Y21kbGlu ZV9wYXJzZS5oPg0KPiA+ICsjaW5jbHVkZSA8Y21kbGluZV9wYXJzZV9pcGFkZHIuaD4NCj4gPiAr I2luY2x1ZGUgPGNtZGxpbmVfcGFyc2VfbnVtLmg+DQo+ID4gKyNpbmNsdWRlIDxjbWRsaW5lX3Bh cnNlX3N0cmluZy5oPg0KPiA+ICsjaW5jbHVkZSA8Y21kbGluZS5oPg0KPiA+ICsjaW5jbHVkZSA8 cnRlX2V0aGRldi5oPg0KPiANCj4gR2VuZXJhbGx5IChhbmQgYXMgcGVyIERQREsgY29kaW5nIGd1 aWRlbGluZXMpLCB3ZSBwcmVmZXIgZGVmaW5lcyBvcmRlcmVkIGFzDQo+IGZvbGxvd3M6DQo+IA0K PiAxKSBzeXN0ZW0gZGVmaW5lcyBlbmNsb3NlZCBpbiBicmFja2V0cw0KPiAyKSBEUERLIGRlZmlu ZXMgKHJ0ZV9ibGFoKSBlbmNsb3NlZCBpbiBicmFja2V0cw0KPiAzKSBwcml2YXRlL2FwcGxpY2F0 aW9uLXNwZWNpZmljIGRlZmluZXMgZW5jbG9zZWQgaW4gcXVvdGVzLg0KPiANCj4gQWxsIHRocmVl IGdyb3VwcyBzaG91bGQgYmUgc2VwYXJhdGVkIGJ5IG5ld2xpbmUuDQo+IA0KPiBTbywgdGhlc2Ug ZGVmaW5lcyBzaG91bGQndmUgcmVhZCBhczoNCj4gDQo+ICNpbmNsdWRlIDxzdGRibGFoLmg+DQo+ ICNpbmNsdWRlIDxzeXMvYmxhaC5oPg0KPiANCj4gI2luY2x1ZGUgPHJ0ZV9ibGFoLmg+DQo+ICNp bmNsdWRlIDxydGVfZm9vLmg+DQo+IA0KPiAjaW5jbHVkZSAiY21kbGluZV9ibGFoLmgiDQo+ICNp bmNsdWRlICJjbWRsaW5lX2Zvby5oIg0KDQpHb3QgaXQsIHRoYW5rcw0KDQo+IA0KPiA+ICsNCj4g PiArLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgY21kX2hlbHBfcmVzdWx0IHsNCj4gPiArCWNtZGxp bmVfZml4ZWRfc3RyaW5nX3QgaGVscDsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lk IGNtZF9oZWxwX3BhcnNlZChfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSB2b2lkDQo+ID4gKypwYXJz ZWRfcmVzdWx0LA0KPiANCj4gPHNuaXA+DQo+IA0KPiA+ICt7DQo+ID4gKwl1aW50MTZfdCBwb3J0 X2lkOw0KPiA+ICsJY2hhciBkZXZfbmFtZVtSVEVfREVWX05BTUVfTUFYX0xFTl07DQo+ID4gKw0K PiA+ICsJY21kbGluZV9wcmludGYoY2wsICJsaXN0IGFsbCBldGhlcmRldlxuIik7DQo+ID4gKw0K PiA+ICsJUlRFX0VUSF9GT1JFQUNIX0RFVihwb3J0X2lkKSB7DQo+ID4gKwkJcnRlX2V0aF9kZXZf Z2V0X25hbWVfYnlfcG9ydChwb3J0X2lkLCBkZXZfbmFtZSk7DQo+ID4gKwkJLyogU2Vjb25kYXJ5 IHByb2Nlc3MncyBldGhkZXYtPnN0YXRlIG1heSBub3QgYmUNCj4gPiArCQkgKiB1cGRhdGVkIGFm dGVyIGRldGFjaCBvbiBwcmltYXJ5IHByb2Nlc3MsICBidXQNCj4gPiArCQkgKiBldGhkZXYtPmRh dGEgc2hvdWxkIGFscmVhZHkgYmUgcmVzZXQsIHNvDQo+ID4gKwkJICogdXNlIHN0cmxlbihkZXZf bmFtZSkgPT0gMCB0byBrbm93IHRoZSBwb3J0IGlzDQo+ID4gKwkJICogbm90IHVzZWQuDQo+ID4g KwkJICoNCj4gPiArCQkgKiBUT0RPOiBTZWNvbmRhcnkgcHJvY2VzcyBzaG91bGQgYmUgaW5mb3Jt ZWQgd2hlbiBhDQo+ID4gKwkJICogcG9ydCBpcyByZWxlYXNlZCBvbiBwcmltYXJ5IHRocm91Z2gg bXAgY2hhbm5lbC4NCj4gPiArCQkgKi8NCj4gDQo+IFRoYXQgc2VlbXMgbGlrZSBhIHdlaXJkIHRo aW5nIHRvIGxlYXZlIG91dCBmb3IgVE9ETyAtIGl0IGxvb2tzIGxpa2UgYW4gQVBJDQo+IGRlZmlj aWVuY3kuIENhbiB0aGlzIGJlIGF1dG9tYXRpY2FsbHkgdXBkYXRlZCBvbiBtdWx0aXByb2Nlc3Mg aG90cGx1ZyBzeW5jLCBvcg0KPiBzb21laG93IG1hbmFnZWQgaW5zaWRlIFJURV9FVEhfRk9SRUFD SF9ERVY/DQo+IA0KPiBBcyBpIHVuZGVyc3RhbmQsIHBlci1wcm9jZXNzIGV0aGRldiBsaXN0IGlz IG5vdCBwcm90ZWN0ZWQgYnkgYW55IGxvY2tzLCBzbyBkb2luZw0KPiB0aGlzIGlzIHJhY3kuIFNp bmNlIHRoaXMgaXMgYSBtdWx0aXByb2Nlc3MgaG90cGx1ZyBleGFtcGxlIGFwcCwgaXQgc2hvdWxk DQo+IGRlbW9uc3RyYXRlIGJlc3QgcHJhY3RpY2VzLiBTbywgZWl0aGVyIFJURV9FVEhfRk9SRUFD SF9ERVYgc2hvdWxkIGJlDQo+IGZpeGVkIHRvIGhhbmRsZSB0aGlzIGNhc2UsIG9yIHRoZSBhcHBs aWNhdGlvbiBzaG91bGQgZGVtb25zdHJhdGUgaG93IHRvDQo+IHByb3Blcmx5IHN5bmNocm9uaXpl IGFjY2VzcyB0byBsb2NhbCBkZXZpY2UgbGlzdC4gVGhlIGxhdHRlciBpcyBwcm9iYWJseSBiZXR0 ZXIgYXMNCj4gYWRkaW5nIGxvY2tpbmcgYXJvdW5kIGV0aGRldiBkZXZpY2UgbGlzdCBpcyBvdXRz aWRlIHRoZSBzY29wZSBvZiB0aGlzIHBhdGNoc2V0Lg0KDQpBbGwgdGhpcyBjb21tZW50IHNob3Vs ZCBiZSByZW1vdmVkIHNpbmNlIFRPRE8gYWxyZWFkeSBkb25lIDopDQpBY3R1YWxseSwgd2UgZ3Vh cmFudGVlIGRldmljZSBiZSBkZXRhY2hlZCBmcm9tIHNlY29uZGFyeSBiZWZvcmUgcHJpbWFyeS4N Cg0KPiANCj4gPiArCQlpZiAoc3RybGVuKGRldl9uYW1lKSA+IDApDQo+ID4gKwkJCWNtZGxpbmVf cHJpbnRmKGNsLCAiJWRcdCVzXG4iLCBwb3J0X2lkLCBkZXZfbmFtZSk7DQo+ID4gKwkJZWxzZQ0K PiA+ICsJCQlwcmludGYoImVtcHR5IGRldl9uYW1lIGlzIG5vdCBleHBlY3RlZCFcbiIpOw0KPiA+ ICsJfQ0KPiANCj4gPHNuaXA+DQo+IA0KPiA+ICsjaW5jbHVkZSAiY29tbWFuZHMuaCINCj4gPiAr DQo+ID4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikNCj4gPiArew0KPiA+ICsJaW50 IHJldDsNCj4gPiArCXN0cnVjdCBjbWRsaW5lICpjbDsNCj4gPiArDQo+ID4gKwlyZXQgPSBydGVf ZWFsX2luaXQoYXJnYywgYXJndik7DQo+ID4gKwlpZiAocmV0IDwgMCkNCj4gPiArCQlydGVfcGFu aWMoIkNhbm5vdCBpbml0IEVBTFxuIik7DQo+ID4gKw0KPiA+ICsJY2wgPSBjbWRsaW5lX3N0ZGlu X25ldyhtYWluX2N0eCwgImV4YW1wbGU+ICIpOw0KPiA+ICsJaWYgKGNsID09IE5VTEwpDQo+ID4g KwkJcnRlX3BhbmljKCJDYW5ub3QgY3JlYXRlIGNtZGxpbmUgaW5zdGFuY2VcbiIpOw0KPiA+ICsJ Y21kbGluZV9pbnRlcmFjdChjbCk7DQo+ID4gKwljbWRsaW5lX3N0ZGluX2V4aXQoY2wpOw0KPiA+ ICsNCj4gPiArCXJldHVybiAwOw0KPiANCj4gQXBwbGljYXRpb24gc2hvdWxkIGNhbGwgcnRlX2Vh bF9jbGVhbnVwKCkgYmVmb3JlIGV4aXQuIE90aGVyd2lzZSwgZWFjaA0KPiBzZWNvbmRhcnkgc3Rh cnRlZCBhbmQgc3RvcHBlZCB3aWxsIGxlYWsgbWVtb3J5Lg0KDQpPSywgd2lsbCBhZGQgaXQuDQoN ClRoYW5rcw0KUWkNCg0KPiANCj4gLS0NCj4gVGhhbmtzLA0KPiBBbmF0b2x5DQo=