From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 637FC6F4CB for ; Thu, 20 Dec 2018 19:17:55 +0000 (UTC) From: Anusha Date: Thu, 20 Dec 2018 11:10:46 -0800 Message-Id: <20181220191046.1207-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 cyB0byB0d2VhayBEU0MgcGFyYW1ldGVycy4KCnY3OiAoZnJvbSBBbnVzaGEpCiogQ29kZSBTdHls ZSBjaGFuZ2VzLihQZXRyaSkKKiBVc2UgZm9yX2VhY2hfcGlwZSgpIGluc3RlYWQgb2YgZm9yX2Vh Y2hfcGlwZV9zdGF0aWMoKS4oUGV0cmkpCiogQ29ycmVjdCBsb2dpYyBieSBhdm9pZGluZyBza2lw cGluZyBvZiBpbm5lciBmb3IgbG9vcCBjb21wbGV0ZWx5LihQZXRyaSkKdjY6IChmcm9tIEFudXNo YSkKKiBGaXggcnVuX3Rlc3QoKSAoUGV0cmkpCiogRml4IHVwZGF0ZV9kaXNwbGF5KCkgdG8gYXZv aWQgbGVha3MuIChQZXRyaSkKdjU6CiogRml4IHRlc3QgY2xlYW51cCB0byBhdm9pZCBjcmFzaCAo UGV0cmkpCnY0OgoqIEZ1dHVyZSBwcm9vZiBmb3IgbW9yZSB0ZXN0IHR5cGVzIChQZXRyaSkKKiBG aXggYWxwaGFiZXRpY2FsIG9yZGVyIChQZXRyaSkKKiBzL2lndF9kaXNwbGF5X2luaXQvaWd0X2Rp c3BsYXlfcmVxdWlyZSAoUGV0cmkpCiogUmVtb3ZlIGJsYW5rIGxpbmVzIGFmdGVyIHJldHVybiAo UGV0cmkpCnYzOgoqIFVzZSBhcnJheSBvZiBjb25uZWN0b3JzIGFuZCBsb29wIHRocm91Z2ggKFBl dHJpKQoqIEFsc28gY2hlY2sgZm9yIEZFQyBvbiBEUCBjb25uZWN0b3JzIChNYW5hc2kpCiogQWRk IGEgUGlwZV9BIHJlc3RyaWN0aW9uIG9uIERQIChWaWxsZSkKdjI6CiogVXNlIElHVCB3cmFwcGVy cyBmb3IgYWxsIChESywgQW50b25pbykKKiBTcGxpdCBpbnRvIHR3byBzdWJ0ZXN0cyBmb3IgZURQ IGFuZCBEUCB0eXBlcyAoUGV0cmkpCgpDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBp bnRlbC5jb20+CkNjOiBBbnRvbmlvIEFyZ2Vuemlhbm8gPGFudG9uaW8uYXJnZW56aWFub0BpbnRl bC5jb20+CkNjOiBEaGluYWthcmFuIFBhbmRpeWFuIDxkaGluYWthcmFuLnBhbmRpeWFuQGludGVs LmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ CkNjOiBBbnVzaGEgU3JpdmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KU2lnbmVk LW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KLS0tCiB0 ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsKIHRlc3RzL2ttc19kcF9kc2MuYyAgICAgfCAy NjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHRlc3RzL21lc29u LmJ1aWxkICAgICAgfCAgIDEgKwogMyBmaWxlcyBjaGFuZ2VkLCAyNjggaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19kcF9kc2MuYwoKZGlmZiAtLWdpdCBhL3Rlc3Rz L01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCmluZGV4IGVlZGRlMWU4 Li5hM2MyNGM5OSAxMDA2NDQKLS0tIGEvdGVzdHMvTWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0 cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC01NCw2ICs1NCw3IEBAIFRFU1RTX3Byb2dzID0gXAogCWtt c19jcnRjX2JhY2tncm91bmRfY29sb3IgXAogCWttc19jdXJzb3JfY3JjIFwKIAlrbXNfY3Vyc29y X2xlZ2FjeSBcCisJa21zX2RwX2RzYyBcCiAJa21zX2RyYXdfY3JjIFwKIAlrbXNfZmJjb25fZmJ0 IFwKIAlrbXNfZmVuY2VfcGluX2xlYWsgXApkaWZmIC0tZ2l0IGEvdGVzdHMva21zX2RwX2RzYy5j IGIvdGVzdHMva21zX2RwX2RzYy5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw Li5jOWEzODdlZAotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2ttc19kcF9kc2MuYwpAQCAtMCww ICsxLDI2NiBAQAorLyoKKyAqIENvcHlyaWdodCDCqSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisg KgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFu eSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2Np YXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlz aCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUg U29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQorICogU29mdHdhcmUg aXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u czoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0CisgKiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1 ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0 d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBX QVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJV VCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4g Tk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJ QUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRI RVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORwor ICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhF IFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4gVEhFIFNPRlRXQVJFLgorICoKKyAqIERpc3Bs YXlwb3J0IERpc3BsYXkgU3RyZWFtIENvbXByZXNzaW9uIHRlc3QKKyAqIFVudGlsIHRoZSBDUkMg c3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRzIHRvIGJlIGludm9rZWQgd2l0aCAtLWludGVyYWN0 aXZlCisgKiB0byBtYW51YWxseSB2ZXJpZnkgaWYgdGhlIHRlc3QgcGF0dGVybiBpcyBzZWVuIHdp dGhvdXQgY29ycnVwdGlvbiBmb3IgZWFjaAorICogc3VidGVzdC4KKyAqCisgKiBBdXRob3JzOgor ICogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KKyAqCisgKi8KKyNp bmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3Rfc3lzZnMuaCIKKyNpbmNsdWRlIDxlcnJuby5o PgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRp bnQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RyaW5ncy5oPgorI2luY2x1 ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgor I2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPHRlcm1pb3Mu aD4KKworZW51bSBkc2NfdGVzdF90eXBlCit7CisJdGVzdF9iYXNpY19kc2NfZW5hYmxlCit9Owor Cit0eXBlZGVmIHN0cnVjdCB7CisJaW50IGRybV9mZDsKKwlpbnQgZGVidWdmc19mZDsKKwl1aW50 MzJfdCBpZDsKKwlpZ3RfZGlzcGxheV90IGRpc3BsYXk7CisJc3RydWN0IGlndF9mYiBmYl90ZXN0 X3BhdHRlcm47CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJaW50IG1vZGVfdmFsaWQ7CisJZHJt TW9kZU1vZGVJbmZvICptb2RlOworCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlkcm1N b2RlRW5jb2RlciAqZW5jb2RlcjsKKwlpbnQgY3J0YzsKKwllbnVtIHBpcGUgcGlwZTsKKwljaGFy IGNvbm5fbmFtZVsxMjhdOworfSBkYXRhX3Q7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBtYW51YWwo Y29uc3QgY2hhciAqZXhwZWN0ZWQpCit7CisJaWd0X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwg ZXhwZWN0ZWQpOworfQorCitzdGF0aWMgYm9vbCBpc19kcF9kc2Nfc3VwcG9ydGVkKGRhdGFfdCAq ZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9OworCWNoYXIgYnVmWzUxMl07CisK KwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOworCXN0cmNhdChmaWxlX25hbWUs ICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlpZ3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1w bGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsIGJ1ZiwKKwkJCQkJICAgIHNpemVv ZihidWYpKSA+IDApOworCWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUs IGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19TaW5rX1N1cHBvcnQ6IHllcyIpOwor fQorCitzdGF0aWMgYm9vbCBpc19kcF9mZWNfc3VwcG9ydGVkKGRhdGFfdCAqZGF0YSkKK3sKKwlj aGFyIGZpbGVfbmFtZVsxMjhdID0gezB9OworCWNoYXIgYnVmWzUxMl07CisKKwlzdHJjcHkoZmls ZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2Nf ZmVjX3N1cHBvcnQiKTsKKwlpZ3RfZGVidWdmc19yZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1l LCBidWYpOworCisJcmV0dXJuIHN0cnN0cihidWYsICJGRUNfU2lua19TdXBwb3J0OiB5ZXMiKTsK K30KKworc3RhdGljIGJvb2wgaXNfZHBfZHNjX2VuYWJsZWQoZGF0YV90ICpkYXRhKQoreworCWNo YXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07CisJY2hhciBidWZbNTEyXTsKKworCXN0cmNweShmaWxl X25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7CisJc3RyY2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19m ZWNfc3VwcG9ydCIpOworCWlndF9kZWJ1Z2ZzX3JlYWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUs IGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3RyKGJ1ZiwgIkRTQ19FbmFibGVkOiB5ZXMiKTsKK30KKwor c3RhdGljIHZvaWQgZm9yY2VfZHBfZHNjX2VuYWJsZShkYXRhX3QgKmRhdGEpCit7CisJY2hhciBm aWxlX25hbWVbMTI4XSA9IHswfTsKKwlpbnQgcmV0OworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0 YS0+Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9uYW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0 Iik7CisJaWd0X2RlYnVnICgiRm9yY2luZyBEU0MgZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5jb25u X25hbWUpOworCXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25h bWUsICIxIiwgMSk7CisJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxl ZCIpOworfQorCitzdGF0aWMgdm9pZCBjbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkK K3sKKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9OworCWludCByZXQ7CisKKwlzdHJjcHkoZmls ZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2Nf ZmVjX3N1cHBvcnQiKTsKKwlpZ3RfZGVidWcgKCJDbGVhcmluZyBEU0MgZW5hYmxlIG9uICVzXG4i LCBkYXRhLT5jb25uX25hbWUpOworCXJldCA9IGlndF9zeXNmc193cml0ZShkYXRhLT5kZWJ1Z2Zz X2ZkLCBmaWxlX25hbWUsICIwIiwgMSk7CisJaWd0X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2Zz X3dyaXRlIGZhaWxlZCIpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0X2NsZWFudXAoZGF0YV90ICpk YXRhKSB7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7CisKKwlpZiAoZGF0YS0+b3V0cHV0KSB7CisJ CXByaW1hcnkgPSBpZ3Rfb3V0cHV0X2dldF9wbGFuZV90eXBlKGRhdGEtPm91dHB1dCwKKwkJCQkJ CSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwkJaWd0X3BsYW5lX3NldF9mYihwcmltYXJ5 LCBOVUxMKTsKKwkJaWd0X2Rpc3BsYXlfY29tbWl0KCZkYXRhLT5kaXNwbGF5KTsKKworCQlpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7CisJfQorfQor CisKKy8qCisgKiBSZS1wcm9iZSBjb25uZWN0b3JzIGFuZCBkbyBhIG1vZGVzZXQgd2l0aCBEU0MK KyAqCisgKi8KK3N0YXRpYyB2b2lkIHVwZGF0ZV9kaXNwbGF5KGRhdGFfdCAqZGF0YSwgZW51bSBk c2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKK3sKKwlpZ3RfcGxhbmVfdCAqcHJpbWFyeTsKKwlkYXRh LT5tb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShkYXRhLT5vdXRwdXQpOworCWRhdGEtPmNvbm5l Y3RvciA9IGRhdGEtPm91dHB1dC0+Y29uZmlnLmNvbm5lY3RvcjsKKworCWlmIChkYXRhLT5jb25u ZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCAm JgorCSAgICBkYXRhLT5waXBlID09IFBJUEVfQSkgeworCQlpZ3RfZGVidWcgKCJEU0Mgbm90IHN1 cHBvcnRlZCBvbiBQaXBlIEEgb24gZXh0ZXJuYWwgRFBcbiIpOworCQlyZXR1cm47CisJfQorCisJ aWYgKHRlc3RfdHlwZSA9PSB0ZXN0X2Jhc2ljX2RzY19lbmFibGUpIHsKKwkJaWd0X2RlYnVnICgi RFNDIGlzIHN1cHBvcnRlZCBvbiAlc1xuIiwKKwkJCSAgIGRhdGEtPmNvbm5fbmFtZSk7CisJCWZv cmNlX2RwX2RzY19lbmFibGUoZGF0YSk7CisJCS8qIENsZWFyIHRoZSBmYiBpbiBvcmRlciB0byBh dm9pZCBsZWFrcyAqLworCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rl c3RfcGF0dGVybik7CisJCWlndF9jcmVhdGVfcGF0dGVybl9mYihkYXRhLT5kcm1fZmQsIGRhdGEt Pm1vZGUtPmhkaXNwbGF5LAorCQkJCSAgICAgIGRhdGEtPm1vZGUtPnZkaXNwbGF5LAorCQkJCSAg ICAgIERSTV9GT1JNQVRfWFJHQjg4ODgsCisJCQkJICAgICAgTE9DQUxfRFJNX0ZPUk1BVF9NT0Rf Tk9ORSwKKwkJCQkgICAgICAmZGF0YS0+ZmJfdGVzdF9wYXR0ZXJuKTsKKwkJcHJpbWFyeSA9IGln dF9vdXRwdXRfZ2V0X3BsYW5lX3R5cGUoZGF0YS0+b3V0cHV0LAorCQkJCQkJICAgIERSTV9QTEFO RV9UWVBFX1BSSU1BUlkpOworCQlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1hcnksICZkYXRhLT5mYl90 ZXN0X3BhdHRlcm4pOworCQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRpc3BsYXkpOworCQkv KiBVbnRpbCB3ZSBoYXZlIENSQyBjaGVjayBzdXBwb3J0LCBtYW51YWxseSBjaGVjayBpZiBSR0Ig dGVzdCBwYXR0ZXJuIGhhcyBubyBjb3JydXB0aW9uICovCisJCW1hbnVhbCAoIlJHQiB0ZXN0IHBh dHRlcm4gd2l0aG91dCBjb3JydXB0aW9uIik7CisJCWlndF9hc3NlcnRfZihpc19kcF9kc2NfZW5h YmxlZChkYXRhKSwKKwkJCSAgICAgIkRlZmF1bHQgRFNDIGVuYWJsZSBmYWlsZWQgb24gQ29ubmVj dG9yOiAlcyBQaXBlOiAlcyIsCisJCQkgICAgIGRhdGEtPmNvbm5fbmFtZSwKKwkJCSAgICAga21z dGVzdF9waXBlX25hbWUoZGF0YS0+cGlwZSkpOworCQljbGVhcl9kcF9kc2NfZW5hYmxlKGRhdGEp OworCX0gZWxzZSB7CisJCWlndF9hc3NlcnQoISJVbmtub3duIHRlc3QgdHlwZVxuIik7CisJfQor fQorCitzdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIGlndF9vdXRwdXRfdCAqb3V0 cHV0LAorCQkgICAgIGVudW0gZHNjX3Rlc3RfdHlwZSB0ZXN0X3R5cGUpCit7CisJZW51bSBwaXBl IHBpcGU7CisKKwlmb3JfZWFjaF9waXBlKCZkYXRhLT5kaXNwbGF5LCBwaXBlKSB7CisKKwkJaWYg KGlndF9waXBlX2Nvbm5lY3Rvcl92YWxpZChwaXBlLCBvdXRwdXQpKSB7CisJCQlpZ3Rfb3V0cHV0 X3NldF9waXBlKG91dHB1dCwgcGlwZSk7CisJCQlkYXRhLT5waXBlID0gcGlwZTsKKwkJCWRhdGEt Pm91dHB1dCA9IG91dHB1dDsKKwkJCXVwZGF0ZV9kaXNwbGF5KGRhdGEsIHRlc3RfdHlwZSk7CisJ CX0KKwl9Cit9CisKK2lndF9tYWluCit7CisJZGF0YV90IGRhdGEgPSB7fTsKKwlpZ3Rfb3V0cHV0 X3QgKm91dHB1dDsKKwlkcm1Nb2RlUmVzICpyZXM7CisJZHJtTW9kZUNvbm5lY3RvciAqY29ubmVj dG9yOworCWludCBpLCB0ZXN0X2Nvbm5fY250LCB0ZXN0X2NudDsKKwlpbnQgdGVzdHNbXSA9IHtE Uk1fTU9ERV9DT05ORUNUT1JfZURQLCBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnR9Owor CisJaWd0X2ZpeHR1cmUgeworCQlkYXRhLmRybV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIo RFJJVkVSX0FOWSk7CisJCWRhdGEuZGVidWdmc19mZCA9IGlndF9kZWJ1Z2ZzX2RpcihkYXRhLmRy bV9mZCk7CisJCWttc3Rlc3Rfc2V0X3Z0X2dyYXBoaWNzX21vZGUoKTsKKwkJaWd0X2Rpc3BsYXlf cmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRybV9mZCk7CisJCS8vaWd0X2Rpc3BsYXlfcmVx dWlyZV9vdXRwdXQoJmRhdGEuZGlzcGxheSk7CisJCWlndF9yZXF1aXJlKHJlcyA9IGRybU1vZGVH ZXRSZXNvdXJjZXMoZGF0YS5kcm1fZmQpKTsKKwl9CisKKwlmb3IgKHRlc3RfY250ID0gMDsgdGVz dF9jbnQgPCBBUlJBWV9TSVpFKHRlc3RzKTsgdGVzdF9jbnQrKykgeworCisJCWlndF9zdWJ0ZXN0 X2YoImJhc2ljLWRzYy1lbmFibGUtJXMiLAorCQkJICAgICAga21zdGVzdF9jb25uZWN0b3JfdHlw ZV9zdHIodGVzdHNbdGVzdF9jbnRdKSkgeworCQkJdGVzdF9jb25uX2NudCA9IDA7CisJCQlmb3Ig KGkgPSAwOyBpIDwgcmVzLT5jb3VudF9jb25uZWN0b3JzOyBpKyspIHsKKwkJCQljb25uZWN0b3Ig PSBkcm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudChkYXRhLmRybV9mZCwKKwkJCQkJCQkJICAgICAg IHJlcy0+Y29ubmVjdG9yc1tpXSk7CisJCQkJaWYgKGNvbm5lY3Rvci0+Y29ubmVjdGlvbiAhPSBE Uk1fTU9ERV9DT05ORUNURUQgfHwKKwkJCQkgICAgY29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSAh PQorCQkJCSAgICB0ZXN0c1t0ZXN0X2NudF0pCisJCQkJCWNvbnRpbnVlOworCQkJCXRlc3RfY29u bl9jbnQrKzsKKwkJCQlvdXRwdXQgPSBpZ3Rfb3V0cHV0X2Zyb21fY29ubmVjdG9yKCZkYXRhLmRp c3BsYXksIGNvbm5lY3Rvcik7CisJCQkJc3ByaW50ZihkYXRhLmNvbm5fbmFtZSwgIiVzLSVkIiwK KwkJCQkJa21zdGVzdF9jb25uZWN0b3JfdHlwZV9zdHIoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlw ZSksCisJCQkJCXRlc3RfY29ubl9jbnQpOworCQkJCWlmKCFpc19kcF9kc2Nfc3VwcG9ydGVkKCZk YXRhKSkKKwkJCQkJaWd0X2RlYnVnKCJEU0Mgbm90IHN1cHBvcnRlZCBvbiBjb25uZWN0b3IgJXMg XG4iLAorCQkJCQkJICBkYXRhLmNvbm5fbmFtZSk7CisJCQkJCWJyZWFrOworCQkJCWlmIChjb25u ZWN0b3ItPmNvbm5lY3Rvcl90eXBlID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkK KwkJCQkJaWd0X3JlcXVpcmVfZihpc19kcF9mZWNfc3VwcG9ydGVkKCZkYXRhKSwKKwkJCQkJCSAg ICAgICJEU0MgY2Fubm90IGJlIGVuYWJsZWQgd2l0aG91dCBGRUMgb24gJXNcbiIsCisJCQkJCQkg ICAgICBkYXRhLmNvbm5fbmFtZSk7CisJCQkJcnVuX3Rlc3QoJmRhdGEsIG91dHB1dCwgdGVzdF9i YXNpY19kc2NfZW5hYmxlKTsKKwkJCX0KKwkJCXRlc3RfY2xlYW51cCgmZGF0YSk7CisJCQlpZ3Rf c2tpcF9vbih0ZXN0X2Nvbm5fY250ID09IDApOworCQl9CisJfQorCisJaWd0X2ZpeHR1cmUgewor CQlkcm1Nb2RlRnJlZUNvbm5lY3Rvcihjb25uZWN0b3IpOworCQlkcm1Nb2RlRnJlZVJlc291cmNl cyhyZXMpOworCQljbG9zZShkYXRhLmRlYnVnZnNfZmQpOworCQljbG9zZShkYXRhLmRybV9mZCk7 CisJCWlndF9kaXNwbGF5X2ZpbmkoJmRhdGEuZGlzcGxheSk7CisJfQorCWlndF9leGl0KCk7Cit9 CmRpZmYgLS1naXQgYS90ZXN0cy9tZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4 IGI4YTZlNjFiLi5lMTRhYjJiNCAxMDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIv dGVzdHMvbWVzb24uYnVpbGQKQEAgLTI1LDYgKzI1LDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21z X2NydGNfYmFja2dyb3VuZF9jb2xvcicsCiAJJ2ttc19jdXJzb3JfY3JjJywKIAkna21zX2N1cnNv cl9sZWdhY3knLAorCSdrbXNfZHBfZHNjJywKIAkna21zX2RyYXdfY3JjJywKIAkna21zX2ZiY29u X2ZidCcsCiAJJ2ttc19mZW5jZV9waW5fbGVhaycsCi0tIAoyLjE5LjIKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0Cmln dC1kZXZAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaWd0LWRldgo=