From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id A44F56E71E for ; Fri, 7 Dec 2018 10:33:05 +0000 (UTC) Date: Fri, 7 Dec 2018 12:33:02 +0200 From: Petri Latvala Message-ID: <20181207103302.GM17124@platvala-desk.ger.corp.intel.com> References: <20181205201523.4904-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20181205201523.4904-1-manasi.d.navare@intel.com> Subject: Re: [igt-dev] [PATCH i-g-t v5] test/kms_dp_dsc: Basic KMS test to validate VESA DSC on DP/eDP 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: Manasi Navare Cc: igt-dev@lists.freedesktop.org, Anusha Srivatsa , Dhinakaran Pandiyan List-ID: T24gV2VkLCBEZWMgMDUsIDIwMTggYXQgMTI6MTU6MjNQTSAtMDgwMCwgTWFuYXNpIE5hdmFyZSB3 cm90ZToKPiBUaGlzIHBhdGNoIGFkZHMgYSBiYXNpYyBrbXMgdGVzdCB0byB2YWxpZGF0ZSB0aGUg ZGlzcGxheSBzdHJlYW0KPiBjb21wcmVzc2lvbiBmdW5jdGlvbmFsaXR5IGlmIHN1cHBvcnRlZCBv biBEUC9lRFAgY29ubmVjdG9yLgo+IEN1cnJlbnRseSB0aGlzIGhhcyBvbmx5IHR3byBzdWJ0ZXN0 cyB0byBmb3JjZSB0aGUgRFNDIG9uIGFsbAo+IHRoZSBlRFAgYW5kIERQIGNvbm5lY3RvcnMgdGhh dCBzdXBwb3J0IGl0IHdpdGggZGVmYXVsdCBwYXJhbWV0ZXJzLgo+IFRoaXMgd2lsbCBiZSBleHBh bmRlZCB0byBhZGQgbW9yZSBzdWJ0ZXN0cyB0byB0d2VhayBEU0MgcGFyYW1ldGVycy4KPiAKPiB2 NToKPiAqIEZpeCB0ZXN0IGNsZWFudXAgdG8gYXZvaWQgY3Jhc2ggKFBldHJpKQo+IHY0Ogo+ICog RnV0dXJlIHByb29mIGZvciBtb3JlIHRlc3QgdHlwZXMgKFBldHJpKQo+ICogRml4IGFscGhhYmV0 aWNhbCBvcmRlciAoUGV0cmkpCj4gKiBzL2lndF9kaXNwbGF5X2luaXQvaWd0X2Rpc3BsYXlfcmVx dWlyZSAoUGV0cmkpCj4gKiBSZW1vdmUgYmxhbmsgbGluZXMgYWZ0ZXIgcmV0dXJuIChQZXRyaSkK PiB2MzoKPiAqIFVzZSBhcnJheSBvZiBjb25uZWN0b3JzIGFuZCBsb29wIHRocm91Z2ggKFBldHJp KQo+ICogQWxzbyBjaGVjayBmb3IgRkVDIG9uIERQIGNvbm5lY3RvcnMgKE1hbmFzaSkKPiAqIEFk ZCBhIFBpcGVfQSByZXN0cmljdGlvbiBvbiBEUCAoVmlsbGUpCj4gdjI6Cj4gKiBVc2UgSUdUIHdy YXBwZXJzIGZvciBhbGwgKERLLCBBbnRvbmlvKQo+ICogU3BsaXQgaW50byB0d28gc3VidGVzdHMg Zm9yIGVEUCBhbmQgRFAgdHlwZXMgKFBldHJpKQo+IAo+IENjOiBQZXRyaSBMYXR2YWxhIDxwZXRy aS5sYXR2YWxhQGludGVsLmNvbT4KPiBDYzogQW50b25pbyBBcmdlbnppYW5vIDxhbnRvbmlvLmFy Z2Vuemlhbm9AaW50ZWwuY29tPgo+IENjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFu LnBhbmRpeWFuQGludGVsLmNvbT4KPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxh QGxpbnV4LmludGVsLmNvbT4KPiBDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FA aW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFy ZUBpbnRlbC5jb20+Cj4gLS0tCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEgKwo+ICB0 ZXN0cy9rbXNfZHBfZHNjLmMgICAgIHwgMjU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrCj4gIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwo+ICAzIGZpbGVz IGNoYW5nZWQsIDI2MCBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0cy9r bXNfZHBfZHNjLmMKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcyBiL3Rl c3RzL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCBlZWRkZTFlOC4uYTNjMjRjOTkgMTAwNjQ0Cj4g LS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ICsrKyBiL3Rlc3RzL01ha2VmaWxlLnNvdXJj ZXMKPiBAQCAtNTQsNiArNTQsNyBAQCBURVNUU19wcm9ncyA9IFwKPiAgCWttc19jcnRjX2JhY2tn cm91bmRfY29sb3IgXAo+ICAJa21zX2N1cnNvcl9jcmMgXAo+ICAJa21zX2N1cnNvcl9sZWdhY3kg XAo+ICsJa21zX2RwX2RzYyBcCj4gIAlrbXNfZHJhd19jcmMgXAo+ICAJa21zX2ZiY29uX2ZidCBc Cj4gIAlrbXNfZmVuY2VfcGluX2xlYWsgXAo+IGRpZmYgLS1naXQgYS90ZXN0cy9rbXNfZHBfZHNj LmMgYi90ZXN0cy9rbXNfZHBfZHNjLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAw MDAwMDAwLi5lMGZhZWMxZgo+IC0tLSAvZGV2L251bGwKPiArKysgYi90ZXN0cy9rbXNfZHBfZHNj LmMKPiBAQCAtMCwwICsxLDI1OCBAQAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRl bCBDb3Jwb3JhdGlvbgo+ICsgKgo+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBm cmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ICsgKiBjb3B5IG9mIHRo aXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0 d2FyZSIpLAo+ICsgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCj4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ICsg KiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNv bnMgdG8gd2hvbSB0aGUKPiArICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJq ZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFib3ZlIGNv cHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1ZGluZyB0aGUg bmV4dAo+ICsgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Ig c3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCj4gKyAqIFNvZnR3YXJlLgo+ICsgKgo+ICsgKiBU SEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkg S0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVE IFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCj4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBB TiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCj4gKyAqIEZS T00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0Ug T1IgT1RIRVIgREVBTElOR1MKPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ICsgKgo+ICsgKiBEaXNw bGF5cG9ydCBEaXNwbGF5IFN0cmVhbSBDb21wcmVzc2lvbiB0ZXN0Cj4gKyAqIFVudGlsIHRoZSBD UkMgc3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRzIHRvIGJlIGludm9rZWQgd2l0aCAtLWludGVy YWN0aXZlCj4gKyAqIHRvIG1hbnVhbGx5IHZlcmlmeSBpZiB0aGUgdGVzdCBwYXR0ZXJuIGlzIHNl ZW4gd2l0aG91dCBjb3JydXB0aW9uIGZvciBlYWNoCj4gKyAqIHN1YnRlc3QuCj4gKyAqCj4gKyAq IEF1dGhvcnM6Cj4gKyAqIE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gKyAqCj4gKyAqLwo+ICsjaW5jbHVkZSAiaWd0LmgiCj4gKyNpbmNsdWRlICJpZ3Rfc3lzZnMu aCIKPiArI2luY2x1ZGUgPGVycm5vLmg+Cj4gKyNpbmNsdWRlIDxnZXRvcHQuaD4KPiArI2luY2x1 ZGUgPG1hdGguaD4KPiArI2luY2x1ZGUgPHN0ZGludC5oPgo+ICsjaW5jbHVkZSA8c3RkYm9vbC5o Pgo+ICsjaW5jbHVkZSA8c3RyaW5ncy5oPgo+ICsjaW5jbHVkZSA8dW5pc3RkLmg+Cj4gKyNpbmNs dWRlIDxzdGRsaWIuaD4KPiArI2luY2x1ZGUgPHNpZ25hbC5oPgo+ICsjaW5jbHVkZSA8dGltZS5o Pgo+ICsjaW5jbHVkZSA8ZmNudGwuaD4KPiArI2luY2x1ZGUgPHRlcm1pb3MuaD4KPiArCj4gK2Vu dW0gZHNjX3Rlc3RfdHlwZQo+ICt7Cj4gKwl0ZXN0X2Jhc2ljX2RzY19lbmFibGUKPiArfTsKPiAr Cj4gK3R5cGVkZWYgc3RydWN0IHsKPiArCWludCBkcm1fZmQ7Cj4gKwlpbnQgZGVidWdmc19mZDsK PiArCXVpbnQzMl90IGlkOwo+ICsJaWd0X2Rpc3BsYXlfdCBkaXNwbGF5Owo+ICsJc3RydWN0IGln dF9mYiBmYl90ZXN0X3BhdHRlcm47Cj4gKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiArCWludCBt b2RlX3ZhbGlkOwo+ICsJZHJtTW9kZU1vZGVJbmZvICptb2RlOwo+ICsJZHJtTW9kZUNvbm5lY3Rv ciAqY29ubmVjdG9yOwo+ICsJZHJtTW9kZUVuY29kZXIgKmVuY29kZXI7Cj4gKwlpbnQgY3J0YzsK PiArCWVudW0gcGlwZSBwaXBlOwo+ICsJY2hhciBjb25uX25hbWVbMTI4XTsKPiArfSBkYXRhX3Q7 Cj4gKwo+ICtzdGF0aWMgaW5saW5lIHZvaWQgbWFudWFsKGNvbnN0IGNoYXIgKmV4cGVjdGVkKQo+ ICt7Cj4gKwlpZ3RfZGVidWdfbWFudWFsX2NoZWNrKCJhbGwiLCBleHBlY3RlZCk7Cj4gK30KPiAr Cj4gK3N0YXRpYyBib29sIGlzX2RwX2RzY19zdXBwb3J0ZWQoZGF0YV90ICpkYXRhKQo+ICt7Cj4g KwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlz dHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwg Ii9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOwo+ICsJaWd0X3JlcXVpcmUoaWd0X2RlYnVnZnNfc2lt cGxlX3JlYWQoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCBidWYsCj4gKwkJCQkJICAgIHNp emVvZihidWYpKSA+IDApOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVf bmFtZSwgYnVmKTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19TaW5rX1N1cHBvcnQ6 IHllcyIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBpc19kcF9mZWNfc3VwcG9ydGVkKGRhdGFf dCAqZGF0YSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKPiArCWNoYXIgYnVm WzUxMl07Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKPiArCXN0 cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKPiArCWlndF9kZWJ1Z2Zz X3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7Cj4gKwo+ICsJcmV0dXJuIHN0cnN0 cihidWYsICJGRUNfU2lua19TdXBwb3J0OiB5ZXMiKTsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wg aXNfZHBfZHNjX2VuYWJsZWQoZGF0YV90ICpkYXRhKQo+ICt7Cj4gKwljaGFyIGZpbGVfbmFtZVsx MjhdID0gezB9Owo+ICsJY2hhciBidWZbNTEyXTsKPiArCj4gKwlzdHJjcHkoZmlsZV9uYW1lLCBk YXRhLT5jb25uX25hbWUpOwo+ICsJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3Vw cG9ydCIpOwo+ICsJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwgYnVm KTsKPiArCj4gKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19FbmFibGVkOiB5ZXMiKTsKPiArfQo+ ICsKPiArc3RhdGljIHZvaWQgZm9yY2VfZHBfZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpCj4gK3sK PiArCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXN0cmNw eShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5 MTVfZHNjX2ZlY19zdXBwb3J0Iik7Cj4gKwlpZ3RfZGVidWcgKCJGb3JjaW5nIERTQyBlbmFibGUg b24gJXNcbiIsIGRhdGEtPmNvbm5fbmFtZSk7Cj4gKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0 YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOwo+ICsJaWd0X2Fzc2VydF9mKHJldCA+ IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBjbGVh cl9kcF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKPiArewo+ICsJY2hhciBmaWxlX25hbWVbMTI4 XSA9IHswfTsKPiArCWludCByZXQ7Cj4gKwo+ICsJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29u bl9uYW1lKTsKPiArCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsK PiArCWlndF9kZWJ1ZyAoIkNsZWFyaW5nIERTQyBlbmFibGUgb24gJXNcbiIsIGRhdGEtPmNvbm5f bmFtZSk7Cj4gKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9u YW1lLCAiMCIsIDEpOwo+ICsJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZh aWxlZCIpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAoZGF0YV90ICpkYXRh KSB7Cj4gKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKPiArCj4gKwlwcmltYXJ5ID0gaWd0X291dHB1 dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCj4gKwkJCQkJICAgIERSTV9QTEFORV9UWVBF X1BSSU1BUlkpOwo+ICsJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5LCBOVUxMKTsKPiArCWlndF9k aXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7Cj4gKwo+ICsJaWd0X3JlbW92ZV9mYihkYXRh LT5kcm1fZmQsICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOwo+ICt9Cj4gKwo+ICsKPiArLyoKPiAr ICogUmUtcHJvYmUgY29ubmVjdG9ycyBhbmQgZG8gYSBtb2Rlc2V0IHdpdGggRFNDCj4gKyAqCj4g KyAqLwo+ICtzdGF0aWMgdm9pZCB1cGRhdGVfZGlzcGxheShkYXRhX3QgKmRhdGEsIGVudW0gZHNj X3Rlc3RfdHlwZSB0ZXN0X3R5cGUpCj4gK3sKPiArCWlndF9wbGFuZV90ICpwcmltYXJ5Owo+ICsJ ZGF0YS0+bW9kZSA9IGlndF9vdXRwdXRfZ2V0X21vZGUoZGF0YS0+b3V0cHV0KTsKPiArCWRhdGEt PmNvbm5lY3RvciA9IGRhdGEtPm91dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKPiArCj4gKwlpZiAo ZGF0YS0+Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSA9PSBEUk1fTU9ERV9DT05ORUNUT1JfRGlz cGxheVBvcnQgJiYKPiArCSAgICBkYXRhLT5waXBlID09IFBJUEVfQSkgewo+ICsJCWlndF9kZWJ1 ZyAoIkRTQyBub3Qgc3VwcG9ydGVkIG9uIFBpcGUgQSBvbiBleHRlcm5hbCBEUFxuIik7Cj4gKwkJ cmV0dXJuOwo+ICsJfQo+ICsKPiArCWlmICh0ZXN0X3R5cGUgPT0gdGVzdF9iYXNpY19kc2NfZW5h YmxlKSB7Cj4gKwkJaWd0X2RlYnVnICgiRFNDIGlzIHN1cHBvcnRlZCBvbiAlc1xuIiwKPiArCQkJ ICAgZGF0YS0+Y29ubl9uYW1lKTsKPiArCQlmb3JjZV9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ICsJ CWlndF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsIGRhdGEtPm1vZGUtPmhkaXNwbGF5 LAo+ICsJCQkJICAgICAgZGF0YS0+bW9kZS0+dmRpc3BsYXksCj4gKwkJCQkgICAgICBEUk1fRk9S TUFUX1hSR0I4ODg4LAo+ICsJCQkJICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9ORSwKPiAr CQkJCSAgICAgICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOwoKVGhpcyBmdW5jdGlvbiBpcyBjYWxs ZWQgZnJvbSBhIGxvb3AgYW5kIGRhdGEtPmZiX3Rlc3RfcGF0dGVybiBjYW4KY29udGFpbiBhbiBm YiBhbHJlYWR5LCBubz8gRG9lcyB0aGlzIGxlYWs/CgoKLS0gClBldHJpIExhdHZhbGEKCgo+ICsJ CXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKPiArCQkJ CQkJICAgIERSTV9QTEFORV9UWVBFX1BSSU1BUlkpOwo+ICsJCWlndF9wbGFuZV9zZXRfZmIocHJp bWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cj4gKwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZk YXRhLT5kaXNwbGF5KTsKPiArCQkvKiBVbnRpbCB3ZSBoYXZlIENSQyBjaGVjayBzdXBwb3J0LCBt YW51YWxseSBjaGVjayBpZiBSR0IgdGVzdCBwYXR0ZXJuIGhhcyBubyBjb3JydXB0aW9uICovCj4g KwkJbWFudWFsICgiUkdCIHRlc3QgcGF0dGVybiB3aXRob3V0IGNvcnJ1cHRpb24iKTsKPiArCQlp Z3RfYXNzZXJ0X2YoaXNfZHBfZHNjX2VuYWJsZWQoZGF0YSksCj4gKwkJCSAgICAgIkRlZmF1bHQg RFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVjdG9yOiAlcyBQaXBlOiAlcyIsCj4gKwkJCSAgICAg ZGF0YS0+Y29ubl9uYW1lLAo+ICsJCQkgICAgIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUp KTsKPiArCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEpOwo+ICsJfSBlbHNlIHsKPiArCQlpZ3Rf YXNzZXJ0KCEiVW5rbm93biB0ZXN0IHR5cGVcbiIpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0cHV0LAo+ICsJCSAg ICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKPiArewo+ICsJZW51bSBwaXBlIHBpcGU7 Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZV93aXRoX3ZhbGlkX291dHB1dCgmZGF0YS0+ZGlzcGxheSwg cGlwZSwgb3V0cHV0KSB7Cj4gKwkJaWd0X291dHB1dF9zZXRfcGlwZShvdXRwdXQsIHBpcGUpOwo+ ICsJCWRhdGEtPnBpcGUgPSBwaXBlOwo+ICsJCWRhdGEtPm91dHB1dCA9IG91dHB1dDsKPiArCQl1 cGRhdGVfZGlzcGxheShkYXRhLCB0ZXN0X3R5cGUpOwo+ICsJfQo+ICt9Cj4gKwo+ICtpZ3RfbWFp bgo+ICt7Cj4gKwlkYXRhX3QgZGF0YSA9IHt9Owo+ICsJaWd0X291dHB1dF90ICpvdXRwdXQ7Cj4g Kwlkcm1Nb2RlUmVzICpyZXM7Cj4gKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7Cj4gKwlp bnQgaSwgdGVzdF9jb25uX2NudCwgdGVzdF9jbnQ7Cj4gKwlpbnQgdGVzdHNbXSA9IHtEUk1fTU9E RV9DT05ORUNUT1JfZURQLCBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnR9Owo+ICsKPiAr CWlndF9maXh0dXJlIHsKPiArCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIo RFJJVkVSX0FOWSk7Cj4gKwkJZGF0YS5kZWJ1Z2ZzX2ZkID0gaWd0X2RlYnVnZnNfZGlyKGRhdGEu ZHJtX2ZkKTsKPiArCQlrbXN0ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7Cj4gKwkJaWd0X2Rp c3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7Cj4gKwkJaWd0X3JlcXVp cmUocmVzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLmRybV9mZCkpOwo+ICsJfQo+ICsKPiAr CWZvciAodGVzdF9jbnQgPSAwOyB0ZXN0X2NudCA8IEFSUkFZX1NJWkUodGVzdHMpOyB0ZXN0X2Nu dCsrKSB7Cj4gKwo+ICsJCWlndF9zdWJ0ZXN0X2YoImJhc2ljLWRzYy1lbmFibGUtJXMiLAo+ICsJ CQkgICAgICBrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cih0ZXN0c1t0ZXN0X2NudF0pKSB7Cj4g KwkJCXRlc3RfY29ubl9jbnQgPSAwOwo+ICsJCQlmb3IgKGkgPSAwOyBpIDwgcmVzLT5jb3VudF9j b25uZWN0b3JzOyBpKyspIHsKPiArCQkJCWNvbm5lY3RvciA9IGRybU1vZGVHZXRDb25uZWN0b3JD dXJyZW50KGRhdGEuZHJtX2ZkLAo+ICsJCQkJCQkJCSAgICAgICByZXMtPmNvbm5lY3RvcnNbaV0p Owo+ICsJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiAhPSBEUk1fTU9ERV9DT05ORUNURUQg fHwKPiArCQkJCSAgICBjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlICE9Cj4gKwkJCQkgICAgdGVz dHNbdGVzdF9jbnRdKQo+ICsJCQkJCWNvbnRpbnVlOwo+ICsJCQkJdGVzdF9jb25uX2NudCsrOwo+ ICsJCQkJb3V0cHV0ID0gaWd0X291dHB1dF9mcm9tX2Nvbm5lY3RvcigmZGF0YS5kaXNwbGF5LCBj b25uZWN0b3IpOwo+ICsJCQkJc3ByaW50ZihkYXRhLmNvbm5fbmFtZSwgIiVzLSVkIiwKPiArCQkJ CQlrbXN0ZXN0X2Nvbm5lY3Rvcl90eXBlX3N0cihjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSwK PiArCQkJCQl0ZXN0X2Nvbm5fY250KTsKPiArCQkJCWlndF9yZXF1aXJlX2YoaXNfZHBfZHNjX3N1 cHBvcnRlZCgmZGF0YSksCj4gKwkJCQkJICAgICAgIkRTQyBub3Qgc3VwcG9ydGVkIG9uIGNvbm5l Y3RvciAlcyBcbiIsCj4gKwkJCQkJICAgICAgZGF0YS5jb25uX25hbWUpOwo+ICsJCQkJaWYgKGNv bm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0 KQo+ICsJCQkJCWlndF9yZXF1aXJlX2YoaXNfZHBfZmVjX3N1cHBvcnRlZCgmZGF0YSksCj4gKwkJ CQkJCSAgICAgICJEU0MgY2Fubm90IGJlIGVuYWJsZWQgd2l0aG91dCBGRUMgb24gJXNcbiIsCj4g KwkJCQkJCSAgICAgIGRhdGEuY29ubl9uYW1lKTsKPiArCQkJCXJ1bl90ZXN0KCZkYXRhLCBvdXRw dXQsIHRlc3RfYmFzaWNfZHNjX2VuYWJsZSk7Cj4gKwkJCX0KPiArCQkJaWYgKGRhdGEub3V0cHV0 KQo+ICsJCQkJdGVzdF9jbGVhbnVwKCZkYXRhKTsKPiArCQkJaWd0X3NraXBfb24odGVzdF9jb25u X2NudCA9PSAwKTsKPiArCQl9Cj4gKwl9Cj4gKwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCWRybU1v ZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gKwkJZHJtTW9kZUZyZWVSZXNvdXJjZXMocmVz KTsKPiArCQljbG9zZShkYXRhLmRlYnVnZnNfZmQpOwo+ICsJCWNsb3NlKGRhdGEuZHJtX2ZkKTsK PiArCQlpZ3RfZGlzcGxheV9maW5pKCZkYXRhLmRpc3BsYXkpOwo+ICsJfQo+ICsJaWd0X2V4aXQo KTsKPiArfQo+IGRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1 aWxkCj4gaW5kZXggYjhhNmU2MWIuLmUxNGFiMmI0IDEwMDY0NAo+IC0tLSBhL3Rlc3RzL21lc29u LmJ1aWxkCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKPiBAQCAtMjUsNiArMjUsNyBAQCB0ZXN0 X3Byb2dzID0gWwo+ICAJJ2ttc19jcnRjX2JhY2tncm91bmRfY29sb3InLAo+ICAJJ2ttc19jdXJz b3JfY3JjJywKPiAgCSdrbXNfY3Vyc29yX2xlZ2FjeScsCj4gKwkna21zX2RwX2RzYycsCj4gIAkn a21zX2RyYXdfY3JjJywKPiAgCSdrbXNfZmJjb25fZmJ0JywKPiAgCSdrbXNfZmVuY2VfcGluX2xl YWsnLAo+IC0tIAo+IDIuMTkuMQo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ln dC1kZXYK