From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 37213219FFEF8 for ; Tue, 23 May 2017 19:46:48 -0700 (PDT) Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 May 2017 19:46:47 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.38,384,1491289200"; d="scan'208";a="1152036580" Received: from orsmsx110.amr.corp.intel.com ([10.22.240.8]) by fmsmga001.fm.intel.com with ESMTP; 23 May 2017 19:46:47 -0700 Received: from orsmsx154.amr.corp.intel.com (10.22.226.12) by ORSMSX110.amr.corp.intel.com (10.22.240.8) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 23 May 2017 19:46:47 -0700 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.59]) by ORSMSX154.amr.corp.intel.com ([169.254.11.101]) with mapi id 14.03.0319.002; Tue, 23 May 2017 19:46:46 -0700 From: "Kinney, Michael D" To: "Gao, Liming" , 'Laszlo Ersek' , Sergei Temerkhanov , "Kinney, Michael D" CC: "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH] MdePkg: Fix undefined behavior on variadic parameters Thread-Index: AQHSzfAwtMDgAgEYF0+w66q6FtFL+KH23veAgAB1Y4CAAwWeAIABE3aAgABcaICAB3Z4gP//kkoQ Date: Wed, 24 May 2017 02:46:46 +0000 Message-ID: References: <1494903391-716-1-git-send-email-s.temerkhanov@gmail.com> <1494903391-716-2-git-send-email-s.temerkhanov@gmail.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D72E8BC@shsmsx102.ccr.corp.intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14D733532@shsmsx102.ccr.corp.intel.com> In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14D733532@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMmNhZjFmOWEtYjAyNS00YWJjLWEyNzMtYjVjMmJhMmVjNGRkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IllBeXZJcGcrd2lycUMzVTlvaXBUMjhLRGhFV3M3VlJUZ25wSVhjZjlPd3c9In0= dlp-product: dlpe-windows dlp-version: 10.0.102.7 dlp-reaction: no-action x-originating-ip: [10.22.254.138] MIME-Version: 1.0 Subject: Re: [PATCH] MdePkg: Fix undefined behavior on variadic parameters X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 24 May 2017 02:46:48 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U2VyZ2V5LA0KDQpXZSBhbHNvIG5lZWQgdG8gZG8gYSBmdWxsIHNlYXJjaCBmb3IgdXNlIG9mIHZh cmlhZGljIHBhcmFtZXRlcnMgdG8gbWFrZSANCnN1cmUgd2UgaGF2ZSBhIHNvbHV0aW9uIGZvciBh bGwgb2YgdGhlbSBhbmQgdXBkYXRlIHRoZSBFREsgSUkgQyBjb2RpbmcNCnN0YW5kYXJkIHRvIG1h a2Ugc3VyZSB0aGUgcnVsZXMgZm9yIHVzZSBvZiB2YXJpYWRpYyBwYXJhbWV0ZXJzIGZvciANCm1h eGltdW0gY29tcGlsZXIgY29tcGF0aWJpbGl0eSBhcmUgY2FwdHVyZWQgY29ycmVjdGx5Lg0KDQpE aWQgeW91IHRyeSBBbmRyZXcgRmlzaCdzIHN1Z2dlc3Rpb24gdG8gYWRkIC1Xbm8tdmFyYXJncyB0 byB0aGUgY29tcG9uZW50cw0KdGhhdCBoYXZlIHRoaXMgaXNzdWUgdG8gc2VlIGlmIHRoYXQgaXMg YSB0ZW1wb3Jhcnkgd29ya2Fyb3VuZCBmb3IgeW91cg0Kc3BlY2lmaWMgYnVpbGQgZmFpbHVyZXM/ DQoNClRoYW5rcywNCg0KTWlrZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZy b206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBP biBCZWhhbGYgT2YgR2FvLCBMaW1pbmcNCj4gU2VudDogVHVlc2RheSwgTWF5IDIzLCAyMDE3IDc6 MTQgUE0NCj4gVG86ICdMYXN6bG8gRXJzZWsnIDxsZXJzZWtAcmVkaGF0LmNvbT47IFNlcmdlaSBU ZW1lcmtoYW5vdiA8cy50ZW1lcmtoYW5vdkBnbWFpbC5jb20+DQo+IENjOiBlZGsyLWRldmVsQGxp c3RzLjAxLm9yZw0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSF0gTWRlUGtnOiBGaXggdW5k ZWZpbmVkIGJlaGF2aW9yIG9uIHZhcmlhZGljIHBhcmFtZXRlcnMNCj4gDQo+IFNlcmdleToNCj4g ICBUaGlzIHBhdGNoIHVwZGF0ZXMgQVBJIGludGVyZmFjZS4gSSBzdGlsbCBuZWVkIHRvIHZlcmlm eSBpdHMgZnVuY3Rpb25hbGl0eSBvbiBvdGhlcg0KPiB0b29sIGNoYWluLiBJIHdpbGwgZ2l2ZSB5 b3UgZmVlZGJhY2sgYWZ0ZXIgSSBhbSBkb25lLg0KPiANCj4gVGhhbmtzDQo+IExpbWluZw0KPiA+ LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPkZyb206IExhc3psbyBFcnNlayBbbWFpbHRv OmxlcnNla0ByZWRoYXQuY29tXQ0KPiA+U2VudDogRnJpZGF5LCBNYXkgMTksIDIwMTcgNDoxNiBQ TQ0KPiA+VG86IFNlcmdlaSBUZW1lcmtoYW5vdiA8cy50ZW1lcmtoYW5vdkBnbWFpbC5jb20+DQo+ ID5DYzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZWRrMi1kZXZlbEBsaXN0 cy4wMS5vcmcNCj4gPlN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIXSBNZGVQa2c6IEZpeCB1bmRl ZmluZWQgYmVoYXZpb3Igb24gdmFyaWFkaWMNCj4gPnBhcmFtZXRlcnMNCj4gPg0KPiA+T24gMDUv MTkvMTcgMDQ6NDUsIFNlcmdlaSBUZW1lcmtoYW5vdiB3cm90ZToNCj4gPj4gT24gVGh1LCBNYXkg MTgsIDIwMTcgYXQgMToxOSBQTSwgTGFzemxvIEVyc2VrIDxsZXJzZWtAcmVkaGF0LmNvbT4gd3Jv dGU6DQo+ID4+PiBPbiAwNS8xNi8xNyAxNDoxMCwgU2VyZ2VpIFRlbWVya2hhbm92IHdyb3RlOg0K PiA+Pj4+IE9uIFR1ZSwgTWF5IDE2LCAyMDE3IGF0IDg6MTAgQU0sIEdhbywgTGltaW5nIDxsaW1p bmcuZ2FvQGludGVsLmNvbT4NCj4gPndyb3RlOg0KPiA+Pj4+PiBTZXJnZXk6DQo+ID4+Pj4+ICAg Q291bGQgeW91IGdpdmUgbW9yZSBkZXRhaWwgb24gdGhlIHVuZGVmaW5lZCBiZWhhdmlvciBvbiB2 YXJpYWRpYw0KPiA+cGFyYW1ldGVycz8NCj4gPj4+Pj4NCj4gPj4+Pj4gICBJIHNlZSBodHRwczov L2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTQxMCBkZXNjcmliZSB0aGlz DQo+ID5pc3N1ZXMgZm91bmQgaW4gdGhlIGxhdGVzdCBDTEFORyB0b29sIGNoYWluLiBEbyB5b3Ug ZmluZCBvdGhlciB0b29sIGNoYWluDQo+ID5yZXBvcnRzIGl0Pw0KPiA+Pj4+DQo+ID4+Pj4gWWVz LCB0aGlzIGlzIGV4YWN0bHkgdGhlIGJ1ZyB0aGlzIHBhdGNoIGZpeGVzLg0KPiA+Pj4+DQo+ID4+ Pj4gQXMgcGVyIHRoZSBDOTkgc3RhbmRhcmQ6DQo+ID4+Pj4gIlRoZSBwYXJhbWV0ZXIgcGFybU4g aXMgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHJpZ2h0bW9zdCBwYXJhbWV0ZXIgaW4NCj4gPj4+PiB0 aGUgdmFyaWFibGUgcGFyYW1ldGVyIGxpc3QgaW4gdGhlIGZ1bmN0aW9uIGRlZmluaXRpb24gKHRo ZSBvbmUganVzdA0KPiA+Pj4+IGJlZm9yZSB0aGUgLCAuLi4pLiBJZiB0aGUgcGFyYW1ldGVyIHBh cm1OIGlzIGRlY2xhcmVkIHdpdGggdGhlDQo+ID4+Pj4gcmVnaXN0ZXIgc3RvcmFnZSBjbGFzcywg d2l0aCBhIGZ1bmN0aW9uIG9yIGFycmF5IHR5cGUsIG9yIHdpdGggYSB0eXBlDQo+ID4+Pj4gdGhh dCBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSB0eXBlIHRoYXQgcmVzdWx0cyBhZnRlciBhcHBs aWNhdGlvbiBvZg0KPiA+Pj4+IHRoZSBkZWZhdWx0IGFyZ3VtZW50IHByb21vdGlvbnMsIHRoZSBi ZWhhdmlvciBpcyB1bmRlZmluZWQuIg0KPiA+Pj4+DQo+ID4+Pj4gVGhhdCdzIGV4YWN0bHkgdGhl IGNhc2UgaGVyZSBzaW5jZSBCT09MRUFOIGlzIGEgdHlwZWRlZiBmb3IgdW5zaWduZWQNCj4gPj4+ PiBjaGFyLiBJdCB1bmRlcmdvZXMgYSBwcm9tb3Rpb24gdG8gYW4gdW5zaWduZWQgaW50DQo+ID4+ Pg0KPiA+Pj4gU2lkZSB0b3BpYzoNCj4gPj4+DQo+ID4+PiBJdCBpcyBwcm9tb3RlZCwgYnV0IG5v dCB0byAidW5zaWduZWQgaW50Ii4NCj4gPj4+DQo+ID4+PiBUaGUgc3RhbmRhcmQgc2F5cywgaW4g IjYuMy4xLjEgQm9vbGVhbiwgY2hhcmFjdGVycywgYW5kIGludGVnZXJzIiwNCj4gPj4+IHBhcmFn cmFwaCAyLA0KPiA+Pj4NCj4gPj4+ICAgICBUaGUgZm9sbG93aW5nIG1heSBiZSB1c2VkIGluIGFu IGV4cHJlc3Npb24gd2hlcmV2ZXIgYW4gL2ludC8gb3INCj4gPj4+ICAgICAvdW5zaWduZWQgaW50 LyBtYXkgYmUgdXNlZDoNCj4gPj4+DQo+ID4+PiAgICAg4oCUIEFuIG9iamVjdCBvciBleHByZXNz aW9uIHdpdGggYW4gaW50ZWdlciB0eXBlIHdob3NlIGludGVnZXINCj4gPj4+ICAgICAgIGNvbnZl cnNpb24gcmFuayBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJhbmsgb2YgL2ludC8gYW5k DQo+ID4+PiAgICAgICAvdW5zaWduZWQgaW50Ly4NCj4gPj4+ICAgICDigJQgQSBiaXQtZmllbGQg b2YgdHlwZSAvX0Jvb2wvLCAvaW50LywgL3NpZ25lZCBpbnQvLCBvcg0KPiA+Pj4gICAgICAgL3Vu c2lnbmVkIGludC8uDQo+ID4+Pg0KPiA+Pj4gICAgIElmIGFuIC9pbnQvIGNhbiByZXByZXNlbnQg YWxsIHZhbHVlcyBvZiB0aGUgb3JpZ2luYWwgdHlwZSwgdGhlIHZhbHVlDQo+ID4+PiAgICAgaXMg Y29udmVydGVkIHRvIGFuIC9pbnQvOyBvdGhlcndpc2UsIGl0IGlzIGNvbnZlcnRlZCB0byBhbg0K PiA+Pj4gICAgIC91bnNpZ25lZCBpbnQvLiBUaGVzZSBhcmUgY2FsbGVkIHRoZSAvaW50ZWdlciBw cm9tb3Rpb25zLy4gWy4uLl0NCj4gPj4+DQo+ID4+PiBPbiBhbGwgc3VwcG9ydGVkIGVkazIgcGxh dGZvcm1zLCAidW5zaWduZWQgY2hhciIncyByYW5nZSBpcyAwLi4yNTUNCj4gPj4+IGluY2x1c2l2 ZSwgd2hpY2ggY2FuIGJlIHJlcHJlc2VudGVkIGJ5ICJpbnQiIChhZ2FpbiBvbiBhbGwgc3VwcG9y dGVkDQo+ID4+PiBlZGsyIHBsYXRmb3JtcykuIFNvIHRoZSBwcm9tb3Rpb24gb2NjdXJzIHRvICJp bnQiLCBub3QgInVuc2lnbmVkIGludCINCj4gPj4+DQo+ID4+Pg0KPiA+Pj4gRnVydGhlcm1vcmUs IGluIHBsYWNlIG9mIHRoZSBzdWdnZXN0ZWQgVUlOVE4gdHlwZSAod2hpY2ggaXMgZmluZSksIHRo ZQ0KPiA+Pj4gZm9sbG93aW5nIGZ1cnRoZXIgdHlwZXMgd291bGQgYmUgY29ycmVjdDogSU5UMzIs IFVJTlQzMiwgSU5UNjQsIFVJTlQ2NCwNCj4gPj4+IElOVE4uDQo+ID4+DQo+ID4+IE9uIDMyLWJp dCBhcmNoaXRlY3R1cmVzLCB1c2luZyA2NC1iaXQgdHlwZXMgaGVyZSBtYXkgY2hhbmdlIHRoZSBB QkkuIFdoaWNoDQo+ID5taWdodA0KPiA+PiBhZmZlY3Qgc29tZSBjb3JuZXIgY2FzZXMgbGlrZSBs aW5raW5nIHByZWNvbXBpbGVkIG9iamVjdCBmaWxlcyB0byB0aGUNCj4gPj4gbGlicmFyeSBpbiBx dWVzdGlvbi4NCj4gPg0KPiA+VHJ1ZS4NCj4gPg0KPiA+SSBtaXNzZWQgdGhlIGZhY3QgdGhhdCBp biBlZGsyIHlvdSBjYW4gaGF2ZSBiaW5hcnktb25seSBsaWJyYXJ5DQo+ID5pbnN0YW5jZXMuIEkg c2hvdWxkIGhhdmUgcmVtZW1iZXJlZCwgYWZ0ZXIgYWxsIEkgaGFkIGZpbGVkDQo+ID48aHR0cHM6 Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD00NjM+IDopDQo+ID4NCj4g PlNvIHllcywgVUlOVE4gaXMgdGhlIGJlc3QgY2hvaWNlOyBpdCBrZWVwcyBiaW5hcnkgY29tcGF0 IGJleW9uZA0KPiA+ZXZlcnl0aGluZyBlbHNlLg0KPiA+DQo+ID5UaGFua3MhDQo+ID5MYXN6bG8N Cj4gPg0KPiA+Pg0KPiA+Pj4gVGhlIHJlYXNvbiBpcyB0aGF0IGFsbCBvZiB0aGVzZSBtYXAgdG8g c3RhbmRhcmQgQyB0eXBlcywgb24gYWxsDQo+ID4+PiBlZGsyIHBsYXRmb3Jtcywgd2hvc2UgaW50 ZWdlciBjb252ZXJzaW9uIHJhbmtzIGFyZSBub3QgbGVzcyB0aGFuIHRoYXQgb2YNCj4gPj4+ICJp bnQiIGFuZCAidW5zaWduZWQgaW50Ii4gSGVuY2UgdGhleSBhcmUgYWxsIHVuYWZmZWN0ZWQgYnkg dGhlIGludGVnZXINCj4gPj4+IHByb21vdGlvbnMuDQo+ID4+Pg0KPiA+Pj4gKFRoaXMgZGlncmVz c2lvbiBkb2VzIG5vdCBhZmZlY3QgeW91ciBtYWluIHBvaW50LCB3aGljaCByZW1haW5zIGNvcnJl Y3Q7DQo+ID4+PiBJIGp1c3Qgd2FudGVkIHRvIGJlIHByZWNpc2UgaGVyZSwgc2luY2Ugd2UncmUg cXVvdGluZyB0aGUgc3RhbmRhcmQuKQ0KPiA+Pj4NCj4gPj4+IFRoYW5rcw0KPiA+Pj4gTGFzemxv DQo+ID4+Pg0KPiA+Pj4+IHdoaWNoIGlzIG5vdCBhDQo+ID4+Pj4gY29tcGF0aWJsZSB0eXBlIGZv ciB1bnNpZ25lZCBjaGFyLiBDb3JyZWN0IG1lIGlmIEknbSB3cm9uZy4NCj4gPj4+Pg0KPiA+Pj4+ IFJlZ2FyZHMsDQo+ID4+Pj4gU2VyZ2V5DQo+ID4+Pj4NCj4gPj4+Pj4NCj4gPj4+Pj4gVGhhbmtz DQo+ID4+Pj4+IExpbWluZw0KPiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g Pj4+Pj4+IEZyb206IGVkazItZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMu MDEub3JnXSBPbiBCZWhhbGYNCj4gPk9mIFNlcmdleSBUZW1lcmtoYW5vdg0KPiA+Pj4+Pj4gU2Vu dDogVHVlc2RheSwgTWF5IDE2LCAyMDE3IDEwOjU3IEFNDQo+ID4+Pj4+PiBUbzogZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmcNCj4gPj4+Pj4+IFN1YmplY3Q6IFtlZGsyXSBbUEFUQ0hdIE1kZVBrZzog Rml4IHVuZGVmaW5lZCBiZWhhdmlvciBvbiB2YXJpYWRpYw0KPiA+cGFyYW1ldGVycw0KPiA+Pj4+ Pj4NCj4gPj4+Pj4+IEZpeCB1bmRlZmluZWQgYmVoYXZpb3IgYnkgYXZvaWRpbmcgcGFyYW1ldGVy IHR5cGUgcHJvbW90aW9uDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogU2VyZ2V5 IFRlbWVya2hhbm92IDxzLnRlbWVya2hhbm92QGdtYWlsLmNvbT4NCj4gPj4+Pj4+IC0tLQ0KPiA+ Pj4+Pj4gIE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVWVmaUxpYi5oIHwgMiArLQ0KPiA+Pj4+Pj4g IE1kZVBrZy9MaWJyYXJ5L1VlZmlMaWIvVWVmaUxpYi5jIHwgMiArLQ0KPiA+Pj4+Pj4gIDIgZmls ZXMgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VlZmlMaWIuaA0KPiA+ Yi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VlZmlMaWIuaA0KPiA+Pj4+Pj4gaW5kZXggMGIxNDc5 Mi4uNGU0Njk3YyAxMDA2NDQNCj4gPj4+Pj4+IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkv VWVmaUxpYi5oDQo+ID4+Pj4+PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1VlZmlMaWIu aA0KPiA+Pj4+Pj4gQEAgLTgxOCw3ICs4MTgsNyBAQCBDSEFSOCAqDQo+ID4+Pj4+PiAgRUZJQVBJ DQo+ID4+Pj4+PiAgR2V0QmVzdExhbmd1YWdlICgNCj4gPj4+Pj4+ICAgIElOIENPTlNUIENIQVI4 ICAqU3VwcG9ydGVkTGFuZ3VhZ2VzLA0KPiA+Pj4+Pj4gLSAgSU4gQk9PTEVBTiAgICAgIElzbzYz OUxhbmd1YWdlLA0KPiA+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICBJc282MzlMYW5ndWFnZSwNCj4g Pj4+Pj4+ICAgIC4uLg0KPiA+Pj4+Pj4gICAgKTsNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBkaWZmIC0t Z2l0IGEvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmMNCj4gPmIvTWRlUGtnL0xpYnJh cnkvVWVmaUxpYi9VZWZpTGliLmMNCj4gPj4+Pj4+IGluZGV4IGE3ZWVlMDEuLjc0NTI4ZWMgMTAw NjQ0DQo+ID4+Pj4+PiAtLS0gYS9NZGVQa2cvTGlicmFyeS9VZWZpTGliL1VlZmlMaWIuYw0KPiA+ Pj4+Pj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVWVmaUxpYi9VZWZpTGliLmMNCj4gPj4+Pj4+IEBA IC0xNTE0LDcgKzE1MTQsNyBAQCBDSEFSOCAqDQo+ID4+Pj4+PiAgRUZJQVBJDQo+ID4+Pj4+PiAg R2V0QmVzdExhbmd1YWdlICgNCj4gPj4+Pj4+ICAgIElOIENPTlNUIENIQVI4ICAqU3VwcG9ydGVk TGFuZ3VhZ2VzLA0KPiA+Pj4+Pj4gLSAgSU4gQk9PTEVBTiAgICAgIElzbzYzOUxhbmd1YWdlLA0K PiA+Pj4+Pj4gKyAgSU4gVUlOVE4gICAgICBJc282MzlMYW5ndWFnZSwNCj4gPj4+Pj4+ICAgIC4u Lg0KPiA+Pj4+Pj4gICAgKQ0KPiA+Pj4+Pj4gIHsNCj4gPj4+Pj4+IC0tDQo+ID4+Pj4+PiAyLjcu NA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fDQo+ID4+Pj4+PiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+Pj4+Pj4g ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPj4+Pj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21h aWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QN Cj4gPj4+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+Pj4+IGh0dHBzOi8vbGlzdHMuMDEu b3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+Pj4+DQo+ID4+Pg0KPiANCj4gX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZl bCBtYWlsaW5nIGxpc3QNCj4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9lZGsyLWRldmVsDQo=