From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1789A6E8D3 for ; Thu, 13 Dec 2018 01:04:42 +0000 (UTC) From: Anusha Date: Wed, 12 Dec 2018 16:57:39 -0800 Message-Id: <20181213005739.29199-1-anusha.srivatsa@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] 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: igt-dev@lists.freedesktop.org Cc: Anusha Srivatsa , Petri Latvala , Manasi Navare , Dhinakaran Pandiyan List-ID: RnJvbTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KClRoaXMgcGF0 Y2ggYWRkcyBhIGJhc2ljIGttcyB0ZXN0IHRvIHZhbGlkYXRlIHRoZSBkaXNwbGF5IHN0cmVhbQpj b21wcmVzc2lvbiBmdW5jdGlvbmFsaXR5IGlmIHN1cHBvcnRlZCBvbiBEUC9lRFAgY29ubmVjdG9y LgpDdXJyZW50bHkgdGhpcyBoYXMgb25seSB0d28gc3VidGVzdHMgdG8gZm9yY2UgdGhlIERTQyBv biBhbGwKdGhlIGVEUCBhbmQgRFAgY29ubmVjdG9ycyB0aGF0IHN1cHBvcnQgaXQgd2l0aCBkZWZh dWx0IHBhcmFtZXRlcnMuClRoaXMgd2lsbCBiZSBleHBhbmRlZCB0byBhZGQgbW9yZSBzdWJ0ZXN0 cyB0byB0d2VhayBEU0MgcGFyYW1ldGVycy4KCnY2OiAoZnJvbSBBbnVzaGEpCiogRml4IHJ1bl90 ZXN0KCkgKFBldHJpKQoqIEZpeCB1cGRhdGVfZGlzcGxheSgpIHRvIGF2b2lkIGxlYWtzLiAoUGV0 cmkpCnY1OgoqIEZpeCB0ZXN0IGNsZWFudXAgdG8gYXZvaWQgY3Jhc2ggKFBldHJpKQp2NDoKKiBG dXR1cmUgcHJvb2YgZm9yIG1vcmUgdGVzdCB0eXBlcyAoUGV0cmkpCiogRml4IGFscGhhYmV0aWNh bCBvcmRlciAoUGV0cmkpCiogcy9pZ3RfZGlzcGxheV9pbml0L2lndF9kaXNwbGF5X3JlcXVpcmUg KFBldHJpKQoqIFJlbW92ZSBibGFuayBsaW5lcyBhZnRlciByZXR1cm4gKFBldHJpKQp2MzoKKiBV c2UgYXJyYXkgb2YgY29ubmVjdG9ycyBhbmQgbG9vcCB0aHJvdWdoIChQZXRyaSkKKiBBbHNvIGNo ZWNrIGZvciBGRUMgb24gRFAgY29ubmVjdG9ycyAoTWFuYXNpKQoqIEFkZCBhIFBpcGVfQSByZXN0 cmljdGlvbiBvbiBEUCAoVmlsbGUpCnYyOgoqIFVzZSBJR1Qgd3JhcHBlcnMgZm9yIGFsbCAoREss IEFudG9uaW8pCiogU3BsaXQgaW50byB0d28gc3VidGVzdHMgZm9yIGVEUCBhbmQgRFAgdHlwZXMg KFBldHJpKQoKQ2M6IFBldHJpIExhdHZhbGEgPHBldHJpLmxhdHZhbGFAaW50ZWwuY29tPgpDYzog QW50b25pbyBBcmdlbnppYW5vIDxhbnRvbmlvLmFyZ2Vuemlhbm9AaW50ZWwuY29tPgpDYzogRGhp bmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5kaXlhbkBpbnRlbC5jb20+CkNjOiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogQW51c2hhIFNy aXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBbnVzaGEg U3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbmFz aSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Ci0tLQogdGVzdHMvTWFrZWZpbGUu c291cmNlcyB8ICAgMSArCiB0ZXN0cy9rbXNfZHBfZHNjLmMgICAgIHwgMjY0ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9tZXNvbi5idWlsZCAgICAgIHwg ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMjY2IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEw MDY0NCB0ZXN0cy9rbXNfZHBfZHNjLmMKCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmlsZS5zb3Vy Y2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCBlZWRkZTFlOC4uYTNjMjRjOTkgMTAw NjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFrZWZpbGUuc291 cmNlcwpAQCAtNTQsNiArNTQsNyBAQCBURVNUU19wcm9ncyA9IFwKIAlrbXNfY3J0Y19iYWNrZ3Jv dW5kX2NvbG9yIFwKIAlrbXNfY3Vyc29yX2NyYyBcCiAJa21zX2N1cnNvcl9sZWdhY3kgXAorCWtt c19kcF9kc2MgXAogCWttc19kcmF3X2NyYyBcCiAJa21zX2ZiY29uX2ZidCBcCiAJa21zX2ZlbmNl X3Bpbl9sZWFrIFwKZGlmZiAtLWdpdCBhL3Rlc3RzL2ttc19kcF9kc2MuYyBiL3Rlc3RzL2ttc19k cF9kc2MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uODg0YTc3MTcKLS0t IC9kZXYvbnVsbAorKysgYi90ZXN0cy9rbXNfZHBfZHNjLmMKQEAgLTAsMCArMSwyNjQgQEAKKy8q CisgKiBDb3B5cmlnaHQgwqkgMjAxOCBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICogdGhl IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGluY2x1 ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgorICog VEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5Z IEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQg VE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNIQUxM CisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBD TEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElP TiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9VVCBP RiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIg REVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqCisgKiBEaXNwbGF5cG9ydCBEaXNwbGF5 IFN0cmVhbSBDb21wcmVzc2lvbiB0ZXN0CisgKiBVbnRpbCB0aGUgQ1JDIHN1cHBvcnQgaXMgYWRk ZWQgdGhpcyBuZWVkcyB0byBiZSBpbnZva2VkIHdpdGggLS1pbnRlcmFjdGl2ZQorICogdG8gbWFu dWFsbHkgdmVyaWZ5IGlmIHRoZSB0ZXN0IHBhdHRlcm4gaXMgc2VlbiB3aXRob3V0IGNvcnJ1cHRp b24gZm9yIGVhY2gKKyAqIHN1YnRlc3QuCisgKgorICogQXV0aG9yczoKKyAqIE1hbmFzaSBOYXZh cmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+CisgKgorICovCisjaW5jbHVkZSAiaWd0Lmgi CisjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxn ZXRvcHQuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisjaW5jbHVk ZSA8c3RkYm9vbC5oPgorI2luY2x1ZGUgPHN0cmluZ3MuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4K KyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNsdWRlIDx0aW1l Lmg+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisKK2VudW0gZHNj X3Rlc3RfdHlwZQoreworCXRlc3RfYmFzaWNfZHNjX2VuYWJsZQorfTsKKwordHlwZWRlZiBzdHJ1 Y3QgeworCWludCBkcm1fZmQ7CisJaW50IGRlYnVnZnNfZmQ7CisJdWludDMyX3QgaWQ7CisJaWd0 X2Rpc3BsYXlfdCBkaXNwbGF5OworCXN0cnVjdCBpZ3RfZmIgZmJfdGVzdF9wYXR0ZXJuOworCWln dF9vdXRwdXRfdCAqb3V0cHV0OworCWludCBtb2RlX3ZhbGlkOworCWRybU1vZGVNb2RlSW5mbyAq bW9kZTsKKwlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7CisJZHJtTW9kZUVuY29kZXIgKmVu Y29kZXI7CisJaW50IGNydGM7CisJZW51bSBwaXBlIHBpcGU7CisJY2hhciBjb25uX25hbWVbMTI4 XTsKK30gZGF0YV90OworCitzdGF0aWMgaW5saW5lIHZvaWQgbWFudWFsKGNvbnN0IGNoYXIgKmV4 cGVjdGVkKQoreworCWlndF9kZWJ1Z19tYW51YWxfY2hlY2soImFsbCIsIGV4cGVjdGVkKTsKK30K Kworc3RhdGljIGJvb2wgaXNfZHBfZHNjX3N1cHBvcnRlZChkYXRhX3QgKmRhdGEpCit7CisJY2hh ciBmaWxlX25hbWVbMTI4XSA9IHswfTsKKwljaGFyIGJ1Zls1MTJdOworCisJc3RyY3B5KGZpbGVf bmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2Zl Y19zdXBwb3J0Iik7CisJaWd0X3JlcXVpcmUoaWd0X2RlYnVnZnNfc2ltcGxlX3JlYWQoZGF0YS0+ ZGVidWdmc19mZCwgZmlsZV9uYW1lLCBidWYsCisJCQkJCSAgICBzaXplb2YoYnVmKSkgPiAwKTsK KwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOworCisJcmV0 dXJuIHN0cnN0cihidWYsICJEU0NfU2lua19TdXBwb3J0OiB5ZXMiKTsKK30KKworc3RhdGljIGJv b2wgaXNfZHBfZmVjX3N1cHBvcnRlZChkYXRhX3QgKmRhdGEpCit7CisJY2hhciBmaWxlX25hbWVb MTI4XSA9IHswfTsKKwljaGFyIGJ1Zls1MTJdOworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+ Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7 CisJaWd0X2RlYnVnZnNfcmVhZChkYXRhLT5kcm1fZmQsIGZpbGVfbmFtZSwgYnVmKTsKKworCXJl dHVybiBzdHJzdHIoYnVmLCAiRkVDX1NpbmtfU3VwcG9ydDogeWVzIik7Cit9CisKK3N0YXRpYyBi b29sIGlzX2RwX2RzY19lbmFibGVkKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsx MjhdID0gezB9OworCWNoYXIgYnVmWzUxMl07CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5j b25uX25hbWUpOworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsK KwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOworCisJcmV0 dXJuIHN0cnN0cihidWYsICJEU0NfRW5hYmxlZDogeWVzIik7Cit9CisKK3N0YXRpYyB2b2lkIGZv cmNlX2RwX2RzY19lbmFibGUoZGF0YV90ICpkYXRhKQoreworCWNoYXIgZmlsZV9uYW1lWzEyOF0g PSB7MH07CisJaW50IHJldDsKKworCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7 CisJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOworCWlndF9kZWJ1 ZyAoIkZvcmNpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9uYW1lKTsKKwlyZXQg PSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1lLCAiMSIsIDEpOwor CWlndF9hc3NlcnRfZihyZXQgPiAwLCAiZGVidWdmc193cml0ZSBmYWlsZWQiKTsKK30KKworc3Rh dGljIHZvaWQgY2xlYXJfZHBfZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpCit7CisJY2hhciBmaWxl X25hbWVbMTI4XSA9IHswfTsKKwlpbnQgcmV0OworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+ Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7 CisJaWd0X2RlYnVnICgiQ2xlYXJpbmcgRFNDIGVuYWJsZSBvbiAlc1xuIiwgZGF0YS0+Y29ubl9u YW1lKTsKKwlyZXQgPSBpZ3Rfc3lzZnNfd3JpdGUoZGF0YS0+ZGVidWdmc19mZCwgZmlsZV9uYW1l LCAiMCIsIDEpOworCWlndF9hc3NlcnRfZihyZXQgPiAwLCAiZGVidWdmc193cml0ZSBmYWlsZWQi KTsKK30KKworc3RhdGljIHZvaWQgdGVzdF9jbGVhbnVwKGRhdGFfdCAqZGF0YSkgeworCWlndF9w bGFuZV90ICpwcmltYXJ5OworCisJaWYgKGRhdGEtPm91dHB1dCkgeworCXByaW1hcnkgPSBpZ3Rf b3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKKwkJCQkJICAgIERSTV9QTEFORV9U WVBFX1BSSU1BUlkpOworCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgTlVMTCk7CisJaWd0X2Rp c3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKworCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJt X2ZkLCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKKwl9Cit9CisKKworLyoKKyAqIFJlLXByb2Jl IGNvbm5lY3RvcnMgYW5kIGRvIGEgbW9kZXNldCB3aXRoIERTQworICoKKyAqLworc3RhdGljIHZv aWQgdXBkYXRlX2Rpc3BsYXkoZGF0YV90ICpkYXRhLCBlbnVtIGRzY190ZXN0X3R5cGUgdGVzdF90 eXBlKQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCWRhdGEtPm1vZGUgPSBpZ3Rfb3V0cHV0 X2dldF9tb2RlKGRhdGEtPm91dHB1dCk7CisJZGF0YS0+Y29ubmVjdG9yID0gZGF0YS0+b3V0cHV0 LT5jb25maWcuY29ubmVjdG9yOworCisJaWYgKGRhdGEtPmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5 cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0ICYmCisJICAgIGRhdGEtPnBpcGUg PT0gUElQRV9BKSB7CisJCWlndF9kZWJ1ZyAoIkRTQyBub3Qgc3VwcG9ydGVkIG9uIFBpcGUgQSBv biBleHRlcm5hbCBEUFxuIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAodGVzdF90eXBlID09IHRl c3RfYmFzaWNfZHNjX2VuYWJsZSkgeworCQlpZ3RfZGVidWcgKCJEU0MgaXMgc3VwcG9ydGVkIG9u ICVzXG4iLAorCQkJICAgZGF0YS0+Y29ubl9uYW1lKTsKKwkJZm9yY2VfZHBfZHNjX2VuYWJsZShk YXRhKTsKKwkJLyogQ2xlYXIgdGhlIGZiIGluIG9yZGVyIHRvIGF2b2lkIGxlYWtzICovCisJCWln dF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKKwkJaWd0 X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9mZCwgZGF0YS0+bW9kZS0+aGRpc3BsYXksCisJ CQkJICAgICAgZGF0YS0+bW9kZS0+dmRpc3BsYXksCisJCQkJICAgICAgRFJNX0ZPUk1BVF9YUkdC ODg4OCwKKwkJCQkgICAgICBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05FLAorCQkJCSAgICAgICZk YXRhLT5mYl90ZXN0X3BhdHRlcm4pOworCQlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVf dHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCQkgICAgRFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJ CWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7CisJCWln dF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisJCS8qIFVudGlsIHdlIGhhdmUgQ1JD IGNoZWNrIHN1cHBvcnQsIG1hbnVhbGx5IGNoZWNrIGlmIFJHQiB0ZXN0IHBhdHRlcm4gaGFzIG5v IGNvcnJ1cHRpb24gKi8KKwkJbWFudWFsICgiUkdCIHRlc3QgcGF0dGVybiB3aXRob3V0IGNvcnJ1 cHRpb24iKTsKKwkJaWd0X2Fzc2VydF9mKGlzX2RwX2RzY19lbmFibGVkKGRhdGEpLAorCQkJICAg ICAiRGVmYXVsdCBEU0MgZW5hYmxlIGZhaWxlZCBvbiBDb25uZWN0b3I6ICVzIFBpcGU6ICVzIiwK KwkJCSAgICAgZGF0YS0+Y29ubl9uYW1lLAorCQkJICAgICBrbXN0ZXN0X3BpcGVfbmFtZShkYXRh LT5waXBlKSk7CisJCWNsZWFyX2RwX2RzY19lbmFibGUoZGF0YSk7CisJfSBlbHNlIHsKKwkJaWd0 X2Fzc2VydCghIlVua25vd24gdGVzdCB0eXBlXG4iKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHJ1 bl90ZXN0KGRhdGFfdCAqZGF0YSwgaWd0X291dHB1dF90ICpvdXRwdXQsCisJCSAgICAgZW51bSBk c2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKK3sKKwllbnVtIHBpcGUgcGlwZTsKKworCWZvcl9lYWNo X3BpcGVfc3RhdGljKHBpcGUpIHsKKwkJaWYgKGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBl LCBvdXRwdXQpKSB7CisJCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisJCQlk YXRhLT5waXBlID0gcGlwZTsKKwkJCWRhdGEtPm91dHB1dCA9IG91dHB1dDsKKwkJCXVwZGF0ZV9k aXNwbGF5KGRhdGEsIHRlc3RfdHlwZSk7CisJCX0KKwl9Cit9CisKK2lndF9tYWluCit7CisJZGF0 YV90IGRhdGEgPSB7fTsKKwlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKKwlkcm1Nb2RlUmVzICpyZXM7 CisJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVjdG9yOworCWludCBpLCB0ZXN0X2Nvbm5fY250LCB0 ZXN0X2NudDsKKwlpbnQgdGVzdHNbXSA9IHtEUk1fTU9ERV9DT05ORUNUT1JfZURQLCBEUk1fTU9E RV9DT05ORUNUT1JfRGlzcGxheVBvcnR9OworCisJaWd0X2ZpeHR1cmUgeworCQlkYXRhLmRybV9m ZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0FOWSk7CisJCWRhdGEuZGVidWdmc19m ZCA9IGlndF9kZWJ1Z2ZzX2RpcihkYXRhLmRybV9mZCk7CisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBo aWNzX21vZGUoKTsKKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRy bV9mZCk7CisJCS8vaWd0X2Rpc3BsYXlfcmVxdWlyZV9vdXRwdXQoJmRhdGEuZGlzcGxheSk7CisJ CWlndF9yZXF1aXJlKHJlcyA9IGRybU1vZGVHZXRSZXNvdXJjZXMoZGF0YS5kcm1fZmQpKTsKKwl9 CisKKwlmb3IgKHRlc3RfY250ID0gMDsgdGVzdF9jbnQgPCBBUlJBWV9TSVpFKHRlc3RzKTsgdGVz dF9jbnQrKykgeworCisJCWlndF9zdWJ0ZXN0X2YoImJhc2ljLWRzYy1lbmFibGUtJXMiLAorCQkJ ICAgICAga21zdGVzdF9jb25uZWN0b3JfdHlwZV9zdHIodGVzdHNbdGVzdF9jbnRdKSkgeworCQkJ dGVzdF9jb25uX2NudCA9IDA7CisJCQlmb3IgKGkgPSAwOyBpIDwgcmVzLT5jb3VudF9jb25uZWN0 b3JzOyBpKyspIHsKKwkJCQljb25uZWN0b3IgPSBkcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudChk YXRhLmRybV9mZCwKKwkJCQkJCQkJICAgICAgIHJlcy0+Y29ubmVjdG9yc1tpXSk7CisJCQkJaWYg KGNvbm5lY3Rvci0+Y29ubmVjdGlvbiAhPSBEUk1fTU9ERV9DT05ORUNURUQgfHwKKwkJCQkgICAg Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAhPQorCQkJCSAgICB0ZXN0c1t0ZXN0X2NudF0pCisJ CQkJCWNvbnRpbnVlOworCQkJCXRlc3RfY29ubl9jbnQrKzsKKwkJCQlvdXRwdXQgPSBpZ3Rfb3V0 cHV0X2Zyb21fY29ubmVjdG9yKCZkYXRhLmRpc3BsYXksIGNvbm5lY3Rvcik7CisJCQkJc3ByaW50 ZihkYXRhLmNvbm5fbmFtZSwgIiVzLSVkIiwKKwkJCQkJa21zdGVzdF9jb25uZWN0b3JfdHlwZV9z dHIoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSksCisJCQkJCXRlc3RfY29ubl9jbnQpOworCQkJ CWlndF9yZXF1aXJlX2YoaXNfZHBfZHNjX3N1cHBvcnRlZCgmZGF0YSksCisJCQkJCSAgICAgICJE U0Mgbm90IHN1cHBvcnRlZCBvbiBjb25uZWN0b3IgJXMgXG4iLAorCQkJCQkgICAgICBkYXRhLmNv bm5fbmFtZSk7CisJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVf Q09OTkVDVE9SX0Rpc3BsYXlQb3J0KQorCQkJCQlpZ3RfcmVxdWlyZV9mKGlzX2RwX2ZlY19zdXBw b3J0ZWQoJmRhdGEpLAorCQkJCQkJICAgICAgIkRTQyBjYW5ub3QgYmUgZW5hYmxlZCB3aXRob3V0 IEZFQyBvbiAlc1xuIiwKKwkJCQkJCSAgICAgIGRhdGEuY29ubl9uYW1lKTsKKwkJCQlydW5fdGVz dCgmZGF0YSwgb3V0cHV0LCB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpOworCQkJfQorCQkJdGVzdF9j bGVhbnVwKCZkYXRhKTsKKwkJCWlndF9za2lwX29uKHRlc3RfY29ubl9jbnQgPT0gMCk7CisJCX0K Kwl9CisKKwlpZ3RfZml4dHVyZSB7CisJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7 CisJCWRybU1vZGVGcmVlUmVzb3VyY2VzKHJlcyk7CisJCWNsb3NlKGRhdGEuZGVidWdmc19mZCk7 CisJCWNsb3NlKGRhdGEuZHJtX2ZkKTsKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5 KTsKKwl9CisJaWd0X2V4aXQoKTsKK30KZGlmZiAtLWdpdCBhL3Rlc3RzL21lc29uLmJ1aWxkIGIv dGVzdHMvbWVzb24uYnVpbGQKaW5kZXggYjhhNmU2MWIuLmUxNGFiMmI0IDEwMDY0NAotLS0gYS90 ZXN0cy9tZXNvbi5idWlsZAorKysgYi90ZXN0cy9tZXNvbi5idWlsZApAQCAtMjUsNiArMjUsNyBA QCB0ZXN0X3Byb2dzID0gWwogCSdrbXNfY3J0Y19iYWNrZ3JvdW5kX2NvbG9yJywKIAkna21zX2N1 cnNvcl9jcmMnLAogCSdrbXNfY3Vyc29yX2xlZ2FjeScsCisJJ2ttc19kcF9kc2MnLAogCSdrbXNf ZHJhd19jcmMnLAogCSdrbXNfZmJjb25fZmJ0JywKIAkna21zX2ZlbmNlX3Bpbl9sZWFrJywKLS0g CjIuMTcuMAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K aWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2Cg==