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 A9038A04F1; Thu, 18 Jun 2020 08:39:15 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9281B14583; Thu, 18 Jun 2020 08:39:15 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2042.outbound.protection.outlook.com [40.107.21.42]) by dpdk.org (Postfix) with ESMTP id 848285F2F for ; Thu, 18 Jun 2020 08:39:13 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DUTzeE475nC3v1boLUaN+7LQIB6I5UePig8F1mwdoen1DiW/g2RRZOSPT6Vn8ofieuwvhdZGftaRJZp35o50UcfqaktVweBUU5wyjDEw7iixe4ROk9lTX0EVGWtVyHBfN/s7wbWwKYxcfE0/7KXj4IL5hFyrCL7EIxC7rk/DMo3k8Utrsn+p4FA7xDwmFSYP1iE/aF2FS78DOuw+CVKBsf6O9rJ98Zz2z6IkfuRd6SABJUJvt+jKxmMPutR+Des5Y3NLaToEytnKocZ0OFpPFOdOUVh6FcovjjlPC3RtqCCND4yuvIFU1B7auOE0MBo41fCXW9NP4FS9xpu9wLjOhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c7Iu+C23RMvwLBDNn5TFlCbGpmIBYnVli90zSLtGEAw=; b=HU23NltMoAsBj/eBI3GNjQj0la/p6meY065RRPIWG9HYoWh/r/5Vq3wTxpH2C8M+NIXsDUIECdzAyrdO2dK7HiY5ZPpn6d6pQ1Fa2fcQUyxiFcqmLZfMAYX9RfyuKENxDSOcvNByDuDbRInYWPzCtG+vsDS2dWD7vvNoV4NDT+89bATPk8UE0SDwWmxITphUgRYokJGyJblnBAQqdhv8alR8fL7b1pQ5Oc84mhfCOkEi6n1MWaMIZUXla6dxndNeBP5tfCXbT9nl0wkZL8mFdzT+PLwAm8QAPzE4qShG2YzU+0AfvxcXe+0js8Nkw+ioHPiEkK258Gypu1LLdhroUg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=c7Iu+C23RMvwLBDNn5TFlCbGpmIBYnVli90zSLtGEAw=; b=DKX0mooKs/1kQzfe7TposC2p8noK60leGl/STnaRaT6iTiwppriL+Hbf6axk0SiB8SpRg6WwT4/BZcMlDP0AXJgdDX+JeXInW+iNKFMxNHBdBEAm+Diq0MAh+M2qQOORyE77Rp+uYjXeg5mNfmcvbLZvP4HQaOrw/4zGENIlMic= Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com (2603:10a6:208:f::11) by AM0PR0502MB3763.eurprd05.prod.outlook.com (2603:10a6:208:25::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.21; Thu, 18 Jun 2020 06:39:11 +0000 Received: from AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998]) by AM0PR0502MB4019.eurprd05.prod.outlook.com ([fe80::b189:d782:4c74:7998%7]) with mapi id 15.20.3109.021; Thu, 18 Jun 2020 06:39:11 +0000 From: Matan Azrad To: Maxime Coquelin , "xiaolong.ye@intel.com" , Shahaf Shuler , "amorenoz@redhat.com" , "xiao.w.wang@intel.com" , Slava Ovsiienko , "dev@dpdk.org" CC: "jasowang@redhat.com" , "lulu@redhat.com" Thread-Topic: [PATCH 9/9] vhost: only use vDPA config workaround if needed Thread-Index: AQHWKcYg67JP6PpHo0+Nx4qLJ7aEAqjNF8jQgAF0CICAAAZssIABlDsAgAAdIjCAAG4bgIAHGTHQgAT4CgCAABLc4IAAHJIAgAErOTA= Date: Thu, 18 Jun 2020 06:39:11 +0000 Message-ID: References: <20200514080218.1435344-1-maxime.coquelin@redhat.com> <20200514080218.1435344-10-maxime.coquelin@redhat.com> <0216165f-aedd-06c7-5a90-2cd0d238b143@redhat.com> <97528794-aa14-37da-a5bb-1e1d46e9127a@redhat.com> <64c59e91-79ef-bc55-bc64-1995cfb03c84@redhat.com> <095af180-bb29-e890-5197-8bfbb8ea4c41@redhat.com> <7cdc8505-a667-81a3-b8ed-22dd34b958f7@redhat.com> In-Reply-To: <7cdc8505-a667-81a3-b8ed-22dd34b958f7@redhat.com> Accept-Language: en-US, he-IL Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [77.124.38.174] x-ms-publictraffictype: Email x-ms-office365-filtering-ht: Tenant x-ms-office365-filtering-correlation-id: 30b62d3a-992f-45b5-5754-08d813524f92 x-ms-traffictypediagnostic: AM0PR0502MB3763: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-forefront-prvs: 0438F90F17 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: PLlGZZwZ7TJecHvjoDHbox4hm28m7xBwMmxQERyO8rkpmyndFFUc1y/uEV0ngQHxYiah6Yhp32EJ1zsB4D7MzyTYfS/s+cl2pYhCrgKzJ/XDs8raAcjmuIDUCBbgK3Ya+tufMbbcmw1MP/lKeoaeDFC8qyhZ8onqAC3Q8aPejrRwYo5TjlJa5urilc5pLhFvZISOOahkYXTOU70almhDgvjvNvWq0zC1ljby/r4Q8F1zUsLflLjHqZTCRdahX6ndFn0gQn3LsRGo/lnU7G6l74vGcbhSkM+nbpEkKfgSSMBvkHN/sL971edpwmKgwn//6efMcFExemDGlyNWzz8kO1i1yJcJlVlgp/Hq8QXWD32ngf2g2awcOztiN/WALq0qInT3k4RH21QCbVun1SKkNQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR0502MB4019.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(396003)(136003)(376002)(346002)(366004)(66476007)(66946007)(64756008)(5660300002)(45080400002)(66556008)(66446008)(86362001)(8676002)(76116006)(7696005)(55016002)(186003)(9686003)(2906002)(33656002)(6506007)(4326008)(53546011)(71200400001)(26005)(966005)(83380400001)(54906003)(478600001)(83080400001)(110136005)(8936002)(52536014)(316002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: 1I6nbVZIkfsJEN84zNUlHmLKSjAW3OB1762X0PWOo5kLxoIpSvfE47OdPzl43TnzxYk7GM5RunLddVTvOUMUT69wpkyGuaD5l7igSTr6DKfM7rOj4GfrvPMXG7RNlMXlFp/iVLbiQ1gRkHOEfFhoauDJJS9Um9zrsmyF8nxk98T66kVzfbGHExoZhwvEKaCh9H1LgPaOd+eOciinXIJPY4N20EoO7PBDRoiciBEaRFYxfxGSFjl1L/v8m6oIAcC7ipANz077P4xJs58NNd7aCUWxoWLlEJfiVbyrDo1LJ+P2+BeiT7tANpRNMwhS3hS4B5W7b77Om42LFP035CiNj+aVnDpcZ57/zip7UMogUVUzeVENHJmLM4oOz7Q2U/H4CRJ6DymHzulzszH4PkBOOF6GWs/SQZoxslCwduk3JJD+eX5i6HDDSWGY7T3A0PxEPPBHtjwi9HXeTgpA0lnW1VXsY+hXvjDlOFc5mfgfi5Y= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 30b62d3a-992f-45b5-5754-08d813524f92 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2020 06:39:11.5012 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 316Bo5OPq5tPaE3EFV/qUwmvrYc5tsAvkS58JCSibEdrmKlq30kt9xq4ZO+WivyfeXR4mzntIcxfIkozwgjFsg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR0502MB3763 Subject: Re: [dpdk-dev] [PATCH 9/9] vhost: only use vDPA config workaround if needed 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" SEkgTWF4aW1lDQoNCkZyb206IE1heGltZSBDb3F1ZWxpbjoNCj4gT24gNi8xNy8yMCAxOjA0IFBN LCBNYXRhbiBBenJhZCB3cm90ZToNCj4gDQo+ID4+PiBEb27igJl0IHlvdSB0aGluayB0aGF0IG9u bHkgZW5hYmxlZCBxdWV1ZXMgbXVzdCBiZSBmdWxseSBpbml0aWFsaXplZA0KPiA+Pj4gd2hlbg0K PiA+PiB0aGVpciBzdGF0dXMgaXMgY2hhbmdlZCBmcm9tIGRpc2FibGVkIHRvIGVuYWJsZWQ/DQo+ ID4+PiBTbywgeW91IGNhbiBhc3N1bWUgdGhhdCBkaXNhYmxlZCBxdWV1ZXMgY2FuIHN0YXkgIm5v dCBmdWxseSBpbml0aWFsaXplZCIuLi4NCj4gPj4NCj4gPj4gVGhhdCBtYXkgd29yayBidXQgbWln aHQgbm90IGJlIGZvbGxvd2luZyB0aGUgVmlydGlvIHNwZWMgYXMgd2l0aCAxLjANCj4gPj4gd2Ug c2hvdWxkbid0IHByb2Nlc3MgdGhlIHJpbmdzIGJlZm9yZSBEUklWRVJfT0sgaXMgc2V0IChidXQg d2UgY2Fubm90DQo+ID4+IGJlIHN1cmUgd2UgZm9sbG93IGl0IGFueXdheSB3aXRob3V0IFNFVF9T VEFUVVMgc3VwcG9ydCkuDQo+ID4+DQo+ID4+IEkgcHJvcG9zZSB0byBjb29rIGEgcGF0Y2ggZG9p bmcgdGhlIGZvbGxvd2luZzoNCj4gPj4gMS4gdmlydGlvX2lzX3JlYWR5KCkgd2lsbCBvbmx5IGVu c3VyZSB0aGUgZmlyc3QgcXVldWUgcGFpciBpcyByZWFkeQ0KPiA+PiAoaS5lLiBlbmFibGVkIGFu ZCBjb25maWd1cmVkKS4gTWVhbmluZyB0aGF0IGFwcCdzIG5ld19kZXZpY2UgY2FsbGJhY2sNCj4g Pj4gYW5kIHZEUEEgZHJpdmVycyBkZXZfY29uZiBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCB3aXRo IG9ubHkgdGhlIGZpcnN0DQo+ID4+IHF1ZXVlIHBhaXIgY29uZmlndXJlZCBhbmQgZW5hYmxlZC4N Cj4gPj4NCj4gPj4gMi4gQmVmb3JlIGhhbmRsaW5nIGEgbmV3IHZob3N0LXVzZXIgcmVxdWVzdCwg aXQgc2F2ZXMgdGhlIHJlYWR5DQo+ID4+IHN0YXR1cyBmb3IgZXZlcnkgcXVldWUgcGFpci4NCj4g Pj4NCj4gPj4gMy4gU2FtZSBoYW5kbGluZyBvZiB0aGUgcmVxdWVzdHMsIGV4Y2VwdCB0aGF0IHdl IHdvbid0IG5vdGlmeSB0aGUNCj4gPj4gdmRwYSBkcml2ZXIgYW5kIHRoZSBhcHBsaWNhdGlvbiBv ZiB2cmluZyBzdGF0ZSBjaGFuZ2VzIGluIHRoZQ0KPiA+PiBWSE9TVF9VU0VSX1NFVF9WUklOR19F TkFCTEUgaGFuZGxlci4NCj4gPj4NCj4gPj4gNC4gT25jZSB0aGUgVmhvc3QtdXNlciByZXF1ZXN0 IGlzIGhhbmRsZWQsIGl0IGNvbXBhcmVzIHRoZSBuZXcgcmVhZHkNCj4gPj4gc3RhdHVzIGZvZSBl dmVyeSBxdWV1ZXMgd2l0aCB0aGUgb2xkIG9uZSBhbmQgc2VuZCBxdWV1ZSBzdGF0ZSBldmVudA0K PiA+PiBjaGFuZ2VzIGFjY29yZGluZ2x5Lg0KPiA+DQo+ID4gTG9va3MgdmVyeSBuaWNlIHRvIG1l Lg0KPiANCj4gQ29vbCENCj4gDQo+ID4gTW9yZSBwb2ludHM6DQo+ID4gQnkgdGhpcyBtZXRob2Qg c29tZSBxdWV1ZXMgbWF5IGJlIGNvbmZpZ3VyZWQgYnkgdGhlIHNldF92cmluZ19zdGF0ZQ0KPiBv cGVyYXRpb24gc28gdGhlIG5leHQgY2FsbHMgYXJlIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmb3Ig ZWFjaCBxdWV1ZSBieSB0aGUNCj4gZHJpdmVyIGZyb20gdGhlIHNldF92cmluZ19zdGF0ZSBjYWxs YmFjayA6DQo+ID4gMS4gcnRlX3Zob3N0X2VuYWJsZV9ndWVzdF9ub3RpZmljYXRpb24NCj4gPiAJ VGhpcyBvbmUgdGFrZXMgZGF0YXBhdGggbG9jayBzbyB3ZSBuZWVkIHRvIGJlIHN1cmUgdGhhdCBk YXRhcGF0aA0KPiBsb2NrIGlzIG5vdCBsb2NrZWQgb24gdGhpcyBxdWV1ZSBmcm9tIHRoZSBzYW1l IGNhbGxlciB0aHJlYWQgKG1heWJlIHRvIG5vdA0KPiB0YWtlcyBkYXRhcGF0aCBsb2NrcyB3aGVu IHZkcGEgaXMgY29uZmlndXJlZCBhdCBhbGwpLg0KPiANCj4gR29vZCBwb2ludCwgSSBhZ3JlZSB3 ZSBzaG91bGRuJ3QgbmVlZCB0byB1c2UgdGhlIGFjY2VzcyBsb2NrIHdoZW4gdmRwYSBpcw0KPiBj b25maWd1cmVkLiBXZSBtYXkgd2FudCB0byBkb2N1bWVudCB0aGF0IGFsbCB0aGUgY29udHJvbCBw YXRoIGlzIGFzc3VtZWQgdG8NCj4gYmUgc2luZ2xlIHRocmVhZCB0aG91Z2guDQo+IA0KPiANCj4g PiAyLiBydGVfdmhvc3RfaG9zdF9ub3RpZmllcl9jdHJsDQo+ID4gCVRoaXMgZnVuY3Rpb24gQVBJ IGlzIHBlciBkZXZpY2UgYW5kIG5vdCBwZXIgcXVldWUsIG1heWJlIHdlIG5lZWQgdG8NCj4gY2hh bmdlIHRoaXMgZnVuY3Rpb24gdG8gYmUgcGVyIHF1ZXVlIChhZGQgbmV3IGZvciBub3cgYW5kIGRl cHJlY2F0ZSB0aGUNCj4gb2xkIG9uZSBpbiAyMC4xMSkuDQo+IA0KPiBUaGlzIG9uZSBpcyBzdGls bCBleHBlcmltZW50YWwsIHNvIG5vIGlzc3VlIGluIHJld29ya2luZyB0aGUgQVBJIHRvIG1ha2Ug aXQgcGVyDQo+IHF1ZXVlIHdpdGhvdXQgZGVwcmVjYXRpb24gbm90aWNlLg0KPiANCj4gPiAzLiBO ZWVkIHRvIGJlIHN1cmUgdGhhdCBpZiByZWFkeSBxdWV1ZSBjb25maWd1cmF0aW9uIGlzIGNoYW5n ZWQgYWZ0ZXINCj4gZGV2X2NvbmYsIHdlIHNob3VsZCBub3RpZnkgaXQgdG8gdGhlIGRyaXZlci4g KG1heWJlIGJ5DQo+IHNldF92cmluZ19zdGF0ZShkaXNhYmwpIGFuZCBzZXRfdnJpbmdfc3RhdGUo ZW5hYmxlKSkuDQo+IA0KPiBBZ3JlZSwgSSdtIG5vdCBzdXJlIHlldCBpZiB3ZSBzaG91bGQganVz dCB0b2dnbGUgc2V0X3ZyaW5nX3N0YXRlIGFzIHlvdQ0KPiBwcm9wb3Nlcywgb3IgaWYgd2Ugc2hv dWxkIGhhdmUgYSBuZXcgY2FsbGJhY2sgZm9yIHRoaXMuDQoNCkFjdHVhbGx5LCB3aGVuIHRoZSBx dWV1ZSBjb25maWd1cmF0aW9uIGlzIGNoYW5nZWQsIHRoZXJlIGlzIG9uZSBtb21lbnQgdGhhdCBj b25maWd1cmF0aW9uIGlzIG5vdCB2YWxpZCAoaW4gdGhlIHdyaXRlIHRpbWUpLg0KU28gbWF5YmUg aXQgbWFrZXMgc2Vuc2UgdG8gdG9nZ2xlLg0KDQpCdXQgdGhlcmUgaXMgb25lIG1vcmUgb3B0aW9u Og0KDQpJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdGhhdCBhZnRlciBjb25maWd1cmF0aW9uIGNoYW5n ZSB0aGUgUUVNVSB3aWxsIG5vdCBzZW5kIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSBtYXNz YWdlLg0KDQpTbyBtYXliZSB3ZSBuZWVkIHRvIGNhbGwgc2V0X3ZyaW5nX3N0YXRlIGluIHRoZSBu ZXh0IGV2ZW50czoNCgkxLiBxdWV1ZSBiZWNvbWVzIHJlYWR5IChlbmFibGVkIGFuZCBmdWxseSBj b25maWd1cmVkKSAtIHNldF92cmluZ19zdGF0ZShlbmFibGUpLg0KCTIuIHF1ZXVlIGJlY29tZXMg bm90IHJlYWR5IC0gc2V0X3ZyaW5nX3N0YXRlKGRpc2FibGUpLg0KCTMuIHF1ZXVlIHN0YXkgcmVh ZHkgYW5kIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0VOQUJMRSBtYXNzYWdlIHdhcyBoYW5kbGVkIC0g c2V0X3ZyaW5nX3N0YXRlKGVuYWJsZSkuDQoNClRoZW4gd2UgbmVlZCB0byBkb2N1bWVudCB0aGF0 IGV2ZXJ5IHNldF92cmluZ19zdGF0ZSBjYWxsIG1heSBwb2ludCBvbiBjb25maWd1cmF0aW9uIGNo YW5nZXMgaW4gdGhlIHF1ZXVlIGV2ZW4gaWYgdGhlIHN0YXRlIHdhcyBub3QgY2hhbmdlZC4NCg0K V2hhdCBkbyB5b3UgdGhpbms/DQoNCg0KDQo+ID4+IEl0IGlzIGxpa2VseSB0byBuZWVkIGNoYW5n ZXMgaW4gdGhlIC5kZXZfY29uZiBhbmQgLnNldF92cmluZ19zdGF0ZQ0KPiA+PiBpbXBsZW1lbnRh dGlvbnMgYnkgdGhlIGRyaXZlcnMuDQo+ID4NCj4gPiBZZXMsIGZvciBNZWxsYW5veCBpdCBpcyB2 ZXJ5IGVhc3kgY2hhbmdlLg0KPiA+IEludGVsPw0KPiA+DQo+ID4NCj4gPj4+DQo+ID4+Pj4gV2l0 aCBWSE9TVF9VU0VSX1NFVF9TVEFUVVMsIHdlIHdpbGwgYmUgYWJsZSB0byBoYW5kbGUgdGhpcw0K PiA+Pj4+IHByb3Blcmx5LCBhcyB0aGUgYmFja2VuZCBjYW4gYmUgc3VyZSB0aGUgZ3Vlc3Qgd29u J3QgaW5pdGlhbGl6ZQ0KPiA+Pj4+IG1vcmUgcXVldWVzIGFzIHNvb24gYXMgRFJJVkVSX09LIFZp cnRpbyBzdGF0dXMgYml0IGlzIHNldC4gSW4gbXkNCj4gPj4+PiB2MiwgSSBjYW4gYWRkIG9uZSBw YXRjaCB0byBoYW5kbGUgdGhpcyBjYXNlIHByb3Blcmx5LCBieQ0KPiA+Pj4+ICJkZXN0b3J5aW5n IiBxdWV1ZXMgbWV0YWRhdGEgYXMgc29vbiBhcyBEUklWRVJfT0sgaXMgcmVjZWl2ZWQuDQo+ID4+ Pj4NCj4gPj4+PiBOb3RlIHRoYXQgaXQgd2FzIHRoZSBleGFjdCByZWFzb24gd2h5IEkgZmlyc3Qg dHJpZWQgdG8gYWRkIHN1cHBvcnQNCj4gPj4+PiBmb3IgVkhPU1RfVVNFUl9TRVRfU1RBVFVTIG1v cmUgdGhhbiB0d28geWVhcnMgYWdvLi4uOg0KPiA+Pj4+DQo+IGh0dHBzOi8vZXVyMDMuc2FmZWxp bmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRwcyUzQSUyRiUyRmwNCj4gPj4+PiBp cw0KPiA+Pj4+IHRzLmcNCj4gPj4+PiBudS5vcmclMkZhcmNoaXZlJTJGaHRtbCUyRnFlbXUtZGV2 ZWwlMkYyMDE4LQ0KPiA+Pj4+DQo+ID4+DQo+IDAyJTJGbXNnMDQ1NjAuaHRtbCZhbXA7ZGF0YT0w MiU3QzAxJTdDbWF0YW4lNDBtZWxsYW5veC5jb20lN0MNCj4gPj4+Pg0KPiA+Pg0KPiBiZWQ1ZDM2 MWZiZmY0N2FiNzY2MDA4ZDgwYzk5Y2M1MyU3Q2E2NTI5NzFjN2QyZTRkOWJhNmE0ZDE0OTI1NmY0 NjENCj4gPj4+Pg0KPiA+Pg0KPiBiJTdDMCU3QzAlN0M2MzcyNzMyMDE5ODQ2ODQ1MTMmYW1wO3Nk YXRhPUtHSmpkRXRFTjU0ZHVOdTQxcmhCSXcNCj4gPj4+PiBvNHRtZFduNlFENHl2ZFIzemVMSTgl M0QmYW1wO3Jlc2VydmVkPTANCj4gPj4+Pg0KPiA+Pj4+IFdoYXQgZG8geW91IHRoaW5rPw0KPiA+ Pj4NCj4gPj4+IFllcywgSSBhZ3JlZSBpdCBtYXkgYmUgc29sdmVkIGJ5IFZIT1NUX1VTRVJfU0VU X1NUQVRVUyAoYW5kDQo+IHByb2JhYmx5DQo+ID4+PiBhIGxvdCBvZiBvdGhlciBpc3N1ZXMpLCBC dXQgSSB0aGluayB3ZSBuZWVkIHN1cHBvcnQgYWxzbyBsZWdhY3kgUUVNVQ0KPiA+Pj4gdmVyc2lv bnMNCj4gPj4gaWYgd2UgY2FuLi4uDQo+ID4+DQo+ID4+IEkgdGhpbmsgdGhlIFNFVF9TVEFUVVMg c3VwcG9ydCBpcyBpbXBvcnRhbnQgdG8gYmUgY29tcGxpYW50IHdpdGggdGhlDQo+ID4+IFZpcnRp byBzcGVjaWZpY3RhdGlvbi4NCj4gPj4NCj4gPj4+IERvbid0IHlvdSB0aGluayBzbz8NCj4gPg0K PiA+IFllcywgSSBhZ3JlZS4NCj4gPg0KPiA+Pg0KPiA+PiBXZSBjYW4gdHJ5IHRoYXQuDQo+ID4+ IEkgd2lsbCB0cnkgdG8gY29vayBzb21ldGhpbmcgdGhpcyB3ZWVrLCBidXQgaXQgd2lsbCByZXF1 aXJlDQo+ID4+IHZhbGlkYXRpb24gd2l0aCBPVlMgdG8gYmUgc3VyZSB3ZSBkb24ndCBicmVhayBt dWx0aXF1ZXVlLiBJIHdpbGwgc2VuZA0KPiA+PiBpdCBhcyBSRkMsIGFuZCBjb3VudCBvbiB5b3Ug dG8gdHJ5IGl0IHdpdGggeW91ciBtbHg1IHZEUEEgZHJpdmVyLg0KPiA+Pg0KPiA+PiBEb2VzIGl0 IHdvcmsgZm9yIHlvdT8gKG5vdGUgSSdsbCBiZSBvbiB2YWNhdGlvbiBmcm9tIEp1bHkgMXN0IHRv DQo+ID4+IDE3dGgpDQo+ID4NCj4gPiBTdXJlLA0KPiA+IERvIHlvdSBoYXZlIGNhcGFjaXR5IHRv IGRvIGl0IHRoaXMgd2Vlaz8NCj4gPiBJIGNhbiBoZWxwLi4uLi4NCj4gDQo+IFRoYXQgd291bGQg YmUgd2VsY29tZSwgYXMgSSBpbml0aWFsbHkgcGxhbm5lZCB0byBzcGVuZCB0aW1lIG9uIHJldmll d2luZyAmDQo+IG1lcmdpbmcgcGF0Y2hlcyB0aGlzIHdlZWsuDQo+IA0KPiBUaGFua3MsDQo+IE1h eGltZQ0KPiA+IE1hdGFuDQo+ID4NCj4gPg0KPiA+Pg0KPiA+PiBUaGFua3MsDQo+ID4+IE1heGlt ZQ0KPiA+Pg0KPiA+Pj4+IFJlZ2FyZHMsDQo+ID4+Pj4gTWF4aW1lDQo+ID4+Pg0KPiA+DQoNCg==