From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5006C8925E for ; Thu, 16 May 2019 13:02:47 +0000 (UTC) From: Arkadiusz Hiler Date: Thu, 16 May 2019 16:02:29 +0300 Message-Id: <20190516130229.6956-1-arkadiusz.hiler@intel.com> MIME-Version: 1.0 Subject: [igt-dev] [PATCH i-g-t] lib/igt_core: Rework extra options conflicts handling 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: Petri Latvala List-ID: VGhpcyBzdGFydGVkIHNpbXBsZSwgYXMgYSBmaXh1cCBmb3IgYSB3YXJuaW5nOgogIEluIGZpbGUg aW5jbHVkZWQgZnJvbSAuLi9saWIvZHJtdGVzdC5oOjM5LAogICAgICAgICAgICAgICAgICAgZnJv bSAuLi9saWIvaWd0X2NvcmUuYzo2MDoKICAuLi9saWIvaWd0X2NvcmUuYzogSW4gZnVuY3Rpb24g 4oCYY29tbW9uX2luaXTigJk6CiAgLi4vbGliL2lndF9jb3JlLmg6ODkxOjI0OiB3YXJuaW5nOiDi gJglc+KAmSBkaXJlY3RpdmUgYXJndW1lbnQgaXMgbnVsbCBbLVdmb3JtYXQtb3ZlcmZsb3c9XQog ICAgODkxIHwgI2RlZmluZSBpZ3Rfd2FybihmLi4uKSBpZ3RfbG9nKElHVF9MT0dfRE9NQUlOLCBJ R1RfTE9HX1dBUk4sIGYpCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KICAuLi9saWIvaWd0X2NvcmUuYzo3MDQ6 NDogbm90ZTogaW4gZXhwYW5zaW9uIG9mIG1hY3JvIOKAmGlndF93YXJu4oCZCiAgICA3MDQgfCAg ICBpZ3Rfd2FybigiQ29uZmxpY3RpbmcgbG9uZyBhbmQgc2hvcnQgb3B0aW9uIHZhbHVlcyBiZXR3 ZWVuIC0tJXMgYW5kIC0lc1xuIiwKICAgICAgICB8ICAgIF5+fn5+fn5+CiAgLi4vbGliL2lndF9j b3JlLmM6NzA0OjczOiBub3RlOiBmb3JtYXQgc3RyaW5nIGlzIGRlZmluZWQgaGVyZQogICAgNzA0 IHwgICAgaWd0X3dhcm4oIkNvbmZsaWN0aW5nIGxvbmcgYW5kIHNob3J0IG9wdGlvbiB2YWx1ZXMg YmV0d2VlbiAtLSVzIGFuZCAtJXNcbiIsCiAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefgoKQnV0 IGl0IGVuZGVkIHVwIGRvaW5nIHRoZSBmb2xsb3dpbmcgdGhpbmdzOgogIDEuIFByb21vdGUgYWxs IGlndF93YXJucyB0byBfY3JpdGljYWwgYW5kIGFzc2VydCBhZnRlcndhcmRzLgogIDIuIFVzZSBm b3IgbG9vcCBpbnN0ZWFkIG9mIGEgd2hpbGUtZG9pbmctZm9yJ3Mtam9iLgogIDMuIFN0cmVhbWxp bmUgY2FsY3VsYXRpb24gb2YgdGhlIG9wdGlvbiBsaXN0IHNpemVzLgogIDQuIEFkZCBjaGVja3Mg Zm9yIGxvbmcgb3B0aW9uIG5hbWVzLgogIDUuIExvZyBhYm91dCAiJ3ZhbCcgcmVwcmVzZW50YXRp b24iIGluc3RlYWQgb2YgY29uZnVzaW5nICJ2YWx1ZSIuCiAgNi4gTG9nIGNvcnJlY3QgdGhpbmdz IHNvIHdlIHdvbid0ICVzIG9uIGEgTlVMTC4KICA3LiBXcml0ZSB0ZXN0cyB0byBjb25maXJtIHRo YXQgaXQgd29ya3MuCgpDYzogUGV0cmkgTGF0dmFsYSA8cGV0cmkubGF0dmFsYUBpbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEFya2FkaXVzeiBIaWxlciA8YXJrYWRpdXN6LmhpbGVyQGludGVsLmNv bT4KLS0tCiBsaWIvaWd0X2NvcmUuYyAgICAgICAgICAgICAgICAgICB8IDcyICsrKysrKysrKysr KystLS0tLS0tLS0tCiBsaWIvdGVzdHMvaWd0X2NvbmZsaWN0aW5nX2FyZ3MuYyB8IDk5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiBsaWIvdGVzdHMvbWVzb24uYnVpbGQgICAgICAg ICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdlZCwgMTQxIGluc2VydGlvbnMoKyksIDMxIGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi90ZXN0cy9pZ3RfY29uZmxpY3RpbmdfYXJn cy5jCgpkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMgYi9saWIvaWd0X2NvcmUuYwppbmRleCBk NWQ0ZmNlMi4uNmJiYzgwNWMgMTAwNjQ0Ci0tLSBhL2xpYi9pZ3RfY29yZS5jCisrKyBiL2xpYi9p Z3RfY29yZS5jCkBAIC02NjYsMTIgKzY2NiwxMiBAQCBzdGF0aWMgaW50IGNvbW1vbl9pbml0KGlu dCAqYXJnYywgY2hhciAqKmFyZ3YsCiB7CiAJaW50IGMsIG9wdGlvbl9pbmRleCA9IDAsIGksIHg7 CiAJc3RhdGljIHN0cnVjdCBvcHRpb24gbG9uZ19vcHRpb25zW10gPSB7Ci0JCXsibGlzdC1zdWJ0 ZXN0cyIsIDAsIDAsIE9QVF9MSVNUX1NVQlRFU1RTfSwKLQkJeyJydW4tc3VidGVzdCIsIDEsIDAs IE9QVF9SVU5fU1VCVEVTVH0sCi0JCXsiaGVscC1kZXNjcmlwdGlvbiIsIDAsIDAsIE9QVF9ERVND UklQVElPTn0sCi0JCXsiZGVidWciLCBvcHRpb25hbF9hcmd1bWVudCwgMCwgT1BUX0RFQlVHfSwK LQkJeyJpbnRlcmFjdGl2ZS1kZWJ1ZyIsIG9wdGlvbmFsX2FyZ3VtZW50LCAwLCBPUFRfSU5URVJB Q1RJVkVfREVCVUd9LAotCQl7ImhlbHAiLCAwLCAwLCBPUFRfSEVMUH0sCisJCXsibGlzdC1zdWJ0 ZXN0cyIsICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX0xJU1RfU1VCVEVTVFN9LAor CQl7InJ1bi1zdWJ0ZXN0IiwgICAgICAgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIE9QVF9SVU5f U1VCVEVTVH0sCisJCXsiaGVscC1kZXNjcmlwdGlvbiIsICBub19hcmd1bWVudCwgICAgICAgTlVM TCwgT1BUX0RFU0NSSVBUSU9OfSwKKwkJeyJkZWJ1ZyIsICAgICAgICAgICAgIG9wdGlvbmFsX2Fy Z3VtZW50LCBOVUxMLCBPUFRfREVCVUd9LAorCQl7ImludGVyYWN0aXZlLWRlYnVnIiwgb3B0aW9u YWxfYXJndW1lbnQsIE5VTEwsIE9QVF9JTlRFUkFDVElWRV9ERUJVR30sCisJCXsiaGVscCIsICAg ICAgICAgICAgICBub19hcmd1bWVudCwgICAgICAgTlVMTCwgT1BUX0hFTFB9LAogCQl7MCwgMCwg MCwgMH0KIAl9OwogCWNoYXIgKnNob3J0X29wdHM7CkBAIC02ODcsNDggKzY4Nyw1OCBAQCBzdGF0 aWMgaW50IGNvbW1vbl9pbml0KGludCAqYXJnYywgY2hhciAqKmFyZ3YsCiAJaWYgKHN0cnJjaHIo Y29tbWFuZF9zdHIsICcvJykpCiAJCWNvbW1hbmRfc3RyID0gc3RycmNocihjb21tYW5kX3N0ciwg Jy8nKSArIDE7CiAKLQkvKiBGaXJzdCBjYWxjdWxhdGUgc3BhY2UgZm9yIGFsbCBwYXNzZWQtaW4g ZXh0cmEgbG9uZyBvcHRpb25zICovCi0JYWxsX29wdF9jb3VudCA9IDA7Ci0Jd2hpbGUgKGV4dHJh X2xvbmdfb3B0cyAmJiBleHRyYV9sb25nX29wdHNbYWxsX29wdF9jb3VudF0ubmFtZSkgeworCS8q IENoZWNrIGZvciBjb25mbGljdHMgYW5kIGNhbGN1bGF0ZSBzcGFjZSBmb3IgcGFzc2VkLWluIGV4 dHJhIGxvbmcgb3B0aW9ucyAqLworCWZvciAgKGV4dHJhX29wdF9jb3VudCA9IDA7IGV4dHJhX2xv bmdfb3B0cyAmJiBleHRyYV9sb25nX29wdHNbZXh0cmFfb3B0X2NvdW50XS5uYW1lOyBleHRyYV9v cHRfY291bnQrKykgeworCQljaGFyICpjb25mbGljdGluZ19jaGFyOwogCiAJCS8qIGNoZWNrIGZv ciBjb25mbGljdHMgd2l0aCBzdGFuZGFyZCBsb25nIG9wdGlvbiB2YWx1ZXMgKi8KLQkJZm9yIChp ID0gMDsgbG9uZ19vcHRpb25zW2ldLm5hbWU7IGkrKykKLQkJCWlmIChleHRyYV9sb25nX29wdHNb YWxsX29wdF9jb3VudF0udmFsID09IGxvbmdfb3B0aW9uc1tpXS52YWwpCi0JCQkJaWd0X3dhcm4o IkNvbmZsaWN0aW5nIGxvbmcgb3B0aW9uIHZhbHVlcyBiZXR3ZWVuIC0tJXMgYW5kIC0tJXNcbiIs Ci0JCQkJCSBleHRyYV9sb25nX29wdHNbYWxsX29wdF9jb3VudF0ubmFtZSwKKwkJZm9yIChpID0g MDsgbG9uZ19vcHRpb25zW2ldLm5hbWU7IGkrKykgeworCQkJaWYgKDAgPT0gc3RyY21wKGV4dHJh X2xvbmdfb3B0c1tleHRyYV9vcHRfY291bnRdLm5hbWUsIGxvbmdfb3B0aW9uc1tpXS5uYW1lKSkg eworCQkJCWlndF9jcml0aWNhbCgiQ29uZmxpY3RpbmcgZXh0cmEgbG9uZyBvcHRpb24gZGVmaW5l ZCAtLSVzXG4iLCBsb25nX29wdGlvbnNbaV0ubmFtZSk7CisJCQkJYXNzZXJ0KDApOworCisJCQl9 CisKKwkJCWlmIChleHRyYV9sb25nX29wdHNbZXh0cmFfb3B0X2NvdW50XS52YWwgPT0gbG9uZ19v cHRpb25zW2ldLnZhbCkgeworCQkJCWlndF9jcml0aWNhbCgiQ29uZmxpY3RpbmcgbG9uZyBvcHRp b24gJ3ZhbCcgcmVwcmVzZW50YXRpb24gYmV0d2VlbiAtLSVzIGFuZCAtLSVzXG4iLAorCQkJCQkg ZXh0cmFfbG9uZ19vcHRzW2V4dHJhX29wdF9jb3VudF0ubmFtZSwKIAkJCQkJIGxvbmdfb3B0aW9u c1tpXS5uYW1lKTsKLQotCQkvKiBjaGVjayBmb3IgY29uZmxpY3RzIHdpdGggc2hvcnQgb3B0aW9u cyAqLwotCQlpZiAoZXh0cmFfbG9uZ19vcHRzW2FsbF9vcHRfY291bnRdLnZhbCAhPSAnOicKLQkJ ICAgICYmIHN0cmNocihzdGRfc2hvcnRfb3B0cywgZXh0cmFfbG9uZ19vcHRzW2FsbF9vcHRfY291 bnRdLnZhbCkpIHsKLQkJCWlndF93YXJuKCJDb25mbGljdGluZyBsb25nIGFuZCBzaG9ydCBvcHRp b24gdmFsdWVzIGJldHdlZW4gLS0lcyBhbmQgLSVzXG4iLAotCQkJCSBleHRyYV9sb25nX29wdHNb YWxsX29wdF9jb3VudF0ubmFtZSwKLQkJCQkgbG9uZ19vcHRpb25zW2ldLm5hbWUpOworCQkJCWFz c2VydCgwKTsKKwkJCX0KIAkJfQogCi0KLQkJYWxsX29wdF9jb3VudCsrOworCQkvKiBjaGVjayBm b3IgY29uZmxpY3RzIHdpdGggc3RhbmRhcmQgc2hvcnQgb3B0aW9ucyAqLworCQlpZiAoZXh0cmFf bG9uZ19vcHRzW2V4dHJhX29wdF9jb3VudF0udmFsICE9ICc6JworCQkgICAgJiYgKGNvbmZsaWN0 aW5nX2NoYXIgPSBzdHJjaHIoc3RkX3Nob3J0X29wdHMsIGV4dHJhX2xvbmdfb3B0c1tleHRyYV9v cHRfY291bnRdLnZhbCkpKSB7CisJCQlpZ3RfY3JpdGljYWwoIkNvbmZsaWN0aW5nIGxvbmcgYW5k IHNob3J0IG9wdGlvbiAndmFsJyByZXByZXNlbnRhdGlvbiBiZXR3ZWVuIC0tJXMgYW5kIC0lY1xu IiwKKwkJCQkgZXh0cmFfbG9uZ19vcHRzW2V4dHJhX29wdF9jb3VudF0ubmFtZSwKKwkJCQkgKmNv bmZsaWN0aW5nX2NoYXIpOworCQkJYXNzZXJ0KDApOworCQl9CiAJfQotCWV4dHJhX29wdF9jb3Vu dCA9IGFsbF9vcHRfY291bnQ7CiAKIAkvKiBjaGVjayBmb3IgY29uZmxpY3RzIGluIGV4dHJhIHNo b3J0IG9wdGlvbnMqLwogCWZvciAoaSA9IDA7IGV4dHJhX3Nob3J0X29wdHMgJiYgZXh0cmFfc2hv cnRfb3B0c1tpXTsgaSsrKSB7Ci0KIAkJaWYgKGV4dHJhX3Nob3J0X29wdHNbaV0gPT0gJzonKQog CQkJY29udGludWU7CiAKIAkJLyogY2hlY2sgZm9yIGNvbmZsaWN0cyB3aXRoIHN0YW5kYXJkIHNo b3J0IG9wdGlvbnMgKi8KLQkJaWYgKHN0cmNocihzdGRfc2hvcnRfb3B0cywgZXh0cmFfc2hvcnRf b3B0c1tpXSkpCi0JCQlpZ3Rfd2FybigiQ29uZmxpY3Rpbmcgc2hvcnQgb3B0aW9uOiAtJWNcbiIs IHN0ZF9zaG9ydF9vcHRzW2ldKTsKKwkJaWYgKHN0cmNocihzdGRfc2hvcnRfb3B0cywgZXh0cmFf c2hvcnRfb3B0c1tpXSkpIHsKKwkJCWlndF9jcml0aWNhbCgiQ29uZmxpY3Rpbmcgc2hvcnQgb3B0 aW9uOiAtJWNcbiIsIHN0ZF9zaG9ydF9vcHRzW2ldKTsKKwkJCWFzc2VydCgwKTsKKwkJfQogCiAJ CS8qIGNoZWNrIGZvciBjb25mbGljdHMgd2l0aCBzdGFuZGFyZCBsb25nIG9wdGlvbiB2YWx1ZXMg Ki8KLQkJZm9yICh4ID0gMDsgbG9uZ19vcHRpb25zW3hdLm5hbWU7IHgrKykKLQkJCWlmIChsb25n X29wdGlvbnNbeF0udmFsID09IGV4dHJhX3Nob3J0X29wdHNbaV0pCi0JCQkJaWd0X3dhcm4oIkNv bmZsaWN0aW5nIHNob3J0IG9wdGlvbiBhbmQgbG9uZyBvcHRpb24gdmFsdWU6IC0tJXMgYW5kIC0l Y1xuIiwKLQkJCQkJIGxvbmdfb3B0aW9uc1t4XS5uYW1lLCBleHRyYV9zaG9ydF9vcHRzW2ldKTsK KwkJZm9yICh4ID0gMDsgbG9uZ19vcHRpb25zW3hdLm5hbWU7IHgrKykgeworCQkJaWYgKGxvbmdf b3B0aW9uc1t4XS52YWwgPT0gZXh0cmFfc2hvcnRfb3B0c1tpXSkgeworCQkJCWlndF9jcml0aWNh bCgiQ29uZmxpY3Rpbmcgc2hvcnQgb3B0aW9uIGFuZCBsb25nIG9wdGlvbiAndmFsJyByZXByZXNl bnRhdGlvbjogLS0lcyBhbmQgLSVjXG4iLAorCQkJCQkgICAgIGxvbmdfb3B0aW9uc1t4XS5uYW1l LCBleHRyYV9zaG9ydF9vcHRzW2ldKTsKKwkJCQlhc3NlcnQoMCk7CisJCQl9CisJCX0KIAl9CiAK LQlhbGxfb3B0X2NvdW50ICs9IEFSUkFZX1NJWkUobG9uZ19vcHRpb25zKTsKKwlhbGxfb3B0X2Nv dW50ID0gZXh0cmFfb3B0X2NvdW50ICsgQVJSQVlfU0laRShsb25nX29wdGlvbnMpOwogCiAJY29t YmluZWRfb3B0cyA9IG1hbGxvYyhhbGxfb3B0X2NvdW50ICogc2l6ZW9mKCpjb21iaW5lZF9vcHRz KSk7CiAJaWYgKGV4dHJhX29wdF9jb3VudCA+IDApCmRpZmYgLS1naXQgYS9saWIvdGVzdHMvaWd0 X2NvbmZsaWN0aW5nX2FyZ3MuYyBiL2xpYi90ZXN0cy9pZ3RfY29uZmxpY3RpbmdfYXJncy5jCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5jMzU3YjZjNQotLS0gL2Rldi9udWxs CisrKyBiL2xpYi90ZXN0cy9pZ3RfY29uZmxpY3RpbmdfYXJncy5jCkBAIC0wLDAgKzEsOTkgQEAK Ky8qCisgKiBDb3B5cmlnaHQgwqkgMjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICoKKyAqIFBlcm1p c3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9i dGFpbmluZyBhCisgKiBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLAorICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgorICog dGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1 dGUsIHN1YmxpY2Vuc2UsCisgKiBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBh bmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUKKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hl ZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICog VGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2UgKGlu Y2x1ZGluZyB0aGUgbmV4dAorICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwg Y29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQorICogU29mdHdhcmUuCisgKgor ICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0Yg QU5ZIEtJTkQsIEVYUFJFU1MgT1IKKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlU RUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAorICogRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gIElOIE5PIEVWRU5UIFNI QUxMCisgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFO WSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFD VElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyAqIEZST00sIE9V VCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RI RVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqLworCisvKgorICogREVTQ1JJUFRJ T046IE1ha2Ugc3VyZSB0aGF0IElHVCBmcmFtZXdvcmsgY29tcGxhaW5zIHdoZW4gdGVzdCB0cnkg dG8gZGVmaW5lCisgKiBjb25mbGljdGluZyBvcHRpb25zLgorICovCisKKyNpbmNsdWRlIDxzaWdu YWwuaD4KKyNpbmNsdWRlIDxzeXMvd2FpdC5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpbmNs dWRlICJkcm10ZXN0LmgiCisjaW5jbHVkZSAiaWd0X2NvcmUuaCIKKyNpbmNsdWRlICJpZ3RfdGVz dHNfY29tbW9uLmgiCisKK3N0YXRpYyBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0aW9uc1syXTsKK3N0 YXRpYyBjb25zdCBjaGFyICpzaG9ydF9vcHRpb25zOworCitzdGF0aWMgaW50IG9wdF9oYW5kbGVy KGludCBvcHRpb24sIGludCBvcHRpb25faW5kZXgsIHZvaWQgKmlucHV0KQoreworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgZG9fZm9yayh2b2lkKQoreworCWNoYXIgdGVzdF9uYW1lW10g PSAidGVzdCI7CisKKwljaGFyICphcmd2W10gPSB7IHRlc3RfbmFtZSB9OworCWludCBhcmdjID0g QVJSQVlfU0laRShhcmd2KTsKKworCXBpZF90IHBpZCA9IGZvcmsoKTsKKwlpbnRlcm5hbF9hc3Nl cnQocGlkICE9IC0xKTsKKworCWlmIChwaWQpIHsKKwkJaW50IHN0YXR1czsKKwkJd2hpbGUgKHdh aXRwaWQocGlkLCAmc3RhdHVzLCAwKSA9PSAtMSAmJiBlcnJubyA9PSBFSU5UUikKKwkJCTsKKwor CQlyZXR1cm4gc3RhdHVzOworCX0KKworCisJaWd0X3N1YnRlc3RfaW5pdF9wYXJzZV9vcHRzKCZh cmdjLCBhcmd2LCBzaG9ydF9vcHRpb25zLCBsb25nX29wdGlvbnMsCisJCQkJICAgICIiLCBvcHRf aGFuZGxlciwgTlVMTCk7CisJaWd0X3N1YnRlc3QoImR1bW15Iikge30KKwlpZ3RfZXhpdCgpOwor fQorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCit7CisJLyogbm8gY29uZmxpY3Qg Ki8KKwlsb25nX29wdGlvbnNbMF0gPSAoc3RydWN0IG9wdGlvbikgeyAiaXRlcmF0aW9ucyIsIHJl cXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnaSd9OworCXNob3J0X29wdGlvbnMgPSAiIjsKKwlpbnRl cm5hbF9hc3NlcnRfd2V4aXRlZChkb19mb3JrKCksIDApOworCisJLyogY29uZmxpY3Qgb24gc2hv cnQgb3B0aW9uICovCisJbG9uZ19vcHRpb25zWzBdID0gKHN0cnVjdCBvcHRpb24pIHsgIml0ZXJh dGlvbnMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgJ2knfTsKKwlzaG9ydF9vcHRpb25zID0g ImgiOworCWludGVybmFsX2Fzc2VydF93c2lnbmFsZWQoZG9fZm9yaygpLCBTSUdBQlJUKTsKKwor CS8qIGNvbmZsaWN0IG9uIGxvbmcgb3B0aW9uIG5hbWUgKi8KKwlsb25nX29wdGlvbnNbMF0gPSAo c3RydWN0IG9wdGlvbikgeyAiaGVscCIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnaSd9Owor CXNob3J0X29wdGlvbnMgPSAiIjsKKwlpbnRlcm5hbF9hc3NlcnRfd3NpZ25hbGVkKGRvX2Zvcmso KSwgU0lHQUJSVCk7CisKKwkvKiBjb25mbGljdCBvbiBsb25nIG9wdGlvbiAndmFsJyByZXByZXNl bnRhdGlvbiB2cyBzaG9ydCBvcHRpb24gKi8KKwlsb25nX29wdGlvbnNbMF0gPSAoc3RydWN0IG9w dGlvbikgeyAiaXRlcmF0aW9ucyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAnaCd9OworCXNo b3J0X29wdGlvbnMgPSAiIjsKKwlpbnRlcm5hbF9hc3NlcnRfd3NpZ25hbGVkKGRvX2ZvcmsoKSwg U0lHQUJSVCk7CisKKwkvKiBjb25mbGljdCBvbiBsb25nIG9wdGlvbiAndmFsJyByZXByZXNlbnRh dGlvbnMgKi8KKwlsb25nX29wdGlvbnNbMF0gPSAoc3RydWN0IG9wdGlvbikgeyAiaXRlcmF0aW9u cyIsIHJlcXVpcmVkX2FyZ3VtZW50LCBOVUxMLCAwfTsKKwlzaG9ydF9vcHRpb25zID0gIiI7CisJ aW50ZXJuYWxfYXNzZXJ0X3dzaWduYWxlZChkb19mb3JrKCksIFNJR0FCUlQpOworCisJcmV0dXJu IDA7Cit9CmRpZmYgLS1naXQgYS9saWIvdGVzdHMvbWVzb24uYnVpbGQgYi9saWIvdGVzdHMvbWVz b24uYnVpbGQKaW5kZXggNzRlZmNlMzkuLjk5NTBiZDU5IDEwMDY0NAotLS0gYS9saWIvdGVzdHMv bWVzb24uYnVpbGQKKysrIGIvbGliL3Rlc3RzL21lc29uLmJ1aWxkCkBAIC0yLDYgKzIsNyBAQCBs aWJfdGVzdHMgPSBbCiAJJ2lndF9hc3NlcnQnLAogCSdpZ3RfY2FuX2ZhaWwnLAogCSdpZ3RfY2Fu X2ZhaWxfc2ltcGxlJywKKwknaWd0X2NvbmZsaWN0aW5nX2FyZ3MnLAogCSdpZ3RfZXhpdF9oYW5k bGVyJywKIAknaWd0X2ZvcmsnLAogCSdpZ3RfZm9ya19oZWxwZXInLAotLSAKMi4yMS4wCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxp bmcgbGlzdAppZ3QtZGV2QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lndC1kZXY=