From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 134.134.136.31, mailfrom: michael.d.kinney@intel.com) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by groups.io with SMTP; Thu, 18 Apr 2019 10:59:51 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Apr 2019 10:59:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,366,1549958400"; d="scan'208";a="150510176" Received: from orsmsx109.amr.corp.intel.com ([10.22.240.7]) by FMSMGA003.fm.intel.com with ESMTP; 18 Apr 2019 10:59:50 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.24]) by ORSMSX109.amr.corp.intel.com ([169.254.11.52]) with mapi id 14.03.0415.000; Thu, 18 Apr 2019 10:59:49 -0700 From: "Michael D Kinney" To: =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= , "devel@edk2.groups.io" , "lersek@redhat.com" , "Kinney, Michael D" CC: "Gao, Liming" Subject: Re: [edk2-devel] [PATCH 04/10] MdePkg/PiFirmwareFile: fix undefined behavior in FFS_FILE_SIZE Thread-Topic: [edk2-devel] [PATCH 04/10] MdePkg/PiFirmwareFile: fix undefined behavior in FFS_FILE_SIZE Thread-Index: AQHU8YfjFhWGOuXuXkWmHX/V/l+BpaZAp/hQgAIAPID//5UcsA== Date: Thu, 18 Apr 2019 17:59:49 +0000 Message-ID: References: <20190412233128.4756-1-lersek@redhat.com> <20190412233128.4756-5-lersek@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.600.7 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UGhpbGlwcGUsDQoNCkNvbW1lbnRzIGJlbG93Lg0KDQpUaGFua3MsDQoNCk1pa2UNCg0KPiAtLS0t LU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBQaGlsaXBwZSBNYXRoaWV1LURhdWTDqSBb bWFpbHRvOnBoaWxtZEByZWRoYXQuY29tXQ0KPiBTZW50OiBUaHVyc2RheSwgQXByaWwgMTgsIDIw MTkgMTA6MjAgQU0NCj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvOyBLaW5uZXksIE1pY2hhZWwg RA0KPiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBsZXJzZWtAcmVkaGF0LmNvbQ0KPiBD YzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2Vk azItZGV2ZWxdIFtQQVRDSCAwNC8xMF0NCj4gTWRlUGtnL1BpRmlybXdhcmVGaWxlOiBmaXggdW5k ZWZpbmVkIGJlaGF2aW9yIGluDQo+IEZGU19GSUxFX1NJWkUNCj4gDQo+IEhpIE1pY2hhZWwsDQo+ IA0KPiBPbiA0LzE3LzE5IDc6NTIgUE0sIE1pY2hhZWwgRCBLaW5uZXkgd3JvdGU6DQo+ID4gTGFz emxvLA0KPiA+DQo+ID4gSSBoYXZlIGJlZW4gZm9sbG93aW5nIHRoaXMgdGhyZWFkLiAgSSB0aGlu ayB0aGUgc3R5bGUNCj4gPiB1c2VkIGhlcmUgdG8gYWNjZXNzIHRoZSAzIGFycmF5IGVsZW1lbnRz IHRvIGJ1aWxkIHRoZQ0KPiA+IDI0LWJpdCBzaXplIHZhbHVlIGlzIHRoZSBiZXN0IGFwcHJvYWNo LiAgSSBwcmVmZXINCj4gdGhpcw0KPiA+IG92ZXIgYWRkaW5nIHRoZSB1bmlvbi4NCj4gPg0KPiA+ IEkgYWdyZWUgdGhlcmUgaXMgYSByZWFkIG92ZXJydW4gaXNzdWUgd2hlbiB1c2luZw0KPiBVSU5U MzIgdG8NCj4gPiByZWFkIHRoZSBTaXplWzNdIGFycmF5IGNvbnRlbnRzLg0KPiA+DQo+ID4gSSBk byBub3QgdGhpbmsgdGhpcyBpcyBhIHJlYWwgaXNzdWUgaW4gcHJhY3RpY2UsDQo+IGJlY2F1c2Ug dGhlDQo+ID4gU2l6ZVszXSBhcnJheSBhY2Nlc3NlZCBpcyBwYXJ0IG9mIHRoZSBsYXJnZXINCj4g PiBFRklfQ09NTU9OX1NFQ1RJT05fSEVBREVSIHN0cnVjdHVyZS4gIEhvd2V2ZXIsIHdlDQo+IGFs d2F5cyBzaG91bGQNCj4gPiBjbGVhbiB1cCBjb2RlIHRvIG5vdCBkbyBhbnkgcmVhZC93cml0ZSBv dmVycnVucw0KPiB3aXRob3V0IHRoaXMNCj4gPiB0eXBlIG9mIGFuYWx5c2lzIGFuZCB0aGUgbmVl ZCB0byBrZWVwIHRyYWNrIG9mDQo+IGV4Y2VwdGlvbnMuDQo+ID4NCj4gPiBUaGVyZSBpcyBhIHJl bGF0ZWQgc2V0IG9mIGNvZGUgaW4gdGhlIEJhc2VMaWIgZm9yDQo+IFJlYWQvV3JpdGUNCj4gPiBV bmFsaWduZWQyNCgpLg0KPiA+DQo+ID4gVUlOVDMyDQo+ID4gRUZJQVBJDQo+ID4gUmVhZFVuYWxp Z25lZDI0ICgNCj4gPiAgIElOIENPTlNUIFVJTlQzMiAgICAgICAgICAgICAgKkJ1ZmZlcg0KPiA+ ICAgKTsNCj4gPg0KPiA+IFVJTlQzMg0KPiA+IEVGSUFQSQ0KPiA+IFdyaXRlVW5hbGlnbmVkMjQg KA0KPiA+ICAgT1VUIFVJTlQzMiAgICAgICAgICAgICAgICAgICAgKkJ1ZmZlciwNCj4gPiAgIElO ICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIFZhbHVlDQo+ID4gICApOw0KPiA+DQo+ID4gVGhp cyBBUEkgZG9lcyBub3QgZ2V0IGZsYWdnZWQgZm9yIHJlYWQgb3ZlcnJ1biBpc3N1ZXMNCj4gYmVj YXVzZQ0KPiA+IGEgVUlOVDMyIGlzIHBhc3NlZCBpbi4gIEhvd2V2ZXIsIGZvciBDUFUgYXJjaHMg dGhhdA0KPiByZXF1aXJlZCBhbGlnbmVkDQo+ID4gYWNjZXNzLCB0aGUgMjQtYml0IHZhbHVlIG11 c3QgYmUgcmVhZCBpbiBwaWVjZXMuDQo+IFRoaXMgaXMgd2h5IHRoZXJlDQo+ID4gYXJlIDIgZGlm ZmVyZW50IGltcGxlbWVudGF0aW9uczoNCj4gPg0KPiA+IElBMzIvWDY0DQo+ID4gPT09PT09PT0N Cj4gPiBVSU5UMzINCj4gPiBFRklBUEkNCj4gPiBSZWFkVW5hbGlnbmVkMjQgKA0KPiA+ICAgSU4g Q09OU1QgVUlOVDMyICAgICAgICAgICAgICAqQnVmZmVyDQo+ID4gICApDQo+ID4gew0KPiA+ICAg QVNTRVJUIChCdWZmZXIgIT0gTlVMTCk7DQo+ID4NCj4gPiAgIHJldHVybiAqQnVmZmVyICYgMHhm ZmZmZmY7DQo+ID4gfQ0KPiA+DQo+ID4NCj4gPiBBUk0vQUFSQ0g2NA0KPiA+ID09PT09PT09PT09 PQ0KPiA+IFVJTlQzMg0KPiA+IEVGSUFQSQ0KPiA+IFJlYWRVbmFsaWduZWQyNCAoDQo+ID4gICBJ TiBDT05TVCBVSU5UMzIgICAgICAgICAgICAgICpCdWZmZXINCj4gPiAgICkNCj4gPiB7DQo+ID4g ICBBU1NFUlQgKEJ1ZmZlciAhPSBOVUxMKTsNCj4gPg0KPiA+ICAgcmV0dXJuIChVSU5UMzIpKA0K PiA+ICAgICAgICAgICAgIFJlYWRVbmFsaWduZWQxNiAoKFVJTlQxNiopQnVmZmVyKSB8DQo+ID4g ICAgICAgICAgICAgKCgoVUlOVDgqKUJ1ZmZlcilbMl0gPDwgMTYpDQo+ID4gICAgICAgICAgICAg KTsNCj4gPiB9DQo+ID4NCj4gPiBUaGUgQVJNL0FSQ0g2NCBpbXBsZW1lbnRhdGlvbiBpcyBjbGVh biBiZWNhdXNlIGl0DQo+IGRvZXMNCj4gPiBub3QgZG8gYSByZWFkIG92ZXJydW4gb2YgdGhlIDI0 LWJpdCBmaWVsZC4gIFRoZQ0KPiBJQTMyL1g2NA0KPiA+IGltcGxlbWVudGF0aW9uIG1heSBoYXZl IGFuIGlzc3VlIGJlY2F1c2UgaXQgcmVhZHMgYQ0KPiAzMi1iaXQNCj4gPiB2YWx1ZSBhbmQgc3Ry aXBzIHRoZSB1cHBlciA4IGJpdHMuDQo+ID4NCj4gPiBJZiB3ZSBhcHBseSB0aGUgc2FtZSB0ZWNo bmlxdWUgdG8gdGhlIFNpemUgZmllbGQgb2YNCj4gPiBFRklfQ09NTU9OX1NFQ1RJT05fSEVBREVS LCB0aGVuIHRoZSAyNC1iaXQgdmFsdWUNCj4gd291bGQgYmUNCj4gPiBidWlsdCBmcm9tIHJlYWRp bmcgb25seSB0aGUgMyBieXRlcyBvZiB0aGUgYXJyYXkuDQo+IA0KPiBUaGlzIEFSTSBpbXBsZW1l bnRhdGlvbiBhc3N1bWVzIEJ1ZmZlciBpcyBoYWxmd29yZC0NCj4gYWxpZ25lZCBPUiB0aGUNCj4g bWljcm9hcmNoaXRlY3R1cmVzIHN1cHBvcnRzIHVuYWxpZ25lZCBoYWxmd29yZCBhY2Nlc3MuDQo+ IA0KPiBUaGUgM3ggOC1iaXQgYWNjZXNzZXMgbWFjcm8gbG9va3Mgc2ltcGxlciB0aGFuIGFkZGlu ZyBhDQo+IDE2LWJpdCBhbGlnbm1lbnQNCj4gY2hlY2sgb24gQnVmZmVyLCBzdWNoOg0KPiANCj4g ICAgaWYgKEJ1ZmZlciAmIDEpIHsNCj4gICAgICByZXR1cm4gKFVJTlQzMikoDQo+ICAgICAgICAg ICAgICAoKFVJTlQ4KilCdWZmZXIpWzBdIHwNCj4gICAgICAgICAgICAgIChSZWFkVW5hbGlnbmVk MTYNCj4gKChVSU5UMTYqKSYoKChVSU5UOCopQnVmZmVyKVsxXSkpIDw8IDgpDQo+ICAgICAgICAg ICAgICApOw0KPiAgICB9IGVsc2Ugew0KPiAgICAgIHJldHVybiAoVUlOVDMyKSgNCj4gICAgICAg ICAgICAgIFJlYWRVbmFsaWduZWQxNiAoKFVJTlQxNiopQnVmZmVyKSB8DQo+ICAgICAgICAgICAg ICAoKChVSU5UOCopQnVmZmVyKVsyXSA8PCAxNikNCj4gICAgICAgICAgICAgICk7DQo+ICAgIH0N Cj4gDQoNClRoZSBBUk0vQUFSQ0g2NCBpbXBsZW1lbnRhdGlvbiBvZiBSZWFkVW5hbGlnbmVkMTYo KSBqdXN0DQpkb2VzIHRoZSBieXRlIGFjY2VzcyB3aGljaCB3aWxsIGFsd2F5cyB3b3JrLiAgU28g bm90IG5lZWQNCnRvIGRvIHRoZSAyIG1vZGVzIHlvdSBzdWdnZXN0IGFib3ZlLg0KDQpVSU5UMTYN CkVGSUFQSQ0KUmVhZFVuYWxpZ25lZDE2ICgNCiAgSU4gQ09OU1QgVUlOVDE2ICAgICAgICAgICAg ICAqQnVmZmVyDQogICkNCnsNCiAgdm9sYXRpbGUgVUlOVDggTG93ZXJCeXRlOw0KICB2b2xhdGls ZSBVSU5UOCBIaWdoZXJCeXRlOw0KDQogIEFTU0VSVCAoQnVmZmVyICE9IE5VTEwpOw0KDQogIExv d2VyQnl0ZSA9ICgoVUlOVDgqKUJ1ZmZlcilbMF07DQogIEhpZ2hlckJ5dGUgPSAoKFVJTlQ4KilC dWZmZXIpWzFdOw0KDQogIHJldHVybiAoVUlOVDE2KShMb3dlckJ5dGUgfCAoSGlnaGVyQnl0ZSA8 PCA4KSk7DQp9DQoNCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4NCj4gPiBNaWtlDQo+ID4NCj4gPj4g LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4gW21haWx0bzpkZXZlbEBlZGsyLmdyb3Vwcy5pb10NCj4gPj4gT24gQmVoYWxmIE9mIExh c3psbyBFcnNlaw0KPiA+PiBTZW50OiBGcmlkYXksIEFwcmlsIDEyLCAyMDE5IDQ6MzEgUE0NCj4g Pj4gVG86IGVkazItZGV2ZWwtZ3JvdXBzLWlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4NCj4gPj4g Q2M6IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEtpbm5leSwNCj4gTWljaGFl bA0KPiA+PiBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPj4gU3ViamVjdDogW2Vk azItZGV2ZWxdIFtQQVRDSCAwNC8xMF0NCj4gPj4gTWRlUGtnL1BpRmlybXdhcmVGaWxlOiBmaXgg dW5kZWZpbmVkIGJlaGF2aW9yIGluDQo+ID4+IEZGU19GSUxFX1NJWkUNCj4gPj4NCj4gPj4gQWNj ZXNzaW5nICJFRklfRkZTX0ZJTEVfSEVBREVSLlNpemUiLCB3aGljaCBpcyBvZg0KPiB0eXBlDQo+ ID4+IFVJTlQ4WzNdLCB0aHJvdWdoIGENCj4gPj4gKFVJTlQzMiopLCBpcyB1bmRlZmluZWQgYmVo YXZpb3IuIEZpeCBpdCBieQ0KPiBhY2Nlc3NpbmcNCj4gPj4gdGhlIGFycmF5IGVsZW1lbnRzDQo+ ID4+IGluZGl2aWR1YWxseS4NCj4gPj4NCj4gPj4gKFdlIGNhbid0IHVzZSBhIHVuaW9uIGhlcmUs IHVuZm9ydHVuYXRlbHksIGFzIGVhc2lseQ0KPiBhcw0KPiA+PiB3aXRoDQo+ID4+ICJFRklfQ09N TU9OX1NFQ1RJT05fSEVBREVSIiwgZ2l2ZW4gdGhlIGZpZWxkcyBpbg0KPiA+PiAiRUZJX0ZGU19G SUxFX0hFQURFUiIuKQ0KPiA+Pg0KPiA+PiBDYzogTGltaW5nIEdhbyA8bGltaW5nLmdhb0BpbnRl bC5jb20+DQo+ID4+IENjOiBNaWNoYWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT4NCj4gPj4gQnVnemlsbGE6DQo+ID4+IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9y Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMA0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsg PGxlcnNla0ByZWRoYXQuY29tPg0KPiA+PiAtLS0NCj4gPj4gIE1kZVBrZy9JbmNsdWRlL1BpL1Bp RmlybXdhcmVGaWxlLmggfCAxMCArKysrKysrKystDQo+ID4+ICAxIGZpbGUgY2hhbmdlZCwgOSBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQ a2cvSW5jbHVkZS9QaS9QaUZpcm13YXJlRmlsZS5oDQo+ID4+IGIvTWRlUGtnL0luY2x1ZGUvUGkv UGlGaXJtd2FyZUZpbGUuaA0KPiA+PiBpbmRleCA0ZmNlODI5OGQxYzAuLjA2NjhmM2ZhOWFmNCAx MDA2NDQNCj4gPj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvUGkvUGlGaXJtd2FyZUZpbGUuaA0KPiA+ PiArKysgYi9NZGVQa2cvSW5jbHVkZS9QaS9QaUZpcm13YXJlRmlsZS5oDQo+ID4+IEBAIC0xNzQs MTggKzE3NCwyNiBAQCB0eXBlZGVmIHN0cnVjdCB7DQo+ID4+ICAgIC8vLyBJZiBGRlNfQVRUUklC X0xBUkdFX0ZJTEUgaXMgbm90IHNldCB0aGVuDQo+ID4+IEVGSV9GRlNfRklMRV9IRUFERVIgaXMg dXNlZC4NCj4gPj4gICAgLy8vDQo+ID4+ICAgIFVJTlQ2NCAgICAgICAgICAgICAgICAgICAgRXh0 ZW5kZWRTaXplOw0KPiA+PiAgfSBFRklfRkZTX0ZJTEVfSEVBREVSMjsNCj4gPj4NCj4gPj4gICNk ZWZpbmUgSVNfRkZTX0ZJTEUyKEZmc0ZpbGVIZWFkZXJQdHIpIFwNCj4gPj4gICAgICAoKCgoKEVG SV9GRlNfRklMRV9IRUFERVIgKikgKFVJTlROKQ0KPiA+PiBGZnNGaWxlSGVhZGVyUHRyKS0+QXR0 cmlidXRlcykgJg0KPiBGRlNfQVRUUklCX0xBUkdFX0ZJTEUpDQo+ID4+ID09IEZGU19BVFRSSUJf TEFSR0VfRklMRSkNCj4gPj4NCj4gPj4gKyNkZWZpbmUgRkZTX0ZJTEVfU0laRV9BUlJBWShGZnNG aWxlSGVhZGVyUHRyKSBcDQo+ID4+ICsgICAgKCgoRUZJX0ZGU19GSUxFX0hFQURFUiAqKSAoVUlO VE4pDQo+ID4+IChGZnNGaWxlSGVhZGVyUHRyKSktPlNpemUpDQo+ID4+ICsNCj4gPj4gKyNkZWZp bmUgRkZTX0ZJTEVfU0laRV9FTEVNRU5UKEZmc0ZpbGVIZWFkZXJQdHIsDQo+IEluZGV4KQ0KPiA+ PiBcDQo+ID4+ICsgICAgKChVSU5UMzIpIEZGU19GSUxFX1NJWkVfQVJSQVkNCj4gPj4gKEZmc0Zp bGVIZWFkZXJQdHIpWyhJbmRleCldKQ0KPiA+PiArDQo+ID4+ICAjZGVmaW5lIEZGU19GSUxFX1NJ WkUoRmZzRmlsZUhlYWRlclB0cikgXA0KPiA+PiAtICAgICgoVUlOVDMyKSAoKigoVUlOVDMyICop ICgoRUZJX0ZGU19GSUxFX0hFQURFUg0KPiAqKQ0KPiA+PiAoVUlOVE4pIEZmc0ZpbGVIZWFkZXJQ dHIpLT5TaXplKSAmIDB4MDBmZmZmZmYpKQ0KPiA+PiArICAgICgoRkZTX0ZJTEVfU0laRV9FTEVN RU5UICgoRmZzRmlsZUhlYWRlclB0ciksIDApDQo+IDw8DQo+ID4+IDApIHwgXA0KPiA+PiArICAg ICAoRkZTX0ZJTEVfU0laRV9FTEVNRU5UICgoRmZzRmlsZUhlYWRlclB0ciksIDEpDQo+IDw8DQo+ ID4+IDgpIHwgXA0KPiA+PiArICAgICAoRkZTX0ZJTEVfU0laRV9FTEVNRU5UICgoRmZzRmlsZUhl YWRlclB0ciksIDIpDQo+IDw8DQo+ID4+IDE2KSkNCj4gPj4NCj4gPj4gICNkZWZpbmUgRkZTX0ZJ TEUyX1NJWkUoRmZzRmlsZUhlYWRlclB0cikgXA0KPiA+PiAgICAgICgoVUlOVDMyKSAoKChFRklf RkZTX0ZJTEVfSEVBREVSMiAqKSAoVUlOVE4pDQo+ID4+IEZmc0ZpbGVIZWFkZXJQdHIpLT5FeHRl bmRlZFNpemUpKQ0KPiA+Pg0KPiA+PiAgdHlwZWRlZiBVSU5UOCBFRklfU0VDVElPTl9UWVBFOw0K PiA+Pg0KPiA+PiAgLy8vDQo+ID4+ICAvLy8gUHNldWRvIHR5cGUuIEl0IGlzIHVzZWQgYXMgYSB3 aWxkIGNhcmQgd2hlbg0KPiA+PiByZXRyaWV2aW5nIHNlY3Rpb25zLg0KPiA+PiAtLQ0KPiA+PiAy LjE5LjEuMy5nMzAyNDdhYTVkMjAxDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+IC09LT0tPS09LT0t PQ0KPiA+PiBHcm91cHMuaW8gTGlua3M6IFlvdSByZWNlaXZlIGFsbCBtZXNzYWdlcyBzZW50IHRv DQo+IHRoaXMNCj4gPj4gZ3JvdXAuDQo+ID4+DQo+ID4+IFZpZXcvUmVwbHkgT25saW5lICgjMzg5 ODkpOg0KPiA+PiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvbWVzc2FnZS8zODk4OQ0K PiA+PiBNdXRlIFRoaXMgVG9waWM6DQo+IGh0dHBzOi8vZ3JvdXBzLmlvL210LzMxMDcwMzA0LzE2 NDM0OTYNCj4gPj4gR3JvdXAgT3duZXI6IGRldmVsK293bmVyQGVkazIuZ3JvdXBzLmlvDQo+ID4+ IFVuc3Vic2NyaWJlOiBodHRwczovL2VkazIuZ3JvdXBzLmlvL2cvZGV2ZWwvdW5zdWINCj4gPj4g W21pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tXQ0KPiA+PiAtPS09LT0tPS09LT0NCj4gPg0KPiA+ DQo+ID4gDQo+ID4NCg==