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 04ABD6E339 for ; Tue, 4 Dec 2018 22:58:49 +0000 (UTC) From: Manasi Navare Date: Tue, 4 Dec 2018 15:01:02 -0800 Message-Id: <20181204230102.24002-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4] 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: VGhpcyBwYXRjaCBhZGRzIGEgYmFzaWMga21zIHRlc3QgdG8gdmFsaWRhdGUgdGhlIGRpc3BsYXkg c3RyZWFtCmNvbXByZXNzaW9uIGZ1bmN0aW9uYWxpdHkgaWYgc3VwcG9ydGVkIG9uIERQL2VEUCBj b25uZWN0b3IuCkN1cnJlbnRseSB0aGlzIGhhcyBvbmx5IHR3byBzdWJ0ZXN0cyB0byBmb3JjZSB0 aGUgRFNDIG9uIGFsbAp0aGUgZURQIGFuZCBEUCBjb25uZWN0b3JzIHRoYXQgc3VwcG9ydCBpdCB3 aXRoIGRlZmF1bHQgcGFyYW1ldGVycy4KVGhpcyB3aWxsIGJlIGV4cGFuZGVkIHRvIGFkZCBtb3Jl IHN1YnRlc3RzIHRvIHR3ZWFrIERTQyBwYXJhbWV0ZXJzLgoKdjQ6CiogRnV0dXJlIHByb29mIGZv ciBtb3JlIHRlc3QgdHlwZXMgKFBldHJpKQoqIEZpeCBhbHBoYWJldGljYWwgb3JkZXIgKFBldHJp KQoqIHMvaWd0X2Rpc3BsYXlfaW5pdC9pZ3RfZGlzcGxheV9yZXF1aXJlIChQZXRyaSkKKiBSZW1v dmUgYmxhbmsgbGluZXMgYWZ0ZXIgcmV0dXJuIChQZXRyaSkKdjM6CiogVXNlIGFycmF5IG9mIGNv bm5lY3RvcnMgYW5kIGxvb3AgdGhyb3VnaCAoUGV0cmkpCiogQWxzbyBjaGVjayBmb3IgRkVDIG9u IERQIGNvbm5lY3RvcnMgKE1hbmFzaSkKKiBBZGQgYSBQaXBlX0EgcmVzdHJpY3Rpb24gb24gRFAg KFZpbGxlKQp2MjoKKiBVc2UgSUdUIHdyYXBwZXJzIGZvciBhbGwgKERLLCBBbnRvbmlvKQoqIFNw bGl0IGludG8gdHdvIHN1YnRlc3RzIGZvciBlRFAgYW5kIERQIHR5cGVzIChQZXRyaSkKCkNjOiBQ ZXRyaSBMYXR2YWxhIDxwZXRyaS5sYXR2YWxhQGludGVsLmNvbT4KQ2M6IEFudG9uaW8gQXJnZW56 aWFubyA8YW50b25pby5hcmdlbnppYW5vQGludGVsLmNvbT4KQ2M6IERoaW5ha2FyYW4gUGFuZGl5 YW4gPGRoaW5ha2FyYW4ucGFuZGl5YW5AaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hh LnNyaXZhdHNhQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNp LmQubmF2YXJlQGludGVsLmNvbT4KLS0tCiB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAxICsK IHRlc3RzL2ttc19kcF9kc2MuYyAgICAgfCAyNTcgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysKIHRlc3RzL21lc29uLmJ1aWxkICAgICAgfCAgIDEgKwogMyBmaWxlcyBj aGFuZ2VkLCAyNTkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19k cF9kc2MuYwoKZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzCmluZGV4IGVlZGRlMWU4Li5hM2MyNGM5OSAxMDA2NDQKLS0tIGEvdGVzdHMv TWFrZWZpbGUuc291cmNlcworKysgYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCkBAIC01NCw2ICs1 NCw3IEBAIFRFU1RTX3Byb2dzID0gXAogCWttc19jcnRjX2JhY2tncm91bmRfY29sb3IgXAogCWtt c19jdXJzb3JfY3JjIFwKIAlrbXNfY3Vyc29yX2xlZ2FjeSBcCisJa21zX2RwX2RzYyBcCiAJa21z X2RyYXdfY3JjIFwKIAlrbXNfZmJjb25fZmJ0IFwKIAlrbXNfZmVuY2VfcGluX2xlYWsgXApkaWZm IC0tZ2l0IGEvdGVzdHMva21zX2RwX2RzYy5jIGIvdGVzdHMva21zX2RwX2RzYy5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi40ZTM3NGM2OAotLS0gL2Rldi9udWxsCisrKyBi L3Rlc3RzL2ttc19kcF9kc2MuYwpAQCAtMCwwICsxLDI1NyBAQAorLyoKKyAqIENvcHlyaWdodCDC qSAyMDE4IEludGVsIENvcnBvcmF0aW9uCisgKgorICogUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3Jh bnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEKKyAqIGNvcHkg b2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg IlNvZnR3YXJlIiksCisgKiB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0 aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisgKiB0aGUgcmlnaHRzIHRvIHVzZSwg Y29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQorICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0 IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKyAqCisgKiBUaGUgYWJvdmUgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cisg KiBwYXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRp YWwgcG9ydGlvbnMgb2YgdGhlCisgKiBTb2Z0d2FyZS4KKyAqCisgKiBUSEUgU09GVFdBUkUgSVMg UFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBP UgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RSBBTkQgTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKKyAqIFRIRSBBVVRIT1JT IE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S IE9USEVSCisgKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBU T1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORworICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJ T04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUworICogSU4g VEhFIFNPRlRXQVJFLgorICoKKyAqIERpc3BsYXlwb3J0IERpc3BsYXkgU3RyZWFtIENvbXByZXNz aW9uIHRlc3QKKyAqIFVudGlsIHRoZSBDUkMgc3VwcG9ydCBpcyBhZGRlZCB0aGlzIG5lZWRzIHRv IGJlIGludm9rZWQgd2l0aCAtLWludGVyYWN0aXZlCisgKiB0byBtYW51YWxseSB2ZXJpZnkgaWYg dGhlIHRlc3QgcGF0dGVybiBpcyBzZWVuIHdpdGhvdXQgY29ycnVwdGlvbiBmb3IgZWFjaAorICog c3VidGVzdC4KKyAqCisgKiBBdXRob3JzOgorICogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2 YXJlQGludGVsLmNvbT4KKyAqCisgKi8KKyNpbmNsdWRlICJpZ3QuaCIKKyNpbmNsdWRlICJpZ3Rf c3lzZnMuaCIKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgorI2luY2x1 ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+Cisj aW5jbHVkZSA8c3RyaW5ncy5oPgorI2luY2x1ZGUgPHVuaXN0ZC5oPgorI2luY2x1ZGUgPHN0ZGxp Yi5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHRpbWUuaD4KKyNpbmNsdWRlIDxm Y250bC5oPgorI2luY2x1ZGUgPHRlcm1pb3MuaD4KKworZW51bSBkc2NfdGVzdF90eXBlCit7CisJ dGVzdF9iYXNpY19kc2NfZW5hYmxlCit9OworCit0eXBlZGVmIHN0cnVjdCB7CisJaW50IGRybV9m ZDsKKwlpbnQgZGVidWdmc19mZDsKKwl1aW50MzJfdCBpZDsKKwlpZ3RfZGlzcGxheV90IGRpc3Bs YXk7CisJc3RydWN0IGlndF9mYiBmYl90ZXN0X3BhdHRlcm47CisJaWd0X291dHB1dF90ICpvdXRw dXQ7CisJaW50IG1vZGVfdmFsaWQ7CisJZHJtTW9kZU1vZGVJbmZvICptb2RlOworCWRybU1vZGVD b25uZWN0b3IgKmNvbm5lY3RvcjsKKwlkcm1Nb2RlRW5jb2RlciAqZW5jb2RlcjsKKwlpbnQgY3J0 YzsKKwllbnVtIHBpcGUgcGlwZTsKKwljaGFyIGNvbm5fbmFtZVsxMjhdOworfSBkYXRhX3Q7CisK K3N0YXRpYyBpbmxpbmUgdm9pZCBtYW51YWwoY29uc3QgY2hhciAqZXhwZWN0ZWQpCit7CisJaWd0 X2RlYnVnX21hbnVhbF9jaGVjaygiYWxsIiwgZXhwZWN0ZWQpOworfQorCitzdGF0aWMgYm9vbCBp c19kcF9kc2Nfc3VwcG9ydGVkKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsxMjhd ID0gezB9OworCWNoYXIgYnVmWzUxMl07CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25u X25hbWUpOworCXN0cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlp Z3RfcmVxdWlyZShpZ3RfZGVidWdmc19zaW1wbGVfcmVhZChkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxl X25hbWUsIGJ1ZiwKKwkJCQkJICAgIHNpemVvZihidWYpKSA+IDApOworCWlndF9kZWJ1Z2ZzX3Jl YWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3RyKGJ1Ziwg IkRTQ19TaW5rX1N1cHBvcnQ6IHllcyIpOworfQorCitzdGF0aWMgYm9vbCBpc19kcF9mZWNfc3Vw cG9ydGVkKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9OworCWNo YXIgYnVmWzUxMl07CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOworCXN0 cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlpZ3RfZGVidWdmc19y ZWFkKGRhdGEtPmRybV9mZCwgZmlsZV9uYW1lLCBidWYpOworCisJcmV0dXJuIHN0cnN0cihidWYs ICJGRUNfU2lua19TdXBwb3J0OiB5ZXMiKTsKK30KKworc3RhdGljIGJvb2wgaXNfZHBfZHNjX2Vu YWJsZWQoZGF0YV90ICpkYXRhKQoreworCWNoYXIgZmlsZV9uYW1lWzEyOF0gPSB7MH07CisJY2hh ciBidWZbNTEyXTsKKworCXN0cmNweShmaWxlX25hbWUsIGRhdGEtPmNvbm5fbmFtZSk7CisJc3Ry Y2F0KGZpbGVfbmFtZSwgIi9pOTE1X2RzY19mZWNfc3VwcG9ydCIpOworCWlndF9kZWJ1Z2ZzX3Jl YWQoZGF0YS0+ZHJtX2ZkLCBmaWxlX25hbWUsIGJ1Zik7CisKKwlyZXR1cm4gc3Ryc3RyKGJ1Ziwg IkRTQ19FbmFibGVkOiB5ZXMiKTsKK30KKworc3RhdGljIHZvaWQgZm9yY2VfZHBfZHNjX2VuYWJs ZShkYXRhX3QgKmRhdGEpCit7CisJY2hhciBmaWxlX25hbWVbMTI4XSA9IHswfTsKKwlpbnQgcmV0 OworCisJc3RyY3B5KGZpbGVfbmFtZSwgZGF0YS0+Y29ubl9uYW1lKTsKKwlzdHJjYXQoZmlsZV9u YW1lLCAiL2k5MTVfZHNjX2ZlY19zdXBwb3J0Iik7CisJaWd0X2RlYnVnICgiRm9yY2luZyBEU0Mg ZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5jb25uX25hbWUpOworCXJldCA9IGlndF9zeXNmc193cml0 ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIxIiwgMSk7CisJaWd0X2Fzc2VydF9mKHJl dCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOworfQorCitzdGF0aWMgdm9pZCBjbGVhcl9k cF9kc2NfZW5hYmxlKGRhdGFfdCAqZGF0YSkKK3sKKwljaGFyIGZpbGVfbmFtZVsxMjhdID0gezB9 OworCWludCByZXQ7CisKKwlzdHJjcHkoZmlsZV9uYW1lLCBkYXRhLT5jb25uX25hbWUpOworCXN0 cmNhdChmaWxlX25hbWUsICIvaTkxNV9kc2NfZmVjX3N1cHBvcnQiKTsKKwlpZ3RfZGVidWcgKCJD bGVhcmluZyBEU0MgZW5hYmxlIG9uICVzXG4iLCBkYXRhLT5jb25uX25hbWUpOworCXJldCA9IGln dF9zeXNmc193cml0ZShkYXRhLT5kZWJ1Z2ZzX2ZkLCBmaWxlX25hbWUsICIwIiwgMSk7CisJaWd0 X2Fzc2VydF9mKHJldCA+IDAsICJkZWJ1Z2ZzX3dyaXRlIGZhaWxlZCIpOworfQorCitzdGF0aWMg dm9pZCB0ZXN0X2NsZWFudXAoZGF0YV90ICpkYXRhKSB7CisJaWd0X3BsYW5lX3QgKnByaW1hcnk7 CisKKwlwcmltYXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJ CQkJCSAgICBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKKwlpZ3RfcGxhbmVfc2V0X2ZiKHByaW1h cnksIE5VTEwpOworCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxheSk7CisKKwlpZ3Rf cmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiX3Rlc3RfcGF0dGVybik7Cit9CisKKwor LyoKKyAqIFJlLXByb2JlIGNvbm5lY3RvcnMgYW5kIGRvIGEgbW9kZXNldCB3aXRoIERTQworICoK KyAqLworc3RhdGljIHZvaWQgdXBkYXRlX2Rpc3BsYXkoZGF0YV90ICpkYXRhLCBlbnVtIGRzY190 ZXN0X3R5cGUgdGVzdF90eXBlKQoreworCWlndF9wbGFuZV90ICpwcmltYXJ5OworCWRhdGEtPm1v ZGUgPSBpZ3Rfb3V0cHV0X2dldF9tb2RlKGRhdGEtPm91dHB1dCk7CisJZGF0YS0+Y29ubmVjdG9y ID0gZGF0YS0+b3V0cHV0LT5jb25maWcuY29ubmVjdG9yOworCisJaWYgKGRhdGEtPmNvbm5lY3Rv ci0+Y29ubmVjdG9yX3R5cGUgPT0gRFJNX01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0ICYmCisJ ICAgIGRhdGEtPnBpcGUgPT0gUElQRV9BKSB7CisJCWlndF9kZWJ1ZyAoIkRTQyBub3Qgc3VwcG9y dGVkIG9uIFBpcGUgQSBvbiBleHRlcm5hbCBEUFxuIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAo dGVzdF90eXBlID09IHRlc3RfYmFzaWNfZHNjX2VuYWJsZSkgeworCQlpZ3RfZGVidWcgKCJEU0Mg aXMgc3VwcG9ydGVkIG9uICVzXG4iLAorCQkJICAgZGF0YS0+Y29ubl9uYW1lKTsKKwkJZm9yY2Vf ZHBfZHNjX2VuYWJsZShkYXRhKTsKKwkJaWd0X2NyZWF0ZV9wYXR0ZXJuX2ZiKGRhdGEtPmRybV9m ZCwgZGF0YS0+bW9kZS0+aGRpc3BsYXksCisJCQkJICAgICAgZGF0YS0+bW9kZS0+dmRpc3BsYXks CisJCQkJICAgICAgRFJNX0ZPUk1BVF9YUkdCODg4OCwKKwkJCQkgICAgICBMT0NBTF9EUk1fRk9S TUFUX01PRF9OT05FLAorCQkJCSAgICAgICZkYXRhLT5mYl90ZXN0X3BhdHRlcm4pOworCQlwcmlt YXJ5ID0gaWd0X291dHB1dF9nZXRfcGxhbmVfdHlwZShkYXRhLT5vdXRwdXQsCisJCQkJCQkgICAg RFJNX1BMQU5FX1RZUEVfUFJJTUFSWSk7CisJCWlndF9wbGFuZV9zZXRfZmIocHJpbWFyeSwgJmRh dGEtPmZiX3Rlc3RfcGF0dGVybik7CisJCWlndF9kaXNwbGF5X2NvbW1pdCgmZGF0YS0+ZGlzcGxh eSk7CisJCS8qIFVudGlsIHdlIGhhdmUgQ1JDIGNoZWNrIHN1cHBvcnQsIG1hbnVhbGx5IGNoZWNr IGlmIFJHQiB0ZXN0IHBhdHRlcm4gaGFzIG5vIGNvcnJ1cHRpb24gKi8KKwkJbWFudWFsICgiUkdC IHRlc3QgcGF0dGVybiB3aXRob3V0IGNvcnJ1cHRpb24iKTsKKwkJaWd0X2Fzc2VydF9mKGlzX2Rw X2RzY19lbmFibGVkKGRhdGEpLAorCQkJICAgICAiRGVmYXVsdCBEU0MgZW5hYmxlIGZhaWxlZCBv biBDb25uZWN0b3I6ICVzIFBpcGU6ICVzIiwKKwkJCSAgICAgZGF0YS0+Y29ubl9uYW1lLAorCQkJ ICAgICBrbXN0ZXN0X3BpcGVfbmFtZShkYXRhLT5waXBlKSk7CisJCWNsZWFyX2RwX2RzY19lbmFi bGUoZGF0YSk7CisJfSBlbHNlIHsKKwkJaWd0X2Fzc2VydCghIlVua25vd24gdGVzdCB0eXBlXG4i KTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIHJ1bl90ZXN0KGRhdGFfdCAqZGF0YSwgaWd0X291dHB1 dF90ICpvdXRwdXQsCisJCSAgICAgZW51bSBkc2NfdGVzdF90eXBlIHRlc3RfdHlwZSkKK3sKKwll bnVtIHBpcGUgcGlwZTsKKworCWZvcl9lYWNoX3BpcGVfd2l0aF92YWxpZF9vdXRwdXQoJmRhdGEt PmRpc3BsYXksIHBpcGUsIG91dHB1dCkgeworCQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwg cGlwZSk7CisJCWRhdGEtPnBpcGUgPSBwaXBlOworCQlkYXRhLT5vdXRwdXQgPSBvdXRwdXQ7CisJ CXVwZGF0ZV9kaXNwbGF5KGRhdGEsIHRlc3RfdHlwZSk7CisJfQorfQorCitpZ3RfbWFpbgorewor CWRhdGFfdCBkYXRhID0ge307CisJaWd0X291dHB1dF90ICpvdXRwdXQ7CisJZHJtTW9kZVJlcyAq cmVzOworCWRybU1vZGVDb25uZWN0b3IgKmNvbm5lY3RvcjsKKwlpbnQgaSwgdGVzdF9jb25uX2Nu dCwgdGVzdF9jbnQ7CisJaW50IHRlc3RzW10gPSB7RFJNX01PREVfQ09OTkVDVE9SX2VEUCwgRFJN X01PREVfQ09OTkVDVE9SX0Rpc3BsYXlQb3J0fTsKKworCWlndF9maXh0dXJlIHsKKwkJZGF0YS5k cm1fZmQgPSBkcm1fb3Blbl9kcml2ZXJfbWFzdGVyKERSSVZFUl9BTlkpOworCQlkYXRhLmRlYnVn ZnNfZmQgPSBpZ3RfZGVidWdmc19kaXIoZGF0YS5kcm1fZmQpOworCQlrbXN0ZXN0X3NldF92dF9n cmFwaGljc19tb2RlKCk7CisJCWlndF9kaXNwbGF5X3JlcXVpcmUoJmRhdGEuZGlzcGxheSwgZGF0 YS5kcm1fZmQpOworCQlpZ3RfcmVxdWlyZShyZXMgPSBkcm1Nb2RlR2V0UmVzb3VyY2VzKGRhdGEu ZHJtX2ZkKSk7CisJfQorCisJZm9yICh0ZXN0X2NudCA9IDA7IHRlc3RfY250IDwgQVJSQVlfU0la RSh0ZXN0cyk7IHRlc3RfY250KyspIHsKKworCQlpZ3Rfc3VidGVzdF9mKCJiYXNpYy1kc2MtZW5h YmxlLSVzIiwKKwkJCSAgICAgIGttc3Rlc3RfY29ubmVjdG9yX3R5cGVfc3RyKHRlc3RzW3Rlc3Rf Y250XSkpIHsKKwkJCXRlc3RfY29ubl9jbnQgPSAwOworCQkJZm9yIChpID0gMDsgaSA8IHJlcy0+ Y291bnRfY29ubmVjdG9yczsgaSsrKSB7CisJCQkJY29ubmVjdG9yID0gZHJtTW9kZUdldENvbm5l Y3RvckN1cnJlbnQoZGF0YS5kcm1fZmQsCisJCQkJCQkJCSAgICAgICByZXMtPmNvbm5lY3RvcnNb aV0pOworCQkJCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rpb24gIT0gRFJNX01PREVfQ09OTkVDVEVE IHx8CisJCQkJICAgIGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0KKwkJCQkgICAgdGVzdHNb dGVzdF9jbnRdKQorCQkJCQljb250aW51ZTsKKwkJCQl0ZXN0X2Nvbm5fY250Kys7CisJCQkJb3V0 cHV0ID0gaWd0X291dHB1dF9mcm9tX2Nvbm5lY3RvcigmZGF0YS5kaXNwbGF5LCBjb25uZWN0b3Ip OworCQkJCXNwcmludGYoZGF0YS5jb25uX25hbWUsICIlcy0lZCIsCisJCQkJCWttc3Rlc3RfY29u bmVjdG9yX3R5cGVfc3RyKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUpLAorCQkJCQl0ZXN0X2Nv bm5fY250KTsKKwkJCQlpZ3RfcmVxdWlyZV9mKGlzX2RwX2RzY19zdXBwb3J0ZWQoJmRhdGEpLAor CQkJCQkgICAgICAiRFNDIG5vdCBzdXBwb3J0ZWQgb24gY29ubmVjdG9yICVzIFxuIiwKKwkJCQkJ ICAgICAgZGF0YS5jb25uX25hbWUpOworCQkJCWlmIChjb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBl ID09IERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydCkKKwkJCQkJaWd0X3JlcXVpcmVfZihp c19kcF9mZWNfc3VwcG9ydGVkKCZkYXRhKSwKKwkJCQkJCSAgICAgICJEU0MgY2Fubm90IGJlIGVu YWJsZWQgd2l0aG91dCBGRUMgb24gJXNcbiIsCisJCQkJCQkgICAgICBkYXRhLmNvbm5fbmFtZSk7 CisJCQkJcnVuX3Rlc3QoJmRhdGEsIG91dHB1dCwgdGVzdF9iYXNpY19kc2NfZW5hYmxlKTsKKwkJ CX0KKwkJCXRlc3RfY2xlYW51cCgmZGF0YSk7CisJCQlpZ3Rfc2tpcF9vbih0ZXN0X2Nvbm5fY250 ID09IDApOworCQl9CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQlkcm1Nb2RlRnJlZUNvbm5lY3Rv cihjb25uZWN0b3IpOworCQlkcm1Nb2RlRnJlZVJlc291cmNlcyhyZXMpOworCQljbG9zZShkYXRh LmRlYnVnZnNfZmQpOworCQljbG9zZShkYXRhLmRybV9mZCk7CisJCWlndF9kaXNwbGF5X2Zpbmko JmRhdGEuZGlzcGxheSk7CisJfQorCWlndF9leGl0KCk7Cit9CmRpZmYgLS1naXQgYS90ZXN0cy9t ZXNvbi5idWlsZCBiL3Rlc3RzL21lc29uLmJ1aWxkCmluZGV4IGI4YTZlNjFiLi5lMTRhYjJiNCAx MDA2NDQKLS0tIGEvdGVzdHMvbWVzb24uYnVpbGQKKysrIGIvdGVzdHMvbWVzb24uYnVpbGQKQEAg LTI1LDYgKzI1LDcgQEAgdGVzdF9wcm9ncyA9IFsKIAkna21zX2NydGNfYmFja2dyb3VuZF9jb2xv cicsCiAJJ2ttc19jdXJzb3JfY3JjJywKIAkna21zX2N1cnNvcl9sZWdhY3knLAorCSdrbXNfZHBf ZHNjJywKIAkna21zX2RyYXdfY3JjJywKIAkna21zX2ZiY29uX2ZidCcsCiAJJ2ttc19mZW5jZV9w aW5fbGVhaycsCi0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaWd0 LWRldgo=