From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A2986E02E for ; Thu, 8 Aug 2019 01:10:47 +0000 (UTC) From: "Tolakanahalli Pradeep, Madhumitha" Date: Thu, 8 Aug 2019 01:10:45 +0000 Message-ID: <0fa8d1b16c33b8260d6a62f4d013c4d28a71cd78.camel@intel.com> References: <20190717180257.32314-1-madhumitha.tolakanahalli.pradeep@intel.com> <20190730192141.GA2736@intel.com> <3e664b45c4c6911239d18e6317769f1c6ad46ca5.camel@intel.com> <20190731171323.GA9251@intel.com> <20190801173812.GA14996@intel.com> In-Reply-To: <20190801173812.GA14996@intel.com> Content-Language: en-US Content-ID: <8D4705E5684F7C45B2442DF0B504D538@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] igt/tests/kms_dp_tiled_display.c : kms test file for display port tiled displays List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: "Navare, Manasi D" , "Ser, Simon" Cc: "igt-dev@lists.freedesktop.org" , "Latvala, Petri" List-ID: T24gVGh1LCAyMDE5LTA4LTAxIGF0IDEwOjM4IC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0K PiBUaGFuayBTaW1vbiBmb3IgYWxsIHlvdXIgaW5wdXRzLiBQbGVhc2UgZmluZCBzb21lIG9mIG15 IHF1ZXN0aW9ucw0KPiBiZWxvdzoNCj4gDQo+IE9uIFRodSwgQXVnIDAxLCAyMDE5IGF0IDEyOjQx OjM3QU0gLTA3MDAsIFNlciwgU2ltb24gd3JvdGU6DQo+ID4gT24gV2VkLCAyMDE5LTA3LTMxIGF0 IDEwOjEzIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiA+ID4gT24gV2VkLCBKdWwgMzEs IDIwMTkgYXQgMTI6MjU6MDlBTSAtMDcwMCwgU2VyLCBTaW1vbiB3cm90ZToNCj4gPiA+ID4gT24g VHVlLCAyMDE5LTA3LTMwIGF0IDEyOjIxIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0KPiA+ ID4gPiA+IE9uIFdlZCwgSnVsIDE3LCAyMDE5IGF0IDExOjQzOjQ4UE0gLTA3MDAsIFNlciwgU2lt b24gd3JvdGU6DQo+ID4gPiA+ID4gPiBUaGFua3MgZm9yIHlvdXIgcGF0Y2ghIEhlcmUgYXJlIHNv bWUgY29tbWVudHMuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB3ZSB1c2UgdGFi cyBmb3IgaW5kZW50YXRpb24sIG5vdCBzcGFjZXMuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ IE9uIFdlZCwgMjAxOS0wNy0xNyBhdCAxMTowMiAtMDcwMCwgTWFkaHVtaXRoYSBUb2xha2FuYWhh bGxpDQo+ID4gPiA+ID4gPiBQcmFkZWVwIHdyb3RlOg0KPiA+ID4gPiA+ID4gPiBUaGlzIHRlc3Qg dmFsaWRhdGVzIHRoZSB0aWxlZCBEUCBkaXNwbGF5cyB0byBkaXNwbGF5IGENCj4gPiA+ID4gPiA+ ID4gdGVzdCBwYXR0ZXJuIHNlYW1sZXNzbHkNCj4gPiA+ID4gPiA+ID4gYWNyb3NzIHRoZSB0d28g dGlsZXMuIEl0IHZhbGlkYXRlcyB0aGUgdHJhbnNjb2RlciBwb3J0DQo+ID4gPiA+ID4gPiA+IHN5 bmMgZmVhdHVyZSBvbiBpOTE1IHRvDQo+ID4gPiA+ID4gPiA+IGdldCBhIHRlYXJmcmVlIHRpbGVk IGRpc3BsYXkgb3V0cHV0Lg0KPiA+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gUmVsYXRlZCBr ZXJuZWwgd29yayBwYXRjaGVzIC0+IA0KPiA+ID4gPiA+ID4gPiBodHRwczovL3BhdGNod29yay5m cmVlZGVza3RvcC5vcmcvc2VyaWVzLzU5ODM3LyNyZXY0Lg0KPiA+ID4gPiA+ID4gPiBUaGlzIHRl c3QgY2FuIGV2ZW50dWFsbHkgYmUgZXh0ZW5kZWQgdG8gY292ZXIgdGlsZWQNCj4gPiA+ID4gPiA+ ID4gZGlzcGxheSBzdXBwb3J0IG9uIG90aGVyIGNvbm5lY3Rvcg0KPiA+ID4gPiA+ID4gPiB0eXBl cy4NCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5h c2kuZC5uYXZhcmVAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiBDYzogUGV0cmkgTGF0dmFsYSA8 cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+DQo+ID4gPiA+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IE1h ZGh1bWl0aGEgVG9sYWthbmFoYWxsaSBQcmFkZWVwIDwNCj4gPiA+ID4gPiA+ID4gbWFkaHVtaXRo YS50b2xha2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiBOZXh0IHRpbWUsIGNhbiB5b3Ugc2VuZCBib3RoIHBhdGNoZXMgaW4gb25lIGdvPyBJdCdz IG5vdA0KPiA+ID4gPiA+ID4gcG9zc2libGUgdG8NCj4gPiA+ID4gPiA+IGNoZWNrIHdoZXRoZXIg dGhpcyB0ZXN0IGFjdHVhbGx5IHBhc3NlcyBDSSwgc2luY2UgYnVpbGQNCj4gPiA+ID4gPiA+IGZh aWxzIChzZWUgdGhlDQo+ID4gPiA+ID4gPiB0d28gYXV0b21hdGVkIGZhaWx1cmUgcmVwbGllcyku DQo+ID4gPiA+ID4gDQo+ID4gPiA+ID4gWWVzIHBsZWFzZSBzZW5kIHRoaXMgYXMgYSBzZXJpZXMg d2l0aCAxc3QgcGF0Y2ggdGhhdCBkZWZpbmVzDQo+ID4gPiA+ID4gdGhlIHRpbGUgcGFyc2VyDQo+ ID4gPiA+ID4gYW5kIHNlY29uZCB3aXRoIHRoZSBhY3R1YWwgdGVzdCB0aGF0IHVzZXMgaXQNCj4g PiA+ID4gPiANCj4gPiA+ID4gPiA+IFRvIGxlYXJuIGhvdyB0byB1c2UgZ2l0LXNlbmQtZW1haWws IHlvdSBjYW4gcmVhZDoNCj4gPiA+ID4gPiA+IGh0dHBzOi8vZ2l0LXNlbmQtZW1haWwuaW8vDQo+ ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gLS0tDQo+ID4gPiA+ID4gPiA+ICB0ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzICAgICAgIHwgICAxICsNCj4gPiA+ID4gPiA+ID4gIHRlc3RzL2ttc19kcF90 aWxlZF9kaXNwbGF5LmMgfCAyMzkNCj4gPiA+ID4gPiA+ID4gKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gPiA+ID4gPiA+ID4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgICAg ICAgfCAgIDEgKw0KPiA+ID4gPiA+ID4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAyNDEgaW5zZXJ0aW9u cygrKQ0KPiA+ID4gPiA+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF90aWxl ZF9kaXNwbGF5LmMNCj4gPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS90 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+ID4gPiA+ID4gPiA+IGIvdGVzdHMvTWFrZWZpbGUuc291 cmNlcw0KPiA+ID4gPiA+ID4gPiBpbmRleCAyNTBkYmQzMy4uZTkzNzM5NDEgMTAwNjQ0DQo+ID4g PiA+ID4gPiA+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMNCj4gPiA+ID4gPiA+ID4gKysr IGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcw0KPiA+ID4gPiA+ID4gPiBAQCAtNDAsNiArNDAsNyBA QCBURVNUU19wcm9ncyA9IFwNCj4gPiA+ID4gPiA+ID4gIAlrbXNfY3Vyc29yX2VkZ2Vfd2FsayBc DQo+ID4gPiA+ID4gPiA+ICAJa21zX2N1cnNvcl9sZWdhY3kgXA0KPiA+ID4gPiA+ID4gPiAgCWtt c19kcF9kc2MgXA0KPiA+ID4gPiA+ID4gPiArCWttc19kcF90aWxlZF9kaXNwbGF5IFwNCj4gPiA+ ID4gPiA+ID4gIAlrbXNfZHJhd19jcmMgXA0KPiA+ID4gPiA+ID4gPiAgCWttc19mYmNvbl9mYnQg XA0KPiA+ID4gPiA+ID4gPiAgCWttc19mZW5jZV9waW5fbGVhayBcDQo+ID4gPiA+ID4gPiA+IGRp ZmYgLS1naXQgYS90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jDQo+ID4gPiA+ID4gPiA+IGIv dGVzdHMva21zX2RwX3RpbGVkX2Rpc3BsYXkuYw0KPiA+ID4gPiA+ID4gPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiA+ID4gPiA+ID4gPiBpbmRleCAwMDAwMDAwMC4uYWY2NDQ1NzMNCj4gPiA+ID4g PiA+ID4gLS0tIC9kZXYvbnVsbA0KPiA+ID4gPiA+ID4gPiArKysgYi90ZXN0cy9rbXNfZHBfdGls ZWRfZGlzcGxheS5jDQo+ID4gPiA+ID4gPiA+IEBAIC0wLDAgKzEsMjM5IEBADQo+ID4gPiA+ID4g PiA+ICsvKg0KPiA+ID4gPiA+ID4gPiArICogQ29weXJpZ2h0IMKpIDIwMTggSW50ZWwgQ29ycG9y YXRpb24NCj4gPiA+ID4gPiA+ID4gKyAqDQo+ID4gPiA+ID4gPiA+ICsgKiBQZXJtaXNzaW9uIGlz IGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55DQo+ID4gPiA+ID4gPiA+IHBl cnNvbiBvYnRhaW5pbmcgYQ0KPiA+ID4gPiA+ID4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJl IGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24NCj4gPiA+ID4gPiA+ID4gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwNCj4gPiA+ID4gPiA+ID4gKyAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdp dGhvdXQgcmVzdHJpY3Rpb24sDQo+ID4gPiA+ID4gPiA+IGluY2x1ZGluZyB3aXRob3V0IGxpbWl0 YXRpb24NCj4gPiA+ID4gPiA+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnks IG1lcmdlLCBwdWJsaXNoLA0KPiA+ID4gPiA+ID4gPiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLA0K PiA+ID4gPiA+ID4gPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5k IHRvIHBlcm1pdA0KPiA+ID4gPiA+ID4gPiBwZXJzb25zIHRvIHdob20gdGhlDQo+ID4gPiA+ID4g PiA+ICsgKiBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlDQo+ ID4gPiA+ID4gPiA+IGZvbGxvd2luZyBjb25kaXRpb25zOg0KPiA+ID4gPiA+ID4gPiArICoNCj4g PiA+ID4gPiA+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlDQo+ID4gPiA+ID4gPiA+IChpbmNsdWRpbmcgdGhlIG5leHQNCj4gPiA+ID4g PiA+ID4gKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvcg0K PiA+ID4gPiA+ID4gPiBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUNCj4gPiA+ID4gPiA+ID4g KyAqIFNvZnR3YXJlLg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gKyAqIFRIRSBT T0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GDQo+ID4gPiA+ ID4gPiA+IEFOWSBLSU5ELCBFWFBSRVNTIE9SDQo+ID4gPiA+ID4gPiA+ICsgKiBJTVBMSUVELCBJ TkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTDQo+ID4gPiA+ID4gPiA+ IE9GIE1FUkNIQU5UQUJJTElUWSwNCj4gPiA+ID4gPiA+ID4gKyAqIEZJVE5FU1MgRk9SIEEgUEFS VElDVUxBUiBQVVJQT1NFIEFORA0KPiA+ID4gPiA+ID4gPiBOT05JTkZSSU5HRU1FTlQuICBJTiBO TyBFVkVOVCBTSEFMTA0KPiA+ID4gPiA+ID4gPiArICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkNCj4gPiA+ID4gPiA+ID4gQ0xBSU0sIERBTUFHRVMg T1IgT1RIRVINCj4gPiA+ID4gPiA+ID4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJ T04gT0YgQ09OVFJBQ1QsIFRPUlQgT1INCj4gPiA+ID4gPiA+ID4gT1RIRVJXSVNFLCBBUklTSU5H DQo+ID4gPiA+ID4gPiA+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUg0KPiA+ID4gPiA+ID4gPiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTDQo+ ID4gPiA+ID4gPiA+ICsgKiBJTiBUSEUgU09GVFdBUkUuDQo+ID4gPiA+ID4gPiA+ICsgKg0KPiA+ ID4gPiA+ID4gPiArICogQXV0aG9yczoNCj4gPiA+ID4gPiA+ID4gKyAqICBNYWRodW1pdGhhIFRv bGFrYW5haGFsbGkgUHJhZGVlcA0KPiA+ID4gPiA+ID4gPiArICogICAgICA8bWFkaHVtaXRoYS50 b2xha2FuYWhhbGxpLnByYWRlZXBAaW50ZWwuY29tPg0KPiA+ID4gPiA+ID4gPiArICoNCj4gPiA+ ID4gPiA+ID4gKyAqIERpc3BsYXkgUG9ydCBUaWxlZCBEaXNwbGF5IFRlc3QNCj4gPiA+ID4gPiA+ ID4gKyAqIFRoaXMgdGVzdCBwYXJzZXMgdGhlIHRpbGUgaW5mb3JtYXRpb24gb2YgdGhlDQo+ID4g PiA+ID4gPiA+IGNvbm5lY3RvcnMgdGhhdCBoYXZlIFRJTEUNCj4gPiA+ID4gPiA+ID4gKyAqIHBy b3BlcnR5IHNldCwgc2V0cyB1cCB0aGUgZnJhbWVidWZmZXIgd2l0aCBjb3JyZWN0DQo+ID4gPiA+ ID4gPiA+IG9mZnNldHMgY29ycmVzcG9uZGluZyB0bw0KPiA+ID4gPiA+ID4gPiArICogdGhlIHRp bGUgb2Zmc2V0cyBhbmQgZG9lcyBhbiBhdG9taWMgbW9kZXNldCB3aXRoIHR3bw0KPiA+ID4gPiA+ ID4gPiBDUlRDcyBmb3IgdHdvDQo+ID4gPiA+ID4gPiA+ICsgKiBjb25uZWN0b3JzLg0KPiA+ID4g PiA+ID4gPiArICoNCj4gPiA+ID4gPiA+ID4gKyAqIFRoaXMgdGVzdCBjdXJyZW50bHkgc3VwcG9y dHMgb25seSBob3Jpem9udGFsbHkgdGlsZWQNCj4gPiA+ID4gPiA+ID4gZGlzcGxheXMsIGluIGxp bmUgd2l0aA0KPiA+ID4gPiA+ID4gPiArICogdGhlIGRpc3BsYXlzIHN1cHBvcnRlZCBieSB0aGUg a2VybmVsIGF0IHRoZSBtb21lbnQuDQo+ID4gPiA+ID4gPiA+ICsgKi8NCj4gPiA+ID4gPiA+ID4g Kw0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgImRybV9tb2RlLmgiDQo+ID4gPiA+ID4gPiA+ICsj aW5jbHVkZSAiZHJtX2ZvdXJjYy5oIg0KPiA+ID4gPiA+ID4gPiArI2luY2x1ZGUgImlndC5oIg0K PiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ID4gPiA+ ID4gPiA+ICsgICAgaW50IGRybV9mZDsNCj4gPiA+ID4gPiA+ID4gKyAgICBpbnQgbnVtX2hfdGls ZXM7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsNCj4gPiA+ID4g PiA+ID4gKyAgICBlbnVtIGlndF9jb21taXRfc3R5bGUgY29tbWl0Ow0KPiA+ID4gPiA+ID4gPiAr fSBkYXRhX3Q7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gK3R5cGVkZWYgc3RydWN0 IHsNCj4gPiA+ID4gPiA+ID4gKyAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsNCj4gPiA+ID4gPiA+ ID4gKyAgICBpZ3RfdGlsZV9pbmZvX3QgKnRpbGU7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X2Zi X3QgZmJfdGVzdF9wYXR0ZXJuOw0KPiA+ID4gPiA+ID4gPiArICAgIGRybU1vZGVDb25uZWN0b3JQ dHIgY29ubmVjdG9yOw0KPiA+ID4gPiA+ID4gPiArICAgIGVudW0gcGlwZSBwaXBlOw0KPiA+ID4g PiA+ID4gPiArICAgIGVudW0gaWd0X2NvbW1pdF9zdHlsZSBjb21taXQ7DQo+ID4gPiA+ID4gPiA+ ICt9IGRhdGFfY29ubmVjdG9yX3Q7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gK3N0 YXRpYyBpbmxpbmUgaW50DQo+ID4gPiA+ID4gPiA+IGRybV9wcm9wZXJ0eV9pc190aWxlKGRybU1v ZGVQcm9wZXJ0eVB0ciBwcm9wKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBJIHdvdWxkbid0 IHBlcnNvbmFsbHkgdXNlIGBpbmxpbmVgLiBUaGUgY29tcGlsZXIgaXMgc21hcnRlcg0KPiA+ID4g PiA+ID4gdGhhbiBodW1hbnMNCj4gPiA+ID4gPiA+IHRvIGRlY2lkZSB3aGV0aGVyIG9yIG5vdCBh IGZ1bmN0aW9uIHNob3VsZCBiZSBpbmxpbmVkLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ ICt7DQo+ID4gPiA+ID4gPiA+ICsJcmV0dXJuKHN0cmNtcChwcm9wLT5uYW1lID8gcHJvcC0+bmFt ZSA6ICIiLCAiVElMRSIpPyAwDQo+ID4gPiA+ID4gPiA+IDogMSk7DQo+ID4gPiA+ID4gPiANCj4g PiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBwYXJlbnRoZXNlcywgbWlzc2luZyBzcGFjZSBi ZWZvcmUgYD9gLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gK3N0YXRpYyB2b2lkIGdldF9udW1iZXJfb2ZfaF90aWxlcyhkYXRh X3QgKmRhdGEpDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFdoYXQgaWYgbXVsdGlwbGUgdGls ZXMgYXJlIGNvbm5lY3RlZD8gU2hvdWxkbid0IHdlIHVzZQ0KPiA+ID4gPiA+ID4gdGlsZV9ncm91 cF9pZD8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBZZXMgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUg bW9uaXRvcnMgd2l0aCB0aWxlcyBzbyB1c2UNCj4gPiA+ID4gPiB0aWxlX2dyb3VwX2lkIHRvIGNo ZWNrDQo+ID4gPiA+ID4gdGhhdCB0aGUgdGlsZSBiZWxvbmdzIHRvIHRoZSBzYW1lIGdyb3VwIGFu ZCB0aGVuIHVzZQ0KPiA+ID4gPiA+IG51bV9oX3RpbGVzDQo+ID4gPiANCj4gPiA+IEJ1dCBhY3R1 YWxseSB0aGUgY3VycmVudCBoYXJkd2FyZSBsaWtlIE1hZGh1bWl0aGEgbWVudGlvbmVkIG9ubHkN Cj4gPiA+IHN1cHBvcnRzIG9uZSB0aWxlIGdyb3VwLA0KPiA+ID4gaWYgd2UgaGF2ZSB0byBzdXBw b3J0IG11bHRpcGxlIHRpbGUgZ3JvdXBzIHRoZW4gd2Ugd291bGQgbmVlZCB0bw0KPiA+ID4gbWFs bG9jIHRoZSBhcnJheSBvZiBzdHJ1Y3R1cmVzDQo+ID4gPiBmb3IgdGhlIGNvbm5lY3RvcnMgYXNz b2NpYXRlZCB3aXRoIHNlcGFyYXRlIHRpbGUgZ3JvdXBzIGFuZCB0aGVuDQo+ID4gPiBoYXZlIGEg c2VwYXJhdGUgc3VidGVzdCBmb3INCj4gPiA+IHRpbGUgZ3JvdXAgMSB0aWxlIGdyb3VwIDIgZXRj LiBUaGlzIGxvZ2ljIHdpbGwgbm90IGdldCB0ZXN0ZWQNCj4gPiA+IHJpZ2h0IG5vdyBkdWUgdG8g SFcgY29uc3RyYWludC4NCj4gPiA+IA0KPiA+ID4gU28gdGhlIGlkZWEgaXMgZm9yIHRoZSBJR1Qg dG8gY2hlY2sgdGhlIHRpbGUgZ3JvdXAgaWQgYnV0IG9ubHkNCj4gPiA+IHN1cHBvcnQgMSB0aWxl IGdyb3VwIHNvIGZhcg0KPiA+ID4gYW5kIGxlYXZlIHRoZSByb29tIGZvciBmdXJ0aGVyIGV4dGVu ZGluZyBpdCB0byBtdWx0aXBsZSB0aWxlcw0KPiA+ID4gaW5zdGVhZCBvZiBvdmVyIGNvbXBsaWNh dGluZw0KPiA+ID4gdGhlIGxvZ2ljIG5vdy4NCj4gPiA+IA0KPiA+ID4gRG9lcyB0aGF0IG1ha2Ug c2Vuc2Ugb3IgZG8geW91IHRoaW5rIHdlIHNob3VsZCBhbHJlYWR5IGFkZCB0aGUNCj4gPiA+IHN1 YnRlc3RzIGZvciBtdWx0aXBsZSB0aWxlIGdyb3Vwcz8NCj4gPiANCj4gPiBUaGF0IG1ha2VzIHBl cmZlY3Qgc2Vuc2UgdG8gbWUsIHN1cHBvcnQgZm9yIG11bHRpcGxlIHRpbGUgZ3JvdXBzDQo+ID4g Y2FuIGJlDQo+ID4gbGVmdCBhcyBhIFRPRE8gZm9yIGxhdGVyLg0KPiA+IA0KPiA+IEluY3JlbWVu dGFsIHBhdGNoZXMgYXJlIHdheSBlYXNpZXIgdG8gcmV2aWV3IHRoYW4gb25lLXBhdGNoLXRoYXQt DQo+ID4gaW1wbGVtZW50cy1hbGwtZmVhdHVyZXMtYXQtb25jZS4gOikNCj4gDQo+IEdyZWF0IHNv IHdlIHdpbGwga2VlcCB0aGUgaW1wbGVtbmV0YXRpb24gdG8gMSB0aWxlIGdyb3VwIGlkIGZvciBu b3cNCj4gDQo+ID4gDQo+ID4gPiA+ID4gPiA+ICt7DQo+ID4gPiA+ID4gPiA+ICsgICAgaW50IGk7 DQo+ID4gPiA+ID4gPiA+ICsgICAgZHJtTW9kZVJlcyAqcmVzOw0KPiA+ID4gPiA+ID4gPiArICAg IGRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsNCj4gPiA+ID4gPiA+ID4gKyAgICBkcm1Nb2Rl UHJvcGVydHlQdHIgcHJvcDsNCj4gPiA+ID4gPiA+ID4gKyAgICBkcm1Nb2RlUHJvcGVydHlCbG9i UHRyIGJsb2I7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X3RpbGVfaW5mb190IHRpbGU7DQo+ID4g PiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICBpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2Rl R2V0UmVzb3VyY2VzKGRhdGEtDQo+ID4gPiA+ID4gPiA+ID5kcm1fZmQpKTsNCj4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgaWd0X2Fzc2VydC4NCj4gPiA+ ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgIGZvcihpID0gMDsgaSA8IHJlcy0+Y291bnRfY29u bmVjdG9yczsgaSsrKQ0KPiA+ID4gPiA+ID4gPiArICAgIHsNCj4gPiA+ID4gPiA+IA0KPiA+ID4g PiA+ID4gU3R5bGU6IG5vIG5ld2xpbmUgYmVmb3JlIGB7YCAob25seSBmb3IgZnVuY3Rpb25zLCBh cHBsaWVzDQo+ID4gPiA+ID4gPiB0byB0aGUgd2hvbGUNCj4gPiA+ID4gPiA+IHBhdGNoKS4NCj4g PiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgICAgICBjb25uZWN0b3IgPSBkcm1Nb2RlR2V0 Q29ubmVjdG9yQ3VycmVudChkYXRhLQ0KPiA+ID4gPiA+ID4gPiA+ZHJtX2ZkLCBcDQo+ID4gPiA+ ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBgXGAuDQo+ID4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+IFdlIGNvdWxkIGlndF9hc3NlcnQoY29ubmVjdG9yKS4NCj4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZXMtDQo+ID4gPiA+ID4gPiA+ID5jb25uZWN0b3JzW2ldKTsNCj4gPiA+ID4gPiA+ ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpZighKChjb25uZWN0b3ItPmNvbm5lY3Rpb24g PT0NCj4gPiA+ID4gPiA+ID4gRFJNX01PREVfQ09OTkVDVEVEKSAmJg0KPiA+ID4gPiA+ID4gPiAr ICAgICAgICAgICAgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0NCj4gPiA+ID4gPiA+ID4g RFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KSkpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB3ZSBj YW4gaW52ZXJ0IHRoaXMgY29uZGl0aW9uIHRvIG1ha2UgY2xlYXJlci4NCj4gPiA+ID4gPiANCj4g PiA+ID4gPiBCdXQgd291bGRudCB0aGF0IGFkZCBhZGRpdGlvbmFsIG5lc3Rpbmc/DQo+ID4gPiA+ IA0KPiA+ID4gPiBJIG1lYW4sIHRoaXMgY291bGQgYmUgcmUtd3JpdHRlbiBhczoNCj4gPiA+ID4g DQo+ID4gPiA+ICAgICBpZiAoY29ubmVjdG9yLT5jb25uZWN0aW9uICE9IERSTV9NT0RFX0NPTk5F Q1RFRCB8fA0KPiA+ID4gPiAgICAgICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0NCj4g PiA+ID4gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KQ0KPiA+ID4gDQo+ID4gPiBPaCB5 ZXMgdGhhdCBtYWtlcyBwZXJmZWN0IHNlbnNlIQ0KPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgY29ubmVjdG9yLT5jb3VudF9wcm9w czsgaSsrKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICBwcm9wID0gZHJtTW9kZUdldFByb3BlcnR5KGRhdGEtPmRybV9mZCwNCj4gPiA+ID4gPiA+ ID4gY29ubmVjdG9yLT5wcm9wc1tpXSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFdlIGNv dWxkIGlndF9hc3NlcnQocHJvcCkNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gV2UgbmVlZCB0 byBmcmVlIGl0IGF0IHNvbWUgcG9pbnQuDQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgIGlmKCEoZHJtX3Byb3BlcnR5X2lzX3RpbGUocHJvcCkgJiYNCj4gPiA+ID4gPiA+ IA0KPiA+ID4gPiA+ID4gU3R5bGU6IG1pc3Npbmcgc3BhY2UgYWZ0ZXIgaWYga2V5d29yZCAoYXBw bGllcyB0byB0aGUgd2hvbGUNCj4gPiA+ID4gPiA+IHBhdGNoKS4NCj4gPiA+ID4gPiA+IA0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgIGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3AsDQo+ ID4gPiA+ID4gPiA+IERSTV9NT0RFX1BST1BfQkxPQikpKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ ID4gPiBJJ2QgbW92ZSB0aGlzIGNoZWNrIGludG8gZHJtX3Byb3BlcnR5X2lzX3RpbGUuDQo+ID4g PiA+ID4gPiANCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsNCj4gPiA+ ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgYmxvYiA9IGRybU1vZGVHZXRQ cm9wZXJ0eUJsb2IoZGF0YS0+ZHJtX2ZkLA0KPiA+ID4gPiA+ID4gPiBcDQo+ID4gPiA+ID4gPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItDQo+ ID4gPiA+ID4gPiA+ID5wcm9wX3ZhbHVlc1tpXSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgIGlmKCFibG9iKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgIGJyZWFrOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWd0X3BhcnNlX2Nvbm5lY3Rv cl90aWxlX2Jsb2IoYmxvYiwgJnRpbGUpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgZGF0 YS0+bnVtX2hfdGlsZXMgPSB0aWxlLm51bV9oX3RpbGU7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAg ICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiArICAg IH0NCj4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArc3Rh dGljIGludCBzZXRfdGVzdF9wYXR0ZXJuX2ZiKGRhdGFfdCAqZGF0YSwNCj4gPiA+ID4gPiA+ID4g ZGF0YV9jb25uZWN0b3JfdCAqY29ubl9kYXRhKQ0KPiA+ID4gPiA+ID4gPiArew0KPiA+ID4gPiA+ ID4gPiArICAgIGludCBpOw0KPiA+ID4gPiA+ID4gPiArICAgIGludCBjb3VudCA9IDA7DQo+ID4g PiA+ID4gPiA+ICsgICAgYm9vbCBpc190aWxlID0gZmFsc2U7DQo+ID4gPiA+ID4gPiA+ICsgICAg ZW51bSBwaXBlIHBpcGU7DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X3RpbGVfaW5mb190IHRpbGU7 DQo+ID4gPiA+ID4gPiA+ICsgICAgaWd0X291dHB1dF90ICpvdXRwdXQ7DQo+ID4gPiA+ID4gPiA+ ICsgICAgaWd0X3BsYW5lX3QgKnByaW1hcnk7DQo+ID4gPiA+ID4gPiA+ICsgICAgZHJtTW9kZVBy b3BlcnR5UHRyIHByb3A7DQo+ID4gPiA+ID4gPiA+ICsgICAgZHJtTW9kZVByb3BlcnR5QmxvYlB0 ciBibG9iOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgZm9yX2VhY2hfY29u bmVjdGVkX291dHB1dChkYXRhLT5kaXNwbGF5LCBvdXRwdXQpDQo+ID4gPiA+ID4gPiA+ICsgICAg ew0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpc190aWxlID0gZmFsc2U7DQo+ID4gPiA+ID4gPiA+ ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3IgPQ0K PiA+ID4gPiA+ID4gPiBkcm1Nb2RlR2V0Q29ubmVjdG9yKGRhdGEtPmRpc3BsYXktPmRybV9mZCwg XA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICANCj4gPiA+ID4gPiA+ID4gIG91dHB1dC0+aWQpOw0KPiA+ID4gPiA+ ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlmKCEoY29ubl9kYXRhW2NvdW50XS5jb25u ZWN0b3ItPmNvbm5lY3Rvcl90eXBlDQo+ID4gPiA+ID4gPiA+ID09DQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQpKQ0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4gPiA+ICsNCj4g PiA+ID4gPiA+ID4gKyAgICAgICAgLyogUGFyc2UgdGhyb3VnaCBlYWNoIGNvbm5lY3RvciBwcm9w ZXJ0eSAqLw0KPiA+ID4gPiA+ID4gPiArICAgICAgICBmb3IoaSA9IDA7IGkgPCBjb25uX2RhdGFb Y291bnRdLmNvbm5lY3Rvci0NCj4gPiA+ID4gPiA+ID4gPmNvdW50X3Byb3BzOyBpKyspDQo+ID4g PiA+ID4gPiA+ICsgICAgICAgIHsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIHByb3AgPSBk cm1Nb2RlR2V0UHJvcGVydHkoZGF0YS0+ZGlzcGxheS0NCj4gPiA+ID4gPiA+ID4gPmRybV9mZCwg XA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25uX2RhdGFbY291bnRdLmMNCj4gPiA+ID4gPiA+ID4gb25uZWN0b3ItPnByb3BzW2ldKTsNCj4g PiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWYoISgoZHJtX3Byb3Bl cnR5X2lzX3RpbGUocHJvcCkgJiYNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBkcm1f cHJvcGVydHlfdHlwZV9pcyhwcm9wLA0KPiA+ID4gPiA+ID4gPiBEUk1fTU9ERV9QUk9QX0JMT0Ip KSkpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIGJsb2IgPSBkcm1Nb2RlR2V0UHJvcGVy dHlCbG9iKGRhdGEtPmRpc3BsYXktDQo+ID4gPiA+ID4gPiA+ID5kcm1fZmQsIFwNCj4gPiA+ID4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLmNvbm5l Y3Rvci0NCj4gPiA+ID4gPiA+ID4gPnByb3BfdmFsdWVzW2ldKTsNCj4gPiA+ID4gPiA+ID4gKw0K PiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWYoIWJsb2IpDQo+ID4gPiA+ID4gPiA+ICsgICAg ICAgICAgICAgICAgYnJlYWs7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgIGlndF9wYXJzZV9jb25uZWN0b3JfdGlsZV9ibG9iKGJsb2IsICZ0aWxlKTsNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZSA9ICZ0aWxlOw0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgaXNfdGlsZSA9IHRydWU7DQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgfQ0KPiA+ID4gPiA+ID4g DQo+ID4gPiA+ID4gPiBJIGZlZWwgbGlrZSB0aGlzIHdob2xlIGJsb2NrIGFib3ZlIGlzIGR1cGxp Y2F0ZWQuIENvdWxkIGJlDQo+ID4gPiA+ID4gPiBleHRyYWN0ZWQNCj4gPiA+ID4gPiA+IGludG8g YSBmdW5jdGlvbiwgZS5nLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiAgICAgYm9vbCBjb25u ZWN0b3JfZ2V0X3RpbGUoZHJtTW9kZUNvbm5lY3RvclJlcyAqY29ubiwNCj4gPiA+ID4gPiA+IGln dF90aWxlX2luZm9fdCAqdGlsZV9pbmZvKQ0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgIGlmKCFpc190aWxlKQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgY29udGludWU7 DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgb3V0cHV0ID0gaWd0X291 dHB1dF9mcm9tX2Nvbm5lY3RvcihkYXRhLQ0KPiA+ID4gPiA+ID4gPiA+ZGlzcGxheSwgXA0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bm5fZGF0YVtjb3UNCj4gPiA+ID4gPiA+ID4gbnRdLmNvbm5lY3Rvcik7DQo+ID4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBgXGAuIEFwcGxpZXMgdG8gdGhlIHdob2xl IHBhdGNoLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgZm9yX2VhY2hfcGlwZShkYXRhLT5kaXNwbGF5LCBwaXBlKQ0KPiA+ID4gPiA+ID4gPiAr ICAgICAgICB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICBpZ3RfZGVidWcoIkN1cnJlbnQg UElQRSBpcyAlZFxuIiwgcGlwZSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgIGlmKChjb3VudCA+IDApICYmIChwaXBlID09IGNvbm5fZGF0YVtjb3VudC0NCj4g PiA+ID4gPiA+ID4gMV0ucGlwZSkpDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgY29u dGludWU7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBwYXJl bnRoZXNlcy4NCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgaWYoaWd0 X3BpcGVfY29ubmVjdG9yX3ZhbGlkKHBpcGUsIG91dHB1dCkpIHsNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnBpcGUgPSBwaXBlOw0KPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0ub3V0cHV0ID0gb3V0cHV0Ow0KPiA+ ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgaWd0X291dHB1dF9z ZXRfcGlwZShjb25uX2RhdGFbY291bnRdLm91dA0KPiA+ID4gPiA+ID4gPiBwdXQsIFwNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtj b3VudF0ucGlwDQo+ID4gPiA+ID4gPiA+IGUpOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiA+ICsgICAgICAgICAgICAgICAgaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9mZCxc DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29u bl9kYXRhW2NvdW50XS50aQ0KPiA+ID4gPiA+ID4gPiBsZS0+dGlsZV9oX3NpemUgKlwNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLQ0KPiA+ ID4gPiA+ID4gPiA+bnVtX2hfdGlsZXMpLFwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnRpDQo+ID4gPiA+ID4gPiA+ IGxlLT50aWxlX3Zfc2l6ZSxcDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFJNX0ZPUk1BVF9YQkdSODg4OA0KPiA+ID4gPiA+ID4gPiAsXA0KPiA+ ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExPQ0FMX0RS TV9GT1JNQVRfTU8NCj4gPiA+ID4gPiA+ID4gRF9OT05FLFwNCj4gPiA+ID4gPiA+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmY29ubl9kYXRhW2NvdW50XS5mDQo+ID4g PiA+ID4gPiA+IGJfdGVzdF9wYXR0ZXJuKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4g PiArICAgICAgICAgICAgICAgIHByaW1hcnkgPQ0KPiA+ID4gPiA+ID4gPiBpZ3Rfb3V0cHV0X2dl dF9wbGFuZV90eXBlKGNvbm5fZGF0YVtjb3VudF0ub3V0cHV0LFwNCj4gPiA+ID4gPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fDQo+ ID4gPiA+ID4gPiA+IFBMQU5FX1RZUEVfUFJJTUFSWSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksDQo+ID4g PiA+ID4gPiA+ICZjb25uX2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybik7DQo+ID4gPiA+ID4g PiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICBpZ3RfZmJfc2V0X3NpemUoJmNv bm5fZGF0YVtjb3VudF0uZmJfdGVzDQo+ID4gPiA+ID4gPiA+IHRfcGF0dGVybiwgcHJpbWFyeSxc DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0 YVtjb3VudF0udGlsZS0NCj4gPiA+ID4gPiA+ID4gPnRpbGVfaF9zaXplLFwNCj4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWxl LQ0KPiA+ID4gPiA+ID4gPiA+dGlsZV92X3NpemUpOw0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ ID4gPiA+ICsgICAgICAgICAgICAgICAgaWd0X2ZiX3NldF9wb3NpdGlvbigmY29ubl9kYXRhW2Nv dW50XS5mYg0KPiA+ID4gPiA+ID4gPiBfdGVzdF9wYXR0ZXJuLCBcDQo+ID4gPiA+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5LFwNCj4gPiA+ID4gPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25uX2RhdGFbY291bnRd LnRpDQo+ID4gPiA+ID4gPiA+IGxlLT50aWxlX2hfc2l6ZSAqXA0KPiA+ID4gPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWwNCj4g PiA+ID4gPiA+ID4gZS0+dGlsZV9oX2xvYyksDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29ubl9kYXRhW2NvdW50XS50aQ0KPiA+ID4gPiA+ID4g PiBsZS0+dGlsZV92X3NpemUgKlwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsDQo+ID4gPiA+ID4gPiA+IGUtPnRp bGVfdl9sb2MpKTsNCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAg ICAgIGlndF9wbGFuZV9zZXRfc2l6ZShwcmltYXJ5LFwNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWxlDQo+ID4gPiA+ ID4gPiA+IC0+dGlsZV9oX3NpemUsXA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnRpbGUNCj4gPiA+ID4gPiA+ID4gLT50 aWxlX3Zfc2l6ZSk7DQo+ID4gPiA+ID4gPiA+ICsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAg ICAgICBicmVhazsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgICAgIH0NCj4gPiA+ID4gPiA+ID4g KyAgICAgICAgfQ0KPiA+ID4gPiA+ID4gPiArICAgICAgICBjb3VudCsrOw0KPiA+ID4gPiA+ID4g PiArICAgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiArICAgIHJldHVybiBjb3Vu dDsNCj4gPiA+ID4gPiA+ID4gK30NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4gPiA+ID4gPiAraWd0 X21haW4NCj4gPiA+ID4gPiA+ID4gK3sNCj4gPiA+ID4gPiA+ID4gKyAgICBpZ3RfZGlzcGxheV90 IGRpc3BsYXk7DQo+ID4gPiA+ID4gPiA+ICsgICAgZGF0YV90IGRhdGEgPSB7fTsNCj4gPiA+ID4g PiA+ID4gKyAgICBkYXRhX2Nvbm5lY3Rvcl90ICpjb25uX2RhdGE7DQo+ID4gPiA+ID4gPiA+ICsN Cj4gPiA+ID4gPiA+ID4gKyAgICBpZ3RfZml4dHVyZSB7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAg IGRhdGEuZHJtX2ZkID0NCj4gPiA+ID4gPiA+ID4gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklW RVJfQU5ZKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAga21zdGVzdF9zZXRfdnRfZ3JhcGhpY3Nf bW9kZSgpOw0KPiA+ID4gPiA+ID4gPiArICAgICAgICBpZ3RfZGlzcGxheV9yZXF1aXJlKCZkaXNw bGF5LCBkYXRhLmRybV9mZCk7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGRhdGEuZGlzcGxheSA9 ICZkaXNwbGF5Ow0KPiA+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGdldF9u dW1iZXJfb2ZfaF90aWxlcygmZGF0YSk7DQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlndF9kZWJ1 ZygiTnVtYmVyIG9mIEhvcml6b250YWwgVGlsZXM6ICVkXG4iLA0KPiA+ID4gPiA+ID4gPiBkYXRh Lm51bV9oX3RpbGVzKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgZGF0YS5jb21taXQgPSBkYXRh LmRpc3BsYXktPmlzX2F0b21pYyA/DQo+ID4gPiA+ID4gPiA+IENPTU1JVF9BVE9NSUMgOiBDT01N SVRfTEVHQUNZOw0KPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gPiArICAgIGlmKGRhdGEubnVtX2hfdGlsZXMgPiAwKQ0KPiA+ID4gPiA+ID4gPiArICAg ICAgICBjb25uX2RhdGEgPSAoZGF0YV9jb25uZWN0b3JfdA0KPiA+ID4gPiA+ID4gPiAqKW1hbGxv YyhkYXRhLm51bV9oX3RpbGVzICogXA0KPiA+ID4gPiA+ID4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKGQNCj4gPiA+ID4gPiA+ID4gYXRh X2Nvbm5lY3Rvcl90KSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IE5vIG5lZWQgZm9yIHRo aXMgY2FzdCwgdW5uZWNlc3NhcnkgYFxgLg0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsg ICAgaWd0X2Fzc2VydChjb25uX2RhdGEpOw0KPiA+ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiBUaGlz IGNoZWNrIHJlYWRzIGdhcmJhZ2UgZnJvbSB0aGUgc3RhY2sgaWYgZGF0YS5udW1faF90aWxlcw0K PiA+ID4gPiA+ID4gPT0gMC4NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGlzIGNoZWNrIHNob3Vs ZCBwb3NzaWJseSBiZSBpbnNpZGUgdGhlIHNhbWUgaWYNCj4gPiA+ID4gPiANCj4gPiA+ID4gPiA+ ID4gKyAgICBpZ3Rfc3VidGVzdF9mKCJiYXNpYy10ZXN0LXBhdHRlcm4iKSB7DQo+ID4gPiA+ID4g PiANCj4gPiA+ID4gPiA+IE5vIG5lZWQgZm9yIHRoZSBfZiBzdWZmaXguDQo+ID4gPiA+ID4gPiAN Cj4gPiA+ID4gPiA+IFRoaXMgc3VidGVzdCBpcyBtaXNzaW5nIGEgZGVzY3JpcHRpb24uIENvdWxk IHlvdSBhZGQgb25lPw0KPiA+ID4gPiA+ID4gRm9yIG1vcmUNCj4gPiA+ID4gPiA+IGluZm9ybWF0 aW9uLCBzZWU6DQo+ID4gPiA+ID4gPiANCmh0dHBzOi8vZHJtLnBhZ2VzLmZyZWVkZXNrdG9wLm9y Zy9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtQ29yZS5odG1sI2lndC1kZXNjcmliZQ0KPiA+ ID4gPiA+ID4gDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgIGlndF9za2lwX29uKCFkYXRhLm51bV9o X3RpbGVzKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgc2V0X3Rlc3RfcGF0dGVybl9mYigmZGF0 YSwgY29ubl9kYXRhKTsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgaWd0X2Rpc3BsYXlfY29tbWl0 MihkYXRhLmRpc3BsYXksIGRhdGEuY29tbWl0KTsNCj4gPiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4g SSdtIG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB3aGF0IHRoaXMgdGVzdCBjaGVja3MuIEl0IGRvZXMg YQ0KPiA+ID4gPiA+ID4gY29tbWl0IG9uDQo+ID4gPiA+ID4gPiBhbGwgdGlsZWQgY29ubmVjdG9y cywgYnV0IGRvZXNuJ3QgY2hlY2sgYW55dGhpbmcNCj4gPiA+ID4gPiA+IGFmdGVyd2FyZHMuIE1h eWJlIGl0DQo+ID4gPiA+ID4gPiBzaG91bGQgY2hlY2sgdGhlIHBhZ2VmbGlwIHNlcmlhbCBhbmQg dGltaW5ncz8NCj4gPiA+ID4gPiANCj4gPiA+ID4gPiBUaGlzIGlzIHNvIGZhciBhIG1hbnVhbCB0 ZXN0IHdoZXJlIHdlIGp1c3QgbG9vayBhdCB0aGUNCj4gPiA+ID4gPiBwYXR0ZXJuIGFuZCBtYWtl IHN1cmUgbm8gYXJ0aWZhY3RzDQo+ID4gPiA+ID4gYW5kIGF1dG8gdGVzdGluZyBqdXN0IG1ha2Ug c3VyZSB0aGUgY29tbWl0IGRpZCBub3QgZmFpbCwgYW55DQo+ID4gPiA+ID4gYmV0dGVyIGlkZWEg dG8gY2hlY2sgaWYgdGhlDQo+ID4gPiA+ID4gcGFnZV9mbGlwIHRpbWVvdXRzIGRpZG50IG9jY3Vy IG9yIG5vdCBzdXJlIGlmIHdlIGNhbiBkbyBjcmMNCj4gPiA+ID4gPiBjaGVja3MgdG8gZW5zdXJl IG5vIGFydGlmYWN0cz8NCj4gPiA+ID4gPiBBbnkgaWRlYXMvc3VnZ2VzdGlvbnM/DQo+ID4gPiA+ IA0KPiA+ID4gPiBUbyBiZSBob25lc3QgSSdtIG5vdCBhIGZhbiBvZiBtYW51YWwgdGVzdGluZy4N Cj4gPiA+ID4gDQo+ID4gPiA+IEFzIEkgdW5kZXJzdGFuZCBpdCwgdGlsZWQgZGlzcGxheXMgbXVz dCBiZSB1cGRhdGVkIGluIHN5bmMgc28NCj4gPiA+ID4gdGhhdCB5b3UNCj4gPiA+ID4gZG9uJ3Qg Z2V0IHRlYXJpbmcuIElmIG9uZSBkaXNwbGF5IGlzIHBhZ2UtZmxpcHBlZCBiZWZvcmUgdGhlDQo+ ID4gPiA+IG90aGVyLA0KPiA+ID4gPiB0aGVyZSB3aWxsIGJlIHRlYXJpbmcgaW4gdGhlIG1pZGRs ZSBvZiB0aGUgdGlsZWQgc2NyZWVuLiBBbSBJDQo+ID4gPiA+IHJlYWRpbmcNCj4gPiA+ID4gdGhl IGNvbW1pdCBtZXNzYWdlIGNvcnJlY3RseT8NCj4gPiA+IA0KPiA+ID4gWWVzIHRoZXJlIHdvdWxk IGJlIHRlYXJpbmcgaWYgb25lIHRpbGUgcGFnZSBmbGlwcGVkIGJlZm9yZSB0aGUNCj4gPiA+IG90 aGVyDQo+ID4gPiBhbmQgdGhlIEhXIHByZXZlbnRzIHRoaXMgZnJvbSBoYXBwZW5pbmcgYnkgc3lu Y2hyb25pemluZyB0aGUgdHdvDQo+ID4gPiB2YmxhbmtzDQo+ID4gPiBmcm9tIHRoZSB0d28gcG9y dHMuDQo+ID4gPiANCj4gPiA+IElmIHRoZXJlIGFuIGV4YW1wbGUgb2YgaWd0IHdoZXJlIHdlIGNh biBjaGVjayB0aGUgdmJsYW5rIHRpbWluZw0KPiA+ID4gb3IgcGFnZSBmbGlwIHRpbWluZ3MNCj4g PiA+IHRvIGFkZCB0aGlzIGNoZWNrPw0KPiA+IA0KPiA+IEkgYmVsaWV2ZSB0ZXN0cyBpbiBrbXNf ZmxpcCBkbyBhIHNpbWlsYXIgY2hlY2suIFRoZQ0KPiA+IHBhZ2VfZmxpcF9oYW5kbGVyDQo+ID4g ZnVuY3Rpb24gaGFuZGxlcyB0aGUgcGFnZSBmbGlwIGV2ZW50ICh3aGljaCBpcyBnaXZlbiB0aGUg ZmxpcA0KPiA+IHRpbWVzdGFtcA0KPiA+IGFuZCBzZXF1ZW5jZSBudW1iZXIpLiBjaGVja19zdGF0 ZSB2ZXJpZmllcyB0aGF0IHRoZSB0aW1lc3RhbXAgaXMNCj4gPiBjbG9zZQ0KPiA+IGVub3VnaCB0 byB3aGF0IHdlIGV4cGVjdCAoaW4gb3VyIGF0b21pYyBjaGVjaywgbWF5YmUgd2UgY2FuIGNvbXBh cmUNCj4gPiB3aXRoIHN0cmljdCBlcXVhbGl0eSkuDQo+ID4gDQo+ID4gU2luY2Ugd2UncmUgZGVh bGluZyB3aXRoIG11bHRpcGxlIENSVENzLCBpdCBtYXkgYmUgYSBnb29kIGlkZWEgdG8NCj4gPiB1 c2UNCj4gPiBkcm1FdmVudENvbnRleHQudmVyc2lvbiA9IDMgd2l0aCBwYWdlX2ZsaXBfaGFuZGxl cjIgc28gdGhhdCB3ZSBhbHNvDQo+ID4gZ2V0DQo+ID4gdGhlIENSVEMgaW4gdGhlIHBhZ2UgZmxp cCBoYW5kbGVyLiBWZXJzaW9uIDMgaXMgYSBjb3JlIERSTSBmZWF0dXJlLA0KPiA+IGFsbA0KPiA+ IGRyaXZlcnMgc3VwcG9ydCBpdCBnaXZlbiBhIHJlY2VudCBlbm91Z2gga2VybmVsLg0KPiA+IA0K PiA+IFJvdWdoIHBzZXVkby1jb2RlOg0KPiA+IA0KPiA+IAkvKiBXaGVuIGNvbW1pdHRpbmcgYnVm ZmVyLCByZXF1ZXN0IGEgcGFnZSBmbGlwICovDQo+ID4gCWRybU1vZGVBdG9taWNDb21taXQoZmQs IHJlcSwgRFJNX01PREVfQVRPTUlDX05PTkJMT0NLIHwNCj4gPiAJCQkgICAgRFJNX01PREVfUEFH RV9GTElQX0VWRU5ULCBkYXRhKTsNCj4gDQo+IEhlcmUgd2UgZG8gdGhlIG1vZGVzZSB3aXRoIGln dF9kaXNwbGF5X2NvbW1pdDIgY2FsbCB0aGF0IHRoZW4gY2FsbHMNCj4gZHJtTW9kZUF0b21pY0Nv bW1pdCBidXQNCj4gZG9lc250IGNhbGwgaXQgd2l0aCBQYWdlIGZsaXAsIGRvIHdlIGhhdmUgYW5v dGhlciBpZ3QgaGVscGVyIHRoYXQNCj4gZG9lcyBhIGF0b21pYyBjb21taXQgd2l0aA0KPiBwYWdl IGZsaXAgZXZlbnQ/DQo+IA0KPiBDYW4gd2Ugbm90IGp1c3QgZG8gYXRvbWljIGNvbW1pdCBhbmQg Z2V0IHZibGFuayBldmVudHMgc28gZm9yIHR3bw0KPiBjcnRjcyB3ZSBnZXQgdHdvIGV2ZW50cyBh bmQgY29tcGFyZQ0KPiB0aGUgdGltZXN0YW1wIGFuZCBtYWtlIHN1cmUgdGhleSBhcmUgY2xvc2Ug ZW5vdWdoPw0KPiANCj4gTWFuYXNpDQo+IA0KPiA+IA0KPiA+IAlzdGF0aWMgdm9pZCBwYWdlX2Zs aXBfaGFuZGxlcihpbnQgZmQsIHVuc2lnbmVkIHNlcSwNCj4gPiAJCQkJICAgICAgdW5zaWduZWQg dHZfc2VjLA0KPiA+IAkJCQkgICAgICB1bnNpZ25lZCB0dl91c2VjLA0KPiA+IAkJCQkgICAgICB1 bnNpZ25lZCBjcnRjX2lkLCB2b2lkICpkYXRhKQ0KPiA+IAl7DQo+ID4gCQkvKiBDb21wYXJlIHBh cmFtcyB3aXRoIHRoZSBvdGhlciBwYWdlIGZsaXAgKi8NCj4gPiAJfQ0KPiA+IA0KPiA+IAkvKiBX aGVuIHdlIGdldCBQT0xMSU4gaW4gdGhlIERSTSBGRCAqLw0KPiA+IAlkcm1FdmVudENvbnRleHQg ZXZlbnQgPSB7DQo+ID4gCQkudmVyc2lvbiA9IDMsDQo+ID4gCQkucGFnZV9mbGlwX2hhbmRsZXIy ID0gcGFnZV9mbGlwX2hhbmRsZXIsDQo+ID4gCX07DQo+ID4gCWRybUhhbmRsZUV2ZW50KGZkLCAm ZXZlbnQpOw0KPiA+IA0KDQpJIHdhcyB0cnlpbmcgdG8gaW1wbGVtZW50IHRoZSBhYm92ZSBjb2Rl IHdpdGggaWd0X2Rpc3BsYXlfY29tbWl0Mi4NCkxvb2tzIGxpa2UgSSdtIHRpbWluZyBvdXQgd2hp bGUgcG9sbC1pbmcgZm9yIFBPTExJTi4NCg0KSXMgdGhlcmUgc29tZXRoaW5nIEkgY291bGQgYmUg ZG9pbmcgd3Jvbmc/IEFjY29yZGluZyB0byBteQ0KdW5kZXJzdGFuZGluZywgaWd0X2Rpc3BsYXlf Y29tbWl0MiBzaG91bGQgY2F1c2UgYSBwYWdlLWZsaXAgZXZlbnQNCnJpZ2h0Pw0KDQoNCk1hZGh1 bWl0aGENCg0KDQo+ID4gPiBNYW5hc2kNCj4gPiA+IA0KPiA+ID4gPiBJZiBzbywgbWF5YmUgd2Ug Y2FuIGNoZWNrIHRoZSBwYWdlLWZsaXAgdGltaW5ncyBhbmQgbWFrZSBzdXJlDQo+ID4gPiA+IHRo ZXkgYXJlDQo+ID4gPiA+IGVxdWFsPw0KPiA+ID4gPiANCj4gPiA+ID4gQSBDUkMgY2hlY2sgbWln aHQgYmUgYSBnb29kIGlkZWEgdG9vLCB0byBtYWtlIHN1cmUgYmFuZHdpZHRoDQo+ID4gPiA+IGlz bid0IGFuDQo+ID4gPiA+IGlzc3VlLg0KPiA+ID4gPiANCj4gPiA+ID4gQ0MnaW5nIE1hcnRpbiBp biBjYXNlIGhlIGhhcyBiZXR0ZXIgaWRlYXMuDQo+ID4gPiA+IA0KPiA+ID4gPiA+IE1hbmFzaQ0K PiA+ID4gPiA+IA0KPiA+ID4gPiA+ID4gPiArICAgIH0NCj4gPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gPiArICAgIGlndF9maXh0dXJlIHsNCj4gPiA+ID4gPiA+ID4gKyAgICAgICAgaWYoZGF0 YS5udW1faF90aWxlcyA+IDApDQo+ID4gPiA+ID4gPiA+ICsgICAgICAgICAgICBmcmVlKGNvbm5f ZGF0YSk7DQo+ID4gPiA+ID4gPiANCj4gPiA+ID4gPiA+IElmIGNvbm5fZGF0YSB3YXMgaW5pdGlh bGl6ZWQgdG8gTlVMTCwgbm8gbmVlZCBmb3IgdGhlDQo+ID4gPiA+ID4gPiBjaGVjaywgYmVjYXVz ZQ0KPiA+ID4gPiA+ID4gZnJlZShOVUxMKSBpcyBhIG5vLW9wLg0KPiA+ID4gPiA+ID4gDQo+ID4g PiA+ID4gPiA+ICsgICAgICAgIGttc3Rlc3RfcmVzdG9yZV92dF9tb2RlKCk7DQo+ID4gPiA+ID4g PiA+ICsgICAgICAgIGlndF9kaXNwbGF5X2ZpbmkoZGF0YS5kaXNwbGF5KTsNCj4gPiA+ID4gPiA+ ID4gKyAgICB9DQo+ID4gPiA+ID4gPiA+ICt9DQo+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS90 ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkDQo+ID4gPiA+ID4gPiA+IGluZGV4 IDM0YTc0MDI1Li42YTZlOWNlOSAxMDA2NDQNCj4gPiA+ID4gPiA+ID4gLS0tIGEvdGVzdHMvbWVz b24uYnVpbGQNCj4gPiA+ID4gPiA+ID4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQNCj4gPiA+ID4g PiA+ID4gQEAgLTI1LDYgKzI1LDcgQEAgdGVzdF9wcm9ncyA9IFsNCj4gPiA+ID4gPiA+ID4gIAkn a21zX2N1cnNvcl9lZGdlX3dhbGsnLA0KPiA+ID4gPiA+ID4gPiAgCSdrbXNfY3Vyc29yX2xlZ2Fj eScsDQo+ID4gPiA+ID4gPiA+ICAJJ2ttc19kcF9kc2MnLA0KPiA+ID4gPiA+ID4gPiArCSdrbXNf ZHBfdGlsZWRfZGlzcGxheScsDQo+ID4gPiA+ID4gPiA+ICAJJ2ttc19kcmF3X2NyYycsDQo+ID4g PiA+ID4gPiA+ICAJJ2ttc19mYmNvbl9mYnQnLA0KPiA+ID4gPiA+ID4gPiAgCSdrbXNfZmVuY2Vf cGluX2xlYWsnLA0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2