From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web09.13146.1582890609104484454 for ; Fri, 28 Feb 2020 03:50:09 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: liming.gao@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Feb 2020 03:50:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,495,1574150400"; d="scan'208";a="285652060" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by FMSMGA003.fm.intel.com with ESMTP; 28 Feb 2020 03:50:08 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 28 Feb 2020 03:50:08 -0800 Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by SHSMSX606.ccr.corp.intel.com (10.109.6.216) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 28 Feb 2020 19:50:05 +0800 Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.1713.004; Fri, 28 Feb 2020 19:50:05 +0800 From: "Liming Gao" To: "Rabeda, Maciej" , "devel@edk2.groups.io" , Laszlo Ersek , "Kinney, Michael D" , Andrew Fish , "Leif Lindholm (Linaro address)" CC: "Ni, Ray" , "Gao, Zhichao" , "Armour, Nicholas" , "Fu, Siyuan" , "Wu, Jiaxin" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH v1] ShellPkg: Fix 'ping' command Ip4 receive flow. Thread-Topic: [edk2-devel] [PATCH v1] ShellPkg: Fix 'ping' command Ip4 receive flow. Thread-Index: AQHV7V1lV4ffxVHDRU2SAtogmqLGr6gufvSAgABKLwCAASF4kIAADKGAgACGpYA= Date: Fri, 28 Feb 2020 11:50:05 +0000 Message-ID: <71763e1633e3494ea2e3daca396080f2@intel.com> References: <20200227110212.1070-1-maciej.rabeda@linux.intel.com> <4dcf2f0b-c86e-7533-3428-ad07e9129f2d@redhat.com> <3e3521ab1a17472a921f238db1f8dd9b@intel.com> <03ff9f49-f383-1fcf-bf1e-37a651521933@linux.intel.com> In-Reply-To: <03ff9f49-f383-1fcf-bf1e-37a651521933@linux.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.2.0.6 dlp-product: dlpe-windows dlp-reaction: no-action x-originating-ip: [10.239.127.36] MIME-Version: 1.0 Return-Path: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 TWFjaWVqOg0KICBJIHNlZSB5b3Ugc3VibWl0IHRoZSBwYXRjaC4gU28sIHlvdSBhcmUgaW4gdGhl IGxvb3AuIEkgZG9uJ3QgaW52aXRlIHlvdSBhZ2Fpbi4g8J+YiiANCiAgDQogIFllcy4gSSBhbHNv IHdhbnQgdG8gZ2V0IHlvdXIgb3BpbmlvbiBmb3IgdGhpcyBjaGFuZ2UuIERvIHlvdSB0aGluayB3 aGV0aGVyIHRoaXMgZml4IGlzIGluIENWRSBzY29wZT8gSWYgbm8sIHRoaXMgY2hhbmdlIHdpbGwg YmUgbWVyZ2VkIGFmdGVyIHRoaXMgc3RhYmxlIHRhZyAyMDIwMDIuIElzIGl0IE9LIHRvIHlvdT8N Cg0KVGhhbmtzDQpMaW1pbmcNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTog UmFiZWRhLCBNYWNpZWogPG1hY2llai5yYWJlZGFAbGludXguaW50ZWwuY29tPg0KPiBTZW50OiBG cmlkYXksIEZlYnJ1YXJ5IDI4LCAyMDIwIDc6NDIgUE0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBHYW8sIExpbWluZyA8bGltaW5nLmdhb0BpbnRlbC5jb20+OyBMYXN6bG8gRXJzZWsgPGxl cnNla0ByZWRoYXQuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT47IExlaWYgTGluZGhvbG0g KExpbmFybyBhZGRyZXNzKSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiBDYzogTmksIFJh eSA8cmF5Lm5pQGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29t PjsgQXJtb3VyLCBOaWNob2xhcyA8bmljaG9sYXMuYXJtb3VyQGludGVsLmNvbT47IEZ1LCBTaXl1 YW4NCj4gPHNpeXVhbi5mdUBpbnRlbC5jb20+OyBXdSwgSmlheGluIDxqaWF4aW4ud3VAaW50ZWwu Y29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSCB2MV0gU2hlbGxQa2c6IEZp eCAncGluZycgY29tbWFuZCBJcDQgcmVjZWl2ZSBmbG93Lg0KPiANCj4gTGFzemxvLA0KPiANCj4g VGhhbmtzIGZvciB0aGUgZGV0YWlsZWQgcmVzcG9uc2Ugb24gdGhlIHBhdGNoLiBBbHdheXMgaGFw cHkgdG8gbGVhcm4NCj4gYWJvdXQgc3R1ZmYgZnJvbSB0aGUgcGFzdC4NCj4gDQo+IExpbWluZywN Cj4gDQo+IEkgYW0gY3VycmVudGx5IHRoZSBtYWludGFpbmVyIG9mIE5ldHdvcmtQa2cgOikgSWYg eW91IHJlcXVpcmUgYWRkaXRpb25hbA0KPiBmZWVkYmFjayBmcm9tIFNpeXVhbiBvci9hbmQgSmlh eGluLCB0aGF0J3Mgb2suDQo+IFBsZWFzZSBsZXQgbWUga25vdyBpZiBhbnkgY29ycmVjdGlvbnMg dG8gdGhlIHBhdGNoIChsaWtlIENWRSBub3RlKSBhcmUNCj4gcmVxdWlyZWQgZnJvbSB5b3VyIHBv aW50IG9mIHZpZXcuDQo+IA0KPiBUaGFua3MsDQo+IE1hY2llag0KPiANCj4gT24gMjgtRmViLTIw IDAzOjU5LCBMaW1pbmcgR2FvIHdyb3RlOg0KPiA+IEFsc28gaW5jbHVkZSBOZXR3b3JrUGtnIHJl dmlld2VyIHRvIGNvbGxlY3QgdGhlIGZlZWRiYWNrIGZvciB0aGlzIGNoYW5nZS4NCj4gPg0KPiA+ IFRoYW5rcw0KPiA+IExpbWluZw0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ PiBGcm9tOiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiA+PiBTZW50OiBGcmlk YXksIEZlYnJ1YXJ5IDI4LCAyMDIwIDE6NDAgQU0NCj4gPj4gVG86IGRldmVsQGVkazIuZ3JvdXBz LmlvOyBtYWNpZWoucmFiZWRhQGxpbnV4LmludGVsLmNvbTsgR2FvLCBMaW1pbmcgPGxpbWluZy5n YW9AaW50ZWwuY29tPjsgS2lubmV5LCBNaWNoYWVsIEQNCj4gPj4gPG1pY2hhZWwuZC5raW5uZXlA aW50ZWwuY29tPjsgQW5kcmV3IEZpc2ggPGFmaXNoQGFwcGxlLmNvbT47IExlaWYgTGluZGhvbG0g KExpbmFybyBhZGRyZXNzKSA8bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnPg0KPiA+PiBDYzogTmks IFJheSA8cmF5Lm5pQGludGVsLmNvbT47IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwu Y29tPjsgQXJtb3VyLCBOaWNob2xhcyA8bmljaG9sYXMuYXJtb3VyQGludGVsLmNvbT4NCj4gPj4g U3ViamVjdDogUmU6IFtlZGsyLWRldmVsXSBbUEFUQ0ggdjFdIFNoZWxsUGtnOiBGaXggJ3Bpbmcn IGNvbW1hbmQgSXA0IHJlY2VpdmUgZmxvdy4NCj4gPj4NCj4gPj4gT24gMDIvMjcvMjAgMTQ6MTQs IExhc3psbyBFcnNlayB3cm90ZToNCj4gPj4+ICgrTGltaW5nIGFuZCBzdGV3YXJkczsgQ0MgTmlj aykNCj4gPj4+DQo+ID4+PiBPbiAwMi8yNy8yMCAxMjowMiwgTWFjaWVqIFJhYmVkYSB3cm90ZToN Cj4gPj4+PiBSRUY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93X2J1Zy5jZ2k/ aWQ9MjAzMg0KPiA+Pj4+DQo+ID4+Pj4gJ3BpbmcnIGNvbW1hbmQncyByZWNlaXZlIGZsb3cgdXRp bGl6ZXMgYSBzaW5nbGUgUnggdG9rZW4gd2hpY2ggaXQNCj4gPj4+PiBhdHRlbXB0cyB0byByZXVz ZSBiZWZvcmUgcmVjeWNsaW5nIHRoZSBwcmV2aW91c2x5IHJlY2VpdmVkIHBhY2tldC4NCj4gPj4+ PiBUaGlzIGNhdXNlcyBhIHNpdHVhdGlvbiB3aGVyZSB1bmRlciBJQ01QIHRyYWZmaWMsDQo+ID4+ Pj4gUGluZzZPbkVjaG9SZXBseVJlY2VpdmVkKCkgZnVuY3Rpb24gd2lsbCByZWNlaXZlIGFuIGFs cmVhZHkNCj4gPj4+PiByZWN5Y2xlZCBwYWNrZXQgd2l0aCBFRklfU1VDQ0VTUyB0b2tlbiBzdGF0 dXMgYW5kIGZpbmFsbHkNCj4gPj4+PiBkZXJlZmVyZW5jZSBpbnZhbGlkIHBvaW50ZXJzIGZyb20g UnhEYXRhIHN0cnVjdHVyZS4NCj4gPj4+Pg0KPiA+Pj4+IENjOiBSYXkgTmkgPHJheS5uaUBpbnRl bC5jb20+DQo+ID4+Pj4gQ2M6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+ ID4+Pj4gU2lnbmVkLW9mZi1ieTogTWFjaWVqIFJhYmVkYSA8bWFjaWVqLnJhYmVkYUBsaW51eC5p bnRlbC5jb20+DQo+ID4+Pj4gLS0tDQo+ID4+Pj4gICBTaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVs bE5ldHdvcmsxQ29tbWFuZHNMaWIvUGluZy5jIHwgOSArKysrKy0tLS0NCj4gPj4+PiAgIDEgZmls ZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pDQo+ID4+Pj4NCj4gPj4+ PiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxOZXR3b3JrMUNvbW1hbmRz TGliL1BpbmcuYyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsTmV0d29yazFDb21tYW5kc0xp Yi9QaW5nLmMNCj4gPj4+PiBpbmRleCAyMzU2N2ZhMmMxYmIuLmEzZmEzMjUxNTE5MiAxMDA2NDQN Cj4gPj4+PiAtLS0gYS9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbE5ldHdvcmsxQ29tbWFuZHNM aWIvUGluZy5jDQo+ID4+Pj4gKysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxOZXR3b3Jr MUNvbW1hbmRzTGliL1BpbmcuYw0KPiA+Pj4+IEBAIC02MTQsNiArNjE0LDExIEBAIFBpbmc2T25F Y2hvUmVwbHlSZWNlaXZlZCAoDQo+ID4+Pj4NCj4gPj4+PiAgIE9OX0VYSVQ6DQo+ID4+Pj4NCj4g Pj4+PiArICAvLw0KPiA+Pj4+ICsgIC8vIFJlY3ljbGUgdGhlIHBhY2tldCBiZWZvcmUgcmV1c2lu ZyBSeFRva2VuDQo+ID4+Pj4gKyAgLy8NCj4gPj4+PiArICBnQlMtPlNpZ25hbEV2ZW50IChQcml2 YXRlLT5JcENob2ljZSA9PSBQSU5HX0lQX0NIT0lDRV9JUDY/KChFRklfSVA2X1JFQ0VJVkVfREFU QSopUHJpdmF0ZS0+UnhUb2tlbi5QYWNrZXQuUnhEYXRhKS0NCj4gPj4+IFJlY3ljbGVTaWduYWw6 KChFRklfSVA0X1JFQ0VJVkVfREFUQSopUHJpdmF0ZS0+UnhUb2tlbi5QYWNrZXQuUnhEYXRhKS0+ UmVjeWNsZVNpZ25hbCk7DQo+ID4+Pj4gKw0KPiA+Pj4+ICAgICBpZiAoUHJpdmF0ZS0+UnhDb3Vu dCA8IFByaXZhdGUtPlNlbmROdW0pIHsNCj4gPj4+PiAgICAgICAvLw0KPiA+Pj4+ICAgICAgIC8v IENvbnRpbnVlIHRvIHJlY2VpdmUgaWNtcCBlY2hvIHJlcGx5IHBhY2tldHMuDQo+ID4+Pj4gQEAg LTYzMiwxMCArNjM3LDYgQEAgT05fRVhJVDoNCj4gPj4+PiAgICAgICAvLw0KPiA+Pj4+ICAgICAg IFByaXZhdGUtPlN0YXR1cyA9IEVGSV9TVUNDRVNTOw0KPiA+Pj4+ICAgICB9DQo+ID4+Pj4gLSAg Ly8NCj4gPj4+PiAtICAvLyBTaW5nYWwgdG8gcmVjeWNsZSB0aGUgZWFjaCByeGRhdGEgaGVyZSwg bm90IGF0IHRoZSBlbmQgb2YgcHJvY2Vzcy4NCj4gPj4+PiAtICAvLw0KPiA+Pj4+IC0gIGdCUy0+ U2lnbmFsRXZlbnQgKFByaXZhdGUtPklwQ2hvaWNlID09IFBJTkdfSVBfQ0hPSUNFX0lQNj8oKEVG SV9JUDZfUkVDRUlWRV9EQVRBKilQcml2YXRlLT5SeFRva2VuLlBhY2tldC5SeERhdGEpLQ0KPiA+ Pj4gUmVjeWNsZVNpZ25hbDooKEVGSV9JUDRfUkVDRUlWRV9EQVRBKilQcml2YXRlLT5SeFRva2Vu LlBhY2tldC5SeERhdGEpLT5SZWN5Y2xlU2lnbmFsKTsNCj4gPj4+PiAgIH0NCj4gPj4+Pg0KPiA+ Pj4+ICAgLyoqDQo+ID4+Pj4NCj4gPj4+ICgxKSBUaGlzIHBhdGNoIHByb3Bvc2VzIHRvIGZpeCBv bmUgb2YgdGhlIEJacyAoMjAzMikgdGhhdCBmYWxsIHVuZGVyDQo+ID4+PiBDVkUtMjAxOS0xNDU1 OSAoam9pbnQgdHJhY2tlcjogMjU1MCkuDQo+ID4+Pg0KPiA+Pj4gQ29uc2VxdWVudGx5Og0KPiA+ Pj4NCj4gPj4+ICgxYSkgRG8gd2Ugd2FudCB0byBpbmNsdWRlIHRoaXMgaW4gdGhlIHVwY29taW5n IHN0YWJsZSB0YWc/DQo+ID4+Pg0KPiA+Pj4gSWYgc28sIHdlIG1pZ2h0IHdhbnQgdG8gZXh0ZW5k IHRoZSBoYXJkIGZlYXR1cmUgZnJlZXplIGJ5IGEgZmV3IGRheXMuDQo+ID4+Pg0KPiA+Pj4gKDFi KSBQbGVhc2UgYXBwZW5kIHRoZSBzdHJpbmcgIiAoQ1ZFLTIwMTktMTQ1NTkpIiAtLSBub3RlIHRo ZSBzZXBhcmF0aW5nDQo+ID4+PiBzcGFjZSEgLS0gdG8gdGhlIHN1YmplY3QgbGluZS4NCj4gPj4+ DQo+ID4+PiAoMikgSG93ZXZlcjogSSByZW1lbWJlciBmcm9tIGFuIGVhcmxpZXIgQnVnemlsbGEg ZW50cnkgKGNhbid0IHRlbGwNCj4gPj4+IG9mZi1oYW5kLCB3aGljaCBvbmUsIHNvcnJ5KSB0aGF0 IFNoZWxsUGtnIGlzc3VlcyBhcmUgKm5ldmVyKiBjb25zaWRlcmVkDQo+ID4+PiBDVkUtd29ydGh5 LCBiZWNhdXNlIHRoZSBzaGVsbCBpcyBub3QgY29uc2lkZXJlZCBhICJwcm9kdWN0aW9uIGVsZW1l bnQiDQo+ID4+PiBvZiB0aGUgVUVGSSBib290IHBhdGguDQo+ID4+IEkgbWlzcmVtZW1iZXJlZCAt LSB0aGVyZSBpcyBpbmRlZWQgYSBjb21tZW50IGxpa2UgdGhhdCwgaW4gdGhlIFRpYW5vQ29yZQ0K PiA+PiBidWd6aWxsYSwgYnV0IGl0IGRvZXMgbm90IHJlZmVyIHRvIFNoZWxsUGtnLiBJdCByZWZl cnMgdG8gU3RkTGliICh3aGljaA0KPiA+PiBoYXMgc2luY2UgYmVlbiBzcGxpdCBvZmYgdG8gdGhl IGVkazItbGliYyBwcm9qZWN0KToNCj4gPj4NCj4gPj4gaHR0cHM6Ly9idWd6aWxsYS50aWFub2Nv cmUub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTEwI2MxDQo+ID4+DQo+ID4+ICAgICAgU3RkTGliIGlz IHN1cHBvc2VkIHRvIGJlIHVzZWQgb25seSBieSBhcHBsaWNhdGlvbnMgaW4gc2hlbGwsIGFsbCBv Zg0KPiA+PiAgICAgIHdoaWNoIGFyZSBtZWFudCBmb3IgZGVidWcsIGRpYWdub3NpcyBhbmQvb3Ig dGVzdCBwdXJwb3NlLCBub3QgZm9yDQo+ID4+ICAgICAgcHJvZHVjdCBVRUZJIEJJT1MuIEFueSBp c3N1ZSBpbiBpdCB3aWxsIG5vdCBiZSB0YWtlbiBhcyBzZWN1cml0eQ0KPiA+PiAgICAgIGlzc3Vl IGJ1dCBqdXN0IG5vcm1hbCBidWcuDQo+ID4+DQo+ID4+IFNvcnJ5IGFib3V0IGNhdXNpbmcgY29u ZnVzaW9uLiBTbywgdGhlIFNoZWxsUGtnIG1haW50YWluZXJzIHNob3VsZA0KPiA+PiBkZWNpZGUg d2hhdCB0byBkbyBhYm91dCB0aGlzIGJ1ZyAoa2VlcCBpdCB1bmRlciB0aGUgQ1ZFIHNjb3BlIHZz Lg0KPiA+PiBleGNsdWRlIGl0IGZyb20gdGhlIENWRSBzY29wZTsgYW5kIHRoZW4sIHByb3Bvc2Ug aXQgZm9yIHRoZSBzdGFibGUgdGFnDQo+ID4+IG9yIG1lcmdlIGl0IGFmdGVyd2FyZHMpLg0KPiA+ Pg0KPiA+PiBPbmUgZGF0YSBwb2ludDogdGhlIGJ1ZyBhcHBlYXJzIHRvIGdvIGJhY2sgdG8gdGhl IGluY2VwdGlvbiBvZiB0aGUgUGluZw0KPiA+PiBjb21tYW5kLCBpbiBoaXN0b3JpY2FsIGNvbW1p dCA2OGZiMDUyNzJiNDUgKCJBZGQgTmV0d29yazEgcHJvZmlsZS4iLA0KPiA+PiAyMDExLTAzLTI1 KS4gSXQncyBub3QgYSBuZXcgYnVnLCBpdCBzZWVtcy4NCj4gPj4NCj4gPj4gVGhhbmtzDQo+ID4+ IExhc3psbw0KPiA+Pg0KPiA+Pj4gVGlhbm9Db3JlIzIwMzIgd2FzIG9yaWdpbmFsbHkgZmlsZWQg Zm9yIE5ldHdvcmtQa2csIGFuZCBpbmRlZWQgdGhhdA0KPiA+Pj4gc2VlbWVkIHRvIGp1c3RpZnkg dGhlIENWRSBhc3NpZ25tZW50LiBIb3dldmVyLCBub3cgdGhhdCBOaWNrJ3MgYW5kDQo+ID4+PiBN YWNpZWoncyBhbmFseXNpcyBzaG93cyB0aGF0IE5ldHdvcmtQa2cgaXMgdW5hZmZlY3RlZCAoYW5k IHdlIGtub3csIHBlcg0KPiA+Pj4gYWJvdmUsIHRoYXQgU2hlbGxQa2cgaXMgbm90IENWRS13b3J0 aHkpLCBzaG91bGQgd2UgcmF0aGVyICpyZW1vdmUqIHRoaXMNCj4gPj4+IEJaIGZyb20gdGhlIENW RS0yMDE5LTE0NTU5IHVtYnJlbGxhPw0KPiA+Pj4NCj4gPj4+IEJlY2F1c2UsIGluIHRoYXQgY2Fz ZSwgbW9kaWZ5aW5nIHRoZSBzdWJqZWN0IGxpbmUgb24gdGhlIHBhdGNoIGlzIG5vdA0KPiA+Pj4g bmVjZXNzYXJ5OyBhbmQgbW9yZSBpbXBvcnRhbnRseSwgd2UgbWlnaHQgbm90IGV2ZW4gd2FudCB0 byBwdXQgdGhpcyBpbnRvDQo+ID4+PiBlZGsyLXN0YWJsZTIwMjAwMi4gKEl0J3Mgc3RpbGwgYSBi dWdmaXgsIGJ1dCBtYXkgbm90IGJlIGltcG9ydGFudCBlbm91Z2guKQ0KPiA+Pj4NCj4gPj4+IFRo YW5rcyENCj4gPj4+IExhc3psbw0KPiA+Pj4NCj4gPg0KPiA+IA0KPiA+DQo=