From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.126; helo=mga18.intel.com; envelope-from=jiewen.yao@intel.com; receiver=edk2-devel@lists.01.org Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) (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 D6FF82115C09B for ; Mon, 11 Jun 2018 08:12:29 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Jun 2018 08:12:29 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,502,1520924400"; d="scan'208";a="48982376" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga006.jf.intel.com with ESMTP; 11 Jun 2018 08:12:29 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Jun 2018 08:12:29 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.319.2; Mon, 11 Jun 2018 08:12:28 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.223]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.70]) with mapi id 14.03.0319.002; Mon, 11 Jun 2018 23:12:26 +0800 From: "Yao, Jiewen" To: Ard Biesheuvel CC: "Kinney, Michael D" , "edk2-devel@lists.01.org" , "leif.lindholm@linaro.org" , "Zeng, Star" Thread-Topic: [edk2] [PATCH v2 2/5] MdeModulePkg/DxeCapsuleLibFmp: permit ProcessCapsules () to be called once Thread-Index: AQHT/vYbbSADsfB+hEWX7Kwk2kNBmKRWSrdA//98PACAAIb9kIACKYCAgACr9YCAALUdEIAABtFQgABH4wCAANynW///esgAgACZnhD//36XgAASCqfA Date: Mon, 11 Jun 2018 15:12:25 +0000 Message-ID: <74D8A39837DF1E4DA445A8C0B3885C503AC3CF5F@shsmsx102.ccr.corp.intel.com> References: <20180608065811.2065-1-ard.biesheuvel@linaro.org> <20180608065811.2065-3-ard.biesheuvel@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC3515B@shsmsx102.ccr.corp.intel.com> <6534F306-C3E7-40D2-84F4-D409BF1F7B68@linaro.org> <74D8A39837DF1E4DA445A8C0B3885C503AC3A387@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AC3ADC8@shsmsx102.ccr.corp.intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AC3ADF5@shsmsx102.ccr.corp.intel.com> <87F9382F-EBA0-4715-B323-FB0C6F8DE5A2@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503AC3CBE3@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNWI0MDZkMTgtYTk3Zi00YWQyLTg3ZjQtYTUyN2VjOWZkMjA2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiSmtKQ29UeVFJelwvMmlNSnFmOUNsVUlrZ2xIelRRUDB5cU4xcEpPWXJhXC9VSGg5bUhJU2xXeUdLRXA3czlKU0E2In0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 2/5] MdeModulePkg/DxeCapsuleLibFmp: permit ProcessCapsules () to be called once X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 Jun 2018 15:12:30 -0000 Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhlIGRpZmZlcmVuY2UgYmV0d2VlbiAxc3QgY2FsbCBhbmQgMm5kIGNhbGwgaXMgdGhhdDogVGhl IHN5c3RlbSB3aWxsIHJlc2V0IGV2ZW4gdGhlcmUgYXJlIGNhcHN1bGVzIG5vdCBkaXNwYXRjaGVk IGluIDJuZCBjYWxsLg0KDQpJZiBhIHBsYXRmb3JtIGp1c3QgY2FsbHMgb25jZSBhbmQgdGhlcmUg aXMgMSBkZXZpY2UgRk1QIG5vdCBkaXNwYXRjaGVkIHlldCwgaG93IHRoZSBjb3JlIGxpYiBrbm93 cyBpdCBzaG91bGQgcmVzZXQgdGhlIHN5c3RlbSBvciBpdCBzaG91bGQgd2FpdCBmb3IgdGhlIHNl Y29uZCBjYWxsIGFmdGVyIGNvbm5lY3QgYWxsPw0KDQpJZiB5b3UgaGF2ZSBhbnkgdGhvdWdodCwg cGxlYXNlIHNoYXJlIHdpdGggdXMuDQoNCg0KU3VtbWFyaXplIHNvbWUgcmVxdWlyZW1lbnQ6DQox KSBFbWJlZGRlZCBkcml2ZXIgbXVzdCBiZSBkaXNwYXRjaGVkIGFmdGVyIEVuZE9mRHhlLg0KMikg U3lzdGVtIENhcHN1bGUgbXVzdCBiZSBkaXNwYXRjaGVkIGJlZm9yZSBzeXN0ZW0gZmlybXdhcmUg bG9jay4gKElkZWFsbHkgaXQgc2hvdWxkIGJlIEVuZE9mRHhlLCBhIHBsYXRmb3JtIG1heSBjaG9v c2Ugb3RoZXJzKQ0KMykgV2hlbiB0aGUgc3lzdGVtIGNhcHN1bGUgaXMgZGlzcGF0Y2hlZCwgdGhl IGRyaXZlciBGTVAgbWlnaHQgYmUgcmVhZHkgb3IgbWlnaHQgbm90IGJlIHJlYWR5IHlldC4NCjQp IFRoZSBjb3JlIGNvZGUgbmVlZCBtYWtlIHN1cmUgdGhlIHBsYXRmb3JtIGNvZGUgZGlzcGF0Y2gg dGhlIGNhcHN1bGUgaW4gYSByaWdodCB0aW1lLg0KDQpUaGFuayB5b3UNCllhbyBKaWV3ZW4NCg0K PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBlZGsyLWRldmVsIFttYWlsdG86 ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mIEFyZA0KPiBCaWVz aGV1dmVsDQo+IFNlbnQ6IE1vbmRheSwgSnVuZSAxMSwgMjAxOCA3OjA3IEFNDQo+IFRvOiBZYW8s IEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+IENjOiBLaW5uZXksIE1pY2hhZWwgRCA8 bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZzsNCj4g bGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnOyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29t Pg0KPiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2MiAyLzVdIE1kZU1vZHVsZVBrZy9EeGVD YXBzdWxlTGliRm1wOiBwZXJtaXQNCj4gUHJvY2Vzc0NhcHN1bGVzICgpIHRvIGJlIGNhbGxlZCBv bmNlDQo+IA0KPiBPbiAxMSBKdW5lIDIwMTggYXQgMTU6NTUsIFlhbywgSmlld2VuIDxqaWV3ZW4u eWFvQGludGVsLmNvbT4gd3JvdGU6DQo+ID4gQWguIEdvb2QgcG9pbnQuDQo+ID4NCj4gPiBJIHRo aW5rIHRoZSBlbWJlZGRlZCBkcml2ZXIgZGlzcGF0Y2ggY2FuIGJlIGNvbnRyb2xsZWQgYnkgRW5k T2ZEeGUsIHdoaWNoIGlzDQo+IHNpbWlsYXIgdG8gTWRlTW9kdWxlUGtnXFVuaXZlcnNhbFxTZWN1 cml0eVN0dWJEeGUuDQo+ID4NCj4gPiBTbyB3ZSBjYW4gaGF2ZSBib3RoIEVuZE9mRHhlIGFuZCBQ Y2RTeXN0ZW1GbXBMb2NrRXZlbnRHdWlkLg0KPiA+IEVuZE9mRHhlIGNvbnRyb2xzIGVtYmVkZGVk IGRyaXZlciBkaXNwYXRjaC4NCj4gPiBQY2RTeXN0ZW1GbXBMb2NrRXZlbnRHdWlkIGNvbnRyb2xz IDFzdCBjYWxsIGFuZCAybmQgY2FsbC4NCj4gPg0KPiANCj4gQnV0IGluIG91ciBjYXNlLCB3ZSBk b24ndCBuZWVkIGFuIGV2ZW50IGF0IGFsbC4gVGhlIEJEUyBqdXN0IGNhbGxzDQo+IFByb2Nlc3ND YXBzdWxlcygpIHdoZW5ldmVyIGl0IHdhbnRzIHRvLg0KPiANCj4gSSdtIHJhdGhlciByZWx1Y2Fu dCB0byBjb21wbGljYXRlIHRoZSBjb2RlIHdpdGggYW4gYWRkaXRpb25hbCBldmVudA0KPiB0aGF0 IHdlIGRvbid0IHJlYWxseSBuZWVkLCB3aGlsZSByZXRhaW5pbmcgc29tZSBvZiB0aGUgRW5kT2ZE eGUNCj4gaGFuZGxpbmcgYXMgd2VsbC4gQ291bGQgeW91IHRoaW5rIG9mIGFub3RoZXIgd2F5IHRv IGhhbmRsZSB0aGlzIHVzZQ0KPiBjYXNlPw0KPiANCj4gVGhhbmtzLA0KPiBBcmQuDQo+IA0KPiA+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBlZGsyLWRldmVsIFttYWls dG86ZWRrMi1kZXZlbC1ib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxmIE9mDQo+IEFyZA0K PiA+PiBCaWVzaGV1dmVsDQo+ID4+IFNlbnQ6IE1vbmRheSwgSnVuZSAxMSwgMjAxOCA1OjQwIEFN DQo+ID4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4+IENjOiBL aW5uZXksIE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiBlZGsyLWRl dmVsQGxpc3RzLjAxLm9yZzsNCj4gPj4gWmVuZywgU3RhciA8c3Rhci56ZW5nQGludGVsLmNvbT47 IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRD SCB2MiAyLzVdIE1kZU1vZHVsZVBrZy9EeGVDYXBzdWxlTGliRm1wOg0KPiBwZXJtaXQNCj4gPj4g UHJvY2Vzc0NhcHN1bGVzICgpIHRvIGJlIGNhbGxlZCBvbmNlDQo+ID4+DQo+ID4+IE9uIDExIEp1 bmUgMjAxOCBhdCAxNDozNywgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPiB3cm90 ZToNCj4gPj4gPiBJZiBhbGwgZm1wIGNhbiBiZSBwcm9jZXNzZWQgb25lIHRpbWXvvIx5b3UganVz dCBuZWVkIGNhbGwgb25jZS4gVGhlbiBzeXN0ZW0NCj4gPj4gcmVzZXQuDQo+ID4+ID4NCj4gPj4N Cj4gPj4gSSB1bmRlcnN0YW5kIHRoYXQuIEJ1dCBpZiB0aGUgY2Fwc3VsZSBoYXMgZW1iZWRkZWQg ZHJpdmVycywgdGhlDQo+ID4+IGxpYnJhcnkgd2lsbCBvbmx5IGRpc3BhdGNoIHRoZW0gb24gdGhl IHNlY29uZCBjYWxsLCBldmVuIGlmIHRoZQ0KPiA+PiBwbGF0Zm9ybSBkb2VzIG5vdCByZXF1aXJl IG1ha2luZyB0aGF0IGRpc3RpbmN0aW9uLiBJdCBzZWVtcyB0byBtZSB0aGF0DQo+ID4+IHRoZSBw aGFzaW5nIGJldHdlZW4gdGhlIGZpcnN0IGFuZCB0aGUgc2Vjb25kIGNhbGwgaXMgY2xvc2VseSB0 aWVkIHRvDQo+ID4+IHRoZSBzZW1hbnRpY3Mgb2YgRW5kT2ZEeGUgYW5kIHRoZSBhc3NvY2lhdGVk IHBvbGljeSBvbiBYODYgbm90IHRvDQo+ID4+IGFsbG93IHRoaXJkIHBhcnR5IGNvZGUgYmVmb3Jl IGl0IGhhcyBiZWVuIHNpZ25hbGxlZC4NCj4gPj4NCj4gPj4gQ291bGQgd2Ugbm90IHBhcmFtZXRl cml6ZSB0aGlzIGluIHNvbWUgd2F5IGFzIHdlbGw/DQo+ID4+DQo+ID4+DQo+ID4+ID4NCj4gPj4g Pj4g5ZyoIDIwMTjlubQ25pyIMTHml6XvvIzkuIrljYgxMjoyN++8jEFyZCBCaWVzaGV1dmVsDQo+ ID4+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPiDlhpnpgZPvvJoNCj4gPj4gPj4NCj4gPj4g Pj4+IE9uIDEwIEp1bmUgMjAxOCBhdCAyMToyMSwgWWFvLCBKaWV3ZW4gPGppZXdlbi55YW9AaW50 ZWwuY29tPiB3cm90ZToNCj4gPj4gPj4+IEp1c3QgZ290IHNvbWUgaWRlYSBzaW5jZSBJIGFtIGFs c28gcmV2aWV3aW5nIEZtcERldmljZVBrZyBwYXRjaC4NCj4gPj4gPj4+DQo+ID4+ID4+Pg0KPiA+ PiA+Pj4gVGhlIGtleSBwcm9ibGVtIHdlIGFyZSB0cnlpbmcgdG8gcmVzb2x2ZSB0aGF0IGlzOiBU aGUgY29yZSBjb2RlIHVzZXMNCj4gPj4gRW5kT2ZEeGUgYXMgdGhlIGxvY2sgZXZlbnQgZm9yIHN5 c3RlbSBmaXJtd2FyZSwgYnV0IGFuIEFSTSBwbGF0Zm9ybSBtYXkNCj4gd2FudA0KPiA+PiB0byBs b2NrIHN5c3RlbSBmaXJtd2FyZSBsYXRlciwgbWF5YmUgaW4gb3RoZXIgbG9jayBldmVudC4NCj4g Pj4gPj4+DQo+ID4+ID4+PiBBcyBzdWNoLCBob3cgYWJvdXQgd2UgZ2VuZXJhbGl6ZSB0aGUgbG9j ayBldmVudCBhcw0KPiA+PiBQY2RTeXN0ZW1GbXBMb2NrRXZlbnRHdWlkPyBXZSBjYW4gdXNlIEVu ZE9mRHhlR3VpZCBhcyBkZWZhdWx0IG9uZSB0bw0KPiBrZWVwDQo+ID4+IHRoZSBjb21wYXRpYmls aXR5LiBBdCBzYW1lIHRpbWUgdGhpcyBicmluZ3MgdGhlIGZsZXhpYmlsaXR5IGZvciBwbGF0Zm9y bQ0KPiBvdmVycmlkaW5nLg0KPiA+PiA+Pj4NCj4gPj4gPj4+DQo+ID4+ID4+PiBXZSBvbmx5IG5l ZWQgdXBkYXRlIER4ZUNhcHN1bGVMaWJDb25zdHJ1Y3RvcigpIHRvIHVzZSB0aGUgbmV3DQo+IFBj ZEd1aWQsDQo+ID4+IGluc3RlYWQgb2YgaGFyZGNvZGUgRW5kT2ZEeGUuDQo+ID4+ID4+PiBXZSBk b24ndCBuZWVkIHVwZGF0ZSB0aGUgbG9naWMgaW4gUHJvY2Vzc0NhcHN1bGVzKCkgYW5kDQo+ID4+ IFByb2Nlc3NUaGVzZUNhcHN1bGVzKCkuDQo+ID4+ID4+PiBUaGUgcG9saWN5IGluIGN1cnJlbnQg cGxhdGZvcm0gaXMgYWxyZWFkeSBlbmZvcmNlZCwgaWYgdGhlIHBsYXRmb3JtIGhhcyBhDQo+ID4+ IHRydXN0ZWQgY29uc29sZS4NCj4gPj4gPj4+IEZvciBBUk0gcGxhdGZvcm0sIHdoaWNoIHdhbnRz IHRvIGxvY2sgc3lzdGVtIGZpcm13YXJlIGxhdGVyLiBJdCBjYW4NCj4gPj4gY29uZmlndXJlIGFu b3RoZXIgbG9jayBldmVudCBHVUlEIGV4cGxpY2l0bHkgaW4gcGxhdGZvcm0gRFNDLg0KPiA+PiA+ Pj4NCj4gPj4gPj4NCj4gPj4gPj4gQnV0IHRoYXQgbWVhbnMgd2UgYXJlIHN0aWxsIHJlcXVpcmVk IHRvIGNhbGwgUHJvY2Vzc0NhcHN1bGVzICgpIHR3aWNlLCBubz8NCj4gPj4gPj4NCj4gPj4gPj4+ PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiA+Pj4+IEZyb206IGVkazItZGV2ZWwg W21haWx0bzplZGsyLWRldmVsLWJvdW5jZXNAbGlzdHMuMDEub3JnXSBPbiBCZWhhbGYNCj4gT2YN Cj4gPj4gWWFvLA0KPiA+PiA+Pj4+IEppZXdlbg0KPiA+PiA+Pj4+IFNlbnQ6IFN1bmRheSwgSnVu ZSAxMCwgMjAxOCAxMjowMiBQTQ0KPiA+PiA+Pj4+IFRvOiBLaW5uZXksIE1pY2hhZWwgRCA8bWlj aGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBBcmQgQmllc2hldXZlbA0KPiA+PiA+Pj4+IDxhcmQu Ymllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+PiA+Pj4+IENjOiBlZGsyLWRldmVsQGxpc3RzLjAx Lm9yZzsgbGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnOyBaZW5nLCBTdGFyDQo+ID4+ID4+Pj4gPHN0 YXIuemVuZ0BpbnRlbC5jb20+DQo+ID4+ID4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0gg djIgMi81XSBNZGVNb2R1bGVQa2cvRHhlQ2Fwc3VsZUxpYkZtcDoNCj4gPj4gcGVybWl0DQo+ID4+ ID4+Pj4gUHJvY2Vzc0NhcHN1bGVzICgpIHRvIGJlIGNhbGxlZCBvbmNlDQo+ID4+ID4+Pj4NCj4g Pj4gPj4+PiBNeSBjb25jZXJuIGlzIHRoYXQgKmFsd2F5cyBhbGxvd2luZyogcHJvY2Vzc2luZyBT eXN0ZW1DYXBzdWxlIGFmdGVyDQo+ID4+IEVuZE9mRHhlDQo+ID4+ID4+Pj4gaGFzIHNlY3VyaXR5 IHJpc2suDQo+ID4+ID4+Pj4NCj4gPj4gPj4+PiBJTUhPLCB0aGUgcmlzayBpcyBub3QgKnByb2Nl c3MqLCBpZiBpdCBpcyBhIHBsYXRmb3JtIGNob2ljZS4gSW5zdGVhZCwgdGhlDQo+IHJpc2sgaXMN Cj4gPj4gPj4+PiAqYWxsb3cqLCBpbiB0aGUgY29yZSBsb2dpYy4NCj4gPj4gPj4+Pg0KPiA+PiA+ Pj4+IElmIHdlIHJlYWxseSB3YW50IHRvIGRvIHRoYXQsIEkgaG9wZSB3ZSBuZWVkIGEgd2F5IHRv IGRpc3Rpbmd1aXNoIHRoZQ0KPiA+PiBkaWZmZXJlbmNlDQo+ID4+ID4+Pj4gYmV0d2VlbiBhIHBs YXRmb3JtIGRpc3BhdGNoaW5nIFN5c3RlbUNhcHN1bGUgYWZ0ZXIgRW5kT2ZEeGUNCj4gPj4gKnB1 cnBvc2VseSogYW5kDQo+ID4+ID4+Pj4gYSBwbGF0Zm9ybSBkaXNwYXRjaGluZyBTeXN0ZW1DYXBz dWxlIGFmdGVyIEVuZE9mRHhlICpieSBtaXN0YWtlKi4NCj4gPj4gPj4+Pg0KPiA+PiA+Pj4+IE1h eWJlIHNvbWUgcG9saWN5IGVuZm9yY2VtZW50IGluIHRoZSBjb3JlIGxvZ2ljLiBTdGF0aWMgcG9s aWN5LCBhdCBidWlsZA0KPiA+PiB0aW1lLg0KPiA+PiA+Pj4+DQo+ID4+ID4+Pj4gVGhhbmsgeW91 DQo+ID4+ID4+Pj4gWWFvIEppZXdlbg0KPiA+PiA+Pj4+DQo+ID4+ID4+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4+ID4+Pj4+IEZyb206IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+ ID4+Pj4+IFNlbnQ6IFN1bmRheSwgSnVuZSAxMCwgMjAxOCA4OjU3IEFNDQo+ID4+ID4+Pj4+IFRv OiBBcmQgQmllc2hldXZlbCA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz47IFlhbywgSmlld2Vu DQo+ID4+ID4+Pj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IEtpbm5leSwgTWljaGFlbCBEDQo+ ID4+IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4NCj4gPj4gPj4+Pj4gQ2M6IGVkazItZGV2 ZWxAbGlzdHMuMDEub3JnOyBaZW5nLCBTdGFyIDxzdGFyLnplbmdAaW50ZWwuY29tPjsNCj4gPj4g Pj4+Pj4gbGVpZi5saW5kaG9sbUBsaW5hcm8ub3JnDQo+ID4+ID4+Pj4+IFN1YmplY3Q6IFJFOiBb ZWRrMl0gW1BBVENIIHYyIDIvNV0NCj4gTWRlTW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6DQo+ ID4+IHBlcm1pdA0KPiA+PiA+Pj4+PiBQcm9jZXNzQ2Fwc3VsZXMgKCkgdG8gYmUgY2FsbGVkIG9u Y2UNCj4gPj4gPj4+Pj4NCj4gPj4gPj4+Pj4gQXJkLA0KPiA+PiA+Pj4+Pg0KPiA+PiA+Pj4+PiBJ IGFncmVlIGl0IHNob3VsZCBiZSBhIHBsYXRmb3JtIGNob2ljZSB0byBwcm9jZXNzIGNhcHN1bGVz DQo+ID4+ID4+Pj4+IGJlZm9yZSBvciBhZnRlciBFbmQgb2YgRFhFLiAgSXQgaXMgZXZlbiBhbGxv d2VkIGluIHRoZQ0KPiA+PiA+Pj4+PiBVRUZJIFNwZWMgZm9yIGNhcHN1bGVzIHRvIGJlIHByb2Nl c3NlZCBpbW1lZGlhdGVseQ0KPiA+PiA+Pj4+PiB3aGljaCB3b3VsZCBpbmNsdWRlIGF0IE9TIHJ1 bnRpbWUgYWZ0ZXIgRXhpdEJvb3RTZXJ2aWNlcy4NCj4gPj4gPj4+Pj4NCj4gPj4gPj4+Pj4gVGhl cmUgYXJlIDIgaW5wdXRzIHRvIHRoZXNlIGNob2ljZXM6DQo+ID4+ID4+Pj4+ICogVGhlIGZsYWdz IHNldCBpbiB0aGUgQ2Fwc3VsZSBpdHNlbGYuICBTZWUgVUVGSSAyLjcgU3BlYw0KPiA+PiA+Pj4+ PiAgVGFibGUgMzggZm9yIHRoZSA1IGFsbG93ZWQgY29tYmluYXRpb25zLg0KPiA+PiA+Pj4+PiAq IFBsYXRmb3JtIHBvbGljeSBmb3IgZWFjaCBvZiB0aGVzZSA1IGNhcHN1bGUgdHlwZXMgYW5kDQo+ ID4+ID4+Pj4+ICB3aGVuIGVhY2ggb2YgdGhlc2UgNSBjYXBzdWxlIHR5cGVzIGFyZSBhbGxvd2Vk IHRvIGJlDQo+ID4+ID4+Pj4+ICBwcm9jZXNzZWQuDQo+ID4+ID4+Pj4+DQo+ID4+ID4+Pj4+IEpp ZXdlbidzIGNvbW1lbnRzIHBvaW50IHRvIHNvbWUgYXNzdW1wdGlvbnMgdGhhdCBoYXZlIGJlZW4N Cj4gPj4gPj4+Pj4gbWFkZSBpbiB0aGUgbG9naWMuICBUaGVzZSBhc3N1bXB0aW9ucyBtYXkgYmUg Y29uc2lkZXJlZCBhDQo+ID4+ID4+Pj4+IHNhZmUgZGVmYXVsdCBwbGF0Zm9ybSBwb2xpY3ksIGJ1 dCB0aGUgY29kZSBsb2dpYyBzaG91bGQNCj4gPj4gPj4+Pj4gYWxsb3cgdGhlIHBsYXRmb3JtIHRv IGVhc2lseSBzZWxlY3QgYWx0ZXJuYXRlIHBvbGljaWVzLg0KPiA+PiA+Pj4+Pg0KPiA+PiA+Pj4+ PiBJIHRoaW5rIHRoZSBwYXRjaCB5b3UgaGF2ZSBwcm92aWRlZCBhdHRlbXB0cyB0byBhZGQgb25l DQo+ID4+ID4+Pj4+IGFkZGl0aW9uYWwgcG9saWN5LiAgUGVyaGFwcyB3ZSBzaG91bGQgbG9vayBh dCB0aGlzIGZyb20NCj4gPj4gPj4+Pj4gdGhlIFVFRkkgU3BlYyBwZXJzcGVjdGl2ZSBhbmQgc2Vl IGhvdyBkaWZmaWN1bHQgaXQgaXMgdG8NCj4gPj4gPj4+Pj4gZXhwcmVzcyBwb2xpY2llcyBmb3Ig dGhlIHN1cHBvcnRlZCBjYXBzdWxlIHR5cGVzLg0KPiA+PiA+Pj4+Pg0KPiA+PiA+Pj4+PiBJIHdp bGwgcmV2aWV3IHlvdXIgcGF0Y2ggaW4gbW9yZSBkZXRhaWwgdG9tb3Jyb3cuDQo+ID4+ID4+Pj4+ DQo+ID4+ID4+Pj4+IFRoYW5rcywNCj4gPj4gPj4+Pj4NCj4gPj4gPj4+Pj4gTWlrZQ0KPiA+PiA+ Pj4+Pg0KPiA+PiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gPj4+Pj4+ IEZyb206IEFyZCBCaWVzaGV1dmVsIFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10N Cj4gPj4gPj4+Pj4+IFNlbnQ6IFNhdHVyZGF5LCBKdW5lIDksIDIwMTggMTA6NDIgUE0NCj4gPj4g Pj4+Pj4+IFRvOiBZYW8sIEppZXdlbiA8amlld2VuLnlhb0BpbnRlbC5jb20+DQo+ID4+ID4+Pj4+ PiBDYzogZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmc7IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+ID4+ Pj4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+OyBaZW5nLCBTdGFyDQo+ID4+ID4+Pj4+ PiA8c3Rhci56ZW5nQGludGVsLmNvbT47IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZw0KPiA+PiA+ Pj4+Pj4gU3ViamVjdDogUmU6IFtlZGsyXSBbUEFUQ0ggdjIgMi81XQ0KPiA+PiA+Pj4+Pj4gTWRl TW9kdWxlUGtnL0R4ZUNhcHN1bGVMaWJGbXA6IHBlcm1pdCBQcm9jZXNzQ2Fwc3VsZXMNCj4gPj4g Pj4+Pj4+ICgpIHRvIGJlIGNhbGxlZCBvbmNlDQo+ID4+ID4+Pj4+Pg0KPiA+PiA+Pj4+Pj4gT24g MTAgSnVuZSAyMDE4IGF0IDA3OjM4LCBZYW8sIEppZXdlbg0KPiA+PiA+Pj4+Pj4gPGppZXdlbi55 YW9AaW50ZWwuY29tPiB3cm90ZToNCj4gPj4gPj4+Pj4+PiBIaSBBcmQNCj4gPj4gPj4+Pj4+PiBB Y2NvcmRpbmcgdG8gUEkgc3BlYywgIlByaW9yIHRvIGludm9raW5nIGFueSBVRUZJDQo+ID4+ID4+ Pj4+PiBkcml2ZXJzLCBvciBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgbm90IGZyb20gdGhlIHBsYXRm b3JtDQo+ID4+ID4+Pj4+PiBtYW51ZmFjdHVyZXIsIG9yIGNvbm5lY3RpbmcgY29uc29sZXMsIHRo ZSBwbGF0Zm9ybQ0KPiA+PiA+Pj4+Pj4gc2hvdWxkIHNpZ25hbHMgdGhlIGV2ZW50IEVGSV9FTkRf T0ZfRFhFX0VWRU5UX0dVSUQiDQo+ID4+ID4+Pj4+Pj4NCj4gPj4gPj4+Pj4+PiBJbiBicmllZiwg RW5kT2ZEeGUgaXMgc2lnbmFsZWQgYmVmb3JlIDNyZCBwYXJ0IGNvZGUNCj4gPj4gPj4+Pj4+IHJ1 bm5pbmcuDQo+ID4+ID4+Pj4+Pj4NCj4gPj4gPj4+Pj4+PiBBcyBzdWNoLCBpdCBpcyBsZWdhbCB0 aGF0IGEgdHJ1c3RlZCBjb25zb2xlIGlzDQo+ID4+ID4+Pj4+PiBjb25uZWN0ZWQgYmVmb3JlIEVu ZE9mRHhlLg0KPiA+PiA+Pj4+Pj4+IFlvdSBjYW4gcmVwb3J0IHByb2dyZXNzIHRvIHVzZXIgYmVm b3JlIEVuZE9mRHhlLg0KPiA+PiA+Pj4+Pj4+DQo+ID4+ID4+Pj4+Pg0KPiA+PiA+Pj4+Pj4gU28g aG93IGRvIEkgY29ubmVjdCBhIHRydXN0ZWQgY29uc29sZSBvbiBhIHN5c3RlbSB3aXRoDQo+ID4+ ID4+Pj4+PiBhIHBsdWdpbiBncmFwaGljcyBjYXJkPw0KPiA+PiA+Pj4+Pj4gSG93IGNhbiBJIHJl cG9ydCBjYXBzdWxlIHVwZGF0ZSBwcm9ncmVzcyBvbiBzdWNoIGENCj4gPj4gPj4+Pj4+IHN5c3Rl bT8NCj4gPj4gPj4+Pj4+IE9uIGEgc3lzdGVtIHN1Y2ggYXMgQVJNIHdoZXJlIHRoZSBhY3R1YWwg Zmxhc2ggdXBkYXRlDQo+ID4+ID4+Pj4+PiBpbnZvbHZlcyBjYWxscw0KPiA+PiA+Pj4+Pj4gaW50 byB0aGUgc3RhbmRhbG9uZSBNTSBsYXllciwgd2hpY2ggbWFrZXMgdGhlDQo+ID4+ID4+Pj4+PiBk aXN0aW5jdGlvbiB1bm5lY2Vzc2FyeSwNCj4gPj4gPj4+Pj4+IGhvdyBkbyB5b3UgcmVjb21tZW5k IHRvIGhhbmRsZSB0aGlzIGlmIGl0IGlzIG1hbmRhdG9yeQ0KPiA+PiA+Pj4+Pj4gYWNjb3JkaW5n IHRvDQo+ID4+ID4+Pj4+PiB5b3UgdG8gcHJvY2VzcyB0aGUgY2Fwc3VsZSBiZWZvcmUgRW5kT2ZE eGU/DQo+ID4+ID4+Pj4+Pg0KPiA+PiA+Pj4+Pj4NCj4gPj4gPj4+Pj4+Pj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4gPj4+Pj4+Pj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwNCj4gPj4g Pj4+Pj4+IFttYWlsdG86YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZ10NCj4gPj4gPj4+Pj4+Pj4g U2VudDogRnJpZGF5LCBKdW5lIDgsIDIwMTggODozOCBBTQ0KPiA+PiA+Pj4+Pj4+PiBUbzogWWFv LCBKaWV3ZW4gPGppZXdlbi55YW9AaW50ZWwuY29tPg0KPiA+PiA+Pj4+Pj4+PiBDYzogZWRrMi1k ZXZlbEBsaXN0cy4wMS5vcmc7IEtpbm5leSwgTWljaGFlbCBEDQo+ID4+ID4+Pj4+PiA8bWljaGFl bC5kLmtpbm5leUBpbnRlbC5jb20+Ow0KPiA+PiA+Pj4+Pj4+PiBaZW5nLCBTdGFyIDxzdGFyLnpl bmdAaW50ZWwuY29tPjsNCj4gPj4gPj4+Pj4+IGxlaWYubGluZGhvbG1AbGluYXJvLm9yZw0KPiA+ PiA+Pj4+Pj4+PiBTdWJqZWN0OiBSZTogW2VkazJdIFtQQVRDSCB2MiAyLzVdDQo+ID4+ID4+Pj4+ PiBNZGVNb2R1bGVQa2cvRHhlQ2Fwc3VsZUxpYkZtcDogcGVybWl0DQo+ID4+ID4+Pj4+Pj4+IFBy b2Nlc3NDYXBzdWxlcyAoKSB0byBiZSBjYWxsZWQgb25jZQ0KPiA+PiA+Pj4+Pj4+Pg0KPiA+PiA+ Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4gT24gOCBKdW4gMjAxOCwgYXQg MTQ6MzQsIFlhbywgSmlld2VuDQo+ID4+ID4+Pj4+PiA8amlld2VuLnlhb0BpbnRlbC5jb20+IHdy b3RlOg0KPiA+PiA+Pj4+Pj4+Pj4NCj4gPj4gPj4+Pj4+Pj4+IEhpIEFyZA0KPiA+PiA+Pj4+Pj4+ Pj4gV2UgZG9uJ3QgYWxsb3cgcGxhdGZvcm0gdG8gdXBkYXRlIHN5c3RlbSBmaXJtd2FyZQ0KPiA+ PiA+Pj4+Pj4gKmFmdGVyKiBFbmRPZkR4ZS4NCj4gPj4gPj4+Pj4+Pj4+DQo+ID4+ID4+Pj4+Pj4+ PiBBY2NvcmRpbmcgdG8gUEkgc3BlYywgYWZ0ZXIgRW5kT2ZEeGUsIDNyZCBwYXJ0DQo+ID4+ID4+ Pj4+PiBjb2RlIHN0YXJ0IHJ1bm5pbmcuIEl0IGJyaW5ncw0KPiA+PiA+Pj4+Pj4+PiBzZWN1cml0 eSByaXNrIGlmIHdlIGFsbG93IHN5c3RlbSBmaXJtd2FyZSBhZnRlcg0KPiA+PiA+Pj4+Pj4gRW5k T2ZEeGUuDQo+ID4+ID4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4gSW4gb3VyIFg4NiBzeXN0ZW0g ZGVzaWduLCB3ZSBsb2NrIGZsYXNoIHBhcnQNCj4gPj4gPj4+Pj4+ICpiZWZvcmUqIEVuZE9mRHhl IGluIGFueSBib290DQo+ID4+ID4+Pj4+Pj4+IG1vZGUuDQo+ID4+ID4+Pj4+Pj4+PiBFdmVuIGlu IENhcHN1bGVVcGRhdGUgYm9vdCBtb2RlLCB3ZSBhbHNvIGxvY2sNCj4gPj4gPj4+Pj4+IGZsYXNo IHBhcnQgYXQgRW5kT2ZEeGUsIGp1c3QgaW4NCj4gPj4gPj4+Pj4+Pj4gY2FzZSB0aGUgY2Fwc3Vs ZSB1cGRhdGUgZG9lcyBub3QgaW5kaWNhdGUgYSByZXNldC4NCj4gPj4gPj4+Pj4+Pj4+DQo+ID4+ ID4+Pj4+Pj4+PiBXb3VsZCB5b3UgcGxlYXNlIHNoYXJlIHRoZSBpbmZvLCB3aHkgeW91ciBwbGF0 Zm9ybQ0KPiA+PiA+Pj4+Pj4gbmVlZCB1cGRhdGUgc3lzdGVtDQo+ID4+ID4+Pj4+Pj4+IGZpcm13 YXJlIGFmdGVyIEVuZE9mRHhlPw0KPiA+PiA+Pj4+Pj4+Pj4gSXMgdGhhdCBwb3NzaWJsZSB0byBt YWtlIGl0IGVhcmxpZXI/DQo+ID4+ID4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4NCj4gPj4gPj4+ Pj4+Pj4NCj4gPj4gPj4+Pj4+Pj4gQmVjYXVzZSB3ZSBuZWVkIHNvbWUga2luZCBvZiBjb25zb2xl IHRvIHJlcG9ydA0KPiA+PiA+Pj4+Pj4gcHJvZ3Jlc3MgdG8gdGhlIHVzZXIuDQo+ID4+ID4+Pj4+ Pj4+DQo+ID4+ID4+Pj4+Pj4+IFRoZSBzZWN1cmUgcGxhdGZvcm0gZXhlY3V0aW9uIGNvbnRleHQg aXMgY29tcGxldGVseQ0KPiA+PiA+Pj4+Pj4gc2VwYXJhdGUgZnJvbSBVRUZJIG9uIEFybSwNCj4g Pj4gPj4+Pj4+Pj4gc28gZm9yIHVzIHRoZSBkaXN0aW5jdGlvbiBkb2VzIG5vdCBtYWtlIHNlbnNl Lg0KPiA+PiA+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4gVGhhbmsgeW91DQo+ID4+ID4+Pj4+Pj4+ PiBZYW8gSmlld2VuDQo+ID4+ID4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4+ID4+Pj4+Pj4+Pj4gRnJvbTogZWRrMi1kZXZlbCBbbWFpbHRv OmVkazItZGV2ZWwtDQo+ID4+ID4+Pj4+PiBib3VuY2VzQGxpc3RzLjAxLm9yZ10gT24gQmVoYWxm IE9mDQo+ID4+ID4+Pj4+Pj4+IEFyZA0KPiA+PiA+Pj4+Pj4+Pj4+IEJpZXNoZXV2ZWwNCj4gPj4g Pj4+Pj4+Pj4+PiBTZW50OiBGcmlkYXksIEp1bmUgOCwgMjAxOCAyOjU4IEFNDQo+ID4+ID4+Pj4+ Pj4+Pj4gVG86IGVkazItZGV2ZWxAbGlzdHMuMDEub3JnDQo+ID4+ID4+Pj4+Pj4+Pj4gQ2M6IEtp bm5leSwgTWljaGFlbCBEDQo+ID4+ID4+Pj4+PiA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5jb20+ OyBZYW8sIEppZXdlbg0KPiA+PiA+Pj4+Pj4+Pj4+IDxqaWV3ZW4ueWFvQGludGVsLmNvbT47IFpl bmcsIFN0YXINCj4gPj4gPj4+Pj4+IDxzdGFyLnplbmdAaW50ZWwuY29tPjsNCj4gPj4gPj4+Pj4+ Pj4+PiBsZWlmLmxpbmRob2xtQGxpbmFyby5vcmc7IEFyZCBCaWVzaGV1dmVsDQo+ID4+ID4+Pj4+ PiA8YXJkLmJpZXNoZXV2ZWxAbGluYXJvLm9yZz4NCj4gPj4gPj4+Pj4+Pj4+PiBTdWJqZWN0OiBb ZWRrMl0gW1BBVENIIHYyIDIvNV0NCj4gPj4gPj4+Pj4+IE1kZU1vZHVsZVBrZy9EeGVDYXBzdWxl TGliRm1wOiBwZXJtaXQNCj4gPj4gPj4+Pj4+Pj4+PiBQcm9jZXNzQ2Fwc3VsZXMgKCkgdG8gYmUg Y2FsbGVkIG9uY2UNCj4gPj4gPj4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4+IFBlcm1pdCBQcm9j ZXNzQ2Fwc3VsZXMgKCkgdG8gYmUgY2FsbGVkIG9ubHkgYQ0KPiA+PiA+Pj4+Pj4gc2luZ2xlIHRp bWUsIGFmdGVyDQo+ID4+ID4+Pj4+Pj4+Pj4gRW5kT2ZEeGUuIFRoaXMgYWxsb3dzIHBsYXRmb3Jt cyB0aGF0IGFyZSBhYmxlIHRvDQo+ID4+ID4+Pj4+PiB1cGRhdGUgc3lzdGVtDQo+ID4+ID4+Pj4+ Pj4+Pj4gZmlybXdhcmUgYWZ0ZXIgRW5kT2ZEeGUgKGUuZy4sIGJlY2F1c2UgdGhlIGZsYXNoDQo+ ID4+ID4+Pj4+PiBST00gaXMgbm90IGxvY2tlZA0KPiA+PiA+Pj4+Pj4+Pj4+IGRvd24pIHRvIGRv IHNvIGF0IGEgdGltZSB3aGVuIGEgbm9uLXRydXN0ZWQNCj4gPj4gPj4+Pj4+IGNvbnNvbGUgaXMg dXAgYW5kIHJ1bm5pbmcsDQo+ID4+ID4+Pj4+Pj4+Pj4gYW5kIHByb2dyZXNzIGNhbiBiZSByZXBv cnRlZCB0byB0aGUgdXNlci4NCj4gPj4gPj4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4+IENvbnRy aWJ1dGVkLXVuZGVyOiBUaWFub0NvcmUgQ29udHJpYnV0aW9uDQo+ID4+ID4+Pj4+PiBBZ3JlZW1l bnQgMS4xDQo+ID4+ID4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogQXJkIEJpZXNoZXV2ZWwNCj4g Pj4gPj4+Pj4+IDxhcmQuYmllc2hldXZlbEBsaW5hcm8ub3JnPg0KPiA+PiA+Pj4+Pj4+Pj4+IC0t LQ0KPiA+PiA+Pj4+Pj4+Pj4+DQo+ID4+ID4+Pj4+PiBNZGVNb2R1bGVQa2cvTGlicmFyeS9EeGVD YXBzdWxlTGliRm1wL0R4ZUNhcHN1bGVQcm9jZXNzDQo+ID4+ID4+Pj4+PiBMaWIuYyB8IDE4DQo+ ID4+ID4+Pj4+Pj4+Pj4gKysrKysrKysrKysrLS0tLS0tDQo+ID4+ID4+Pj4+Pj4+Pj4gMSBmaWxl IGNoYW5nZWQsIDEyIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+ID4+ID4+Pj4+Pj4+ Pj4NCj4gPj4gPj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0DQo+ID4+ID4+Pj4+Pj4+DQo+ID4+ID4+Pj4+ PiBhL01kZU1vZHVsZVBrZy9MaWJyYXJ5L0R4ZUNhcHN1bGVMaWJGbXAvRHhlQ2Fwc3VsZVByb2Nl DQo+ID4+ID4+Pj4+PiBzc0xpYi5jDQo+ID4+ID4+Pj4+Pj4+Pj4NCj4gPj4gPj4+Pj4+IGIvTWRl TW9kdWxlUGtnL0xpYnJhcnkvRHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBzdWxlUHJvY2UNCj4gPj4g Pj4+Pj4+IHNzTGliLmMNCj4gPj4gPj4+Pj4+Pj4+PiBpbmRleCAyNmNhNGUyOTVmMjAuLmFkODM2 NjBmMTczNyAxMDA2NDQNCj4gPj4gPj4+Pj4+Pj4+PiAtLS0NCj4gPj4gPj4+Pj4+IGEvTWRlTW9k dWxlUGtnL0xpYnJhcnkvRHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBzdWxlUHJvY2UNCj4gPj4gPj4+ Pj4+IHNzTGliLmMNCj4gPj4gPj4+Pj4+Pj4+PiArKysNCj4gPj4gPj4+Pj4+IGIvTWRlTW9kdWxl UGtnL0xpYnJhcnkvRHhlQ2Fwc3VsZUxpYkZtcC9EeGVDYXBzdWxlUHJvY2UNCj4gPj4gPj4+Pj4+ IHNzTGliLmMNCj4gPj4gPj4+Pj4+Pj4+PiBAQCAtMTAwLDYgKzEwMCw3IEBAIElzVmFsaWRDYXBz dWxlSGVhZGVyICgNCj4gPj4gPj4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4+IGV4dGVybiBCT09M RUFODQo+ID4+ID4+Pj4+PiBtRHhlQ2Fwc3VsZUxpYkVuZE9mRHhlOw0KPiA+PiA+Pj4+Pj4+Pj4+ IEJPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgIG1OZWVkUmVzZXQ7DQo+ID4+ID4+Pj4+ Pj4+Pj4gK0JPT0xFQU4gICAgICAgICAgICAgICAgICAgICAgICAgIG1GaXJzdFJvdW5kID0NCj4g Pj4gPj4+Pj4+IFRSVUU7DQo+ID4+ID4+Pj4+Pj4+Pj4NCj4gPj4gPj4+Pj4+Pj4+PiBWT0lEICAg ICAgICAgICAgICAgICAgICAgICAgKiptQ2Fwc3VsZVB0cjsNCj4gPj4gPj4+Pj4+Pj4+PiBFRklf U1RBVFVTICAgICAgICAgICAgICAgICAgKm1DYXBzdWxlU3RhdHVzQXJyYXk7DQo+ID4+ID4+Pj4+ Pj4+Pj4gQEAgLTM2NCw4ICszNjUsMTEgQEANCj4gPj4gPj4+Pj4+IFBvcHVsYXRlQ2Fwc3VsZUlu Q29uZmlndXJhdGlvblRhYmxlICgNCj4gPj4gPj4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4+ICBF YWNoIGluZGl2aWR1YWwgY2Fwc3VsZSByZXN1bHQgaXMgcmVjb3JkZWQgaW4NCj4gPj4gPj4+Pj4+ IGNhcHN1bGUgcmVjb3JkIHZhcmlhYmxlLg0KPiA+PiA+Pj4+Pj4+Pj4+DQo+ID4+ID4+Pj4+Pj4+ Pj4gLSAgQHBhcmFtW2luXSAgRmlyc3RSb3VuZCAgICAgICAgIFRSVUU6ICBGaXJzdA0KPiA+PiA+ Pj4+Pj4gcm91bmQuIE5lZWQgc2tpcCB0aGUNCj4gPj4gPj4+Pj4+Pj4gRk1QDQo+ID4+ID4+Pj4+ Pj4+Pj4gY2Fwc3VsZXMgd2l0aCBub24gemVybyBFbWJlZGRlZERyaXZlckNvdW50Lg0KPiA+PiA+ Pj4+Pj4+Pj4+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRTogUHJvY2Vz cw0KPiA+PiA+Pj4+Pj4gcmVzdCBGTVAgY2Fwc3VsZXMuDQo+ID4+ID4+Pj4+Pj4+Pj4gKyAgQHBh cmFtW2luXSAgRmlyc3RSb3VuZCAgICAgICAgIFdoZXRoZXIgdGhpcyBpcw0KPiA+PiA+Pj4+Pj4g dGhlIGZpcnN0IGludm9jYXRpb24NCj4gPj4gPj4+Pj4+Pj4+PiArICBAcGFyYW1baW5dICBMYXN0 Um91bmQgICAgICAgICAgV2hldGhlciB0aGlzIGlzDQo+ID4+ID4+Pj4+PiB0aGUgbGFzdCBpbnZv Y2F0aW9uDQo+ID4+ID4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEZBTFNFOiAgRmlyc3QNCj4gPj4gPj4+Pj4+IG9mIDIgcm91bmRzLiBOZWVkIHNraXANCj4gPj4g Pj4+Pj4+Pj4gdGhlDQo+ID4+ID4+Pj4+Pj4+Pj4gRk1QDQo+ID4+ID4+Pj4+Pj4+Pj4gKw0KPiA+ PiA+Pj4+Pj4gY2Fwc3VsZXMgd2l0aCBub24gemVybw0KPiA+PiA+Pj4+Pj4+Pj4+IEVtYmVkZGVk RHJpdmVyQ291bnQuDQo+ID4+ID4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRSVUU6ICAgUHJvY2Vzcw0KPiA+PiA+Pj4+Pj4gcmVzdCBGTVAgY2Fwc3VsZXMuDQo+ ID4+ID4+Pj4+Pj4+Pj4NCj4gPj4gPj4+Pj4+Pj4+PiAgQHJldHZhbCBFRklfU1VDQ0VTUyAgICAg ICAgICAgICBUaGVyZSBpcyBubw0KPiA+PiA+Pj4+Pj4gZXJyb3Igd2hlbiBwcm9jZXNzaW5nDQo+ ID4+ID4+Pj4+Pj4+Pj4gY2Fwc3VsZXMuDQo+ID4+ID4+Pj4+Pj4+Pj4gIEByZXR2YWwgRUZJX09V VF9PRl9SRVNPVVJDRVMgICAgTm8gZW5vdWdoDQo+ID4+ID4+Pj4+PiByZXNvdXJjZSB0byBwcm9j ZXNzDQo+ID4+ID4+Pj4+Pj4+Pj4gY2Fwc3VsZXMuDQo+ID4+ID4+Pj4+Pj4+Pj4gQEAgLTM3Myw3 ICszNzcsOCBAQA0KPiA+PiA+Pj4+Pj4gUG9wdWxhdGVDYXBzdWxlSW5Db25maWd1cmF0aW9uVGFi bGUgKA0KPiA+PiA+Pj4+Pj4+Pj4+ICoqLw0KPiA+PiA+Pj4+Pj4+Pj4+IEVGSV9TVEFUVVMNCj4g Pj4gPj4+Pj4+Pj4+PiBQcm9jZXNzVGhlc2VDYXBzdWxlcyAoDQo+ID4+ID4+Pj4+Pj4+Pj4gLSAg SU4gQk9PTEVBTiAgRmlyc3RSb3VuZA0KPiA+PiA+Pj4+Pj4+Pj4+ICsgIElOIEJPT0xFQU4gIEZp cnN0Um91bmQsDQo+ID4+ID4+Pj4+Pj4+Pj4gKyAgSU4gQk9PTEVBTiAgTGFzdFJvdW5kDQo+ID4+ ID4+Pj4+Pj4+Pj4gICkNCj4gPj4gPj4+Pj4+Pj4+PiB7DQo+ID4+ID4+Pj4+Pj4+Pj4gIEVGSV9T VEFUVVMgICAgICAgICAgICAgICAgICBTdGF0dXM7DQo+ID4+ID4+Pj4+Pj4+Pj4gQEAgLTQ1Myw3 ICs0NTgsNyBAQCBQcm9jZXNzVGhlc2VDYXBzdWxlcyAoDQo+ID4+ID4+Pj4+Pj4+Pj4gICAgICAg IGNvbnRpbnVlOw0KPiA+PiA+Pj4+Pj4+Pj4+ICAgICAgfQ0KPiA+PiA+Pj4+Pj4+Pj4+DQo+ID4+ ID4+Pj4+Pj4+Pj4gLSAgICAgIGlmICgoIUZpcnN0Um91bmQpIHx8IChFbWJlZGRlZERyaXZlckNv dW50DQo+ID4+ID4+Pj4+PiA9PSAwKSkgew0KPiA+PiA+Pj4+Pj4+Pj4+ICsgICAgICBpZiAoTGFz dFJvdW5kIHx8IChFbWJlZGRlZERyaXZlckNvdW50ID09DQo+ID4+ID4+Pj4+PiAwKSkgew0KPiA+ PiA+Pj4+Pj4+Pj4+ICAgICAgICBERUJVRygoREVCVUdfSU5GTywgIlByb2Nlc3NDYXBzdWxlSW1h Z2UgLQ0KPiA+PiA+Pj4+Pj4gMHgleFxuIiwNCj4gPj4gPj4+Pj4+Pj4+PiBDYXBzdWxlSGVhZGVy KSk7DQo+ID4+ID4+Pj4+Pj4+Pj4gICAgICAgIFN0YXR1cyA9IFByb2Nlc3NDYXBzdWxlSW1hZ2UN Cj4gPj4gPj4+Pj4+IChDYXBzdWxlSGVhZGVyKTsNCj4gPj4gPj4+Pj4+Pj4+PiAgICAgICAgbUNh cHN1bGVTdGF0dXNBcnJheSBbSW5kZXhdID0gU3RhdHVzOw0KPiA+PiA+Pj4+Pj4+Pj4+IEBAIC01 NDYsNyArNTUxLDcgQEAgUHJvY2Vzc0NhcHN1bGVzICgNCj4gPj4gPj4+Pj4+Pj4+PiAgRUZJX1NU QVRVUyAgICAgICAgICAgICAgICAgICAgU3RhdHVzOw0KPiA+PiA+Pj4+Pj4+Pj4+DQo+ID4+ID4+ Pj4+Pj4+Pj4gIGlmICghbUR4ZUNhcHN1bGVMaWJFbmRPZkR4ZSkgew0KPiA+PiA+Pj4+Pj4+Pj4+ IC0gICAgU3RhdHVzID0gUHJvY2Vzc1RoZXNlQ2Fwc3VsZXMoVFJVRSk7DQo+ID4+ID4+Pj4+Pj4+ Pj4gKyAgICBTdGF0dXMgPSBQcm9jZXNzVGhlc2VDYXBzdWxlcyhUUlVFLCBGQUxTRSk7DQo+ID4+ ID4+Pj4+Pj4+Pj4NCj4gPj4gPj4+Pj4+Pj4+PiAgICAvLw0KPiA+PiA+Pj4+Pj4+Pj4+ICAgIC8v IFJlYm9vdCBTeXN0ZW0gaWYgYW5kIG9ubHkgaWYgYWxsIGNhcHN1bGUNCj4gPj4gPj4+Pj4+IHBy b2Nlc3NlZC4NCj4gPj4gPj4+Pj4+Pj4+PiBAQCAtNTU1LDggKzU2MCw5IEBAIFByb2Nlc3NDYXBz dWxlcyAoDQo+ID4+ID4+Pj4+Pj4+Pj4gICAgaWYgKG1OZWVkUmVzZXQgJiYgQXJlQWxsSW1hZ2Vz UHJvY2Vzc2VkKCkpIHsNCj4gPj4gPj4+Pj4+Pj4+PiAgICAgIERvUmVzZXRTeXN0ZW0oKTsNCj4g Pj4gPj4+Pj4+Pj4+PiAgICB9DQo+ID4+ID4+Pj4+Pj4+Pj4gKyAgICBtRmlyc3RSb3VuZCA9IEZB TFNFOw0KPiA+PiA+Pj4+Pj4+Pj4+ICB9IGVsc2Ugew0KPiA+PiA+Pj4+Pj4+Pj4+IC0gICAgU3Rh dHVzID0gUHJvY2Vzc1RoZXNlQ2Fwc3VsZXMoRkFMU0UpOw0KPiA+PiA+Pj4+Pj4+Pj4+ICsgICAg U3RhdHVzID0gUHJvY2Vzc1RoZXNlQ2Fwc3VsZXMobUZpcnN0Um91bmQsDQo+ID4+ID4+Pj4+PiBU UlVFKTsNCj4gPj4gPj4+Pj4+Pj4+PiAgICAvLw0KPiA+PiA+Pj4+Pj4+Pj4+ICAgIC8vIFJlYm9v dCBTeXN0ZW0gaWYgcmVxdWlyZWQgYWZ0ZXIgYWxsDQo+ID4+ID4+Pj4+PiBjYXBzdWxlIHByb2Nl c3NlZA0KPiA+PiA+Pj4+Pj4+Pj4+ICAgIC8vDQo+ID4+ID4+Pj4+Pj4+Pj4gLS0NCj4gPj4gPj4+ Pj4+Pj4+PiAyLjE3LjANCj4gPj4gPj4+Pj4+Pj4+Pg0KPiA+PiA+Pj4+Pj4+Pj4+IF9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ID4+ID4+Pj4+Pj4+Pj4g ZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4gPj4gPj4+Pj4+Pj4+PiBlZGsyLWRldmVsQGxpc3Rz LjAxLm9yZw0KPiA+PiA+Pj4+Pj4+Pj4+IGh0dHBzOi8vbGlzdHMuMDEub3JnL21haWxtYW4vbGlz dGluZm8vZWRrMi1kZXZlbA0KPiA+PiA+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fDQo+ID4+ID4+Pj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g Pj4gPj4+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+PiA+Pj4+IGh0dHBzOi8vbGlzdHMu MDEub3JnL21haWxtYW4vbGlzdGluZm8vZWRrMi1kZXZlbA0KPiA+PiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KPiA+PiBlZGsyLWRldmVsIG1haWxpbmcg bGlzdA0KPiA+PiBlZGsyLWRldmVsQGxpc3RzLjAxLm9yZw0KPiA+PiBodHRwczovL2xpc3RzLjAx Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2VkazItZGV2ZWwNCj4gX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18NCj4gZWRrMi1kZXZlbCBtYWlsaW5nIGxpc3QNCj4g ZWRrMi1kZXZlbEBsaXN0cy4wMS5vcmcNCj4gaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9s aXN0aW5mby9lZGsyLWRldmVsDQo=