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 AAF316E2FF for ; Thu, 18 Jul 2019 06:43:51 +0000 (UTC) From: "Ser, Simon" Date: Thu, 18 Jul 2019 06:43:48 +0000 Message-ID: References: <20190717180257.32314-1-madhumitha.tolakanahalli.pradeep@intel.com> In-Reply-To: <20190717180257.32314-1-madhumitha.tolakanahalli.pradeep@intel.com> Content-Language: en-US Content-ID: 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: "igt-dev@lists.freedesktop.org" , "Tolakanahalli Pradeep, Madhumitha" Cc: "Navare, Manasi D" , "Latvala, Petri" List-ID: VGhhbmtzIGZvciB5b3VyIHBhdGNoISBIZXJlIGFyZSBzb21lIGNvbW1lbnRzLg0KDQpTdHlsZTog d2UgdXNlIHRhYnMgZm9yIGluZGVudGF0aW9uLCBub3Qgc3BhY2VzLg0KDQpPbiBXZWQsIDIwMTkt MDctMTcgYXQgMTE6MDIgLTA3MDAsIE1hZGh1bWl0aGEgVG9sYWthbmFoYWxsaSBQcmFkZWVwIHdy b3RlOg0KPiBUaGlzIHRlc3QgdmFsaWRhdGVzIHRoZSB0aWxlZCBEUCBkaXNwbGF5cyB0byBkaXNw bGF5IGEgdGVzdCBwYXR0ZXJuIHNlYW1sZXNzbHkNCj4gYWNyb3NzIHRoZSB0d28gdGlsZXMuIEl0 IHZhbGlkYXRlcyB0aGUgdHJhbnNjb2RlciBwb3J0IHN5bmMgZmVhdHVyZSBvbiBpOTE1IHRvDQo+ IGdldCBhIHRlYXJmcmVlIHRpbGVkIGRpc3BsYXkgb3V0cHV0Lg0KPiANCj4gUmVsYXRlZCBrZXJu ZWwgd29yayBwYXRjaGVzIC0+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9zZXJp ZXMvNTk4MzcvI3JldjQuDQo+IFRoaXMgdGVzdCBjYW4gZXZlbnR1YWxseSBiZSBleHRlbmRlZCB0 byBjb3ZlciB0aWxlZCBkaXNwbGF5IHN1cHBvcnQgb24gb3RoZXIgY29ubmVjdG9yDQo+IHR5cGVz Lg0KPiANCj4gQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+DQo+ IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4NCj4gU2lnbmVkLW9m Zi1ieTogTWFkaHVtaXRoYSBUb2xha2FuYWhhbGxpIFByYWRlZXAgPG1hZGh1bWl0aGEudG9sYWth bmFoYWxsaS5wcmFkZWVwQGludGVsLmNvbT4NCg0KTmV4dCB0aW1lLCBjYW4geW91IHNlbmQgYm90 aCBwYXRjaGVzIGluIG9uZSBnbz8gSXQncyBub3QgcG9zc2libGUgdG8NCmNoZWNrIHdoZXRoZXIg dGhpcyB0ZXN0IGFjdHVhbGx5IHBhc3NlcyBDSSwgc2luY2UgYnVpbGQgZmFpbHMgKHNlZSB0aGUN CnR3byBhdXRvbWF0ZWQgZmFpbHVyZSByZXBsaWVzKS4NCg0KVG8gbGVhcm4gaG93IHRvIHVzZSBn aXQtc2VuZC1lbWFpbCwgeW91IGNhbiByZWFkOg0KaHR0cHM6Ly9naXQtc2VuZC1lbWFpbC5pby8N Cg0KPiAtLS0NCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgICAgICAgfCAgIDEgKw0KPiAgdGVz dHMva21zX2RwX3RpbGVkX2Rpc3BsYXkuYyB8IDIzOSArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKw0KPiAgdGVzdHMvbWVzb24uYnVpbGQgICAgICAgICAgICB8ICAgMSArDQo+ICAz IGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMva21zX2RwX3RpbGVkX2Rpc3BsYXkuYw0KPiANCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL01h a2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+IGluZGV4IDI1MGRiZDMz Li5lOTM3Mzk0MSAxMDA2NDQNCj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcw0KPiArKysg Yi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzDQo+IEBAIC00MCw2ICs0MCw3IEBAIFRFU1RTX3Byb2dz ID0gXA0KPiAgCWttc19jdXJzb3JfZWRnZV93YWxrIFwNCj4gIAlrbXNfY3Vyc29yX2xlZ2FjeSBc DQo+ICAJa21zX2RwX2RzYyBcDQo+ICsJa21zX2RwX3RpbGVkX2Rpc3BsYXkgXA0KPiAgCWttc19k cmF3X2NyYyBcDQo+ICAJa21zX2ZiY29uX2ZidCBcDQo+ICAJa21zX2ZlbmNlX3Bpbl9sZWFrIFwN Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF90aWxlZF9kaXNwbGF5LmMgYi90ZXN0cy9rbXNf ZHBfdGlsZWRfZGlzcGxheS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4IDAwMDAw MDAwLi5hZjY0NDU3Mw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL3Rlc3RzL2ttc19kcF90aWxl ZF9kaXNwbGF5LmMNCj4gQEAgLTAsMCArMSwyMzkgQEANCj4gKy8qDQo+ICsgKiBDb3B5cmlnaHQg wqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbg0KPiArICoNCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVy ZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhDQo+ ICsgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBm aWxlcyAodGhlICJTb2Z0d2FyZSIpLA0KPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0 aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbg0KPiArICogdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsDQo+ICsgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUNCj4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5p c2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6DQo+ICsg Kg0KPiArICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2UgKGluY2x1ZGluZyB0aGUgbmV4dA0KPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQ0KPiArICog U29mdHdhcmUuDQo+ICsgKg0KPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIs IFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1INCj4gKyAqIElNUExJRUQs IElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB QklMSVRZLA0KPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklO RlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxMDQo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZ UklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUg0K PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcNCj4gKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9O IFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MNCj4gKyAqIElO IFRIRSBTT0ZUV0FSRS4NCj4gKyAqDQo+ICsgKiBBdXRob3JzOg0KPiArICogIE1hZGh1bWl0aGEg VG9sYWthbmFoYWxsaSBQcmFkZWVwDQo+ICsgKiAgICAgIDxtYWRodW1pdGhhLnRvbGFrYW5haGFs bGkucHJhZGVlcEBpbnRlbC5jb20+DQo+ICsgKg0KPiArICogRGlzcGxheSBQb3J0IFRpbGVkIERp c3BsYXkgVGVzdA0KPiArICogVGhpcyB0ZXN0IHBhcnNlcyB0aGUgdGlsZSBpbmZvcm1hdGlvbiBv ZiB0aGUgY29ubmVjdG9ycyB0aGF0IGhhdmUgVElMRQ0KPiArICogcHJvcGVydHkgc2V0LCBzZXRz IHVwIHRoZSBmcmFtZWJ1ZmZlciB3aXRoIGNvcnJlY3Qgb2Zmc2V0cyBjb3JyZXNwb25kaW5nIHRv DQo+ICsgKiB0aGUgdGlsZSBvZmZzZXRzIGFuZCBkb2VzIGFuIGF0b21pYyBtb2Rlc2V0IHdpdGgg dHdvIENSVENzIGZvciB0d28NCj4gKyAqIGNvbm5lY3RvcnMuDQo+ICsgKg0KPiArICogVGhpcyB0 ZXN0IGN1cnJlbnRseSBzdXBwb3J0cyBvbmx5IGhvcml6b250YWxseSB0aWxlZCBkaXNwbGF5cywg aW4gbGluZSB3aXRoDQo+ICsgKiB0aGUgZGlzcGxheXMgc3VwcG9ydGVkIGJ5IHRoZSBrZXJuZWwg YXQgdGhlIG1vbWVudC4NCj4gKyAqLw0KPiArDQo+ICsjaW5jbHVkZSAiZHJtX21vZGUuaCINCj4g KyNpbmNsdWRlICJkcm1fZm91cmNjLmgiDQo+ICsjaW5jbHVkZSAiaWd0LmgiDQo+ICsNCj4gK3R5 cGVkZWYgc3RydWN0IHsNCj4gKyAgICBpbnQgZHJtX2ZkOw0KPiArICAgIGludCBudW1faF90aWxl czsNCj4gKyAgICBpZ3RfZGlzcGxheV90ICpkaXNwbGF5Ow0KPiArICAgIGVudW0gaWd0X2NvbW1p dF9zdHlsZSBjb21taXQ7DQo+ICt9IGRhdGFfdDsNCj4gKw0KPiArdHlwZWRlZiBzdHJ1Y3Qgew0K PiArICAgIGlndF9vdXRwdXRfdCAqb3V0cHV0Ow0KPiArICAgIGlndF90aWxlX2luZm9fdCAqdGls ZTsNCj4gKyAgICBpZ3RfZmJfdCBmYl90ZXN0X3BhdHRlcm47DQo+ICsgICAgZHJtTW9kZUNvbm5l Y3RvclB0ciBjb25uZWN0b3I7DQo+ICsgICAgZW51bSBwaXBlIHBpcGU7DQo+ICsgICAgZW51bSBp Z3RfY29tbWl0X3N0eWxlIGNvbW1pdDsNCj4gK30gZGF0YV9jb25uZWN0b3JfdDsNCj4gKw0KPiAr c3RhdGljIGlubGluZSBpbnQgZHJtX3Byb3BlcnR5X2lzX3RpbGUoZHJtTW9kZVByb3BlcnR5UHRy IHByb3ApDQoNCkkgd291bGRuJ3QgcGVyc29uYWxseSB1c2UgYGlubGluZWAuIFRoZSBjb21waWxl ciBpcyBzbWFydGVyIHRoYW4gaHVtYW5zDQp0byBkZWNpZGUgd2hldGhlciBvciBub3QgYSBmdW5j dGlvbiBzaG91bGQgYmUgaW5saW5lZC4NCg0KPiArew0KPiArCXJldHVybihzdHJjbXAocHJvcC0+ bmFtZSA/IHByb3AtPm5hbWUgOiAiIiwgIlRJTEUiKT8gMCA6IDEpOw0KDQpTdHlsZTogdW5uZWNl c3NhcnkgcGFyZW50aGVzZXMsIG1pc3Npbmcgc3BhY2UgYmVmb3JlIGA/YC4NCg0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZCBnZXRfbnVtYmVyX29mX2hfdGlsZXMoZGF0YV90ICpkYXRhKQ0KDQpX aGF0IGlmIG11bHRpcGxlIHRpbGVzIGFyZSBjb25uZWN0ZWQ/IFNob3VsZG4ndCB3ZSB1c2UgdGls ZV9ncm91cF9pZD8NCg0KPiArew0KPiArICAgIGludCBpOw0KPiArICAgIGRybU1vZGVSZXMgKnJl czsNCj4gKyAgICBkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7DQo+ICsgICAgZHJtTW9kZVBy b3BlcnR5UHRyIHByb3A7DQo+ICsgICAgZHJtTW9kZVByb3BlcnR5QmxvYlB0ciBibG9iOw0KPiAr ICAgIGlndF90aWxlX2luZm9fdCB0aWxlOw0KPiArDQo+ICsgICAgaWd0X3JlcXVpcmUocmVzID0g ZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLT5kcm1fZmQpKTsNCg0KVGhpcyBzaG91bGQgcHJvYmFi bHkgYmUgaWd0X2Fzc2VydC4NCg0KPiArICAgIGZvcihpID0gMDsgaSA8IHJlcy0+Y291bnRfY29u bmVjdG9yczsgaSsrKQ0KPiArICAgIHsNCg0KU3R5bGU6IG5vIG5ld2xpbmUgYmVmb3JlIGB7YCAo b25seSBmb3IgZnVuY3Rpb25zLCBhcHBsaWVzIHRvIHRoZSB3aG9sZQ0KcGF0Y2gpLg0KDQo+ICsg ICAgICAgIGNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JDdXJyZW50KGRhdGEtPmRybV9m ZCwgXA0KDQpTdHlsZTogdW5uZWNlc3NhcnkgYFxgLg0KDQpXZSBjb3VsZCBpZ3RfYXNzZXJ0KGNv bm5lY3RvcikuDQoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVzLT5jb25uZWN0b3JzW2ldKTsNCj4gKw0KPiArICAgICAgICBpZighKChjb25uZWN0 b3ItPmNvbm5lY3Rpb24gPT0gRFJNX01PREVfQ09OTkVDVEVEKSAmJg0KPiArICAgICAgICAgICAg KGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQ b3J0KSkpDQo+ICsgICAgICAgICAgICAgICAgY29udGludWU7DQoNClN0eWxlOiB3ZSBjYW4gaW52 ZXJ0IHRoaXMgY29uZGl0aW9uIHRvIG1ha2UgY2xlYXJlci4NCg0KPiArDQo+ICsgICAgICAgIGZv cihpID0gMDsgaSA8IGNvbm5lY3Rvci0+Y291bnRfcHJvcHM7IGkrKykNCj4gKyAgICAgICAgew0K PiArICAgICAgICAgICAgcHJvcCA9IGRybU1vZGVHZXRQcm9wZXJ0eShkYXRhLT5kcm1fZmQsIGNv bm5lY3Rvci0+cHJvcHNbaV0pOw0KDQpXZSBjb3VsZCBpZ3RfYXNzZXJ0KHByb3ApDQoNCldlIG5l ZWQgdG8gZnJlZSBpdCBhdCBzb21lIHBvaW50Lg0KDQo+ICsgICAgICAgICAgICBpZighKGRybV9w cm9wZXJ0eV9pc190aWxlKHByb3ApICYmDQoNClN0eWxlOiBtaXNzaW5nIHNwYWNlIGFmdGVyIGlm IGtleXdvcmQgKGFwcGxpZXMgdG8gdGhlIHdob2xlIHBhdGNoKS4NCg0KPiArICAgICAgICAgICAg ICAgIGRybV9wcm9wZXJ0eV90eXBlX2lzKHByb3AsIERSTV9NT0RFX1BST1BfQkxPQikpKQ0KDQpJ J2QgbW92ZSB0aGlzIGNoZWNrIGludG8gZHJtX3Byb3BlcnR5X2lzX3RpbGUuDQoNCj4gKyAgICAg ICAgICAgICAgICBjb250aW51ZTsNCj4gKw0KPiArICAgICAgICAgICAgYmxvYiA9IGRybU1vZGVH ZXRQcm9wZXJ0eUJsb2IoZGF0YS0+ZHJtX2ZkLCBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb25uZWN0b3ItPnByb3BfdmFsdWVzW2ldKTsNCj4gKw0KPiAr ICAgICAgICAgICAgaWYoIWJsb2IpDQo+ICsgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAg ICAgICAgICBpZ3RfcGFyc2VfY29ubmVjdG9yX3RpbGVfYmxvYihibG9iLCAmdGlsZSk7DQo+ICsg ICAgICAgICAgICBkYXRhLT5udW1faF90aWxlcyA9IHRpbGUubnVtX2hfdGlsZTsNCj4gKyAgICAg ICAgICAgIGJyZWFrOw0KPiArICAgICAgICB9DQo+ICsgICAgfQ0KPiArfQ0KPiArDQo+ICtzdGF0 aWMgaW50IHNldF90ZXN0X3BhdHRlcm5fZmIoZGF0YV90ICpkYXRhLCBkYXRhX2Nvbm5lY3Rvcl90 ICpjb25uX2RhdGEpDQo+ICt7DQo+ICsgICAgaW50IGk7DQo+ICsgICAgaW50IGNvdW50ID0gMDsN Cj4gKyAgICBib29sIGlzX3RpbGUgPSBmYWxzZTsNCj4gKyAgICBlbnVtIHBpcGUgcGlwZTsNCj4g KyAgICBpZ3RfdGlsZV9pbmZvX3QgdGlsZTsNCj4gKyAgICBpZ3Rfb3V0cHV0X3QgKm91dHB1dDsN Cj4gKyAgICBpZ3RfcGxhbmVfdCAqcHJpbWFyeTsNCj4gKyAgICBkcm1Nb2RlUHJvcGVydHlQdHIg cHJvcDsNCj4gKyAgICBkcm1Nb2RlUHJvcGVydHlCbG9iUHRyIGJsb2I7DQo+ICsNCj4gKyAgICBm b3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KGRhdGEtPmRpc3BsYXksIG91dHB1dCkNCj4gKyAgICB7 DQo+ICsgICAgICAgIGlzX3RpbGUgPSBmYWxzZTsNCj4gKw0KPiArICAgICAgICBjb25uX2RhdGFb Y291bnRdLmNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3IoZGF0YS0+ZGlzcGxheS0+ZHJt X2ZkLCBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBvdXRwdXQtPmlkKTsNCj4gKw0KPiArICAgICAgICBpZighKGNvbm5fZGF0YVtj b3VudF0uY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PQ0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0KSkNCj4gKyAgICAgICAgICAgIGNv bnRpbnVlOw0KPiArDQo+ICsgICAgICAgIC8qIFBhcnNlIHRocm91Z2ggZWFjaCBjb25uZWN0b3Ig cHJvcGVydHkgKi8NCj4gKyAgICAgICAgZm9yKGkgPSAwOyBpIDwgY29ubl9kYXRhW2NvdW50XS5j b25uZWN0b3ItPmNvdW50X3Byb3BzOyBpKyspDQo+ICsgICAgICAgIHsNCj4gKyAgICAgICAgICAg IHByb3AgPSBkcm1Nb2RlR2V0UHJvcGVydHkoZGF0YS0+ZGlzcGxheS0+ZHJtX2ZkLCBcDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0uY29u bmVjdG9yLT5wcm9wc1tpXSk7DQo+ICsNCj4gKyAgICAgICAgICAgIGlmKCEoKGRybV9wcm9wZXJ0 eV9pc190aWxlKHByb3ApICYmDQo+ICsgICAgICAgICAgICAgICAgZHJtX3Byb3BlcnR5X3R5cGVf aXMocHJvcCwgRFJNX01PREVfUFJPUF9CTE9CKSkpKQ0KPiArICAgICAgICAgICAgICAgIGNvbnRp bnVlOw0KPiArDQo+ICsgICAgICAgICAgICBibG9iID0gZHJtTW9kZUdldFByb3BlcnR5QmxvYihk YXRhLT5kaXNwbGF5LT5kcm1fZmQsIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b25uX2RhdGFbY291bnRdLmNvbm5lY3Rvci0+cHJvcF92YWx1ZXNbaV0pOw0KPiArDQo+ICsgICAg ICAgICAgICBpZighYmxvYikNCj4gKyAgICAgICAgICAgICAgICBicmVhazsNCj4gKw0KPiArICAg ICAgICAgICAgaWd0X3BhcnNlX2Nvbm5lY3Rvcl90aWxlX2Jsb2IoYmxvYiwgJnRpbGUpOw0KPiAr ICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50XS50aWxlID0gJnRpbGU7DQo+ICsgICAgICAgICAg ICBpc190aWxlID0gdHJ1ZTsNCj4gKyAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICB9DQoN CkkgZmVlbCBsaWtlIHRoaXMgd2hvbGUgYmxvY2sgYWJvdmUgaXMgZHVwbGljYXRlZC4gQ291bGQg YmUgZXh0cmFjdGVkDQppbnRvIGEgZnVuY3Rpb24sIGUuZy4NCg0KICAgIGJvb2wgY29ubmVjdG9y X2dldF90aWxlKGRybU1vZGVDb25uZWN0b3JSZXMgKmNvbm4sIGlndF90aWxlX2luZm9fdCAqdGls ZV9pbmZvKQ0KDQo+ICsgICAgICAgIGlmKCFpc190aWxlKQ0KPiArICAgICAgICAgICAgY29udGlu dWU7DQo+ICsNCj4gKyAgICAgICAgb3V0cHV0ID0gaWd0X291dHB1dF9mcm9tX2Nvbm5lY3Rvcihk YXRhLT5kaXNwbGF5LCBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29ubl9kYXRhW2NvdW50XS5jb25uZWN0b3IpOw0KDQpTdHlsZTogdW5uZWNlc3Nhcnkg YFxgLiBBcHBsaWVzIHRvIHRoZSB3aG9sZSBwYXRjaC4NCg0KPiArDQo+ICsgICAgICAgIGZvcl9l YWNoX3BpcGUoZGF0YS0+ZGlzcGxheSwgcGlwZSkNCj4gKyAgICAgICAgew0KPiArICAgICAgICAg ICAgaWd0X2RlYnVnKCJDdXJyZW50IFBJUEUgaXMgJWRcbiIsIHBpcGUpOw0KPiArDQo+ICsgICAg ICAgICAgICBpZigoY291bnQgPiAwKSAmJiAocGlwZSA9PSBjb25uX2RhdGFbY291bnQtMV0ucGlw ZSkpDQo+ICsgICAgICAgICAgICAgICAgY29udGludWU7DQoNClN0eWxlOiB1bm5lY2Vzc2FyeSBw YXJlbnRoZXNlcy4NCg0KPiArICAgICAgICAgICAgaWYoaWd0X3BpcGVfY29ubmVjdG9yX3ZhbGlk KHBpcGUsIG91dHB1dCkpIHsNCj4gKyAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnBp cGUgPSBwaXBlOw0KPiArICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtjb3VudF0ub3V0cHV0ID0g b3V0cHV0Ow0KPiArDQo+ICsgICAgICAgICAgICAgICAgaWd0X291dHB1dF9zZXRfcGlwZShjb25u X2RhdGFbY291bnRdLm91dHB1dCwgXA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY29ubl9kYXRhW2NvdW50XS5waXBlKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgIGln dF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsXA0KPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV9oX3NpemUgKlwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLT5udW1faF90aWxl cyksXA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5fZGF0YVtj b3VudF0udGlsZS0+dGlsZV92X3NpemUsXA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIERSTV9GT1JNQVRfWEJHUjg4ODgsXA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExPQ0FMX0RSTV9GT1JNQVRfTU9EX05PTkUsXA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZjb25uX2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0 dGVybik7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRf cGxhbmVfdHlwZShjb25uX2RhdGFbY291bnRdLm91dHB1dCxcDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFS WSk7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZj b25uX2RhdGFbY291bnRdLmZiX3Rlc3RfcGF0dGVybik7DQo+ICsNCj4gKyAgICAgICAgICAgICAg ICBpZ3RfZmJfc2V0X3NpemUoJmNvbm5fZGF0YVtjb3VudF0uZmJfdGVzdF9wYXR0ZXJuLCBwcmlt YXJ5LFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2NvdW50 XS50aWxlLT50aWxlX2hfc2l6ZSxcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV92X3NpemUpOw0KPiArDQo+ICsgICAgICAgICAg ICAgICAgaWd0X2ZiX3NldF9wb3NpdGlvbigmY29ubl9kYXRhW2NvdW50XS5mYl90ZXN0X3BhdHRl cm4sIFwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnksXA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbm5fZGF0YVtjb3VudF0u dGlsZS0+dGlsZV9oX3NpemUgKlwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV9oX2xvYyksDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29ubl9kYXRhW2NvdW50XS50aWxlLT50aWxlX3Zfc2l6 ZSAqXA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubl9kYXRhW2Nv dW50XS50aWxlLT50aWxlX3ZfbG9jKSk7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICBpZ3RfcGxh bmVfc2V0X3NpemUocHJpbWFyeSxcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvbm5fZGF0YVtjb3VudF0udGlsZS0+dGlsZV9oX3NpemUsXA0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25uX2RhdGFbY291bnRdLnRpbGUtPnRpbGVfdl9zaXpl KTsNCj4gKw0KPiArICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgfQ0KPiAr ICAgICAgICB9DQo+ICsgICAgICAgIGNvdW50Kys7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0 dXJuIGNvdW50Ow0KPiArfQ0KPiArDQo+ICtpZ3RfbWFpbg0KPiArew0KPiArICAgIGlndF9kaXNw bGF5X3QgZGlzcGxheTsNCj4gKyAgICBkYXRhX3QgZGF0YSA9IHt9Ow0KPiArICAgIGRhdGFfY29u bmVjdG9yX3QgKmNvbm5fZGF0YTsNCj4gKw0KPiArICAgIGlndF9maXh0dXJlIHsNCj4gKyAgICAg ICAgZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOw0KPiAr ICAgICAgICBrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7DQo+ICsgICAgICAgIGlndF9k aXNwbGF5X3JlcXVpcmUoJmRpc3BsYXksIGRhdGEuZHJtX2ZkKTsNCj4gKyAgICAgICAgZGF0YS5k aXNwbGF5ID0gJmRpc3BsYXk7DQo+ICsNCj4gKyAgICAgICAgZ2V0X251bWJlcl9vZl9oX3RpbGVz KCZkYXRhKTsNCj4gKyAgICAgICAgaWd0X2RlYnVnKCJOdW1iZXIgb2YgSG9yaXpvbnRhbCBUaWxl czogJWRcbiIsIGRhdGEubnVtX2hfdGlsZXMpOw0KPiArICAgICAgICBkYXRhLmNvbW1pdCA9IGRh dGEuZGlzcGxheS0+aXNfYXRvbWljID8gQ09NTUlUX0FUT01JQyA6IENPTU1JVF9MRUdBQ1k7DQo+ ICsgICAgfQ0KPiArDQo+ICsgICAgaWYoZGF0YS5udW1faF90aWxlcyA+IDApDQo+ICsgICAgICAg IGNvbm5fZGF0YSA9IChkYXRhX2Nvbm5lY3Rvcl90ICopbWFsbG9jKGRhdGEubnVtX2hfdGlsZXMg KiBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz aXplb2YoZGF0YV9jb25uZWN0b3JfdCkpOw0KDQpObyBuZWVkIGZvciB0aGlzIGNhc3QsIHVubmVj ZXNzYXJ5IGBcYC4NCg0KPiArICAgIGlndF9hc3NlcnQoY29ubl9kYXRhKTsNCg0KVGhpcyBjaGVj ayByZWFkcyBnYXJiYWdlIGZyb20gdGhlIHN0YWNrIGlmIGRhdGEubnVtX2hfdGlsZXMgPT0gMC4N Cg0KPiArICAgIGlndF9zdWJ0ZXN0X2YoImJhc2ljLXRlc3QtcGF0dGVybiIpIHsNCg0KTm8gbmVl ZCBmb3IgdGhlIF9mIHN1ZmZpeC4NCg0KVGhpcyBzdWJ0ZXN0IGlzIG1pc3NpbmcgYSBkZXNjcmlw dGlvbi4gQ291bGQgeW91IGFkZCBvbmU/IEZvciBtb3JlDQppbmZvcm1hdGlvbiwgc2VlOg0KaHR0 cHM6Ly9kcm0ucGFnZXMuZnJlZWRlc2t0b3Aub3JnL2lndC1ncHUtdG9vbHMvaWd0LWdwdS10b29s cy1Db3JlLmh0bWwjaWd0LWRlc2NyaWJlDQoNCj4gKyAgICAgICAgaWd0X3NraXBfb24oIWRhdGEu bnVtX2hfdGlsZXMpOw0KPiArICAgICAgICBzZXRfdGVzdF9wYXR0ZXJuX2ZiKCZkYXRhLCBjb25u X2RhdGEpOw0KPiArICAgICAgICBpZ3RfZGlzcGxheV9jb21taXQyKGRhdGEuZGlzcGxheSwgZGF0 YS5jb21taXQpOw0KDQpJJ20gbm90IHN1cmUgSSB1bmRlcnN0YW5kIHdoYXQgdGhpcyB0ZXN0IGNo ZWNrcy4gSXQgZG9lcyBhIGNvbW1pdCBvbg0KYWxsIHRpbGVkIGNvbm5lY3RvcnMsIGJ1dCBkb2Vz bid0IGNoZWNrIGFueXRoaW5nIGFmdGVyd2FyZHMuIE1heWJlIGl0DQpzaG91bGQgY2hlY2sgdGhl IHBhZ2VmbGlwIHNlcmlhbCBhbmQgdGltaW5ncz8NCg0KPiArICAgIH0NCj4gKw0KPiArICAgIGln dF9maXh0dXJlIHsNCj4gKyAgICAgICAgaWYoZGF0YS5udW1faF90aWxlcyA+IDApDQo+ICsgICAg ICAgICAgICBmcmVlKGNvbm5fZGF0YSk7DQoNCklmIGNvbm5fZGF0YSB3YXMgaW5pdGlhbGl6ZWQg dG8gTlVMTCwgbm8gbmVlZCBmb3IgdGhlIGNoZWNrLCBiZWNhdXNlDQpmcmVlKE5VTEwpIGlzIGEg bm8tb3AuDQoNCj4gKyAgICAgICAga21zdGVzdF9yZXN0b3JlX3Z0X21vZGUoKTsNCj4gKyAgICAg ICAgaWd0X2Rpc3BsYXlfZmluaShkYXRhLmRpc3BsYXkpOw0KPiArICAgIH0NCj4gK30NCj4gZGlm ZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIvdGVzdHMvbWVzb24uYnVpbGQNCj4gaW5kZXgg MzRhNzQwMjUuLjZhNmU5Y2U5IDEwMDY0NA0KPiAtLS0gYS90ZXN0cy9tZXNvbi5idWlsZA0KPiAr KysgYi90ZXN0cy9tZXNvbi5idWlsZA0KPiBAQCAtMjUsNiArMjUsNyBAQCB0ZXN0X3Byb2dzID0g Ww0KPiAgCSdrbXNfY3Vyc29yX2VkZ2Vfd2FsaycsDQo+ICAJJ2ttc19jdXJzb3JfbGVnYWN5JywN Cj4gIAkna21zX2RwX2RzYycsDQo+ICsJJ2ttc19kcF90aWxlZF9kaXNwbGF5JywNCj4gIAkna21z X2RyYXdfY3JjJywNCj4gIAkna21zX2ZiY29uX2ZidCcsDQo+ICAJJ2ttc19mZW5jZV9waW5fbGVh aycsDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3Qt ZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=