From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 62F626E6B6 for ; Mon, 25 Mar 2019 15:54:52 +0000 (UTC) From: Stanislav Lisovskiy Date: Mon, 25 Mar 2019 17:54:40 +0200 Message-Id: <20190325155440.22182-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t v4] igt/tests: kms_plane_stress: Add plane stress test 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: stanislav.lisovskiy@intel.com, ville.syrjala@intel.com, martin.peres@intel.com List-ID: VGhpcyB0ZXN0IGF0dGVtcHRzIHRvIHV0aWxpemUgYWxsIGNvbm5lY3RlZApvdXRwdXRzIGF0IHRo ZSBzYW1lIHRpbWUsIHVzaW5nIG1heGltdW0gcG9zc2libGUKcmVzb2x1dGlvbiBhbmQgYW1vdW50 IG9mIHBsYW5lcywgdG8gY2hlY2sgd2hldGhlcgp3ZSBhcmUgaGl0aW5nIGFueSBraW5kIG9mIGJh bmR3aWR0aCwgd2F0ZXJtYXJrIG9yCm90aGVyIGxpbWl0YXRpb25zLgoKdjI6IEFkZGVkIGNwdSBh bmQgZ3B1IGxvYWQgdGhyZWFkcywgd2hpY2ggY29uc3VtZQogICAgYWRkaXRpb25hbCBiYW5kd2lk dGguCgp2MzogUmVtb3ZlZCBiaW5hcnkgcGljdHVyZSBmaWxlLCB1c2luZyBwYXR0ZXJuIGZiCiAg ICBpbnN0ZWFkLgoKdjQ6IE1vdmVkIEZCIGNyZWF0aW9uL3JlbW92YWwgdG8gYmV0dGVyIHBsYWNl LgoKU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2IExpc292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tp eUBpbnRlbC5jb20+Ci0tLQogbGliL2lndF9rbXMuaCAgICAgICAgICAgIHwgICA3ICsKIHRlc3Rz L01ha2VmaWxlLnNvdXJjZXMgICB8ICAgMSArCiB0ZXN0cy9rbXNfcGxhbmVfc3RyZXNzLmMgfCA1 NDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0ZXN0cy9tZXNvbi5i dWlsZCAgICAgICAgfCAgIDEgKwogNCBmaWxlcyBjaGFuZ2VkLCA1NTUgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RzL2ttc19wbGFuZV9zdHJlc3MuYwoKZGlmZiAtLWdpdCBh L2xpYi9pZ3Rfa21zLmggYi9saWIvaWd0X2ttcy5oCmluZGV4IDQwN2YzZDY0Li4wZTY3ODRjYSAx MDA2NDQKLS0tIGEvbGliL2lndF9rbXMuaAorKysgYi9saWIvaWd0X2ttcy5oCkBAIC01MTksNiAr NTE5LDEzIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpZ3Rfb3V0cHV0X2lzX2Nvbm5lY3RlZChpZ3Rf b3V0cHV0X3QgKm91dHB1dCkKIAkJZm9yX2VhY2hfaWYgKCgoKG91dHB1dCkgPSAmKGRpc3BsYXkp LT5vdXRwdXRzW2Nvbl9fXSksIFwKIAkJCSAgICAgaWd0X3BpcGVfY29ubmVjdG9yX3ZhbGlkKChw aXBlKSwgKG91dHB1dCkpKSkKIAorI2RlZmluZSBmb3JfZWFjaF9waXBlX3dpdGhfbmV3X291dHB1 dChkaXNwbGF5LCBwaXBlLCBvdXRwdXQpIFwKKwkJCWZvciAoaW50IGNvbiA9IDAsIChwaXBlKSA9 IDA7IGNvbiA8IChkaXNwbGF5KS0+bl9vdXRwdXRzOyBjb24rKykgXAorCQkJCWZvcl9lYWNoX2lm KChvdXRwdXQpID0gJihkaXNwbGF5KS0+b3V0cHV0c1tjb25dKSBcCisJCQkJCWZvcl9lYWNoX2lm KChwaXBlKSA8IElHVF9NQVhfUElQRVMpIFwKKwkJCQkJCWZvcl9lYWNoX2lmKGlndF9waXBlX2Nv bm5lY3Rvcl92YWxpZCgocGlwZSksIChvdXRwdXQpKSkKKworCiBpZ3Rfb3V0cHV0X3QgKipfX2ln dF9waXBlX3BvcHVsYXRlX291dHB1dHMoaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSwKIAkJCQkJICAg aWd0X291dHB1dF90ICoqY2hvc2VuX291dHB1dHMpOwogCmRpZmYgLS1naXQgYS90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwppbmRleCA3MWNjZjAwYS4uOWQw NGQ4ODggMTAwNjQ0Ci0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKKysrIGIvdGVzdHMvTWFr ZWZpbGUuc291cmNlcwpAQCAtNTksNiArNTksNyBAQCBURVNUU19wcm9ncyA9IFwKIAlrbXNfcGxh bmVfbG93cmVzIFwKIAlrbXNfcGxhbmVfbXVsdGlwbGUgXAogCWttc19wbGFuZV9zY2FsaW5nIFwK KwlrbXNfcGxhbmVfc3RyZXNzIFwKIAlrbXNfcHJvcF9ibG9iIFwKIAlrbXNfcHJvcGVydGllcyBc CiAJa21zX3BzciBcCmRpZmYgLS1naXQgYS90ZXN0cy9rbXNfcGxhbmVfc3RyZXNzLmMgYi90ZXN0 cy9rbXNfcGxhbmVfc3RyZXNzLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAu LjhhMjQ0ZGM3Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMva21zX3BsYW5lX3N0cmVzcy5jCkBA IC0wLDAgKzEsNTQ2IEBACisvKgorICogQ29weXJpZ2h0IMKpIDIwMTYgSW50ZWwgQ29ycG9yYXRp b24KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwg dG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBh c3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKKyAqIHRvIGRl YWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0 IGxpbWl0YXRpb24KKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBw dWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAorICogYW5kL29yIHNlbGwgY29waWVzIG9m IHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCisgKiBTb2Z0 d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25k aXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1p c3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKKyAqIHBhcmFncmFwaCkgc2hhbGwgYmUg aW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKKyAq IFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRI T1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNMVURJ TkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwK KyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQu ICBJTiBOTyBFVkVOVCBTSEFMTAorICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMg QkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwg V0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklT SU5HCisgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBP UiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKwor I2luY2x1ZGUgImlndC5oIgorI2luY2x1ZGUgImlndF9yYW5kLmgiCisjaW5jbHVkZSAiZHJtdGVz dC5oIgorI2luY2x1ZGUgInN3X3N5bmMuaCIKKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUg PHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRib29sLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNp bmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDx0aW1lLmg+CisjaW5jbHVkZSA8cG9sbC5oPgor I2luY2x1ZGUgPHB0aHJlYWQuaD4KKworI2lmbmRlZiBEUk1fQ0FQX0NVUlNPUl9XSURUSAorI2Rl ZmluZSBEUk1fQ0FQX0NVUlNPUl9XSURUSCAweDgKKyNlbmRpZgorI2lmbmRlZiBEUk1fQ0FQX0NV UlNPUl9IRUlHSFQKKyNkZWZpbmUgRFJNX0NBUF9DVVJTT1JfSEVJR0hUIDB4OQorI2VuZGlmCisK KworZHJtTW9kZU1vZGVJbmZvIHVoZF9tb2RlXzYwaHogPSB7CisJLm5hbWUgPSAiMzg0MHgyMTYw QDYwaHoiLAorCS52cmVmcmVzaCA9IDYwLAorCS5jbG9jayA9IDE0MjY2NyoyLAorCS5oZGlzcGxh eSA9IDM4NDAsCisJLmhzeW5jX3N0YXJ0ID0gMTkzNioyLAorCS5oc3luY19lbmQgPSAxOTUyKjIs CisJLmh0b3RhbCA9IDIxMDQqMiwKKwkudmRpc3BsYXkgPSAyMTYwLAorCS52c3luY19zdGFydCA9 IDEwODMqMiwKKwkudnN5bmNfZW5kID0gMTA5NyoyLAorCS52dG90YWwgPSAxMTI4KjIsCisJLmZs YWdzID0gMHhhLAorfTsKKworI2RlZmluZSBOX0ZPUk1BVFMgMworc3RhdGljIGNvbnN0IHVpbnQz Ml90IGZvcm1hdHNbTl9GT1JNQVRTXSA9IHsKKwlEUk1fRk9STUFUX1hSR0I4ODg4LAorCURSTV9G T1JNQVRfUkdCNTY1LAorCURSTV9GT1JNQVRfWFJHQjIxMDEwMTAsCit9OworCisjZGVmaW5lIE5f VElMSU5HX01FVEhPRFMgMworc3RhdGljIGNvbnN0IHVpbnQ2NF90IHRpbGluZ3NbTl9USUxJTkdf TUVUSE9EU10gPSB7CisJRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorCUk5MTVfRk9STUFUX01PRF9Y X1RJTEVELAorCUk5MTVfRk9STUFUX01PRF9ZX1RJTEVELAorfTsKKworc3RhdGljIGNvbnN0IGNo YXIgKmZvcm1hdF9zdHIoaW50IGZvcm1hdF9pbmRleCkKK3sKKwlzd2l0Y2ggKGZvcm1hdHNbZm9y bWF0X2luZGV4XSkgeworCWNhc2UgRFJNX0ZPUk1BVF9SR0I1NjU6CisJCXJldHVybiAicmdiNTY1 IjsKKwljYXNlIERSTV9GT1JNQVRfWFJHQjg4ODg6CisJCXJldHVybiAieHJnYjg4ODgiOworCWNh c2UgRFJNX0ZPUk1BVF9YUkdCMjEwMTAxMDoKKwkJcmV0dXJuICJ4cmdiMjEwMTAxMCI7CisJZGVm YXVsdDoKKwkJaWd0X2Fzc2VydChmYWxzZSk7CisJfQorfQorCitzdGF0aWMgY29uc3QgY2hhciAq dGlsaW5nX3N0cihpbnQgdGlsaW5nX2luZGV4KQoreworCXN3aXRjaCAodGlsaW5nc1t0aWxpbmdf aW5kZXhdKSB7CisJY2FzZSBEUk1fRk9STUFUX01PRF9MSU5FQVI6CisJCXJldHVybiAidW50aWxl ZCI7CisJY2FzZSBJOTE1X0ZPUk1BVF9NT0RfWF9USUxFRDoKKwkJcmV0dXJuICJ4dGlsZWQiOwor CWNhc2UgSTkxNV9GT1JNQVRfTU9EX1lfVElMRUQ6CisJCXJldHVybiAieXRpbGVkIjsKKwlkZWZh dWx0OgorCQlpZ3RfYXNzZXJ0KGZhbHNlKTsKKwl9Cit9CisKKworI2RlZmluZSBNQVhfQ09SRVMg OAorCitzdHJ1Y3QgZGF0YTsKKworc3RydWN0IHRocmVhZF9jb250ZXh0IHsKKwlzdHJ1Y3QgZGF0 YSAqZGF0YTsKKwlpbnQgaWQ7CisJdm9pZCAqYnVmMTsKKwl2b2lkICpidWYyOworfTsKKworc3Ry dWN0IGdwdV9jb250ZXh0IHsKKwlzdHJ1Y3QgZGF0YSAqZGF0YTsKKwlpbnQgcGlwZTsKKwlpbnQg Y29sb3I7Cit9OworCitzdHJ1Y3QgZGF0YSB7CisJaW50IGRybV9mZDsKKwlpZ3RfZGlzcGxheV90 IGRpc3BsYXk7CisJaW50IG51bV9wbGFuZXM7CisJdWludDMyX3QgZm9ybWF0OworCXVpbnQ2NF90 IG1vZGlmaWVyOworCXVpbnQzMl90IGRldmlkOworCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsK KwlzdHJ1Y3QgaWd0X2ZiIGZiW0lHVF9NQVhfUElQRVNdOworCXN0cnVjdCBpZ3RfZmIgY3Vyc29y X2ZiW0lHVF9NQVhfUElQRVNdOworCXB0aHJlYWRfdCBjcHVfdGhyZWFkW01BWF9DT1JFU107CisJ Ym9vbCBjcHVfdGhyZWFkX3N0b3BbTUFYX0NPUkVTXTsKKwlzdHJ1Y3QgdGhyZWFkX2NvbnRleHQg Y3B1X2NvbnRleHRbTUFYX0NPUkVTXTsKKwlzdHJ1Y3QgZ3B1X2NvbnRleHQgZ3B1X2NvbnRleHRb SUdUX01BWF9QSVBFU107Cit9OworCisKK3N0cnVjdCBiYXNlX2NyYyB7CisJYm9vbCBzZXQ7CisJ aWd0X2NyY190IGNyYzsKK307CisKK2lndF9waXBlX2NyY190ICpwaXBlX2NyYzsKKworI2RlZmlu ZSBCVUZfU0laRSAxMjgqMTAyNCoxMDI0CisKK3N0YXRpYyB2b2lkICpjcHVfbG9hZCh2b2lkICpk KQoreworCWNoYXIgKmJ1ZjEsICpidWYyOworCXN0cnVjdCB0aHJlYWRfY29udGV4dCAqY29udGV4 dCA9IChzdHJ1Y3QgdGhyZWFkX2NvbnRleHQgKilkOworCXN0cnVjdCBkYXRhICpkYXRhID0gY29u dGV4dC0+ZGF0YTsKKworCWJ1ZjEgPSBjb250ZXh0LT5idWYxOworCWJ1ZjIgPSBjb250ZXh0LT5i dWYyOworCisJZGF0YS0+Y3B1X3RocmVhZF9zdG9wW2NvbnRleHQtPmlkXSA9IGZhbHNlOworCisJ d2hpbGUoIWRhdGEtPmNwdV90aHJlYWRfc3RvcFtjb250ZXh0LT5pZF0pIHsKKwkJbWVtY3B5KGJ1 ZjEsIGJ1ZjIsIEJVRl9TSVpFKTsKKwkJbWVtY3B5KGJ1ZjIsIGJ1ZjEsIEJVRl9TSVpFKTsKKwl9 CisKKwlyZXR1cm4gTlVMTDsKK30KKworCitzdGF0aWMgdm9pZCBzY3JhdGNoX2J1Zl9pbml0KHN0 cnVjdCBpZ3RfYnVmICpidWYsCisJCQlkcm1faW50ZWxfYm8gKmJvLCBpbnQgd2lkdGgsIGludCBo ZWlnaHQsIGludCBzdHJpZGUsIGludCB0aWxpbmcpCit7CisJYnVmLT5ibyA9IGJvOworCWJ1Zi0+ c3RyaWRlID0gc3RyaWRlOworCWJ1Zi0+dGlsaW5nID0gdGlsaW5nOworCWJ1Zi0+c2l6ZSA9IHdp ZHRoICogaGVpZ2h0ICogNDsKKwlidWYtPmJwcCA9IDMyOworfQorCisKK3N0YXRpYyB2b2lkIGdw dV9sb2FkKHN0cnVjdCBncHVfY29udGV4dCAqZ3B1X2NvbnRleHQpCit7CisJc3RydWN0IGludGVs X2JhdGNoYnVmZmVyICpiYXRjaCA9IE5VTEw7CisJc3RydWN0IGlndF9idWYgZHN0OworCXN0cnVj dCBkYXRhICpkYXRhID0gZ3B1X2NvbnRleHQtPmRhdGE7CisJaW50IHBpcGUgPSBncHVfY29udGV4 dC0+cGlwZTsKKwlpZ3RfZmlsbGZ1bmNfdCBncGdwdV9maWxsID0gTlVMTDsKKwlkcm1faW50ZWxf Ym8gKmJvOworCXN0cnVjdCBpZ3RfZmIgKmZiID0gJmRhdGEtPmZiW3BpcGVdOworCisJaWYgKCFk YXRhLT5kZXZpZCkgeworCQlkYXRhLT5kZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZGF0YS0+ ZHJtX2ZkKTsKKwkJaWd0X3JlcXVpcmVfZ2VtKGRhdGEtPmRybV9mZCk7CisKKwkJZGF0YS0+YnVm bWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChkYXRhLT5kcm1fZmQsIDQwOTYpOworCQlp Z3RfYXNzZXJ0KGRhdGEtPmJ1Zm1ncik7CisJfQorCisJZ3BncHVfZmlsbCA9IGlndF9nZXRfZ3Bn cHVfZmlsbGZ1bmMoZGF0YS0+ZGV2aWQpOworCisJaWd0X3JlcXVpcmVfZihncGdwdV9maWxsLAor CSAgICAgICJubyBncGdwdS1maWxsIGZ1bmN0aW9uXG4iKTsKKworCWJhdGNoID0gaW50ZWxfYmF0 Y2hidWZmZXJfYWxsb2MoZGF0YS0+YnVmbWdyLCBkYXRhLT5kZXZpZCk7CisJaWd0X2Fzc2VydChi YXRjaCk7CisKKwlibyA9IGdlbV9oYW5kbGVfdG9fbGliZHJtX2JvKGRhdGEtPmJ1Zm1nciwgZGF0 YS0+ZHJtX2ZkLCAiIiwgZmItPmdlbV9oYW5kbGUpOworCisJc2NyYXRjaF9idWZfaW5pdCgmZHN0 LCBibywgZmItPndpZHRoLCBmYi0+aGVpZ2h0LCBmYi0+c3RyaWRlc1swXSwgZmItPnRpbGluZyk7 CisKKwlncGdwdV9maWxsKGJhdGNoLAorCSAgICZkc3QsIDAsIDAsIChmYi0+d2lkdGggKiA0KSwg ZmItPmhlaWdodCwKKwkgICBncHVfY29udGV4dC0+Y29sb3IpOworCisJZ3B1X2NvbnRleHQtPmNv bG9yICs9IDB4MTA7CisKKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVlKGJhdGNoKTsKK30KKworc3Rh dGljIGlubGluZSB1aW50MzJfdCBwaXBlX3NlbGVjdChlbnVtIHBpcGUgcGlwZSkKK3sKKwlpZiAo cGlwZSA+IDEpCisJCXJldHVybiBwaXBlIDw8IERSTV9WQkxBTktfSElHSF9DUlRDX1NISUZUOwor CWVsc2UgaWYgKHBpcGUgPiAwKQorCQlyZXR1cm4gRFJNX1ZCTEFOS19TRUNPTkRBUlk7CisJZWxz ZQorCQlyZXR1cm4gMDsKK30KKworc3RhdGljIHVuc2lnbmVkIGdldF92YmxhbmsoaW50IGZkLCBl bnVtIHBpcGUgcGlwZSwgdW5zaWduZWQgZmxhZ3MpCit7CisJdW5pb24gZHJtX3dhaXRfdmJsYW5r IHZibDsKKworCW1lbXNldCgmdmJsLCAwLCBzaXplb2YodmJsKSk7CisJdmJsLnJlcXVlc3QudHlw ZSA9IERSTV9WQkxBTktfUkVMQVRJVkUgfCBwaXBlX3NlbGVjdChwaXBlKSB8IGZsYWdzOworCWlm IChkcm1Jb2N0bChmZCwgRFJNX0lPQ1RMX1dBSVRfVkJMQU5LLCAmdmJsKSkKKwkJcmV0dXJuIDA7 CisKKwlyZXR1cm4gdmJsLnJlcGx5LnNlcXVlbmNlOworfQorCisKK3N0YXRpYyBpbnQgcGxhbmVf c3RyZXNzKHN0cnVjdCBkYXRhICpkYXRhLCBpZ3Rfb3V0cHV0X3QgKm91dHB1dCwgZW51bSBwaXBl IHBpcGUsIGRybU1vZGVNb2RlSW5mbyAqbW9kZSwgYm9vbCBncHUpCit7CisJaWd0X3BsYW5lX3Qg KnBsYW5lOworCXVpbnQ2NF90IGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodDsKKwlpbnQgaTsK KwlpbnQgcmV0OworCWlndF9jcmNfdAljcmMsIGNyYzI7CisKKwlpZ3Rfb3V0cHV0X292ZXJyaWRl X21vZGUob3V0cHV0LCBtb2RlKTsKKwlyZXQgPSBpZ3RfZGlzcGxheV90cnlfY29tbWl0X2F0b21p YygmZGF0YS0+ZGlzcGxheSwKKwkJCURSTV9NT0RFX0FUT01JQ19URVNUX09OTFkgfCBEUk1fTU9E RV9BVE9NSUNfQUxMT1dfTU9ERVNFVCwgTlVMTCk7CisJaWYgKHJldCkgeworCQlyZXR1cm4gcmV0 OworCX0KKworCWlndF9vdXRwdXRfc2V0X3BpcGUob3V0cHV0LCBwaXBlKTsKKworCWlndF9kaXNw bGF5X2NvbW1pdDIoJmRhdGEtPmRpc3BsYXksIENPTU1JVF9BVE9NSUMpOworCisJbW9kZSA9IGln dF9vdXRwdXRfZ2V0X21vZGUob3V0cHV0KTsKKworCWRvX29yX2RpZShkcm1HZXRDYXAoZGF0YS0+ ZHJtX2ZkLCBEUk1fQ0FQX0NVUlNPUl9XSURUSCwgJmN1cnNvcl93aWR0aCkpOworCWRvX29yX2Rp ZShkcm1HZXRDYXAoZGF0YS0+ZHJtX2ZkLCBEUk1fQ0FQX0NVUlNPUl9IRUlHSFQsICZjdXJzb3Jf aGVpZ2h0KSk7CisKKwlpZiAoIWRhdGEtPmN1cnNvcl9mYltwaXBlXS5mYl9pZCkgeworCQlpZ3Rf Y3JlYXRlX2NvbG9yX2ZiKGRhdGEtPmRybV9mZCwgY3Vyc29yX3dpZHRoLCBjdXJzb3JfaGVpZ2h0 LAorCQkJCURSTV9GT1JNQVRfQVJHQjg4ODgsCisJCQkJTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSwKKwkJCQkJMS4wLDAuMCwwLjAsCisJCQkJCSZkYXRhLT5jdXJzb3JfZmJbcGlwZV0pOworCX0K KworCWlmICghZGF0YS0+ZmJbcGlwZV0uZmJfaWQpIHsKKwkJaWd0X2NyZWF0ZV9jb2xvcl9wYXR0 ZXJuX2ZiKGRhdGEtPmRybV9mZCwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNwbGF5LAorCQkJ CSAgICBkYXRhLT5mb3JtYXQsCisJCQkJICAgIGRhdGEtPm1vZGlmaWVyLAorCQkJCSAgICAwLjAs IDEuMCwgMC4wLCAmZGF0YS0+ZmJbcGlwZV0pOworCX0KKworCXJldCA9IGlndF9kaXNwbGF5X3Ry eV9jb21taXRfYXRvbWljKCZkYXRhLT5kaXNwbGF5LCBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZ IHwgRFJNX01PREVfQVRPTUlDX0FMTE9XX01PREVTRVQsIE5VTEwpOworCWlmIChyZXQpIHsKKwkJ aWd0X2luZm8oIlBsYW5lICVkIHBpcGUgJWQgdHJ5IGNvbW1pdCBmYWlsZWQsIGV4aXRpbmdcbiIs IGksIHBpcGUpOworCQlnb3RvIGNsZWFudXA7CisJfQorCisJaWd0X2Rpc3BsYXlfY29tbWl0Migm ZGF0YS0+ZGlzcGxheSwgQ09NTUlUX0FUT01JQyk7CisKKwlpID0gMDsKKworCWZvcl9lYWNoX3Bs YW5lX29uX3BpcGUoJmRhdGEtPmRpc3BsYXksIHBpcGUsIHBsYW5lKSB7CisKKwkJaWYgKHBsYW5l LT50eXBlID09IERSTV9QTEFORV9UWVBFX0NVUlNPUikgeworCQkJaWd0X3BsYW5lX3NldF9mYihw bGFuZSwgJmRhdGEtPmN1cnNvcl9mYltwaXBlXSk7CisJCQlpZ3RfZmJfc2V0X3NpemUoJmRhdGEt PmN1cnNvcl9mYltwaXBlXSwgcGxhbmUsIGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodCk7CisJ CQlpZ3RfcGxhbmVfc2V0X3NpemUocGxhbmUsIGN1cnNvcl93aWR0aCwgY3Vyc29yX2hlaWdodCk7 CisJCX0gZWxzZSB7CisJCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCAmZGF0YS0+ZmJbcGlwZV0p OworCQkJaWd0X3BsYW5lX3NldF9wb3NpdGlvbihwbGFuZSwgMCwgMCk7CisJCQlpZ3RfZmJfc2V0 X3NpemUoJmRhdGEtPmZiW3BpcGVdLCBwbGFuZSwgbW9kZS0+aGRpc3BsYXksIG1vZGUtPnZkaXNw bGF5KTsKKwkJCWlndF9wbGFuZV9zZXRfc2l6ZShwbGFuZSwgbW9kZS0+aGRpc3BsYXksIG1vZGUt PnZkaXNwbGF5KTsKKwkJfQorCisJCXJldCA9IGlndF9kaXNwbGF5X3RyeV9jb21taXRfYXRvbWlj KCZkYXRhLT5kaXNwbGF5LCBEUk1fTU9ERV9BVE9NSUNfVEVTVF9PTkxZIHwgRFJNX01PREVfQVRP TUlDX0FMTE9XX01PREVTRVQsIE5VTEwpOworCQlpZiAocmV0KSB7CisJCQlpZ3RfaW5mbygiUGxh bmUgJWQgcGlwZSAlZCB0cnkgY29tbWl0IGZhaWxlZCwgZXhpdGluZ1xuIiwgaSwgcGlwZSk7CisJ CQlnb3RvIGNsZWFudXA7CisJCX0KKworCQlpZiAoKytpID49IGRhdGEtPm51bV9wbGFuZXMpCisJ CQlicmVhazsKKwl9CisKKwlpZiAoZ3B1KSB7CisJCWdwdV9sb2FkKCZkYXRhLT5ncHVfY29udGV4 dFtwaXBlXSk7CisJfQorCisJaWd0X2Rpc3BsYXlfY29tbWl0MigmZGF0YS0+ZGlzcGxheSwgQ09N TUlUX0FUT01JQyk7CisKKwlnZXRfdmJsYW5rKGRhdGEtPmRpc3BsYXkuZHJtX2ZkLCBwaXBlLCBE Uk1fVkJMQU5LX05FWFRPTk1JU1MpOworCisJaWd0X3BpcGVfY3JjX2NvbGxlY3RfY3JjKHBpcGVf Y3JjLCAmY3JjKTsKKworCWdldF92YmxhbmsoZGF0YS0+ZGlzcGxheS5kcm1fZmQsIHBpcGUsIERS TV9WQkxBTktfTkVYVE9OTUlTUyk7CisKKwlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMocGlwZV9j cmMsICZjcmMyKTsKKwlpZ3RfYXNzZXJ0X2NyY19lcXVhbCgmY3JjLCAmY3JjMik7CisKKwlyZXR1 cm4gMDsKKworY2xlYW51cDoKKwlmb3JfZWFjaF9wbGFuZV9vbl9waXBlKCZkYXRhLT5kaXNwbGF5 LCBwaXBlLCBwbGFuZSkgeworCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBOVUxMKTsKKwl9CisJ aWd0X3JlbW92ZV9mYihkYXRhLT5kaXNwbGF5LmRybV9mZCwgJmRhdGEtPmZiW3BpcGVdKTsKKwlk YXRhLT5mYltwaXBlXS5mYl9pZCA9IDA7CisKKwlyZXR1cm4gcmV0OworfQorCisjZGVmaW5lIERV UkFUSU9OX1NFQyA1LjAwCisKK3N0YXRpYyBkcm1Nb2RlTW9kZUluZm8gKiBmaW5kX2hpZ2hlc3Rf bW9kZShkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3IpCit7CisJZHJtTW9kZU1vZGVJbmZvICpo aWdoZXN0X21vZGUgPSBOVUxMOworCWludCBqOworCisJZm9yIChqID0gMDsgaiA8IGNvbm5lY3Rv ci0+Y291bnRfbW9kZXM7IGorKykgeworCQlpZiAoIWhpZ2hlc3RfbW9kZSkgeworCQkJaGlnaGVz dF9tb2RlID0gJmNvbm5lY3Rvci0+bW9kZXNbal07CisJCX0KKwkJZWxzZSBpZiAoY29ubmVjdG9y LT5tb2Rlc1tqXS52ZGlzcGxheSAmJiBjb25uZWN0b3ItPm1vZGVzW2pdLmhkaXNwbGF5KSB7CisJ CQlpZiAoaGlnaGVzdF9tb2RlLT5oZGlzcGxheSA8IGNvbm5lY3Rvci0+bW9kZXNbal0uaGRpc3Bs YXkpCisJCQkJaGlnaGVzdF9tb2RlID0gJmNvbm5lY3Rvci0+bW9kZXNbal07CisJCQl9CisJfQor CisJcmV0dXJuIGhpZ2hlc3RfbW9kZTsKK30KKworc3RhdGljIHZvaWQgc3RyZXNzKHN0cnVjdCBk YXRhICpkYXRhLCBib29sIG92ZXJyaWRlLCBib29sIGdwdSwgaW50IGZvcm1hdF9pZHgsIGludCB0 aWxpbmdfaWR4KQoreworCXN0cnVjdCB0aW1lc3BlYyBzdGFydCwgZW5kOworCWlndF9vdXRwdXRf dCAqb3V0cHV0OworCWludCByZXQ7aW50IGNydGNfaWQgPSAwOworCWludCBpOworCWRybU1vZGVN b2RlSW5mbyAqaGlnaGVzdF9tb2RlID0gTlVMTDsKKworCWRybU1vZGVSZXMgKm1vZGVfcmVzb3Vy Y2VzID0gZHJtTW9kZUdldFJlc291cmNlcyhkYXRhLT5kcm1fZmQpOworCisJaWYgKCFtb2RlX3Jl c291cmNlcykgeworCQlpZ3Rfd2FybigiZHJtTW9kZUdldFJlc291cmNlcyBmYWlsZWQ6ICVzXG4i LCBzdHJlcnJvcihlcnJubykpOworCQlyZXR1cm47CisJfQorCisJY2xvY2tfZ2V0dGltZShDTE9D S19NT05PVE9OSUMsICZzdGFydCk7CisKKwlkbyB7CisJCWZvcl9lYWNoX3BpcGVfd2l0aF9uZXdf b3V0cHV0KCZkYXRhLT5kaXNwbGF5LCBwaXBlLCBvdXRwdXQpIHsKKwkJCWNydGNfaWQgPSAwOwor CQkJZm9yIChpID0gMDsgaSA8IG1vZGVfcmVzb3VyY2VzLT5jb3VudF9jb25uZWN0b3JzOyBpKysp IHsKKwkJCQlkcm1Nb2RlQ29ubmVjdG9yICpjb25uZWN0b3I7CisKKwkJCQljb25uZWN0b3IgPSBk cm1Nb2RlR2V0Q29ubmVjdG9yQ3VycmVudChkYXRhLT5kcm1fZmQsCisJCQkJCQkJICAgICAgIG1v ZGVfcmVzb3VyY2VzLT5jb25uZWN0b3JzW2ldKTsKKwkJCQlpZiAoIWNvbm5lY3RvcikgeworCQkJ CQlpZ3Rfd2FybigiY291bGQgbm90IGdldCBjb25uZWN0b3IgJWk6ICVzXG4iLCBtb2RlX3Jlc291 cmNlcy0+Y29ubmVjdG9yc1tpXSwgc3RyZXJyb3IoZXJybm8pKTsKKwkJCQkJY29udGludWU7CisJ CQkJfQorCisJCQkJaWYgKCFjb25uZWN0b3ItPmNvdW50X21vZGVzKSB7CisJCQkJCWRybU1vZGVG cmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCQkJCWNvbnRpbnVlOworCQkJCX0KKworCQkJCWlm IChjb25uZWN0b3ItPmNvbm5lY3Rpb24gPT0gRFJNX01PREVfQ09OTkVDVEVEKSB7CisJCQkJCWlm IChjcnRjX2lkID09IHBpcGUpIHsKKwkJCQkJCWlmICghb3ZlcnJpZGUpIHsKKwkJCQkJCQloaWdo ZXN0X21vZGUgPSBmaW5kX2hpZ2hlc3RfbW9kZShjb25uZWN0b3IpOworCQkJCQkJfQorCQkJCQkJ ZWxzZQorCQkJCQkJCWhpZ2hlc3RfbW9kZSA9ICZ1aGRfbW9kZV82MGh6OworCisJCQkJCQlkYXRh LT5mb3JtYXQgPSBmb3JtYXRzW2Zvcm1hdF9pZHhdOworCQkJCQkJZGF0YS0+bW9kaWZpZXIgPSB0 aWxpbmdzW3RpbGluZ19pZHhdOworCQkJCQkJZGF0YS0+bnVtX3BsYW5lcyA9IGRhdGEtPmRpc3Bs YXkucGlwZXNbcGlwZV0ubl9wbGFuZXM7CisKKwkJCQkJCWlndF9pbmZvKCJQaXBlICVzICVkIHBs YW5lcywgdXNpbmcgbW9kZToiLCBrbXN0ZXN0X3BpcGVfbmFtZShwaXBlKSwKKwkJCQkJCQkJZGF0 YS0+bnVtX3BsYW5lcyk7CisKKwkJCQkJCWttc3Rlc3RfZHVtcF9tb2RlKGhpZ2hlc3RfbW9kZSk7 CisKKwkJCQkJCXBpcGVfY3JjID0gaWd0X3BpcGVfY3JjX25ldyhkYXRhLT5kcm1fZmQsIHBpcGUs CisJCQkJCQkJSU5URUxfUElQRV9DUkNfU09VUkNFX0FVVE8pOworCisJCQkJCQlyZXQgPSBwbGFu ZV9zdHJlc3MoZGF0YSwgb3V0cHV0LCBwaXBlLCBoaWdoZXN0X21vZGUsIGdwdSk7CisKKwkJCQkJ CWlndF9waXBlX2NyY19mcmVlKHBpcGVfY3JjKTsKKwkJCQkJfQorCQkJCQljcnRjX2lkKys7CisJ CQkJfQorCQkJCWRybU1vZGVGcmVlQ29ubmVjdG9yKGNvbm5lY3Rvcik7CisJCQl9CisJCQlwaXBl Kys7CisJCX0KKwkJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZlbmQpOworCX0gd2hp bGUgKChpZ3RfdGltZV9lbGFwc2VkKCZzdGFydCwgJmVuZCkgPCBEVVJBVElPTl9TRUMpICYmICFy ZXQpOworCisJZHJtTW9kZUZyZWVSZXNvdXJjZXMobW9kZV9yZXNvdXJjZXMpOworfQorCitzdGF0 aWMgdm9pZCB0ZXN0KHN0cnVjdCBkYXRhICpkYXRhLCBib29sIG92ZXJyaWRlLCBib29sIGNwdSwg Ym9vbCBncHUpCit7CisJaW50IGk7CisJaW50IG51bWJlcl9vZl9jb3JlcyA9IG1pbihzeXNjb25m KF9TQ19OUFJPQ0VTU09SU19PTkxOKSwgTUFYX0NPUkVTKTsKKwlpbnQgZm9ybWF0X2lkeCwgdGls aW5nX2lkeDsKKworCWlndF9maXh0dXJlIHsKKwkJZm9yIChpID0gMDsgaSA8IElHVF9NQVhfUElQ RVM7IGkrKykgeworCQkJCWRhdGEtPmZiW2ldLmZiX2lkID0gMDsKKwkJCQlkYXRhLT5jdXJzb3Jf ZmJbaV0uZmJfaWQgPSAwOworCQl9CisJCWlmIChncHUpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBJ R1RfTUFYX1BJUEVTOyBpKyspIHsKKwkJCQlkYXRhLT5ncHVfY29udGV4dFtpXS5kYXRhID0gZGF0 YTsKKwkJCQlkYXRhLT5ncHVfY29udGV4dFtpXS5waXBlID0gaTsKKwkJCX0KKwkJfQorCisJCWlm IChjcHUpIHsKKwkJCWZvciAoaSA9IDA7IGkgPCBudW1iZXJfb2ZfY29yZXM7aSsrKSB7CisJCQkJ ZGF0YS0+Y3B1X2NvbnRleHRbaV0uYnVmMSA9IG1hbGxvYyhCVUZfU0laRSk7CisJCQkJZGF0YS0+ Y3B1X2NvbnRleHRbaV0uYnVmMiA9IG1hbGxvYyhCVUZfU0laRSk7CisJCQkJZGF0YS0+Y3B1X2Nv bnRleHRbaV0uaWQgPSBpOworCQkJCWRhdGEtPmNwdV9jb250ZXh0W2ldLmRhdGEgPSBkYXRhOwor CQkJCXB0aHJlYWRfY3JlYXRlKCZkYXRhLT5jcHVfdGhyZWFkW2ldLCBOVUxMLCBjcHVfbG9hZCwg KHZvaWQqKSZkYXRhLT5jcHVfY29udGV4dFtpXSk7CisJCQl9CisJCX0KKwl9CisKKwlmb3IgKGZv cm1hdF9pZHggPSAwOyBmb3JtYXRfaWR4IDwgTl9GT1JNQVRTOyBmb3JtYXRfaWR4KyspIHsKKwkJ Zm9yICh0aWxpbmdfaWR4ID0gMDsgdGlsaW5nX2lkeCA8IE5fVElMSU5HX01FVEhPRFM7IHRpbGlu Z19pZHgrKykgeworCisJCQlpZ3Rfc3VidGVzdF9mKCJzdHJlc3MlcyVzJXMtJXMtJXMiLAorCQkJ CSAgICAgIG92ZXJyaWRlID09IGZhbHNlID8gIiIgOiAiLW1vZGUtb3ZlcnJpZGUiLAorCQkJCSAg ICAgIGNwdSA9PSBmYWxzZSA/ICIiIDogIi1jcHUtbG9hZCIsCisJCQkJICAgICAgZ3B1ID09IGZh bHNlID8gIiIgOiAiLWdwdS1sb2FkIiwKKwkJCQkgICAgICBmb3JtYXRfc3RyKGZvcm1hdF9pZHgp LAorCQkJCSAgICAgIHRpbGluZ19zdHIodGlsaW5nX2lkeCkpCisKKwkJCXN0cmVzcyhkYXRhLCBv dmVycmlkZSwgZ3B1LCBmb3JtYXRfaWR4LCB0aWxpbmdfaWR4KTsKKworCQkJLyoKKwkJCSAqIEFz IHdlIGNoYW5nZSB0aWxpbmcvZm9ybWF0IHdlIG5lZWQgYSBuZXcgRkIKKwkJCSAqLworCQkJZm9y IChpID0gMDsgaSA8IElHVF9NQVhfUElQRVM7IGkrKykgeworCQkJCWlmIChkYXRhLT5mYltpXS5m Yl9pZCkgeworCQkJCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRpc3BsYXkuZHJtX2ZkLCAmZGF0YS0+ ZmJbaV0pOworCQkJCQlkYXRhLT5mYltpXS5mYl9pZCA9IDA7CisJCQkJfQorCQkJCWlmIChkYXRh LT5jdXJzb3JfZmJbaV0uZmJfaWQpIHsKKwkJCQkJaWd0X3JlbW92ZV9mYihkYXRhLT5kaXNwbGF5 LmRybV9mZCwgJmRhdGEtPmN1cnNvcl9mYltpXSk7CisJCQkJCWRhdGEtPmN1cnNvcl9mYltpXS5m Yl9pZCA9IDA7CisJCQkJfQorCQkJfQorCQl9CisJfQorCisJaWd0X2ZpeHR1cmUgeworCQlpZiAo Y3B1KSB7CisJCQlmb3IgKGkgPSAwOyBpIDwgbnVtYmVyX29mX2NvcmVzO2krKykgeworCQkJCWRh dGEtPmNwdV90aHJlYWRfc3RvcFtpXSA9IHRydWU7CisJCQkJcHRocmVhZF9qb2luKGRhdGEtPmNw dV90aHJlYWRbaV0sIE5VTEwpOworCQkJfQorCQkJZm9yIChpID0gMDtpIDwgbnVtYmVyX29mX2Nv cmVzOyBpKyspIHsKKwkJCQlmcmVlKGRhdGEtPmNwdV9jb250ZXh0W2ldLmJ1ZjEpOworCQkJCWZy ZWUoZGF0YS0+Y3B1X2NvbnRleHRbaV0uYnVmMik7CisJCQl9CisJCX0KKwl9Cit9CisKKworc3Ry dWN0IGRhdGEgZGF0YSA9IHsKKwkubnVtX3BsYW5lcyA9IDcsCisJLmZvcm1hdCA9IERSTV9GT1JN QVRfWFJHQjg4ODgsCisJLm1vZGlmaWVyID0gRFJNX0ZPUk1BVF9NT0RfTElORUFSLAorCS5kZXZp ZCA9IDAsCit9OworCisKK2lndF9tYWluCit7CisJYm9vbCBtb2RlX292ZXJyaWRlID0gZmFsc2U7 CisJYm9vbCBjcHVfbG9hZCA9IGZhbHNlOworCWJvb2wgZ3B1X2xvYWQgPSBmYWxzZTsKKworCWln dF9maXh0dXJlIHsKKwkJZGF0YS5kcm1fZmQgPSBkYXRhLmRpc3BsYXkuZHJtX2ZkID0gZHJtX29w ZW5fZHJpdmVyX21hc3RlcihEUklWRVJfQU5ZKTsKKworCQlrbXN0ZXN0X3NldF92dF9ncmFwaGlj c19tb2RlKCk7CisKKwkJaWd0X2Rpc3BsYXlfcmVxdWlyZSgmZGF0YS5kaXNwbGF5LCBkYXRhLmRp c3BsYXkuZHJtX2ZkKTsKKwkJaWd0X3JlcXVpcmUoZGF0YS5kaXNwbGF5LmlzX2F0b21pYyk7CisJ CWlndF9kaXNwbGF5X3JlcXVpcmVfb3V0cHV0KCZkYXRhLmRpc3BsYXkpOworCX0KKworCXRlc3Qo JmRhdGEsIG1vZGVfb3ZlcnJpZGUsIGNwdV9sb2FkLCBncHVfbG9hZCk7CisKKwljcHVfbG9hZCA9 IHRydWU7CisJZ3B1X2xvYWQgPSB0cnVlOworCisJdGVzdCgmZGF0YSwgbW9kZV9vdmVycmlkZSwg Y3B1X2xvYWQsIGdwdV9sb2FkKTsKKworCW1vZGVfb3ZlcnJpZGUgPSB0cnVlOworCWNwdV9sb2Fk ID0gZmFsc2U7CisJZ3B1X2xvYWQgPSBmYWxzZTsKKworCXRlc3QoJmRhdGEsIG1vZGVfb3ZlcnJp ZGUsIGNwdV9sb2FkLCBncHVfbG9hZCk7CisKKwljcHVfbG9hZCA9IHRydWU7CisJZ3B1X2xvYWQg PSB0cnVlOworCisJdGVzdCgmZGF0YSwgbW9kZV9vdmVycmlkZSwgY3B1X2xvYWQsIGdwdV9sb2Fk KTsKKworCWlndF9maXh0dXJlIHsKKwkJaWd0X2Rpc3BsYXlfZmluaSgmZGF0YS5kaXNwbGF5KTsK Kwl9Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdHMvbWVz b24uYnVpbGQgYi90ZXN0cy9tZXNvbi5idWlsZAppbmRleCA5MDE1ZjgwOS4uYzU4NjY0MmMgMTAw NjQ0Ci0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCisrKyBiL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC00 Niw2ICs0Niw3IEBAIHRlc3RfcHJvZ3MgPSBbCiAJJ2ttc19wbGFuZV9sb3dyZXMnLAogCSdrbXNf cGxhbmVfbXVsdGlwbGUnLAogCSdrbXNfcGxhbmVfc2NhbGluZycsCisJJ2ttc19wbGFuZV9zdHJl c3MnLAogCSdrbXNfcHJvcF9ibG9iJywKIAkna21zX3Byb3BlcnRpZXMnLAogCSdrbXNfcHNyJywK LS0gCjIuMTcuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2