From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 98EFA6E2A9 for ; Wed, 31 Jul 2019 07:25:12 +0000 (UTC) From: "Ser, Simon" Date: Wed, 31 Jul 2019 07:25:09 +0000 Message-ID: <3e664b45c4c6911239d18e6317769f1c6ad46ca5.camel@intel.com> References: <20190717180257.32314-1-madhumitha.tolakanahalli.pradeep@intel.com> <20190730192141.GA2736@intel.com> In-Reply-To: <20190730192141.GA2736@intel.com> Content-Language: en-US Content-ID: <036D1A99791E6F4DB7260E8A05EB5255@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: "martin.peres@linux.intel.com" , "Navare, Manasi D" Cc: "igt-dev@lists.freedesktop.org" , "Latvala, Petri" List-ID: T24gVHVlLCAyMDE5LTA3LTMwIGF0IDEyOjIxIC0wNzAwLCBNYW5hc2kgTmF2YXJlIHdyb3RlOg0K PiBPbiBXZWQsIEp1bCAxNywgMjAxOSBhdCAxMTo0Mzo0OFBNIC0wNzAwLCBTZXIsIFNpbW9uIHdy b3RlOg0KPiA+IFRoYW5rcyBmb3IgeW91ciBwYXRjaCEgSGVyZSBhcmUgc29tZSBjb21tZW50cy4N Cj4gPiANCj4gPiBTdHlsZTogd2UgdXNlIHRhYnMgZm9yIGluZGVudGF0aW9uLCBub3Qgc3BhY2Vz Lg0KPiA+IA0KPiA+IE9uIFdlZCwgMjAxOS0wNy0xNyBhdCAxMTowMiAtMDcwMCwgTWFkaHVtaXRo YSBUb2xha2FuYWhhbGxpIFByYWRlZXAgd3JvdGU6DQo+ID4gPiBUaGlzIHRlc3QgdmFsaWRhdGVz IHRoZSB0aWxlZCBEUCBkaXNwbGF5cyB0byBkaXNwbGF5IGEgdGVzdCBwYXR0ZXJuIHNlYW1sZXNz bHkNCj4gPiA+IGFjcm9zcyB0aGUgdHdvIHRpbGVzLiBJdCB2YWxpZGF0ZXMgdGhlIHRyYW5zY29k ZXIgcG9ydCBzeW5jIGZlYXR1cmUgb24gaTkxNSB0bw0KPiA+ID4gZ2V0IGEgdGVhcmZyZWUgdGls ZWQgZGlzcGxheSBvdXRwdXQuDQo+ID4gPiANCj4gPiA+IFJlbGF0ZWQga2VybmVsIHdvcmsgcGF0 Y2hlcyAtPiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvc2VyaWVzLzU5ODM3LyNy ZXY0Lg0KPiA+ID4gVGhpcyB0ZXN0IGNhbiBldmVudHVhbGx5IGJlIGV4dGVuZGVkIHRvIGNvdmVy IHRpbGVkIGRpc3BsYXkgc3VwcG9ydCBvbiBvdGhlciBjb25uZWN0b3INCj4gPiA+IHR5cGVzLg0K PiA+ID4gDQo+ID4gPiBDYzogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNv bT4NCj4gPiA+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4NCj4g PiA+IFNpZ25lZC1vZmYtYnk6IE1hZGh1bWl0aGEgVG9sYWthbmFoYWxsaSBQcmFkZWVwIDxtYWRo dW1pdGhhLnRvbGFrYW5haGFsbGkucHJhZGVlcEBpbnRlbC5jb20+DQo+ID4gDQo+ID4gTmV4dCB0 aW1lLCBjYW4geW91IHNlbmQgYm90aCBwYXRjaGVzIGluIG9uZSBnbz8gSXQncyBub3QgcG9zc2li bGUgdG8NCj4gPiBjaGVjayB3aGV0aGVyIHRoaXMgdGVzdCBhY3R1YWxseSBwYXNzZXMgQ0ksIHNp bmNlIGJ1aWxkIGZhaWxzIChzZWUgdGhlDQo+ID4gdHdvIGF1dG9tYXRlZCBmYWlsdXJlIHJlcGxp ZXMpLg0KPiANCj4gWWVzIHBsZWFzZSBzZW5kIHRoaXMgYXMgYSBzZXJpZXMgd2l0aCAxc3QgcGF0 Y2ggdGhhdCBkZWZpbmVzIHRoZSB0aWxlIHBhcnNlcg0KPiBhbmQgc2Vjb25kIHdpdGggdGhlIGFj dHVhbCB0ZXN0IHRoYXQgdXNlcyBpdA0KPiANCj4gPiBUbyBsZWFybiBob3cgdG8gdXNlIGdpdC1z ZW5kLWVtYWlsLCB5b3UgY2FuIHJlYWQ6DQo+ID4gaHR0cHM6Ly9naXQtc2VuZC1lbWFpbC5pby8N Cj4gPiANCj4gPiA+IC0tLQ0KPiA+ID4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICAgfCAg IDEgKw0KPiA+ID4gIHRlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5LmMgfCAyMzkgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiA+ICB0ZXN0cy9tZXNvbi5idWlsZCAgICAg ICAgICAgIHwgICAxICsNCj4gPiA+ICAzIGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNlcnRpb25zKCsp DQo+ID4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5LmMN Cj4gPiA+IA0KPiA+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzDQo+ID4gPiBpbmRleCAyNTBkYmQzMy4uZTkzNzM5NDEgMTAwNjQ0 DQo+ID4gPiAtLS0gYS90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+ID4gPiArKysgYi90ZXN0cy9N YWtlZmlsZS5zb3VyY2VzDQo+ID4gPiBAQCAtNDAsNiArNDAsNyBAQCBURVNUU19wcm9ncyA9IFwN Cj4gPiA+ICAJa21zX2N1cnNvcl9lZGdlX3dhbGsgXA0KPiA+ID4gIAlrbXNfY3Vyc29yX2xlZ2Fj eSBcDQo+ID4gPiAgCWttc19kcF9kc2MgXA0KPiA+ID4gKwlrbXNfZHBfdGlsZWRfZGlzcGxheSBc DQo+ID4gPiAgCWttc19kcmF3X2NyYyBcDQo+ID4gPiAgCWttc19mYmNvbl9mYnQgXA0KPiA+ID4g IAlrbXNfZmVuY2VfcGluX2xlYWsgXA0KPiA+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF90 aWxlZF9kaXNwbGF5LmMgYi90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jDQo+ID4gPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KPiA+ID4gaW5kZXggMDAwMDAwMDAuLmFmNjQ0NTczDQo+ID4gPiAt LS0gL2Rldi9udWxsDQo+ID4gPiArKysgYi90ZXN0cy9rbXNfZHBfdGlsZWRfZGlzcGxheS5jDQo+ ID4gPiBAQCAtMCwwICsxLDIzOSBAQA0KPiA+ID4gKy8qDQo+ID4gPiArICogQ29weXJpZ2h0IMKp IDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFBlcm1pc3Npb24g aXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmlu ZyBhDQo+ID4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3Vt ZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwNCj4gPiA+ICsgKiB0byBkZWFsIGluIHRo ZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0 aW9uDQo+ID4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsDQo+ID4gPiArICogYW5kL29yIHNlbGwgY29w aWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlDQo+ ID4gPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uczoNCj4gPiA+ICsgKg0KPiA+ID4gKyAqIFRoZSBhYm92ZSBjb3B5 cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5l eHQNCj4gPiA+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMg b3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlDQo+ID4gPiArICogU29mdHdhcmUuDQo+ID4g PiArICoNCj4gPiA+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9V VCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUg0KPiA+ID4gKyAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLA0KPiA+ID4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05J TkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTA0KPiA+ID4gKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSDQo+ID4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFD VCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcNCj4gPiA+ICsgKiBGUk9NLCBPVVQgT0YgT1Ig SU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJ TkdTDQo+ID4gPiArICogSU4gVEhFIFNPRlRXQVJFLg0KPiA+ID4gKyAqDQo+ID4gPiArICogQXV0 aG9yczoNCj4gPiA+ICsgKiAgTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxpIFByYWRlZXANCj4gPiA+ ICsgKiAgICAgIDxtYWRodW1pdGhhLnRvbGFrYW5haGFsbGkucHJhZGVlcEBpbnRlbC5jb20+DQo+ ID4gPiArICoNCj4gPiA+ICsgKiBEaXNwbGF5IFBvcnQgVGlsZWQgRGlzcGxheSBUZXN0DQo+ID4g PiArICogVGhpcyB0ZXN0IHBhcnNlcyB0aGUgdGlsZSBpbmZvcm1hdGlvbiBvZiB0aGUgY29ubmVj dG9ycyB0aGF0IGhhdmUgVElMRQ0KPiA+ID4gKyAqIHByb3BlcnR5IHNldCwgc2V0cyB1cCB0aGUg ZnJhbWVidWZmZXIgd2l0aCBjb3JyZWN0IG9mZnNldHMgY29ycmVzcG9uZGluZyB0bw0KPiA+ID4g KyAqIHRoZSB0aWxlIG9mZnNldHMgYW5kIGRvZXMgYW4gYXRvbWljIG1vZGVzZXQgd2l0aCB0d28g Q1JUQ3MgZm9yIHR3bw0KPiA+ID4gKyAqIGNvbm5lY3RvcnMuDQo+ID4gPiArICoNCj4gPiA+ICsg KiBUaGlzIHRlc3QgY3VycmVudGx5IHN1cHBvcnRzIG9ubHkgaG9yaXpvbnRhbGx5IHRpbGVkIGRp c3BsYXlzLCBpbiBsaW5lIHdpdGgNCj4gPiA+ICsgKiB0aGUgZGlzcGxheXMgc3VwcG9ydGVkIGJ5 IHRoZSBrZXJuZWwgYXQgdGhlIG1vbWVudC4NCj4gPiA+ICsgKi8NCj4gPiA+ICsNCj4gPiA+ICsj aW5jbHVkZSAiZHJtX21vZGUuaCINCj4gPiA+ICsjaW5jbHVkZSAiZHJtX2ZvdXJjYy5oIg0KPiA+ ID4gKyNpbmNsdWRlICJpZ3QuaCINCj4gPiA+ICsNCj4gPiA+ICt0eXBlZGVmIHN0cnVjdCB7DQo+ ID4gPiArICAgIGludCBkcm1fZmQ7DQo+ID4gPiArICAgIGludCBudW1faF90aWxlczsNCj4gPiA+ ICsgICAgaWd0X2Rpc3BsYXlfdCAqZGlzcGxheTsNCj4gPiA+ICsgICAgZW51bSBpZ3RfY29tbWl0 X3N0eWxlIGNvbW1pdDsNCj4gPiA+ICt9IGRhdGFfdDsNCj4gPiA+ICsNCj4gPiA+ICt0eXBlZGVm IHN0cnVjdCB7DQo+ID4gPiArICAgIGlndF9vdXRwdXRfdCAqb3V0cHV0Ow0KPiA+ID4gKyAgICBp Z3RfdGlsZV9pbmZvX3QgKnRpbGU7DQo+ID4gPiArICAgIGlndF9mYl90IGZiX3Rlc3RfcGF0dGVy bjsNCj4gPiA+ICsgICAgZHJtTW9kZUNvbm5lY3RvclB0ciBjb25uZWN0b3I7DQo+ID4gPiArICAg IGVudW0gcGlwZSBwaXBlOw0KPiA+ID4gKyAgICBlbnVtIGlndF9jb21taXRfc3R5bGUgY29tbWl0 Ow0KPiA+ID4gK30gZGF0YV9jb25uZWN0b3JfdDsNCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgaW5s aW5lIGludCBkcm1fcHJvcGVydHlfaXNfdGlsZShkcm1Nb2RlUHJvcGVydHlQdHIgcHJvcCkNCj4g PiANCj4gPiBJIHdvdWxkbid0IHBlcnNvbmFsbHkgdXNlIGBpbmxpbmVgLiBUaGUgY29tcGlsZXIg aXMgc21hcnRlciB0aGFuIGh1bWFucw0KPiA+IHRvIGRlY2lkZSB3aGV0aGVyIG9yIG5vdCBhIGZ1 bmN0aW9uIHNob3VsZCBiZSBpbmxpbmVkLg0KPiA+IA0KPiA+ID4gK3sNCj4gPiA+ICsJcmV0dXJu KHN0cmNtcChwcm9wLT5uYW1lID8gcHJvcC0+bmFtZSA6ICIiLCAiVElMRSIpPyAwIDogMSk7DQo+ ID4gDQo+ID4gU3R5bGU6IHVubmVjZXNzYXJ5IHBhcmVudGhlc2VzLCBtaXNzaW5nIHNwYWNlIGJl Zm9yZSBgP2AuDQo+ID4gDQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gK3N0YXRpYyB2b2lkIGdl dF9udW1iZXJfb2ZfaF90aWxlcyhkYXRhX3QgKmRhdGEpDQo+ID4gDQo+ID4gV2hhdCBpZiBtdWx0 aXBsZSB0aWxlcyBhcmUgY29ubmVjdGVkPyBTaG91bGRuJ3Qgd2UgdXNlIHRpbGVfZ3JvdXBfaWQ/ DQo+IA0KPiBZZXMgdGhlcmUgY291bGQgYmUgbXVsdGlwbGUgbW9uaXRvcnMgd2l0aCB0aWxlcyBz byB1c2UgdGlsZV9ncm91cF9pZCB0byBjaGVjaw0KPiB0aGF0IHRoZSB0aWxlIGJlbG9uZ3MgdG8g dGhlIHNhbWUgZ3JvdXAgYW5kIHRoZW4gdXNlIG51bV9oX3RpbGVzDQo+IA0KPiA+ID4gK3sNCj4g PiA+ICsgICAgaW50IGk7DQo+ID4gPiArICAgIGRybU1vZGVSZXMgKnJlczsNCj4gPiA+ICsgICAg ZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOw0KPiA+ID4gKyAgICBkcm1Nb2RlUHJvcGVydHlQ dHIgcHJvcDsNCj4gPiA+ICsgICAgZHJtTW9kZVByb3BlcnR5QmxvYlB0ciBibG9iOw0KPiA+ID4g KyAgICBpZ3RfdGlsZV9pbmZvX3QgdGlsZTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgaWd0X3JlcXVp cmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLT5kcm1fZmQpKTsNCj4gPiANCj4gPiBU aGlzIHNob3VsZCBwcm9iYWJseSBiZSBpZ3RfYXNzZXJ0Lg0KPiA+IA0KPiA+ID4gKyAgICBmb3Io aSA9IDA7IGkgPCByZXMtPmNvdW50X2Nvbm5lY3RvcnM7IGkrKykNCj4gPiA+ICsgICAgew0KPiA+ IA0KPiA+IFN0eWxlOiBubyBuZXdsaW5lIGJlZm9yZSBge2AgKG9ubHkgZm9yIGZ1bmN0aW9ucywg YXBwbGllcyB0byB0aGUgd2hvbGUNCj4gPiBwYXRjaCkuDQo+ID4gDQo+ID4gPiArICAgICAgICBj b25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudChkYXRhLT5kcm1fZmQsIFwNCj4g PiANCj4gPiBTdHlsZTogdW5uZWNlc3NhcnkgYFxgLg0KPiA+IA0KPiA+IFdlIGNvdWxkIGlndF9h c3NlcnQoY29ubmVjdG9yKS4NCj4gPiANCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHJlcy0+Y29ubmVjdG9yc1tpXSk7DQo+ID4gPiArDQo+ID4g PiArICAgICAgICBpZighKChjb25uZWN0b3ItPmNvbm5lY3Rpb24gPT0gRFJNX01PREVfQ09OTkVD VEVEKSAmJg0KPiA+ID4gKyAgICAgICAgICAgIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09 IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkpKQ0KPiA+ID4gKyAgICAgICAgICAgICAg ICBjb250aW51ZTsNCj4gPiANCj4gPiBTdHlsZTogd2UgY2FuIGludmVydCB0aGlzIGNvbmRpdGlv biB0byBtYWtlIGNsZWFyZXIuDQo+IA0KPiBCdXQgd291bGRudCB0aGF0IGFkZCBhZGRpdGlvbmFs IG5lc3Rpbmc/DQoNCkkgbWVhbiwgdGhpcyBjb3VsZCBiZSByZS13cml0dGVuIGFzOg0KDQogICAg aWYgKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiAhPSBEUk1fTU9ERV9DT05ORUNURUQgfHwNCiAgICAg ICAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxh eVBvcnQpDQoNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgIGZvcihpID0gMDsgaSA8IGNvbm5lY3Rv ci0+Y291bnRfcHJvcHM7IGkrKykNCj4gPiA+ICsgICAgICAgIHsNCj4gPiA+ICsgICAgICAgICAg ICBwcm9wID0gZHJtTW9kZUdldFByb3BlcnR5KGRhdGEtPmRybV9mZCwgY29ubmVjdG9yLT5wcm9w c1tpXSk7DQo+ID4gDQo+ID4gV2UgY291bGQgaWd0X2Fzc2VydChwcm9wKQ0KPiA+IA0KPiA+IFdl IG5lZWQgdG8gZnJlZSBpdCBhdCBzb21lIHBvaW50Lg0KPiA+IA0KPiA+ID4gKyAgICAgICAgICAg IGlmKCEoZHJtX3Byb3BlcnR5X2lzX3RpbGUocHJvcCkgJiYNCj4gPiANCj4gPiBTdHlsZTogbWlz c2luZyBzcGFjZSBhZnRlciBpZiBrZXl3b3JkIChhcHBsaWVzIHRvIHRoZSB3aG9sZSBwYXRjaCku DQo+ID4gDQo+ID4gPiArICAgICAgICAgICAgICAgIGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3As IERSTV9NT0RFX1BST1BfQkxPQikpKQ0KPiA+IA0KPiA+IEknZCBtb3ZlIHRoaXMgY2hlY2sgaW50 byBkcm1fcHJvcGVydHlfaXNfdGlsZS4NCj4gPiANCj4gPiA+ICsgICAgICAgICAgICAgICAgY29u dGludWU7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAgICAgYmxvYiA9IGRybU1vZGVHZXRQcm9w ZXJ0eUJsb2IoZGF0YS0+ZHJtX2ZkLCBcDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29ubmVjdG9yLT5wcm9wX3ZhbHVlc1tpXSk7DQo+ID4gPiArDQo+ ID4gPiArICAgICAgICAgICAgaWYoIWJsb2IpDQo+ID4gPiArICAgICAgICAgICAgICAgIGJyZWFr Ow0KPiA+ID4gKyAgICAgICAgICAgIGlndF9wYXJzZV9jb25uZWN0b3JfdGlsZV9ibG9iKGJsb2Is ICZ0aWxlKTsNCj4gPiA+ICsgICAgICAgICAgICBkYXRhLT5udW1faF90aWxlcyA9IHRpbGUubnVt X2hfdGlsZTsNCj4gPiA+ICsgICAgICAgICAgICBicmVhazsNCj4gPiA+ICsgICAgICAgIH0NCj4g PiA+ICsgICAgfQ0KPiA+ID4gK30NCj4gPiA+ICsNCj4gPiA+ICtzdGF0aWMgaW50IHNldF90ZXN0 X3BhdHRlcm5fZmIoZGF0YV90ICpkYXRhLCBkYXRhX2Nvbm5lY3Rvcl90ICpjb25uX2RhdGEpDQo+ ID4gPiArew0KPiA+ID4gKyAgICBpbnQgaTsNCj4gPiA+ICsgICAgaW50IGNvdW50ID0gMDsNCj4g PiA+ICsgICAgYm9vbCBpc190aWxlID0gZmFsc2U7DQo+ID4gPiArICAgIGVudW0gcGlwZSBwaXBl Ow0KPiA+ID4gKyAgICBpZ3RfdGlsZV9pbmZvX3QgdGlsZTsNCj4gPiA+ICsgICAgaWd0X291dHB1 dF90ICpvdXRwdXQ7DQo+ID4gPiArICAgIGlndF9wbGFuZV90ICpwcmltYXJ5Ow0KPiA+ID4gKyAg ICBkcm1Nb2RlUHJvcGVydHlQdHIgcHJvcDsNCj4gPiA+ICsgICAgZHJtTW9kZVByb3BlcnR5Qmxv YlB0ciBibG9iOw0KPiA+ID4gKw0KPiA+ID4gKyAgICBmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0 KGRhdGEtPmRpc3BsYXksIG91dHB1dCkNCj4gPiA+ICsgICAgew0KPiA+ID4gKyAgICAgICAgaXNf dGlsZSA9IGZhbHNlOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgY29ubl9kYXRhW2NvdW50XS5j b25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29ubmVjdG9yKGRhdGEtPmRpc3BsYXktPmRybV9mZCwgXA0K PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIG91dHB1dC0+aWQpOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgaWYoIShjb25uX2Rh dGFbY291bnRdLmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0NCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQpKQ0KPiA+ID4gKyAg ICAgICAgICAgIGNvbnRpbnVlOw0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgLyogUGFyc2UgdGhy b3VnaCBlYWNoIGNvbm5lY3RvciBwcm9wZXJ0eSAqLw0KPiA+ID4gKyAgICAgICAgZm9yKGkgPSAw OyBpIDwgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3ItPmNvdW50X3Byb3BzOyBpKyspDQo+ID4g PiArICAgICAgICB7DQo+ID4gPiArICAgICAgICAgICAgcHJvcCA9IGRybU1vZGVHZXRQcm9wZXJ0 eShkYXRhLT5kaXNwbGF5LT5kcm1fZmQsIFwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0uY29ubmVjdG9yLT5wcm9wc1tpXSk7DQo+ ID4gPiArDQo+ID4gPiArICAgICAgICAgICAgaWYoISgoZHJtX3Byb3BlcnR5X2lzX3RpbGUocHJv cCkgJiYNCj4gPiA+ICsgICAgICAgICAgICAgICAgZHJtX3Byb3BlcnR5X3R5cGVfaXMocHJvcCwg RFJNX01PREVfUFJPUF9CTE9CKSkpKQ0KPiA+ID4gKyAgICAgICAgICAgICAgICBjb250aW51ZTsN Cj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICBibG9iID0gZHJtTW9kZUdldFByb3BlcnR5Qmxv YihkYXRhLT5kaXNwbGF5LT5kcm1fZmQsIFwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3ItPnByb3BfdmFsdWVzW2ldKTsNCj4gPiA+ ICsNCj4gPiA+ICsgICAgICAgICAgICBpZighYmxvYikNCj4gPiA+ICsgICAgICAgICAgICAgICAg YnJlYWs7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAgICAgaWd0X3BhcnNlX2Nvbm5lY3Rvcl90 aWxlX2Jsb2IoYmxvYiwgJnRpbGUpOw0KPiA+ID4gKyAgICAgICAgICAgIGNvbm5fZGF0YVtjb3Vu dF0udGlsZSA9ICZ0aWxlOw0KPiA+ID4gKyAgICAgICAgICAgIGlzX3RpbGUgPSB0cnVlOw0KPiA+ ID4gKyAgICAgICAgICAgIGJyZWFrOw0KPiA+ID4gKyAgICAgICAgfQ0KPiA+IA0KPiA+IEkgZmVl bCBsaWtlIHRoaXMgd2hvbGUgYmxvY2sgYWJvdmUgaXMgZHVwbGljYXRlZC4gQ291bGQgYmUgZXh0 cmFjdGVkDQo+ID4gaW50byBhIGZ1bmN0aW9uLCBlLmcuDQo+ID4gDQo+ID4gICAgIGJvb2wgY29u bmVjdG9yX2dldF90aWxlKGRybU1vZGVDb25uZWN0b3JSZXMgKmNvbm4sIGlndF90aWxlX2luZm9f dCAqdGlsZV9pbmZvKQ0KPiA+IA0KPiA+ID4gKyAgICAgICAgaWYoIWlzX3RpbGUpDQo+ID4gPiAr ICAgICAgICAgICAgY29udGludWU7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICBvdXRwdXQgPSBp Z3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9yKGRhdGEtPmRpc3BsYXksIFwNCj4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25u ZWN0b3IpOw0KPiA+IA0KPiA+IFN0eWxlOiB1bm5lY2Vzc2FyeSBgXGAuIEFwcGxpZXMgdG8gdGhl IHdob2xlIHBhdGNoLg0KPiA+IA0KPiA+ID4gKw0KPiA+ID4gKyAgICAgICAgZm9yX2VhY2hfcGlw ZShkYXRhLT5kaXNwbGF5LCBwaXBlKQ0KPiA+ID4gKyAgICAgICAgew0KPiA+ID4gKyAgICAgICAg ICAgIGlndF9kZWJ1ZygiQ3VycmVudCBQSVBFIGlzICVkXG4iLCBwaXBlKTsNCj4gPiA+ICsNCj4g PiA+ICsgICAgICAgICAgICBpZigoY291bnQgPiAwKSAmJiAocGlwZSA9PSBjb25uX2RhdGFbY291 bnQtMV0ucGlwZSkpDQo+ID4gPiArICAgICAgICAgICAgICAgIGNvbnRpbnVlOw0KPiA+IA0KPiA+ IFN0eWxlOiB1bm5lY2Vzc2FyeSBwYXJlbnRoZXNlcy4NCj4gPiANCj4gPiA+ICsgICAgICAgICAg ICBpZihpZ3RfcGlwZV9jb25uZWN0b3JfdmFsaWQocGlwZSwgb3V0cHV0KSkgew0KPiA+ID4gKyAg ICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnBpcGUgPSBwaXBlOw0KPiA+ID4gKyAgICAg ICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLm91dHB1dCA9IG91dHB1dDsNCj4gPiA+ICsNCj4g PiA+ICsgICAgICAgICAgICAgICAgaWd0X291dHB1dF9zZXRfcGlwZShjb25uX2RhdGFbY291bnRd Lm91dHB1dCwgXA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bm5fZGF0YVtjb3VudF0ucGlwZSk7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAgICAgICAgIGln dF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsXA0KPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChjb25uX2RhdGFbY291bnRdLnRpbGUtPnRpbGVfaF9zaXpl ICpcDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtPm51 bV9oX3RpbGVzKSxcDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV92X3NpemUsXA0KPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBEUk1fRk9STUFUX1hCR1I4ODg4LFwNCj4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0Rf Tk9ORSxcDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb25u X2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybik7DQo+ID4gPiArDQo+ID4gPiArICAgICAgICAg ICAgICAgIHByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGNvbm5fZGF0YVtjb3Vu dF0ub3V0cHV0LFwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7DQo+ID4gPiArDQo+ID4gPiAr ICAgICAgICAgICAgICAgIGlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmNvbm5fZGF0YVtjb3Vu dF0uZmJfdGVzdF9wYXR0ZXJuKTsNCj4gPiA+ICsNCj4gPiA+ICsgICAgICAgICAgICAgICAgaWd0 X2ZiX3NldF9zaXplKCZjb25uX2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybiwgcHJpbWFyeSxc DQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRd LnRpbGUtPnRpbGVfaF9zaXplLFwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV92X3NpemUpOw0KPiA+ID4gKw0KPiA+ID4g KyAgICAgICAgICAgICAgICBpZ3RfZmJfc2V0X3Bvc2l0aW9uKCZjb25uX2RhdGFbY291bnRdLmZi X3Rlc3RfcGF0dGVybiwgXA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHByaW1hcnksXA0KPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25uX2RhdGFbY291bnRdLnRpbGUtPnRpbGVfaF9zaXplICpcDQo+ID4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWxlLT50aWxlX2hf bG9jKSwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29ubl9k YXRhW2NvdW50XS50aWxlLT50aWxlX3Zfc2l6ZSAqXA0KPiA+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV92X2xvYykpOw0K PiA+ID4gKw0KPiA+ID4gKyAgICAgICAgICAgICAgICBpZ3RfcGxhbmVfc2V0X3NpemUocHJpbWFy eSxcDQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFb Y291bnRdLnRpbGUtPnRpbGVfaF9zaXplLFwNCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV92X3NpemUpOw0KPiA+ID4g Kw0KPiA+ID4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gPiA+ICsgICAgICAgICAgICB9DQo+ ID4gPiArICAgICAgICB9DQo+ID4gPiArICAgICAgICBjb3VudCsrOw0KPiA+ID4gKyAgICB9DQo+ ID4gPiArDQo+ID4gPiArICAgIHJldHVybiBjb3VudDsNCj4gPiA+ICt9DQo+ID4gPiArDQo+ID4g PiAraWd0X21haW4NCj4gPiA+ICt7DQo+ID4gPiArICAgIGlndF9kaXNwbGF5X3QgZGlzcGxheTsN Cj4gPiA+ICsgICAgZGF0YV90IGRhdGEgPSB7fTsNCj4gPiA+ICsgICAgZGF0YV9jb25uZWN0b3Jf dCAqY29ubl9kYXRhOw0KPiA+ID4gKw0KPiA+ID4gKyAgICBpZ3RfZml4dHVyZSB7DQo+ID4gPiAr ICAgICAgICBkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0FOWSk7 DQo+ID4gPiArICAgICAgICBrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7DQo+ID4gPiAr ICAgICAgICBpZ3RfZGlzcGxheV9yZXF1aXJlKCZkaXNwbGF5LCBkYXRhLmRybV9mZCk7DQo+ID4g PiArICAgICAgICBkYXRhLmRpc3BsYXkgPSAmZGlzcGxheTsNCj4gPiA+ICsNCj4gPiA+ICsgICAg ICAgIGdldF9udW1iZXJfb2ZfaF90aWxlcygmZGF0YSk7DQo+ID4gPiArICAgICAgICBpZ3RfZGVi dWcoIk51bWJlciBvZiBIb3Jpem9udGFsIFRpbGVzOiAlZFxuIiwgZGF0YS5udW1faF90aWxlcyk7 DQo+ID4gPiArICAgICAgICBkYXRhLmNvbW1pdCA9IGRhdGEuZGlzcGxheS0+aXNfYXRvbWljID8g Q09NTUlUX0FUT01JQyA6IENPTU1JVF9MRUdBQ1k7DQo+ID4gPiArICAgIH0NCj4gPiA+ICsNCj4g PiA+ICsgICAgaWYoZGF0YS5udW1faF90aWxlcyA+IDApDQo+ID4gPiArICAgICAgICBjb25uX2Rh dGEgPSAoZGF0YV9jb25uZWN0b3JfdCAqKW1hbGxvYyhkYXRhLm51bV9oX3RpbGVzICogXA0KPiA+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv ZihkYXRhX2Nvbm5lY3Rvcl90KSk7DQo+ID4gDQo+ID4gTm8gbmVlZCBmb3IgdGhpcyBjYXN0LCB1 bm5lY2Vzc2FyeSBgXGAuDQo+ID4gDQo+ID4gPiArICAgIGlndF9hc3NlcnQoY29ubl9kYXRhKTsN Cj4gPiANCj4gPiBUaGlzIGNoZWNrIHJlYWRzIGdhcmJhZ2UgZnJvbSB0aGUgc3RhY2sgaWYgZGF0 YS5udW1faF90aWxlcyA9PSAwLg0KPiANCj4gVGhpcyBjaGVjayBzaG91bGQgcG9zc2libHkgYmUg aW5zaWRlIHRoZSBzYW1lIGlmDQo+IA0KPiA+ID4gKyAgICBpZ3Rfc3VidGVzdF9mKCJiYXNpYy10 ZXN0LXBhdHRlcm4iKSB7DQo+ID4gDQo+ID4gTm8gbmVlZCBmb3IgdGhlIF9mIHN1ZmZpeC4NCj4g PiANCj4gPiBUaGlzIHN1YnRlc3QgaXMgbWlzc2luZyBhIGRlc2NyaXB0aW9uLiBDb3VsZCB5b3Ug YWRkIG9uZT8gRm9yIG1vcmUNCj4gPiBpbmZvcm1hdGlvbiwgc2VlOg0KPiA+IGh0dHBzOi8vZHJt LnBhZ2VzLmZyZWVkZXNrdG9wLm9yZy9pZ3QtZ3B1LXRvb2xzL2lndC1ncHUtdG9vbHMtQ29yZS5o dG1sI2lndC1kZXNjcmliZQ0KPiA+IA0KPiA+ID4gKyAgICAgICAgaWd0X3NraXBfb24oIWRhdGEu bnVtX2hfdGlsZXMpOw0KPiA+ID4gKyAgICAgICAgc2V0X3Rlc3RfcGF0dGVybl9mYigmZGF0YSwg Y29ubl9kYXRhKTsNCj4gPiA+ICsgICAgICAgIGlndF9kaXNwbGF5X2NvbW1pdDIoZGF0YS5kaXNw bGF5LCBkYXRhLmNvbW1pdCk7DQo+ID4gDQo+ID4gSSdtIG5vdCBzdXJlIEkgdW5kZXJzdGFuZCB3 aGF0IHRoaXMgdGVzdCBjaGVja3MuIEl0IGRvZXMgYSBjb21taXQgb24NCj4gPiBhbGwgdGlsZWQg Y29ubmVjdG9ycywgYnV0IGRvZXNuJ3QgY2hlY2sgYW55dGhpbmcgYWZ0ZXJ3YXJkcy4gTWF5YmUg aXQNCj4gPiBzaG91bGQgY2hlY2sgdGhlIHBhZ2VmbGlwIHNlcmlhbCBhbmQgdGltaW5ncz8NCj4g DQo+IFRoaXMgaXMgc28gZmFyIGEgbWFudWFsIHRlc3Qgd2hlcmUgd2UganVzdCBsb29rIGF0IHRo ZSBwYXR0ZXJuIGFuZCBtYWtlIHN1cmUgbm8gYXJ0aWZhY3RzDQo+IGFuZCBhdXRvIHRlc3Rpbmcg anVzdCBtYWtlIHN1cmUgdGhlIGNvbW1pdCBkaWQgbm90IGZhaWwsIGFueSBiZXR0ZXIgaWRlYSB0 byBjaGVjayBpZiB0aGUNCj4gcGFnZV9mbGlwIHRpbWVvdXRzIGRpZG50IG9jY3VyIG9yIG5vdCBz dXJlIGlmIHdlIGNhbiBkbyBjcmMgY2hlY2tzIHRvIGVuc3VyZSBubyBhcnRpZmFjdHM/DQo+IEFu eSBpZGVhcy9zdWdnZXN0aW9ucz8NCg0KVG8gYmUgaG9uZXN0IEknbSBub3QgYSBmYW4gb2YgbWFu dWFsIHRlc3RpbmcuDQoNCkFzIEkgdW5kZXJzdGFuZCBpdCwgdGlsZWQgZGlzcGxheXMgbXVzdCBi ZSB1cGRhdGVkIGluIHN5bmMgc28gdGhhdCB5b3UNCmRvbid0IGdldCB0ZWFyaW5nLiBJZiBvbmUg ZGlzcGxheSBpcyBwYWdlLWZsaXBwZWQgYmVmb3JlIHRoZSBvdGhlciwNCnRoZXJlIHdpbGwgYmUg dGVhcmluZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSB0aWxlZCBzY3JlZW4uIEFtIEkgcmVhZGluZw0K dGhlIGNvbW1pdCBtZXNzYWdlIGNvcnJlY3RseT8NCg0KSWYgc28sIG1heWJlIHdlIGNhbiBjaGVj ayB0aGUgcGFnZS1mbGlwIHRpbWluZ3MgYW5kIG1ha2Ugc3VyZSB0aGV5IGFyZQ0KZXF1YWw/DQoN CkEgQ1JDIGNoZWNrIG1pZ2h0IGJlIGEgZ29vZCBpZGVhIHRvbywgdG8gbWFrZSBzdXJlIGJhbmR3 aWR0aCBpc24ndCBhbg0KaXNzdWUuDQoNCkNDJ2luZyBNYXJ0aW4gaW4gY2FzZSBoZSBoYXMgYmV0 dGVyIGlkZWFzLg0KDQo+IE1hbmFzaQ0KPiANCj4gPiA+ICsgICAgfQ0KPiA+ID4gKw0KPiA+ID4g KyAgICBpZ3RfZml4dHVyZSB7DQo+ID4gPiArICAgICAgICBpZihkYXRhLm51bV9oX3RpbGVzID4g MCkNCj4gPiA+ICsgICAgICAgICAgICBmcmVlKGNvbm5fZGF0YSk7DQo+ID4gDQo+ID4gSWYgY29u bl9kYXRhIHdhcyBpbml0aWFsaXplZCB0byBOVUxMLCBubyBuZWVkIGZvciB0aGUgY2hlY2ssIGJl Y2F1c2UNCj4gPiBmcmVlKE5VTEwpIGlzIGEgbm8tb3AuDQo+ID4gDQo+ID4gPiArICAgICAgICBr bXN0ZXN0X3Jlc3RvcmVfdnRfbW9kZSgpOw0KPiA+ID4gKyAgICAgICAgaWd0X2Rpc3BsYXlfZmlu aShkYXRhLmRpc3BsYXkpOw0KPiA+ID4gKyAgICB9DQo+ID4gPiArfQ0KPiA+ID4gZGlmZiAtLWdp dCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQNCj4gPiA+IGluZGV4IDM0 YTc0MDI1Li42YTZlOWNlOSAxMDA2NDQNCj4gPiA+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkDQo+ ID4gPiArKysgYi90ZXN0cy9tZXNvbi5idWlsZA0KPiA+ID4gQEAgLTI1LDYgKzI1LDcgQEAgdGVz dF9wcm9ncyA9IFsNCj4gPiA+ICAJJ2ttc19jdXJzb3JfZWRnZV93YWxrJywNCj4gPiA+ICAJJ2tt c19jdXJzb3JfbGVnYWN5JywNCj4gPiA+ICAJJ2ttc19kcF9kc2MnLA0KPiA+ID4gKwkna21zX2Rw X3RpbGVkX2Rpc3BsYXknLA0KPiA+ID4gIAkna21zX2RyYXdfY3JjJywNCj4gPiA+ICAJJ2ttc19m YmNvbl9mYnQnLA0KPiA+ID4gIAkna21zX2ZlbmNlX3Bpbl9sZWFrJywNCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==