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 2071E6E85F for ; Fri, 21 Jun 2019 10:01:12 +0000 (UTC) From: Ramalingam C Date: Fri, 21 Jun 2019 15:33:10 +0530 Message-Id: <20190621100345.20019-9-ramalingam.c@intel.com> In-Reply-To: <20190621100345.20019-1-ramalingam.c@intel.com> References: <20190621100345.20019-1-ramalingam.c@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [RFC v2 08/43] tests/i915/gem_sync: use the gem_engine_topology library 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, tvrtko.ursulin@linux.intel.com, andi@etezian.org List-ID: UmVwbGFjZSB0aGUgbGVnYWN5IGZvcl9lYWNoX2VuZ2luZSogZGVmaW5lcyB3aXRoIHRoZSBvbmVz CmltcGxlbWVudGVkIGluIHRoZSBnZW1fZW5naW5lX3RvcG9sb2d5IGxpYnJhcnkuCgpTaWduZWQt b2ZmLWJ5OiBSYW1hbGluZ2FtIEMgPHJhbWFsaW5nYW0uY0BpbnRlbC5jb20+Ci0tLQogdGVzdHMv aTkxNS9nZW1fc3luYy5jIHwgMjM0ICsrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCspLCAxMTYgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fc3luYy5jIGIvdGVzdHMvaTkxNS9nZW1f c3luYy5jCmluZGV4IDhjNWFhYTE0NGExMi4uNjI5ZGVjZmNmZTE4IDEwMDY0NAotLS0gYS90ZXN0 cy9pOTE1L2dlbV9zeW5jLmMKKysrIGIvdGVzdHMvaTkxNS9nZW1fc3luYy5jCkBAIC03OSwyNSAr NzksMjYgQEAgb3V0OgogfQogCiBzdGF0aWMgdm9pZAotc3luY19yaW5nKGludCBmZCwgdW5zaWdu ZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCitzeW5jX3JpbmcoaW50IGZk LCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUsIGludCBudW1fY2hpbGRy ZW4sCisJICBpbnQgdGltZW91dCkKIHsKIAl1bnNpZ25lZCBlbmdpbmVzWzE2XTsKIAljb25zdCBj aGFyICpuYW1lc1sxNl07CiAJaW50IG51bV9lbmdpbmVzID0gMDsKIAotCWlmIChyaW5nID09IEFM TF9FTkdJTkVTKSB7Ci0JCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgcmluZykgewotCQkJ bmFtZXNbbnVtX2VuZ2luZXNdID0gZV9fLT5uYW1lOwotCQkJZW5naW5lc1tudW1fZW5naW5lcysr XSA9IHJpbmc7CisJaWYgKCFlKSB7CisJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBl KSB7CisJCQluYW1lc1tudW1fZW5naW5lc10gPSBlLT5uYW1lOworCQkJZW5naW5lc1tudW1fZW5n aW5lcysrXSA9IGUtPmZsYWdzOwogCQkJaWYgKG51bV9lbmdpbmVzID09IEFSUkFZX1NJWkUoZW5n aW5lcykpCiAJCQkJYnJlYWs7CiAJCX0KIAogCQludW1fY2hpbGRyZW4gKj0gbnVtX2VuZ2luZXM7 CiAJfSBlbHNlIHsKLQkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgcmluZyk7CisJCWdlbV9yZXF1aXJl X3JpbmcoZmQsIGUtPmZsYWdzKTsKIAkJbmFtZXNbbnVtX2VuZ2luZXNdID0gTlVMTDsKLQkJZW5n aW5lc1tudW1fZW5naW5lcysrXSA9IHJpbmc7CisJCWVuZ2luZXNbbnVtX2VuZ2luZXMrK10gPSBl LT5mbGFnczsKIAl9CiAKIAlpbnRlbF9kZXRlY3RfYW5kX2NsZWFyX21pc3NlZF9pbnRlcnJ1cHRz KGZkKTsKQEAgLTEzOSw3ICsxNDAsNyBAQCBzeW5jX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5n LCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIH0KIAogc3RhdGljIHZvaWQKLWlkbGVf cmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0KQoraWRsZV9yaW5nKGludCBm ZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLCBpbnQgdGltZW91dCkK IHsKIAljb25zdCB1aW50MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwogCXN0cnVjdCBk cm1faTkxNV9nZW1fZXhlY19vYmplY3QyIG9iamVjdDsKQEAgLTE0Nyw3ICsxNDgsNyBAQCBpZGxl X3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCkKIAlkb3VibGUgc3RhcnQs IGVsYXBzZWQ7CiAJdW5zaWduZWQgbG9uZyBjeWNsZXM7CiAKLQlnZW1fcmVxdWlyZV9yaW5nKGZk LCByaW5nKTsKKwlnZW1fcmVxdWlyZV9yaW5nKGZkLCBlLT5mbGFncyk7CiAKIAltZW1zZXQoJm9i amVjdCwgMCwgc2l6ZW9mKG9iamVjdCkpOwogCW9iamVjdC5oYW5kbGUgPSBnZW1fY3JlYXRlKGZk LCA0MDk2KTsKQEAgLTE1Niw3ICsxNTcsNyBAQCBpZGxlX3JpbmcoaW50IGZkLCB1bnNpZ25lZCBy aW5nLCBpbnQgdGltZW91dCkKIAltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7 CiAJZXhlY2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcigmb2JqZWN0KTsKIAlleGVj YnVmLmJ1ZmZlcl9jb3VudCA9IDE7Ci0JZXhlY2J1Zi5mbGFncyA9IHJpbmc7CisJZXhlY2J1Zi5m bGFncyA9IGUtPmZsYWdzOwogCWdlbV9leGVjYnVmKGZkLCAmZXhlY2J1Zik7CiAJZ2VtX3N5bmMo ZmQsIG9iamVjdC5oYW5kbGUpOwogCkBAIC0xNzgsMjggKzE3OSwyOSBAQCBpZGxlX3JpbmcoaW50 IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCkKIH0KIAogc3RhdGljIHZvaWQKLXdha2V1 cF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIGludCB3bGVuKQord2Fr ZXVwX3JpbmcoaW50IGZkLCBjb25zdCBzdHJ1Y3QgaW50ZWxfZXhlY3V0aW9uX2VuZ2luZTIgKmUs IGludCB0aW1lb3V0LAorCSAgICBpbnQgd2xlbikKIHsKIAl1bnNpZ25lZCBlbmdpbmVzWzE2XTsK IAljb25zdCBjaGFyICpuYW1lc1sxNl07CiAJaW50IG51bV9lbmdpbmVzID0gMDsKIAotCWlmIChy aW5nID09IEFMTF9FTkdJTkVTKSB7Ci0JCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgcmlu ZykgewotCQkJaWYgKCFnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCByaW5nKSkKKwlpZiAoIWUpIHsK KwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKKwkJCWlmICghZ2VtX2NsYXNz X2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+Y2xhc3MpKQogCQkJCWNvbnRpbnVlOwogCi0JCQluYW1l c1tudW1fZW5naW5lc10gPSBlX18tPm5hbWU7Ci0JCQllbmdpbmVzW251bV9lbmdpbmVzKytdID0g cmluZzsKKwkJCW5hbWVzW251bV9lbmdpbmVzXSA9IGUtPm5hbWU7CisJCQllbmdpbmVzW251bV9l bmdpbmVzKytdID0gZS0+ZmxhZ3M7CiAJCQlpZiAobnVtX2VuZ2luZXMgPT0gQVJSQVlfU0laRShl bmdpbmVzKSkKIAkJCQlicmVhazsKIAkJfQogCQlpZ3RfcmVxdWlyZShudW1fZW5naW5lcyk7CiAJ fSBlbHNlIHsKLQkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgcmluZyk7Ci0JCWlndF9yZXF1aXJlKGdl bV9jYW5fc3RvcmVfZHdvcmQoZmQsIHJpbmcpKTsKKwkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgZS0+ ZmxhZ3MpOworCQlpZ3RfcmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5j bGFzcykpOwogCQluYW1lc1tudW1fZW5naW5lc10gPSBOVUxMOwotCQllbmdpbmVzW251bV9lbmdp bmVzKytdID0gcmluZzsKKwkJZW5naW5lc1tudW1fZW5naW5lcysrXSA9IGUtPmZsYWdzOwogCX0K IAogCWludGVsX2RldGVjdF9hbmRfY2xlYXJfbWlzc2VkX2ludGVycnVwdHMoZmQpOwpAQCAtMjIx LDcgKzIyMyw3IEBAIHdha2V1cF9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVv dXQsIGludCB3bGVuKQogCQlleGVjYnVmLmZsYWdzID0gZW5naW5lc1tjaGlsZCAlIG51bV9lbmdp bmVzXTsKIAogCQlzcGluID0gX19pZ3Rfc3Bpbl9uZXcoZmQsCi0JCQkJICAgICAgLmVuZ2luZSA9 IGV4ZWNidWYuZmxhZ3MsCisJCQkJICAgICAgLmVuZ2luZSA9IGVuZ2luZXNbY2hpbGQgJSBudW1f ZW5naW5lc10sCiAJCQkJICAgICAgLmZsYWdzID0gKElHVF9TUElOX1BPTExfUlVOIHwKIAkJCQkJ CUlHVF9TUElOX0ZBU1QpKTsKIAkJaWd0X2Fzc2VydChpZ3Rfc3Bpbl9oYXNfcG9sbChzcGluKSk7 CkBAIC0yOTAsMjggKzI5MiwyOCBAQCB3YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJpbmcs IGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAlpZ3RfYXNzZXJ0X2VxKGludGVsX2RldGVjdF9hbmRf Y2xlYXJfbWlzc2VkX2ludGVycnVwdHMoZmQpLCAwKTsKIH0KIAotc3RhdGljIHZvaWQgYWN0aXZl X3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCkKK3N0YXRpYyB2b2lkIGFj dGl2ZV9yaW5nKGludCBmZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICpl LCBpbnQgdGltZW91dCkKIHsKIAl1bnNpZ25lZCBlbmdpbmVzWzE2XTsKIAljb25zdCBjaGFyICpu YW1lc1sxNl07CiAJaW50IG51bV9lbmdpbmVzID0gMDsKIAotCWlmIChyaW5nID09IEFMTF9FTkdJ TkVTKSB7Ci0JCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgcmluZykgewotCQkJaWYgKCFn ZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCByaW5nKSkKKwlpZiAoIWUpIHsKKwkJX19mb3JfZWFjaF9w aHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKKwkJCWlmICghZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29y ZChmZCwgZS0+Y2xhc3MpKQogCQkJCWNvbnRpbnVlOwogCi0JCQluYW1lc1tudW1fZW5naW5lc10g PSBlX18tPm5hbWU7Ci0JCQllbmdpbmVzW251bV9lbmdpbmVzKytdID0gcmluZzsKKwkJCW5hbWVz W251bV9lbmdpbmVzXSA9IGUtPm5hbWU7CisJCQllbmdpbmVzW251bV9lbmdpbmVzKytdID0gZS0+ ZmxhZ3M7CiAJCQlpZiAobnVtX2VuZ2luZXMgPT0gQVJSQVlfU0laRShlbmdpbmVzKSkKIAkJCQli cmVhazsKIAkJfQogCQlpZ3RfcmVxdWlyZShudW1fZW5naW5lcyk7CiAJfSBlbHNlIHsKLQkJZ2Vt X3JlcXVpcmVfcmluZyhmZCwgcmluZyk7Ci0JCWlndF9yZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdv cmQoZmQsIHJpbmcpKTsKKwkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgZS0+ZmxhZ3MpOworCQlpZ3Rf cmVxdWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpOwogCQluYW1l c1tudW1fZW5naW5lc10gPSBOVUxMOwotCQllbmdpbmVzW251bV9lbmdpbmVzKytdID0gcmluZzsK KwkJZW5naW5lc1tudW1fZW5naW5lcysrXSA9IGUtPmZsYWdzOwogCX0KIAogCWludGVsX2RldGVj dF9hbmRfY2xlYXJfbWlzc2VkX2ludGVycnVwdHMoZmQpOwpAQCAtMzIxLDExICszMjMsMTEgQEAg c3RhdGljIHZvaWQgYWN0aXZlX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91 dCkKIAkJaWd0X3NwaW5fdCAqc3BpblsyXTsKIAogCQlzcGluWzBdID0gX19pZ3Rfc3Bpbl9uZXco ZmQsCi0JCQkJCSAuZW5naW5lID0gcmluZywKKwkJCQkJIC5lbmdpbmUgPSBlLT5mbGFncywKIAkJ CQkJIC5mbGFncyA9IElHVF9TUElOX0ZBU1QpOwogCiAJCXNwaW5bMV0gPSBfX2lndF9zcGluX25l dyhmZCwKLQkJCQkJIC5lbmdpbmUgPSByaW5nLAorCQkJCQkgLmVuZ2luZSA9IGUtPmZsYWdzLAog CQkJCQkgLmZsYWdzID0gSUdUX1NQSU5fRkFTVCk7CiAKIAkJc3RhcnQgPSBnZXR0aW1lKCk7CkBA IC0zNTcsMjggKzM1OSwyOSBAQCBzdGF0aWMgdm9pZCBhY3RpdmVfcmluZyhpbnQgZmQsIHVuc2ln bmVkIHJpbmcsIGludCB0aW1lb3V0KQogfQogCiBzdGF0aWMgdm9pZAotYWN0aXZlX3dha2V1cF9y aW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIGludCB3bGVuKQorYWN0aXZl X3dha2V1cF9yaW5nKGludCBmZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUy ICplLCBpbnQgdGltZW91dCwKKwkJICAgaW50IHdsZW4pCiB7CiAJdW5zaWduZWQgZW5naW5lc1sx Nl07CiAJY29uc3QgY2hhciAqbmFtZXNbMTZdOwogCWludCBudW1fZW5naW5lcyA9IDA7CiAKLQlp ZiAocmluZyA9PSBBTExfRU5HSU5FUykgewotCQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQs IHJpbmcpIHsKLQkJCWlmICghZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykpCisJaWYgKCFl KSB7CisJCV9fZm9yX2VhY2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKSB7CisJCQlpZiAoIWdlbV9j bGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSkKIAkJCQljb250aW51ZTsKIAotCQkJ bmFtZXNbbnVtX2VuZ2luZXNdID0gZV9fLT5uYW1lOwotCQkJZW5naW5lc1tudW1fZW5naW5lcysr XSA9IHJpbmc7CisJCQluYW1lc1tudW1fZW5naW5lc10gPSBlLT5uYW1lOworCQkJZW5naW5lc1tu dW1fZW5naW5lcysrXSA9IGUtPmZsYWdzOwogCQkJaWYgKG51bV9lbmdpbmVzID09IEFSUkFZX1NJ WkUoZW5naW5lcykpCiAJCQkJYnJlYWs7CiAJCX0KIAkJaWd0X3JlcXVpcmUobnVtX2VuZ2luZXMp OwogCX0gZWxzZSB7Ci0JCWdlbV9yZXF1aXJlX3JpbmcoZmQsIHJpbmcpOwotCQlpZ3RfcmVxdWly ZShnZW1fY2FuX3N0b3JlX2R3b3JkKGZkLCByaW5nKSk7CisJCWdlbV9yZXF1aXJlX3JpbmcoZmQs IGUtPmZsYWdzKTsKKwkJaWd0X3JlcXVpcmUoZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29yZChmZCwg ZS0+Y2xhc3MpKTsKIAkJbmFtZXNbbnVtX2VuZ2luZXNdID0gTlVMTDsKLQkJZW5naW5lc1tudW1f ZW5naW5lcysrXSA9IHJpbmc7CisJCWVuZ2luZXNbbnVtX2VuZ2luZXMrK10gPSBlLT5mbGFnczsK IAl9CiAKIAlpbnRlbF9kZXRlY3RfYW5kX2NsZWFyX21pc3NlZF9pbnRlcnJ1cHRzKGZkKTsKQEAg LTQwMCwxMyArNDAzLDEzIEBAIGFjdGl2ZV93YWtldXBfcmluZyhpbnQgZmQsIHVuc2lnbmVkIHJp bmcsIGludCB0aW1lb3V0LCBpbnQgd2xlbikKIAkJZXhlY2J1Zi5mbGFncyA9IGVuZ2luZXNbY2hp bGQgJSBudW1fZW5naW5lc107CiAKIAkJc3BpblswXSA9IF9faWd0X3NwaW5fbmV3KGZkLAotCQkJ CQkgLmVuZ2luZSA9IGV4ZWNidWYuZmxhZ3MsCisJCQkJCSAuZW5naW5lID0gZW5naW5lc1tjaGls ZCAlIG51bV9lbmdpbmVzXSwKIAkJCQkJIC5mbGFncyA9IChJR1RfU1BJTl9QT0xMX1JVTiB8CiAJ CQkJCQkgICBJR1RfU1BJTl9GQVNUKSk7CiAJCWlndF9hc3NlcnQoaWd0X3NwaW5faGFzX3BvbGwo c3BpblswXSkpOwogCiAJCXNwaW5bMV0gPSBfX2lndF9zcGluX25ldyhmZCwKLQkJCQkJIC5lbmdp bmUgPSBleGVjYnVmLmZsYWdzLAorCQkJCQkgLmVuZ2luZSA9IGVuZ2luZXNbY2hpbGQgJSBudW1f ZW5naW5lc10sCiAJCQkJCSAuZmxhZ3MgPSAoSUdUX1NQSU5fUE9MTF9SVU4gfAogCQkJCQkJICAg SUdUX1NQSU5fRkFTVCkpOwogCkBAIC00OTEsMzAgKzQ5NCwzMCBAQCBhY3RpdmVfd2FrZXVwX3Jp bmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGltZW91dCwgaW50IHdsZW4pCiB9CiAKIHN0 YXRpYyB2b2lkCi1zdG9yZV9yaW5nKGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGls ZHJlbiwgaW50IHRpbWVvdXQpCitzdG9yZV9yaW5nKGludCBmZCwgY29uc3Qgc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyICplLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIHsK IAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAl1 bnNpZ25lZCBlbmdpbmVzWzE2XTsKIAljb25zdCBjaGFyICpuYW1lc1sxNl07CiAJaW50IG51bV9l bmdpbmVzID0gMDsKIAotCWlmIChyaW5nID09IEFMTF9FTkdJTkVTKSB7Ci0JCWZvcl9lYWNoX3Bo eXNpY2FsX2VuZ2luZShmZCwgcmluZykgewotCQkJaWYgKCFnZW1fY2FuX3N0b3JlX2R3b3JkKGZk LCByaW5nKSkKKwlpZiAoIWUpIHsKKwkJX19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUp IHsKKwkJCWlmICghZ2VtX2NsYXNzX2Nhbl9zdG9yZV9kd29yZChmZCwgZS0+Y2xhc3MpKQogCQkJ CWNvbnRpbnVlOwogCi0JCQluYW1lc1tudW1fZW5naW5lc10gPSBlX18tPm5hbWU7Ci0JCQllbmdp bmVzW251bV9lbmdpbmVzKytdID0gcmluZzsKKwkJCW5hbWVzW251bV9lbmdpbmVzXSA9IGUtPm5h bWU7CisJCQllbmdpbmVzW251bV9lbmdpbmVzKytdID0gZS0+ZmxhZ3M7CiAJCQlpZiAobnVtX2Vu Z2luZXMgPT0gQVJSQVlfU0laRShlbmdpbmVzKSkKIAkJCQlicmVhazsKIAkJfQogCiAJCW51bV9j aGlsZHJlbiAqPSBudW1fZW5naW5lczsKIAl9IGVsc2UgewotCQlnZW1fcmVxdWlyZV9yaW5nKGZk LCByaW5nKTsKLQkJaWd0X3JlcXVpcmUoZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykpOwor CQlnZW1fcmVxdWlyZV9yaW5nKGZkLCBlLT5mbGFncyk7CisJCWlndF9yZXF1aXJlKGdlbV9jbGFz c19jYW5fc3RvcmVfZHdvcmQoZmQsIGUtPmNsYXNzKSk7CiAJCW5hbWVzW251bV9lbmdpbmVzXSA9 IE5VTEw7Ci0JCWVuZ2luZXNbbnVtX2VuZ2luZXMrK10gPSByaW5nOworCQllbmdpbmVzW251bV9l bmdpbmVzKytdID0gZS0+ZmxhZ3M7CiAJfQogCiAJaW50ZWxfZGV0ZWN0X2FuZF9jbGVhcl9taXNz ZWRfaW50ZXJydXB0cyhmZCk7CkBAIC02MDYsNyArNjA5LDcgQEAgc3RvcmVfcmluZyhpbnQgZmQs IHVuc2lnbmVkIHJpbmcsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQogfQogCiBzdGF0 aWMgdm9pZAotc3dpdGNoX3JpbmcoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgbnVtX2NoaWxk cmVuLCBpbnQgdGltZW91dCkKK3N3aXRjaF9yaW5nKGludCBmZCwgY29uc3Qgc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyICplLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIHsK IAljb25zdCBpbnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAl1 bnNpZ25lZCBlbmdpbmVzWzE2XTsKQEAgLTYxNSwyMyArNjE4LDIzIEBAIHN3aXRjaF9yaW5nKGlu dCBmZCwgdW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCiAKIAln ZW1fcmVxdWlyZV9jb250ZXh0cyhmZCk7CiAKLQlpZiAocmluZyA9PSBBTExfRU5HSU5FUykgewot CQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIHJpbmcpIHsKLQkJCWlmICghZ2VtX2Nhbl9z dG9yZV9kd29yZChmZCwgcmluZykpCisJaWYgKCFlKSB7CisJCV9fZm9yX2VhY2hfcGh5c2ljYWxf ZW5naW5lKGZkLCBlKSB7CisJCQlpZiAoIWdlbV9jbGFzc19jYW5fc3RvcmVfZHdvcmQoZmQsIGUt PmNsYXNzKSkKIAkJCQljb250aW51ZTsKIAotCQkJbmFtZXNbbnVtX2VuZ2luZXNdID0gZV9fLT5u YW1lOwotCQkJZW5naW5lc1tudW1fZW5naW5lcysrXSA9IHJpbmc7CisJCQluYW1lc1tudW1fZW5n aW5lc10gPSBlLT5uYW1lOworCQkJZW5naW5lc1tudW1fZW5naW5lcysrXSA9IGUtPmZsYWdzOwog CQkJaWYgKG51bV9lbmdpbmVzID09IEFSUkFZX1NJWkUoZW5naW5lcykpCiAJCQkJYnJlYWs7CiAJ CX0KIAogCQludW1fY2hpbGRyZW4gKj0gbnVtX2VuZ2luZXM7CiAJfSBlbHNlIHsKLQkJZ2VtX3Jl cXVpcmVfcmluZyhmZCwgcmluZyk7Ci0JCWlndF9yZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQo ZmQsIHJpbmcpKTsKKwkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgZS0+ZmxhZ3MpOworCQlpZ3RfcmVx dWlyZShnZW1fY2xhc3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpOwogCQluYW1lc1tu dW1fZW5naW5lc10gPSBOVUxMOwotCQllbmdpbmVzW251bV9lbmdpbmVzKytdID0gcmluZzsKKwkJ ZW5naW5lc1tudW1fZW5naW5lcysrXSA9IGUtPmZsYWdzOwogCX0KIAogCWludGVsX2RldGVjdF9h bmRfY2xlYXJfbWlzc2VkX2ludGVycnVwdHMoZmQpOwpAQCAtODAzLDcgKzgwNiw3IEBAIHN0YXRp YyB2b2lkICp3YWl0ZXIodm9pZCAqYXJnKQogfQogCiBzdGF0aWMgdm9pZAotX19zdG9yZV9tYW55 KGludCBmZCwgdW5zaWduZWQgcmluZywgaW50IHRpbWVvdXQsIHVuc2lnbmVkIGxvbmcgKmN5Y2xl cykKK19fc3RvcmVfbWFueShpbnQgZmQsIGNvbnN0IHN0cnVjdCBpbnRlbF9leGVjdXRpb25fZW5n aW5lMiAqZSwgaW50IHRpbWVvdXQsIHVuc2lnbmVkIGxvbmcgKmN5Y2xlcykKIHsKIAljb25zdCBp bnQgZ2VuID0gaW50ZWxfZ2VuKGludGVsX2dldF9kcm1fZGV2aWQoZmQpKTsKIAljb25zdCB1aW50 MzJfdCBiYmUgPSBNSV9CQVRDSF9CVUZGRVJfRU5EOwpAQCAtODE3LDcgKzgyMCw3IEBAIF9fc3Rv cmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCB1bnNpZ25lZCBsb25n ICpjeWNsZXMpCiAKIAltZW1zZXQoJmV4ZWNidWYsIDAsIHNpemVvZihleGVjYnVmKSk7CiAJZXhl Y2J1Zi5idWZmZXJzX3B0ciA9IHRvX3VzZXJfcG9pbnRlcihvYmplY3QpOwotCWV4ZWNidWYuZmxh Z3MgPSByaW5nOworCWV4ZWNidWYuZmxhZ3MgPSBlLT5mbGFnczsKIAlleGVjYnVmLmZsYWdzIHw9 IExPQ0FMX0k5MTVfRVhFQ19OT19SRUxPQzsKIAlleGVjYnVmLmZsYWdzIHw9IExPQ0FMX0k5MTVf RVhFQ19IQU5ETEVfTFVUOwogCWlmIChnZW4gPCA2KQpAQCAtOTMxLDcgKzkzNCw3IEBAIF9fc3Rv cmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0LCB1bnNpZ25lZCBsb25n ICpjeWNsZXMpCiB9CiAKIHN0YXRpYyB2b2lkCi1zdG9yZV9tYW55KGludCBmZCwgdW5zaWduZWQg cmluZywgaW50IHRpbWVvdXQpCitzdG9yZV9tYW55KGludCBmZCwgY29uc3Qgc3RydWN0IGludGVs X2V4ZWN1dGlvbl9lbmdpbmUyICplLCBpbnQgdGltZW91dCkKIHsKIAl1bnNpZ25lZCBsb25nICpz aGFyZWQ7CiAJY29uc3QgY2hhciAqbmFtZXNbMTZdOwpAQCAtOTQyLDI0ICs5NDUsMjIgQEAgc3Rv cmVfbWFueShpbnQgZmQsIHVuc2lnbmVkIHJpbmcsIGludCB0aW1lb3V0KQogCiAJaW50ZWxfZGV0 ZWN0X2FuZF9jbGVhcl9taXNzZWRfaW50ZXJydXB0cyhmZCk7CiAKLQlpZiAocmluZyA9PSBBTExf RU5HSU5FUykgewotCQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIHJpbmcpIHsKLQkJCWlm ICghZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykpCisJaWYgKCFlKSB7CisJCV9fZm9yX2Vh Y2hfcGh5c2ljYWxfZW5naW5lKGZkLCBlKSB7CisJCQlpZiAoIWdlbV9jbGFzc19jYW5fc3RvcmVf ZHdvcmQoZmQsIGUtPmNsYXNzKSkKIAkJCQljb250aW51ZTsKIAogCQkJaWd0X2ZvcmsoY2hpbGQs IDEpCi0JCQkJX19zdG9yZV9tYW55KGZkLAotCQkJCQkgICAgIHJpbmcsCi0JCQkJCSAgICAgdGlt ZW91dCwKKwkJCQlfX3N0b3JlX21hbnkoZmQsIGUsIHRpbWVvdXQsCiAJCQkJCSAgICAgJnNoYXJl ZFtuXSk7CiAKLQkJCW5hbWVzW24rK10gPSBlX18tPm5hbWU7CisJCQluYW1lc1tuKytdID0gZS0+ bmFtZTsKIAkJfQogCQlpZ3Rfd2FpdGNoaWxkcmVuKCk7CiAJfSBlbHNlIHsKLQkJZ2VtX3JlcXVp cmVfcmluZyhmZCwgcmluZyk7Ci0JCWlndF9yZXF1aXJlKGdlbV9jYW5fc3RvcmVfZHdvcmQoZmQs IHJpbmcpKTsKLQkJX19zdG9yZV9tYW55KGZkLCByaW5nLCB0aW1lb3V0LCAmc2hhcmVkW25dKTsK KwkJZ2VtX3JlcXVpcmVfcmluZyhmZCwgZS0+ZmxhZ3MpOworCQlpZ3RfcmVxdWlyZShnZW1fY2xh c3NfY2FuX3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpOworCQlfX3N0b3JlX21hbnkoZmQsIGUs IHRpbWVvdXQsICZzaGFyZWRbbl0pOwogCQluYW1lc1tuKytdID0gTlVMTDsKIAl9CiAKQEAgLTk3 NCwxMSArOTc1LDEyIEBAIHN0b3JlX21hbnkoaW50IGZkLCB1bnNpZ25lZCByaW5nLCBpbnQgdGlt ZW91dCkKIHN0YXRpYyB2b2lkCiBzeW5jX2FsbChpbnQgZmQsIGludCBudW1fY2hpbGRyZW4sIGlu dCB0aW1lb3V0KQogewotCXVuc2lnbmVkIGVuZ2luZXNbMTZdLCBlbmdpbmU7CisJdW5zaWduZWQg ZW5naW5lc1sxNl07CisJY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplbmdp bmU7CiAJaW50IG51bV9lbmdpbmVzID0gMDsKIAotCWZvcl9lYWNoX3BoeXNpY2FsX2VuZ2luZShm ZCwgZW5naW5lKSB7Ci0JCWVuZ2luZXNbbnVtX2VuZ2luZXMrK10gPSBlbmdpbmU7CisJX19mb3Jf ZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGVuZ2luZSkgeworCQllbmdpbmVzW251bV9lbmdpbmVz KytdID0gZW5naW5lLT5mbGFnczsKIAkJaWYgKG51bV9lbmdpbmVzID09IEFSUkFZX1NJWkUoZW5n aW5lcykpCiAJCQlicmVhazsKIAl9CkBAIC0xMDI4LDEzICsxMDMwLDEzIEBAIHN0b3JlX2FsbChp bnQgZmQsIGludCBudW1fY2hpbGRyZW4sIGludCB0aW1lb3V0KQogCWNvbnN0IGludCBnZW4gPSBp bnRlbF9nZW4oaW50ZWxfZ2V0X2RybV9kZXZpZChmZCkpOwogCXVuc2lnbmVkIGVuZ2luZXNbMTZd OwogCWludCBudW1fZW5naW5lcyA9IDA7Ci0JdW5zaWduZWQgaW50IHJpbmc7CisJY29uc3Qgc3Ry dWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwogCi0JZm9yX2VhY2hfcGh5c2ljYWxfZW5n aW5lKGZkLCByaW5nKSB7Ci0JCWlmICghZ2VtX2Nhbl9zdG9yZV9kd29yZChmZCwgcmluZykpCisJ X19mb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUoZmQsIGUpIHsKKwkJaWYgKCFnZW1fY2xhc3NfY2Fu X3N0b3JlX2R3b3JkKGZkLCBlLT5jbGFzcykpCiAJCQljb250aW51ZTsKIAotCQllbmdpbmVzW251 bV9lbmdpbmVzKytdID0gcmluZzsKKwkJZW5naW5lc1tudW1fZW5naW5lcysrXSA9IGUtPmZsYWdz OwogCQlpZiAobnVtX2VuZ2luZXMgPT0gQVJSQVlfU0laRShlbmdpbmVzKSkKIAkJCWJyZWFrOwog CX0KQEAgLTExMzEsMjYgKzExMzMsMjYgQEAgc3RvcmVfYWxsKGludCBmZCwgaW50IG51bV9jaGls ZHJlbiwgaW50IHRpbWVvdXQpCiB9CiAKIHN0YXRpYyB2b2lkCi1wcmVlbXB0KGludCBmZCwgdW5z aWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCitwcmVlbXB0KGludCBm ZCwgY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplLCBpbnQgbnVtX2NoaWxk cmVuLCBpbnQgdGltZW91dCkKIHsKIAl1bnNpZ25lZCBlbmdpbmVzWzE2XTsKIAljb25zdCBjaGFy ICpuYW1lc1sxNl07CiAJaW50IG51bV9lbmdpbmVzID0gMDsKIAl1aW50MzJfdCBjdHhbMl07CiAK LQlpZiAocmluZyA9PSBBTExfRU5HSU5FUykgewotCQlmb3JfZWFjaF9waHlzaWNhbF9lbmdpbmUo ZmQsIHJpbmcpIHsKLQkJCW5hbWVzW251bV9lbmdpbmVzXSA9IGVfXy0+bmFtZTsKLQkJCWVuZ2lu ZXNbbnVtX2VuZ2luZXMrK10gPSByaW5nOworCWlmICghZSkgeworCQlfX2Zvcl9lYWNoX3BoeXNp Y2FsX2VuZ2luZShmZCwgZSkgeworCQkJbmFtZXNbbnVtX2VuZ2luZXNdID0gZS0+bmFtZTsKKwkJ CWVuZ2luZXNbbnVtX2VuZ2luZXMrK10gPSBlLT5mbGFnczsKIAkJCWlmIChudW1fZW5naW5lcyA9 PSBBUlJBWV9TSVpFKGVuZ2luZXMpKQogCQkJCWJyZWFrOwogCQl9CiAKIAkJbnVtX2NoaWxkcmVu ICo9IG51bV9lbmdpbmVzOwogCX0gZWxzZSB7Ci0JCWdlbV9yZXF1aXJlX3JpbmcoZmQsIHJpbmcp OworCQlnZW1fcmVxdWlyZV9yaW5nKGZkLCBlLT5mbGFncyk7CiAJCW5hbWVzW251bV9lbmdpbmVz XSA9IE5VTEw7Ci0JCWVuZ2luZXNbbnVtX2VuZ2luZXMrK10gPSByaW5nOworCQllbmdpbmVzW251 bV9lbmdpbmVzKytdID0gZS0+ZmxhZ3M7CiAJfQogCiAJY3R4WzBdID0gZ2VtX2NvbnRleHRfY3Jl YXRlKGZkKTsKQEAgLTExODUsNyArMTE4Nyw3IEBAIHByZWVtcHQoaW50IGZkLCB1bnNpZ25lZCBy aW5nLCBpbnQgbnVtX2NoaWxkcmVuLCBpbnQgdGltZW91dCkKIAkJCWlndF9zcGluX3QgKnNwaW4g PQogCQkJCV9faWd0X3NwaW5fbmV3KGZkLAogCQkJCQkgICAgICAgLmN0eCA9IGN0eFswXSwKLQkJ CQkJICAgICAgIC5lbmdpbmUgPSBleGVjYnVmLmZsYWdzKTsKKwkJCQkJICAgICAgIC5lbmdpbmUg PSBlbmdpbmVzW2NoaWxkICUgbnVtX2VuZ2luZXNdKTsKIAogCQkJZG8gewogCQkJCWdlbV9leGVj YnVmKGZkLCAmZXhlY2J1Zik7CkBAIC0xMjEwLDcgKzEyMTIsNyBAQCBwcmVlbXB0KGludCBmZCwg dW5zaWduZWQgcmluZywgaW50IG51bV9jaGlsZHJlbiwgaW50IHRpbWVvdXQpCiAKIGlndF9tYWlu CiB7Ci0JY29uc3Qgc3RydWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUgKmU7CisJY29uc3Qgc3Ry dWN0IGludGVsX2V4ZWN1dGlvbl9lbmdpbmUyICplOwogCWNvbnN0IGludCBuY3B1cyA9IHN5c2Nv bmYoX1NDX05QUk9DRVNTT1JTX09OTE4pOwogCWludCBmZCA9IC0xOwogCkBAIC0xMjI1LDU1ICsx MjI3LDU1IEBAIGlndF9tYWluCiAJCWlndF9mb3JrX2hhbmdfZGV0ZWN0b3IoZmQpOwogCX0KIAot CWZvciAoZSA9IGludGVsX2V4ZWN1dGlvbl9lbmdpbmVzOyBlLT5uYW1lOyBlKyspIHsKKwlfX2Zv cl9lYWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewogCQlpZ3Rfc3VidGVzdF9mKCIlcyIsIGUt Pm5hbWUpCi0JCQlzeW5jX3JpbmcoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgMSwgMTUwKTsK KwkJCXN5bmNfcmluZyhmZCwgZSwgMSwgMTUwKTsKIAkJaWd0X3N1YnRlc3RfZigiaWRsZS0lcyIs IGUtPm5hbWUpCi0JCQlpZGxlX3JpbmcoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgMTUwKTsK KwkJCWlkbGVfcmluZyhmZCwgZSwgMTUwKTsKIAkJaWd0X3N1YnRlc3RfZigiYWN0aXZlLSVzIiwg ZS0+bmFtZSkKLQkJCWFjdGl2ZV9yaW5nKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIDE1MCk7 CisJCQlhY3RpdmVfcmluZyhmZCwgZSwgMTUwKTsKIAkJaWd0X3N1YnRlc3RfZigid2FrZXVwLSVz IiwgZS0+bmFtZSkKLQkJCXdha2V1cF9yaW5nKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIDE1 MCwgMSk7CisJCQl3YWtldXBfcmluZyhmZCwgZSwgMTUwLCAxKTsKIAkJaWd0X3N1YnRlc3RfZigi YWN0aXZlLXdha2V1cC0lcyIsIGUtPm5hbWUpCi0JCQlhY3RpdmVfd2FrZXVwX3JpbmcoZmQsIGUt PmV4ZWNfaWQgfCBlLT5mbGFncywgMTUwLCAxKTsKKwkJCWFjdGl2ZV93YWtldXBfcmluZyhmZCwg ZSwgMTUwLCAxKTsKIAkJaWd0X3N1YnRlc3RfZigiZG91YmxlLXdha2V1cC0lcyIsIGUtPm5hbWUp Ci0JCQl3YWtldXBfcmluZyhmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCAxNTAsIDIpOworCQkJ d2FrZXVwX3JpbmcoZmQsIGUsIDE1MCwgMik7CiAJCWlndF9zdWJ0ZXN0X2YoInN0b3JlLSVzIiwg ZS0+bmFtZSkKLQkJCXN0b3JlX3JpbmcoZmQsIGUtPmV4ZWNfaWQgfCBlLT5mbGFncywgMSwgMTUw KTsKKwkJCXN0b3JlX3JpbmcoZmQsIGUsIDEsIDE1MCk7CiAJCWlndF9zdWJ0ZXN0X2YoInN3aXRj aC0lcyIsIGUtPm5hbWUpCi0JCQlzd2l0Y2hfcmluZyhmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdz LCAxLCAxNTApOworCQkJc3dpdGNoX3JpbmcoZmQsIGUsIDEsIDE1MCk7CiAJCWlndF9zdWJ0ZXN0 X2YoImZvcmtlZC1zd2l0Y2gtJXMiLCBlLT5uYW1lKQotCQkJc3dpdGNoX3JpbmcoZmQsIGUtPmV4 ZWNfaWQgfCBlLT5mbGFncywgbmNwdXMsIDE1MCk7CisJCQlzd2l0Y2hfcmluZyhmZCwgZSwgbmNw dXMsIDE1MCk7CiAJCWlndF9zdWJ0ZXN0X2YoIm1hbnktJXMiLCBlLT5uYW1lKQotCQkJc3RvcmVf bWFueShmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCAxNTApOworCQkJc3RvcmVfbWFueShmZCwg ZSwgMTUwKTsKIAkJaWd0X3N1YnRlc3RfZigiZm9ya2VkLSVzIiwgZS0+bmFtZSkKLQkJCXN5bmNf cmluZyhmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCBuY3B1cywgMTUwKTsKKwkJCXN5bmNfcmlu ZyhmZCwgZSwgbmNwdXMsIDE1MCk7CiAJCWlndF9zdWJ0ZXN0X2YoImZvcmtlZC1zdG9yZS0lcyIs IGUtPm5hbWUpCi0JCQlzdG9yZV9yaW5nKGZkLCBlLT5leGVjX2lkIHwgZS0+ZmxhZ3MsIG5jcHVz LCAxNTApOworCQkJc3RvcmVfcmluZyhmZCwgZSwgbmNwdXMsIDE1MCk7CiAJfQogCiAJaWd0X3N1 YnRlc3QoImJhc2ljLWVhY2giKQotCQlzeW5jX3JpbmcoZmQsIEFMTF9FTkdJTkVTLCAxLCA1KTsK KwkJc3luY19yaW5nKGZkLCBOVUxMLCAxLCA1KTsKIAlpZ3Rfc3VidGVzdCgiYmFzaWMtc3RvcmUt ZWFjaCIpCi0JCXN0b3JlX3JpbmcoZmQsIEFMTF9FTkdJTkVTLCAxLCA1KTsKKwkJc3RvcmVfcmlu ZyhmZCwgTlVMTCwgMSwgNSk7CiAJaWd0X3N1YnRlc3QoImJhc2ljLW1hbnktZWFjaCIpCi0JCXN0 b3JlX21hbnkoZmQsIEFMTF9FTkdJTkVTLCA1KTsKKwkJc3RvcmVfbWFueShmZCwgTlVMTCwgNSk7 CiAJaWd0X3N1YnRlc3QoInN3aXRjaC1lYWNoIikKLQkJc3dpdGNoX3JpbmcoZmQsIEFMTF9FTkdJ TkVTLCAxLCAxNTApOworCQlzd2l0Y2hfcmluZyhmZCwgTlVMTCwgMSwgMTUwKTsKIAlpZ3Rfc3Vi dGVzdCgiZm9ya2VkLXN3aXRjaC1lYWNoIikKLQkJc3dpdGNoX3JpbmcoZmQsIEFMTF9FTkdJTkVT LCBuY3B1cywgMTUwKTsKKwkJc3dpdGNoX3JpbmcoZmQsIE5VTEwsIG5jcHVzLCAxNTApOwogCWln dF9zdWJ0ZXN0KCJmb3JrZWQtZWFjaCIpCi0JCXN5bmNfcmluZyhmZCwgQUxMX0VOR0lORVMsIG5j cHVzLCAxNTApOworCQlzeW5jX3JpbmcoZmQsIE5VTEwsIG5jcHVzLCAxNTApOwogCWlndF9zdWJ0 ZXN0KCJmb3JrZWQtc3RvcmUtZWFjaCIpCi0JCXN0b3JlX3JpbmcoZmQsIEFMTF9FTkdJTkVTLCBu Y3B1cywgMTUwKTsKKwkJc3RvcmVfcmluZyhmZCwgTlVMTCwgbmNwdXMsIDE1MCk7CiAJaWd0X3N1 YnRlc3QoImFjdGl2ZS1lYWNoIikKLQkJYWN0aXZlX3JpbmcoZmQsIEFMTF9FTkdJTkVTLCAxNTAp OworCQlhY3RpdmVfcmluZyhmZCwgTlVMTCwgMTUwKTsKIAlpZ3Rfc3VidGVzdCgid2FrZXVwLWVh Y2giKQotCQl3YWtldXBfcmluZyhmZCwgQUxMX0VOR0lORVMsIDE1MCwgMSk7CisJCXdha2V1cF9y aW5nKGZkLCBOVUxMLCAxNTAsIDEpOwogCWlndF9zdWJ0ZXN0KCJhY3RpdmUtd2FrZXVwLWVhY2gi KQotCQlhY3RpdmVfd2FrZXVwX3JpbmcoZmQsIEFMTF9FTkdJTkVTLCAxNTAsIDEpOworCQlhY3Rp dmVfd2FrZXVwX3JpbmcoZmQsIE5VTEwsIDE1MCwgMSk7CiAJaWd0X3N1YnRlc3QoImRvdWJsZS13 YWtldXAtZWFjaCIpCi0JCXdha2V1cF9yaW5nKGZkLCBBTExfRU5HSU5FUywgMTUwLCAyKTsKKwkJ d2FrZXVwX3JpbmcoZmQsIE5VTEwsIDE1MCwgMik7CiAKIAlpZ3Rfc3VidGVzdCgiYmFzaWMtYWxs IikKIAkJc3luY19hbGwoZmQsIDEsIDUpOwpAQCAtMTI5NywxMSArMTI5OSwxMSBAQCBpZ3RfbWFp bgogCQl9CiAKIAkJaWd0X3N1YnRlc3QoInByZWVtcHQtYWxsIikKLQkJCXByZWVtcHQoZmQsIEFM TF9FTkdJTkVTLCAxLCAyMCk7CisJCQlwcmVlbXB0KGZkLCBOVUxMLCAxLCAyMCk7CiAKLQkJZm9y IChlID0gaW50ZWxfZXhlY3V0aW9uX2VuZ2luZXM7IGUtPm5hbWU7IGUrKykgeworCQlfX2Zvcl9l YWNoX3BoeXNpY2FsX2VuZ2luZShmZCwgZSkgewogCQkJaWd0X3N1YnRlc3RfZigicHJlZW1wdC0l cyIsIGUtPm5hbWUpCi0JCQkJcHJlZW1wdChmZCwgZS0+ZXhlY19pZCB8IGUtPmZsYWdzLCBuY3B1 cywgMTUwKTsKKwkJCQlwcmVlbXB0KGZkLCBlLCBuY3B1cywgMTUwKTsKIAkJfQogCX0KIAotLSAK Mi4xOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpp Z3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=