From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.120, mailfrom: zhichao.gao@intel.com) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by groups.io with SMTP; Thu, 25 Apr 2019 08:21:27 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Apr 2019 08:21:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,394,1549958400"; d="scan'208";a="164808447" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by fmsmga002.fm.intel.com with ESMTP; 25 Apr 2019 08:21:26 -0700 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 25 Apr 2019 08:21:26 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 25 Apr 2019 08:21:26 -0700 Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.164]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.42]) with mapi id 14.03.0415.000; Thu, 25 Apr 2019 23:21:24 +0800 From: "Gao, Zhichao" To: 'Laszlo Ersek' , "devel@edk2.groups.io" CC: Aaron Antone , "Wang, Jian J" , "Wu, Hao A" , "Ni, Ray" , "Zeng, Star" , "Gao, Liming" , Sean Brogan , "Michael Turner" , Bret Barkelew Subject: Re: [edk2-devel] [PATCH V2 2/2] MdeModulePkg/GraphicsConsoleDxe: Do not clean the screen Thread-Topic: [edk2-devel] [PATCH V2 2/2] MdeModulePkg/GraphicsConsoleDxe: Do not clean the screen Thread-Index: AQHU+duHALd3AD4NKk6L95UEJQ1RGqZKiU7ggAAMswCAAAahAIAB3Sqg Date: Thu, 25 Apr 2019 15:21:23 +0000 Message-ID: <3CE959C139B4C44DBEA1810E3AA6F9000B7C4343@SHSMSX101.ccr.corp.intel.com> References: <20190423070450.1892-1-zhichao.gao@intel.com> <20190423070450.1892-3-zhichao.gao@intel.com> <1e606f64-af5b-494b-e497-eef0b2f0fe7a@redhat.com> <3CE959C139B4C44DBEA1810E3AA6F9000B7C3D2E@SHSMSX101.ccr.corp.intel.com> <68fcdf22-a6d8-85ba-8992-9aca4b5293b9@redhat.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: zhichao.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgTGFzemxvLA0KDQpUaGFua3MgZm9yIHlvdXIgdGhvdWdodHMgYW5kIHRoZSBzcGVjaWZpYyBk ZXNjcmlwdGlvbi4NCg0KU2VlbXMgeW91IG9mZmVyIHRocmVlIG1ldGhvZHMgdG8gZW5hYmxlIGFu ZCB0aGVuIGRpc2FibGUgdGhlIHNjcmVlbiBjbGVhci4NCjEuIFByb3RvY29sIHdpdGggZGF0YSBv bmx5DQoyLiBCb29sZWFuIGdsb2JhbCB2YXJpYWJsZSB0cmlnZ2VyIGJ5IGV2ZW50DQozLiBQY2Qg Qm9vbGVhbiB2YWx1ZShmb3IgdGhlIHBjZCBwcm90b2NvbCBkZXBleCwgSSB0aGluayBpdCBpcyBm aW5lIHRvIHVzZSBpdCwgdGhlcmUgc29tZSBvdGhlciB1ZWZpIGRyaXZlciBzdWNoIGFzIFBjaUJ1 c0R4ZSB1c2luZyBQY2RMaWIgd291bGQgYXV0b21hdGljIGluY2x1ZGUgdGhlIGRlcGV4KQ0KSWYg d2Ugd2FudCB0byBjaGFuZ2UgdGhlIGNvbnRyb2wgdmFsdWUsIHdlIHNob3VsZCBkbyB0aGUgY2hh bmdlIG9wZXJhdGlvbiBhdCBCZWZvcmVDb25zb2xlIGFuZCBBZnRlckNvbnNvbGUuDQpCdXQgSSB3 YW50IHRvIGtub3cgaWYgaXQgaXMgY29tcGF0aWJsZSB3aXRoIHRoZSBzcGVjIHdoaWxlIHdlIHBy b3ZpZGUgYSBhcHByb2FjaCB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIGluIHRoZSBzcGVjLiBFdmVu IHRob3VnaCBtb3N0IGNvbnN1bWVycyB3b3VsZCBub3QgZG8gdGhhdC4NCg0KVGhhbmtzLA0KWmhp Y2hhbw0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IExhc3psbyBFcnNl ayBbbWFpbHRvOmxlcnNla0ByZWRoYXQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDI0 LCAyMDE5IDY6NDggUE0NCj4gVG86IEdhbywgWmhpY2hhbyA8emhpY2hhby5nYW9AaW50ZWwuY29t PjsgZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4gQ2M6IEFhcm9uIEFudG9uZSA8YWFudG9uQG1pY3Jv c29mdC5jb20+OyBXYW5nLCBKaWFuIEoNCj4gPGppYW4uai53YW5nQGludGVsLmNvbT47IFd1LCBI YW8gQSA8aGFvLmEud3VAaW50ZWwuY29tPjsgTmksIFJheQ0KPiA8cmF5Lm5pQGludGVsLmNvbT47 IFplbmcsIFN0YXIgPHN0YXIuemVuZ0BpbnRlbC5jb20+OyBHYW8sIExpbWluZw0KPiA8bGltaW5n Lmdhb0BpbnRlbC5jb20+OyBTZWFuIEJyb2dhbiA8c2Vhbi5icm9nYW5AbWljcm9zb2Z0LmNvbT47 DQo+IE1pY2hhZWwgVHVybmVyIDxNaWNoYWVsLlR1cm5lckBtaWNyb3NvZnQuY29tPjsgQnJldCBC YXJrZWxldw0KPiA8QnJldC5CYXJrZWxld0BtaWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBSZTog W2VkazItZGV2ZWxdIFtQQVRDSCBWMiAyLzJdDQo+IE1kZU1vZHVsZVBrZy9HcmFwaGljc0NvbnNv bGVEeGU6IERvIG5vdCBjbGVhbiB0aGUgc2NyZWVuDQo+IA0KPiBPbiAwNC8yNC8xOSAxMjoyNCwg TGFzemxvIEVyc2VrIHdyb3RlOg0KPiANCj4gPiAuLi4gQWN0dWFsbHksIHlvdSBtZW50aW9uICJ0 aGUgcGhhc2UgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlDQo+ID4gUGxhdGZvcm1Cb290TWFuYWdlckFm dGVyQ29uc29sZSgpIGlzIHRoZSBiZXN0IGNob2ljZSIuIFNvIGhvdyBhYm91dA0KPiA+IHRoZSBm b2xsb3dpbmcgYXBwcm9hY2g6DQo+ID4NCj4gPiAoMSkgSW50cm9kdWNlIGEgbmV3IHByb3RvY29s IChhbiBlZGsyIGV4dGVuc2lvbikuIFRoZSBVRUZJIHByb3RvY29sDQo+ID4gZGF0YWJhc2UgaXMg c3VwcG9zZWQgdG8gY29udGFpbiAqYXQgbW9zdCogb25lIGluc3RhbmNlIG9mIHRoaXMNCj4gPiBw cm90b2NvbCwgYXQgYW55IHRpbWUuDQo+ID4NCj4gPiAoMikgVGhlIHByb3RvY29sIHNob3VsZCBj b25zaXN0IG9mIGEgQk9PTEVBTiBmaWVsZCBvbmx5LiAoWW91IGNhbiBhZGQNCj4gPiBhICJyZXZp c2lvbiIgZmllbGQgYXQgdGhlIGJlZ2lubmluZyB0b28sIGlmIHlvdSBsaWtlLikNCj4gPg0KPiA+ ICgzKSBJbiBHcmFwaGljc0NvbnNvbGVEeGUsIHdoaWNoIGlzIGEgVUVGSSBkcml2ZXIsIHlvdSB0 cnkgdG8gbG9jYXRlDQo+ID4gdGhlIHByb3RvY29sIGF0IHRoZSByaWdodCBzcG90IC0tIHdoZW4g U2V0TW9kZSBpcyBhYm91dCB0byBjbGVhciB0aGUgc2NyZWVuLg0KPiA+IElmIHRoZSBwcm90b2Nv bCBpbnN0YW5jZSBpcyBtaXNzaW5nLCB0aGVyZSBpcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3INCj4g PiAodGhlIHNjcmVlbiBpcyBjbGVhcmVkKS4gSWYgdGhlIHByb3RvY29sIGluc3RhbmNlIGlzIGF2 YWlsYWJsZSwgYnV0DQo+ID4gdGhlIEJPT0xFQU4gZmllbGQgaXMgPHZhbHVlLTE+LCB0aGVyZSBp cyBubyBjaGFuZ2UgaW4gYmVoYXZpb3IgKHRoZQ0KPiA+IHNjcmVlbiBpcyBjbGVhcmVkKS4gSWYg dGhlIHByb3RvY29sIGluc3RhbmNlIGlzIGF2YWlsYWJsZSwgYW5kIHRoZQ0KPiA+IEJPT0xFQU4g ZmllbGQgaXMgPHZhbHVlLTI+LCB0aGVuIHRoZSBzY3JlZW4gaXMgKm5vdCogY2xlYXJlZC4NCj4g Pg0KPiA+ICg0KSBQbGF0Zm9ybXMgdGhhdCBuZWVkIHRoZSBhbnRpLWZsaWNrZXIgdHdlYWsgYXJl IGV4cGVjdGVkIHRvIGRvIHRoZQ0KPiA+IGZvbGxvd2luZyB0d28gc3RlcHM6DQo+ID4NCj4gPiAo NGEpIGFkZCBhIHBsYXRmb3JtIERYRSBkcml2ZXIgKG9yIG1vZGlmeSBvbmUpIHRvIGluc3RhbGwg dGhlDQo+ID4gcHJvdG9jb2wsIHdpdGggdGhlIEJPT0xFQU4gZmllbGQgc2V0IHRvIDx2YWx1ZS0y Pi4NCj4gPg0KPiA+ICg0YikgYXBwZW5kIG5ldyBsb2dpYyB0byBQbGF0Zm9ybUJvb3RNYW5hZ2Vy QWZ0ZXJDb25zb2xlKCksIGZvcg0KPiA+IGxvY2F0aW5nIHRoZSBwcm90b2NvbCwgYW5kIHNldHRp bmcgdGhlIEJPT0xFQU4gZmllbGQgaW4gaXQgdG8gPHZhbHVlLTE+Lg0KPiANCj4gVHdvIG1vcmUg dGhvdWdodHM6DQo+IA0KPiAqIHJlZ2FyZGluZyAoNGEpLCBpdCdzIG5vdCBuZWNlc3NhcnkgdG8g bW9kaWZ5IChvciBpbnRyb2R1Y2UpIGEgcGxhdGZvcm0gRFhFDQo+IGRyaXZlciBmb3IgaW5zdGFs bGluZyB0aGUgcHJvdG9jb2wsIHdpdGggPHZhbHVlLTI+LiBJIHRoaW5rIGl0IGNhbiBiZSBkb25l IGluDQo+IFBsYXRmb3JtQm9vdE1hbmFnZXJCZWZvcmVDb25zb2xlKCkgYXMgd2VsbC4NCj4gDQo+ IA0KPiAqIHRoZSBuZXcgcHJvdG9jb2wgY291bGQgYmUgcmVwbGNlZCB3aXRoIGEgbmV3IGV2ZW50 IGdyb3VwOg0KPiANCj4gLSBHcmFwaGljc0NvbnNvbGVEeGUgd291bGQgZ2V0IGEgbmV3IGdsb2Jh bCB2YXJpYWJsZSAoYSBCT09MRUFOKSwgd2l0aCB0aGUNCj4gZGVmYXVsdCB2YWx1ZSBtZWFuaW5n ICJjbGVhciBzY3JlZW4gb24gU2V0TW9kZSIuDQo+IA0KPiAtIEdyYXBoaWNzQ29uc29sZUR4ZSB3 b3VsZCBhbHNvIGluc3RhbGwgYW4gZXZlbnQgZ3JvdXAgbm90aWZpY2F0aW9uIGZ1bmN0aW9uLA0K PiBmb3IgKmludmVydGluZyogdGhlIGJvb2xlYW4gdmFyaWFibGUgKGFuZCBkb2luZyBub3RoaW5n IGVsc2UpLg0KPiANCj4gLSBJbiB0aGUgYWZmZWN0ZWQgcGxhdGZvcm1zLCBCZWZvcmVDb25zb2xl IHdvdWxkIHNpZ25hbCB0aGUgbmV3IGV2ZW50IGdyb3VwDQo+IG9uY2UgKHRvIGRpc2FibGUgc2Ny ZWVuIGNsZWFyaW5nIHRlbXBvcmFyaWx5KS4gVGhlbiBBZnRlckNvbnNvbGUgd291bGQgc2lnbmFs DQo+IHRoZSBuZXcgZXZlbnQgZ3JvdXAgb25jZSBtb3JlLCB0byByZXN0b3JlIHRoZSBkZWZhdWx0 IChzdGFuZGFyZHMNCj4gY29uZm9ybWFudCkgYmVoYXZpb3IuDQo+IA0KPiAtIFVuYWZmZWN0ZWQg cGxhdGZvcm1zIHdvdWxkIG5ldmVyIHNpZ25hbCB0aGUgbmV3IGV2ZW50IGdyb3VwOyB0aGV5J2QN Cj4gaWdub3JlIGl0Lg0KPiANCj4gUGVyc29uYWxseSwgSSBsaWtlIHRoZSBwcm90b2NvbCBhcHBy b2FjaCBhIGxvdCBtb3JlLCBiZWNhdXNlIGF0IGFueSBwb2ludCwgeW91DQo+IGNhbiBxdWVyeSB0 aGUgc3RhdGUgb2YgdGhlICJzeXN0ZW0iICg9IHRoZSBwcm90b2NvbCBEQikgd2l0aCBleHRlcm5h bCB1dGlsaXRpZXMuDQo+IFRoZSBuZXcgZXZlbnQgZ3JvdXAgYWxsb3dzIGZvciBtdWNoIGxlc3Mg aW50cm9zcGVjdGlvbiwgbm90IHRvIG1lbnRpb24gdGhhdA0KPiB0aGUgbWVhbmluZyBvZiBzaWdu YWxpbmcgdGhlIGV2ZW50IGdyb3VwIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgc3RhdGUuDQo+IChU aGF0IGNvdWxkIGJlIGF2b2lkZWQgYnkgaW50cm9kdWNpbmcgdHdvIGV2ZW50IGdyb3Vwcywgb25l IGZvciBzZXR0aW5nIHRoZQ0KPiB2YXJpYWJsZSBhbmQgYW5vdGhlciBmb3IgY2xlYXJpbmcgaXQs IGJ1dCB0aGF0J3MgZ2V0dGluZyBiYXJvcXVlIGluIG15IG9waW5pb24uKQ0KPiANCj4gSSdkIGdv IHdpdGggdGhlIG5ldyBwcm90b2NvbCAtLSB5b3UgZG9uJ3QgbmVlZCBHcmFwaGljc0NvbnNvbGVE eGUgdG8gcmVhY3QNCj4gdG8gUGxhdGZvcm1Cb290TWFuYWdlckxpYiB3aXRoIGEgY2FsbGJhY2su DQo+IA0KPiBUaGFua3MNCj4gTGFzemxvDQo+IA0KPiA+DQo+ID4NCj4gPiBBIHZhcmlhbnQgY291 bGQgYmUgdG8gaW50cm9kdWNlIGEgdHJpLXN0YXRlIER5bmFtaWNFeCBQQ0QgLS0NCj4gPiA8dmFs dWUtMD4sIHRoZSBERUMgZGVmYXVsdCwgbWVhbnMgbm8gY2hhbmdlIGluIGJlaGF2aW9yICg9IHRo ZQ0KPiA+IHBsYXRmb3JtIGRvZXNuJ3QgbmVlZCB0aGUgYW50aS1mbGlja2VyIHR3ZWFrKTsgd2hp bGUgPHZhbHVlLTE+IGFuZA0KPiA+IDx2YWx1ZS0yPiB3b3JrIGxpa2UgYWJvdmUuIFRoZSBxdWVz dGlvbiBpcyB3aGV0aGVyIHdlIGFyZSBPSyBhZGRpbmcgYW4NCj4gPiBFRklfUENEX1BST1RPQ09M IGRlcGVuZGVuY3kgdG8gR3JhcGhpY3NDb25zb2xlRHhlLCB3aGljaCBpcyBhIFVFRkkNCj4gPiBk cml2ZXIgKEVGSV9QQ0RfUFJPVE9DT0wgY29tZXMgZnJvbSB0aGUgUEkgc3BlYywgbm90IGZyb20g dGhlIFVFRkkNCj4gc3BlYykuDQo+ID4gSW52ZW50aW5nIGEgbmV3IGVkazIgZXh0ZW5zaW9uIHBy b3RvY29sICh3aXRoIGEgZnJlc2ggcHJvdG9jb2wgR1VJRCkNCj4gPiB3b3VsZCBhdm9pZCB0aGF0 IHByb2JsZW0gLS0gaXQgY291bGQgYmUgaW1wbGVtZW50ZWQgcHVyZWx5IGluIHRlcm1zIG9mDQo+ ID4gdGhlIFVFRkkgc3BlYy4NCj4gPg0KPiA+IFRoYW5rcw0KPiA+IExhc3psbw0KPiA+DQo+ID4+ PiBJIGd1ZXNzIHlvdSBoYXZlIGFscmVhZHkgaW52ZXN0aWdhdGVkIGFkZGluZyBhIGJvb2xlYW4g ZmllbGQgdG8NCj4gPj4+IEdSQVBISUNTX0NPTlNPTEVfREVWLCBhbmQgZm91bmQgaXQgdW5zdWl0 YWJsZSBmb3IgdGhvc2UgcGxhdGZvcm1zDQo+ID4+PiB0aGF0IG5lZWQgdGhpcyBhbnRpLWZsaWNr ZXIgdHdlYWsuIFNvIEknbSBub3QgZ29pbmcgdG8gc3VnZ2VzdCBzdWNoDQo+ID4+PiBhIGJvb2xl YW4gZmllbGQgbm93Lg0KPiA+Pj4NCj4gPj4+IEluc3RlYWQsIEkgcHJvcG9zZSBhIFBDRCAoZmVh dHVyZSBQQ0Qgb3IgZHluYW1pYyBib29sZWFuIFBDRCkuIElmDQo+ID4+PiB5b3UgYWRkIGEgUENE LCBJIHdvbid0IGNhcmUgYWJvdXQgdGhlIHBhcnRpY3VsYXJzIG9mIHRoaXMgcGF0Y2gsIGFzDQo+ ID4+PiBsb25nIGFzIHBsYXRmb3JtcyBjb250aW51ZSBvYnNlcnZpbmcgdGhlIHN0ZCBjb25mb3Jt YW50IGJlaGF2aW9yLA0KPiA+Pj4gdW5kZXIgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlIFBDRCAo aS5lLiwgZnJvbSAiTWRlTW9kdWxlUGtnLmRlYyIpLg0KPiA+Pj4NCj4gPj4+IFRoYW5rcywNCj4g Pj4+IExhc3psbw0KPiA+Pj4NCj4gPj4+PiBDYzogSmlhbiBKIFdhbmcgPGppYW4uai53YW5nQGlu dGVsLmNvbT4NCj4gPj4+PiBDYzogSGFvIFd1IDxoYW8uYS53dUBpbnRlbC5jb20+DQo+ID4+Pj4g Q2M6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCj4gPj4+PiBDYzogU3RhciBaZW5nIDxzdGFy LnplbmdAaW50ZWwuY29tPg0KPiA+Pj4+IENjOiBMaW1pbmcgR2FvIDxsaW1pbmcuZ2FvQGludGVs LmNvbT4NCj4gPj4+PiBDYzogU2VhbiBCcm9nYW4gPHNlYW4uYnJvZ2FuQG1pY3Jvc29mdC5jb20+ DQo+ID4+Pj4gQ2M6IE1pY2hhZWwgVHVybmVyIDxNaWNoYWVsLlR1cm5lckBtaWNyb3NvZnQuY29t Pg0KPiA+Pj4+IENjOiBCcmV0IEJhcmtlbGV3IDxCcmV0LkJhcmtlbGV3QG1pY3Jvc29mdC5jb20+ DQo+ID4+Pj4gQ2M6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+ID4+Pj4gU2ln bmVkLW9mZi1ieTogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNvbT4NCj4gPj4+PiAt LS0NCj4gPj4+PiAgLi4uL0dyYXBoaWNzQ29uc29sZUR4ZS9HcmFwaGljc0NvbnNvbGUuYyAgICAg IHwgODIgKysrKysrKysrKysrKy0tLS0NCj4gLS0NCj4gPj4+PiAgLi4uL0dyYXBoaWNzQ29uc29s ZUR4ZS9HcmFwaGljc0NvbnNvbGVEeGUuaW5mIHwgIDMgKw0KPiA+Pj4+ICAyIGZpbGVzIGNoYW5n ZWQsIDYyIGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQ0KPiA+Pj4+DQo+ID4+Pj4gZGlm ZiAtLWdpdA0KPiA+Pj4+DQo+ID4+Pg0KPiBhL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ29uc29s ZS9HcmFwaGljc0NvbnNvbGVEeGUvR3JhcGhpY3NDb25zb2xlDQo+ID4+PiAuYw0KPiA+Pj4+DQo+ ID4+Pg0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwvQ29uc29sZS9HcmFwaGljc0NvbnNvbGVE eGUvR3JhcGhpY3NDb25zb2wNCj4gPj4+IGUuYw0KPiA+Pj4+IGluZGV4IDI2ZWExOWYzMDAuLjM5 YTk5OTgzOGMgMTAwNjQ0DQo+ID4+Pj4gLS0tDQo+ID4+Pj4NCj4gPj4+DQo+IGEvTWRlTW9kdWxl UGtnL1VuaXZlcnNhbC9Db25zb2xlL0dyYXBoaWNzQ29uc29sZUR4ZS9HcmFwaGljc0NvbnNvbGUN Cj4gPj4+IC5jDQo+ID4+Pj4gKysrDQo+ID4+Pg0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwv Q29uc29sZS9HcmFwaGljc0NvbnNvbGVEeGUvR3JhcGhpY3NDb25zb2wNCj4gPj4+PiArKysgZS5j DQo+ID4+Pj4gQEAgLTEsNyArMSw3IEBADQo+ID4+Pj4gIC8qKiBAZmlsZQ0KPiA+Pj4+ICAgIFRo aXMgaXMgdGhlIG1haW4gcm91dGluZSBmb3IgaW5pdGlhbGl6aW5nIHRoZSBHcmFwaGljcyBDb25z b2xlDQo+ID4+Pj4gc3VwcG9ydA0KPiA+Pj4gcm91dGluZXMuDQo+ID4+Pj4NCj4gPj4+PiAtQ29w eXJpZ2h0IChjKSAyMDA2IC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMNCj4g Pj4+PiByZXNlcnZlZC48QlI+DQo+ID4+Pj4gK0NvcHlyaWdodCAoYykgMjAwNiAtIDIwMTksIElu dGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+ID4+Pj4gK3Jlc2VydmVkLjxCUj4NCj4gPj4+ PiAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQNCj4gPj4+Pg0K PiA+Pj4+ICAqKi8NCj4gPj4+PiBAQCAtOTYsNiArOTYsMTIgQEAgRUZJX0RSSVZFUl9CSU5ESU5H X1BST1RPQ09MDQo+ID4+PiBnR3JhcGhpY3NDb25zb2xlRHJpdmVyQmluZGluZyA9IHsNCj4gPj4+ PiAgICBOVUxMDQo+ID4+Pj4gIH07DQo+ID4+Pj4NCj4gPj4+PiArLy8NCj4gPj4+PiArLy8gRXZl bnQgYW5kIHZhcmlhYmxlIHRvIGluZGljYXRlIHRoZSBib290IHBoYXNlLg0KPiA+Pj4+ICsvLw0K PiA+Pj4+ICtFRklfRVZFTlQgICBtR3JhcGhpY3NDb25zb2xlUmVhZHlUb0Jvb3RFdmVudDsNCj4g Pj4+PiArQk9PTEVBTiAgICAgbUdyYXBoaWNzQ29uc29sZVJlYWR5VG9Cb290ICAgICAgID0gRkFM U0U7DQo+ID4+Pj4gKw0KPiA+Pj4+ICAvKioNCj4gPj4+PiAgICBUZXN0IHRvIHNlZSBpZiBHcmFw aGljcyBDb25zb2xlIGNvdWxkIGJlIHN1cHBvcnRlZCBvbiB0aGUgQ29udHJvbGxlci4NCj4gPj4+ Pg0KPiA+Pj4+IEBAIC01NjcsMTYgKzU3Myw3IEBAIEdyYXBoaWNzQ29uc29sZUNvbnRyb2xsZXJE cml2ZXJTdGFydCAoDQo+ID4+Pj4gICAgLy8NCj4gPj4+PiAgICBQcml2YXRlLT5TaW1wbGVUZXh0 T3V0cHV0TW9kZS5NYXhNb2RlID0gKElOVDMyKSBNYXhNb2RlOw0KPiA+Pj4+DQo+ID4+Pj4gLSAg REVCVUdfQ09ERV9CRUdJTiAoKTsNCj4gPj4+PiAtICAgIFN0YXR1cyA9IEdyYXBoaWNzQ29uc29s ZUNvbk91dFNldE1vZGUgKCZQcml2YXRlLQ0KPiA+Pj4+IFNpbXBsZVRleHRPdXRwdXQsIDApOw0K PiA+Pj4+IC0gICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+Pj4+IC0gICAgICBnb3Rv IEVycm9yOw0KPiA+Pj4+IC0gICAgfQ0KPiA+Pj4+IC0gICAgU3RhdHVzID0gR3JhcGhpY3NDb25z b2xlQ29uT3V0T3V0cHV0U3RyaW5nICgmUHJpdmF0ZS0NCj4gPj4+PiBTaW1wbGVUZXh0T3V0cHV0 LCAoQ0hBUjE2ICopTCJHcmFwaGljcyBDb25zb2xlIFN0YXJ0ZWRcblxyIik7DQo+ID4+Pj4gLSAg ICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+Pj4gLSAgICAgIGdvdG8gRXJyb3I7DQo+ ID4+Pj4gLSAgICB9DQo+ID4+Pj4gLSAgREVCVUdfQ09ERV9FTkQgKCk7DQo+ID4+Pj4gKyAgREVC VUcgKChERUJVR19JTkZPLCAiR3JhcGhpY3MgQ29uc29sZSBTdGFydGVkIVxuXHIiKSk7DQo+ID4+ Pj4NCj4gPj4+PiAgICAvLw0KPiA+Pj4+ICAgIC8vIEluc3RhbGwgcHJvdG9jb2wgaW50ZXJmYWNl cyBmb3IgdGhlIEdyYXBoaWNzIENvbnNvbGUgZGV2aWNlLg0KPiA+Pj4+IEBAIC0xMzY2LDE4ICsx MzYzLDI2IEBAIEdyYXBoaWNzQ29uc29sZUNvbk91dFNldE1vZGUgKA0KPiA+Pj4+ICAgICAgICAv Lw0KPiA+Pj4+ICAgICAgICAvLyBUaGUgY3VycmVudCBncmFwaGljcyBtb2RlIGlzIGNvcnJlY3Qs IHNvIHNpbXBseSBjbGVhciB0aGUNCj4gPj4+PiBlbnRpcmUNCj4gPj4+IGRpc3BsYXkNCj4gPj4+ PiAgICAgICAgLy8NCj4gPj4+PiAtICAgICAgU3RhdHVzID0gR3JhcGhpY3NPdXRwdXQtPkJsdCAo DQo+ID4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3NPdXRwdXQsDQo+ID4+ Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgJm1HcmFwaGljc0VmaUNvbG9yc1swXSwNCj4g Pj4+PiAtICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlCbHRWaWRlb0ZpbGwsDQo+ID4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gPj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICAwLA0KPiA+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgIDAsDQo+ID4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gPj4+PiAtICAgICAgICAgICAgICAgICAg ICAgICAgICBNb2RlRGF0YS0+R29wV2lkdGgsDQo+ID4+Pj4gLSAgICAgICAgICAgICAgICAgICAg ICAgICAgTW9kZURhdGEtPkdvcEhlaWdodCwNCj4gPj4+PiAtICAgICAgICAgICAgICAgICAgICAg ICAgICAwDQo+ID4+Pj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgKTsNCj4gPj4+PiArICAg ICAgLy8NCj4gPj4+PiArICAgICAgLy8gRm9yIHRoZSBmaXJzdCB0aW1lIGJvb3Qgc3lzdGVtLCBk byBub3QgY2xlYXIgdGhlIGRpc3BsYXkuDQo+ID4+Pj4gKyAgICAgIC8vIFNvbWUgcGxhdGZvcm1z IHdvdWxkIHNob3cgbG9nbyBhdCBQRUlNIGFuZCB0aGlzIHdvdWxkIGNsZWFyDQo+ID4+Pj4gKyAg ICAgIC8vIHRoZSB3aG9sZSBzY3JlZW4uIFNvIGZvciBmaXJzdCBib290IHNldCBtb2RlLCBkbyBu b3QgY2xlYXINCj4gPj4+PiArICAgICAgLy8gdGhlIHNjcmVlbi4NCj4gPj4+PiArICAgICAgLy8N Cj4gPj4+PiArICAgICAgaWYgKFRoaXMtPk1vZGUtPk1vZGUgIT0gLTEgfHwgbUdyYXBoaWNzQ29u c29sZVJlYWR5VG9Cb290KSB7DQo+ID4+Pj4gKyAgICAgICAgU3RhdHVzID0gR3JhcGhpY3NPdXRw dXQtPkJsdCAoDQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHcmFwaGljc091 dHB1dCwNCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICZtR3JhcGhpY3NFZmlD b2xvcnNbMF0sDQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBFZmlCbHRWaWRl b0ZpbGwsDQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KPiA+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCj4gPj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDAsDQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLA0KPiA+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kZURhdGEtPkdvcFdpZHRoLA0KPiA+ Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9kZURhdGEtPkdvcEhlaWdodCwNCj4g Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIDANCj4gPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICk7DQo+ID4+Pj4gKyAgICAgIH0NCj4gPj4+PiAgICAgIH0NCj4gPj4+ PiAgICB9IGVsc2UgaWYgKEZlYXR1cmVQY2RHZXQgKFBjZFVnYUNvbnN1bWVTdXBwb3J0KSkgew0K PiA+Pj4+ICAgICAgLy8NCj4gPj4+PiBAQCAtMjA2NSw2ICsyMDcwLDI0IEBAIFJlZ2lzdGVyRm9u dFBhY2thZ2UgKA0KPiA+Pj4+ICAgIEZyZWVQb29sIChQYWNrYWdlKTsNCj4gPj4+PiAgfQ0KPiA+ Pj4+DQo+ID4+Pj4gKy8qKg0KPiA+Pj4+ICsgIEluZGljYXRlIHRoZSBCb290IHBoYXNlIGlzIGF0 IFJlYWR5VG9Cb290Lg0KPiA+Pj4+ICsNCj4gPj4+PiArICBAcGFyYW1baW5dICBFdmVudCAgIFRo ZSBFdmVudCB0aGF0IGlzIGJlaW5nIHByb2Nlc3NlZC4NCj4gPj4+PiArICBAcGFyYW1baW5dICBD b250ZXh0IFRoZSBFdmVudCBDb250ZXh0Lg0KPiA+Pj4+ICsNCj4gPj4+PiArKiovDQo+ID4+Pj4g K1ZPSUQNCj4gPj4+PiArR3JhcGhpY3NDb25zb2xlUmVhZHlUb0Jvb3RFdmVudCAoDQo+ID4+Pj4g KyAgSU4gRUZJX0VWRU5UICAgICAgICBFdmVudCwNCj4gPj4+PiArICBJTiBWT0lEICAgICAgICAg ICAgICpDb250ZXh0DQo+ID4+Pj4gKyAgKQ0KPiA+Pj4+ICt7DQo+ID4+Pj4gKyAgbUdyYXBoaWNz Q29uc29sZVJlYWR5VG9Cb290ID0gVFJVRTsNCj4gPj4+PiArDQo+ID4+Pj4gKyAgZ0JTLT5DbG9z ZUV2ZW50IChtR3JhcGhpY3NDb25zb2xlUmVhZHlUb0Jvb3RFdmVudCk7DQo+ID4+Pj4gK30NCj4g Pj4+PiArDQo+ID4+Pj4gIC8qKg0KPiA+Pj4+ICAgIFRoZSB1c2VyIEVudHJ5IFBvaW50IGZvciBt b2R1bGUgR3JhcGhpY3NDb25zb2xlLiBUaGUgdXNlciBjb2RlDQo+ID4+Pj4gc3RhcnRzDQo+ID4+ PiB3aXRoIHRoaXMgZnVuY3Rpb24uDQo+ID4+Pj4NCj4gPj4+PiBAQCAtMjA5NSw2ICsyMTE4LDE5 IEBAIEluaXRpYWxpemVHcmFwaGljc0NvbnNvbGUgKA0KPiA+Pj4+ICAgICAgJm1IaWlSZWdpc3Ry YXRpb24NCj4gPj4+PiAgICAgICk7DQo+ID4+Pj4NCj4gPj4+PiArICAvLw0KPiA+Pj4+ICsgIC8v IENyZWF0ZSBhIGV2ZW50IGZ1bmN0aW9uIG9mIFJlYWR5VG9Cb290IHRvIGF2b2lkIGNsZWFyaW5n DQo+ID4+Pj4gKyBzY3JlZW4gYmVmb3JlIGJvb3QgIC8vICBTdGF0dXMgPSBnQlMtPkNyZWF0ZUV2 ZW50RXggKA0KPiA+Pj4+ICsgICAgICAgICAgICAgICAgICBFVlRfTk9USUZZX1NJR05BTCwNCj4g Pj4+PiArICAgICAgICAgICAgICAgICAgVFBMX05PVElGWSwNCj4gPj4+PiArICAgICAgICAgICAg ICAgICAgR3JhcGhpY3NDb25zb2xlUmVhZHlUb0Jvb3RFdmVudCwNCj4gPj4+PiArICAgICAgICAg ICAgICAgICAgTlVMTCwNCj4gPj4+PiArICAgICAgICAgICAgICAgICAgJmdFZmlFdmVudFJlYWR5 VG9Cb290R3VpZCwNCj4gPj4+PiArICAgICAgICAgICAgICAgICAgJm1HcmFwaGljc0NvbnNvbGVS ZWFkeVRvQm9vdEV2ZW50DQo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICk7DQo+ID4+Pj4gKyAg QVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gPj4+PiArDQo+ID4+Pj4gICAgLy8NCj4gPj4+ PiAgICAvLyBJbnN0YWxsIGRyaXZlciBtb2RlbCBwcm90b2NvbChzKS4NCj4gPj4+PiAgICAvLw0K PiA+Pj4+IGRpZmYgLS1naXQNCj4gPj4+Pg0KPiA+Pj4NCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVy c2FsL0NvbnNvbGUvR3JhcGhpY3NDb25zb2xlRHhlL0dyYXBoaWNzQ29uc29sZQ0KPiA+Pj4gRHhl DQo+ID4+Pj4gLmluZg0KPiA+Pj4+DQo+ID4+Pg0KPiBiL01kZU1vZHVsZVBrZy9Vbml2ZXJzYWwv Q29uc29sZS9HcmFwaGljc0NvbnNvbGVEeGUvR3JhcGhpY3NDb25zb2wNCj4gPj4+IGVEeGUNCj4g Pj4+PiAuaW5mDQo+ID4+Pj4gaW5kZXggZjdjYWE2NWFhOS4uNTk3NTE4OTNmNiAxMDA2NDQNCj4g Pj4+PiAtLS0NCj4gPj4+Pg0KPiA+Pj4NCj4gYS9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NvbnNv bGUvR3JhcGhpY3NDb25zb2xlRHhlL0dyYXBoaWNzQ29uc29sZQ0KPiA+Pj4gRHhlDQo+ID4+Pj4g LmluZg0KPiA+Pj4+ICsrKw0KPiA+Pj4NCj4gYi9NZGVNb2R1bGVQa2cvVW5pdmVyc2FsL0NvbnNv bGUvR3JhcGhpY3NDb25zb2xlRHhlL0dyYXBoaWNzQ29uc29sDQo+ID4+Pj4gKysrIGVEeGUuaW5m DQo+ID4+Pj4gQEAgLTQ5LDYgKzQ5LDkgQEANCj4gPj4+PiAgICBIaWlMaWINCj4gPj4+PiAgICBQ Y2RMaWINCj4gPj4+Pg0KPiA+Pj4+ICtbR3VpZHNdDQo+ID4+Pj4gKyAgZ0VmaUV2ZW50UmVhZHlU b0Jvb3RHdWlkICAgICAgICAgICAgICAgICAgICAgICMjIENPTlNVTUVTDQo+ID4+Pj4gKw0KPiA+ Pj4+ICBbUHJvdG9jb2xzXQ0KPiA+Pj4+ICAgIGdFZmlEZXZpY2VQYXRoUHJvdG9jb2xHdWlkICAg ICAgICAgICAgICAgICAgICAjIyBUT19TVEFSVA0KPiA+Pj4+ICAgIGdFZmlTaW1wbGVUZXh0T3V0 UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAjIyBCWV9TVEFSVA0KPiA+Pj4+DQo+ID4+Pg0K PiA+Pj4NCj4gPj4+IA0KPiA+Pg0KPiA+DQoNCg==