From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id E8986A057B;
	Wed,  1 Apr 2020 20:48:41 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 659611C125;
	Wed,  1 Apr 2020 20:48:41 +0200 (CEST)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by dpdk.org (Postfix) with ESMTP id A3EE31C121
 for <dev@dpdk.org>; Wed,  1 Apr 2020 20:48:39 +0200 (CEST)
IronPort-SDR: TMuxWS6uYqMTIXMxC/gp4jNnnkxqLqdZLsU1W0ZOixeqP5UnsQqlznnHiv0wI6XxUKsA1Rg5nM
 yfbEWEV89FRg==
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga004.fm.intel.com ([10.253.24.48])
 by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 01 Apr 2020 11:48:38 -0700
IronPort-SDR: iC9l4XTmwYHEhfKiOvAcEsQXFqu9SZTlt8F19mhVmLPyjddIbMYw83QeDoQbRP2aWq8mzoNepO
 eT4iGw9V9SDQ==
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.72,332,1580803200"; d="scan'208";a="273273253"
Received: from irsmsx105.ger.corp.intel.com ([163.33.3.28])
 by fmsmga004.fm.intel.com with ESMTP; 01 Apr 2020 11:48:37 -0700
Received: from irsmsx603.ger.corp.intel.com (163.33.146.9) by
 irsmsx105.ger.corp.intel.com (163.33.3.28) with Microsoft SMTP Server (TLS)
 id 14.3.439.0; Wed, 1 Apr 2020 19:48:36 +0100
Received: from irsmsx605.ger.corp.intel.com (163.33.146.138) by
 irsmsx603.ger.corp.intel.com (163.33.146.9) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.1713.5; Wed, 1 Apr 2020 19:48:36 +0100
Received: from irsmsx605.ger.corp.intel.com ([163.33.146.138]) by
 IRSMSX605.ger.corp.intel.com ([163.33.146.138]) with mapi id 15.01.1713.004;
 Wed, 1 Apr 2020 19:48:36 +0100
From: "Medvedkin, Vladimir" <vladimir.medvedkin@intel.com>
To: Ray Kinsella <mdr@ashroe.eu>, "dev@dpdk.org" <dev@dpdk.org>
CC: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>, "Richardson, Bruce"
 <bruce.richardson@intel.com>
Thread-Topic: [dpdk-dev] [PATCH 2/6] fib: make lookup function type
 configurable
Thread-Index: AQHV9hB9qmU5DuCRpkS5PNIWnctaIahj1T2AgADoM8A=
Date: Wed, 1 Apr 2020 18:48:36 +0000
Message-ID: <dbea0c773ed044d7a1e10f1da4732f2f@intel.com>
References: <1583757826-375246-1-git-send-email-vladimir.medvedkin@intel.com>
 <1583757826-375246-3-git-send-email-vladimir.medvedkin@intel.com>
 <4994f785-9c48-8c34-e9d5-fd4a53d5321a@ashroe.eu>
In-Reply-To: <4994f785-9c48-8c34-e9d5-fd4a53d5321a@ashroe.eu>
Accept-Language: en-IE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-reaction: no-action
dlp-version: 11.2.0.6
dlp-product: dlpe-windows
x-originating-ip: [163.33.253.164]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH 2/6] fib: make lookup function type
 configurable
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

SGkgUmF5LA0KDQoNCi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQpGcm9tOiBSYXkgS2luc2Vs
bGEgPG1kckBhc2hyb2UuZXU+IA0KU2VudDogV2VkbmVzZGF5LCBBcHJpbCAxLCAyMDIwIDY6NDgg
QU0NClRvOiBNZWR2ZWRraW4sIFZsYWRpbWlyIDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29t
PjsgZGV2QGRwZGsub3JnDQpDYzogQW5hbnlldiwgS29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFu
eWV2QGludGVsLmNvbT47IFJpY2hhcmRzb24sIEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVs
LmNvbT4NClN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAyLzZdIGZpYjogbWFrZSBsb29r
dXAgZnVuY3Rpb24gdHlwZSBjb25maWd1cmFibGUNCg0KSGkgVmxhZGltaXIsDQoNCk9uIDA5LzAz
LzIwMjAgMTI6NDMsIFZsYWRpbWlyIE1lZHZlZGtpbiB3cm90ZToNCj4gQWRkIHR5cGUgYXJndW1l
bnQgdG8gZGlyMjRfOF9nZXRfbG9va3VwX2ZuKCkgTm93IGl0IHN1cHBvcnRzIDMgDQo+IGRpZmZl
cmVudCBsb29rdXAgaW1wbGVtZW50YXRpb25zOg0KPiAgUlRFX0ZJQl9ESVIyNF84X1NDQUxBUl9N
QUNSTw0KPiAgUlRFX0ZJQl9ESVIyNF84X1NDQUxBUl9JTkxJTkUNCj4gIFJURV9GSUJfRElSMjRf
OF9TQ0FMQVJfVU5JDQo+IA0KPiBBZGQgbmV3IHJ0ZV9maWJfc2V0X2xvb2t1cF9mbigpIC0gdXNl
ciBjYW4gY2hhbmdlIGxvb2t1cCBmdW5jdGlvbiB0eXBlIA0KPiBydW50aW1lLg0KPiANCj4gU2ln
bmVkLW9mZi1ieTogVmxhZGltaXIgTWVkdmVka2luIDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwu
Y29tPg0KPiAtLS0NCj4gIGxpYi9saWJydGVfZmliL2RpcjI0XzguYyAgICAgICAgICAgfCAzMiAr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiAgbGliL2xpYnJ0ZV9maWIvZGlyMjRf
OC5oICAgICAgICAgICB8ICAyICstDQo+ICBsaWIvbGlicnRlX2ZpYi9ydGVfZmliLmMgICAgICAg
ICAgIHwgMjAgKysrKysrKysrKysrKysrKysrKy0NCj4gIGxpYi9saWJydGVfZmliL3J0ZV9maWIu
aCAgICAgICAgICAgfCAyMiArKysrKysrKysrKysrKysrKysrKysrDQo+ICBsaWIvbGlicnRlX2Zp
Yi9ydGVfZmliX3ZlcnNpb24ubWFwIHwgIDEgKw0KPiAgNSBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNl
cnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9saWIvbGlicnRl
X2ZpYi9kaXIyNF84LmMgYi9saWIvbGlicnRlX2ZpYi9kaXIyNF84LmMgaW5kZXggDQo+IGM5ZGNl
M2MuLjgyNWQwNjEgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfZmliL2RpcjI0XzguYw0KPiAr
KysgYi9saWIvbGlicnRlX2ZpYi9kaXIyNF84LmMNCj4gQEAgLTQ1LDEzICs0NSw2IEBAIHN0cnVj
dCBkaXIyNF84X3RibCB7DQo+ICANCj4gICNkZWZpbmUgUk9VTkRVUCh4LCB5KQkgUlRFX0FMSUdO
X0NFSUwoeCwgKDEgPDwgKDMyIC0geSkpKQ0KPiAgDQo+IC1lbnVtIGxvb2t1cF90eXBlIHsNCj4g
LQlNQUNSTywNCj4gLQlJTkxJTkUsDQo+IC0JVU5JDQo+IC19Ow0KPiAtZW51bSBsb29rdXBfdHlw
ZSB0ZXN0X2xvb2t1cCA9IE1BQ1JPOw0KPiAtDQo+ICBzdGF0aWMgaW5saW5lIHZvaWQgKg0KPiAg
Z2V0X3RibDI0X3Aoc3RydWN0IGRpcjI0XzhfdGJsICpkcCwgdWludDMyX3QgaXAsIHVpbnQ4X3Qg
bmhfc3opICB7IEBAIA0KPiAtMjUzLDExICsyNDYsMTggQEAgZGlyMjRfOF9sb29rdXBfYnVsa191
bmkodm9pZCAqcCwgY29uc3QgdWludDMyX3QgDQo+ICppcHMsICB9DQo+ICANCj4gIHJ0ZV9maWJf
bG9va3VwX2ZuX3QNCj4gLWRpcjI0XzhfZ2V0X2xvb2t1cF9mbihzdHJ1Y3QgcnRlX2ZpYl9jb25m
ICpmaWJfY29uZikNCj4gK2RpcjI0XzhfZ2V0X2xvb2t1cF9mbih2b2lkICpwLCBlbnVtIHJ0ZV9m
aWJfZGlyMjRfOF9sb29rdXBfdHlwZSB0eXBlKQ0KPiAgew0KPiAtCWVudW0gcnRlX2ZpYl9kaXIy
NF84X25oX3N6IG5oX3N6ID0gZmliX2NvbmYtPmRpcjI0Xzgubmhfc3o7DQo+ICsJZW51bSBydGVf
ZmliX2RpcjI0Xzhfbmhfc3ogbmhfc3o7DQo+ICsJc3RydWN0IGRpcjI0XzhfdGJsICpkcCA9IHA7
DQo+ICANCj4gLQlpZiAodGVzdF9sb29rdXAgPT0gTUFDUk8pIHsNCj4gKwlpZiAoZHAgPT0gTlVM
TCkNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsNCj4gKwluaF9zeiA9IGRwLT5uaF9zejsNCj4gKw0K
PiArCXN3aXRjaCAodHlwZSkgew0KPiArCWNhc2UgUlRFX0ZJQl9ESVIyNF84X1NDQUxBUl9NQUNS
TzoNCj4gIAkJc3dpdGNoIChuaF9zeikgew0KPiAgCQljYXNlIFJURV9GSUJfRElSMjRfOF8xQjoN
Cj4gIAkJCXJldHVybiBkaXIyNF84X2xvb2t1cF9idWxrXzFiOw0KPiBAQCAtMjY3LDggKzI2Nywx
MCBAQCBkaXIyNF84X2dldF9sb29rdXBfZm4oc3RydWN0IHJ0ZV9maWJfY29uZiAqZmliX2NvbmYp
DQo+ICAJCQlyZXR1cm4gZGlyMjRfOF9sb29rdXBfYnVsa180YjsNCj4gIAkJY2FzZSBSVEVfRklC
X0RJUjI0XzhfOEI6DQo+ICAJCQlyZXR1cm4gZGlyMjRfOF9sb29rdXBfYnVsa184YjsNCj4gKwkJ
ZGVmYXVsdDoNCj4gKwkJCXJldHVybiBOVUxMOw0KPiAgCQl9DQo+IC0JfSBlbHNlIGlmICh0ZXN0
X2xvb2t1cCA9PSBJTkxJTkUpIHsNCj4gKwljYXNlIFJURV9GSUJfRElSMjRfOF9TQ0FMQVJfSU5M
SU5FOg0KPiAgCQlzd2l0Y2ggKG5oX3N6KSB7DQo+ICAJCWNhc2UgUlRFX0ZJQl9ESVIyNF84XzFC
Og0KPiAgCQkJcmV0dXJuIGRpcjI0XzhfbG9va3VwX2J1bGtfMDsNCj4gQEAgLTI3OCw5ICsyODAs
MTUgQEAgZGlyMjRfOF9nZXRfbG9va3VwX2ZuKHN0cnVjdCBydGVfZmliX2NvbmYgKmZpYl9jb25m
KQ0KPiAgCQkJcmV0dXJuIGRpcjI0XzhfbG9va3VwX2J1bGtfMjsNCj4gIAkJY2FzZSBSVEVfRklC
X0RJUjI0XzhfOEI6DQo+ICAJCQlyZXR1cm4gZGlyMjRfOF9sb29rdXBfYnVsa18zOw0KPiArCQlk
ZWZhdWx0Og0KPiArCQkJcmV0dXJuIE5VTEw7DQo+ICAJCX0NCj4gLQl9IGVsc2UNCj4gKwljYXNl
IFJURV9GSUJfRElSMjRfOF9TQ0FMQVJfVU5JOg0KPiAgCQlyZXR1cm4gZGlyMjRfOF9sb29rdXBf
YnVsa191bmk7DQo+ICsJZGVmYXVsdDoNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiArDQo+
ICAJcmV0dXJuIE5VTEw7DQo+ICB9DQo+ICANCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZmli
L2RpcjI0XzguaCBiL2xpYi9saWJydGVfZmliL2RpcjI0XzguaCBpbmRleCANCj4gMWVjNDM3Yy4u
NTNjNWRkMiAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9maWIvZGlyMjRfOC5oDQo+ICsrKyBi
L2xpYi9saWJydGVfZmliL2RpcjI0XzguaA0KPiBAQCAtMjIsNyArMjIsNyBAQCB2b2lkDQo+ICBk
aXIyNF84X2ZyZWUodm9pZCAqcCk7DQo+ICANCj4gIHJ0ZV9maWJfbG9va3VwX2ZuX3QNCj4gLWRp
cjI0XzhfZ2V0X2xvb2t1cF9mbihzdHJ1Y3QgcnRlX2ZpYl9jb25mICpjb25mKTsNCj4gK2RpcjI0
XzhfZ2V0X2xvb2t1cF9mbih2b2lkICpwLCBlbnVtIHJ0ZV9maWJfZGlyMjRfOF9sb29rdXBfdHlw
ZSANCj4gK3R5cGUpOw0KPiAgDQo+ICBpbnQNCj4gIGRpcjI0XzhfbW9kaWZ5KHN0cnVjdCBydGVf
ZmliICpmaWIsIHVpbnQzMl90IGlwLCB1aW50OF90IGRlcHRoLCBkaWZmIA0KPiAtLWdpdCBhL2xp
Yi9saWJydGVfZmliL3J0ZV9maWIuYyBiL2xpYi9saWJydGVfZmliL3J0ZV9maWIuYyBpbmRleCAN
Cj4gZTA5MDgwOC4uNTkxMjBiNSAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9maWIvcnRlX2Zp
Yi5jDQo+ICsrKyBiL2xpYi9saWJydGVfZmliL3J0ZV9maWIuYw0KPiBAQCAtMTA3LDcgKzEwNyw4
IEBAIGluaXRfZGF0YXBsYW5lKHN0cnVjdCBydGVfZmliICpmaWIsIF9fcnRlX3VudXNlZCBpbnQg
c29ja2V0X2lkLA0KPiAgCQlmaWItPmRwID0gZGlyMjRfOF9jcmVhdGUoZHBfbmFtZSwgc29ja2V0
X2lkLCBjb25mKTsNCj4gIAkJaWYgKGZpYi0+ZHAgPT0gTlVMTCkNCj4gIAkJCXJldHVybiAtcnRl
X2Vycm5vOw0KPiAtCQlmaWItPmxvb2t1cCA9IGRpcjI0XzhfZ2V0X2xvb2t1cF9mbihjb25mKTsN
Cj4gKwkJZmliLT5sb29rdXAgPSBkaXIyNF84X2dldF9sb29rdXBfZm4oZmliLT5kcCwNCj4gKwkJ
CVJURV9GSUJfRElSMjRfOF9TQ0FMQVJfTUFDUk8pOw0KPiAgCQlmaWItPm1vZGlmeSA9IGRpcjI0
XzhfbW9kaWZ5Ow0KPiAgCQlyZXR1cm4gMDsNCj4gIAlkZWZhdWx0Og0KPiBAQCAtMzE3LDMgKzMx
OCwyMCBAQCBydGVfZmliX2dldF9yaWIoc3RydWN0IHJ0ZV9maWIgKmZpYikgIHsNCj4gIAlyZXR1
cm4gKGZpYiA9PSBOVUxMKSA/IE5VTEwgOiBmaWItPnJpYjsgIH0NCj4gKw0KPiAraW50DQo+ICty
dGVfZmliX3NldF9sb29rdXBfZm4oc3RydWN0IHJ0ZV9maWIgKmZpYiwgaW50IHR5cGUpIHsNCj4g
KwlydGVfZmliX2xvb2t1cF9mbl90IGZuOw0KPiArDQo+ICsJc3dpdGNoIChmaWItPnR5cGUpIHsN
Cj4gKwljYXNlIFJURV9GSUJfRElSMjRfODoNCj4gKwkJZm4gPSBkaXIyNF84X2dldF9sb29rdXBf
Zm4oZmliLT5kcCwgdHlwZSk7DQo+ICsJCWlmIChmbiA9PSBOVUxMKQ0KPiArCQkJcmV0dXJuIC1F
SU5WQUw7DQo+ICsJCWZpYi0+bG9va3VwID0gZm47DQo+ICsJCXJldHVybiAwOw0KPiArCWRlZmF1
bHQ6DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4gK30NCj4gZGlmZiAtLWdpdCBhL2xp
Yi9saWJydGVfZmliL3J0ZV9maWIuaCBiL2xpYi9saWJydGVfZmliL3J0ZV9maWIuaCBpbmRleCAN
Cj4gZDA2YzVlZi4uMGU5ODc3NSAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV9maWIvcnRlX2Zp
Yi5oDQo+ICsrKyBiL2xpYi9saWJydGVfZmliL3J0ZV9maWIuaA0KPiBAQCAtNDcsNiArNDcsMTIg
QEAgZW51bSBydGVfZmliX2RpcjI0Xzhfbmhfc3ogew0KPiAgCVJURV9GSUJfRElSMjRfOF84Qg0K
PiAgfTsNCkRvIHdlIHByb3ZpZGUgdGhlIHVzZXIgZ3VpZGFuY2UgYW55d2hlcmUgb24gdGhlIG1l
cml0cy9hZHZhbnRhZ2VzIG9mIGVhY2ggb3B0aW9uPw0KDQpObywgd2UgZG9uJ3QgYXQgdGhlIG1v
bWVudC4gSSBjb3ZlcmVkIHRoaXMgaW4gbXkgc2xpZGVzIGFib3V0IEZJQi4gSW4gbXkgVG9EbyBJ
IGhhdmUgYSBwbGFuIHRvIGFkZCBkb2N1bWVudGF0aW9uIGZvciB0aGlzIGxpYnJhcnkgYW5kIEkg
d2lsbCByZWZsZWN0IHRoaXMgb3B0aW9uIHRoZXJlLg0KDQo+ICtlbnVtIHJ0ZV9maWJfZGlyMjRf
OF9sb29rdXBfdHlwZSB7DQo+ICsJUlRFX0ZJQl9ESVIyNF84X1NDQUxBUl9NQUNSTywNCj4gKwlS
VEVfRklCX0RJUjI0XzhfU0NBTEFSX0lOTElORSwNCj4gKwlSVEVfRklCX0RJUjI0XzhfU0NBTEFS
X1VOSQ0KPiArfTsNCj4gKw0KPiAgLyoqIEZJQiBjb25maWd1cmF0aW9uIHN0cnVjdHVyZSAqLw0K
PiAgc3RydWN0IHJ0ZV9maWJfY29uZiB7DQo+ICAJZW51bSBydGVfZmliX3R5cGUgdHlwZTsgLyoq
PCBUeXBlIG9mIEZJQiBzdHJ1Y3QgKi8gQEAgLTE4NSw0ICsxOTEsMjAgDQo+IEBAIF9fcnRlX2V4
cGVyaW1lbnRhbCAgc3RydWN0IHJ0ZV9yaWIgKiAgcnRlX2ZpYl9nZXRfcmliKHN0cnVjdCANCj4g
cnRlX2ZpYiAqZmliKTsNCj4gIA0KPiArLyoqDQo+ICsgKiBTZXQgbG9va3VwIGZ1bmN0aW9uIGJh
c2VkIG9uIHR5cGUNCj4gKyAqDQo+ICsgKiBAcGFyYW0gZmliDQo+ICsgKiAgIEZJQiBvYmplY3Qg
aGFuZGxlDQo+ICsgKiBAcGFyYW0gdHlwZQ0KPiArICogICB0eXBlIG9mIGxvb2t1cCBmdW5jdGlv
bg0KPiArICoNCj4gKyAqIEByZXR1cm4NCj4gKyAqICAgIC1FSU5WQUwgb24gZmFpbHVyZQ0KPiAr
ICogICAgMCBvbiBzdWNjZXNzDQo+ICsgKi8NCj4gK19fcnRlX2V4cGVyaW1lbnRhbA0KPiAraW50
DQo+ICtydGVfZmliX3NldF9sb29rdXBfZm4oc3RydWN0IHJ0ZV9maWIgKmZpYiwgaW50IHR5cGUp
Ow0KPiArDQo+ICAjZW5kaWYgLyogX1JURV9GSUJfSF8gKi8NCj4gZGlmZiAtLWdpdCBhL2xpYi9s
aWJydGVfZmliL3J0ZV9maWJfdmVyc2lvbi5tYXAgDQo+IGIvbGliL2xpYnJ0ZV9maWIvcnRlX2Zp
Yl92ZXJzaW9uLm1hcA0KPiBpbmRleCA5NTI3NDE3Li4yMTZhZjY2IDEwMDY0NA0KPiAtLS0gYS9s
aWIvbGlicnRlX2ZpYi9ydGVfZmliX3ZlcnNpb24ubWFwDQo+ICsrKyBiL2xpYi9saWJydGVfZmli
L3J0ZV9maWJfdmVyc2lvbi5tYXANCj4gQEAgLTksNiArOSw3IEBAIEVYUEVSSU1FTlRBTCB7DQo+
ICAJcnRlX2ZpYl9sb29rdXBfYnVsazsNCj4gIAlydGVfZmliX2dldF9kcDsNCj4gIAlydGVfZmli
X2dldF9yaWI7DQo+ICsJcnRlX2ZpYl9zZXRfbG9va3VwX2ZuOw0KPiAgDQo+ICAJcnRlX2ZpYjZf
YWRkOw0KPiAgCXJ0ZV9maWI2X2NyZWF0ZTsNCj4gDQo=