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 05C62A0A0E; Wed, 28 Apr 2021 12:59:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id BE68C410E0; Wed, 28 Apr 2021 12:59:28 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id E36DE40147 for ; Wed, 28 Apr 2021 12:59:27 +0200 (CEST) X-MimeOLE: Produced By Microsoft Exchange V6.5 Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Date: Wed, 28 Apr 2021 12:59:26 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35C6171A@smartserver.smartshare.dk> In-Reply-To: <5c60416a-b4b3-d002-99a8-55d7e1e1c825@huawei.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [dpdk-dev] [PATCH] eal: fix use wrong time API Thread-Index: Adc8GlngxRrdiiYtS/m06vZ90mcnfQAAif1g References: <1619597563-56716-1-git-send-email-humin29@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35C61719@smartserver.smartshare.dk> <5c60416a-b4b3-d002-99a8-55d7e1e1c825@huawei.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "fengchengwen" Cc: "Min Hu (Connor)" , , , , Subject: Re: [dpdk-dev] [PATCH] eal: fix use wrong time API 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 Sender: "dev" PiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIGZl bmdjaGVuZ3dlbg0KPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDI4LCAyMDIxIDEyOjM2IFBNDQo+ IA0KPiBPbiAyMDIxLzQvMjggMTc6MjQsIE1vcnRlbiBCcsO4cnVwIHdyb3RlOg0KPiA+PiBGcm9t OiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIE1pbiBIdSAo Q29ubm9yKQ0KPiA+PiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDI4LCAyMDIxIDEwOjEzIEFNDQo+ ID4+DQo+ID4+IEZyb206IENoZW5nd2VuIEZlbmcgPGZlbmdjaGVuZ3dlbkBodWF3ZWkuY29tPg0K PiA+Pg0KPiA+PiBDdXJyZW50bHksIHRoZSBtcCB1c2VzIGdldHRpbWVvZmRheSgpIEFQSSB0byBn ZXQgdGhlIHRpbWUsIGFuZCB1c2VkDQo+IGFzDQo+ID4+IHRpbWVvdXQgcGFyYW1ldGVyLg0KPiA+ Pg0KPiA+PiBCdXQgdGhlIHRpbWUgd2hpY2ggZ2V0cyBmcm9tIGdldHRpbWVvZmRheSgpIEFQSSBp c24ndCBtb25vdG9uaWNhbGx5DQo+ID4+IGluY3JlYXNpbmcuIFRoZSBwcm9jZXNzIG1heSBmYWls IGlmIHRoZSBzeXN0ZW0gdGltZSBpcyBjaGFuZ2VkLg0KPiA+Pg0KPiA+PiBUaGlzIGZpeGVzIGl0 IGJ5IHVzaW5nIGNsb2NrX2dldHRpbWUoKSBBUEkgd2l0aCBtb25vdG9uaWMNCj4gYXR0cmlidXRp b24uDQo+ID4+DQo+ID4+IEZpeGVzOiA3ODNiNmU1NDk3MWQgKCJlYWw6IGFkZCBzeW5jaHJvbm91 cyBtdWx0aS1wcm9jZXNzDQo+ID4+IGNvbW11bmljYXRpb24iKQ0KPiA+PiBGaXhlczogZjA1ZTI2 MDUxYzE1ICgiZWFsOiBhZGQgSVBDIGFzeW5jaHJvbm91cyByZXF1ZXN0IikNCj4gPj4gQ2M6IHN0 YWJsZUBkcGRrLm9yZw0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBDaGVuZ3dlbiBGZW5nIDxm ZW5nY2hlbmd3ZW5AaHVhd2VpLmNvbT4NCj4gPj4gU2lnbmVkLW9mZi1ieTogTWluIEh1IChDb25u b3IpIDxodW1pbjI5QGh1YXdlaS5jb20+DQo+ID4+IC0tLQ0KPiA+PiAgbGliL2VhbC9jb21tb24v ZWFsX2NvbW1vbl9wcm9jLmMgfCA0NSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiAt LS0NCj4gPj4gLS0tLS0tLS0NCj4gPj4gIDEgZmlsZSBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvY29tbW9u L2VhbF9jb21tb25fcHJvYy5jDQo+ID4+IGIvbGliL2VhbC9jb21tb24vZWFsX2NvbW1vbl9wcm9j LmMNCj4gPj4gaW5kZXggNmQxYWYzYy4uN2YwODgyNiAxMDA2NDQNCj4gPj4gLS0tIGEvbGliL2Vh bC9jb21tb24vZWFsX2NvbW1vbl9wcm9jLmMNCj4gPj4gKysrIGIvbGliL2VhbC9jb21tb24vZWFs X2NvbW1vbl9wcm9jLmMNCj4gPj4gQEAgLTQwLDYgKzQwLDEyIEBAIHN0YXRpYyBjaGFyIG1wX2Rp cl9wYXRoW1BBVEhfTUFYXTsgLyogVGhlDQo+IGRpcmVjdG9yeQ0KPiA+PiBwYXRoIGZvciBhbGwg bXAgc29ja2V0cyAqLw0KPiA+PiAgc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBtcF9tdXRleF9hY3Rp b24gPSBQVEhSRUFEX01VVEVYX0lOSVRJQUxJWkVSOw0KPiA+PiAgc3RhdGljIGNoYXIgcGVlcl9u YW1lW1BBVEhfTUFYXTsNCj4gPj4NCj4gPj4gKyNpZmRlZiBDTE9DS19NT05PVE9OSUNfUkFXIC8q IERlZmluZWQgaW4gZ2xpYmMgYml0cy90aW1lLmggKi8NCj4gPj4gKyNkZWZpbmUgQ0xPQ0tfVFlQ RV9JRCBDTE9DS19NT05PVE9OSUNfUkFXDQo+ID4+ICsjZWxzZQ0KPiA+PiArI2RlZmluZSBDTE9D S19UWVBFX0lEIENMT0NLX01PTk9UT05JQw0KPiA+PiArI2VuZGlmDQo+ID4NCj4gPiBKdXN0IG91 dCBvZiBjdXJpb3NpdHk6IFdoeSBkbyB5b3UgcHJlZmVyIENMT0NLX01PTk9UT05JQ19SQVcgb3Zl cg0KPiBDTE9DS19NT05PVE9OSUM/DQo+ID4NCj4gDQo+IHRoZXJlIG1heSBzbGlnaHRseSBkaWZm ZXJlbmNlLCB0aGUgQ0xPQ0tfTU9OT1RPTklDX1JBVyBpcyB0b3RhbGx5IGxvY2FsDQo+IG9zY2ls bGF0b3INCj4gKHBscyBzZWUgYmVsb3cgbGluayksIGp1c3QgcHJlZmVycmVkIGluIGVuZ2luZWVy aW5nIHByYWN0aWNlLg0KPiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xNDI3 MDMwMC93aGF0LWlzLXRoZS1kaWZmZXJlbmNlLQ0KPiBiZXR3ZWVuLWNsb2NrLW1vbm90b25pYy1j bG9jay1tb25vdG9uaWMtcmF3DQoNCkludGVyZXN0aW5nIGxpbmshIEZvbGxvd2luZyB0aGUgdHJl YWRzIHRoZXJlLCBpdCBsb29rcyBsaWtlIENMT0NLX01PTk9UT05JQyBoYWQgYSBidWcgaW4gc29t ZSBvbGQga2VybmVsIHZlcnNpb25zLCB3aGVyZSBpbiBjZXJ0YWluIGNpcmN1bXN0YW5jZXMgaXQg Y291bGQganVtcCBzbGlnaHRseSBiYWNrd2FyZHMuDQoNClRoYXQgYnVnIHNlZW1zIHRvIGhhdmUg YmVlbiBmaXhlZCwgc28gQ0xPQ0tfTU9OT1RPTklDIHNob3VsZCBiZSBzYWZlIHRvIHVzZS4gU291 cmNlOiBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20vc2hvd19idWcuY2dpP2lkPTQ0ODQ0OQ0K DQo+IA0KPiA+PiArDQo+ID4+ICBzdHJ1Y3QgYWN0aW9uX2VudHJ5IHsNCj4gPj4gIAlUQUlMUV9F TlRSWShhY3Rpb25fZW50cnkpIG5leHQ7DQo+ID4+ICAJY2hhciBhY3Rpb25fbmFtZVtSVEVfTVBf TUFYX05BTUVfTEVOXTsNCj4gPj4gQEAgLTQ5MCwxNCArNDk2LDggQEAgYXN5bmNfcmVwbHlfaGFu ZGxlX3RocmVhZF91bnNhZmUodm9pZCAqYXJnKQ0KPiA+PiAgCXN0cnVjdCBwZW5kaW5nX3JlcXVl c3QgKnJlcSA9IChzdHJ1Y3QgcGVuZGluZ19yZXF1ZXN0ICopYXJnOw0KPiA+PiAgCWVudW0gYXN5 bmNfYWN0aW9uIGFjdGlvbjsNCj4gPj4gIAlzdHJ1Y3QgdGltZXNwZWMgdHNfbm93Ow0KPiA+PiAt CXN0cnVjdCB0aW1ldmFsIG5vdzsNCj4gPj4NCj4gPj4gLQlpZiAoZ2V0dGltZW9mZGF5KCZub3cs IE5VTEwpIDwgMCkgew0KPiA+PiAtCQlSVEVfTE9HKEVSUiwgRUFMLCAiQ2Fubm90IGdldCBjdXJy ZW50IHRpbWVcbiIpOw0KPiA+PiAtCQlnb3RvIG5vX3RyaWdnZXI7DQo+ID4+IC0JfQ0KPiA+PiAt CXRzX25vdy50dl9uc2VjID0gbm93LnR2X3VzZWMgKiAxMDAwOw0KPiA+PiAtCXRzX25vdy50dl9z ZWMgPSBub3cudHZfc2VjOw0KPiA+PiArCWNsb2NrX2dldHRpbWUoQ0xPQ0tfVFlQRV9JRCwgJnRz X25vdyk7DQo+ID4+DQo+ID4+ICAJYWN0aW9uID0gcHJvY2Vzc19hc3luY19yZXF1ZXN0KHJlcSwg JnRzX25vdyk7DQo+ID4+DQo+ID4+IEBAIC04OTYsNiArODk2LDcgQEAgbXBfcmVxdWVzdF9zeW5j KGNvbnN0IGNoYXIgKmRzdCwgc3RydWN0DQo+IHJ0ZV9tcF9tc2cNCj4gPj4gKnJlcSwNCj4gPj4g IAkgICAgICAgc3RydWN0IHJ0ZV9tcF9yZXBseSAqcmVwbHksIGNvbnN0IHN0cnVjdCB0aW1lc3Bl YyAqdHMpDQo+ID4+ICB7DQo+ID4+ICAJaW50IHJldDsNCj4gPj4gKwlwdGhyZWFkX2NvbmRhdHRy X3QgYXR0cjsNCj4gPj4gIAlzdHJ1Y3QgcnRlX21wX21zZyBtc2csICp0bXA7DQo+ID4+ICAJc3Ry dWN0IHBlbmRpbmdfcmVxdWVzdCBwZW5kaW5nX3JlcSwgKmV4aXN0Ow0KPiA+Pg0KPiA+PiBAQCAt OTA0LDcgKzkwNSw5IEBAIG1wX3JlcXVlc3Rfc3luYyhjb25zdCBjaGFyICpkc3QsIHN0cnVjdA0K PiBydGVfbXBfbXNnDQo+ID4+ICpyZXEsDQo+ID4+ICAJc3RybGNweShwZW5kaW5nX3JlcS5kc3Qs IGRzdCwgc2l6ZW9mKHBlbmRpbmdfcmVxLmRzdCkpOw0KPiA+PiAgCXBlbmRpbmdfcmVxLnJlcXVl c3QgPSByZXE7DQo+ID4+ICAJcGVuZGluZ19yZXEucmVwbHkgPSAmbXNnOw0KPiA+PiAtCXB0aHJl YWRfY29uZF9pbml0KCZwZW5kaW5nX3JlcS5zeW5jLmNvbmQsIE5VTEwpOw0KPiA+PiArCXB0aHJl YWRfY29uZGF0dHJfaW5pdCgmYXR0cik7DQo+ID4+ICsJcHRocmVhZF9jb25kYXR0cl9zZXRjbG9j aygmYXR0ciwgQ0xPQ0tfTU9OT1RPTklDKTsNCj4gPg0KPiA+IFNob3VsZG4ndCBDTE9DS19NT05P VE9OSUMgYmUgQ0xPQ0tfVFlQRV9JRCBoZXJlIHRvbz8NCj4gDQo+IEFmdGVyIHJlYWRpbmcgdGhl IHNvdXJjZSBjb2RlLCBpdCBvbmx5IHN1cHBvcnQgQ0xPQ0tfTU9OT1RPTklDIGFuZA0KPiBDTE9D S19SRUFMVElNRQ0KPiAocGxzIHNlZSBiZWxvdyBsaW5rKSwgc28gY2FudCd0IHVzZSBDTE9DS19U WVBFX0lEIGhlcmUuDQo+IGh0dHBzOi8vY29kZS53b2JvcS5vcmcvdXNlcnNwYWNlL2dsaWJjL25w dGwvcHRocmVhZF9jb25kYXR0cl9zZXRjbG9jay5jDQo+IC5odG1sI3B0aHJlYWRfY29uZGF0dHJf c2V0Y2xvY2sNCj4gDQo+IHdpbGwgZml4IGluIHYyIGJ5IG1ha2UgQ0xPQ0tfVFlQRV9JRCBlcXVh bCBDTE9DS19NT05PVE9OSUMuDQoNCk9LLCB0aGVuIGp1c3QgZ2V0IHJpZCBvZiB0aGUgQ0xPQ0tf VFlQRV9JRCBkZWZpbml0aW9uIGFuZCB1c2UgQ0xPQ0tfTU9OT1RPTklDIGluc3RlYWQuDQoNCj4g DQo+IHRoYW5rcw0KPiANCj4gPg0KPiA+PiArCXB0aHJlYWRfY29uZF9pbml0KCZwZW5kaW5nX3Jl cS5zeW5jLmNvbmQsICZhdHRyKTsNCj4gPj4NCj4gPj4gIAlleGlzdCA9IGZpbmRfcGVuZGluZ19y ZXF1ZXN0KGRzdCwgcmVxLT5uYW1lKTsNCj4gPj4gIAlpZiAoZXhpc3QpIHsNCj4gPj4gQEAgLTk2 Nyw4ICs5NzAsNyBAQCBydGVfbXBfcmVxdWVzdF9zeW5jKHN0cnVjdCBydGVfbXBfbXNnICpyZXEs DQo+IHN0cnVjdA0KPiA+PiBydGVfbXBfcmVwbHkgKnJlcGx5LA0KPiA+PiAgCWludCBkaXJfZmQs IHJldCA9IC0xOw0KPiA+PiAgCURJUiAqbXBfZGlyOw0KPiA+PiAgCXN0cnVjdCBkaXJlbnQgKmVu dDsNCj4gPj4gLQlzdHJ1Y3QgdGltZXZhbCBub3c7DQo+ID4+IC0Jc3RydWN0IHRpbWVzcGVjIGVu ZDsNCj4gPj4gKwlzdHJ1Y3QgdGltZXNwZWMgbm93LCBlbmQ7DQo+ID4+ICAJY29uc3Qgc3RydWN0 IGludGVybmFsX2NvbmZpZyAqaW50ZXJuYWxfY29uZiA9DQo+ID4+ICAJCWVhbF9nZXRfaW50ZXJu YWxfY29uZmlndXJhdGlvbigpOw0KPiA+Pg0KPiA+PiBAQCAtOTg3LDE1ICs5ODksMTAgQEAgcnRl X21wX3JlcXVlc3Rfc3luYyhzdHJ1Y3QgcnRlX21wX21zZyAqcmVxLA0KPiA+PiBzdHJ1Y3QgcnRl X21wX3JlcGx5ICpyZXBseSwNCj4gPj4gIAkJcmV0dXJuIC0xOw0KPiA+PiAgCX0NCj4gPj4NCj4g Pj4gLQlpZiAoZ2V0dGltZW9mZGF5KCZub3csIE5VTEwpIDwgMCkgew0KPiA+PiAtCQlSVEVfTE9H KEVSUiwgRUFMLCAiRmFpbGVkIHRvIGdldCBjdXJyZW50IHRpbWVcbiIpOw0KPiA+PiAtCQlydGVf ZXJybm8gPSBlcnJubzsNCj4gPj4gLQkJZ290byBlbmQ7DQo+ID4+IC0JfQ0KPiA+PiAtDQo+ID4+ IC0JZW5kLnR2X25zZWMgPSAobm93LnR2X3VzZWMgKiAxMDAwICsgdHMtPnR2X25zZWMpICUgMTAw MDAwMDAwMDsNCj4gPj4gKwljbG9ja19nZXR0aW1lKENMT0NLX1RZUEVfSUQsICZub3cpOw0KPiA+ PiArCWVuZC50dl9uc2VjID0gKG5vdy50dl9uc2VjICsgdHMtPnR2X25zZWMpICUgMTAwMDAwMDAw MDsNCj4gPj4gIAllbmQudHZfc2VjID0gbm93LnR2X3NlYyArIHRzLT50dl9zZWMgKw0KPiA+PiAt CQkJKG5vdy50dl91c2VjICogMTAwMCArIHRzLT50dl9uc2VjKSAvIDEwMDAwMDAwMDA7DQo+ID4+ ICsJCQkobm93LnR2X25zZWMgKyB0cy0+dHZfbnNlYykgLyAxMDAwMDAwMDAwOw0KPiA+Pg0KPiA+ PiAgCS8qIGZvciBzZWNvbmRhcnkgcHJvY2Vzcywgc2VuZCByZXF1ZXN0IHRvIHRoZSBwcmltYXJ5 IHByb2Nlc3MNCj4gPj4gb25seSAqLw0KPiA+PiAgCWlmIChydGVfZWFsX3Byb2Nlc3NfdHlwZSgp ID09IFJURV9QUk9DX1NFQ09OREFSWSkgew0KPiA+PiBAQCAtMTA2OSw3ICsxMDY2LDcgQEAgcnRl X21wX3JlcXVlc3RfYXN5bmMoc3RydWN0IHJ0ZV9tcF9tc2cgKnJlcSwNCj4gPj4gY29uc3Qgc3Ry dWN0IHRpbWVzcGVjICp0cywNCj4gPj4gIAlpbnQgZGlyX2ZkLCByZXQgPSAwOw0KPiA+PiAgCURJ UiAqbXBfZGlyOw0KPiA+PiAgCXN0cnVjdCBkaXJlbnQgKmVudDsNCj4gPj4gLQlzdHJ1Y3QgdGlt ZXZhbCBub3c7DQo+ID4+ICsJc3RydWN0IHRpbWVzcGVjIG5vdzsNCj4gPj4gIAlzdHJ1Y3QgdGlt ZXNwZWMgKmVuZDsNCj4gPj4gIAlib29sIGR1bW15X3VzZWQgPSBmYWxzZTsNCj4gPj4gIAljb25z dCBzdHJ1Y3QgaW50ZXJuYWxfY29uZmlnICppbnRlcm5hbF9jb25mID0NCj4gPj4gQEAgLTEwODYs MTEgKzEwODMsNiBAQCBydGVfbXBfcmVxdWVzdF9hc3luYyhzdHJ1Y3QgcnRlX21wX21zZyAqcmVx LA0KPiA+PiBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKnRzLA0KPiA+PiAgCQlyZXR1cm4gLTE7DQo+ ID4+ICAJfQ0KPiA+Pg0KPiA+PiAtCWlmIChnZXR0aW1lb2ZkYXkoJm5vdywgTlVMTCkgPCAwKSB7 DQo+ID4+IC0JCVJURV9MT0coRVJSLCBFQUwsICJGYWlsZWQgdG8gZ2V0IGN1cnJlbnQgdGltZVxu Iik7DQo+ID4+IC0JCXJ0ZV9lcnJubyA9IGVycm5vOw0KPiA+PiAtCQlyZXR1cm4gLTE7DQo+ID4+ IC0JfQ0KPiA+PiAgCWNvcHkgPSBjYWxsb2MoMSwgc2l6ZW9mKCpjb3B5KSk7DQo+ID4+ICAJZHVt bXkgPSBjYWxsb2MoMSwgc2l6ZW9mKCpkdW1teSkpOw0KPiA+PiAgCXBhcmFtID0gY2FsbG9jKDEs IHNpemVvZigqcGFyYW0pKTsNCj4gPj4gQEAgLTExMDgsOSArMTEwMCwxMCBAQCBydGVfbXBfcmVx dWVzdF9hc3luYyhzdHJ1Y3QgcnRlX21wX21zZyAqcmVxLA0KPiA+PiBjb25zdCBzdHJ1Y3QgdGlt ZXNwZWMgKnRzLA0KPiA+PiAgCWVuZCA9ICZwYXJhbS0+ZW5kOw0KPiA+PiAgCXJlcGx5ID0gJnBh cmFtLT51c2VyX3JlcGx5Ow0KPiA+Pg0KPiA+PiAtCWVuZC0+dHZfbnNlYyA9IChub3cudHZfdXNl YyAqIDEwMDAgKyB0cy0+dHZfbnNlYykgJSAxMDAwMDAwMDAwOw0KPiA+PiArCWNsb2NrX2dldHRp bWUoQ0xPQ0tfVFlQRV9JRCwgJm5vdyk7DQo+ID4+ICsJZW5kLT50dl9uc2VjID0gKG5vdy50dl9u c2VjICsgdHMtPnR2X25zZWMpICUgMTAwMDAwMDAwMDsNCj4gPj4gIAllbmQtPnR2X3NlYyA9IG5v dy50dl9zZWMgKyB0cy0+dHZfc2VjICsNCj4gPj4gLQkJCShub3cudHZfdXNlYyAqIDEwMDAgKyB0 cy0+dHZfbnNlYykgLyAxMDAwMDAwMDAwOw0KPiA+PiArCQkJKG5vdy50dl9uc2VjICsgdHMtPnR2 X25zZWMpIC8gMTAwMDAwMDAwMDsNCj4gPj4gIAlyZXBseS0+bmJfc2VudCA9IDA7DQo+ID4+ICAJ cmVwbHktPm5iX3JlY2VpdmVkID0gMDsNCj4gPj4gIAlyZXBseS0+bXNncyA9IE5VTEw7DQo+ID4+ IC0tDQo+ID4+IDIuNy40DQo+ID4+DQo+ID4NCj4gDQoNCg==