From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id E60A945AD2; Mon, 7 Oct 2024 11:27:18 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6BA8A402EA; Mon, 7 Oct 2024 11:27:18 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 677124026C for ; Mon, 7 Oct 2024 11:27:17 +0200 (CEST) Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XMYg10fv2z6K6TR; Mon, 7 Oct 2024 17:26:05 +0800 (CST) Received: from frapeml100006.china.huawei.com (unknown [7.182.85.201]) by mail.maildlp.com (Postfix) with ESMTPS id E02E2140109; Mon, 7 Oct 2024 17:27:15 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100006.china.huawei.com (7.182.85.201) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Mon, 7 Oct 2024 11:27:15 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039; Mon, 7 Oct 2024 11:27:15 +0200 From: Konstantin Ananyev To: Dariusz Sosnowski , Ferruh Yigit , "NBU-Contact-Thomas Monjalon (EXTERNAL)" , Andrew Rybchenko CC: "dev@dpdk.org" , Bruce Richardson Subject: RE: [RFC 0/4] ethdev: rework config restore Thread-Topic: [RFC 0/4] ethdev: rework config restore Thread-Index: AQHbCaxnvJzcot6EwEidqZ9OS9qkZLJvWnWAgAeTsoCABDL0EA== Date: Mon, 7 Oct 2024 09:27:15 +0000 Message-ID: References: <20240918092201.33772-1-dsosnowski@nvidia.com> <13747524-f073-4749-adbd-be1c7681dbcd@amd.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.195.247.117] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gPiBFeHRlcm5hbCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRh Y2htZW50cw0KPiA+DQo+ID4NCj4gPiBPbiA5LzE4LzIwMjQgMTA6MjEgQU0sIERhcml1c3ogU29z bm93c2tpIHdyb3RlOg0KPiA+ID4gSGkgYWxsLA0KPiA+ID4NCj4gPiA+IFdlIGhhdmUgYmVlbiB3 b3JraW5nIG9uIG9wdGltaXppbmcgdGhlIGxhdGVuY3kgb2YgY2FsbHMgdG8NCj4gPiA+IHJ0ZV9l dGhfZGV2X3N0YXJ0KCksIG9uIHBvcnRzIHNwYXduZWQgYnkgbWx4NSBQTUQuIE1vc3Qgb2YgdGhl IHdvcmsNCj4gPiA+IHJlcXVpcmVzIGNoYW5nZXMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mDQo+ ID4gPiAuZGV2X3N0YXJ0KCkgUE1EIGNhbGxiYWNrLCBidXQgSSBhbHNvIHdhbnRlZCB0byBzdGFy dCBhIGRpc2N1c3Npb24NCj4gPiA+IHJlZ2FyZGluZyBjb25maWd1cmF0aW9uIHJlc3RvcmUuDQo+ ID4gPg0KPiA+ID4gcnRlX2V0aF9kZXZfc3RhcnQoKSBkb2VzIGEgZmV3IHRoaW5ncyBvbiB0b3Ag b2YgY2FsbGluZyAuZGV2X3N0YXJ0KCkgY2FsbGJhY2s6DQo+ID4gPg0KPiA+ID4gLSBCZWZvcmUg Y2FsbGluZyBpdDoNCj4gPiA+ICAgICAtIGV0aF9kZXZfbWFjX3Jlc3RvcmUoKSAtIGlmIGRldmlj ZSBzdXBwb3J0cw0KPiA+ID4gUlRFX0VUSF9ERVZfTk9MSVZFX01BQ19BRERSOw0KPiA+ID4gLSBB ZnRlciBjYWxsaW5nIGl0Og0KPiA+ID4gICAgIC0gZXRoX2Rldl9tYWNfcmVzdG9yZSgpIC0gaWYg ZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQNCj4gPiBSVEVfRVRIX0RFVl9OT0xJVkVfTUFDX0FERFI7 DQo+ID4gPiAgICAgLSByZXN0b3JlIHByb21pc2N1b3VzIGNvbmZpZw0KPiA+ID4gICAgIC0gcmVz dG9yZSBhbGwgbXVsdGljYXN0IGNvbmZpZw0KPiA+ID4NCj4gPiA+IGV0aF9kZXZfbWFjX3Jlc3Rv cmUoKSBpdGVyYXRlcyBvdmVyIGFsbCBrbm93biBNQUMgYWRkcmVzc2VzIC0gc3RvcmVkDQo+ID4g PiBpbiBydGVfZXRoX2Rldl9kYXRhLm1hY19hZGRycyBhcnJheSAtIGFuZCBjYWxscw0KPiA+ID4g Lm1hY19hZGRyX3NldCgpIGFuZCAubWFjX2FkZHJfYWRkKCkgY2FsbGJhY2tzIHRvIGFwcGx5IHRo ZXNlIE1BQyBhZGRyZXNzZXMuDQo+ID4gPg0KPiA+ID4gUHJvbWlzY3VvdXMgY29uZmlnIHJlc3Rv cmUgY2hlY2tzIGlmIHByb21pc2N1b3VzIG1vZGUgaXMgZW5hYmxlZCBvcg0KPiA+ID4gbm90LCBh bmQgY2FsbHMgLnByb21pc2N1b3VzX2VuYWJsZSgpIG9yIC5wcm9taXNjdW91c19kaXNhYmxlKCkg Y2FsbGJhY2suDQo+ID4gPg0KPiA+ID4gQWxsIG11bHRpY2FzdCBjb25maWcgcmVzdG9yZSBjaGVj a3MgaWYgYWxsIG11bHRpY2FzdCBtb2RlIGlzIGVuYWJsZWQNCj4gPiA+IG9yIG5vdCwgYW5kIGNh bGxzIC5hbGxtdWx0aWNhc3RfZW5hYmxlKCkgb3IgLmFsbG11bHRpY2FzdF9kaXNhYmxlKCkgY2Fs bGJhY2suDQo+ID4gPg0KPiA+ID4gQ2FsbGJhY2tzIGFyZSBjYWxsZWQgZGlyZWN0bHkgaW4gYWxs IG9mIHRoZXNlIGNhc2VzLCB0byBieXBhc3MgdGhlDQo+ID4gPiBjaGVja3MgZm9yIGFwcGx5aW5n IHRoZSBzYW1lIGNvbmZpZ3VyYXRpb24sIHdoaWNoIGV4aXN0IGluIHJlbGV2YW50IEFQSXMuDQo+ ID4gPiBDaGVja3MgYXJlIGJ5cGFzc2VkIHRvIGZvcmNlIGRyaXZlcnMgdG8gcmVhcHBseSB0aGUg Y29uZmlndXJhdGlvbi4NCj4gPiA+DQo+ID4gPiBMZXQncyBjb25zaWRlciB3aGF0IGhhcHBlbnMg aW4gdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBBUEkgY2FsbHMuDQo+ID4gPg0KPiA+ID4gMS4g cnRlX2V0aF9kZXZfY29uZmlndXJlKCkNCj4gPiA+IDIuIHJ0ZV9ldGhfdHhfcXVldWVfc2V0dXAo KQ0KPiA+ID4gMy4gcnRlX2V0aF9yeF9xdWV1ZV9zZXR1cCgpDQo+ID4gPiA0LiBydGVfZXRoX3By b21pc2N1b3VzX2VuYWJsZSgpDQo+ID4gPiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlz Y3VvdXNfZW5hYmxlKCkNCj4gPiA+ICAgICAtIFN0b3JlcyBwcm9taXNjdW91cyBzdGF0ZSBpbiBk ZXYtPmRhdGEtPnByb21pc2N1b3VzIDUuDQo+ID4gPiBydGVfZXRoX2FsbG11bHRpY2FzdF9lbmFi bGUoKQ0KPiA+ID4gICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUo KQ0KPiA+ID4gICAgIC0gU3RvcmVzIGFsbG11bHRpY2FzdCBzdGF0ZSBpbiBkZXYtPmRhdGEtPmFs bG11bHRpY2FzdCA2Lg0KPiA+ID4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+ID4gICAgIC0gQ2Fs bCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4gPiAgICAgLSBDYWxsIGRldi0+ZGV2X29w cy0+bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNzDQo+ID4gPiAgICAg LSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPiA+ICAgICAtIENh bGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxlKCkNCj4gPiA+DQo+ID4gPiBFdmVu IHRob3VnaCBhbGwgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgaW4gZGV2LT5kYXRhIGFmdGVy IHN0ZXAgNSwNCj4gPiA+IGxpYnJhcnkgZm9yY2VzIHJlYXBwbHlpbmcgdGhpcyBjb25maWd1cmF0 aW9uIGluIHN0ZXAgNi4NCj4gPiA+DQo+ID4gPiBJbiBtbHg1IFBNRCBjYXNlIGFsbCByZWxldmFu dCBjYWxsYmFja3MgcmVxdWlyZSBjb21tdW5pY2F0aW9uIHdpdGggdGhlDQo+ID4gPiBrZXJuZWwg ZHJpdmVyLCB0byBjb25maWd1cmUgdGhlIGRldmljZSAobWx4NSBQTUQgbXVzdCBjcmVhdGUvZGVz dHJveQ0KPiA+ID4gbmV3IGtlcm5lbCBmbG93IHJ1bGVzIGFuZC9vciBjaGFuZ2UgbmV0ZGV2IGNv bmZpZykuDQo+ID4gPg0KPiA+ID4gbWx4NSBQTUQgaGFuZGxlcyBhcHBseWluZyBhbGwgY29uZmln dXJhdGlvbiBpbiAuZGV2X3N0YXJ0KCksIHNvIHRoZQ0KPiA+ID4gZm9sbG93aW5nIGZvcmNlZCBj YWxsYmFja3MgZm9yY2UgYWRkaXRpb25hbCBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGtlcm5lbC4g VGhlDQo+ID4gc2FtZSBjb25maWd1cmF0aW9uIGlzIGFwcGxpZWQgbXVsdGlwbGUgdGltZXMuDQo+ ID4gPg0KPiA+ID4gQXMgYW4gb3B0aW1pemF0aW9uLCBtbHg1IFBNRCBjb3VsZCBjaGVjayBpZiBh IGdpdmVuIGNvbmZpZ3VyYXRpb24gd2FzDQo+ID4gPiBhcHBsaWVkLCBidXQgdGhpcyB3b3VsZCBk dXBsaWNhdGUgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGxpYnJhcnkNCj4gPiA+IChmb3IgZXhh bXBsZSBydGVfZXRoX3Byb21pc2N1b3VzX2VuYWJsZSgpIGRvZXMgbm90IGNhbGwgdGhlIGRyaXZl ciBpZg0KPiA+ID4gZGV2LT5kYXRhLT5wcm9taXNjdW91cyBpcyBzZXQpLg0KPiA+ID4NCj4gPiA+ IFF1ZXN0aW9uOiBTaW5jZSBhbGwgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxlIGJl Zm9yZQ0KPiA+ID4gLmRldl9zdGFydCgpIGNhbGxiYWNrIGlzIGNhbGxlZCwgd2h5IGV0aGRldiBs aWJyYXJ5IGRvZXMgbm90IGV4cGVjdCAuZGV2X3N0YXJ0KCkgdG8NCj4gPiB0YWtlIHRoaXMgY29u ZmlndXJhdGlvbiBpbnRvIGFjY291bnQ/DQo+ID4gPiBJbiBvdGhlciB3b3Jkcywgd2h5IGxpYnJh cnkgaGFzIHRvIHJlYXBwbHkgdGhlIGNvbmZpZ3VyYXRpb24/DQo+ID4gPg0KPiA+ID4gSSBjb3Vs ZCBub3QgZmluZCBhbnkgcGFydGljdWxhciByZWFzb24gd2h5IGNvbmZpZ3VyYXRpb24gcmVzdG9y ZQ0KPiA+ID4gZXhpc3RzIGFzIHBhcnQgb2YgdGhlIHByb2Nlc3MgKGl0IHdhcyBpbiB0aGUgaW5p dGlhbCBEUERLIGNvbW1pdCkuDQo+ID4gPg0KPiA+DQo+ID4gTXkgYXNzdW1wdGlvbiBpcyAuZGV2 X3N0b3AoKSBjYXVzZSB0aGVzZSB2YWx1ZXMgcmVzZXQgaW4gc29tZSBkZXZpY2VzLCBzbw0KPiA+ IC5kZXZfc3RhcnQoKSByZXN0b3JlcyB0aGVtIGJhY2suDQo+ID4gQEJydWNlIG9yIEBLb25zdGFu dGluIG1heSByZW1lbWJlciB0aGUgaGlzdG9yeS4NCg0KWWVwLCBhcyBJIHJlbWVtYmVyLCBhdCBs ZWFzdCBzb21lIEludGVsIFBNRHMgY2FsbGluZyBod19yZXNldCgpIGFkIGRlY19zdG9wKCkgYW5k IA0KZXZlbiBkZXZfc3RhcnQoKSB0byBtYWtlIHN1cmUgdGhhdCBIVyBpcyBpbiBhIGNsZWFuIChr bm93bikgc3RhdGUuDQoNCj4gPg0KPiA+IEJ1dCBJIGFncmVlIHRoaXMgaXMgZGV2aWNlIHNwZWNp ZmljIGJlaGF2aW9yLCBhbmQgY2FuIGJlIG1hbmFnZWQgYnkgd2hhdCBkZXZpY2UNCj4gPiByZXF1 aXJlcy4NCg0KUHJvYmFibHkgeWVzLg0KDQo+ID4NCj4gPiA+IFRoZSBwYXRjaGVzIGluY2x1ZGVk IGluIHRoaXMgUkZDLCBwcm9wb3NlIGEgbWVjaGFuaXNtIHdoaWNoIHdvdWxkIGhlbHANCj4gPiA+ IHdpdGggbWFuYWdpbmcgd2hpY2ggZHJpdmVycyByZWx5IG9uIGZvcmNlZnVsIGNvbmZpZ3VyYXRp b24gcmVzdG9yZS4NCj4gPiA+IERyaXZlcnMgY291bGQgYWR2ZXJ0aXNlIGlmIGZvcmNlZnVsIGNv bmZpZ3VyYXRpb24gcmVzdG9yZSBpcyBuZWVkZWQNCj4gPiA+IHRocm91Z2ggYFJURV9FVEhfREVW XypfRk9SQ0VfUkVTVE9SRWAgZGV2aWNlIGZsYWcuIElmIHRoaXMgZmxhZyBpcw0KPiA+ID4gc2V0 LCB0aGVuIHRoZSBkcml2ZXIgaW4gcXVlc3Rpb24gcmVxdWlyZXMgZXRoZGV2IHRvIGZvcmNlZnVs bHkgcmVzdG9yZQ0KPiA+IGNvbmZpZ3VyYXRpb24uDQo+ID4gPg0KPiA+DQo+ID4gT0sgdG8gdXNl IGZsYWcgZm9yIGl0LCBidXQgbm90IHN1cmUgYWJvdXQgdXNpbmcgJ2Rldl9pbmZvLT5kZXZfZmxh Z3MnDQo+ID4gKFJURV9FVEhfREVWXyopIGZvciB0aGlzLCBhcyB0aGlzIGZsYWcgaXMgc2hhcmVk IHdpdGggdXNlciBhbmQgdGhpcyBpcyBhbGwgZHBkaw0KPiA+IGludGVybmFsLg0KPiA+DQo+ID4g V2hhdCBhYm91dCB0byBoYXZlIGEgZGVkaWNhdGVkIGZsYWcgZm9yIGl0PyBXZSBjYW4gaGF2ZSBh IGRlZGljYXRlZCBzZXQgb2YgZmxhZw0KPiA+IHZhbHVlcyBmb3IgcmVzdG9yZS4NCj4gDQo+IEFn cmVlZC4gV2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhlIGZvbGxvd2luZz8NCg0KSW5zdGVhZCBv ZiBleHBvc2luZyB0aGF0LCBjYW4gd2UgcHJvYmFibHkgbWFrZSBpdCB0cmFuc3BhcmVudCB0byB0 aGUgdXNlcg0KYW5kIHByb2JhYmx5IGV0aGRldiBsYXllciB0b28/DQpNaWdodCBiZSB3ZSBjYW4g bW92ZSB0aGlzIHJlc3RvcmF0aW9uIGNvZGUgaW50byB0aGUgbmV3IGV0aGRldiBoZWxwZXIgZnVu Y3Rpb24sKGV0aGRldmRfdXNlcl9jb25maWdfcmVzdG9yZSgpICBvciBzbykNCnRoYXQgUE1EIGNh biBpbnZva2UgZHVyaW5nIGl0cyBkZXZfc3RhcnQoKSBpZiBuZWVkZWQ/DQogDQo+IA0KPiAjZGVm aW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX1BST01JU0NfRk9SQ0VfUkVTVE9SRSBSVEVfQklUMzIo MCkNCj4gI2RlZmluZSBSVEVfRVRIX0RFVl9JTlRFUk5BTF9BTExNVUxUSV9GT1JDRV9SRVNUT1JF IFJURV9CSVQzMigxKQ0KPiAjZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX01BQ19BRERSX0ZP UkNFX1JFU1RPUkUgUlRFX0JJVDMyKDIpDQo+IA0KPiBzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSB7 DQo+IAkvKiBzbmlwICovDQo+IA0KPiAJdWludDMyX3QgZGV2X2ZsYWdzOw0KPiANCj4gCS8qKg0K PiAJICogSW50ZXJuYWwgZGV2aWNlIGNhcGFiaWxpdGllcywgdXNlZCBvbmx5IGJ5IGV0aGRldiBs aWJyYXJ5Lg0KPiAJICogQ2VydGFpbiBmdW5jdGlvbmFsaXRpZXMgcHJvdmlkZWQgYnkgdGhlIGxp YnJhcnkgbWlnaHQgZW5hYmxlZC9kaXNhYmxlZCwNCj4gCSAqIGJhc2VkIG9uIGRyaXZlciBleHBv c2luZyBjZXJ0YWluIGNhcGFiaWxpdGllcy4NCj4gCSAqLw0KPiAJdWludDMyX3QgaW50ZXJuYWxf ZmxhZ3M7DQo+IA0KPiAJLyogc25pcCAqLw0KPiB9Ow0KPiANCj4gPiBBbHNvIHBlcmhhcHMgd2Ug aGF2ZSBnbyBpbnRvIGRldGFpbHMgd2hhdCBuZWVkcyB0byBiZSByZXN0b3JlZCBhZnRlciAnc3Rv cCcgYW5kDQo+ID4gd2hhdCBuZWVkcyB0byBiZSByZXN0b3JlZCBhZnRlciAncmVzZXQnIGFuZCB1 c2Ugc2ltaWxhciBtZWNoYW5pc20gZXRjLi4uDQo+IA0KPiBJIHRoaW5rIHdlIHNob3VsZCBsb29r IGludG8gdGhhdC4NCj4gQW55ICdjb2RpZmljYXRpb24nIG9mIHNlbWFudGljcyBiZXR3ZWVuIGRy aXZlcnMgYW5kIGV0aGRldiBsaWJyYXJ5IGlzIGdvb2QgaW4gbXkgb3Bpbmlvbi4NCj4gDQo+IEF0 IGxlYXN0IHJpZ2h0IG5vdywgZXRoZGV2IGRvZXMgbm90IGNoYW5nZSBhbnkgY29uZmlndXJhdGlv biBpbiAnc3RvcCcgYW5kICdyZXNldCcgZnJvbSB3aGF0IEkgc2VlLg0KPiBCdXQgdGhhdCdzIG9u IGxpYnJhcnkgc2lkZSBvbmx5Lg0KPiANCj4gPiA+IFRoaXMgd2F5LCBpZiB3ZSB3b3VsZCBjb25j bHVkZSB0aGF0IGl0IG1ha2VzIHNlbnNlIGZvciAuZGV2X3N0YXJ0KCkgdG8NCj4gPiA+IGhhbmRs ZSBhbGwgc3RhcnRpbmcgY29uZmlndXJhdGlvbiBhc3BlY3RzLCB3ZSBjb3VsZCB0cmFjayB3aGlj aCBkcml2ZXJzIHN0aWxsIHJlbHkNCj4gPiBvbiBjb25maWd1cmF0aW9uIHJlc3RvcmUuDQo+ID4g Pg0KPiA+ID4gRGFyaXVzeiBTb3Nub3dza2kgKDQpOg0KPiA+ID4gICBldGhkZXY6IHJld29yayBj b25maWcgcmVzdG9yZQ0KPiA+ID4gICBldGhkZXY6IG9taXQgcHJvbWlzY3VvdXMgY29uZmlnIHJl c3RvcmUgaWYgbm90IHJlcXVpcmVkDQo+ID4gPiAgIGV0aGRldjogb21pdCBhbGwgbXVsdGljYXN0 IGNvbmZpZyByZXN0b3JlIGlmIG5vdCByZXF1aXJlZA0KPiA+ID4gICBldGhkZXY6IG9taXQgTUFD IGFkZHJlc3MgcmVzdG9yZSBpZiBub3QgcmVxdWlyZWQNCj4gPiA+DQo+ID4gPiAgbGliL2V0aGRl di9ydGVfZXRoZGV2LmMgfCAzOSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0NCj4gPiA+ICBsaWIvZXRoZGV2L3J0ZV9ldGhkZXYuaCB8IDE4ICsrKysrKysrKysrKysrKysr Kw0KPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNTIgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMo LSkNCj4gPiA+DQo+ID4gPiAtLQ0KPiA+ID4gMi4zOS41DQo+ID4gPg0KDQo=