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 6B94DA3168 for ; Wed, 16 Oct 2019 09:16:51 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2E60C1E8E2; Wed, 16 Oct 2019 09:16:51 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30126.outbound.protection.outlook.com [40.107.3.126]) by dpdk.org (Postfix) with ESMTP id 8A4F31E8D0; Wed, 16 Oct 2019 09:16:47 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mMSC5ejwKIJ5zwnC6T+60aMPXXM+QW2/29KrbHDx/nkBRQx95ITdbR2Pm9ZnkRPR3fB4D5G0jpbXXczkiR8UCJOrqPUdHnsisjzd3v5i41oVeorqTH7wNT2PqEviR2mW9U2nj1gshVDNXeKrsKnEEsktwpXRzKo7CEJ9CuyLcPjEsCS0gx9D42doplt3JaahupqFZ05w5twhvapr+3pUHovutvPQM9fKn/5gkivRORB3dvK0BNbOgtbjwiHCZ9b4ZILAWKZTwWfZEsK+aFX5i5R379hiwu1r4Vi4pgydFaj2XTmWp5FEFCruQtcs/vvJbf5D31iwOub5FIHHZozdUA== 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=e+nhAljrRYvBfuyGDyqGWQ1mBmjbsawjkQQ1fFwNVeg=; b=FfeY0uZYcqLaeSH+27nNM/2Iq/1QcSjeQLy5kwA2PdnWh65EkcRqWnjnnK3aKtrkZ74Hp1VyjrGGYSb8l4wMyGC0UjMeaq5Tlr0sbS5W8TTgYxnbWFfBTRiwFUTNHcnX7otFLGB7Tkbnr4+tobCi79eMLSJt6tEn7Dz5Ig1BvrmYE0rlM0YBJbaFYh/iXno+QpA1nbgs8us4xE4Cgzd+ILdLIV4HrNFIUR7C988EYmlJxq+2mYpPQyPF5AUjSNwuSgNF93NuIUiBrza6DkDdoTv411F7IWPD9uJUaiTmpuDXHMy4Wia6K5KR0tk5dnPm5uIj1YgrUdRKapjcAmlnmw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e+nhAljrRYvBfuyGDyqGWQ1mBmjbsawjkQQ1fFwNVeg=; b=d+KLeqAEF4AkOgYhqGvaJOKYTW5KxxCQIrYxNfxXj7KtOlj0IXSZJGqUY2LDAxtgW5tg/NTrAlJ7N42t07HB/yCT7hXPhHYsQoLhXd25xBQ50SCIDuhAUi54MoUAuTRC6wNX4fybuevIyzZPIlVwK49700DAkBCK+l9AhU9U2To= Received: from VI1PR07MB4047.eurprd07.prod.outlook.com (52.134.20.154) by VI1SPR01MB027.eurprd07.prod.outlook.com (52.134.2.30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2367.14; Wed, 16 Oct 2019 07:16:46 +0000 Received: from VI1PR07MB4047.eurprd07.prod.outlook.com ([fe80::b9e2:be86:af7c:5dce]) by VI1PR07MB4047.eurprd07.prod.outlook.com ([fe80::b9e2:be86:af7c:5dce%5]) with mapi id 15.20.2367.014; Wed, 16 Oct 2019 07:16:46 +0000 From: "Meunier, Julien (Nokia - FR/Paris-Saclay)" To: Akhil Goyal , Declan Doherty CC: "dev@dpdk.org" , "stable@dpdk.org" , Anoob Joseph , Fiona Trahe , "Ananyev, Konstantin" Thread-Topic: [PATCH v2] cryptodev: fix check related to device id Thread-Index: AQHVg++mNkwyIMnuu0aC8bronMs1pKdc228A Date: Wed, 16 Oct 2019 07:16:46 +0000 Message-ID: <876e40de-34cb-c785-1ce1-ed924205c53c@nokia.com> References: <20190807083946.39309-1-julien.meunier@nokia.com> <20191015165034.24276-1-julien.meunier@nokia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: CH2PR08CA0006.namprd08.prod.outlook.com (2603:10b6:610:5a::16) To VI1PR07MB4047.eurprd07.prod.outlook.com (2603:10a6:803:29::26) x-originating-ip: [131.228.32.166] authentication-results: spf=none (sender IP is ) smtp.mailfrom=julien.meunier@nokia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9a46606c-69b1-4681-7a5d-08d75208cdab x-ms-office365-filtering-ht: Tenant x-ms-traffictypediagnostic: VI1SPR01MB027: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2512; x-forefront-prvs: 0192E812EC x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(376002)(396003)(136003)(39860400002)(346002)(189003)(199004)(476003)(64756008)(71200400001)(5660300002)(478600001)(81166006)(5024004)(14444005)(256004)(66066001)(8936002)(8676002)(81156014)(305945005)(446003)(7736002)(66446008)(14454004)(2616005)(66476007)(486006)(66946007)(11346002)(71190400001)(6486002)(6246003)(86362001)(31696002)(6436002)(6512007)(2906002)(66556008)(26005)(25786009)(386003)(186003)(54906003)(110136005)(316002)(4326008)(99286004)(229853002)(3846002)(6116002)(36756003)(102836004)(31686004)(52116002)(76176011)(53546011)(6506007); DIR:OUT; SFP:1102; SCL:1; SRVR:VI1SPR01MB027; H:VI1PR07MB4047.eurprd07.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MS5xbqV6+FRBRrQTVaOuKQsGou+1AapxS2K1mRzpuhtRy0pZAfuVe5d19eAQsVTrkEkLgB3cuyYaz9cXCD+8mhcqFFNEK5OZ0tT7UOxO7+fXcfwW5u3HTPQbh1n9ZGLsXvr7BEfc7k7pqWWZV2dCn8WuUiwpBt0RcQyzBAW9RRLDeh1xdSt62N82t+rH3f4B0MCR4g6dIz2qfFLc8oGVE7mkoeiAz/E9Qw5GBQBDsPJLcvxiMWJ/ejCy7Cr2Kq7SqtaM5vdhVo7aHZ0KJ1eGcytb+1e8Mz6/9E0NGdI/WJ65yuCrOB+3go1yqaixJ0jXMGpCuqBeUuTj9YnJ6WsHRkeVgrwjazFLtoT7NRVsRW08FbTTPsmMbcpwMBV7QxNw9F7iWO/3wKA+A3CJcUAFgOLuD/DRMmemXwe7uOEqE2M= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <7BA4767AB5E3144C9F427B747A5936FD@eurprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nokia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9a46606c-69b1-4681-7a5d-08d75208cdab X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Oct 2019 07:16:46.1307 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7BXo9nz3RKxo3zgHG1nAVrvcR47XyO9aFc1Lj6LpANPj4dWAgaAEn6Sj1Mbh1qy99rUY14SPRqsBmyWaagZJ/3WFeuOX6InLin5HrLex4HM= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1SPR01MB027 Subject: Re: [dpdk-stable] [PATCH v2] cryptodev: fix check related to device id X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" SGksDQoNCklubGluZSByZXBseQ0KDQpPbiAxNi8xMC8yMDE5IDA5OjAyLCBBa2hpbCBHb3lhbCB3 cm90ZToNCj4gSGkgSnVsaWVuLA0KPiANCj4gQSBjb3VwbGUgb2Ygbml0cy4gUGxlYXNlIHNlZSBp bmxpbmUuDQo+IA0KPiBBcGFydCBmcm9tIHRoYXQNCj4gQWNrZWQtYnk6IEFraGlsIEdveWFsIDxh a2hpbC5nb3lhbEBueHAuY29tPg0KPiANCj4+DQo+PiBFYWNoIGNyeXB0b2RldiBhcmUgaW5kZXhl ZCB3aXRoIGRldl9pZCBpbiB0aGUgZ2xvYmFsIHJ0ZV9jcnlwdG9fZGV2aWNlcw0KPj4gdmFyaWFi bGUuIG5iX2RldnMgaXMgaW5jcmVtZW50ZWQgLyBkZWNyZW1lbnRlZCBlYWNoIHRpbWUgYSBjcnlw dG9kZXYgaXMNCj4+IGNyZWF0ZWQgLyBkZWxldGVkLiBUaGUgZ29hbCBvZiBuYl9kZXZzIHdhcyB0 byBwcmV2ZW50IHRoZSB1c2VyIHRvIGdldCBhbg0KPj4gaW52YWxpZCBkZXZfaWQuDQo+Pg0KPj4g TGV0J3MgaW1hZ2luZSBEUERLIGhhcyBjb25maWd1cmVkIE4gY3J5cHRvZGV2cy4gSWYgdGhlIGNy eXB0b2Rldj0xIGlzDQo+PiByZW1vdmVkIGF0IHJ1bnRpbWUsIHRoZSBsYXRlc3QgY3J5cHRvZGV2 IE4gY2Fubm90IGJlIGFjY2Vzc2libGUsIGJlY2F1c2UNCj4+IG5iX2RldnM9Ti0xIHdpdGggdGhl IGN1cnJlbnQgaW1wbGVtZW50YWlvbi4NCj4+DQo+PiBJbiBvcmRlciB0byBwcmV2ZW50IHRoaXMg a2luZCBvZiBiZWhhdmlvciwgbGV0J3MgcmVtb3ZlIHRoZSBjaGVjayB3aXRoDQo+PiBuYl9kZXZz IGFuZCBpdGVyYXRlIGluIGFsbCB0aGUgcnRlX2NyeXB0b19kZXZpY2VzIGVsZW1lbnRzOiBpZiBk YXRhIGlzDQo+PiBub3QgTlVMTCwgdGhhdCBtZWFucyBhIHZhbGlkIGNyeXB0b2RldiBpcyBhdmFp bGFibGUuDQo+Pg0KPj4gQWxzbywgcmVtb3ZlIG1heF9kZXZzIGZpZWxkIGFuZCB1c2UgUlRFX0NS WVBUT19NQVhfREVWUyBpbiBvcmRlciB0bw0KPj4gdW5pZnkgdGhlIGNvZGUuDQo+Pg0KPj4gRml4 ZXM6IGQxMWIwZjMwZGY4OCAoImNyeXB0b2RldjogaW50cm9kdWNlIEFQSSBhbmQgZnJhbWV3b3Jr IGZvciBjcnlwdG8NCj4+IGRldmljZXMiKQ0KPj4gQ2M6IHN0YWJsZUBkcGRrLm9yZw0KPj4NCj4+ IFNpZ25lZC1vZmYtYnk6IEp1bGllbiBNZXVuaWVyIDxqdWxpZW4ubWV1bmllckBub2tpYS5jb20+ DQo+PiAtLS0NCj4+IHYyOg0KPj4gKiBSZXN0b3JlIG5iX2RldnMNCj4+ICogVXBkYXRlIGhlYWRs aW5lIChjaGVjay1naXQtbG9nLnNoKQ0KPj4gKiBVcGRhdGUgY29tbWl0IGxvZw0KPj4NCj4+ICAg bGliL2xpYnJ0ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldi5jIHwgMzAgKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0tDQo+PiAgIDEgZmlsZSBjaGFuZ2VkLCAyMSBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQ0KPj4NCj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX2NyeXB0b2Rldi9y dGVfY3J5cHRvZGV2LmMNCj4+IGIvbGliL2xpYnJ0ZV9jcnlwdG9kZXYvcnRlX2NyeXB0b2Rldi5j DQo+PiBpbmRleCBiMTZlZjdiLi45MzNjMzhkIDEwMDY0NA0KPj4gLS0tIGEvbGliL2xpYnJ0ZV9j cnlwdG9kZXYvcnRlX2NyeXB0b2Rldi5jDQo+PiArKysgYi9saWIvbGlicnRlX2NyeXB0b2Rldi9y dGVfY3J5cHRvZGV2LmMNCj4+IEBAIC01MCw4ICs1MCw3IEBADQo+PiAgIHN0YXRpYyBzdHJ1Y3Qg cnRlX2NyeXB0b2Rldl9nbG9iYWwgY3J5cHRvZGV2X2dsb2JhbHMgPSB7DQo+PiAJCS5kZXZzCQkJ PSBydGVfY3J5cHRvX2RldmljZXMsDQo+PiAgIAkJLmRhdGEJCQk9IHsgTlVMTCB9LA0KPj4gLQkJ Lm5iX2RldnMJCT0gMCwNCj4+IC0JCS5tYXhfZGV2cwkJPSBSVEVfQ1JZUFRPX01BWF9ERVZTDQo+ PiArCQkubmJfZGV2cwkJPSAwDQo+PiAgIH07DQo+IA0KPiBNYXhfZGV2cyBmaWVsZCBzaGFsbCBh bHNvIGJlIHJlbW92ZWQgZnJvbSBzdHJ1Y3QgcnRlX2NyeXB0b2Rldl9nbG9iYWwgaW4gImxpYi9s aWJydGVfY3J5cHRvZGV2L3J0ZV9jcnlwdG9kZXZfcG1kLmgiDQoNCk9vcHMsIHllcywgSSBkaWRu J3QgY2xlYW4tdXAgYWxsIHRoZSBjb2RlIDopIEkgd2lsbCBkbyB0aGF0Lg0KDQoNCj4+DQo+PiAg IC8qIHNwaW5sb2NrIGZvciBjcnlwdG8gZGV2aWNlIGNhbGxiYWNrcyAqLw0KPj4gQEAgLTUxMiw3 ICs1MTEsNyBAQCBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqDQo+PiAgIAlpZiAobmFtZSA9PSBOVUxM KQ0KPj4gICAJCXJldHVybiBOVUxMOw0KPj4NCj4+IC0JZm9yIChpID0gMDsgaSA8IGNyeXB0b2Rl dl9nbG9iYWxzLm1heF9kZXZzOyBpKyspIHsNCj4+ICsJZm9yIChpID0gMDsgaSA8IFJURV9DUllQ VE9fTUFYX0RFVlM7IGkrKykgew0KPj4gICAJCWRldiA9ICZjcnlwdG9kZXZfZ2xvYmFscy5kZXZz W2ldOw0KPj4NCj4+ICAgCQlpZiAoKGRldi0+YXR0YWNoZWQgPT0gUlRFX0NSWVBUT0RFVl9BVFRB Q0hFRCkgJiYNCj4+IEBAIC01MjMsMTIgKzUyMiwyMSBAQCBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq DQo+PiAgIAlyZXR1cm4gTlVMTDsNCj4+ICAgfQ0KPj4NCj4+ICtzdGF0aWMgdWludDhfdA0KPj4g K3J0ZV9jcnlwdG9kZXZfaXNfdmFsaWRfZGV2aWNlX2RhdGEodWludDhfdCBkZXZfaWQpDQo+PiAr ew0KPj4gKwlpZiAocnRlX2NyeXB0b19kZXZpY2VzW2Rldl9pZF0uZGF0YSA9PSBOVUxMKQ0KPj4g KwkJcmV0dXJuIDA7DQo+PiArDQo+PiArCXJldHVybiAxOw0KPj4gK30NCj4gDQo+IHJ0ZV9jcnlw dG9kZXZfaXNfdmFsaWRfZGV2aWNlX2RhdGEgc2hvdWxkIGJlIGEgc3RhdGljIGlubGluZSBmdW5j dGlvbi4NCg0KT0suDQoNCj4gDQo+PiArDQo+PiAgIHVuc2lnbmVkIGludA0KPj4gICBydGVfY3J5 cHRvZGV2X3BtZF9pc192YWxpZF9kZXYodWludDhfdCBkZXZfaWQpDQo+PiAgIHsNCj4+ICAgCXN0 cnVjdCBydGVfY3J5cHRvZGV2ICpkZXYgPSBOVUxMOw0KPj4NCj4+IC0JaWYgKGRldl9pZCA+PSBj cnlwdG9kZXZfZ2xvYmFscy5uYl9kZXZzKQ0KPj4gKwlpZiAoIXJ0ZV9jcnlwdG9kZXZfaXNfdmFs aWRfZGV2aWNlX2RhdGEoZGV2X2lkKSkNCj4+ICAgCQlyZXR1cm4gMDsNCj4+DQo+PiAgIAlkZXYg PSBydGVfY3J5cHRvZGV2X3BtZF9nZXRfZGV2KGRldl9pZCk7DQo+PiBAQCAtNTQ3LDEyICs1NTUs MTUgQEAgc3RydWN0IHJ0ZV9jcnlwdG9kZXYgKg0KPj4gICAJaWYgKG5hbWUgPT0gTlVMTCkNCj4+ ICAgCQlyZXR1cm4gLTE7DQo+Pg0KPj4gLQlmb3IgKGkgPSAwOyBpIDwgY3J5cHRvZGV2X2dsb2Jh bHMubmJfZGV2czsgaSsrKQ0KPj4gKwlmb3IgKGkgPSAwOyBpIDwgUlRFX0NSWVBUT19NQVhfREVW UzsgaSsrKSB7DQo+PiArCQlpZiAoIXJ0ZV9jcnlwdG9kZXZfaXNfdmFsaWRfZGV2aWNlX2RhdGEo aSkpDQo+PiArCQkJY29udGludWU7DQo+PiAgIAkJaWYgKChzdHJjbXAoY3J5cHRvZGV2X2dsb2Jh bHMuZGV2c1tpXS5kYXRhLT5uYW1lLCBuYW1lKQ0KPj4gICAJCQkJPT0gMCkgJiYNCj4+ICAgCQkJ CShjcnlwdG9kZXZfZ2xvYmFscy5kZXZzW2ldLmF0dGFjaGVkID09DQo+PiAgIAkJCQkJCVJURV9D UllQVE9ERVZfQVRUQUNIRUQpKQ0KPj4gICAJCQlyZXR1cm4gaTsNCj4+ICsJfQ0KPj4NCj4+ICAg CXJldHVybiAtMTsNCj4+ICAgfQ0KPj4gQEAgLTU2OCw3ICs1NzksNyBAQCBzdHJ1Y3QgcnRlX2Ny eXB0b2RldiAqDQo+PiAgIHsNCj4+ICAgCXVpbnQ4X3QgaSwgZGV2X2NvdW50ID0gMDsNCj4+DQo+ PiAtCWZvciAoaSA9IDA7IGkgPCBjcnlwdG9kZXZfZ2xvYmFscy5tYXhfZGV2czsgaSsrKQ0KPj4g Kwlmb3IgKGkgPSAwOyBpIDwgUlRFX0NSWVBUT19NQVhfREVWUzsgaSsrKQ0KPj4gICAJCWlmIChj cnlwdG9kZXZfZ2xvYmFscy5kZXZzW2ldLmRyaXZlcl9pZCA9PSBkcml2ZXJfaWQgJiYNCj4+ICAg CQkJY3J5cHRvZGV2X2dsb2JhbHMuZGV2c1tpXS5hdHRhY2hlZCA9PQ0KPj4gICAJCQkJCVJURV9D UllQVE9ERVZfQVRUQUNIRUQpDQo+PiBAQCAtNTgzLDkgKzU5NCwxMCBAQCBzdHJ1Y3QgcnRlX2Ny eXB0b2RldiAqDQo+PiAgIHsNCj4+ICAgCXVpbnQ4X3QgaSwgY291bnQgPSAwOw0KPj4gICAJc3Ry dWN0IHJ0ZV9jcnlwdG9kZXYgKmRldnMgPSBjcnlwdG9kZXZfZ2xvYmFscy5kZXZzOw0KPj4gLQl1 aW50OF90IG1heF9kZXZzID0gY3J5cHRvZGV2X2dsb2JhbHMubWF4X2RldnM7DQo+Pg0KPj4gLQlm b3IgKGkgPSAwOyBpIDwgbWF4X2RldnMgJiYgY291bnQgPCBuYl9kZXZpY2VzOwlpKyspIHsNCj4+ ICsJZm9yIChpID0gMDsgaSA8IFJURV9DUllQVE9fTUFYX0RFVlMgJiYgY291bnQgPCBuYl9kZXZp Y2VzOyBpKyspIHsNCj4+ICsJCWlmICghcnRlX2NyeXB0b2Rldl9pc192YWxpZF9kZXZpY2VfZGF0 YShpKSkNCj4+ICsJCQljb250aW51ZTsNCj4+DQo+PiAgIAkJaWYgKGRldnNbaV0uYXR0YWNoZWQg PT0gUlRFX0NSWVBUT0RFVl9BVFRBQ0hFRCkgew0KPj4gICAJCQlpbnQgY21wOw0KPj4gQEAgLTEx MDEsNyArMTExMyw3IEBAIHN0cnVjdCBydGVfY3J5cHRvZGV2ICoNCj4+ICAgew0KPj4gICAJc3Ry dWN0IHJ0ZV9jcnlwdG9kZXYgKmRldjsNCj4+DQo+PiAtCWlmIChkZXZfaWQgPj0gY3J5cHRvZGV2 X2dsb2JhbHMubmJfZGV2cykgew0KPj4gKwlpZiAoIXJ0ZV9jcnlwdG9kZXZfcG1kX2lzX3ZhbGlk X2RldihkZXZfaWQpKSB7DQo+PiAgIAkJQ0RFVl9MT0dfRVJSKCJJbnZhbGlkIGRldl9pZD0lZCIs IGRldl9pZCk7DQo+PiAgIAkJcmV0dXJuOw0KPj4gICAJfQ0KPj4gLS0NCj4+IDEuOC4zLjENCj4g DQoNClRoYW5rcywNCi0tIA0KSnVsaWVuIE1ldW5pZXINCg==