From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.88; helo=mga01.intel.com; envelope-from=michael.d.kinney@intel.com; receiver=edk2-devel@lists.01.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) (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 6C8172215238F for ; Mon, 4 Dec 2017 08:14:54 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 04 Dec 2017 08:19:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,359,1508828400"; d="scan'208";a="9389656" Received: from orsmsx105.amr.corp.intel.com ([10.22.225.132]) by orsmga003.jf.intel.com with ESMTP; 04 Dec 2017 08:19:23 -0800 Received: from orsmsx158.amr.corp.intel.com (10.22.240.20) by ORSMSX105.amr.corp.intel.com (10.22.225.132) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 4 Dec 2017 08:19:23 -0800 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.80]) by ORSMSX158.amr.corp.intel.com ([169.254.10.25]) with mapi id 14.03.0319.002; Mon, 4 Dec 2017 08:19:22 -0800 From: "Kinney, Michael D" To: Leif Lindholm , "Kinney, Michael D" CC: Udit Kumar , Meenakshi Aggarwal , Varun Sethi , "edk2-devel@lists.01.org" , "Gao, Liming" , Ard Biesheuvel Thread-Topic: [edk2] [PATCH 1/1] MdePkg/IoLib: Add support for big-endian MMIO Thread-Index: AQHSJf8g4WbKjSWeTUGVohhhcxe8iqCr++gAgAAQ+YCAADsgAIAAJeEAgjcV3KCABIjHYIAAVAOQgEHVTuCABCXCAP//5yvwgACNcQCAAI2qAIACAq4AgAB1YgD//8h0cIAElKOA//+oO7AAEeYtgAAP5skg Date: Mon, 4 Dec 2017 16:19:21 +0000 Message-ID: References: <20171129125114.i3y446ds4qrkohxl@bivouac.eciton.net> <20171129194836.dqsbtbqi5budvppl@bivouac.eciton.net> <20171201105744.mlspp4gsmibbpolz@bivouac.eciton.net> <20171204123605.6ri2kxeeiqlghnp7@bivouac.eciton.net> <20171204155427.eojywqoo6cqarigi@bivouac.eciton.net> In-Reply-To: <20171204155427.eojywqoo6cqarigi@bivouac.eciton.net> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_IC x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMTA2NjZkZjgtZjExZi00MjEyLWE5ZDMtOWI3MmE3MmM3YmE1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjIuNS4xOCIsIlRydXN0ZWRMYWJlbEhhc2giOiJaK3FHRFk0T0s2WFVMaDdCN1JjY2JqWThES1wvOEtQWG12ZHRqMTB1b1dDZTN4OU9GbkFTUlZ5Qmo5U203NlQwMiJ9 dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action x-originating-ip: [10.22.254.140] MIME-Version: 1.0 Subject: Re: [PATCH 1/1] MdePkg/IoLib: Add support for big-endian MMIO 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: Mon, 04 Dec 2017 16:14:54 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 U291bmRzIGdvb2QuDQoNCk1pa2UNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBMZWlmIExpbmRob2xtIFttYWlsdG86bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnXQ0KPiBT ZW50OiBNb25kYXksIERlY2VtYmVyIDQsIDIwMTcgNzo1NCBBTQ0KPiBUbzogS2lubmV5LCBNaWNo YWVsIEQgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPg0KPiBDYzogVWRpdCBLdW1hciA8dWRp dC5rdW1hckBueHAuY29tPjsgTWVlbmFrc2hpIEFnZ2Fyd2FsDQo+IDxtZWVuYWtzaGkuYWdnYXJ3 YWxAbnhwLmNvbT47IFZhcnVuIFNldGhpDQo+IDxWLlNldGhpQG54cC5jb20+OyBlZGsyLWRldmVs QGxpc3RzLjAxLm9yZzsgR2FvLCBMaW1pbmcNCj4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgQXJk IEJpZXNoZXV2ZWwNCj4gPGFyZC5iaWVzaGV1dmVsQGxpbmFyby5vcmc+DQo+IFN1YmplY3Q6IFJl OiBbZWRrMl0gW1BBVENIIDEvMV0gTWRlUGtnL0lvTGliOiBBZGQgc3VwcG9ydA0KPiBmb3IgYmln LWVuZGlhbiBNTUlPDQo+IA0KPiBIaSBNaWtlLA0KPiANCj4gVGhpcyBzZXBhcmF0ZSBsaWJyYXJ5 IHdvdWxkIG9ubHkgYmUgbmVjZXNzYXJ5DQo+IHNwZWNpZmljYWxseSBiZWNhdXNlDQo+IGFuIGFk ZGl0aW9uYWwgbGlicmFyeSB0byB0aGUgZGVmYXVsdCBwbGF0Zm9ybSBJb0xpYiB3YXMNCj4gbmVl ZGVkLg0KPiBTbyB3aGlsZSBpdCdzIGFub3RoZXIgZGVwZW5kZW5jeSwgaXQgd291bGQgbGlrZWx5 IHJlZHVjZQ0KPiBpbWFnZSBzaXplLg0KPiANCj4gV2hpY2ggaXMgd2h5IEkgd2FzIGxlYW5pbmcg dG93YXJkcyBhIHdyYXBwZXIuDQo+IA0KPiBUaGlzIGFsc28gbWVhbnMgdGhlIGFjdHVhbCBody1k ZXBlbmRlbnQgYml0IGdldHMNCj4gYWJzdHJhY3RlZCBhd2F5IGZyb20NCj4gdGhlIHBvcnRhYmxl IGFuZCBwcmVkaWN0YWJsZSBieXRlc3dhcHBpbmcuIFdoaWNoIGFsd2F5cw0KPiBtYWtlcyBtZQ0K PiBzbGlnaHRseSBtb3JlIGNvbWZvcnRhYmxlLg0KPiANCj4gSWYgeW91J3JlIE9LIHdpdGggdGhl IGNvbmNlcHQsIEkgY2FuIHRocm93IGFuIFJGQw0KPiB0b2dldGhlci4NCj4gDQo+IEJlc3QgUmVn YXJkcywNCj4gDQo+IExlaWYNCj4gDQo+IE9uIE1vbiwgRGVjIDA0LCAyMDE3IGF0IDAzOjMxOjEw UE0gKzAwMDAsIEtpbm5leSwgTWljaGFlbA0KPiBEIHdyb3RlOg0KPiA+IExlaWYsDQo+ID4NCj4g PiBJIG1heSBtYWtlIG1vcmUgc2Vuc2UgdG8gYWRkIHRvIE1kZVBrZyBhcyBhIHBlZXIgdG8NCj4g SW9MaWIuDQo+ID4gVGhpcyBtaW5pbWl6ZXMgdGhlIHBhY2thZ2UgZGVwZW5kZW5jaWVzIGZvciBT aSBtb2R1bGVzLg0KPiA+DQo+ID4gSSBhbSBvayBhcyBhIHdyYXBwZXIgb24gdG9wIG9mIElvTGli LiAgV2hhdGV2ZXIgcmVkdWNlcw0KPiA+IGNvZGUgZHVwbGljYXRpb24gYW5kIHJlZHVjZXMgbWFp bnRlbmFuY2UuDQo+ID4NCj4gPiBCZXN0IHJlZ2FyZHMsDQo+ID4NCj4gPiBNaWtlDQo+ID4NCj4g PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBMZWlmIExpbmRob2xt IFttYWlsdG86bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnXQ0KPiA+ID4gU2VudDogTW9uZGF5LCBE ZWNlbWJlciA0LCAyMDE3IDQ6MzYgQU0NCj4gPiA+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiBDYzogVWRpdCBLdW1hciA8dWRpdC5rdW1h ckBueHAuY29tPjsgTWVlbmFrc2hpDQo+IEFnZ2Fyd2FsDQo+ID4gPiA8bWVlbmFrc2hpLmFnZ2Fy d2FsQG54cC5jb20+OyBWYXJ1biBTZXRoaQ0KPiA+ID4gPFYuU2V0aGlAbnhwLmNvbT47IGVkazIt ZGV2ZWxAbGlzdHMuMDEub3JnOyBHYW8sDQo+IExpbWluZw0KPiA+ID4gPGxpbWluZy5nYW9AaW50 ZWwuY29tPjsgQXJkIEJpZXNoZXV2ZWwNCj4gPiA+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3Jn Pg0KPiA+ID4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggMS8xXSBNZGVQa2cvSW9MaWI6IEFk ZA0KPiBzdXBwb3J0DQo+ID4gPiBmb3IgYmlnLWVuZGlhbiBNTUlPDQo+ID4gPg0KPiA+ID4gTWlr ZSwNCj4gPiA+DQo+ID4gPiBJbiB0aGF0IGNhc2UgLSBkbyB5b3UgdGhpbmsgaXQgc2hvdWxkIGJl IGFkZGVkIHRvDQo+ID4gPiBNZGVNb2R1bGVQa2c/DQo+ID4gPg0KPiA+ID4gU2hvdWxkIGl0IGJl IGltcGxlbWVudGVkIHNpbXBseSBhcyBhIHdyYXBwZXIgb24gSW9MaWINCj4gPiA+IChkZXBlbmRp bmcgb24NCj4gPiA+IGl0KT8NCj4gPiA+DQo+ID4gPiAvDQo+ID4gPiAgICAgTGVpZg0KPiA+ID4N Cj4gPiA+IE9uIEZyaSwgRGVjIDAxLCAyMDE3IGF0IDEwOjQxOjI2UE0gKzAwMDAsIEtpbm5leSwN Cj4gTWljaGFlbA0KPiA+ID4gRCB3cm90ZToNCj4gPiA+ID4gVWRpdCwNCj4gPiA+ID4NCj4gPiA+ ID4gSSBhZ3JlZSB3aXRoIHlvdXIgY29uY2Vybi4NCj4gPiA+ID4NCj4gPiA+ID4gSSBhbSBpbiBm YXZvciBvZiBhZGRpbmcgbmV3IEFQSXMgdGhhdCBwZXJmb3JtIHRoZQ0KPiA+ID4gPiBieXRlIHN3 YXAgb3BlcmF0aW9ucy4NCj4gPiA+ID4NCj4gPiA+ID4gTWlrZQ0KPiA+ID4gPg0KPiA+ID4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gRnJvbTogVWRpdCBLdW1hciBb bWFpbHRvOnVkaXQua3VtYXJAbnhwLmNvbV0NCj4gPiA+ID4gPiBTZW50OiBGcmlkYXksIERlY2Vt YmVyIDEsIDIwMTcgOTo1OCBBTQ0KPiA+ID4gPiA+IFRvOiBMZWlmIExpbmRob2xtIDxsZWlmLmxp bmRob2xtQGxpbmFyby5vcmc+Ow0KPiA+ID4gTWVlbmFrc2hpDQo+ID4gPiA+ID4gQWdnYXJ3YWwg PG1lZW5ha3NoaS5hZ2dhcndhbEBueHAuY29tPjsgVmFydW4NCj4gU2V0aGkNCj4gPiA+ID4gPiA8 Vi5TZXRoaUBueHAuY29tPg0KPiA+ID4gPiA+IENjOiBLaW5uZXksIE1pY2hhZWwgRA0KPiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+ID4gZWRrMi0NCj4gPiA+ID4gPiBkZXZlbEBs aXN0cy4wMS5vcmc7IEdhbywgTGltaW5nDQo+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+Ow0K PiA+ID4gPiA+IEFyZCBCaWVzaGV1dmVsIDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+ ID4gPiA+IFN1YmplY3Q6IFJFOiBbZWRrMl0gW1BBVENIIDEvMV0gTWRlUGtnL0lvTGliOiBBZGQN Cj4gPiA+IHN1cHBvcnQNCj4gPiA+ID4gPiBmb3IgYmlnLWVuZGlhbiBNTUlPDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBUaGFua3MgTGVpZiwNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gSXQgbWF5IHJl cXVpcmUgYSBsaXR0bGUgYml0IG1vcmUgb2YgdXAtZnJvbnQNCj4gd29yaywNCj4gPiA+IGJ1dA0K PiA+ID4gPiA+IHRoZSBlbmQgcmVzdWx0IHdpbGwgYmUgYQ0KPiA+ID4gPiA+ID4gcGxhdGZvcm0g cG9ydCB0aGF0IHdvcmtzIHdpdGggdGhlIGludGVuZGVkIGVkazINCj4gPiA+IGRlc2lnbg0KPiA+ ID4gPiA+IHByaW5jaXBsZXMgcmF0aGVyIHRoYW4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFllcywg dGhpcyB3aWxsIGJlIHJlLWRlc2lnbi9jb2RlIGZvciB1cywgYnJlYWtpbmcNCj4gYWxsDQo+ID4g PiA+ID4gc29mdHdhcmUgcGllY2VzIGludG8NCj4gPiA+ID4gPiBzbWFsbGVyIGJsb2NrcyBhbmQg ZXhwb3NpbmcgcHJvdG9jb2wgZnJvbSB0aGUNCj4gc2FtZS4NCj4gPiA+ID4gPiBUaGlzIGNvdWxk IGJlIG1hbmFnZWQuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBCdXQgaG93IGRvIHlvdSBzZWUsICBp ZiB0aGVyZSBpcyBzdWNoIGRlcGVuZGVuY3kNCj4gb04NCj4gPiA+IGxpYi4NCj4gPiA+ID4gPiBT YXkgYSBkcml2ZXIgd2hpY2ggaXMgaW4gQkUgbW9kZSwgYW5kIGlzIHVzaW5nDQo+ID4gPiBEZWJ1 Z0xpYg0KPiA+ID4gPiA+IChCYXNlRGVidWdMaWJTZXJpYWxQb3J0KQ0KPiA+ID4gPiA+IEFuZCBE ZWJ1Z0xpYiB1c2VzIFNlcmlhbFBvcnRMaWIsIHdoaWNoIGlzIGluIExFDQo+IG1vZGUNCj4gPiA+ ID4gPg0KPiA+ID4gPiA+IFRoYW5rcw0KPiA+ID4gPiA+IFVkaXQNCj4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IGVkazIt ZGV2ZWwgW21haWx0bzplZGsyLWRldmVsLQ0KPiA+ID4gPiA+IGJvdW5jZXNAbGlzdHMuMDEub3Jn XSBPbiBCZWhhbGYgT2YgTGVpZg0KPiA+ID4gPiA+ID4gTGluZGhvbG0NCj4gPiA+ID4gPiA+IFNl bnQ6IEZyaWRheSwgRGVjZW1iZXIgMDEsIDIwMTcgNDoyOCBQTQ0KPiA+ID4gPiA+ID4gVG86IE1l ZW5ha3NoaSBBZ2dhcndhbA0KPiA8bWVlbmFrc2hpLmFnZ2Fyd2FsQG54cC5jb20+DQo+ID4gPiA+ ID4gPiBDYzogS2lubmV5LCBNaWNoYWVsIEQNCj4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t PjsNCj4gPiA+ID4gPiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsNCj4gPiA+ID4gPiA+IEdhbywg TGltaW5nIDxsaW1pbmcuZ2FvQGludGVsLmNvbT47IEFyZA0KPiBCaWVzaGV1dmVsDQo+ID4gPiA+ ID4gPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPiA+ID4gPiA+IFN1YmplY3Q6IFJl OiBbZWRrMl0gW1BBVENIIDEvMV0gTWRlUGtnL0lvTGliOg0KPiBBZGQNCj4gPiA+ID4gPiBzdXBw b3J0IGZvciBiaWctZW5kaWFuDQo+ID4gPiA+ID4gPiBNTUlPDQo+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gT24gVGh1LCBOb3YgMzAsIDIwMTcgYXQgMDQ6MTU6MzhBTSArMDAwMCwNCj4gTWVlbmFr c2hpDQo+ID4gPiA+ID4gQWdnYXJ3YWwgd3JvdGU6DQo+ID4gPiA+ID4gPiA+IEhpIExlaWYsIE1p a2UsDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IE5YUCBib2Fy ZHMsIGF0IHByZXNlbnQsIGhhdmUgZmV3IGNvbnRyb2xsZXJzDQo+IHdpdGgNCj4gPiA+IGJpZw0K PiA+ID4gPiA+IGVuZGlhbiBhbmQgb3RoZXINCj4gPiA+ID4gPiA+ID4gd2l0aCBsaXR0bGUgZW5k aWFuIG1lbW9yeSBhY2Nlc3MuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gU3VyZSwgdGhpcyBp cyBub3QgYSBwcm9ibGVtLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gTWF4aW11bSBjb250 cm9sbGVycyBkZXBlbmQgb24gU29jTGliIGxpYnJhcnkNCj4gZm9yDQo+ID4gPiA+ID4gY2xvY2sg aW5mb3JtYXRpb24gYW5kDQo+ID4gPiA+ID4gPiA+IGVuZGlhbm5lc3MgZm9yIFNvY0xpYiBhbmQg Y29udHJvbGxlcnMgaXMNCj4gPiA+IGRpZmZlcmVudC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiBPSywgSSBzZWUgaW4gU29jTGliIHlvdSBoYXZlIHNvbWV0aGluZyBjYWxsZWQgYQ0KPiBHdXIN Cj4gPiA+ID4gPiB0aGF0IGlzIHJlYWQgb25jZSAoYW5kIGFnYWluDQo+ID4gPiA+ID4gPiBkb2Vz IGEgc3BlY2lhbCBwZXItZGV2aWNlIFBjZCBkYW5jZSBmb3IgcnVudGltZQ0KPiA+ID4gPiA+IHNl bGVjdGlvbiBiZXR3ZWVuDQo+ID4gPiA+ID4gPiBieXRlc3dhcHBpbmcgTW1pbyBhbmQgcGxhaW4g TW1pbykuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBTbyB0aGlzIG9wdGlvbiB3aWxsIG5v dCB3b3JrIGZvciB1cywNCj4gPiA+ID4gPiA+ID4gICBZb3Ugd291bGQgdGhlbiBqdXN0IGRvIChp biB5b3VyIC5kc2MpOg0KPiA+ID4gPiA+ID4gPg0KPiBQbGF0Zm9ybS9OWFAvRHJpdmVycy9XYXRj aERvZy9XYXRjaERvZ0R4ZS5pbmYgew0KPiA+ID4gPiA+ID4gPiAgICAgICBJb0xpYnw8cGF0aCB0 byBCZUlvTGliIC5pbmY+DQo+ID4gPiA+ID4gPiA+ICAgfQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiBCZWNhdXNlIGFsbCBsaWJyYXJpZXMgaW5jbHVkZWQgYnkgV2F0Y2hEb2cNCj4gd2ls bA0KPiA+ID4gdGhlbg0KPiA+ID4gPiA+IGFjY2VzcyBCRSBtb2RlIE1taW8NCj4gPiA+ID4gPiA+ IEFQSXMuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gV2hpY2ggbGlicmFyaWVzIHBlcmZvcm1p bmcgTW1pbyBhY2Nlc3NlcyBhcmUNCj4geW91DQo+ID4gPiA+ID4gaW50ZW5kaW5nIHRvIGluY2x1 ZGUgaW4geW91cg0KPiA+ID4gPiA+ID4gd2F0Y2hkb2cgZHJpdmVyPyBZb3UgaGF2ZSBzdWJtaXR0 ZWQgbm9uZSBhcw0KPiBwYXJ0IG9mDQo+ID4gPiA+ID4gdGhpcyBzZXJpZXMuDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiBBbmQgYnJlYWtpbmcgY29kZSBpbnRvIHNlcGFyYXRlIG1vZHVsZXMg d2l0aA0KPiA+ID4gPiA+IGRpZmZlcmVudCBhY2Nlc3Mgd2lsbCBiZQ0KPiA+ID4gPiA+ID4gPiB2 ZXJ5IGRpZmZpY3VsdC4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBJdCBtYXkgcmVxdWlyZSBh IGxpdHRsZSBiaXQgbW9yZSBvZiB1cC1mcm9udA0KPiB3b3JrLA0KPiA+ID4gYnV0DQo+ID4gPiA+ ID4gdGhlIGVuZCByZXN1bHQgd2lsbCBiZSBhDQo+ID4gPiA+ID4gPiBwbGF0Zm9ybSBwb3J0IHRo YXQgd29ya3Mgd2l0aCB0aGUgaW50ZW5kZWQgZWRrMg0KPiA+ID4gZGVzaWduDQo+ID4gPiA+ID4g cHJpbmNpcGxlcyByYXRoZXIgdGhhbg0KPiA+ID4gPiA+ID4gYWdhaW5zdCB0aGVtLiBBbmQgdGhh dCB3aWxsIHJlZHVjZSB0aGUgb3ZlcmFsbA0KPiA+ID4gZWZmb3J0DQo+ID4gPiA+ID4gKG5vdCB0 byBtZW50aW9uIGNvZGUNCj4gPiA+ID4gPiA+IGR1cGxpY2F0aW9uKS4NCj4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiBGcm9tIHRoZSBwYXRjaGVzIHlvdSBoYXZlIHNlbnQsIHRoZSBvbmx5DQo+IHJl cXVpcmVkDQo+ID4gPiA+ID4gY2hhbmdlIEkgc2VlIChpZiBhDQo+ID4gPiA+ID4gPiBieXRlc3dh cHBpbmcgSW9MaWIgd2FzIGFkZGVkIHRvIGVkazIpIHdvdWxkIGJlDQo+IHRvDQo+ID4gPiA+ID4g Y3JlYXRlIGEgdGlueSBkcml2ZXIgZm9yIHRoaXMNCj4gPiA+ID4gPiA+ICJHdXIiIGRldmljZSB0 aGF0IGluc3RhbGxzIGEgcHJvdG9jb2wNCj4gY29udGFpbmluZyBhDQo+ID4gPiA+ID4gc2luZ2xl IGZ1bmN0aW9uIGZvciByZWFkaW5nDQo+ID4gPiA+ID4gPiBmcm9tIHRoYXQgZGV2aWNlJ3MgcmVn aXN0ZXIgc3BhY2UuIFRoYXQgZHJpdmVyDQo+IGNhbg0KPiA+ID4gYmUNCj4gPiA+ID4gPiBidWls dCBhZ2FpbnN0IHRoZSBzd2FwcGluZw0KPiA+ID4gPiA+ID4gb3Igbm9uLXN3YXBwaW5nIElvTGli IGFzIGFwcHJvcHJpYXRlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gV2F0Y2hkb2cgaXMg bm90IHRoZSBvbmx5IG1vZHVsZSB3aGljaCBuZWVkIEJFDQo+ID4gPiBNbWlvDQo+ID4gPiA+ID4g QVBJcywgd2UgaGF2ZSBNTUMNCj4gPiA+ID4gPiA+ID4gYW5kIG90aGVyIGNvbnRyb2xsZXJzIGFs c28gd2l0aCBzYW1lDQo+IHJlcXVpcmVtZW50Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFu ZCB0aGUgc2FtZSBzb2x1dGlvbnMgYXJlIHBvc3NpYmxlIGV2ZXJ5d2hlcmUuDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gQmVzdCBSZWdhcmRzLA0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IExl aWYNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFdlIG5lZWQgQkUgTW1pbyBBUElzIHdpdGgg YSBkaWZmZXJlbnQgbmFtZS4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gUGxlYXNlIHNl ZSB0aGUgcG9zc2liaWxpdHkuDQo+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IFRoYW5rcyAm IFJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+IE1lZW5ha3NoaQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4gRnJv bTogTGVpZiBMaW5kaG9sbQ0KPiA+ID4gPiA+IFttYWlsdG86bGVpZi5saW5kaG9sbUBsaW5hcm8u b3JnXQ0KPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IFRodXJzZGF5LCBOb3ZlbWJlciAzMCwgMjAxNyAx OjE5IEFNDQo+ID4gPiA+ID4gPiA+ID4gVG86IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gQ2M6IE1lZW5ha3NoaSBB Z2dhcndhbA0KPiA+ID4gPiA+IDxtZWVuYWtzaGkuYWdnYXJ3YWxAbnhwLmNvbT47IEdhbywgTGlt aW5nDQo+ID4gPiA+ID4gPiA+ID4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZWRrMi0NCj4gPiA+ IGRldmVsQGxpc3RzLjAxLm9yZzsNCj4gPiA+ID4gPiBBcmQgQmllc2hldXZlbA0KPiA+ID4gPiA+ ID4gPiA+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+ID4gPiA+ID4gPiA+IFN1Ympl Y3Q6IFJlOiBbZWRrMl0gW1BBVENIIDEvMV0NCj4gTWRlUGtnL0lvTGliOg0KPiA+ID4gQWRkDQo+ ID4gPiA+ID4gc3VwcG9ydCBmb3INCj4gPiA+ID4gPiA+ID4gPiBiaWctZW5kaWFuIE1NSU8NCj4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IEkgZ3Vlc3MgdGhlcmUgaXMgbm8gc3RyaWN0 IHJ1bGUgYWJvdXQgYQ0KPiBkcml2ZXINCj4gPiA+IG9ubHkNCj4gPiA+ID4gPiBkaXJlY3RseQ0K PiA+ID4gPiA+ID4gPiA+IGFjY2Vzc2luZyBvbmUgcGllY2Ugb2YgSFc/DQo+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiBTdGlsbCwgdGhhdCB3b3VsZCBiZSBvbmUgcG9zc2libGUgc29s dXRpb246DQo+ID4gPiA+ID4gYnJlYWtpbmcgYWNjZXNzZXMgdG8gYQ0KPiA+ID4gPiA+ID4gPiA+ IHNlcGFyYXRlIEhXIGluIG5lZWQgb2YgYnl0ZXN3YXBwaW5nIG91dA0KPiBpbnRvDQo+ID4gPiBp dHMNCj4gPiA+ID4gPiBvd24gbW9kdWxlIGFuZA0KPiA+ID4gPiA+ID4gPiA+IGxldHRpbmcgaXQg b3ZlcnJpZGUgSW9MaWIgdmVyc2lvbiB0aGVyZS4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IFJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBMZWlmDQo+ ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiBPbiBXZWQsIE5vdiAyOSwgMjAxNyBhdCAw NzoyNTowNVBNICswMDAwLA0KPiA+ID4gS2lubmV5LA0KPiA+ID4gPiA+IE1pY2hhZWwgRCB3cm90 ZToNCj4gPiA+ID4gPiA+ID4gPiA+IExlaWYsDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gSSBhZ3JlZSB0aGF0IHRoaXMgc2hvdWxkIGJlIGRlc2NyaWJlZCBhcw0KPiBieXRl DQo+ID4gPiA+ID4gc3dhcHBpbmcuDQo+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gV2hhdCBhYm91dCBhIG1vZHVsZSB0aGF0IG5lZWRzIHRvIGFjY2Vzcw0KPiBIVw0KPiA+ID4g d2l0aA0KPiA+ID4gPiA+IGFuZCB3aXRob3V0IHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gYnl0ZXMg c3dhcHBlZD8gIEl0IGdldHMgbW9yZSBjb21wbGV4IGlmIGENCj4gPiA+IG1vZHVsZQ0KPiA+ID4g PiA+IGlzIGxpbmtlZCBhZ2FpbnN0DQo+ID4gPiA+ID4gPiA+ID4gPiBzZXZlcmFsIGxpYnMgYW5k IHNvbWUgbGlicyBhY2Nlc3MgSFcgd2l0aA0KPiA+ID4gYnl0ZXMNCj4gPiA+ID4gPiBzd2FwcGVk IGFuZCBzb21lDQo+ID4gPiA+ID4gPiA+ID4gPiBkbyBub3QuDQo+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gVGhhbmtzLA0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+IE1pa2UNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEZyb206IGVkazItZGV2 ZWwgW21haWx0bzplZGsyLWRldmVsLQ0KPiA+ID4gPiA+IGJvdW5jZXNAbGlzdHMuMDEub3JnXSBP bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBCZWhhbGYgT2YgTGVpZiBMaW5kaG9sbQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiBTZW50OiBXZWRuZXNkYXksIE5vdmVtYmVyIDI5LCAyMDE3IDQ6NTENCj4gQU0N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gVG86IE1lZW5ha3NoaSBBZ2dhcndhbA0KPiA+ID4gPiA+IDxt ZWVuYWtzaGkuYWdnYXJ3YWxAbnhwLmNvbT47IEdhbywgTGltaW5nDQo+ID4gPiA+ID4gPiA+ID4g PiA+IDxsaW1pbmcuZ2FvQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IEtpbm5l eSwgTWljaGFlbCBEDQo+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsNCj4g PiA+ID4gPiA+ID4gPiA+ID4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEFyZCBCaWVzaGV1dmVs DQo+ID4gPiA+ID4gPiA+ID4gPiA+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+ID4g PiA+ID4gPiA+ID4gPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCAxLzFdDQo+ID4gPiBNZGVQ a2cvSW9MaWI6DQo+ID4gPiA+ID4gQWRkIHN1cHBvcnQgZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ IGJpZy1lbmRpYW4gTU1JTw0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g PiBIaSBNZWVuYWtzaGksDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ IEkgZmluYWxseSBnb3QgYXJvdW5kIHRvIGxvb2tpbmcgYXQgdGhlDQo+ID4gPiB3YXRjaGRvZw0K PiA+ID4gPiA+IGNvZGUgKHRoYXQgdXNlcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGlzIGxpYnJh cnkpLCBhbmQgdGhhdCBoYXMgY29udmluY2VkDQo+IG1lDQo+ID4gPiB0aGUNCj4gPiA+ID4gPiBi ZXN0IHNvbHV0aW9uIGlzIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRvIHdoYXQgTGltaW5nIHBy b3Bvc2VkLg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBMb29raW5n IGF0IHRoaXMgc25pcHBldDoNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArU1RBVElDDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gK1VJTlQxNg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ICtFRklBUEkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArV2RvZ1JlYWQgKA0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ICsgwqBJTiDCoFVJTlROIMKgIMKgIEFkZHJlc3MNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiArIMKgKQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gKyDCoGlmIChGaXhlZFBjZEdldEJvb2wNCj4gPiA+IChQY2RXZG9nQmlnRW5k aWFuKSkgew0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgwqAgwqByZXR1cm4gQmVNbWlvUmVhZDE2 IChBZGRyZXNzKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiArIMKgfSBlbHNlIHsNCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiArIMKgIMKgcmV0dXJuIE1taW9SZWFkMTYoQWRkcmVzcyk7DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKyDCoH0NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gVGhpcyBpcyBhY3R1YWxseSBhIHByZXR0eSBnb29kDQo+ID4gPiBkZW1vbnN0cmF0aW9u IG9mDQo+ID4gPiA+ID4gdGhlIGFyZ3VtZW50cw0KPiA+ID4gPiA+ID4gPiA+ID4gPiB0aGF0IHdl cmUgbWFkZSB3aXRoIHJlZ2FyZHMgdG8gaG93IHRoZQ0KPiA+ID4gQmVJb0xpYg0KPiA+ID4gPiA+ IGNvdWxkIGJlIGp1c3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYW5vdGhlciBpbXBsZW1lbnRhdGlv biBvZiBJb0xpYi4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gWW91 IHdvdWxkIHRoZW4ganVzdCBkbyAoaW4geW91ciAuZHNjKToNCj4gPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+IMKgIFBsYXRmb3JtL05YUC9Ecml2ZXJzL1dhdGNoRG9nL1dhdGNoRG9nRHhlLmluZg0K PiA+ID4gPiA+IHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gwqAgwqAgSW9MaWJ8PHBhdGggdG8gQmVJ b0xpYiAuaW5mPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiDCoCB9DQo+ID4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFRoaXMgY2F1c2VzIHRoZSBiaWctZW5kaWFuIHZlcnNpb24g b2YNCj4gdGhlDQo+ID4gPiA+ID4gbGlicmFyeSB0byBiZSB1c2VkIGZvcg0KPiA+ID4gPiA+ID4g PiA+ID4gPiB0aGlzIGNvbXBvbmVudC4gVGhpcyBtYWtlcyB0aGVzZQ0KPiA+ID4gV2RvZzxhY2Nl c3M+DQo+ID4gPiA+ID4gZnVuY3Rpb25zIGFuZCB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gUGNk IHJlZHVuZGFudCwgYW5kIHRoZSByZXN0IG9mIHRoZSBjb2RlDQo+IGNhbg0KPiA+ID4gdXNlDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IE1taW9SZWFkMTYoKS9NbWlvV3JpdGUxNigpDQo+ID4gPiA+ID4g PiA+ID4gPiA+IGRpcmVjdGx5Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBCdXQgdGhlbiwgaXQgaXMgbm90IHJlYWxseSBhIGJpZy1lbmRpYW4NCj4gb3INCj4gPiA+ ID4gPiBsaXR0ZS1lbmRpYW4gdmVyc2lvbg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBvZiB0aGUgbGli cmFyeSB3ZSBuZWVkLiBXZSBhbHdheXMga25vdw0KPiA+ID4gd2hpY2gNCj4gPiA+ID4gPiBlbmRp YW5uZXNzIHdlIGFyZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBidWlsZGluZyBmb3IuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IFdoYXQgd2UgbmVlZCBpcyBhIGJ5dGVzd2FwcGluZyBmbGF2b3VyDQo+IG9m DQo+ID4gPiA+ID4gSW9MaWIuDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+IFNvIExpbWluZywgd2hhdCBpZiB3ZSBkbyBzb21ldGhpbmcgbGlrZQ0KPiA+ID4gYWRkaW5n DQo+ID4gPiA+ID4gYQ0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0KPiBN ZGVQa2cvTGlicmFyeS9CYXNlSW9MaWJJbnRyaW5zaWMvQmFzZUlvTGliSW50cmluc2ljU3dhDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IHAuaW5mDQo+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4g PiA+ID4gPiA+ID4gPiBbRGVmaW5lc10NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBJTkZfVkVSU0lP TiAgICAgICAgICAgICAgICAgICAgPQ0KPiA+ID4gMHgwMDAxMDAxQQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiAgIEJBU0VfTkFNRSAgICAgICAgICAgICAgICAgICAgICA9DQo+ID4gPiA+ID4gPiA+ID4g PiA+IEJhc2VJb0xpYkludHJpbnNpY1N3YXANCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBNT0RVTEVf VU5JX0ZJTEUgICAgICAgICAgICAgICAgPQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBCYXNlSW9MaWJJ bnRyaW5zaWMudW5pDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgRklMRV9HVUlEICAgICAgICAgICAg ICAgICAgICAgID0NCj4gPiA+IGQ0YTYwZDQ0LQ0KPiA+ID4gPiA+IDM2ODgtNGE1MC0NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gYjJkMC01YzZmYzI0MjI1MjMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBN T0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBCQVNFDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICAgVkVSU0lPTl9TVFJJTkcgICAgICAgICAgICAgICAgID0gMS4wDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICAgTElCUkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0NCj4gSW9MaWINCj4gPiA+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gIw0K PiA+ID4gPiA+ID4gPiA+ID4gPiAjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElB MzINCj4gWDY0DQo+ID4gPiBFQkMNCj4gPiA+ID4gPiBJUEYgQVJNDQo+ID4gPiA+ID4gPiA+ID4g PiA+IEFBUkNINjQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gIw0KPiA+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiBbU291cmNlc10NCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBCYXNl SW9MaWJJbnRyaW5zaWNJbnRlcm5hbC5oDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgSW9IaWdoTGV2 ZWwuYw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIElvTGliLmMNCj4gPiA+ID4gPiA+ID4gPiA+ID4g ICBJb0xpYkViYy5jICAgICAgICAgIyBBc3NlcnRzIG9uIGFsbA0KPiBpL28NCj4gPiA+IHBvcnQN Cj4gPiA+ID4gPiBhY2Nlc3Nlcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAgIElvTGliTW1pb0J1ZmZl ci5jDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFtQYWNrYWdlc10N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gICBNZGVQa2cvTWRlUGtnLmRlYw0KPiA+ID4gPiA+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbTGlicmFyeUNsYXNzZXNdDQo+ID4gPiA+ID4gPiA+ ID4gPiA+ICAgRGVidWdMaWINCj4gPiA+ID4gPiA+ID4gPiA+ID4gICBCYXNlTGliDQo+ID4gPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IFtCdWlsZE9wdGlvbnNdDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ICAgR0NDOipfKl8qX0NDX0ZMQUdTICA9IC1EU1dBUF9CWVRFUw0KPiA+ID4g PiA+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gQW5kIHRoZW4gYWRkDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ ICNpZmRlZiBTV0FQX0JZVEVTDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgcmV0dXJuIFN3YXBCeXRl c1hYIChWYWx1ZSk7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICNlbHNlDQo+ID4gPiA+ID4gPiA+ID4g PiA+ICAgcmV0dXJuIFZhbHVlOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAjZmkNCj4gPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZm9yIHRoZSByZWFkIG9wZXJhdGlvbnMgYW5k DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ICNpZmRlZiBTV0FQX0JZ VEVTDQo+ID4gPiA+ID4gPiA+ID4gPiA+ICAgKih0eXBlKUFkZHJlc3MgPSBTd2FwQnl0ZXNYWCAo VmFsdWUpOw0KPiA+ID4gI2Vsc2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gICAqKHR5cGUpQWRkcmVz cyA9IFZhbHVlOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiAjZmkNCj4gPiA+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gZm9yIHRoZSB3cml0ZSBvcGVyYXRpb25zIGluIElvTGliLmM/ DQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+IC8NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gICAgIExlaWYNCj4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gT24gTW9uLCBOb3YgMjcsIDIwMTcgYXQgMDY6MDY6MzNBTQ0KPiArMDAwMCwNCj4gPiA+ID4g PiBNZWVuYWtzaGkgQWdnYXJ3YWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gd3JvdGU6DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gSGkgTGVpZiwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IFRoaXMgaXMgcmVnYXJkaW5nIEJpZy1FbmRpYW4gTGlicmFyeQ0KPiA+ID4g cGF0Y2gNCj4gPiA+ID4gPiAoW1BBVENIIHYyDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDEvOV0NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiBQbGF0Zm9ybS9OWFA6IEFkZCBzdXBwb3J0IGZvciBCaWcNCj4g RW5kaWFuDQo+ID4gPiBNbWlvDQo+ID4gPiA+ID4gQVBJcykNCj4gPiA+ID4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFdlIGhhdmUgc3RhcnRlZCB0aGlzIGRpc2N1c3Npb24N Cj4gYmVmb3JlDQo+ID4gPiBhbmQNCj4gPiA+ID4gPiB0aGUNCj4gPiA+ID4gPiA+ID4gPiA+ID4g c3VnZ2VzdGlvbiB3YXMgdG8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjcmVhdGUgYSBzZXBhcmF0 ZSAuaW5mIGZpbGUga2VlcGluZw0KPiBBUElzDQo+ID4gPiBuYW1lDQo+ID4gPiA+ID4gc2FtZSBl LmcuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTW1pb1JlYWQvTW1pb1dyaXRlIGluIE1kZVBrZy4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEJ1dCB3ZSBjYW4n dCBnbyB3aXRoIHRoaXMgYXBwcm9hY2gNCj4gPiA+IChyZWFzb24NCj4gPiA+ID4gPiBtZW50aW9u ZWQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYnkgVWRpdCkuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBTbyBwbGVhc2Ugc3VnZ2VzdCBpZiB3ZSBzaG91bGQga2Vl cA0KPiB0aGlzDQo+ID4gPiA+ID4gbGlicmFyeQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiB1bmRlciBQ bGF0Zm9ybS9OWFANCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBvciBJIHNlbmQgYSBuZXcgcGF0Y2gg bW92aW5nIHRoaXMNCj4gbGlicmFyeQ0KPiA+ID4gaW4NCj4gPiA+ID4gPiBNZGVQa2cuDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBCdXQgd2UgaGF2ZSB0byBr ZWVwIGEgZGlmZmVyZW50IG5hbWUNCj4gZm9yDQo+ID4gPiBCaWcNCj4gPiA+ID4gPiBFbmRpYW4N Cj4gPiA+ID4gPiA+ID4gPiA+ID4gTU1JTyBBUElzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGFua3MsDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gTWVlbmFrc2hpDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBN ZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEZyb206IFVkaXQgS3VtYXINCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAyMywgMjAxNw0KPiAx MjozOCBQTQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVG86IEdhbywgTGltaW5nDQo+IDxsaW1p bmcuZ2FvQGludGVsLmNvbT47DQo+ID4gPiA+ID4gTWVlbmFrc2hpDQo+ID4gPiA+ID4gPiA+ID4g PiA+IEFnZ2Fyd2FsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA8bWVlbmFrc2hpLmFnZ2Fyd2Fs QG54cC5jb20+OyBBcmQNCj4gPiA+ID4gPiBCaWVzaGV1dmVsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47DQo+IEtpbm5leSwNCj4gPiA+ID4gPiBN aWNoYWVsIEQNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVs LmNvbT47IGVkazItDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gU3ViamVjdDogUkU6IFtlZGsyXSBbUEFUQ0ggMS8xXQ0KPiA+ ID4gPiA+IE1kZVBrZy9Jb0xpYjogQWRkDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN1cHBvcnQgZm9y IGJpZy1lbmRpYW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE1NSU8NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBIaSBNZWVuYWtzaGkvTGltaW5nLA0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTXkgMiBjZW50cywgYXJvdW5kIHRoaXMuDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gMSkNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IEhhdmluZyBhIG5ldyBsaWIgZm9yIEJFIHJlYWQgbWlnaHQNCj4gbm90DQo+ ID4gPiBiZQ0KPiA+ID4gPiA+IGhlbHBmdWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gZm9yIHVzLCBl LmcuIGEgSVAgd2hpY2ggaXMgaW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEJFIG1vZGUgYWNj ZXNzIHRoZSBVQVJUIGZvciBwcmludA0KPiBvcg0KPiA+ID4gc3lzdGVtDQo+ID4gPiA+ID4gPiA+ ID4gPiA+IHJlZ2lzdGVycyB3aGljaCBhcmUgaW4gTEUsIHRoZW4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IHdpdGggbmV3IExpYiwgd2Ugd2lsbCBnZXQgYWxsDQo+ID4gPiByZWFkL3dyaXRlIGlu DQo+ID4gPiA+ID4gQkUgbW9kZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IDIpDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBFc3BlY2lhbGx5IGZvciBv dXIgSVBzLCB3aGljaCBhcmUNCj4gPiA+IGNoYW5naW5nDQo+ID4gPiA+ID4gZnJvbSBCRQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPiB0byBMRSBkZXBlbmRpbmcgb24NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IHBsYXRmb3JtLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQXMgc2FpZCBiZWZvcmUsIGhh dmluZyBCRSByZWFkIGxpYg0KPiB3aXRoDQo+ID4gPiBBUEkNCj4gPiA+ID4gPiBuYW1lIG9mDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IE1taW9SZWFkMzIgZXRjLCB3aWxsIG5vdA0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gaGVscCAoSSBndWVzcyBNZWVuYWtzaGkgYWxyZWFkeQ0KPiBzZWVuDQo+ID4g PiBzb21lDQo+ID4gPiA+ID4gcHJvYmxlbXMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gYXJvdW5kIHRo aXMpIEFkZGluZyBhDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBuZXcgbGliIHdpdGggTW1pb1Jl YWQzMkJFIEFQSSBuYW1lDQo+ID4gPiBjb3VsZA0KPiA+ID4gPiA+IGhlbHAsIGJ1dA0KPiA+ID4g PiA+ID4gPiA+ID4gPiBJUCBkcml2ZXIgd2UgbmVlZCB0bw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gdGFrZSBjYXJlIG9mIElQIG1vZGUgZWl0aGVyIGJ5IFBjZA0KPiBvcg0KPiA+ID4gPiA+ICNk ZWZpbmUsIHRvDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHNlbGVjdCBNbWlvUmVhZDMyIG9yDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiBNbWlvUmVhZDMyQkUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBUaGlzIGNvbmRpdGlvbmFsIGNvbXBpbGUgbmVlZHMgdG8NCj4gYmUNCj4gPiA+IGRvbmUNCj4g PiA+ID4gPiBmb3IgYWxsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IElQcyAod2hpY2ggd29ya3MgaW4g QkUvTEUNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1vZGUgb24gZGlmZmVyZW50IHBsYXRmb3Jt cykuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTXkg cHJlZmVycmVkIHdheSBvZiBpbXBsZW1lbnRhdGlvbg0KPiB0bw0KPiA+ID4gdXNlDQo+ID4gPiA+ ID4gb25lDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGZ1bmN0aW9uIGluIElQIGRyaXZlciwgQW5kDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiYXNlZCBvbiBJUCBtb2RlLCBkbyB0aGUgc3dpdGNoLg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE5ldyBMaWIg Y291bGQgaGF2ZSBmdW5jdGlvbiBsaWtlDQo+IGJlbG93DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBNbWlvUmVhZDMyR2VuZXJpYyhJTiAgVUlOVE4NCj4gPiA+IEFkZHJlc3MsDQo+ID4gPiA+ID4g Qk9PTA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBJc0lQQkUpIHsNCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ICAgIFVJTlQzMg0KPiA+ID4gVmFsdWU7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgQVNTRVJUICgoQWRkcmVzcyAmIDMpID09IDApOw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gICAgVmFsdWUgPSAqKHZvbGF0aWxlDQo+IFVJTlQzMiopQWRk cmVzczsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAgIElmKElzSVBCRSkNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICAgICAgVmFsdWUgPSBTd2FwQnl0ZXMzMihWYWx1ZSk7DQo+ID4gPiByZXR1 cm4NCj4gPiA+ID4gPiBWYWx1ZTsgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IEFuZCBJUCBkcml2ZXIgY2FuIHVzZSBpdA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gTW1pb1JlYWQzMkdlbmVyaWMoQUREUiwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiBGaXhlZFBjZEdldChUaGlzX0lQX01vZGVfRm9yX1RoaXNfcGxhdGZvcm0pDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQ29tbWVudHMgYXJl IHdlbGNvbWUuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gUmVnYXJkcw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVWRpdA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRv OmVkazItDQo+IGRldmVsLQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBib3VuY2VzQGxpc3RzLjAxLm9y Z10gT24gQmVoYWxmIE9mDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEdhbywgTGltaW5nDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAxNiwgMjAxNw0K PiA4OjQ4DQo+ID4gPiBBTQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUbzogTWVlbmFrc2hp IEFnZ2Fyd2FsDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDxtZWVuYWtzaGkuYWdnYXJ3YWxAbnhwLmNv bT47IEFyZA0KPiA+ID4gQmllc2hldXZlbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA8YXJk LmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47DQo+IEtpbm5leSwNCj4gPiA+ID4gPiBNaWNoYWVsIEQN Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsN Cj4gZWRrMi0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IFN1YmplY3Q6IFJlOiBbZWRrMl0gW1BBVENIIDEvMV0NCj4gPiA+ ID4gPiBNZGVQa2cvSW9MaWI6IEFkZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBzdXBwb3J0IGZvcg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBiaWctZW5kaWFuIE1NSU8NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gTWVlbmFrc2hpOg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiAgIEkgc3VnZ2VzdCB0byBpbnRyb2R1Y2UgbmV3DQo+IElvTGli DQo+ID4gPiA+ID4gbGlicmFyeQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBpbnN0YW5jZSwgbm90IHRv IGFkZCBuZXcgSW9MaWINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEFQSXMuDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+IE5ldyBJb0xpYiBsaWJyYXJ5IGluc3RhbmNlIHdpbGwNCj4gPiA+IHBl cmZvcm0NCj4gPiA+ID4gPiBJTw0KPiA+ID4gPiA+ID4gPiA+ID4gPiBvcGVyYXRpb24gYXMgdGhl IGJpZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBlbmRpYW4uIFlvdSBjYW4gdXBkYXRlDQo+ ID4gPiA+ID4gPiA+ID4gPiA+IE1kZVBrZy9MaWJyYXJ5L0Jhc2VJb0xpYkludHJpbnNpYw0KPiBp bnN0YW5jZSwNCj4gPiA+IGFkZA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBuZXcgc291cmNl IGZpbGUgYW5kIG5ldyBJTkYgZm9yDQo+IGl0Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBVSU5UMzINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gRUZJQVBJDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IE1taW9SZWFkMzIgKA0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiAgIElOICBVSU5UTiAgICAgQWRkcmVzcw0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiAgICkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gew0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiAgIFVJTlQzMg0KPiA+ID4gPiA+IFZhbHVlOw0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIEFTU0VSVCAoKEFkZHJl c3MgJiAzKSA9PSAwKTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICBWYWx1ZSA9ICoodm9s YXRpbGUNCj4gVUlOVDMyKilBZGRyZXNzOw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgIHJl dHVybiBTd2FwQnl0ZXMzMihWYWx1ZSk7IH0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVGhhbmtzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IExpbWluZw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+LS0tLS1PcmlnaW5hbCBNZXNzYWdl LS0tLS0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPkZyb206IE1lZW5ha3NoaSBBZ2dhcndh bA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBbbWFpbHRvOm1lZW5ha3NoaS5hZ2dhcndhbEBueHAuY29t XQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+U2VudDogRnJpZGF5LCBPY3RvYmVyIDEzLCAy MDE3DQo+IDI6MDcNCj4gPiA+IFBNDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID5UbzogQXJk IEJpZXNoZXV2ZWwNCj4gPiA+ID4gPiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47DQo+ID4g PiA+ID4gPiA+ID4gPiA+IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID48bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiBlZGsyLQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiBkZXZlbEBsaXN0cy4wMS5vcmc7IEdhbywgTGltaW5nDQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID48bGltaW5nLmdhb0BpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID5TdWJqZWN0OiBSRTogW2VkazJdIFtQQVRDSCAxLzFdDQo+ID4gPiA+ID4gTWRlUGtnL0lv TGliOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBBZGQgc3VwcG9ydCBmb3INCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPmJpZy1lbmRpYW4gTU1JTw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID5IaSBBbGwsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+SXTigJlzIGEgcHJldHR5IG9sZCBkaXNjdXNzaW9uLCB3ZQ0KPiA+ID4gaGF2ZQ0K PiA+ID4gPiA+IGxlZnQgdGhlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHVwc3RyZWFtaW5nIG9mIE5Y UA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+cGFja2FnZSBpbiBiZXR3ZWVuIGJlY2F1c2Ug b2YNCj4gc29tZQ0KPiA+ID4gb3RoZXINCj4gPiA+ID4gPiB3b3JrLA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiBidXQgaGF2ZSBzdGFydGVkIGl0DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID5hZ2Fp bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBub3cuDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+SXNzdWUgIDogRmV3IE5YUCBtb2R1bGVzIHN1cHBvcnQNCj4gQmlnDQo+ID4gPiA+ID4g RW5kaWFuDQo+ID4gPiA+ID4gPiA+ID4gPiA+IE1NSU9zIGFzIHRoZXNlIGFyZSBwb3J0ZWQNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPmZyb20gUG93ZXJQQy4NCj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+U29sdXRpb24gc3VnZ2VzdGVk IDogQ3JlYXRlIGENCj4gPiA+IHNlcGFyYXRlDQo+ID4gPiA+ID4gbGlicmFyeQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiBmb3IgQkUgTU1JTyBBUElzLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PlNvIHdoYXQgSSBoYXZlIGRvbmUgaXMsIEkgaGF2ZQ0KPiA+ID4gY3JlYXRlZCBhDQo+ID4gPiA+ ID4gPiA+ID4gPiA+IHNlcGFyYXRlIGxpYnJhcnkgdG8gc3VwcG9ydA0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+QkUgTU1JTyBBUElzIGFuZCBjdXJyZW50bHkNCj4ga2VlcGluZw0KPiA+ID4g aXQgdG8NCj4gPiA+ID4gPiBteQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiBwYWNrYWdlLg0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+VGhpcyBsaWJyYXJ5IGlzIGJhc2ljYWxseSBhDQo+IHdyYXBw ZXINCj4gPiA+IG92ZXINCj4gPiA+ID4gPiA+ID4gPiA+ID4gZXhpc3RpbmcgTU1JTyBBUElzLg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID5V SU5UMzINCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPkVGSUFQSQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+QmVNbWlvUmVhZDMyICgNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg SU4gIFVJTlROICAgICBBZGRyZXNzDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gICkNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPnsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAg VUlOVDMyICBWYWx1ZTsNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ICBWYWx1ZSA9IE1taW9SZWFkMzIoQWRkcmVzcyk7DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgcmV0dXJuIFN3 YXBCeXRlczMyKFZhbHVlKTsgfQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPk5lZWQgeW91 ciBvcGluaW9uIG9uIGJlbG93DQo+IG9wdGlub3M6DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPjEuIFdpbGwgdGhpcyBiZSBhIGdvb2QgaWRl YSB0bw0KPiBtYWtlDQo+ID4gPiB0aGlzDQo+ID4gPiA+ID4gbGlicmFyeQ0KPiA+ID4gPiA+ID4g PiA+ID4gPiBhIHBhcnQgb2YgTWRlUGtnPyBPUg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4yLiBBZGQgYSBuZXcgZmlsZSBlLmcuDQo+IElv QmVNbWlvLmMNCj4gPiA+IGxpa2UNCj4gPiA+ID4gPiA+ID4gPiA+ID4gSW9IaWdoTGV2ZWwuYyBp bg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+TWRlUGtnL0xpYnJhcnkvQmFzZUlvTGli SW50cmluc2ljLw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IEFuZCBtYWRlIHRoZXNlIEFQ SXMgYSBwYXJ0IG9mDQo+IElvTGliDQo+ID4gPiA+ID4gaXRzZWxmLiBPUg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4zLiBLZWVwIHRoaXMg bGlicmFyeSBpbnRlcm5hbCB0bw0KPiBOWFANCj4gPiA+ID4gPiBwYWNrYWdlLg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPlBsZWFzZSBwcm92aWRlIHlvdXIgaW5wdXRzLg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPlRoYW5rcyAmIFJlZ2FyZHMsDQo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID5NZWVuYWtzaGkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+PiBGcm9tOiBCaHVwZXNoIFNoYXJtYQ0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+PiBTZW50OiBNb25kYXksIE9jdG9iZXIgMTcsIDIwMTYNCj4gPiA+IDM6Mjgg UE0NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gVG86IEFyZCBCaWVzaGV1dmVsDQo+ID4g PiA+ID4gPiA+ID4gPiA+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPjsgS2lubmV5LA0KPiA+ ID4gTWljaGFlbCBEDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IDxtaWNoYWVsLmQua2lu bmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gQ2M6IEdhbywgTGlt aW5nDQo+ID4gPiA+ID4gPGxpbWluZy5nYW9AaW50ZWwuY29tPjsgZWRrMi0NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gZGV2ZWxAbWwwMS4wMS5vcmc7DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ IE1lZW5ha3NoaSBBZ2dhcndhbA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA8bWVlbmFrc2hpLmFnZ2Fy d2FsQG54cC5jb20+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+IFN1YmplY3Q6IFJFOiBb ZWRrMl0gW1BBVENIDQo+IDEvMV0NCj4gPiA+ID4gPiBNZGVQa2cvSW9MaWI6DQo+ID4gPiA+ID4g PiA+ID4gPiA+IEFkZCBzdXBwb3J0IGZvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBi aWctZW5kaWFuIE1NSU8NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4NCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPj4gSGkgQXJkLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pg0K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0t DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ID4gRnJvbTogQXJkIEJpZXNoZXV2ZWwNCj4g PiA+ID4gPiA+ID4gPiA+ID4gW21haWx0bzphcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnXQ0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+IFNlbnQ6IE1vbmRheSwgT2N0b2JlciAxNywNCj4g MjAxNg0KPiA+ID4gMToxMg0KPiA+ID4gPiA+IFBNDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4+ID4gVG86IEtpbm5leSwgTWljaGFlbCBEDQo+ID4gPiA+ID4gPiA+ID4gPiA+IDxtaWNoYWVs LmQua2lubmV5QGludGVsLmNvbT4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiBDYzog R2FvLCBMaW1pbmcNCj4gPiA+ID4gPiA8bGltaW5nLmdhb0BpbnRlbC5jb20+Ow0KPiA+ID4gPiA+ ID4gPiA+ID4gPiBCaHVwZXNoIFNoYXJtYQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+ IDxiaHVwZXNoLnNoYXJtYUBueHAuY29tPjsNCj4gZWRrMi0NCj4gPiA+ID4gPiA+ID4gPiA+ID4g ZGV2ZWxAbWwwMS4wMS5vcmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiBTdWJqZWN0 OiBSZTogW2VkazJdIFtQQVRDSA0KPiAxLzFdDQo+ID4gPiA+ID4gPiA+ID4gPiA+IE1kZVBrZy9J b0xpYjogQWRkIHN1cHBvcnQgZm9yDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ID4gYmln LSBlbmRpYW4gTU1JTw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+DQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4+ID4gT24gMTcgT2N0b2JlciAyMDE2IGF0IDA1OjEwLA0KPiA+ID4g S2lubmV5LA0KPiA+ID4gPiA+IE1pY2hhZWwNCj4gPiA+ID4gPiA+ID4gPiA+ID4gRA0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4g PiA+IHdyb3RlOg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+ID4gQmh1cGVzaCwNCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4+ID4gPiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGFkZA0KPiBhbg0KPiA+ID4gQVJNDQo+ID4g PiA+ID4gc3BlY2lmaWMNCj4gPiA+ID4gPiA+ID4gPiA+ID4gUENEIHRvIHNlbGVjdA0KPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+ID4gZW5kaWFubmVzcyBhbmQgdXBkYXRlDQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gTWRl UGtnL0xpYnJhcnkvQmFzZUlvTGliSW50cmluc2ljL0lvTGliQXJtLmMgdG8NCj4gPiA+ID4gPiB1 c2UgdGhhdCBQQ0QgaW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiA+IE1taW9SZWFk L1dyaXRlKCkgQVBJcyBpbg0KPiB0aGF0DQo+ID4gPiBmaWxlDQo+ID4gPiA+ID4gdG8NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gc3VwcG9ydCBib3RoIGVuZGlhbiB0eXBlcy4NCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPj4gPiA+IFlvdSBjYW4gdXNlIHRoZQ0KPiBTd2FwQnl0ZXN4eCgpDQo+ID4g PiA+ID4gZnVuY3Rpb25zDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGZyb20gQmFzZUxpYihhcw0KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+IExhc3psbw0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+PiA+ID4gc3VnZ2VzdGVkKSBiYXNlZCBvbiB0aGUNCj4gPiA+IHNldHRpbmcgb2YNCj4g PiA+ID4gPiB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IEFSTSBzcGVjaWZpYyBQQ0QuDQo+ID4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ PiA+ID4gTW9kdWxlcyB0aGF0IGxpbmsgYWdhaW5zdA0KPiB0aGlzDQo+ID4gPiBsaWINCj4gPiA+ ID4gPiBjYW4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gc2VsZWN0IGVuZGlhbm5lc3MgYnkNCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiA+IHNldHRpbmcgUENEIGluIHRoZSBzY29wZQ0KPiBv Zg0KPiA+ID4gdGhhdA0KPiA+ID4gPiA+IG1vZHVsZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPj4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ID4gPiBUaGUgSVBGIHZlcnNp b24gb2YgSW9MaWINCj4gdXNlcw0KPiA+ID4gYW4NCj4gPiA+ID4gPiBJUEYNCj4gPiA+ID4gPiA+ ID4gPiA+ID4gc3BlY2lmaWMgUENEIHRvIHRyYW5zbGF0ZQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+PiA+ID4gSS9PIHBvcnQgYWNjZXNzZXMgdG8gTU1JTw0KPiA+ID4gPiA+IGFjY2Vzc2Vz LiAgU28NCj4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlcmUgaXMgYWxyZWFkeSBhbg0KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+PiA+ID4gZXhhbXBsZSBvZiBhbiBhcmNoDQo+IHNwZWNpZmljDQo+ ID4gPiBQQ0QgaW4NCj4gPiA+ID4gPiB0aGlzDQo+ID4gPiA+ID4gPiA+ID4gPiA+IGxpYiBpbnN0 YW5jZS4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiA+DQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4+ID4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiBUaGlzIGlzIG5v dCBhIHBsYXRmb3JtIHdpZGUNCj4gPiA+IHRoaW5nLA0KPiA+ID4gPiA+IGl0IGlzIGENCj4gPiA+ ID4gPiA+ID4gPiA+ID4gcGVyLWRldmljZSBwcm9wZXJ0eQ0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+PiA+IHdoZXRoZXIgdGhlIE1NSU8gb2NjdXJzIGluDQo+IGJpZw0KPiA+ID4gPiA+IGVu ZGlhbiBvcg0KPiA+ID4gPiA+ID4gPiA+ID4gPiBsaXR0bGUgZW5kaWFuIG1hbm5lci4NCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+ IFNvIEkgdGhpbmsgTGltaW5nJ3MNCj4gc3VnZ2VzdGlvbg0KPiA+ID4gbWFrZXMNCj4gPiA+ID4g PiBzZW5zZToNCj4gPiA+ID4gPiA+ID4gPiA+ID4gY3JlYXRlIGFuIElvTGliDQo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+ID4+ID4gaW1wbGVtZW50YXRpb24gdGhhdCBwZXJmb3Jtcw0KPiB0aGUN Cj4gPiA+ID4gPiBieXRlDQo+ID4gPiA+ID4gPiA+ID4gPiA+IHN3YXBwaW5nLCBhbmQgc2VsZWN0 aXZlbHkNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPiBpbmNvcnBvcmF0ZSBpdCBpbnRv IGRyaXZlcnMNCj4gdGhhdA0KPiA+ID4gPiA+IHJlcXVpcmUgaXQNCj4gPiA+ID4gPiA+ID4gPiA+ ID4gdXNpbmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gPg0KPiA+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+PiA+IEJlTW1pb0RldmljZUR4ZS5pbmYgew0KPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+PiA+ICAgPExpYnJhcnlDbGFzc2VzPg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+PiA+DQo+ID4gPiA+ID4gSW9MaWJ8U29tZVBrZy9MaWJyYXJ5L0JpZ0VuZGlhbklvTGliLmlu Zg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiA+IH0NCj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPj4NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPj4gVGhhdCdzIGNvcnJlY3QuIEkg dGhpbmsNCj4gY3JlYXRpbmcgYQ0KPiA+ID4gPiA+IHNlcGFyYXRlDQo+ID4gPiA+ID4gPiA+ID4g PiA+IElvTGliIGZvciBieXRlLXN3YXBwaW5nDQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4+ IG1ha2VzIHNlbnNlLg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPiA+PiBXZSB3aWxsIHJld29yayB0aGUgcGF0Y2gNCj4gPiA+IGFjY29yZGlu Z2x5Lg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Pg0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+PiBSZWdhcmRzLA0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+PiBCaHVwZXNoDQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZWRr Mi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZWRrMi1kZXZl bEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+DQo+ID4gPg0KPiBodHRwczovL2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlv bi5vdXRsb29rLmNvbS8/dXJsPWh0dHANCj4gPiA+ID4gPiBzJTNBJTJGJTJGbA0KPiA+ID4gPiA+ ID4gPiA+IGlzdA0KPiA+ID4gPiA+ID4gPiA+IHMuMDEub3JnJTJGbWFpbG1hbiUyRmxpc3RpbmZv JTJGZWRrMi0NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4N Cj4gZGV2ZWwmZGF0YT0wMiU3QzAxJTdDbWVlbmFrc2hpLmFnZ2Fyd2FsJTQwbnhwLmNvbSU3QzY5 NWU0DQo+ID4gPiA+ID4gM2NiYjUxDQo+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+DQo+IGE0NzFjZDQ0NjA4ZDUzNzYyMzBiMCU3QzY4NmVhMWQzYmMyYjRjNmZh OTJjZDk5YzVjMzAxNjM1JQ0KPiA+ID4gPiA+IDdDMCU3QzANCj4gPiA+ID4gPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPg0KPiAlN0M2MzY0NzU4MTcyMjA2NjM2MTImc2RhdGE9aHdRaDhkZlVrVkd6 bTd1UUI5JTJGaXJleG1ZRWsNCj4gPiA+ID4gPiBkRVENCj4gPiA+ID4gPiA+ID4gPiAlMkJ1OTc2 MDZMJTJGSEVmZyUzRCZyZXNlcnZlZD0wDQo+ID4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiBfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+ID4gPiA+ID4g PiA+ID4gPiBlZGsyLWRldmVsIG1haWxpbmcgbGlzdA0KPiA+ID4gPiA+ID4gPiA+ID4gPiBlZGsy LWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+DQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9u Lm91dGxvb2suY29tLz91cmw9aHR0cA0KPiA+ID4gPiA+IHMlM0ElMkYlMkZsDQo+ID4gPiA+ID4g PiA+ID4gaXN0DQo+ID4gPiA+ID4gPiA+ID4gcy4wMS5vcmclMkZtYWlsbWFuJTJGbGlzdGluZm8l MkZlZGsyLQ0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPg0K PiBkZXZlbCZkYXRhPTAyJTdDMDElN0NtZWVuYWtzaGkuYWdnYXJ3YWwlNDBueHAuY29tJTdDNjk1 ZTQNCj4gPiA+ID4gPiAzY2JiNTENCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPg0KPiA+ID4NCj4gYTQ3MWNkNDQ2MDhkNTM3NjIzMGIwJTdDNjg2ZWExZDNiYzJiNGM2ZmE5 MmNkOTljNWMzMDE2MzUlDQo+ID4gPiA+ID4gN0MwJTdDMA0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4NCj4gPiA+DQo+ICU3QzYzNjQ3NTgxNzIyMDY2MzYxMiZzZGF0YT1od1FoOGRmVWtWR3pt N3VRQjklMkZpcmV4bVlFaw0KPiA+ID4gPiA+IGRFUQ0KPiA+ID4gPiA+ID4gPiA+ICUyQnU5NzYw NkwlMkZIRWZnJTNEJnJlc2VydmVkPTANCj4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4gPiA+ID4gPiBlZGsyLWRldmVsIG1haWxp bmcgbGlzdA0KPiA+ID4gPiA+ID4gZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gPiA+ID4gPiA+ DQo+ID4gPiA+ID4NCj4gPiA+DQo+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9u Lm91dGxvb2suY29tLz91cmw9aHR0cA0KPiA+ID4gPiA+IHMlM0ElMkYlMkZsaXN0cy4wMQ0KPiA+ ID4gPiA+ID4gLm9yZyUyRm1haWxtYW4lMkZsaXN0aW5mbyUyRmVkazItDQo+ID4gPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPg0KPiBkZXZlbCZkYXRhPTAyJTdDMDElN0N1ZGl0Lmt1bWFyJTQwbnhw LmNvbSU3Q2QwNjAxODMzNmEwNjQNCj4gPiA+ID4gPiA4ZmE4ZTQ0MA0KPiA+ID4gPiA+ID4NCj4g PiA+ID4gPg0KPiA+ID4NCj4gOGQ1MzhhYTVmMTklN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1 YzMwMTYzNSU3QzAlN0MwJTdDDQo+ID4gPiA+ID4gNjM2NDc3Mg0KPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPg0KPiA+ID4NCj4gMjY3NjEyNTMxMjQmc2RhdGE9YkFVJTJCT2lkYnpiS3c3Nk9PcTUlMkZV cGx3UWJvOGlNbkUzYWxIDQo+ID4gPiA+ID4gWTRwdEFYDQo+ID4gPiA+ID4gPiBNVSUzRCZyZXNl cnZlZD0wDQo=