From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 900766E83E for ; Mon, 18 Nov 2019 22:17:59 +0000 (UTC) From: Umesh Nerlige Ramappa Date: Mon, 18 Nov 2019 14:17:57 -0800 Message-Id: <20191118221758.64751-1-umesh.nerlige.ramappa@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH v2 1/2] test/perf: Add test for TGL OAR unit 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: Lionel G Landwerlin , igt-dev@lists.freedesktop.org Cc: Chris Wilson List-ID: QWRkIGEgdGVzdCB0aGF0IG1lYXN1cmVzIHdvcmsgdXNpbmcgTUktUlBDIGZvciB0aGUgc3BlY2lm aWMgY29udGV4dAp3aXRob3V0IHVzaW5nIHJlcG9ydHMgZnJvbSB0aGUgT0EgYnVmZmVyLgoKVGln ZXJsYWtlIGludHJvZHVjZXMgYW4gT0EgdW5pdCB0aGF0IG1lYXN1cmVzIHdvcmsgc3BlY2lmaWMg dG8gcmVuZGVyCndvcmtsb2Fkcy4gVGhpcyBtZWFucyB3ZSBkbyBub3QgaGF2ZSB0byByZWx5IG9u IHJlcG9ydHMgZnJvbSB0aGUgT0EKYnVmZmVyIHRvIG5vcm1hbGl6ZSB0aGUgcmVwb3J0cyBvYnRh aW5lZCBmcm9tIE1JIFJFUE9SVCBQRVJGIENPVU5UCmFueW1vcmUuCgp2MjogKExpb25lbCkKLSBB ZGQgaWd0X2Ryb3Bfcm9vdCB0byBtYWtlIHRoZSB0ZXN0IHJ1biBpbiBub24tcHJpdmlsZWdlZCBt b2RlCi0gTW92ZSBwYXJhbWV0ZXIgdG8gX19wZXJmX29wZW4gaW5zaWRlIHRoZSBzYW1lIGZ1bmN0 aW9uCgpTaWduZWQtb2ZmLWJ5OiBVbWVzaCBOZXJsaWdlIFJhbWFwcGEgPHVtZXNoLm5lcmxpZ2Uu cmFtYXBwYUBpbnRlbC5jb20+Ci0tLQogdGVzdHMvcGVyZi5jIHwgMzMzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDMz MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvdGVzdHMvcGVyZi5jIGIvdGVzdHMvcGVyZi5j CmluZGV4IDUwNmI2NGVjLi4wZWUxNzBlYSAxMDA2NDQKLS0tIGEvdGVzdHMvcGVyZi5jCisrKyBi L3Rlc3RzL3BlcmYuYwpAQCAtMzYwMCw2ICszNjAwLDMzNCBAQCBnZW44X3Rlc3Rfc2luZ2xlX2N0 eF9yZW5kZXJfdGFyZ2V0X3dyaXRlc19hX2NvdW50ZXIodm9pZCkKIAl9IHdoaWxlIChXRVhJVFNU QVRVUyhjaGlsZF9yZXQpID09IEVBR0FJTik7CiB9CiAKK3N0YXRpYyB2b2lkIGdlbjEyX3Npbmds ZV9jdHhfaGVscGVyKHZvaWQpCit7CisJdWludDY0X3QgcHJvcGVydGllc1tdID0geworCQkvKiBI YXZlIGEgcmFuZG9tIHZhbHVlIGhlcmUgZm9yIHRoZSBjb250ZXh0IGlkLCBidXQgaW5pdGlhbGl6 ZQorCQkgKiBpdCBvbmNlIHlvdSBmaWd1cmUgb3V0IHRoZSBjb250ZXh0IElEIGZvciB0aGUgd29y ayB0byBiZQorCQkgKiBtZWFzdXJlZAorCQkgKi8KKwkJRFJNX0k5MTVfUEVSRl9QUk9QX0NUWF9I QU5ETEUsIFVJTlQ2NF9NQVgsCisKKwkJLyogT0EgdW5pdCBjb25maWd1cmF0aW9uOgorCQkgKiBE Uk1fSTkxNV9QRVJGX1BST1BfU0FNUExFX09BIGlzIG5vIGxvbmdlciByZXF1aXJlZCBmb3IgR2Vu MTIKKwkJICogYmVjYXVzZSB0aGUgT0FSIHVuaXQgaW5jcmVtZW50cyBjb3VudGVycyBvbmx5IGZv ciB0aGUKKwkJICogcmVsZXZhbnQgY29udGV4dC4gTm8gb3RoZXIgcGFyYW1ldGVycyBhcmUgbmVl ZGVkIHNpbmNlIHdlIGRvCisJCSAqIG5vdCByZWx5IG9uIHRoZSBPQSBidWZmZXIgYW55bW9yZSB0 byBub3JtYWxpemUgdGhlIGNvdW50ZXIKKwkJICogdmFsdWVzLgorCQkgKi8KKwkJRFJNX0k5MTVf UEVSRl9QUk9QX09BX01FVFJJQ1NfU0VULCB0ZXN0X21ldHJpY19zZXRfaWQsCisJCURSTV9JOTE1 X1BFUkZfUFJPUF9PQV9GT1JNQVQsIHRlc3Rfb2FfZm9ybWF0LAorCX07CisJc3RydWN0IGRybV9p OTE1X3BlcmZfb3Blbl9wYXJhbSBwYXJhbSA9IHsKKwkJLmZsYWdzID0gSTkxNV9QRVJGX0ZMQUdf RkRfQ0xPRVhFQywKKwkJLm51bV9wcm9wZXJ0aWVzID0gQVJSQVlfU0laRShwcm9wZXJ0aWVzKSAv IDIsCisJCS5wcm9wZXJ0aWVzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihwcm9wZXJ0aWVzKSwKKwl9 OworCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKKwlkcm1faW50ZWxfY29udGV4dCAqY29udGV4 dDAsICpjb250ZXh0MTsKKwlzdHJ1Y3QgaW50ZWxfYmF0Y2hidWZmZXIgKmJhdGNoOworCXN0cnVj dCBpZ3RfYnVmIHNyY1szXSwgZHN0WzNdOworCWRybV9pbnRlbF9ibyAqYm87CisJdWludDMyX3Qg KnJlcG9ydDBfMzIsICpyZXBvcnQxXzMyLCAqcmVwb3J0Ml8zMiwgKnJlcG9ydDNfMzI7CisJdWlu dDY0X3QgdGltZXN0YW1wMF82NCwgdGltZXN0YW1wMV82NDsKKwl1aW50MzJfdCBkZWx0YV90czY0 LCBkZWx0YV9vYTMyOworCXVpbnQ2NF90IGRlbHRhX3RzNjRfbnMsIGRlbHRhX29hMzJfbnM7CisJ dWludDMyX3QgZGVsdGFfZGVsdGE7CisJaW50IHdpZHRoID0gODAwOworCWludCBoZWlnaHQgPSA2 MDA7CisjZGVmaW5lIElOVkFMSURfQ1RYX0lEIDB4ZmZmZmZmZmYKKwl1aW50MzJfdCBjdHgwX2lk ID0gSU5WQUxJRF9DVFhfSUQ7CisJdWludDMyX3QgY3R4MV9pZCA9IElOVkFMSURfQ1RYX0lEOwor CWludCByZXQ7CisJc3RydWN0IGFjY3VtdWxhdG9yIGFjY3VtdWxhdG9yID0geworCQkuZm9ybWF0 ID0gdGVzdF9vYV9mb3JtYXQKKwl9OworCisJYnVmbWdyID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1f aW5pdChkcm1fZmQsIDQwOTYpOworCWRybV9pbnRlbF9idWZtZ3JfZ2VtX2VuYWJsZV9yZXVzZShi dWZtZ3IpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBBUlJBWV9TSVpFKHNyYyk7IGkrKykgewor CQlzY3JhdGNoX2J1Zl9pbml0KGJ1Zm1nciwgJnNyY1tpXSwgd2lkdGgsIGhlaWdodCwgMHhmZjAw MDBmZik7CisJCXNjcmF0Y2hfYnVmX2luaXQoYnVmbWdyLCAmZHN0W2ldLCB3aWR0aCwgaGVpZ2h0 LCAweDAwZmYwMGZmKTsKKwl9CisKKwliYXRjaCA9IGludGVsX2JhdGNoYnVmZmVyX2FsbG9jKGJ1 Zm1nciwgZGV2aWQpOworCisJY29udGV4dDAgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfY3JlYXRl KGJ1Zm1ncik7CisJaWd0X2Fzc2VydChjb250ZXh0MCk7CisKKwljb250ZXh0MSA9IGRybV9pbnRl bF9nZW1fY29udGV4dF9jcmVhdGUoYnVmbWdyKTsKKwlpZ3RfYXNzZXJ0KGNvbnRleHQxKTsKKwor CWlndF9kZWJ1Zygic3VibWl0dGluZyB3YXJtIHVwIHJlbmRlcl9jb3B5XG4iKTsKKworCS8qIFN1 Ym1pdCBzb21lIGVhcmx5LCB1bm1lYXN1cmVkLCB3b3JrIHRvIHRoZSBjb250ZXh0IHdlIHdhbnQK KwkgKiB0byBtZWFzdXJlIHRvIHRyeSBhbmQgY2F0Y2ggaXNzdWVzIHdpdGggaTkxNS1wZXJmCisJ ICogaW5pdGlhbGl6aW5nIHRoZSBIVyBjb250ZXh0IElEIGZvciBmaWx0ZXJpbmcuCisJICoKKwkg KiBXZSBkbyB0aGlzIGJlY2F1c2UgaTkxNS1wZXJmIHNpbmdsZSBjb250ZXh0IGZpbHRlcmluZyBo YWQKKwkgKiBwcmV2aW91c2x5IG9ubHkgcmVsaWVkIG9uIGEgaG9vayBpbnRvIGNvbnRleHQgcGlu bmluZyB0bworCSAqIGluaXRpYWxpemUgdGhlIEhXIGNvbnRleHQgSUQsIGluc3RlYWQgb2YgYWxz byB0cnlpbmcgdG8KKwkgKiBkZXRlcm1pbmUgdGhlIEhXIElEIHdoaWxlIG9wZW5pbmcgdGhlIHN0 cmVhbSwgaW4gY2FzZSBpdAorCSAqIGhhcyBhbHJlYWR5IGJlZW4gcGlubmVkLgorCSAqCisJICog VGhpcyB3YXNuJ3Qgbm90aWNlZCBieSB0aGUgcHJldmlvdXMgdW5pdCB0ZXN0IGJlY2F1c2Ugd2UK KwkgKiB3ZXJlIG9wZW5pbmcgdGhlIHN0cmVhbSB3aGlsZSB0aGUgY29udGV4dCBoYWRuJ3QgYmVl bgorCSAqIHRvdWNoZWQgb3IgcGlubmVkIHlldCBhbmQgc28gaXQgd29ya2VkIG91dCBjb3JyZWN0 bHkgdG8gd2FpdAorCSAqIGZvciB0aGUgcGlubmluZyBob29rLgorCSAqCisJICogTm93IGEgYnVn Z3kgdmVyc2lvbiBvZiBpOTE1LXBlcmYgd2lsbCBmYWlsIHRvIG1lYXN1cmUKKwkgKiBhbnl0aGlu ZyBmb3IgY29udGV4dDAgb25jZSB0aGlzIGluaXRpYWwgcmVuZGVyX2NvcHkoKSBlbmRzCisJICog dXAgcGlubmluZyB0aGUgY29udGV4dCBzaW5jZSB0aGVyZSB3b24ndCBldmVyIGJlIGEgcGlubmlu ZworCSAqIGhvb2sgY2FsbGJhY2suCisJICovCisJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRleHQw LAorCQkgICAgJnNyY1swXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAgICZkc3RbMF0sIDAs IDApOworCisJLyogSW5pdGlhbGl6ZSB0aGUgY29udGV4dCBwYXJhbWV0ZXIgdG8gdGhlIHBlcmYg b3BlbiBpb2N0bCBoZXJlICovCisJcmV0ID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2dldF9pZChj b250ZXh0MCwgJmN0eDBfaWQpOworCWlndF9hc3NlcnRfZXEocmV0LCAwKTsKKwlpZ3RfYXNzZXJ0 X25lcShjdHgwX2lkLCAweGZmZmZmZmZmKTsKKwlwcm9wZXJ0aWVzWzFdID0gY3R4MF9pZDsKKwor CWlndF9kZWJ1Zygib3BlbmluZyBpOTE1LXBlcmYgc3RyZWFtXG4iKTsKKwlzdHJlYW1fZmQgPSBf X3BlcmZfb3Blbihkcm1fZmQsICZwYXJhbSwgZmFsc2UpOworCisJYm8gPSBkcm1faW50ZWxfYm9f YWxsb2MoYnVmbWdyLCAibWlfcnBjIGRlc3QgYm8iLCA0MDk2LCA2NCk7CisKKwkvKiBTZXQgd3Jp dGUgZG9tYWluIHRvIGNwdSBicmllZmx5IHRvIGZpbGwgdGhlIGJ1ZmZlciB3aXRoIDgwcyAqLwor CXJldCA9IGRybV9pbnRlbF9ib19tYXAoYm8sIHRydWUpOworCWlndF9hc3NlcnRfZXEocmV0LCAw KTsKKwltZW1zZXQoYm8tPnZpcnR1YWwsIDB4ODAsIDIwNDgpOworCW1lbXNldChiby0+dmlydHVh bCArIDIwNDgsIDAsIDIwNDgpOworCWRybV9pbnRlbF9ib191bm1hcChibyk7CisKKwkvKiBTdWJt aXQgYW4gbWktcnBjIHRvIGNvbnRleHQwIGJlZm9yZSBtZWFzdXJhYmxlIHdvcmsgKi8KKyNkZWZp bmUgQk9fVElNRVNUQU1QX09GRlNFVDAgMTAyNAorI2RlZmluZSBCT19SRVBPUlRfT0ZGU0VUMCAw CisjZGVmaW5lIEJPX1JFUE9SVF9JRDAgMHhkZWFkYmVlZgorCWVtaXRfc3RhbGxfdGltZXN0YW1w X2FuZF9ycGMoYmF0Y2gsCisJCQkJICAgICBibywKKwkJCQkgICAgIEJPX1RJTUVTVEFNUF9PRkZT RVQwLAorCQkJCSAgICAgQk9fUkVQT1JUX09GRlNFVDAsCisJCQkJICAgICBCT19SRVBPUlRfSUQw KTsKKwlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaF93aXRoX2NvbnRleHQoYmF0Y2gsIGNvbnRleHQw KTsKKworCS8qIFRoaXMgaXMgdGhlIHdvcmsvY29udGV4dCB0aGF0IGlzIG1lYXN1cmVkIGZvciBj b3VudGVyIGluY3JlbWVudHMgKi8KKwlyZW5kZXJfY29weShiYXRjaCwgY29udGV4dDAsCisJCSAg ICAmc3JjWzBdLCAwLCAwLCB3aWR0aCwgaGVpZ2h0LAorCQkgICAgJmRzdFswXSwgMCwgMCk7CisJ aW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJhdGNoLCBjb250ZXh0MCk7CisK KwkvKiBTdWJtaXQgYW4gbWktcnBjIHRvIGNvbnRleHQxIGJlZm9yZSB3b3JrCisJICoKKwkgKiBP biBnZW4xMiwgdGhpcyBtZWFzdXJlbWVudCBzaG91bGQganVzdCB5aWVsZCBjb3VudGVycyB0aGF0 IGFyZQorCSAqIGFsbCB6ZXJvZXMsIHNpbmNlIHRoZSBjb3VudGVycyB3aWxsIG9ubHkgaW5jcmVt ZW50IGZvciB0aGUKKwkgKiBjb250ZXh0IHBhc3NlZCB0byBwZXJmIG9wZW4gaW9jdGwKKwkgKi8K KyNkZWZpbmUgQk9fVElNRVNUQU1QX09GRlNFVDIgMTA0MAorI2RlZmluZSBCT19SRVBPUlRfT0ZG U0VUMiA1MTIKKyNkZWZpbmUgQk9fUkVQT1JUX0lEMiAweDAwYzBmZmVlCisJZW1pdF9zdGFsbF90 aW1lc3RhbXBfYW5kX3JwYyhiYXRjaCwKKwkJCQkgICAgIGJvLAorCQkJCSAgICAgQk9fVElNRVNU QU1QX09GRlNFVDIsCisJCQkJICAgICBCT19SRVBPUlRfT0ZGU0VUMiwKKwkJCQkgICAgIEJPX1JF UE9SVF9JRDIpOworCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwg Y29udGV4dDEpOworCisJLyogU3VibWl0IHR3byBjb3BpZXMgb24gdGhlIG90aGVyIGNvbnRleHQg dG8gYXZvaWQgYSBmYWxzZQorCSAqIHBvc2l0aXZlIGluIGNhc2UgdGhlIGRyaXZlciBzb21laG93 IGVuZGVkIHVwIGZpbHRlcmluZyBmb3IKKwkgKiBjb250ZXh0MQorCSAqLworCXJlbmRlcl9jb3B5 KGJhdGNoLCBjb250ZXh0MSwKKwkJICAgICZzcmNbMV0sIDAsIDAsIHdpZHRoLCBoZWlnaHQsCisJ CSAgICAmZHN0WzFdLCAwLCAwKTsKKwlyZXQgPSBkcm1faW50ZWxfZ2VtX2NvbnRleHRfZ2V0X2lk KGNvbnRleHQxLCAmY3R4MV9pZCk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCWlndF9hc3Nl cnRfbmVxKGN0eDFfaWQsIDB4ZmZmZmZmZmYpOworCisJcmVuZGVyX2NvcHkoYmF0Y2gsIGNvbnRl eHQxLAorCQkgICAgJnNyY1syXSwgMCwgMCwgd2lkdGgsIGhlaWdodCwKKwkJICAgICZkc3RbMl0s IDAsIDApOworCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29u dGV4dDEpOworCisJLyogU3VibWl0IGFuIG1pLXJwYyB0byBjb250ZXh0MSBhZnRlciBhbGwgd29y ayAqLworI2RlZmluZSBCT19USU1FU1RBTVBfT0ZGU0VUMyAxMDQ4CisjZGVmaW5lIEJPX1JFUE9S VF9PRkZTRVQzIDc2OAorI2RlZmluZSBCT19SRVBPUlRfSUQzIDB4MDFjMGZmZWUKKwllbWl0X3N0 YWxsX3RpbWVzdGFtcF9hbmRfcnBjKGJhdGNoLAorCQkJCSAgICAgYm8sCisJCQkJICAgICBCT19U SU1FU1RBTVBfT0ZGU0VUMywKKwkJCQkgICAgIEJPX1JFUE9SVF9PRkZTRVQzLAorCQkJCSAgICAg Qk9fUkVQT1JUX0lEMyk7CisJaW50ZWxfYmF0Y2hidWZmZXJfZmx1c2hfd2l0aF9jb250ZXh0KGJh dGNoLCBjb250ZXh0MSk7CisKKwkvKiBTdWJtaXQgYW4gbWktcnBjIHRvIGNvbnRleHQwIGFmdGVy IGFsbCBtZWFzdXJhYmxlIHdvcmsgKi8KKyNkZWZpbmUgQk9fVElNRVNUQU1QX09GRlNFVDEgMTAz MgorI2RlZmluZSBCT19SRVBPUlRfT0ZGU0VUMSAyNTYKKyNkZWZpbmUgQk9fUkVQT1JUX0lEMSAw eGJlZWZiZWVmCisJZW1pdF9zdGFsbF90aW1lc3RhbXBfYW5kX3JwYyhiYXRjaCwKKwkJCQkgICAg IGJvLAorCQkJCSAgICAgQk9fVElNRVNUQU1QX09GRlNFVDEsCisJCQkJICAgICBCT19SRVBPUlRf T0ZGU0VUMSwKKwkJCQkgICAgIEJPX1JFUE9SVF9JRDEpOworCWludGVsX2JhdGNoYnVmZmVyX2Zs dXNoX3dpdGhfY29udGV4dChiYXRjaCwgY29udGV4dDApOworCisJLyogU2V0IHdyaXRlIGRvbWFp biB0byBub25lICovCisJcmV0ID0gZHJtX2ludGVsX2JvX21hcChibywgZmFsc2UpOworCWlndF9h c3NlcnRfZXEocmV0LCAwKTsKKworCS8qIFNhbml0eSBjaGVjayByZXBvcnRzCisJICogcmVwb3J0 WF8zMlswXTogcmVwb3J0IGlkIHBhc3NlZCB3aXRoIG1pLXJwYworCSAqIHJlcG9ydFhfMzJbMV06 IHRpbWVzdGFtcAorCSAqIHJlcG9ydFhfMzJbMl06IGNvbnRleHQgaWQKKwkgKgorCSAqIHJlcG9y dDBfMzI6IHN0YXJ0IG9mIG1lYXN1cmFibGUgd29yaworCSAqIHJlcG9ydDFfMzI6IGVuZCBvZiBt ZWFzdXJhYmxlIHdvcmsKKwkgKiByZXBvcnQyXzMyOiBzdGFydCBvZiBvdGhlciB3b3JrCisJICog cmVwb3J0M18zMjogZW5kIG9mIG90aGVyIHdvcmsKKwkgKi8KKwlyZXBvcnQwXzMyID0gYm8tPnZp cnR1YWw7CisJaWd0X2Fzc2VydF9lcShyZXBvcnQwXzMyWzBdLCAweGRlYWRiZWVmKTsKKwlpZ3Rf YXNzZXJ0X25lcShyZXBvcnQwXzMyWzFdLCAwKTsKKwljdHgwX2lkID0gcmVwb3J0MF8zMlsyXTsK KwlpZ3RfZGVidWcoIk1JX1JQQyhzdGFydCkgQ1RYIElEOiAldVxuIiwgY3R4MF9pZCk7CisJZHVt cF9yZXBvcnQocmVwb3J0MF8zMiwgNjQsICJyZXBvcnQwXzMyIik7CisKKwlyZXBvcnQxXzMyID0g cmVwb3J0MF8zMiArIDY0OworCWlndF9hc3NlcnRfZXEocmVwb3J0MV8zMlswXSwgMHhiZWVmYmVl Zik7CisJaWd0X2Fzc2VydF9uZXEocmVwb3J0MV8zMlsxXSwgMCk7CisJY3R4MV9pZCA9IHJlcG9y dDFfMzJbMl07CisJZHVtcF9yZXBvcnQocmVwb3J0MV8zMiwgNjQsICJyZXBvcnQxXzMyIik7CisK KwkvKiBWZXJpZnkgdGhhdCBjb3VudGVycyBpbiBjb250ZXh0MSBhcmUgYWxsIHplcm9lcyAqLwor CXJlcG9ydDJfMzIgPSByZXBvcnQwXzMyICsgMTI4OworCWlndF9hc3NlcnRfZXEocmVwb3J0Ml8z MlswXSwgMHgwMGMwZmZlZSk7CisJaWd0X2Fzc2VydF9uZXEocmVwb3J0Ml8zMlsxXSwgMCk7CisJ ZHVtcF9yZXBvcnQocmVwb3J0Ml8zMiwgNjQsICJyZXBvcnQyXzMyIik7CisJaWd0X2Fzc2VydF9l cSgwLCBtZW1jbXAoJnJlcG9ydDJfMzJbNF0sCisJCQkJYm8tPnZpcnR1YWwgKyAyMDQ4LAorCQkJ CTI0MCkpOworCisJcmVwb3J0M18zMiA9IHJlcG9ydDBfMzIgKyAxOTI7CisJaWd0X2Fzc2VydF9l cShyZXBvcnQzXzMyWzBdLCAweDAxYzBmZmVlKTsKKwlpZ3RfYXNzZXJ0X25lcShyZXBvcnQzXzMy WzFdLCAwKTsKKwlkdW1wX3JlcG9ydChyZXBvcnQzXzMyLCA2NCwgInJlcG9ydDNfMzIiKTsKKwlp Z3RfYXNzZXJ0X2VxKDAsIG1lbWNtcCgmcmVwb3J0M18zMls0XSwKKwkJCQliby0+dmlydHVhbCAr IDIwNDgsCisJCQkJMjQwKSk7CisKKwkvKiBBY2N1bXVsYXRlIGRlbHRhcyBmb3IgY291bnRlcnMg LSBBMCwgQTIxIGFuZCBBMjYgKi8KKwltZW1zZXQoYWNjdW11bGF0b3IuZGVsdGFzLCAwLCBzaXpl b2YoYWNjdW11bGF0b3IuZGVsdGFzKSk7CisJYWNjdW11bGF0ZV9yZXBvcnRzKCZhY2N1bXVsYXRv ciwgcmVwb3J0MF8zMiwgcmVwb3J0MV8zMik7CisJaWd0X2RlYnVnKCJ0b3RhbDogQTAgPSAlIlBS SXU2NCIsIEEyMSA9ICUiUFJJdTY0IiwgQTI2ID0gJSJQUkl1NjQiXG4iLAorCQkJYWNjdW11bGF0 b3IuZGVsdGFzWzIgKyAwXSwKKwkJCWFjY3VtdWxhdG9yLmRlbHRhc1syICsgMjFdLAorCQkJYWNj dW11bGF0b3IuZGVsdGFzWzIgKyAyNl0pOworCisJaWd0X2RlYnVnKCJvYV90aW1lc3RhbXAzMiAw ID0gJXVcbiIsIHJlcG9ydDBfMzJbMV0pOworCWlndF9kZWJ1Zygib2FfdGltZXN0YW1wMzIgMSA9 ICV1XG4iLCByZXBvcnQxXzMyWzFdKTsKKwlpZ3RfZGVidWcoImN0eF9pZCAwID0gJXVcbiIsIHJl cG9ydDBfMzJbMl0pOworCWlndF9kZWJ1ZygiY3R4X2lkIDEgPSAldVxuIiwgcmVwb3J0MV8zMlsy XSk7CisKKwkvKiBUaGUgZGVsdGEgYXMgY2FsY3VsYXRlZCB2aWEgdGhlIFBJUEVfQ09OVFJPTCB0 aW1lc3RhbXAgb3IKKwkgKiB0aGUgT0EgcmVwb3J0IHRpbWVzdGFtcHMgc2hvdWxkIGJlIGFsbW9z dCBpZGVudGljYWwgYnV0CisJICogYWxsb3cgYSA1MDAgbmFub3NlY29uZHMgbWFyZ2luLgorCSAq LworCXRpbWVzdGFtcDBfNjQgPSAqKHVpbnQ2NF90ICopKCgodWludDhfdCAqKWJvLT52aXJ0dWFs KSArIEJPX1RJTUVTVEFNUF9PRkZTRVQwKTsKKwl0aW1lc3RhbXAxXzY0ID0gKih1aW50NjRfdCAq KSgoKHVpbnQ4X3QgKiliby0+dmlydHVhbCkgKyBCT19USU1FU1RBTVBfT0ZGU0VUMSk7CisKKwlp Z3RfZGVidWcoInRzX3RpbWVzdGFtcDY0IDAgPSAlIlBSSXU2NCJcbiIsIHRpbWVzdGFtcDBfNjQp OworCWlndF9kZWJ1ZygidHNfdGltZXN0YW1wNjQgMSA9ICUiUFJJdTY0IlxuIiwgdGltZXN0YW1w MV82NCk7CisKKwlkZWx0YV90czY0ID0gdGltZXN0YW1wMV82NCAtIHRpbWVzdGFtcDBfNjQ7CisJ ZGVsdGFfb2EzMiA9IHJlcG9ydDFfMzJbMV0gLSByZXBvcnQwXzMyWzFdOworCisJLyogU2FuaXR5 IGNoZWNrIHRoYXQgd2UgY2FuIHBhc3MgdGhlIGRlbHRhIHRvIHRpbWViYXNlX3NjYWxlICovCisJ aWd0X2Fzc2VydChkZWx0YV90czY0IDwgVUlOVDMyX01BWCk7CisJZGVsdGFfb2EzMl9ucyA9IHRp bWViYXNlX3NjYWxlKGRlbHRhX29hMzIpOworCWRlbHRhX3RzNjRfbnMgPSB0aW1lYmFzZV9zY2Fs ZShkZWx0YV90czY0KTsKKworCWlndF9kZWJ1Zygib2EzMiBkZWx0YSA9ICV1LCA9ICV1bnNcbiIs CisJCQlkZWx0YV9vYTMyLCAodW5zaWduZWQpZGVsdGFfb2EzMl9ucyk7CisJaWd0X2RlYnVnKCJ0 czY0IGRlbHRhID0gJXUsID0gJXVuc1xuIiwKKwkJCWRlbHRhX3RzNjQsICh1bnNpZ25lZClkZWx0 YV90czY0X25zKTsKKworCWRlbHRhX2RlbHRhID0gZGVsdGFfdHM2NF9ucyA+IGRlbHRhX29hMzJf bnMgPworCQkgICAgICAoZGVsdGFfdHM2NF9ucyAtIGRlbHRhX29hMzJfbnMpIDoKKwkJICAgICAg KGRlbHRhX29hMzJfbnMgLSBkZWx0YV90czY0X25zKTsKKwlpZiAoZGVsdGFfZGVsdGEgPiA1MDAp IHsKKwkJaWd0X2RlYnVnKCJkZWx0YV9kZWx0YSBleGNlZWRzIG1hcmdpbiwgc2tpcHBpbmcuLlxu Iik7CisJCWV4aXQoRUFHQUlOKTsKKwl9CisKKwlpZ3RfZGVidWcoIm4gc2FtcGxlcyB3cml0dGVu ID0gJSJQUkl1NjQiLyUiUFJJdTY0IiAoJWl4JWkpXG4iLAorCQkgIGFjY3VtdWxhdG9yLmRlbHRh c1syICsgMjFdLAorCQkgIGFjY3VtdWxhdG9yLmRlbHRhc1syICsgMjZdLAorCQkgIHdpZHRoLCBo ZWlnaHQpOworCWFjY3VtdWxhdG9yX3ByaW50KCZhY2N1bXVsYXRvciwgImZpbHRlcmVkIik7CisK KwkvKiBWZXJpZnkgdGhhdCB0aGUgd29yayBhY3R1YWxseSBoYXBwZW5lZCBieSBjb21wYXJpbmcg dGhlIHNyYworCSAqIGFuZCBkc3QgYnVmZmVycworCSAqLworCXJldCA9IGRybV9pbnRlbF9ib19t YXAoc3JjWzBdLmJvLCBmYWxzZSk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDApOworCXJldCA9IGRy bV9pbnRlbF9ib19tYXAoZHN0WzBdLmJvLCBmYWxzZSk7CisJaWd0X2Fzc2VydF9lcShyZXQsIDAp OworCisJcmV0ID0gbWVtY21wKHNyY1swXS5iby0+dmlydHVhbCwgZHN0WzBdLmJvLT52aXJ0dWFs LCA0ICogd2lkdGggKiBoZWlnaHQpOworCWlmIChyZXQgIT0gMCkgeworCQlhY2N1bXVsYXRvcl9w cmludCgmYWNjdW11bGF0b3IsICJ0b3RhbCIpOworCQlleGl0KEVBR0FJTik7CisJfQorCisJZHJt X2ludGVsX2JvX3VubWFwKHNyY1swXS5ibyk7CisJZHJtX2ludGVsX2JvX3VubWFwKGRzdFswXS5i byk7CisKKwkvKiBDaGVjayB0aGF0IHRoaXMgdGVzdCBwYXNzZWQuIFRoZSB0ZXN0IG1lYXN1cmVz IHRoZSBudW1iZXIgb2YgMngyCisJICogc2FtcGxlcyB3cml0dGVuIHRvIHRoZSByZW5kZXIgdGFy Z2V0IHVzaW5nIHRoZSBjb3VudGVyIEEyNi4gRm9yCisJICogT0FSLCB0aGlzIGNvdW50ZXIgd2ls bCBvbmx5IGhhdmUgaW5jcmVtZW50cyByZWxldmFudCB0byB0aGlzIHNwZWNpZmljCisJICogY29u dGV4dC4gVGhlIHZhbHVlIGVxdWFscyB0aGUgd2lkdGggKiBoZWlnaHQgb2YgdGhlIHJlbmRlcmVk IHdvcmsuCisJICovCisJaWd0X2Fzc2VydF9lcShhY2N1bXVsYXRvci5kZWx0YXNbMiArIDI2XSwg d2lkdGggKiBoZWlnaHQpOworCisJLyogQ2xlYW4gdXAgKi8KKwlmb3IgKGludCBpID0gMDsgaSA8 IEFSUkFZX1NJWkUoc3JjKTsgaSsrKSB7CisJCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShzcmNb aV0uYm8pOworCQlkcm1faW50ZWxfYm9fdW5yZWZlcmVuY2UoZHN0W2ldLmJvKTsKKwl9CisKKwlk cm1faW50ZWxfYm9fdW5tYXAoYm8pOworCWRybV9pbnRlbF9ib191bnJlZmVyZW5jZShibyk7CisJ aW50ZWxfYmF0Y2hidWZmZXJfZnJlZShiYXRjaCk7CisJZHJtX2ludGVsX2dlbV9jb250ZXh0X2Rl c3Ryb3koY29udGV4dDApOworCWRybV9pbnRlbF9nZW1fY29udGV4dF9kZXN0cm95KGNvbnRleHQx KTsKKwlkcm1faW50ZWxfYnVmbWdyX2Rlc3Ryb3koYnVmbWdyKTsKKwlfX3BlcmZfY2xvc2Uoc3Ry ZWFtX2ZkKTsKK30KKworc3RhdGljIHZvaWQKK2dlbjEyX3Rlc3Rfc2luZ2xlX2N0eF9yZW5kZXJf dGFyZ2V0X3dyaXRlc19hX2NvdW50ZXIodm9pZCkKK3sKKwlpbnQgY2hpbGRfcmV0OworCXN0cnVj dCBpZ3RfaGVscGVyX3Byb2Nlc3MgY2hpbGQgPSB7fTsKKworCS8qIEVuc3VyZSBwZXJmX3N0cmVh bV9wYXJhbm9pZCBpcyBzZXQgdG8gMSBieSBkZWZhdWx0ICovCisJd3JpdGVfdTY0X2ZpbGUoIi9w cm9jL3N5cy9kZXYvaTkxNS9wZXJmX3N0cmVhbV9wYXJhbm9pZCIsIDEpOworCisJZG8geworCQlp Z3RfZm9ya19oZWxwZXIoJmNoaWxkKSB7CisJCQlpZ3RfZHJvcF9yb290KCk7CisJCQlnZW4xMl9z aW5nbGVfY3R4X2hlbHBlcigpOworCQl9CisJCWNoaWxkX3JldCA9IGlndF93YWl0X2hlbHBlcigm Y2hpbGQpOworCQlpZ3RfYXNzZXJ0KFdFWElUU1RBVFVTKGNoaWxkX3JldCkgPT0gRUFHQUlOIHx8 CisJCQkgICBXRVhJVFNUQVRVUyhjaGlsZF9yZXQpID09IDApOworCX0gd2hpbGUgKFdFWElUU1RB VFVTKGNoaWxkX3JldCkgPT0gRUFHQUlOKTsKK30KKwogc3RhdGljIHVuc2lnbmVkIGxvbmcgcmM2 X3Jlc2lkZW5jeV9tcyh2b2lkKQogewogCXJldHVybiBzeXNmc19yZWFkKCJwb3dlci9yYzZfcmVz aWRlbmN5X21zIik7CkBAIC00MjI1LDYgKzQ1NTMsMTEgQEAgaWd0X21haW4KIAkJZ2VuOF90ZXN0 X3NpbmdsZV9jdHhfcmVuZGVyX3RhcmdldF93cml0ZXNfYV9jb3VudGVyKCk7CiAJfQogCisJaWd0 X3N1YnRlc3QoImdlbjEyLXVucHJpdmlsZWdlZC1zaW5nbGUtY3R4LWNvdW50ZXJzIikgeworCQlp Z3RfcmVxdWlyZShpbnRlbF9nZW4oZGV2aWQpID49IDEyKTsKKwkJZ2VuMTJfdGVzdF9zaW5nbGVf Y3R4X3JlbmRlcl90YXJnZXRfd3JpdGVzX2FfY291bnRlcigpOworCX0KKwogCWlndF9zdWJ0ZXN0 KCJyYzYtZGlzYWJsZSIpCiAJCXRlc3RfcmM2X2Rpc2FibGUoKTsKIAotLSAKMi4yMy4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=