From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7A4FCA3168 for ; Wed, 16 Oct 2019 15:37:02 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 4424B1E945; Wed, 16 Oct 2019 15:37:02 +0200 (CEST) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 894131E8AC for ; Wed, 16 Oct 2019 15:36:59 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Oct 2019 06:36:58 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.67,303,1566889200"; d="scan'208";a="195601385" Received: from irsmsx107.ger.corp.intel.com ([163.33.3.99]) by fmsmga007.fm.intel.com with ESMTP; 16 Oct 2019 06:36:56 -0700 Received: from irsmsx104.ger.corp.intel.com ([169.254.5.252]) by IRSMSX107.ger.corp.intel.com ([169.254.10.18]) with mapi id 14.03.0439.000; Wed, 16 Oct 2019 14:36:55 +0100 From: "Ananyev, Konstantin" To: Anoob Joseph , "Smoczynski, MarcinX" , "akhil.goyal@nxp.com" CC: "dev@dpdk.org" , Jerin Jacob Kollanukkaran , Narayana Prasad Raju Athreya , Archana Muniganti Thread-Topic: [dpdk-dev] [PATCH v3 0/3] add fallback session Thread-Index: AQHVcgRpybp7qxFpeEujftbhitMyNac9nfaAgAA+IYCABNOdgIABgBhAgALv3QCAActlUIAJjr4AgACEvFCABZWFAIAEznyA Date: Wed, 16 Oct 2019 13:36:54 +0000 Message-ID: <2601191342CEEE43887BDE71AB97725801A8C69903@IRSMSX104.ger.corp.intel.com> References: <20190904141642.14820-1-marcinx.smoczynski@intel.com> <20190923114415.17932-1-marcinx.smoczynski@intel.com> <2601191342CEEE43887BDE71AB977258019196B087@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258019196D5B4@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB97725801919709C0@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB9772580191974E18@irsmsx105.ger.corp.intel.com> In-Reply-To: Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiMzAwMDYxMWEtYmNjYy00Yzg0LTg0MWMtNDhjZWQ3ZWZjZDA0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoibTVjbis3RGdOWjh1UmFVd3dWajNIdGd4ajh6Z2hoSHVZVDRHalVycStsMVR3bkhXcXh6aktldThwcVJYandseiJ9 x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 dlp-reaction: no-action x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH v3 0/3] add fallback session X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gDQo+IEhpIEtvbnN0YW50aW4sDQo+IA0KPiBUaGFua3MgZm9yIGNsYXJpZnlpbmcgeW91 ciBzdGFuZCBvbiByZXZpZXcgY29tbWVudHMuDQo+IA0KPiBGcm9tIHRoZSBjb21tZW50cyB3ZShN YXJ2ZWxsL0Nhdml1bSkgaGF2ZSByZWNlaXZlZCBvbiBtdWx0aXBsZSBmZWF0dXJlcywgbXkgaW1w cmVzc2lvbiBpcyB0aGF0IHRoZSBmZWF0dXJlIG5lZWQgdG8gYmUgY29ycmVjdC9mdWxseQ0KPiBk b25lL2FjY2VwdGFibGUgdG8gdGhlIG92ZXJhbGwgY29tbXVuaXR5LiBGZWF0dXJlcyBhcmUgdXN1 YWxseSBhZ3JlZWQgdXBvbiBpZiB0aGVyZSBpcyBzb2xpZCBwbGFuIG9uIGhvdyBpdCB3aWxsIHdv cmsgaW4gdGhlIGxvbmcgcnVuLg0KPiANCj4gRGlzY3Vzc2lvbnMgd2l0aCBSYWR1IG9uIHdoYXQg ZXZlbnR1YWxseSBiZWNhbWUgZ2V0X3VzZXJkYXRhKCkNCj4gaHR0cDovL21haWxzLmRwZGsub3Jn L2FyY2hpdmVzL2Rldi8yMDE3LU5vdmVtYmVyLzA4MjAzOS5odG1sDQo+IA0KPiBGcm9tIHRoZSBt YWlsOg0KPiANCj4gIj4gSGF2aW5nIHNvbWV0aGluZyBsaWtlICJnZXRfcGt0X21ldGFkYXRhIiBz aG91bGQgYmUgZmluZSBmb3IgaW5saW5lDQo+ID4gcHJvdG9jb2wgdXNhZ2UuIEJ1dCB3ZSB3aWxs IHN0aWxsIG5lZWQgYSAiZ2V0IGNvb2tpZSIgY2FsbCB0byBnZXQgdGhlDQo+ID4gY29va2llLCBh cyB0aGUgYXBwbGljYXRpb24gd291bGQgbmVlZCBzb21ldGhpbmcgaXQgY2FuIGludGVycHJldC4N Cj4gV2h5IGNhbid0IHlvdSBoYXZlIGEgZ2V0X3BrdF9tZXRhZGF0YSB0aGF0IHJldHVybnMgdGhl ICJjb29raWUiIC0gd2hpY2gNCj4gSSB3b3VsZCBjYWxsIGl0IHVzZXJkYXRhIG9yIHNpbWlsYXI/ IFdoYXQgSSdtIHRyeWluZyB0byBzYXkgaXMgdGhhdCB3ZQ0KPiBzaG91bGQgdHJ5IHRvIGtlZXAg aXQgYXMgZ2VuZXJpYyBhcyBwb3NzaWJsZS4gRm9yIGV4YW1wbGUsIEkgd291bGRuJ3QNCj4gYXNz dW1lIHRoYXQgdGhlIGNvb2tpZSBpcyBzdG9yZWQgaW4gcGt0LT51ZGF0YTY0IGluIHRoZSBhcHBs aWNhdGlvbi4iDQo+IA0KPiBNYXJ2ZWxsIHByZWZlcnMgdXNpbmcgcGt0LT51ZGF0YTY0IGluc3Rl YWQgb2YgZ2V0X3VzZXJkYXRhKCkgYXMgaXQgYXZvaWRzIGFuIGV4dHJhIGNhY2hlIGxpbmUgYWNj ZXNzIHdoaWxlIHRyeWluZyB0byBnZXQgaG9sZCBvZiB0aGUgU0Egd2hpY2gNCj4gcHJvY2Vzc2Vk IHRoZSBwYWNrZXQuIFdlIGFncmVlZCB0byBSYWR1J3Mgc3VnZ2VzdGlvbiBldmVuIHRob3VnaCBJ bnRlbC9SYWR1IGRpZG4ndCBoYXZlIGFjY2VzcyB0byBhbiBpbmxpbmUgcHJvdG9jb2wgZW5hYmxl ZCBoL3cgYW5kIGl0DQo+IHdhc24ndCBhZmZlY3RpbmcgYW55IGRhdGEgcGF0aCB0aGF0IEludGVs L1JhZHUgd291bGQgYmUgaW50ZXJlc3RlZCBpbi4NCj4gDQo+IERpc2N1c3Npb25zIHdpdGggTWF0 dGlhcyBvbiBldmVudG1vZGUgaGVscGVyDQo+IGh0dHA6Ly9tYWlscy5kcGRrLm9yZy9hcmNoaXZl cy9kZXYvMjAxOS1KdW5lLzEzNDkwMC5odG1sDQo+IA0KPiAiT3IgZXZlbiB3b3JzZSwgdGhlDQo+ IGFwcGxpY2F0aW9uJ3MgZGV2ZWxvcGVycyBhcmUgZm9yY2VkIHRvIGRvIGEgYmlnLWJhbmcgc3dp dGNoIG92ZXIgdG8NCj4gdXNpbmcgdGhlIGV2ZW50IGFuZCBldGhlcm5ldCBkZXZpY2UgQVBJcyBk aXJlY3RseSwgaW4gY2FzZSB0aGV5IGNhbid0DQo+IHBhdGNoIERQREsgdG8gd29yayBhcm91bmQg dGhlDQo+IGV2ZW50bW9kZS1hc3N1bXB0aW9uLXRoYXQtZGlkbid0LWhvbGQtZm9yLXRoZW0uDQo+ IA0KPiBZb3UgY291bGQgYWx3YXlzIGFkZCBmbGV4aWJpbGl0eSB0byB0aGUgZnJhbWV3b3JrIChh cyB5b3UgZW5jb3VudGVyIGENCj4gbmVlZCBmb3IgaXQpLCBidXQgdGhlbiBpdCB3aWxsIGdyb3cg aW4gY29tcGxleGl0eSBhcyB3ZWxsLiINCj4gDQo+IEhlcmUgTWF0dGlhcyByZXNpc3RlZCB0aGUg aWRlYSBvZiBldmVudG1vZGUgaGVscGVyIGZvciB0aHJlZSByZWFzb25zLA0KPiANCj4gMS4gSXQn cyBwdXJlbHkgc29mdHdhcmUsIGllLCBubyBiYWNraW5nIFBNRCByZXF1aXJlZCAod2hpY2ggaXMg dGhlIHNhbWUgY2FzZSBmb3IgbGlicnRlX2lwc2VjIGFzIHdlbGwpLg0KPiAyLiBJdCAiY291bGQi IGJyZWFrIGZvciBhIG5ldyBmZWF0dXJlIHRoYXQgImNvdWxkIiBnZXQgYWRkZWQgaW4gZXZlbnRk ZXYuDQo+IDMuIEhlICJ0aG91Z2h0IiBpdCB3b3VsZCBncm93IGluIGNvbXBsZXhpdHkuDQoNClNv cnJ5LCBidXQgd2h5IHdlIGhhdmUgdG8gZGlzY3VzcyBvdGhlciBwZW9wbGUgY29tbWVudHMgb24g eW91ciBwcmV2aW91cyBwYXRjaGVzIGhlcmU/DQpIb3cgZG9lcyBpdCByZWxhdGUgdG8gdGhlIHBh dGNoIHVuZGVyIGRpc2N1c3Npb24/DQpGcm9tIG15IHBlcnNwZWN0aXZlLCBpdCBkb2Vzbid0IGF0 IGFsbC4NCiANCj4gTWFydmVsbC9DYXZpdW0gaGFzIHJlc3BlY3RlZCBoaXMgb3BpbmlvbiBhbmQg ZGlkIHJld29yayB0aGUgZW50aXJlIGFwcHJvYWNoIHdoaWNoIGV4cG9uZW50aWFsbHkgaW5jcmVh c2VkIHRoZSBlZmZvcnQgcmVxdWlyZWQgZnJvbSBvdXINCj4gZW5kIChvbmUgY29kZSBiYXNlIGlu dGVncmF0ZWQgaW50byAzIGRpZmZlcmVudCBhcHBzIHZzIDMgZGlmZmVyZW50IGNvZGUgYmFzZXMg Zm9yIDMgYXBwcykuIFBsZWFzZSBkbyBub3RlIHRoYXQgdGhpcyBlbnRpcmUgImwyZndkLWV2ZW50 IiBoYWQNCj4gdG8gYmUgcmVkb25lIDMgdGltZXMgd2hpbGUgdHJ5aW5nIHRvIGdldCBhIGNvbnNl bnN1cyBvbiB0aGUgYXBwcm9hY2guIEkgYmVsaWV2ZSB5b3UgaGFkIG9rZXllZCB0aGUgZmlyc3Qg YXBwcm9hY2gsIHNvIHlvdSBjYW5ub3Qgc2F5IHdlDQo+IGhhZCB0byByZWRvIHRoZSBwYXRjaGVz IGJlY2F1c2UgdGhlIHBhdGNoZXMgd2VyZSBkb25lIHBvb3JseSBvciB0aGUgZmVhdHVyZSB3YXMg aW5jb3JyZWN0Lg0KDQpPbmNlIGFnYWluLCBpZiB5b3UgZmVsdCB0aGF0IHRoZXNlIGNvbW1lbnRz IHdlcmUgaW5hcHByb3ByaWF0ZSBhbmQgY2F1c2VkIGV4dHJhIHVubmVjZXNzYXJ5IHdvcmssDQp3 aHkgZG8geW91IGNvbXBsYWluIGFib3V0IGl0IGhlcmU/DQpXaHkgZGlkbid0IHlvdSBmbGFnIHRo YXQgYXQgb3JpZ2luYWwgcGF0Y2ggcmV2aWV3IHRpbWU/DQoNCj4gSSBzZWUgdGhhdCB0aGVyZSBp cyBhIHNoaWZ0IGluIHRoZSByZXZpZXcgcHJvY2VzcyB0aGVzZSBkYXlzIGFuZCB0aGUgdmVuZG9y cyBhcmUgZW5jb3VyYWdlZCB0byBjb21tZW5kIG9ubHkgb24gdGhlIGZlYXR1cmVzIHRoZXkgYXJl DQo+IGludGVyZXN0ZWQgaW4uIEluIHRoYXQgY2FzZSwgTWFydmVsbCB3aWxsIG5vIGxvbmdlciBi b3RoZXIgd2l0aCBwYXRjaGVzIHdoaWNoIGRvZXNuJ3QgY29tZSBpbiBtb2RlcyB3aGljaCBkb2Vz bid0IG1hdHRlciB0byB1cy4gSSB3b3VsZA0KPiBleHBlY3QgdGhlIHNhbWUgY291cnRlc3kgcmV0 dXJuZWQgYmFjayBhcyB3ZWxsLg0KDQpJIHBlcnNvbmFsbHkgbm90IGF3YXJlIGFib3V0IHN1Y2gg c2hpZnQuDQpJIHN0aWxsIHRoaW5rIHRoYXQgYXMgY29tbXVuaXR5IG1lbWJlciB5b3UgYXJlIGZy ZWUgdG8gcmV2aWV3IGFueSBwYXRjaGVzIHlvdSdkIGxpa2UuDQpNb3Jlb3ZlciBhcyBhIGdvb2Qg Y2l0aXplbiBvZiB0aGUgY29tbXVuaXR5IHlvdSBhcmUgZW5jb3VyYWdlZCB0byByZXZpZXcgb3Ro ZXIgcGVvcGxlIHBhdGNoZXMuDQpUaG91Z2ggSSB0aGluaywgdGhlc2UgcmV2aWV3cyBuZWVkIHRv IGJlIHJlbGV2YW50LCBjb25jZW50cmF0ZSBvbiBwYXRjaCBzdWJqZWN0LA0KYW5kIHRha2UgaW50 byBhY2NvdW50IHJlYWwgcGljdHVyZS4gIA0KDQpMZXQgc2F5IGFib3V0IHlvdXIgY29tbWVudCB0 aGF0IGN1cnJlbnQgZmFsbC1iYWNrIHNlc3Npb24gZG9lc24ndCB3b3JrIGZvciBpbmxpbmUtcHJv dG86DQpUcnVlLCBpdCBkb2Vzbid0Lg0KVGhvdWdoIHRoZSByZWFzb24gZm9yIHRoYXQgLSAgcmVx dWlyZWQgZm9yIHRoYXQgQVBJIGlzIG5vdCBkZWZpbmVkIGFuZCBub3QgaW1wbGVtZW50ZWQuDQpB cyBBUEkgaXMgbm90IGluIHBsYWNlIChhbmQgbm8gc2lnbnMgdGhhdCBpdCB3b3VsZCBiZSBhbnl0 aW1lIHNvb24pLA0Kd2UnbGwgaGF2ZSB0byBnbyBhaGVhZCBhbmQgc3VibWl0IG91ciBjb2RlIHdp dGhvdXQgaW5saW5lLXByb3RvL2xvb2thc2lkZS1wcm90byBzdXBwb3J0Lg0KVGhvdWdoLCBpZiBz dWNoIEFQSSB3b3VsZCBiZSBkZWZpbmVkIGFuZCBpbXBsZW1lbnRlZCAtDQpmb3Igc3VyZSB3ZSB3 aWxsIGhhdmUgdG8gcmVzcGVjdCBhbmQgc3VwcG9ydCBpdCwgYXMgd2UgZGlkIGluIG90aGVyIHBs YWNlcyBmb3IgaW5saW5lLXByb3RvIGRldmljZXMuDQpBbmQgeWVzLCBJIGV4cGVjdCBNYXJ2ZWxs IHRlYW0gdG8gbGVhZC9zdGFydCB0aGF0IEFQSSB3b3JrLCBiZWNhdXNlIHJpZ2h0IG5vdyB5b3Ug YXJlIHRoZSBvbmx5IG9uZXMNCndpdGhpbiBEUERLIHdvcmxkIHdobyBjbGFpbWVkIHRvIGhhdmUg aW5saW5lLXByb3RvIGRldmljZXMuDQpPdGhlciB0ZWFtcyBzaW1wbHkgZG9uJ3QgaGF2ZSBlbm91 Z2gga25vd2xlZGdlIChhbmQgbmVlZCkgZm9yIHRoYXQuDQoNCj4gDQo+IEZZSSwgZXZlbnRtb2Rl IGlwc2VjLXNlY2d3IGlzIHN1Ym1pdHRlZCBhcyBhbiBSRkMuIEluIGxpbmUgd2l0aCB0aGUgY29t bWVudCByZWRyZXNzYWwgaGVyZSwgSSd2ZSBkb2N1bWVudGVkIGFsbCB0aGUgbGltaXRhdGlvbnMu DQo+IA0KPiA+IE9uY2UgYWdhaW4gLSB5b3Uga2VlcCBtYWtpbmcgc3RhdGVtZW50cyB3aXRob3V0 IGFueSBldmlkZW5jZS4NCj4gPiBQcm92aWRlIHNvbWV0aGluZyBtb3JlIGNvbmNyZXRlIGhlcmUg LSBkZXNjcmlwdGlvbiBvZiBwYWNrZXQgYW5kIGNvZGUgZmxvdw0KPiA+IChmdW5jdGlvbiBuYW1l cywgZXhhY3QgbGluZXMgb2YgY29kZSkgdGhhdCB5b3UgdGhpbmsgd2lsbCBjYXVzZSBhIHByb2Js ZW0uDQo+IA0KPiBJIHNhdyBhdGxlYXN0IHRoZSBvbmVzIGJlbG93LiBJdCB3b3VsZCBiZSBmcml2 b2xvdXMgdG8gYXNzdW1lIHRoYXQgdGhlIGZlYXR1cmUgaXMgYWRkZWQgd2l0aG91dCBhbnkgZGF0 YSBwYXRoIGNoZWNrcy4NCj4gDQo+ICsJaWYgKE1CVUZfTk9fU0VDX09GRkxPQUQocGt0KSAmJiBz YS0+ZmFsbGJhY2tfc2Vzc2lvbnMgPiAwKSB7DQo+IA0KPiArCQkJaWYgKHBnLT5pZC52YWwgJiBJ UFNFQ19TQV9PRkZMT0FEX0ZBTExCQUNLX0ZMQUcpIHsNCj4gDQo+IEBtYWludGFpbmVycywgTWFy dmVsbCBpcyBub3QgYmxvY2tpbmcgdGhpcyBmZWF0dXJlIGFueW1vcmUgYXNzdW1pbmcgdGhhdCB0 aGUgc2FtZSB5YXJkc3RpY2sgd2lsbCBiZSB1c2VkIHdoaWxlIHJldmlld2luZyBwYXRjaGVzDQo+ IHN1Ym1pdHRlZCBieSB1cy4NCj4gDQo+IFRoYW5rcywNCj4gQW5vb2INCj4gDQo+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBBbmFueWV2LCBLb25zdGFudGluIDxrb25z dGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiA+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDEw LCAyMDE5IDQ6MjUgUE0NCj4gPiBUbzogQW5vb2IgSm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+ OyBTbW9jenluc2tpLCBNYXJjaW5YDQo+ID4gPG1hcmNpbnguc21vY3p5bnNraUBpbnRlbC5jb20+ OyBha2hpbC5nb3lhbEBueHAuY29tDQo+ID4gQ2M6IGRldkBkcGRrLm9yZzsgSmVyaW4gSmFjb2Ig S29sbGFudWtrYXJhbiA8amVyaW5qQG1hcnZlbGwuY29tPjsgTmFyYXlhbmENCj4gPiBQcmFzYWQg UmFqdSBBdGhyZXlhIDxwYXRocmV5YUBtYXJ2ZWxsLmNvbT47IEFyY2hhbmEgTXVuaWdhbnRpDQo+ ID4gPG1hcmNoYW5hQG1hcnZlbGwuY29tPg0KPiA+IFN1YmplY3Q6IFJFOiBbZHBkay1kZXZdIFtQ QVRDSCB2MyAwLzNdIGFkZCBmYWxsYmFjayBzZXNzaW9uDQo+ID4NCj4gPg0KPiA+IEhpIEFub29i LA0KPiA+DQo+ID4gPg0KPiA+ID4gRm9sbG93aW5nIGFyZSB0aGUgbWFpbiBpc3N1ZXMgSSBoYWQg aWRlbnRpZmllZCwNCj4gPiA+DQo+ID4gPiAxLiBEb2Vzbid0IHdvcmsgZm9yIGlubGluZSBwcm90 b2NvbCBvZmZsb2FkICh0aGUgcGxhbiBpdHNlbGYgd29uJ3QNCj4gPiA+IHNjYWxlIGZvciB0aGF0 IGNhc2UpIDIuIElnbm9yZXMgdGhlIGRhdGEgZnJvbSB0aGUgaC93IGxvb2t1cCAzLiBUaGUNCj4g PiA+IGZhbGxiYWNrIHN1cHBvcnQgaXMgYWN0dWFsbHkgc3VwcG9ydGVkIGluIGlwc2VjLXNlY2d3 IChhcHBsaWNhdGlvbikgaW5zdGVhZCBvZg0KPiA+IGxpYnJ0ZV9pcHNlYy4NCj4gPiA+IDQuIFJl b3JkZXJpbmcgaXNzdWUuDQo+ID4gPiA1LiBJbnRyb2R1Y2VzIGNoZWNrcyBpbiBleGlzdGluZyBk YXRhIHBhdGggZXZlbiB3aGVuIHRoZSBmZWF0dXJlIGlzIG5vdA0KPiA+IHByb3Blcmx5IGltcGxl bWVudGVkL2lzIG5vdCBzdWl0YWJsZSBmb3Igb3RoZXIgUE1Ecy4NCj4gPiA+DQo+ID4gPiBGb3Ig SXNzdWUgIzEsIEkgZ2V0IHRoYXQgSW50ZWwgZG9lc24ndCBoYXZlIHBsYW5zIHRvIHN1cHBvcnQg dGhlIGZlYXR1cmUgYW5kDQo+ID4gd29uJ3QgYmUgc3VibWl0dGluZyBhbnl0aGluZyBpbiB0aGF0 IGRpcmVjdGlvbi4NCj4gPiA+IEJ1dCBhZGRpbmcgY29kZSB0aGF0IGZ1cnRoZXIgZXhhY2VyYmF0 ZXMgdGhlIHNpdHVhdGlvbiBpcyBwcm9iYWJseSBub3QgZGVzaXJlZC4NCj4gPg0KPiA+IFdlIGFs cmVhZHkgZGlzY3Vzc2VkIHdoeSB0aGF0IGZlYXR1cmUgY2FuJ3QgYmUgZnVsbHkgc3VwcG9ydGVk IHJpZ2h0IG5vdyBieQ0KPiA+IGlubGluZS1wcm90by9sb29rYXNpZGUtcHJvdG8gZGV2aWNlczoN Cj4gPiBUaGVyZSBpcyBubyBBUEkgZGVmaW5lZCB0byBzeW5jIHNlc3Npb24gc3RhdGUgYmV0d2Vl biBIVyBhbmQgU1cNCj4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJs P3U9aHR0cC0NCj4gPiAzQV9fbWFpbHMuZHBkay5vcmdfYXJjaGl2ZXNfZGV2XzIwMTktDQo+ID4g MkRTZXB0ZW1iZXJfMTQzODgxLmh0bWwmZD1Ed0lHYVEmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZR JnI9alBmQjgNCj4gPiByd3d2aVJTeHlMV3MybjZCLQ0KPiA+IFdZTG4xdjlTeVRNclQ1RVFxaDJU VSZtPVVHejJGZW1hcFdkc29oZ05ScTJVWDVBckZFTF9wTEdZRVZyd2UNCj4gPiBJemFVWDQmcz1P YmtKSzlweXpPWnV3b2V1bHI2bXJyNmlLUUYxTmdYdTNwMnY3WHdrWUVzJmU9DQo+ID4NCj4gPiBJ IGFscmVhZHkgb3V0bGluZWQgdGhhdCBnYXAgbmVhcmx5IGEgeWVhciBhZ286DQo+ID4gaHR0cHM6 Ly91cmxkZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtDQo+ID4gM0FfX21haWxz LmRwZGsub3JnX2FyY2hpdmVzX2Rldl8yMDE4LQ0KPiA+IDJEU2VwdGVtYmVyXzExMzYwMC5odG1s JmQ9RHdJR2FRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWpQZkI4DQo+ID4gcnd3dmlSU3h5 TFdzMm42Qi0NCj4gPiBXWUxuMXY5U3lUTXJUNUVRcWgyVFUmbT1VR3oyRmVtYXBXZHNvaGdOUnEy VVg1QXJGRUxfcExHWUVWcndlDQo+ID4gSXphVVg0JnM9MHg4cG1mc1M3blQ3WG4tYV9SdmhJLUR4 dEhNZGswenI0amlhcGkyMnRWRSZlPQ0KPiA+IFRob3VnaCBzbyBmYXIgSSBkaWRuJ3Qgc2VlIGFu eSBhdHRlbXB0IHRvIHJlc29sdmUgdGhpcyBwcm9ibGVtIGJ5IE1hcnZlbGwgKG9yDQo+ID4gTlhQ KSBlbmdpbmVlcnMuDQo+ID4gV2hpY2ggbWFrZXMgbWUgdGhpbmsgdGhhdCBlaXRoZXIgeW91IGd1 eXMgZG9uJ3QgY29uc2lkZXIgaXQgYXMgYSBwcm9ibGVtIGF0IGFsbCwNCj4gPiBvciBoYXZlIG5v IGRlc2lyZSB0byB3b3JrIG9uIGl0Lg0KPiA+IEkgbmV2ZXIgaW5zaXN0ZWQsIGFzIEkgZG9uJ3Qg IHRoaW5rIGl0IGlzIG15IGNhbGwgYnkgb2J2aW91cyByZWFzb25zOg0KPiA+IDEpIHJpZ2h0IG5v dyBJbnRlbCBkb2Vzbid0IGhhdmUgSFcgdGhhdCBwcm92aWRlcyBpbmxpbmUtcHJvdG8vbGtzZC1w cm90bw0KPiA+IGNhcGFiaWxpdGllcy4NCj4gPiAyKSBJbnRlbCBEUERLIHRlYW0gZG9lc24ndCBo YXZlIGFjY2VzcyB0byBzdWNoIEhXLg0KPiA+IDMpIFRoZXJlIGlzIG5vIFBNRCBpbnNpZGUgZHBk ay5vcmcgdGhhdCBpbXBsZW1lbnRzIGlubGluZS1wcm90byBhbnl3YXkuDQo+ID4NCj4gPiBOb3cs IG9uZSB5ZWFyIGxhdGVyIHdlIGFyZSBpbiBhIHNpdHVhdGlvbiB3aGVyZToNCj4gPiAxKSB0aGVy ZSBzdGlsbCBubyBQTUQgYXQgZHBkay5vcmcgdGhhdCBzdXBwb3J0cyBpbmxpbmUtcHJvdG8uDQo+ ID4gMikgQVBJIHRvIHN5bmMgc2Vzc2lvbiBzdGF0ZSBiZXR3ZWVuIEhXIGFuZCBTVyBzdGlsbCBu b3QgZGVmaW5lZC9pbXBsZW1lbnRlZC4NCj4gPiAzKSB5b3UgdHJ5aW5nIHRvIGFjY3VzZSBtZSBh bmQgb3RoZXIgSW50ZWwgRFBESyB0ZWFtIGZvciBsYWNrIG9mIGludGVyZXN0IHRvDQo+ID4gd29y ayBvbiB0aGF0IHByb2JsZW0gZm9yIHlvdQ0KPiA+ICAgIGFuZCB0aHJlYXQgb3VyIHBhdGNoZXMg YmVjYXVzZSBvZiB0aGF0Lg0KPiA+DQo+ID4gVGhhdCBqdXN0IGRvZXNuJ3QgbG9vayBmYWlyIHRv IG1lLg0KPiA+IFlvdSBzaG91bGRuJ3QgZXhwZWN0IG90aGVyIHBlb3BsZSBwYXRjaGVzIHRvIHBy b3ZpZGUgJ2NvbXBsZXRlJyBzb2x1dGlvbiBmb3INCj4gPiBpbmxpbmUtcHJvdG8sIGlmIChpbiBh IHllYXIgdGltZSkgeW91IGZhaWxlZCB0byBkZWZpbmUvaW1wbGVtZW50IGFuIEFQSSBmb3IgdGhh dC4NCj4gPg0KPiA+ID4gRm9yIElzc3VlICMyLCBzaW5jZSBpcHNlYy1zZWNndyBpcyBub3QgdXRp bGl6aW5nIHRoZSBoL3cgbG9va3VwIGRhdGEsDQo+ID4gPiB0aGUgc29sdXRpb24gaGVyZSBmb2xs b3dzIHN1aXQgYW5kIGlzIHByZXZlbnRpbmcgb3RoZXIgdXNhZ2UgbW9kZWxzIG9mIHRoZQ0KPiA+ IGhhcmR3YXJlIHdoaWNoIGFyZSBhbGxvd2VkIGJ5IHRoZSBsaWJyYXJ5Lg0KPiA+DQo+ID4gU2Ft ZSBhcyBhYm92ZSwgcmlnaHQgbm93IHRoZXJlIGlzIG5vIFBNRCB0aGF0IHN1cHBvcnRzIGlubGlu ZS1wcm90byBhbmQgbm8gQVBJDQo+ID4gdG8gZXh0cmFjdCB0aGF0IGV4dHJhIEgvVyBsb29rdXAg ZGF0YS4NCj4gPiBUaG91Z2ggSSByZXBsaWVkIHRvIHlvdSBhbmQgZXhwbGFpbmVkICp0d2ljZSpo b3cgSSB0aGluayBzdWNoIGZ1bmN0aW9uYWxpdHkNCj4gPiBjb3VsZCBiZSBhZGRlZCBpZiBpbiBo eXBvdGhldGljYWwgZnV0dXJlIHRoZXJlIHdvdWxkIGJlIGEgUE1EIHRoYXQgd2lsbCBzdXBwb3J0 DQo+ID4gdGhlc2UgZmVhdHVyZXMuDQo+ID4gQnV0IHlvdSBzaW1wbHkgaWdub3JlZCBteSByZXBs aWVzIGFuZCBrZXB0IHRocmVhdGluZyBvdXIgcGF0Y2hlcy4NCj4gPiBPYnZpb3VzbHksIEkgZG9u J3QgdGhpbmsgaXQgaXMgYSBwcm9wZXIgYXR0aXR1ZGUgZm9yIG9wZW4tc291cmNlIGNvbW11bml0 eS4NCj4gPiBBdCBsZWFzdCBJIHdvdWxkIGV4cGVjdCB0byBwcm92aWRlIHNvbWUgY2xlYXIgZXhw bGFuYXRpb24sIHdoeSBkbyB5b3UgdGhpbmsNCj4gPiBhcHByb2FjaCBJIG91dGxpbmVkIGlzIG5v dCBnb29kIGVub3VnaC4NCj4gPiBFdmVuIGJldHRlciB3b3VsZCBiZSB0bzoNCj4gPiAxKSBzdWJt aXQgYW4gUkZDL3BhdGNoIHdpdGggQVBJIHlvdSBlbnZpc2lvbiBhbmQgUE1EIGltcGxlbWVudGF0 aW9uIGZvciBpdC4NCj4gPiAyKSBzdWJtaXQgYW4gUkZDL3BhdGNoIHdpdGggY2hhbmdlcyBpbiBp cHNlYy1zZWNndyB0byBlbmFibGUgdGhlc2UgbmV3DQo+ID4gZmVhdHVyZXMuDQo+ID4gV2l0aG91 dCB0aGF0IGluIHBsYWNlIHRoZXJlIGlzIG5vdCBtdWNoIHRvIGRpc2N1c3MuDQo+ID4NCj4gPiA+ IEZvciBJc3N1ZSAjMywgbGlicnRlX2lwc2VjIGlzIHN0aWxsIGV4cGVyaW1lbnRhbCBhbmQgaXMg anVzdCAyLTMNCj4gPiA+IHJlbGVhc2VzIG9sZC4gSXQgaGFzIHNjb3BlIGZvciBpbXByb3ZlbWVu dCBhbmQgYWxsIHRoZXNlIGZlYXR1cmVzIHdvdWxkJ3ZlDQo+ID4gYWRkZWQgdmFsdWUgdG8gaXRz IHV0aWxpdHkuIE5vIHN0cm9uZyBmZWVsaW5ncyBoZXJlLg0KPiA+ID4NCj4gPiA+IEZvciBJc3N1 ZSAjNCwgZ2xhZCB0aGF0IHlvdSBkb2N1bWVudGVkIHRoYXQgaXNzdWUuDQo+ID4gPg0KPiA+ID4g Rm9yIElzc3VlICM1LCBpbiB5b3VyIHJlcGx5IHlvdSBoYWQgbWVudGlvbmVkIHRoYXQgdGhlcmUg aXMgbm8NCj4gPiA+IGFkZGl0aW9uYWwgY2hlY2sgZG9uZS4gSSBzZWUgYXRsZWFzdCBmZXcgY2hl Y2tzIGluIHRoZSBkYXRhcGF0aC4gU2luY2UgdGhlDQo+ID4gZmVhdHVyZSBpdHNlbGYgaXMgZXhw ZXJpbWVudGFsLCBpdCB3b3VsZCBiZSBsZXNzIGNvbnRlbnRpb3VzIGlmIGl0IHdhcyBpbnRyb2R1 Y2VkIGFzDQo+ID4gYSBuZXcgZGF0YSBwYXRoLg0KPiA+DQo+ID4gT25jZSBhZ2FpbiAtIHlvdSBr ZWVwIG1ha2luZyBzdGF0ZW1lbnRzIHdpdGhvdXQgYW55IGV2aWRlbmNlLg0KPiA+IFByb3ZpZGUg c29tZXRoaW5nIG1vcmUgY29uY3JldGUgaGVyZSAtIGRlc2NyaXB0aW9uIG9mIHBhY2tldCBhbmQg Y29kZSBmbG93DQo+ID4gKGZ1bmN0aW9uIG5hbWVzLCBleGFjdCBsaW5lcyBvZiBjb2RlKSB0aGF0 IHlvdSB0aGluayB3aWxsIGNhdXNlIGEgcHJvYmxlbS4NCj4gPg0KPiA+ID4NCj4gPiA+IEFsc28s IHRvIHF1b3RlIGZyb20gdGhlIHJlcGx5LA0KPiA+ID4NCj4gPiA+ID4gPiBbQW5vb2JdIFNob3Vs ZG4ndCB3ZSBnZXQgdGhhdCBhY2NlcHRlZCBmaXJzdCB0aGVuPw0KPiA+ID4gPg0KPiA+ID4gPiBJ IGRvbid0IHRoaW5rIHNvLg0KPiA+ID4gPiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXMgcHJv dmlkZSBleHBlY3RlZCBmdW5jdGlvbmFsaXR5ICh3aXRoDQo+ID4gPiA+IGtub3duIGxpbWl0YXRp b25zKS4NCj4gPiA+ID4gSW4gZnV0dXJlLCB3ZSBjYW4gdHJ5IHRvIGltcHJvdmUgaXQgYW5kL29y IHJlbW92ZSBleGlzdGluZyBsaW1pdGF0aW9ucy4NCj4gPiA+ID4gVGhhdCdzIGEgY29tbW9uIGl0 ZXJhdGlvbiBkZXZlbG9wbWVudCBhcHByb2FjaCB0aGF0IGlzIHVzZWQgdGhvdWdoDQo+ID4gPiA+ IHdob2xlDQo+ID4gPiA+IERQREs6DQo+ID4gPiA+IC0gcHJvdmlkZSBpbml0aWFsIHNvbHV0aW9u IHdpdGggYmFzaWMgZnVuY3Rpb25hbGl0eSBmaXJzdA0KPiA+ID4gPiAtIGltcHJvdmUvZXh0ZW5k IHdpdGggZnV0dXJlIHJlbGVhc2VzL3BhdGNoZXMNCj4gPiA+DQo+ID4gPiBJZiB5b3VyIHN1Z2dl c3Rpb24gaXMgdG8gc3RpY2sgdG8gYWJvdmUgZ3VpZGVsaW5lcywNCj4gPg0KPiA+IEl0IGlzIG5v dCBteSBzdWdnZXN0aW9uLCB0aGF0J3MgaG93IHRoaW5ncyB3b3JrIHdpdGhpbiBEUERLIHJpZ2h0 IG5vdy4NCj4gPiBOZWFybHkgZXZlcnkgZHBkayBsaWJyYXJ5LCBkcml2ZXIgYW5kIHNhbXBsZSBh cHAgd2FzIGRldmVsb3BlZCBiYXNlZCBvbiB0aGF0DQo+ID4gcHJpbmNpcGxlLg0KPiA+IEV2ZW4g aXBzZWMtc2VjZ3cgaXRzZWxmLCBqdXN0IGxvb2sgYXQgdGhlIGdpdCBsb2cgZm9yIGl0Lg0KPiA+ DQo+ID4gPiBJIGRvbid0IHRoaW5rIHRoZXJlIGlzIGFueSBwb2ludCBpbiBwdXNoaW5nIGFueSBm dXJ0aGVyLiBJIGxlYXZlIHRoaXMNCj4gPiA+IHRvIG1haW50YWluZXJzIHRvIGRlY2lkZS4gSSB3 b3VsZCBhc3N1bWUgdGhlIHNhbWUgcnVsZXMgd291bGQgYXBwbHkgdG8gZXZlcnkNCj4gPiBmZWF0 dXJlIHRoYXQgaXMgYmVpbmcgYXR0ZW1wdGVkLg0KPiA+DQo+ID4gSSBiZWxpZXZlIHRoYXQgZm9y ICMxLCAjMiwgIzUgeW91ciBjb21tZW50cyBhcmUgYmlhc2VkLCBhbmQgZG9lc24ndCBwcm92aWRl IHJlYWwNCj4gPiBwaWN0dXJlLg0KPiA+IFNvIG15IHN1Z2dlc3Rpb24gdG8gbWFpbnRhaW5lcnMg d291bGQgYmUgdG8gaWdub3JlIHRoZW0gYXMgbm90IHZhbHVhYmxlLg0KPiA+DQo+ID4gS29uc3Rh bnRpbg0KPiA+DQo+ID4NCj4gPiA+DQo+ID4gPiBUaGFua3MsDQo+ID4gPiBBbm9vYg0KPiA+ID4N Cj4gPiA+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogZGV2IDxk ZXYtYm91bmNlc0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIEFuYW55ZXYsIEtvbnN0YW50aW4NCj4g PiA+ID4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMywgMjAxOSA4OjE2IFBNDQo+ID4gPiA+IFRv OiBBbm9vYiBKb3NlcGggPGFub29iakBtYXJ2ZWxsLmNvbT47IFNtb2N6eW5za2ksIE1hcmNpblgN Cj4gPiA+ID4gPG1hcmNpbnguc21vY3p5bnNraUBpbnRlbC5jb20+OyBha2hpbC5nb3lhbEBueHAu Y29tDQo+ID4gPiA+IENjOiBkZXZAZHBkay5vcmc7IEplcmluIEphY29iIEtvbGxhbnVra2FyYW4g PGplcmluakBtYXJ2ZWxsLmNvbT47DQo+ID4gPiA+IE5hcmF5YW5hIFByYXNhZCBSYWp1IEF0aHJl eWEgPHBhdGhyZXlhQG1hcnZlbGwuY29tPjsgQXJjaGFuYQ0KPiA+ID4gPiBNdW5pZ2FudGkgPG1h cmNoYW5hQG1hcnZlbGwuY29tPg0KPiA+ID4gPiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFU Q0ggdjMgMC8zXSBhZGQgZmFsbGJhY2sgc2Vzc2lvbg0KPiA+ID4gPg0KPiA+ID4gPiBIaSBBbm9v YiwNCj4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gPiA+IEkndmUgZmV3IG1vcmUgb2JzZXJ2YXRpb25z IHJlZ2FyZGluZyB0aGUgcHJvcG9zZWQgZmVhdHVyZS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gPiAxLiBGcm9tIHdoYXQgSSB1bmRlcnN0b29kLCBpZiBhbiBFU1AgcGFja2V0 IGVuZHMgdXAgb24gYW4NCj4gPiA+ID4gPiA+ID4gPiA+IHVucHJvdGVjdGVkIGludGVyZmFjZSBh bmQgZG9lc24ndCBoYXZlICdQS1RfUlhfU0VDX09GRkxPQUQnDQo+ID4gPiA+ID4gPiA+ID4gPiBi aXQgc2V0LCB0aGVuIHRoZSBwYWNrZXQNCj4gPiA+ID4gPiA+ID4gPiB3b3VsZCBiZSBsb29rZWQg dXAgdG8gc2VlIHRoZSBhc3NvY2lhdGVkIFNBIGFuZCB0aGVuDQo+ID4gPiA+ID4gPiA+ID4gZmFs bGJhY2sgc2Vzc2lvbiBpcyBmaWd1cmVkIG91dCBhbmQgdGhlbiBmdXJ0aGVyIHByb2Nlc3Npbmcg aXMgZG9uZS4NCj4gPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBDYW4geW91IGNv bmZpcm0gaWYgSSB1bmRlcnN0b29kIHRoZSBzZXF1ZW5jZSBjb3JyZWN0bHk/IElmDQo+ID4gPiA+ ID4gPiA+ID4gPiB5ZXMsIHRoZW4gYXJlbid0IHdlIGRvaW5nIGFuIGV4dHJhIGxvb2t1cCBpbiB0 aGUgcy93PyBUaGUNCj4gPiA+ID4gPiA+ID4gPiA+IHBhY2tldCBtYXkgYmUgbG9va2VkIGJ5IHRo ZSBoL3cgdXNpbmcgcnRlX2Zsb3cgYW5kIHRoYXQNCj4gPiA+ID4gPiA+ID4gPiA+IGluZm9ybWF0 aW9uIGNvdWxkIGJlIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZQ0KPiA+ID4gPiA+ID4gPiA+IFNBLiBB bHNvLCBpZiB0aGUgRVNQIHBhY2tldCBpcyBleHBlY3RlZCB0byBiZSBmb3J3YXJkZWQsDQo+ID4g PiA+ID4gPiA+ID4gdGhlbiB0aGUgYWJvdmUgbG9naWMgd2lsbCBhZGQgYW4gdW5uZWNlc3Nhcnkg bG9va3VwIGV2ZW4NCj4gPiA+ID4gPiA+ID4gPiBhZnRlciB5b3VyIGgvdyBoYXMgZGV0ZWN0ZWQg dGhhdCB0aGUgcGFja2V0IG5lZWQgbm90IGJlIHNlY3VyaXR5DQo+ID4gcHJvY2Vzc2VkLg0KPiA+ ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gTm90IHN1cmUgSSB1bmRlcnN0b29kIHlvdXIg d2hvbGUgc3RhdGVtZW50IGFib3ZlLg0KPiA+ID4gPiA+ID4gPiA+IEFGQUlLLCByaWdodCBub3cg KHdpdGggZHBkayBtYXN0ZXIpIGZvciB1bnByb3RlY3RlZCBpZmFjZSBpdA0KPiA+ID4gPiA+ID4g PiA+IHdvcmtzIGxpa2UNCj4gPiA+ID4gdGhhdDoNCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4gPiA+IDEuICBzbGl0IGluY29taW5nIHRyYWZmaWMgaW50byAzIGdyb3VwczogRVNQIHBhY2tl dHMsIElQdjQNCj4gPiA+ID4gPiA+ID4gPiBwYWNrZXRzLCBJUHY2DQo+ID4gPiA+ID4gPiBwYWNr ZXRzLg0KPiA+ID4gPiA+ID4gPiA+IEZvciBFU1AgcGFja2V0czoNCj4gPiA+ID4gPiA+ID4gPiAy LiBwZXJmb3JtIFNBRCBsb29rdXANCj4gPiA+ID4gPiA+ID4gPiAgICAgYS4gaWYgaXQgZmFpbHMg KG5vbiBTQSBmb3VuZCBmb3IgdGhhdCBTUEkpLCB0aGVuIGRyb3AgdGhlIHBhY2tldC4NCj4gPiA+ ID4gPiA+ID4gPiAgICAgYi4gb3RoZXJ3aXNlIChTQSBmb3VuZCkgcHJvY2VzcyB0aGUgcGFja2V0 IHVzaW5nIGZvdW5kDQo+ID4gPiA+ID4gPiA+ID4gU0ENCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4g PiA+ID4gPiA+IFdoYXQgZmFsbC1iYWNrIHBhdGNoIGFkZHM6DQo+ID4gPiA+ID4gPiA+ID4gQmVm b3JlIHN0ZXAgMi5iIGNoZWNrOg0KPiA+ID4gPiA+ID4gPiA+IGRvZXMgdGhhdCBTQSBoYXMgaXRz IHByaW1hcnkgc2Vzc2lvbiAgd2l0aCB0eXBlDQo+ID4gPiA+ID4gPiA+ID4gSU5MSU5FLUNSWVBU TyBhbmQgZG9lcyBIVyBmYWlsIHRvIGRvIElQc2VjIHJlYWx0ZWQgcHJvY2Vzc2luZyBmb3IgaXQN Cj4gPiAoYnkgc29tZSByZWFzb24pPw0KPiA+ID4gPiA+ID4gPiA+IElmIHllcywgdGhlbiBtYXJr IHRoaXMgcGFja2V0IHRvIGJlIHByb2Nlc3NlZCBieSBmYWxsLWJhY2sgc2Vzc2lvbi4NCj4gPiA+ ID4gPiA+ID4gPiBpZiAoTUJVRl9OT19TRUNfT0ZGTE9BRChwa3QpICYmIHNhLT5mYWxsYmFja19z ZXNzaW9ucyA+IDApIHsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAgdWludHB0cl90 IGludHNhID0gKHVpbnRwdHJfdClzYTsNCj4gPiA+ID4gPiA+ID4gPiAgICAgICAgICAgICAgICAg aW50c2EgfD0gSVBTRUNfU0FfT0ZGTE9BRF9GQUxMQkFDS19GTEFHOw0KPiA+ID4gPiA+ID4gPiA+ ICAgICAgICAgICAgICAgICByZXN1bHRfc2EgPSAodm9pZCAqKWludHNhOyAgfQ0KPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gU28gZnJvbSBteSBwZXJzcGVjdGl2ZSwgbm8gYWRkaXRp b25hbCBsb29rdXAgd2hlcmUgaW50cm9kdWNlZC4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ ID4gW0Fub29iXSBGb3IgaW5saW5lIHByb2Nlc3NpbmcsIGgvdyBkb2VzIGEgbG9va3VwIGFuZCBm aWd1cmVzDQo+ID4gPiA+ID4gPiA+IG91dCB0aGUgc2VjdXJpdHkNCj4gPiA+ID4gPiA+IHByb2Nl c3NpbmcgdG8gYmUgZG9uZSBvbiB0aGUgcGFja2V0Lg0KPiA+ID4gPiA+ID4gPiAicnRlX3NlY3Vy aXR5X2dldF91c2VyZGF0YSgpIiBhbGxvd3Mgcy93IHRvIGZ1cnRoZXIgc2VncmVnYXRlDQo+ID4g PiA+ID4gPiA+IHRoYXQgaW5mby4gSW4gdGhpcyBhcHByb2FjaCwgSSBiZWxpZXZlIHdlIGRvbid0 IGNvbnNpZGVyIGhvdw0KPiA+ID4gPiA+ID4gPiBzdWNoIGluZm8gZnJvbSBoL3cgY2FuDQo+ID4g PiA+ID4gPiBiZSB1c2VkLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IFJpZ2h0IG5vdyBpdCBp cyBub3QgdGhlIGNhc2Ugd2l0aCBpcHNlYy1zZWNndzoNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFtB bm9vYl0gQXJlIHlvdSBzYXlpbmcgdGhlcmUgaXMgbm8gaC93IGxvb2t1cCBpbnZvbHZlZCB3aGVu IGRvaW5nDQo+ID4gPiA+ID4gaW5saW5lIGNyeXB0byBwcm9jZXNzaW5nPyBUaGVuIEknbSBjb25m dXNlZC4gTXkgdW5kZXJzdGFuZGluZyBpcw0KPiA+ID4gPiA+IHRoYXQgcnRlX2Zsb3cNCj4gPiA+ ID4gd2l0aCBBQ1RJT04gdHlwZSBhcyBTRUNVUklUWSBpcyBiZWluZyB1c2VkIHRvIHNldHVwIGgv dyBsb29rdXBzLg0KPiA+ID4gPg0KPiA+ID4gPiBJIGFtIHNheWluZyB0aGF0IGN1cnJlbnQgaXBz ZWMtc2VjZ3cgY29kZSBmb3IgZWFjaCBpbmJvdW5kIEVTUA0KPiA+ID4gPiBwYWNrZXQNCj4gPiA+ ID4gKmFsd2F5cyogZG9lcyBTVyBsb29rdXAuDQo+ID4gPiA+IE5vIG1hdHRlciBkaWQgSFcgbG9v a3VwIHRha2UgcGxhY2UgYWxyZWFkeSBhbmQgZG9lcyBpbmZvcm1hdGlvbg0KPiA+ID4gPiBhYm91 dCB0aGF0IGxvb2t1cCBpcyBhdmFpbGFibGUgdmlhIG1idWYgaW4gc29tZSB3YXkgb3Igbm90Lg0K PiA+ID4gPiBKdXN0IGxvb2sgYXQgdGhlIGlwc2VjLXNlY2d3IGNvZGUgeW91cnNlbGY6DQo+ID4g PiA+DQo+ID4gPiA+IG5iX3J4ID0gcnRlX2V0aF9yeF9idXJzdChwb3J0aWQsIHF1ZXVlaWQsICBw a3RzLCBNQVhfUEtUX0JVUlNUKTsNCj4gPiA+ID4NCj4gPiA+ID4gaWYgKG5iX3J4ID4gMCkNCj4g PiA+ID4gCXByb2Nlc3NfcGt0cyhxY29uZiwgcGt0cywgbmJfcngsIHBvcnRpZCk7DQo+ID4gPiA+ DQo+ID4gPiA+IEluc2lkZSBwcm9jZXNzX3BrdHMoKQ0KPiA+ID4gPiBodHRwczovL3VybGRlZmVu c2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cC0NCj4gPiA+ID4gM0FfX2x4ci5kcGRrLm9y Z19kcGRrX2xhdGVzdF9pZGVudF9wcmVwYXJlLTVGb25lLQ0KPiA+ID4gPg0KPiA+IDVGcGFja2V0 JmQ9RHdJR2FRJmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPUJQY0dPT3VkVU1yVERROVliDQo+ ID4gPiA+DQo+ID4gZ0tjT2tPNUNoWWlVUFBsUE5JRXZUT2hqTkUmbT1LVkJndlhZbFVHeU1tdTI2 MGVySVNLcjczUXQ2UEJMdXgwU0kNCj4gPiA+ID4gb1NPMWktTSZzPW9wYkdHSFVxZnh5OHBfNE52 d0NHNm9kNlZkVjBxTjhYYWZhUGl1YmZPMUEmZT0NCj4gPiA+ID4gIGl0IGZpcnN0IGNhbGxzIHBy ZXBhcmVfdHJhZmZpYygpIHdoaWNoIGRvZXMgc29ydCBvZiBkZS1tdXhpbmc6DQo+ID4gPiA+IHB1 dCBwYWNrZXQgaW4gb25lIG9mIDMgYXJyYXlzOg0KPiA+ID4gPiAgICAxKSBFU1AgcGFja2V0cw0K PiA+ID4gPiAgICAyKSBub24gRVNQIElQdjQgcGFja2V0cw0KPiA+ID4gPiAgICAzKSBub24gRVNQ IElQdjYgcGFja2V0cw0KPiA+ID4gPiBBbHNvIGl0IGNoZWNrcyBpcyBQS1RfUlhfU0VDX09GRkxP QUQgc2V0IGZvciB0aGF0IHBhY2tldC4NCj4gPiA+ID4gSWYgeWVzLCBpdCByZXRyaWV2ZXMgYXNz b2NpYXRlZCBzZWN1cml0eSB1c2VyLWRhdGEgYW5kIHN0b3JlcyBpdA0KPiA+ID4gPiBpbnNpZGUg cHJpdmF0ZSBtYnVmIGFyZWEuDQo+ID4gPiA+DQo+ID4gPiA+IFRoZW4gaXQgZ29lcyBpbnRvIHBy b2Nlc3NfcGt0c19pbmJvdW5kKCkNCj4gPiA+ID4gaHR0cHM6Ly91cmxkZWZlbnNlLnByb29mcG9p bnQuY29tL3YyL3VybD91PWh0dHAtDQo+ID4gPiA+IDNBX19seHIuZHBkay5vcmdfZHBka19sYXRl c3RfaWRlbnRfcHJvY2Vzcy01RnBrdHMtDQo+ID4gPiA+DQo+ID4gNUZpbmJvdW5kJmQ9RHdJR2FR JmM9bktqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPUJQY0dPT3VkVU1yVERROVkNCj4gPiA+ID4NCj4g PiBiZ0tjT2tPNUNoWWlVUFBsUE5JRXZUT2hqTkUmbT1LVkJndlhZbFVHeU1tdTI2MGVySVNLcjcz UXQ2UEJMdXgwUw0KPiA+ID4gPiBJb1NPMWktTSZzPTJPeE1YdWc3anRVUVBjWWlETjRuVzlXYnJN dFJmVEp4NWstTjdpa09lTUUmZT0NCj4gPiA+ID4gYW5kIGhlcmUgZm9yIGFsbCBFU1AgcGFja2V0 czoNCj4gPiA+ID4gbGVnYWN5IGNvZGUgcGF0aDoNCj4gPiA+ID4gaXBzZWNfaW5ib3VuZCgpLT5p bmJvdW5kX3NhX2xvb2t1cCgpLT5zaW5nbGVfaW5ib3VuZF9sb29rdXAoKQ0KPiA+ID4gPiBmb3Ig bGlicnRlX2lwc2VjIGNvZGUgcGF0aDoNCj4gPiA+ID4gaW5ib3VuZF9zYV9sb29rdXAoKS0+c2lu Z2xlX2luYm91bmRfbG9va3VwKCkNCj4gPiA+ID4NCj4gPiA+ID4gc2luZ2xlX2luYm91bmRfbG9v a3VwKCkgaXMgdGhlIG9uZSB0aGF0IGRvZXMgYWN0dWFsIFNXIGxvb2t1cCBmb3INCj4gPiA+ID4g ZWFjaCBpbnB1dCBwYWNrZXQuDQo+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50 LmNvbS92Mi91cmw/dT1odHRwLQ0KPiA+ID4gPiAzQV9fbHhyLmRwZGsub3JnX2RwZGtfbGF0ZXN0 X2lkZW50X3NpbmdsZS01RmluYm91bmQtDQo+ID4gPiA+DQo+ID4gNUZsb29rdXAmZD1Ed0lHYVEm Yz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9QlBjR09PdWRVTXJURFE5WWINCj4gPiA+ID4NCj4g PiBnS2NPa081Q2hZaVVQUGxQTklFdlRPaGpORSZtPUtWQmd2WFlsVUd5TW11MjYwZXJJU0tyNzNR dDZQQkx1eDBTSQ0KPiA+ID4gPiBvU08xaS1NJnM9RDJaUFpQTGJjUVNiYWx1RzhLSDBGM3VVREhm UVdOWXh3NE1PYzBmU2tJOCZlPQ0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBmb3Ig ZWFjaCBpbmJvdW5kIEVTUCBwYWNrZXQgaXQgKmFsd2F5cyogZG9lcyBhIGxvb2t1cCBpbiBTVw0K PiA+ID4gPiA+ID4gYmFzZWQgU0FEQiwgYW5kIGlmIGxvb2t1cCBmYWlscyAtIGRyb3BzIHRoZSBw YWNrZXQgKHNlZSAyLmEgYWJvdmUpLg0KPiA+ID4gPiA+ID4gU28sIEkgc3RpbGwgbm90IHNlZSBh bnkgYWRkaXRpb25hbCBsb29rdXBzIGludHJvZHVjZWQgd2l0aCB0aGUgcGF0Y2guDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBbQW5vb2JdIEluIGNhc2Ugb2YgaW5saW5lIGNyeXB0bywgeW91IGNvdWxk IGRvIHRoYXQuIE5vIGRpc2FncmVlbWVudC4NCj4gPiA+ID4gPiBCdXQgdGhhdCBkb2Vzbid0IG1l YW4gdGhhdCBpcyB0aGUgb25seSB3YXkuIElmIFBNRHMgY2FuIHJldHJpZXZlDQo+ID4gPiA+ID4g aW5mbyBhYm91dA0KPiA+ID4gPiBoL3cgbG9va3VwcyBhbmQgcGFzcyBpdCBvbiB0byB0aGUgdXBw ZXIgbGF5ZXJzLCBpc24ndCB0aGF0IHRoZSBiZXR0ZXINCj4gPiBhcHByb2FjaD8NCj4gPiA+ID4N Cj4gPiA+ID4gUGxlYXNlIGxldCdzIGtlZXAgb3VyIGNvbnZlcnNhdGlvbiBpbiBhIGNvbnN0cnVj dGl2ZSB3YXkuDQo+ID4gPiA+IFdlIGFyZSBub3QgZGlzY3Vzc2luZyB3aGF0IGNvdWxkIGJlIGRv bmUgaW4gdGhlb3J5LCBidXQgYSBwYXJ0aWN1bGFyDQo+ID4gPiA+IHBhdGNoIGZvcg0KPiA+ID4g PiBpcHNlYy1zZWNndzoNCj4gPiA+ID4gUmlnaHQgbm93IGlwc2VjLXNlY2d3IGRvZXMgYSBTVyBs b29rdXAgZm9yIGVhY2ggaW5ib3VuZCBFU1AgcGFja2V0DQo+ID4gPiA+IChubyBtYXR0ZXIgd2hh dCBIVyBvZmZsb2FkIGRvZXMpIGFuZCB0aGlzIHBhdGNoIGRvZXNuJ3QgaW50cm9kdWNlDQo+ID4g PiA+IGFueSBleHRyYSBTVyBsb29rdXBzLg0KPiA+ID4gPg0KPiA+ID4gPiBJZiB5b3UgYXJlIG5v dCBoYXBweSB3aXRoIGN1cnJlbnQgaXBzZWMtc2VjZ3cgYXBwcm9hY2gsIHRoYXQncyBmaW5lDQo+ ID4gPiA+IC0gZmVlbCBmcmVlIHRvIHN1Ym1pdCBSRkMvcGF0Y2ggdG8gZml4IHRoYXQsIG9yIHN0 YXJ0IGEgZGlzY3Vzc2lvbiBpbiBhIG5ldw0KPiA+IHRocmVhZC4NCj4gPiA+ID4gSSBqdXN0IGRv bid0IHNlZSB3aHkgd2UgaGF2ZSB0byBkaXNjdXNzIGl0IGluIGNvbnRleHQgb2YgdGhpcyBwYXRj aC4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ ID4gPiA+ID4gPiBBbHNvIEFGQUlLLCByaWdodCBub3cgdGhlcmUgaXMgbm8gcG9zc2liaWxpdHkg dG8gY29uZmlndXJlDQo+ID4gPiA+ID4gPiA+ID4gaXBzZWMtc2VjZ3cgdG8gQllQQVNTIHNvbWUg RVNQIHRyYWZmaWMuDQo+ID4gPiA+ID4gPiA+ID4gU2hvdWxkIHdlIGRvIGl0ICh0byBjb25mb3Jt IHRvIGlwc2VjIFJGQykgLSB0aGF0J3MgcHJvYmFibHkNCj4gPiA+ID4gPiA+ID4gPiBzdWJqZWN0 IG9mIGFub3RoZXIgZGlzY3Vzc2lvbi4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gW0Fu b29iXSBUaGUgYXBwcm9hY2ggKGNob2ljZSBvZiBmbGFncykgZm9yY2VzIGEgc29mdHdhcmUtYmFz ZWQNCj4gPiA+ID4gPiA+ID4gU0EgbG9va3VwIGZvciBwYWNrZXRzIHRoYXQgbmVlZCB0byBiZSBi eXBhc3NlZCBpbnN0ZWFkIG9mDQo+ID4gPiA+ID4gPiA+IGxldmVyYWdpbmcgcG9zc2libGUNCj4g PiA+ID4gPiA+IGhhcmR3YXJlIFNBIGxvb2t1cC4gSSBkb24ndCB0aGluayB3aGF0IGlwc2VjLXNl Y2d3IGRvZXMgbWF0dGVycyBoZXJlLg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkgZG8gbm90 IGFncmVlIHdpdGggdGhhdCBzdGF0ZW1lbnQuDQo+ID4gPiA+ID4gPiBGaXJzdCBvZiBhbGwgLSBj dXJyZW50IHBhdGNoIGRvZXNuJ3QgaW50cm9kdWNlIGFueSBhZGRpdGlvbmFsIFNXDQo+ID4gPiA+ ID4gPiBsb29rdXBzLCBzZWUgYWJvdmUuDQo+ID4gPiA+ID4gPiBTZWNvbmQsIGlmIHNvbWVvbmUg d291bGQgbGlrZSB0byBhZGQgQllQQVNTIGZvciBFU1AgcGFja2V0cyBpbnRvDQo+ID4gPiA+ID4g PiBpcHNlYy1zZWNndywgSSB0aGluayBoZSB3b3VsZCBoYXZlIHRvIGluc2VydCBuZXcgY29kZSB0 aGF0IGRvDQo+ID4gPiA+ID4gPiBkZS1tdXgNCj4gPiA+ID4gPiA+ICpiZWZvcmUqIGFueSBFU1Ag cmVsYXRlZCBwcm9jZXNzaW5nIHN0YXJ0cy4NCj4gPiA+ID4gPiA+IE1vc3Qgb2J2aW91cyB2YXJp YW50OiBhdCBwcmVwYXJlX29uZV9wYWNrZXQoKSB3aGVuIHdlIHNwbGl0IG91cg0KPiA+ID4gPiA+ ID4gaW5jb21pbmcgdHJhZmZpYyB0byBJUHNlYyBhbmQgbm9uLUlQc2VjIG9uZXMuDQo+ID4gPiA+ ID4gPiBTZWNvbmQgdmFyaWFudCAtIGF0IGVhcmx5IHN0YWdlIG9mIHNpbmdsZV9pbmJvdW5kX2xv b2t1cCgpLA0KPiA+ID4gPiA+ID4gc3RyYWlnaHQgYWZ0ZXIgYWN0dWFsIFNBRCBsb29rdXAgZmFp bHVyZS4NCj4gPiA+ID4gPiA+IEluIGJvdGggY2FzZXMsIEkgZG9uJ3Qgc2VlIGhvdyBzZXNzaW9u IHNlbGVjdGlvbiAocHJpbWFyeSBvcg0KPiA+ID4gPiA+ID4gZmFpbGxiYWNrKSB3b3VsZCBhZmZl Y3QgdXMgaGVyZSwgYWN0dWFsIGRlY2lzaW9uIGRvIHdlIHdhbnQgdG8NCj4gPiA+ID4gPiA+IFBS T0NFU1Mgb3IgQllQQVNTIHBhcnRpY3VsYXIgRVNQIHBhY2tldCBuZWVkcyB0byB0YWtlIHBsYWNl IGJlZm9yZQ0KPiA+IHRoYXQuDQo+ID4gPiA+ID4gPiBTbyBJIHN0aWxsIGJlbGlldmUgd2UgYXJl IG9rIGhlcmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBbQW5vb2JdIEkgZG9uJ3QgdGhpbmsgeW91 IHVuZGVyc3Rvb2Qgd2hhdCBJJ20gdHJ5aW5nIHRvIGhpZ2hsaWdodA0KPiA+ID4gPiA+IGhlcmUu IFlvdSBjb3VsZCBoYXZlIGEgc2l0dWF0aW9uIHdoZW4gaC93IGNhbiBkZXRlY3QgdGhhdCB0aGUN Cj4gPiA+ID4gPiBwYWNrZXQgaGFzIHRvIGJlICJQUk9URUNUImVkIHVzaW5nIGFuICJpbmxpbmUg Y3J5cHRvIiBzZXNzaW9uLiBCdXQNCj4gPiA+ID4gPiB0aGVuIGl0IG1pZ2h0IGRldGVjdCB0aGF0 IGl0IGNhbm5vdCBwcm9jZWVkIHdpdGggaW5saW5lIHByb2Nlc3NpbmcNCj4gPiA+ID4gPiBiZWNh dXNlIG9mIHNvbWUNCj4gPiA+ID4gaXNzdWUgKGZyYWdtZW50YXRpb24sIGgvdyBxdWV1ZSBvdmVy ZmxvdyBldGMpLiBOb3cgdGhlIGgvdyBoYXMNCj4gPiA+ID4gYWxyZWFkeSBmaWd1cmVkIG91dCB0 aGUgYWN0aW9uIHRvIGJlIGRvbmUgdG8gdGhlIHBhY2tldC4gSWYgUE1Ecw0KPiA+ID4gPiBhbGxv dyB0aGlzIHRvIGJlIGNvbW11bmljYXRlZCB0byB0aGUgYXBwbGljYXRpb24sIHRoZSBhcHBsaWNh dGlvbiB3b24ndCBiZQ0KPiA+IHJlcXVpcmVkIHRvIGRvIHRoZSBsb29rdXAuDQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiBJbiBpbmxpbmUgY3J5cHRvLCBhcHBsaWNhdGlvbiBjYW4gaWdub3JlIHRoZSBo L3cgbG9va3VwIGRhdGEgYW5kDQo+ID4gPiA+ID4gZG8gYSBzL3cgbG9va3VwIHdpdGggdGhlIHBy b3RvY29sIGhlYWRlcnMgYXMgdGhleSBhcmUgbm90IHN0cmlwcGVkDQo+ID4gPiA+ID4gb2ZmLiBJ dCB3YXMgZG9uZSB0aGlzIHdheSwgYmVjYXVzZSBBUEkgYW5kIHRoZSBhc3NvY2lhdGVkIG1lYW5z IHRvDQo+ID4gPiA+ID4gZ2V0IHRoaXMgaW5mbyBmcm9tIFBNRCB3YXMgbm90IGludHJvZHVjZWQg d2hlbiBpbmxpbmUgY3J5cHRvIGFuZA0KPiA+ID4gPiA+IGNvcnJlc3BvbmRpbmcNCj4gPiA+ID4g c3VwcG9ydCBpbiBJbnRlbCdzIFBNRCB3YXMgYWRkZWQuIEJ1dCBpbmxpbmUgcHJvdG9jb2wgY2Fu bm90IGRvIHRoZQ0KPiA+ID4gPiBsb29rdXAgaW4gdGhlIGFwcGxpY2F0aW9uIGFuZCBzbyB0aGUg Y29uY2VwdCBvZiB1c2VyZGF0YSBldGMgd2FzDQo+ID4gPiA+IGludHJvZHVjZWQuIFRoZSBzYW1l IGNhbiBiZSBhcHBsaWVkIHRvIGlubGluZSBjcnlwdG8gYWxzby4NCj4gPiA+ID4gQWR2YW50YWdl PyBJdCBjb3VsZCByZW1vdmUgdGhlIGV4dHJhIGxvb2t1cCBkb25lIGluIHMvdy4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFRvIHN1bW1hcml6ZSwgd2UgY2Fubm90IGFzc3VtZSB0aGF0IGV2ZXJ5IGlu bGluZSBjcnlwdG8gcGFja2V0DQo+ID4gPiA+ID4gbmVlZCB0byBsb29rZWQgdXAgaW4gdGhlIGFw cGxpY2F0aW9uIHRvIGZpZ3VyZSBvdXQgdGhlIHByb2Nlc3NpbmcgZG9uZSBvbg0KPiA+IHRoZSBw YWNrZXQuDQo+ID4gPiA+IFRoZXJlIGNhbiBiZSBhcHBsaWNhdGlvbnMgd2hpY2ggcmVsaWVzIG9u IGgvdyBsb29rdXAgZGF0YSB0byBmaWd1cmUNCj4gPiA+ID4gb3V0IHRoZSBwcm9jZXNzaW5nIGRv bmUuDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBFeGFtcGxlOiBVc2luZyBydGVfZmxvdywgSSBjYW4g Y3JlYXRlIGEgcnVsZSBmb3IgRVNQIHBhY2tldHMgdG8gYmUNCj4gPiA+ID4gPiBNQVJLZWQuIFRo ZXJlIGlzIG5vIHNlY3VyaXR5IHNlc3Npb24gY3JlYXRlZCBmb3IgdGhlIGZsb3cgYW5kIHRoZQ0K PiA+ID4gPiA+IGFwcGxpY2F0aW9uIGludGVuZHMgdG8gZm9yd2FyZCB0aGlzIGZsb3cgcGFja2V0 cyB0byBhIGRpZmZlcmVudA0KPiA+ID4gPiA+IHBvcnQuIFdpdGggeW91cg0KPiA+ID4gPiBhcHBy b2FjaCwgZXZlbiB0aGVzZSBwYWNrZXRzIHdvdWxkIGJlIGxvb2tlZCB1cC4gVGhlIHBhY2tldCB3 aWxsDQo+ID4gPiA+IGhhdmUgaW5mbyBmcm9tIHRoZSBoL3cgbG9va3VwIHdoaWNoIGRvZXNuJ3Qg Z2V0IHVzZWQsIGJlY2F1c2UgdGhlDQo+ID4gPiA+IGFwcHJvYWNoIGZhaWxzIHRvIGludHJvZHVj ZSB0aGUgcmVxdWlyZWQgY29uY2VwdHMuDQo+ID4gPiA+DQo+ID4gPiA+IEkgdGhpbmsgSSB1bmRl cnN0b29kIHlvdXIgcG9pbnQuDQo+ID4gPiA+IEJhc2ljYWxseSB5b3Ugc2F5aW5nIHRoYXQgaW4g ZnV0dXJlIHlvdXIgUE1EIGZvciB1bnByb2Nlc3NlZCBFU1ANCj4gPiA+ID4gcGFja2V0cyBtaWdo dCBwcm92aWRlIHNvbWUgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiAodmlhDQo+ID4gPiA+IHJ0ZV9z ZWN1cml0eV9nZXRfdXNlcmRhdGEpIHRoYXQgbWlnaHQgYmUgdXNlZCBieSBTVyAtIGxldCBzYXkg dG8gY2hvb3NlDQo+ID4gQllQQVNTIGZvciBzdWNoIHBhY2tldHMuDQo+ID4gPiA+IEN1cnJlbnQg aXBzZWMtc2VjZ3cgZG9lc24ndCBzdXBwb3J0IHN1Y2ggYWJpbGl0eS4NCj4gPiA+ID4gWW91ciBj b25jZXJuIGlzIHRoYXQgdGhpcyBwYXRjaCB3aWxsIHNvbWVob3cgcHJldmVudCAob3Igd2lsbCBt YWtlDQo+ID4gPiA+IGl0IGhhcmRlcikgZm9yIHlvdSB0byBtYWtlIHlvdXIgZnV0dXJlIGNoYW5n ZXMuDQo+ID4gPiA+IENvcnJlY3Q/DQo+ID4gPiA+IElmLCBzbyB0aGVuIEkgc2FpZCBiZWZvcmUs IEkgZG9uJ3QgdGhpbmsgdGhhdCBjb25jZXJuIGlzIHZhbGlkLg0KPiA+ID4gPiBNb3N0IG9idmlv dXMgdmFyaWFudCB3aGVyZSB0byBhZGQgc3VjaCBjb2RlIGlzIGluaXNkZSBpbnNpZGUNCj4gPiA+ ID4gcHJlcGFyZV9vbmVfcGFja2V0KCkgd2hlbiB3ZSBzcGxpdCBvdXIgaW5jb21pbmcgdHJhZmZp YyB0byBJUHNlYyBhbmQNCj4gPiA+ID4gbm9uLUlQc2VjIG9uZXMuDQo+ID4gPiA+IFRvIGJlIG1v cmUgc3BlY2lmaWMgc29tZXRoaW5nIGxpa2UgdGhhdA0KPiA+ID4gPg0KPiA+ID4gPiBpZiAoZXRo LT5ldGhlcl90eXBlID09IHJ0ZV9jcHVfdG9fYmVfMTYoUlRFX0VUSEVSX1RZUEVfSVBWNCkpIHsN Cj4gPiA+ID4NCj4gPiA+ID4gICAgICAgICAgICAgICAgIGlwaDQgPSAoY29uc3Qgc3RydWN0IHJ0 ZV9pcHY0X2hkciAqKXJ0ZV9wa3RtYnVmX2Fkaihwa3QsDQo+ID4gPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIFJURV9FVEhFUl9IRFJfTEVOKTsNCj4gPiA+ID4gICAgICAgICAgICAgICAgIGFk anVzdF9pcHY0X3BrdGxlbihwa3QsIGlwaDQsIDApOw0KPiA+ID4gPg0KPiA+ID4gPiAtICAgICAg ICAgICAgICAgIGlmIChpcGg0LT5uZXh0X3Byb3RvX2lkID09IElQUFJPVE9fRVNQKQ0KPiA+ID4g PiArICAgICAgICAgICAgICAgIGlmIChpcGg0LT5uZXh0X3Byb3RvX2lkID09IElQUFJPVE9fRVNQ KSB7DQo+ID4gPiA+ICsJCWlmIChwa3QtPm9sX2ZsYWdzICYgUEtUX1JYX1NFQ19PRkZMT0FEKSB7 DQo+ID4gPiA+ICsJCQkvKiBleHRyYWN0IGV4dHJhIGluZm8sIG1ha2UgZGVjaXNpb24gYmFzZWQg b24gdGhhdCAqLw0KPiA+ID4gPiArCQl9IGVsc2UNCj4gPiA+ID4gCQkJdC0+aXBzZWMucGt0c1so dC0+aXBzZWMubnVtKSsrXSA9IHBrdDsNCj4gPiA+ID4gKwkgICB9DQo+ID4gPiA+DQo+ID4gPiA+ IE9mIGNvdXJzZSBzb21lIGNvZGUgcmVvcmRlcmluZyBtaWdodCBiZSBuZWVkZWQgdG8gYXZvaWQg cGVyZm9ybWFuY2UNCj4gPiA+ID4gZHJvcCwgYnV0IEkgc3VwcG9zZSB0aGUgbWFpbiBpZGVhIGlz IGNsZWFyIGVub3VnaC4NCj4gPiA+ID4gIFNlY29uZCB2YXJpYW50IC0gYXQgZWFybHkgc3RhZ2Ug b2Ygc2luZ2xlX2luYm91bmRfbG9va3VwKCksIGVpdGhlcg0KPiA+ID4gPiBiZWZvcmUgb3Igc3Ry YWlnaHQgYWZ0ZXIgYWN0dWFsIFNBRCBTVyBsb29rdXAgZmFpbHVyZS4NCj4gPiA+ID4gSW4gYm90 aCBjYXNlcywgdGhpcyBuZXcgY29kZSB3aWxsIGJlIGV4ZWN1dGVkICpiZWZvcmUqIHNlc3Npb24g c2VsZWN0aW9uDQo+ID4gY29kZS4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IERvZXMg dGhlIGFib3ZlIHNvdW5kIGxpa2UgQllQQVNTPyBZZXMuDQo+ID4gPiA+ID4gRG9lcyBpcHNlYy1z ZWNndyBkbyBpdCB0aGlzIHdheT8gTm8uDQo+ID4gPiA+DQo+ID4gPiA+IENvcnJlY3QsIGl0IGRv ZXNuJ3QuDQo+ID4gPiA+IFlvdSBoYXZlIHRvIHN1Ym1pdCBwYXRjaGVzIGlmIHlvdSdkIGxpa2Ug dG8gc3VwcG9ydCBzdWNoIGFiaWxpdHkuDQo+ID4gPiA+DQo+ID4gPiA+ID4gRG9lcyB0aGlzIGFw cHJvYWNoIHByZXZlbnQgYW4gYXBwbGljYXRpb24gZnJvbSBpbnRyb2R1Y2luZyBzdWNoIGENCj4g PiBCWVBBU1M/DQo+ID4gPiA+IFllcy4NCj4gPiA+ID4NCj4gPiA+ID4gVGhhdCdzIG5vdCBjb3Jy ZWN0LCBJIGJlbGlldmUsIHNlZSBhYm92ZS4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gRm9yIGV4YW1wbGUsIEVTTiB3YXMgbm90 IHN1cHBvcnRlZCBieSBpcHNlYy1zZWNndyAoYmVmb3JlDQo+ID4gPiA+ID4gPiA+IGxpYnJhcnkg bW9kZSB3YXMgaW50cm9kdWNlZCksIGJ1dCBldmVyeSBzaW5nbGUgbGlicmFyeSBjaGFuZ2UNCj4g PiA+ID4gPiA+ID4gYW5kIGFwcGxpY2F0aW9uIGNoYW5nZSB3YXMgYWRkZWQga2VlcGluZyBpbiBt aW5kIHRoYXQgRVNOIGlzIGENCj4gPiA+ID4gPiA+ID4gdmFsaWQgZmVhdHVyZSBmb3IgaXBzZWMu IFNvIGl0IGlzDQo+ID4gPiA+ID4gPiBvbmUgdGhpbmcgdG8gc2F5IGlwc2VjLXNlY2d3IGRvZXNu J3Qgc3VwcG9ydCBFU1AgYnlwYXNzIGFuZA0KPiA+ID4gPiA+ID4gc2F5aW5nIHRoZSBzb2x1dGlv biBkb2Vzbid0IGNvbnNpZGVyIGEgcG9zc2liaWxpdHkgb2YgRVNQIGJ5cGFzcy4NCj4gPiA+ID4g PiA+ID4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4g PiA+IDIuIFRoZSBzb2x1dGlvbiBwcm9wb3NlZCBoZXJlIHNlZW1zIGxpa2UgYWRkaW5nIHRoZQ0K PiA+ID4gPiA+ID4gPiA+ID4gaGFuZGxpbmcgaW4gaXBzZWMtc2VjZ3cgaW5zdGVhZCBvZiBpcHNl YyBsaWJyYXJ5LiBJbiBvdGhlcg0KPiA+ID4gPiA+ID4gPiA+ID4gd29yZHMsIHRoaXMgZmVhdHVy ZSBpcyBub3QgZ2V0dGluZw0KPiA+ID4gPiA+ID4gPiA+IGFkZGVkIGluIGlwc2VjIGxpYnJhcnks IHdoaWNoIHdhcyBzdXBwb3NlZCB0byBzaW1wbGlmeSB0aGUNCj4gPiA+ID4gPiA+ID4gPiB3aG9s ZSBpcHNlYyB1c2FnZSBpbiBEUERLLCBidXQgZmFpbHMgdG8gaGFuZGxlIHRoZSBjYXNlIG9mDQo+ ID4gZnJhZ21lbnRhdGlvbi4NCj4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+IFdoYXQg d2UgaGF2ZSByaWdodCBub3cgd2l0aCBpcHNlYyBsaWJyYXJ5IGlzIFNBIChsb3cpIGxldmVsIEFQ SS4NCj4gPiA+ID4gPiA+ID4gPiBJdCBjYW4gaGFuZGxlIG11bHRpLXNlZ21lbnQgcGFja2V0cyBw cm9wZXJseSwgYnV0IGV4cGVjdHMNCj4gPiA+ID4gPiA+ID4gPiBzb21lb25lIGVsc2UgdG8gZG8g b3RoZXIgc3RlcHMgKGZyYWdtZW50YXRpb24vcmVhc3NlbWJseSkuDQo+ID4gPiA+ID4gPiA+ID4g aXBzZWMtc2VjZ3cgZGVtb25zdHJhdGVzIGhvdyBsaWJydGVfaXBfZnJhZyBhbmQgbGlicnRlX2lw c2VjDQo+ID4gPiA+ID4gPiA+ID4gY2FuIGJlIHVzZWQgdG9nZXRoZXIgdG8gZGVhbCB3aXRoIGZy YWdtZW50ZWQgSVBzZWMgdHJhZmZpYw0KPiA+ID4gPiA+ID4gPiA+IGluIGEgcHJvcGVyDQo+ID4g PiA+IG1hbm5lci4NCj4gPiA+ID4gPiA+ID4gPiBQcm9iYWJseSBpbiBmdXR1cmUgd2UnbGwgY29u c2lkZXIgYWRkaW5nIHNvbWUgaGlnaC1sZXZlbCBBUEkNCj4gPiA+ID4gPiA+ID4gPiB0aGF0IHdp bGwgYmUgYWJsZSB0byBkbyB3aG9sZSBwcm9jZXNzaW5nIHVuZGVyIGhvb2QgKFNQRC9TQUQNCj4g PiA+ID4gPiA+ID4gPiBsb29rdXAsIGZyYWdtZW50L3JlYXNzZW1ibHksIGFjdHVhbCBJUHNlYyBw YWNrZXQgcHJvY2Vzc2luZywNCj4gPiA+ID4gPiA+ID4gPiBtYXRjaGluZyBpbmJvdW5kIHNlbGVj dG9ycywgZXRjLiksIGJ1dCByaWdodCBub3cgaXQgaXMgbm90IHRoZSBjYXNlLg0KPiA+ID4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiA+ID4gPiBBbHNvLCBzaW5jZSB0aGUgZmFsbGJhY2sgZmVhdHVy ZSBpcyBlbnRpcmVseSBkb25lIGluIHRoZQ0KPiA+ID4gPiA+ID4gPiA+ID4gYXBwbGljYXRpb24s IGl0IGJlZ3MgdGhlDQo+ID4gPiA+ID4gPiA+ID4gcXVlc3Rpb24gd2h5IHRoZSBzYW1lIGZlYXR1 cmUgaXMgb21pdHRlZCBmb3IgbGVnYWN5IHVzZSBjYXNlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4g PiA+ID4gPiA+ID4gQmVjYXVzZSBsZWdhY3kgbW9kZSBkb2Vzbid0IHN1cHBvcnQgbXVsdGktc2Vn IHBhY2tldHMgYXQgZmlyc3QgcGxhY2UuDQo+ID4gPiA+ID4gPiA+ID4gQWxzbyBpdCBpcyBhbiBl eHRyYSBvdmVyaGVhZCB0byBzdXBwb3J0IDIgY29kZS1wYXRocyAobGVnYWN5DQo+ID4gPiA+ID4g PiA+ID4gYW5kDQo+ID4gPiA+ID4gPiA+ID4gbGlicmFyeSkgZm9yIHRoZSBzYW1lIGFwcCwgc28g d2UnZCBsaWtlIGluIGZ1dHVyZSB0bw0KPiA+ID4gPiA+ID4gPiA+IGRlcHJlY2F0ZSBhbmQgbGF0 ZXIgcmVtb3ZlIGxlZ2FjeSBjb2RlLSBwYXRoLg0KPiA+ID4gPiA+ID4gPiA+IEFzIGEgZmlyc3Qg c3RlcCB3ZSBwcm9wb3NlIHRvIG1ha2UgbGlicmFyeSBjb2RlLXBhdGggYSBkZWZhdWx0IG9uZToN Cj4gPiA+ID4gPiA+ID4gPiBodHRwczovL3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJs P3U9aHR0cC0zQV9fcGF0Y2hlcy4NCj4gPiA+ID4gPiA+ID4gPiBkcGRrDQo+ID4gPiA+ID4gPiA+ ID4gLm9yZw0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+IF9jb3Zl cl81ODI0N18mZD1Ed0lGQWcmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9alBmQjhyd3d2aVJT eHlMDQo+ID4gPiA+ID4gPiBXczINCj4gPiA+ID4gPiA+ID4gPiBuNkItV1lMbjF2OVN5VE1yVDVF UXFoMlRVJm09YjNFNDI5ZnVvOFAtSzVYZkg4d0ctDQo+ID4gPiA+ID4gPiA3aHdyMWQ4b000dUpH RXJBa2JmDQo+ID4gPiA+ID4gPiA+ID4gRHZBJnM9dno3aW9VekpPdXpvSmRtVjdRTzBRTFBLWW4x eXRGc2pfMGVZYXRiU0NyZyZlPQ0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBbQW5vb2Jd IEV2ZW4gaWYgd2UgbmVlZCB0aGUgYXBwbGljYXRpb24gdG8gZG8gdGhlIHJlYXNzZW1ibHksDQo+ ID4gPiA+ID4gPiA+IGl0IHdvdWxkIGxvb2sgc2ltcGxlIGlmIGFwcGxpY2F0aW9uIHVzZXMgdGhl IHNhbWUgInJ0ZV9pcHNlY19zZXNzaW9uIg0KPiA+ID4gPiA+ID4gPiB0byBwcm9jZXNzIHRoZQ0K PiA+ID4gPiA+ID4gZmFsbGJhY2sgcGFja2V0Lg0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEkg dGhpbmsgdGhlcmUgaXMgc29tZSBzb3J0IG9mIG1pc3VuZGVyc3RhbmRpbmcgaGVyZS4NCj4gPiA+ ID4gPiA+IFdpdGggY3VycmVudCBsaWJydGVfaXBzZWMgZGVzaWduOg0KPiA+ID4gPiA+ID4gcnRl X2lwc2VjX3NhIC0gb3BhcXVlIFNXIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBTQSAoSFcgbmV1dHJh bCkNCj4gPiA+ID4gPiA+IHJ0ZV9pcHNlY19zZXNzaW9uIGFzc29jaWF0ZXMgU0EgKHJ0ZV9pcHNl Y19zYSl3aXRoIHBhcnRpY3VsYXIgSFcNCj4gPiA+ID4gPiA+IGRldmljZSAoc2Vzc2lvbikuDQo+ ID4gPiA+ID4gPiBTYW1lIFNBIGNhbiBiZSByZWZlcnJlZCBieSBtdWx0aXBsZSBzZXNzaW9ucy4N Cj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBGcm9tIHJ0ZV9pcHNlYy5oOg0KPiA+ID4gPiA+ID4g LyoqDQo+ID4gPiA+ID4gPiAgKiBydGVfaXBzZWNfc2Vzc2lvbiBpcyBhbiBhZ2dyZWdhdGUgc3Ry dWN0dXJlIHRoYXQgZGVmaW5lcw0KPiA+ID4gPiA+ID4gcGFydGljdWxhcg0KPiA+ID4gPiA+ID4g ICogSVBzZWMgU2VjdXJpdHkgQXNzb2NpYXRpb24gSVBzZWMgKFNBKSBvbiBnaXZlbiBzZWN1cml0 eS9jcnlwdG8gZGV2aWNlOg0KPiA+ID4gPiA+ID4gICogLSBwb2ludGVyIHRvIHRoZSBTQSBvYmpl Y3QNCj4gPiA+ID4gPiA+ICAqIC0gc2VjdXJpdHkgc2Vzc2lvbiBhY3Rpb24gdHlwZQ0KPiA+ID4g PiA+ID4gICogLSBwb2ludGVyIHRvIHNlY3VyaXR5L2NyeXB0byBzZXNzaW9uLCBwbHVzIG90aGVy IHJlbGF0ZWQgZGF0YQ0KPiA+ID4gPiA+ID4gICogLSBzZXNzaW9uL2RldmljZSBzcGVjaWZpYyBm dW5jdGlvbnMgdG8gcHJlcGFyZS9wcm9jZXNzIElQc2VjIHBhY2tldHMuDQo+ID4gPiA+ID4gPiAg Ki8NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiA+IEluIHRoYXQgY2FzZSwgdGhlIHByb2Nlc3Np bmcgcmVxdWlyZWQgdG8gaGFuZGxlIHRoZSBvdGhlcg0KPiA+ID4gPiA+ID4gPiBwYWNrZXQgd2ls bCBiZSBoaWRkZW4gZnJvbSB0aGUgYXBwbGljYXRpb24uIEhlcmUgYXBwbGljYXRpb24NCj4gPiA+ ID4gPiA+ID4gaGFzIHRvIG1ha2Ugc3VyZSBpdCBjaG9vc2VzDQo+ID4gPiA+ID4gPiB0aGUgY29y cmVjdCBzZXNzaW9uLCB3aGljaCBJIGJlbGlldmUgc2hvdWxkIGJlIG1vdmVkIHRvIGlwc2VjIGxp YnJhcnkuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gRnJvbSBteSBzaWRlIGl0IGlzIGEgZ29v ZCB0aGluZyB0byBsZXQgYXBwbGljYXRpb24gZGVmaW5lIGl0cyBvd24gdXNhZ2UNCj4gPiBtb2Rl bC4NCj4gPiA+ID4gPiA+IEkuRS4gbGlicnRlX2lwc2VjIHN1cHBvcnRzIG11bHRpcGxlLXNlc3Np b25zIHBlciBTQSwgdXBwZXItbGF5ZXINCj4gPiA+ID4gPiA+IChhcHApIGRlY2lkZXMgaG93IGl0 IHdpbGwgdXNlIHRoYXQgZmVhdHVyZS4NCj4gPiA+ID4gPiA+IFRob3VnaCBpZiB5b3Ugc3Ryb25n bHkgZmVlbCB0aGF0IHNvbWUgaGlnaGVyLWxldmVsIEFQSSBpcyBuZWVkZWQNCj4gPiA+ID4gPiA+ IGhlcmUsIGFuZCBoYXZlIHNvbWUgZ29vZCBpZGVhcyBhYm91dCBpdCAgLSBwbGVhc2UgZ28gYWhl YWQgYW5kDQo+ID4gPiA+ID4gPiBzdWJtaXQgUkZDDQo+ID4gPiA+IGZvciBpdC4NCj4gPiA+ID4g Pg0KPiA+ID4gPiA+IFtBbm9vYl0gSWYgeW91IGFyZSBva2F5IHdpdGggYXBwbGljYXRpb24gZGVm aW5pbmcgaG93IGl0DQo+ID4gPiA+ID4gaW1wbGVtZW50cyBpcHNlYywNCj4gPiA+ID4gdGhlbiBw cm9iYWJseSB0aGVyZSBpcyBubyB1c2UgY2FzZSBmb3IgbGliIGlwc2VjPw0KPiA+ID4gPg0KPiA+ ID4gPiA6KQ0KPiA+ID4gPiBPbmNlIGFnYWluIC0gbGlicmFyeSBwcm92aWRlcyBhbiBpbXBsZW1l bnRhdGlvbi4NCj4gPiA+ID4gQXBwbGljYXRpb24gZGVmaW5lcyB0aGUgd2F5IHRvIHVzZSBpdCwg aS5lLiBob3cgaXQgd2lsbCBhcHBseQ0KPiA+ID4gPiBmdW5jdGlvbmFsaXR5IGxpYnJhcnkgcHJv dmlkZXMgZm9yIGRpZmZlcmVudCB1c2UtY2FzZSBzY2VuYXJpb3MuDQo+ID4gPiA+IEFzIGFuIGV4 YW1wbGU6IHNucHJpdG5mKCkgcHJvdmlkZXMgdXNlciB3aXRoIGFiaWxpdHkgdG8gZm9ybWF0DQo+ ID4gPiA+IHN0cmluZ3MsIGFwcGxpY2F0aW9uIGRlY2lkZXMgd2hhdCBleGFjdGx5IGZvcm1hdCB0 byB1c2UgYW5kIGZvciB3aGljaCBzdHJpbmcuDQo+ID4gPiA+IFNhbWUgZm9yIGxpYnJ0ZV9pcHNl YywgbGlicmFyeSBwcm92aWRlcyBmdW5jdGlvbmFsaXR5IHRvIHBlcmZvcm0NCj4gPiA+ID4gcHJv Y2Vzc2luZyBmb3IgRVNQIHBhY2tldHMuDQo+ID4gPiA+IEFwcGxpY2F0aW9uIGRlZmluZXMgd2hp Y2ggcGFja2V0cyB0byBwcm9jZXNzIGFuZCB3aGF0IHNlc3Npb24gdG8gdXNlLg0KPiA+ID4gPg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+DQo+ ID4gPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiA+ID4gMy4gSXQgc2VlbXMgbGlrZSBvcmRl cmluZyB3b24ndCBiZSBtYWludGFpbmVkIG9uY2UgdGhpcw0KPiA+ID4gPiA+ID4gPiA+ID4gcHJv Y2Vzc2luZyBpcyBkb25lLiBBZ2FpbiwgdGhpcyBpcyB0aGUgc2VxdWVuY2UgSSB1bmRlcnN0b29k Lg0KPiA+ID4gPiA+ID4gPiA+ID4gUGxlYXNlIGNvcnJlY3QgbWUgaWYgSSBtaXNzZWQNCj4gPiA+ ID4gPiA+ID4gPiBzb21ldGhpbmcsDQo+ID4gPiA+ID4gPiA+ID4gPiAgICAgICAgYS4gQXBwbGlj YXRpb24gcmVjZWl2ZXMgYSBidW5jaCBvZiBwYWNrZXRzIChsZXQncw0KPiA+ID4gPiA+ID4gPiA+ ID4gc2F5IDYgcGFja2V0cyksIGluIHdoaWNoIGZldyBhcmUgZnJhZ21lbnRlZCAoUDMgJiBQNCkg YW5kDQo+ID4gPiA+ID4gPiA+ID4gPiB0aGUgcmVzdCBjYW4gYmUgaW5saW5lDQo+ID4gPiA+ID4g PiA+ID4gcHJvY2Vzc2VkLg0KPiA+ID4gPiA+ID4gPiA+ID4gICAgICAgIGIuIEFwcGxpY2F0aW9u IHJlY2VpdmVzIFAxLT5QMi0+UDMtPlA0LT5QNS0+UDYgKGluDQo+ID4gPiA+ID4gPiA+ID4gPiB0 aGlzLCBQMSwgUDIsIFA1LCBQNiBhcmUNCj4gPiA+ID4gPiA+ID4gPiBpbmxpbmUgcHJvY2Vzc2Vk IHN1Y2Nlc3NmdWxseSkgYW5kIFA0ICYgUDUgYXJlIHRoZSBmcmFnbWVudHMNCj4gPiA+ID4gPiA+ ID4gPiA+ICAgICAgICBjLiBBcHBsaWNhdGlvbiBncm91cHMgcGFja2V0cy4gUDEtPlAyLT5QNS0+ UDYNCj4gPiA+ID4gPiA+ID4gPiA+YmVjb21lcyBvbmUgZ3JvdXAgYW5kIFAzLQ0KPiA+ID4gPiA+ ID4gPiA+ID5QNCBiZWNvbWVzIGFub3RoZXIgYW5kIGdvZXMgZm9yIGZhbGxiYWNrIHByb2Nlc3Np bmcuDQo+ID4gPiA+ID4gPiA+ID4gPiBOb3cgaG93IGlzIG9yZGVyaW5nIG1haW50YWluZWQ/IEkg Y291bGRuJ3QgZmlndXJlIG91dCBob3cNCj4gPiA+ID4gPiA+ID4gPiA+dGhhdCBpcyBkb25lIGlu IHRoaXMNCj4gPiA+ID4gPiA+ID4gPiBjYXNlLg0KPiA+ID4gPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiA+ID4gWW91IHJpZ2h0LCBmYWxsYmFjayBzZXNzaW9uIGNhbiBpbnRyb2R1Y2UgcGFja2V0IHJl b3JkZXJpbmcuDQo+ID4gPiA+ID4gPiA+ID4gQXQgbGVhc3QgdGlsbCB3ZSdsbCBoYXZlIGFiaWxp dHkgdG8gcHJvY2VzcyBwYWNrZXRzIGluIHN5bmMgbW9kZSB0b28uDQo+ID4gPiA+ID4gPiA+ID4g U2VlIG91ciBwcmVzZW50YXRpb24gYXQgZHBkayB1c2Vyc3BhY2UgKHNsaWRlcyAxNywgMTgpOg0K PiA+ID4gPiA+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/ dT1odHRwcy0zQV9fc3RhdGljLg0KPiA+ID4gPiA+ID4gPiA+IHNjaGUNCj4gPiA+ID4gPiA+ID4g PiBkLmNvDQo+ID4gPiA+ID4gPiA+ID4gbV9ob3N0ZWQtNUZmaWxlc19kcGRrYm9yZGVhdXgyMDE5 XzhmX0RQREstDQo+ID4gPiA+ID4gPiAyRElQU0VDdTkucGRmJmQ9RHdJRkFnJmM9bg0KPiA+ID4g PiA+ID4gPiA+IEtqV2VjMmI2UjBtT3lQYXo3eHRmUSZyPWpQZkI4cnd3dmlSU3h5TFdzMm42Qi0N Cj4gPiA+ID4gPiA+IFdZTG4xdjlTeVRNclQ1RVFxaDJUVSYNCj4gPiA+ID4gPiA+ID4gPiBtPWIz RTQyOWZ1bzhQLUs1WGZIOHdHLQ0KPiA+ID4gPiA+ID4gN2h3cjFkOG9NNHVKR0VyQWtiZkR2QSZz PU1MUm5uWWN5a2puc3FYckhHVXVSDQo+ID4gPiA+ID4gPiA+ID4gWUhjNXVEeGFBb2QwWWw3ZjA2 RVFyMU0mZT0gUmlnaHQgbm93IHRoZSBvbmx5IHdheSB0byBkZWFsDQo+ID4gPiA+ID4gPiA+ID4g d2l0aCBpdCAtIGhhdmUgcmVwbGF5IHdpbmRvdyBiaWcgZW5vdWdoIHRvIHN1c3RhaW4NCj4gPiA+ ID4gPiA+ID4gPiByZW9yZGVyaW5nIGFuZCBhc3luYyBwcm9jZXNzaW5nIGxhdGVuY3kuDQo+ID4g PiA+ID4gPiA+ID4gVGhhdCdzIGFjdHVhbGx5IGFub3RoZXIgcmVhc29uIHdoeSB3ZSBhZGQgdGhp cyBmZWF0dXJlIGludG8NCj4gPiA+ID4gPiA+ID4gPiBpcHNlYy1zZWNndyBzYW1wbGUNCj4gPiA+ ID4gPiA+ID4gPiBhcHA6DQo+ID4gPiA+ID4gPiA+ID4gc28gcGVvcGxlIGNhbiBldmFsdWF0ZSBp dCBvbiB0aGVpciBwbGF0Zm9ybXMsIGRldGVybWluZSB3aGF0DQo+ID4gPiA+ID4gPiA+ID4gcmVw bGF5IHdpbmRvdyBzaXplIHdvdWxkIGJlIG5lZWRlZCwgd2hhdCBpc3N1ZXMvc2xvd2Rvd25zIGl0 DQo+ID4gPiA+ID4gPiA+ID4gbWlnaHQNCj4gPiA+ID4gY2F1c2UsIGV0Yy4NCj4gPiA+ID4gPiA+ ID4NCj4gPiA+ID4gPiA+ID4gW0Fub29iXSBUaGlzIGlzIHNvbWV0aGluZyBJIGhhZCBub3RpY2Vk IHdoaWxlIGdvaW5nIHRocm91Z2ggdGhlIGNvZGUNCj4gPiBmbG93Lg0KPiA+ID4gPiA+ID4gVGhl IG9yZGVyaW5nIGluZm8gaXMgbG9zdCBiZWNhdXNlIG9mIHRoZSBhcHByb2FjaC4NCj4gPiA+ID4g PiA+DQo+ID4gPiA+ID4gPiBPbmNlIGFnYWluLCBpdCBpcyBhIGtub3duIGxpbWl0YXRpb24gYW5k IHdlIGFyZSBub3QgdHJ5aW5nIHRvDQo+ID4gPiA+ID4gPiBoaWRlIGl0IGZyb20geW91IDopDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiBbQW5vb2JdIE5ldmVyIHNhaWQgaXQgd2FzIGhpZGRlbi4gSW5p dGlhbGx5IEkgaGFkIG9rYXllZCB0aGUNCj4gPiA+ID4gPiBhcHByb2FjaCBldmVuIHRob3VnaCBp dCB3YXNuJ3QgYSBzb2x1dGlvbiBzdWl0YWJsZSBmb3IgaW5saW5lDQo+ID4gPiA+ID4gcHJvdG9j b2wuIEJ1dCBhcyBtb3JlIGNhc2VzDQo+ID4gPiA+IHdlcmUgY29uc2lkZXJlZCwgZmV3IHNob3J0 Y29taW5ncyB3ZXJlIG9ic2VydmVkLCBhbmQgSSB3YXMgc2tlcHRpY2FsDQo+ID4gPiA+IGFib3V0 IGhvdyBhbnkgb2YgdGhhdCB3b3VsZCBiZSBzb2x2ZWQgaW4gdGhlIGxvbmcgcnVuLg0KPiA+ID4g PiA+DQo+ID4gPiA+ID4gTXkgc3VnZ2VzdGlvbiwgaWYgdGhlc2UgbGltaXRhdGlvbnMgYW5kIHRo ZSBwbGFucyB0byBhZGRyZXNzIGl0DQo+ID4gPiA+ID4gd2VyZSBtZW50aW9uZWQNCj4gPiA+ID4g aW4gdGhlIGNvdmVyIGxldHRlciwgd2UgY291bGQndmUgc2F2ZWQgZmV3IGN5Y2xlcyBoZXJlLg0K PiA+ID4gPg0KPiA+ID4gPiBQb2ludCB0YWtlbi4NCj4gPiA+ID4NCj4gPiA+ID4gPiBCdXQgbXkg cmVwbHkgd291bGQgc3RpbGwgYmUgdGhlIHNhbWUg8J+Yig0KPiA+ID4gPiA+DQo+ID4gPiA+ID4g PiBJdA0KPiA+ID4gPiA+ID4gd2FzIG91dGxpbmVkIGhlcmU6DQo+ID4gPiA+ID4gPiBodHRwczov L3VybGRlZmVuc2UucHJvb2Zwb2ludC5jb20vdjIvdXJsP3U9aHR0cHMtDQo+ID4gPiA+ID4gPiAz QV9fc3RhdGljLnNjaGVkLmNvbV9ob3N0ZWQtNUZmaWxlc19kcGRrYm9yZGVhdXgyMDE5XzhmX0RQ REstDQo+ID4gPiA+ID4gPg0KPiA+ID4gPg0KPiA+IDJESVBTRUN1OS5wZGYmZD1Ed0lGQWcmYz1u S2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9alBmQjhyd3d2aVJTeHlMDQo+ID4gPiA+ID4gPiBXczJu NkItV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09YjNFNDI5ZnVvOFAtSzVYZkg4d0ctDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPg0KPiA+IDdod3IxZDhvTTR1SkdFckFrYmZEdkEmcz1NTFJublljeWtqbnNx WHJIR1V1UllIYzV1RHhhQW9kMFlsN2YwNkUNCj4gPiA+ID4gPiA+IFFyMU0mZT0NCj4gPiA+ID4g PiA+IEFuZCBpbiB0aGUgbGF0ZXN0IHBhdGNoIHZlcnNpb24gTWFyY2luIGNsZWFybHkgc3RhdGVk IGl0IGluc2lkZSB0aGUgQUcNCj4gPiBzZXNzaW9uOg0KPiA+ID4gPiA+ID4gaHR0cHM6Ly91cmxk ZWZlbnNlLnByb29mcG9pbnQuY29tL3YyL3VybD91PWh0dHAtDQo+ID4gPiA+ID4gPg0KPiA+ID4g Pg0KPiA+IDNBX19wYXRjaGVzLmRwZGsub3JnX3BhdGNoXzYwMDM5XyZkPUR3SUZBZyZjPW5Laldl YzJiNlIwbU95UGF6N3h0Zg0KPiA+ID4gPiA+ID4gUSZyPWpQZkI4cnd3dmlSU3h5TFdzMm42Qi0N Cj4gPiA+ID4gV1lMbjF2OVN5VE1yVDVFUXFoMlRVJm09YjNFNDI5ZnVvOFAtDQo+ID4gPiA+ID4g PiBLNVhmSDh3Ry0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+DQo+ID4gN2h3cjFkOG9NNHVKR0VyQWti ZkR2QSZzPXpybjkxVmpmX1pFbEFsRGY3SWVaR21HZXZjQTZSTXdwUFRMVUNHbGdaDQo+ID4gPiA+ ID4gPiBjWSZlPQ0KPiA+ID4gPiA+ID4gSWYgeW91IHRoaW5rIGV2ZW4gZnVydGhlciBjbGFyaWZp Y2F0aW9uIHdpdGhpbiB0aGUgZG9jIGlzDQo+ID4gPiA+ID4gPiBuZWVkZWQsIHBsZWFzZSBsZXQg dXMga25vdy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBBYm91dCB0aGUgYWN0dWFsIHBhY2tl dCByZS1vcmlkZXJpbmc6DQo+ID4gPiA+ID4gPiAgQUZBSUssIGZvciBzb21lIHVzZS1jYXNlcyBp dCBtaWdodCBiZSBhY2NlcHRhYmxlLCBmb3Igb3RoZXJzIG5vdC4NCj4gPiA+ID4gPiA+IFRob3Vn aCBpdCBpcyBhbiBvcHRpb25hbCBmZWF0dXJlLCB0aGF0IHdvdWxkbid0IGJlIGVuYWJsZWQgYnkN Cj4gPiA+ID4gPiA+IGRlZmF1bHQsIHNvIHVzZXIgY2FuIGFsd2F5cyBjaG9vc2UgaXMgaXQgZG9l cyBoZSBuZWVkcy93YW50cw0KPiA+ID4gPiA+ID4gdGhpcyBmZWF0dXJlIG9yDQo+ID4gPiA+IG5v dC4NCj4gPiA+ID4gPiA+IElmL3doZW4gd2UnbGwgaGF2ZSBDUFVfQ1JZUFRPIHByb2Nlc3Npbmcg bW9kZToNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFtBbm9vYl0gU2hvdWxkbid0IHdlIGdldCB0aGF0 IGFjY2VwdGVkIGZpcnN0IHRoZW4/DQo+ID4gPiA+DQo+ID4gPiA+IEkgZG9uJ3QgdGhpbmsgc28u DQo+ID4gPiA+IEN1cnJlbnQgaW1wbGVtZW50YXRpb24gZG9lcyBwcm92aWRlIGV4cGVjdGVkIGZ1 bmN0aW9uYWxpdHkgKHdpdGgNCj4gPiA+ID4ga25vd24gbGltaXRhdGlvbnMpLg0KPiA+ID4gPiBJ biBmdXR1cmUsIHdlIGNhbiB0cnkgdG8gaW1wcm92ZSBpdCBhbmQvb3IgcmVtb3ZlIGV4aXN0aW5n IGxpbWl0YXRpb25zLg0KPiA+ID4gPiBUaGF0J3MgYSBjb21tb24gaXRlcmF0aW9uIGRldmVsb3Bt ZW50IGFwcHJvYWNoIHRoYXQgaXMgdXNlZCB0aG91Z2gNCj4gPiA+ID4gd2hvbGUNCj4gPiA+ID4g RFBESzoNCj4gPiA+ID4gLSBwcm92aWRlIGluaXRpYWwgc29sdXRpb24gd2l0aCBiYXNpYyBmdW5j dGlvbmFsaXR5IGZpcnN0DQo+ID4gPiA+IC0gaW1wcm92ZS9leHRlbmQgd2l0aCBmdXR1cmUgcmVs ZWFzZXMvcGF0Y2hlcw0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gQWxzbywgdGhlIG9y ZGVyaW5nIGlzIGxvc3QgYmVjYXVzZSBhcHBsaWNhdGlvbiBpcyBub3QgY29uc2lkZXJpbmcNCj4g PiA+ID4gPiB0aGF0LiBXaHkgY2FuJ3QNCj4gPiA+ID4gd2UgdXNlIHJlLW9yZGVyaW5nIGxpYnJh cnk/IE9yIGFuIGV2ZW50LWRldj8NCj4gPiA+ID4NCj4gPiA+ID4gTm8tb25lIHNheWluZyBpdCBj YW4ndCBiZSBpbXByb3ZlZCBpbiBvbmUgd2F5IG9yIGFub3RoZXIuDQo+ID4gPiA+IFdlIGRvbid0 IHBsYW4gdG8gaW50cm9kdWNlIHN1Y2ggY29kZSByaWdodCBub3cgZHVlIHRvIGl0cyBjb21wbGV4 aXR5Lg0KPiA+ID4gPiBNaWdodCBiZSBzb21ldGhpbmcgaW4gZnV0dXJlLg0KPiA+ID4gPiBUaG91 Z2ggeW91IGFyZSB3ZWxjb21lIHRvIGdvIGFoZWFkIGFuZCBzdWJtaXQgeW91ciBvd24gcGF0Y2hl cyB0bw0KPiA+ID4gPiBpbXByb3ZlIHRoYXQgc29sdXRpb24uDQo+ID4gPiA+DQo+ID4gPiA+ID4N Cj4gPiA+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNvbS92Mi91cmw/dT1o dHRwLQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4NCj4gPiAzQV9fcGF0Y2hlcy5kcGRrLm9yZ19jb3Zl cl81ODg2Ml8mZD1Ed0lGQWcmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGYNCj4gPiA+ID4gPiA+IFEm cj1qUGZCOHJ3d3ZpUlN4eUxXczJuNkItDQo+ID4gPiA+IFdZTG4xdjlTeVRNclQ1RVFxaDJUVSZt PWIzRTQyOWZ1bzhQLQ0KPiA+ID4gPiA+ID4gSzVYZkg4d0ctDQo+ID4gPiA+ID4gPg0KPiA+ID4g Pg0KPiA+IDdod3IxZDhvTTR1SkdFckFrYmZEdkEmcz1rMXplZl8xdXFFTFhibEtOM19xalgwNFdY TkZHQVVFRklJSnJ2S1ByNg0KPiA+ID4gPiA+ID4gZUEmZT0NCj4gPiA+ID4gPiA+IHdlJ2xsIGFk ZCBhYmlsaXR5IGZvciB0aGUgdXNlciB0byBhdm9pZCB0aGlzIHJlb3JkZXJpbmcgcHJvYmxlbQ0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+ID4gQXMgd2UgZGlnIGRlZXBlciwgdGhlIGZlYXR1cmUg bG9va3MgaGFyZGx5IGNvbXBsZXRlLiBUaGUNCj4gPiA+ID4gPiA+ID4gY29uY2VybmluZyBwYXJ0 IGlzIHRoZSBhcHByb2FjaCBkb2Vzbid0IHNlZW0gY29uZHVjaXZlIHRvDQo+ID4gPiA+ID4gPiA+ IGZpeGluZyBhbnkgb2YgdGhlc2UgaXNzdWVzIGluIHRoZQ0KPiA+ID4gPiA+ID4gZnV0dXJlLg0K PiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEFnYWluLCBkb24ndCBhZ3JlZSB3aXRoIHRoYXQgc3Rh dGVtZW50Lg0KPiA+ID4gPiA+ID4gRnJvbSBteSBwZXJzcGVjdGl2ZTogd2hpbGUgY3VycmVudCBp bXBsZW1lbnRhdGlvbiBoYXMgaXRzDQo+ID4gPiA+ID4gPiBsaW1pdGF0aW9ucyAocGFja2V0IHJl b3JkZXJpbmcsIGlubGluZS1wcm90by9sa3NkLXByb3RvKSwgaXQgaXMNCj4gPiA+ID4gPiA+IHRv dGFsbHkgZnVuY3Rpb25hbCBhbmQgcHJvdmlkZXMgdXNlcnMgd2l0aCBhIHJlZmVyZW5jZSBob3cg dG8NCj4gPiA+ID4gPiA+IGRlYWwgd2l0aCBzdWNoDQo+ID4gPiA+IGtpbmQgb2YgcHJvYmxlbXMu DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBbQW5vb2JdIFdlbGwsIHRoYXQgaXMgZXhhY3RseSBteSBw cm9ibGVtLiBJdCBnaXZlcyBhIHNrZXdlZA0KPiA+ID4gPiA+IHJlZmVyZW5jZSBvbiBob3cgdG8g ZGVhbCB3aXRoIHRoZSBwcm9ibGVtLCB3aXRob3V0IGNvbnNpZGVyaW5nIG90aGVyDQo+ID4gcG9z c2liaWxpdGllcy4NCj4gPiA+ID4NCj4gPiA+ID4gT25jZSBhZ2FpbiwgcGxlYXNlIGZlZWwgZnJl ZSBhbmQgY29tZS11cCB3aXRoIHlvdXIgb3duIHBhdGNoZXMsIHRoYXQNCj4gPiA+ID4gd2lsbCBh ZGRyZXNzIHRoaXMgcHJvYmxlbSBpbiBhIHNtYXJ0ZXIgd2F5Lg0KPiA+ID4gPg0KPiA+ID4gPiA+ IElmIGV2ZXJ5IGFwcGxpY2F0aW9uIHN0YXJ0cyBhZG9wdGluZyB0aGlzIG1ldGhvZCBhbmQgc3Rh cnRzIGRvaW5nDQo+ID4gPiA+ID4gbG9va3VwIGZvciBldmVyeSBFU1AgcGFja2V0LCBoL3cgYmFz ZWQgbG9va3VwcyAoYW5kIHRoZSBhc3NvY2lhdGVkDQo+ID4gPiA+ID4gaC93KSB3b3VsZCBiZSBy ZW5kZXJlZCB1c2VsZXNzLiBJIHJlYWxseSB0aGluayB0aGlzIHNlcmllcywgd2hpY2gNCj4gPiA+ ID4gPiBoYXBwZW5zIHRvIGJlDQo+ID4gPiA+IHRoZSBmaXJzdCBzdGVwIGluIHNvbHZpbmcgYSBj b21wbGV4IHByb2JsZW0sIHdpbGwgYmUgdmVyeSB1c2VmdWwgaWYNCj4gPiA+ID4gYWxsIHRoZXNl IGlzc3VlcyBhcmUgYWRkcmVzc2VkIHByb3Blcmx5Lg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gSWYg eW91IGNhbiBpbnRyb2R1Y2UgdGhlIGlubGluZStsb29rYXNpZGUgdmlhIGxpYnJ0ZV9pcHNlYywg aXRzDQo+ID4gPiA+ID4gcGVyaGFwcyBvayBmb3IgdGhlIHBhdGNoIHRvIGhhdmUgc29tZSBsaW1p dGF0aW9ucyhsaWtlIGxhY2sgb2YNCj4gPiA+ID4gPiBvcmRlcmluZywNCj4gPiA+ID4gYXNzdW1w dGlvbnMgb24gRVNQIGV0YykuIEhvd2V2ZXIsIGlmIHRoZSBwYXRjaCBpcyBpbnRyb2R1Y2VkDQo+ ID4gPiA+IGRpcmVjdGx5IGludG8gaXBzZWMtIHNlY2d3LCBpdCBuZWVkcyB0byBiZSBtb3JlIGNv bXByZWhlbnNpdmUgYW5kIHJvYnVzdC4NCj4gPiA+ID4NCj4gPiA+ID4gSSB0aGluayBjb21tb24g RFBESyBwb2xpY3kgaXMgZXhhY3RseSBvcHBvc2l0ZToNCj4gPiA+ID4gbGlicmFyeS9kcml2ZXIg aGFzIHRvIGJlIGFzIHJvYnVzdCBhbmQgY29tcHJlaGVuc2l2ZSBhcyBwb3NzaWJsZS4NCj4gPiA+ ID4gc2FtcGxlIGFwcCBjb2RlIGFsbG93ZWQgdG8gaGF2ZSBzb21lIGxpbWl0YXRpb25zIChhcyBs b25nIGFzIHRoZXkNCj4gPiA+ID4gYXJlIGRvY3VtZW50ZWQsIGV0Yy4pLg0KPiA+ID4gPg0KPiA+ ID4gPiA+IEkgYWxzbyBleHBlY3QgcGVyZm9ybWFuY2UgaW1wYWN0IGR1ZSB0byB0aGVzZSBjaGFu Z2VzDQo+ID4gPiA+DQo+ID4gPiA+IENvdWxkIHlvdSBiZSBtb3JlIHNwZWNpZmljIGhlcmU/DQo+ ID4gPiA+IFdoYXQgcGVyZm9ybWFuY2UgaW1wYWN0IGRvIHlvdSBleHBlY3QgYW5kIHdoeT8NCj4g PiA+ID4gQ2FuIHlvdSBwb2ludCB0byB0aGUgZXhhY3QgcGllY2Ugb2YgcGF0Y2ggY29kZSB0aGF0 IHlvdSBiZWxpZXZlDQo+ID4gPiA+IHdvdWxkIGNhdXNlIGEgZGVncmFkYXRpb24uDQo+ID4gPiA+ IEkgZG9uJ3QgZXhwZWN0IGFueSBhbmQgcGVyZm9ybWFuY2UgdGVzdHMgb24gb3VyIHBsYXRmb3Jt cyBkaWRuJ3QNCj4gPiA+ID4gc2hvdyBhbnkgcmVncmVzc2lvbiBzbyBmYXIuDQo+ID4gPiA+DQo+ ID4gPiA+ID4gYW5kIHNvIEkgcHJlZmVyIGlmIHRoZSBpbmxpbmUrbG9va2FzaWRlIGNhbiBiZSBt YWRlIHNlcGFyYXRlDQo+ID4gPiA+ID4gZGF0YXBhdGggcmF0aGVyIHRoYW4gb3ZlcmxvYWRpbmcg dGhlIGV4aXN0aW5nIG9uZS4NCj4gPiA+ID4NCj4gPiA+ID4gSSBkb24ndCBzZWUgYW55IGdvb2Qg cmVhc29uIGZvciB0aGF0Lg0KPiA+ID4gPiBUaGlzIGZlYXR1cmUgaXMgb3B0aW9uYWwuDQo+ID4g PiA+IFVzZXIgaGF2ZSB0byBlbmFibGUgaXQgbWFudWFsbHkgZm9yIGVhY2ggc2Vzc2lvbiAodmlh IGNvbmZpZyBmaWxlKS4NCj4gPiA+ID4gZm9yIGFsbCBvdGhlciBzZXNzaW9ucyB0aGVyZSBpcyBu byBpbXBhY3QuDQo+ID4gPiA+IFdoYXQgd2UgcHJvYmFibHkgY2FuIGRvIC0gYWRkIGV4dHJhIGNo ZWNrIGluc2lkZSBzYS5jIHRvIGFsbG93DQo+ID4gPiA+IGZhbGxiYWNrIHNlc3Npb25zIG9ubHkg Zm9yIGlubGluZS1jcnlwdG8tb2ZmbG9hZCB0eXBlIG9mIHNlc3Npb25zLg0KPiA+ID4gPg0KPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gPiBBbHNvLCBp ZiB0aGUgbmV3IGlwc2VjIHJlbGF0ZWQgZmVhdHVyZXMgYXJlIGludHJvZHVjZWQgdmlhDQo+ID4g PiA+ID4gPiA+IGlwc2VjLXNlY2d3IHRoYW4gdmlhIHJ0ZV9pcHNlYywgdGhlbiBpdCByYWlzZXMg ZG91YnRzIG92ZXIgdGhlDQo+ID4gPiA+ID4gPiA+IHV0aWxpdHkgb2YNCj4gPiA+ID4gcnRlX2lw c2VjIGxpYnJhcnkuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4NCg0K