From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id E85E32B9C for ; Mon, 25 Feb 2019 12:49:07 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Feb 2019 03:49:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,411,1544515200"; d="scan'208";a="149749888" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga001.fm.intel.com with ESMTP; 25 Feb 2019 03:49:06 -0800 Received: from lcsmsx153.ger.corp.intel.com (10.186.165.228) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Mon, 25 Feb 2019 03:49:06 -0800 Received: from hasmsx105.ger.corp.intel.com ([169.254.1.221]) by LCSMSX153.ger.corp.intel.com ([169.254.8.211]) with mapi id 14.03.0415.000; Mon, 25 Feb 2019 13:49:03 +0200 From: "Stojaczyk, Dariusz" To: Jason Wang , "Liu, Changpeng" , "dev@dpdk.org" CC: "maxime.coquelin@redhat.com" , "Bie, Tiwei" , "Wang, Zhihong" Thread-Topic: [dpdk-dev] [PATCH] vhost: add virtio configuration space access socket messages Thread-Index: AQHUzNxm/bpCXN7YNk+mQLyFqd//LqXwAeEAgABUXtA= Date: Mon, 25 Feb 2019 11:49:03 +0000 Message-ID: References: <1551081095-14286-1-git-send-email-changpeng.liu@intel.com> <1a43221c-2bc7-efce-0e18-c425bfe1d201@redhat.com> In-Reply-To: <1a43221c-2bc7-efce-0e18-c425bfe1d201@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.102.11.60] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] vhost: add virtio configuration space access socket messages 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: Mon, 25 Feb 2019 11:49:08 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSmFzb24gV2FuZyBbbWFp bHRvOmphc293YW5nQHJlZGhhdC5jb21dDQo+IFNlbnQ6IE1vbmRheSwgRmVicnVhcnkgMjUsIDIw MTkgODo0OSBBTQ0KPiBUbzogTGl1LCBDaGFuZ3BlbmcgPGNoYW5ncGVuZy5saXVAaW50ZWwuY29t PjsgZGV2QGRwZGsub3JnDQo+IENjOiBTdG9qYWN6eWssIERhcml1c3ogPGRhcml1c3ouc3RvamFj enlrQGludGVsLmNvbT47DQo+IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBCaWUsIFRpd2Vp IDx0aXdlaS5iaWVAaW50ZWwuY29tPjsgV2FuZywNCj4gWmhpaG9uZyA8emhpaG9uZy53YW5nQGlu dGVsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSB2aG9zdDogYWRkIHZp cnRpbyBjb25maWd1cmF0aW9uIHNwYWNlIGFjY2Vzcw0KPiBzb2NrZXQgbWVzc2FnZXMNCj4gDQo+ IA0KPiBPbiAyMDE5LzIvMjUg5LiL5Y2IMzo1MSwgQ2hhbmdwZW5nIExpdSB3cm90ZToNCj4gPiBU aGlzIHBhdGNoIGFkZHMgbmV3IHZob3N0IHVzZXIgbWVzc2FnZXMgR0VUX0NPTkZJRyBhbmQgU0VU X0NPTkZJRw0KPiA+IHVzZWQgdG8gZ2V0L3NldCB2aXJ0aW8gZGV2aWNlJ3MgUENJIGNvbmZpZ3Vy YXRpb24gc3BhY2UuDQo+IA0KPiANCj4gSSB0aGluayBpdCdzIGJldHRlciB0byBkZXNjcmliZSB0 aGUgcmVhc29uIGZvciBkb2luZyB0aGlzLiBJIGJlbGlldmUNCj4gdmhvc3QgaXMgdHJhbnNwb3J0 IGluZGVwZW5kZW50Lg0KDQpWaXJ0aW8gZG9lcyBkZWZpbmUgYSBnZW5lcmljIGNvbmZpZ3VyYXRp b24gc3BhY2UgW1ZpcnRpbyAxLjAsIDIuMyBEZXZpY2UNCkNvbmZpZ3VyYXRpb24gU3BhY2VdLiBJ dCdzIG5vdCBQQ0kgc3BlY2lmaWMgYXQgYWxsIC0gSSBiZWxpZXZlIENoYW5ncGVuZw0KbWVudGlv bmVkIFBDSSBqdXN0IHRvIGNsZWFybHkgbGF5IHRoaW5ncyBvdXQuDQoNCkJlc2lkZXMsIEdFVC9T RVRfQ09ORklHIGlzIGFscmVhZHkgZGVmaW5lZCBpbiB0aGUgdmhvc3QtdXNlciBzcGVjOg0KDQpo dHRwczovL2dpdGh1Yi5jb20vcWVtdS9xZW11L2Jsb2IvbWFzdGVyL2RvY3MvaW50ZXJvcC92aG9z dC11c2VyLnR4dCNMNjc4DQoNClN0aWxsLCBJIGFncmVlIHRoaXMgY29tbWl0IGNvdWxkIHVzZSBz b21lIG1vcmUgZGVzY3JpcHRpb24uDQoNCkQuDQoNCj4gDQo+IFRoYW5rcw0KPiANCj4gDQo+ID4N Cj4gPiBTaWduZWQtb2ZmLWJ5OiBDaGFuZ3BlbmcgTGl1IDxjaGFuZ3BlbmcubGl1QGludGVsLmNv bT4NCj4gPiAtLS0NCj4gPiAgIGxpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmggIHwgIDggKysr KysrKysNCj4gPiAgIGxpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jIHwgNDQNCj4gKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiA+ICAgbGliL2xpYnJ0ZV92 aG9zdC92aG9zdF91c2VyLmggfCAxNiArKysrKysrKysrKysrKysrDQo+ID4gICAzIGZpbGVzIGNo YW5nZWQsIDY4IGluc2VydGlvbnMoKykNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl X3Zob3N0L3J0ZV92aG9zdC5oIGIvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhvc3QuaA0KPiA+IGlu ZGV4IDI3NTM2NzAuLmFiNzEwY2UgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC9y dGVfdmhvc3QuaA0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0LmgNCj4gPiBA QCAtNjMsNiArNjMsMTAgQEANCj4gPiAgICNkZWZpbmUgVkhPU1RfVVNFUl9QUk9UT0NPTF9GX1BB R0VGQVVMVCA4DQo+ID4gICAjZW5kaWYNCj4gPg0KPiA+ICsjaWZuZGVmIFZIT1NUX1VTRVJfUFJP VE9DT0xfRl9DT05GSUcNCj4gPiArI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfQ09ORklH IDkNCj4gPiArI2VuZGlmDQo+ID4gKw0KPiA+ICAgI2lmbmRlZiBWSE9TVF9VU0VSX1BST1RPQ09M X0ZfU0xBVkVfU0VORF9GRA0KPiA+ICAgI2RlZmluZSBWSE9TVF9VU0VSX1BST1RPQ09MX0ZfU0xB VkVfU0VORF9GRCAxMA0KPiA+ICAgI2VuZGlmDQo+ID4gQEAgLTE3Myw2ICsxNzcsMTAgQEAgc3Ry dWN0IHZob3N0X2RldmljZV9vcHMgew0KPiA+DQo+ID4gICAJaW50ICgqdnJpbmdfc3RhdGVfY2hh bmdlZCkoaW50IHZpZCwgdWludDE2X3QgcXVldWVfaWQsIGludCBlbmFibGUpOw0KPiAJLyoqPCB0 cmlnZ2VyZWQgd2hlbiBhIHZyaW5nIGlzIGVuYWJsZWQgb3IgZGlzYWJsZWQgKi8NCj4gPg0KPiA+ ICsJaW50ICgqZ2V0X2NvbmZpZykoaW50IHZpZCwgdWludDhfdCAqY29uZmlnLCB1aW50MzJfdCBj b25maWdfbGVuKTsNCj4gPiArCWludCAoKnNldF9jb25maWcpKGludCB2aWQsIHVpbnQ4X3QgKmNv bmZpZywgdWludDMyX3Qgb2Zmc2V0LA0KPiA+ICsJCQkgIHVpbnQzMl90IGxlbiwgdWludDMyX3Qg ZmxhZ3MpOw0KPiA+ICsNCj4gPiAgIAkvKioNCj4gPiAgIAkgKiBGZWF0dXJlcyBjb3VsZCBiZSBj aGFuZ2VkIGFmdGVyIHRoZSBmZWF0dXJlIG5lZ290aWF0aW9uLg0KPiA+ICAgCSAqIEZvciBleGFt cGxlLCBWSE9TVF9GX0xPR19BTEwgd2lsbCBiZSBzZXQvY2xlYXJlZCBhdCB0aGUNCj4gPiBkaWZm IC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMgYi9saWIvbGlicnRlX3Zob3N0 L3Zob3N0X3VzZXIuYw0KPiA+IGluZGV4IGIwODZhZDkuLjhlNDI3MzQgMTAwNjQ0DQo+ID4gLS0t IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gPiArKysgYi9saWIvbGlicnRlX3Zo b3N0L3Zob3N0X3VzZXIuYw0KPiA+IEBAIC03Myw2ICs3Myw4IEBADQo+ID4gICAJW1ZIT1NUX1VT RVJfTkVUX1NFVF9NVFVdICA9ICJWSE9TVF9VU0VSX05FVF9TRVRfTVRVIiwNCj4gPiAgIAlbVkhP U1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEXSAgPQ0KPiAiVkhPU1RfVVNFUl9TRVRfU0xBVkVfUkVR X0ZEIiwNCj4gPiAgIAlbVkhPU1RfVVNFUl9JT1RMQl9NU0ddICA9ICJWSE9TVF9VU0VSX0lPVExC X01TRyIsDQo+ID4gKwlbVkhPU1RfVVNFUl9HRVRfQ09ORklHXSA9ICJWSE9TVF9VU0VSX0dFVF9D T05GSUciLA0KPiA+ICsJW1ZIT1NUX1VTRVJfU0VUX0NPTkZJR10gPSAiVkhPU1RfVVNFUl9TRVRf Q09ORklHIiwNCj4gPiAgIAlbVkhPU1RfVVNFUl9DUllQVE9fQ1JFQVRFX1NFU1NdID0NCj4gIlZI T1NUX1VTRVJfQ1JZUFRPX0NSRUFURV9TRVNTIiwNCj4gPiAgIAlbVkhPU1RfVVNFUl9DUllQVE9f Q0xPU0VfU0VTU10gPQ0KPiAiVkhPU1RfVVNFUl9DUllQVE9fQ0xPU0VfU0VTUyIsDQo+ID4gICAJ W1ZIT1NUX1VTRVJfUE9TVENPUFlfQURWSVNFXSAgPQ0KPiAiVkhPU1RfVVNFUl9QT1NUQ09QWV9B RFZJU0UiLA0KPiA+IEBAIC0zNTksNiArMzYxLDQ2IEBADQo+ID4gICAJcmV0dXJuIFJURV9WSE9T VF9NU0dfUkVTVUxUX09LOw0KPiA+ICAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArdmhv c3RfdXNlcl9nZXRfY29uZmlnKHN0cnVjdCB2aXJ0aW9fbmV0ICoqcGRldiwgc3RydWN0IFZob3N0 VXNlck1zZw0KPiAqbXNnLA0KPiA+ICsJCSAgICAgIGludCBtYWluX2ZkIF9fcnRlX3VudXNlZCkN Cj4gPiArew0KPiA+ICsJc3RydWN0IHZpcnRpb19uZXQgKmRldiA9ICpwZGV2Ow0KPiA+ICsNCj4g PiArCWlmICghZGV2LT5ub3RpZnlfb3BzLT5nZXRfY29uZmlnKSB7DQo+ID4gKwkJbXNnLT5zaXpl ID0gc2l6ZW9mKHVpbnQ2NF90KTsNCj4gPiArCQlyZXR1cm4gUlRFX1ZIT1NUX01TR19SRVNVTFRf UkVQTFk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKGRldi0+bm90aWZ5X29wcy0+Z2V0X2Nv bmZpZyhkZXYtPnZpZCwNCj4gPiArCQkJCQltc2ctPnBheWxvYWQuY29uZmlnLnJlZ2lvbiwNCj4g PiArCQkJCQltc2ctPnBheWxvYWQuY29uZmlnLnNpemUpICE9IDApIHsNCj4gPiArCQltc2ctPnNp emUgPSBzaXplb2YodWludDY0X3QpOw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBSVEVf VkhPU1RfTVNHX1JFU1VMVF9SRVBMWTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGludA0K PiA+ICt2aG9zdF91c2VyX3NldF9jb25maWcoc3RydWN0IHZpcnRpb19uZXQgKipwZGV2LCBzdHJ1 Y3QgVmhvc3RVc2VyTXNnDQo+ICptc2csDQo+ID4gKwkJICAgICAgaW50IG1haW5fZmQgX19ydGVf dW51c2VkKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2ID0gKnBkZXY7DQo+ ID4gKw0KPiA+ICsJaWYgKCFkZXYtPm5vdGlmeV9vcHMtPnNldF9jb25maWcpDQo+ID4gKwkJcmV0 dXJuIFJURV9WSE9TVF9NU0dfUkVTVUxUX0VSUjsNCj4gPiArDQo+ID4gKwlpZiAoZGV2LT5ub3Rp Znlfb3BzLT5zZXRfY29uZmlnKGRldi0+dmlkLA0KPiA+ICsJCQkJCW1zZy0+cGF5bG9hZC5jb25m aWcucmVnaW9uLA0KPiA+ICsJCQkJCW1zZy0+cGF5bG9hZC5jb25maWcub2Zmc2V0LA0KPiA+ICsJ CQkJCW1zZy0+cGF5bG9hZC5jb25maWcuc2l6ZSwNCj4gPiArCQkJCQltc2ctPnBheWxvYWQuY29u ZmlnLmZsYWdzKSAhPSAwKSB7DQo+ID4gKwkJcmV0dXJuIFJURV9WSE9TVF9NU0dfUkVTVUxUX0VS UjsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXR1cm4gUlRFX1ZIT1NUX01TR19SRVNVTFRfT0s7 DQo+ID4gK30NCj4gPiArDQo+ID4gICAvKg0KPiA+ICAgICogUmVhbGxvY2F0ZSB2aXJ0aW9fZGV2 IGFuZCB2aG9zdF92aXJ0cXVldWUgZGF0YSBzdHJ1Y3R1cmUgdG8gbWFrZSB0aGVtDQo+IG9uIHRo ZQ0KPiA+ICAgICogc2FtZSBudW1hIG5vZGUgYXMgdGhlIG1lbW9yeSBvZiB2cmluZyBkZXNjcmlw dG9yLg0KPiA+IEBAIC0xNzI1LDYgKzE3NjcsOCBAQCB0eXBlZGVmIGludCAoKnZob3N0X21lc3Nh Z2VfaGFuZGxlcl90KShzdHJ1Y3QNCj4gdmlydGlvX25ldCAqKnBkZXYsDQo+ID4gICAJW1ZIT1NU X1VTRVJfTkVUX1NFVF9NVFVdID0gdmhvc3RfdXNlcl9uZXRfc2V0X210dSwNCj4gPiAgIAlbVkhP U1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEXSA9IHZob3N0X3VzZXJfc2V0X3JlcV9mZCwNCj4gPiAg IAlbVkhPU1RfVVNFUl9JT1RMQl9NU0ddID0gdmhvc3RfdXNlcl9pb3RsYl9tc2csDQo+ID4gKwlb VkhPU1RfVVNFUl9HRVRfQ09ORklHXSA9IHZob3N0X3VzZXJfZ2V0X2NvbmZpZywNCj4gPiArCVtW SE9TVF9VU0VSX1NFVF9DT05GSUddID0gdmhvc3RfdXNlcl9zZXRfY29uZmlnLA0KPiA+ICAgCVtW SE9TVF9VU0VSX1BPU1RDT1BZX0FEVklTRV0gPQ0KPiB2aG9zdF91c2VyX3NldF9wb3N0Y29weV9h ZHZpc2UsDQo+ID4gICAJW1ZIT1NUX1VTRVJfUE9TVENPUFlfTElTVEVOXSA9DQo+IHZob3N0X3Vz ZXJfc2V0X3Bvc3Rjb3B5X2xpc3RlbiwNCj4gPiAgIAlbVkhPU1RfVVNFUl9QT1NUQ09QWV9FTkRd ID0gdmhvc3RfdXNlcl9wb3N0Y29weV9lbmQsDQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVf dmhvc3Qvdmhvc3RfdXNlci5oIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmgNCj4gPiBp bmRleCAyYTY1MGZlLi4wNTdjZGVjIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qv dmhvc3RfdXNlci5oDQo+ID4gKysrIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmgNCj4g PiBAQCAtMTIsNiArMTIsMTEgQEANCj4gPg0KPiA+ICAgLyogcmVmZXIgdG8gaHcvdmlydGlvL3Zo b3N0LXVzZXIuYyAqLw0KPiA+DQo+ID4gKy8qDQo+ID4gKyAqIE1heGltdW0gc2l6ZSBvZiB2aXJ0 aW8gZGV2aWNlIGNvbmZpZyBzcGFjZQ0KPiA+ICsgKi8NCj4gPiArI2RlZmluZSBWSE9TVF9VU0VS X01BWF9DT05GSUdfU0laRSAyNTYNCj4gPiArDQo+ID4gICAjZGVmaW5lIFZIT1NUX01FTU9SWV9N QVhfTlJFR0lPTlMgOA0KPiA+DQo+ID4gICAjZGVmaW5lIFZIT1NUX1VTRVJfUFJPVE9DT0xfRkVB VFVSRVMJKCgxVUxMIDw8DQo+IFZIT1NUX1VTRVJfUFJPVE9DT0xfRl9NUSkgfCBcDQo+ID4gQEAg LTQ5LDYgKzU0LDggQEANCj4gPiAgIAlWSE9TVF9VU0VSX05FVF9TRVRfTVRVID0gMjAsDQo+ID4g ICAJVkhPU1RfVVNFUl9TRVRfU0xBVkVfUkVRX0ZEID0gMjEsDQo+ID4gICAJVkhPU1RfVVNFUl9J T1RMQl9NU0cgPSAyMiwNCj4gPiArCVZIT1NUX1VTRVJfR0VUX0NPTkZJRyA9IDI0LA0KPiA+ICsJ VkhPU1RfVVNFUl9TRVRfQ09ORklHID0gMjUsDQo+ID4gICAJVkhPU1RfVVNFUl9DUllQVE9fQ1JF QVRFX1NFU1MgPSAyNiwNCj4gPiAgIAlWSE9TVF9VU0VSX0NSWVBUT19DTE9TRV9TRVNTID0gMjcs DQo+ID4gICAJVkhPU1RfVVNFUl9QT1NUQ09QWV9BRFZJU0UgPSAyOCwNCj4gPiBAQCAtNjAsNiAr NjcsNyBAQA0KPiA+ICAgdHlwZWRlZiBlbnVtIFZob3N0VXNlclNsYXZlUmVxdWVzdCB7DQo+ID4g ICAJVkhPU1RfVVNFUl9TTEFWRV9OT05FID0gMCwNCj4gPiAgIAlWSE9TVF9VU0VSX1NMQVZFX0lP VExCX01TRyA9IDEsDQo+ID4gKwlWSE9TVF9VU0VSX1NMQVZFX0NPTkZJR19DSEFOR0VfTVNHID0g MiwNCj4gPiAgIAlWSE9TVF9VU0VSX1NMQVZFX1ZSSU5HX0hPU1RfTk9USUZJRVJfTVNHID0gMywN Cj4gPiAgIAlWSE9TVF9VU0VSX1NMQVZFX01BWA0KPiA+ICAgfSBWaG9zdFVzZXJTbGF2ZVJlcXVl c3Q7DQo+ID4gQEAgLTExMiw2ICsxMjAsMTMgQEANCj4gPiAgIAl1aW50NjRfdCBvZmZzZXQ7DQo+ ID4gICB9IFZob3N0VXNlclZyaW5nQXJlYTsNCj4gPg0KPiA+ICt0eXBlZGVmIHN0cnVjdCBWaG9z dFVzZXJDb25maWcgew0KPiA+ICsJdWludDMyX3Qgb2Zmc2V0Ow0KPiA+ICsJdWludDMyX3Qgc2l6 ZTsNCj4gPiArCXVpbnQzMl90IGZsYWdzOw0KPiA+ICsJdWludDhfdCByZWdpb25bVkhPU1RfVVNF Ul9NQVhfQ09ORklHX1NJWkVdOw0KPiA+ICt9IFZob3N0VXNlckNvbmZpZzsNCj4gPiArDQo+ID4g ICB0eXBlZGVmIHN0cnVjdCBWaG9zdFVzZXJNc2cgew0KPiA+ICAgCXVuaW9uIHsNCj4gPiAgIAkJ dWludDMyX3QgbWFzdGVyOyAvKiBhIFZob3N0VXNlclJlcXVlc3QgdmFsdWUgKi8NCj4gPiBAQCAt MTMxLDYgKzE0Niw3IEBADQo+ID4gICAJCXN0cnVjdCB2aG9zdF92cmluZ19hZGRyIGFkZHI7DQo+ ID4gICAJCVZob3N0VXNlck1lbW9yeSBtZW1vcnk7DQo+ID4gICAJCVZob3N0VXNlckxvZyAgICBs b2c7DQo+ID4gKwkJVmhvc3RVc2VyQ29uZmlnIGNvbmZpZzsNCj4gPiAgIAkJc3RydWN0IHZob3N0 X2lvdGxiX21zZyBpb3RsYjsNCj4gPiAgIAkJVmhvc3RVc2VyQ3J5cHRvU2Vzc2lvblBhcmFtIGNy eXB0b19zZXNzaW9uOw0KPiA+ICAgCQlWaG9zdFVzZXJWcmluZ0FyZWEgYXJlYTsNCg==