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.136, mailfrom: liming.gao@intel.com) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by groups.io with SMTP; Tue, 06 Aug 2019 21:52:17 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Aug 2019 21:52:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,356,1559545200"; d="scan'208";a="258242902" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga001.jf.intel.com with ESMTP; 06 Aug 2019 21:52:16 -0700 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 6 Aug 2019 21:52:16 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.439.0; Tue, 6 Aug 2019 21:52:15 -0700 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.112]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.80]) with mapi id 14.03.0439.000; Wed, 7 Aug 2019 12:52:13 +0800 From: "Liming Gao" To: "Ni, Ray" , "Chen, Marc W" , "devel@edk2.groups.io" , "lersek@redhat.com" CC: "Kinney, Michael D" , "Gao, Liming" Subject: Re: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Topic: [edk2-devel] [PATCH] MdePkg: Add MmAccess and MmControl definition. Thread-Index: AQHVRcW+DNj93F0Ff0OTbvaK1JyqQqbl/g2wgAABaiCAAAEfIP//jrCAgAADE4CAAQvmAIAGudOAgAAUJYCAAb7DYA== Date: Wed, 7 Aug 2019 04:52:13 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4C9975@SHSMSX104.ccr.corp.intel.com> References: <20190729042556.17692-1-marc.w.chen@intel.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E4C7400@SHSMSX104.ccr.corp.intel.com> <734D49CCEBEEF84792F5B80ED585239D5C267BB4@SHSMSX104.ccr.corp.intel.com> <211b95ba-703d-4561-c2bc-891e02d0ec2b@redhat.com> <734D49CCEBEEF84792F5B80ED585239D5C27417F@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <734D49CCEBEEF84792F5B80ED585239D5C27417F@SHSMSX104.ccr.corp.intel.com> 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: liming.gao@intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmF5Og0KICBJIGFncmVlIE1hcmMgb3B0aW9uIHRvIGtlZXAgU01NIGRlZmluaXRpb24gYW5kIGtl ZXAgU21tQWNjZXNzLmggaW4gTWRlTW9kdWxlUGtnLiANCiAgQW5kLCB0aGlzIGhlYWRlciBmaWxl IGNhbiBiZSB1cGRhdGVkIHRvIHJlZmVyIHRoZSBkZWZpbml0aW9uIGluIE1tQWNjZXNzLmggZnJv bSBNZGVQa2cuIA0KICBUaGlzIHdheSBhbGlnbnMgdG8gY3VycmVudCBTTU0gZGVmaW5pdGlvbiBp biBNZGVQa2cuIA0KDQpUaGFua3MNCkxpbWluZw0KPi0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+RnJvbTogTmksIFJheQ0KPlNlbnQ6IFR1ZXNkYXksIEF1Z3VzdCAwNiwgMjAxOSA2OjA5IFBN DQo+VG86IENoZW4sIE1hcmMgVyA8bWFyYy53LmNoZW5AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5n cm91cHMuaW87DQo+bGVyc2VrQHJlZGhhdC5jb207IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGlu dGVsLmNvbT4NCj5DYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPg0KPlN1YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFj Y2VzcyBhbmQgTW1Db250cm9sDQo+ZGVmaW5pdGlvbi4NCj4NCj5MYXN6bG8sDQo+RG8geW91IHdh bnQgdG8gYXZvaWQgdG91Y2hpbmcgdGhlIE92bWZQa2cgZHVlIHRoZSBmaWxlIHJlbW92YWwgaW4N Cj5NZGVNb2R1bGVQa2c/DQo+DQo+SSBwcmVmZXIgdG8gcmVtb3ZlIHRoZSBmaWxlcyBpbiBNZGVN b2R1bGVQa2cgdG8gYXZvaWQgZnV0dXJlIGNvbmZ1c2lvbi4NCj4NCj5UaGFua3MsDQo+UmF5DQo+ DQo+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gRnJvbTogQ2hlbiwgTWFyYyBXDQo+ PiBTZW50OiBUdWVzZGF5LCBBdWd1c3QgNiwgMjAxOSA0OjU3IFBNDQo+PiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IGxlcnNla0ByZWRoYXQuY29tOyBOaSwgUmF5IDxyYXkubmlAaW50ZWwuY29t PjsNCj4+IEdhbywgTGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4+IENjOiBLaW5uZXks IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+PiBTdWJqZWN0OiBSRTog W2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kIE1tQ29udHJvbA0K Pj4gZGVmaW5pdGlvbi4NCj4+DQo+PiBIaSBMaW1pbmcgYW5kIFJheQ0KPj4NCj4+IERvIHlvdSBh bHNvIGFncmVlPw0KPj4NCj4+IFRoYW5rcywNCj4+IE1hcmMNCj4+DQo+PiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+PiA+IEZyb206IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBl ZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9mIExhc3psbw0KPj4gPiBFcnNlaw0KPj4gPiBTZW50 OiBGcmlkYXksIEF1Z3VzdCAyLCAyMDE5IDEwOjE0IEFNDQo+PiA+IFRvOiBkZXZlbEBlZGsyLmdy b3Vwcy5pbzsgQ2hlbiwgTWFyYyBXIDxtYXJjLncuY2hlbkBpbnRlbC5jb20+OyBOaSwNCj4+ID4g UmF5IDxyYXkubmlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29t Pg0KPj4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KPj4gPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1B Y2Nlc3MgYW5kDQo+PiBNbUNvbnRyb2wNCj4+ID4gZGVmaW5pdGlvbi4NCj4+ID4NCj4+ID4gT24g MDgvMDEvMTkgMTI6MTUsIE1hcmMgVyBDaGVuIHdyb3RlOg0KPj4gPiA+IFllcywgbXkgcHVycG9z ZSBpcyB0byBhdm9pZCBwbGF0Zm9ybSBjb2RlIHVwZGF0ZSBpZiB0aGUgcGFja2FnZSBpcw0KPj4g PiA+IGFsbG93ZWQNCj4+ID4gdG8gdXNlIE1kZU1vZHVsZVBrZyBsaWtlIE92bWZQa2cuDQo+PiA+ ID4gRm9yIHRob3NlIHBhY2thZ2VzIHRoYXQgY2Fubm90IGRlcGVuZCBvbiBNZGVNb2R1bGVQa2cg bXVzdCBjaGFuZ2UNCj4+IHRvDQo+PiA+IHVzZSBuZXcgZGVmaW5pdGlvbi4NCj4+ID4NCj4+ID4g QWdyZWVkLg0KPj4gPg0KPj4gPiBUaGFua3MhDQo+PiA+IExhc3psbw0KPj4gPg0KPj4gPiA+PiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPj4gPiA+PiBGcm9tOiBOaSwgUmF5DQo+PiA+ID4+ IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMSwgMjAxOSA2OjA0IFBNDQo+PiA+ID4+IFRvOiBDaGVu LCBNYXJjIFcgPG1hcmMudy5jaGVuQGludGVsLmNvbT47IEdhbywgTGltaW5nDQo+PiA+ID4+IDxs aW1pbmcuZ2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+PiA+ID4+IENjOiBL aW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+PiA+ID4+IFN1 YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQN Cj4+ID4gTW1Db250cm9sDQo+PiA+ID4+IGRlZmluaXRpb24uDQo+PiA+ID4+DQo+PiA+ID4+IE1h cmMsDQo+PiA+ID4+IElzIHRoZSBwdXJwb3NlIHRvIGF2b2lkIHBsYXRmb3JtIGNvZGUgdXBkYXRl IHdpdGggdGhlIHdyYXBwZXINCj4+ID4gPj4gaGVhZGVyDQo+PiA+IGZpbGUgaW4NCj4+ID4gPj4g TWRlTW9kdWxlUGtnPw0KPj4gPiA+PiBDZXJ0YWluIHBsYXRmb3JtcyB0aGV5IG1heSByZXF1aXJl IHRvIG5vdCBkZXBlbmQgb24gTWRlTW9kdWxlUGtnDQo+PiA+ID4+IGJ1dCBqdXN0IGRlcGVuZCBv biBNZGVQa2cuDQo+PiA+ID4+IEhhdmluZyBTbW1BY2Nlc3MuaCBpbiBNZGVNb2R1bGVQa2cgZG9l c24ndCBoZWxwLg0KPj4gPiA+Pg0KPj4gPiA+PiBJdCBhbHNvIGJyaW5nIGNvbmZ1c2luZy4NCj4+ ID4gPj4NCj4+ID4gPj4gVGhhbmtzLA0KPj4gPiA+PiBSYXkNCj4+ID4gPj4NCj4+ID4gPj4+IC0t LS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+PiA+ID4+PiBGcm9tOiBDaGVuLCBNYXJjIFcNCj4+ ID4gPj4+IFNlbnQ6IFRodXJzZGF5LCBBdWd1c3QgMSwgMjAxOSA0OjUzIFBNDQo+PiA+ID4+PiBU bzogR2FvLCBMaW1pbmcgPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZGV2ZWxAZWRrMi5ncm91cHMu aW8NCj4+ID4gPj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRl bC5jb20+OyBOaSwgUmF5DQo+PiA+ID4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4+ID4gPj4+IFN1 YmplY3Q6IFJFOiBbZWRrMi1kZXZlbF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQN Cj4+ID4gTW1Db250cm9sDQo+PiA+ID4+PiBkZWZpbml0aW9uLg0KPj4gPiA+Pj4NCj4+ID4gPj4+ IEhpIExpbWluZw0KPj4gPiA+Pj4NCj4+ID4gPj4+IEFub3RoZXIgdGhvdWdodCwgZG8geW91IHRo aW5rIGl0IGlzIG9rIHRvIGtlZXAgU21tQWNjZXNzLmggaW4NCj4+ID4gPj4+IE1kZU1vZHVsZVBr Zz8gV2UgY2FuIHVzZSAjZGVmaW5lIGFuZCB0eXBlZGVmIHRvIGNvbnZlcnQNCj4+IE1tQWNjZXNz DQo+PiA+IHRvDQo+PiA+ID4+PiBTbW1BY2Nlc3MsIGp1c3QgbGlrZSBjdXJyZW50IFNtbUFjY2Vz cyBQcm90b2NvbCBpbiBNZGVQa2cuDQo+PiA+ID4+Pg0KPj4gPiA+Pj4gVGhhbmtzLA0KPj4gPiA+ Pj4gTWFyYw0KPj4gPiA+Pj4NCj4+ID4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K Pj4gPiA+Pj4+IEZyb206IENoZW4sIE1hcmMgVw0KPj4gPiA+Pj4+IFNlbnQ6IFRodXJzZGF5LCBB dWd1c3QgMSwgMjAxOSA0OjQ4IFBNDQo+PiA+ID4+Pj4gVG86IEdhbywgTGltaW5nIDxsaW1pbmcu Z2FvQGludGVsLmNvbT47IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+PiA+ID4+Pj4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT47IE5pLCBSYXkNCj4+ID4g Pj4+PiA8cmF5Lm5pQGludGVsLmNvbT4NCj4+ID4gPj4+PiBTdWJqZWN0OiBSRTogW2VkazItZGV2 ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+PiA+ID4+PiBNbUNvbnRyb2wN Cj4+ID4gPj4+PiBkZWZpbml0aW9uLg0KPj4gPiA+Pj4+DQo+PiA+ID4+Pj4gSGkgTGltaW5nDQo+ PiA+ID4+Pj4NCj4+ID4gPj4+PiBTaW5jZSB0aGVyZSBhcmUgbXVsdGlwbGUgcGFja2FnZXMgYXJl IHN0aWxsIHVzaW5nIFNtbUFjY2Vzcy5oLCB3ZQ0KPj4gPiA+Pj4+IG5lZWQgdG8gY2hhbmdlIGFs bCBwYWNrYWdlcyB0byB1c2UgTW1BY2Nlc3MuaCBpbnN0ZWFkIG9mDQo+PiA+ID4+Pj4gU21tQWNj ZXNzLmggZmlyc3QsIHRoZW4gY2xlYW4gdXAgU21tQWNjZXNzLmggZnJvbQ0KPk1kZU1vZHVsZVBr Zw0KPj4gd2lsbCBiZSB0aGUgbGFzdCBzdGVwLg0KPj4gPiA+Pj4+IEJlbG93IGFyZSB0aGUgcGFj a2FnZXMgdGhhdCBoYXMgImluY2x1ZGUgPFBwaS9TbW1BY2Nlc3MuaD4iIGZvcg0KPj4gPiA+Pj4+ IHlvdXIgcmVmZXJlbmNlLg0KPj4gPiA+Pj4+ICoJRWRrMiByZXBvOg0KPj4gPiA+Pj4+IG8JTWRl TW9kdWxlUGtnDQo+PiA+ID4+Pj4gbwlPdm1mUGtnDQo+PiA+ID4+Pj4gbwlVZWZpQ3B1UGtnDQo+ PiA+ID4+Pj4gKglFZGsyUGxhdGZvcm0gcmVwbzoNCj4+ID4gPj4+PiBvCU1pblBsYXRmb3JtUGtn DQo+PiA+ID4+Pj4gbwlRdWFya1NvY1BrZw0KPj4gPiA+Pj4+DQo+PiA+ID4+Pj4gVGhhbmtzLA0K Pj4gPiA+Pj4+IE1hcmMNCj4+ID4gPj4+Pg0KPj4gPiA+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3Nh Z2UtLS0tLQ0KPj4gPiA+Pj4+PiBGcm9tOiBHYW8sIExpbWluZw0KPj4gPiA+Pj4+PiBTZW50OiBU aHVyc2RheSwgQXVndXN0IDEsIDIwMTkgNDo0MiBQTQ0KPj4gPiA+Pj4+PiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IENoZW4sIE1hcmMgVw0KPjxtYXJjLncuY2hlbkBpbnRlbC5jb20+DQo+PiA+ ID4+Pj4+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBOaSwgUmF5DQo+PiA+ID4+Pj4+IDxyYXkubmlAaW50ZWwuY29tPg0KPj4gPiA+Pj4+PiBTdWJq ZWN0OiBSRTogW2VkazItZGV2ZWxdIFtQQVRDSF0gTWRlUGtnOiBBZGQgTW1BY2Nlc3MgYW5kDQo+ PiA+ID4+PiBNbUNvbnRyb2wNCj4+ID4gPj4+Pj4gZGVmaW5pdGlvbi4NCj4+ID4gPj4+Pj4NCj4+ ID4gPj4+Pj4gTWFyYzoNCj4+ID4gPj4+Pj4gICBUaGUgY2hhbmdlIGlzIGdvb2QuIFJldmlld2Vk LWJ5OiBMaW1pbmcgR2FvDQo+PiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4+ID4gPj4+Pj4N Cj4+ID4gPj4+Pj4gICBCZXNpZGVzLCBJIHNlZSBCWiBhbHNvIG1lbnRpb24gdG8gcmVtb3ZlIHRo ZSBvbmUgaW4NCj4+IE1kZU1vZHVsZVBrZy4NCj4+ID4gPj4+Pj4gSGF2ZSB5b3UgdGhlIGZvbGxv d2luZyBwYXRjaGVzIGZvciB0aGUgY2hhbmdlIGluIE1kZU1vZHVsZVBrZz8NCj4+ID4gPj4+Pj4N Cj4+ID4gPj4+Pj4gVGhhbmtzDQo+PiA+ID4+Pj4+IExpbWluZw0KPj4gPiA+Pj4+Pj4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4+ID4gPj4+Pj4+IEZyb206IGRldmVsQGVkazIuZ3JvdXBz LmlvIFttYWlsdG86ZGV2ZWxAZWRrMi5ncm91cHMuaW9dIE9uDQo+PiA+ID4+IEJlaGFsZg0KPj4g PiA+Pj4+Pj4gT2YgTWFyYyBXIENoZW4NCj4+ID4gPj4+Pj4+IFNlbnQ6IE1vbmRheSwgSnVseSAy OSwgMjAxOSAxMjoyNiBQTQ0KPj4gPiA+Pj4+Pj4gVG86IGRldmVsQGVkazIuZ3JvdXBzLmlvDQo+ PiA+ID4+Pj4+PiBDYzogS2lubmV5LCBNaWNoYWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwu Y29tPjsgR2FvLCBMaW1pbmcNCj4+ID4gPj4+Pj4+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IE5p LCBSYXkgPHJheS5uaUBpbnRlbC5jb20+DQo+PiA+ID4+Pj4+PiBTdWJqZWN0OiBbZWRrMi1kZXZl bF0gW1BBVENIXSBNZGVQa2c6IEFkZCBNbUFjY2VzcyBhbmQNCj4+ID4gPj4gTW1Db250cm9sDQo+ PiA+ID4+Pj4+PiBkZWZpbml0aW9uLg0KPj4gPiA+Pj4+Pj4NCj4+ID4gPj4+Pj4+IEVGSSBNbUFj Y2VzcyBhbmQgTW1Db250cm9sIFBQSXMgYXJlIGRlZmluZWQgaW4gdGhlIFBJIDEuNQ0KPj4gPiA+ Pj4gc3BlY2lmaWNhdGlvbi4NCj4+ID4gPj4+Pj4+DQo+PiA+ID4+Pj4+PiBDYzogTWljaGFlbCBE IEtpbm5leSA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+PiA+ID4+Pj4+PiBDYzogTGlt aW5nIEdhbyA8bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+PiA+ID4+Pj4+PiBDYzogUmF5IE5pIDxy YXkubmlAaW50ZWwuY29tPg0KPj4gPiA+Pj4+Pj4gUmVmOiBodHRwczovL2J1Z3ppbGxhLnRpYW5v Y29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjMNCj4+ID4gPj4+Pj4+IFNpZ25lZC1vZmYtYnk6 IE1hcmMgVyBDaGVuIDxtYXJjLncuY2hlbkBpbnRlbC5jb20+DQo+PiA+ID4+Pj4+PiAtLS0NCj4+ ID4gPj4+Pj4+IE1kZVBrZy9JbmNsdWRlL1BwaS9NbUFjY2Vzcy5oICB8IDE1NQ0KPj4gPiA+Pj4+ Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4+ID4gPj4+Pj4+ IE1kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRyb2wuaCB8ICA5MA0KPj4gPiA+Pj4gKysrKysrKysr KysrKysrKysrKysrKysrDQo+PiA+ID4+Pj4+PiBNZGVQa2cvTWRlUGtnLmRlYyAgICAgICAgICAg ICAgfCAgIDYgKysNCj4+ID4gPj4+Pj4+IDMgZmlsZXMgY2hhbmdlZCwgMjUxIGluc2VydGlvbnMo KykgY3JlYXRlIG1vZGUgMTAwNjQ0DQo+PiA+ID4+Pj4+PiBNZGVQa2cvSW5jbHVkZS9QcGkvTW1B Y2Nlc3MuaCBjcmVhdGUgbW9kZSAxMDA2NDQNCj4+ID4gPj4+Pj4+IE1kZVBrZy9JbmNsdWRlL1Bw aS9NbUNvbnRyb2wuaA0KPj4gPiA+Pj4+Pj4NCj4+ID4gPj4+Pj4+IGRpZmYgLS1naXQgYS9NZGVQ a2cvSW5jbHVkZS9QcGkvTW1BY2Nlc3MuaA0KPj4gPiA+Pj4+Pj4gYi9NZGVQa2cvSW5jbHVkZS9Q cGkvTW1BY2Nlc3MuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPj4gPiA+Pj4+Pj4gMDAw MDAwMDAwMC4uNjM2ZTcyODhhMA0KPj4gPiA+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4gPiA+Pj4+ Pj4gKysrIGIvTWRlUGtnL0luY2x1ZGUvUHBpL01tQWNjZXNzLmgNCj4+ID4gPj4+Pj4+IEBAIC0w LDAgKzEsMTU1IEBADQo+PiA+ID4+Pj4+PiArLyoqIEBmaWxlDQo+PiA+ID4+Pj4+PiArICBFRkkg TU0gQWNjZXNzIFBQSSBkZWZpbml0aW9uLg0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKyAg VGhpcyBQUEkgaXMgdXNlZCB0byBjb250cm9sIHRoZSB2aXNpYmlsaXR5IG9mIHRoZSBNTVJBTSBv bg0KPj4gPiA+Pj4+Pj4gKyB0aGUNCj4+ID4gPj4+IHBsYXRmb3JtLg0KPj4gPiA+Pj4+Pj4gKyAg VGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBhYnN0cmFjdHMgdGhlIGxvY2F0aW9uIGFuZA0KPj4g PiA+Pj4+Pj4gKyBjaGFyYWN0ZXJpc3RpY3MNCj4+ID4gPj4+PiBvZg0KPj4gPiA+Pj4+Pj4gTU1S QU0uIFRoZQ0KPj4gPiA+Pj4+Pj4gKyAgcHJpbmNpcGFsIGZ1bmN0aW9uYWxpdHkgZm91bmQgaW4g dGhlIG1lbW9yeSBjb250cm9sbGVyDQo+PiA+ID4+Pj4+PiArIGluY2x1ZGVzIHRoZQ0KPj4gPiA+ Pj4+PiBmb2xsb3dpbmc6DQo+PiA+ID4+Pj4+PiArICAtIEV4cG9zaW5nIHRoZSBNTVJBTSB0byBh bGwgbm9uLU1NIGFnZW50cywgb3IgdGhlICJvcGVuIg0KPj4gPiA+Pj4+Pj4gKyBzdGF0ZQ0KPj4g PiA+Pj4+Pj4gKyAgLSBTaHJvdWRpbmcgdGhlIE1NUkFNIHRvIGFsbCBidXQgdGhlIE1NIGFnZW50 cywgb3IgdGhlDQo+PiAiY2xvc2VkIg0KPj4gPiA+Pj4+Pj4gKyBzdGF0ZQ0KPj4gPiA+Pj4+Pj4g KyAgLSBQcmVzZXJ2aW5nIHRoZSBzeXN0ZW0gaW50ZWdyaXR5LCBvciAibG9ja2luZyIgdGhlIE1N UkFNLA0KPj4gPiA+Pj4+Pj4gKyBzdWNoIHRoYXQNCj4+ID4gPj4+PiB0aGUNCj4+ID4gPj4+Pj4+ IHNldHRpbmdzIGNhbm5vdCBiZQ0KPj4gPiA+Pj4+Pj4gKyAgICBwZXJ0dXJiZWQgYnkgZWl0aGVy IGJvb3Qgc2VydmljZSBvciBydW50aW1lIGFnZW50cw0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+ Pj4gKyAgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cw0K Pj4gPiA+Pj4+Pj4gKyByZXNlcnZlZC48QlI+DQo+PiA+ID4+Pj4+PiArICBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudA0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+ Pj4gKyAgQHBhciBSZXZpc2lvbiBSZWZlcmVuY2U6DQo+PiA+ID4+Pj4+PiArICBUaGlzIFBQSSBp cyBpbnRyb2R1Y2VkIGluIFBJIFZlcnNpb24gMS41Lg0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+ Pj4gKyoqLw0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKyNpZm5kZWYgX01NX0FDQ0VTU19Q UElfSF8NCj4+ID4gPj4+Pj4+ICsjZGVmaW5lIF9NTV9BQ0NFU1NfUFBJX0hfDQo+PiA+ID4+Pj4+ PiArDQo+PiA+ID4+Pj4+PiArI2RlZmluZSBFRklfUEVJX01NX0FDQ0VTU19QUElfR1VJRCBcDQo+ PiA+ID4+Pj4+PiArICB7IDB4MjY4ZjMzYTksIDB4Y2NjZCwgMHg0OGJlLCB7IDB4ODgsIDB4MTcs IDB4ODYsIDB4NSwgMHgzYSwNCj4+ID4gPj4+Pj4+ICsweGMzLCAweDJlLA0KPj4gPiA+Pj4+Pj4g MHhkNiB9fQ0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gK3R5cGVkZWYgc3RydWN0IF9FRklf UEVJX01NX0FDQ0VTU19QUEkNCj4+IEVGSV9QRUlfTU1fQUNDRVNTX1BQSTsNCj4+ID4gPj4+Pj4+ ICsNCj4+ID4gPj4+Pj4+ICsvKioNCj4+ID4gPj4+Pj4+ICsgIE9wZW5zIHRoZSBNTVJBTSBhcmVh IHRvIGJlIGFjY2Vzc2libGUgYnkgYSBQRUlNLg0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4g KyAgVGhpcyBmdW5jdGlvbiAib3BlbnMiIE1NUkFNIHNvIHRoYXQgaXQgaXMgdmlzaWJsZSB3aGls ZSBub3QNCj4+ID4gPj4+Pj4+ICsgaW5zaWRlIG9mDQo+PiA+ID4+Pj4gTU0uDQo+PiA+ID4+Pj4+ PiBUaGUgZnVuY3Rpb24gc2hvdWxkDQo+PiA+ID4+Pj4+PiArICByZXR1cm4gRUZJX1VOU1VQUE9S VEVEIGlmIHRoZSBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0DQo+PiA+ID4+Pj4+PiArIGhpZGlu ZyBvZg0KPj4gPiA+Pj4+Pj4gTU1SQU0uIFRoZSBmdW5jdGlvbg0KPj4gPiA+Pj4+Pj4gKyAgc2hv dWxkIHJldHVybiBFRklfREVWSUNFX0VSUk9SIGlmIHRoZSBNTVJBTSBjb25maWd1cmF0aW9uDQo+ PiBpcw0KPj4gPiA+Pj4gbG9ja2VkLg0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKyAgQHBh cmFtICBQZWlTZXJ2aWNlcyAgICAgICAgICAgIEFuIGluZGlyZWN0IHBvaW50ZXIgdG8gdGhlIFBF SQ0KPlNlcnZpY2VzDQo+PiA+ID4+PiBUYWJsZQ0KPj4gPiA+Pj4+Pj4gcHVibGlzaGVkIGJ5IHRo ZSBQRUkgRm91bmRhdGlvbi4NCj4+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgVGhpcyAgICAgICAgICAg ICAgICAgICBUaGUgRUZJX1BFSV9NTV9BQ0NFU1NfUFBJIGluc3RhbmNlLg0KPj4gPiA+Pj4+Pj4g KyAgQHBhcmFtICBEZXNjcmlwdG9ySW5kZXggICAgICAgIFRoZSByZWdpb24gb2YgTU1SQU0gdG8g T3Blbi4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1Mg ICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLg0KPj4gPiA+Pj4+Pj4gKyAg QHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qgc3VwcG9y dA0KPj4gPiA+PiBvcGVuaW5nDQo+PiA+ID4+Pj4+IGFuZA0KPj4gPiA+Pj4+Pj4gY2xvc2luZyBv ZiBNTVJBTS4NCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgICBN TVJBTSBjYW5ub3QgYmUgb3BlbmVkLA0KPj4gPiA+PiBwZXJoYXBzDQo+PiA+ID4+Pj4+PiBiZWNh dXNlIGl0IGlzIGxvY2tlZC4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsqKi8NCj4+ID4g Pj4+Pj4+ICt0eXBlZGVmDQo+PiA+ID4+Pj4+PiArRUZJX1NUQVRVUw0KPj4gPiA+Pj4+Pj4gKyhF RklBUEkgKkVGSV9QRUlfTU1fT1BFTikoDQo+PiA+ID4+Pj4+PiArICBJTiBFRklfUEVJX1NFUlZJ Q0VTICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+PiA+ID4+Pj4+PiArICBJTiBFRklf UEVJX01NX0FDQ0VTU19QUEkgICAgICAgICAgICpUaGlzLA0KPj4gPiA+Pj4+Pj4gKyAgSU4gVUlO VE4gICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdG9ySW5kZXgNCj4+ID4gPj4+Pj4+ ICsgICk7DQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArLyoqDQo+PiA+ID4+Pj4+PiArICBJ bmhpYml0cyBhY2Nlc3MgdG8gdGhlIE1NUkFNLg0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4g KyAgVGhpcyBmdW5jdGlvbiAiY2xvc2VzIiBNTVJBTSBzbyB0aGF0IGl0IGlzIG5vdCB2aXNpYmxl IHdoaWxlDQo+PiA+ID4+Pj4+PiArIG91dHNpZGUgb2YNCj4+ID4gPj4+Pj4gTU0uDQo+PiA+ID4+ Pj4+PiBUaGUgZnVuY3Rpb24gc2hvdWxkDQo+PiA+ID4+Pj4+PiArICByZXR1cm4gRUZJX1VOU1VQ UE9SVEVEIGlmIHRoZSBoYXJkd2FyZSBkb2VzIG5vdCBzdXBwb3J0DQo+PiA+ID4+Pj4+PiArIGhp ZGluZyBvZg0KPj4gPiA+Pj4+Pj4gTU1SQU0uDQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiAr ICBAcGFyYW0gIFBlaVNlcnZpY2VzICAgICAgICAgICAgQW4gaW5kaXJlY3QgcG9pbnRlciB0byB0 aGUgUEVJDQo+U2VydmljZXMNCj4+ID4gPj4+IFRhYmxlDQo+PiA+ID4+Pj4+PiBwdWJsaXNoZWQg YnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBUaGlzICAgICAg ICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19QUEkgaW5zdGFuY2UuDQo+PiA+ID4+ Pj4+PiArICBAcGFyYW0gIERlc2NyaXB0b3JJbmRleCAgICAgICAgVGhlIHJlZ2lvbiBvZiBNTVJB TSB0byBDbG9zZS4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NV Q0NFU1MgICAgICAgICAgICBUaGUgb3BlcmF0aW9uIHdhcyBzdWNjZXNzZnVsLg0KPj4gPiA+Pj4+ Pj4gKyAgQHJldHZhbCBFRklfVU5TVVBQT1JURUQgICAgICAgIFRoZSBzeXN0ZW0gZG9lcyBub3Qg c3VwcG9ydA0KPj4gPiA+PiBvcGVuaW5nDQo+PiA+ID4+Pj4+IGFuZA0KPj4gPiA+Pj4+Pj4gY2xv c2luZyBvZiBNTVJBTS4NCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAg ICAgICBNTVJBTSBjYW5ub3QgYmUgY2xvc2VkLg0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4g KyoqLw0KPj4gPiA+Pj4+Pj4gK3R5cGVkZWYNCj4+ID4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+PiA+ ID4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9DTE9TRSkoDQo+PiA+ID4+Pj4+PiArICBJTiBF RklfUEVJX1NFUlZJQ0VTICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+PiA+ID4+Pj4+ PiArICBJTiBFRklfUEVJX01NX0FDQ0VTU19QUEkgICAgICAgICAgICpUaGlzLA0KPj4gPiA+Pj4+ Pj4gKyAgSU4gVUlOVE4gICAgICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdG9ySW5kZXgN Cj4+ID4gPj4+Pj4+ICsgICk7DQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArLyoqDQo+PiA+ ID4+Pj4+PiArICBUaGlzIGZ1bmN0aW9uIHByb2hpYml0cyBhY2Nlc3MgdG8gdGhlIE1NUkFNIHJl Z2lvbi4gVGhpcw0KPj4gPiA+Pj4+Pj4gK2Z1bmN0aW9uIGlzDQo+PiA+ID4+Pj4+IHVzdWFsbHkN Cj4+ID4gPj4+Pj4+IGltcGxlbWVudGVkIHN1Y2gNCj4+ID4gPj4+Pj4+ICsgIHRoYXQgaXQgaXMg YSB3cml0ZS1vbmNlIG9wZXJhdGlvbi4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsgIEBw YXJhbSAgUGVpU2VydmljZXMgICAgICAgICAgICBBbiBpbmRpcmVjdCBwb2ludGVyIHRvIHRoZSBQ RUkNCj5TZXJ2aWNlcw0KPj4gPiA+Pj4gVGFibGUNCj4+ID4gPj4+Pj4+IHB1Ymxpc2hlZCBieSB0 aGUgUEVJIEZvdW5kYXRpb24uDQo+PiA+ID4+Pj4+PiArICBAcGFyYW0gIFRoaXMgICAgICAgICAg ICAgICAgICAgVGhlIEVGSV9QRUlfTU1fQUNDRVNTX1BQSSBpbnN0YW5jZS4NCj4+ID4gPj4+Pj4+ ICsgIEBwYXJhbSAgRGVzY3JpcHRvckluZGV4ICAgICAgICBUaGUgcmVnaW9uIG9mIE1NUkFNIHRv IExvY2suDQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9TVUNDRVNT ICAgICAgICAgICAgVGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bC4NCj4+ID4gPj4+Pj4+ICsg IEByZXR2YWwgRUZJX1VOU1VQUE9SVEVEICAgICAgICBUaGUgc3lzdGVtIGRvZXMgbm90IHN1cHBv cnQNCj4+ID4gPj4gb3BlbmluZw0KPj4gPiA+Pj4+PiBhbmQNCj4+ID4gPj4+Pj4+IGNsb3Npbmcg b2YgTU1SQU0uDQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArKiovDQo+PiA+ID4+Pj4+PiAr dHlwZWRlZg0KPj4gPiA+Pj4+Pj4gK0VGSV9TVEFUVVMNCj4+ID4gPj4+Pj4+ICsoRUZJQVBJICpF RklfUEVJX01NX0xPQ0spKA0KPj4gPiA+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9TRVJWSUNFUyAgICAg ICAgICAgICAgICAqKlBlaVNlcnZpY2VzLA0KPj4gPiA+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9NTV9B Q0NFU1NfUFBJICAgICAgICAgICAqVGhpcywNCj4+ID4gPj4+Pj4+ICsgIElOIFVJTlROICAgICAg ICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRvckluZGV4DQo+PiA+ID4+Pj4+PiArICApOw0K Pj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKy8qKg0KPj4gPiA+Pj4+Pj4gKyAgUXVlcmllcyB0 aGUgbWVtb3J5IGNvbnRyb2xsZXIgZm9yIHRoZSBwb3NzaWJsZSByZWdpb25zIHRoYXQNCj4+ID4g Pj4+Pj4+ICt3aWxsIHN1cHBvcnQNCj4+ID4gPj4+Pj4+IE1NUkFNLg0KPj4gPiA+Pj4+Pj4gKw0K Pj4gPiA+Pj4+Pj4gKyAgVGhpcyBmdW5jdGlvbiBkZXNjcmliZXMgdGhlIE1NUkFNIHJlZ2lvbnMu DQo+PiA+ID4+Pj4+PiArICBUaGlzIGRhdGEgc3RydWN0dXJlIGZvcm1zIHRoZSBjb250cmFjdCBi ZXR3ZWVuIHRoZQ0KPj4gTU1fQUNDRVNTDQo+PiA+ID4+IGFuZA0KPj4gPiA+Pj4+Pj4gTU1fSVBM IGRyaXZlcnMuIFRoZXJlIGlzIGFuDQo+PiA+ID4+Pj4+PiArICBhbWJpZ3VpdHkgd2hlbiBhbnkg TU1SQU0gcmVnaW9uIGlzIHJlbWFwcGVkLiBGb3IgZXhhbXBsZSwNCj4+IG9uDQo+PiA+ID4+Pj4g c29tZQ0KPj4gPiA+Pj4+Pj4gY2hpcHNldHMsIHNvbWUgTU1SQU0NCj4+ID4gPj4+Pj4+ICsgIHJl Z2lvbnMgY2FuIGJlIGluaXRpYWxpemVkIGF0IG9uZSBwaHlzaWNhbCBhZGRyZXNzIGJ1dCBpcw0K Pj4gPiA+Pj4+Pj4gKyBsYXRlciBhY2Nlc3NlZCBhdA0KPj4gPiA+Pj4+Pj4gYW5vdGhlciBwcm9j ZXNzb3IgYWRkcmVzcy4NCj4+ID4gPj4+Pj4+ICsgIFRoZXJlIGlzIGN1cnJlbnRseSBubyB3YXkg Zm9yIHRoZSBNTSBJUEwgZHJpdmVyIHRvIGtub3cgdGhhdA0KPj4gPiA+Pj4+Pj4gKyBpdCBtdXN0 IHVzZQ0KPj4gPiA+Pj4+Pj4gdHdvIGRpZmZlcmVudCBhZGRyZXNzZXMNCj4+ID4gPj4+Pj4+ICsg IGRlcGVuZGluZyBvbiB3aGF0IGl0IGlzIHRyeWluZyB0byBkby4gQXMgYSByZXN1bHQsIGluaXRp YWwNCj4+ID4gPj4+Pj4+ICsgY29uZmlndXJhdGlvbiBhbmQNCj4+ID4gPj4+Pj4+IGxvYWRpbmcg Y2FuIHVzZSB0aGUNCj4+ID4gPj4+Pj4+ICsgIHBoeXNpY2FsIGFkZHJlc3MgUGh5c2ljYWxTdGFy dCB3aGlsZSBNTVJBTSBpcyBvcGVuLiBIb3dldmVyLA0KPj4gPiA+Pj4+Pj4gKyBvbmNlDQo+PiA+ ID4+Pj4gdGhlDQo+PiA+ID4+Pj4+PiByZWdpb24gaGFzIGJlZW4NCj4+ID4gPj4+Pj4+ICsgIGNs b3NlZCBhbmQgbmVlZHMgdG8gYmUgYWNjZXNzZWQgYnkgYWdlbnRzIGluIE1NLCB0aGUNCj4+ID4g Pj4+Pj4+ICsgQ3B1U3RhcnQgYWRkcmVzcw0KPj4gPiA+Pj4+Pj4gbXVzdCBiZSB1c2VkLg0KPj4g PiA+Pj4+Pj4gKyAgVGhpcyBQUEkgcHVibGlzaGVzIHRoZSBhdmFpbGFibGUgbWVtb3J5IHRoYXQg dGhlIGNoaXBzZXQgY2FuDQo+PiA+ID4+Pj4+PiArIHNocm91ZCBmb3INCj4+ID4gPj4+Pj4gdGhl DQo+PiA+ID4+Pj4+PiB1c2Ugb2YgaW5zdGFsbGluZyBjb2RlLg0KPj4gPiA+Pj4+Pj4gKyAgVGhl c2UgcmVnaW9ucyBzZXJ2ZSB0aGUgZHVhbCBwdXJwb3NlIG9mIGRlc2NyaWJpbmcgd2hpY2gNCj4+ ID4gPj4+Pj4+ICsgcmVnaW9ucyBoYXZlDQo+PiA+ID4+Pj4+PiBiZWVuIG9wZW4sIGNsb3NlZCwg b3IgbG9ja2VkLg0KPj4gPiA+Pj4+Pj4gKyAgSW4gYWRkaXRpb24sIHRoZXNlIHJlZ2lvbnMgbWF5 IGluY2x1ZGUgb3ZlcmxhcHBpbmcgbWVtb3J5DQo+PiA+ID4+Pj4+PiArIHJhbmdlcywNCj4+ID4g Pj4+Pj4+IGRlcGVuZGluZyBvbiB0aGUgY2hpcHNldA0KPj4gPiA+Pj4+Pj4gKyAgaW1wbGVtZW50 YXRpb24uIFRoZSBsYXR0ZXIgbWlnaHQgaW5jbHVkZSBhIGNoaXBzZXQgdGhhdA0KPj4gPiA+Pj4+ Pj4gKyBzdXBwb3J0cyBULVNFRywNCj4+ID4gPj4+Pj4+IHdoZXJlIG1lbW9yeSBuZWFyIHRoZSB0 b3ANCj4+ID4gPj4+Pj4+ICsgIG9mIHRoZSBwaHlzaWNhbCBEUkFNIGNhbiBiZSBhbGxvY2F0ZWQg Zm9yIE1NUkFNIHRvby4NCj4+ID4gPj4+Pj4+ICsgIFRoZSBrZXkgdGhpbmcgdG8gbm90ZSBpcyB0 aGF0IHRoZSByZWdpb25zIHRoYXQgYXJlIGRlc2NyaWJlZA0KPj4gPiA+Pj4+Pj4gKyBieSB0aGUg UFBJDQo+PiA+ID4+Pj4gYXJlDQo+PiA+ID4+Pj4+IGENCj4+ID4gPj4+Pj4+IHN1YnNldCBvZiB0 aGUgY2FwYWJpbGl0aWVzDQo+PiA+ID4+Pj4+PiArICBvZiB0aGUgaGFyZHdhcmUuDQo+PiA+ID4+ Pj4+PiArDQo+PiA+ID4+Pj4+PiArICBAcGFyYW0gIFBlaVNlcnZpY2VzICAgICAgICAgICAgQW4g aW5kaXJlY3QgcG9pbnRlciB0byB0aGUgUEVJDQo+U2VydmljZXMNCj4+ID4gPj4+IFRhYmxlDQo+ PiA+ID4+Pj4+PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPj4gPiA+Pj4+Pj4g KyAgQHBhcmFtICBUaGlzICAgICAgICAgICAgICAgICAgIFRoZSBFRklfUEVJX01NX0FDQ0VTU19Q UEkgaW5zdGFuY2UuDQo+PiA+ID4+Pj4+PiArICBAcGFyYW0gIE1tcmFtTWFwU2l6ZSAgICAgICAg ICAgQSBwb2ludGVyIHRvIHRoZSBzaXplLCBpbiBieXRlcywNCj5vZg0KPj4gPiA+PiB0aGUNCj4+ ID4gPj4+Pj4+IE1tcmFtTWVtb3J5TWFwIGJ1ZmZlci4gT24gaW5wdXQsIHRoaXMgdmFsdWUgaXMN Cj4+ID4gPj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgc2l6ZSBv ZiB0aGUgYnVmZmVyIHRoYXQNCj4+ID4gPj4+Pj4+ICsgaXMgYWxsb2NhdGVkIGJ5IHRoZSBjYWxs ZXIuIE9uDQo+PiA+ID4+Pj4+PiBvdXRwdXQsIGl0IGlzIHRoZSBzaXplIG9mIHRoZQ0KPj4gPiA+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciB0aGF0IHdhcyBy ZXR1cm5lZCBieQ0KPj4gPiA+Pj4+Pj4gKyB0aGUgZmlybXdhcmUgaWYgdGhlIGJ1ZmZlcg0KPj4g PiA+Pj4+PiB3YXMNCj4+ID4gPj4+Pj4+IGxhcmdlIGVub3VnaCwgb3IsIGlmIHRoZQ0KPj4gPiA+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZmZlciB3YXMgdG9vIHNt YWxsLCB0aGUNCj4+ID4gPj4+Pj4+ICsgc2l6ZSBvZiB0aGUgYnVmZmVyIHRoYXQgaXMNCj4+ID4g Pj4+Pj4gbmVlZGVkIHRvDQo+PiA+ID4+Pj4+PiBjb250YWluIHRoZSBtYXAuDQo+PiA+ID4+Pj4+ PiArICBAcGFyYW0gTW1yYW1NYXAgICAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBidWZm ZXIgaW4gd2hpY2gNCj4+ID4gPj4+IGZpcm13YXJlDQo+PiA+ID4+Pj4+PiBwbGFjZXMgdGhlIGN1 cnJlbnQgbWVtb3J5IG1hcC4gVGhlIG1hcCBpcw0KPj4gPiA+Pj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGFuIGFycmF5IG9mDQo+PiA+ID4+Pj4+PiArIEVGSV9NTVJBTV9E RVNDUklQVE9Scw0KPj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfU1VD Q0VTUyAgICAgICAgICAgIFRoZSBjaGlwc2V0IHN1cHBvcnRlZCB0aGUgZ2l2ZW4NCj4+ID4gPj4g cmVzb3VyY2UuDQo+PiA+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9CVUZGRVJfVE9PX1NNQUxMICAg VGhlIE1tcmFtTWFwIHBhcmFtZXRlcg0KPj4gPiB3YXMNCj4+ID4gPj4+IHRvbw0KPj4gPiA+Pj4+ Pj4gc21hbGwuIFRoZSBjdXJyZW50DQo+PiA+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYnVmZmVyIHNpemUgbmVlZGVkIHRvIGhvbGQNCj4+ID4gPj4+Pj4+ICsgdGhl IG1lbW9yeSBtYXAgaXMNCj4+ID4gPj4+PiByZXR1cm5lZA0KPj4gPiA+Pj4+PiBpbg0KPj4gPiA+ Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1tcmFtTWFwU2l6ZS4NCj4+ ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsqKi8NCj4+ID4gPj4+Pj4+ICt0eXBlZGVmDQo+PiA+ ID4+Pj4+PiArRUZJX1NUQVRVUw0KPj4gPiA+Pj4+Pj4gKyhFRklBUEkgKkVGSV9QRUlfTU1fQ0FQ QUJJTElUSUVTKSgNCj4+ID4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfU0VSVklDRVMgICAgICAgICAg ICAgICAgKipQZWlTZXJ2aWNlcywNCj4+ID4gPj4+Pj4+ICsgIElOIEVGSV9QRUlfTU1fQUNDRVNT X1BQSSAgICAgICAgICAgKlRoaXMsDQo+PiA+ID4+Pj4+PiArICBJTiBPVVQgVUlOVE4gICAgICAg ICAgICAgICAgICAgICAgICpNbXJhbU1hcFNpemUsDQo+PiA+ID4+Pj4+PiArICBJTiBPVVQgRUZJ X01NUkFNX0RFU0NSSVBUT1IgICAgICAgICpNbXJhbU1hcA0KPj4gPiA+Pj4+Pj4gKyAgKTsNCj4+ ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsvLy8NCj4+ID4gPj4+Pj4+ICsvLy8gIEVGSSBNTSBB Y2Nlc3MgUFBJIGlzIHVzZWQgdG8gY29udHJvbCB0aGUgdmlzaWJpbGl0eSBvZg0KPj4gPiA+Pj4+ Pj4gK3RoZSBNTVJBTSBvbg0KPj4gPiA+Pj4+PiB0aGUNCj4+ID4gPj4+Pj4+IHBsYXRmb3JtLg0K Pj4gPiA+Pj4+Pj4gKy8vLyAgSXQgYWJzdHJhY3RzIHRoZSBsb2NhdGlvbiBhbmQgY2hhcmFjdGVy aXN0aWNzIG9mIE1NUkFNLg0KPj4gPiA+Pj4+Pj4gK1RoZSBwbGF0Zm9ybQ0KPj4gPiA+Pj4+Pj4g c2hvdWxkIHJlcG9ydA0KPj4gPiA+Pj4+Pj4gKy8vLyAgYWxsIE1NUkFNIHZpYSBFRklfUEVJX01N X0FDQ0VTU19QUEkuIFRoZSBleHBlY3RhdGlvbg0KPmlzDQo+PiA+IHRoYXQNCj4+ID4gPj4+Pj4+ ICt0aGUNCj4+ID4gPj4+Pj4+IG5vcnRoIGJyaWRnZSBvcg0KPj4gPiA+Pj4+Pj4gKy8vLyAgbWVt b3J5IGNvbnRyb2xsZXIgd291bGQgcHVibGlzaCB0aGlzIFBQSS4NCj4+ID4gPj4+Pj4+ICsvLy8N Cj4+ID4gPj4+Pj4+ICtzdHJ1Y3QgX0VGSV9QRUlfTU1fQUNDRVNTX1BQSSB7DQo+PiA+ID4+Pj4+ PiArICBFRklfUEVJX01NX09QRU4gICAgICAgICAgT3BlbjsNCj4+ID4gPj4+Pj4+ICsgIEVGSV9Q RUlfTU1fQ0xPU0UgICAgICAgICBDbG9zZTsNCj4+ID4gPj4+Pj4+ICsgIEVGSV9QRUlfTU1fTE9D SyAgICAgICAgICBMb2NrOw0KPj4gPiA+Pj4+Pj4gKyAgRUZJX1BFSV9NTV9DQVBBQklMSVRJRVMg IEdldENhcGFiaWxpdGllczsNCj4+ID4gPj4+Pj4+ICsgIEJPT0xFQU4gICAgICAgICAgICAgICAg ICBMb2NrU3RhdGU7DQo+PiA+ID4+Pj4+PiArICBCT09MRUFOICAgICAgICAgICAgICAgICAgT3Bl blN0YXRlOw0KPj4gPiA+Pj4+Pj4gK307DQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArZXh0 ZXJuIEVGSV9HVUlEIGdFZmlQZWlNbUFjY2Vzc1BwaUd1aWQ7DQo+PiA+ID4+Pj4+PiArDQo+PiA+ ID4+Pj4+PiArI2VuZGlmDQo+PiA+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0luY2x1ZGUv UHBpL01tQ29udHJvbC5oDQo+PiA+ID4+Pj4+PiBiL01kZVBrZy9JbmNsdWRlL1BwaS9NbUNvbnRy b2wuaCBuZXcgZmlsZSBtb2RlIDEwMDY0NCBpbmRleA0KPj4gPiA+Pj4+Pj4gMDAwMDAwMDAwMC4u OTgzZWQ5NWNkNQ0KPj4gPiA+Pj4+Pj4gLS0tIC9kZXYvbnVsbA0KPj4gPiA+Pj4+Pj4gKysrIGIv TWRlUGtnL0luY2x1ZGUvUHBpL01tQ29udHJvbC5oDQo+PiA+ID4+Pj4+PiBAQCAtMCwwICsxLDkw IEBADQo+PiA+ID4+Pj4+PiArLyoqIEBmaWxlDQo+PiA+ID4+Pj4+PiArICBFRkkgTU0gQ29udHJv bCBQUEkgZGVmaW5pdGlvbi4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsgIFRoaXMgUFBJ IGlzIHVzZWQgaW5pdGlhdGUgc3luY2hyb25vdXMgTU1JIGFjdGl2YXRpb25zLiBUaGlzDQo+PiA+ ID4+Pj4+PiArIFBQSSBjb3VsZCBiZQ0KPj4gPiA+Pj4+Pj4gcHVibGlzaGVkIGJ5IGEgcHJvY2Vz c29yDQo+PiA+ID4+Pj4+PiArICBkcml2ZXIgdG8gYWJzdHJhY3QgdGhlIE1NSSBJUEkgb3IgYSBk cml2ZXIgd2hpY2ggYWJzdHJhY3RzDQo+PiA+ID4+Pj4+PiArIHRoZSBBU0lDIHRoYXQNCj4+ID4g Pj4+PiBpcw0KPj4gPiA+Pj4+Pj4gc3VwcG9ydGluZyB0aGUgQVBNIHBvcnQuDQo+PiA+ID4+Pj4+ PiArICBCZWNhdXNlIG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBwZXJmb3JtaW5nIE1NSSBJUEkNCj4+ ID4gPj4+Pj4+ICsgdHJhbnNhY3Rpb25zLCB0aGUgYWJpbGl0eQ0KPj4gPiA+Pj4+PiB0bw0KPj4g PiA+Pj4+Pj4gZ2VuZXJhdGUgdGhpcyBldmVudA0KPj4gPiA+Pj4+Pj4gKyAgZnJvbSBhIHBsYXRm b3JtIGNoaXBzZXQgYWdlbnQgaXMgYW4gb3B0aW9uYWwgY2FwYWJpbGl0eSBmb3INCj4+ID4gPj4+ Pj4+ICsgYm90aA0KPj4gPiA+Pj4+Pj4gKyBJQS0zMg0KPj4gPiA+Pj4+IGFuZA0KPj4gPiA+Pj4+ Pj4geDY0LWJhc2VkIHN5c3RlbXMuDQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArICBDb3B5 cmlnaHQgKGMpIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzDQo+PiA+ID4+Pj4+ PiArIHJlc2VydmVkLjxCUj4NCj4+ID4gPj4+Pj4+ICsgIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBCU0QtMi1DbGF1c2UtUGF0ZW50DQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArICBAcGFy IFJldmlzaW9uIFJlZmVyZW5jZToNCj4+ID4gPj4+Pj4+ICsgIFRoaXMgUFBJIGlzIGludHJvZHVj ZWQgaW4gUEkgVmVyc2lvbiAxLjUuDQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArKiovDQo+ PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+PiArI2lmbmRlZiBfTU1fQ09O VFJPTF9QUElfSF8NCj4+ID4gPj4+Pj4+ICsjZGVmaW5lIF9NTV9DT05UUk9MX1BQSV9IXw0KPj4g PiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKyNkZWZpbmUgRUZJX1BFSV9NTV9DT05UUk9MX1BQSV9H VUlEIFwNCj4+ID4gPj4+Pj4+ICsgIHsgMHg2MWM2ODcwMiwgMHg0ZDdlLCAweDRmNDMsIDB4OGQs IDB4ZWYsIDB4YTcsIDB4NDMsIDB4NSwNCj4+ID4gPj4+Pj4+ICsweGNlLCAweDc0LA0KPj4gPiA+ Pj4+PiAweGM1IH0NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICt0eXBlZGVmIHN0cnVjdCBf RUZJX1BFSV9NTV9DT05UUk9MX1BQSQ0KPj4gPiA+Pj4gRUZJX1BFSV9NTV9DT05UUk9MX1BQSTsN Cj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsvKioNCj4+ID4gPj4+Pj4+ICsgIEludm9rZXMg UFBJIGFjdGl2YXRpb24gZnJvbSB0aGUgUEkgUEVJIGVudmlyb25tZW50Lg0KPj4gPiA+Pj4+Pj4g Kw0KPj4gPiA+Pj4+Pj4gKyAgQHBhcmFtICBQZWlTZXJ2aWNlcyAgICAgICAgICAgQW4gaW5kaXJl Y3QgcG9pbnRlciB0byB0aGUgUEVJIFNlcnZpY2VzDQo+PiA+ID4+IFRhYmxlDQo+PiA+ID4+Pj4+ PiBwdWJsaXNoZWQgYnkgdGhlIFBFSSBGb3VuZGF0aW9uLg0KPj4gPiA+Pj4+Pj4gKyAgQHBhcmFt ICBUaGlzICAgICAgICAgICAgICAgICAgVGhlIFBFSV9NTV9DT05UUk9MX1BQSSBpbnN0YW5jZS4N Cj4+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgQXJndW1lbnRCdWZmZXIgICAgICAgIFRoZSB2YWx1ZSBw YXNzZWQgdG8gdGhlIE1NSQ0KPj4gPiBoYW5kbGVyLg0KPj4gPiA+Pj4+IFRoaXMNCj4+ID4gPj4+ Pj4+IHZhbHVlIGNvcnJlc3BvbmRzIHRvIHRoZQ0KPj4gPiA+Pj4+Pj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgU3dNbWlJbnB1dFZhbHVlIGluIHRoZQ0KPj4gPiA+Pj4+Pj4gKyBS ZWdpc3RlckNvbnRleHQgcGFyYW1ldGVyDQo+PiA+ID4+Pj4gZm9yDQo+PiA+ID4+Pj4+IHRoZQ0K Pj4gPiA+Pj4+Pj4gUmVnaXN0ZXIoKQ0KPj4gPiA+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZnVuY3Rpb24gaW4gdGhlDQo+PiA+ID4+Pj4+PiArIEVGSV9NTV9TV19ESVNQ QVRDSF9QUk9UT0NPTA0KPj4gPiA+Pj4+IGFuZA0KPj4gPiA+Pj4+PiBpbg0KPj4gPiA+Pj4+Pj4g dGhlIENvbnRleHQgcGFyYW1ldGVyDQo+PiA+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbiB0aGUgY2FsbCB0byB0aGUgRGlzcGF0Y2hGdW5jdGlvbg0KPj4gPiA+Pj4+ Pj4gKyAgQHBhcmFtICBBcmd1bWVudEJ1ZmZlclNpemUgICAgVGhlIHNpemUgb2YgdGhlIGRhdGEg cGFzc2VkIGluDQo+PiA+ID4+Pj4+PiBBcmd1bWVudEJ1ZmZlciBvciBOVUxMIGlmIEFyZ3VtZW50 QnVmZmVyIGlzIE5VTEwuDQo+PiA+ID4+Pj4+PiArICBAcGFyYW0gIFBlcmlvZGljICAgICAgICAg ICAgICBBbiBvcHRpb25hbCBtZWNoYW5pc20gdG8gcGVyaW9kaWNhbGx5DQo+PiA+ID4+IHJlcGVh dA0KPj4gPiA+Pj4+Pj4gYWN0aXZhdGlvbi4NCj4+ID4gPj4+Pj4+ICsgIEBwYXJhbSAgQWN0aXZh dGlvbkludGVydmFsICAgIEFuIG9wdGlvbmFsIHBhcmFtZXRlciB0byByZXBlYXQNCj5hdA0KPj4g PiA+PiB0aGlzDQo+PiA+ID4+Pj4+IHBlcmlvZA0KPj4gPiA+Pj4+Pj4gb25lDQo+PiA+ID4+Pj4+ PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIG9yLCBpZiB0aGUgUGVyaW9k aWMgQm9vbGVhbiBpcyBzZXQsIHBlcmlvZGljYWxseS4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+ Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBNTUkgaGFzIGJlZW4gZW5n ZW5kZXJlZC4NCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklDRV9FUlJPUiAgICAgIFRo ZSB0aW1pbmcgaXMgdW5zdXBwb3J0ZWQuDQo+PiA+ID4+Pj4+PiArICBAcmV0dmFsIEVGSV9JTlZB TElEX1BBUkFNRVRFUiBUaGUgYWN0aXZhdGlvbiBwZXJpb2QgaXMNCj4+ID4gPj4+IHVuc3VwcG9y dGVkLg0KPj4gPiA+Pj4+Pj4gKyAgQHJldHZhbCBFRklfTk9UX1NUQVJURUQgICAgICAgVGhlIE1N IGJhc2Ugc2VydmljZSBoYXMgbm90DQo+PiBiZWVuDQo+PiA+ID4+Pj4+IGluaXRpYWxpemVkLg0K Pj4gPiA+Pj4+Pj4gKw0KPj4gPiA+Pj4+Pj4gKyoqLw0KPj4gPiA+Pj4+Pj4gK3R5cGVkZWYNCj4+ ID4gPj4+Pj4+ICtFRklfU1RBVFVTDQo+PiA+ID4+Pj4+PiArKEVGSUFQSSAqRUZJX1BFSV9NTV9B Q1RJVkFURSkgKA0KPj4gPiA+Pj4+Pj4gKyAgSU4gRUZJX1BFSV9TRVJWSUNFUyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKipQZWlTZXJ2aWNlcywNCj4+ID4gPj4+Pj4+ICsgIElOIEVG SV9QRUlfTU1fQ09OVFJPTF9QUEkgICAgICAgICAgICAgICAgICAgICAgICAgICogVGhpcywNCj4+ ID4gPj4+Pj4+ICsgIElOIE9VVCBJTlQ4ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICpBcmd1bWVudEJ1ZmZlciBPUFRJT05BTCwNCj4+ID4gPj4+Pj4+ICsgIElOIE9VVCBV SU5UTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpBcmd1bWVudEJ1ZmZl clNpemUNCj4+ID4gT1BUSU9OQUwsDQo+PiA+ID4+Pj4+PiArICBJTiBCT09MRUFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQZXJpb2RpYyBPUFRJT05BTCwNCj4+ID4g Pj4+Pj4+ICsgIElOIFVJTlROICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFjdGl2YXRpb25JbnRlcnZhbCBPUFRJT05BTA0KPj4gPiA+Pj4+Pj4gKyAgKTsNCj4+ID4g Pj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsvKioNCj4+ID4gPj4+Pj4+ICsgIENsZWFycyBhbnkgc3lz dGVtIHN0YXRlIHRoYXQgd2FzIGNyZWF0ZWQgaW4gcmVzcG9uc2UgdG8gdGhlDQo+PiA+IFRyaWdn ZXIoKQ0KPj4gPiA+Pj4gY2FsbC4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsgIEBwYXJh bSAgUGVpU2VydmljZXMgICAgICAgICAgIEdlbmVyYWwgcHVycG9zZSBzZXJ2aWNlcyBhdmFpbGFi bGUgdG8NCj4+ID4gPj4gZXZlcnkNCj4+ID4gPj4+Pj4gUEVJTS4NCj4+ID4gPj4+Pj4+ICsgIEBw YXJhbSAgVGhpcyAgICAgICAgICAgICAgICAgIFRoZSBQRUlfTU1fQ09OVFJPTF9QUEkgaW5zdGFu Y2UuDQo+PiA+ID4+Pj4+PiArICBAcGFyYW0gIFBlcmlvZGljICAgICAgICAgICAgICBPcHRpb25h bCBwYXJhbWV0ZXIgdG8gcmVwZWF0IGF0IHRoaXMNCj4+ID4gPj4gcGVyaW9kDQo+PiA+ID4+Pj4g b25lDQo+PiA+ID4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIG9y LCBpZiB0aGUgUGVyaW9kaWMgQm9vbGVhbiBpcyBzZXQsIHBlcmlvZGljYWxseS4NCj4+ID4gPj4+ Pj4+ICsNCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX1NVQ0NFU1MgICAgICAgICAgIFRoZSBN TUkgaGFzIGJlZW4gZW5nZW5kZXJlZC4NCj4+ID4gPj4+Pj4+ICsgIEByZXR2YWwgRUZJX0RFVklD RV9FUlJPUiAgICAgIFRoZSBzb3VyY2UgY291bGQgbm90IGJlIGNsZWFyZWQuDQo+PiA+ID4+Pj4+ PiArICBAcmV0dmFsIEVGSV9JTlZBTElEX1BBUkFNRVRFUiBUaGUgc2VydmljZSBkaWQgbm90IHN1 cHBvcnQNCj4+ID4gPj4+Pj4+ICsgdGhlDQo+PiA+ID4+Pj4+IFBlcmlvZGljDQo+PiA+ID4+Pj4+ PiBpbnB1dCBhcmd1bWVudC4NCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+Pj4+ICsqKi8NCj4+ID4g Pj4+Pj4+ICt0eXBlZGVmDQo+PiA+ID4+Pj4+PiArRUZJX1NUQVRVUw0KPj4gPiA+Pj4+Pj4gKyhF RklBUEkgKlBFSV9NTV9ERUFDVElWQVRFKSAoDQo+PiA+ID4+Pj4+PiArICBJTiBFRklfUEVJX1NF UlZJQ0VTICAgICAgICAgICAgICAgICAgICAgICoqUGVpU2VydmljZXMsDQo+PiA+ID4+Pj4+PiAr ICBJTiBFRklfUEVJX01NX0NPTlRST0xfUFBJICAgICAgICAgICAgICAgICogVGhpcywNCj4+ID4g Pj4+Pj4+ICsgIElOIEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUGVyaW9k aWMgT1BUSU9OQUwNCj4+ID4gPj4+Pj4+ICsgICk7DQo+PiA+ID4+Pj4+PiArDQo+PiA+ID4+Pj4+ PiArLy8vDQo+PiA+ID4+Pj4+PiArLy8vICBUaGUgRUZJX1BFSV9NTV9DT05UUk9MX1BQSSBpcyBw cm9kdWNlZCBieSBhIFBFSU0uIEl0DQo+PiA+ID4+PiBwcm92aWRlcw0KPj4gPiA+Pj4+IGFuDQo+ PiA+ID4+Pj4+PiBhYnN0cmFjdGlvbiBvZiB0aGUNCj4+ID4gPj4+Pj4+ICsvLy8gIHBsYXRmb3Jt IGhhcmR3YXJlIHRoYXQgZ2VuZXJhdGVzIGFuIE1NSS4gVGhlcmUgYXJlIG9mdGVuDQo+PiA+ID4+ Pj4+PiArSS9PIHBvcnRzDQo+PiA+ID4+Pj4+PiB0aGF0LCB3aGVuIGFjY2Vzc2VkLCB3aWxsDQo+ PiA+ID4+Pj4+PiArLy8vICBnZW5lcmF0ZSB0aGUgTU1JLiBBbHNvLCB0aGUgaGFyZHdhcmUgb3B0 aW9uYWxseSBzdXBwb3J0cw0KPj4gPiA+Pj4+Pj4gK3RoZQ0KPj4gPiA+Pj4+IHBlcmlvZGljDQo+ PiA+ID4+Pj4+PiBnZW5lcmF0aW9uIG9mIHRoZXNlIHNpZ25hbHMuDQo+PiA+ID4+Pj4+PiArLy8v DQo+PiA+ID4+Pj4+PiArc3RydWN0IF9QRUlfTU1fQ09OVFJPTF9QUEkgew0KPj4gPiA+Pj4+Pj4g KyAgUEVJX01NX0FDVElWQVRFICAgIFRyaWdnZXI7DQo+PiA+ID4+Pj4+PiArICBQRUlfTU1fREVB Q1RJVkFURSAgQ2xlYXI7DQo+PiA+ID4+Pj4+PiArfTsNCj4+ID4gPj4+Pj4+ICsNCj4+ID4gPj4+ Pj4+ICtleHRlcm4gRUZJX0dVSUQgZ0VmaVBlaU1tQ29udHJvbFBwaUd1aWQ7DQo+PiA+ID4+Pj4+ PiArDQo+PiA+ID4+Pj4+PiArI2VuZGlmDQo+PiA+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvTWRlUGtn L01kZVBrZy5kZWMgYi9NZGVQa2cvTWRlUGtnLmRlYyBpbmRleA0KPj4gPiA+Pj4+Pj4gYjM4MmVm ZDU3OC4uMzRlMGYzOTM5NSAxMDA2NDQNCj4+ID4gPj4+Pj4+IC0tLSBhL01kZVBrZy9NZGVQa2cu ZGVjDQo+PiA+ID4+Pj4+PiArKysgYi9NZGVQa2cvTWRlUGtnLmRlYw0KPj4gPiA+Pj4+Pj4gQEAg LTkyNSw2ICs5MjUsMTIgQEANCj4+ID4gPj4+Pj4+ICAgIyMgSW5jbHVkZS9QcGkvU2VjSG9iRGF0 YS5oDQo+PiA+ID4+Pj4+PiAgIGdFZmlTZWNIb2JEYXRhUHBpR3VpZCA9IHsgMHgzZWJkYWYyMCwg MHg2NjY3LCAweDQwZDgsIHsweGI0LA0KPj4gPiA+Pj4+Pj4gMHhlZSwNCj4+ID4gPj4+PiAweGY1 LA0KPj4gPiA+Pj4+Pj4gMHg5OSwgMHg5YSwgMHhjMSwgMHhiNywgMHgxZiB9IH0NCj4+ID4gPj4+ Pj4+DQo+PiA+ID4+Pj4+PiArICAjIyBJbmNsdWRlL1BwaS9NbUFjY2Vzcy5oDQo+PiA+ID4+Pj4+ PiArICBnRWZpUGVpTW1BY2Nlc3NQcGlHdWlkICAgICAgICAgID0gIHsgMHgyNjhmMzNhOSwgMHhj Y2NkLCAweDQ4YmUsDQo+PiA+ID4+IHsgMHg4OCwNCj4+ID4gPj4+Pj4gMHgxNywNCj4+ID4gPj4+ Pj4+IDB4ODYsIDB4NSwgMHgzYSwgMHhjMywgMHgyZSwgMHhkNiB9fQ0KPj4gPiA+Pj4+Pj4gKw0K Pj4gPiA+Pj4+Pj4gKyAgIyMgSW5jbHVkZS9QcGkvTW1Db250cm9sLmgNCj4+ID4gPj4+Pj4+ICsg IGdFZmlQZWlNbUNvbnRyb2xQcGlHdWlkICAgICAgICAgPSAgeyAweDYxYzY4NzAyLCAweDRkN2Us IDB4NGY0MywNCj4+ID4gPj4geyAweDhkLA0KPj4gPiA+Pj4+PiAweGVmLA0KPj4gPiA+Pj4+Pj4g MHhhNywgMHg0MywgMHg1LCAweGNlLCAweDc0LCAweGM1IH19DQo+PiA+ID4+Pj4+PiArDQo+PiA+ ID4+Pj4+PiAgICMNCj4+ID4gPj4+Pj4+ICAgIyBQUElzIGRlZmluZWQgaW4gUEkgMS43Lg0KPj4g PiA+Pj4+Pj4gICAjDQo+PiA+ID4+Pj4+PiAtLQ0KPj4gPiA+Pj4+Pj4gMi4xNi4yLndpbmRvd3Mu MQ0KPj4gPiA+Pj4+Pj4NCj4+ID4gPj4+Pj4+DQo+PiA+ID4+Pj4+Pg0KPj4gPiA+DQo+PiA+ID4N Cj4+ID4gPg0KPj4gPiA+DQo+PiA+DQo+PiA+DQo+PiA+IA0KDQo=