From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 487626F48E for ; Thu, 19 Sep 2019 17:48:12 +0000 (UTC) References: <1568276198-6363-1-git-send-email-jeevan.b@intel.com> <1568276198-6363-3-git-send-email-jeevan.b@intel.com> <20190917114046.GU4019@platvala-desk.ger.corp.intel.com> From: "Gupta, Anshuman" Message-ID: <9c27b78f-57fe-bcd5-98ec-71f330083a65@intel.com> Date: Thu, 19 Sep 2019 23:18:06 +0530 MIME-Version: 1.0 In-Reply-To: <20190917114046.GU4019@platvala-desk.ger.corp.intel.com> Content-Language: en-US Subject: Re: [igt-dev] [PATCH i-g-t 2/8] tests/i915/i915_pm_dc: Added new test to verify Display C States List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Jeevan B , igt-dev@lists.freedesktop.org, Jyoti Yadav List-ID: CgpPbiA5LzE3LzIwMTkgNToxMCBQTSwgUGV0cmkgTGF0dmFsYSB3cm90ZToKPiBPbiBUaHUsIFNl cCAxMiwgMjAxOSBhdCAwMTo0NjozMlBNICswNTMwLCBKZWV2YW4gQiB3cm90ZToKPj4gRnJvbTog SnlvdGkgWWFkYXYgPGp5b3RpLnIueWFkYXZAaW50ZWwuY29tPgo+Pgo+PiBDdXJyZW50bHkgdGhp cyB0ZXN0IHZhbGlkYXRlcyBEQzUgdXBvbiBQU1IgZW50cnkgZm9yIHN1cHBvcnRlZCBwbGF0Zm9y bXMuCj4+IEFkZGVkIG5ldyBmaWxlIGZvciBjb21waWxhdGlvbiBpbnNpZGUgTWFrZWZpbGUgYW5k IE1lc29uLgo+Pgo+PiB2MjogVXNlZCB0aGUgZGVidWdmcyBlbnRyeSBmb3IgREMgY291bnRlcnMg aW5zdGVhZCBvZiBSZWdpc3RlcnMuCj4+ICAgICAgVXNlZCBzaG9ydGVyIG5hbWVzIGZvciB2YXJp YWJsZXMuCj4+ICAgICAgSW50cm9kdWNlZCB0aW1lb3V0IHRvIHJlYWQgREMgY291bnRlcnMuCj4+ IHYzOiBvbmUgc2Vjb25kIHRpbWVvdXQgaXMgaW50cm9kdWNlZCB0byByZWFkIERDIGNvdW50ZXJz Lgo+PiAgICAgIFNraXAgdGhlIHN1YnRlc3QgaWYgY291bnRlcnMgYXJlIG5vdCBhdmFpbGFibGUg Zm9yIHRoYXQgcGxhdGZvcm0uCj4+IHY0OiBSZWJhc2VkLCB0byBmaXggY29tcGlsYXRpb24gZXJy b3IgaW4gcHNyX2VuYWJsZSgpLCBwc3Jfd2FpdF9lbnRyeSgpCj4+ICAgICAgYW5kIHJlcGxhY2Vk IGlndF9kaXNwbGF5X2luaXQoKSBieSBpZ3RfZGlzcGxheV9yZXF1aXJlKCkgaW4gcG1fcnBtLmMu Cj4+ICAgICAgQWRkcmVzc2VkIHRoZSByZXZpZXcgY29tbWVudCBieSByZW1vdmluZyB1bnVzZWQg ZnVuY3Rpb24gZGlzcGxheV9pbml0LAo+PiAgICAgIHJlbW92aW5nIHJlZHVuZGFudCBpZ3QgY29t bWl0IHN1Z2dlc3RlZCBieSBJbXJlLgo+PiAgICAgIEZpeGVkIHR5cG8gaW4gcmVhZF9kY19jb3Vu dGVyKCkuCj4+IHY1OiBBZGRyZXNzZWQgdGhlIHJldmlldyBjb21tZW50IGJ5IHJlbW92aW5nIHJl ZHVuZGFudCByZWFkX2RjX2NvdW50ZXIoKSwKPj4gICAgICBjbHViYmVkIGNsZWFudXAoKSBmdW5j dGlvbiBpbiB0ZXN0X2RjX3N0YXRlX3BzcigpIHN1Z2dlc3RlZCBieSBJbXJlLgo+PiAgICAgIFJl YXJyYW5nZWQgIHByZXByb2Nlc3NvciBkaXJlY3RpdmVzIGF0IG9uZSBwbGFjZS4KPj4gICAgICBG aXhlZCBjb21waWxhdGlvbiB3YXJuaW5nIGJ5IGFkZGluZyBmdW5jdGlvbiBwcm90b3R5cGUgZm9y Cj4+ICAgICAgZGNfc3RhdGVfd2FpdF9lbnRyeSgpIGFuZCBjaGVja19kY19jb3VudGVyKCkuCj4+ ICAgICAgTGlzdGluZyBhY3R1YWwgY2hhbmdlIGluIHBhdGNoIHNldCBjaGFuZ2Vsb2cgdG8gbWFr ZSByZXZpZXcgZWFzaWVyLgo+PiB2NjogRml4ZWQgImk5MTVfZWRwX3Bzcl9zdGF0dXMiIHN0cmlu ZyB0byAiU2luayBzdXBwb3J0OiB5ZXMiLgo+PiB2NzogUmViYXNlZCBzaW5jZSB0ZXN0IG5hbWUg Y2hhbmdlZCBmcm9tICJwbV9kYyIgdG8gImk5MTVfcG1fZGMiLAo+PiAgICAgIHRoaXMgd2lsbCBh bGlnbiB3aXRoIG90aGVyIFBNIHRlc3RzLgo+PiAgICAgIGFsc28gY2hhbmdlZCB0aGUgREM1LzYg Y291bnRlciBjaGVjayB0aW1lb3V0IHRvIDMgc2Vjb25kLgo+PiB2ODogT24gZmV3IHBsYXRmb3Jt IFNBVEEgaS9wIGlzIGJsb2NraW5nIGRlZXBlciBwYWNrYWdlIEMgc3RhdGVzLgo+PiAgICAgIHVz ZWQgaWd0X3BtX2VuYWJsZV9zYXRhX2xpbmtfcG93ZXJfbWFuYWdlbWVudCgpIGZ1bmN0aW9uIGlu IG9yZGVyCj4+ICAgICAgdG8gdXNlIG1pbl9wb3dlciBwb2xpY3kuCj4+IHY5OiBSZW1vdmVkIHJl ZHVuZGFudCBpZ3RfcG1fcmVtb3ZlX3NhdGFfbGlua19wb3dlcl9tYW5hZ2VtZW50KCkKPj4gICAg ICBhcyBzYXRhIGxpbmsgcG9saWN5IHZhbHVlcyB3aWxsIGJlIHJlc3RvcmVkIGJ5IGV4aXQgaGFu ZGxlci4KPj4gdjEwOiBjaGFuZ2VkIGNsZWFudXAoKSB0byBjbGVhbnVwX2RjX3BzcigpIHN5bW1l dHJpYyB0byBjbGVhbnVwX2RjX2RwbXMoKS4KPj4gdjExOiBSZW1vdmVkIHVud2FudGVkIGhlYWRl cnMuIFtJbXJlXQo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBKeW90aSBZYWRhdiA8anlvdGkuci55YWRh dkBpbnRlbC5jb20+Cj4+IFNpZ25lZC1vZmYtYnk6IEFuc2h1bWFuIEd1cHRhIDxhbnNodW1hbi5n dXB0YUBpbnRlbC5jb20+Cj4+IC0tLQo+PiAgIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgIHwgICAz ICsKPj4gICB0ZXN0cy9pOTE1L2k5MTVfcG1fZGMuYyB8IDIxMSArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPj4gICB0ZXN0cy9tZXNvbi5idWlsZCAgICAg ICB8ICAgMSArCj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAyMTUgaW5zZXJ0aW9ucygrKQo+PiAgIGNy ZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9pOTE1L2k5MTVfcG1fZGMuYwo+Pgo+PiBkaWZmIC0tZ2l0 IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPj4gaW5k ZXggNTQ5YTM1MC4uMDZhMGE0OCAxMDA2NDQKPj4gLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNl cwo+PiArKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4+IEBAIC01MjAsNiArNTIwLDkgQEAg aTkxNV9wbV9yYzZfcmVzaWRlbmN5X1NPVVJDRVMgPSBpOTE1L2k5MTVfcG1fcmM2X3Jlc2lkZW5j eS5jCj4+ICAgVEVTVFNfcHJvZ3MgKz0gaTkxNV9wbV9ycG0KPj4gICBpOTE1X3BtX3JwbV9TT1VS Q0VTID0gaTkxNS9pOTE1X3BtX3JwbS5jCj4+ICAgCj4+ICtURVNUU19wcm9ncyArPSBpOTE1X3Bt X2RjCj4+ICtpOTE1X3BtX2RjX1NPVVJDRVMgPSBpOTE1L2k5MTVfcG1fZGMuYwo+PiArCj4+ICAg VEVTVFNfcHJvZ3MgKz0gaTkxNV9wbV9ycHMKPj4gICBpOTE1X3BtX3Jwc19TT1VSQ0VTID0gaTkx NS9pOTE1X3BtX3Jwcy5jCj4+ICAgCj4+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2k5MTVfcG1f ZGMuYyBiL3Rlc3RzL2k5MTUvaTkxNV9wbV9kYy5jCj4+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4+ IGluZGV4IDAwMDAwMDAuLmMwZTQxYzMKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi90ZXN0cy9p OTE1L2k5MTVfcG1fZGMuYwo+PiBAQCAtMCwwICsxLDIxMSBAQAo+PiArLyoKPj4gKyAqIENvcHly aWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCj4+ICsgKgo+PiArICogUGVybWlzc2lvbiBp cyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5n IGEKPj4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0 aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2Fy ZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4+ICsg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKPj4gKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+PiArICogU29mdHdhcmUgaXMg ZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoK Pj4gKyAqCj4+ICsgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNz aW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJl IGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4+ ICsgKiBTb2Z0d2FyZS4KPj4gKyAqCj4+ICsgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFT IElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+PiArICogSU1Q TElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJD SEFOVEFCSUxJVFksCj4+ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQg Tk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPj4gKyAqIFRIRSBBVVRIT1JTIE9S IENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9U SEVSCj4+ICsgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwo+PiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5F Q1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+PiAr ICogSU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqLwo+PiArCj4+ICsjaW5jbHVkZSA8ZXJy bm8uaD4KPj4gKyNpbmNsdWRlIDxzdGRib29sLmg+Cj4+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPj4g KyNpbmNsdWRlIDxzdHJpbmcuaD4KPj4gKyNpbmNsdWRlICJpZ3QuaCIKPj4gKyNpbmNsdWRlICJp Z3RfcHNyLmgiCj4+ICsjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4+ICsjaW5jbHVkZSAibGltaXRz LmgiCj4+ICsKPj4gKy8qIERDIFN0YXRlIEZsYWdzICovCj4+ICsjZGVmaW5lIENIRUNLX0RDNQkx Cj4+ICsjZGVmaW5lIENIRUNLX0RDNgkyCj4+ICsKPj4gK3R5cGVkZWYgc3RydWN0IHsKPj4gKwlp bnQgZHJtX2ZkOwo+PiArCWludCBkZWJ1Z2ZzX2ZkOwo+PiArCXVpbnQzMl90IGRldmlkOwo+PiAr CWlndF9kaXNwbGF5X3QgZGlzcGxheTsKPj4gKwlzdHJ1Y3QgaWd0X2ZiIGZiX3doaXRlOwo+PiAr CWVudW0gcHNyX21vZGUgb3BfcHNyX21vZGU7Cj4+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ PiArCWlndF9vdXRwdXRfdCAqb3V0cHV0Owo+PiArfSBkYXRhX3Q7Cj4+ICsKPj4gK3N0YXRpYyBi b29sIGRjX3N0YXRlX3dhaXRfZW50cnkoaW50IGRybV9mZCwgaW50IGRjX2ZsYWcsIGludCBwcmV2 X2RjX2NvdW50KTsKPj4gK3N0YXRpYyB2b2lkIGNoZWNrX2RjX2NvdW50ZXIoaW50IGRybV9mZCwg aW50IGRjX2ZsYWcsIHVpbnQzMl90IHByZXZfZGNfY291bnQpOwo+PiArCj4+ICtzdGF0aWMgdm9p ZCBzZXR1cF9vdXRwdXQoZGF0YV90ICpkYXRhKQo+PiArewo+PiArCWlndF9kaXNwbGF5X3QgKmRp c3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPj4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPj4gKwll bnVtIHBpcGUgcGlwZTsKPj4gKwo+PiArCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQo ZGlzcGxheSwgcGlwZSwgb3V0cHV0KSB7Cj4+ICsJCWRybU1vZGVDb25uZWN0b3JQdHIgYyA9IG91 dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKPj4gKwo+PiArCQlpZiAoYy0+Y29ubmVjdG9yX3R5cGUg IT0gRFJNX01PREVfQ09OTkVDVE9SX2VEUCkKPj4gKwkJCWNvbnRpbnVlOwo+PiArCj4+ICsJCWln dF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKPj4gKwkJZGF0YS0+b3V0cHV0ID0gb3V0 cHV0Owo+PiArCQlkYXRhLT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShvdXRwdXQpOwo+PiAr Cj4+ICsJCXJldHVybjsKPj4gKwl9Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGRpc3BsYXlf ZmluaShkYXRhX3QgKmRhdGEpCj4+ICt7Cj4+ICsJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS0+ZGlz cGxheSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBib29sIGVkcF9wc3Jfc2lua19zdXBwb3J0KGRh dGFfdCAqZGF0YSkKPj4gK3sKPj4gKwljaGFyIGJ1Zls1MTJdOwo+PiArCj4+ICsJaWd0X2RlYnVn ZnNfc2ltcGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgImk5MTVfZWRwX3Bzcl9zdGF0dXMiLAo+ PiArCQkJCWJ1Ziwgc2l6ZW9mKGJ1ZikpOwo+PiArCj4+ICsJcmV0dXJuIHN0cnN0cihidWYsICJT aW5rIHN1cHBvcnQ6IHllcyIpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgdm9pZCBjbGVhbnVwX2Rj X3BzcihkYXRhX3QgKmRhdGEpCj4+ICt7Cj4+ICsJaWd0X3BsYW5lX3QgKnByaW1hcnk7Cj4+ICsK Pj4gKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCj4+ ICsJCQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPj4gKwlpZ3RfcGxhbmVfc2V0X2Zi KHByaW1hcnksIE5VTEwpOwo+PiArCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7 Cj4+ICsJaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYl93aGl0ZSk7Cj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIHNldHVwX3ByaW1hcnkoZGF0YV90ICpkYXRhKQo+PiArewo+ PiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+PiArCj4+ICsJcHJpbWFyeSA9IGlndF9vdXRwdXRf Z2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAo+PiArCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVf UFJJTUFSWSk7Cj4+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPj4gKwlpZ3Rf Y3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwKPj4gKwkJCSAgICBkYXRhLT5tb2RlLT5oZGlz cGxheSwgZGF0YS0+bW9kZS0+dmRpc3BsYXksCj4+ICsJCQkgICAgRFJNX0ZPUk1BVF9YUkdCODg4 OCwKPj4gKwkJCSAgICBMT0NBTF9JOTE1X0ZPUk1BVF9NT0RfWF9USUxFRCwKPj4gKwkJCSAgICAx LjAsIDEuMCwgMS4wLAo+PiArCQkJICAgICZkYXRhLT5mYl93aGl0ZSk7Cj4+ICsJaWd0X3BsYW5l X3NldF9mYihwcmltYXJ5LCAmZGF0YS0+ZmJfd2hpdGUpOwo+PiArCWlndF9kaXNwbGF5X2NvbW1p dCgmZGF0YS0+ZGlzcGxheSk7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB1aW50MzJfdCBnZXRfZGNf Y291bnRlcihjaGFyICpkY19kYXRhKQo+PiArewo+PiArCWNoYXIgKmU7Cj4+ICsJbG9uZyByZXQ7 Cj4+ICsJY2hhciAqcyA9IHN0cmNocihkY19kYXRhLCAnOicpOwo+PiArCj4+ICsJYXNzZXJ0KHMp Owo+PiArCXMrKzsKPj4gKwlyZXQgPSBzdHJ0b2wocywgJmUsIDEwKTsKPj4gKwlhc3NlcnQoKChy ZXQgIT0gTE9OR19NSU4gJiYgcmV0ICE9IExPTkdfTUFYKSB8fCBlcnJubyAhPSBFUkFOR0UpICYm Cj4+ICsJICAgICAgIGUgPiBzICYmICplID09ICdcbicgJiYgcmV0ID49IDApOwo+PiArCXJldHVy biByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyB1aW50MzJfdCByZWFkX2RjX2NvdW50ZXIodWlu dDMyX3QgZHJtX2ZkLCBpbnQgZGNfZmxhZykKPj4gK3sKPj4gKwljaGFyIGJ1Zls0MDk2XTsKPj4g KwljaGFyICpzdHI7Cj4+ICsKPj4gKwlpZ3RfZGVidWdmc19yZWFkKGRybV9mZCwgImk5MTVfZG1j X2luZm8iLCBidWYpOwo+PiArCj4+ICsJaWYgKGRjX2ZsYWcgJiBDSEVDS19EQzUpCj4+ICsJCXN0 ciA9IHN0cnN0cihidWYsICJEQzMgLT4gREM1IGNvdW50Iik7Cj4+ICsJZWxzZSBpZiAoZGNfZmxh ZyAmIENIRUNLX0RDNikKPj4gKwkJc3RyID0gc3Ryc3RyKGJ1ZiwgIkRDNSAtPiBEQzYgY291bnQi KTsKPj4gKwo+PiArCS8qIENoZWNrIERDNS9EQzYgY291bnRlciBpcyBhdmFpbGFibGUgZm9yIHRo ZSBwbGF0Zm9ybS4KPj4gKwkgKiBTa2lwIHRoZSB0ZXN0IGlmIGNvdW50ZXIgaXMgbm90IGF2YWls YWJsZS4KPj4gKwkgKi8KPj4gKwlpZ3Rfc2tpcF9vbl9mKCFzdHIsICJEQyVkIGNvdW50ZXIgaXMg bm90IGF2YWlsYWJsZVxuIiwKPj4gKwkJICAgICAgZGNfZmxhZyAmIENIRUNLX0RDNSA/IDUgOiA2 KTsKPj4gKwlyZXR1cm4gZ2V0X2RjX2NvdW50ZXIoc3RyKTsKPj4gK30KPj4gKwo+PiArc3RhdGlj IGJvb2wgZGNfc3RhdGVfd2FpdF9lbnRyeShpbnQgZHJtX2ZkLCBpbnQgZGNfZmxhZywgaW50IHBy ZXZfZGNfY291bnQpCj4+ICt7Cj4+ICsJcmV0dXJuIGlndF93YWl0KHJlYWRfZGNfY291bnRlcihk cm1fZmQsIGRjX2ZsYWcpID4KPj4gKwkJCXByZXZfZGNfY291bnQsIDMwMDAsIDEwMCk7Cj4+ICt9 Cj4+ICsKPj4gK3N0YXRpYyB2b2lkIGNoZWNrX2RjX2NvdW50ZXIoaW50IGRybV9mZCwgaW50IGRj X2ZsYWcsIHVpbnQzMl90IHByZXZfZGNfY291bnQpCj4+ICt7Cj4+ICsJaWd0X2Fzc2VydF9mKGRj X3N0YXRlX3dhaXRfZW50cnkoZHJtX2ZkLCBkY19mbGFnLCBwcmV2X2RjX2NvdW50KSwKPj4gKwkJ ICAgICAiREMlZCBzdGF0ZSBpcyBub3QgYWNoaWV2ZWRcbiIsCj4+ICsJCSAgICAgZGNfZmxhZyAm IENIRUNLX0RDNSA/IDUgOiA2KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQgdGVzdF9kY19z dGF0ZV9wc3IoZGF0YV90ICpkYXRhLCBpbnQgZGNfZmxhZykKPj4gK3sKPj4gKwl1aW50MzJfdCBk Y19jb3VudGVyX2JlZm9yZV9wc3I7Cj4+ICsKPj4gKwlkY19jb3VudGVyX2JlZm9yZV9wc3IgPSBy ZWFkX2RjX2NvdW50ZXIoZGF0YS0+ZHJtX2ZkLCBkY19mbGFnKTsKPj4gKwlzZXR1cF9vdXRwdXQo ZGF0YSk7Cj4+ICsJc2V0dXBfcHJpbWFyeShkYXRhKTsKPj4gKwlpZ3RfYXNzZXJ0KHBzcl93YWl0 X2VudHJ5KGRhdGEtPmRlYnVnZnNfZmQsIGRhdGEtPm9wX3Bzcl9tb2RlKSk7Cj4+ICsJY2hlY2tf ZGNfY291bnRlcihkYXRhLT5kcm1fZmQsIGRjX2ZsYWcsIGRjX2NvdW50ZXJfYmVmb3JlX3Bzcik7 Cj4+ICsJY2xlYW51cF9kY19wc3IoZGF0YSk7Cj4+ICt9Cj4+ICsKPj4gK0lHVF9URVNUX0RFU0NS SVBUSU9OKCJEaXNwbGF5IFBvd2VyIERDIHN0YXRlcyBJR1QgVGVzdCIpOwo+PiAraW50IG1haW4o aW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPj4gK3sKPj4gKwlib29sIGhhc19ydW50aW1lX3BtOwo+ PiArCWRhdGFfdCBkYXRhID0ge307Cj4+ICsKPj4gKwlpZ3Rfc2tpcF9vbl9zaW11bGF0aW9uKCk7 Cj4+ICsJaWd0X3N1YnRlc3RfaW5pdChhcmdjLCBhcmd2KTsKPj4gKwlpZ3RfZml4dHVyZSB7Cj4+ ICsJCWRhdGEuZHJtX2ZkID0gZHJtX29wZW5fZHJpdmVyX21hc3RlcihEUklWRVJfSU5URUwpOwo+ PiArCQlkYXRhLmRlYnVnZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOwo+PiAr CQlpZ3RfcmVxdWlyZShkYXRhLmRlYnVnZnNfZmQgIT0gLTEpOwo+PiArCQlrbXN0ZXN0X3NldF92 dF9ncmFwaGljc19tb2RlKCk7Cj4+ICsJCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2Rldmlk KGRhdGEuZHJtX2ZkKTsKPj4gKwkJaWd0X3BtX2VuYWJsZV9zYXRhX2xpbmtfcG93ZXJfbWFuYWdl bWVudCgpOwo+PiArCQloYXNfcnVudGltZV9wbSA9IGlndF9zZXR1cF9ydW50aW1lX3BtKCk7Cj4+ ICsJCWlndF9pbmZvKCJSdW50aW1lIFBNIHN1cHBvcnQ6ICVkXG4iLCBoYXNfcnVudGltZV9wbSk7 Cj4+ICsJCWlndF9yZXF1aXJlKGhhc19ydW50aW1lX3BtKTsKPj4gKwkJaWd0X3JlcXVpcmUoaWd0 X3BtX2RtY19sb2FkZWQoZGF0YS5kZWJ1Z2ZzX2ZkKSk7Cj4+ICsJCWlndF9kaXNwbGF5X3JlcXVp cmUoJmRhdGEuZGlzcGxheSwgZGF0YS5kcm1fZmQpOwo+PiArCX0KPj4gKwo+PiArCWlndF9kZXNj cmliZSgiREM1IGlndCB0ZXN0IHdpdGggUFNSIFNsZWVwIHN0YXRlIik7Cj4+ICsJaWd0X3N1YnRl c3QoImRjNS1wc3IiKSB7Cj4gCj4gCj4gQ2FuIHRoZSBkb2N1bWVudGF0aW9uIGJlIGZsZXNoZWQg b3V0IGEgYml0IG1vcmU/IEZvciBvbmUsIGl0J3MKPiByZWR1bmRhbnQgZm9yIGFuIElHVCB0ZXN0 IHRvIHN0YXRlIHRoYXQgaXQncyBhbiBJR1QgdGVzdCAoYXBwbGllcyB0bwo+IGJvdGggdGhlIGln dF9kZXNjcmliZSBjYWxscyBhbmQgdGhlIElHVF9URVNUX0RFU0NSSVBUSU9OIHN0cmluZykuCj4g Cj4gIkRDNSB0ZXN0IHdpdGggUFNSIFNsZWVwIHN0YXRlIiBpcyBub3QgY2xlYXIgd2hhdCB0aGUg dGVzdCBpcwo+IHRlc3RpbmcuIFNvbWV0aGluZyBsaWtlICJUZXN0IHRoYXQgREM1IHN0YXRlIGlz IHJlYWNoZWQgaW4gUFNSIHNsZWVwCj4gc3RhdGUiPwpIaSBQZXRyaSAsCgpUaGFua3MgZm9yIHlv dXIgcmV2aWV3IGNvbW1lbnQsIHRoaXMgc2VyaWVzIGFjdHVhbGx5IGludGVuZGVkIGZvciBEQzND TwpJR1QgdGVzdCBhcyBleGlzdGluZyBEQyBzdGF0ZSBwYXRjaGVzIGFyZSBub3QgbWVyZ2VkIHll dCwgSmVldmFuIGhhcwpzZW50IERDM0NPIGlndCBwYXRjaGVzIHdpdGggZXhpc3RpbmcgZGMgc3Rh dGUgSUdUIHBhdGNoIHNlcmllcy4KSSBoYXZlIGFkZHJlc3NlZCB5b3VyIGNvbW1lbnQgaW4gYmVs b3cgc2VyaWVzLCBpdCBoYXMgYWxyZWFkeSBoYXZpbmcgCkltcmUncyBSQi4KaHR0cHM6Ly9wYXRj aHdvcmsuZnJlZWRlc2t0b3Aub3JnL3Nlcmllcy81NjcxMy8KQ291bGQgeW91IHBsZWFzZSBoZWxw IHRvIG1lcmdlIHRoaXMgcGF0Y2ggc2VyaWVzLgoKVGhhbmtzICwKQW5zaHVtYW4gR3VwdGEuCj4g Cj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1k ZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0LWRldg==