From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x62a.google.com (mail-pl1-x62a.google.com [IPv6:2607:f8b0:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 071DB3857C78; Sat, 12 Dec 2020 04:50:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 071DB3857C78 Received: by mail-pl1-x62a.google.com with SMTP id j1so5689952pld.3; Fri, 11 Dec 2020 20:49:59 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=BbTxyOvr8bCl2x8mmmy0ysWLjaU+pv/r3ZG4Gf3wjqY=; b=l0X/YiYUSnb82DLAyBTAP+ICDEyRb+2Ua4s1GP6XeRXTKxuEuZB3m7KqoAUilasCWj U3Tsj29pZzDnHsLs14Yacn9PC+41xjkWsZQPz78C+x0sxYr5zYf0s2ZAFGkf271qc99U KCQPN8wU6k8vwz8IWY+Ip1G/nErKSFvFP6xQqgVe4oYKxrhbC6cZwO6eRqkn1Hpx6CyT 2/4iSk5w31dHS8zvTQoT92JUrdnJFeDbJtA47/slo1PpeoiQKU28hK9PZ630fe2dCYqw aa2ilmvLr81ccf5kip47YPAn3J/gSjA8afr/U2LbG7OgBFLcvW2uraV5RGtDLN6Vz3cO 55lQ== X-Gm-Message-State: AOAM533a5QQQD8Fl3yzksoM4xldZRvcJZH4L/uLe7T8o6qdQNGviGQ25 KqeB97+02trad30+cbvtRcBmajhHfn73nw0UReorSQ+0Wds= X-Google-Smtp-Source: ABdhPJzK88kZRa794nvZQUkojx6gT130/lrW8rKGkkfliSBz+JRkjIvZTU8620gShmweMZCkFH6zHO41QVeNDL4bIzk= X-Received: by 2002:a17:90b:4b11:: with SMTP id lx17mr16208771pjb.154.1607748598923; Fri, 11 Dec 2020 20:49:58 -0800 (PST) MIME-Version: 1.0 From: abebeos Date: Sat, 12 Dec 2020 06:49:47 +0200 Message-ID: Subject: [PATCH] avr: cc0 to mode_cc conversion To: gcc-patches@gcc.gnu.org Content-Type: multipart/mixed; boundary="000000000000217c5e05b63d2471" X-Spam-Status: No, score=-0.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-Mailman-Approved-At: Sat, 12 Dec 2020 17:18:13 +0000 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Dec 2020 04:50:02 -0000 --000000000000217c5e05b63d2471 Content-Type: text/plain; charset="UTF-8" (I really tried to follow this https://gcc.gnu.org/contribute.html#patches, but my stomach) Hi there all! The attached patch contains a new avr-backend, stripped from cc0. The author is gcc maintainer Snethil Kumar Selvaraj (saaadhu), the source can be found here: https://github.com/saaadhu/gcc-avr-cc0/tree/avr-cc0-squashed The gcc/g++ testsuites show zero regressions, tested with: https://github.com/abebeos/avr-gnu and confirmed with another testsetup, see: https://gcc.gnu.org/pipermail/gcc-patches/2020-December/561489.html Some more background information within: https://gcc.gnu.org/pipermail/gcc-patches/2020-December/561668.html and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92729 (i have this dark feeling that I did the patch submission wrong... pressing Send anyways!) --000000000000217c5e05b63d2471 Content-Type: application/octet-stream; name="saaadhu-Snethil-Kumar-Selvaraj-gcc-avr-non-cc0.patch" Content-Disposition: attachment; filename="saaadhu-Snethil-Kumar-Selvaraj-gcc-avr-non-cc0.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kil6tfic0 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXZyL2F2ci1kaW1vZGUubWQgYi9nY2MvY29uZmlnL2F2 ci9hdnItZGltb2RlLm1kCmluZGV4IGFkZmZkMmJkMDU1Li42YmI0NDQxNmYxMCAxMDA2NDQKLS0t IGEvZ2NjL2NvbmZpZy9hdnIvYXZyLWRpbW9kZS5tZAorKysgYi9nY2MvY29uZmlnL2F2ci9hdnIt ZGltb2RlLm1kCkBAIC05NSwzOSArOTUsNzcgQEAKIDs7ICJhZGRkcTNfaW5zbiIgImFkZHVkcTNf aW5zbiIKIDs7ICJhZGRkYTNfaW5zbiIgImFkZHVkYTNfaW5zbiIKIDs7ICJhZGR0YTNfaW5zbiIg ImFkZHV0YTNfaW5zbiIKLShkZWZpbmVfaW5zbiAiYWRkPG1vZGU+M19pbnNuIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiYWRkPG1vZGU+M19pbnNuIgogICBbKHNldCAocmVnOkFMTDggQUNDX0Ep CiAgICAgICAgIChwbHVzOkFMTDggKHJlZzpBTEw4IEFDQ19BKQogICAgICAgICAgICAgICAgICAg IChyZWc6QUxMOCBBQ0NfQikpKV0KICAgImF2cl9oYXZlX2RpbW9kZSIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKKyAg ICAgICAgICAgICAgICAgICAocGx1czpBTEw4IChyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChyZWc6QUxMOCBBQ0NfQikpKQorICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYWRkPG1vZGU+M19pbnNuIgorICBbKHNl dCAocmVnOkFMTDggQUNDX0EpCisgICAgICAgIChwbHVzOkFMTDggKHJlZzpBTEw4IEFDQ19BKQor ICAgICAgICAgICAgICAgICAgIChyZWc6QUxMOCBBQ0NfQikpKQorICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0KKyAgImF2cl9oYXZlX2RpbW9kZSAmJiByZWxvYWRfY29tcGxldGVkIgogICAi JX5jYWxsIF9fYWRkZGkzIgotICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY2FsbCIpCi0gICAo c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImNh bGwiKV0pCiAKLShkZWZpbmVfaW5zbiAiYWRkZGkzX2NvbnN0OF9pbnNuIgorKGRlZmluZV9pbnNu X2FuZF9zcGxpdCAiYWRkZGkzX2NvbnN0OF9pbnNuIgogICBbKHNldCAocmVnOkRJIEFDQ19BKQog ICAgICAgICAocGx1czpESSAocmVnOkRJIEFDQ19BKQogICAgICAgICAgICAgICAgICAoc2lnbl9l eHRlbmQ6REkgKHJlZzpRSSBSRUdfWCkpKSldCiAgICJhdnJfaGF2ZV9kaW1vZGUiCisgICIjIgor ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkRJIEFDQ19B KQorICAgICAgICAgICAgICAgICAgIChwbHVzOkRJIChyZWc6REkgQUNDX0EpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHNpZ25fZXh0ZW5kOkRJIChyZWc6UUkgUkVHX1gpKSkpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAi KmFkZGRpM19jb25zdDhfaW5zbiIKKyAgWyhzZXQgKHJlZzpESSBBQ0NfQSkKKyAgICAgICAgKHBs dXM6REkgKHJlZzpESSBBQ0NfQSkKKyAgICAgICAgICAgICAgICAgKHNpZ25fZXh0ZW5kOkRJIChy ZWc6UUkgUkVHX1gpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiYXZyX2hh dmVfZGltb2RlICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX19hZGRkaTNfczgiCi0g IFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9i YmVyIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY2FsbCIpXSkKIAogOzsgImFkZGRp M19jb25zdF9pbnNuIgogOzsgImFkZGRxM19jb25zdF9pbnNuIiAiYWRkdWRxM19jb25zdF9pbnNu IgogOzsgImFkZGRhM19jb25zdF9pbnNuIiAiYWRkdWRhM19jb25zdF9pbnNuIgogOzsgImFkZHRh M19jb25zdF9pbnNuIiAiYWRkdXRhM19jb25zdF9pbnNuIgotKGRlZmluZV9pbnNuICJhZGQ8bW9k ZT4zX2NvbnN0X2luc24iCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJhZGQ8bW9kZT4zX2NvbnN0 X2luc24iCiAgIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKICAgICAgICAgKHBsdXM6QUxMOCAocmVn OkFMTDggQUNDX0EpCiAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMOCAwICJj b25zdF9vcGVyYW5kIiAibiBZbm4iKSkpXQogICAiYXZyX2hhdmVfZGltb2RlCiAgICAmJiAhczhf b3BlcmFuZCAob3BlcmFuZHNbMF0sIFZPSURtb2RlKSIKKyAgICIjIgorICAgIiYmIHJlbG9hZF9j b21wbGV0ZWQiCisgICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAg ICAgICAgICAgICAgKHBsdXM6QUxMOCAocmVnOkFMTDggQUNDX0EpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAwKSkpCisgICAgICAgICAgICAgICAoY2xvYmJlciAo cmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiphZGQ8bW9kZT4zX2NvbnN0X2lu c24iCisgIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgKHBsdXM6QUxMOCAocmVnOkFM TDggQUNDX0EpCisgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMOCAwICJjb25z dF9vcGVyYW5kIiAibiBZbm4iKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAi YXZyX2hhdmVfZGltb2RlCisgICAmJiAhczhfb3BlcmFuZCAob3BlcmFuZHNbMF0sIFZPSURtb2Rl KQorICAgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3BsdXMg KGluc24sIG9wZXJhbmRzKTsKICAgfQotICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAicGx1cyIp Ci0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAiYWRqdXN0X2xl biIgInBsdXMiKV0pCiAKIAogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwpAQCAtMTY3LDI5ICsyMDUsNTMgQEAKIDs7 ICJzdWJkcTNfaW5zbiIgInN1YnVkcTNfaW5zbiIKIDs7ICJzdWJkYTNfaW5zbiIgInN1YnVkYTNf aW5zbiIKIDs7ICJzdWJ0YTNfaW5zbiIgInN1YnV0YTNfaW5zbiIKLShkZWZpbmVfaW5zbiAic3Vi PG1vZGU+M19pbnNuIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAic3ViPG1vZGU+M19pbnNuIgog ICBbKHNldCAocmVnOkFMTDggQUNDX0EpCiAgICAgICAgIChtaW51czpBTEw4IChyZWc6QUxMOCBB Q0NfQSkKICAgICAgICAgICAgICAgICAgICAgKHJlZzpBTEw4IEFDQ19CKSkpXQogICAiYXZyX2hh dmVfZGltb2RlIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKHJlZzpBTEw4IEFDQ19BKQorICAgICAgICAgICAgICAgICAgIChtaW51czpBTEw4IChy ZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnOkFMTDgg QUNDX0IpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKwor KGRlZmluZV9pbnNuICIqc3ViPG1vZGU+M19pbnNuIgorICBbKHNldCAocmVnOkFMTDggQUNDX0Ep CisgICAgICAgIChtaW51czpBTEw4IChyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgICAgICAgICAg ICAgKHJlZzpBTEw4IEFDQ19CKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAi YXZyX2hhdmVfZGltb2RlICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX19zdWJkaTMi Ci0gIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJz ZXRfY3puIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY2FsbCIpXSkKIAogOzsgInN1 YmRpM19jb25zdF9pbnNuIgogOzsgInN1YmRxM19jb25zdF9pbnNuIiAic3VidWRxM19jb25zdF9p bnNuIgogOzsgInN1YmRhM19jb25zdF9pbnNuIiAic3VidWRhM19jb25zdF9pbnNuIgogOzsgInN1 YnRhM19jb25zdF9pbnNuIiAic3VidXRhM19jb25zdF9pbnNuIgotKGRlZmluZV9pbnNuICJzdWI8 bW9kZT4zX2NvbnN0X2luc24iCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJzdWI8bW9kZT4zX2Nv bnN0X2luc24iCiAgIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKICAgICAgICAgKG1pbnVzOkFMTDgg KHJlZzpBTEw4IEFDQ19BKQogICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpBTEw4 IDAgImNvbnN0X29wZXJhbmQiICJuIFlubiIpKSldCiAgICJhdnJfaGF2ZV9kaW1vZGUiCisgICIj IgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkFMTDgg QUNDX0EpCisgICAgICAgICAgICAgICAgICAgKG1pbnVzOkFMTDggKHJlZzpBTEw4IEFDQ19BKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMCkpKQorICAgICAgICAg ICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipzdWI8 bW9kZT4zX2NvbnN0X2luc24iCisgIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgKG1p bnVzOkFMTDggKHJlZzpBTEw4IEFDQ19BKQorICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3Bl cmFuZDpBTEw4IDAgImNvbnN0X29wZXJhbmQiICJuIFlubiIpKSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldCisgICJhdnJfaGF2ZV9kaW1vZGUgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAg ewogICAgIHJldHVybiBhdnJfb3V0X3BsdXMgKGluc24sIG9wZXJhbmRzKTsKICAgfQotICBbKHNl dF9hdHRyICJhZGp1c3RfbGVuIiAicGx1cyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIp XSkKKyAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInBsdXMiKV0pCiAKIDs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsK IDs7IFNpZ25lZCBTYXR1cmF0aW5nIEFkZGl0aW9uIGFuZCBTdWJ0cmFjdGlvbgpAQCAtMjIwLDI1 ICsyODIsNDkgQEAKICAgICBET05FOwogICB9KQogCi0oZGVmaW5lX2luc24gIjxjb2RlX3N0ZG5h bWU+PG1vZGU+M19pbnNuIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiPGNvZGVfc3RkbmFtZT48 bW9kZT4zX2luc24iCiAgIFsoc2V0IChyZWc6QUxMOFMgQUNDX0EpCiAgICAgICAgIChzc19hZGRz dWI6QUxMOFMgKHJlZzpBTEw4UyBBQ0NfQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAocmVn OkFMTDhTIEFDQ19CKSkpXQogICAiYXZyX2hhdmVfZGltb2RlIgorICAiIyIKKyAgIiYmIHJlbG9h ZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpBTEw4UyBBQ0NfQSkKKyAgICAg ICAgICAgICAgICAgICAoc3NfYWRkc3ViOkFMTDhTIChyZWc6QUxMOFMgQUNDX0EpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnOkFMTDhTIEFDQ19CKSkpCisgICAgICAg ICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqPGNv ZGVfc3RkbmFtZT48bW9kZT4zX2luc24iCisgIFsoc2V0IChyZWc6QUxMOFMgQUNDX0EpCisgICAg ICAgIChzc19hZGRzdWI6QUxMOFMgKHJlZzpBTEw4UyBBQ0NfQSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAocmVnOkFMTDhTIEFDQ19CKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XQorICAiYXZyX2hhdmVfZGltb2RlICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX188 Y29kZV9zdGRuYW1lPjxtb2RlPjMiCi0gIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJjYWxsIikK LSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVu IiAiY2FsbCIpXSkKIAotKGRlZmluZV9pbnNuICI8Y29kZV9zdGRuYW1lPjxtb2RlPjNfY29uc3Rf aW5zbiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIjxjb2RlX3N0ZG5hbWU+PG1vZGU+M19jb25z dF9pbnNuIgogICBbKHNldCAocmVnOkFMTDhTIEFDQ19BKQogICAgICAgICAoc3NfYWRkc3ViOkFM TDhTIChyZWc6QUxMOFMgQUNDX0EpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6QUxMOFMgMCAiY29uc3Rfb3BlcmFuZCIgIm4gWW5uIikpKV0KICAgImF2cl9oYXZlX2Rp bW9kZSIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0 IChyZWc6QUxMOFMgQUNDX0EpCisgICAgICAgICAgICAgICAgICAgKHNzX2FkZHN1YjpBTEw4UyAo cmVnOkFMTDhTIEFDQ19BKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX2R1cCAwKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKjxjb2RlX3N0ZG5hbWU+PG1vZGU+M19jb25zdF9pbnNuIgorICBb KHNldCAocmVnOkFMTDhTIEFDQ19BKQorICAgICAgICAoc3NfYWRkc3ViOkFMTDhTIChyZWc6QUxM OFMgQUNDX0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMOFMg MCAiY29uc3Rfb3BlcmFuZCIgIm4gWW5uIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0Mp KV0KKyAgImF2cl9oYXZlX2RpbW9kZSAmJiByZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0 dXJuIGF2cl9vdXRfcGx1cyAoaW5zbiwgb3BlcmFuZHMpOwogICB9Ci0gIFsoc2V0X2F0dHIgImFk anVzdF9sZW4iICJwbHVzIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNl dF9hdHRyICJhZGp1c3RfbGVuIiAicGx1cyIpXSkKIAogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OwogOzsgVW5zaWdu ZWQgU2F0dXJhdGluZyBBZGRpdGlvbiBhbmQgU3VidHJhY3Rpb24KQEAgLTI2OSwyNSArMzU1LDQ5 IEBACiAgICAgRE9ORTsKICAgfSkKIAotKGRlZmluZV9pbnNuICI8Y29kZV9zdGRuYW1lPjxtb2Rl PjNfaW5zbiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIjxjb2RlX3N0ZG5hbWU+PG1vZGU+M19p bnNuIgogICBbKHNldCAocmVnOkFMTDhVIEFDQ19BKQogICAgICAgICAodXNfYWRkc3ViOkFMTDhV IChyZWc6QUxMOFUgQUNDX0EpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZzpBTEw4VSBB Q0NfQikpKV0KICAgImF2cl9oYXZlX2RpbW9kZSIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxMOFUgQUNDX0EpCisgICAgICAgICAgICAg ICAgICAgKHVzX2FkZHN1YjpBTEw4VSAocmVnOkFMTDhVIEFDQ19BKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHJlZzpBTEw4VSBBQ0NfQikpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIio8Y29kZV9zdGRu YW1lPjxtb2RlPjNfaW5zbiIKKyAgWyhzZXQgKHJlZzpBTEw4VSBBQ0NfQSkKKyAgICAgICAgKHVz X2FkZHN1YjpBTEw4VSAocmVnOkFMTDhVIEFDQ19BKQorICAgICAgICAgICAgICAgICAgICAgICAg IChyZWc6QUxMOFUgQUNDX0IpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJh dnJfaGF2ZV9kaW1vZGUgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfXzxjb2RlX3N0 ZG5hbWU+PG1vZGU+MyIKLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImNhbGwiKQotICAgKHNl dF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJjYWxs IildKQogCi0oZGVmaW5lX2luc24gIjxjb2RlX3N0ZG5hbWU+PG1vZGU+M19jb25zdF9pbnNuIgor KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiPGNvZGVfc3RkbmFtZT48bW9kZT4zX2NvbnN0X2luc24i CiAgIFsoc2V0IChyZWc6QUxMOFUgQUNDX0EpCiAgICAgICAgICh1c19hZGRzdWI6QUxMOFUgKHJl ZzpBTEw4VSBBQ0NfQSkKICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpB TEw4VSAwICJjb25zdF9vcGVyYW5kIiAibiBZbm4iKSkpXQogICAiYXZyX2hhdmVfZGltb2RlIgor ICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpB TEw4VSBBQ0NfQSkKKyAgICAgICAgICAgICAgICAgICAodXNfYWRkc3ViOkFMTDhVIChyZWc6QUxM OFUgQUNDX0EpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3Bl cmFuZDpBTEw4VSAwICJjb25zdF9vcGVyYW5kIiAibiBZbm4iKSkpCisgICAgICAgICAgICAgIChj bG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKjxjb2RlX3N0ZG5h bWU+PG1vZGU+M19jb25zdF9pbnNuIgorICBbKHNldCAocmVnOkFMTDhVIEFDQ19BKQorICAgICAg ICAodXNfYWRkc3ViOkFMTDhVIChyZWc6QUxMOFUgQUNDX0EpCisgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMOFUgMCAiY29uc3Rfb3BlcmFuZCIgIm4gWW5uIikpKQor ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgImF2cl9oYXZlX2RpbW9kZSAmJiByZWxv YWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJuIGF2cl9vdXRfcGx1cyAoaW5zbiwgb3BlcmFu ZHMpOwogICB9Ci0gIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJwbHVzIikKLSAgIChzZXRfYXR0 ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAicGx1cyIpXSkK IAogOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7OwogOzsgTmVnYXRpb24KQEAgLTMwNiwxMyArNDE2LDIzIEBACiAgICAg RE9ORTsKICAgfSkKIAotKGRlZmluZV9pbnNuICJuZWdkaTJfaW5zbiIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIm5lZ2RpMl9pbnNuIgogICBbKHNldCAocmVnOkRJIEFDQ19BKQogICAgICAgICAo bmVnOkRJIChyZWc6REkgQUNDX0EpKSldCiAgICJhdnJfaGF2ZV9kaW1vZGUiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkRJIEFDQ19BKQor ICAgICAgICAgICAgICAgICAgIChuZWc6REkgKHJlZzpESSBBQ0NfQSkpKQorICAgICAgICAgICAg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipuZWdkaTJf aW5zbiIKKyAgWyhzZXQgKHJlZzpESSBBQ0NfQSkKKyAgICAgICAgKG5lZzpESSAocmVnOkRJIEFD Q19BKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiYXZyX2hhdmVfZGltb2Rl ICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX19uZWdkaTIiCi0gIFsoc2V0X2F0dHIg ImFkanVzdF9sZW4iICJjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBb KHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY2FsbCIpXSkKIAogCiA7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7CkBAIC0z MjIsNyArNDQyLDcgQEAKIChkZWZpbmVfZXhwYW5kICJjb25kaXRpb25hbF9qdW1wIgogICBbKHNl dCAocGMpCiAgICAgICAgIChpZl90aGVuX2Vsc2UKLSAgICAgICAgIChtYXRjaF9vcGVyYXRvciAw ICJvcmRlcmVkX2NvbXBhcmlzb25fb3BlcmF0b3IiIFsoY2MwKQorICAgICAgICAgKG1hdGNoX29w ZXJhdG9yIDAgIm9yZGVyZWRfY29tcGFyaXNvbl9vcGVyYXRvciIgWyhyZWc6Q0MgUkVHX0NDKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMCldKQogICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIi ICIiKSkKICAgICAgICAgIChwYykpKV0KQEAgLTMzMywxMyArNDUzLDE0IEBACiA7OyAiY2JyYW5j aGRhNCIgImNicmFuY2h1ZGE0IgogOzsgImNicmFuY2h0YTQiICJjYnJhbmNodXRhNCIKIChkZWZp bmVfZXhwYW5kICJjYnJhbmNoPG1vZGU+NCIKLSAgWyhwYXJhbGxlbCBbKG1hdGNoX29wZXJhbmQ6 QUxMOCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6QUxMOCAyICJub25tZW1vcnlfb3BlcmFuZCIgIiIpCi0gICAgICAgICAgICAgIChtYXRjaF9v cGVyYXRvciAwICJvcmRlcmVkX2NvbXBhcmlzb25fb3BlcmF0b3IiIFsoY2MwKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAwKV0pCi0gICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMyAi IiAiIikpXSldCisgIFsoc2V0IChwYykKKyAgICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3Bl cmF0b3IgMCAib3JkZXJlZF9jb21wYXJpc29uX29wZXJhdG9yIgorICAgICAgICAgICAgICAgICAg ICAgICAgWyhtYXRjaF9vcGVyYW5kOkFMTDggMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIiKQorICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDggMiAibm9ubWVtb3J5X29w ZXJhbmQiICIiKV0pCisgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDMgIiIgIiIp KQorICAgICAgICAgKHBjKSkpXQogICAiYXZyX2hhdmVfZGltb2RlIgotICB7CisgICB7CiAgICAg cnR4IGFjY19hID0gZ2VuX3J0eF9SRUcgKDxNT0RFPm1vZGUsIEFDQ19BKTsKIAogICAgIGF2cl9m aXhfaW5wdXRzIChvcGVyYW5kcywgMSA8PCAyLCByZWdtYXNrICg8TU9ERT5tb2RlLCBBQ0NfQSkp OwpAQCAtMzQ4LDE5ICs0NjksMzYgQEAKICAgICBpZiAoczhfb3BlcmFuZCAob3BlcmFuZHNbMl0s IFZPSURtb2RlKSkKICAgICAgIHsKICAgICAgICAgZW1pdF9tb3ZlX2luc24gKGdlbl9ydHhfUkVH IChRSW1vZGUsIFJFR19YKSwgb3BlcmFuZHNbMl0pOwotICAgICAgICBlbWl0X2luc24gKGdlbl9j b21wYXJlX2NvbnN0OF9kaTIgKCkpOworICAgICAgICBlbWl0X2p1bXBfaW5zbiAoZ2VuX2NicmFu Y2hfY29uc3Q4X2RpMl9zcGxpdCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzNdKSk7CiAgICAgICB9 CiAgICAgZWxzZSBpZiAoY29uc3Rfb3BlcmFuZCAob3BlcmFuZHNbMl0sIEdFVF9NT0RFIChvcGVy YW5kc1syXSkpKQogICAgICAgewotICAgICAgICBlbWl0X2luc24gKGdlbl9jb21wYXJlX2NvbnN0 Xzxtb2RlPjIgKG9wZXJhbmRzWzJdKSk7CisgICAgICAgIGVtaXRfanVtcF9pbnNuIChnZW5fY2Jy YW5jaF9jb25zdF88bW9kZT4yX3NwbGl0IChvcGVyYW5kc1swXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZXJhbmRzWzJdLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bl cmFuZHNbM10pKTsKICAgICAgIH0KICAgICBlbHNlCiAgICAgICB7CiAgICAgICAgIGVtaXRfbW92 ZV9pbnNuIChnZW5fcnR4X1JFRyAoPE1PREU+bW9kZSwgQUNDX0IpLCBvcGVyYW5kc1syXSk7Ci0g ICAgICAgIGVtaXRfaW5zbiAoZ2VuX2NvbXBhcmVfPG1vZGU+MiAoKSk7CisgICAgICAgIGVtaXRf anVtcF9pbnNuIChnZW5fY2JyYW5jaF88bW9kZT4yX3NwbGl0IChvcGVyYW5kc1swXSwgb3BlcmFu ZHNbM10pKTsKICAgICAgIH0KKyAgICBET05FOworICAgfSkKIAotICAgIGVtaXRfanVtcF9pbnNu IChnZW5fY29uZGl0aW9uYWxfanVtcCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzNdKSk7CisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICJjYnJhbmNoXzxtb2RlPjJfc3BsaXQiCisgIFsoc2V0IChwYykK KyAgICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BlcmF0b3IgMCAib3JkZXJlZF9jb21wYXJp c29uX29wZXJhdG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWc6QUxMOCBBQ0NfQSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAocmVnOkFMTDggQUNDX0IpXSkKKyAgICAgICAgIChs YWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMSAiIiAiIikpCisgICAgICAgICAocGMpKSldCisgICJh dnJfaGF2ZV9kaW1vZGUiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhjb25z dF9pbnQgMCldCisgIHsKKyAgICBlbWl0X2luc24gKGdlbl9jb21wYXJlXzxtb2RlPjIgKCkpOwor ICAgIGVtaXRfanVtcF9pbnNuIChnZW5fY29uZGl0aW9uYWxfanVtcCAob3BlcmFuZHNbMF0sIG9w ZXJhbmRzWzFdKSk7CiAgICAgRE9ORTsKICAgfSkKIApAQCAtMzY5LDM5ICs1MDcsNzQgQEAKIDs7 ICJjb21wYXJlX2RhMiIgImNvbXBhcmVfdWRhMiIKIDs7ICJjb21wYXJlX3RhMiIgImNvbXBhcmVf dXRhMiIKIChkZWZpbmVfaW5zbiAiY29tcGFyZV88bW9kZT4yIgotICBbKHNldCAoY2MwKQotICAg ICAgICAoY29tcGFyZSAocmVnOkFMTDggQUNDX0EpCisgIFsoc2V0IChyZWc6Q0MgUkVHX0NDKQor ICAgICAgICAoY29tcGFyZTpDQyAocmVnOkFMTDggQUNDX0EpCiAgICAgICAgICAgICAgICAgIChy ZWc6QUxMOCBBQ0NfQikpKV0KLSAgImF2cl9oYXZlX2RpbW9kZSIKKyAgInJlbG9hZF9jb21wbGV0 ZWQgJiYgYXZyX2hhdmVfZGltb2RlIgogICAiJX5jYWxsIF9fY21wZGkyIgotICBbKHNldF9hdHRy ICJhZGp1c3RfbGVuIiAiY2FsbCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY29tcGFyZSIpXSkKKyAg WyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImNhbGwiKV0pCisKKyhkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgImNicmFuY2hfY29uc3Q4X2RpMl9zcGxpdCIKKyAgWyhzZXQgKHBjKQorICAgICAgICAoaWZf dGhlbl9lbHNlIChtYXRjaF9vcGVyYXRvciAwICJvcmRlcmVkX2NvbXBhcmlzb25fb3BlcmF0b3Ii CisgICAgICAgICAgICAgICAgICAgICAgICBbKHJlZzpESSBBQ0NfQSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAoc2lnbl9leHRlbmQ6REkgKHJlZzpRSSBSRUdfWCkpXSkKKyAgICAgICAgIChs YWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMSAiIiAiIikpCisgICAgICAgICAocGMpKSldCisgICJh dnJfaGF2ZV9kaW1vZGUiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhjb25z dF9pbnQgMCldCisgIHsKKyAgICBlbWl0X2luc24gKGdlbl9jb21wYXJlX2NvbnN0OF9kaTIgKCkp OworICAgIGVtaXRfanVtcF9pbnNuIChnZW5fY29uZGl0aW9uYWxfanVtcCAob3BlcmFuZHNbMF0s IG9wZXJhbmRzWzFdKSk7CisgICAgRE9ORTsKKyAgfSkKIAogKGRlZmluZV9pbnNuICJjb21wYXJl X2NvbnN0OF9kaTIiCi0gIFsoc2V0IChjYzApCi0gICAgICAgIChjb21wYXJlIChyZWc6REkgQUND X0EpCisgIFsoc2V0IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAoY29tcGFyZTpDQyAocmVnOkRJ IEFDQ19BKQogICAgICAgICAgICAgICAgICAoc2lnbl9leHRlbmQ6REkgKHJlZzpRSSBSRUdfWCkp KSldCi0gICJhdnJfaGF2ZV9kaW1vZGUiCisgICJyZWxvYWRfY29tcGxldGVkICYmIGF2cl9oYXZl X2RpbW9kZSIKICAgIiV+Y2FsbCBfX2NtcGRpMl9zOCIKLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xl biIgImNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNvbXBhcmUiKV0pCisgIFsoc2V0X2F0dHIg ImFkanVzdF9sZW4iICJjYWxsIildKQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJjYnJhbmNo X2NvbnN0Xzxtb2RlPjJfc3BsaXQiCisgIFsoc2V0IChwYykKKyAgICAgICAgKGlmX3RoZW5fZWxz ZSAobWF0Y2hfb3BlcmF0b3IgMCAib3JkZXJlZF9jb21wYXJpc29uX29wZXJhdG9yIgorICAgICAg ICAgICAgICAgICAgICAgICAgWyhyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpBTEw4IDEgImNvbnN0X29wZXJhbmQiICJuIFlubiIpXSkKKyAg ICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCisgICAgICAgICAocGMp KSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgIj0mZCIpKV0KKyAgImF2cl9oYXZl X2RpbW9kZQorICAgJiYgIXM4X29wZXJhbmQgKG9wZXJhbmRzWzFdLCBWT0lEbW9kZSkiCisgICIj IgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhjb25zdF9pbnQgMCldCisgIHsKKyAgICBl bWl0X2luc24gKGdlbl9jb21wYXJlX2NvbnN0Xzxtb2RlPjIgKG9wZXJhbmRzWzFdLCBvcGVyYW5k c1szXSkpOworICAgIGVtaXRfanVtcF9pbnNuIChnZW5fY29uZGl0aW9uYWxfanVtcCAob3BlcmFu ZHNbMF0sIG9wZXJhbmRzWzJdKSk7CisgICAgRE9ORTsKKyAgfSkKKwogCiA7OyAiY29tcGFyZV9j b25zdF9kaTIiCiA7OyAiY29tcGFyZV9jb25zdF9kcTIiICJjb21wYXJlX2NvbnN0X3VkcTIiCiA7 OyAiY29tcGFyZV9jb25zdF9kYTIiICJjb21wYXJlX2NvbnN0X3VkYTIiCiA7OyAiY29tcGFyZV9j b25zdF90YTIiICJjb21wYXJlX2NvbnN0X3V0YTIiCiAoZGVmaW5lX2luc24gImNvbXBhcmVfY29u c3RfPG1vZGU+MiIKLSAgWyhzZXQgKGNjMCkKLSAgICAgICAgKGNvbXBhcmUgKHJlZzpBTEw4IEFD Q19BKQorICBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAgKGNvbXBhcmU6Q0MgKHJlZzpB TEw4IEFDQ19BKQogICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpBTEw4IDAgImNvbnN0 X29wZXJhbmQiICJuIFlubiIpKSkKLSAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDEgIj0m ZCIpKV0KLSAgImF2cl9oYXZlX2RpbW9kZQorICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6UUkg MSAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mZCIpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQKKyAgICYm IGF2cl9oYXZlX2RpbW9kZQogICAgJiYgIXM4X29wZXJhbmQgKG9wZXJhbmRzWzBdLCBWT0lEbW9k ZSkiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9jb21wYXJlNjQgKGluc24sIG9wZXJhbmRzLCBO VUxMKTsKICAgfQotICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY29tcGFyZTY0IikKLSAgIChz ZXRfYXR0ciAiY2MiICJjb21wYXJlIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY29t cGFyZTY0IildKQogCiAKIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKQEAgLTQ0NCwxNCArNjE3LDI2IEBACiA7OyAi YXNobHVkcTNfaW5zbiIgICJhc2hydWRxM19pbnNuIiAgImxzaHJ1ZHEzX2luc24iICAicm90bHVk cTNfaW5zbiIKIDs7ICJhc2hsdWRhM19pbnNuIiAgImFzaHJ1ZGEzX2luc24iICAibHNocnVkYTNf aW5zbiIgICJyb3RsdWRhM19pbnNuIgogOzsgImFzaGx1dGEzX2luc24iICAiYXNocnV0YTNfaW5z biIgICJsc2hydXRhM19pbnNuIiAgInJvdGx1dGEzX2luc24iCi0oZGVmaW5lX2luc24gIjxjb2Rl X3N0ZG5hbWU+PG1vZGU+M19pbnNuIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiPGNvZGVfc3Rk bmFtZT48bW9kZT4zX2luc24iCiAgIFsoc2V0IChyZWc6QUxMOCBBQ0NfQSkKICAgICAgICAgKGRp X3NoaWZ0czpBTEw4IChyZWc6QUxMOCBBQ0NfQSkKICAgICAgICAgICAgICAgICAgICAgICAgIChy ZWc6UUkgMTYpKSldCiAgICJhdnJfaGF2ZV9kaW1vZGUiCisgICIjIgorICAiJiYgcmVsb2FkX2Nv bXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkFMTDggQUNDX0EpCisgICAgICAgICAg ICAgICAgICAgKGRpX3NoaWZ0czpBTEw4IChyZWc6QUxMOCBBQ0NfQSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAxNikpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIio8Y29kZV9zdGRuYW1lPjxt b2RlPjNfaW5zbiIKKyAgWyhzZXQgKHJlZzpBTEw4IEFDQ19BKQorICAgICAgICAoZGlfc2hpZnRz OkFMTDggKHJlZzpBTEw4IEFDQ19BKQorICAgICAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAx NikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgImF2cl9oYXZlX2RpbW9kZSAm JiByZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fPGNvZGVfc3RkbmFtZT5kaTMiCi0gIFso c2V0X2F0dHIgImFkanVzdF9sZW4iICJjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVy IildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiY2FsbCIpXSkKIAogOzsgInVtdWxzaWRp MyIKIDs7ICJtdWxzaWRpMyIKQEAgLTQ3NSw3ICs2NjAsOCBAQAogCiA7OyAidW11bHNpZGkzX2lu c24iCiA7OyAibXVsc2lkaTNfaW5zbiIKLShkZWZpbmVfaW5zbiAiPGV4dGVuZF91Pm11bHNpZGkz X2luc24iCisKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIjxleHRlbmRfdT5tdWxzaWRpM19pbnNu IgogICBbKHNldCAocmVnOkRJIEFDQ19BKQogICAgICAgICAobXVsdDpESSAoYW55X2V4dGVuZDpE SSAocmVnOlNJIDE4KSkKICAgICAgICAgICAgICAgICAgKGFueV9leHRlbmQ6REkgKHJlZzpTSSAy MikpKSkKQEAgLTQ4Myw2ICs2NjksMjQgQEAKICAgIChjbG9iYmVyIChyZWc6SEkgUkVHX1opKV0K ICAgImF2cl9oYXZlX2RpbW9kZQogICAgJiYgQVZSX0hBVkVfTVVMIgorICAgIiMiCisgICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpESSBBQ0NfQSkKKyAg ICAgICAgICAgICAgICAgICAgKG11bHQ6REkgKGFueV9leHRlbmQ6REkgKHJlZzpTSSAxOCkpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbnlfZXh0ZW5kOkRJIChyZWc6U0kgMjIpKSkp CisgICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkhJIFJFR19YKSkKKyAgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6SEkgUkVHX1opKQorICAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqPGV4dGVuZF91Pm11bHNpZGkzX2luc24i CisgIFsoc2V0IChyZWc6REkgQUNDX0EpCisgICAgICAgIChtdWx0OkRJIChhbnlfZXh0ZW5kOkRJ IChyZWc6U0kgMTgpKQorICAgICAgICAgICAgICAgICAoYW55X2V4dGVuZDpESSAocmVnOlNJIDIy KSkpKQorICAgKGNsb2JiZXIgKHJlZzpISSBSRUdfWCkpCisgICAoY2xvYmJlciAocmVnOkhJIFJF R19aKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJhdnJfaGF2ZV9kaW1vZGUK KyAgICYmIEFWUl9IQVZFX01VTAorICAgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBf XzxleHRlbmRfdT5tdWxzaWRpMyIKLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImNhbGwiKQot ICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImFkanVzdF9sZW4i ICJjYWxsIildKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hdnIvYXZyLWZpeGVkLm1kIGIvZ2Nj L2NvbmZpZy9hdnIvYXZyLWZpeGVkLm1kCmluZGV4IDczN2ZlOTcwZDNlLi4zOWNkN2M0ZWVhOCAx MDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hdnIvYXZyLWZpeGVkLm1kCisrKyBiL2djYy9jb25maWcv YXZyL2F2ci1maXhlZC5tZApAQCAtNTYsMjcgKzU2LDUzIEBACiAgICBUQSBVVEEKICAgIFFJIEhJ IFNJIERJXSkKIAotKGRlZmluZV9pbnNuICJmcmFjdDxGSVhFRF9COm1vZGU+PEZJWEVEX0E6bW9k ZT4yIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiZnJhY3Q8RklYRURfQjptb2RlPjxGSVhFRF9B Om1vZGU+MiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6RklYRURfQSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAiPXIiKQogICAgICAgICAoZnJhY3RfY29udmVydDpGSVhFRF9BCiAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpGSVhFRF9CIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKV0KICAgIjxGSVhF RF9COk1PREU+bW9kZSAhPSA8RklYRURfQTpNT0RFPm1vZGUiCisgICIjIgorICAiJiYgcmVsb2Fk X2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAg ICAgICAgICAgKGZyYWN0X2NvbnZlcnQ6RklYRURfQQorICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkK KworKGRlZmluZV9pbnNuICIqZnJhY3Q8RklYRURfQjptb2RlPjxGSVhFRF9BOm1vZGU+MiIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6RklYRURfQSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQor ICAgICAgICAoZnJhY3RfY29udmVydDpGSVhFRF9BCisgICAgICAgICAobWF0Y2hfb3BlcmFuZDpG SVhFRF9CIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBS RUdfQ0MpKV0KKyAgIjxGSVhFRF9COk1PREU+bW9kZSAhPSA8RklYRURfQTpNT0RFPm1vZGUKKyAg ICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9mcmFjdCAoaW5z biwgb3BlcmFuZHMsIHRydWUsIE5VTEwpOwogICB9Ci0gIFsoc2V0X2F0dHIgImNjIiAiY2xvYmJl ciIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJzZnJhY3QiKV0pCisgIFsoc2V0X2F0dHIg ImFkanVzdF9sZW4iICJzZnJhY3QiKV0pCiAKLShkZWZpbmVfaW5zbiAiZnJhY3R1bnM8RklYRURf Qjptb2RlPjxGSVhFRF9BOm1vZGU+MiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImZyYWN0dW5z PEZJWEVEX0I6bW9kZT48RklYRURfQTptb2RlPjIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkZJ WEVEX0EgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKICAgICAgICAgKHVuc2lnbmVkX2ZyYWN0 X2NvbnZlcnQ6RklYRURfQQogICAgICAgICAgKG1hdGNoX29wZXJhbmQ6RklYRURfQiAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpKSldCiAgICI8RklYRURfQjpNT0RFPm1vZGUgIT0gPEZJWEVEX0E6 TU9ERT5tb2RlIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgICh1bnNpZ25lZF9mcmFjdF9j b252ZXJ0OkZJWEVEX0EKKyAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAxKSkpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAi KmZyYWN0dW5zPEZJWEVEX0I6bW9kZT48RklYRURfQTptb2RlPjIiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkZJWEVEX0EgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKyAgICAgICAgKHVuc2ln bmVkX2ZyYWN0X2NvbnZlcnQ6RklYRURfQQorICAgICAgICAgKG1hdGNoX29wZXJhbmQ6RklYRURf QiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0ND KSldCisgICI8RklYRURfQjpNT0RFPm1vZGUgIT0gPEZJWEVEX0E6TU9ERT5tb2RlCisgICAmJiBy ZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJuIGF2cl9vdXRfZnJhY3QgKGluc24sIG9w ZXJhbmRzLCBmYWxzZSwgTlVMTCk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiY2MiICJjbG9iYmVyIikK LSAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInVmcmFjdCIpXSkKKyAgWyhzZXRfYXR0ciAiYWRq dXN0X2xlbiIgInVmcmFjdCIpXSkKIAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyoqIFNhdHVy YXRlZCBBZGRpdGlvbiBhbmQgU3VidHJhY3Rpb24KQEAgLTkyLDI5ICsxMTgsNTMgQEAKIAogOzsg InNzYWRkcXEzIiAgInNzYWRkaHEzIiAgInNzYWRkaGEzIiAgInNzYWRkc3EzIiAgInNzYWRkc2Ez IgogOzsgInNzc3VicXEzIiAgInNzc3ViaHEzIiAgInNzc3ViaGEzIiAgInNzc3Vic3EzIiAgInNz c3Vic2EzIgotKGRlZmluZV9pbnNuICI8Y29kZV9zdGRuYW1lPjxtb2RlPjMiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICI8Y29kZV9zdGRuYW1lPjxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkFMTDEyNFMgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAg ICI9Pz9kLGQiKQogICAgICAgICAoc3NfYWRkc3ViOkFMTDEyNFMgKG1hdGNoX29wZXJhbmQ6QUxM MTI0UyAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiPGFiZWxpYW4+MCwwIikKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDEyNFMgMiAibm9ubWVtb3J5X29wZXJhbmQi ICAgICAgICAgInIsWW5uIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAo c3NfYWRkc3ViOkFMTDEyNFMgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJl ZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqPGNvZGVfc3RkbmFtZT48bW9kZT4z IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEwxMjRTIDAgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgICAgICAgICAgICAgICAgICAiPT8/ZCxkIikKKyAgICAgICAgKHNzX2FkZHN1YjpBTEwx MjRTIChtYXRjaF9vcGVyYW5kOkFMTDEyNFMgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjxhYmVsaWFu PjAsMCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpBTEwxMjRT IDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAgICAgICAgICJyLFlubiIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJuIGF2 cl9vdXRfcGx1cyAoaW5zbiwgb3BlcmFuZHMpOwogICB9Ci0gIFsoc2V0X2F0dHIgImNjIiAiY2xv YmJlciIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJwbHVzIildKQorICBbKHNldF9hdHRy ICJhZGp1c3RfbGVuIiAicGx1cyIpXSkKIAogOzsgInVzYWRkdXFxMyIgICJ1c2FkZHVocTMiICAi dXNhZGR1aGEzIiAidXNhZGR1c3EzIiAgInVzYWRkdXNhMyIKIDs7ICJ1c3N1YnVxcTMiICAidXNz dWJ1aHEzIiAgInVzc3VidWhhMyIgInVzc3VidXNxMyIgICJ1c3N1YnVzYTMiCi0oZGVmaW5lX2lu c24gIjxjb2RlX3N0ZG5hbWU+PG1vZGU+MyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIjxjb2Rl X3N0ZG5hbWU+PG1vZGU+MyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMMTI0VSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgIj0/P3IsZCIpCiAgICAgICAg ICh1c19hZGRzdWI6QUxMMTI0VSAobWF0Y2hfb3BlcmFuZDpBTEwxMjRVIDEgInJlZ2lzdGVyX29w ZXJhbmQiICI8YWJlbGlhbj4wLDAiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6QUxMMTI0VSAyICJub25tZW1vcnlfb3BlcmFuZCIgICAgICAgICAicixZbm4iKSkp XQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhz ZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgICh1c19hZGRzdWI6QUxMMTI0VSAo bWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQor CisoZGVmaW5lX2luc24gIio8Y29kZV9zdGRuYW1lPjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkFMTDEyNFUgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAg ICAgICI9Pz9yLGQiKQorICAgICAgICAodXNfYWRkc3ViOkFMTDEyNFUgKG1hdGNoX29wZXJhbmQ6 QUxMMTI0VSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiPGFiZWxpYW4+MCwwIikKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDEyNFUgMiAibm9ubWVtb3J5X29wZXJh bmQiICAgICAgICAgInIsWW5uIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAg InJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9wbHVzIChpbnNuLCBv cGVyYW5kcyk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiY2MiICJjbG9iYmVyIikKLSAgIChzZXRfYXR0 ciAiYWRqdXN0X2xlbiIgInBsdXMiKV0pCisgIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJwbHVz IildKQogCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiogU2F0dXJhdGVkIE5lZ2F0aW9uIGFu ZCBBYnNvbHV0ZSBWYWx1ZQpAQCAtMTM0LDIxICsxODQsNDEgQEAKICAgICBET05FOwogICB9KQog Ci0oZGVmaW5lX2luc24gInNzbmVncXEyIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAic3NuZWdx cTIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFRIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAgIj1yIikKICAgICAgICAgKHNzX25lZzpRUSAobWF0Y2hfb3BlcmFuZDpRUSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAgIjAiKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAg IChzc19uZWc6UVEgKG1hdGNoX2R1cCAxKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnNzbmVncXEyIgorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRUSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICI9ciIpCisgICAg ICAgIChzc19uZWc6UVEgKG1hdGNoX29wZXJhbmQ6UVEgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIw IikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQi CiAgICJuZWcgJTBcO2JydmMgMGZcO2RlYyAlMFw7MDoiCi0gIFsoc2V0X2F0dHIgImNjIiAiY2xv YmJlciIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjMiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjMiKV0pCiAKLShkZWZpbmVfaW5zbiAic3NhYnNxcTIiCisoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICJzc2Fic3FxMiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UVEgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAiPXIiKQogICAgICAgICAoc3NfYWJzOlFRIChtYXRjaF9vcGVyYW5k OlFRIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVs b2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAg ICAgICAgICAgICAgKHNzX2FiczpRUSAobWF0Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqc3NhYnNxcTIiCisg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlFRIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAg Ij1yIikKKyAgICAgICAgKHNzX2FiczpRUSAobWF0Y2hfb3BlcmFuZDpRUSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAgIjAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2Fk X2NvbXBsZXRlZCIKICAgInNicmMgJTAsN1w7bmVnICUwXDtzYnJjICUwLDdcO2RlYyAlMCIKLSAg WyhzZXRfYXR0ciAiY2MiICJjbG9iYmVyIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkK KyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAogOzsgInNzbmVnaHEyIiAgInNzbmVnaGEy IiAgInNzbmVnc3EyIiAgInNzbmVnc2EyIgogOzsgInNzYWJzaHEyIiAgInNzYWJzaGEyIiAgInNz YWJzc3EyIiAgInNzYWJzc2EyIgpAQCAtMTY2LDIzICsyMzYsNDMgQEAKIAogOzsgIipzc25lZ2hx MiIgICIqc3NuZWdoYTIiCiA7OyAiKnNzYWJzaHEyIiAgIipzc2Fic2hhMiIKLShkZWZpbmVfaW5z biAiKjxjb2RlX3N0ZG5hbWU+PG1vZGU+MiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIio8Y29k ZV9zdGRuYW1lPjxtb2RlPjJfc3BsaXQiCiAgIFsoc2V0IChyZWc6QUxMMlMgMjQpCiAgICAgICAg IChzc19hYnNfbmVnOkFMTDJTIChyZWc6QUxMMlMgMjQpKSldCiAgICIiCisgICIjIgorICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkFMTDJTIDI0KQorICAg ICAgICAgICAgICAgICAgIChzc19hYnNfbmVnOkFMTDJTIChyZWc6QUxMMlMgMjQpKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIq PGNvZGVfc3RkbmFtZT48bW9kZT4yIgorICBbKHNldCAocmVnOkFMTDJTIDI0KQorICAgICAgICAo c3NfYWJzX25lZzpBTEwyUyAocmVnOkFMTDJTIDI0KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfXzxjb2RlX3N0ZG5hbWU+ XzIiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xv YmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQogCiA7OyAiKnNzbmVnc3Ey IiAgIipzc25lZ3NhMiIKIDs7ICIqc3NhYnNzcTIiICAiKnNzYWJzc2EyIgotKGRlZmluZV9pbnNu ICIqPGNvZGVfc3RkbmFtZT48bW9kZT4yIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKjxjb2Rl X3N0ZG5hbWU+PG1vZGU+Ml9zcGxpdCIKICAgWyhzZXQgKHJlZzpBTEw0UyAyMikKICAgICAgICAg KHNzX2Fic19uZWc6QUxMNFMgKHJlZzpBTEw0UyAyMikpKV0KICAgIiIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxMNFMgMjIpCisgICAg ICAgICAgICAgICAgICAgKHNzX2Fic19uZWc6QUxMNFMgKHJlZzpBTEw0UyAyMikpKQorICAgICAg ICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIio8 Y29kZV9zdGRuYW1lPjxtb2RlPjIiCisgIFsoc2V0IChyZWc6QUxMNFMgMjIpCisgICAgICAgIChz c19hYnNfbmVnOkFMTDRTIChyZWc6QUxMNFMgMjIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVH X0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fPGNvZGVfc3RkbmFtZT5f NCIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9i YmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKIDsqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKIDsgbXVsCkBAIC0yMDAsMjMgKzI5MCw0NyBAQAogICAgIERPTkU7CiAgIH0pCiAK LShkZWZpbmVfaW5zbiAibXVscXEzX2VuaCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIm11bHFx M19lbmgiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFRIDAgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgIj1yIikKICAgICAgICAgKG11bHQ6UVEgKG1hdGNoX29wZXJhbmQ6UVEgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgImEiKQogICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRUSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAg ICAgICAgICAgICAgICAgKG11bHQ6UVEgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptdWxxcTNfZW5oIgorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRUSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICI9ciIpCisgICAgICAg IChtdWx0OlFRIChtYXRjaF9vcGVyYW5kOlFRIDEgInJlZ2lzdGVyX29wZXJhbmQiICJhIikKKyAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UVEgMiAicmVnaXN0ZXJfb3BlcmFuZCIgImEi KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiQVZSX0hBVkVfTVVMICYmIHJl bG9hZF9jb21wbGV0ZWQiCiAgICJmbXVscyAlMSwlMlw7ZGVjIHIxXDticnZzIDBmXDtpbmMgcjFc OzA6XDttb3YgJTAscjFcO2NsciBfX3plcm9fcmVnX18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIg IjYiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjYiKV0pCiAKLShkZWZpbmVfaW5zbiAibXVsdXFxM19lbmgiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICJtdWx1cXEzX2VuaCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6VVFRIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAgICI9ciIpCiAgICAgICAgIChtdWx0OlVRUSAobWF0Y2hfb3Bl cmFuZDpVUVEgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQogICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6VVFRIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKV0KICAgIkFWUl9IQVZF X01VTCIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0 IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobXVsdDpVUVEgKG1hdGNoX2R1cCAx KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAg ICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbXVs dXFxM19lbmgiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlVRUSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAgICAgICAgICAiPXIiKQorICAgICAgICAobXVsdDpVUVEgKG1hdGNoX29wZXJhbmQ6VVFRIDEg InJlZ2lzdGVyX29wZXJhbmQiICJyIikKKyAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlVRUSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVH X0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIm11bCAlMSwl Mlw7bW92ICUwLHIxXDtjbHIgX196ZXJvX3JlZ19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIz IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgi ICIzIildKQogCiAoZGVmaW5lX2V4cGFuZCAibXVscXEzX25vbXVsIgogICBbKHNldCAocmVnOlFR IDI0KQpAQCAtMjU1LDE2ICszNjksMzIgQEAKICAgICBhdnJfZml4X2lucHV0cyAob3BlcmFuZHMs IDEgPDwgMiwgcmVnbWFzayAoVVFRbW9kZSwgMjIpKTsKICAgfSkKIAotKGRlZmluZV9pbnNuICIq bXVscXEzLmNhbGwiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbXVscXEzLmNhbGxfc3BsaXQi CiAgIFsoc2V0IChyZWc6UVEgMjMpCiAgICAgICAgIChtdWx0OlFRIChyZWc6UVEgMjQpCiAgICAg ICAgICAgICAgICAgIChyZWc6UVEgMjUpKSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjIpKQogICAg KGNsb2JiZXIgKHJlZzpISSAyNCkpXQogICAiIUFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6UVEgMjMpCisgICAgICAg ICAgICAgICAgICAgKG11bHQ6UVEgKHJlZzpRUSAyNCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAocmVnOlFRIDI1KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjIpKQor ICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkhJIDI0KSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbXVscXEzLmNhbGwiCisg IFsoc2V0IChyZWc6UVEgMjMpCisgICAgICAgIChtdWx0OlFRIChyZWc6UVEgMjQpCisgICAgICAg ICAgICAgICAgIChyZWc6UVEgMjUpKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjIpKQorICAgKGNs b2JiZXIgKHJlZzpISSAyNCkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiIUFW Ul9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fbXVscXEzIgotICBb KHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogCiA7OyAibXVsaHEzIiAibXVsdWhx MyIKQEAgLTI4OCwxNSArNDE4LDI5IEBACiAKIDs7ICIqbXVsaHEzLmNhbGwiICAiKm11bHVocTMu Y2FsbCIKIDs7ICIqbXVsaGEzLmNhbGwiICAiKm11bHVoYTMuY2FsbCIKLShkZWZpbmVfaW5zbiAi Km11bDxtb2RlPjMuY2FsbCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptdWw8bW9kZT4zLmNh bGxfc3BsaXQiCiAgIFsoc2V0IChyZWc6QUxMMlFBIDI0KQogICAgICAgICAobXVsdDpBTEwyUUEg KHJlZzpBTEwyUUEgMTgpCiAgICAgICAgICAgICAgICAgICAgICAocmVnOkFMTDJRQSAyNikpKQog ICAgKGNsb2JiZXIgKHJlZzpISSAyMikpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYm IHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpBTEwyUUEgMjQpCisg ICAgICAgICAgICAgICAgICAgKG11bHQ6QUxMMlFBIChyZWc6QUxMMlFBIDE4KQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAocmVnOkFMTDJRQSAyNikpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkhJIDIyKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbXVsPG1vZGU+My5jYWxsIgorICBbKHNldCAocmVn OkFMTDJRQSAyNCkKKyAgICAgICAgKG11bHQ6QUxMMlFBIChyZWc6QUxMMlFBIDE4KQorICAgICAg ICAgICAgICAgICAgICAgKHJlZzpBTEwyUUEgMjYpKSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjIp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxv YWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fbXVsPG1vZGU+MyIKLSAgWyhzZXRfYXR0ciAidHlw ZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRy ICJ0eXBlIiAieGNhbGwiKV0pCiAKIAogOzsgT24gdGhlIGVuaGFuY2VkIGNvcmUsIGRvbid0IGNs b2JiZXIgZWl0aGVyIGlucHV0IGFuZCB1c2UgYSBzZXBhcmF0ZSBvdXRwdXQKQEAgLTMxOCwxNCAr NDYyLDI2IEBACiAgIH0pCiAKIDs7ICIqbXVsc2EzLmNhbGwiICIqbXVsdXNhMy5jYWxsIgotKGRl ZmluZV9pbnNuICIqbXVsPG1vZGU+My5jYWxsIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm11 bDxtb2RlPjMuY2FsbF9zcGxpdCIKICAgWyhzZXQgKHJlZzpBTEw0QSAyNCkKICAgICAgICAgKG11 bHQ6QUxMNEEgKHJlZzpBTEw0QSAxNikKICAgICAgICAgICAgICAgICAgICAgKHJlZzpBTEw0QSAy MCkpKV0KICAgIkFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgor ICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxMNEEgMjQpCisgICAgICAgICAgICAgICAgICAgKG11 bHQ6QUxMNEEgKHJlZzpBTEw0QSAxNikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo cmVnOkFMTDRBIDIwKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKm11bDxtb2RlPjMuY2FsbCIKKyAgWyhzZXQgKHJlZzpBTEw0 QSAyNCkKKyAgICAgICAgKG11bHQ6QUxMNEEgKHJlZzpBTEw0QSAxNikKKyAgICAgICAgICAgICAg ICAgICAgKHJlZzpBTEw0QSAyMCkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAg IkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fbXVsPG1vZGU+ MyIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9i YmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKIDsgLyAvIC8gLyAvIC8g LyAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLyAvIC8gLyAv IC8gLyAvCiA7IGRpdgpAQCAtMzUxLDE1ICs1MDcsMjkgQEAKIAogCiA7OyAiKmRpdnFxMy5jYWxs IiAiKnVkaXZ1cXEzLmNhbGwiCi0oZGVmaW5lX2luc24gIio8Y29kZT48bW9kZT4zLmNhbGwiCiso ZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqPGNvZGU+PG1vZGU+My5jYWxsX3NwbGl0IgogICBbKHNl dCAocmVnOkFMTDFRIDI0KQogICAgICAgICAodXNkaXY6QUxMMVEgKHJlZzpBTEwxUSAyNSkKICAg ICAgICAgICAgICAgICAgICAgIChyZWc6QUxMMVEgMjIpKSkKICAgIChjbG9iYmVyIChyZWc6UUkg MjUpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVs IFsoc2V0IChyZWc6QUxMMVEgMjQpCisgICAgICAgICAgICAgICAgICAgKHVzZGl2OkFMTDFRIChy ZWc6QUxMMVEgMjUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWc6QUxMMVEg MjIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpRSSAyNSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKjxjb2RlPjxt b2RlPjMuY2FsbCIKKyAgWyhzZXQgKHJlZzpBTEwxUSAyNCkKKyAgICAgICAgKHVzZGl2OkFMTDFR IChyZWc6QUxMMVEgMjUpCisgICAgICAgICAgICAgICAgICAgICAocmVnOkFMTDFRIDIyKSkpCisg ICAoY2xvYmJlciAocmVnOlFJIDI1KSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisg ICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fPGNvZGU+PG1vZGU+MyIKLSAgWyhzZXRf YXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBb KHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKIDs7ICJkaXZocTMiICJ1ZGl2dWhxMyIKIDs7 ICJkaXZoYTMiICJ1ZGl2dWhhMyIKQEAgLTM4MiwxNiArNTUyLDMyIEBACiAKIDs7ICIqZGl2aHEz LmNhbGwiICIqdWRpdnVocTMuY2FsbCIKIDs7ICIqZGl2aGEzLmNhbGwiICIqdWRpdnVoYTMuY2Fs bCIKLShkZWZpbmVfaW5zbiAiKjxjb2RlPjxtb2RlPjMuY2FsbCIKKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgIio8Y29kZT48bW9kZT4zLmNhbGxfc3BsaXQiCiAgIFsoc2V0IChyZWc6QUxMMlFBIDI0 KQogICAgICAgICAodXNkaXY6QUxMMlFBIChyZWc6QUxMMlFBIDI2KQogICAgICAgICAgICAgICAg ICAgICAgIChyZWc6QUxMMlFBIDIyKSkpCiAgICAoY2xvYmJlciAocmVnOkhJIDI2KSkKICAgIChj bG9iYmVyIChyZWc6UUkgMjEpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxMMlFBIDI0KQorICAgICAgICAgICAgICAgICAg ICh1c2RpdjpBTEwyUUEgKHJlZzpBTEwyUUEgMjYpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAocmVnOkFMTDJRQSAyMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkhJ IDI2KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpRSSAyMSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKjxjb2RlPjxt b2RlPjMuY2FsbCIKKyAgWyhzZXQgKHJlZzpBTEwyUUEgMjQpCisgICAgICAgICh1c2RpdjpBTEwy UUEgKHJlZzpBTEwyUUEgMjYpCisgICAgICAgICAgICAgICAgICAgICAgKHJlZzpBTEwyUUEgMjIp KSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjYpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyMSkpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+ Y2FsbCBfXzxjb2RlPjxtb2RlPjMiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAo c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIild KQogCiA7OyBOb3RlIHRoZSBmaXJzdCBwYXJhbWV0ZXIgZ2V0cyBwYXNzZWQgaW4gYWxyZWFkeSBv ZmZzZXQgYnkgMiBieXRlcwogCkBAIC00MTQsMTYgKzYwMCwzMiBAQAogICB9KQogCiA7OyAiKmRp dnNhMy5jYWxsIiAiKnVkaXZ1c2EzLmNhbGwiCi0oZGVmaW5lX2luc24gIio8Y29kZT48bW9kZT4z LmNhbGwiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqPGNvZGU+PG1vZGU+My5jYWxsX3NwbGl0 IgogICBbKHNldCAocmVnOkFMTDRBIDIyKQogICAgICAgICAodXNkaXY6QUxMNEEgKHJlZzpBTEw0 QSAyNCkKICAgICAgICAgICAgICAgICAgICAgIChyZWc6QUxMNEEgMTgpKSkKICAgIChjbG9iYmVy IChyZWc6SEkgMjYpKQogICAgKGNsb2JiZXIgKHJlZzpISSAzMCkpXQogICAiIgorICAiIyIKKyAg IiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpBTEw0QSAyMikK KyAgICAgICAgICAgICAgICAgICAodXNkaXY6QUxMNEEgKHJlZzpBTEw0QSAyNCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHJlZzpBTEw0QSAxOCkpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkhJIDI2KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSAzMCkp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKjxjb2RlPjxtb2RlPjMuY2FsbCIKKyAgWyhzZXQgKHJlZzpBTEw0QSAyMikKKyAgICAg ICAgKHVzZGl2OkFMTDRBIChyZWc6QUxMNEEgMjQpCisgICAgICAgICAgICAgICAgICAgICAocmVn OkFMTDRBIDE4KSkpCisgICAoY2xvYmJlciAocmVnOkhJIDI2KSkKKyAgIChjbG9iYmVyIChyZWc6 SEkgMzApKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0 ZWQiCiAgICIlfmNhbGwgX188Y29kZT48bW9kZT4zIgotICBbKHNldF9hdHRyICJ0eXBlIiAieGNh bGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUi ICJ4Y2FsbCIpXSkKIAogCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC00NzQsNTEgKzY3Niwx MDkgQEAKIDs7ICJyb3VuZHFxM19jb25zdCIgICJyb3VuZHVxcTNfY29uc3QiCiA7OyAicm91bmRo cTNfY29uc3QiICAicm91bmR1aHEzX2NvbnN0IiAgInJvdW5kaGEzX2NvbnN0IiAgInJvdW5kdWhh M19jb25zdCIKIDs7ICJyb3VuZHNxM19jb25zdCIgICJyb3VuZHVzcTNfY29uc3QiICAicm91bmRz YTNfY29uc3QiICAicm91bmR1c2EzX2NvbnN0IgotKGRlZmluZV9pbnNuICJyb3VuZDxtb2RlPjNf Y29uc3QiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJyb3VuZDxtb2RlPjNfY29uc3QiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOkFMTDEyNFFBIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAg ICAgICAgICAgIj1kIikKICAgICAgICAgKHVuc3BlYzpBTEwxMjRRQSBbKG1hdGNoX29wZXJhbmQ6 QUxMMTI0UUEgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpISSAyICJjb25zdF9pbnRfb3BlcmFuZCIgICAgICAibiIpCiAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCldCiAgICAgICAgICAgICAgICAg ICAgICAgICAgVU5TUEVDX1JPVU5EKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBs ZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAg ICAgKHVuc3BlYzpBTEwxMjRRQSBbKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDApXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVU5TUEVDX1JPVU5EKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqcm91bmQ8bW9kZT4zX2NvbnN0IgorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpBTEwxMjRRQSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAg ICAgICI9ZCIpCisgICAgICAgICh1bnNwZWM6QUxMMTI0UUEgWyhtYXRjaF9vcGVyYW5kOkFMTDEy NFFBIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg KG1hdGNoX29wZXJhbmQ6SEkgMiAiY29uc3RfaW50X29wZXJhbmQiICAgICAgIm4iKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApXQorICAgICAgICAgICAgICAgICAgICAg ICAgIFVOU1BFQ19ST1VORCkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVs b2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3JvdW5kIChpbnNuLCBvcGVy YW5kcyk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiY2MiICJjbG9iYmVyIikKLSAgIChzZXRfYXR0ciAi YWRqdXN0X2xlbiIgInJvdW5kIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAicm91bmQi KV0pCiAKIAogOzsgIipyb3VuZHFxMy5saWJnY2MiICAiKnJvdW5kdXFxMy5saWJnY2MiCi0oZGVm aW5lX2luc24gIipyb3VuZDxtb2RlPjMubGliZ2NjIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KnJvdW5kPG1vZGU+My5saWJnY2Nfc3BsaXQiCiAgIFsoc2V0IChyZWc6QUxMMVEgMjQpCiAgICAg ICAgICh1bnNwZWM6QUxMMVEgWyhyZWc6QUxMMVEgMjIpCiAgICAgICAgICAgICAgICAgICAgICAg IChyZWc6UUkgMjQpXSBVTlNQRUNfUk9VTkQpKQogICAgKGNsb2JiZXIgKHJlZzpBTEwxUSAyMikp XQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhz ZXQgKHJlZzpBTEwxUSAyNCkKKyAgICAgICAgICAgICAgICAgICAodW5zcGVjOkFMTDFRIFsocmVn OkFMTDFRIDIyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWc6UUkgMjQp XSBVTlNQRUNfUk9VTkQpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkFMTDFRIDIyKSkK KyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9p bnNuICIqcm91bmQ8bW9kZT4zLmxpYmdjYyIKKyAgWyhzZXQgKHJlZzpBTEwxUSAyNCkKKyAgICAg ICAgKHVuc3BlYzpBTEwxUSBbKHJlZzpBTEwxUSAyMikKKyAgICAgICAgICAgICAgICAgICAgICAg KHJlZzpRSSAyNCldIFVOU1BFQ19ST1VORCkpCisgICAoY2xvYmJlciAocmVnOkFMTDFRIDIyKSkK KyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAi JX5jYWxsIF9fcm91bmQ8bW9kZT4zIgotICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAg KHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIp XSkKIAogOzsgIipyb3VuZGhxMy5saWJnY2MiICAiKnJvdW5kdWhxMy5saWJnY2MiCiA7OyAiKnJv dW5kaGEzLmxpYmdjYyIgICIqcm91bmR1aGEzLmxpYmdjYyIKLShkZWZpbmVfaW5zbiAiKnJvdW5k PG1vZGU+My5saWJnY2MiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcm91bmQ8bW9kZT4zLmxp YmdjY19zcGxpdCIKICAgWyhzZXQgKHJlZzpBTEwyUUEgMjQpCiAgICAgICAgICh1bnNwZWM6QUxM MlFBIFsocmVnOkFMTDJRQSAyMikKICAgICAgICAgICAgICAgICAgICAgICAgIChyZWc6UUkgMjQp XSBVTlNQRUNfUk9VTkQpKQogICAgKGNsb2JiZXIgKHJlZzpBTEwyUUEgMjIpKV0KICAgIiIKKyAg IiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6QUxM MlFBIDI0KQorICAgICAgICAgICAgICAgICAgICh1bnNwZWM6QUxMMlFBIFsocmVnOkFMTDJRQSAy MikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAyNCldIFVOU1BF Q19ST1VORCkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6QUxMMlFBIDIyKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIq cm91bmQ8bW9kZT4zLmxpYmdjYyIKKyAgWyhzZXQgKHJlZzpBTEwyUUEgMjQpCisgICAgICAgICh1 bnNwZWM6QUxMMlFBIFsocmVnOkFMTDJRQSAyMikKKyAgICAgICAgICAgICAgICAgICAgICAgIChy ZWc6UUkgMjQpXSBVTlNQRUNfUk9VTkQpKQorICAgKGNsb2JiZXIgKHJlZzpBTEwyUUEgMjIpKQor ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICIl fmNhbGwgX19yb3VuZDxtb2RlPjMiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAo c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIild KQogCiA7OyAiKnJvdW5kc3EzLmxpYmdjYyIgICIqcm91bmR1c3EzLmxpYmdjYyIKIDs7ICIqcm91 bmRzYTMubGliZ2NjIiAgIipyb3VuZHVzYTMubGliZ2NjIgotKGRlZmluZV9pbnNuICIqcm91bmQ8 bW9kZT4zLmxpYmdjYyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipyb3VuZDxtb2RlPjMubGli Z2NjX3NwbGl0IgogICBbKHNldCAocmVnOkFMTDRRQSAyMikKICAgICAgICAgKHVuc3BlYzpBTEw0 UUEgWyhyZWc6QUxMNFFBIDE4KQogICAgICAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAyNCld IFVOU1BFQ19ST1VORCkpCiAgICAoY2xvYmJlciAocmVnOkFMTDRRQSAxOCkpXQogICAiIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpBTEw0 UUEgMjIpCisgICAgICAgICAgICAgICAgICAgKHVuc3BlYzpBTEw0UUEgWyhyZWc6QUxMNFFBIDE4 KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnOlFJIDI0KV0gVU5TUEVD X1JPVU5EKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpBTEw0UUEgMTgpKQorICAgICAg ICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipy b3VuZDxtb2RlPjMubGliZ2NjIgorICBbKHNldCAocmVnOkFMTDRRQSAyMikKKyAgICAgICAgKHVu c3BlYzpBTEw0UUEgWyhyZWc6QUxMNFFBIDE4KQorICAgICAgICAgICAgICAgICAgICAgICAgKHJl ZzpRSSAyNCldIFVOU1BFQ19ST1VORCkpCisgICAoY2xvYmJlciAocmVnOkFMTDRRQSAxOCkpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+ Y2FsbCBfX3JvdW5kPG1vZGU+MyIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChz ZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0p CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2F2ci9hdnItcHJvdG9zLmggYi9nY2MvY29uZmlnL2F2 ci9hdnItcHJvdG9zLmgKaW5kZXggMTZjODk0Y2UzYzMuLjE0NzRiNzQyMjdlIDEwMDY0NAotLS0g YS9nY2MvY29uZmlnL2F2ci9hdnItcHJvdG9zLmgKKysrIGIvZ2NjL2NvbmZpZy9hdnIvYXZyLXBy b3Rvcy5oCkBAIC01OSwyMSArNTksMjEgQEAgZXh0ZXJuIGNvbnN0IGNoYXIgKmF2cl9vdXRfbW92 cHNpIChydHhfaW5zbiAqLCBydHgqLCBpbnQqKTsKIGV4dGVybiBjb25zdCBjaGFyICphdnJfb3V0 X3NpZ25fZXh0ZW5kIChydHhfaW5zbiAqLCBydHgqLCBpbnQqKTsKIGV4dGVybiBjb25zdCBjaGFy ICphdnJfb3V0X2luc2VydF9ub3RiaXQgKHJ0eF9pbnNuICosIHJ0eCosIHJ0eCwgaW50Kik7CiAK LWV4dGVybiBjb25zdCBjaGFyICphc2hscWkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVy YW5kc1tdLCBpbnQgKmxlbik7Ci1leHRlcm4gY29uc3QgY2hhciAqYXNobGhpM19vdXQgKHJ0eF9p bnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50ICpsZW4pOwotZXh0ZXJuIGNvbnN0IGNoYXIg KmFzaGxzaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVuKTsK K2V4dGVybiBjb25zdCBjaGFyICphc2hscWkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVy YW5kc1tdLCBpbnQgbnVtb3BzLCBpbnQgKmxlbik7CitleHRlcm4gY29uc3QgY2hhciAqYXNobGhp M19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50IG51bW9wcywgaW50ICps ZW4pOworZXh0ZXJuIGNvbnN0IGNoYXIgKmFzaGxzaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4 IG9wZXJhbmRzW10sIGludCBudW1vcHMsIGludCAqbGVuKTsKIAotZXh0ZXJuIGNvbnN0IGNoYXIg KmFzaHJxaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVuKTsK LWV4dGVybiBjb25zdCBjaGFyICphc2hyaGkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVy YW5kc1tdLCBpbnQgKmxlbik7Ci1leHRlcm4gY29uc3QgY2hhciAqYXNocnNpM19vdXQgKHJ0eF9p bnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50ICpsZW4pOworZXh0ZXJuIGNvbnN0IGNoYXIg KmFzaHJxaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCBudW1vcHMs IGludCAqbGVuKTsKK2V4dGVybiBjb25zdCBjaGFyICphc2hyaGkzX291dCAocnR4X2luc24gKmlu c24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgbnVtb3BzLCBpbnQgKmxlbik7CitleHRlcm4gY29uc3Qg Y2hhciAqYXNocnNpM19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50IG51 bW9wcywgaW50ICpsZW4pOwogCi1leHRlcm4gY29uc3QgY2hhciAqbHNocnFpM19vdXQgKHJ0eF9p bnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50ICpsZW4pOwotZXh0ZXJuIGNvbnN0IGNoYXIg KmxzaHJoaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVuKTsK LWV4dGVybiBjb25zdCBjaGFyICpsc2hyc2kzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVy YW5kc1tdLCBpbnQgKmxlbik7CitleHRlcm4gY29uc3QgY2hhciAqbHNocnFpM19vdXQgKHJ0eF9p bnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50IG51bW9wcywgaW50ICpsZW4pOworZXh0ZXJu IGNvbnN0IGNoYXIgKmxzaHJoaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10s IGludCBudW1vcHMsIGludCAqbGVuKTsKK2V4dGVybiBjb25zdCBjaGFyICpsc2hyc2kzX291dCAo cnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgbnVtb3BzLCBpbnQgKmxlbik7CiAK LWV4dGVybiBjb25zdCBjaGFyICphdnJfb3V0X2FzaGxwc2kzIChydHhfaW5zbiAqLCBydHgqLCBp bnQqKTsKLWV4dGVybiBjb25zdCBjaGFyICphdnJfb3V0X2FzaHJwc2kzIChydHhfaW5zbiAqLCBy dHgqLCBpbnQqKTsKLWV4dGVybiBjb25zdCBjaGFyICphdnJfb3V0X2xzaHJwc2kzIChydHhfaW5z biAqLCBydHgqLCBpbnQqKTsKK2V4dGVybiBjb25zdCBjaGFyICphdnJfb3V0X2FzaGxwc2kzIChy dHhfaW5zbiAqLCBydHgqLCBpbnQsIGludCopOworZXh0ZXJuIGNvbnN0IGNoYXIgKmF2cl9vdXRf YXNocnBzaTMgKHJ0eF9pbnNuICosIHJ0eCosIGludCwgaW50Kik7CitleHRlcm4gY29uc3QgY2hh ciAqYXZyX291dF9sc2hycHNpMyAocnR4X2luc24gKiwgcnR4KiwgaW50LCBpbnQqKTsKIAogZXh0 ZXJuIGJvb2wgYXZyX3JvdGF0ZV9ieXRlcyAocnR4IG9wZXJhbmRzW10pOwogCkBAIC0xMTYsNyAr MTE2LDcgQEAgZXh0ZXJuIGludCBhdnJfc2ltcGxpZnlfY29tcGFyaXNvbl9wIChtYWNoaW5lX21v ZGUgbW9kZSwKIAkJCQkgICAgICBSVFhfQ09ERSBvcCwgcnR4IHgpOwogZXh0ZXJuIFJUWF9DT0RF IGF2cl9ub3JtYWxpemVfY29uZGl0aW9uIChSVFhfQ09ERSBjb25kaXRpb24pOwogZXh0ZXJuIHZv aWQgb3V0X3NoaWZ0X3dpdGhfY250IChjb25zdCBjaGFyICp0ZW1wbCwgcnR4X2luc24gKmluc24s Ci0JCQkJcnR4IG9wZXJhbmRzW10sIGludCAqbGVuLCBpbnQgdF9sZW4pOworCQkJCXJ0eCBvcGVy YW5kc1tdLCBpbnQgbnVtb3BzLCBpbnQgKmxlbiwgaW50IHRfbGVuKTsKIGV4dGVybiBlbnVtIHJl Z19jbGFzcyBhdnJfbW9kZV9jb2RlX2Jhc2VfcmVnX2NsYXNzIChtYWNoaW5lX21vZGUsIGFkZHJf c3BhY2VfdCwgUlRYX0NPREUsIFJUWF9DT0RFKTsKIGV4dGVybiBib29sIGF2cl9yZWdub19tb2Rl X2NvZGVfb2tfZm9yX2Jhc2VfcCAoaW50LCBtYWNoaW5lX21vZGUsIGFkZHJfc3BhY2VfdCwgUlRY X0NPREUsIFJUWF9DT0RFKTsKIGV4dGVybiBydHggYXZyX2luY29taW5nX3JldHVybl9hZGRyX3J0 eCAodm9pZCk7CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2F2ci9hdnIuYyBiL2djYy9jb25maWcv YXZyL2F2ci5jCmluZGV4IDYxMTY4ZWRmZGFlLi4yMzIyZmJkZjY5YiAxMDA2NDQKLS0tIGEvZ2Nj L2NvbmZpZy9hdnIvYXZyLmMKKysrIGIvZ2NjL2NvbmZpZy9hdnIvYXZyLmMKQEAgLTE5NSw2ICsx OTUsMTAgQEAgcnR4IHRtcF9yZWdfcnR4OwogZXh0ZXJuIEdUWSgoKSkgcnR4IHplcm9fcmVnX3J0 eDsKIHJ0eCB6ZXJvX3JlZ19ydHg7CiAKKy8qIENvbmRpdGlvbiBDb2RvZSByZWdpc3RlciBSVFgg KHJlZzpDQyBSRUdfQ0MpICovCitleHRlcm4gR1RZKCgpKSBydHggY2NfcmVnX3J0eDsKK3J0eCBj Y19yZWdfcnR4OworCiAvKiBSVFhzIGZvciBhbGwgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycyBh cyBRSW1vZGUgKi8KIGV4dGVybiBHVFkoKCkpIHJ0eCBhbGxfcmVnc19ydHhbMzJdOwogcnR4IGFs bF9yZWdzX3J0eFszMl07CkBAIC0zNzYsMTAgKzM4MCwxMCBAQCBtYWtlX2F2cl9wYXNzX2Nhc2Vz aSAoZ2NjOjpjb250ZXh0ICpjdHh0KQogLyogTWFrZSBvbmUgcGFyYWxsZWwgaW5zbiB3aXRoIGFs bCB0aGUgcGF0dGVybnMgZnJvbSBpbnNucyBpWzBdLi5pWzVdLiAgKi8KIAogc3RhdGljIHJ0eF9p bnNuKgotYXZyX3BhcmFsbGVsX2luc25fZnJvbV9pbnNucyAocnR4X2luc24gKmlbNl0pCithdnJf cGFyYWxsZWxfaW5zbl9mcm9tX2luc25zIChydHhfaW5zbiAqaVs1XSkKIHsKLSAgcnR2ZWMgdmVj ID0gZ2VuX3J0dmVjICg2LCBQQVRURVJOIChpWzBdKSwgUEFUVEVSTiAoaVsxXSksIFBBVFRFUk4g KGlbMl0pLAotICAgICAgICAgICAgICAgICAgICAgICAgIFBBVFRFUk4gKGlbM10pLCBQQVRURVJO IChpWzRdKSwgUEFUVEVSTiAoaVs1XSkpOworICBydHZlYyB2ZWMgPSBnZW5fcnR2ZWMgKDUsIFBB VFRFUk4gKGlbMF0pLCBQQVRURVJOIChpWzFdKSwgUEFUVEVSTiAoaVsyXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgUEFUVEVSTiAoaVszXSksIFBBVFRFUk4gKGlbNF0pKTsKICAgc3RhcnRf c2VxdWVuY2UoKTsKICAgZW1pdCAoZ2VuX3J0eF9QQVJBTExFTCAoVk9JRG1vZGUsIHZlYykpOwog ICBydHhfaW5zbiAqaW5zbiA9IGdldF9pbnNucygpOwpAQCAtMzk3LDIyICs0MDEsMjEgQEAgYXZy X3BhcmFsbGVsX2luc25fZnJvbV9pbnNucyAocnR4X2luc24gKmlbNl0pCiAgICBwYXR0ZXJuIGNh c2VzaV88bW9kZT5fc2VxdWVuY2UgZm9yZ2VkIGZyb20gdGhlIHNlcXVlbmNlIHRvIHJlY29nX2Rh dGEuICAqLwogCiBzdGF0aWMgYm9vbAotYXZyX2lzX2Nhc2VzaV9zZXF1ZW5jZSAoYmFzaWNfYmxv Y2sgYmIsIHJ0eF9pbnNuICppbnNuLCBydHhfaW5zbiAqaW5zbnNbNl0pCithdnJfaXNfY2FzZXNp X3NlcXVlbmNlIChiYXNpY19ibG9jayBiYiwgcnR4X2luc24gKmluc24sIHJ0eF9pbnNuICppbnNu c1s1XSkKIHsKLSAgcnR4IHNldF81LCBzZXRfMDsKKyAgcnR4IHNldF80LCBzZXRfMDsKIAogICAv KiBBIGZpcnN0IGFuZCBxdWljayB0ZXN0IGZvciBhIGNhc2VzaSBzZXF1ZW5jZXMuICBBcyBhIHNp ZGUgZWZmZWN0IG9mCi0gICAgIHRoZSB0ZXN0LCBoYXJ2ZXN0IHJlc3BlY3RpdmUgaW5zbnMgdG8g SU5TTlNbMC4uNV0uICAqLworICAgICB0aGUgdGVzdCwgaGFydmVzdCByZXNwZWN0aXZlIGluc25z IHRvIElOU05TWzAuLjRdLiAgKi8KIAotICBpZiAoIShKVU1QX1AgKGluc25zWzVdID0gaW5zbikK KyAgaWYgKCEoSlVNUF9QIChpbnNuc1s0XSA9IGluc24pCiAgICAgICAgIC8vIGNhc2VzaSBpcyB0 aGUgb25seSBpbnNuIHRoYXQgY29tZXMgdXAgd2l0aCBVTlNQRUNfSU5ERVhfSk1QLAogICAgICAg ICAvLyBoZW5jZSB0aGUgZm9sbG93aW5nIHRlc3QgZW5zdXJlcyB0aGF0IHdlIGFyZSBhY3R1YWxs eSBkZWFsaW5nCiAgICAgICAgIC8vIHdpdGggY29kZSBmcm9tIGNhc2VzaS4KLSAgICAgICAgJiYg KHNldF81ID0gc2luZ2xlX3NldCAoaW5zbnNbNV0pKQotICAgICAgICAmJiBVTlNQRUMgPT0gR0VU X0NPREUgKFNFVF9TUkMgKHNldF81KSkKLSAgICAgICAgJiYgVU5TUEVDX0lOREVYX0pNUCA9PSBY SU5UIChTRVRfU1JDIChzZXRfNSksIDEpCisgICAgICAgICYmIChzZXRfNCA9IHNpbmdsZV9zZXQg KGluc25zWzRdKSkKKyAgICAgICAgJiYgVU5TUEVDID09IEdFVF9DT0RFIChTRVRfU1JDIChzZXRf NCkpCisgICAgICAgICYmIFVOU1BFQ19JTkRFWF9KTVAgPT0gWElOVCAoU0VUX1NSQyAoc2V0XzQp LCAxKQogCi0gICAgICAgICYmIChpbnNuc1s0XSA9IHByZXZfcmVhbF9pbnNuIChpbnNuc1s1XSkp CiAgICAgICAgICYmIChpbnNuc1szXSA9IHByZXZfcmVhbF9pbnNuIChpbnNuc1s0XSkpCiAgICAg ICAgICYmIChpbnNuc1syXSA9IHByZXZfcmVhbF9pbnNuIChpbnNuc1szXSkpCiAgICAgICAgICYm IChpbnNuc1sxXSA9IHByZXZfcmVhbF9pbnNuIChpbnNuc1syXSkpCkBAIC00MjksNyArNDMyLDcg QEAgYXZyX2lzX2Nhc2VzaV9zZXF1ZW5jZSAoYmFzaWNfYmxvY2sgYmIsIHJ0eF9pbnNuICppbnNu LCBydHhfaW5zbiAqaW5zbnNbNl0pCiAgICAgewogICAgICAgZnByaW50ZiAoZHVtcF9maWxlLCAi OzsgU2VxdWVuY2UgZnJvbSBjYXNlc2kgaW4gIgogICAgICAgICAgICAgICAgIltiYiAlZF06XG5c biIsIGJiLT5pbmRleCk7Ci0gICAgICBmb3IgKGludCBpID0gMDsgaSA8IDY7IGkrKykKKyAgICAg IGZvciAoaW50IGkgPSAwOyBpIDwgNTsgaSsrKQogICAgICAgICBwcmludF9ydGxfc2luZ2xlIChk dW1wX2ZpbGUsIGluc25zW2ldKTsKICAgICB9CiAKQEAgLTUxOSw3ICs1MjIsNyBAQCBhdnJfY2Fz ZWlfc2VxdWVuY2VfY2hlY2tfb3BlcmFuZHMgKHJ0eCAqeG9wKQogfQogCiAKLS8qIElOU05TWzEu LjVdIGlzIGEgc2VxdWVuY2UgYXMgZ2VuZXJhdGVkIGJ5IGNhc2VzaSBhbmQgSU5TTlNbMF0gaXMg YW4KKy8qIElOU05TWzEuLjRdIGlzIGEgc2VxdWVuY2UgYXMgZ2VuZXJhdGVkIGJ5IGNhc2VzaSBh bmQgSU5TTlNbMF0gaXMgYW4KICAgIGV4dGVuc2lvbiBvZiBhbiA4LWJpdCBvciAxNi1iaXQgaW50 ZWdlciB0byBTSW1vZGUuICBYT1AgY29udGFpbnMgdGhlCiAgICBvcGVyYW5kcyBvZiBJTlNOUyBh cyBleHRyYWN0ZWQgYnkgaW5zbl9leHRyYWN0IGZyb20gcGF0dGVybgogICAgY2FzZXNpXzxtb2Rl Pl9zZXF1ZW5jZToKQEAgLTU0MSw3ICs1NDQsNyBAQCBhdnJfY2FzZWlfc2VxdWVuY2VfY2hlY2tf b3BlcmFuZHMgKHJ0eCAqeG9wKQogICAgc3dpdGNoIHZhbHVlIGluc3RlYWQgb2YgU0ltb2RlLiAg Ki8KIAogc3RhdGljIHZvaWQKLWF2cl9vcHRpbWl6ZV9jYXNlc2kgKHJ0eF9pbnNuICppbnNuc1s2 XSwgcnR4ICp4b3ApCithdnJfb3B0aW1pemVfY2FzZXNpIChydHhfaW5zbiAqaW5zbnNbNV0sIHJ0 eCAqeG9wKQogewogICAvLyBPcmlnaW5hbCBtb2RlIG9mIHRoZSBzd2l0Y2ggdmFsdWU7IHRoaXMg aXMgUUltb2RlIG9yIEhJbW9kZS4KICAgbWFjaGluZV9tb2RlIG1vZGUgPSBHRVRfTU9ERSAoeG9w WzEwXSk7CkBAIC01OTcsMTYgKzYwMCwyMiBAQCBhdnJfb3B0aW1pemVfY2FzZXNpIChydHhfaW5z biAqaW5zbnNbNl0sIHJ0eCAqeG9wKQogICBydHggcmVnID0gY29weV90b19tb2RlX3JlZyAobW9k ZSwgeG9wWzEwXSk7CiAKICAgcnR4ICgqZ2VuX2FkZCkocnR4LHJ0eCxydHgpID0gUUltb2RlID09 IG1vZGUgPyBnZW5fYWRkcWkzIDogZ2VuX2FkZGhpMzsKLSAgcnR4ICgqZ2VuX2NtcCkocnR4LHJ0 eCkgPSBRSW1vZGUgPT0gbW9kZSA/IGdlbl9jbXBxaTMgOiBnZW5fY21waGkzOworICAvL3J0eCAo Kmdlbl9jbXApKHJ0eCxydHgpID0gUUltb2RlID09IG1vZGUgPyBnZW5fY21wcWkzIDogZ2VuX2Nt cGhpMzsKKyAgcnR4ICgqZ2VuX2NicmFuY2gpKHJ0eCxydHgscnR4LHJ0eCkKKyAgICA9IFFJbW9k ZSA9PSBtb2RlID8gZ2VuX2NicmFuY2hxaTQgOiBnZW5fY2JyYW5jaGhpNDsKIAogICBlbWl0X2lu c24gKGdlbl9hZGQgKHJlZywgcmVnLCBnZW5faW50X21vZGUgKC1sb3dfaWR4LCBtb2RlKSkpOwot ICBlbWl0X2luc24gKGdlbl9jbXAgKHJlZywgZ2VuX2ludF9tb2RlIChudW1faWR4LCBtb2RlKSkp OworICBydHggb3AwID0gcmVnOyBydHggb3AxID0gZ2VuX2ludF9tb2RlIChudW1faWR4LCBtb2Rl KTsKKyAgcnR4IGxhYmVscmVmID0gY29weV9ydHggKHhvcFs0XSk7CisgIGVtaXRfanVtcF9pbnNu IChnZW5fY2JyYW5jaCAoZ2VuX3J0eF9mbXRfZWUgKEdUVSwgVk9JRG1vZGUsIG9wMCwgb3AxKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcDAsIG9wMSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsYWJlbHJlZikpOwogCiAgIHNlcTEgPSBnZXRfaW5zbnMoKTsKICAg bGFzdDEgPSBnZXRfbGFzdF9pbnNuKCk7CiAgIGVuZF9zZXF1ZW5jZSgpOwogCi0gIGVtaXRfaW5z bl9iZWZvcmUgKHNlcTEsIGluc25zWzFdKTsKKyAgZW1pdF9pbnNuX2FmdGVyIChzZXExLCBpbnNu c1syXSk7CiAKICAgLy8gQWZ0ZXIgdGhlIG91dC1vZi1ib3VuZHMgdGVzdCBhbmQgY29ycmVzcG9u ZGluZyBicmFuY2gsIHVzZSBhCiAgIC8vIDE2LWJpdCBpbmRleC4gIElmIFFJbW9kZSBpcyB1c2Vk LCBleHRlbmQgaXQgdG8gSEltb2RlIGZpcnN0LgpAQCAtNjI3LDcgKzYzNiw3IEBAIGF2cl9vcHRp bWl6ZV9jYXNlc2kgKHJ0eF9pbnNuICppbnNuc1s2XSwgcnR4ICp4b3ApCiAgIGxhc3QyID0gZ2V0 X2xhc3RfaW5zbigpOwogICBlbmRfc2VxdWVuY2UoKTsKIAotICBlbWl0X2luc25fYWZ0ZXIgKHNl cTIsIGluc25zWzRdKTsKKyAgZW1pdF9pbnNuX2FmdGVyIChzZXEyLCBpbnNuc1szXSk7CiAKICAg aWYgKGR1bXBfZmlsZSkKICAgICB7CkBAIC02NDgsNyArNjU3LDcgQEAgYXZyX29wdGltaXplX2Nh c2VzaSAocnR4X2luc24gKmluc25zWzZdLCBydHggKnhvcCkKICAgICAgICAgfQogCiAgICAgICBm cHJpbnRmIChkdW1wX2ZpbGUsICI7OyBEZWxldGluZyBpbnNuczogJWQsICVkLCAlZC5cblxuIiwK LSAgICAgICAgICAgICAgIElOU05fVUlEIChpbnNuc1sxXSksIElOU05fVUlEIChpbnNuc1syXSks IElOU05fVUlEIChpbnNuc1s0XSkpOworICAgICAgICAgICAgICAgSU5TTl9VSUQgKGluc25zWzFd KSwgSU5TTl9VSUQgKGluc25zWzJdKSwgSU5TTl9VSUQgKGluc25zWzNdKSk7CiAgICAgfQogCiAg IC8vIFBzZXVkb2RlbGV0ZSB0aGUgU0ltb2RlIGFuZCBzdWJyZWcgb2YgU0ltb2RlIGluc25zLiAg V2UgZG9uJ3QgY2FyZQpAQCAtNjU3LDcgKzY2Niw3IEBAIGF2cl9vcHRpbWl6ZV9jYXNlc2kgKHJ0 eF9pbnNuICppbnNuc1s2XSwgcnR4ICp4b3ApCiAKICAgU0VUX0lOU05fREVMRVRFRCAoaW5zbnNb MV0pOwogICBTRVRfSU5TTl9ERUxFVEVEIChpbnNuc1syXSk7Ci0gIFNFVF9JTlNOX0RFTEVURUQg KGluc25zWzRdKTsKKyAgU0VUX0lOU05fREVMRVRFRCAoaW5zbnNbM10pOwogfQogCiAKQEAgLTY2 OCw3ICs2NzcsNyBAQCBhdnJfcGFzc19jYXNlc2k6OmF2cl9yZXN0X29mX2hhbmRsZV9jYXNlc2kg KGZ1bmN0aW9uICpmdW5jKQogCiAgIEZPUl9FQUNIX0JCX0ZOIChiYiwgZnVuYykKICAgICB7Ci0g ICAgICBydHhfaW5zbiAqaW5zbiwgKmluc25zWzZdOworICAgICAgcnR4X2luc24gKmluc24sICpp bnNuc1s1XTsKIAogICAgICAgRk9SX0JCX0lOU05TIChiYiwgaW5zbikKICAgICAgICAgewpAQCAt ODE0LDYgKzgyMyw4IEBAIGF2cl9pbml0X2V4cGFuZGVycyAodm9pZCkKICAgdG1wX3JlZ19ydHgg ID0gYWxsX3JlZ3NfcnR4W0FWUl9UTVBfUkVHTk9dOwogICB6ZXJvX3JlZ19ydHggPSBhbGxfcmVn c19ydHhbQVZSX1pFUk9fUkVHTk9dOwogCisgIGNjX3JlZ19ydHggID0gZ2VuX3J0eF9SRUcgKEND bW9kZSwgUkVHX0NDKTsKKwogICBscG1fYWRkcl9yZWdfcnR4ID0gZ2VuX3J0eF9SRUcgKEhJbW9k ZSwgUkVHX1opOwogCiAgIHNyZWdfcnR4ID0gZ2VuX3J0eF9NRU0gKFFJbW9kZSwgR0VOX0lOVCAo YXZyX2FkZHIuc3JlZykpOwpAQCAtMjk4OSwxNTIgKzMwMDAsNiBAQCBhdnJfdXNlX2J5X3BpZWNl c19pbmZyYXN0cnVjdHVyZV9wICh1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHNpemUsCiAgIHJldHVy biBzaXplIDw9IE1PVkVfTUFYX1BJRUNFUzsKIH0KIAotCi0vKiBXb3JrZXIgZnVuY3Rpb24gZm9y IGBOT1RJQ0VfVVBEQVRFX0NDJy4gICovCi0vKiBVcGRhdGUgdGhlIGNvbmRpdGlvbiBjb2RlIGlu IHRoZSBJTlNOLiAgKi8KLQotdm9pZAotYXZyX25vdGljZV91cGRhdGVfY2MgKHJ0eCBib2R5IEFU VFJJQlVURV9VTlVTRUQsIHJ0eF9pbnNuICppbnNuKQotewotICBydHggc2V0OwotICBlbnVtIGF0 dHJfY2MgY2MgPSBnZXRfYXR0cl9jYyAoaW5zbik7Ci0KLSAgc3dpdGNoIChjYykKLSAgICB7Ci0g ICAgZGVmYXVsdDoKLSAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBDQ19QTFVTOgotICAgIGNhc2Ug Q0NfTERJOgotICAgICAgewotICAgICAgICBydHggKm9wID0gcmVjb2dfZGF0YS5vcGVyYW5kOwot ICAgICAgICBpbnQgbGVuX2R1bW15LCBpY2M7Ci0KLSAgICAgICAgLyogRXh0cmFjdCBpbnNuJ3Mg b3BlcmFuZHMuICAqLwotICAgICAgICBleHRyYWN0X2NvbnN0cmFpbl9pbnNuX2NhY2hlZCAoaW5z bik7Ci0KLSAgICAgICAgc3dpdGNoIChjYykKLSAgICAgICAgICB7Ci0gICAgICAgICAgZGVmYXVs dDoKLSAgICAgICAgICAgIGdjY191bnJlYWNoYWJsZSgpOwotCi0gICAgICAgICAgY2FzZSBDQ19Q TFVTOgotICAgICAgICAgICAgYXZyX291dF9wbHVzIChpbnNuLCBvcCwgJmxlbl9kdW1teSwgJmlj Yyk7Ci0gICAgICAgICAgICBjYyA9IChlbnVtIGF0dHJfY2MpIGljYzsKLSAgICAgICAgICAgIGJy ZWFrOwotCi0gICAgICAgICAgY2FzZSBDQ19MREk6Ci0KLSAgICAgICAgICAgIGNjID0gKG9wWzFd ID09IENPTlNUMF9SVFggKEdFVF9NT0RFIChvcFswXSkpCi0gICAgICAgICAgICAgICAgICAmJiBy ZWdfb3ZlcmxhcF9tZW50aW9uZWRfcCAob3BbMF0sIHplcm9fcmVnX3J0eCkpCi0gICAgICAgICAg ICAgIC8qIExvYWRpbmcgemVyby1yZWcgd2l0aCAwIHVzZXMgQ0xSIGFuZCB0aHVzIGNsb2JiZXJz IGNjMC4gICovCi0gICAgICAgICAgICAgID8gQ0NfQ0xPQkJFUgotICAgICAgICAgICAgICAvKiBB bnkgb3RoZXIgInIsckwiIGNvbWJpbmF0aW9uIGRvZXMgbm90IGFsdGVyIGNjMC4gICovCi0gICAg ICAgICAgICAgIDogQ0NfTk9ORTsKLQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgfSAv KiBpbm5lciBzd2l0Y2ggKi8KLQotICAgICAgICBicmVhazsKLSAgICAgIH0KLSAgICB9IC8qIG91 dGVyIHN3aWN0aCAqLwotCi0gIHN3aXRjaCAoY2MpCi0gICAgewotICAgIGRlZmF1bHQ6Ci0gICAg ICAvKiBTcGVjaWFsIHZhbHVlcyBsaWtlIENDX09VVF9QTFVTIGZyb20gYWJvdmUgaGF2ZSBiZWVu Ci0gICAgICAgICBtYXBwZWQgdG8gInN0YW5kYXJkIiBDQ18qIHZhbHVlcyBzbyB3ZSBuZXZlciBj b21lIGhlcmUuICAqLwotCi0gICAgICBnY2NfdW5yZWFjaGFibGUoKTsKLSAgICAgIGJyZWFrOwot Ci0gICAgY2FzZSBDQ19OT05FOgotICAgICAgLyogSW5zbiBkb2VzIG5vdCBhZmZlY3QgQ0MgYXQg YWxsLCBidXQgaXQgbWlnaHQgc2V0IHNvbWUgcmVnaXN0ZXJzCi0gICAgICAgICB0aGF0IGFyZSBz dG9yZWQgaW4gY2Nfc3RhdHVzLiAgSWYgc3VjaCBhIHJlZ2lzdGVyIGlzIGFmZmVjdGVkIGJ5Ci0g ICAgICAgICB0aGUgY3VycmVudCBpbnNuLCBmb3IgZXhhbXBsZSBieSBtZWFucyBvZiBhIFNFVCBv ciBhIENMT0JCRVIsCi0gICAgICAgICB0aGVuIHdlIG11c3QgcmVzZXQgY2Nfc3RhdHVzOyBjZi4g UFI3NzMyNi4KLQotICAgICAgICAgVW5mb3J0dW5hdGVseSwgc2V0X29mIGNhbm5vdCBiZSB1c2Vk IGFzIHJlZ19vdmVybGFwX21lbnRpb25lZF9wCi0gICAgICAgICB3aWxsIGFib3J0IG9uIENPTVBB UkUgKHdoaWNoIG1pZ2h0IGJlIGZvdW5kIGluIGNjX3N0YXR1cy52YWx1ZTEvMikuCi0gICAgICAg ICBUaHVzIHdvcmsgb3V0IHRoZSByZWdpc3RlcnMgc2V0IGJ5IHRoZSBpbnNuIGFuZCByZWdzIG1l bnRpb25lZAotICAgICAgICAgaW4gY2Nfc3RhdHVzLnZhbHVlMS8yLiAgKi8KLQotICAgICAgaWYg KGNjX3N0YXR1cy52YWx1ZTEKLSAgICAgICAgICB8fCBjY19zdGF0dXMudmFsdWUyKQotICAgICAg ICB7Ci0gICAgICAgICAgSEFSRF9SRUdfU0VUIHJlZ3NfdXNlZDsKLSAgICAgICAgICBIQVJEX1JF R19TRVQgcmVnc19zZXQ7Ci0gICAgICAgICAgQ0xFQVJfSEFSRF9SRUdfU0VUIChyZWdzX3VzZWQp OwotCi0gICAgICAgICAgaWYgKGNjX3N0YXR1cy52YWx1ZTEKLSAgICAgICAgICAgICAgJiYgIUNP TlNUQU5UX1AgKGNjX3N0YXR1cy52YWx1ZTEpKQotICAgICAgICAgICAgewotICAgICAgICAgICAg ICBmaW5kX2FsbF9oYXJkX3JlZ3MgKGNjX3N0YXR1cy52YWx1ZTEsICZyZWdzX3VzZWQpOwotICAg ICAgICAgICAgfQotCi0gICAgICAgICAgaWYgKGNjX3N0YXR1cy52YWx1ZTIKLSAgICAgICAgICAg ICAgJiYgIUNPTlNUQU5UX1AgKGNjX3N0YXR1cy52YWx1ZTIpKQotICAgICAgICAgICAgewotICAg ICAgICAgICAgICBmaW5kX2FsbF9oYXJkX3JlZ3MgKGNjX3N0YXR1cy52YWx1ZTIsICZyZWdzX3Vz ZWQpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgZmluZF9hbGxfaGFyZF9yZWdfc2V0cyAo aW5zbiwgJnJlZ3Nfc2V0LCBmYWxzZSk7Ci0KLSAgICAgICAgICBpZiAoaGFyZF9yZWdfc2V0X2lu dGVyc2VjdF9wIChyZWdzX3VzZWQsIHJlZ3Nfc2V0KSkKLSAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgQ0NfU1RBVFVTX0lOSVQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAg YnJlYWs7IC8vIENDX05PTkUKLQotICAgIGNhc2UgQ0NfU0VUX046Ci0gICAgICBDQ19TVEFUVVNf SU5JVDsKLSAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBDQ19TRVRfWk46Ci0gICAgICBzZXQgPSBz aW5nbGVfc2V0IChpbnNuKTsKLSAgICAgIENDX1NUQVRVU19JTklUOwotICAgICAgaWYgKHNldCkK LSAgICAgICAgewotICAgICAgICAgIGNjX3N0YXR1cy5mbGFncyB8PSBDQ19OT19PVkVSRkxPVzsK LSAgICAgICAgICBjY19zdGF0dXMudmFsdWUxID0gU0VUX0RFU1QgKHNldCk7Ci0gICAgICAgIH0K LSAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBDQ19TRVRfVlpOOgotICAgICAgLyogSW5zbiBsaWtl IElOQywgREVDLCBORUcgdGhhdCBzZXQgWixOLFYuICBXZSBjdXJyZW50bHkgZG9uJ3QgbWFrZSB1 c2UKLSAgICAgICAgIG9mIHRoaXMgY29tYmluYXRpb24sIGNmLiBhbHNvIFBSNjEwNTUuICAqLwot ICAgICAgQ0NfU1RBVFVTX0lOSVQ7Ci0gICAgICBicmVhazsKLQotICAgIGNhc2UgQ0NfU0VUX0Na TjoKLSAgICAgIC8qIEluc24gc2V0cyB0aGUgWixOLEMgZmxhZ3Mgb2YgQ0MgdG8gcmVjb2dfb3Bl cmFuZFswXS4KLSAgICAgICAgIFRoZSBWIGZsYWcgbWF5IG9yIG1heSBub3QgYmUga25vd24gYnV0 IHRoYXQncyBvayBiZWNhdXNlCi0gICAgICAgICBhbHRlcl9jb25kIHdpbGwgY2hhbmdlIHRlc3Rz IHRvIHVzZSBFUS9ORS4gICovCi0gICAgICBzZXQgPSBzaW5nbGVfc2V0IChpbnNuKTsKLSAgICAg IENDX1NUQVRVU19JTklUOwotICAgICAgaWYgKHNldCkKLSAgICAgICAgewotICAgICAgICAgIGNj X3N0YXR1cy52YWx1ZTEgPSBTRVRfREVTVCAoc2V0KTsKLSAgICAgICAgICBjY19zdGF0dXMuZmxh Z3MgfD0gQ0NfT1ZFUkZMT1dfVU5VU0FCTEU7Ci0gICAgICAgIH0KLSAgICAgIGJyZWFrOwotCi0g ICAgY2FzZSBDQ19DT01QQVJFOgotICAgICAgc2V0ID0gc2luZ2xlX3NldCAoaW5zbik7Ci0gICAg ICBDQ19TVEFUVVNfSU5JVDsKLSAgICAgIGlmIChzZXQpCi0gICAgICAgIGNjX3N0YXR1cy52YWx1 ZTEgPSBTRVRfU1JDIChzZXQpOwotICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIENDX0NMT0JCRVI6 Ci0gICAgICAvKiBJbnNuIGRvZXNuJ3QgbGVhdmUgQ0MgaW4gYSB1c2FibGUgc3RhdGUuICAqLwot ICAgICAgQ0NfU1RBVFVTX0lOSVQ7Ci0gICAgICBicmVhazsKLSAgICB9Ci19Ci0KIC8qIENob29z ZSBtb2RlIGZvciBqdW1wIGluc246CiAgICAxIC0gcmVsYXRpdmUganVtcCBpbiByYW5nZSAtNjMg PD0geCA8PSA2MiA7CiAgICAyIC0gcmVsYXRpdmUganVtcCBpbiByYW5nZSAtMjA0NiA8PSB4IDw9 IDIwNDUgOwpAQCAtNTgyMCw2ICs1Njg1LDggQEAgY29tcGFyZV9jb25kaXRpb24gKHJ0eF9pbnNu ICppbnNuKQogICBpZiAobmV4dCAmJiBKVU1QX1AgKG5leHQpKQogICAgIHsKICAgICAgIHJ0eCBw YXQgPSBQQVRURVJOIChuZXh0KTsKKyAgICAgIGlmIChHRVRfQ09ERShwYXQpID09IFBBUkFMTEVM KQorICAgICAgICBwYXQgPSBYRVhQIChwYXQsIDApOwogICAgICAgcnR4IHNyYyA9IFNFVF9TUkMg KHBhdCk7CiAKICAgICAgIGlmIChJRl9USEVOX0VMU0UgPT0gR0VUX0NPREUgKHNyYykpCkBAIC02 MTU3LDEyICs2MDI0LDEzIEBAIGF2cl9vdXRfdHN0c2kgKHJ0eF9pbnNuICppbnNuLCBydHggKm9w LCBpbnQgKnBsZW4pCiAgICBPUEVSQU5EU1szXSBpcyBhIFFJbW9kZSBzY3JhdGNoIHJlZ2lzdGVy IGZyb20gTEQgcmVncyBpZgogICAgICAgICAgICAgICAgYXZhaWxhYmxlIGFuZCBTQ1JBVENILCBv dGhlcndpc2UgKG5vIHNjcmF0Y2ggYXZhaWxhYmxlKQogCisgICBOVU1PUFMgaXMgdGhlIG51bWJl ciBvZiBvcGVyYW5kcwogICAgVEVNUEwgaXMgYW4gYXNzZW1ibGVyIHRlbXBsYXRlIHRoYXQgc2hp ZnRzIGJ5IG9uZSBwb3NpdGlvbi4KICAgIFRfTEVOIGlzIHRoZSBsZW5ndGggb2YgdGhpcyB0ZW1w bGF0ZS4gICovCiAKIHZvaWQKIG91dF9zaGlmdF93aXRoX2NudCAoY29uc3QgY2hhciAqdGVtcGws IHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwKLQkJICAgIGludCAqcGxlbiwgaW50IHRf bGVuKQorCQkgICAgaW50IG51bW9wcywgaW50ICpwbGVuLCBpbnQgdF9sZW4pCiB7CiAgIGJvb2wg c2Vjb25kX2xhYmVsID0gdHJ1ZTsKICAgYm9vbCBzYXZlZF9pbl90bXAgPSBmYWxzZTsKQEAgLTYx ODAsNiArNjA0OCw3IEBAIG91dF9zaGlmdF93aXRoX2NudCAoY29uc3QgY2hhciAqdGVtcGwsIHJ0 eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwKICAgaWYgKENPTlNUX0lOVF9QIChvcGVyYW5k c1syXSkpCiAgICAgewogICAgICAgYm9vbCBzY3JhdGNoID0gKEdFVF9DT0RFIChQQVRURVJOIChp bnNuKSkgPT0gUEFSQUxMRUwKKyAgICAgICAgICAgICAgICAgICAgICAmJiBudW1vcHMgPT0gNAog ICAgICAgICAgICAgICAgICAgICAgICYmIFJFR19QIChvcGVyYW5kc1szXSkpOwogICAgICAgaW50 IGNvdW50ID0gSU5UVkFMIChvcGVyYW5kc1syXSk7CiAgICAgICBpbnQgbWF4X2xlbiA9IDEwOyAg LyogSWYgbGFyZ2VyIHRoYW4gdGhpcywgYWx3YXlzIHVzZSBhIGxvb3AuICAqLwpAQCAtNjI3NSw3 ICs2MTQ0LDcgQEAgb3V0X3NoaWZ0X3dpdGhfY250IChjb25zdCBjaGFyICp0ZW1wbCwgcnR4X2lu c24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLAogLyogOGJpdCBzaGlmdCBsZWZ0ICgoY2hhcil4IDw8 IGkpICAgKi8KIAogY29uc3QgY2hhciAqCi1hc2hscWkzX291dCAocnR4X2luc24gKmluc24sIHJ0 eCBvcGVyYW5kc1tdLCBpbnQgKmxlbikKK2FzaGxxaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4 IG9wZXJhbmRzW10sIGludCBudW1vcHMsIGludCAqbGVuKQogewogICBpZiAoQ09OU1RfSU5UX1Ag KG9wZXJhbmRzWzJdKSkKICAgICB7CkBAIC02MzY0LDcgKzYyMzMsNyBAQCBhc2hscWkzX291dCAo cnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgKmxlbikKICAgICBmYXRhbF9pbnNu ICgiaW50ZXJuYWwgY29tcGlsZXIgZXJyb3IuICBJbmNvcnJlY3Qgc2hpZnQ6IiwgaW5zbik7CiAK ICAgb3V0X3NoaWZ0X3dpdGhfY250ICgibHNsICUwIiwKLSAgICAgICAgICAgICAgICAgICAgICBp bnNuLCBvcGVyYW5kcywgbGVuLCAxKTsKKyAgICAgICAgICAgICAgICAgICAgICBpbnNuLCBvcGVy YW5kcywgbnVtb3BzLCBsZW4sIDEpOwogICByZXR1cm4gIiI7CiB9CiAKQEAgLTYzNzIsMTEgKzYy NDEsMTIgQEAgYXNobHFpM19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50 ICpsZW4pCiAvKiAxNmJpdCBzaGlmdCBsZWZ0ICgoc2hvcnQpeCA8PCBpKSAgICovCiAKIGNvbnN0 IGNoYXIgKgotYXNobGhpM19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50 ICpsZW4pCithc2hsaGkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQg bnVtb3BzLCBpbnQgKmxlbikKIHsKICAgaWYgKENPTlNUX0lOVF9QIChvcGVyYW5kc1syXSkpCiAg ICAgewotICAgICAgaW50IHNjcmF0Y2ggPSAoR0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSA9PSBQ QVJBTExFTCk7CisgICAgICBpbnQgc2NyYXRjaCA9IChHRVRfQ09ERSAoUEFUVEVSTiAoaW5zbikp ID09IFBBUkFMTEVMCisgICAgICAgICAgICAgICAgICAgICAmJiBudW1vcHMgPT0gNCk7CiAgICAg ICBpbnQgbGRpX29rID0gdGVzdF9oYXJkX3JlZ19jbGFzcyAoTERfUkVHUywgb3BlcmFuZHNbMF0p OwogICAgICAgaW50IGs7CiAgICAgICBpbnQgKnQgPSBsZW47CkBAIC02NjIxLDcgKzY0OTEsNyBA QCBhc2hsaGkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgKmxlbikK ICAgICAgIGxlbiA9IHQ7CiAgICAgfQogICBvdXRfc2hpZnRfd2l0aF9jbnQgKCJsc2wgJUEwIiBD Ul9UQUIKLSAgICAgICAgICAgICAgICAgICAgICAicm9sICVCMCIsIGluc24sIG9wZXJhbmRzLCBs ZW4sIDIpOworICAgICAgICAgICAgICAgICAgICAgICJyb2wgJUIwIiwgaW5zbiwgb3BlcmFuZHMs IG51bW9wcywgbGVuLCAyKTsKICAgcmV0dXJuICIiOwogfQogCkBAIC02NjI5LDcgKzY0OTksNyBA QCBhc2hsaGkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgKmxlbikK IC8qIDI0LWJpdCBzaGlmdCBsZWZ0ICovCiAKIGNvbnN0IGNoYXIqCi1hdnJfb3V0X2FzaGxwc2kz IChydHhfaW5zbiAqaW5zbiwgcnR4ICpvcCwgaW50ICpwbGVuKQorYXZyX291dF9hc2hscHNpMyAo cnR4X2luc24gKmluc24sIHJ0eCAqb3AsIGludCBudW1vcHMsIGludCAqcGxlbikKIHsKICAgaWYg KHBsZW4pCiAgICAgKnBsZW4gPSAwOwpAQCAtNjY4NCw3ICs2NTU0LDcgQEAgYXZyX291dF9hc2hs cHNpMyAocnR4X2luc24gKmluc24sIHJ0eCAqb3AsIGludCAqcGxlbikKIAogICBvdXRfc2hpZnRf d2l0aF9jbnQgKCJsc2wgJUEwIiBDUl9UQUIKICAgICAgICAgICAgICAgICAgICAgICAicm9sICVC MCIgQ1JfVEFCCi0gICAgICAgICAgICAgICAgICAgICAgInJvbCAlQzAiLCBpbnNuLCBvcCwgcGxl biwgMyk7CisgICAgICAgICAgICAgICAgICAgICAgInJvbCAlQzAiLCBpbnNuLCBvcCwgbnVtb3Bz LCBwbGVuLCAzKTsKICAgcmV0dXJuICIiOwogfQogCkBAIC02NjkyLDcgKzY1NjIsNyBAQCBhdnJf b3V0X2FzaGxwc2kzIChydHhfaW5zbiAqaW5zbiwgcnR4ICpvcCwgaW50ICpwbGVuKQogLyogMzJi aXQgc2hpZnQgbGVmdCAoKGxvbmcpeCA8PCBpKSAgICovCiAKIGNvbnN0IGNoYXIgKgotYXNobHNp M19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50ICpsZW4pCithc2hsc2kz X291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgbnVtb3BzLCBpbnQgKmxl bikKIHsKICAgaWYgKENPTlNUX0lOVF9QIChvcGVyYW5kc1syXSkpCiAgICAgewpAQCAtNjc3NCwx NCArNjY0NCwxNCBAQCBhc2hsc2kzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1td LCBpbnQgKmxlbikKICAgb3V0X3NoaWZ0X3dpdGhfY250ICgibHNsICVBMCIgQ1JfVEFCCiAgICAg ICAgICAgICAgICAgICAgICAgInJvbCAlQjAiIENSX1RBQgogICAgICAgICAgICAgICAgICAgICAg ICJyb2wgJUMwIiBDUl9UQUIKLSAgICAgICAgICAgICAgICAgICAgICAicm9sICVEMCIsIGluc24s IG9wZXJhbmRzLCBsZW4sIDQpOworICAgICAgICAgICAgICAgICAgICAgICJyb2wgJUQwIiwgaW5z biwgb3BlcmFuZHMsIG51bW9wcywgbGVuLCA0KTsKICAgcmV0dXJuICIiOwogfQogCiAvKiA4Yml0 IGFyaXRobWV0aWMgc2hpZnQgcmlnaHQgICgoc2lnbmVkIGNoYXIpeCA+PiBpKSAqLwogCiBjb25z dCBjaGFyICoKLWFzaHJxaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGlu dCAqbGVuKQorYXNocnFpM19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50 IG51bW9wcywgaW50ICpsZW4pCiB7CiAgIGlmIChDT05TVF9JTlRfUCAob3BlcmFuZHNbMl0pKQog ICAgIHsKQEAgLTY4NDUsNyArNjcxNSw3IEBAIGFzaHJxaTNfb3V0IChydHhfaW5zbiAqaW5zbiwg cnR4IG9wZXJhbmRzW10sIGludCAqbGVuKQogICAgIGZhdGFsX2luc24gKCJpbnRlcm5hbCBjb21w aWxlciBlcnJvci4gIEluY29ycmVjdCBzaGlmdDoiLCBpbnNuKTsKIAogICBvdXRfc2hpZnRfd2l0 aF9jbnQgKCJhc3IgJTAiLAotICAgICAgICAgICAgICAgICAgICAgIGluc24sIG9wZXJhbmRzLCBs ZW4sIDEpOworICAgICAgICAgICAgICAgICAgICAgIGluc24sIG9wZXJhbmRzLCBudW1vcHMsIGxl biwgMSk7CiAgIHJldHVybiAiIjsKIH0KIApAQCAtNjg1MywxMSArNjcyMywxMiBAQCBhc2hycWkz X291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgKmxlbikKIC8qIDE2Yml0 IGFyaXRobWV0aWMgc2hpZnQgcmlnaHQgICgoc2lnbmVkIHNob3J0KXggPj4gaSkgKi8KIAogY29u c3QgY2hhciAqCi1hc2hyaGkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBp bnQgKmxlbikKK2FzaHJoaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGlu dCBudW1vcHMsIGludCAqbGVuKQogewogICBpZiAoQ09OU1RfSU5UX1AgKG9wZXJhbmRzWzJdKSkK ICAgICB7Ci0gICAgICBpbnQgc2NyYXRjaCA9IChHRVRfQ09ERSAoUEFUVEVSTiAoaW5zbikpID09 IFBBUkFMTEVMKTsKKyAgICAgIGludCBzY3JhdGNoID0gKEdFVF9DT0RFIChQQVRURVJOIChpbnNu KSkgPT0gUEFSQUxMRUwKKyAgICAgICAgICAgICAgICAgICAgICYmIG51bW9wcyA9PSA0KTsKICAg ICAgIGludCBsZGlfb2sgPSB0ZXN0X2hhcmRfcmVnX2NsYXNzIChMRF9SRUdTLCBvcGVyYW5kc1sw XSk7CiAgICAgICBpbnQgazsKICAgICAgIGludCAqdCA9IGxlbjsKQEAgLTcwMDgsNyArNjg3OSw3 IEBAIGFzaHJoaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVu KQogICAgICAgbGVuID0gdDsKICAgICB9CiAgIG91dF9zaGlmdF93aXRoX2NudCAoImFzciAlQjAi IENSX1RBQgotICAgICAgICAgICAgICAgICAgICAgICJyb3IgJUEwIiwgaW5zbiwgb3BlcmFuZHMs IGxlbiwgMik7CisgICAgICAgICAgICAgICAgICAgICAgInJvciAlQTAiLCBpbnNuLCBvcGVyYW5k cywgbnVtb3BzLCBsZW4sIDIpOwogICByZXR1cm4gIiI7CiB9CiAKQEAgLTcwMTYsNyArNjg4Nyw3 IEBAIGFzaHJoaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVu KQogLyogMjQtYml0IGFyaXRobWV0aWMgc2hpZnQgcmlnaHQgKi8KIAogY29uc3QgY2hhcioKLWF2 cl9vdXRfYXNocnBzaTMgKHJ0eF9pbnNuICppbnNuLCBydHggKm9wLCBpbnQgKnBsZW4pCithdnJf b3V0X2FzaHJwc2kzIChydHhfaW5zbiAqaW5zbiwgcnR4ICpvcCwgaW50IG51bW9wcywgaW50ICpw bGVuKQogewogICBpbnQgZGVzdCA9IFJFR05PIChvcFswXSk7CiAgIGludCBzcmMgPSBSRUdOTyAo b3BbMV0pOwpAQCAtNzA2Nyw3ICs2OTM4LDcgQEAgYXZyX291dF9hc2hycHNpMyAocnR4X2luc24g Kmluc24sIHJ0eCAqb3AsIGludCAqcGxlbikKIAogICBvdXRfc2hpZnRfd2l0aF9jbnQgKCJhc3Ig JUMwIiBDUl9UQUIKICAgICAgICAgICAgICAgICAgICAgICAicm9yICVCMCIgQ1JfVEFCCi0gICAg ICAgICAgICAgICAgICAgICAgInJvciAlQTAiLCBpbnNuLCBvcCwgcGxlbiwgMyk7CisgICAgICAg ICAgICAgICAgICAgICAgInJvciAlQTAiLCBpbnNuLCBvcCwgbnVtb3BzLCBwbGVuLCAzKTsKICAg cmV0dXJuICIiOwogfQogCkBAIC03MDc1LDcgKzY5NDYsNyBAQCBhdnJfb3V0X2FzaHJwc2kzIChy dHhfaW5zbiAqaW5zbiwgcnR4ICpvcCwgaW50ICpwbGVuKQogLyogMzItYml0IGFyaXRobWV0aWMg c2hpZnQgcmlnaHQgICgoc2lnbmVkIGxvbmcpeCA+PiBpKSAqLwogCiBjb25zdCBjaGFyICoKLWFz aHJzaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVuKQorYXNo cnNpM19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50IG51bW9wcywgaW50 ICpsZW4pCiB7CiAgIGlmIChDT05TVF9JTlRfUCAob3BlcmFuZHNbMl0pKQogICAgIHsKQEAgLTcx NjUsMTQgKzcwMzYsMTQgQEAgYXNocnNpM19vdXQgKHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFu ZHNbXSwgaW50ICpsZW4pCiAgIG91dF9zaGlmdF93aXRoX2NudCAoImFzciAlRDAiIENSX1RBQgog ICAgICAgICAgICAgICAgICAgICAgICJyb3IgJUMwIiBDUl9UQUIKICAgICAgICAgICAgICAgICAg ICAgICAicm9yICVCMCIgQ1JfVEFCCi0gICAgICAgICAgICAgICAgICAgICAgInJvciAlQTAiLCBp bnNuLCBvcGVyYW5kcywgbGVuLCA0KTsKKyAgICAgICAgICAgICAgICAgICAgICAicm9yICVBMCIs IGluc24sIG9wZXJhbmRzLCBudW1vcHMsIGxlbiwgNCk7CiAgIHJldHVybiAiIjsKIH0KIAogLyog OC1iaXQgbG9naWMgc2hpZnQgcmlnaHQgKCh1bnNpZ25lZCBjaGFyKXggPj4gaSkgKi8KIAogY29u c3QgY2hhciAqCi1sc2hycWkzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBp bnQgKmxlbikKK2xzaHJxaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGlu dCBudW1vcHMsIGludCAqbGVuKQogewogICBpZiAoQ09OU1RfSU5UX1AgKG9wZXJhbmRzWzJdKSkK ICAgICB7CkBAIC03MjYwLDE4ICs3MTMxLDE5IEBAIGxzaHJxaTNfb3V0IChydHhfaW5zbiAqaW5z biwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVuKQogICAgIGZhdGFsX2luc24gKCJpbnRlcm5hbCBj b21waWxlciBlcnJvci4gIEluY29ycmVjdCBzaGlmdDoiLCBpbnNuKTsKIAogICBvdXRfc2hpZnRf d2l0aF9jbnQgKCJsc3IgJTAiLAotICAgICAgICAgICAgICAgICAgICAgIGluc24sIG9wZXJhbmRz LCBsZW4sIDEpOworICAgICAgICAgICAgICAgICAgICAgIGluc24sIG9wZXJhbmRzLCBudW1vcHMs IGxlbiwgMSk7CiAgIHJldHVybiAiIjsKIH0KIAogLyogMTYtYml0IGxvZ2ljIHNoaWZ0IHJpZ2h0 ICgodW5zaWduZWQgc2hvcnQpeCA+PiBpKSAqLwogCiBjb25zdCBjaGFyICoKLWxzaHJoaTNfb3V0 IChydHhfaW5zbiAqaW5zbiwgcnR4IG9wZXJhbmRzW10sIGludCAqbGVuKQorbHNocmhpM19vdXQg KHJ0eF9pbnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50IG51bW9wcywgaW50ICpsZW4pCiB7 CiAgIGlmIChDT05TVF9JTlRfUCAob3BlcmFuZHNbMl0pKQogICAgIHsKLSAgICAgIGludCBzY3Jh dGNoID0gKEdFVF9DT0RFIChQQVRURVJOIChpbnNuKSkgPT0gUEFSQUxMRUwpOworICAgICAgaW50 IHNjcmF0Y2ggPSAoR0VUX0NPREUgKFBBVFRFUk4gKGluc24pKSA9PSBQQVJBTExFTAorICAgICAg ICAgICAgICAgICAgICAgJiYgbnVtb3BzID09IDQpOwogICAgICAgaW50IGxkaV9vayA9IHRlc3Rf aGFyZF9yZWdfY2xhc3MgKExEX1JFR1MsIG9wZXJhbmRzWzBdKTsKICAgICAgIGludCBrOwogICAg ICAgaW50ICp0ID0gbGVuOwpAQCAtNzUxNiw3ICs3Mzg4LDcgQEAgbHNocmhpM19vdXQgKHJ0eF9p bnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50ICpsZW4pCiAgICAgICBsZW4gPSB0OwogICAg IH0KICAgb3V0X3NoaWZ0X3dpdGhfY250ICgibHNyICVCMCIgQ1JfVEFCCi0gICAgICAgICAgICAg ICAgICAgICAgInJvciAlQTAiLCBpbnNuLCBvcGVyYW5kcywgbGVuLCAyKTsKKyAgICAgICAgICAg ICAgICAgICAgICAicm9yICVBMCIsIGluc24sIG9wZXJhbmRzLCBudW1vcHMsIGxlbiwgMik7CiAg IHJldHVybiAiIjsKIH0KIApAQCAtNzUyNCw3ICs3Mzk2LDcgQEAgbHNocmhpM19vdXQgKHJ0eF9p bnNuICppbnNuLCBydHggb3BlcmFuZHNbXSwgaW50ICpsZW4pCiAvKiAyNC1iaXQgbG9naWMgc2hp ZnQgcmlnaHQgKi8KIAogY29uc3QgY2hhcioKLWF2cl9vdXRfbHNocnBzaTMgKHJ0eF9pbnNuICpp bnNuLCBydHggKm9wLCBpbnQgKnBsZW4pCithdnJfb3V0X2xzaHJwc2kzIChydHhfaW5zbiAqaW5z biwgcnR4ICpvcCwgaW50IG51bW9wcywgaW50ICpwbGVuKQogewogICBpbnQgZGVzdCA9IFJFR05P IChvcFswXSk7CiAgIGludCBzcmMgPSBSRUdOTyAob3BbMV0pOwpAQCAtNzU3MCw3ICs3NDQyLDcg QEAgYXZyX291dF9sc2hycHNpMyAocnR4X2luc24gKmluc24sIHJ0eCAqb3AsIGludCAqcGxlbikK IAogICBvdXRfc2hpZnRfd2l0aF9jbnQgKCJsc3IgJUMwIiBDUl9UQUIKICAgICAgICAgICAgICAg ICAgICAgICAicm9yICVCMCIgQ1JfVEFCCi0gICAgICAgICAgICAgICAgICAgICAgInJvciAlQTAi LCBpbnNuLCBvcCwgcGxlbiwgMyk7CisgICAgICAgICAgICAgICAgICAgICAgInJvciAlQTAiLCBp bnNuLCBvcCwgbnVtb3BzLCBwbGVuLCAzKTsKICAgcmV0dXJuICIiOwogfQogCkBAIC03NTc4LDcg Kzc0NTAsNyBAQCBhdnJfb3V0X2xzaHJwc2kzIChydHhfaW5zbiAqaW5zbiwgcnR4ICpvcCwgaW50 ICpwbGVuKQogLyogMzItYml0IGxvZ2ljIHNoaWZ0IHJpZ2h0ICgodW5zaWduZWQgaW50KXggPj4g aSkgKi8KIAogY29uc3QgY2hhciAqCi1sc2hyc2kzX291dCAocnR4X2luc24gKmluc24sIHJ0eCBv cGVyYW5kc1tdLCBpbnQgKmxlbikKK2xzaHJzaTNfb3V0IChydHhfaW5zbiAqaW5zbiwgcnR4IG9w ZXJhbmRzW10sIGludCBudW1vcHMsIGludCAqbGVuKQogewogICBpZiAoQ09OU1RfSU5UX1AgKG9w ZXJhbmRzWzJdKSkKICAgICB7CkBAIC03NjYwLDcgKzc1MzIsNyBAQCBsc2hyc2kzX291dCAocnR4 X2luc24gKmluc24sIHJ0eCBvcGVyYW5kc1tdLCBpbnQgKmxlbikKICAgb3V0X3NoaWZ0X3dpdGhf Y250ICgibHNyICVEMCIgQ1JfVEFCCiAgICAgICAgICAgICAgICAgICAgICAgInJvciAlQzAiIENS X1RBQgogICAgICAgICAgICAgICAgICAgICAgICJyb3IgJUIwIiBDUl9UQUIKLSAgICAgICAgICAg ICAgICAgICAgICAicm9yICVBMCIsIGluc24sIG9wZXJhbmRzLCBsZW4sIDQpOworICAgICAgICAg ICAgICAgICAgICAgICJyb3IgJUEwIiwgaW5zbiwgb3BlcmFuZHMsIG51bW9wcywgbGVuLCA0KTsK ICAgcmV0dXJuICIiOwogfQogCkBAIC05MzQ2LDYgKzkyMTgsNyBAQCBpbnQKIGF2cl9hZGp1c3Rf aW5zbl9sZW5ndGggKHJ0eF9pbnNuICppbnNuLCBpbnQgbGVuKQogewogICBydHggKm9wID0gcmVj b2dfZGF0YS5vcGVyYW5kOworICBpbnQgbnVtb3BzID0gcmVjb2dfZGF0YS5uX29wZXJhbmRzOwog ICBlbnVtIGF0dHJfYWRqdXN0X2xlbiBhZGp1c3RfbGVuOwogCiAgIC8qIEFzIHdlIHByZXRlbmQg anVtcCB0YWJsZXMgaW4gLnRleHQsIGZpeCBicmFuY2ggb2Zmc2V0cyBjcm9zc2luZyBqdW1wCkBA IC05NDExLDIxICs5Mjg0LDIxIEBAIGF2cl9hZGp1c3RfaW5zbl9sZW5ndGggKHJ0eF9pbnNuICpp bnNuLCBpbnQgbGVuKQogICAgIGNhc2UgQURKVVNUX0xFTl9DT01QQVJFOiBhdnJfb3V0X2NvbXBh cmUgKGluc24sIG9wLCAmbGVuKTsgYnJlYWs7CiAgICAgY2FzZSBBREpVU1RfTEVOX0NPTVBBUkU2 NDogYXZyX291dF9jb21wYXJlNjQgKGluc24sIG9wLCAmbGVuKTsgYnJlYWs7CiAKLSAgICBjYXNl IEFESlVTVF9MRU5fTFNIUlFJOiBsc2hycWkzX291dCAoaW5zbiwgb3AsICZsZW4pOyBicmVhazsK LSAgICBjYXNlIEFESlVTVF9MRU5fTFNIUkhJOiBsc2hyaGkzX291dCAoaW5zbiwgb3AsICZsZW4p OyBicmVhazsKLSAgICBjYXNlIEFESlVTVF9MRU5fTFNIUlNJOiBsc2hyc2kzX291dCAoaW5zbiwg b3AsICZsZW4pOyBicmVhazsKKyAgICBjYXNlIEFESlVTVF9MRU5fTFNIUlFJOiBsc2hycWkzX291 dCAoaW5zbiwgb3AsIG51bW9wcywgJmxlbik7IGJyZWFrOworICAgIGNhc2UgQURKVVNUX0xFTl9M U0hSSEk6IGxzaHJoaTNfb3V0IChpbnNuLCBvcCwgbnVtb3BzLCAmbGVuKTsgYnJlYWs7CisgICAg Y2FzZSBBREpVU1RfTEVOX0xTSFJTSTogbHNocnNpM19vdXQgKGluc24sIG9wLCBudW1vcHMsICZs ZW4pOyBicmVhazsKIAotICAgIGNhc2UgQURKVVNUX0xFTl9BU0hSUUk6IGFzaHJxaTNfb3V0IChp bnNuLCBvcCwgJmxlbik7IGJyZWFrOwotICAgIGNhc2UgQURKVVNUX0xFTl9BU0hSSEk6IGFzaHJo aTNfb3V0IChpbnNuLCBvcCwgJmxlbik7IGJyZWFrOwotICAgIGNhc2UgQURKVVNUX0xFTl9BU0hS U0k6IGFzaHJzaTNfb3V0IChpbnNuLCBvcCwgJmxlbik7IGJyZWFrOworICAgIGNhc2UgQURKVVNU X0xFTl9BU0hSUUk6IGFzaHJxaTNfb3V0IChpbnNuLCBvcCwgbnVtb3BzLCAmbGVuKTsgYnJlYWs7 CisgICAgY2FzZSBBREpVU1RfTEVOX0FTSFJISTogYXNocmhpM19vdXQgKGluc24sIG9wLCBudW1v cHMsICZsZW4pOyBicmVhazsKKyAgICBjYXNlIEFESlVTVF9MRU5fQVNIUlNJOiBhc2hyc2kzX291 dCAoaW5zbiwgb3AsIG51bW9wcywgICZsZW4pOyBicmVhazsKIAotICAgIGNhc2UgQURKVVNUX0xF Tl9BU0hMUUk6IGFzaGxxaTNfb3V0IChpbnNuLCBvcCwgJmxlbik7IGJyZWFrOwotICAgIGNhc2Ug QURKVVNUX0xFTl9BU0hMSEk6IGFzaGxoaTNfb3V0IChpbnNuLCBvcCwgJmxlbik7IGJyZWFrOwot ICAgIGNhc2UgQURKVVNUX0xFTl9BU0hMU0k6IGFzaGxzaTNfb3V0IChpbnNuLCBvcCwgJmxlbik7 IGJyZWFrOworICAgIGNhc2UgQURKVVNUX0xFTl9BU0hMUUk6IGFzaGxxaTNfb3V0IChpbnNuLCBv cCwgbnVtb3BzLCAmbGVuKTsgYnJlYWs7CisgICAgY2FzZSBBREpVU1RfTEVOX0FTSExISTogYXNo bGhpM19vdXQgKGluc24sIG9wLCBudW1vcHMsICZsZW4pOyBicmVhazsKKyAgICBjYXNlIEFESlVT VF9MRU5fQVNITFNJOiBhc2hsc2kzX291dCAoaW5zbiwgb3AsIG51bW9wcywgJmxlbik7IGJyZWFr OwogCi0gICAgY2FzZSBBREpVU1RfTEVOX0FTSExQU0k6IGF2cl9vdXRfYXNobHBzaTMgKGluc24s IG9wLCAmbGVuKTsgYnJlYWs7Ci0gICAgY2FzZSBBREpVU1RfTEVOX0FTSFJQU0k6IGF2cl9vdXRf YXNocnBzaTMgKGluc24sIG9wLCAmbGVuKTsgYnJlYWs7Ci0gICAgY2FzZSBBREpVU1RfTEVOX0xT SFJQU0k6IGF2cl9vdXRfbHNocnBzaTMgKGluc24sIG9wLCAmbGVuKTsgYnJlYWs7CisgICAgY2Fz ZSBBREpVU1RfTEVOX0FTSExQU0k6IGF2cl9vdXRfYXNobHBzaTMgKGluc24sIG9wLCBudW1vcHMs ICZsZW4pOyBicmVhazsKKyAgICBjYXNlIEFESlVTVF9MRU5fQVNIUlBTSTogYXZyX291dF9hc2hy cHNpMyAoaW5zbiwgb3AsIG51bW9wcywgJmxlbik7IGJyZWFrOworICAgIGNhc2UgQURKVVNUX0xF Tl9MU0hSUFNJOiBhdnJfb3V0X2xzaHJwc2kzIChpbnNuLCBvcCwgbnVtb3BzLCAmbGVuKTsgYnJl YWs7CiAKICAgICBjYXNlIEFESlVTVF9MRU5fQ0FMTDogbGVuID0gQVZSX0hBVkVfSk1QX0NBTEwg PyAyIDogMTsgYnJlYWs7CiAKQEAgLTk2MTksNiArOTQ5MiwxOCBAQCBhdnJfYXNzZW1ibGVfaW50 ZWdlciAocnR4IHgsIHVuc2lnbmVkIGludCBzaXplLCBpbnQgYWxpZ25lZF9wKQogICByZXR1cm4g ZGVmYXVsdF9hc3NlbWJsZV9pbnRlZ2VyICh4LCBzaXplLCBhbGlnbmVkX3ApOwogfQogCisvKiBJ bXBsZW1lbnQgVEFSR0VUX0NMQVNTX01BWF9OUkVHUy4gUmVhc29ucyBkZXNjcmliZWQgaW4gY29t bWVudHMgZm9yCisgICBhdnJfaGFyZF9yZWdub19ucmVncy4gKi8KKworc3RhdGljIHVuc2lnbmVk IGNoYXIKK2F2cl9jbGFzc19tYXhfbnJlZ3MgKHJlZ19jbGFzc190IHJjbGFzcywgbWFjaGluZV9t b2RlIG1vZGUpCit7CisgIGlmIChyY2xhc3MgPT0gQ0NfUkVHICYmIG1vZGUgPT0gQ0Ntb2RlKQor CXJldHVybiAxOworCisgIHJldHVybiBDRUlMIChHRVRfTU9ERV9TSVpFIChtb2RlKSwgVU5JVFNf UEVSX1dPUkQpOworfQorCiAKIC8qIEltcGxlbWVudCBgVEFSR0VUX0NMQVNTX0xJS0VMWV9TUElM TEVEX1AnLiAgKi8KIC8qIFJldHVybiB2YWx1ZSBpcyBub256ZXJvIGlmIHBzZXVkb3MgdGhhdCBo YXZlIGJlZW4KQEAgLTExNzE5LDcgKzExNjA0LDcgQEAgYXZyX2NvbXBhcmVfcGF0dGVybiAocnR4 X2luc24gKmluc24pCiAKICAgaWYgKHBhdHRlcm4KICAgICAgICYmIE5PTkpVTVBfSU5TTl9QIChp bnNuKQotICAgICAgJiYgU0VUX0RFU1QgKHBhdHRlcm4pID09IGNjMF9ydHgKKyAgICAgICYmIFNF VF9ERVNUIChwYXR0ZXJuKSA9PSBjY19yZWdfcnR4CiAgICAgICAmJiBHRVRfQ09ERSAoU0VUX1NS QyAocGF0dGVybikpID09IENPTVBBUkUpCiAgICAgewogICAgICAgbWFjaGluZV9tb2RlIG1vZGUw ID0gR0VUX01PREUgKFhFWFAgKFNFVF9TUkMgKHBhdHRlcm4pLCAwKSk7CkBAIC0xMTgyMiw4ICsx MTcwNyw4IEBAIGF2cl9yZW9yZ19yZW1vdmVfcmVkdW5kYW50X2NvbXBhcmUgKHJ0eF9pbnNuICpp bnNuMSkKICAgICAgIHx8IExBQkVMX1JFRiAhPSBHRVRfQ09ERSAoWEVYUCAoaWZlbHNlMSwgMSkp CiAgICAgICB8fCBMQUJFTF9SRUYgIT0gR0VUX0NPREUgKFhFWFAgKGlmZWxzZTIsIDEpKQogICAg ICAgfHwgIUNPTVBBUklTT05fUCAoWEVYUCAoaWZlbHNlMiwgMCkpCi0gICAgICB8fCBjYzBfcnR4 ICE9IFhFWFAgKFhFWFAgKGlmZWxzZTEsIDApLCAwKQotICAgICAgfHwgY2MwX3J0eCAhPSBYRVhQ IChYRVhQIChpZmVsc2UyLCAwKSwgMCkKKyAgICAgIHx8IGNjX3JlZ19ydHggIT0gWEVYUCAoWEVY UCAoaWZlbHNlMSwgMCksIDApCisgICAgICB8fCBjY19yZWdfcnR4ICE9IFhFWFAgKFhFWFAgKGlm ZWxzZTIsIDApLCAwKQogICAgICAgfHwgY29uc3QwX3J0eCAhPSBYRVhQIChYRVhQIChpZmVsc2Ux LCAwKSwgMSkKICAgICAgIHx8IGNvbnN0MF9ydHggIT0gWEVYUCAoWEVYUCAoaWZlbHNlMiwgMCks IDEpKQogICAgIHsKQEAgLTExODkzLDcgKzExNzc4LDcgQEAgYXZyX3Jlb3JnX3JlbW92ZV9yZWR1 bmRhbnRfY29tcGFyZSAocnR4X2luc24gKmluc24xKQogICBKVU1QX0xBQkVMIChqdW1wKSA9IEpV TVBfTEFCRUwgKGJyYW5jaDEpOwogCiAgIHRhcmdldCA9IFhFWFAgKFhFWFAgKGlmZWxzZTIsIDEp LCAwKTsKLSAgY29uZCA9IGdlbl9ydHhfZm10X2VlIChjb2RlLCBWT0lEbW9kZSwgY2MwX3J0eCwg Y29uc3QwX3J0eCk7CisgIGNvbmQgPSBnZW5fcnR4X2ZtdF9lZSAoY29kZSwgVk9JRG1vZGUsIGNj X3JlZ19ydHgsIGNvbnN0MF9ydHgpOwogICBqdW1wID0gZW1pdF9qdW1wX2luc25fYWZ0ZXIgKGdl bl9icmFuY2hfdW5zcGVjICh0YXJnZXQsIGNvbmQpLCBpbnNuMik7CiAKICAgSlVNUF9MQUJFTCAo anVtcCkgPSBKVU1QX0xBQkVMIChicmFuY2gyKTsKQEAgLTEyMTE5LDYgKzEyMDA0LDIyIEBAIGp1 bXBfb3Zlcl9vbmVfaW5zbl9wIChydHhfaW5zbiAqaW5zbiwgcnR4IGRlc3QpCiAgICAgICAgICAg ICAgICYmIGF2cl8yd29yZF9pbnNuX3AgKG5leHRfYWN0aXZlX2luc24gKGluc24pKSkpOwogfQog CisvKiBJbXBsZW1lbnQgVEFSR0VUX0hBUkRfUkVHTk9fTlJFR1MuIENDbW9kZSBpcyBmb3VyIHVu aXRzIGZvciBoaXN0b3JpY2FsCisgICByZWFzb25zLiBJZiB0aGlzIGhvb2sgaXMgbm90IGRlZmlu ZWQsIFRBUkdFVF9IQVJEX1JFR05PX05SRUdTCisgICByZXBvcnRzIHRoYXQgQ0Ntb2RlIHJlcXVp cmVzIGZvdXIgcmVnaXN0ZXJzLgorICAgRGVmaW5lIHRoaXMgaG9vayB0byBhbGxvdyBDQ21vZGUg dG8gZml0IGluIGEgc2luZ2xlIFJFR19DQy4gRm9yCisgICBvdGhlciBtb2RlcyBhbmQgcmVncywg cmV0dXJuIHRoZSBudW1iZXIgb2Ygd29yZHMgaW4gbW9kZSAoaS5lIHdoYXRldmVyCisgICB0aGUg ZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaG9vayByZXR1cm5lZCkuICovCisKK3N0YXRp YyB1bnNpZ25lZCBpbnQKK2F2cl9oYXJkX3JlZ25vX25yZWdzICh1bnNpZ25lZCBpbnQgcmVnbm8s IG1hY2hpbmVfbW9kZSBtb2RlKQoreworICBpZiAocmVnbm8gPT0gUkVHX0NDICYmIG1vZGUgPT0g Q0Ntb2RlKQorICAgIHJldHVybiAxOworCisgIHJldHVybiBDRUlMIChHRVRfTU9ERV9TSVpFICht b2RlKSwgVU5JVFNfUEVSX1dPUkQpOworfQorCiAKIC8qIEltcGxlbWVudCBUQVJHRVRfSEFSRF9S RUdOT19NT0RFX09LLiAgT24gdGhlIGVuaGFuY2VkIGNvcmUsIGFueXRoaW5nCiAgICBsYXJnZXIg dGhhbiAxIGJ5dGUgbXVzdCBzdGFydCBpbiBldmVuIG51bWJlcmVkIHJlZ2lzdGVyIGZvciAibW92 dyIgdG8KQEAgLTE0NjY5LDYgKzE0NTcwLDkgQEAgYXZyX2Zsb2F0X2xpYl9jb21wYXJlX3JldHVy bnNfYm9vbCAobWFjaGluZV9tb2RlIG1vZGUsIGVudW0gcnR4X2NvZGUpCiAjdW5kZWYgVEFSR0VU X0NPTkRJVElPTkFMX1JFR0lTVEVSX1VTQUdFCiAjZGVmaW5lIFRBUkdFVF9DT05ESVRJT05BTF9S RUdJU1RFUl9VU0FHRSBhdnJfY29uZGl0aW9uYWxfcmVnaXN0ZXJfdXNhZ2UKIAorI3VuZGVmIFRB UkdFVF9IQVJEX1JFR05PX05SRUdTCisjZGVmaW5lIFRBUkdFVF9IQVJEX1JFR05PX05SRUdTIGF2 cl9oYXJkX3JlZ25vX25yZWdzCisKICN1bmRlZiAgVEFSR0VUX0hBUkRfUkVHTk9fTU9ERV9PSwog I2RlZmluZSBUQVJHRVRfSEFSRF9SRUdOT19NT0RFX09LIGF2cl9oYXJkX3JlZ25vX21vZGVfb2sK ICN1bmRlZiAgVEFSR0VUX0hBUkRfUkVHTk9fU0NSQVRDSF9PSwpAQCAtMTQ2OTQsNiArMTQ1OTgs OSBAQCBhdnJfZmxvYXRfbGliX2NvbXBhcmVfcmV0dXJuc19ib29sIChtYWNoaW5lX21vZGUgbW9k ZSwgZW51bSBydHhfY29kZSkKICN1bmRlZiAgVEFSR0VUX0NMQVNTX0xJS0VMWV9TUElMTEVEX1AK ICNkZWZpbmUgVEFSR0VUX0NMQVNTX0xJS0VMWV9TUElMTEVEX1AgYXZyX2NsYXNzX2xpa2VseV9z cGlsbGVkX3AKIAorI3VuZGVmICBUQVJHRVRfQ0xBU1NfTUFYX05SRUdTCisjZGVmaW5lIFRBUkdF VF9DTEFTU19NQVhfTlJFR1MgYXZyX2NsYXNzX21heF9ucmVncworCiAjdW5kZWYgIFRBUkdFVF9P UFRJT05fT1ZFUlJJREUKICNkZWZpbmUgVEFSR0VUX09QVElPTl9PVkVSUklERSBhdnJfb3B0aW9u X292ZXJyaWRlCiAKZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXZyL2F2ci5oIGIvZ2NjL2NvbmZp Zy9hdnIvYXZyLmgKaW5kZXggYzcyM2I4YWFlZWIuLmM2MjE0NGYxMjMzIDEwMDY0NAotLS0gYS9n Y2MvY29uZmlnL2F2ci9hdnIuaAorKysgYi9nY2MvY29uZmlnL2F2ci9hdnIuaApAQCAtMTU1LDcg KzE1NSw3IEBAIEZJWE1FOiBEUklWRVJfU0VMRl9TUEVDUyBoYXMgY2hhbmdlZC4KIAogI2RlZmlu ZSBXQ0hBUl9UWVBFX1NJWkUgMTYKIAotI2RlZmluZSBGSVJTVF9QU0VVRE9fUkVHSVNURVIgMzYK KyNkZWZpbmUgRklSU1RfUFNFVURPX1JFR0lTVEVSIDM3CiAKICNkZWZpbmUgR0VORVJBTF9SRUdO T19QKE4pCUlOX1JBTkdFIChOLCAyLCAzMSkKICNkZWZpbmUgR0VORVJBTF9SRUdfUChYKQkoUkVH X1AgKFgpICYmIEdFTkVSQUxfUkVHTk9fUCAoUkVHTk8gKFgpKSkKQEAgLTE3OCw3ICsxNzgsOCBA QCBGSVhNRTogRFJJVkVSX1NFTEZfU1BFQ1MgaGFzIGNoYW5nZWQuCiAgIDAsMCwvKiByMjggcjI5 ICovXAogICAwLDAsLyogcjMwIHIzMSAqL1wKICAgMSwxLC8qICBTVEFDSyAqL1wKLSAgMSwxIC8q IGFyZyBwb2ludGVyICovICB9CisgIDEsMSwgLyogYXJnIHBvaW50ZXIgKi8JCQkJCQlcCisgIDEg LyogQ0MgKi8gfQogCiAjZGVmaW5lIENBTExfVVNFRF9SRUdJU1RFUlMgewkJCVwKICAgMSwxLC8q IHIwIHIxICovCQkJCVwKQEAgLTE5OCw3ICsxOTksOCBAQCBGSVhNRTogRFJJVkVSX1NFTEZfU1BF Q1MgaGFzIGNoYW5nZWQuCiAgICAgMCwwLC8qIHIyOCByMjkgKi8JCQkJXAogICAgIDEsMSwvKiBy MzAgcjMxICovCQkJCVwKICAgICAxLDEsLyogIFNUQUNLICovCQkJCVwKLSAgICAxLDEgLyogYXJn IHBvaW50ZXIgKi8gIH0KKyAgICAxLDEsIC8qIGFyZyBwb2ludGVyICovCQkJXAorICAgIDEgLyog Q0MgKi8gfQogCiAjZGVmaW5lIFJFR19BTExPQ19PUkRFUiB7CQkJXAogICAgIDI0LDI1LAkJCQkJ XApAQCAtMjEwLDcgKzIxMiw3IEBAIEZJWE1FOiBEUklWRVJfU0VMRl9TUEVDUyBoYXMgY2hhbmdl ZC4KICAgICAyOCwyOSwJCQkJCVwKICAgICAxNywxNiwxNSwxNCwxMywxMiwxMSwxMCw5LDgsNyw2 LDUsNCwzLDIsCVwKICAgICAwLDEsCQkJCQlcCi0gICAgMzIsMzMsMzQsMzUJCQkJCVwKKyAgICAz MiwzMywzNCwzNSwzNgkJCVwKICAgICB9CiAKICNkZWZpbmUgQURKVVNUX1JFR19BTExPQ19PUkRF UiBhdnJfYWRqdXN0X3JlZ19hbGxvY19vcmRlcigpCkBAIC0yMzAsNiArMjMyLDcgQEAgZW51bSBy ZWdfY2xhc3MgewogICBMRF9SRUdTLAkJCS8qIHIxNiAtIHIzMSAqLwogICBOT19MRF9SRUdTLAkJ CS8qIHIwIC0gcjE1ICovCiAgIEdFTkVSQUxfUkVHUywJCQkvKiByMCAtIHIzMSAqLworICBDQ19S RUcsCQkJLyogQ0MgKi8KICAgQUxMX1JFR1MsIExJTV9SRUdfQ0xBU1NFUwogfTsKIApAQCAtMjUw LDYgKzI1Myw3IEBAIGVudW0gcmVnX2NsYXNzIHsKIAkJICAgIkxEX1JFR1MiLAkvKiByMTYgLSBy MzEgKi8JCQlcCiAgICAgICAgICAgICAgICAgICAgIk5PX0xEX1JFR1MiLCAvKiByMCAtIHIxNSAq LyAgICAgICAgICAgICAgICAgXAogCQkgICAiR0VORVJBTF9SRUdTIiwgLyogcjAgLSByMzEgKi8J CVwKKwkJICAgIkNDX1JFRyIsIC8qIENDICovCQlcCiAJCSAgICJBTExfUkVHUyIgfQogCiAjZGVm aW5lIFJFR19DTEFTU19DT05URU5UUyB7CQkJCQkJXApAQCAtMjcwLDcgKzI3NCw4IEBAIGVudW0g cmVnX2NsYXNzIHsKICAgICAgMHgwMDAwMDAwMH0sCS8qIExEX1JFR1MsIHIxNiAtIHIzMSAqLwkJ CVwKICAgezB4MDAwMGZmZmYsMHgwMDAwMDAwMH0sCS8qIE5PX0xEX1JFR1MgIHIwIC0gcjE1ICov ICAgICAgICAgICAgICBcCiAgIHsweGZmZmZmZmZmLDB4MDAwMDAwMDB9LAkvKiBHRU5FUkFMX1JF R1MsIHIwIC0gcjMxICovCQlcCi0gIHsweGZmZmZmZmZmLDB4MDAwMDAwMDN9CS8qIEFMTF9SRUdT ICovCQkJCVwKKyAgezB4MDAwMDAwMDAsMHgwMDAwMDAxMH0sCS8qIENDICovCQkJCVwKKyAgezB4 ZmZmZmZmZmYsMHgwMDAwMDAxM30JLyogQUxMX1JFR1MgKi8JCQkJXAogfQogCiAjZGVmaW5lIFJF R05PX1JFR19DTEFTUyhSKSBhdnJfcmVnbm9fcmVnX2NsYXNzKFIpCkBAIC00MjksNyArNDM0LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgYXZyX2FyZ3MKICAgICAicjgiLCJyOSIsInIxMCIsInIxMSIsInIx MiIsInIxMyIsInIxNCIsInIxNSIsCVwKICAgICAicjE2IiwicjE3IiwicjE4IiwicjE5IiwicjIw IiwicjIxIiwicjIyIiwicjIzIiwJXAogICAgICJyMjQiLCJyMjUiLCJyMjYiLCJyMjciLCJyMjgi LCJyMjkiLCJyMzAiLCJyMzEiLAlcCi0gICAgIl9fU1BfTF9fIiwiX19TUF9IX18iLCJhcmdMIiwi YXJnSCJ9CisgICAgIl9fU1BfTF9fIiwiX19TUF9IX18iLCJhcmdMIiwiYXJnSCIsICJDQyJ9CiAK ICNkZWZpbmUgRklOQUxfUFJFU0NBTl9JTlNOKGluc24sIG9wZXJhbmQsIG5vcCkgIFwKICAgYXZy X2ZpbmFsX3ByZXNjYW5faW5zbiAoaW5zbiwgb3BlcmFuZCxub3ApCkBAIC00ODQsMTMgKzQ4OSw2 IEBAIHR5cGVkZWYgc3RydWN0IGF2cl9hcmdzCiAKICNkZWZpbmUgVFJBTVBPTElORV9TSVpFIDQK IAotLyogU3RvcmUgaW4gY2Nfc3RhdHVzIHRoZSBleHByZXNzaW9ucwotICAgdGhhdCB0aGUgY29u ZGl0aW9uIGNvZGVzIHdpbGwgZGVzY3JpYmUKLSAgIGFmdGVyIGV4ZWN1dGlvbiBvZiBhbiBpbnN0 cnVjdGlvbiB3aG9zZSBwYXR0ZXJuIGlzIEVYUC4KLSAgIERvIG5vdCBhbHRlciB0aGVtIGlmIHRo ZSBpbnN0cnVjdGlvbiB3b3VsZCBub3QgYWx0ZXIgdGhlIGNjJ3MuICAqLwotCi0jZGVmaW5lIE5P VElDRV9VUERBVEVfQ0MoRVhQLCBJTlNOKSBhdnJfbm90aWNlX3VwZGF0ZV9jYyAoRVhQLCBJTlNO KQotCiAvKiBUaGUgYWRkIGluc25zIGRvbid0IHNldCBvdmVyZmxvdyBpbiBhIHVzYWJsZSB3YXku ICAqLwogI2RlZmluZSBDQ19PVkVSRkxPV19VTlVTQUJMRSAwMTAwMAogLyogVGhlIG1vdixhbmQs b3IseG9yIGluc25zIGRvbid0IHNldCBjYXJyeS4gIFRoYXQncyBvayB0aG91Z2ggYXMgdGhlCkBA IC01MDAsNyArNDk4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgYXZyX2FyZ3MKICAgIHVuZGVyc3RhbmRh YmxlLiAgKi8KICNkZWZpbmUgQ0NfTk9fQ0FSUlkgQ0NfTk9fT1ZFUkZMT1cKIAotCiAvKiBPdXRw dXQgYXNzZW1ibGVyIGNvZGUgdG8gRklMRSB0byBpbmNyZW1lbnQgcHJvZmlsZXIgbGFiZWwgIyBM QUJFTE5PCiAgICBmb3IgcHJvZmlsaW5nIGEgZnVuY3Rpb24gZW50cnkuICAqLwogCmRpZmYgLS1n aXQgYS9nY2MvY29uZmlnL2F2ci9hdnIubWQgYi9nY2MvY29uZmlnL2F2ci9hdnIubWQKaW5kZXgg NDFlYjc4Yzk4NTUuLjFhNzk3NTk5NThmIDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2F2ci9hdnIu bWQKKysrIGIvZ2NjL2NvbmZpZy9hdnIvYXZyLm1kCkBAIC01OCw2ICs1OCw3IEBACiAgICAoUkVH X1ogICAgICAgMzApCiAgICAoUkVHX1cgICAgICAgMjQpCiAgICAoUkVHX1NQICAgICAgMzIpCisg ICAoUkVHX0NDICAgICAgMzYpCiAgICAoTFBNX1JFR05PICAgMCkgICAgICA7IGltcGxpY2l0IHRh cmdldCByZWdpc3RlciBvZiBMUE0KICAgIChUTVBfUkVHTk8gICAwKSAgICAgIDsgdGVtcG9yYXJ5 IHJlZ2lzdGVyIHIwCiAgICAoWkVST19SRUdOTyAgMSkgICAgICA7IHplcm8gcmVnaXN0ZXIgcjEK QEAgLTQ1OSw3ICs0NjAsOCBAQAogICAicmVsb2FkX2NvbXBsZXRlZAogICAgJiYgZnJhbWVfcG9p bnRlcl9uZWVkZWQKICAgICYmICFjZnVuLT5jYWxsc19hbGxvY2EKLSAgICYmIGZpbmRfcmVnX25v dGUgKGluc24sIFJFR19BUkdTX1NJWkUsIGNvbnN0MF9ydHgpIgorICAgJiYgZmluZF9yZWdfbm90 ZSAoaW5zbiwgUkVHX0FSR1NfU0laRSwgY29uc3QwX3J0eCkKKyAgICYmIFJFR05PIChvcGVyYW5k c1swXSkgIT0gUkVHX1kiCiAgIFsoc2V0IChyZWc6SEkgUkVHX1NQKQogICAgICAgICAocmVnOkhJ IFJFR19ZKSldKQogCkBAIC00OTEsMTkgKzQ5MywzMiBAQAogOzsgImxvYWRfcHNpX2xpYmdjYyIK IDs7ICJsb2FkX3NpX2xpYmdjYyIKIDs7ICJsb2FkX3NmX2xpYmdjYyIKLShkZWZpbmVfaW5zbiAi bG9hZF88bW9kZT5fbGliZ2NjIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAibG9hZF88bW9kZT5f bGliZ2NjIgogICBbKHNldCAocmVnOk1PVk1PREUgMjIpCiAgICAgICAgIChtYXRjaF9vcGVyYW5k Ok1PVk1PREUgMCAibWVtb3J5X29wZXJhbmQiICJtLG0iKSldCiAgICJhdnJfbG9hZF9saWJnY2Nf cCAob3BlcmFuZHNbMF0pCiAgICAmJiBSRUdfUCAoWEVYUCAob3BlcmFuZHNbMF0sIDApKQogICAg JiYgUkVHX1ogPT0gUkVHTk8gKFhFWFAgKG9wZXJhbmRzWzBdLCAwKSkiCisgICIjIgorICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOk1PVk1PREUgMjIpCisg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMCkpCisgICAgICAgICAgICAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmxvYWRfPG1vZGU+X2xpYmdj YyIKKyAgWyhzZXQgKHJlZzpNT1ZNT0RFIDIyKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpNT1ZN T0RFIDAgIm1lbW9yeV9vcGVyYW5kIiAibSxtIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXQorICAiYXZyX2xvYWRfbGliZ2NjX3AgKG9wZXJhbmRzWzBdKQorICAgJiYgUkVHX1AgKFhF WFAgKG9wZXJhbmRzWzBdLCAwKSkKKyAgICYmIFJFR19aID09IFJFR05PIChYRVhQIChvcGVyYW5k c1swXSwgMCkpCisgICAmJiByZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgb3BlcmFuZHNbMF0g PSBHRU5fSU5UIChHRVRfTU9ERV9TSVpFICg8TU9ERT5tb2RlKSk7CiAgICAgcmV0dXJuICIlfmNh bGwgX19sb2FkXyUwIjsKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICIxLDIiKQotICAgKHNl dF9hdHRyICJpc2EiICJyam1wLGptcCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkK KyAgIChzZXRfYXR0ciAiaXNhIiAicmptcCxqbXAiKV0pCiAKIAogOzsgInhsb2FkOHFpX0EiCkBA IC01OTEsOCArNjA2LDcgQEAKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICI0LDQiKQogICAg KHNldF9hdHRyICJhZGp1c3RfbGVuIiAiKix4bG9hZCIpCi0gICAoc2V0X2F0dHIgImlzYSIgImxw bXgsbHBtIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICAgKHNldF9hdHRyICJpc2Ei ICJscG14LGxwbSIpXSkKIAogOzsgUjIxOlogOiAyNC1iaXQgc291cmNlIGFkZHJlc3MKIDs7IFIy MiAgIDogMS00IGJ5dGUgb3V0cHV0CkBAIC02MDIsMjEgKzYxNiwzNSBAQAogOzsgInhsb2FkX3Np X2xpYmdjYyIgInhsb2FkX3NxX2xpYmdjYyIgInhsb2FkX3VzcV9saWJnY2MiICJ4bG9hZF9zYV9s aWJnY2MiICJ4bG9hZF91c2FfbGliZ2NjIgogOzsgInhsb2FkX3NmX2xpYmdjYyIKIDs7ICJ4bG9h ZF9wc2lfbGliZ2NjIgotKGRlZmluZV9pbnNuICJ4bG9hZF88bW9kZT5fbGliZ2NjIgorCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICJ4bG9hZF88bW9kZT5fbGliZ2NjIgogICBbKHNldCAocmVnOk1P Vk1PREUgMjIpCiAgICAgICAgIChtZW06TU9WTU9ERSAobG9fc3VtOlBTSSAocmVnOlFJIDIxKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlZzpISSBSRUdfWikpKSkKICAgIChj bG9iYmVyIChyZWc6UUkgMjEpKQogICAgKGNsb2JiZXIgKHJlZzpISSBSRUdfWikpXQogICAiYXZy X3hsb2FkX2xpYmdjY19wICg8TU9ERT5tb2RlKSIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6TU9WTU9ERSAyMikKKyAgICAgICAgICAgICAg KG1lbTpNT1ZNT0RFIChsb19zdW06UFNJIChyZWc6UUkgMjEpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAocmVnOkhJIFJFR19aKSkpKQorICAgICAgICAgICAgICAoY2xv YmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIip4bG9hZF88bW9kZT5f bGliZ2NjIgorICBbKHNldCAocmVnOk1PVk1PREUgMjIpCisgICAgICAgIChtZW06TU9WTU9ERSAo bG9fc3VtOlBTSSAocmVnOlFJIDIxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHJlZzpISSBSRUdfWikpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJhdnJf eGxvYWRfbGliZ2NjX3AgKDxNT0RFPm1vZGUpCisgICAmJiByZWxvYWRfY29tcGxldGVkIgogICB7 CiAgICAgcnR4IHhfYnl0ZXMgPSBHRU5fSU5UIChHRVRfTU9ERV9TSVpFICg8TU9ERT5tb2RlKSk7 CiAKICAgICBvdXRwdXRfYXNtX2luc24gKCIlfmNhbGwgX194bG9hZF8lMCIsICZ4X2J5dGVzKTsK ICAgICByZXR1cm4gIiI7CiAgIH0KLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChz ZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0p CiAKIAogOzsgR2VuZXJhbCBtb3ZlIGV4cGFuZGVycwpAQCAtNjk2LDE3ICs3MjQsMjkgQEAKIAog OzsgIm1vdnFpX2luc24iCiA7OyAibW92cXFfaW5zbiIgIm1vdnVxcV9pbnNuIgotKGRlZmluZV9p bnNuICJtb3Y8bW9kZT5faW5zbiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIm1vdjxtb2RlPl9p bnNuIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEwxIDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5k IiAiPXIgICAgLGQgICAgLFFtICAgLHIgLHEsciwqciIpCiAgICAgICAgIChtYXRjaF9vcGVyYW5k OkFMTDEgMSAibm94X2dlbmVyYWxfb3BlcmFuZCIgICAiciBZMDAsbiBZbm4sciBZMDAsUW0scixx LGkiKSldCiAgICJyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgPE1PREU+bW9kZSkKICAg ICB8fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5kc1sxXSwgPE1PREU+bW9kZSkiCisgICIjIgor ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp CisgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbW92PG1vZGU+X2luc24i CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDEgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9 ciAgICAsZCAgICAsUW0gICAsciAscSxyLCpyIikKKyAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxM MSAxICJub3hfZ2VuZXJhbF9vcGVyYW5kIiAgICJyIFkwMCxuIFlubixyIFkwMCxRbSxyLHEsaSIp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIihyZWdpc3Rlcl9vcGVyYW5kIChv cGVyYW5kc1swXSwgPE1PREU+bW9kZSkKKyAgICB8fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5k c1sxXSwgPE1PREU+bW9kZSkpCisgICAmJiByZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0 dXJuIG91dHB1dF9tb3ZxaSAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjEsMSw1LDUsMSwxLDQiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAi bW92OCIpCi0gICAoc2V0X2F0dHIgImNjIiAibGRpLG5vbmUsY2xvYmJlcixjbG9iYmVyLG5vbmUs bm9uZSxjbG9iYmVyIildKQorICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAibW92OCIpXSkKIAog OzsgVGhpcyBpcyB1c2VkIGluIHBlZXBob2xlMiB0byBvcHRpbWl6ZSBsb2FkaW5nIGltbWVkaWF0 ZSBjb25zdGFudHMKIDs7IGlmIGEgc2NyYXRjaCByZWdpc3RlciBmcm9tIExEX1JFR1MgaGFwcGVu cyB0byBiZSBhdmFpbGFibGUuCkBAIC03MjAsOCArNzYwLDcgQEAKICAgInJlbG9hZF9jb21wbGV0 ZWQiCiAgICJsZGkgJTIsbG84KCUxKQogCW1vdiAlMCwlMiIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiMiIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiMiIpXSkKIAogKGRlZmluZV9wZWVwaG9sZTIKICAgWyhtYXRjaF9zY3JhdGNoOlFJIDIgImQi KQpAQCAtNzU5LDggKzc5OCw3IEBACiAJb3V0ICVBMCwlQTEKIAlvdXQgJUEwLCVBMVw7b3V0ICVC MCwlQjEiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsNCw1LDEsMiIpCi0gICAoc2V0X2F0dHIg ImlzYSIgIm5vX3htZWdhLG5vX3htZWdhLG5vX3htZWdhLCoseG1lZ2EiKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUiKV0pCisgICAoc2V0X2F0dHIgImlzYSIgIm5vX3htZWdhLG5vX3htZWdhLG5v X3htZWdhLCoseG1lZ2EiKV0pCiAKIChkZWZpbmVfcGVlcGhvbGUyCiAgIFsobWF0Y2hfc2NyYXRj aDpRSSAyICJkIikKQEAgLTc2OSw3ICs4MDcsOCBAQAogICAib3BlcmFuZHNbMV0gIT0gQ09OU1Qw X1JUWCAoPE1PREU+bW9kZSkiCiAgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQogICAg ICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMSkpCi0gICAgICAgICAgICAgIChjbG9iYmVyICht YXRjaF9kdXAgMikpXSldKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDIpKQor ICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQogCiA7OyAnKicgYmVj YXVzZSBpdCBpcyBub3QgdXNlZCBpbiBydGwgZ2VuZXJhdGlvbiwgb25seSBpbiBhYm92ZSBwZWVw aG9sZQogOzsgIipyZWxvYWRfaW5oaSIKQEAgLTc3OCwyOSArODE3LDQxIEBACiAoZGVmaW5lX2lu c24gIipyZWxvYWRfaW48bW9kZT4iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDIgMCAibF9y ZWdpc3Rlcl9vcGVyYW5kIiAgIj1sIikKICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJp bW1lZGlhdGVfb3BlcmFuZCIgICAgImkiKSkKLSAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOlFJ IDIgInJlZ2lzdGVyX29wZXJhbmQiICI9JmQiKSldCisgICAoY2xvYmJlciAobWF0Y2hfb3BlcmFu ZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXQogICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBvdXRwdXRfcmVs b2FkX2luaGkgKG9wZXJhbmRzLCBvcGVyYW5kc1syXSwgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0 ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJyZWxvYWRfaW4xNiIp Ci0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xl biIgInJlbG9hZF9pbjE2IildKQogCiA7OyAiKm1vdmhpIgogOzsgIiptb3ZocSIgIiptb3Z1aHEi CiA7OyAiKm1vdmhhIiAiKm1vdnVoYSIKLShkZWZpbmVfaW5zbiAiKm1vdjxtb2RlPiIKKyhkZWZp bmVfaW5zbl9hbmRfc3BsaXQgIiptb3Y8bW9kZT5fc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkFMTDIgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixyICAscixtICAgICxkLCpyLHEs ciIpCiAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDIgMSAibm94X2dlbmVyYWxfb3BlcmFuZCIg ICAicixZMDAsbSxyIFkwMCxpLGkgLHIscSIpKV0KICAgInJlZ2lzdGVyX29wZXJhbmQgKG9wZXJh bmRzWzBdLCA8TU9ERT5tb2RlKQogICAgfHwgcmVnX29yXzBfb3BlcmFuZCAob3BlcmFuZHNbMV0s IDxNT0RFPm1vZGUpIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxs ZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMSkp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKm1vdjxtb2RlPiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMMiAwICJub25pbW1l ZGlhdGVfb3BlcmFuZCIgIj1yLHIgICxyLG0gICAgLGQsKnIscSxyIikKKyAgICAgICAgKG1hdGNo X29wZXJhbmQ6QUxMMiAxICJub3hfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLFkwMCxtLHIgWTAwLGks aSAscixxIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiKHJlZ2lzdGVyX29w ZXJhbmQgKG9wZXJhbmRzWzBdLCA8TU9ERT5tb2RlKQorICAgIHx8IHJlZ19vcl8wX29wZXJhbmQg KG9wZXJhbmRzWzFdLCA8TU9ERT5tb2RlKSkKKyAgICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgIHsK ICAgICByZXR1cm4gb3V0cHV0X21vdmhpIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0KICAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwyLDYsNywyLDYsNSwyIikKLSAgIChzZXRfYXR0ciAiYWRq dXN0X2xlbiIgIm1vdjE2IikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lLG5vbmUsY2xvYmJlcixj bG9iYmVyLG5vbmUsY2xvYmJlcixub25lLG5vbmUiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9s ZW4iICJtb3YxNiIpXSkKIAogKGRlZmluZV9wZWVwaG9sZTIgOyBtb3Z3CiAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkFMTDEgMCAiZXZlbl9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKQEAgLTg0NCw3ICs4 OTUsMTAgQEAKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SElTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiIikKICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SElTSSAxICJtZW1vcnlfb3BlcmFuZCIgIiIp KV0KICAgInJlbG9hZF9jb21wbGV0ZWQKLSAgICYmIEFWUl9IQVZFX0xQTVgiCisgICAmJiBBVlJf SEFWRV9MUE1YCisgICAmJiBhdnJfbWVtX2ZsYXNoX3AgKG9wZXJhbmRzWzFdKQorICAgJiYgUkVH X1AgKFhFWFAgKG9wZXJhbmRzWzFdLCAwKSkKKyAgICYmICFyZWdfb3ZlcmxhcF9tZW50aW9uZWRf cCAoWEVYUCAob3BlcmFuZHNbMV0sIDApLCBvcGVyYW5kc1swXSkiCiAgIFsoc2V0IChtYXRjaF9k dXAgMCkKICAgICAgICAgKG1hdGNoX2R1cCAyKSkKICAgIChzZXQgKG1hdGNoX2R1cCAzKQpAQCAt ODUzLDEzICs5MDcsNiBAQAogICB7CiAgICAgIHJ0eCBhZGRyID0gWEVYUCAob3BlcmFuZHNbMV0s IDApOwogCi0gICAgIGlmICghYXZyX21lbV9mbGFzaF9wIChvcGVyYW5kc1sxXSkKLSAgICAgICAg IHx8ICFSRUdfUCAoYWRkcikKLSAgICAgICAgIHx8IHJlZ19vdmVybGFwX21lbnRpb25lZF9wIChh ZGRyLCBvcGVyYW5kc1swXSkpCi0gICAgICAgewotICAgICAgICAgRkFJTDsKLSAgICAgICB9Ci0K ICAgICBvcGVyYW5kc1syXSA9IHJlcGxhY2VfZXF1aXZfYWRkcmVzcyAob3BlcmFuZHNbMV0sCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdlbl9ydHhfUE9TVF9JTkMg KFBtb2RlLCBhZGRyKSk7CiAgICAgb3BlcmFuZHNbM10gPSBhZGRyOwpAQCAtODc4LDMzICs5MjUs NDcgQEAKICAgICYmIG9wZXJhbmRzWzFdICE9IGNvbnN0bTFfcnR4IgogICBbKHBhcmFsbGVsIFso c2V0IChtYXRjaF9kdXAgMCkKICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDEpKQotICAg ICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDIpKV0pXSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKG1hdGNoX2R1cCAyKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKIAogOzsgJyonIGJlY2F1c2UgaXQgaXMgbm90IHVzZWQgaW4gcnRsIGdlbmVyYXRp b24uCiAoZGVmaW5lX2luc24gIipyZWxvYWRfaW5wc2kiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogICAgICAgICAobWF0Y2hfb3BlcmFuZDpQ U0kgMSAiaW1tZWRpYXRlX29wZXJhbmQiICJpIikpCi0gICAoY2xvYmJlciAobWF0Y2hfb3BlcmFu ZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPSZkIikpXQorICAgKGNsb2JiZXIgKG1hdGNoX29w ZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mZCIpKQorICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0KICAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291 dF9yZWxvYWRfaW5wc2kgKG9wZXJhbmRzLCBvcGVyYW5kc1syXSwgTlVMTCk7CiAgIH0KICAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiNiIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJyZWxvYWRf aW4yNCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRq dXN0X2xlbiIgInJlbG9hZF9pbjI0IildKQogCi0oZGVmaW5lX2luc24gIiptb3Zwc2kiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqbW92cHNpX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpQU0kgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixyLHIgLFFtLCFkLHIiKQogICAgICAg ICAobWF0Y2hfb3BlcmFuZDpQU0kgMSAibm94X2dlbmVyYWxfb3BlcmFuZCIgICAicixMLFFtLHJM LGkgLGkiKSldCiAgICJyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1swXSwgUFNJbW9kZSkKICAg IHx8IHJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzFdLCBQU0ltb2RlKQogICAgfHwgY29uc3Qw X3J0eCA9PSBvcGVyYW5kc1sxXSIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBb KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobWF0Y2hf ZHVwIDEpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCiso ZGVmaW5lX2luc24gIiptb3Zwc2kiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJub25p bW1lZGlhdGVfb3BlcmFuZCIgIj1yLHIsciAsUW0sIWQsciIpCisgICAgICAgIChtYXRjaF9vcGVy YW5kOlBTSSAxICJub3hfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEwsUW0sckwsaSAsaSIpKQorICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIihyZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5k c1swXSwgUFNJbW9kZSkKKyAgICB8fCByZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1sxXSwgUFNJ bW9kZSkKKyAgICB8fCBjb25zdDBfcnR4ID09IG9wZXJhbmRzWzFdKQorICAgJiYgcmVsb2FkX2Nv bXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X21vdnBzaSAoaW5zbiwgb3BlcmFuZHMs IE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMsMyw4LDksNCwxMCIpCi0gICAo c2V0X2F0dHIgImFkanVzdF9sZW4iICJtb3YyNCIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSxu b25lLGNsb2JiZXIsY2xvYmJlcixub25lLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVz dF9sZW4iICJtb3YyNCIpXSkKIAogOzs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogOzsgbW92ZSBkb3VibGUg d29yZCAoMzIgYml0KQpAQCAtOTE3LDcgKzk3OCw4IEBACiAgICJvcGVyYW5kc1sxXSAhPSBDT05T VDBfUlRYICg8TU9ERT5tb2RlKSIKICAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCiAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAxKSkKLSAgICAgICAgICAgICAgKGNsb2JiZXIg KG1hdGNoX2R1cCAyKSldKV0pCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMikp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCiAKIDs7ICcqJyBi ZWNhdXNlIGl0IGlzIG5vdCB1c2VkIGluIHJ0bCBnZW5lcmF0aW9uLgogOzsgIipyZWxvYWRfaW5z aSIKQEAgLTkyNiw0NSArOTg4LDY5IEBACiAoZGVmaW5lX2luc24gIipyZWxvYWRfaW5zaSIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMNCAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICI9ciIpCiAg ICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDQgMSAiaW1tZWRpYXRlX29wZXJhbmQiICAgIm4gWW5u IikpCi0gICAoY2xvYmJlciAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi PSZkIikpXQorICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgIj0mZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KICAgInJlbG9hZF9jb21w bGV0ZWQiCiAgIHsKICAgICByZXR1cm4gb3V0cHV0X3JlbG9hZF9pbnNpc2YgKG9wZXJhbmRzLCBv cGVyYW5kc1syXSwgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiOCIpCi0gICAo c2V0X2F0dHIgImFkanVzdF9sZW4iICJyZWxvYWRfaW4zMiIpCi0gICAoc2V0X2F0dHIgImNjIiAi Y2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInJlbG9hZF9pbjMyIildKQog CiAKIDs7ICIqbW92c2kiCiA7OyAiKm1vdnNxIiAiKm1vdnVzcSIKIDs7ICIqbW92c2EiICIqbW92 dXNhIgotKGRlZmluZV9pbnNuICIqbW92PG1vZGU+IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi Km1vdjxtb2RlPl9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMNCAwICJub25pbW1l ZGlhdGVfb3BlcmFuZCIgIj1yLHIgICxyICxRbSAgICwhZCxyIikKICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6QUxMNCAxICJub3hfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLFkwMCxRbSxyIFkwMCxpICxp IikpXQogICAicmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUpCiAgICB8 fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5kc1sxXSwgPE1PREU+bW9kZSkiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisg ICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbW92PG1vZGU+IgorICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpBTEw0IDAgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAiPXIsciAgLHIg LFFtICAgLCFkLHIiKQorICAgICAgICAobWF0Y2hfb3BlcmFuZDpBTEw0IDEgIm5veF9nZW5lcmFs X29wZXJhbmQiICAgInIsWTAwLFFtLHIgWTAwLGkgLGkiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldCisgICIocmVnaXN0ZXJfb3BlcmFuZCAob3BlcmFuZHNbMF0sIDxNT0RFPm1vZGUp CisgICAgfHwgcmVnX29yXzBfb3BlcmFuZCAob3BlcmFuZHNbMV0sIDxNT0RFPm1vZGUpKQorICAg JiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBvdXRwdXRfbW92c2lzZiAoaW5z biwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQsNCw4LDks NCwxMCIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJtb3YzMiIpCi0gICAoc2V0X2F0dHIg ImNjIiAibm9uZSxub25lLGNsb2JiZXIsY2xvYmJlcixub25lLGNsb2JiZXIiKV0pCisgICAoc2V0 X2F0dHIgImFkanVzdF9sZW4iICJtb3YzMiIpXSkKIAogOzsgZmZmZmZmZmZmZmZmZmZmZmZmZmZm ZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmYKIDs7IG1vdmUgZmxv YXRpbmcgcG9pbnQgbnVtYmVycyAoMzIgYml0KQogCi0oZGVmaW5lX2luc24gIiptb3ZzZiIKKyhk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptb3ZzZl9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0YgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixyLHIgLFFtLCFkLHIiKQogICAgICAg ICAobWF0Y2hfb3BlcmFuZDpTRiAxICJub3hfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEcsUW0sckcs RiAsRiIpKV0KICAgInJlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBTRm1vZGUpCiAgICB8 fCByZWdfb3JfMF9vcGVyYW5kIChvcGVyYW5kc1sxXSwgU0Ztb2RlKSIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAg ICAgICAgICAgICAgICAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptb3ZzZiIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6U0YgMCAibm9uaW1tZWRpYXRlX29wZXJhbmQiICI9cixyLHIgLFFtLCFkLHIiKQor ICAgICAgICAobWF0Y2hfb3BlcmFuZDpTRiAxICJub3hfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEcs UW0sckcsRiAsRiIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIihyZWdpc3Rl cl9vcGVyYW5kIChvcGVyYW5kc1swXSwgU0Ztb2RlKQorICAgIHx8IHJlZ19vcl8wX29wZXJhbmQg KG9wZXJhbmRzWzFdLCBTRm1vZGUpKQorICAgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAg IHJldHVybiBvdXRwdXRfbW92c2lzZiAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFso c2V0X2F0dHIgImxlbmd0aCIgIjQsNCw4LDksNCwxMCIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9s ZW4iICJtb3YzMiIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSxub25lLGNsb2JiZXIsY2xvYmJl cixub25lLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJtb3YzMiIpXSkK IAogKGRlZmluZV9wZWVwaG9sZTIgOyAqcmVsb2FkX2luc2YKICAgWyhtYXRjaF9zY3JhdGNoOlFJ IDIgImQiKQpAQCAtOTc0LDIwICsxMDYwLDIxIEBACiAgICJvcGVyYW5kc1sxXSAhPSBDT05TVDBf UlRYIChTRm1vZGUpIgogICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfZHVwIDEpKQotICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hf ZHVwIDIpKV0pXSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCAyKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKIAogOzsgJyonIGJlY2F1c2Ug aXQgaXMgbm90IHVzZWQgaW4gcnRsIGdlbmVyYXRpb24uCiAoZGVmaW5lX2luc24gIipyZWxvYWRf aW5zZiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1y IikKICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0YgMSAiY29uc3RfZG91YmxlX29wZXJhbmQiICJG IikpCi0gICAoY2xvYmJlciAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAi PSZkIikpXQorICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgIj0mZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KICAgInJlbG9hZF9jb21w bGV0ZWQiCiAgIHsKICAgICByZXR1cm4gb3V0cHV0X3JlbG9hZF9pbnNpc2YgKG9wZXJhbmRzLCBv cGVyYW5kc1syXSwgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiOCIpCi0gICAo c2V0X2F0dHIgImFkanVzdF9sZW4iICJyZWxvYWRfaW4zMiIpCi0gICAoc2V0X2F0dHIgImNjIiAi Y2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInJlbG9hZF9pbjMyIildKQog CiA7Oz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KIDs7IG1vdmUgc3RyaW5nIChsaWtlIG1lbWNweSkKQEAgLTEw MTUsNyArMTEwMiw3IEBACiAKIDs7ICJjcHltZW1fcWkiCiA7OyAiY3B5bWVtX2hpIgotKGRlZmlu ZV9pbnNuICJjcHltZW1fPG1vZGU+IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiY3B5bWVtXzxt b2RlPiIKICAgWyhzZXQgKG1lbTpCTEsgKHJlZzpISSBSRUdfWCkpCiAgICAgICAgIChtZW06QkxL IChyZWc6SEkgUkVHX1opKSkKICAgICh1bnNwZWMgWyhtYXRjaF9vcGVyYW5kOlFJIDAgImNvbnN0 X2ludF9vcGVyYW5kIiAibiIpXQpAQCAtMTAyNiwxMSArMTExMywzNSBAQAogICAgKGNsb2JiZXIg KHJlZzpRSSBMUE1fUkVHTk8pKQogICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6UUlISSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAiPTEiKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBs ZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWVtOkJMSyAocmVnOkhJIFJFR19YKSkKKyAgICAg ICAgICAgICAgICAgICAobWVtOkJMSyAocmVnOkhJIFJFR19aKSkpCisgICAgICAgICAgICAgICh1 bnNwZWMgWyhtYXRjaF9kdXAgMCldCisgICAgICAgICAgICAgICAgICAgICAgVU5TUEVDX0NQWU1F TSkKKyAgICAgICAgICAgICAgKHVzZSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAoY2xv YmJlciAocmVnOkhJIFJFR19YKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSBSRUdf WikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgTFBNX1JFR05PKSkKKyAgICAgICAg ICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCAyKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJl ZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqY3B5bWVtXzxtb2RlPiIKKyAgWyhz ZXQgKG1lbTpCTEsgKHJlZzpISSBSRUdfWCkpCisgICAgICAgIChtZW06QkxLIChyZWc6SEkgUkVH X1opKSkKKyAgICAgICAgKHVuc3BlYyBbKG1hdGNoX29wZXJhbmQ6UUkgMCAiY29uc3RfaW50X29w ZXJhbmQiICJuIildCisgICAgICAgICAgICAgICAgVU5TUEVDX0NQWU1FTSkKKyAgICAgICAgKHVz ZSAobWF0Y2hfb3BlcmFuZDpRSUhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICI8Q1BZTUVNX3JfZD4i KSkKKyAgICAgICAgKGNsb2JiZXIgKHJlZzpISSBSRUdfWCkpCisgICAgICAgIChjbG9iYmVyIChy ZWc6SEkgUkVHX1opKQorICAgICAgICAoY2xvYmJlciAocmVnOlFJIExQTV9SRUdOTykpCisgICAg ICAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOlFJSEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIj0x IikpCisgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxl dGVkIgogICB7CiAgICAgcmV0dXJuIGF2cl9vdXRfY3B5bWVtIChpbnNuLCBvcGVyYW5kcywgTlVM TCk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImNweW1lbSIpCi0gICAoc2V0X2F0 dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImNweW1lbSIp XSkKIAogCiA7OyAkMCAgICA6IEFkZHJlc3MgU3BhY2UKQEAgLTEwNDEsNyArMTE1Miw4IEBACiAK IDs7ICJjcHltZW14X3FpIgogOzsgImNweW1lbXhfaGkiCi0oZGVmaW5lX2luc24gImNweW1lbXhf PG1vZGU+IgorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJjcHltZW14Xzxtb2RlPiIKICAgWyhz ZXQgKG1lbTpCTEsgKHJlZzpISSBSRUdfWCkpCiAgICAgICAgIChtZW06QkxLIChsb19zdW06UFNJ IChyZWc6UUkgMjMpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWc6SEkgUkVHX1op KSkpCkBAIC0xMDU1LDkgKzExNjcsMzkgQEAKICAgIChjbG9iYmVyIChyZWc6UUkgMjMpKQogICAg KGNsb2JiZXIgKG1lbTpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJpb19hZGRyZXNzX29wZXJhbmQi ICJuIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFs bGVsIFsoc2V0IChtZW06QkxLIChyZWc6SEkgUkVHX1gpKQorICAgICAgICAgICAgICAgICAgICht ZW06QkxLIChsb19zdW06UFNJIChyZWc6UUkgMjMpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHJlZzpISSBSRUdfWikpKSkKKyAgICAgICAgICAgICAgKHVuc3BlYyBb KG1hdGNoX2R1cCAwKV0KKyAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNfQ1BZTUVNKQorICAg ICAgICAgICAgICAodXNlIChyZWc6UUlISSAyNCkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChy ZWc6SEkgUkVHX1gpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkhJIFJFR19aKSkKKyAg ICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpRSSBMUE1fUkVHTk8pKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkhJIDI0KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpRSSAyMykp CisgICAgICAgICAgICAgIChjbG9iYmVyIChtZW06UUkgKG1hdGNoX2R1cCAxKSkpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmNw eW1lbXhfPG1vZGU+IgorICBbKHNldCAobWVtOkJMSyAocmVnOkhJIFJFR19YKSkKKyAgICAgICAg KG1lbTpCTEsgKGxvX3N1bTpQU0kgKHJlZzpRSSAyMykKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHJlZzpISSBSRUdfWikpKSkKKyAgICh1bnNwZWMgWyhtYXRjaF9vcGVyYW5kOlFJIDAg ImNvbnN0X2ludF9vcGVyYW5kIiAibiIpXQorICAgICAgICAgICBVTlNQRUNfQ1BZTUVNKQorICAg KHVzZSAocmVnOlFJSEkgMjQpKQorICAgKGNsb2JiZXIgKHJlZzpISSBSRUdfWCkpCisgICAoY2xv YmJlciAocmVnOkhJIFJFR19aKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgTFBNX1JFR05PKSkKKyAg IChjbG9iYmVyIChyZWc6SEkgMjQpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyMykpCisgICAoY2xv YmJlciAobWVtOlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgImlvX2FkZHJlc3Nfb3BlcmFuZCIgIm4i KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIK ICAgIiV+Y2FsbCBfX21vdm1lbXhfPG1vZGU+IgotICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwi KQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJ4 Y2FsbCIpXSkKIAogCiA7OyA9JTIgPSUyID0lMiA9JTIgPSUyID0lMiA9JTIgPSUyID0lMiA9JTIg PSUyID0lMiA9JTIgPSUyID0lMiA9JTIgPSUyID0lMgpAQCAtMTA5MSw3ICsxMjMzLDcgQEAKICAg fSkKIAogCi0oZGVmaW5lX2luc24gIipjbHJtZW1xaSIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg IipjbHJtZW1xaV9zcGxpdCIKICAgWyhzZXQgKG1lbTpCTEsgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgImUiKSkKICAgICAgICAgKGNvbnN0X2ludCAwKSkKICAgICh1c2Ug KG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKQEAgLTEwOTksMTIg KzEyNDEsMzAgQEAKICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOkhJIDMgIj0wIikpCiAgICAo Y2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSA0ICI9JjEiKSldCiAgICIiCisgICIjIgorICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWVtOkJMSyAobWF0Y2hfZHVw IDApKQorICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpCisgICAgICAgICAgICAgICh1 c2UgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgKHVzZSAobWF0Y2hfZHVwIDIpKQorICAg ICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAobWF0Y2hfZHVwIDQpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XSldKQorCisoZGVmaW5lX2luc24gIipjbHJtZW1xaSIKKyAgWyhzZXQgKG1lbTpCTEsgKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgImUiKSkKKyAgICAgICAgKGNvbnN0X2lu dCAwKSkKKyAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KSkKKyAgICh1c2UgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfaW50X29wZXJhbmQiICJuIikp CisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpISSAzICI9MCIpKQorICAgKGNsb2JiZXIgKG1h dGNoX3NjcmF0Y2g6UUkgNCAiPSYxIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQor ICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIjA6XDtzdCAlYTArLF9femVyb19yZWdfX1w7ZGVjICUx XDticm5lIDBiIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIzIikKLSAgIChzZXRfYXR0ciAiY2Mi ICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIzIildKQogCiAKLShkZWZpbmVf aW5zbiAiKmNscm1lbWhpIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmNscm1lbWhpX3NwbGl0 IgogICBbKHNldCAobWVtOkJMSyAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiZSxlIikpCiAgICAgICAgIChjb25zdF9pbnQgMCkpCiAgICAodXNlIChtYXRjaF9vcGVyYW5k OkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIhdyxkIikpCkBAIC0xMTEyLDExICsxMjcyLDMwIEBA CiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpISSAzICI9MCwwIikpCiAgICAoY2xvYmJlciAo bWF0Y2hfc2NyYXRjaDpISSA0ICI9JjEsJjEiKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2Fk X2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWVtOkJMSyAobWF0Y2hfZHVwIDApKQor ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpCisgICAgICAgICAgICAgICh1c2UgKG1h dGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgKHVzZSAobWF0Y2hfZHVwIDIpKQorICAgICAgICAg ICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0 Y2hfZHVwIDQpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQor CisKKyhkZWZpbmVfaW5zbiAiKmNscm1lbWhpIgorICBbKHNldCAobWVtOkJMSyAobWF0Y2hfb3Bl cmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiZSxlIikpCisgICAgICAgIChjb25zdF9pbnQg MCkpCisgICAodXNlIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIhdyxk IikpCisgICAodXNlIChtYXRjaF9vcGVyYW5kOkhJIDIgImNvbnN0X2ludF9vcGVyYW5kIiAibixu IikpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpISSAzICI9MCwwIikpCisgICAoY2xvYmJl ciAobWF0Y2hfc2NyYXRjaDpISSA0ICI9JjEsJjEiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVH X0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiQAogCTA6XDtzdCAlYTArLF9femVyb19y ZWdfX1w7c2JpdyAlQTEsMVw7YnJuZSAwYgogCTA6XDtzdCAlYTArLF9femVyb19yZWdfX1w7c3Vi aSAlQTEsMVw7c2JjaSAlQjEsMFw7YnJuZSAwYiIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyw0 IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyLGNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIg Imxlbmd0aCIgIjMsNCIpXSkKIAogKGRlZmluZV9leHBhbmQgInN0cmxlbmhpIgogICBbKHNldCAo bWF0Y2hfZHVwIDQpCkBAIC0xMTQyLDI3ICsxMzIxLDU3IEBACiAgICAgb3BlcmFuZHNbNF0gPSBn ZW5fcmVnX3J0eCAoSEltb2RlKTsKICAgfSkKIAotKGRlZmluZV9pbnNuICIqc3RybGVuaGkiCiso ZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc3RybGVuaGlfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICI9ZSIp CiAgICAgICAgICh1bnNwZWM6SEkgWyhtZW06QkxLIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lz dGVyX29wZXJhbmQiICAiMCIpKQogICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApCiAg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgImltbWVkaWF0ZV9vcGVyYW5k IiAgICAgICAgICAiaSIpXQogICAgICAgICAgICAgICAgICAgIFVOU1BFQ19TVFJMRU4pKV0KICAg IiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsCisgICAgICBb KHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAodW5zcGVjOkhJIFsobWVtOkJMSyAobWF0 Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKQorICAgICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKV0KKyAgICAgICAgICAgICAgICAgICAgICAg VU5TUEVDX1NUUkxFTikpCisgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKwor KGRlZmluZV9pbnNuICIqc3RybGVuaGkiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICI9ZSIpCisgICAgICAgICh1bnNw ZWM6SEkgWyhtZW06QkxLIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAi MCIpKQorICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApCisgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgImltbWVkaWF0ZV9vcGVyYW5kIiAgICAgICAgICAiaSIp XQorICAgICAgICAgICAgICAgICAgIFVOU1BFQ19TVFJMRU4pKQorICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICIwOlw7bGQgX190bXBfcmVnX18s JWEwK1w7dHN0IF9fdG1wX3JlZ19fXDticm5lIDBiIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIz IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgi ICIzIildKQogCiA7KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDsgYWRkIGJ5dGVzCiAKIDs7ICJhZGRx aTMiCiA7OyAiYWRkcXEzIiAiYWRkdXFxMyIKLShkZWZpbmVfaW5zbiAiYWRkPG1vZGU+MyIKKyhk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgImFkZDxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFMTDEgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAiPXIsZCAgICAsciAgLHIgICxy ICAsciIpCiAgICAgICAgIChwbHVzOkFMTDEgKG1hdGNoX29wZXJhbmQ6QUxMMSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiJTAsMCAgICAsMCAgLDAgICwwICAsMCIpCiAgICAgICAgICAgICAgICAgICAg KG1hdGNoX29wZXJhbmQ6QUxMMSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIsbiBZbm4sWTAxLFlt MSxZMDIsWW0yIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBb KHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAocGx1czpB TEwxIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9k dXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCiso ZGVmaW5lX2luc24gIiphZGQ8bW9kZT4zIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEwxIDAg InJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgIj1yLGQgICAgLHIgICxyICAsciAgLHIiKQor ICAgICAgICAocGx1czpBTEwxIChtYXRjaF9vcGVyYW5kOkFMTDEgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIiUwLDAgICAgLDAgICwwICAsMCAgLDAiKQorICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOkFMTDEgMiAibm9ubWVtb3J5X29wZXJhbmQiICJyLG4gWW5uLFkwMSxZbTEsWTAyLFlt MiIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVk IgogICAiQAogCWFkZCAlMCwlMgogCXN1YmkgJTAsbG84KC0oJTIpKQpAQCAtMTE3MCw4ICsxMzc5 LDcgQEAKIAlkZWMgJTAKIAlpbmMgJTBcO2luYyAlMAogCWRlYyAlMFw7ZGVjICUwIgotICBbKHNl dF9hdHRyICJsZW5ndGgiICIxLDEsMSwxLDIsMiIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X2N6 bixzZXRfY3puLHNldF92em4sc2V0X3Z6bixzZXRfdnpuLHNldF92em4iKV0pCisgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjEsMSwxLDEsMiwyIildKQogCiA7OyAiYWRkaGkzIgogOzsgImFkZGhxMyIg ImFkZHVocTMiCkBAIC0xMjA1LDY3ICsxNDEzLDE0NCBAQAogICB9KQogCiAKLShkZWZpbmVfaW5z biAiKmFkZGhpM196ZXJvX2V4dGVuZCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRoaTNf emVyb19leHRlbmRfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICI9ciwqP3IiKQogICAgICAgICAocGx1 czpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgInIgICwwIikpCiAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCAgLHIiKSkpXQogICAiIgorICAiIyIKKyAg IiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQor ICAgICAgICAgICAgICAgICAgIChwbHVzOkhJICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfZHVwIDEp KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAg ICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiphZGRo aTNfemVyb19leHRlbmQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICI9ciwqP3IiKQorICAgICAgICAocGx1czpI SSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg InIgICwwIikpCisgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVy X29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCAgLHIiKSkpCisgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIkAKIAlhZGQgJUEwLCUxXDthZGMg JUIwLF9femVyb19yZWdfXwogCWFkZCAlQTAsJUEyXDttb3YgJUIwLCVCMlw7YWRjICVCMCxfX3pl cm9fcmVnX18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsMyIpCi0gICAoc2V0X2F0dHIgImNj IiAic2V0X24iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsMyIpXSkKIAotKGRlZmluZV9p bnNuICIqYWRkaGkzX3plcm9fZXh0ZW5kMSIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRo aTNfemVyb19leHRlbmQxX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQogICAgICAgICAocGx1 czpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAg ICAgIjAiKQogICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6 UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxv YWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAg ICAgICAgICAgICAocGx1czpISSAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMikpKSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYWRkaGkzX3plcm9f ZXh0ZW5kMSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAgICAgKHBsdXM6SEkgKG1hdGNoX29w ZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICIwIikKKyAgICAg ICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVy X29wZXJhbmQiICJyIikpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxv YWRfY29tcGxldGVkIgogICAiYWRkICVBMCwlMlw7YWRjICVCMCxfX3plcm9fcmVnX18iCi0gIFso c2V0X2F0dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJjYyIgInNldF9uIildKQorICBb KHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCi0oZGVmaW5lX2luc24gIiphZGRoaTMuc2lnbl9l eHRlbmQxIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZGhpMy5zaWduX2V4dGVuZDFfc3Bs aXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAgICAgICAgICAgICAgICI9ciIpCiAgICAgICAgIChwbHVzOkhJIChzaWduX2V4dGVuZDpI SSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQogICAgICAgICAg ICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAg ICAgICAgIjAiKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFso cGFyYWxsZWwKKyAgICAgIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgIChwbHVzOkhJ CisgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpISSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAg ICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSld KQorCisKKyhkZWZpbmVfaW5zbiAiKmFkZGhpMy5zaWduX2V4dGVuZDEiCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAg ICI9ciIpCisgICAgICAgIChwbHVzOkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpR SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3Bl cmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgIjAiKSkpCisgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAg IHJldHVybiByZWdfb3ZlcmxhcF9tZW50aW9uZWRfcCAob3BlcmFuZHNbMF0sIG9wZXJhbmRzWzFd KQogICAgICAgPyAibW92IF9fdG1wX3JlZ19fLCUxXDthZGQgJUEwLCUxXDthZGMgJUIwLF9femVy b19yZWdfX1w7c2JyYyBfX3RtcF9yZWdfXyw3XDtkZWMgJUIwIgogICAgICAgOiAiYWRkICVBMCwl MVw7YWRjICVCMCxfX3plcm9fcmVnX19cO3NicmMgJTEsN1w7ZGVjICVCMCI7CiAgIH0KLSAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiNSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiNSIpXSkKIAotKGRlZmluZV9pbnNuICIqYWRkaGkzX3plcm9f ZXh0ZW5kLmNvbnN0IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZGhpM196ZXJvX2V4dGVu ZC5jb25zdF9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgIj1kIikKICAgICAgICAgKHBsdXM6SEkgKHpl cm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikp CiAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgImNvbnN0X20yNTVfdG9fbTFf b3BlcmFuZCIgICAgICAgICAiQ244IikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29t cGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAg ICAgICAocGx1czpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYWRkaGkzX3plcm9fZXh0ZW5k LmNvbnN0IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAg ICAgICAgICAgICAgICAgICAgICAgICAiPWQiKQorICAgICAgICAocGx1czpISSAoemVyb19leHRl bmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkKKyAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAiY29uc3RfbTI1NV90b19tMV9vcGVyYW5k IiAgICAgICAgICJDbjgiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVs b2FkX2NvbXBsZXRlZCIKICAgInN1YmkgJUEwLCVuMlw7c2JjICVCMCwlQjAiCi0gIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJjYyIgInNldF9jem4iKV0pCisgIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnVzdW1fd2lkZW5xaWhpMyIK KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip1c3VtX3dpZGVucWloaTNfc3BsaXQiCiAgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAg ICAgICAgICAiPXIiKQogICAgICAgICAocGx1czpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX29w ZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIwIikpCiAgICAgICAgICAgICAgICAgICh6 ZXJvX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgInIi KSkpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVs IFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAocGx1czpISQorICAgICAg ICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAg ICAgICAgICAgICAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAyKSkpKQorICAgICAgICAgICAg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisKKyhkZWZpbmVfaW5zbiAiKnVzdW1f d2lkZW5xaWhpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCisgICAgICAgIChwbHVzOkhJICh6ZXJv X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIjAiKSkK KyAgICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJl Z2lzdGVyX29wZXJhbmQiICAiciIpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQor ICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImFkZCAlQTAsJTJcO2NsciAlQjBcO3JvbCAlQjAiCi0g IFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnVkaWZmX3dp ZGVucWloaTMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqdWRpZmZfd2lkZW5xaWhpM19zcGxp dCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAg ICAgICAgICAgICAgICAgICAgICAiPXIiKQogICAgICAgICAobWludXM6SEkgKHplcm9fZXh0ZW5k OkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCIpKQogICAgICAg ICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVy X29wZXJhbmQiICAiciIpKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgICht aW51czpISSAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMikpKSkKKyAgICAgICAgICAg ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqdWRpZmZf d2lkZW5xaWhpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAobWludXM6SEkgKHpl cm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCIp KQorICAgICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIg InJlZ2lzdGVyX29wZXJhbmQiICAiciIpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgInN1YiAlQTAsJTJcO3NiYyAlQjAsJUIwIgotICBb KHNldF9hdHRyICJsZW5ndGgiICIyIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfY3puIildKQor ICBbKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogICAgIAotKGRlZmluZV9pbnNuICIqYWRkaGkz X3NwIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZGhpM19zcCIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6SEkgMSAic3RhY2tfcmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICI9cSIpCiAg ICAgICAgIChwbHVzOkhJIChtYXRjaF9vcGVyYW5kOkhJIDIgInN0YWNrX3JlZ2lzdGVyX29wZXJh bmQiICAgInEiKQogICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAwICJhdnJfc3Bf aW1tZWRpYXRlX29wZXJhbmQiICJDc3AiKSkpXQpAQCAtMTI3MywyMyArMTU1OCw0NCBAQAogICB7 CiAgICAgcmV0dXJuIGF2cl9vdXRfYWRkdG9fc3AgKG9wZXJhbmRzLCBOVUxMKTsKICAgfQorICAi IgorICBbKGNvbnN0X2ludCAwKV0KKyAgeworICAgIC8qIERvIG5vdCBhdHRlbXB0IHRvIHNwbGl0 IHRoaXMgcGF0dGVybi4gVGhpcyBGQUlMIGlzIG5lY2Vzc2FyeQorICAgICAgIHRvIHByZXZlbnQg dGhlIHNwbGl0dGVyIGZyb20gbWF0Y2hpbmcgKmFkZDxBTEwyPjNfc3BsaXQsIHNwbGl0dGluZwor ICAgICAgIGl0LCBhbmQgdGhlbiBmYWlsaW5nIGxhdGVyIGJlY2F1c2UgY29uc3RyYWludHMgZG9u J3QgbWF0Y2gsIGFzIHNwbGl0CisgICAgICAgZG9lcyBub3QgbG9vayBhdCBjb25zdHJhaW50cy4g Ki8KKyAgICBGQUlMOworICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjYiKQogICAgKHNldF9h dHRyICJhZGp1c3RfbGVuIiAiYWRkdG9fc3AiKV0pCiAKIDs7ICIqYWRkaGkzIgogOzsgIiphZGRo cTMiICIqYWRkdWhxMyIKIDs7ICIqYWRkaGEzIiAiKmFkZHVoYTMiCi0oZGVmaW5lX2luc24gIiph ZGQ8bW9kZT4zIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZDxtb2RlPjNfc3BsaXQiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAg ICAgICAgICAgIj0/P3IsZCwhdyAgICAsZCIpCiAgICAgICAgIChwbHVzOkFMTDIgKG1hdGNoX29w ZXJhbmQ6QUxMMiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAiJTAsMCwwICAgICAsMCIp CiAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMMiAyICJub25tZW1vcnlfb3Jf Y29uc3Rfb3BlcmFuZCIgInIscyxJSiBZSUosbiBZbm4iKSkpXQogICAiIgorICAiIyIKKyAgIiYm IHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAg ICAgICAgICAgICAgICAgIChwbHVzOkFMTDIgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChy ZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFkZDxtb2RlPjMiCisgIFsoc2V0 IChtYXRjaF9vcGVyYW5kOkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAg ICAgIj0/P3IsZCwhdyAgICAsZCIpCisgICAgICAgIChwbHVzOkFMTDIgKG1hdGNoX29wZXJhbmQ6 QUxMMiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAiJTAsMCwwICAgICAsMCIpCisgICAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMMiAyICJub25tZW1vcnlfb3JfY29uc3Rf b3BlcmFuZCIgInIscyxJSiBZSUosbiBZbm4iKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3BsdXMg KGluc24sIG9wZXJhbmRzKTsKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikKLSAgIChz ZXRfYXR0ciAiYWRqdXN0X2xlbiIgInBsdXMiKQotICAgKHNldF9hdHRyICJjYyIgInBsdXMiKV0p CisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJwbHVzIildKQogCiA7OyBBZGRpbmcgYSBjb25z dGFudCB0byBOT19MRF9SRUdTIG1pZ2h0IGhhdmUgbGVhZCB0byBhIHJlbG9hZCBvZgogOzsgdGhh dCBjb25zdGFudCB0byBMRF9SRUdTLiAgV2UgZG9uJ3QgYWRkIGEgc2NyYXRjaCB0byAqYWRkaGkz CkBAIC0xMzI5LDE0MCArMTYzNSwzMDMgQEAKIDs7ICJhZGRoaTNfY2xvYmJlciIKIDs7ICJhZGRo cTNfY2xvYmJlciIgImFkZHVocTNfY2xvYmJlciIKIDs7ICJhZGRoYTNfY2xvYmJlciIgImFkZHVo YTNfY2xvYmJlciIKLShkZWZpbmVfaW5zbiAiYWRkPG1vZGU+M19jbG9iYmVyIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiYWRkPG1vZGU+M19jbG9iYmVyIgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpBTEwyIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgIj0hdyAgICAsZCAgICAsciIp CiAgICAgICAgIChwbHVzOkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAgIiUwICAgICwwICAgICwwIikKICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpBTEwyIDIgImNvbnN0X29wZXJhbmQiICAgICAiSUogWUlKLG4gWW5uLG4gWW5uIikpKQogICAg KGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ij1YICAgICAsWCAgICAsJmQiKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRl ZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAg KHBsdXM6QUxMMiAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCAzKSkKKyAg ICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNu ICIqYWRkPG1vZGU+M19jbG9iYmVyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEwyIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgIj0hdyAgICAsZCAgICAsciIpCisgICAgICAgIChw bHVzOkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIiUwICAg ICwwICAgICwwIikKKyAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpBTEwyIDIgImNv bnN0X29wZXJhbmQiICAgICAiSUogWUlKLG4gWW5uLG4gWW5uIikpKQorICAgKGNsb2JiZXIgKG1h dGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1YICAgICAsWCAg ICAsJmQiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxl dGVkIgogICB7CiAgICAgcmV0dXJuIGF2cl9vdXRfcGx1cyAoaW5zbiwgb3BlcmFuZHMpOwogICB9 CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAi cGx1cyIpCi0gICAoc2V0X2F0dHIgImNjIiAicGx1cyIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0 X2xlbiIgInBsdXMiKV0pCiAKIAogOzsgImFkZHNpMyIKIDs7ICJhZGRzcTMiICJhZGR1c3EzIgog OzsgImFkZHNhMyIgImFkZHVzYTMiCi0oZGVmaW5lX2luc24gImFkZDxtb2RlPjMiCisoZGVmaW5l X2luc25fYW5kX3NwbGl0ICJhZGQ8bW9kZT4zIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEw0 IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICI9Pz9yLGQgLHIiKQogICAgICAgICAocGx1 czpBTEw0IChtYXRjaF9vcGVyYW5kOkFMTDQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwLDAgLDAi KQogICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDQgMiAibm9ubWVtb3J5X29w ZXJhbmQiICJyLGkgLG4gWW5uIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1YLFggLCZkIikpXQogICAiIgorICAiIyIKKyAg IiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQor ICAgICAgICAgICAgICAgICAgIChwbHVzOkFMTDQgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVy IChtYXRjaF9kdXAgMykpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKmFkZDxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFMTDQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgIj0/P3IsZCAsciIpCisgICAgICAg IChwbHVzOkFMTDQgKG1hdGNoX29wZXJhbmQ6QUxMNCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAs MCAsMCIpCisgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMNCAyICJub25tZW1v cnlfb3BlcmFuZCIgInIsaSAsbiBZbm4iKSkpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpR SSAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCAsJmQiKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJu IGF2cl9vdXRfcGx1cyAoaW5zbiwgb3BlcmFuZHMpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjQiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAicGx1cyIpCi0gICAoc2V0X2F0dHIg ImNjIiAicGx1cyIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInBsdXMiKV0pCiAKLShk ZWZpbmVfaW5zbiAiKmFkZHBzaTNfemVyb19leHRlbmQucWkiCisoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICIqYWRkcHNpM196ZXJvX2V4dGVuZC5xaV9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIi KQogICAgICAgICAocGx1czpQU0kgKHplcm9fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpRSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQogICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6UFNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCIpKSldCiAgICIi CisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0 Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHBsdXM6UFNJICh6ZXJvX2V4dGVuZDpQU0kg KG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAy KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiKmFkZHBzaTNfemVyb19leHRlbmQucWkiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikK KyAgICAgICAgKHBsdXM6UFNJICh6ZXJvX2V4dGVuZDpQU0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKyAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlBTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgIjAiKSkpCisgICAoY2xv YmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImFkZCAlQTAs JUExXDthZGMgJUIwLF9femVyb19yZWdfX1w7YWRjICVDMCxfX3plcm9fcmVnX18iCi0gIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjMiKQotICAgKHNldF9hdHRyICJjYyIgInNldF9uIildKQorICBbKHNl dF9hdHRyICJsZW5ndGgiICIzIildKQogCi0oZGVmaW5lX2luc24gIiphZGRwc2kzX3plcm9fZXh0 ZW5kLmhpIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZHBzaTNfemVyb19leHRlbmQuaGlf c3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAg ICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKICAgICAgICAgKHBsdXM6UFNJICh6ZXJvX2V4 dGVuZDpQU0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKICAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlBTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAg ICAgICAgICAgICAgICAgIjAiKSkpXQogICAiIgotICAiYWRkICVBMCwlQTFcO2FkYyAlQjAsJUIx XDthZGMgJUMwLF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpCi0gICAo c2V0X2F0dHIgImNjIiAic2V0X24iKV0pCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHBs dXM6UFNJICh6ZXJvX2V4dGVuZDpQU0kgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldKV0pCiAKLShkZWZpbmVfaW5zbiAiKmFkZHBzaTNfc2lnbl9leHRlbmQuaGki CisoZGVmaW5lX2luc24gIiphZGRwc2kzX3plcm9fZXh0ZW5kLmhpIgorICBbKHNldCAobWF0Y2hf b3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAg ICI9ciIpCisgICAgICAgIChwbHVzOlBTSSAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9vcGVyYW5k OkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisgICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpQU0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICIwIikpKQor ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgICJh ZGQgJUEwLCVBMVw7YWRjICVCMCwlQjFcO2FkYyAlQzAsX196ZXJvX3JlZ19fIgorICBbKHNldF9h dHRyICJsZW5ndGgiICIzIildKQorCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYWRkcHNpM19z aWduX2V4dGVuZC5oaV9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQogICAgICAgICAocGx1 czpQU0kgKHNpZ25fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiciIpKQogICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UFNJIDIgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCIpKSldCiAgICIiCisgICIjIgorICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAg ICAgICAgICAgICAgICAgKHBsdXM6UFNJIChzaWduX2V4dGVuZDpQU0kgKG1hdGNoX2R1cCAxKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAg ICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFkZHBz aTNfc2lnbl9leHRlbmQuaGkiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAgICAgKHBsdXM6 UFNJIChzaWduX2V4dGVuZDpQU0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgInIiKSkKKyAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlBTSSAyICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgIjAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImFkZCAlQTAsJTFcO2FkYyAlQjAsJUIx XDthZGMgJUMwLF9femVyb19yZWdfX1w7c2JyYyAlQjEsN1w7ZGVjICVDMCIKLSAgWyhzZXRfYXR0 ciAibGVuZ3RoIiAiNSIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X24iKV0pCisgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjUiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmFkZHNpM196ZXJvX2V4dGVuZCIK KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRzaTNfemVyb19leHRlbmRfc3BsaXQiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAg ICAgICAgICAgICI9ciIpCiAgICAgICAgIChwbHVzOlNJICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hf b3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQogICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgIjAi KSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChwbHVzOlNJICh6ZXJvX2V4 dGVuZDpTSSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQor CisoZGVmaW5lX2luc24gIiphZGRzaTNfemVyb19leHRlbmQiCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIp CisgICAgICAgIChwbHVzOlNJICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpT SSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgIjAiKSkpCisgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImFkZCAlQTAsJTFc O2FkYyAlQjAsX196ZXJvX3JlZ19fXDthZGMgJUMwLF9femVyb19yZWdfX1w7YWRjICVEMCxfX3pl cm9fcmVnX18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJjYyIg InNldF9uIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCi0oZGVmaW5lX2luc24g IiphZGRzaTNfemVyb19leHRlbmQuaGkiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYWRkc2kz X3plcm9fZXh0ZW5kLmhpX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQogICAgICAgICAocGx1 czpTSSAoemVyb19leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgInIiKSkKICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJf b3BlcmFuZCIgICAgICAgICAgICAgICAgICIwIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxv YWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAg ICAgICAgICAgICAocGx1czpTSSAoemVyb19leHRlbmQ6U0kgKG1hdGNoX2R1cCAxKSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYWRkc2kzX3plcm9f ZXh0ZW5kLmhpIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAocGx1czpTSSAoemVyb19l eHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKyAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAg ICAgICAgICAgICAgICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCiAgICJhZGQgJUEwLCUxXDthZGMgJUIwLCVCMVw7YWRjICVDMCxfX3pl cm9fcmVnX19cO2FkYyAlRDAsX196ZXJvX3JlZ19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0 IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbiIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAi NCIpXSkKIAotKGRlZmluZV9pbnNuICJhZGRwc2kzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi YWRkcHNpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICAgICAgICAgIj0/P3IsZCAsZCxyIikKICAgICAgICAgKHBsdXM6UFNJIChtYXRjaF9vcGVyYW5k OlBTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCAsMCwwIikKICAgICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlBTSSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIscyAsbixuIikpKQog ICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAg ICI9WCxYICxYLCZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChwbHVz OlBTSSAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9k dXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMgKSkKKyAgICAgICAg ICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYWRk cHNpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgIj0/P3IsZCAsZCxyIikKKyAgICAgICAgKHBsdXM6UFNJIChtYXRjaF9vcGVyYW5kOlBT SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCAsMCwwIikKKyAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlBTSSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIscyAsbixuIikpKQorICAg KGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICI9 WCxYICxYLCZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2Nv bXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3BsdXMgKGluc24sIG9wZXJhbmRzKTsK ICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICIzIikKLSAgIChzZXRfYXR0ciAiYWRqdXN0X2xl biIgInBsdXMiKQotICAgKHNldF9hdHRyICJjYyIgInBsdXMiKV0pCisgICAoc2V0X2F0dHIgImFk anVzdF9sZW4iICJwbHVzIildKQogCi0oZGVmaW5lX2luc24gInN1YnBzaTMiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICJzdWJwc2kzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICI9ciIpCiAgICAgICAgIChtaW51czpQU0kgKG1hdGNo X29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDpQU0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpXQogICAiIgor ICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNo X2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtaW51czpQU0kgKG1hdGNoX2R1cCAxKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnN1YnBzaTMi CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAg ICAgIj1yIikKKyAgICAgICAgKG1pbnVzOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlBTSSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld CisgICJyZWxvYWRfY29tcGxldGVkIgogICAic3ViICUwLCUyXDtzYmMgJUIwLCVCMlw7c2JjICVD MCwlQzIiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKQotICAgKHNldF9hdHRyICJjYyIgInNl dF9jem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKV0pCiAKLShkZWZpbmVfaW5zbiAi KnN1YnBzaTNfemVyb19leHRlbmQucWkiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc3VicHNp M196ZXJvX2V4dGVuZC5xaV9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKICAgICAgICAg KG1pbnVzOlBTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAg ICAgICAgICAgICIwIikKICAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6UFNJIChtYXRj aF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSldCiAgICIiCisgICIjIgor ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp CisgICAgICAgICAgICAgICAgICAgKG1pbnVzOlBTSSAobWF0Y2hfZHVwIDEpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9kdXAgMikpKSkKKyAg ICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNu ICIqc3VicHNpM196ZXJvX2V4dGVuZC5xaSIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAg ICAgKG1pbnVzOlBTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAg ICAgICAgICAgICAgICIwIikKKyAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6UFNJICht YXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAic3ViICVBMCwlMlw7 c2JjICVCMCxfX3plcm9fcmVnX19cO3NiYyAlQzAsX196ZXJvX3JlZ19fIgotICBbKHNldF9hdHRy ICJsZW5ndGgiICIzIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfY3puIildKQorICBbKHNldF9h dHRyICJsZW5ndGgiICIzIildKQogCi0oZGVmaW5lX2luc24gIipzdWJwc2kzX3plcm9fZXh0ZW5k LmhpIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnN1YnBzaTNfemVyb19leHRlbmQuaGlfc3Bs aXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAg ICAgICAgICAgICAgICAgICAgICAgICI9ciIpCiAgICAgICAgIChtaW51czpQU0kgKG1hdGNoX29w ZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCIpCiAgICAg ICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAg IChtaW51czpQU0kgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KHplcm9fZXh0ZW5kOlBTSSAobWF0Y2hfZHVwIDIpKSkpCisgICAgICAgICAgICAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnN1YnBzaTNfemVyb19leHRl bmQuaGkiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAg ICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCisgICAgICAgIChtaW51czpQU0kgKG1hdGNo X29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCIpCisg ICAgICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpISSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQor ICAicmVsb2FkX2NvbXBsZXRlZCIKICAgInN1YiAlQTAsJTJcO3NiYyAlQjAsJUIyXDtzYmMgJUMw LF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpCi0gICAoc2V0X2F0dHIg ImNjIiAic2V0X2N6biIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpXSkKIAotKGRlZmlu ZV9pbnNuICIqc3VicHNpM19zaWduX2V4dGVuZC5oaSIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg IipzdWJwc2kzX3NpZ25fZXh0ZW5kLmhpX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQ U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQog ICAgICAgICAobWludXM6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAgICAgICAgICAgICAgICAgIjAiKQogICAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpQ U0kgKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKV0KICAgIiIK KyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobWludXM6UFNJIChtYXRjaF9kdXAgMSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpQU0kgKG1hdGNoX2R1cCAy KSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVm aW5lX2luc24gIipzdWJwc2kzX3NpZ25fZXh0ZW5kLmhpIgorICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIi KQorICAgICAgICAobWludXM6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAgICAgICAgICAgICAgICAgIjAiKQorICAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVu ZDpQU0kgKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKQorICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJzdWIg JUEwLCVBMlw7c2JjICVCMCwlQjJcO3NiYyAlQzAsX196ZXJvX3JlZ19fXDtzYnJjICVCMiw3XDtp bmMgJUMwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI1IikKLSAgIChzZXRfYXR0ciAiY2MiICJz ZXRfY3puIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI1IildKQogCiA7LS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KIDsgc3ViIGJ5dGVzCiAKIDs7ICJzdWJxaTMiCiA7OyAic3VicXEzIiAic3VidXFx MyIKLShkZWZpbmVfaW5zbiAic3ViPG1vZGU+MyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgInN1 Yjxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDEgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgICAgICAgICAgICAgICI9Pz9yLGQgICAgLHIgICxyICAsciAgLHIiKQogICAgICAg ICAobWludXM6QUxMMSAobWF0Y2hfb3BlcmFuZDpBTEwxIDEgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgICAiMCwwICAgICwwICAsMCAgLDAgICwwIikKICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6QUxMMSAyICJub25tZW1vcnlfb3JfY29uc3Rfb3BlcmFuZCIgInIsbiBZbm4s WTAxLFltMSxZMDIsWW0yIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAo bWludXM6QUxMMSAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKnN1Yjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFMTDEgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICI9Pz9yLGQgICAg LHIgICxyICAsciAgLHIiKQorICAgICAgICAobWludXM6QUxMMSAobWF0Y2hfb3BlcmFuZDpBTEwx IDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAiMCwwICAgICwwICAsMCAgLDAgICwwIikK KyAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMMSAyICJub25tZW1vcnlfb3Jf Y29uc3Rfb3BlcmFuZCIgInIsbiBZbm4sWTAxLFltMSxZMDIsWW0yIikpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJACiAJc3ViICUwLCUy CiAJc3ViaSAlMCxsbzgoJTIpCkBAIC0xNDcwLDc4ICsxOTM5LDE1NSBAQAogCWluYyAlMAogCWRl YyAlMFw7ZGVjICUwCiAJaW5jICUwXDtpbmMgJTAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEs MSwxLDEsMiwyIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfY3puLHNldF9jem4sc2V0X3Z6bixz ZXRfdnpuLHNldF92em4sc2V0X3Z6biIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSwxLDEs MSwyLDIiKV0pCiAKIDs7ICJzdWJoaTMiCiA7OyAic3ViaHEzIiAic3VidWhxMyIKIDs7ICJzdWJo YTMiICJzdWJ1aGEzIgotKGRlZmluZV9pbnNuICJzdWI8bW9kZT4zIgorKGRlZmluZV9pbnNuX2Fu ZF9zcGxpdCAic3ViPG1vZGU+MyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMMiAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgIj0/P3IsZCAgICAsKnIiKQogICAgICAg ICAobWludXM6QUxMMiAobWF0Y2hfb3BlcmFuZDpBTEwyIDEgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgICAiMCwwICAgICwwIikKICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 QUxMMiAyICJub25tZW1vcnlfb3JfY29uc3Rfb3BlcmFuZCIgInIsaSBZbm4sWW5uIikpKQogICAg KGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICI9WCxYICAgICwmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29t cGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAg ICAgICAobWludXM6QUxMMiAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAg MykpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiKnN1Yjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDIgMCAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICI9Pz9yLGQgICAgLCpyIikKKyAgICAg ICAgKG1pbnVzOkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAg ICAgICAgICAgIjAsMCAgICAsMCIpCisgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OkFMTDIgMiAibm9ubWVtb3J5X29yX2NvbnN0X29wZXJhbmQiICJyLGkgWW5uLFlubiIpKSkKKyAg IChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiPVgsWCAgICAsJmQiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld CisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJuIGF2cl9vdXRfcGx1cyAoaW5z biwgb3BlcmFuZHMpOwogICB9Ci0gIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJwbHVzIikKLSAg IChzZXRfYXR0ciAiY2MiICJwbHVzIildKQorICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAicGx1 cyIpXSkKIAotKGRlZmluZV9pbnNuICIqc3ViaGkzX3plcm9fZXh0ZW5kMSIKKyhkZWZpbmVfaW5z bl9hbmRfc3BsaXQgIipzdWJoaTNfemVyb19leHRlbmQxX3NwbGl0IgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAg Ij1yIikKICAgICAgICAgKG1pbnVzOkhJIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICAgICAgICAgICAiMCIpCiAgICAgICAgICAgICAgICAgICAoemVyb19leHRl bmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKV0KICAg IiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0ICht YXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobWludXM6SEkgKG1hdGNoX2R1cCAxKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6SEkgKG1hdGNoX2R1cCAy KSkpKQorICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiKnN1YmhpM196ZXJvX2V4dGVuZDEiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAg ICAgICAobWludXM6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAg ICAgICAgICAgICAgICIwIikKKyAgICAgICAgICAgICAgICAgICh6ZXJvX2V4dGVuZDpISSAobWF0 Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpCisgIChjbG9iYmVyIChy ZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAic3ViICVBMCwlMlw7c2Jj ICVCMCxfX3plcm9fcmVnX18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9h dHRyICJjYyIgInNldF9jem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKLShk ZWZpbmVfaW5zbiAiKnN1YmhpMy5zaWduX2V4dGVuZDIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICIqc3ViaGkzLnNpZ25fZXh0ZW5kMl9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkg MCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCiAgICAg ICAgIChtaW51czpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAg ICAgICAgICAgICAgIjAiKQogICAgICAgICAgICAgICAgICAgKHNpZ25fZXh0ZW5kOkhJIChtYXRj aF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSldCiAgICIiCisgICIjIgor ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDAp CisgICAgICAgICAgICAgICAgICAobWludXM6SEkgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKworKGRlZmluZV9pbnNuICIq c3ViaGkzLnNpZ25fZXh0ZW5kMiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCisgICAgICAgIChtaW51 czpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAg ICAgIjAiKQorICAgICAgICAgICAgICAgICAgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5k OlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVH X0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJuIHJlZ19vdmVybGFw X21lbnRpb25lZF9wIChvcGVyYW5kc1swXSwgb3BlcmFuZHNbMl0pCiAgICAgICA/ICJtb3YgX190 bXBfcmVnX18sJTJcO3N1YiAlQTAsJTJcO3NiYyAlQjAsX196ZXJvX3JlZ19fXDtzYnJjIF9fdG1w X3JlZ19fLDdcO2luYyAlQjAiCiAgICAgICA6ICJzdWIgJUEwLCUyXDtzYmMgJUIwLF9femVyb19y ZWdfX1w7c2JyYyAlMiw3XDtpbmMgJUIwIjsKICAgfQotICBbKHNldF9hdHRyICJsZW5ndGgiICI1 IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgi ICI1IildKQogCiA7OyAic3Vic2kzIgogOzsgInN1YnNxMyIgInN1YnVzcTMiCiA7OyAic3Vic2Ez IiAic3VidXNhMyIKLShkZWZpbmVfaW5zbiAic3ViPG1vZGU+MyIKKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgInN1Yjxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDQgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICI9Pz9yLGQgICAgLHIiKQogICAgICAgICAo bWludXM6QUxMNCAobWF0Y2hfb3BlcmFuZDpBTEw0IDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAiMCwwICAgICwwIikKICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxM NCAyICJub25tZW1vcnlfb3JfY29uc3Rfb3BlcmFuZCIgInIsbiBZbm4sWW5uIikpKQogICAgKGNs b2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICI9WCxYICAgICwmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAg ICAobWludXM6QUxMNCAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKnN1Yjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDQgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICI9Pz9yLGQgICAgLHIiKQorICAgICAgICAo bWludXM6QUxMNCAobWF0Y2hfb3BlcmFuZDpBTEw0IDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAiMCwwICAgICwwIikKKyAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxM NCAyICJub25tZW1vcnlfb3JfY29uc3Rfb3BlcmFuZCIgInIsbiBZbm4sWW5uIikpKQorICAgKGNs b2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICI9WCxYICAgICwmZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAg InJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9wbHVzIChpbnNuLCBv cGVyYW5kcyk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInBsdXMiKQotICAgKHNl dF9hdHRyICJjYyIgInBsdXMiKV0pCisgIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJwbHVzIild KQogCi0oZGVmaW5lX2luc24gIipzdWJzaTNfemVyb19leHRlbmQiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIqc3Vic2kzX3plcm9fZXh0ZW5kX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFu ZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikK ICAgICAgICAgKG1pbnVzOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICAgICAgICAgICAgICAgICAiMCIpCiAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6U0kg KG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKV0KICAgIiIKKyAg IiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9k dXAgMCkKKyAgICAgICAgICAgICAgICAgICAobWludXM6U0kgKG1hdGNoX2R1cCAxKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6U0kgKG1hdGNoX2R1cCAyKSkpKQor ICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2lu c24gIipzdWJzaTNfemVyb19leHRlbmQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAo bWludXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAg ICAgICAgICIwIikKKyAgICAgICAgICAgICAgICAgICh6ZXJvX2V4dGVuZDpTSSAobWF0Y2hfb3Bl cmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpCisgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgInN1YiAlQTAsJTJcO3NiYyAlQjAs X196ZXJvX3JlZ19fXDtzYmMgJUMwLF9femVyb19yZWdfX1w7c2JjICVEMCxfX3plcm9fcmVnX18i CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJjYyIgInNldF9jem4i KV0pCisgICBdKQogCi0oZGVmaW5lX2luc24gIipzdWJzaTNfemVyb19leHRlbmQuaGkiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqc3Vic2kzX3plcm9fZXh0ZW5kLmhpX3NwbGl0IgogICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAg ICAgICAgICAgIj1yIikKICAgICAgICAgKG1pbnVzOlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiMCIpCiAgICAgICAgICAgICAgICAgICAo emVyb19leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KSkpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVs IFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobWludXM6U0kgKG1hdGNo X2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6U0kgKG1h dGNoX2R1cCAyKSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSld KQorCisoZGVmaW5lX2luc24gIipzdWJzaTNfemVyb19leHRlbmQuaGkiCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAg ICAiPXIiKQorICAgICAgICAobWludXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJf b3BlcmFuZCIgICAgICAgICAgICAgICAgICIwIikKKyAgICAgICAgICAgICAgICAgICh6ZXJvX2V4 dGVuZDpTSSAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgInN1 YiAlQTAsJTJcO3NiYyAlQjAsJUIyXDtzYmMgJUMwLF9femVyb19yZWdfX1w7c2JjICVEMCxfX3pl cm9fcmVnX18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJjYyIg InNldF9jem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCiAKIDsqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKIDsgbXVsCkBAIC0xNTU5LDE2ICsyMTA1LDI4IEBACiAgICAgICB9CiAgIH0p CiAKLShkZWZpbmVfaW5zbiAiKm11bHFpM19lbmgiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIq bXVscWkzX2VuaF9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKICAgICAgICAgKG11bHQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgInIiKQogICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisg ICAgICAgICAgICAgICAgICAgKG11bHQ6UUkgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptdWxxaTNfZW5oIgorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorICAgICAgICAobXVs dDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCisgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQor ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRf Y29tcGxldGVkIgogICAibXVsICUxLCUyCiAJbW92ICUwLHIwCiAJY2xyIHIxIgotICBbKHNldF9h dHRyICJsZW5ndGgiICIzIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNl dF9hdHRyICJsZW5ndGgiICIzIildKQogCiAoZGVmaW5lX2V4cGFuZCAibXVscWkzX2NhbGwiCiAg IFsoc2V0IChyZWc6UUkgMjQpIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIiKSkKQEAgLTE1ODEsMTg5ICsyMTM5LDM5MiBAQAogICAgIGF2cl9maXhfaW5wdXRzIChvcGVy YW5kcywgMSA8PCAyLCByZWdtYXNrIChRSW1vZGUsIDI0KSk7CiAgIH0pCiAKLShkZWZpbmVfaW5z biAiKm11bHFpM19jYWxsIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm11bHFpM19jYWxsX3Nw bGl0IgogICBbKHNldCAocmVnOlFJIDI0KSAobXVsdDpRSSAocmVnOlFJIDI0KSAocmVnOlFJIDIy KSkpCiAgICAoY2xvYmJlciAocmVnOlFJIDIyKSldCiAgICIhQVZSX0hBVkVfTVVMIgorICAiIyIK KyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpRSSAyNCkg KG11bHQ6UUkgKHJlZzpRSSAyNCkgKHJlZzpRSSAyMikpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOlFJIDIyKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0p XSkKKworKGRlZmluZV9pbnNuICIqbXVscWkzX2NhbGwiCisgIFsoc2V0IChyZWc6UUkgMjQpICht dWx0OlFJIChyZWc6UUkgMjQpIChyZWc6UUkgMjIpKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjIp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIiFBVlJfSEFWRV9NVUwgJiYgcmVs b2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfX211bHFpMyIKLSAgWyhzZXRfYXR0ciAidHlwZSIg InhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0 eXBlIiAieGNhbGwiKV0pCiAKIDs7ICJ1bXVscWkzX2hpZ2hwYXJ0IgogOzsgInNtdWxxaTNfaGln aHBhcnQiCi0oZGVmaW5lX2luc24gIjxleHRlbmRfc3U+bXVscWkzX2hpZ2hwYXJ0IgorCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICI8ZXh0ZW5kX3N1Pm11bHFpM19oaWdocGFydCIKICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiPXIiKQogICAgICAgICAodHJ1bmNhdGU6UUkKICAgICAgICAg IChsc2hpZnRydDpISSAobXVsdDpISSAoYW55X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+IikpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGFueV9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgIjxtdWxfcl9kPiIpKSkKICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDgp KSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgICh0cnVu Y2F0ZTpRSQorICAgICAgICAgICAgICAgICAgICAobHNoaWZ0cnQ6SEkgKG11bHQ6SEkgKGFueV9l eHRlbmQ6SEkgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChhbnlfZXh0ZW5kOkhJIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA4KSkpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIio8ZXh0ZW5kX3N1Pm11bHFp M19oaWdocGFydCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAo dHJ1bmNhdGU6UUkKKyAgICAgICAgIChsc2hpZnRydDpISSAobXVsdDpISSAoYW55X2V4dGVuZDpI SSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+IikpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFueV9leHRlbmQ6SEkgKG1hdGNoX29wZXJh bmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjxtdWxfcl9kPiIpKSkKKyAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDgpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQor ICAiQVZSX0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICJtdWw8ZXh0ZW5kX3M+ICUx LCUyCiAJbW92ICUwLHIxCiAJY2xyIF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiMyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiMyIpXSkKIAogCiA7OyBVc2VkIHdoZW4gZXhwYW5kaW5nIGRpdiBvciBtb2QgaW5saW5l IGZvciBzb21lIHNwZWNpYWwgdmFsdWVzCi0oZGVmaW5lX2luc24gIipzdWJxaTMuYXNoaWZ0cnQ3 IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnN1YnFpMy5hc2hpZnRydDdfc3BsaXQiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAg ICAgICAgICAiPXIiKQogICAgICAgICAobWludXM6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICIwIikKICAgICAgICAgICAgICAgICAgIChhc2hp ZnRydDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA3KSkpKV0KICAgIiIKKyAgIiMi CisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkKKyAgICAgICAgICAgICAgICAgICAobWludXM6UUkgKG1hdGNoX2R1cCAxKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoYXNoaWZ0cnQ6UUkgKG1hdGNoX2R1cCAyKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA3KSkpKQorICAgICAg ICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipz dWJxaTMuYXNoaWZ0cnQ3IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAgICAgKG1pbnVzOlFJICht YXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAiMCIpCisg ICAgICAgICAgICAgICAgICAoYXNoaWZ0cnQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0 ZXJfb3BlcmFuZCIgInIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgNykpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxl dGVkIgogICAic2JyYyAlMiw3XDtpbmMgJTAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQot ICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIi KV0pCiAKLShkZWZpbmVfaW5zbiAiKmFkZHFpMy5sdDAiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICIqYWRkcWkzLmx0MF9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICI9ciIpCiAgICAgICAgIChwbHVzOlFJIChsdDpR SSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgInIiKQogICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkKICAgICAgICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAiMCIpKSldCiAgICIiCisgICIj IgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVw IDApCisgICAgICAgICAgICAgICAgICAgKHBsdXM6UUkgKGx0OlFJIChtYXRjaF9kdXAgMSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYWRkcWkzLmx0MCIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAg ICAgICI9ciIpCisgICAgICAgIChwbHVzOlFJIChsdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAgInIiKQorICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCAwKSkKKyAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJy ZWxvYWRfY29tcGxldGVkIgogICAic2JyYyAlMSw3XDtpbmMgJTAiCi0gIFsoc2V0X2F0dHIgImxl bmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIg Imxlbmd0aCIgIjIiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmFkZGhpMy5sdDAiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICIqYWRkaGkzLmx0MF9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgIj13LHIiKQogICAgICAg ICAocGx1czpISSAobHQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgInIsciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKQogICAgICAg ICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAg ICAgIjAsMCIpKSkKICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIj1YLCYxIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9h ZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAg ICAgICAgICAgIChwbHVzOkhJIChsdDpISSAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAg MykpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiKmFkZGhpMy5sdDAiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICI9dyxyIikKKyAgICAgICAgKHBsdXM6SEkg KGx0OkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICJyLHIiKQor ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkKKyAgICAgICAgICAgICAgICAg KG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICIwLDAiKSkp CisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICI9WCwmMSIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCiAgICJACiAJc2JyYyAlMSw3XDthZGl3ICUwLDEKIAlsc2wgJTFcO2Fk YyAlQTAsX196ZXJvX3JlZ19fXDthZGMgJUIwLF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAi bGVuZ3RoIiAiMiwzIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9h dHRyICJsZW5ndGgiICIyLDMiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmFkZHBzaTMubHQwIgorKGRl ZmluZV9pbnNuX2FuZF9zcGxpdCAiKmFkZHBzaTMubHQwX3NwbGl0IgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAg Ij1yIikKICAgICAgICAgKHBsdXM6UFNJIChsc2hpZnRydDpQU0kgKG1hdGNoX29wZXJhbmQ6UFNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICAiciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgMjMpKQogICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpQU0kg MiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICIwIikpKV0KICAgIiIKKyAgIiMi CisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkKKyAgICAgICAgICAgICAgICAgICAocGx1czpQU0kgKGxzaGlmdHJ0OlBTSSAobWF0Y2hfZHVw IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCAyMykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAg ICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24g IiphZGRwc2kzLmx0MCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCisgICAgICAgIChwbHVzOlBTSSAo bHNoaWZ0cnQ6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgInIi KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIzKSkKKyAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UFNJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAgICAgICAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxv YWRfY29tcGxldGVkIgogICAibW92IF9fdG1wX3JlZ19fLCVDMVw7bHNsIF9fdG1wX3JlZ19fCiAJ YWRjICVBMCxfX3plcm9fcmVnX19cO2FkYyAlQjAsX196ZXJvX3JlZ19fXDthZGMgJUMwLF9femVy b19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNSIpCi0gICAoc2V0X2F0dHIgImNjIiAi Y2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNSIpXSkKIAotKGRlZmluZV9pbnNu ICIqYWRkc2kzLmx0MCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphZGRzaTMubHQwX3NwbGl0 IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAg ICAgICAgICAgICAgICAgIj1yIikKICAgICAgICAgKHBsdXM6U0kgKGxzaGlmdHJ0OlNJIChtYXRj aF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiciIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDMxKSkKICAgICAgICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6U0kgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAiMCIpKSldCiAgICIi CisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0 Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHBsdXM6U0kgKGxzaGlmdHJ0OlNJIChtYXRj aF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0 X2ludCAzMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisg ICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5z biAiKmFkZHNpMy5sdDAiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAocGx1czpTSSAobHNo aWZ0cnQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICJyIikKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMzEpKQorICAgICAgICAgICAg ICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAg ICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0 ZWQiCiAgICJtb3YgX190bXBfcmVnX18sJUQxXDtsc2wgX190bXBfcmVnX18KIAlhZGMgJUEwLF9f emVyb19yZWdfX1w7YWRjICVCMCxfX3plcm9fcmVnX19cO2FkYyAlQzAsX196ZXJvX3JlZ19fXDth ZGMgJUQwLF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiIpCi0gICAoc2V0 X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiIpXSkKIAot KGRlZmluZV9pbnNuICIqdW11bHFpaGkzLmNhbGwiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIq dW11bHFpaGkzLmNhbGxfc3BsaXQiCiAgIFsoc2V0IChyZWc6SEkgMjQpCiAgICAgICAgIChtdWx0 OkhJICh6ZXJvX2V4dGVuZDpISSAocmVnOlFJIDIyKSkKICAgICAgICAgICAgICAgICAgKHplcm9f ZXh0ZW5kOkhJIChyZWc6UUkgMjQpKSkpCiAgICAoY2xvYmJlciAocmVnOlFJIDIxKSkKICAgIChj bG9iYmVyIChyZWc6SEkgMjIpKV0KICAgIiFBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYgcmVs b2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkhJIDI0KQorICAgICAgICAg ICAgICAgICAgIChtdWx0OkhJICh6ZXJvX2V4dGVuZDpISSAocmVnOlFJIDIyKSkKKyAgICAgICAg ICAgICAgICAgICAoemVyb19leHRlbmQ6SEkgKHJlZzpRSSAyNCkpKSkKKyAgICAgICAgICAgICAg KGNsb2JiZXIgKHJlZzpRSSAyMSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6SEkgMjIp KQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5l X2luc24gIip1bXVscWloaTMuY2FsbCIKKyAgWyhzZXQgKHJlZzpISSAyNCkKKyAgICAgICAgKG11 bHQ6SEkgKHplcm9fZXh0ZW5kOkhJIChyZWc6UUkgMjIpKQorICAgICAgICAgICAgICAgICAoemVy b19leHRlbmQ6SEkgKHJlZzpRSSAyNCkpKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjEpKQorICAg KGNsb2JiZXIgKHJlZzpISSAyMikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAi IUFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fdW11bHFpaGkz IgotICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2Ji ZXIiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogOzsgInVtdWxxaWhpMyIK IDs7ICJtdWxxaWhpMyIKLShkZWZpbmVfaW5zbiAiPGV4dGVuZF91Pm11bHFpaGkzIgorCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICI8ZXh0ZW5kX3U+bXVscWloaTNfc3BsaXQiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAg ICAgICI9ciIpCiAgICAgICAgIChtdWx0OkhJIChhbnlfZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5k OlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICI8bXVsX3JfZD4iKSkKICAgICAgICAgICAgICAgICAg KGFueV9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjxt dWxfcl9kPiIpKSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21w bGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAg ICAgIChtdWx0OkhJIChhbnlfZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGFueV9leHRlbmQ6SEkgKG1hdGNoX2R1cCAyKSkpKQorICAgICAgICAg ICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIjxleHRl bmRfdT5tdWxxaWhpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAgICAgKG11bHQ6SEkgKGFu eV9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjxtdWxf cl9kPiIpKQorICAgICAgICAgICAgICAgICAoYW55X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpR SSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+IikpKSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIm11 bDxleHRlbmRfcz4gJTEsJTIKIAltb3Z3ICUwLHIwCiAJY2xyIF9femVyb19yZWdfXyIKLSAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpXSkKIAotKGRlZmluZV9pbnNuICJ1c211bHFpaGkzIgor KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAidXNtdWxxaWhpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikK ICAgICAgICAgKG11bHQ6SEkgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJhIikpCiAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpISSAo bWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKSkpXQogICAiQVZSX0hB VkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhz ZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtdWx0OkhJICh6ZXJvX2V4dGVu ZDpISSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzaWduX2V4 dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnVzbXVscWloaTMiCisgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAg ICI9ciIpCisgICAgICAgIChtdWx0OkhJICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpR SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKQorICAgICAgICAgICAgICAgICAoc2lnbl9leHRl bmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKSkpKQorICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29t cGxldGVkIgogICAibXVsc3UgJTIsJTEKIAltb3Z3ICUwLHIwCiAJY2xyIF9femVyb19yZWdfXyIK LSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIp XSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpXSkKIAogOzsgQWJvdmUgaW5zbiBpcyBub3Qg Y2Fub25pY2FsaXplZCBieSBpbnNuIGNvbWJpbmUsIHNvIGhlcmUgaXMgYSB2ZXJzaW9uIHdpdGgK IDs7IG9wZXJhbmRzIHN3YXBwZWQuCi0KLShkZWZpbmVfaW5zbiAiKnN1bXVscWloaTMiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqc3VtdWxxaWhpM19zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgIj1y IikKICAgICAgICAgKG11bHQ6SEkgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEg InJlZ2lzdGVyX29wZXJhbmQiICJhIikpCiAgICAgICAgICAgICAgICAgICh6ZXJvX2V4dGVuZDpI SSAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKSkpXQogICAiQVZS X0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtdWx0OkhJIChzaWduX2V4 dGVuZDpISSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6ZXJv X2V4dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnN1bXVscWloaTMiCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAg ICAgICI9ciIpCisgICAgICAgIChtdWx0OkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFu ZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKQorICAgICAgICAgICAgICAgICAoemVyb19l eHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKSkpKQor ICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2Fk X2NvbXBsZXRlZCIKICAgIm11bHN1ICUxLCUyCiAJbW92dyAlMCxyMAogCWNsciBfX3plcm9fcmVn X18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2Ji ZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKV0pCiAKIDs7IE9uZS1leHRlbmQgb3Bl cmFuZCAxCiAKLShkZWZpbmVfaW5zbiAiKm9zbXVscWloaTMiCisoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICIqb3NtdWxxaWhpM19zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj0m ciIpCiAgICAgICAgIChtdWx0OkhJIChub3Q6SEkgKHplcm9fZXh0ZW5kOkhJIChub3Q6UUkgKG1h dGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKSkpKQogICAgICAgICAgICAg ICAgICAoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgICAgICAgICAgICJhIikpKSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisg ICAgICAgICAgICAgICAgICAgKG11bHQ6SEkgKG5vdDpISSAoemVyb19leHRlbmQ6SEkgKG5vdDpR SSAobWF0Y2hfZHVwIDEpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNpZ25fZXh0 ZW5kOkhJIChtYXRjaF9kdXAgMikpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBS RUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqb3NtdWxxaWhpMyIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIj0mciIpCisgICAgICAgIChtdWx0OkhJIChub3Q6SEkgKHplcm9fZXh0 ZW5kOkhJIChub3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImEi KSkpKQorICAgICAgICAgICAgICAgICAoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkg MiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICJhIikpKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIK ICAgIm11bHN1ICUyLCUxCiAJbW92dyAlMCxyMAogCXN1YiAlQjAsJTIKIAljbHIgX196ZXJvX3Jl Z19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9i YmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCi0oZGVmaW5lX2luc24gIipv dW11bHFpaGkzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm91bXVscWloaTNfc3BsaXQiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9JnIiKQogICAgICAgICAobXVsdDpISSAobm90 OkhJICh6ZXJvX2V4dGVuZDpISSAobm90OlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVy X29wZXJhbmQiICJyIikpKSkKICAgICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRj aF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAiciIpKSkp XQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFso cGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtdWx0OkhJ IChub3Q6SEkgKHplcm9fZXh0ZW5kOkhJIChub3Q6UUkgKG1hdGNoX2R1cCAxKSkpKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfZHVwIDIpKSkpCisg ICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5z biAiKm91bXVscWloaTMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9JnIiKQorICAg ICAgICAobXVsdDpISSAobm90OkhJICh6ZXJvX2V4dGVuZDpISSAobm90OlFJIChtYXRjaF9vcGVy YW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkKKyAgICAgICAgICAgICAgICAgKHpl cm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAgICAgICAiciIpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiQVZS X0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICJtdWwgJTIsJTEKIAltb3Z3ICUwLHIw CiAJc3ViICVCMCwlMgogCWNsciBfX3plcm9fcmVnX18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIg IjQiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjQiKV0pCiAKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsgbXVsdGlwbHktYWRkL3N1YiBR STogJDAgPSAkMyArLy0gJDEqJDIKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotKGRlZmluZV9p bnNuICIqbWFkZHFpNCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiptYWRkcWk0X3NwbGl0Igog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAg ICAgICAgICI9ciIpCiAgICAgICAgIChwbHVzOlFJIChtdWx0OlFJIChtYXRjaF9vcGVyYW5kOlFJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKICAgICAgICAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgIjAiKSkp XQogCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAg WyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHBsdXM6 UUkgKG11bHQ6UUkgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9kdXAgMikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X2R1cCAzKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKm1hZGRxaTQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAgICAgKHBsdXM6UUkg KG11bHQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiciIpKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAzICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAgICAgICAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld CisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIm11bCAlMSwlMgogCWFk ZCAlQTAscjAKIAljbHIgX196ZXJvX3JlZ19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0IikK LSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0 IildKQogCi0oZGVmaW5lX2luc24gIiptc3VicWk0IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi Km1zdWJxaTRfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICAgICAgICAgICAgICI9ciIpCiAgICAgICAgIChtaW51czpRSSAobWF0Y2hf b3BlcmFuZDpRSSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAiMCIpCiAgICAgICAgICAg ICAgICAgICAobXVsdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi ciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpKSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAg ICAgICAgICAgICAgIChtaW51czpRSSAobWF0Y2hfZHVwIDMpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtdWx0OlFJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAo cmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptc3VicWk0IgorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAi PXIiKQorICAgICAgICAobWludXM6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMyAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgIjAiKQorICAgICAgICAgICAgICAgICAgKG11bHQ6UUkgKG1hdGNoX29w ZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpKQorICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29t cGxldGVkIgogICAibXVsICUxLCUyCiAJc3ViICVBMCxyMAogCWNsciBfX3plcm9fcmVnX18iCi0g IFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCiAKIChkZWZpbmVfaW5zbl9hbmRfc3BsaXQg IiptYWRkcWk0LmNvbnN0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAgICAgICAgICAgICAgICAgICAiPXIiKQpAQCAtMTgyMSwzOCArMjU4Miw2NiBAQAog CiA7OyAiKm1hZGRxaWhpNCIKIDs7ICIqdW1hZGRxaWhpNCIKLShkZWZpbmVfaW5zbiAiKjxleHRl bmRfdT5tYWRkcWloaTQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqPGV4dGVuZF91Pm1hZGRx aWhpNF9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKICAgICAgICAgKHBsdXM6 SEkgKG11bHQ6SEkgKGFueV9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjxtdWxfcl9kPiIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoYW55X2V4 dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+ IikpKQogICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAzICJyZWdpc3Rlcl9vcGVy YW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAiMCIpKSldCiAKICAgIkFWUl9IQVZFX01VTCIK KyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAocGx1czpISSAobXVsdDpISSAoYW55X2V4dGVu ZDpISSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChhbnlfZXh0ZW5kOkhJIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9kdXAgMykpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXSldKQorCisoZGVmaW5lX2luc24gIio8ZXh0ZW5kX3U+bWFkZHFpaGk0IgorICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAocGx1czpISSAobXVsdDpISSAoYW55X2V4dGVu ZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+Iikp CisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbnlfZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5k OlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICI8bXVsX3JfZD4iKSkpCisgICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOkhJIDMgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAg ICAgICAgICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZF X01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAibXVsPGV4dGVuZF9zPiAlMSwlMgogCWFkZCAl QTAscjAKIAlhZGMgJUIwLHIxCiAJY2xyIF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAi bGVuZ3RoIiAiNCIpXSkKIAogOzsgIiptc3VicWloaTQiCiA7OyAiKnVtc3VicWloaTQiCi0oZGVm aW5lX2luc24gIio8ZXh0ZW5kX3U+bXN1YnFpaGk0IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KjxleHRlbmRfdT5tc3VicWloaTRfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAg InJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIp CiAgICAgICAgIChtaW51czpISSAobWF0Y2hfb3BlcmFuZDpISSAzICJyZWdpc3Rlcl9vcGVyYW5k IiAgICAgICAgICAgICAgICAgICAgICAgICAiMCIpCiAgICAgICAgICAgICAgICAgICAobXVsdDpI SSAoYW55X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAi PG11bF9yX2Q+IikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW55X2V4dGVuZDpISSAo bWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+IikpKSkpXQog ICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFy YWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtaW51czpISSAo bWF0Y2hfZHVwIDMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtdWx0OkhJIChhbnlf ZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChhbnlfZXh0ZW5kOkhJIChtYXRjaF9kdXAgMikpKSkpCisgICAgICAgICAgICAgIChj bG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKjxleHRlbmRfdT5t c3VicWloaTQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCisgICAgICAgIChtaW51czpI SSAobWF0Y2hfb3BlcmFuZDpISSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAg ICAgICAgICAiMCIpCisgICAgICAgICAgICAgICAgICAobXVsdDpISSAoYW55X2V4dGVuZDpISSAo bWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+IikpCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAoYW55X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiPG11bF9yX2Q+IikpKSkpCisgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXQorICAiQVZSX0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICJtdWw8 ZXh0ZW5kX3M+ICUxLCUyCiAJc3ViICVBMCxyMAogCXNiYyAlQjAscjEKIAljbHIgX196ZXJvX3Jl Z19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9i YmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCiA7OyAiKnVzbWFkZHFpaGk0 IgogOzsgIipzdW1hZGRxaWhpNCIKLShkZWZpbmVfaW5zbiAiKjxhbnlfZXh0ZW5kOmV4dGVuZF9z dT48YW55X2V4dGVuZDI6ZXh0ZW5kX3N1Pm1zdWJxaWhpNCIKKyhkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgIio8YW55X2V4dGVuZDpleHRlbmRfc3U+PGFueV9leHRlbmQyOmV4dGVuZF9zdT5tc3VicWlo aTRfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCiAgICAgICAgIChwbHVzOkhJ IChtdWx0OkhJIChhbnlfZXh0ZW5kOkhJICAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiYSIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoYW55X2V4dGVuZDI6SEkg KG1hdGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKSkpCkBAIC0xODYwLDE4 ICsyNjQ5LDM0IEBACiAgICJBVlJfSEFWRV9NVUwKICAgICYmIHJlbG9hZF9jb21wbGV0ZWQKICAg ICYmIDxhbnlfZXh0ZW5kOkNPREU+ICE9IDxhbnlfZXh0ZW5kMjpDT0RFPiIKKyAgIiMiCisgICIm JiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAg ICAgICAgICAgICAgICAgICAocGx1czpISSAobXVsdDpISSAoYW55X2V4dGVuZDpISSAgKG1hdGNo X2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYW55X2V4dGVu ZDI6SEkgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X2R1cCAzKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKjxhbnlfZXh0ZW5kOmV4dGVuZF9zdT48YW55X2V4dGVuZDI6ZXh0ZW5k X3N1Pm1zdWJxaWhpNCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKKyAgICAgICAgKHBs dXM6SEkgKG11bHQ6SEkgKGFueV9leHRlbmQ6SEkgIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lz dGVyX29wZXJhbmQiICJhIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgIChhbnlfZXh0ZW5k MjpISSAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKSkKKyAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAg ICAgICAgICAgICAgICAgICAgICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0K KyAgIkFWUl9IQVZFX01VTAorICAgJiYgcmVsb2FkX2NvbXBsZXRlZAorICAgJiYgPGFueV9leHRl bmQ6Q09ERT4gIT0gPGFueV9leHRlbmQyOkNPREU+IgogICB7CiAgICAgb3V0cHV0X2FzbV9pbnNu ICg8YW55X2V4dGVuZDpDT0RFPiA9PSBTSUdOX0VYVEVORAogICAgICAgICAgICAgICAgICAgICAg PyAibXVsc3UgJTEsJTIiIDogIm11bHN1ICUyLCUxIiwgb3BlcmFuZHMpOwogCiAgICAgcmV0dXJu ICJhZGQgJUEwLHIwXDthZGMgJUIwLHIxXDtjbHIgX196ZXJvX3JlZ19fIjsKICAgfQotICBbKHNl dF9hdHRyICJsZW5ndGgiICI0IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBb KHNldF9hdHRyICJsZW5ndGgiICI0IildKQogCiA7OyAiKnVzbXN1YnFpaGk0IgogOzsgIipzdW1z dWJxaWhpNCIKLShkZWZpbmVfaW5zbiAiKjxhbnlfZXh0ZW5kOmV4dGVuZF9zdT48YW55X2V4dGVu ZDI6ZXh0ZW5kX3N1Pm1zdWJxaWhpNCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIio8YW55X2V4 dGVuZDpleHRlbmRfc3U+PGFueV9leHRlbmQyOmV4dGVuZF9zdT5tc3VicWloaTRfc3BsaXQiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQogICAgICAgICAobWludXM6SEkgKG1hdGNoX29w ZXJhbmQ6SEkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICIw IikKICAgICAgICAgICAgICAgICAgIChtdWx0OkhJIChhbnlfZXh0ZW5kOkhJICAobWF0Y2hfb3Bl cmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKQpAQCAtMTg3OSwxNCArMjY4NCwzMCBA QAogICAiQVZSX0hBVkVfTVVMCiAgICAmJiByZWxvYWRfY29tcGxldGVkCiAgICAmJiA8YW55X2V4 dGVuZDpDT0RFPiAhPSA8YW55X2V4dGVuZDI6Q09ERT4iCisgICIjIgorICAiJiYgcmVsb2FkX2Nv bXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAg ICAgICAgKG1pbnVzOkhJIChtYXRjaF9kdXAgMykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKG11bHQ6SEkgKGFueV9leHRlbmQ6SEkgIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChhbnlfZXh0ZW5kMjpISSAobWF0Y2hfZHVwIDIpKSkp KQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5l X2luc24gIio8YW55X2V4dGVuZDpleHRlbmRfc3U+PGFueV9leHRlbmQyOmV4dGVuZF9zdT5tc3Vi cWloaTQiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPXIiKQorICAgICAgICAobWludXM6SEkg KG1hdGNoX29wZXJhbmQ6SEkgMyAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAg ICAgICAgICIwIikKKyAgICAgICAgICAgICAgICAgIChtdWx0OkhJIChhbnlfZXh0ZW5kOkhJICAo bWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGFueV9leHRlbmQyOkhJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lz dGVyX29wZXJhbmQiICJhIikpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAi QVZSX0hBVkVfTVVMCisgICAmJiByZWxvYWRfY29tcGxldGVkCisgICAmJiA8YW55X2V4dGVuZDpD T0RFPiAhPSA8YW55X2V4dGVuZDI6Q09ERT4iCiAgIHsKICAgICBvdXRwdXRfYXNtX2luc24gKDxh bnlfZXh0ZW5kOkNPREU+ID09IFNJR05fRVhURU5ECiAgICAgICAgICAgICAgICAgICAgICA/ICJt dWxzdSAlMSwlMiIgOiAibXVsc3UgJTIsJTEiLCBvcGVyYW5kcyk7CiAKICAgICByZXR1cm4gInN1 YiAlQTAscjBcO3NiYyAlQjAscjFcO2NsciBfX3plcm9fcmVnX18iOwogICB9Ci0gIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjQiKV0pCiAKIDs7IEhhbmRsZSBzbWFsbCBjb25zdGFudHMKIApAQCAt MjEzMCwxNyArMjk1MSwyOCBAQAogOzsgVGhlIEVYVEVORCBvZiAkMSBvbmx5IGFwcGVhcnMgaW4g Y29tYmluZSwgd2UgZG9uJ3Qgc2VlIGl0IGluIGV4cGFuZCBzbyB0aGF0CiA7OyBleHBhbmQgZGVj aWRlcyB0byB1c2UgQVNISUZUIGluc3RlYWQgb2YgTVVMIGJlY2F1c2UgQVNISUZUIGNvc3RzIGFy ZSBjaGVhcGVyCiA7OyBhdCB0aGF0IHRpbWUuICBGaXggdGhhdC4KLQotKGRlZmluZV9pbnNuICIq YXNoaWZ0cWloaTIuc2lnbnguMSIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphc2hpZnRxaWhp Mi5zaWdueC4xX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciwqciIpCiAgICAgICAgIChhc2hp ZnQ6SEkgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLHIiKSkKICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpKSldCiAgICIiCisg ICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hf ZHVwIDApCisgICAgICAgICAgICAgICAgICAgKGFzaGlmdDpISSAoc2lnbl9leHRlbmQ6SEkgKG1h dGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkp KQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5l X2luc24gIiphc2hpZnRxaWhpMi5zaWdueC4xIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgICI9ciwqciIpCisg ICAgICAgIChhc2hpZnQ6SEkgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJl Z2lzdGVyX29wZXJhbmQiICIwLHIiKSkKKyAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEp KSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSkgXQorICAicmVsb2FkX2NvbXBsZXRlZCIK ICAgIkAKIAlsc2wgJUEwXDtzYmMgJUIwLCVCMAogCW1vdiAlQTAsJTFcO2xzbCAlQTBcO3NiYyAl QjAsJUIwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyLDMiKQotICAgKHNldF9hdHRyICJjYyIg ImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsMyIpXSkKIAogKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiKmFzaGlmdGhpMy5zaWdueC5jb25zdCIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAi PXIiKQpAQCAtMjIwMCw0NyArMzAzMiw4MyBAQAogOyBtdWwgSEk6ICQxID0gc2lnbi0vemVyby0v b25lLWV4dGVuZCwgJDIgPSByZWcKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotKGRlZmluZV9p bnNuICJtdWxzcWloaTMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJtdWxzcWloaTMiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAg ICAgICAgICAgIj0mciIpCiAgICAgICAgIChtdWx0OkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hf b3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKQogICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgImEi KSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChtdWx0 OkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptdWxzcWloaTMiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgIj0m ciIpCisgICAgICAgIChtdWx0OkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgImEiKSkpCisgICAoY2xv YmJlciAocmVnOkNDIFJFR19DQykpXQorICAiQVZSX0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0 ZWQiCiAgICJtdWxzdSAlMSwlQTIKIAltb3Z3ICUwLHIwCiAJbXVsICUxLCVCMgogCWFkZCAlQjAs cjAKIAljbHIgX196ZXJvX3JlZ19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI1IikKLSAgIChz ZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI1IildKQog Ci0oZGVmaW5lX2luc24gIm11bHVxaWhpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIm11bHVx aWhpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAg ICAgICAgICAgICAgICAgICAgICAiPSZyIikKICAgICAgICAgKG11bHQ6SEkgKHplcm9fZXh0ZW5k OkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCiAgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAg ICAgICAgICAiciIpKSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYgcmVsb2FkX2Nv bXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAg ICAgICAgKG11bHQ6SEkgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptdWx1cWloaTMiCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAg ICAgICAgICAgIj0mciIpCisgICAgICAgIChtdWx0OkhJICh6ZXJvX2V4dGVuZDpISSAobWF0Y2hf b3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQorICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgInIi KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiQVZSX0hBVkVfTVVMICYmIHJl bG9hZF9jb21wbGV0ZWQiCiAgICJtdWwgJTEsJUEyCiAJbW92dyAlMCxyMAogCW11bCAlMSwlQjIK IAlhZGQgJUIwLHIwCiAJY2xyIF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAi NSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiNSIpXSkKIAogOzsgb25lLWV4dGVuZCBvcGVyYW5kIDEKIAotKGRlZmluZV9pbnNuICJtdWxv cWloaTMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJtdWxvcWloaTMiCiAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICI9JnIiKQogICAgICAgICAobXVsdDpISSAobm90OkhJICh6ZXJvX2V4 dGVuZDpISSAobm90OlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJy IikpKSkKICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIpKSldCiAgICJBVlJfSEFW RV9NVUwiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKG11bHQ6SEkgKG5vdDpISSAoemVy b19leHRlbmQ6SEkgKG5vdDpRSSAobWF0Y2hfZHVwIDEpKSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKm11bG9xaWhpMyIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIj0mciIpCisgICAgICAgIChtdWx0OkhJIChub3Q6SEkgKHplcm9fZXh0 ZW5kOkhJIChub3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KSkpKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIikpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgog ICAibXVsICUxLCVBMgogCW1vdncgJTAscjAKIAltdWwgJTEsJUIyCiAJYWRkICVCMCxyMAogCXN1 YiAlQjAsJUEyCiAJY2xyIF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiIp Ci0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAi NiIpXSkKIAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogCkBAIC0yMjg4LDE4ICszMTU2LDMwIEBA CiAgICAgICBvcGVyYW5kc1syXSA9IGZvcmNlX3JlZyAoSEltb2RlLCBvcGVyYW5kc1syXSk7CiAg IH0pCiAKLShkZWZpbmVfaW5zbiAiKm11bGhpM19lbmgiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICIqbXVsaGkzX2VuaF9zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgIj0mciIpCiAgICAgICAgIChtdWx0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDEg InJlZ2lzdGVyX29wZXJhbmQiICJyIikKICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIK KyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAw KQorICAgICAgICAgICAgICAgICAgIChtdWx0OkhJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbXVsaGkzX2VuaCIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj0mciIpCisgICAgICAg IChtdWx0OkhJIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKKyAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIi KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiQVZSX0hBVkVfTVVMICYmIHJl bG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gUkVHTk8gKG9wZXJhbmRzWzFdKSA9PSBS RUdOTyAob3BlcmFuZHNbMl0pCiAgICAgICAgICAgID8gIm11bCAlQTEsJUExXDttb3Z3ICUwLHIw XDttdWwgJUExLCVCMVw7YWRkICVCMCxyMFw7YWRkICVCMCxyMFw7Y2xyIHIxIgogICAgICAgICAg ICA6ICJtdWwgJUExLCVBMlw7bW92dyAlMCxyMFw7bXVsICVBMSwlQjJcO2FkZCAlQjAscjBcO211 bCAlQjEsJUEyXDthZGQgJUIwLHIwXDtjbHIgcjEiOwogICB9Ci0gIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjciKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxl bmd0aCIgIjciKV0pCiAKIChkZWZpbmVfZXhwYW5kICJtdWxoaTNfY2FsbCIKICAgWyhzZXQgKHJl ZzpISSAyNCkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpKQpAQCAt MjMxNSwxNCArMzE5NSwyNiBAQAogICB9KQogCiAKLShkZWZpbmVfaW5zbiAiKm11bGhpM19jYWxs IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm11bGhpM19jYWxsX3NwbGl0IgogICBbKHNldCAo cmVnOkhJIDI0KSAobXVsdDpISSAocmVnOkhJIDI0KSAocmVnOkhJIDIyKSkpCiAgICAoY2xvYmJl ciAocmVnOkhJIDIyKSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjEpKV0KICAgIiFBVlJfSEFWRV9N VUwiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAo cmVnOkhJIDI0KSAobXVsdDpISSAocmVnOkhJIDI0KSAocmVnOkhJIDIyKSkpCisgICAgICAgICAg ICAgIChjbG9iYmVyIChyZWc6SEkgMjIpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJ IDIxKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRl ZmluZV9pbnNuICIqbXVsaGkzX2NhbGwiCisgIFsoc2V0IChyZWc6SEkgMjQpIChtdWx0OkhJIChy ZWc6SEkgMjQpIChyZWc6SEkgMjIpKSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjIpKQorICAgKGNs b2JiZXIgKHJlZzpRSSAyMSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiIUFW Ul9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fbXVsaGkzIgotICBb KHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogOzsgVG8gc3VwcG9ydCB3aWRlbmlu ZyBtdWx0aXBsaWNhdGlvbiB3aXRoIGNvbnN0YW50IHdlIHBvc3Rwb25lCiA7OyBleHBhbmRpbmcg dG8gdGhlIGltcGxpY2l0IGxpYnJhcnkgY2FsbCB1bnRpbCBwb3N0IGNvbWJpbmUgYW5kCkBAIC0y NjQzLDY3ICszNTM1LDE0NCBAQAogICAgIGF2cl9maXhfaW5wdXRzIChvcGVyYW5kcywgMSA8PCAy LCByZWdtYXNrIChISW1vZGUsIDE4KSk7CiAgIH0pCiAKLQotKGRlZmluZV9pbnNuICIqbXVsc2kz X2NhbGwiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqbXVsc2kzX2NhbGxfc3BsaXQiCiAgIFso c2V0IChyZWc6U0kgMjIpCiAgICAgICAgIChtdWx0OlNJIChyZWc6U0kgMjIpCiAgICAgICAgICAg ICAgICAgIChyZWc6U0kgMTgpKSkKICAgIChjbG9iYmVyIChyZWc6SEkgMjYpKV0KICAgIkFWUl9I QVZFX01VTCIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFso c2V0IChyZWc6U0kgMjIpCisgICAgICAgICAgICAgICAgICAgKG11bHQ6U0kgKHJlZzpTSSAyMikK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnOlNJIDE4KSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6SEkgMjYpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiptdWxzaTNfY2FsbCIKKyAgWyhzZXQgKHJlZzpT SSAyMikKKyAgICAgICAgKG11bHQ6U0kgKHJlZzpTSSAyMikKKyAgICAgICAgICAgICAgICAgKHJl ZzpTSSAxOCkpKQorICAgKGNsb2JiZXIgKHJlZzpISSAyNikpCisgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXQorICAiQVZSX0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNh bGwgX19tdWxzaTMiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIg ImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQogCiA7OyAi Km11bGhpc2kzX2NhbGwiCiA7OyAiKnVtdWxoaXNpM19jYWxsIgotKGRlZmluZV9pbnNuICIqPGV4 dGVuZF91Pm11bGhpc2kzX2NhbGwiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqPGV4dGVuZF91 Pm11bGhpc2kzX2NhbGxfc3BsaXQiCiAgIFsoc2V0IChyZWc6U0kgMjIpCiAgICAgICAgIChtdWx0 OlNJIChhbnlfZXh0ZW5kOlNJIChyZWc6SEkgMTgpKQogICAgICAgICAgICAgICAgICAoYW55X2V4 dGVuZDpTSSAocmVnOkhJIDI2KSkpKV0KICAgIkFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6U0kgMjIpCisgICAgICAg ICAgICAgICAgICAgKG11bHQ6U0kgKGFueV9leHRlbmQ6U0kgKHJlZzpISSAxOCkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGFueV9leHRlbmQ6U0kgKHJlZzpISSAyNikpKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIq PGV4dGVuZF91Pm11bGhpc2kzX2NhbGwiCisgIFsoc2V0IChyZWc6U0kgMjIpCisgICAgICAgICht dWx0OlNJIChhbnlfZXh0ZW5kOlNJIChyZWc6SEkgMTgpKQorICAgICAgICAgICAgICAgICAoYW55 X2V4dGVuZDpTSSAocmVnOkhJIDI2KSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0K KyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fPGV4dGVu ZF91Pm11bGhpc2kzIgotICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRy ICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogOzsg Iip1bXVsaGkzX2hpZ2hwYXJ0X2NhbGwiCiA7OyAiKnNtdWxoaTNfaGlnaHBhcnRfY2FsbCIKLShk ZWZpbmVfaW5zbiAiKjxleHRlbmRfc3U+bXVsaGkzX2hpZ2hwYXJ0X2NhbGwiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICIqPGV4dGVuZF9zdT5tdWxoaTNfaGlnaHBhcnRfY2FsbF9zcGxpdCIKICAg WyhzZXQgKHJlZzpISSAyNCkKICAgICAgICAgKHRydW5jYXRlOkhJIChsc2hpZnRydDpTSSAobXVs dDpTSSAoYW55X2V4dGVuZDpTSSAocmVnOkhJIDE4KSkKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoYW55X2V4dGVuZDpTSSAocmVnOkhJIDI2KSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxNikpKSkKICAgIChjbG9iYmVy IChyZWc6SEkgMjIpKV0KICAgIkFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiByZWxvYWRfY29t cGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6SEkgMjQpCisgICAgICAgICAgICAgICAg ICAgKHRydW5jYXRlOkhJIChsc2hpZnRydDpTSSAobXVsdDpTSSAoYW55X2V4dGVuZDpTSSAocmVn OkhJIDE4KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChhbnlfZXh0ZW5kOlNJIChyZWc6SEkgMjYpKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMTYpKSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6SEkgMjIpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIio8ZXh0ZW5kX3N1Pm11bGhpM19oaWdocGFydF9j YWxsIgorICBbKHNldCAocmVnOkhJIDI0KQorICAgICAgICAodHJ1bmNhdGU6SEkgKGxzaGlmdHJ0 OlNJIChtdWx0OlNJIChhbnlfZXh0ZW5kOlNJIChyZWc6SEkgMTgpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhbnlfZXh0ZW5kOlNJIChyZWc6SEkgMjYpKSkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDE2KSkpKQorICAg KGNsb2JiZXIgKHJlZzpISSAyMikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAi QVZSX0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX188ZXh0ZW5kX3U+ bXVsaGlzaTMiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIgImNj IiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQogCi0oZGVmaW5l X2luc24gIip1c211bGhpc2kzX2NhbGwiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqdXNtdWxo aXNpM19jYWxsX3NwbGl0IgogICBbKHNldCAocmVnOlNJIDIyKQogICAgICAgICAobXVsdDpTSSAo emVyb19leHRlbmQ6U0kgKHJlZzpISSAxOCkpCiAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVu ZDpTSSAocmVnOkhJIDI2KSkpKV0KICAgIkFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiByZWxv YWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6U0kgMjIpCisgICAgICAgICAg ICAgICAgICAgKG11bHQ6U0kgKHplcm9fZXh0ZW5kOlNJIChyZWc6SEkgMTgpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpTSSAocmVnOkhJIDI2KSkpKQorICAgICAg ICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIip1 c211bGhpc2kzX2NhbGwiCisgIFsoc2V0IChyZWc6U0kgMjIpCisgICAgICAgIChtdWx0OlNJICh6 ZXJvX2V4dGVuZDpTSSAocmVnOkhJIDE4KSkKKyAgICAgICAgICAgICAgICAgKHNpZ25fZXh0ZW5k OlNJIChyZWc6SEkgMjYpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiQVZS X0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX191c211bGhpc2kzIgot ICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIi KV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAotKGRlZmluZV9pbnNuICIqbXVs PGV4dGVuZF9zdT5oaXNpM19jYWxsIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKm11bDxleHRl bmRfc3U+aGlzaTNfY2FsbF9zcGxpdCIKICAgWyhzZXQgKHJlZzpTSSAyMikKICAgICAgICAgKG11 bHQ6U0kgKGFueV9leHRlbmQ6U0kgKHJlZzpISSAyNikpCiAgICAgICAgICAgICAgICAgIChyZWc6 U0kgMTgpKSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRl ZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOlNJIDIyKQorICAgICAgICAgICAgICAgICAgICht dWx0OlNJIChhbnlfZXh0ZW5kOlNJIChyZWc6SEkgMjYpKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChyZWc6U0kgMTgpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbXVsPGV4dGVuZF9zdT5oaXNpM19jYWxsIgorICBb KHNldCAocmVnOlNJIDIyKQorICAgICAgICAobXVsdDpTSSAoYW55X2V4dGVuZDpTSSAocmVnOkhJ IDI2KSkKKyAgICAgICAgICAgICAgICAgKHJlZzpTSSAxOCkpKQorICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiJX5j YWxsIF9fbXVsPGV4dGVuZF9zdT5oaXNpMyIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikK LSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNh bGwiKV0pCiAKLShkZWZpbmVfaW5zbiAiKm11bG9oaXNpM19jYWxsIgorKGRlZmluZV9pbnNuX2Fu ZF9zcGxpdCAiKm11bG9oaXNpM19jYWxsX3NwbGl0IgogICBbKHNldCAocmVnOlNJIDIyKQogICAg ICAgICAobXVsdDpTSSAobm90OlNJICh6ZXJvX2V4dGVuZDpTSSAobm90OkhJIChyZWc6SEkgMjYp KSkpCiAgICAgICAgICAgICAgICAgIChyZWc6U0kgMTgpKSldCiAgICJBVlJfSEFWRV9NVUwiCisg ICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOlNJ IDIyKQorICAgICAgICAgICAgICAgICAgIChtdWx0OlNJIChub3Q6U0kgKHplcm9fZXh0ZW5kOlNJ IChub3Q6SEkgKHJlZzpISSAyNikpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVn OlNJIDE4KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKm11bG9oaXNpM19jYWxsIgorICBbKHNldCAocmVnOlNJIDIyKQorICAg ICAgICAobXVsdDpTSSAobm90OlNJICh6ZXJvX2V4dGVuZDpTSSAobm90OkhJIChyZWc6SEkgMjYp KSkpCisgICAgICAgICAgICAgICAgIChyZWc6U0kgMTgpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2Fs bCBfX211bG9oaXNpMyIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0 ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKIDsg LyAlIC8gJSAvICUgLyAlIC8gJSAvICUgLyAlIC8gJSAvICUgLyAlIC8gJSAvICUgLyAlIC8gJSAv ICUgLyAlIC8gJSAvICUgLyAlCiA7IGRpdm1vZApAQCAtMjcxNiwxNSArMzY4NSwxNSBAQAogOzsg ICAgQ1NFIGhhcyBwcm9ibGVtcyB0byBvcGVyYXRlIG9uIGhhcmQgcmVncy4KIDs7CiAoZGVmaW5l X2luc25fYW5kX3NwbGl0ICJkaXZtb2RxaTQiCi0gIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6UUkgMCAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQotICAgICAgICAgICAgICAg ICAgIChkaXY6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQi ICIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAicHNl dWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKSkpCi0gICAgICAgICAgICAgIChzZXQgKG1hdGNoX29w ZXJhbmQ6UUkgMyAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQotICAgICAgICAgICAgICAg ICAgIChtb2Q6UUkgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKLSAgICAgICAgICAgICAg KGNsb2JiZXIgKHJlZzpRSSAyMikpCi0gICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjMp KQotICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDI0KSkKLSAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpRSSAyNSkpXSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInBzZXVk b19yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgICAgICAgKGRpdjpRSSAobWF0Y2hfb3BlcmFuZDpR SSAxICJwc2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6UUkgMiAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKSkpCisgICAoc2V0ICht YXRjaF9vcGVyYW5kOlFJIDMgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgICAgICAg KG1vZDpRSSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKQorICAgKGNsb2JiZXIgKHJlZzpR SSAyMikpCisgICAoY2xvYmJlciAocmVnOlFJIDIzKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjQp KQorICAgKGNsb2JiZXIgKHJlZzpRSSAyNSkpXQogICAiIgogICAidGhpcyBkaXZtb2RxaTQgcGF0 dGVybiBzaG91bGQgaGF2ZSBiZWVuIHNwbGl0dGVkOyIKICAgIiIKQEAgLTI3MzcsMjYgKzM3MDYs NDAgQEAKICAgIChzZXQgKG1hdGNoX2R1cCAwKSAocmVnOlFJIDI0KSkKICAgIChzZXQgKG1hdGNo X2R1cCAzKSAocmVnOlFJIDI1KSldKQogCi0oZGVmaW5lX2luc24gIipkaXZtb2RxaTRfY2FsbCIK KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipkaXZtb2RxaTRfY2FsbF9zcGxpdCIKICAgWyhzZXQg KHJlZzpRSSAyNCkgKGRpdjpRSSAocmVnOlFJIDI0KSAocmVnOlFJIDIyKSkpCiAgICAoc2V0IChy ZWc6UUkgMjUpIChtb2Q6UUkgKHJlZzpRSSAyNCkgKHJlZzpRSSAyMikpKQogICAgKGNsb2JiZXIg KHJlZzpRSSAyMikpCiAgICAoY2xvYmJlciAocmVnOlFJIDIzKSldCiAgICIiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOlFJIDI0KSAoZGl2 OlFJIChyZWc6UUkgMjQpIChyZWc6UUkgMjIpKSkKKyAgICAgICAgICAgICAgKHNldCAocmVnOlFJ IDI1KSAobW9kOlFJIChyZWc6UUkgMjQpIChyZWc6UUkgMjIpKSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpRSSAyMikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjMpKQor ICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2lu c24gIipkaXZtb2RxaTRfY2FsbCIKKyAgWyhzZXQgKHJlZzpRSSAyNCkgKGRpdjpRSSAocmVnOlFJ IDI0KSAocmVnOlFJIDIyKSkpCisgICAoc2V0IChyZWc6UUkgMjUpIChtb2Q6UUkgKHJlZzpRSSAy NCkgKHJlZzpRSSAyMikpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyMikpCisgICAoY2xvYmJlciAo cmVnOlFJIDIzKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29t cGxldGVkIgogICAiJX5jYWxsIF9fZGl2bW9kcWk0IgotICBbKHNldF9hdHRyICJ0eXBlIiAieGNh bGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUi ICJ4Y2FsbCIpXSkKIAogKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAidWRpdm1vZHFpNCIKLSBbKHBh cmFsbGVsIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5k IiAiIikKLSAgICAgICAgICAgICAgICAgICh1ZGl2OlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgInBz ZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlFJIDIgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiIikpKQotICAgICAg ICAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMyAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQi ICIiKQotICAgICAgICAgICAgICAgICAgKHVtb2Q6UUkgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVw IDIpKSkKLSAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDIyKSkKLSAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOlFJIDIzKSkKLSAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDI0KSkK LSAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDI1KSldKV0KKyBbKHNldCAobWF0Y2hfb3Bl cmFuZDpRSSAwICJwc2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAgICAgKHVkaXY6UUkg KG1hdGNoX29wZXJhbmQ6UUkgMSAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAi IikpKQorICAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMyAicHNldWRvX3JlZ2lzdGVyX29w ZXJhbmQiICIiKQorICAgICAgICAgICAgKHVtb2Q6UUkgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVw IDIpKSkKKyAgICAgICAoY2xvYmJlciAocmVnOlFJIDIyKSkKKyAgICAgICAoY2xvYmJlciAocmVn OlFJIDIzKSkKKyAgICAgICAoY2xvYmJlciAocmVnOlFJIDI0KSkKKyAgICAgICAoY2xvYmJlciAo cmVnOlFJIDI1KSldCiAgICIiCiAgICJ0aGlzIHVkaXZtb2RxaTQgcGF0dGVybiBzaG91bGQgaGF2 ZSBiZWVuIHNwbGl0dGVkOyIKICAgIiIKQEAgLTI3NjgsMjUgKzM3NTEsMzcgQEAKICAgIChzZXQg KG1hdGNoX2R1cCAwKSAocmVnOlFJIDI0KSkKICAgIChzZXQgKG1hdGNoX2R1cCAzKSAocmVnOlFJ IDI1KSldKQogCi0oZGVmaW5lX2luc24gIip1ZGl2bW9kcWk0X2NhbGwiCisoZGVmaW5lX2luc25f YW5kX3NwbGl0ICIqdWRpdm1vZHFpNF9jYWxsX3NwbGl0IgogICBbKHNldCAocmVnOlFJIDI0KSAo dWRpdjpRSSAocmVnOlFJIDI0KSAocmVnOlFJIDIyKSkpCiAgICAoc2V0IChyZWc6UUkgMjUpICh1 bW9kOlFJIChyZWc6UUkgMjQpIChyZWc6UUkgMjIpKSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjMp KV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFso c2V0IChyZWc6UUkgMjQpICh1ZGl2OlFJIChyZWc6UUkgMjQpIChyZWc6UUkgMjIpKSkKKyAgICAg ICAgICAgICAgKHNldCAocmVnOlFJIDI1KSAodW1vZDpRSSAocmVnOlFJIDI0KSAocmVnOlFJIDIy KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjMpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIip1ZGl2bW9kcWk0 X2NhbGwiCisgIFsoc2V0IChyZWc6UUkgMjQpICh1ZGl2OlFJIChyZWc6UUkgMjQpIChyZWc6UUkg MjIpKSkKKyAgIChzZXQgKHJlZzpRSSAyNSkgKHVtb2Q6UUkgKHJlZzpRSSAyNCkgKHJlZzpRSSAy MikpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyMykpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfX3VkaXZtb2RxaTQiCi0gIFso c2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkK KyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQogCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICJkaXZtb2RoaTQiCi0gIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicHNl dWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQotICAgICAgICAgICAgICAgICAgIChkaXY6SEkgKG1h dGNoX29wZXJhbmQ6SEkgMSAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAicHNldWRvX3JlZ2lzdGVyX29w ZXJhbmQiICIiKSkpCi0gICAgICAgICAgICAgIChzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMyAicHNl dWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQotICAgICAgICAgICAgICAgICAgIChtb2Q6SEkgKG1h dGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKLSAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpR SSAyMSkpCi0gICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6SEkgMjIpKQotICAgICAgICAgICAg ICAoY2xvYmJlciAocmVnOkhJIDI0KSkKLSAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSAy NikpXSldCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInBzZXVkb19yZWdpc3Rlcl9vcGVy YW5kIiAiIikKKyAgICAgICAgKGRpdjpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJwc2V1ZG9fcmVn aXN0ZXJfb3BlcmFuZCIgIiIpCisgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAi cHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKSkpCisgICAoc2V0IChtYXRjaF9vcGVyYW5kOkhJ IDMgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgICAgICAgKG1vZDpISSAobWF0Y2hf ZHVwIDEpIChtYXRjaF9kdXAgMikpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyMSkpCisgICAoY2xv YmJlciAocmVnOkhJIDIyKSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjQpKQorICAgKGNsb2JiZXIg KHJlZzpISSAyNikpXQogICAiIgogICAidGhpcyBzaG91bGQgaGF2ZSBiZWVuIHNwbGl0dGVkOyIK ICAgIiIKQEAgLTI3OTksMjYgKzM3OTQsNDAgQEAKICAgIChzZXQgKG1hdGNoX2R1cCAwKSAocmVn OkhJIDIyKSkKICAgIChzZXQgKG1hdGNoX2R1cCAzKSAocmVnOkhJIDI0KSldKQogCi0oZGVmaW5l X2luc24gIipkaXZtb2RoaTRfY2FsbCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipkaXZtb2Ro aTRfY2FsbF9zcGxpdCIKICAgWyhzZXQgKHJlZzpISSAyMikgKGRpdjpISSAocmVnOkhJIDI0KSAo cmVnOkhJIDIyKSkpCiAgICAoc2V0IChyZWc6SEkgMjQpIChtb2Q6SEkgKHJlZzpISSAyNCkgKHJl ZzpISSAyMikpKQogICAgKGNsb2JiZXIgKHJlZzpISSAyNikpCiAgICAoY2xvYmJlciAocmVnOlFJ IDIxKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAocmVnOkhJIDIyKSAoZGl2OkhJIChyZWc6SEkgMjQpIChyZWc6SEkgMjIpKSkKKyAg ICAgICAgICAgICAgKHNldCAocmVnOkhJIDI0KSAobW9kOkhJIChyZWc6SEkgMjQpIChyZWc6SEkg MjIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSAyNikpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6UUkgMjEpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipkaXZtb2RoaTRfY2FsbCIKKyAgWyhzZXQgKHJl ZzpISSAyMikgKGRpdjpISSAocmVnOkhJIDI0KSAocmVnOkhJIDIyKSkpCisgICAoc2V0IChyZWc6 SEkgMjQpIChtb2Q6SEkgKHJlZzpISSAyNCkgKHJlZzpISSAyMikpKQorICAgKGNsb2JiZXIgKHJl ZzpISSAyNikpCisgICAoY2xvYmJlciAocmVnOlFJIDIxKSkKKyAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fZGl2bW9kaGk0Igot ICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIi KV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAidWRpdm1vZGhpNCIKLSAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAw ICJwc2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCi0gICAgICAgICAgICAgICAgICAgKHVkaXY6 SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgInBzZXVkb19yZWdp c3Rlcl9vcGVyYW5kIiAiIikpKQotICAgICAgICAgICAgICAoc2V0IChtYXRjaF9vcGVyYW5kOkhJ IDMgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiIikKLSAgICAgICAgICAgICAgICAgICAodW1v ZDpISSAobWF0Y2hfZHVwIDEpIChtYXRjaF9kdXAgMikpKQotICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOlFJIDIxKSkKLSAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSAyMikpCi0gICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6SEkgMjQpKQotICAgICAgICAgICAgICAoY2xvYmJlciAo cmVnOkhJIDI2KSldKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicHNldWRvX3JlZ2lz dGVyX29wZXJhbmQiICIiKQorICAgICAgICAodWRpdjpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJw c2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOkhJIDIgInBzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiIikpKQorICAgKHNldCAobWF0Y2hf b3BlcmFuZDpISSAzICJwc2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCisgICAgICAgICh1bW9k OkhJIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkpCisgICAoY2xvYmJlciAocmVnOlFJIDIx KSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjIpKQorICAgKGNsb2JiZXIgKHJlZzpISSAyNCkpCisg ICAoY2xvYmJlciAocmVnOkhJIDI2KSldCiAgICIiCiAgICJ0aGlzIHVkaXZtb2RoaTQgcGF0dGVy biBzaG91bGQgaGF2ZSBiZWVuIHNwbGl0dGVkLjsiCiAgICIiCkBAIC0yODMxLDE1ICszODQwLDMw IEBACiAgICAoc2V0IChtYXRjaF9kdXAgMCkgKHJlZzpISSAyMikpCiAgICAoc2V0IChtYXRjaF9k dXAgMykgKHJlZzpISSAyNCkpXSkKIAotKGRlZmluZV9pbnNuICIqdWRpdm1vZGhpNF9jYWxsIgor KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnVkaXZtb2RoaTRfY2FsbF9zcGxpdCIKICAgWyhzZXQg KHJlZzpISSAyMikgKHVkaXY6SEkgKHJlZzpISSAyNCkgKHJlZzpISSAyMikpKQogICAgKHNldCAo cmVnOkhJIDI0KSAodW1vZDpISSAocmVnOkhJIDI0KSAocmVnOkhJIDIyKSkpCiAgICAoY2xvYmJl ciAocmVnOkhJIDI2KSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjEpKV0KICAgIiIKKyAgIiMiCisg ICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6SEkgMjIpICh1 ZGl2OkhJIChyZWc6SEkgMjQpIChyZWc6SEkgMjIpKSkKKyAgICAgICAgICAgICAgKHNldCAocmVn OkhJIDI0KSAodW1vZDpISSAocmVnOkhJIDI0KSAocmVnOkhJIDIyKSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6SEkgMjYpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDIx KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmlu ZV9pbnNuICIqdWRpdm1vZGhpNF9jYWxsIgorICBbKHNldCAocmVnOkhJIDIyKSAodWRpdjpISSAo cmVnOkhJIDI0KSAocmVnOkhJIDIyKSkpCisgICAoc2V0IChyZWc6SEkgMjQpICh1bW9kOkhJIChy ZWc6SEkgMjQpIChyZWc6SEkgMjIpKSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjYpKQorICAgKGNs b2JiZXIgKHJlZzpRSSAyMSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpCisgICBdCisg ICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fdWRpdm1vZGhpNCIKLSAgWyhzZXRfYXR0 ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNl dF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKIDs7IDI0LWJpdCBtdWx0 aXBseQpAQCAtMjg3MCwxMSArMzg5NCwyNCBAQAogICAgICAgRE9ORTsKICAgfSkKIAotKGRlZmlu ZV9pbnNuICIqdW11bHFpaGlwc2kzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnVtdWxxaWhp cHNpM19zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJh bmQiICAgICAgICAgICAgICAgICAgICAgICAgICI9JnIiKQogICAgICAgICAobXVsdDpQU0kgKHpl cm9fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIp KQogICAgICAgICAgICAgICAgICAgKHplcm9fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpISSAy ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAg IiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQor ICAgICAgICAgICAgICAgICAgIChtdWx0OlBTSSAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9kdXAg MSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh6ZXJvX2V4dGVuZDpQU0kgKG1hdGNo X2R1cCAyKSkpKQorICAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkK KworKGRlZmluZV9pbnNuICIqdW11bHFpaGlwc2kzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQ U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgIj0mciIpCisg ICAgICAgIChtdWx0OlBTSSAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJl Z2lzdGVyX29wZXJhbmQiICJyIikpCisgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6UFNJ IChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkKKyAgIChjbG9i YmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRl ZCIKICAgIm11bCAlMSwlQTIKIAltb3Z3ICVBMCxyMAogCW11bCAlMSwlQjIKQEAgLTI4ODIsMTQg KzM5MTksMjYgQEAKIAlhZGQgJUIwLHIwCiAJYWRjICVDMCxyMQogCWNsciBfX3plcm9fcmVnX18i Ci0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjciKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIi KV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjciKV0pCiAKLShkZWZpbmVfaW5zbiAiKnVtdWxo aXFpcHNpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip1bXVsaGlxaXBzaTNfc3BsaXQiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAg ICAgICAgICAgICAgICAiPSZyIikKICAgICAgICAgKG11bHQ6UFNJICh6ZXJvX2V4dGVuZDpQU0kg KG1hdGNoX29wZXJhbmQ6SEkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKICAgICAgICAgICAg ICAgICAgICh6ZXJvX2V4dGVuZDpQU0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgInIiKSkpKV0KICAgIkFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiByZWxvYWRfY29t cGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAg ICAgICAobXVsdDpQU0kgKHplcm9fZXh0ZW5kOlBTSSAobWF0Y2hfZHVwIDIpKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9kdXAgMSkpKSkKKyAg ICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNu ICIqdW11bGhpcWlwc2kzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJf b3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgIj0mciIpCisgICAgICAgIChtdWx0OlBT SSAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9vcGVyYW5kOkhJIDIgInJlZ2lzdGVyX29wZXJhbmQi ICJyIikpCisgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6UFNJIChtYXRjaF9vcGVyYW5k OlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVH X0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgIm11bCAlMSwl QTIKIAltb3Z3ICVBMCxyMAogCW11bCAlMSwlQjIKQEAgLTI4OTcsOCArMzk0Niw3IEBACiAJbW92 ICVDMCxyMQogCWNsciBfX3plcm9fcmVnX18KIAlhZGMgJUMwLF9femVyb19yZWdfXyIKLSAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiNyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiNyIpXSkKIAogKGRlZmluZV9leHBhbmQgIm11bHNxaXBzaTMi CiAgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInBzZXVkb19yZWdpc3Rl cl9vcGVyYW5kIiAiIikKQEAgLTI5NjMsMTYgKzQwMTEsMjggQEAKICAgICAgIH0KICAgfSkKIAot KGRlZmluZV9pbnNuICIqbXVsc3FpcHNpMy5saWJnY2MiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0 ICIqbXVsc3FpcHNpMy5saWJnY2Nfc3BsaXQiCiAgIFsoc2V0IChyZWc6UFNJIDE4KQogICAgICAg ICAobXVsdDpQU0kgKHNpZ25fZXh0ZW5kOlBTSSAocmVnOlFJIDI1KSkKICAgICAgICAgICAgICAg ICAgIChyZWc6UFNJIDIyKSkpXQogICAiQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9h ZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpQU0kgMTgpCisgICAgICAgICAg ICAgICAgICAgKG11bHQ6UFNJIChzaWduX2V4dGVuZDpQU0kgKHJlZzpRSSAyNSkpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChyZWc6UFNJIDIyKSkpCisgICAgICAgICAgICAgIChjbG9i YmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKm11bHNxaXBzaTMubGli Z2NjIgorICBbKHNldCAocmVnOlBTSSAxOCkKKyAgICAgICAgKG11bHQ6UFNJIChzaWduX2V4dGVu ZDpQU0kgKHJlZzpRSSAyNSkpCisgICAgICAgICAgICAgICAgICAocmVnOlBTSSAyMikpKQorICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29t cGxldGVkIgogICAiJX5jYWxsIF9fbXVsc3FpcHNpMyIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhj YWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBl IiAieGNhbGwiKV0pCiAKLShkZWZpbmVfaW5zbiAiKm11bHBzaTMubGliZ2NjIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiKm11bHBzaTMubGliZ2NjX3NwbGl0IgogICBbKHNldCAocmVnOlBTSSAy MikKICAgICAgICAgKG11bHQ6UFNJIChyZWc6UFNJIDIyKQogICAgICAgICAgICAgICAgICAgKHJl ZzpQU0kgMTgpKSkKQEAgLTI5ODAsOSArNDA0MCwyNyBAQAogICAgKGNsb2JiZXIgKHJlZzpRSSAy NSkpCiAgICAoY2xvYmJlciAocmVnOkhJIDI2KSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgor ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOlBTSSAyMikK KyAgICAgICAgICAgICAgICAgICAobXVsdDpQU0kgKHJlZzpQU0kgMjIpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChyZWc6UFNJIDE4KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChy ZWc6UUkgMjEpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDI1KSkKKyAgICAgICAg ICAgICAgKGNsb2JiZXIgKHJlZzpISSAyNikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKm11bHBzaTMubGliZ2NjIgorICBbKHNl dCAocmVnOlBTSSAyMikKKyAgICAgICAgKG11bHQ6UFNJIChyZWc6UFNJIDIyKQorICAgICAgICAg ICAgICAgICAgKHJlZzpQU0kgMTgpKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjEpKQorICAgKGNs b2JiZXIgKHJlZzpRSSAyNSkpCisgICAoY2xvYmJlciAocmVnOkhJIDI2KSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIK ICAgIiV+Y2FsbCBfX211bHBzaTMiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAo c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIild KQogCiAKIDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsKQEAgLTMwMTMsMTYgKzQwOTEsMzIgQEAKICAgIChzZXQgKG1h dGNoX2R1cCAwKSAocmVnOlBTSSAyMikpCiAgICAoc2V0IChtYXRjaF9kdXAgMykgKHJlZzpQU0kg MTgpKV0pCiAKLShkZWZpbmVfaW5zbiAiKmRpdm1vZHBzaTRfY2FsbCIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIipkaXZtb2Rwc2k0X2NhbGxfc3BsaXQiCiAgIFsoc2V0IChyZWc6UFNJIDIyKSAo ZGl2OlBTSSAocmVnOlBTSSAyMikgKHJlZzpQU0kgMTgpKSkKICAgIChzZXQgKHJlZzpQU0kgMTgp IChtb2Q6UFNJIChyZWc6UFNJIDIyKSAocmVnOlBTSSAxOCkpKQogICAgKGNsb2JiZXIgKHJlZzpR SSAyMSkpCiAgICAoY2xvYmJlciAocmVnOlFJIDI1KSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjYp KV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFso c2V0IChyZWc6UFNJIDIyKSAoZGl2OlBTSSAocmVnOlBTSSAyMikgKHJlZzpQU0kgMTgpKSkKKyAg ICAgICAgICAgICAgKHNldCAocmVnOlBTSSAxOCkgKG1vZDpQU0kgKHJlZzpQU0kgMjIpIChyZWc6 UFNJIDE4KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjEpKQorICAgICAgICAg ICAgICAoY2xvYmJlciAocmVnOlFJIDI1KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpR SSAyNikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhk ZWZpbmVfaW5zbiAiKmRpdm1vZHBzaTRfY2FsbCIKKyAgWyhzZXQgKHJlZzpQU0kgMjIpIChkaXY6 UFNJIChyZWc6UFNJIDIyKSAocmVnOlBTSSAxOCkpKQorICAgKHNldCAocmVnOlBTSSAxOCkgKG1v ZDpQU0kgKHJlZzpQU0kgMjIpIChyZWc6UFNJIDE4KSkpCisgICAoY2xvYmJlciAocmVnOlFJIDIx KSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjUpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyNikpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+ Y2FsbCBfX2Rpdm1vZHBzaTQiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0 X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQog CiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJ1ZGl2bW9kcHNpNCIKICAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIiKQpAQCAt MzA0NiwxNiArNDE0MCwzMiBAQAogICAgKHNldCAobWF0Y2hfZHVwIDApIChyZWc6UFNJIDIyKSkK ICAgIChzZXQgKG1hdGNoX2R1cCAzKSAocmVnOlBTSSAxOCkpXSkKIAotKGRlZmluZV9pbnNuICIq dWRpdm1vZHBzaTRfY2FsbCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip1ZGl2bW9kcHNpNF9j YWxsX3NwbGl0IgogICBbKHNldCAocmVnOlBTSSAyMikgKHVkaXY6UFNJIChyZWc6UFNJIDIyKSAo cmVnOlBTSSAxOCkpKQogICAgKHNldCAocmVnOlBTSSAxOCkgKHVtb2Q6UFNJIChyZWc6UFNJIDIy KSAocmVnOlBTSSAxOCkpKQogICAgKGNsb2JiZXIgKHJlZzpRSSAyMSkpCiAgICAoY2xvYmJlciAo cmVnOlFJIDI1KSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjYpKV0KICAgIiIKKyAgIiMiCisgICIm JiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6UFNJIDIyKSAodWRp djpQU0kgKHJlZzpQU0kgMjIpIChyZWc6UFNJIDE4KSkpCisgICAgICAgICAgICAgIChzZXQgKHJl ZzpQU0kgMTgpICh1bW9kOlBTSSAocmVnOlBTSSAyMikgKHJlZzpQU0kgMTgpKSkKKyAgICAgICAg ICAgICAgKGNsb2JiZXIgKHJlZzpRSSAyMSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6 UUkgMjUpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDI2KSkKKyAgICAgICAgICAg ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqdWRpdm1v ZHBzaTRfY2FsbCIKKyAgWyhzZXQgKHJlZzpQU0kgMjIpICh1ZGl2OlBTSSAocmVnOlBTSSAyMikg KHJlZzpQU0kgMTgpKSkKKyAgIChzZXQgKHJlZzpQU0kgMTgpICh1bW9kOlBTSSAocmVnOlBTSSAy MikgKHJlZzpQU0kgMTgpKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjEpKQorICAgKGNsb2JiZXIg KHJlZzpRSSAyNSkpCisgICAoY2xvYmJlciAocmVnOlFJIDI2KSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fdWRpdm1vZHBz aTQiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xv YmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQogCiA7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 CiAKQEAgLTMwODEsMTUgKzQxOTEsMjkgQEAKICAgIChzZXQgKG1hdGNoX2R1cCAwKSAocmVnOlNJ IDE4KSkKICAgIChzZXQgKG1hdGNoX2R1cCAzKSAocmVnOlNJIDIyKSldKQogCi0oZGVmaW5lX2lu c24gIipkaXZtb2RzaTRfY2FsbCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipkaXZtb2RzaTRf Y2FsbF9zcGxpdCIKICAgWyhzZXQgKHJlZzpTSSAxOCkgKGRpdjpTSSAocmVnOlNJIDIyKSAocmVn OlNJIDE4KSkpCiAgICAoc2V0IChyZWc6U0kgMjIpIChtb2Q6U0kgKHJlZzpTSSAyMikgKHJlZzpT SSAxOCkpKQogICAgKGNsb2JiZXIgKHJlZzpISSAyNikpCiAgICAoY2xvYmJlciAocmVnOkhJIDMw KSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBb KHNldCAocmVnOlNJIDE4KSAoZGl2OlNJIChyZWc6U0kgMjIpIChyZWc6U0kgMTgpKSkKKyAgICAg ICAgICAgICAgKHNldCAocmVnOlNJIDIyKSAobW9kOlNJIChyZWc6U0kgMjIpIChyZWc6U0kgMTgp KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSAyNikpCisgICAgICAgICAgICAgIChj bG9iYmVyIChyZWc6SEkgMzApKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXSldKQorCisoZGVmaW5lX2luc24gIipkaXZtb2RzaTRfY2FsbCIKKyAgWyhzZXQgKHJlZzpT SSAxOCkgKGRpdjpTSSAocmVnOlNJIDIyKSAocmVnOlNJIDE4KSkpCisgICAoc2V0IChyZWc6U0kg MjIpIChtb2Q6U0kgKHJlZzpTSSAyMikgKHJlZzpTSSAxOCkpKQorICAgKGNsb2JiZXIgKHJlZzpI SSAyNikpCisgICAoY2xvYmJlciAocmVnOkhJIDMwKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVH X0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fZGl2bW9kc2k0IgotICBb KHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogKGRlZmluZV9pbnNuX2FuZF9zcGxp dCAidWRpdm1vZHNpNCIKICAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJw c2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIiIpCkBAIC0zMTEzLDM3ICs0MjM3LDc4IEBACiAgICAo c2V0IChtYXRjaF9kdXAgMCkgKHJlZzpTSSAxOCkpCiAgICAoc2V0IChtYXRjaF9kdXAgMykgKHJl ZzpTSSAyMikpXSkKIAotKGRlZmluZV9pbnNuICIqdWRpdm1vZHNpNF9jYWxsIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiKnVkaXZtb2RzaTRfY2FsbF9zcGxpdCIKICAgWyhzZXQgKHJlZzpTSSAx OCkgKHVkaXY6U0kgKHJlZzpTSSAyMikgKHJlZzpTSSAxOCkpKQogICAgKHNldCAocmVnOlNJIDIy KSAodW1vZDpTSSAocmVnOlNJIDIyKSAocmVnOlNJIDE4KSkpCiAgICAoY2xvYmJlciAocmVnOkhJ IDI2KSkKICAgIChjbG9iYmVyIChyZWc6SEkgMzApKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxv YWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6U0kgMTgpICh1ZGl2OlNJIChy ZWc6U0kgMjIpIChyZWc6U0kgMTgpKSkKKyAgICAgICAgICAgICAgKHNldCAocmVnOlNJIDIyKSAo dW1vZDpTSSAocmVnOlNJIDIyKSAocmVnOlNJIDE4KSkpCisgICAgICAgICAgICAgIChjbG9iYmVy IChyZWc6SEkgMjYpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkhJIDMwKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIq dWRpdm1vZHNpNF9jYWxsIgorICBbKHNldCAocmVnOlNJIDE4KSAodWRpdjpTSSAocmVnOlNJIDIy KSAocmVnOlNJIDE4KSkpCisgICAoc2V0IChyZWc6U0kgMjIpICh1bW9kOlNJIChyZWc6U0kgMjIp IChyZWc6U0kgMTgpKSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjYpKQorICAgKGNsb2JiZXIgKHJl ZzpISSAzMCkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBs ZXRlZCIKICAgIiV+Y2FsbCBfX3VkaXZtb2RzaTQiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2Fs bCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIg InhjYWxsIildKQogCiA7JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYm JiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmCiA7IGFuZAogCi0oZGVmaW5lX2lu c24gImFuZHFpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImFuZHFpMyIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIj0/P3IsZCwqbCIpCiAg ICAgICAgIChhbmQ6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUw LDAsMCIpCiAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9ubWVtb3J5X29w ZXJhbmQiICJyLGksQ2ExIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAo YW5kOlFJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9k dXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCiso ZGVmaW5lX2luc24gIiphbmRxaTMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICI9Pz9yLGQsKmwiKQorICAgICAgICAoYW5kOlFJIChtYXRjaF9v cGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAiKQorICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixpLENhMSIpKSkKKyAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiQAog CWFuZCAlMCwlMgogCWFuZGkgJTAsbG84KCUyKQogCSogcmV0dXJuIGF2cl9vdXRfYml0b3AgKGlu c24sIG9wZXJhbmRzLCBOVUxMKTsiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEsMSwyIikKLSAg IChzZXRfYXR0ciAiY2MiICJzZXRfem4sc2V0X3puLG5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxl bmd0aCIgIjEsMSwyIildKQogCi0oZGVmaW5lX2luc24gImFuZGhpMyIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgImFuZGhpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgICAgICAgIj0/P3IsZCxkLHIgICxyIikKICAgICAgICAgKGFuZDpISSAobWF0Y2hf b3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCwwLDAgICwwIikKICAgICAgICAg ICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIscyxuLENh MixuIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAg ICAgICAgICI9WCxYLFgsWCAgLCZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21w bGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAg ICAgIChhbmQ6SEkgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAi KmFuZGhpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAgIj0/P3IsZCxkLHIgICxyIikKKyAgICAgICAgKGFuZDpISSAobWF0Y2hfb3BlcmFuZDpI SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCwwLDAgICwwIikKKyAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpISSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIscyxuLENhMixuIikpKQor ICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICI9 WCxYLFgsWCAgLCZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2Fk X2NvbXBsZXRlZCIKICAgewogICAgIGlmICh3aGljaF9hbHRlcm5hdGl2ZSA9PSAwKQogICAgICAg cmV0dXJuICJhbmQgJUEwLCVBMlw7YW5kICVCMCwlQjIiOwpAQCAtMzE1MywxNSArNDMxOCwyOSBA QAogICAgIHJldHVybiBhdnJfb3V0X2JpdG9wIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0K ICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiwyLDIsNCw0IikKLSAgIChzZXRfYXR0ciAiYWRqdXN0 X2xlbiIgIiosKixvdXRfYml0b3Asb3V0X2JpdG9wLG91dF9iaXRvcCIpCi0gICAoc2V0X2F0dHIg ImNjIiAic2V0X24sc2V0X24sY2xvYmJlcixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0 dHIgImFkanVzdF9sZW4iICIqLCosb3V0X2JpdG9wLG91dF9iaXRvcCxvdXRfYml0b3AiKV0pCiAK LShkZWZpbmVfaW5zbiAiYW5kcHNpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImFuZHBzaTMi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAg Ij0/P3IsZCxyICAsciIpCiAgICAgICAgIChhbmQ6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCwwICAsMCIpCiAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlBTSSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIsbixDYTMsbiIpKSkKICAgIChjbG9i YmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYLFgg ICwmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFs bGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAoYW5kOlBTSSAobWF0 Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisg ICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAgICAgICAgICAgIChjbG9i YmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFuZHBzaTMiCisgIFso c2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgIj0/P3Is ZCxyICAsciIpCisgICAgICAgIChhbmQ6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiJTAsMCwwICAsMCIpCisgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlBTSSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIsbixDYTMsbiIpKSkKKyAgIChjbG9iYmVyICht YXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYLFggICwmZCIp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAg IHsKICAgICBpZiAod2hpY2hfYWx0ZXJuYXRpdmUgPT0gMCkKICAgICAgIHJldHVybiAiYW5kICVB MCwlQTIiIENSX1RBQgpAQCAtMzE3MSwxNSArNDM1MCwyOSBAQAogICAgIHJldHVybiBhdnJfb3V0 X2JpdG9wIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3Ro IiAiMywzLDYsNiIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICIqLG91dF9iaXRvcCxvdXRf Yml0b3Asb3V0X2JpdG9wIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbixjbG9iYmVyLGNsb2Ji ZXIsY2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgIiosb3V0X2JpdG9wLG91 dF9iaXRvcCxvdXRfYml0b3AiKV0pCiAKLShkZWZpbmVfaW5zbiAiYW5kc2kzIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiYW5kc2kzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAgICAiPT8/cixkLHIgICxyIikKICAgICAgICAgKGFuZDpTSSAobWF0 Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCwwICAsMCIpCiAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMiAibm9ubWVtb3J5X29wZXJhbmQiICJyLG4sQ2E0 LG4iKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAgICAg ICAgICAgIj1YLFgsWCAgLCZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAg IChhbmQ6U0kgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFu ZHNpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAg ICAgIj0/P3IsZCxyICAsciIpCisgICAgICAgIChhbmQ6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgIiUwLDAsMCAgLDAiKQorICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixuLENhNCxuIikpKQorICAgKGNsb2Ji ZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYLFggICwm ZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQi CiAgIHsKICAgICBpZiAod2hpY2hfYWx0ZXJuYXRpdmUgPT0gMCkKICAgICAgIHJldHVybiAiYW5k ICUwLCUyIiAgIENSX1RBQgpAQCAtMzE5MCw4ICs0MzgzLDcgQEAKICAgICByZXR1cm4gYXZyX291 dF9iaXRvcCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjQsNCw4LDgiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiKixvdXRfYml0b3Asb3V0 X2JpdG9wLG91dF9iaXRvcCIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X24sY2xvYmJlcixjbG9i YmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICIqLG91dF9iaXRvcCxv dXRfYml0b3Asb3V0X2JpdG9wIildKQogCiAoZGVmaW5lX3BlZXBob2xlMiA7IGFuZGkKICAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAiZF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikKQEAgLTMyMDks MjQgKzQ0MDEsNTEgQEAKIDs7fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8 fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHwKIDs7IGlvcgogCi0oZGVmaW5l X2luc24gImlvcnFpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImlvcnFpMyIKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIj0/P3IsZCwqbCIp CisgICAgICAgIChpb3I6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIg IiUwLDAsMCIpCisgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9ubWVtb3J5 X29wZXJhbmQiICJyLGksQ28xIikpKV0KKyAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAg ICAoaW9yOlFJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQor CisoZGVmaW5lX2luc24gIippb3JxaTMiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICI9Pz9yLGQsKmwiKQogICAgICAgICAoaW9yOlFJIChtYXRj aF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAiKQotICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixpLENvMSIpKSld Ci0gICIiCisgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9ubWVtb3J5X29w ZXJhbmQiICJyLGksQ28xIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCiAgICJACiAJb3IgJTAsJTIKIAlvcmkgJTAsbG84KCUyKQogICAgICAg ICAqIHJldHVybiBhdnJfb3V0X2JpdG9wIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7IgotICBbKHNl dF9hdHRyICJsZW5ndGgiICIxLDEsMiIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X3puLHNldF96 bixub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIxLDEsMiIpXSkKIAotKGRlZmluZV9p bnNuICJpb3JoaTMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJpb3JoaTMiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICI9Pz9yLGQsZCxyICAs ciIpCiAgICAgICAgIChpb3I6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIiUwLDAsMCwwICAsMCIpCiAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAi bm9ubWVtb3J5X29wZXJhbmQiICJyLHMsbixDbzIsbiIpKSkKICAgIChjbG9iYmVyIChtYXRjaF9z Y3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLFggICwmZCIpKV0KICAg IiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0ICht YXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAoaW9yOkhJIChtYXRjaF9kdXAgMSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIippb3JoaTMiCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICI9Pz9yLGQsZCxyICAsciIpCisgICAg ICAgIChpb3I6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwLDAs MCwwICAsMCIpCisgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6SEkgMiAibm9ubWVtb3J5 X29wZXJhbmQiICJyLHMsbixDbzIsbiIpKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJ IDMgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLFggICwmZCIpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICBpZiAod2hp Y2hfYWx0ZXJuYXRpdmUgPT0gMCkKICAgICAgIHJldHVybiAib3IgJUEwLCVBMlw7b3IgJUIwLCVC MiI7CkBAIC0zMjM2LDE1ICs0NDU1LDI5IEBACiAgICAgcmV0dXJuIGF2cl9vdXRfYml0b3AgKGlu c24sIG9wZXJhbmRzLCBOVUxMKTsKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICIyLDIsMiw0 LDQiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiKiwqLG91dF9iaXRvcCxvdXRfYml0b3As b3V0X2JpdG9wIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbixzZXRfbixjbG9iYmVyLGNsb2Ji ZXIsY2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgIiosKixvdXRfYml0b3As b3V0X2JpdG9wLG91dF9iaXRvcCIpXSkKIAotKGRlZmluZV9pbnNuICJpb3Jwc2kzIgorKGRlZmlu ZV9pbnNuX2FuZF9zcGxpdCAiaW9ycHNpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAiPT8/cixkLHIgICxyIikKICAgICAgICAgKGlvcjpQ U0kgKG1hdGNoX29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAgICwwIikK ICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UFNJIDIgIm5vbm1lbW9yeV9vcGVyYW5k IiAicixuLENvMyxuIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAg ICAgICAgICAgICAgICAgICAgIj1YLFgsWCAgLCZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAg ICAgICAgICAgICAgIChpb3I6UFNJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1 cCAzKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRl ZmluZV9pbnNuICIqaW9ycHNpMyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAiPT8/cixkLHIgICxyIikKKyAgICAgICAgKGlvcjpQU0kgKG1h dGNoX29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAgICwwIikKKyAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UFNJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixu LENvMyxuIikpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAg ICAgICAgICAgICAgIj1YLFgsWCAgLCZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIGlmICh3aGljaF9hbHRlcm5hdGl2ZSA9 PSAwKQogICAgICAgcmV0dXJuICJvciAlQTAsJUEyIiBDUl9UQUIKQEAgLTMyNTQsMTUgKzQ0ODcs MjkgQEAKICAgICByZXR1cm4gYXZyX291dF9iaXRvcCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOwog ICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMsMyw2LDYiKQotICAgKHNldF9hdHRyICJhZGp1 c3RfbGVuIiAiKixvdXRfYml0b3Asb3V0X2JpdG9wLG91dF9iaXRvcCIpCi0gICAoc2V0X2F0dHIg ImNjIiAic2V0X24sY2xvYmJlcixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFk anVzdF9sZW4iICIqLG91dF9iaXRvcCxvdXRfYml0b3Asb3V0X2JpdG9wIildKQogCi0oZGVmaW5l X2luc24gImlvcnNpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImlvcnNpMyIKICAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIj0/P3IsZCxyICAs ciIpCiAgICAgICAgIChpb3I6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIiUwLDAsMCAgLDAiKQogICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgIm5v bm1lbW9yeV9vcGVyYW5kIiAicixuLENvNCxuIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0 Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYLFggICwmZCIpKV0KICAgIiIKKyAg IiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9k dXAgMCkKKyAgICAgICAgICAgICAgICAgICAoaW9yOlNJIChtYXRjaF9kdXAgMSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XSldKQorCisoZGVmaW5lX2luc24gIippb3JzaTMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICI9Pz9yLGQsciAgLHIiKQorICAgICAgICAoaW9y OlNJIChtYXRjaF9vcGVyYW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIlMCwwLDAgICwwIikK KyAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJub25tZW1vcnlfb3BlcmFuZCIg InIsbixDbzQsbiIpKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAg ICAgICAgICAgICAgICAiPVgsWCxYICAsJmQiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0ND KSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgaWYgKHdoaWNoX2FsdGVybmF0aXZl ID09IDApCiAgICAgICByZXR1cm4gIm9yICUwLCUyIiAgIENSX1RBQgpAQCAtMzI3MywyNyArNDUy MCw1MyBAQAogICAgIHJldHVybiBhdnJfb3V0X2JpdG9wIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7 CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCw0LDgsOCIpCi0gICAoc2V0X2F0dHIgImFk anVzdF9sZW4iICIqLG91dF9iaXRvcCxvdXRfYml0b3Asb3V0X2JpdG9wIikKLSAgIChzZXRfYXR0 ciAiY2MiICJzZXRfbixjbG9iYmVyLGNsb2JiZXIsY2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAi YWRqdXN0X2xlbiIgIiosb3V0X2JpdG9wLG91dF9iaXRvcCxvdXRfYml0b3AiKV0pCiAKIDs7Xl5e Xl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl5eXl5eXl5eXl5eXl5eXl4KIDs7IHhvcgogCi0oZGVmaW5lX2luc24gInhvcnFpMyIKKyhkZWZp bmVfaW5zbl9hbmRfc3BsaXQgInhvcnFpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKICAgICAgICAgKHhvcjpRSSAobWF0Y2hfb3BlcmFuZDpR SSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAiKQogICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKV0KICAgIiIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAg ICAgICAgICAgICAgICAoeG9yOlFJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIip4b3JxaTMiCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisgICAgICAgICh4b3I6UUkgKG1hdGNo X29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwIikKKyAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiZW9yICUwLCUyIgot ICBbKHNldF9hdHRyICJsZW5ndGgiICIxIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfem4iKV0p CisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCiAKLShkZWZpbmVfaW5zbiAieG9yaGkzIgor KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAieG9yaGkzIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpI SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAiPT8/cixyICAsciIpCiAgICAgICAgICh4b3I6 SEkgKG1hdGNoX29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwLDAgICwwIikKICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSAyICJub25tZW1vcnlfb3BlcmFuZCIgInIs Q3gyLG4iKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAg ICAgICAgICAgIj1YLFggICwmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAg ICAoeG9yOkhJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMpKQorICAgICAg ICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIip4 b3JoaTMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICI9Pz9yLHIgICxyIikKKyAgICAgICAgKHhvcjpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCAgLDAiKQorICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOkhJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixDeDIsbiIpKSkKKyAgIChjbG9iYmVyICht YXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCAgLCZkIikpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewog ICAgIGlmICh3aGljaF9hbHRlcm5hdGl2ZSA9PSAwKQogICAgICAgcmV0dXJuICJlb3IgJUEwLCVB Mlw7ZW9yICVCMCwlQjIiOwpAQCAtMzMwMSwxNSArNDU3NCwyOSBAQAogICAgIHJldHVybiBhdnJf b3V0X2JpdG9wIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiMiwyLDQiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiKixvdXRfYml0b3Asb3V0 X2JpdG9wIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbixjbG9iYmVyLGNsb2JiZXIiKV0pCisg ICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICIqLG91dF9iaXRvcCxvdXRfYml0b3AiKV0pCiAKLShk ZWZpbmVfaW5zbiAieG9ycHNpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgInhvcnBzaTMiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgIj0/ P3IsciAgLHIiKQogICAgICAgICAoeG9yOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIiUwLDAgICwwIikKICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 UFNJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixDeDMsbiIpKSkKICAgIChjbG9iYmVyIChtYXRj aF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYICAsJmQiKSldCiAg ICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAo bWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHhvcjpQU0kgKG1hdGNoX2R1cCAxKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAg ICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAgICAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqeG9ycHNpMyIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAiPT8/cixy ICAsciIpCisgICAgICAgICh4b3I6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiJTAsMCAgLDAiKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpQU0kg MiAibm9ubWVtb3J5X29wZXJhbmQiICJyLEN4MyxuIikpKQorICAgKGNsb2JiZXIgKG1hdGNoX3Nj cmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgIj1YLFggICwmZCIpKQorICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICBp ZiAod2hpY2hfYWx0ZXJuYXRpdmUgPT0gMCkKICAgICAgIHJldHVybiAiZW9yICVBMCwlQTIiIENS X1RBQgpAQCAtMzMxOSwxNSArNDYwNiwyOSBAQAogICAgIHJldHVybiBhdnJfb3V0X2JpdG9wIChp bnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyw2LDYi KQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiKixvdXRfYml0b3Asb3V0X2JpdG9wIikKLSAg IChzZXRfYXR0ciAiY2MiICJzZXRfbixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIg ImFkanVzdF9sZW4iICIqLG91dF9iaXRvcCxvdXRfYml0b3AiKV0pCiAKLShkZWZpbmVfaW5zbiAi eG9yc2kzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAieG9yc2kzIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAiPT8/cixyICAsciIpCiAgICAg ICAgICh4b3I6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiUwLDAg ICwwIikKICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJub25tZW1vcnlfb3Bl cmFuZCIgInIsQ3g0LG4iKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAg ICAgICAgICAgICAgICAgICAgIj1YLFggICwmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxv YWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAg ICAgICAgICAgICAoeG9yOlNJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMp KQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5l X2luc24gIip4b3JzaTMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICAgICAgICI9Pz9yLHIgICxyIikKKyAgICAgICAgKHhvcjpTSSAobWF0Y2hfb3BlcmFu ZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiJTAsMCAgLDAiKQorICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlNJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAicixDeDQsbiIpKSkKKyAgIChj bG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCAg LCZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRl ZCIKICAgewogICAgIGlmICh3aGljaF9hbHRlcm5hdGl2ZSA9PSAwKQogICAgICAgcmV0dXJuICJl b3IgJTAsJTIiICAgQ1JfVEFCCkBAIC0zMzM4LDggKzQ2MzksNyBAQAogICAgIHJldHVybiBhdnJf b3V0X2JpdG9wIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVu Z3RoIiAiNCw4LDgiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiKixvdXRfYml0b3Asb3V0 X2JpdG9wIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbixjbG9iYmVyLGNsb2JiZXIiKV0pCisg ICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICIqLG91dF9iaXRvcCxvdXRfYml0b3AiKV0pCiAKIAog KGRlZmluZV9zcGxpdApAQCAtMzQyNCwxMSArNDcyNCwyNCBAQAogICAgICAgICAocm90YXRlOlFJ IChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQogICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgNCkpKV0pCiAKLShkZWZpbmVfaW5zbiAiKnJvdGxxaTMiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqcm90bHFpM19zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAiPXIscixyICAsciAgLHIg ICxyICAsciAgLHIiKQogICAgICAgICAocm90YXRlOlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJl Z2lzdGVyX29wZXJhbmQiICAgICAiMCwwLDAgICwwICAsMCAgLDAgICwwICAsMCIpCiAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfMF90b183X29wZXJhbmQiICJQ LEssQzAzLEMwNCxDMDUsQzA2LEMwNyxMIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRf Y29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAg ICAgICAgICAocm90YXRlOlFJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipyb3RscWkzIgorICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICI9cixyLHIgICxyICAs ciAgLHIgICxyICAsciIpCisgICAgICAgIChyb3RhdGU6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgICAgICIwLDAsMCAgLDAgICwwICAsMCAgLDAgICwwIikKKyAgICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJjb25zdF8wX3RvXzdfb3BlcmFuZCIg IlAsSyxDMDMsQzA0LEMwNSxDMDYsQzA3LEwiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIkAKIAlsc2wgJTBcO2FkYyAlMCxfX3plcm9f cmVnX18KIAlsc2wgJTBcO2FkYyAlMCxfX3plcm9fcmVnX19cO2xzbCAlMFw7YWRjICUwLF9femVy b19yZWdfXwpAQCAtMzQzOCw4ICs0NzUxLDcgQEAKIAlzd2FwICUwXDtsc2wgJTBcO2FkYyAlMCxf X3plcm9fcmVnX19cO2xzbCAlMFw7YWRjICUwLF9femVyb19yZWdfXwogCWJzdCAlMCwwXDtyb3Ig JTBcO2JsZCAlMCw3CiAJIiA7IGVtcHR5Ci0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIsNCw0LDEs Myw1LDMsMCIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X24sc2V0X24sY2xvYmJlcixub25lLHNl dF9uLHNldF9uLGNsb2JiZXIsbm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiw0LDQs MSwzLDUsMywwIildKQogCiA7OyBTcGxpdCBhbGwgcm90YXRlcyBvZiBISSxTSSBhbmQgUFNJbW9k ZSByZWdpc3RlcnMgd2hlcmUgcm90YXRpb24gaXMgYnkKIDs7IGEgd2hvbGUgbnVtYmVyIG9mIGJ5 dGVzLiAgVGhlIHNwbGl0IGNyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIG1vdmVzIGFuZApAQCAtMzQ4 Nyw1OSArNDc5OSwxMzEgQEAKICAgICAgIEZBSUw7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiKnJv dGxoaTIuMSIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipyb3RsaGkyLjFfc3BsaXQiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAiPXIi KQogICAgICAgICAocm90YXRlOkhJIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwIikKICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpKSldCiAgICIiCisgICIj IgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVw IDApCisgICAgICAgICAgICAgICAgICAgKHJvdGF0ZTpISSAobWF0Y2hfZHVwIDEpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpKSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqcm90bGhpMi4xIgor ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAg Ij1yIikKKyAgICAgICAgKHJvdGF0ZTpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCIpCisgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKSkpCisgICAoY2xv YmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImxzbCAlQTBc O3JvbCAlQjBcO2FkYyAlQTAsX196ZXJvX3JlZ19fIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIz IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgi ICIzIildKQogCi0oZGVmaW5lX2luc24gIipyb3RsaGkyLjE1IgorKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAiKnJvdGxoaTIuMTVfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJl Z2lzdGVyX29wZXJhbmQiICAgICAgICAgICAiPXIiKQogICAgICAgICAocm90YXRlOkhJIChtYXRj aF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDE1KSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChy b3RhdGU6SEkgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAxNSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSld KQorCisoZGVmaW5lX2luc24gIipyb3RsaGkyLjE1IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpI SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgIj1yIikKKyAgICAgICAgKHJvdGF0ZTpI SSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAxNSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0K KyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJic3QgJUEwLDBcO3JvciAlQjBcO3JvciAlQTBcO2Js ZCAlQjAsNyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImNjIiAi Y2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAotKGRlZmluZV9pbnNu ICIqcm90bHBzaTIuMSIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipyb3RscHNpMi4xX3NwbGl0 IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAg ICAgICAiPXIiKQogICAgICAgICAocm90YXRlOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVn aXN0ZXJfb3BlcmFuZCIgIjAiKQogICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpKSld CiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHJvdGF0ZTpQU0kgKG1hdGNoX2R1 cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkpKQorICAg ICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24g Iipyb3RscHNpMi4xIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAiPXIiKQorICAgICAgICAocm90YXRlOlBTSSAobWF0Y2hfb3BlcmFu ZDpQU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAgICAoY29u c3RfaW50IDEpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29t cGxldGVkIgogICAibHNsICVBMFw7cm9sICVCMFw7cm9sICVDMFw7YWRjICVBMCxfX3plcm9fcmVn X18iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2Ji ZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnJv dGxwc2kyLjIzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnJvdGxwc2kyLjIzX3NwbGl0Igog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAg ICAiPXIiKQogICAgICAgICAocm90YXRlOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAiKQogICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIzKSkpXQog ICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQg KG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChyb3RhdGU6UFNJIChtYXRjaF9kdXAg MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIzKSkpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAi KnJvdGxwc2kyLjIzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAiPXIiKQorICAgICAgICAocm90YXRlOlBTSSAobWF0Y2hfb3BlcmFu ZDpQU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAgICAoY29u c3RfaW50IDIzKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2Nv bXBsZXRlZCIKICAgImJzdCAlQTAsMFw7cm9yICVDMFw7cm9yICVCMFw7cm9yICVBMFw7YmxkICVD MCw3IgotICBbKHNldF9hdHRyICJsZW5ndGgiICI1IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9i YmVyIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICI1IildKQogCi0oZGVmaW5lX2luc24gIipy b3Rsc2kyLjEiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcm90bHNpMi4xX3NwbGl0IgogICBb KHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgIj1y IikKICAgICAgICAgKHJvdGF0ZTpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiMCIpCiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKSkpXQogICAiIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1 cCAwKQorICAgICAgICAgICAgICAgICAgIChyb3RhdGU6U0kgKG1hdGNoX2R1cCAxKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKSkpCisgICAgICAgICAgICAgIChj bG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKnJvdGxzaTIuMSIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAg ICI9ciIpCisgICAgICAgIChyb3RhdGU6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIjAiKQorICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkpKQorICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJsc2wgJUEw XDtyb2wgJUIwXDtyb2wgJUMwXDtyb2wgJUQwXDthZGMgJUEwLF9femVyb19yZWdfXyIKLSAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiNSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiNSIpXSkKIAotKGRlZmluZV9pbnNuICIqcm90bHNpMi4zMSIK KyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipyb3Rsc2kyLjMxX3NwbGl0IgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgIj1yIikKICAgICAg ICAgKHJvdGF0ZTpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp CiAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAzMSkpKV0KICAgIiIKKyAgIiMiCisgICIm JiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAg ICAgICAgICAgICAgICAgICAocm90YXRlOlNJIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMzEpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqcm90bHNpMi4zMSIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICI9ciIp CisgICAgICAgIChyb3RhdGU6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMSAicmVnaXN0ZXJfb3BlcmFu ZCIgIjAiKQorICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMzEpKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiYnN0ICVBMCwwXDty b3IgJUQwXDtyb3IgJUMwXDtyb3IgJUIwXDtyb3IgJUEwXDtibGQgJUQwLDciCi0gIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjYiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjYiKV0pCiAKIDs7IE92ZXJsYXBwaW5nIG5vbi1ISW1vZGUgcmVnaXN0 ZXJzIG9mdGVuIChidXQgbm90IGFsd2F5cykgbmVlZCBhIHNjcmF0Y2guCiA7OyBUaGUgYmVzdCB3 ZSBjYW4gZG8gaXMgdXNlIGVhcmx5IGNsb2JiZXIgYWx0ZXJuYXRpdmUgIiMmciIgc28gdGhhdApA QCAtMzY0NCwyOSArNTAyOCw1MyBAQAogCiA7OyAiKmFzaGxxaTMiCiA7OyAiKmFzaGxxcTMiICAi KmFzaGx1cXEzIgotKGRlZmluZV9pbnNuICIqYXNobDxtb2RlPjMiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIqYXNobDxtb2RlPjNfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDEg MCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICI9cixyLHIsciwhZCxyLHIiKQogICAg ICAgICAoYXNoaWZ0OkFMTDEgKG1hdGNoX29wZXJhbmQ6QUxMMSAxICJyZWdpc3Rlcl9vcGVyYW5k IiAgIjAsMCwwLDAsMCAsMCwwIikKICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlFJIDIgIm5vcF9nZW5lcmFsX29wZXJhbmQiICJyLEwsUCxLLG4gLG4sUW0iKSkpXQogICAiIgor ICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNo X2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChhc2hpZnQ6QUxMMSAobWF0Y2hfZHVwIDEpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAg ICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiphc2hs PG1vZGU+MyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMMSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAgICAgICAgICAgICAgIj1yLHIscixyLCFkLHIsciIpCisgICAgICAgIChhc2hpZnQ6QUxMMSAo bWF0Y2hfb3BlcmFuZDpBTEwxIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCwwLDAsMCwwICwwLDAi KQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9wX2dlbmVyYWxf b3BlcmFuZCIgInIsTCxQLEssbiAsbixRbSIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0ND KSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7Ci0gICAgcmV0dXJuIGFzaGxxaTNfb3V0IChp bnNuLCBvcGVyYW5kcywgTlVMTCk7CisgICAgcmV0dXJuIGFzaGxxaTNfb3V0IChpbnNuLCBvcGVy YW5kcywgMywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNSwwLDEsMiw0LDYs OSIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hscWkiKQotICAgKHNldF9hdHRyICJj YyIgImNsb2JiZXIsbm9uZSxzZXRfY3puLHNldF9jem4sc2V0X2N6bixzZXRfY3puLGNsb2JiZXIi KV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hscWkiKV0pCiAKLShkZWZpbmVfaW5z biAiYXNobDxtb2RlPjMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJhc2hsPG1vZGU+MyIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAg ICAgIj1yLHIscixyLHIscixyIikKICAgICAgICAgKGFzaGlmdDpBTEwyIChtYXRjaF9vcGVyYW5k OkFMTDIgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIwLDAsMCxyLDAsMCwwIikKICAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vcF9nZW5lcmFsX29wZXJhbmQiICJyLEws UCxPLEssbixRbSIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAg WyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKGFzaGlm dDpBTEwyIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKmFzaGw8bW9kZT4zIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpB TEwyIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAiPXIscixyLHIscixyLHIiKQor ICAgICAgICAoYXNoaWZ0OkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdpc3Rlcl9vcGVy YW5kIiAgIjAsMCwwLHIsMCwwLDAiKQorICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6UUkgMiAibm9wX2dlbmVyYWxfb3BlcmFuZCIgInIsTCxQLE8sSyxuLFFtIikpKQorICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKLSAgICBy ZXR1cm4gYXNobGhpM19vdXQgKGluc24sIG9wZXJhbmRzLCBOVUxMKTsKKyAgICByZXR1cm4gYXNo bGhpM19vdXQgKGluc24sIG9wZXJhbmRzLCAzLCBOVUxMKTsKICAgfQogICBbKHNldF9hdHRyICJs ZW5ndGgiICI2LDAsMiwyLDQsMTAsMTAiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiYXNo bGhpIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyLG5vbmUsc2V0X24sY2xvYmJlcixzZXRf bixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hsaGki KV0pCiAKIAogOzsgSW5zbnMgbGlrZSB0aGUgZm9sbG93aW5nIGFyZSBnZW5lcmF0ZWQgd2hlbiAo aW1wbGljaXRseSkgZXh0ZW5kaW5nIDgtYml0IHNoaWZ0cwpAQCAtMzc1MiwxNyArNTE2MCwyOSBA QAogOzsgImFzaGxzaTMiCiA7OyAiYXNobHNxMyIgICJhc2hsdXNxMyIKIDs7ICJhc2hsc2EzIiAg ImFzaGx1c2EzIgotKGRlZmluZV9pbnNuICJhc2hsPG1vZGU+MyIKKyhkZWZpbmVfaW5zbl9hbmRf c3BsaXQgImFzaGw8bW9kZT4zIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEw0IDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICI9cixyLHIscixyLHIsciIpCiAgICAgICAgIChh c2hpZnQ6QUxMNCAobWF0Y2hfb3BlcmFuZDpBTEw0IDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICIw LDAsMCxyLDAsMCwwIikKICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIg Im5vcF9nZW5lcmFsX29wZXJhbmQiICAgInIsTCxQLE8sSyxuLFFtIikpKV0KICAgIiIKKyAgIiMi CisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAg MCkKKyAgICAgICAgICAgICAgICAgICAoYXNoaWZ0OkFMTDQgKG1hdGNoX2R1cCAxKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYXNobDxtb2Rl PjMiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAg ICAgICAgICAgICAgIj1yLHIscixyLHIscixyIikKKyAgICAgICAgKGFzaGlmdDpBTEw0IChtYXRj aF9vcGVyYW5kOkFMTDQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgIjAsMCwwLHIsMCwwLDAiKQor ICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9wX2dlbmVyYWxfb3Bl cmFuZCIgICAicixMLFAsTyxLLG4sUW0iKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewotICAgIHJldHVybiBhc2hsc2kzX291dCAoaW5z biwgb3BlcmFuZHMsIE5VTEwpOworICAgIHJldHVybiBhc2hsc2kzX291dCAoaW5zbiwgb3BlcmFu ZHMsIDMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjgsMCw0LDQsOCwxMCwx MiIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hsc2kiKQotICAgKHNldF9hdHRyICJj YyIgImNsb2JiZXIsbm9uZSxzZXRfbixjbG9iYmVyLHNldF9uLGNsb2JiZXIsY2xvYmJlciIpXSkK KyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImFzaGxzaSIpXSkKIAogOzsgT3B0aW1pemUgaWYg YSBzY3JhdGNoIHJlZ2lzdGVyIGZyb20gTERfUkVHUyBoYXBwZW5zIHRvIGJlIGF2YWlsYWJsZS4K IApAQCAtMzgyMSwxOCArNTI0MSwzMiBAQAogOzsgIiphc2hsaGkzX2NvbnN0IgogOzsgIiphc2hs aHEzX2NvbnN0IiAgIiphc2hsdWhxM19jb25zdCIKIDs7ICIqYXNobGhhM19jb25zdCIgICIqYXNo bHVoYTNfY29uc3QiCi0oZGVmaW5lX2luc24gIiphc2hsPG1vZGU+M19jb25zdCIKKyhkZWZpbmVf aW5zbl9hbmRfc3BsaXQgIiphc2hsPG1vZGU+M19jb25zdF9zcGxpdCIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6QUxMMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgIj1yLHIscixy LHIiKQogICAgICAgICAoYXNoaWZ0OkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdpc3Rl cl9vcGVyYW5kIiAgIjAsMCxyLDAsMCIpCiAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3Bl cmFuZDpRSSAyICJjb25zdF9pbnRfb3BlcmFuZCIgICAiTCxQLE8sSyxuIikpKQogICAgKGNsb2Ji ZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgs WCxYLFgsJmQiKSldCiAgICJyZWxvYWRfY29tcGxldGVkIgorICAiIyIKKyAgIiYmIHJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAg ICAgICAgIChhc2hpZnQ6QUxMMiAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hf ZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCiso ZGVmaW5lX2luc24gIiphc2hsPG1vZGU+M19jb25zdCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 QUxMMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgIj1yLHIscixyLHIiKQorICAg ICAgICAoYXNoaWZ0OkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdpc3Rlcl9vcGVyYW5k IiAgIjAsMCxyLDAsMCIpCisgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAy ICJjb25zdF9pbnRfb3BlcmFuZCIgICAiTCxQLE8sSyxuIikpKQorICAgKGNsb2JiZXIgKG1hdGNo X3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLFgsJmQi KSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgog ICB7Ci0gICAgcmV0dXJuIGFzaGxoaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CisgICAg cmV0dXJuIGFzaGxoaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgNCwgTlVMTCk7CiAgIH0KICAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMCwyLDIsNCwxMCIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4i ICJhc2hsaGkiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUsc2V0X24sY2xvYmJlcixzZXRfbixj bG9iYmVyIildKQorICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiYXNobGhpIildKQogCiAoZGVm aW5lX3BlZXBob2xlMgogICBbKG1hdGNoX3NjcmF0Y2g6UUkgMyAiZCIpCkBAIC0zODQ4LDE4ICs1 MjgyLDMyIEBACiA7OyAiKmFzaGxzaTNfY29uc3QiCiA7OyAiKmFzaGxzcTNfY29uc3QiICAiKmFz aGx1c3EzX2NvbnN0IgogOzsgIiphc2hsc2EzX2NvbnN0IiAgIiphc2hsdXNhM19jb25zdCIKLShk ZWZpbmVfaW5zbiAiKmFzaGw8bW9kZT4zX2NvbnN0IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi KmFzaGw8bW9kZT4zX2NvbnN0X3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEw0IDAg InJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAiPXIscixyLHIiKQogICAgICAgICAoYXNo aWZ0OkFMTDQgKG1hdGNoX29wZXJhbmQ6QUxMNCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIjAsMCxy LDAiKQogICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfaW50 X29wZXJhbmQiICAgIkwsUCxPLG4iKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAz ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYLFgsJmQiKSldCiAgICJyZWxvYWRf Y29tcGxldGVkIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChhc2hpZnQ6QUxMNCAobWF0 Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikp KQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiphc2hsPG1vZGU+ M19jb25zdCIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMNCAwICJyZWdpc3Rlcl9vcGVyYW5k IiAgICAgICAgICAgICAgIj1yLHIscixyIikKKyAgICAgICAgKGFzaGlmdDpBTEw0IChtYXRjaF9v cGVyYW5kOkFMTDQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIwLDAsciwwIikKKyAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgImNvbnN0X2ludF9vcGVyYW5kIiAgICJMLFAs TyxuIikpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiPVgsWCxYLCZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewotICAgIHJldHVybiBhc2hsc2kzX291dCAoaW5z biwgb3BlcmFuZHMsIE5VTEwpOworICAgIHJldHVybiBhc2hsc2kzX291dCAoaW5zbiwgb3BlcmFu ZHMsIDQsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjAsNCw0LDEwIikKLSAg IChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImFzaGxzaSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9u ZSxzZXRfbixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJh c2hsc2kiKV0pCiAKIChkZWZpbmVfZXhwYW5kICJhc2hscHNpMyIKICAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgIiIp CkBAIC0zODg4LDc2ICs1MzM2LDE0MCBAQAogICAgICAgfQogICB9KQogCi0oZGVmaW5lX2luc24g Iiphc2hscHNpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIiphc2hscHNpM19zcGxpdCIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAg ICI9cixyLHIsciIpCiAgICAgICAgIChhc2hpZnQ6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJy ZWdpc3Rlcl9vcGVyYW5kIiAgIjAsMCxyLDAiKQogICAgICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpRSSAyICJub25tZW1vcnlfb3BlcmFuZCIgICJyLFAsTyxuIikpKQogICAgKGNsb2Ji ZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1YLFgs WCwmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFs bGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAoYXNoaWZ0OlBTSSAo bWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAy KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFzaGxwc2kz IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAg ICAgICAgIj1yLHIscixyIikKKyAgICAgICAgKGFzaGlmdDpQU0kgKG1hdGNoX29wZXJhbmQ6UFNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCwwLHIsMCIpCisgICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAgInIsUCxPLG4iKSkpCisgICAo Y2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi PVgsWCxYLCZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2Nv bXBsZXRlZCIKICAgewotICAgIHJldHVybiBhdnJfb3V0X2FzaGxwc2kzIChpbnNuLCBvcGVyYW5k cywgTlVMTCk7CisgICAgcmV0dXJuIGF2cl9vdXRfYXNobHBzaTMgKGluc24sIG9wZXJhbmRzLCA0 LCBOVUxMKTsKICAgfQotICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiYXNobHBzaSIpCi0gICAo c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImFz aGxwc2kiKV0pCiAKIDs7ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+ID4+CiA7OyBhcml0aG1ldGljIHNoaWZ0IHJp Z2h0CiAKIDs7ICJhc2hycWkzIgogOzsgImFzaHJxcTMiICAiYXNocnVxcTMiCi0oZGVmaW5lX2lu c24gImFzaHI8bW9kZT4zIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiYXNocjxtb2RlPjMiCiAg IFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDEgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAg ICAgICAgICAiPXIscixyLHIsciAgICAgICAgICAsciAgICAgICxyIikKICAgICAgICAgKGFzaGlm dHJ0OkFMTDEgKG1hdGNoX29wZXJhbmQ6QUxMMSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAiMCww LDAsMCwwICAgICAgICAgICwwICAgICAgLDAiKQogICAgICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpRSSAyICJub3BfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEwsUCxLLEMwMyBDMDQg QzA1LEMwNiBDMDcsUW0iKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChh c2hpZnRydDpBTEwxIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYXNocjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkFMTDEgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAiPXIscixy LHIsciAgICAgICAgICAsciAgICAgICxyIikKKyAgICAgICAgKGFzaGlmdHJ0OkFMTDEgKG1hdGNo X29wZXJhbmQ6QUxMMSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAiMCwwLDAsMCwwICAgICAgICAg ICwwICAgICAgLDAiKQorICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAy ICJub3BfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEwsUCxLLEMwMyBDMDQgQzA1LEMwNiBDMDcsUW0i KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIK ICAgewotICAgIHJldHVybiBhc2hycWkzX291dCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOworICAg IHJldHVybiBhc2hycWkzX291dCAoaW5zbiwgb3BlcmFuZHMsIDMsIE5VTEwpOwogICB9CiAgIFso c2V0X2F0dHIgImxlbmd0aCIgIjUsMCwxLDIsNSw0LDkiKQotICAgKHNldF9hdHRyICJhZGp1c3Rf bGVuIiAiYXNocnFpIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyLG5vbmUsc2V0X2N6bixz ZXRfY3puLHNldF9jem4sY2xvYmJlcixjbG9iYmVyIildKQorICAgKHNldF9hdHRyICJhZGp1c3Rf bGVuIiAiYXNocnFpIildKQogCiA7OyAiYXNocmhpMyIKIDs7ICJhc2hyaHEzIiAgImFzaHJ1aHEz IgogOzsgImFzaHJoYTMiICAiYXNocnVoYTMiCi0oZGVmaW5lX2luc24gImFzaHI8bW9kZT4zIgor KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiYXNocjxtb2RlPjMiCiAgIFsoc2V0IChtYXRjaF9vcGVy YW5kOkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgIj1yLHIscixyLHIs cixyIikKICAgICAgICAgKGFzaGlmdHJ0OkFMTDIgKG1hdGNoX29wZXJhbmQ6QUxMMiAxICJyZWdp c3Rlcl9vcGVyYW5kIiAgIjAsMCwwLHIsMCwwLDAiKQogICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpRSSAyICJub3BfZ2VuZXJhbF9vcGVyYW5kIiAicixMLFAsTyxLLG4sUW0i KSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwg WyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAg ICAgICAiPXIscixyLHIscixyLHIiKQorICAgICAgICAgICAgICAgICAgIChhc2hpZnRydDpBTEwy IChtYXRjaF9vcGVyYW5kOkFMTDIgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIwLDAsMCxyLDAsMCww IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAy ICJub3BfZ2VuZXJhbF9vcGVyYW5kIiAicixMLFAsTyxLLG4sUW0iKSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFzaHI8bW9k ZT4zIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEwyIDAgInJlZ2lzdGVyX29wZXJhbmQiICAg ICAgICAgICAgICAgICI9cixyLHIscixyLHIsciIpCisgICAgICAgIChhc2hpZnRydDpBTEwyICht YXRjaF9vcGVyYW5kOkFMTDIgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIwLDAsMCxyLDAsMCwwIikK KyAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9wX2dlbmVyYWxf b3BlcmFuZCIgInIsTCxQLE8sSyxuLFFtIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0Mp KV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKLSAgICByZXR1cm4gYXNocmhpM19vdXQgKGlu c24sIG9wZXJhbmRzLCBOVUxMKTsKKyAgICByZXR1cm4gYXNocmhpM19vdXQgKGluc24sIG9wZXJh bmRzLCAyLCBOVUxMKTsKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICI2LDAsMiw0LDQsMTAs MTAiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiYXNocmhpIikKLSAgIChzZXRfYXR0ciAi Y2MiICJjbG9iYmVyLG5vbmUsY2xvYmJlcixzZXRfbixjbG9iYmVyLGNsb2JiZXIsY2xvYmJlciIp XSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImFzaHJoaSIpXSkKIAotKGRlZmluZV9pbnNu ICJhc2hycHNpMyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImFzaHJwc2kzIgogICBbKHNldCAo bWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICI9 cixyLHIscixyIikKICAgICAgICAgKGFzaGlmdHJ0OlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgICAgIjAsMCwwLHIsMCIpCiAgICAgICAgICAgICAgICAgICAgICAg KG1hdGNoX29wZXJhbmQ6UUkgMiAibm9ubWVtb3J5X29wZXJhbmQiICAgICJyLFAsSyxPLG4iKSkp CiAgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIj1YLFgsWCxYLCZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21w bGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAg ICAgIChhc2hpZnRydDpQU0kgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9k dXAgMykpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhk ZWZpbmVfaW5zbiAiKmFzaHJwc2kzIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICI9cixyLHIscixyIikKKyAgICAgICAgKGFz aGlmdHJ0OlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgIjAs MCwwLHIsMCIpCisgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9u bWVtb3J5X29wZXJhbmQiICAgICJyLFAsSyxPLG4iKSkpCisgICAoY2xvYmJlciAobWF0Y2hfc2Ny YXRjaDpRSSAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1YLFgsWCxYLCZkIikp CisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAg ewotICAgIHJldHVybiBhdnJfb3V0X2FzaHJwc2kzIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7Cisg ICAgcmV0dXJuIGF2cl9vdXRfYXNocnBzaTMgKGluc24sIG9wZXJhbmRzLCA0LCBOVUxMKTsKICAg fQotICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAiYXNocnBzaSIpCi0gICAoc2V0X2F0dHIgImNj IiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImFzaHJwc2kiKV0pCiAK IDs7ICJhc2hyc2kzIgogOzsgImFzaHJzcTMiICAiYXNocnVzcTMiCiA7OyAiYXNocnNhMyIgICJh c2hydXNhMyIKLShkZWZpbmVfaW5zbiAiYXNocjxtb2RlPjMiCisoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICJhc2hyPG1vZGU+MyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMNCAwICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICI9cixyLHIscixyLHIsciIpCiAgICAgICAgIChh c2hpZnRydDpBTEw0IChtYXRjaF9vcGVyYW5kOkFMTDQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAg IjAsMCwwLHIsMCwwLDAiKQogICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpR SSAyICJub3BfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEwsUCxPLEssbixRbSIpKSldCiAgICIiCisg ICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hf ZHVwIDApCisgICAgICAgICAgICAgICAgICAgKGFzaGlmdHJ0OkFMTDQgKG1hdGNoX2R1cCAxKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAgICAg ICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiph c2hyPG1vZGU+MyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxMNCAwICJyZWdpc3Rlcl9vcGVy YW5kIiAgICAgICAgICAgICAgICAgICI9cixyLHIscixyLHIsciIpCisgICAgICAgIChhc2hpZnRy dDpBTEw0IChtYXRjaF9vcGVyYW5kOkFMTDQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgIjAsMCww LHIsMCwwLDAiKQorICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJu b3BfZ2VuZXJhbF9vcGVyYW5kIiAgICJyLEwsUCxPLEssbixRbSIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7Ci0gICAgcmV0dXJuIGFz aHJzaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CisgICAgcmV0dXJuIGFzaHJzaTNfb3V0 IChpbnNuLCBvcGVyYW5kcywgMywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAi OCwwLDQsNiw4LDEwLDEyIikKLSAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImFzaHJzaSIpCi0g ICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlcixub25lLGNsb2JiZXIsc2V0X24sY2xvYmJlcixjbG9i YmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hyc2kiKV0pCiAK IDs7IE9wdGltaXplIGlmIGEgc2NyYXRjaCByZWdpc3RlciBmcm9tIExEX1JFR1MgaGFwcGVucyB0 byBiZSBhdmFpbGFibGUuCiAKQEAgLTM5NzUsMTggKzU0ODcsMzIgQEAKIDs7ICIqYXNocmhpM19j b25zdCIKIDs7ICIqYXNocmhxM19jb25zdCIgICIqYXNocnVocTNfY29uc3QiCiA7OyAiKmFzaHJo YTNfY29uc3QiICAiKmFzaHJ1aGEzX2NvbnN0IgotKGRlZmluZV9pbnNuICIqYXNocjxtb2RlPjNf Y29uc3QiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYXNocjxtb2RlPjNfY29uc3Rfc3BsaXQi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAg ICAgICAgICAgIj1yLHIscixyLHIiKQogICAgICAgICAoYXNoaWZ0cnQ6QUxMMiAobWF0Y2hfb3Bl cmFuZDpBTEwyIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCwwLHIsMCwwIikKICAgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfaW50X29wZXJhbmQiICAgIkws UCxPLEssbiIpKSkKICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLFgsJmQiKSldCiAgICJyZWxvYWRfY29tcGxldGVk IgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1h dGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChhc2hpZnRydDpBTEwyIChtYXRjaF9kdXAg MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAg ICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCAzKSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYXNocjxtb2RlPjNfY29u c3QiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAg ICAgICAgICAgICAgIj1yLHIscixyLHIiKQorICAgICAgICAoYXNoaWZ0cnQ6QUxMMiAobWF0Y2hf b3BlcmFuZDpBTEwyIDEgInJlZ2lzdGVyX29wZXJhbmQiICAiMCwwLHIsMCwwIikKKyAgICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfaW50X29wZXJhbmQiICAg IkwsUCxPLEssbiIpKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLFgsJmQiKSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7Ci0gICAgcmV0dXJuIGFzaHJo aTNfb3V0IChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CisgICAgcmV0dXJuIGFzaHJoaTNfb3V0IChp bnNuLCBvcGVyYW5kcywgMywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMCwy LDQsNCwxMCIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hyaGkiKQotICAgKHNldF9h dHRyICJjYyIgIm5vbmUsY2xvYmJlcixzZXRfbixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0 X2F0dHIgImFkanVzdF9sZW4iICJhc2hyaGkiKV0pCiAKIChkZWZpbmVfcGVlcGhvbGUyCiAgIFso bWF0Y2hfc2NyYXRjaDpRSSAzICJkIikKQEAgLTQwMDIsMTggKzU1MjgsMzIgQEAKIDs7ICIqYXNo cnNpM19jb25zdCIKIDs7ICIqYXNocnNxM19jb25zdCIgICIqYXNocnVzcTNfY29uc3QiCiA7OyAi KmFzaHJzYTNfY29uc3QiICAiKmFzaHJ1c2EzX2NvbnN0IgotKGRlZmluZV9pbnNuICIqYXNocjxt b2RlPjNfY29uc3QiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYXNocjxtb2RlPjNfY29uc3Rf c3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFMTDQgMCAicmVnaXN0ZXJfb3BlcmFuZCIg ICAgICAgICAgICAgICAgIj1yLHIscixyIikKICAgICAgICAgKGFzaGlmdHJ0OkFMTDQgKG1hdGNo X29wZXJhbmQ6QUxMNCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAgIjAsMCxyLDAiKQogICAgICAgICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJjb25zdF9pbnRfb3BlcmFuZCIgICAi TCxQLE8sbiIpKSkKICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLCZkIikpXQogICAicmVsb2FkX2NvbXBsZXRlZCIK KyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAoYXNoaWZ0cnQ6QUxMNCAobWF0Y2hfZHVwIDEp CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAgICAgICAgICAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFzaHI8bW9kZT4zX2NvbnN0 IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEw0IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAgICAgICI9cixyLHIsciIpCisgICAgICAgIChhc2hpZnRydDpBTEw0IChtYXRjaF9vcGVy YW5kOkFMTDQgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICIwLDAsciwwIikKKyAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfaW50X29wZXJhbmQiICAgIkwsUCxP LG4iKSkpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIj1YLFgsWCwmZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0Mp KV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKLSAgICByZXR1cm4gYXNocnNpM19vdXQgKGlu c24sIG9wZXJhbmRzLCBOVUxMKTsKKyAgICByZXR1cm4gYXNocnNpM19vdXQgKGluc24sIG9wZXJh bmRzLCA0LCBOVUxMKTsKICAgfQogICBbKHNldF9hdHRyICJsZW5ndGgiICIwLDQsNCwxMCIpCi0g ICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJhc2hyc2kiKQotICAgKHNldF9hdHRyICJjYyIgIm5v bmUsY2xvYmJlcixzZXRfbixjbG9iYmVyIildKQorICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAi YXNocnNpIildKQogCiA7OyA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+ PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PiA+PgogOzsgbG9naWNhbCBzaGlmdCByaWdo dApAQCAtNDA2Nyw1OSArNTYwNywxMDkgQEAKIDs7ICIqbHNocnFpMyIKIDs7ICIqbHNocnFxMyIK IDs7ICIqbHNocnVxcTMiCi0oZGVmaW5lX2luc24gIipsc2hyPG1vZGU+MyIKKyhkZWZpbmVfaW5z bl9hbmRfc3BsaXQgIipsc2hyPG1vZGU+M19zcGxpdCIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 QUxMMSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICI9cixyLHIsciwhZCxy LHIiKQogICAgICAgICAobHNoaWZ0cnQ6QUxMMSAobWF0Y2hfb3BlcmFuZDpBTEwxIDEgInJlZ2lz dGVyX29wZXJhbmQiICAgICIwLDAsMCwwLDAgLDAsMCIpCiAgICAgICAgICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vcF9nZW5lcmFsX29wZXJhbmQiICAgInIsTCxQLEssbiAs bixRbSIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJh bGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKGxzaGlmdHJ0OkFM TDEgKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRj aF9kdXAgMikpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQor CisoZGVmaW5lX2luc24gIipsc2hyPG1vZGU+MyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6QUxM MSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICI9cixyLHIsciwhZCxyLHIi KQorICAgICAgICAobHNoaWZ0cnQ6QUxMMSAobWF0Y2hfb3BlcmFuZDpBTEwxIDEgInJlZ2lzdGVy X29wZXJhbmQiICAgICIwLDAsMCwwLDAgLDAsMCIpCisgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlFJIDIgIm5vcF9nZW5lcmFsX29wZXJhbmQiICAgInIsTCxQLEssbiAsbixR bSIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVk IgogICB7Ci0gICAgcmV0dXJuIGxzaHJxaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgTlVMTCk7Cisg ICAgcmV0dXJuIGxzaHJxaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgMywgTlVMTCk7CiAgIH0KICAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiNSwwLDEsMiw0LDYsOSIpCi0gICAoc2V0X2F0dHIgImFkanVz dF9sZW4iICJsc2hycWkiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIsbm9uZSxzZXRfY3pu LHNldF9jem4sc2V0X2N6bixzZXRfY3puLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVz dF9sZW4iICJsc2hycWkiKV0pCiAKIDs7ICJsc2hyaGkzIgogOzsgImxzaHJocTMiICAibHNocnVo cTMiCiA7OyAibHNocmhhMyIgICJsc2hydWhhMyIKLShkZWZpbmVfaW5zbiAibHNocjxtb2RlPjMi CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJsc2hyPG1vZGU+MyIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6QUxMMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAiPXIscixyLHIs cixyLHIiKQogICAgICAgICAobHNoaWZ0cnQ6QUxMMiAobWF0Y2hfb3BlcmFuZDpBTEwyIDEgInJl Z2lzdGVyX29wZXJhbmQiICAgICIwLDAsMCxyLDAsMCwwIikKICAgICAgICAgICAgICAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9wX2dlbmVyYWxfb3BlcmFuZCIgInIsTCxQLE8sSyxu LFFtIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFs bGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobHNoaWZ0cnQ6QUxM MiAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNo X2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKmxzaHI8bW9kZT4zIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpBTEwy IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICI9cixyLHIscixyLHIsciIpCisg ICAgICAgIChsc2hpZnRydDpBTEwyIChtYXRjaF9vcGVyYW5kOkFMTDIgMSAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgIjAsMCwwLHIsMCwwLDAiKQorICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpRSSAyICJub3BfZ2VuZXJhbF9vcGVyYW5kIiAicixMLFAsTyxLLG4sUW0iKSkpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewot ICAgIHJldHVybiBsc2hyaGkzX291dCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOworICAgIHJldHVy biBsc2hyaGkzX291dCAoaW5zbiwgb3BlcmFuZHMsIDMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjYsMCwyLDIsNCwxMCwxMCIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4i ICJsc2hyaGkiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIsbm9uZSxjbG9iYmVyLGNsb2Ji ZXIsY2xvYmJlcixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4i ICJsc2hyaGkiKV0pCiAKLShkZWZpbmVfaW5zbiAibHNocnBzaTMiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICJsc2hycHNpMyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICAgICAgICAgICAgICAgICAiPXIscixyLHIsciIpCiAgICAgICAgIChsc2hpZnRy dDpQU0kgKG1hdGNoX29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICIwLDAsciww LDAiKQogICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9y eV9vcGVyYW5kIiAgICAicixQLE8sSyxuIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6 UUkgMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9WCxYLFgsWCwmZCIpKV0KICAg IiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0ICht YXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAobHNoaWZ0cnQ6UFNJIChtYXRjaF9kdXAg MSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMikpKQorICAg ICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipsc2hycHNpMyIKKyAgWyhz ZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAg ICAiPXIscixyLHIsciIpCisgICAgICAgIChsc2hpZnRydDpQU0kgKG1hdGNoX29wZXJhbmQ6UFNJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICIwLDAsciwwLDAiKQorICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAgICAicixQLE8sSyxu IikpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICI9WCxYLFgsWCwmZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0Mp KV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKLSAgICByZXR1cm4gYXZyX291dF9sc2hycHNp MyAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOworICAgIHJldHVybiBhdnJfb3V0X2xzaHJwc2kzIChp bnNuLCBvcGVyYW5kcywgNCwgTlVMTCk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIg ImxzaHJwc2kiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIg ImFkanVzdF9sZW4iICJsc2hycHNpIildKQogCiA7OyAibHNocnNpMyIKIDs7ICJsc2hyc3EzIiAg ImxzaHJ1c3EzIgogOzsgImxzaHJzYTMiICAibHNocnVzYTMiCi0oZGVmaW5lX2luc24gImxzaHI8 bW9kZT4zIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAibHNocjxtb2RlPjMiCiAgIFsoc2V0ICht YXRjaF9vcGVyYW5kOkFMTDQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAi PXIscixyLHIscixyLHIiKQogICAgICAgICAobHNoaWZ0cnQ6QUxMNCAobWF0Y2hfb3BlcmFuZDpB TEw0IDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICIwLDAsMCxyLDAsMCwwIikKICAgICAgICAgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9wX2dlbmVyYWxfb3BlcmFuZCIgICAi cixMLFAsTyxLLG4sUW0iKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChs c2hpZnRydDpBTEw0IChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbHNocjxtb2RlPjMiCisgIFsoc2V0IChtYXRjaF9v cGVyYW5kOkFMTDQgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAiPXIscixy LHIscixyLHIiKQorICAgICAgICAobHNoaWZ0cnQ6QUxMNCAobWF0Y2hfb3BlcmFuZDpBTEw0IDEg InJlZ2lzdGVyX29wZXJhbmQiICAgICIwLDAsMCxyLDAsMCwwIikKKyAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMiAibm9wX2dlbmVyYWxfb3BlcmFuZCIgICAicixMLFAs TyxLLG4sUW0iKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2Nv bXBsZXRlZCIKICAgewotICAgIHJldHVybiBsc2hyc2kzX291dCAoaW5zbiwgb3BlcmFuZHMsIE5V TEwpOworICAgIHJldHVybiBsc2hyc2kzX291dCAoaW5zbiwgb3BlcmFuZHMsIDMsIE5VTEwpOwog ICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjgsMCw0LDQsOCwxMCwxMiIpCi0gICAoc2V0X2F0 dHIgImFkanVzdF9sZW4iICJsc2hyc2kiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIsbm9u ZSxjbG9iYmVyLGNsb2JiZXIsY2xvYmJlcixjbG9iYmVyLGNsb2JiZXIiKV0pCisgICAoc2V0X2F0 dHIgImFkanVzdF9sZW4iICJsc2hyc2kiKV0pCiAKIDs7IE9wdGltaXplIGlmIGEgc2NyYXRjaCBy ZWdpc3RlciBmcm9tIExEX1JFR1MgaGFwcGVucyB0byBiZSBhdmFpbGFibGUuCiAKQEAgLTQxNzgs MTggKzU3NjgsMzIgQEAKIDs7ICIqbHNocmhpM19jb25zdCIKIDs7ICIqbHNocmhxM19jb25zdCIg ICIqbHNocnVocTNfY29uc3QiCiA7OyAiKmxzaHJoYTNfY29uc3QiICAiKmxzaHJ1aGEzX2NvbnN0 IgotKGRlZmluZV9pbnNuICIqbHNocjxtb2RlPjNfY29uc3QiCisoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICIqbHNocjxtb2RlPjNfY29uc3Rfc3BsaXQiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkFM TDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgIj1yLHIscixyLHIiKQogICAg ICAgICAobHNoaWZ0cnQ6QUxMMiAobWF0Y2hfb3BlcmFuZDpBTEwyIDEgInJlZ2lzdGVyX29wZXJh bmQiICAiMCwwLHIsMCwwIikKICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 UUkgMiAiY29uc3RfaW50X29wZXJhbmQiICAgIkwsUCxPLEssbiIpKSkKICAgIChjbG9iYmVyICht YXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxY LFgsJmQiKSldCiAgICJyZWxvYWRfY29tcGxldGVkIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21w bGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAg ICAgIChsc2hpZnRydDpBTEwyIChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNo X2R1cCAzKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKwor KGRlZmluZV9pbnNuICIqbHNocjxtb2RlPjNfY29uc3QiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgIj1yLHIscixyLHIiKQor ICAgICAgICAobHNoaWZ0cnQ6QUxMMiAobWF0Y2hfb3BlcmFuZDpBTEwyIDEgInJlZ2lzdGVyX29w ZXJhbmQiICAiMCwwLHIsMCwwIikKKyAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJh bmQ6UUkgMiAiY29uc3RfaW50X29wZXJhbmQiICAgIkwsUCxPLEssbiIpKSkKKyAgIChjbG9iYmVy IChtYXRjaF9zY3JhdGNoOlFJIDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgs WCxYLFgsJmQiKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29t cGxldGVkIgogICB7Ci0gICAgcmV0dXJuIGxzaHJoaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgTlVM TCk7CisgICAgcmV0dXJuIGxzaHJoaTNfb3V0IChpbnNuLCBvcGVyYW5kcywgNCwgTlVMTCk7CiAg IH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMCwyLDIsNCwxMCIpCi0gICAoc2V0X2F0dHIgImFk anVzdF9sZW4iICJsc2hyaGkiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUsY2xvYmJlcixjbG9i YmVyLGNsb2JiZXIsY2xvYmJlciIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImxzaHJo aSIpXSkKIAogKGRlZmluZV9wZWVwaG9sZTIKICAgWyhtYXRjaF9zY3JhdGNoOlFJIDMgImQiKQpA QCAtNDIwNSwxNDMgKzU4MDksMjc3IEBACiA7OyAiKmxzaHJzaTNfY29uc3QiCiA7OyAiKmxzaHJz cTNfY29uc3QiICAiKmxzaHJ1c3EzX2NvbnN0IgogOzsgIipsc2hyc2EzX2NvbnN0IiAgIipsc2hy dXNhM19jb25zdCIKLShkZWZpbmVfaW5zbiAiKmxzaHI8bW9kZT4zX2NvbnN0IgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiKmxzaHI8bW9kZT4zX2NvbnN0X3NwbGl0IgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpBTEw0IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgIj1yLHIscixy IikKICAgICAgICAgKGxzaGlmdHJ0OkFMTDQgKG1hdGNoX29wZXJhbmQ6QUxMNCAxICJyZWdpc3Rl cl9vcGVyYW5kIiAiMCwwLHIsMCIpCiAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlFJIDIgImNvbnN0X2ludF9vcGVyYW5kIiAgIkwsUCxPLG4iKSkpCiAgICAoY2xvYmJlciAo bWF0Y2hfc2NyYXRjaDpRSSAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxY LCZkIikpXQogICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAg ICAobHNoaWZ0cnQ6QUxMNCAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9k dXAgMykpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhk ZWZpbmVfaW5zbiAiKmxzaHI8bW9kZT4zX2NvbnN0IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpB TEw0IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgIj1yLHIscixyIikKKyAgICAg ICAgKGxzaGlmdHJ0OkFMTDQgKG1hdGNoX29wZXJhbmQ6QUxMNCAxICJyZWdpc3Rlcl9vcGVyYW5k IiAiMCwwLHIsMCIpCisgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDIg ImNvbnN0X2ludF9vcGVyYW5kIiAgIkwsUCxPLG4iKSkpCisgICAoY2xvYmJlciAobWF0Y2hfc2Ny YXRjaDpRSSAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPVgsWCxYLCZkIikpCisg ICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewot ICAgIHJldHVybiBsc2hyc2kzX291dCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOworICAgIHJldHVy biBsc2hyc2kzX291dCAoaW5zbiwgb3BlcmFuZHMsIDQsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjAsNCw0LDEwIikKLSAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImxzaHJz aSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSxjbG9iYmVyLGNsb2JiZXIsY2xvYmJlciIpXSkK KyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImxzaHJzaSIpXSkKIAogOzsgYWJzKHgpIGFicyh4 KSBhYnMoeCkgYWJzKHgpIGFicyh4KSBhYnMoeCkgYWJzKHgpIGFicyh4KSBhYnMoeCkgYWJzKHgp IGFicyh4KQogOzsgYWJzCiAKLShkZWZpbmVfaW5zbiAiYWJzcWkyIgorKGRlZmluZV9pbnNuX2Fu ZF9zcGxpdCAiYWJzcWkyIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIiKQogICAgICAgICAoYWJzOlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lz dGVyX29wZXJhbmQiICIwIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAo YWJzOlFJIChtYXRjaF9kdXAgMSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIiphYnNxaTIiCisgIFsoc2V0IChtYXRjaF9vcGVy YW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisgICAgICAgIChhYnM6UUkgKG1hdGNo X29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgInNicmMgJTAsNwogCW5lZyAl MCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJl ciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIAogCi0oZGVmaW5lX2luc24gImFi c3NmMiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImFic3NmMiIKICAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1kLHIiKQogICAgICAgICAoYWJzOlNGICht YXRjaF9vcGVyYW5kOlNGIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwLDAiKSkpXQogICAiIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1 cCAwKQorICAgICAgICAgICAgICAgICAgIChhYnM6U0YgKG1hdGNoX2R1cCAxKSkpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmFi c3NmMiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0YgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1k LHIiKQorICAgICAgICAoYWJzOlNGIChtYXRjaF9vcGVyYW5kOlNGIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLDAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2Nv bXBsZXRlZCIKICAgIkAKIAlhbmRpICVEMCwweDdmCiAJY2x0XDtibGQgJUQwLDciCi0gIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjEsMiIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X24sY2xvYmJlciIp XSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSwyIildKQogCiA7OyAwIC0geCAgMCAtIHggIDAg LSB4ICAwIC0geCAgMCAtIHggIDAgLSB4ICAwIC0geCAgMCAtIHggIDAgLSB4ICAwIC0geCAgMCAt IHgKIDs7IG5lZwogCi0oZGVmaW5lX2luc24gIm5lZ3FpMiIKKyhkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgIm5lZ3FpMiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgIj1yIikKICAgICAgICAgKG5lZzpRSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAg WyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKG5lZzpR SSAobWF0Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0Mp KV0pXSkKKworKGRlZmluZV9pbnNuICIqbmVncWkyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpR SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQorICAgICAgICAobmVnOlFJIChtYXRjaF9vcGVy YW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBS RUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJuZWcgJTAiCi0gIFsoc2V0X2F0dHIg Imxlbmd0aCIgIjEiKQotICAgKHNldF9hdHRyICJjYyIgInNldF92em4iKV0pCisgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjEiKV0pCiAKLShkZWZpbmVfaW5zbiAiKm5lZ3FpaGkyIgorKGRlZmluZV9p bnNuX2FuZF9zcGxpdCAiKm5lZ3FpaGkyX3NwbGl0IgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpI SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICAgICI9ciIpCiAgICAg ICAgIChuZWc6SEkgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVy X29wZXJhbmQiICIwIikpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKG5l ZzpISSAoc2lnbl9leHRlbmQ6SEkgKG1hdGNoX2R1cCAxKSkpKQorICAgICAgICAgICAgICAoY2xv YmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipuZWdxaWhpMiIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAg ICAgICAgICAgICAiPXIiKQorICAgICAgICAobmVnOkhJIChzaWduX2V4dGVuZDpISSAobWF0Y2hf b3BlcmFuZDpRSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSkpCisgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImNsciAlQjBcO25lZyAlQTBc O2JyZ2UgLisyXDtjb20gJUIwIgotICBbKHNldF9hdHRyICJsZW5ndGgiICI0IikKLSAgIChzZXRf YXR0ciAiY2MiICJzZXRfbiIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAotKGRl ZmluZV9pbnNuICJuZWdoaTIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJuZWdoaTIiCiAgIFso c2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAiPXIsJnIi KQogICAgICAgICAobmVnOkhJIChtYXRjaF9vcGVyYW5kOkhJIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIwLHIiKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFy YWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChuZWc6SEkgKG1h dGNoX2R1cCAxKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKm5lZ2hpMiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICI9ciwmciIpCisgICAgICAgIChuZWc6SEkgKG1hdGNo X29wZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAsciIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiQAogCW5lZyAlQjBcO25l ZyAlQTBcO3NiYyAlQjAsX196ZXJvX3JlZ19fCiAJY2xyICVBMFw7Y2xyICVCMFw7c3ViICVBMCwl QTFcO3NiYyAlQjAsJUIxIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIzLDQiKQotICAgKHNldF9h dHRyICJjYyIgInNldF9jem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMsNCIpXSkKIAot KGRlZmluZV9pbnNuICJuZWdwc2kyIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAibmVncHNpMiIK ICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAi PSFkLHIsJnIiKQogICAgICAgICAobmVnOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0 ZXJfb3BlcmFuZCIgIjAsMCxyIikpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAg ICAobmVnOlBTSSAobWF0Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpD QyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqbmVncHNpMiIKKyAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAiPSFkLHIsJnIiKQorICAg ICAgICAobmVnOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAs MCxyIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0 ZWQiCiAgICJACiAJY29tICVDMFw7Y29tICVCMFw7bmVnICVBMFw7c2JjaSAlQjAsLTFcO3NiY2kg JUMwLC0xCiAJY29tICVDMFw7Y29tICVCMFw7Y29tICVBMFw7YWRjICVBMCxfX3plcm9fcmVnX19c O2FkYyAlQjAsX196ZXJvX3JlZ19fXDthZGMgJUMwLF9femVyb19yZWdfXwogCWNsciAlQTBcO2Ns ciAlQjBcO2NsciAlQzBcO3N1YiAlQTAsJUExXDtzYmMgJUIwLCVCMVw7c2JjICVDMCwlQzEiCi0g IFsoc2V0X2F0dHIgImxlbmd0aCIgIjUsNiw2IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfY3pu LHNldF9uLHNldF9jem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjUsNiw2IildKQogCi0o ZGVmaW5lX2luc24gIm5lZ3NpMiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIm5lZ3NpMiIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIj0hZCxy LCZyLCZyIikKICAgICAgICAgKG5lZzpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9v cGVyYW5kIiAiMCwwLHIgLHIiKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0 ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAg IChuZWc6U0kgKG1hdGNoX2R1cCAxKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKm5lZ3NpMiIKKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgIj0hZCxyLCZyLCZyIikKKyAgICAg ICAgKG5lZzpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwLHIg LHIiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRl ZCIKICAgIkAKIAljb20gJUQwXDtjb20gJUMwXDtjb20gJUIwXDtuZWcgJUEwXDtzYmNpICVCMCxs bzgoLTEpXDtzYmNpICVDMCxsbzgoLTEpXDtzYmNpICVEMCxsbzgoLTEpCiAJY29tICVEMFw7Y29t ICVDMFw7Y29tICVCMFw7Y29tICVBMFw7YWRjICVBMCxfX3plcm9fcmVnX19cO2FkYyAlQjAsX196 ZXJvX3JlZ19fXDthZGMgJUMwLF9femVyb19yZWdfX1w7YWRjICVEMCxfX3plcm9fcmVnX18KIAlj bHIgJUEwXDtjbHIgJUIwXDtjbHIgJUMwXDtjbHIgJUQwXDtzdWIgJUEwLCVBMVw7c2JjICVCMCwl QjFcO3NiYyAlQzAsJUMxXDtzYmMgJUQwLCVEMQogCWNsciAlQTBcO2NsciAlQjBcO21vdncgJUMw LCVBMFw7c3ViICVBMCwlQTFcO3NiYyAlQjAsJUIxXDtzYmMgJUMwLCVDMVw7c2JjICVEMCwlRDEi CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjcsOCw4LDciKQotICAgKHNldF9hdHRyICJpc2EiICAg ICIqLCosbW92LG1vdnciKQotICAgKHNldF9hdHRyICJjYyIgInNldF9jem4sc2V0X24sc2V0X2N6 bixzZXRfY3puIildKQorICAgKHNldF9hdHRyICJpc2EiICAgICIqLCosbW92LG1vdnciKV0pCiAK LShkZWZpbmVfaW5zbiAibmVnc2YyIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAibmVnc2YyIgog ICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTRiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPWQsciIpCiAJ KG5lZzpTRiAobWF0Y2hfb3BlcmFuZDpTRiAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCwwIikpKV0K ICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0 IChtYXRjaF9kdXAgMCkKKwkgICAgICAgICAgICAgICAobmVnOlNGIChtYXRjaF9kdXAgMSkpKQor ICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2lu c24gIipuZWdzZjIiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNGIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9ZCxyIikKKwkobmVnOlNGIChtYXRjaF9vcGVyYW5kOlNGIDEgInJlZ2lzdGVyX29wZXJh bmQiICIwLDAiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2Nv bXBsZXRlZCIKICAgIkAKIAlzdWJpICVEMCwweDgwCiAJYnN0ICVEMCw3XDtjb20gJUQwXDtibGQg JUQwLDdcO2NvbSAlRDAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEsNCIpCi0gICAoc2V0X2F0 dHIgImNjIiAic2V0X24sc2V0X24iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEsNCIpXSkK IAogOzsgISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEh ISEhISEhISEhISEhISEhISEhISEhISEKIDs7IG5vdAogCi0oZGVmaW5lX2luc24gIm9uZV9jbXBs cWkyIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAib25lX2NtcGxxaTIiCiAgIFsoc2V0IChtYXRj aF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAgICAgICAgIChub3Q6UUkg KG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpXQogICAiIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1 cCAwKQorICAgICAgICAgICAgICAgICAgIChub3Q6UUkgKG1hdGNoX2R1cCAxKSkpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKm9u ZV9jbXBscWkyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5k IiAiPXIiKQorICAgICAgICAobm90OlFJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVyX29w ZXJhbmQiICIwIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9j b21wbGV0ZWQiCiAgICJjb20gJTAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKQotICAgKHNl dF9hdHRyICJjYyIgInNldF9jem4iKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCiAK LShkZWZpbmVfaW5zbiAib25lX2NtcGxoaTIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJvbmVf Y21wbGhpMiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yIikKICAgICAgICAgKG5vdDpISSAobWF0Y2hfb3BlcmFuZDpISSAxICJyZWdpc3Rlcl9vcGVy YW5kIiAiMCIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhw YXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKG5vdDpISSAo bWF0Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0p XSkKKworKGRlZmluZV9pbnNuICIqb25lX2NtcGxoaTIiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5k OkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisgICAgICAgIChub3Q6SEkgKG1hdGNoX29w ZXJhbmQ6SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKSkpCisgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImNvbSAlMAogCWNvbSAlQjAiCi0g IFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRyICJjYyIgInNldF9uIildKQor ICBbKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCi0oZGVmaW5lX2luc24gIm9uZV9jbXBscHNp MiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIm9uZV9jbXBscHNpMiIKICAgWyhzZXQgKG1hdGNo X29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCiAgICAgICAgIChub3Q6UFNJ IChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpKSldCiAgICIiCisg ICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hf ZHVwIDApCisgICAgICAgICAgICAgICAgICAgKG5vdDpQU0kgKG1hdGNoX2R1cCAxKSkpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAi Km9uZV9jbXBscHNpMiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29w ZXJhbmQiICI9ciIpCisgICAgICAgIChub3Q6UFNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiMCIpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJy ZWxvYWRfY29tcGxldGVkIgogICAiY29tICUwXDtjb20gJUIwXDtjb20gJUMwIgotICBbKHNldF9h dHRyICJsZW5ndGgiICIzIikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbiIpXSkKKyAgWyhzZXRf YXR0ciAibGVuZ3RoIiAiMyIpXSkKIAotKGRlZmluZV9pbnNuICJvbmVfY21wbHNpMiIKKyhkZWZp bmVfaW5zbl9hbmRfc3BsaXQgIm9uZV9jbXBsc2kyIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpT SSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIiKQogICAgICAgICAobm90OlNJIChtYXRjaF9vcGVy YW5kOlNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIwIikpKV0KICAgIiIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAg ICAgICAgICAgICAgICAobm90OlNJIChtYXRjaF9kdXAgMSkpKQorICAgICAgICAgICAgICAoY2xv YmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipvbmVfY21wbHNpMiIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKyAg ICAgICAgKG5vdDpTSSAobWF0Y2hfb3BlcmFuZDpTSSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIp KSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgog ICAiY29tICUwCiAJY29tICVCMAogCWNvbSAlQzAKIAljb20gJUQwIgotICBbKHNldF9hdHRyICJs ZW5ndGgiICI0IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRfbiIpXSkKKyAgWyhzZXRfYXR0ciAi bGVuZ3RoIiAiNCIpXSkKIAogOzsgeHg8LS0teCB4eDwtLS14IHh4PC0tLXggeHg8LS0teCB4eDwt LS14IHh4PC0tLXggeHg8LS0teCB4eDwtLS14IHh4PC0tLXgKIDs7IHNpZ24gZXh0ZW5kCkBAIC00 MzUzLDcxICs2MDkxLDEzMSBAQAogOzsgbXVsdGlwbGljYXRpb24uICBUaGVyZSBpcyBubyBuZWVk IGZvciBjb21iaW5lIHRvIHByb3BhZ2F0ZSBoYXJkIHJlZ2lzdGVycywKIDs7IHJlZ2lzdGVyIGFs bG9jYXRpb24gY2FuIGRvIGl0IGp1c3QgYXMgd2VsbC4KIAotKGRlZmluZV9pbnNuICJleHRlbmRx aWhpMiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImV4dGVuZHFpaGkyIgogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpISSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIpCiAgICAgICAgIChzaWdu X2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJjb21iaW5lX3BzZXVkb19yZWdpc3Rlcl9v cGVyYW5kIiAiMCwqciIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHNp Z25fZXh0ZW5kOkhJIChtYXRjaF9kdXAgMSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipleHRlbmRxaWhpMiIKKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQorICAgICAgICAo c2lnbl9leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMSAiY29tYmluZV9wc2V1ZG9fcmVnaXN0 ZXJfb3BlcmFuZCIgIjAsKnIiKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAi cmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3NpZ25fZXh0ZW5kIChp bnNuLCBvcGVyYW5kcywgTlVMTCk7CiAgIH0KICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyw0IikK LSAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInNleHQiKQotICAgKHNldF9hdHRyICJjYyIgInNl dF9uIildKQorICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAic2V4dCIpXSkKIAotKGRlZmluZV9p bnNuICJleHRlbmRxaXBzaTIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJleHRlbmRxaXBzaTIi CiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlBTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsciIp CiAgICAgICAgIChzaWduX2V4dGVuZDpQU0kgKG1hdGNoX29wZXJhbmQ6UUkgMSAiY29tYmluZV9w c2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIjAsKnIiKSkpXQogICAiIgorICAiIyIKKyAgIiYmIHJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAg ICAgICAgICAgICAgIChzaWduX2V4dGVuZDpQU0kgKG1hdGNoX2R1cCAxKSkpCisgICAgICAgICAg ICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmV4dGVu ZHFpcHNpMiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9cixyIikKKyAgICAgICAgKHNpZ25fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpRSSAxICJj b21iaW5lX3BzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiMCwqciIpKSkKKyAgIChjbG9iYmVyIChy ZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJuIGF2 cl9vdXRfc2lnbl9leHRlbmQgKGluc24sIG9wZXJhbmRzLCBOVUxMKTsKICAgfQogICBbKHNldF9h dHRyICJsZW5ndGgiICI0LDUiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAic2V4dCIpCi0g ICAoc2V0X2F0dHIgImNjIiAic2V0X24iKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJz ZXh0IildKQogCi0oZGVmaW5lX2luc24gImV4dGVuZHFpc2kyIgorKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAiZXh0ZW5kcWlzaTIiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVy X29wZXJhbmQiICI9cixyIikKICAgICAgICAgKHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5k OlFJIDEgImNvbWJpbmVfcHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIwLCpyIikpKV0KICAgIiIK KyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX2R1cCAx KSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiKmV4dGVuZHFpc2kyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIsciIpCisgICAgICAgIChzaWduX2V4dGVuZDpTSSAobWF0Y2hfb3Bl cmFuZDpRSSAxICJjb21iaW5lX3BzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiMCwqciIpKSkKKyAg IChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAg ICAgcmV0dXJuIGF2cl9vdXRfc2lnbl9leHRlbmQgKGluc24sIG9wZXJhbmRzLCBOVUxMKTsKICAg fQogICBbKHNldF9hdHRyICJsZW5ndGgiICI1LDYiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVu IiAic2V4dCIpCi0gICAoc2V0X2F0dHIgImNjIiAic2V0X24iKV0pCisgICAoc2V0X2F0dHIgImFk anVzdF9sZW4iICJzZXh0IildKQogCi0oZGVmaW5lX2luc24gImV4dGVuZGhpcHNpMiIKKyhkZWZp bmVfaW5zbl9hbmRfc3BsaXQgImV4dGVuZGhpcHNpMiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9 cixyIikKICAgICAgICAgKHNpZ25fZXh0ZW5kOlBTSSAobWF0Y2hfb3BlcmFuZDpISSAxICJjb21i aW5lX3BzZXVkb19yZWdpc3Rlcl9vcGVyYW5kIiAiMCwqciIpKSldCiAgICIiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisg ICAgICAgICAgICAgICAgICAgKHNpZ25fZXh0ZW5kOlBTSSAobWF0Y2hfZHVwIDEpKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIq ZXh0ZW5kaGlwc2kyIgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yLHIiKQorICAgICAgICAoc2ln bl9leHRlbmQ6UFNJIChtYXRjaF9vcGVyYW5kOkhJIDEgImNvbWJpbmVfcHNldWRvX3JlZ2lzdGVy X29wZXJhbmQiICIwLCpyIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9zaWduX2V4dGVuZCAoaW5z biwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMsNSIpCi0g ICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJzZXh0IikKLSAgIChzZXRfYXR0ciAiY2MiICJzZXRf biIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInNleHQiKV0pCiAKLShkZWZpbmVfaW5z biAiZXh0ZW5kaGlzaTIiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJleHRlbmRoaXNpMiIKICAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIj1yLHIiKQogICAgICAgICAoc2lnbl9leHRlbmQ6U0kgKG1hdGNo X29wZXJhbmQ6SEkgMSAiY29tYmluZV9wc2V1ZG9fcmVnaXN0ZXJfb3BlcmFuZCIgIjAsKnIiKSkp XQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhz ZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChzaWduX2V4dGVuZDpTSSAobWF0 Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkK KworKGRlZmluZV9pbnNuICIqZXh0ZW5kaGlzaTIiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI9cixy IikKKyAgICAgICAgKHNpZ25fZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOkhJIDEgImNvbWJpbmVf cHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIwLCpyIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBS RUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9z aWduX2V4dGVuZCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFsoc2V0X2F0dHIgImxl bmd0aCIgIjQsNiIpCi0gICAoc2V0X2F0dHIgImFkanVzdF9sZW4iICJzZXh0IikKLSAgIChzZXRf YXR0ciAiY2MiICJzZXRfbiIpXSkKKyAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInNleHQiKV0p CiAKLShkZWZpbmVfaW5zbiAiZXh0ZW5kcHNpc2kyIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAi ZXh0ZW5kcHNpc2kyIgogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVy YW5kIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj1yIikKICAgICAgICAgKHNpZ25f ZXh0ZW5kOlNJIChtYXRjaF9vcGVyYW5kOlBTSSAxICJjb21iaW5lX3BzZXVkb19yZWdpc3Rlcl9v cGVyYW5kIiAiMCIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAg WyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHNpZ25f ZXh0ZW5kOlNJIChtYXRjaF9kdXAgMSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipleHRlbmRwc2lzaTIiCisgIFsoc2V0ICht YXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiPXIiKQorICAgICAgICAoc2lnbl9leHRlbmQ6U0kgKG1hdGNoX29wZXJhbmQ6 UFNJIDEgImNvbWJpbmVfcHNldWRvX3JlZ2lzdGVyX29wZXJhbmQiICIwIikpKQorICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1 cm4gYXZyX291dF9zaWduX2V4dGVuZCAoaW5zbiwgb3BlcmFuZHMsIE5VTEwpOwogICB9CiAgIFso c2V0X2F0dHIgImxlbmd0aCIgIjMiKQotICAgKHNldF9hdHRyICJhZGp1c3RfbGVuIiAic2V4dCIp Ci0gICAoc2V0X2F0dHIgImNjIiAic2V0X24iKV0pCisgICAoc2V0X2F0dHIgImFkanVzdF9sZW4i ICJzZXh0IildKQogCiA7OyB4eDwtLS14IHh4PC0tLXggeHg8LS0teCB4eDwtLS14IHh4PC0tLXgg eHg8LS0teCB4eDwtLS14IHh4PC0tLXggeHg8LS0teAogOzsgemVybyBleHRlbmQKQEAgLTQ1ODUs MTQ1ICs2MzgzLDEzMyBAQAogCiA7IE9wdGltaXplIG5lZ2F0ZWQgdGVzdHMgaW50byByZXZlcnNl IGNvbXBhcmUgaWYgb3ZlcmZsb3cgaXMgdW5kZWZpbmVkLgogKGRlZmluZV9pbnNuICIqbmVnYXRl ZF90c3RxaSIKLSAgWyhzZXQgKGNjMCkKLSAgICAgICAgKGNvbXBhcmUgKG5lZzpRSSAobWF0Y2hf b3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQorICBbKHNldCAocmVnOkNDIFJF R19DQykKKyAgICAgICAgKGNvbXBhcmU6Q0MgKG5lZzpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJy ZWdpc3Rlcl9vcGVyYW5kIiAiciIpKQogICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSld Ci0gICIhZmxhZ193cmFwdiAmJiAhZmxhZ190cmFwdiIKKyAgInJlbG9hZF9jb21wbGV0ZWQgJiYg IWZsYWdfd3JhcHYgJiYgIWZsYWdfdHJhcHYiCiAgICJjcCBfX3plcm9fcmVnX18sJTAiCi0gIFso c2V0X2F0dHIgImNjIiAiY29tcGFyZSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCisg IFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCiAKIChkZWZpbmVfaW5zbiAiKnJldmVyc2VkX3Rz dHFpIgotICBbKHNldCAoY2MwKQotICAgICAgICAoY29tcGFyZSAoY29uc3RfaW50IDApCisgIFso c2V0IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAoY29tcGFyZTpDQyAoY29uc3RfaW50IDApCiAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJy IikpKV0KLSAgIiIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJjcCBfX3plcm9fcmVnX18sJTAi Ci1bKHNldF9hdHRyICJjYyIgImNvbXBhcmUiKQotIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkK K1soc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKIChkZWZpbmVfaW5zbiAiKm5lZ2F0ZWRfdHN0 aGkiCi0gIFsoc2V0IChjYzApCi0gICAgICAgIChjb21wYXJlIChuZWc6SEkgKG1hdGNoX29wZXJh bmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKKyAgWyhzZXQgKHJlZzpDQyBSRUdfQ0Mp CisgICAgICAgIChjb21wYXJlOkNDIChuZWc6SEkgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0 ZXJfb3BlcmFuZCIgInIiKSkKICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQotICAi IWZsYWdfd3JhcHYgJiYgIWZsYWdfdHJhcHYiCisgICJyZWxvYWRfY29tcGxldGVkICYmICFmbGFn X3dyYXB2ICYmICFmbGFnX3RyYXB2IgogICAiY3AgX196ZXJvX3JlZ19fLCVBMAogCWNwYyBfX3pl cm9fcmVnX18sJUIwIgotWyhzZXRfYXR0ciAiY2MiICJjb21wYXJlIikKLSAoc2V0X2F0dHIgImxl bmd0aCIgIjIiKV0pCitbKHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCiA7OyBMZWF2ZSBoZXJl IHRoZSBjbG9iYmVyIHVzZWQgYnkgdGhlIGNtcGhpIHBhdHRlcm4gZm9yIHNpbXBsaWNpdHksIGV2 ZW4KIDs7IHRob3VnaCBpdCBpcyB1bnVzZWQsIGJlY2F1c2UgdGhpcyBwYXR0ZXJuIGlzIHN5bnRo ZXNpemVkIGJ5IGF2cl9yZW9yZy4KIChkZWZpbmVfaW5zbiAiKnJldmVyc2VkX3RzdGhpIgotICBb KHNldCAoY2MwKQotICAgICAgICAoY29tcGFyZSAoY29uc3RfaW50IDApCisgIFsoc2V0IChyZWc6 Q0MgUkVHX0NDKQorICAgICAgICAoY29tcGFyZTpDQyAoY29uc3RfaW50IDApCiAgICAgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQogICAg KGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMSAiPVgiKSldCi0gICIiCisgICJyZWxvYWRfY29t cGxldGVkIgogICAiY3AgX196ZXJvX3JlZ19fLCVBMAogCWNwYyBfX3plcm9fcmVnX18sJUIwIgot WyhzZXRfYXR0ciAiY2MiICJjb21wYXJlIikKLSAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCitb KHNldF9hdHRyICJsZW5ndGgiICIyIildKQogCiAoZGVmaW5lX2luc24gIipuZWdhdGVkX3RzdHBz aSIKLSAgWyhzZXQgKGNjMCkKLSAgICAgICAgKGNvbXBhcmUgKG5lZzpQU0kgKG1hdGNoX29wZXJh bmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisgIFsoc2V0IChyZWc6Q0MgUkVHX0ND KQorICAgICAgICAoY29tcGFyZTpDQyAobmVnOlBTSSAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVn aXN0ZXJfb3BlcmFuZCIgInIiKSkKICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpXQot ICAiIWZsYWdfd3JhcHYgJiYgIWZsYWdfdHJhcHYiCisgICJyZWxvYWRfY29tcGxldGVkICYmICFm bGFnX3dyYXB2ICYmICFmbGFnX3RyYXB2IgogICAiY3AgX196ZXJvX3JlZ19fLCVBMFw7Y3BjIF9f emVyb19yZWdfXywlQjBcO2NwYyBfX3plcm9fcmVnX18sJUMwIgotICBbKHNldF9hdHRyICJjYyIg ImNvbXBhcmUiKQotICAgKHNldF9hdHRyICJsZW5ndGgiICIzIildKQorICBbKHNldF9hdHRyICJs ZW5ndGgiICIzIildKQogCiAoZGVmaW5lX2luc24gIipyZXZlcnNlZF90c3Rwc2kiCi0gIFsoc2V0 IChjYzApCi0gICAgICAgIChjb21wYXJlIChjb25zdF9pbnQgMCkKKyAgWyhzZXQgKHJlZzpDQyBS RUdfQ0MpCisgICAgICAgIChjb21wYXJlOkNDIChjb25zdF9pbnQgMCkKICAgICAgICAgICAgICAg ICAgKG1hdGNoX29wZXJhbmQ6UFNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpKQogICAgKGNs b2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMSAiPVgiKSldCi0gICIiCisgICJyZWxvYWRfY29tcGxl dGVkIgogICAiY3AgX196ZXJvX3JlZ19fLCVBMFw7Y3BjIF9femVyb19yZWdfXywlQjBcO2NwYyBf X3plcm9fcmVnX18sJUMwIgotICBbKHNldF9hdHRyICJjYyIgImNvbXBhcmUiKQotICAgKHNldF9h dHRyICJsZW5ndGgiICIzIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIzIildKQogCiAoZGVm aW5lX2luc24gIipuZWdhdGVkX3RzdHNpIgotICBbKHNldCAoY2MwKQotICAgICAgICAoY29tcGFy ZSAobmVnOlNJIChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisg IFsoc2V0IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAoY29tcGFyZTpDQyAobmVnOlNJIChtYXRj aF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCiAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMCkpKV0KLSAgIiFmbGFnX3dyYXB2ICYmICFmbGFnX3RyYXB2IgorICAicmVs b2FkX2NvbXBsZXRlZCAmJiAhZmxhZ193cmFwdiAmJiAhZmxhZ190cmFwdiIKICAgImNwIF9femVy b19yZWdfXywlQTAKIAljcGMgX196ZXJvX3JlZ19fLCVCMAogCWNwYyBfX3plcm9fcmVnX18sJUMw CiAJY3BjIF9femVyb19yZWdfXywlRDAiCi0gIFsoc2V0X2F0dHIgImNjIiAiY29tcGFyZSIpCi0g ICAoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0p CiAKIDs7ICIqcmV2ZXJzZWRfdHN0c2kiCiA7OyAiKnJldmVyc2VkX3RzdHNxIiAiKnJldmVyc2Vk X3RzdHVzcSIKIDs7ICIqcmV2ZXJzZWRfdHN0c2EiICIqcmV2ZXJzZWRfdHN0dXNhIgogKGRlZmlu ZV9pbnNuICIqcmV2ZXJzZWRfdHN0PG1vZGU+IgotICBbKHNldCAoY2MwKQotICAgICAgICAoY29t cGFyZSAobWF0Y2hfb3BlcmFuZDpBTEw0IDAgImNvbnN0MF9vcGVyYW5kIiAgICJZMDAiKQorICBb KHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAgKGNvbXBhcmU6Q0MgKG1hdGNoX29wZXJhbmQ6 QUxMNCAwICJjb25zdDBfb3BlcmFuZCIgICAiWTAwIikKICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhbmQ6QUxMNCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciIpKSkKICAgIChjbG9iYmVyICht YXRjaF9zY3JhdGNoOlFJIDIgIj1YIikpXQotICAiIgorICAicmVsb2FkX2NvbXBsZXRlZCIKICAg ImNwIF9femVyb19yZWdfXywlQTEKIAljcGMgX196ZXJvX3JlZ19fLCVCMQogCWNwYyBfX3plcm9f cmVnX18sJUMxCiAJY3BjIF9femVyb19yZWdfXywlRDEiCi0gIFsoc2V0X2F0dHIgImNjIiAiY29t cGFyZSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjQiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjQiKV0pCiAKIAogOzsgImNtcHFpMyIKIDs7ICJjbXBxcTMiICJjbXB1cXEzIgogKGRlZmlu ZV9pbnNuICJjbXA8bW9kZT4zIgotICBbKHNldCAoY2MwKQotICAgICAgICAoY29tcGFyZSAobWF0 Y2hfb3BlcmFuZDpBTEwxIDAgInJlZ2lzdGVyX29wZXJhbmQiICAiciAgLHIsZCIpCisgIFsoc2V0 IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAoY29tcGFyZTpDQyAobWF0Y2hfb3BlcmFuZDpBTEwx IDAgInJlZ2lzdGVyX29wZXJhbmQiICAiciAgLHIsZCIpCiAgICAgICAgICAgICAgICAgIChtYXRj aF9vcGVyYW5kOkFMTDEgMSAibm9ubWVtb3J5X29wZXJhbmQiICJZMDAscixpIikpKV0KLSAgIiIK KyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICJACiAJdHN0ICUwCiAJY3AgJTAsJTEKIAljcGkgJTAs bG84KCUxKSIKLSAgWyhzZXRfYXR0ciAiY2MiICJjb21wYXJlLGNvbXBhcmUsY29tcGFyZSIpCi0g ICAoc2V0X2F0dHIgImxlbmd0aCIgIjEsMSwxIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIx LDEsMSIpXSkKIAogKGRlZmluZV9pbnNuICIqY21wcWlfc2lnbl9leHRlbmQiCi0gIFsoc2V0IChj YzApCi0gICAgICAgIChjb21wYXJlIChzaWduX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiZCIpKQorICBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAg ICAgKGNvbXBhcmU6Q0MgKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lz dGVyX29wZXJhbmQiICJkIikpCiAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDEg InM4X29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgICAibiIpKSldCi0gICIiCisgICJyZWxv YWRfY29tcGxldGVkIgogICAiY3BpICUwLGxvOCglMSkiCi0gIFsoc2V0X2F0dHIgImNjIiAiY29t cGFyZSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0 aCIgIjEiKV0pCiAKIAogKGRlZmluZV9pbnNuICIqY21waGkuemVyby1leHRlbmQuMCIKLSAgWyhz ZXQgKGNjMCkKLSAgICAgICAgKGNvbXBhcmUgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5k OlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikpCisgIFsoc2V0IChyZWc6Q0MgUkVHX0NDKQor ICAgICAgICAoY29tcGFyZTpDQyAoemVyb19leHRlbmQ6SEkgKG1hdGNoX29wZXJhbmQ6UUkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkKICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6 SEkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgInIiKSkpXQotICAiIgorICAicmVsb2FkX2NvbXBsZXRl ZCIKICAgImNwICUwLCVBMVw7Y3BjIF9femVyb19yZWdfXywlQjEiCi0gIFsoc2V0X2F0dHIgImNj IiAiY29tcGFyZSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCisgIFsoc2V0X2F0dHIg Imxlbmd0aCIgIjIiKV0pCiAKIChkZWZpbmVfaW5zbiAiKmNtcGhpLnplcm8tZXh0ZW5kLjEiCi0g IFsoc2V0IChjYzApCi0gICAgICAgIChjb21wYXJlIChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lz dGVyX29wZXJhbmQiICJyIikKKyAgWyhzZXQgKHJlZzpDQyBSRUdfQ0MpCisgICAgICAgIChjb21w YXJlOkNDIChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICJyIikKICAgICAg ICAgICAgICAgICAgKHplcm9fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5kOlFJIDEgInJlZ2lzdGVy X29wZXJhbmQiICJyIikpKSldCi0gICIiCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiY3AgJUEw LCUxXDtjcGMgJUIwLF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAiY2MiICJjb21wYXJlIikK LSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMiIp XSkKIAogOzsgImNtcGhpMyIKIDs7ICJjbXBocTMiICJjbXB1aHEzIgogOzsgImNtcGhhMyIgImNt cHVoYTMiCiAoZGVmaW5lX2luc24gImNtcDxtb2RlPjMiCi0gIFsoc2V0IChjYzApCi0gICAgICAg IChjb21wYXJlIChtYXRjaF9vcGVyYW5kOkFMTDIgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICIhdyAg LHIgICxyLGQgLHIgICxkLHIiKQorICBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAgKGNv bXBhcmU6Q0MgKG1hdGNoX29wZXJhbmQ6QUxMMiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgIiF3ICAs ciAgLHIsZCAsciAgLGQsciIpCiAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDIg MSAibm9ubWVtb3J5X29wZXJhbmQiICAiWTAwLFkwMCxyLHMgLHMgICxNLG4gWW5uIikpKQogICAg KGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAi PVggICxYICAsWCwmZCwmZCAsWCwmZCIpKV0KLSAgIiIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAg IHsKICAgICBzd2l0Y2ggKHdoaWNoX2FsdGVybmF0aXZlKQogICAgICAgewpAQCAtNDc0OSwxNiAr NjUzNSwxNSBAQAogCiAgICAgcmV0dXJuIGF2cl9vdXRfY29tcGFyZSAoaW5zbiwgb3BlcmFuZHMs IE5VTEwpOwogICB9Ci0gIFsoc2V0X2F0dHIgImNjIiAiY29tcGFyZSIpCi0gICAoc2V0X2F0dHIg Imxlbmd0aCIgIjEsMiwyLDMsNCwyLDQiKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIxLDIsMiwz LDQsMiw0IikKICAgIChzZXRfYXR0ciAiYWRqdXN0X2xlbiIgInRzdGhpLHRzdGhpLCosKiwqLGNv bXBhcmUsY29tcGFyZSIpXSkKIAogKGRlZmluZV9pbnNuICIqY21wcHNpIgotICBbKHNldCAoY2Mw KQotICAgICAgICAoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIgICJyLHIsZCAsciAgLGQsciIpCisgIFsoc2V0IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAo Y29tcGFyZTpDQyAobWF0Y2hfb3BlcmFuZDpQU0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICJyLHIs ZCAsciAgLGQsciIpCiAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlBTSSAxICJub25t ZW1vcnlfb3BlcmFuZCIgIkwscixzICxzICAsTSxuIikpKQogICAgKGNsb2JiZXIgKG1hdGNoX3Nj cmF0Y2g6UUkgMiAgICAgICAgICAgICAgICAgICAgICAgICAgIj1YLFgsJmQsJmQgLFgsJmQiKSld Ci0gICIiCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgc3dpdGNoICh3aGljaF9hbHRl cm5hdGl2ZSkKICAgICAgIHsKQEAgLTQ3NzksMTkgKzY1NjQsMTggQEAKIAogICAgIHJldHVybiBh dnJfb3V0X2NvbXBhcmUgKGluc24sIG9wZXJhbmRzLCBOVUxMKTsKICAgfQotICBbKHNldF9hdHRy ICJjYyIgImNvbXBhcmUiKQotICAgKHNldF9hdHRyICJsZW5ndGgiICIzLDMsNSw2LDMsNyIpCisg IFsoc2V0X2F0dHIgImxlbmd0aCIgIjMsMyw1LDYsMyw3IikKICAgIChzZXRfYXR0ciAiYWRqdXN0 X2xlbiIgInRzdHBzaSwqLCosKixjb21wYXJlLGNvbXBhcmUiKV0pCiAKIDs7ICIqY21wc2kiCiA7 OyAiKmNtcHNxIiAiKmNtcHVzcSIKIDs7ICIqY21wc2EiICIqY21wdXNhIgogKGRlZmluZV9pbnNu ICIqY21wPG1vZGU+IgotICBbKHNldCAoY2MwKQotICAgICAgICAoY29tcGFyZSAobWF0Y2hfb3Bl cmFuZDpBTEw0IDAgInJlZ2lzdGVyX29wZXJhbmQiICAiciAgLHIgLGQsciAsciIpCisgIFsoc2V0 IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAoY29tcGFyZTpDQyAobWF0Y2hfb3BlcmFuZDpBTEw0 IDAgInJlZ2lzdGVyX29wZXJhbmQiICAiciAgLHIgLGQsciAsciIpCiAgICAgICAgICAgICAgICAg IChtYXRjaF9vcGVyYW5kOkFMTDQgMSAibm9ubWVtb3J5X29wZXJhbmQiICJZMDAsciAsTSxNICxu IFlubiIpKSkKICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDIgICAgICAgICAgICAgICAg ICAgICAgICAgICAiPVggICxYICxYLCZkLCZkIikpXQotICAiIgorICAicmVsb2FkX2NvbXBsZXRl ZCIKICAgewogICAgIGlmICgwID09IHdoaWNoX2FsdGVybmF0aXZlKQogICAgICAgcmV0dXJuIGF2 cl9vdXRfdHN0c2kgKGluc24sIG9wZXJhbmRzLCBOVUxMKTsKQEAgLTQ4MDAsOCArNjU4NCw3IEBA CiAKICAgICByZXR1cm4gYXZyX291dF9jb21wYXJlIChpbnNuLCBvcGVyYW5kcywgTlVMTCk7CiAg IH0KLSAgWyhzZXRfYXR0ciAiY2MiICJjb21wYXJlIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAi NCw0LDQsNSw4IikKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCw0LDQsNSw4IikKICAgIChzZXRf YXR0ciAiYWRqdXN0X2xlbiIgInRzdHNpLCosY29tcGFyZSxjb21wYXJlLGNvbXBhcmUiKV0pCiAK IApAQCAtNDgxMCw0MCArNjU5MywxMjAgQEAKIDs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDs7IENvbmRpdGlv bmFsIGp1bXAgaW5zdHJ1Y3Rpb25zCiAKLTs7ICJjYnJhbmNocWk0IgotOzsgImNicmFuY2hxcTQi ICAiY2JyYW5jaHVxcTQiCiAoZGVmaW5lX2V4cGFuZCAiY2JyYW5jaDxtb2RlPjQiCi0gIFsoc2V0 IChjYzApCi0gICAgICAgIChjb21wYXJlIChtYXRjaF9vcGVyYW5kOkFMTDEgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCi0gICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkFMTDEgMiAibm9u bWVtb3J5X29wZXJhbmQiICIiKSkpCi0gICAoc2V0IChwYykKLSAgICAgICAgKGlmX3RoZW5fZWxz ZQotICAgICAgICAgKG1hdGNoX29wZXJhdG9yIDAgIm9yZGVyZWRfY29tcGFyaXNvbl9vcGVyYXRv ciIgWyhjYzApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0pCisgIFsoc2V0IChwYykKKyAgICAgICAgKGlmX3Ro ZW5fZWxzZSAobWF0Y2hfb3BlcmF0b3IgMCAib3JkZXJlZF9jb21wYXJpc29uX29wZXJhdG9yIgor ICAgICAgICAgICAgICAgICAgICAgICAgWyhtYXRjaF9vcGVyYW5kOkFMTDEgMSAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxM MSAyICJub25tZW1vcnlfb3BlcmFuZCIgIiIpXSkKICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNo X29wZXJhbmQgMyAiIiAiIikpCiAgICAgICAgICAocGMpKSldKQogCi07OyAiY2JyYW5jaGhpNCIg ICJjYnJhbmNoaHE0IiAgImNicmFuY2h1aHE0IiAgImNicmFuY2hoYTQiICAiY2JyYW5jaHVoYTQi Ci07OyAiY2JyYW5jaHNpNCIgICJjYnJhbmNoc3E0IiAgImNicmFuY2h1c3E0IiAgImNicmFuY2hz YTQiICAiY2JyYW5jaHVzYTQiCi07OyAiY2JyYW5jaHBzaTQiCiAoZGVmaW5lX2V4cGFuZCAiY2Jy YW5jaDxtb2RlPjQiCi0gIFsocGFyYWxsZWwgWyhzZXQgKGNjMCkKLSAgICAgICAgICAgICAgICAg ICAoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpPUkRFUkVEMjM0IDEgInJlZ2lzdGVyX29wZXJhbmQi ICIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOk9SREVSRUQy MzQgMiAibm9ubWVtb3J5X29wZXJhbmQiICIiKSkpCi0gICAgICAgICAgICAgIChjbG9iYmVyICht YXRjaF9zY3JhdGNoOlFJIDQgIiIpKV0pCi0gICAoc2V0IChwYykKLSAgICAgICAgKGlmX3RoZW5f ZWxzZQotICAgICAgICAgKG1hdGNoX29wZXJhdG9yIDAgIm9yZGVyZWRfY29tcGFyaXNvbl9vcGVy YXRvciIgWyhjYzApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0pCisgIFsocGFyYWxsZWwKKyAgICAgWyhzZXQg KHBjKQorICAgICAgICAgICAoaWZfdGhlbl9lbHNlCisgICAgICAgICAgICAgKG1hdGNoX29wZXJh dG9yIDAgIm9yZGVyZWRfY29tcGFyaXNvbl9vcGVyYXRvciIKKyAgICAgICAgICAgICAgIFsobWF0 Y2hfb3BlcmFuZDpPUkRFUkVEMjM0IDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOk9SREVSRUQyMzQgMiAibm9ubWVtb3J5X29wZXJhbmQiICIi KV0pCisgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAzICIiICIiKSkKKyAg ICAgICAgICAgICAocGMpKSkKKyAgICAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDQgIiIp KV0pXSkKKworOzsgIipjYnJhbmNocWk0IgorOzsgIipjYnJhbmNocXE0IiAgIipjYnJhbmNodXFx NCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipjYnJhbmNoPG1vZGU+NCIKKyAgWyhzZXQgKHBj KQorICAgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYXRvciAwICJvcmRlcmVkX2NvbXBh cmlzb25fb3BlcmF0b3IiCisgICAgICAgICAgICAgICAgICAgICAgICBbKG1hdGNoX29wZXJhbmQ6 QUxMMSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiciAgLHIsZCIpCisgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMMSAyICJub25tZW1vcnlfb3BlcmFuZCIgIlkwMCxyLGki KV0pCiAgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDMgIiIgIiIpKQotICAgICAg ICAgKHBjKSkpXSkKLQorICAgICAgICAgKHBjKSkpXQorICAgIiIKKyAgICIjIgorICAgInJlbG9h ZF9jb21wbGV0ZWQiCisgICBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAgICAgICAgICAg ICAgKGNvbXBhcmU6Q0MgKG1hdGNoX2R1cCAxKSAobWF0Y2hfZHVwIDIpKSkKKyAgICAoc2V0IChw YykKKyAgICAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wX2R1cCAwCisgICAgICAgICAgICAg ICAgICAgICAgICAgWyhyZWc6Q0MgUkVHX0NDKSAoY29uc3RfaW50IDApXSkKKyAgICAgICAgICAg ICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAgICAg ICAgICAocGMpKSldCisgICAiIikKKworOzsgIipjYnJhbmNoc2k0IiAgIipjYnJhbmNoc3E0IiAg IipjYnJhbmNodXNxNCIgICIqY2JyYW5jaHNhNCIgICIqY2JyYW5jaHVzYTQiCisoZGVmaW5lX2lu c25fYW5kX3NwbGl0ICIqY2JyYW5jaDxtb2RlPjQiCisgIFsoc2V0IChwYykKKyAgICAgICAgICAg KGlmX3RoZW5fZWxzZQorICAgICAgICAgICAgIChtYXRjaF9vcGVyYXRvciAwICJvcmRlcmVkX2Nv bXBhcmlzb25fb3BlcmF0b3IiCisgICAgICAgICAgICAgICBbKG1hdGNoX29wZXJhbmQ6QUxMNCAx ICJyZWdpc3Rlcl9vcGVyYW5kIiAiciAgLHIgLGQsciAsciIpCisgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6QUxMNCAyICJub25tZW1vcnlfb3BlcmFuZCIgIlkwMCxyICxNLE0gLG4gWW5u IildKQorICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMyAiIiAiIikpCisg ICAgICAgICAgICAgKHBjKSkpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSA0ICI9WCAg LFggLFgsJmQsJmQiKSldCisgICAiIgorICAgIiMiCisgICAicmVsb2FkX2NvbXBsZXRlZCIKKyAg IFsocGFyYWxsZWwgWyhzZXQgKHJlZzpDQyBSRUdfQ0MpCisgICAgICAgICAgICAgICAgICAgIChj b21wYXJlOkNDIChtYXRjaF9kdXAgMSkgKG1hdGNoX2R1cCAyKSkpCisgICAgICAgICAgICAgICAo Y2xvYmJlciAobWF0Y2hfZHVwIDQpKV0pCisgICAgKHNldCAocGMpCisgICAgICAgICAoaWZfdGhl bl9lbHNlIChtYXRjaF9vcF9kdXAgMAorICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVnOkND IFJFR19DQykgKGNvbnN0X2ludCAwKV0pCisgICAgICAgICAgICAgICAgICAgICAgIChsYWJlbF9y ZWYgKG1hdGNoX2R1cCAzKSkKKyAgICAgICAgICAgICAgICAgICAgICAgKHBjKSkpXQorICAgIiIp CisKKzs7ICIqY2JyYW5jaHBzaTQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqY2JyYW5jaHBz aTQiCisgIFsoc2V0IChwYykKKyAgICAgICAgICAgKGlmX3RoZW5fZWxzZQorICAgICAgICAgICAg IChtYXRjaF9vcGVyYXRvciAwICJvcmRlcmVkX2NvbXBhcmlzb25fb3BlcmF0b3IiCisgICAgICAg ICAgICAgICBbKG1hdGNoX29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJyLHIsZCAs ciAgLGQsciIpCisgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UFNJIDIgIm5vbm1lbW9y eV9vcGVyYW5kIiAiTCxyLHMgLHMgICxNLG4iKV0pCisgICAgICAgICAgICAgKGxhYmVsX3JlZiAo bWF0Y2hfb3BlcmFuZCAzICIiICIiKSkKKyAgICAgICAgICAgICAocGMpKSkKKyAgIChjbG9iYmVy IChtYXRjaF9zY3JhdGNoOlFJIDQgIj1YLFgsJmQsJmQgLFgsJmQiKSldCisgICAiIgorICAgIiMi CisgICAicmVsb2FkX2NvbXBsZXRlZCIKKyAgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpDQyBSRUdf Q0MpCisgICAgICAgICAgICAgICAgICAgIChjb21wYXJlOkNDIChtYXRjaF9kdXAgMSkgKG1hdGNo X2R1cCAyKSkpCisgICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDQpKV0pCisgICAg KHNldCAocGMpCisgICAgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcF9kdXAgMAorICAgICAg ICAgICAgICAgICAgICAgICAgIFsocmVnOkNDIFJFR19DQykgKGNvbnN0X2ludCAwKV0pCisgICAg ICAgICAgICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX2R1cCAzKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgKHBjKSkpXQorICAgIiIpCisKKzs7ICIqY2JyYW5jaGhpNCIgICIqY2JyYW5j aGhxNCIgICIqY2JyYW5jaHVocTQiICAiKmNicmFuY2hoYTQiICAiKmNicmFuY2h1aGE0IgorKGRl ZmluZV9pbnNuX2FuZF9zcGxpdCAiKmNicmFuY2g8bW9kZT40IgorICBbKHNldCAocGMpCisgICAg ICAgICAgIChpZl90aGVuX2Vsc2UKKyAgICAgICAgICAgICAobWF0Y2hfb3BlcmF0b3IgMCAib3Jk ZXJlZF9jb21wYXJpc29uX29wZXJhdG9yIgorICAgICAgICAgICAgICAgWyhtYXRjaF9vcGVyYW5k OkFMTDIgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiF3ICAsciAgLHIsZCAsciAgLGQsciIpCisgICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6QUxMMiAyICJub25tZW1vcnlfb3BlcmFuZCIgIlkw MCxZMDAscixzICxzICAsTSxuIFlubiIpXSkKKyAgICAgICAgICAgICAobGFiZWxfcmVmIChtYXRj aF9vcGVyYW5kIDMgIiIgIiIpKQorICAgICAgICAgICAgIChwYykpKQorICAgKGNsb2JiZXIgKG1h dGNoX3NjcmF0Y2g6UUkgNCAiPVggICxYICAsWCwmZCwmZCAsWCwmZCIpKV0KKyAgICIiCisgICAi IyIKKyAgICJyZWxvYWRfY29tcGxldGVkIgorICAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkNDIFJF R19DQykKKyAgICAgICAgICAgICAgICAgICAgKGNvbXBhcmU6Q0MgKG1hdGNoX2R1cCAxKSAobWF0 Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgNCkpXSkKKyAg ICAoc2V0IChwYykKKyAgICAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wX2R1cCAwCisgICAg ICAgICAgICAgICAgICAgICAgICAgWyhyZWc6Q0MgUkVHX0NDKSAoY29uc3RfaW50IDApXSkKKyAg ICAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDMpKQorICAgICAgICAg ICAgICAgICAgICAgICAocGMpKSldCisgICAiIikKIAogOzsgVGVzdCBhIHNpbmdsZSBiaXQgaW4g YSBRSS9ISS9TSW1vZGUgcmVnaXN0ZXIuCiA7OyBDb21iaW5lIHdpbGwgY3JlYXRlIHplcm8gZXh0 cmFjdCBwYXR0ZXJucyBmb3Igc2luZ2xlIGJpdCB0ZXN0cy4KIDs7IHBlcm1pdCBhbnkgbW9kZSBp biBzb3VyY2UgcGF0dGVybiBieSB1c2luZyBWT0lEbW9kZS4KIAotKGRlZmluZV9pbnNuICIqc2Jy eF9icmFuY2g8bW9kZT4iCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc2JyeF9icmFuY2g8bW9k ZT5fc3BsaXQiCiAgIFsoc2V0IChwYykKICAgICAgICAgKGlmX3RoZW5fZWxzZQogICAgICAgICAg KG1hdGNoX29wZXJhdG9yIDAgImVxbmVfb3BlcmF0b3IiCkBAIC00ODU1LDYgKzY3MTgsMzMgQEAK ICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMyAiIiAiIikpCiAgICAgICAgICAo cGMpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAocGMpCisgICAgICAgICAgICAgICAgICAgKGlmX3RoZW5fZWxzZQorICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfb3BfZHVwIDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbKHplcm9fZXh0cmFjdDpRSURJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hf ZHVwIDIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAp XSkKKyAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDMpKQorICAgICAg ICAgICAgICAgICAgICAocGMpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdf Q0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqc2JyeF9icmFuY2g8bW9kZT4iCisgIFsoc2V0IChw YykKKyAgICAgICAgKGlmX3RoZW5fZWxzZQorICAgICAgICAgKG1hdGNoX29wZXJhdG9yIDAgImVx bmVfb3BlcmF0b3IiCisgICAgICAgICAgICAgICAgICAgICAgICAgWyh6ZXJvX2V4dHJhY3Q6UUlE SQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6Vk9JRCAxICJyZWdp c3Rlcl9vcGVyYW5kIiAiciIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9p bnRfb3BlcmFuZCIgIm4iKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAw KV0pCisgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDMgIiIgIiIpKQorICAgICAg ICAgKHBjKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBs ZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3NieHhfYnJhbmNoIChpbnNuLCBvcGVyYW5k cyk7CiAgIH0KQEAgLTQ4NjQsMTQgKzY3NTQsMTMgQEAKICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDIpCiAgICAgICAgICAgICAgICAgICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hf dGVzdCAiIUFWUl9IQVZFX0pNUF9DQUxMIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgNCkpKSkKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0KSkpKV0pCiAKIDs7IFNh bWUgdGVzdCBiYXNlZCBvbiBiaXR3aXNlIEFORC4gIEtlZXAgdGhpcyBpbiBjYXNlIGdjYyBjaGFu Z2VzIHBhdHRlcm5zLgogOzsgb3IgZm9yIG9sZCBwZWVwaG9sZXMuCiA7OyBGaXhtZSAtIGJpdHdp c2UgTWFzayB3aWxsIG5vdCB3b3JrIGZvciBESW1vZGUKIAotKGRlZmluZV9pbnNuICIqc2JyeF9h bmRfYnJhbmNoPG1vZGU+IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnNicnhfYW5kX2JyYW5j aDxtb2RlPl9zcGxpdCIKICAgWyhzZXQgKHBjKQogICAgICAgICAoaWZfdGhlbl9lbHNlCiAgICAg ICAgICAobWF0Y2hfb3BlcmF0b3IgMCAiZXFuZV9vcGVyYXRvciIKQEAgLTQ4ODIsNiArNjc3MSwz MSBAQAogICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAzICIiICIiKSkKICAgICAg ICAgIChwYykpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBh cmFsbGVsIFsoc2V0IChwYykKKyAgICAgICAgICAgICAgICAgICAoaWZfdGhlbl9lbHNlCisgICAg ICAgICAgICAgICAgICAgKG1hdGNoX29wX2R1cCAwCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbKGFuZDpRSVNJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1 cCAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApXSkK KyAgICAgICAgICAgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9kdXAgMykpCisgICAgICAgICAg ICAgICAgICAgKHBjKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKnNicnhfYW5kX2JyYW5jaDxtb2RlPiIKKyAgWyhzZXQgKHBj KQorICAgICAgICAoaWZfdGhlbl9lbHNlCisgICAgICAgICAobWF0Y2hfb3BlcmF0b3IgMCAiZXFu ZV9vcGVyYXRvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICBbKGFuZDpRSVNJCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSVNJIDEgInJlZ2lzdGVyX29wZXJh bmQiICJyIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJU0kg MiAic2luZ2xlX29uZV9vcGVyYW5kIiAibiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDApXSkKKyAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMyAiIiAi IikpCisgICAgICAgICAocGMpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJy ZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgSE9TVF9XSURFX0lOVCBiaXRudW1iZXI7CiAgICAg Yml0bnVtYmVyID0gZXhhY3RfbG9nMiAoR0VUX01PREVfTUFTSyAoPE1PREU+bW9kZSkgJiBJTlRW QUwgKG9wZXJhbmRzWzJdKSk7CkBAIC00ODk0LDE0ICs2ODA4LDEzIEBACiAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAyKQogICAgICAgICAgICAgICAgICAgICAgIChpZl90aGVuX2Vs c2UgKG1hdGNoX3Rlc3QgIiFBVlJfSEFWRV9KTVBfQ0FMTCIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIpCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDQpKSkpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIp XSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCkpKSld KQogCiA7OyBDb252ZXJ0IHNpZ24gdGVzdHMgdG8gYml0IDcvMTUvMzEgdGVzdHMgdGhhdCBtYXRj aCB0aGUgYWJvdmUgaW5zbnMuCiAoZGVmaW5lX3BlZXBob2xlMgotICBbKHNldCAoY2MwKSAoY29t cGFyZSAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgWyhzZXQg KHJlZzpDQyBSRUdfQ0MpIChjb21wYXJlOkNDIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVy X29wZXJhbmQiICIiKQogICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSkKLSAg IChzZXQgKHBjKSAoaWZfdGhlbl9lbHNlIChnZSAoY2MwKSAoY29uc3RfaW50IDApKQorICAgKHNl dCAocGMpIChpZl90aGVuX2Vsc2UgKGdlIChyZWc6Q0MgUkVHX0NDKSAoY29uc3RfaW50IDApKQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIi ICIiKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYykpKV0KICAgIiIKQEAgLTQ5MTMs OSArNjgyNiw5IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGMpKSldKQogCiAoZGVm aW5lX3BlZXBob2xlMgotICBbKHNldCAoY2MwKSAoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpRSSAw ICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgWyhzZXQgKHJlZzpDQyBSRUdfQ0MpIChjb21wYXJl OkNDIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQogICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSkKLSAgIChzZXQgKHBjKSAoaWZfdGhlbl9lbHNl IChsdCAoY2MwKSAoY29uc3RfaW50IDApKQorICAgKHNldCAocGMpIChpZl90aGVuX2Vsc2UgKGx0 IChyZWc6Q0MgUkVHX0NDKSAoY29uc3RfaW50IDApKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIiICIiKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChwYykpKV0KICAgIiIKQEAgLTQ5MjcsMTAgKzY4NDAsMTAgQEAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChwYykpKV0pCiAKIChkZWZpbmVfcGVlcGhvbGUyCi0gIFsocGFy YWxsZWwgWyhzZXQgKGNjMCkgKGNvbXBhcmUgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIiIpCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpDQyBSRUdfQ0MpIChjb21wYXJl OkNDIChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpKQogICAgICAgICAgICAgICAo Y2xvYmJlciAobWF0Y2hfb3BlcmFuZDpISSAyICIiKSldKQotICAgKHNldCAocGMpIChpZl90aGVu X2Vsc2UgKGdlIChjYzApIChjb25zdF9pbnQgMCkpCisgICAoc2V0IChwYykgKGlmX3RoZW5fZWxz ZSAoZ2UgKHJlZzpDQyBSRUdfQ0MpIChjb25zdF9pbnQgMCkpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDEgIiIgIiIpKQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHBjKSkpXQogICAiIgpAQCAtNDk0MCwxMCArNjg1MywxMCBAQAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHBjKSkpXSkKIAogKGRlZmluZV9wZWVwaG9sZTIKLSAg WyhwYXJhbGxlbCBbKHNldCAoY2MwKSAoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiIikKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkNDIFJFR19DQykgKGNv bXBhcmU6Q0MgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpCiAgICAgICAgICAg ICAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOkhJIDIgIiIpKV0pCi0gICAoc2V0IChwYykgKGlm X3RoZW5fZWxzZSAobHQgKGNjMCkgKGNvbnN0X2ludCAwKSkKKyAgIChzZXQgKHBjKSAoaWZfdGhl bl9lbHNlIChsdCAocmVnOkNDIFJFR19DQykgKGNvbnN0X2ludCAwKSkKICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMSAiIiAiIikpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAocGMpKSldCiAgICIiCkBAIC00OTUzLDEwICs2ODY2LDEwIEBA CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGMpKSldKQogCiAoZGVmaW5lX3BlZXBob2xl MgotICBbKHBhcmFsbGVsIFsoc2V0IChjYzApIChjb21wYXJlIChtYXRjaF9vcGVyYW5kOlNJIDAg InJlZ2lzdGVyX29wZXJhbmQiICIiKQorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6Q0MgUkVHX0ND KSAoY29tcGFyZTpDQyAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKSkKICAgICAg ICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX29wZXJhbmQ6U0kgMiAiIikpXSkKLSAgIChzZXQgKHBj KSAoaWZfdGhlbl9lbHNlIChnZSAoY2MwKSAoY29uc3RfaW50IDApKQorICAgKHNldCAocGMpIChp Zl90aGVuX2Vsc2UgKGdlIChyZWc6Q0MgUkVHX0NDKSAoY29uc3RfaW50IDApKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIiICIiKSkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChwYykpKV0KICAgIiIKQEAgLTQ5NjcsMTAgKzY4ODAs MTAgQEAKICAgIm9wZXJhbmRzWzJdID0gZ2VuX2ludF9tb2RlICgtMjE0NzQ4MzY0NyAtIDEsIFNJ bW9kZSk7IikKIAogKGRlZmluZV9wZWVwaG9sZTIKLSAgWyhwYXJhbGxlbCBbKHNldCAoY2MwKSAo Y29tcGFyZSAobWF0Y2hfb3BlcmFuZDpTSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKKyAgWyhw YXJhbGxlbCBbKHNldCAocmVnOkNDIFJFR19DQykgKGNvbXBhcmU6Q0MgKG1hdGNoX29wZXJhbmQ6 U0kgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCAwKSkpCiAgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9vcGVy YW5kOlNJIDIgIiIpKV0pCi0gICAoc2V0IChwYykgKGlmX3RoZW5fZWxzZSAobHQgKGNjMCkgKGNv bnN0X2ludCAwKSkKKyAgIChzZXQgKHBjKSAoaWZfdGhlbl9lbHNlIChsdCAocmVnOkNDIFJFR19D QykgKGNvbnN0X2ludCAwKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYWJlbF9yZWYg KG1hdGNoX29wZXJhbmQgMSAiIiAiIikpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGMp KSldCiAgICIiCkBAIC00OTg1LDE5ICs2ODk4LDM3IEBACiA7OyAgQ29tcGFyZSB3aXRoIDAgKHRl c3QpIGp1bXBzCiA7OyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAotKGRlZmluZV9pbnNuICJicmFuY2giCiso ZGVmaW5lX2luc25fYW5kX3NwbGl0ICJicmFuY2giCiAgIFsoc2V0IChwYykKICAgICAgICAgKGlm X3RoZW5fZWxzZSAobWF0Y2hfb3BlcmF0b3IgMSAic2ltcGxlX2NvbXBhcmlzb25fb3BlcmF0b3Ii Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoY2MwKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlZzpDQyBSRUdfQ0MpCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApXSkKICAgICAgICAgICAg ICAgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDAgIiIgIiIpKQogICAgICAgICAg ICAgICAgICAgICAgIChwYykpKV0KLSAgIiIKKyAgInJlbG9hZF9jb21wbGV0ZWQiCisgICIjIgor ICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocGMpCisgICAgICAg ICAgICAgICAgICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfb3BfZHVwIDEKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWc6Q0MgUkVHX0NDKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0p CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9kdXAg MCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGMpKSkKKyAgICAgICAgICAg ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqYnJhbmNo IgorICBbKHNldCAocGMpCisgICAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhdG9yIDEg InNpbXBsZV9jb21wYXJpc29uX29wZXJhdG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbKHJlZzpDQyBSRUdfQ0MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDApXSkKKyAgICAgICAgICAgICAgICAgICAgICAobGFiZWxf cmVmIChtYXRjaF9vcGVyYW5kIDAgIiIgIiIpKQorICAgICAgICAgICAgICAgICAgICAgIChwYykp KQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAg IHsKICAgICByZXR1cm4gcmV0X2NvbmRfYnJhbmNoIChvcGVyYW5kc1sxXSwgYXZyX2p1bXBfbW9k ZSAob3BlcmFuZHNbMF0sIGluc24pLCAwKTsKICAgfQotICBbKHNldF9hdHRyICJ0eXBlIiAiYnJh bmNoIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBl IiAiYnJhbmNoIildKQogCiAKIDs7IFNhbWUgYXMgYWJvdmUgYnV0IHdyYXAgU0VUX1NSQyBzbyB0 aGF0IHRoaXMgYnJhbmNoIHdvbid0IGJlIHRyYW5zZm9ybWVkCkBAIC01MDA2LDY2ICs2OTM3LDEx OSBAQAogKGRlZmluZV9pbnNuICJicmFuY2hfdW5zcGVjIgogICBbKHNldCAocGMpCiAgICAgICAg ICh1bnNwZWMgWyhpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhdG9yIDEgInNpbXBsZV9jb21wYXJp c29uX29wZXJhdG9yIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbKGNjMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgWyhyZWc6Q0MgUkVHX0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0pCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAwICIiICIiKSkKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAocGMpKQogICAgICAgICAgICAgICAgICBdIFVOU1BFQ19JREVOVElUWSkp XQotICAiIgorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiByZXRfY29uZF9i cmFuY2ggKG9wZXJhbmRzWzFdLCBhdnJfanVtcF9tb2RlIChvcGVyYW5kc1swXSwgaW5zbiksIDAp OwogICB9Ci0gIFsoc2V0X2F0dHIgInR5cGUiICJicmFuY2giKQotICAgKHNldF9hdHRyICJjYyIg Im5vbmUiKV0pCisgIFsoc2V0X2F0dHIgInR5cGUiICJicmFuY2giKV0pCiAKIDs7ICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK IDs7IEFWUiBkb2VzIG5vdCBoYXZlIGZvbGxvd2luZyBjb25kaXRpb25hbCBqdW1wczogTEUsTEVV LEdULEdUVS4KIDs7IENvbnZlcnQgdGhlbSBhbGwgdG8gcHJvcGVyIGp1bXBzLgogOzsgKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KIAotKGRlZmluZV9pbnNuICJkaWZmaWN1bHRfYnJhbmNoIgorKGRlZmluZV9pbnNuX2FuZF9z cGxpdCAiZGlmZmljdWx0X2JyYW5jaCIKKyAgWyhzZXQgKHBjKQorICAgICAgICAoaWZfdGhlbl9l bHNlIChtYXRjaF9vcGVyYXRvciAxICJkaWZmaWN1bHRfY29tcGFyaXNvbl9vcGVyYXRvciIKKyAg ICAgICAgICAgICAgICAgICAgICAgIFsocmVnOkNDIFJFR19DQykKKyAgICAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDApXSkKKyAgICAgICAgICAgICAgICAgICAgICAobGFiZWxfcmVm IChtYXRjaF9vcGVyYW5kIDAgIiIgIiIpKQorICAgICAgICAgICAgICAgICAgICAgIChwYykpKV0K KyAgInJlbG9hZF9jb21wbGV0ZWQiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAg WyhwYXJhbGxlbCBbKHNldCAocGMpCisgICAgICAgICAgICAgICAgICAgKGlmX3RoZW5fZWxzZSAo bWF0Y2hfb3BfZHVwIDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWc6 Q0MgUkVHX0NDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCAwKV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFiZWxfcmVmIChtYXRj aF9kdXAgMCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocGMpKSkKKyAgICAg ICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIq ZGlmZmljdWx0X2JyYW5jaCIKICAgWyhzZXQgKHBjKQogICAgICAgICAoaWZfdGhlbl9lbHNlICht YXRjaF9vcGVyYXRvciAxICJkaWZmaWN1bHRfY29tcGFyaXNvbl9vcGVyYXRvciIKLSAgICAgICAg ICAgICAgICAgICAgICAgIFsoY2MwKQorICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWc6Q0Mg UkVHX0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCldKQogICAgICAg ICAgICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMCAiIiAiIikpCi0gICAg ICAgICAgICAgICAgICAgICAgKHBjKSkpXQotICAiIgorICAgICAgICAgICAgICAgICAgICAgIChw YykpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQi CiAgIHsKICAgICByZXR1cm4gcmV0X2NvbmRfYnJhbmNoIChvcGVyYW5kc1sxXSwgYXZyX2p1bXBf bW9kZSAob3BlcmFuZHNbMF0sIGluc24pLCAwKTsKICAgfQotICBbKHNldF9hdHRyICJ0eXBlIiAi YnJhbmNoMSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAi dHlwZSIgImJyYW5jaDEiKV0pCiAKIDs7IHJldmVycyBicmFuY2gKIAotKGRlZmluZV9pbnNuICJy dmJyYW5jaCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgInJ2YnJhbmNoIgogICBbKHNldCAocGMp CiAgICAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhdG9yIDEgInNpbXBsZV9jb21wYXJp c29uX29wZXJhdG9yIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGNj MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhyZWc6Q0MgUkVHX0ND KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0p CiAgICAgICAgICAgICAgICAgICAgICAgKHBjKQogICAgICAgICAgICAgICAgICAgICAgIChsYWJl bF9yZWYgKG1hdGNoX29wZXJhbmQgMCAiIiAiIikpKSldCi0gICIiCisgICJyZWxvYWRfY29tcGxl dGVkIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQg KHBjKQorICAgICAgICAgICAgICAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wX2R1cCAxCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsocmVnOkNDIFJF R19DQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgMCldKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBjKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDApKSkp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKnJ2YnJhbmNoIgorICBbKHNldCAocGMpCisgICAgICAgIChpZl90aGVuX2Vsc2UgKG1h dGNoX29wZXJhdG9yIDEgInNpbXBsZV9jb21wYXJpc29uX29wZXJhdG9yIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBbKHJlZzpDQyBSRUdfQ0MpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApXSkKKyAgICAgICAgICAgICAg ICAgICAgICAocGMpCisgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3Bl cmFuZCAwICIiICIiKSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9h ZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gcmV0X2NvbmRfYnJhbmNoIChvcGVyYW5kc1sx XSwgYXZyX2p1bXBfbW9kZSAob3BlcmFuZHNbMF0sIGluc24pLCAxKTsKICAgfQotICBbKHNldF9h dHRyICJ0eXBlIiAiYnJhbmNoMSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAidHlwZSIgImJyYW5jaDEiKV0pCiAKLShkZWZpbmVfaW5zbiAiZGlmZmljdWx0 X3J2YnJhbmNoIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiZGlmZmljdWx0X3J2YnJhbmNoIgog ICBbKHNldCAocGMpCiAgICAgICAgIChpZl90aGVuX2Vsc2UgKG1hdGNoX29wZXJhdG9yIDEgImRp ZmZpY3VsdF9jb21wYXJpc29uX29wZXJhdG9yIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbKGNjMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg WyhyZWc6Q0MgUkVHX0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCAwKV0pCiAgICAgICAgICAgICAgICAgICAgICAgKHBjKQogICAgICAgICAgICAg ICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMCAiIiAiIikpKSldCi0gICIiCisg ICJyZWxvYWRfY29tcGxldGVkIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFso cGFyYWxsZWwgWyhzZXQgKHBjKQorICAgICAgICAgICAgICAgICAgIChpZl90aGVuX2Vsc2UgKG1h dGNoX29wX2R1cCAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFsocmVnOkNDIFJFR19DQykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMCldKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHBjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAo bWF0Y2hfZHVwIDApKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld KV0pCisKKyhkZWZpbmVfaW5zbiAiKmRpZmZpY3VsdF9ydmJyYW5jaCIKKyAgWyhzZXQgKHBjKQor ICAgICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF9vcGVyYXRvciAxICJkaWZmaWN1bHRfY29tcGFy aXNvbl9vcGVyYXRvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhy ZWc6Q0MgUkVHX0NDKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAwKV0pCisgICAgICAgICAgICAgICAgICAgICAgKHBjKQorICAgICAgICAgICAgICAg ICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMCAiIiAiIikpKSkKKyAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICB7CiAgICAgcmV0dXJu IHJldF9jb25kX2JyYW5jaCAob3BlcmFuZHNbMV0sIGF2cl9qdW1wX21vZGUgKG9wZXJhbmRzWzBd LCBpbnNuKSwgMSk7CiAgIH0KLSAgWyhzZXRfYXR0ciAidHlwZSIgImJyYW5jaCIpCi0gICAoc2V0 X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgImJyYW5jaCIpXSkK IAogOzsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKIDs7IFVuY29uZGl0aW9uYWwgYW5kIG90aGVyIGp1bXAg aW5zdHJ1Y3Rpb25zLgpAQCAtNTA4Nyw4ICs3MDcxLDcgQEAKICAgICAgICAgICAgICAgICAgICAg ICAoaWZfdGhlbl9lbHNlIChhbmQgKGdlIChtaW51cyAocGMpIChtYXRjaF9kdXAgMCkpIChjb25z dF9pbnQgLTIwNDcpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bGUgKG1pbnVzIChwYykgKG1hdGNoX2R1cCAwKSkgKGNvbnN0X2ludCAyMDQ3KSkpCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIpKSkpCi0gICAoc2V0X2F0dHIgImNj IiAibm9uZSIpXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgMikpKSldKQogCiA7OyBjYWxsCiAKQEAgLTUxMjQsMjMgKzcxMDcsMzcgQEAKICAgICAgICAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgImdlbmVyYWxfb3BlcmFuZCIgIiIp KSkKICAgICAgICAgICAgICAodXNlIChjb25zdF9pbnQgMSkpXSldKQogCi0oZGVmaW5lX2luc24g ImNhbGxfaW5zbiIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgImNhbGxfaW5zbiIKICAgWyhwYXJh bGxlbFsoY2FsbCAobWVtOkhJIChtYXRjaF9vcGVyYW5kOkhJIDAgIm5vbm1lbW9yeV9vcGVyYW5k IiAieixzLHoscyIpKQogICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDEgImdl bmVyYWxfb3BlcmFuZCIgICAgICAgICAgICJYLFgsWCxYIikpCiAgICAgICAgICAgICAgKHVzZSAo bWF0Y2hfb3BlcmFuZDpISSAyICJjb25zdF9pbnRfb3BlcmFuZCIgICAgICAgICAgIkwsTCxQLFAi KSldKV0KICAgOzsgT3BlcmFuZCAxIG5vdCB1c2VkIG9uIHRoZSBBVlIuCiAgIDs7IE9wZXJhbmQg MiBpcyAxIGZvciB0YWlsLWNhbGwsIDAgb3RoZXJ3aXNlLgogICAiIgorICAiIyIKKyAgIiYmIHJl bG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhjYWxsIChtZW06SEkgKG1hdGNoX2R1cCAw KSkKKyAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgKHVz ZSAobWF0Y2hfZHVwIDIpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XSldKQorCisoZGVmaW5lX2luc24gIipjYWxsX2luc24iCisgIFsoY2FsbCAobWVtOkhJIChtYXRj aF9vcGVyYW5kOkhJIDAgIm5vbm1lbW9yeV9vcGVyYW5kIiAieixzLHoscyIpKQorICAgICAgICAg KG1hdGNoX29wZXJhbmQ6SEkgMSAiZ2VuZXJhbF9vcGVyYW5kIiAgICAgICAgICAgIlgsWCxYLFgi KSkKKyAgICh1c2UgKG1hdGNoX29wZXJhbmQ6SEkgMiAiY29uc3RfaW50X29wZXJhbmQiICAgICAg ICAgICJMLEwsUCxQIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICA7OyBPcGVy YW5kIDEgbm90IHVzZWQgb24gdGhlIEFWUi4KKyAgOzsgT3BlcmFuZCAyIGlzIDEgZm9yIHRhaWwt Y2FsbCwgMCBvdGhlcndpc2UuCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiQAogICAgICUhaWNh bGwKICAgICAlfmNhbGwgJXgwCiAgICAgJSFpam1wCiAgICAgJX5qbXAgJXgwIgotICBbKHNldF9h dHRyICJjYyIgImNsb2JiZXIiKQotICAgKHNldF9hdHRyICJsZW5ndGgiICIxLCosMSwqIikKKyAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiMSwqLDEsKiIpCiAgICAoc2V0X2F0dHIgImFkanVzdF9sZW4i ICIqLGNhbGwsKixjYWxsIildKQogCi0oZGVmaW5lX2luc24gImNhbGxfdmFsdWVfaW5zbiIKKyhk ZWZpbmVfaW5zbl9hbmRfc3BsaXQgImNhbGxfdmFsdWVfaW5zbiIKICAgWyhwYXJhbGxlbFsoc2V0 IChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAgICAgICAgICI9 cixyLHIsciIpCiAgICAgICAgICAgICAgICAgICAoY2FsbCAobWVtOkhJIChtYXRjaF9vcGVyYW5k OkhJIDEgIm5vbm1lbW9yeV9vcGVyYW5kIiAgInoscyx6LHMiKSkKICAgICAgICAgICAgICAgICAg ICAgICAgIChtYXRjaF9vcGVyYW5kOkhJIDIgImdlbmVyYWxfb3BlcmFuZCIgICAgICAgICAgICAi WCxYLFgsWCIpKSkKQEAgLTUxNDgsMjEgKzcxNDUsMzYgQEAKICAgOzsgT3BlcmFuZCAyIG5vdCB1 c2VkIG9uIHRoZSBBVlIuCiAgIDs7IE9wZXJhbmQgMyBpcyAxIGZvciB0YWlsLWNhbGwsIDAgb3Ro ZXJ3aXNlLgogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxs ZWwgWyhzZXQgKG1hdGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgIChjYWxsIChtZW06SEkg KG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkK KyAgICAgICAgICAgICAgKHVzZSAobWF0Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipjYWxsX3ZhbHVlX2luc24i CisgIFsoc2V0IChtYXRjaF9vcGVyYW5kIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAg ICAgICAgICI9cixyLHIsciIpCisgICAgICAgIChjYWxsIChtZW06SEkgKG1hdGNoX29wZXJhbmQ6 SEkgMSAibm9ubWVtb3J5X29wZXJhbmQiICAieixzLHoscyIpKQorICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpISSAyICJnZW5lcmFsX29wZXJhbmQiICAgICAgICAgICAgIlgsWCxYLFgiKSkp CisgICAodXNlIChtYXRjaF9vcGVyYW5kOkhJIDMgImNvbnN0X2ludF9vcGVyYW5kIiAgICAgICAg ICAgICAgICAiTCxMLFAsUCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgOzsg T3BlcmFuZCAyIG5vdCB1c2VkIG9uIHRoZSBBVlIuCisgIDs7IE9wZXJhbmQgMyBpcyAxIGZvciB0 YWlsLWNhbGwsIDAgb3RoZXJ3aXNlLgorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIkAKICAgICAl IWljYWxsCiAgICAgJX5jYWxsICV4MQogICAgICUhaWptcAogICAgICV+am1wICV4MSIKLSAgWyhz ZXRfYXR0ciAiY2MiICJjbG9iYmVyIikKLSAgIChzZXRfYXR0ciAibGVuZ3RoIiAiMSwqLDEsKiIp CisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEsKiwxLCoiKQogICAgKHNldF9hdHRyICJhZGp1c3Rf bGVuIiAiKixjYWxsLCosY2FsbCIpXSkKIAogKGRlZmluZV9pbnNuICJub3AiCiAgIFsoY29uc3Rf aW50IDApXQogICAiIgogICAibm9wIgotICBbKHNldF9hdHRyICJjYyIgIm5vbmUiKQotICAgKHNl dF9hdHRyICJsZW5ndGgiICIxIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIxIildKQogCiA7 IGluZGlyZWN0IGp1bXAKIApAQCAtNTE4OSw4ICs3MjAxLDcgQEAKIAlwdXNoICVBMFw7cHVzaCAl QjBcO3JldAogCWVpam1wIgogICBbKHNldF9hdHRyICJsZW5ndGgiICIxLDIsMSwzLDEiKQotICAg KHNldF9hdHRyICJpc2EiICJyam1wLGptcCxpam1wLGlqbXAsZWlqbXAiKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUiKV0pCisgICAoc2V0X2F0dHIgImlzYSIgInJqbXAsam1wLGlqbXAsaWptcCxl aWptcCIpXSkKIAogOzsgdGFibGUganVtcAogOzsgRm9yIGVudHJpZXMgaW4ganVtcCB0YWJsZSBz ZWUgYXZyX291dHB1dF9hZGRyX3ZlYy4KQEAgLTUxOTgsMjMgKzcyMDksNDEgQEAKIDs7IFRhYmxl IG1hZGUgZnJvbQogOzsgICAgInJqbXAgLkw8bj4iICAgaW5zdHJ1Y3Rpb25zIGZvciA8PSA4SyBk ZXZpY2VzCiA7OyAgICAiLndvcmQgZ3MoLkw8bj4pIiBhZGRyZXNzZXMgZm9yID4gIDhLIGRldmlj ZXMKLShkZWZpbmVfaW5zbiAiKnRhYmxlanVtcCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIip0 YWJsZWp1bXBfc3BsaXQiCiAgIFsoc2V0IChwYykKLSAgICAgICAgKHVuc3BlYzpISSBbKG1hdGNo X29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiF6LCpyLHoiKV0KKyAgICAgICAgKHVu c3BlYzpISSBbKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgInoiKV0KICAg ICAgICAgICAgICAgICAgICBVTlNQRUNfSU5ERVhfSk1QKSkKICAgICh1c2UgKGxhYmVsX3JlZiAo bWF0Y2hfb3BlcmFuZCAxICIiICIiKSkpCiAgICAoY2xvYmJlciAobWF0Y2hfZHVwIDApKQogICAg KGNsb2JiZXIgKGNvbnN0X2ludCAwKSldCiAgICIhQVZSX0hBVkVfRUlKTVBfRUlDQUxMIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHBjKQorICAg ICAgICAgICAgICAgICAgICh1bnNwZWM6SEkgWyhtYXRjaF9kdXAgMCldCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBVTlNQRUNfSU5ERVhfSk1QKSkKKyAgICAgICAgICAgICAgKHVzZSAo bGFiZWxfcmVmIChtYXRjaF9kdXAgMSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hf ZHVwIDApKQorICAgICAgICAgICAgICAoY2xvYmJlciAoY29uc3RfaW50IDApKQorICAgICAgICAg ICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIip0YWJs ZWp1bXAiCisgIFsoc2V0IChwYykKKyAgICAgICAgKHVuc3BlYzpISSBbKG1hdGNoX29wZXJhbmQ6 SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIiF6LCpyLHoiKV0KKyAgICAgICAgICAgICAgICAgICBV TlNQRUNfSU5ERVhfSk1QKSkKKyAgICh1c2UgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIi ICIiKSkpCisgICAoY2xvYmJlciAobWF0Y2hfZHVwIDApKQorICAgKGNsb2JiZXIgKGNvbnN0X2lu dCAwKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICIhQVZSX0hBVkVfRUlKTVBf RUlDQUxMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICJACiAJaWptcAogCXB1c2ggJUEwXDtwdXNo ICVCMFw7cmV0CiAJam1wIF9fdGFibGVqdW1wMl9fIgogICBbKHNldF9hdHRyICJsZW5ndGgiICIx LDMsMiIpCi0gICAoc2V0X2F0dHIgImlzYSIgInJqbXAscmptcCxqbXAiKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUsbm9uZSxjbG9iYmVyIildKQorICAgKHNldF9hdHRyICJpc2EiICJyam1wLHJq bXAsam1wIildKQogCi0oZGVmaW5lX2luc24gIip0YWJsZWp1bXAuM2J5dGUtcGMiCisoZGVmaW5l X2luc25fYW5kX3NwbGl0ICIqdGFibGVqdW1wLjNieXRlLXBjX3NwbGl0IgogICBbKHNldCAocGMp CiAgICAgICAgICh1bnNwZWM6SEkgWyhyZWc6SEkgUkVHX1opXQogICAgICAgICAgICAgICAgICAg IFVOU1BFQ19JTkRFWF9KTVApKQpAQCAtNTIyMiwxMCArNzI1MSwyOCBAQAogICAgKGNsb2JiZXIg KHJlZzpISSBSRUdfWikpCiAgICAoY2xvYmJlciAocmVnOlFJIDI0KSldCiAgICJBVlJfSEFWRV9F SUpNUF9FSUNBTEwiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAocGMpCisgICAgICAgICAgICAgICAgICAgKHVuc3BlYzpISSBbKHJlZzpISSBSRUdf WildCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNfSU5ERVhfSk1QKSkKKyAg ICAgICAgICAgICAgKHVzZSAobGFiZWxfcmVmIChtYXRjaF9kdXAgMCkpKQorICAgICAgICAgICAg ICAoY2xvYmJlciAocmVnOkhJIFJFR19aKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpR SSAyNCkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhk ZWZpbmVfaW5zbiAiKnRhYmxlanVtcC4zYnl0ZS1wYyIKKyAgWyhzZXQgKHBjKQorICAgICAgICAo dW5zcGVjOkhJIFsocmVnOkhJIFJFR19aKV0KKyAgICAgICAgICAgICAgICAgICBVTlNQRUNfSU5E RVhfSk1QKSkKKyAgICh1c2UgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAwICIiICIiKSkpCisg ICAoY2xvYmJlciAocmVnOkhJIFJFR19aKSkKKyAgIChjbG9iYmVyIChyZWc6UUkgMjQpKQorICAg KGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX0VJSk1QX0VJQ0FMTCAmJiBy ZWxvYWRfY29tcGxldGVkIgogICAiY2xyIHIyNFw7c3ViaSByMzAscG1fbG84KC0oJTApKVw7c2Jj aSByMzEscG1faGk4KC0oJTApKVw7c2JjaSByMjQscG1faGg4KC0oJTApKVw7am1wIF9fdGFibGVq dW1wMl9fIgogICBbKHNldF9hdHRyICJsZW5ndGgiICI2IikKLSAgIChzZXRfYXR0ciAiaXNhIiAi ZWlqbXAiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgICAoc2V0X2F0dHIgImlz YSIgImVpam1wIildKQogCiAKIDs7IEZJWE1FOiBjYXNlc2kgY29tZXMgdXAgd2l0aCBhbiBTSW1v ZGUgc3dpdGNoIHZhbHVlICQwIHdoaWNoCkBAIC01MjU0LDE2ICs3MzAxLDEzIEBACiAgICAgICAg ICAgICAgICAgICAgKHBsdXM6U0kgKG1hdGNoX29wZXJhbmQ6U0kgMCAicmVnaXN0ZXJfb3BlcmFu ZCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29u c3RfaW50X29wZXJhbmQiKSkpCiAgICAgICAgICAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSld KQotICAgKHBhcmFsbGVsIFsoc2V0IChjYzApCi0gICAgICAgICAgICAgICAgICAgKGNvbXBhcmUg KG1hdGNoX2R1cCA1KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5k OlNJIDIgImNvbnN0X2ludF9vcGVyYW5kIikpKQotICAgICAgICAgICAgICAoY2xvYmJlciAoc2Ny YXRjaDpRSSkpXSkKIAotICAgKHNldCAocGMpCi0gICAgICAgIChpZl90aGVuX2Vsc2UgKGd0dSAo Y2MwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkKLSAgICAgICAg ICAgICAgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9vcGVyYW5kIDQpKQotICAgICAgICAgICAg ICAgICAgICAgIChwYykpKQorICAgKHBhcmFsbGVsIFsoc2V0IChwYykKKyAgICAgICAgICAgICAg ICAgICAoaWZfdGhlbl9lbHNlIChndHUgKG1hdGNoX2R1cCA1KQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9pbnRfb3BlcmFu ZCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hf b3BlcmFuZCA0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYykpKQorICAg ICAgICAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSldKQogCiAgICAoc2V0IChtYXRjaF9kdXAg NykKICAgICAgICAgKG1hdGNoX2R1cCA2KSkKQEAgLTUzMTIsMTYgKzczNTYsMTMgQEAKICAgICAg ICAgICAgICAgICAgICAocGx1czpTSSAobWF0Y2hfZHVwIDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X29wZXJhbmQiKSkpCiAgICAg ICAgICAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSldKQotICAgKHBhcmFsbGVsIFsoc2V0IChj YzApCi0gICAgICAgICAgICAgICAgICAgKGNvbXBhcmUgKG1hdGNoX2R1cCA1KQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlNJIDIgImNvbnN0X2ludF9vcGVyYW5k IikpKQotICAgICAgICAgICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpXSkKIAotICAgKHNldCAo cGMpCi0gICAgICAgIChpZl90aGVuX2Vsc2UgKGd0dSAoY2MwKQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAwKSkKLSAgICAgICAgICAgICAgICAgICAgICAobGFiZWxfcmVm IChtYXRjaF9vcGVyYW5kIDQpKQotICAgICAgICAgICAgICAgICAgICAgIChwYykpKQorICAgKHBh cmFsbGVsIFsoc2V0IChwYykKKyAgICAgICAgICAgICAgICAgICAoaWZfdGhlbl9lbHNlIChndHUg KG1hdGNoX2R1cCA1KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpTSSAyICJjb25zdF9pbnRfb3BlcmFuZCIpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCA0KSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChwYykpKQorICAgICAgICAgICAgIChjbG9iYmVyIChzY3Jh dGNoOlFJKSldKQogCiAgICAoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDcgInJlZ2lzdGVyX29wZXJh bmQiKQogICAgICAgICAobWF0Y2hfb3BlcmFuZDpISSA2KSkKQEAgLTUzNDEsMTEgKzczODIsMTAg QEAKIDs7IFRoaXMgaW5zdHJ1Y3Rpb24gc2V0cyBaIGZsYWcKIAogKGRlZmluZV9pbnNuICJzZXoi Ci0gIFsoc2V0IChjYzApIChjb25zdF9pbnQgMCkpXQotICAiIgorICBbKHNldCAocmVnOkNDIFJF R19DQykgKGNvbnN0X2ludCAwKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAic2V6IgotICBb KHNldF9hdHRyICJsZW5ndGgiICIxIikKLSAgIChzZXRfYXR0ciAiY2MiICJjb21wYXJlIildKQor ICBbKHNldF9hdHRyICJsZW5ndGgiICIxIildKQogCiA7OyBDbGVhci9zZXQvdGVzdCBhIHNpbmds ZSBiaXQgaW4gSS9PIGFkZHJlc3Mgc3BhY2UuCiAKQEAgLTUzNTgsOCArNzM5OCw3IEBACiAgICAg b3BlcmFuZHNbMl0gPSBHRU5fSU5UIChleGFjdF9sb2cyICh+SU5UVkFMIChvcGVyYW5kc1sxXSkg JiAweGZmKSk7CiAgICAgcmV0dXJuICJjYmkgJWkwLCUyIjsKICAgfQotICBbKHNldF9hdHRyICJs ZW5ndGgiICIxIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJs ZW5ndGgiICIxIildKQogCiAoZGVmaW5lX2luc24gIipzYmkiCiAgIFsoc2V0IChtZW06UUkgKG1h dGNoX29wZXJhbmQgMCAibG93X2lvX2FkZHJlc3Nfb3BlcmFuZCIgImkiKSkKQEAgLTUzNzAsMTEg Kzc0MDksMTAgQEAKICAgICBvcGVyYW5kc1syXSA9IEdFTl9JTlQgKGV4YWN0X2xvZzIgKElOVFZB TCAob3BlcmFuZHNbMV0pICYgMHhmZikpOwogICAgIHJldHVybiAic2JpICVpMCwlMiI7CiAgIH0K LSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkK KyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSIpXSkKIAogOzsgTG93ZXIgaGFsZiBvZiB0aGUgSS9P IHNwYWNlIC0gdXNlIHNiaWMvc2JpcyBkaXJlY3RseS4KLShkZWZpbmVfaW5zbiAiKnNiaXhfYnJh bmNoIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnNiaXhfYnJhbmNoX3NwbGl0IgogICBbKHNl dCAocGMpCiAgICAgICAgIChpZl90aGVuX2Vsc2UKICAgICAgICAgIChtYXRjaF9vcGVyYXRvciAw ICJlcW5lX29wZXJhdG9yIgpAQCAtNTM4Niw2ICs3NDI0LDMzIEBACiAgICAgICAgICAobGFiZWxf cmVmIChtYXRjaF9vcGVyYW5kIDMgIiIgIiIpKQogICAgICAgICAgKHBjKSkpXQogICAiIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHBjKQorICAg ICAgICAgICAgICAgICAgIChpZl90aGVuX2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgKG1hdGNo X29wZXJhdG9yIDAgImVxbmVfb3BlcmF0b3IiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBbKHplcm9fZXh0cmFjdDpRSUhJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtZW06UUkgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAobWF0Y2hfZHVwIDIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgMCldKQorICAgICAgICAgICAgICAgICAgICAobGFiZWxfcmVmICht YXRjaF9kdXAgMykpCisgICAgICAgICAgICAgICAgICAgIChwYykpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipzYml4X2JyYW5j aCIKKyAgWyhzZXQgKHBjKQorICAgICAgICAoaWZfdGhlbl9lbHNlCisgICAgICAgICAobWF0Y2hf b3BlcmF0b3IgMCAiZXFuZV9vcGVyYXRvciIKKyAgICAgICAgICAgICAgICAgICAgICAgICBbKHpl cm9fZXh0cmFjdDpRSUhJCisgICAgICAgICAgICAgICAgICAgICAgICAgICAobWVtOlFJIChtYXRj aF9vcGVyYW5kIDEgImxvd19pb19hZGRyZXNzX29wZXJhbmQiICJpIikpCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0pCisgICAgICAgICAobGFiZWxfcmVmIChtYXRjaF9v cGVyYW5kIDMgIiIgIiIpKQorICAgICAgICAgKHBjKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0X3Ni eHhfYnJhbmNoIChpbnNuLCBvcGVyYW5kcyk7CiAgIH0KQEAgLTUzOTUsMTEgKzc0NjAsMTAgQEAK ICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDIpCiAgICAgICAgICAgICAgICAgICAg ICAgKGlmX3RoZW5fZWxzZSAobWF0Y2hfdGVzdCAiIUFWUl9IQVZFX0pNUF9DQUxMIikKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMikKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNCkpKSkKLSAgIChzZXRfYXR0ciAi Y2MiICJjbG9iYmVyIildKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCA0KSkpKV0pCiAKIDs7IFRlc3RzIG9mIGJpdCA3IGFyZSBwZXNzaW1pemVkIHRvIHNp Z24gdGVzdHMsIHNvIHdlIG5lZWQgdGhpcyB0b28uLi4KLShkZWZpbmVfaW5zbiAiKnNiaXhfYnJh bmNoX2JpdDciCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc2JpeF9icmFuY2hfYml0N19zcGxp dCIKICAgWyhzZXQgKHBjKQogICAgICAgICAoaWZfdGhlbl9lbHNlCiAgICAgICAgICAobWF0Y2hf b3BlcmF0b3IgMCAiZ2VsdF9vcGVyYXRvciIKQEAgLTU0MDgsNiArNzQ3MiwyNyBAQAogICAgICAg ICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAyICIiICIiKSkKICAgICAgICAgIChwYykpKV0K ICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0 IChwYykKKyAgICAgICAgICAgICAgICAgICAoaWZfdGhlbl9lbHNlCisgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYXRvciAwICJnZWx0X29wZXJhdG9yIgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgWyhtZW06UUkgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApXSkKKyAgICAgICAgICAgICAgICAg ICAgKGxhYmVsX3JlZiAobWF0Y2hfZHVwIDIpKQorICAgICAgICAgICAgICAgICAgICAocGMpKSkK KyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9p bnNuICIqc2JpeF9icmFuY2hfYml0NyIKKyAgWyhzZXQgKHBjKQorICAgICAgICAoaWZfdGhlbl9l bHNlCisgICAgICAgICAobWF0Y2hfb3BlcmF0b3IgMCAiZ2VsdF9vcGVyYXRvciIKKyAgICAgICAg ICAgICAgICAgICAgICAgICBbKG1lbTpRSSAobWF0Y2hfb3BlcmFuZCAxICJsb3dfaW9fYWRkcmVz c19vcGVyYW5kIiAiaSIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAp XSkKKyAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCisgICAgICAg ICAocGMpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxl dGVkIgogICB7CiAgICAgb3BlcmFuZHNbM10gPSBvcGVyYW5kc1syXTsKICAgICBvcGVyYW5kc1sy XSA9IEdFTl9JTlQgKDcpOwpAQCAtNTQxOSwxMSArNzUwNCwxMCBAQAogICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgMikKICAgICAgICAgICAgICAgICAgICAgICAoaWZfdGhlbl9lbHNl IChtYXRjaF90ZXN0ICIhQVZSX0hBVkVfSk1QX0NBTEwiKQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCA0KSkpKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQpKSkpXSkK IAogOzsgVXBwZXIgaGFsZiBvZiB0aGUgSS9PIHNwYWNlIC0gcmVhZCBwb3J0IHRvIF9fdG1wX3Jl Z19fIGFuZCB1c2Ugc2JyYy9zYnJzLgotKGRlZmluZV9pbnNuICIqc2JpeF9icmFuY2hfdG1wIgor KGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnNiaXhfYnJhbmNoX3RtcF9zcGxpdCIKICAgWyhzZXQg KHBjKQogICAgICAgICAoaWZfdGhlbl9lbHNlCiAgICAgICAgICAobWF0Y2hfb3BlcmF0b3IgMCAi ZXFuZV9vcGVyYXRvciIKQEAgLTU0MzUsNiArNzUxOSwzMyBAQAogICAgICAgICAgKGxhYmVsX3Jl ZiAobWF0Y2hfb3BlcmFuZCAzICIiICIiKSkKICAgICAgICAgIChwYykpKV0KICAgIiIKKyAgIiMi CisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChwYykKKyAgICAg ICAgICAgICAgICAgICAoaWZfdGhlbl9lbHNlCisgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYXRvciAwICJlcW5lX29wZXJhdG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgWyh6ZXJvX2V4dHJhY3Q6UUlISQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAobWVtOlFJIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKG1hdGNoX2R1cCAyKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3RfaW50IDApXSkKKyAgICAgICAgICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0 Y2hfZHVwIDMpKQorICAgICAgICAgICAgICAgICAgICAocGMpKSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqc2JpeF9icmFuY2hf dG1wIgorICBbKHNldCAocGMpCisgICAgICAgIChpZl90aGVuX2Vsc2UKKyAgICAgICAgIChtYXRj aF9vcGVyYXRvciAwICJlcW5lX29wZXJhdG9yIgorICAgICAgICAgICAgICAgICAgICAgICAgIFso emVyb19leHRyYWN0OlFJSEkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChtZW06UUkgKG1h dGNoX29wZXJhbmQgMSAiaGlnaF9pb19hZGRyZXNzX29wZXJhbmQiICJuIikpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZCAyICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKSkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0pCisgICAgICAgICAobGFiZWxfcmVmIChtYXRj aF9vcGVyYW5kIDMgIiIgIiIpKQorICAgICAgICAgKHBjKSkpCisgICAoY2xvYmJlciAocmVnOkND IFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJfb3V0 X3NieHhfYnJhbmNoIChpbnNuLCBvcGVyYW5kcyk7CiAgIH0KQEAgLTU0NDQsMTAgKzc1NTUsOSBA QAogICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMykKICAgICAgICAgICAgICAgICAg ICAgICAoaWZfdGhlbl9lbHNlIChtYXRjaF90ZXN0ICIhQVZSX0hBVkVfSk1QX0NBTEwiKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAzKQotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1KSkpKQotICAgKHNldF9hdHRy ICJjYyIgImNsb2JiZXIiKV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDUpKSkpXSkKIAotKGRlZmluZV9pbnNuICIqc2JpeF9icmFuY2hfdG1wX2JpdDci CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqc2JpeF9icmFuY2hfdG1wX2JpdDdfc3BsaXQiCiAg IFsoc2V0IChwYykKICAgICAgICAgKGlmX3RoZW5fZWxzZQogICAgICAgICAgKG1hdGNoX29wZXJh dG9yIDAgImdlbHRfb3BlcmF0b3IiCkBAIC01NDU2LDYgKzc1NjYsMjcgQEAKICAgICAgICAgIChs YWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCiAgICAgICAgICAocGMpKSldCiAgICIi CisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocGMp CisgICAgICAgICAgICAgICAgICAgKGlmX3RoZW5fZWxzZQorICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmF0b3IgMCAiZ2VsdF9vcGVyYXRvciIKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFsobWVtOlFJIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKV0pCisgICAgICAgICAgICAgICAgICAgIChs YWJlbF9yZWYgKG1hdGNoX2R1cCAyKSkKKyAgICAgICAgICAgICAgICAgICAgKHBjKSkpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAi KnNiaXhfYnJhbmNoX3RtcF9iaXQ3IgorICBbKHNldCAocGMpCisgICAgICAgIChpZl90aGVuX2Vs c2UKKyAgICAgICAgIChtYXRjaF9vcGVyYXRvciAwICJnZWx0X29wZXJhdG9yIgorICAgICAgICAg ICAgICAgICAgICAgICAgIFsobWVtOlFJIChtYXRjaF9vcGVyYW5kIDEgImhpZ2hfaW9fYWRkcmVz c19vcGVyYW5kIiAibiIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAp XSkKKyAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCisgICAgICAg ICAocGMpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxl dGVkIgogICB7CiAgICAgb3BlcmFuZHNbM10gPSBvcGVyYW5kc1syXTsKICAgICBvcGVyYW5kc1sy XSA9IEdFTl9JTlQgKDcpOwpAQCAtNTQ2Nyw4ICs3NTk4LDcgQEAKICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3RfaW50IDMpCiAgICAgICAgICAgICAgICAgICAgICAgKGlmX3RoZW5fZWxzZSAo bWF0Y2hfdGVzdCAiIUFWUl9IQVZFX0pNUF9DQUxMIikKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChjb25zdF9pbnQgMykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChjb25zdF9pbnQgNSkpKSkKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA1KSkpKV0pCiAK IDs7ICoqKioqKioqKioqKioqKioqKioqKioqKiogUGVlcGhvbGVzICoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCiAKQEAgLTU0NzcsMTIgKzc2MDcsMTIgQEAKICAgICAgICAgICAgICAg ICAgICAocGx1czpTSSAobWF0Y2hfZHVwIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KGNvbnN0X2ludCAtMSkpKQogICAgICAgICAgICAgICAoY2xvYmJlciAoc2NyYXRjaDpRSSkpXSkK LSAgIChwYXJhbGxlbCBbKHNldCAoY2MwKQotICAgICAgICAgICAgICAgICAgIChjb21wYXJlICht YXRjaF9kdXAgMCkKKyAgIChwYXJhbGxlbCBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAg ICAgICAgICAgICAoY29tcGFyZTpDQyAobWF0Y2hfZHVwIDApCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKGNvbnN0X2ludCAtMSkpKQogICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hf b3BlcmFuZDpRSSAxICJkX3JlZ2lzdGVyX29wZXJhbmQiICIiKSldKQogICAgKHNldCAocGMpCi0g ICAgICAgIChpZl90aGVuX2Vsc2UgKGVxbmUgKGNjMCkKKyAgICAgICAgKGlmX3RoZW5fZWxzZSAo ZXFuZSAocmVnOkNDIFJFR19DQykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDApKQogICAgICAgICAgICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQg MiAiIiAiIikpCiAgICAgICAgICAgICAgICAgICAgICAgKHBjKSkpXQpAQCAtNTUyMCwxMiArNzY1 MCwxMiBAQAogICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJkX3JlZ2lzdGVyX29wZXJhbmQi ICIiKQogICAgICAgICAocGx1czpISSAobWF0Y2hfZHVwIDApCiAgICAgICAgICAgICAgICAgIChj b25zdF9pbnQgLTEpKSkKLSAgIChwYXJhbGxlbCBbKHNldCAoY2MwKQotICAgICAgICAgICAgICAg ICAgIChjb21wYXJlIChtYXRjaF9kdXAgMCkKKyAgIChwYXJhbGxlbCBbKHNldCAocmVnOkNDIFJF R19DQykKKyAgICAgICAgICAgICAgICAgICAoY29tcGFyZTpDQyAobWF0Y2hfZHVwIDApCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAtMSkpKQogICAgICAgICAgICAgICAo Y2xvYmJlciAobWF0Y2hfb3BlcmFuZDpRSSAxICJkX3JlZ2lzdGVyX29wZXJhbmQiICIiKSldKQog ICAgKHNldCAocGMpCi0gICAgICAgIChpZl90aGVuX2Vsc2UgKGVxbmUgKGNjMCkKKyAgICAgICAg KGlmX3RoZW5fZWxzZSAoZXFuZSAocmVnOkNDIFJFR19DQykKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoY29uc3RfaW50IDApKQogICAgICAgICAgICAgICAgICAgICAgIChsYWJlbF9yZWYg KG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCiAgICAgICAgICAgICAgICAgICAgICAgKHBjKSkpXQpA QCAtNTU2MSwxMiArNzY5MSwxMiBAQAogICAgICAgICAgICAgICAgICAgIChwbHVzOkhJIChtYXRj aF9kdXAgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IC0xKSkpCiAg ICAgICAgICAgICAgIChjbG9iYmVyIChzY3JhdGNoOlFJKSldKQotICAgKHBhcmFsbGVsIFsoc2V0 IChjYzApCi0gICAgICAgICAgICAgICAgICAgKGNvbXBhcmUgKG1hdGNoX2R1cCAwKQorICAgKHBh cmFsbGVsIFsoc2V0IChyZWc6Q0MgUkVHX0NDKQorICAgICAgICAgICAgICAgICAgIChjb21wYXJl OkNDIChtYXRjaF9kdXAgMCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IC0xKSkpCiAgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9vcGVyYW5kOlFJIDEgImRfcmVn aXN0ZXJfb3BlcmFuZCIgIiIpKV0pCiAgICAoc2V0IChwYykKLSAgICAgICAgKGlmX3RoZW5fZWxz ZSAoZXFuZSAoY2MwKQorICAgICAgICAoaWZfdGhlbl9lbHNlIChlcW5lIChyZWc6Q0MgUkVHX0ND KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAyICIiICIiKSkKICAgICAgICAg ICAgICAgICAgICAgICAocGMpKSldCkBAIC01NjAyLDEyICs3NzMyLDEyIEBACiAgICAgICAgICAg ICAgICAgICAgKHBsdXM6SEkgKG1hdGNoX2R1cCAwKQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChjb25zdF9pbnQgLTEpKSkKICAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX29wZXJh bmQ6UUkgMyAiZF9yZWdpc3Rlcl9vcGVyYW5kIiAiIikpXSkKLSAgIChwYXJhbGxlbCBbKHNldCAo Y2MwKQotICAgICAgICAgICAgICAgICAgIChjb21wYXJlIChtYXRjaF9kdXAgMCkKKyAgIChwYXJh bGxlbCBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAgICAgICAgICAgICAoY29tcGFyZTpD QyAobWF0Y2hfZHVwIDApCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAt MSkpKQogICAgICAgICAgICAgICAoY2xvYmJlciAobWF0Y2hfb3BlcmFuZDpRSSAxICJkX3JlZ2lz dGVyX29wZXJhbmQiICIiKSldKQogICAgKHNldCAocGMpCi0gICAgICAgIChpZl90aGVuX2Vsc2Ug KGVxbmUgKGNjMCkKKyAgICAgICAgKGlmX3RoZW5fZWxzZSAoZXFuZSAocmVnOkNDIFJFR19DQykK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKQogICAgICAgICAgICAg ICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCiAgICAgICAgICAg ICAgICAgICAgICAgKHBjKSkpXQpAQCAtNTYzOSwxMSArNzc2OSwxMSBAQAogICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpRSSAwICJkX3JlZ2lzdGVyX29wZXJhbmQiICIiKQogICAgICAgICAocGx1czpR SSAobWF0Y2hfZHVwIDApCiAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgLTEpKSkKLSAgIChz ZXQgKGNjMCkKLSAgICAgICAgKGNvbXBhcmUgKG1hdGNoX2R1cCAwKQorICAgKHNldCAocmVnOkND IFJFR19DQykKKyAgICAgICAgKGNvbXBhcmU6Q0MgKG1hdGNoX2R1cCAwKQogICAgICAgICAgICAg ICAgICAoY29uc3RfaW50IC0xKSkpCiAgICAoc2V0IChwYykKLSAgICAgICAgKGlmX3RoZW5fZWxz ZSAoZXFuZSAoY2MwKQorICAgICAgICAoaWZfdGhlbl9lbHNlIChlcW5lIChyZWc6Q0MgUkVHX0ND KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMCkpCiAgICAgICAgICAg ICAgICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIiICIiKSkKICAgICAgICAg ICAgICAgICAgICAgICAocGMpKSldCkBAIC01Njc0LDExICs3ODA0LDExIEBACiAKIAogKGRlZmlu ZV9wZWVwaG9sZSA7ICIqY3BzZS5lcSIKLSAgWyhzZXQgKGNjMCkKLSAgICAgICAgKGNvbXBhcmUg KG1hdGNoX29wZXJhbmQ6QUxMMSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAicixyIikKKyAgWyhzZXQg KHJlZzpDQyBSRUdfQ0MpCisgICAgICAgIChjb21wYXJlOkNDIChtYXRjaF9vcGVyYW5kOkFMTDEg MSAicmVnaXN0ZXJfb3BlcmFuZCIgInIsciIpCiAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOkFMTDEgMiAicmVnX29yXzBfb3BlcmFuZCIgInIsWTAwIikpKQogICAgKHNldCAocGMpCi0g ICAgICAgIChpZl90aGVuX2Vsc2UgKGVxIChjYzApCisgICAgICAgIChpZl90aGVuX2Vsc2UgKGVx IChyZWc6Q0MgUkVHX0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDAp KQogICAgICAgICAgICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMCAiIiAi IikpCiAgICAgICAgICAgICAgICAgICAgICAgKHBjKSkpXQpAQCAtNTcwOSwxMSArNzgzOSwxMSBA QAogOzsgYW5kIHRodXMgbG9uZ2VyIGFuZCBzbG93ZXIgYW5kIG5vdCBlYXN5IHRvIGJlIHJvbGxl ZCBiYWNrLgogCiAoZGVmaW5lX3BlZXBob2xlIDsgIipjcHNlLm5lIgotICBbKHNldCAoY2MwKQot ICAgICAgICAoY29tcGFyZSAobWF0Y2hfb3BlcmFuZDpBTEwxIDEgInJlZ2lzdGVyX29wZXJhbmQi ICIiKQorICBbKHNldCAocmVnOkNDIFJFR19DQykKKyAgICAgICAgKGNvbXBhcmU6Q0MgKG1hdGNo X29wZXJhbmQ6QUxMMSAxICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKICAgICAgICAgICAgICAgICAg KG1hdGNoX29wZXJhbmQ6QUxMMSAyICJyZWdfb3JfMF9vcGVyYW5kIiAiIikpKQogICAgKHNldCAo cGMpCi0gICAgICAgIChpZl90aGVuX2Vsc2UgKG5lIChjYzApCisgICAgICAgIChpZl90aGVuX2Vs c2UgKG5lIChyZWc6Q0MgUkVHX0NDKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3Rf aW50IDApKQogICAgICAgICAgICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQg MCAiIiAiIikpCiAgICAgICAgICAgICAgICAgICAgICAgKHBjKSkpXQpAQCAtNTczNiw4ICs3ODY2 LDcgQEAKICAgICAgICAgKG1lbTpRSSAocHJlX2luYzpISSAocmVnOkhJIFJFR19TUCkpKSldCiAg ICIiCiAgICJwb3AgJTAiCi0gIFsoc2V0X2F0dHIgImNjIiAibm9uZSIpCi0gICAoc2V0X2F0dHIg Imxlbmd0aCIgIjEiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCiAKIDs7IEVuYWJs ZSBJbnRlcnJ1cHRzCiAoZGVmaW5lX2V4cGFuZCAiZW5hYmxlX2ludGVycnVwdCIKQEAgLTU3NzAs MTEgKzc4OTksMTAgQEAKICAgIkAKIAljbGkKIAlzZWkiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIg IjEiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIg IjEiKV0pCiAKIDs7ICBMaWJyYXJ5IHByb2xvZ3VlIHNhdmVzCi0oZGVmaW5lX2luc24gImNhbGxf cHJvbG9ndWVfc2F2ZXMiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqY2FsbF9wcm9sb2d1ZV9z YXZlcyIKICAgWyh1bnNwZWNfdm9sYXRpbGU6SEkgWyhjb25zdF9pbnQgMCldIFVOU1BFQ1ZfUFJP TE9HVUVfU0FWRVMpCiAgICAobWF0Y2hfb3BlcmFuZDpISSAwICJpbW1lZGlhdGVfb3BlcmFuZCIg ImksaSIpCiAgICAoc2V0IChyZWc6SEkgUkVHX1NQKQpAQCAtNTc4MywxNiArNzkxMSwzNiBAQAog ICAgKHVzZSAocmVnOkhJIFJFR19YKSkKICAgIChjbG9iYmVyIChyZWc6SEkgUkVHX1opKV0KICAg IiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsodW5zcGVj X3ZvbGF0aWxlOkhJIFsoY29uc3RfaW50IDApXSBVTlNQRUNWX1BST0xPR1VFX1NBVkVTKQorICAg ICAgICAgICAgICAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgIChzZXQgKHJlZzpISSBSRUdf U1ApCisgICAgICAgICAgICAgICAgICAgKG1pbnVzOkhJIChyZWc6SEkgUkVHX1NQKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDEpKSkKKyAgICAgICAgICAgICAgKHVz ZSAocmVnOkhJIFJFR19YKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSBSRUdfWikp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiY2FsbF9wcm9sb2d1ZV9zYXZlcyIKKyAgWyh1bnNwZWNfdm9sYXRpbGU6SEkgWyhjb25z dF9pbnQgMCldIFVOU1BFQ1ZfUFJPTE9HVUVfU0FWRVMpCisgICAobWF0Y2hfb3BlcmFuZDpISSAw ICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpCisgICAoc2V0IChyZWc6SEkgUkVHX1NQKQorICAg ICAgICAobWludXM6SEkgKHJlZzpISSBSRUdfU1ApCisgICAgICAgICAgICAgICAgICAobWF0Y2hf b3BlcmFuZDpISSAxICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSkKKyAgICh1c2UgKHJlZzpI SSBSRUdfWCkpCisgICAoY2xvYmJlciAocmVnOkhJIFJFR19aKSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAibGRpIHIzMCxsbzgoZ3MoMWYp KQogCWxkaSByMzEsaGk4KGdzKDFmKSkKIAklfmptcCBfX3Byb2xvZ3VlX3NhdmVzX18rKCgxOCAt ICUwKSAqIDIpCiAxOiIKICAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNSw2IikKLSAgIChzZXRfYXR0 ciAiY2MiICJjbG9iYmVyIikKICAgIChzZXRfYXR0ciAiaXNhIiAicmptcCxqbXAiKV0pCiAKIDsg IGVwaWxvZ3VlICByZXN0b3JlcyB1c2luZyBsaWJyYXJ5Ci0oZGVmaW5lX2luc24gImVwaWxvZ3Vl X3Jlc3RvcmVzIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmVwaWxvZ3VlX3Jlc3RvcmVzIgog ICBbKHVuc3BlY192b2xhdGlsZTpRSSBbKGNvbnN0X2ludCAwKV0gVU5TUEVDVl9FUElMT0dVRV9S RVNUT1JFUykKICAgIChzZXQgKHJlZzpISSBSRUdfWSkKICAgICAgICAgKHBsdXM6SEkgKHJlZzpI SSBSRUdfWSkKQEAgLTU4MDIsMTAgKzc5NTAsMzIgQEAKICAgICAgICAgICAgICAgICAgKG1hdGNo X2R1cCAwKSkpCiAgICAoY2xvYmJlciAocmVnOlFJIFJFR19aKSldCiAgICIiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHVuc3BlY192b2xhdGlsZTpRSSBb KGNvbnN0X2ludCAwKV0gVU5TUEVDVl9FUElMT0dVRV9SRVNUT1JFUykKKyAgICAgICAgICAgICAg KHNldCAocmVnOkhJIFJFR19ZKQorICAgICAgICAgICAgICAgICAgIChwbHVzOkhJIChyZWc6SEkg UkVHX1kpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAwKSkpCisgICAg ICAgICAgICAgIChzZXQgKHJlZzpISSBSRUdfU1ApCisgICAgICAgICAgICAgICAgICAgKHBsdXM6 SEkgKHJlZzpISSBSRUdfWSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVw IDApKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpRSSBSRUdfWikpCisgICAgICAgICAg ICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiZXBpbG9n dWVfcmVzdG9yZXMiCisgIFsodW5zcGVjX3ZvbGF0aWxlOlFJIFsoY29uc3RfaW50IDApXSBVTlNQ RUNWX0VQSUxPR1VFX1JFU1RPUkVTKQorICAgKHNldCAocmVnOkhJIFJFR19ZKQorICAgICAgICAo cGx1czpISSAocmVnOkhJIFJFR19ZKQorICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpI SSAwICJpbW1lZGlhdGVfb3BlcmFuZCIgImksaSIpKSkKKyAgIChzZXQgKHJlZzpISSBSRUdfU1Ap CisgICAgICAgIChwbHVzOkhJIChyZWc6SEkgUkVHX1kpCisgICAgICAgICAgICAgICAgIChtYXRj aF9kdXAgMCkpKQorICAgKGNsb2JiZXIgKHJlZzpRSSBSRUdfWikpCisgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImxkaSByMzAsIGxvOCglMCkK IAklfmptcCBfX2VwaWxvZ3VlX3Jlc3RvcmVzX18gKyAoKDE4IC0gJTApICogMikiCiAgIFsoc2V0 X2F0dHIgImxlbmd0aCIgIjIsMyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpCiAgICAo c2V0X2F0dHIgImlzYSIgInJqbXAsam1wIildKQogCiAKQEAgLTU4MjYsNyArNzk5Niw3IEBACiAg ICAgTUVNX1ZPTEFUSUxFX1AgKG9wZXJhbmRzWzJdKSA9IDE7CiAgIH0pCiAKLShkZWZpbmVfaW5z biAiKmdhc2lzciIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipnYXNpc3Jfc3BsaXQiCiAgIFso dW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfb3BlcmFuZDpRSSAwICJjb25zdF9pbnRfb3BlcmFuZCIg IlAsSyIpCiAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJjb25zdF9p bnRfb3BlcmFuZCIgIm4sbiIpXQogICAgICAgICAgICAgICAgICAgICBVTlNQRUNWX0dBU0lTUikK QEAgLTU4MzUsOSArODAwNSwyOSBAQAogICAgKHNldCAobWF0Y2hfb3BlcmFuZDpCTEsgMikKICAg ICAgICAgKHVuc3BlY192b2xhdGlsZTpCTEsgWyhtYXRjaF9kdXAgMildIFVOU1BFQ1ZfTUVNT1JZ X0JBUlJJRVIpKV0KICAgImF2cl9nYXNpc3JfcHJvbG9ndWVzIgorICAiIyIKKyAgIiYmIHJlbG9h ZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9kdXAg MCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAxKV0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNWX0dBU0lTUikKKyAgICAgICAgICAgICAg KHNldCAocmVnOkhJIFJFR19TUCkKKyAgICAgICAgICAgICAgICAgICAodW5zcGVjX3ZvbGF0aWxl OkhJIFsocmVnOkhJIFJFR19TUCldIFVOU1BFQ1ZfR0FTSVNSKSkKKyAgICAgICAgICAgICAgKHNl dCAobWF0Y2hfZHVwIDIpCisgICAgICAgICAgICAgICAgICAgKHVuc3BlY192b2xhdGlsZTpCTEsg WyhtYXRjaF9kdXAgMildIFVOU1BFQ1ZfTUVNT1JZX0JBUlJJRVIpKQorICAgICAgICAgICAgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipnYXNpc3IiCisg IFsodW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfb3BlcmFuZDpRSSAwICJjb25zdF9pbnRfb3BlcmFu ZCIgIlAsSyIpCisgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJjb25z dF9pbnRfb3BlcmFuZCIgIm4sbiIpXQorICAgICAgICAgICAgICAgICAgICBVTlNQRUNWX0dBU0lT UikKKyAgIChzZXQgKHJlZzpISSBSRUdfU1ApCisgICAgICAgICh1bnNwZWNfdm9sYXRpbGU6SEkg WyhyZWc6SEkgUkVHX1NQKV0gVU5TUEVDVl9HQVNJU1IpKQorICAgKHNldCAobWF0Y2hfb3BlcmFu ZDpCTEsgMikKKyAgICAgICAgKHVuc3BlY192b2xhdGlsZTpCTEsgWyhtYXRjaF9kdXAgMildIFVO U1BFQ1ZfTUVNT1JZX0JBUlJJRVIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAg ImF2cl9nYXNpc3JfcHJvbG9ndWVzICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICJfX2djY19pc3Ig JTAiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjYsNSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xv YmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNiw1IildKQogCiAKIDsgcmV0dXJuCkBA IC01ODQ1LDggKzgwMzUsNyBAQAogICBbKHJldHVybildCiAgICJyZWxvYWRfY29tcGxldGVkICYm IGF2cl9zaW1wbGVfZXBpbG9ndWUgKCkiCiAgICJyZXQiCi0gIFsoc2V0X2F0dHIgImNjIiAibm9u ZSIpCi0gICAoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIg IjEiKV0pCiAKIChkZWZpbmVfaW5zbiAicmV0dXJuX2Zyb21fZXBpbG9ndWUiCiAgIFsocmV0dXJu KV0KQEAgLTU4NTUsOCArODA0NCw3IEBACiAgICAmJiAhKGNmdW4tPm1hY2hpbmUtPmlzX2ludGVy cnVwdCB8fCBjZnVuLT5tYWNoaW5lLT5pc19zaWduYWwpCiAgICAmJiAhY2Z1bi0+bWFjaGluZS0+ aXNfbmFrZWQiCiAgICJyZXQiCi0gIFsoc2V0X2F0dHIgImNjIiAibm9uZSIpCi0gICAoc2V0X2F0 dHIgImxlbmd0aCIgIjEiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEiKV0pCiAKIChkZWZp bmVfaW5zbiAicmV0dXJuX2Zyb21faW50ZXJydXB0X2VwaWxvZ3VlIgogICBbKHJldHVybildCkBA IC01ODY1LDggKzgwNTMsNyBAQAogICAgJiYgKGNmdW4tPm1hY2hpbmUtPmlzX2ludGVycnVwdCB8 fCBjZnVuLT5tYWNoaW5lLT5pc19zaWduYWwpCiAgICAmJiAhY2Z1bi0+bWFjaGluZS0+aXNfbmFr ZWQiCiAgICJyZXRpIgotICBbKHNldF9hdHRyICJjYyIgIm5vbmUiKQotICAgKHNldF9hdHRyICJs ZW5ndGgiICIxIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIxIildKQogCiAoZGVmaW5lX2lu c24gInJldHVybl9mcm9tX25ha2VkX2VwaWxvZ3VlIgogICBbKHJldHVybildCkBAIC01ODc0LDgg KzgwNjEsNyBAQAogICAgJiYgY2Z1bi0+bWFjaGluZQogICAgJiYgY2Z1bi0+bWFjaGluZS0+aXNf bmFrZWQiCiAgICIiCi0gIFsoc2V0X2F0dHIgImNjIiAibm9uZSIpCi0gICAoc2V0X2F0dHIgImxl bmd0aCIgIjAiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjAiKV0pCiAKIChkZWZpbmVfZXhw YW5kICJwcm9sb2d1ZSIKICAgWyhjb25zdF9pbnQgMCldCkBAIC01OTA0LDcgKzgwOTAsNyBAQAog OzsgU29tZSBpbnN0cnVjdGlvbnMgcmVzcC4gaW5zdHJ1Y3Rpb24gc2VxdWVuY2VzIGF2YWlsYWJs ZQogOzsgdmlhIGJ1aWx0aW5zLgogCi0oZGVmaW5lX2luc24gImRlbGF5X2N5Y2xlc18xIgorKGRl ZmluZV9pbnNuX2FuZF9zcGxpdCAiZGVsYXlfY3ljbGVzXzEiCiAgIFsodW5zcGVjX3ZvbGF0aWxl IFsobWF0Y2hfb3BlcmFuZDpRSSAwICJjb25zdF9pbnRfb3BlcmFuZCIgIm4iKQogICAgICAgICAg ICAgICAgICAgICAgKGNvbnN0X2ludCAxKV0KICAgICAgICAgICAgICAgICAgICAgVU5TUEVDVl9E RUxBWV9DWUNMRVMpCkBAIC01OTEyLDEzICs4MDk4LDMxIEBACiAJKHVuc3BlY192b2xhdGlsZTpC TEsgWyhtYXRjaF9kdXAgMSldIFVOU1BFQ1ZfTUVNT1JZX0JBUlJJRVIpKQogICAgKGNsb2JiZXIg KG1hdGNoX3NjcmF0Y2g6UUkgMiAiPSZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9j b21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9kdXAgMCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKV0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNWX0RFTEFZX0NZQ0xFUykKKyAgICAgICAgICAg ICAgKHNldCAobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAodW5zcGVjX3ZvbGF0aWxlOkJM SyBbKG1hdGNoX2R1cCAxKV0gVU5TUEVDVl9NRU1PUllfQkFSUklFUikpCisgICAgICAgICAgICAg IChjbG9iYmVyIChtYXRjaF9kdXAgMikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmRlbGF5X2N5Y2xlc18xIgorICBbKHVuc3Bl Y192b2xhdGlsZSBbKG1hdGNoX29wZXJhbmQ6UUkgMCAiY29uc3RfaW50X29wZXJhbmQiICJuIikK KyAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSldCisgICAgICAgICAgICAgICAgICAg IFVOU1BFQ1ZfREVMQVlfQ1lDTEVTKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpCTEsgMSAiIiAi IikKKwkodW5zcGVjX3ZvbGF0aWxlOkJMSyBbKG1hdGNoX2R1cCAxKV0gVU5TUEVDVl9NRU1PUllf QkFSUklFUikpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAyICI9JmQiKSkKKyAgIChj bG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAibGRpICUy LGxvOCglMCkKIDE6CWRlYyAlMgogCWJybmUgMWIiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjMi KQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIg IjMiKV0pCiAKLShkZWZpbmVfaW5zbiAiZGVsYXlfY3ljbGVzXzIiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICJkZWxheV9jeWNsZXNfMiIKICAgWyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9vcGVy YW5kOkhJIDAgImNvbnN0X2ludF9vcGVyYW5kIiAibixuIikKICAgICAgICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMildCiAgICAgICAgICAgICAgICAgICAgIFVOU1BFQ1ZfREVMQVlfQ1lDTEVT KQpAQCAtNTkyNiwxNCArODEzMCwzMiBAQAogCSh1bnNwZWNfdm9sYXRpbGU6QkxLIFsobWF0Y2hf ZHVwIDEpXSBVTlNQRUNWX01FTU9SWV9CQVJSSUVSKSkKICAgIChjbG9iYmVyIChtYXRjaF9zY3Jh dGNoOkhJIDIgIj0mdywmZCIpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVk IgorICBbKHBhcmFsbGVsIFsodW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfZHVwIDApCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMildCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVU5TUEVDVl9ERUxBWV9DWUNMRVMpCisgICAgICAgICAgICAgIChzZXQg KG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgKHVuc3BlY192b2xhdGlsZTpCTEsgWyhtYXRj aF9kdXAgMSldIFVOU1BFQ1ZfTUVNT1JZX0JBUlJJRVIpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAobWF0Y2hfZHVwIDIpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XSldKQorCisoZGVmaW5lX2luc24gIipkZWxheV9jeWNsZXNfMiIKKyAgWyh1bnNwZWNfdm9sYXRp bGUgWyhtYXRjaF9vcGVyYW5kOkhJIDAgImNvbnN0X2ludF9vcGVyYW5kIiAibixuIikKKyAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMildCisgICAgICAgICAgICAgICAgICAgIFVOU1BF Q1ZfREVMQVlfQ1lDTEVTKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpCTEsgMSAiIiAiIikKKwko dW5zcGVjX3ZvbGF0aWxlOkJMSyBbKG1hdGNoX2R1cCAxKV0gVU5TUEVDVl9NRU1PUllfQkFSUklF UikpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpISSAyICI9JncsJmQiKSkKKyAgIChjbG9i YmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiQAogCWxkaSAl QTIsbG84KCUwKVw7bGRpICVCMixoaTgoJTApXG4xOglzYml3ICVBMiwxXDticm5lIDFiCiAJbGRp ICVBMixsbzgoJTApXDtsZGkgJUIyLGhpOCglMClcbjE6CXN1YmkgJUEyLDFcO3NiY2kgJUIyLDBc O2JybmUgMWIiCiAgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjQsNSIpCi0gICAoc2V0X2F0dHIgImlz YSIgIm5vX3RpbnksdGlueSIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgIChz ZXRfYXR0ciAiaXNhIiAibm9fdGlueSx0aW55IildKQogCi0oZGVmaW5lX2luc24gImRlbGF5X2N5 Y2xlc18zIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiZGVsYXlfY3ljbGVzXzMiCiAgIFsodW5z cGVjX3ZvbGF0aWxlIFsobWF0Y2hfb3BlcmFuZDpTSSAwICJjb25zdF9pbnRfb3BlcmFuZCIgIm4i KQogICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAzKV0KICAgICAgICAgICAgICAgICAg ICAgVU5TUEVDVl9ERUxBWV9DWUNMRVMpCkBAIC01OTQzLDYgKzgxNjUsMjkgQEAKICAgIChjbG9i YmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgIj0mZCIpKQogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0 Y2g6UUkgNCAiPSZkIikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisg IFsocGFyYWxsZWwgWyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9kdXAgMCkKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAzKV0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBVTlNQRUNWX0RFTEFZX0NZQ0xFUykKKyAgICAgICAgICAgICAgKHNldCAobWF0 Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAodW5zcGVjX3ZvbGF0aWxlOkJMSyBbKG1hdGNoX2R1 cCAxKV0gVU5TUEVDVl9NRU1PUllfQkFSUklFUikpCisgICAgICAgICAgICAgIChjbG9iYmVyICht YXRjaF9kdXAgMikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgMykpCisgICAg ICAgICAgICAgIChjbG9iYmVyIChtYXRjaF9kdXAgNCkpCisgICAgICAgICAgICAgIChjbG9iYmVy IChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmRlbGF5X2N5Y2xlc18zIgor ICBbKHVuc3BlY192b2xhdGlsZSBbKG1hdGNoX29wZXJhbmQ6U0kgMCAiY29uc3RfaW50X29wZXJh bmQiICJuIikKKyAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMyldCisgICAgICAgICAg ICAgICAgICAgIFVOU1BFQ1ZfREVMQVlfQ1lDTEVTKQorICAgKHNldCAobWF0Y2hfb3BlcmFuZDpC TEsgMSAiIiAiIikKKwkodW5zcGVjX3ZvbGF0aWxlOkJMSyBbKG1hdGNoX2R1cCAxKV0gVU5TUEVD Vl9NRU1PUllfQkFSUklFUikpCisgICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSAyICI9JmQi KSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDMgIj0mZCIpKQorICAgKGNsb2JiZXIg KG1hdGNoX3NjcmF0Y2g6UUkgNCAiPSZkIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykp XQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgImxkaSAlMixsbzgoJTApCiAJbGRpICUzLGhpOCgl MCkKIAlsZGkgJTQsaGxvOCglMCkKQEAgLTU5NTAsMTAgKzgxOTUsOSBAQAogCXNiY2kgJTMsMAog CXNiY2kgJTQsMAogCWJybmUgMWIiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjciKQotICAgKHNl dF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjciKV0pCiAK LShkZWZpbmVfaW5zbiAiZGVsYXlfY3ljbGVzXzQiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJk ZWxheV9jeWNsZXNfNCIKICAgWyh1bnNwZWNfdm9sYXRpbGUgWyhtYXRjaF9vcGVyYW5kOlNJIDAg ImNvbnN0X2ludF9vcGVyYW5kIiAibiIpCiAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDQpXQogICAgICAgICAgICAgICAgICAgICBVTlNQRUNWX0RFTEFZX0NZQ0xFUykKQEAgLTU5NjQs NiArODIwOCwzMSBAQAogICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgNCAiPSZkIikpCiAg ICAoY2xvYmJlciAobWF0Y2hfc2NyYXRjaDpRSSA1ICI9JmQiKSldCiAgICIiCisgICIjIgorICAi JiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHVuc3BlY192b2xhdGlsZSBbKG1h dGNoX2R1cCAwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDQp XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOU1BFQ1ZfREVMQVlfQ1lDTEVTKQor ICAgICAgICAgICAgICAoc2V0IChtYXRjaF9kdXAgMSkKKyAgICAgICAgICAgICAgICh1bnNwZWNf dm9sYXRpbGU6QkxLIFsobWF0Y2hfZHVwIDEpXSBVTlNQRUNWX01FTU9SWV9CQVJSSUVSKSkKKyAg ICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCAyKSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKG1hdGNoX2R1cCAzKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCA0KSkK KyAgICAgICAgICAgICAgKGNsb2JiZXIgKG1hdGNoX2R1cCA1KSkKKyAgICAgICAgICAgICAgKGNs b2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqZGVsYXlfY3ljbGVz XzQiCisgIFsodW5zcGVjX3ZvbGF0aWxlIFsobWF0Y2hfb3BlcmFuZDpTSSAwICJjb25zdF9pbnRf b3BlcmFuZCIgIm4iKQorICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCA0KV0KKyAgICAg ICAgICAgICAgICAgICAgVU5TUEVDVl9ERUxBWV9DWUNMRVMpCisgICAoc2V0IChtYXRjaF9vcGVy YW5kOkJMSyAxICIiICIiKQorCSh1bnNwZWNfdm9sYXRpbGU6QkxLIFsobWF0Y2hfZHVwIDEpXSBV TlNQRUNWX01FTU9SWV9CQVJSSUVSKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3JhdGNoOlFJIDIg Ij0mZCIpKQorICAgKGNsb2JiZXIgKG1hdGNoX3NjcmF0Y2g6UUkgMyAiPSZkIikpCisgICAoY2xv YmJlciAobWF0Y2hfc2NyYXRjaDpRSSA0ICI9JmQiKSkKKyAgIChjbG9iYmVyIChtYXRjaF9zY3Jh dGNoOlFJIDUgIj0mZCIpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9h ZF9jb21wbGV0ZWQiCiAgICJsZGkgJTIsbG84KCUwKQogCWxkaSAlMyxoaTgoJTApCiAJbGRpICU0 LGhsbzgoJTApCkBAIC01OTczLDI0ICs4MjQyLDM5IEBACiAJc2JjaSAlNCwwCiAJc2JjaSAlNSww CiAJYnJuZSAxYiIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiOSIpCi0gICAoc2V0X2F0dHIgImNj IiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiOSIpXSkKIAogCiA7OyBfX2J1 aWx0aW5fYXZyX2luc2VydF9iaXRzCiAKLShkZWZpbmVfaW5zbiAiaW5zZXJ0X2JpdHMiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICJpbnNlcnRfYml0cyIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICI9ciAgLGQgICxyIikKICAgICAg ICAgKHVuc3BlYzpRSSBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X29wZXJhbmQiICAi QzBmLEN4ZixDMGYiKQogICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAgICJyICAsciAgLHIiKQogICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpRSSAzICJub25tZW1vcnlfb3BlcmFuZCIgICJuICAsMCAgLDAiKV0KICAgICAg ICAgICAgICAgICAgICBVTlNQRUNfSU5TRVJUX0JJVFMpKV0KICAgIiIKKyAgIiMiCisgICImJiBy ZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAg ICAgICAgICAgICAgICAodW5zcGVjOlFJIFsobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9kdXAgMyldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNf SU5TRVJUX0JJVFMpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSld KQorCisoZGVmaW5lX2luc24gIippbnNlcnRfYml0cyIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6 UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICI9ciAgLGQgICxyIikKKyAgICAg ICAgKHVuc3BlYzpRSSBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X29wZXJhbmQiICAi QzBmLEN4ZixDMGYiKQorICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJy ZWdpc3Rlcl9vcGVyYW5kIiAgICJyICAsciAgLHIiKQorICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfb3BlcmFuZDpRSSAzICJub25tZW1vcnlfb3BlcmFuZCIgICJuICAsMCAgLDAiKV0KKyAgICAg ICAgICAgICAgICAgICBVTlNQRUNfSU5TRVJUX0JJVFMpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBS RUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9p bnNlcnRfYml0cyAob3BlcmFuZHMsIE5VTEwpOwogICB9Ci0gIFsoc2V0X2F0dHIgImFkanVzdF9s ZW4iICJpbnNlcnRfYml0cyIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhz ZXRfYXR0ciAiYWRqdXN0X2xlbiIgImluc2VydF9iaXRzIildKQogCiAKIDs7IF9fYnVpbHRpbl9h dnJfZmxhc2hfc2VnbWVudApAQCAtNjAwMSwxNyArODI4NSwzMSBAQAogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKICAgICAgICAgKHN1YnJlZzpRSSAo bWF0Y2hfb3BlcmFuZDpQU0kgMSAicmVnaXN0ZXJfb3BlcmFuZCIgIiIpCiAgICAgICAgICAgICAg ICAgICAgMikpCi0gICAoc2V0IChjYzApCi0gICAgICAgIChjb21wYXJlIChtYXRjaF9kdXAgMCkK LSAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpCiAgICAoc2V0IChwYykKLSAgICAgICAg KGlmX3RoZW5fZWxzZSAoZ2UgKGNjMCkKKyAgICAgICAgKGlmX3RoZW5fZWxzZSAoZ2UgKG1hdGNo X2R1cCAwKQogICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDApKQogICAgICAg ICAgICAgICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX29wZXJhbmQgMiAiIiAiIikpCiAgICAg ICAgICAgICAgICAgICAgICAgKHBjKSkpCiAgICAoc2V0IChtYXRjaF9kdXAgMCkKICAgICAgICAg KGNvbnN0X2ludCAtMSkpXSkKIAorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmZsYXNoX3NlZ21l bnQxIgorICBbKHNldCAocGMpCisgICAgICAgIChpZl90aGVuX2Vsc2UgKGdlIChtYXRjaF9vcGVy YW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICIiKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDApKQorICAgICAgICAgKGxhYmVsX3JlZiAobWF0Y2hfb3BlcmFuZCAxICIi ICIiKSkKKyAgICAgICAgIChwYykpKV0KKyAgICIiCisgICAiIyIKKyAgICJyZWxvYWRfY29tcGxl dGVkIgorICAgWyhzZXQgKHJlZzpDQyBSRUdfQ0MpCisgICAgICAgICAoY29tcGFyZTpDQyAobWF0 Y2hfZHVwIDApIChjb25zdF9pbnQgMCkpKQorICAgIChzZXQgKHBjKQorICAgICAgICAgKGlmX3Ro ZW5fZWxzZSAoZ2UgKHJlZzpDQyBSRUdfQ0MpIChjb25zdF9pbnQgMCkpCisgICAgICAgICAgICAg ICAgICAgICAgIChsYWJlbF9yZWYgKG1hdGNoX2R1cCAxKSkKKyAgICAgICAgICAgICAgICAgICAg ICAgKHBjKSkpXQorICAgIiIpCisKIChkZWZpbmVfZXhwYW5kICJmbGFzaF9zZWdtZW50IgogICBb KHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiIikKICAg ICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UFNJIDEgInJlZ2lzdGVyX29wZXJhbmQiICIiKV0p XQpAQCAtNjA5MiwyOSArODM5MCw1OSBAQAogICAgIG9wZXJhbmRzWzJdID0gZ2VuX3JlZ19ydHgg KEhJbW9kZSk7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiKnBhcml0eWhpMi5saWJnY2MiCisoZGVm aW5lX2luc25fYW5kX3NwbGl0ICIqcGFyaXR5aGkyLmxpYmdjY19zcGxpdCIKICAgWyhzZXQgKHJl ZzpISSAyNCkKICAgICAgICAgKHBhcml0eTpISSAocmVnOkhJIDI0KSkpXQogICAiIgorICAiIyIK KyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpISSAyNCkK KyAgICAgICAgICAgICAgICAgICAocGFyaXR5OkhJIChyZWc6SEkgMjQpKSkKKyAgICAgICAgICAg ICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqcGFyaXR5 aGkyLmxpYmdjYyIKKyAgWyhzZXQgKHJlZzpISSAyNCkKKyAgICAgICAgKHBhcml0eTpISSAocmVn OkhJIDI0KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBs ZXRlZCIKICAgIiV+Y2FsbCBfX3Bhcml0eWhpMiIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxs IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAi eGNhbGwiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnBhcml0eXFpaGkyLmxpYmdjYyIKKyhkZWZpbmVf aW5zbl9hbmRfc3BsaXQgIipwYXJpdHlxaWhpMi5saWJnY2Nfc3BsaXQiCiAgIFsoc2V0IChyZWc6 SEkgMjQpCiAgICAgICAgICh6ZXJvX2V4dGVuZDpISSAocGFyaXR5OlFJIChyZWc6UUkgMjQpKSkp XQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhz ZXQgKHJlZzpISSAyNCkKKyAgICAgICAgICAgICAgICAgICAoemVyb19leHRlbmQ6SEkgKHBhcml0 eTpRSSAocmVnOlFJIDI0KSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXSldKQorCisoZGVmaW5lX2luc24gIipwYXJpdHlxaWhpMi5saWJnY2MiCisgIFsoc2V0IChy ZWc6SEkgMjQpCisgICAgICAgICh6ZXJvX2V4dGVuZDpISSAocGFyaXR5OlFJIChyZWc6UUkgMjQp KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIK ICAgIiV+Y2FsbCBfX3Bhcml0eXFpMiIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAg IChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwi KV0pCiAKLShkZWZpbmVfaW5zbiAiKnBhcml0eXNpaGkyLmxpYmdjYyIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgIipwYXJpdHlzaWhpMi5saWJnY2Nfc3BsaXQiCiAgIFsoc2V0IChyZWc6SEkgMjQp CiAgICAgICAgICh0cnVuY2F0ZTpISSAocGFyaXR5OlNJIChyZWc6U0kgMjIpKSkpXQogICAiIgor ICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpI SSAyNCkKKyAgICAgICAgICAgICAgICAgICAodHJ1bmNhdGU6SEkgKHBhcml0eTpTSSAocmVnOlNJ IDIyKSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCiso ZGVmaW5lX2luc24gIipwYXJpdHlzaWhpMi5saWJnY2MiCisgIFsoc2V0IChyZWc6SEkgMjQpCisg ICAgICAgICh0cnVuY2F0ZTpISSAocGFyaXR5OlNJIChyZWc6U0kgMjIpKSkpCisgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfX3Bh cml0eXNpMiIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2Mi ICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKIAogOzsgUG9w Y291bnQKQEAgLTYxNDMsMjkgKzg0NzEsNTkgQEAKICAgICBvcGVyYW5kc1syXSA9IGdlbl9yZWdf cnR4IChISW1vZGUpOwogICB9KQogCi0oZGVmaW5lX2luc24gIipwb3Bjb3VudGhpMi5saWJnY2Mi CisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqcG9wY291bnRoaTIubGliZ2NjX3NwbGl0IgogICBb KHNldCAocmVnOkhJIDI0KQogICAgICAgICAocG9wY291bnQ6SEkgKHJlZzpISSAyNCkpKV0KICAg IiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChy ZWc6SEkgMjQpCisgICAgICAgICAgICAgICAgICAgKHBvcGNvdW50OkhJIChyZWc6SEkgMjQpKSkK KyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9p bnNuICIqcG9wY291bnRoaTIubGliZ2NjIgorICBbKHNldCAocmVnOkhJIDI0KQorICAgICAgICAo cG9wY291bnQ6SEkgKHJlZzpISSAyNCkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0K KyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX19wb3Bjb3VudGhpMiIKLSAgWyhzZXRf YXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBb KHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKLShkZWZpbmVfaW5zbiAiKnBvcGNvdW50c2ky LmxpYmdjYyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipwb3Bjb3VudHNpMi5saWJnY2Nfc3Bs aXQiCiAgIFsoc2V0IChyZWc6SEkgMjQpCiAgICAgICAgICh0cnVuY2F0ZTpISSAocG9wY291bnQ6 U0kgKHJlZzpTSSAyMikpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkhJIDI0KQorICAgICAgICAgICAgICAgICAgICh0cnVu Y2F0ZTpISSAocG9wY291bnQ6U0kgKHJlZzpTSSAyMikpKSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqcG9wY291bnRzaTIubGli Z2NjIgorICBbKHNldCAocmVnOkhJIDI0KQorICAgICAgICAodHJ1bmNhdGU6SEkgKHBvcGNvdW50 OlNJIChyZWc6U0kgMjIpKSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVs b2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfX3BvcGNvdW50c2kyIgotICBbKHNldF9hdHRyICJ0 eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0 dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAotKGRlZmluZV9pbnNuICIqcG9wY291bnRxaTIubGliZ2Nj IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKnBvcGNvdW50cWkyLmxpYmdjY19zcGxpdCIKICAg WyhzZXQgKHJlZzpRSSAyNCkKICAgICAgICAgKHBvcGNvdW50OlFJIChyZWc6UUkgMjQpKSldCiAg ICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAo cmVnOlFJIDI0KQorICAgICAgICAgICAgICAgICAgIChwb3Bjb3VudDpRSSAocmVnOlFJIDI0KSkp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKnBvcGNvdW50cWkyLmxpYmdjYyIKKyAgWyhzZXQgKHJlZzpRSSAyNCkKKyAgICAgICAg KHBvcGNvdW50OlFJIChyZWc6UUkgMjQpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSld CisgICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fcG9wY291bnRxaTIiCi0gIFsoc2V0 X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQogCiAoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIq cG9wY291bnRxaWhpMi5saWJnY2MiCiAgIFsoc2V0IChyZWc6SEkgMjQpCkBAIC02MjA0LDIzICs4 NTYyLDQ3IEBACiAgICAgb3BlcmFuZHNbMl0gPSBnZW5fcmVnX3J0eCAoSEltb2RlKTsKICAgfSkK IAotKGRlZmluZV9pbnNuICIqY2x6aGkyLmxpYmdjYyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg IipjbHpoaTIubGliZ2NjX3NwbGl0IgogICBbKHNldCAocmVnOkhJIDI0KQogICAgICAgICAoY2x6 OkhJIChyZWc6SEkgMjQpKSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjYpKV0KICAgIiIKKyAgIiMi CisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6SEkgMjQp CisgICAgICAgICAgICAgICAgICAgKGNsejpISSAocmVnOkhJIDI0KSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6UUkgMjYpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipjbHpoaTIubGliZ2NjIgorICBbKHNldCAocmVn OkhJIDI0KQorICAgICAgICAoY2x6OkhJIChyZWc6SEkgMjQpKSkKKyAgIChjbG9iYmVyIChyZWc6 UUkgMjYpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0 ZWQiCiAgICIlfmNhbGwgX19jbHpoaTIiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0g ICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxs IildKQogCi0oZGVmaW5lX2luc24gIipjbHpzaWhpMi5saWJnY2MiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIqY2x6c2loaTIubGliZ2NjX3NwbGl0IgogICBbKHNldCAocmVnOkhJIDI0KQogICAg ICAgICAodHJ1bmNhdGU6SEkgKGNsejpTSSAocmVnOlNJIDIyKSkpKQogICAgKGNsb2JiZXIgKHJl ZzpRSSAyNikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFy YWxsZWwgWyhzZXQgKHJlZzpISSAyNCkKKyAgICAgICAgICAgICAgICAgICAodHJ1bmNhdGU6SEkg KGNsejpTSSAocmVnOlNJIDIyKSkpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOlFJIDI2 KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmlu ZV9pbnNuICIqY2x6c2loaTIubGliZ2NjIgorICBbKHNldCAocmVnOkhJIDI0KQorICAgICAgICAo dHJ1bmNhdGU6SEkgKGNsejpTSSAocmVnOlNJIDIyKSkpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAy NikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIK ICAgIiV+Y2FsbCBfX2NsenNpMiIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChz ZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0p CiAKIDs7IENvdW50IFRyYWlsaW5nIFplcm9zCiAKQEAgLTYyNDksMjQgKzg2MzEsNTAgQEAKICAg ICBvcGVyYW5kc1syXSA9IGdlbl9yZWdfcnR4IChISW1vZGUpOwogICB9KQogCi0oZGVmaW5lX2lu c24gIipjdHpoaTIubGliZ2NjIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmN0emhpMi5saWJn Y2Nfc3BsaXQiCiAgIFsoc2V0IChyZWc6SEkgMjQpCiAgICAgICAgIChjdHo6SEkgKHJlZzpISSAy NCkpKQogICAgKGNsb2JiZXIgKHJlZzpRSSAyNikpXQogICAiIgorICAiIyIKKyAgIiYmIHJlbG9h ZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpISSAyNCkKKyAgICAgICAgICAg ICAgICAgICAoY3R6OkhJIChyZWc6SEkgMjQpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJl ZzpRSSAyNikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKmN0emhpMi5saWJnY2MiCisgIFsoc2V0IChyZWc6SEkgMjQpCisgICAg ICAgIChjdHo6SEkgKHJlZzpISSAyNCkpKQorICAgKGNsb2JiZXIgKHJlZzpRSSAyNikpCisgICAo Y2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2Fs bCBfX2N0emhpMiIKLSAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAi Y2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKV0pCiAKLShkZWZp bmVfaW5zbiAiKmN0enNpaGkyLmxpYmdjYyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipjdHpz aWhpMi5saWJnY2Nfc3BsaXQiCiAgIFsoc2V0IChyZWc6SEkgMjQpCiAgICAgICAgICh0cnVuY2F0 ZTpISSAoY3R6OlNJIChyZWc6U0kgMjIpKSkpCiAgICAoY2xvYmJlciAocmVnOlFJIDIyKSkKICAg IChjbG9iYmVyIChyZWc6UUkgMjYpKV0KICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxl dGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6SEkgMjQpCisgICAgICAgICAgICAgICAgICAg KHRydW5jYXRlOkhJIChjdHo6U0kgKHJlZzpTSSAyMikpKSkKKyAgICAgICAgICAgICAgKGNsb2Ji ZXIgKHJlZzpRSSAyMikpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjYpKQorICAg ICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24g IipjdHpzaWhpMi5saWJnY2MiCisgIFsoc2V0IChyZWc6SEkgMjQpCisgICAgICAgICh0cnVuY2F0 ZTpISSAoY3R6OlNJIChyZWc6U0kgMjIpKSkpCisgICAoY2xvYmJlciAocmVnOlFJIDIyKSkKKyAg IChjbG9iYmVyIChyZWc6UUkgMjYpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAg InJlbG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX19jdHpzaTIiCi0gIFsoc2V0X2F0dHIgInR5 cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0 ciAidHlwZSIgInhjYWxsIildKQogCiA7OyBGaW5kIEZpcnN0IFNldAogCkBAIC02Mjk1LDI0ICs4 NzAzLDUwIEBACiAgICAgb3BlcmFuZHNbMl0gPSBnZW5fcmVnX3J0eCAoSEltb2RlKTsKICAgfSkK IAotKGRlZmluZV9pbnNuICIqZmZzaGkyLmxpYmdjYyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQg IipmZnNoaTIubGliZ2NjX3NwbGl0IgogICBbKHNldCAocmVnOkhJIDI0KQogICAgICAgICAoZmZz OkhJIChyZWc6SEkgMjQpKSkKICAgIChjbG9iYmVyIChyZWc6UUkgMjYpKV0KICAgIiIKKyAgIiMi CisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChyZWc6SEkgMjQp CisgICAgICAgICAgICAgICAgICAgKGZmczpISSAocmVnOkhJIDI0KSkpCisgICAgICAgICAgICAg IChjbG9iYmVyIChyZWc6UUkgMjYpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJF R19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipmZnNoaTIubGliZ2NjIgorICBbKHNldCAocmVn OkhJIDI0KQorICAgICAgICAoZmZzOkhJIChyZWc6SEkgMjQpKSkKKyAgIChjbG9iYmVyIChyZWc6 UUkgMjYpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0 ZWQiCiAgICIlfmNhbGwgX19mZnNoaTIiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0g ICAoc2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxs IildKQogCi0oZGVmaW5lX2luc24gIipmZnNzaWhpMi5saWJnY2MiCisoZGVmaW5lX2luc25fYW5k X3NwbGl0ICIqZmZzc2loaTIubGliZ2NjX3NwbGl0IgogICBbKHNldCAocmVnOkhJIDI0KQogICAg ICAgICAodHJ1bmNhdGU6SEkgKGZmczpTSSAocmVnOlNJIDIyKSkpKQogICAgKGNsb2JiZXIgKHJl ZzpRSSAyMikpCiAgICAoY2xvYmJlciAocmVnOlFJIDI2KSldCiAgICIiCisgICIjIgorICAiJiYg cmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkhJIDI0KQorICAgICAg ICAgICAgICAgICAgICh0cnVuY2F0ZTpISSAoZmZzOlNJIChyZWc6U0kgMjIpKSkpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6UUkgMjIpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVn OlFJIDI2KSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKwor KGRlZmluZV9pbnNuICIqZmZzc2loaTIubGliZ2NjIgorICBbKHNldCAocmVnOkhJIDI0KQorICAg ICAgICAodHJ1bmNhdGU6SEkgKGZmczpTSSAocmVnOlNJIDIyKSkpKQorICAgKGNsb2JiZXIgKHJl ZzpRSSAyMikpCisgICAoY2xvYmJlciAocmVnOlFJIDI2KSkKKyAgIChjbG9iYmVyIChyZWc6Q0Mg UkVHX0NDKSldCisgICJyZWxvYWRfY29tcGxldGVkIgogICAiJX5jYWxsIF9fZmZzc2kyIgotICBb KHNldF9hdHRyICJ0eXBlIiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0p CisgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpXSkKIAogOzsgQ29weXNpZ24KIApAQCAtNjMy Myw4ICs4NzU3LDcgQEAKICAgICAgICAgICAgICAgICAgICBVTlNQRUNfQ09QWVNJR04pKV0KICAg IiIKICAgImJzdCAlRDIsN1w7YmxkICVEMCw3IgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyIikK LSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIyIild KQogCiA7OyBTd2FwIEJ5dGVzIChjaGFuZ2UgYnl0ZS1lbmRpYW5uZXNzKQogCkBAIC02MzM2LDEz ICs4NzY5LDIzIEBACiAgICAoc2V0IChtYXRjaF9vcGVyYW5kOlNJIDAgInJlZ2lzdGVyX29wZXJh bmQiICIiKQogICAgICAgICAocmVnOlNJIDIyKSldKQogCi0oZGVmaW5lX2luc24gIipic3dhcHNp Mi5saWJnY2MiCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICIqYnN3YXBzaTIubGliZ2NjX3NwbGl0 IgogICBbKHNldCAocmVnOlNJIDIyKQogICAgICAgICAoYnN3YXA6U0kgKHJlZzpTSSAyMikpKV0K ICAgIiIKKyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0 IChyZWc6U0kgMjIpCisgICAgICAgICAgICAgICAgICAgKGJzd2FwOlNJIChyZWc6U0kgMjIpKSkK KyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9p bnNuICIqYnN3YXBzaTIubGliZ2NjIgorICBbKHNldCAocmVnOlNJIDIyKQorICAgICAgICAoYnN3 YXA6U0kgKHJlZzpTSSAyMikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCiAgICIlfmNhbGwgX19ic3dhcHNpMiIKLSAgWyhzZXRfYXR0ciAidHlw ZSIgInhjYWxsIikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRy ICJ0eXBlIiAieGNhbGwiKV0pCiAKIAogOzsgQ1BVIGluc3RydWN0aW9ucwpAQCAtNjM2OSw4ICs4 ODEyLDcgQEAKICAgIkAKIAlub3AKIAlyam1wIC4iCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEi KQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjEi KV0pCiAKIDs7IFNMRUVQCiAoZGVmaW5lX2V4cGFuZCAic2xlZXAiCkBAIC02MzkwLDggKzg4MzIs NyBAQAogCSh1bnNwZWNfdm9sYXRpbGU6QkxLIFsobWF0Y2hfZHVwIDApXSBVTlNQRUNWX01FTU9S WV9CQVJSSUVSKSldCiAgICIiCiAgICJzbGVlcCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSIp Ci0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSIp XSkKIAogOzsgV0RSCiAoZGVmaW5lX2V4cGFuZCAid2RyIgpAQCAtNjQxMSw4ICs4ODUyLDcgQEAK IAkodW5zcGVjX3ZvbGF0aWxlOkJMSyBbKG1hdGNoX2R1cCAwKV0gVU5TUEVDVl9NRU1PUllfQkFS UklFUikpXQogICAiIgogICAid2RyIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIxIikKLSAgIChz ZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5ndGgiICIxIildKQogCiA7 OyBGTVVMCiAoZGVmaW5lX2V4cGFuZCAiZm11bCIKQEAgLTY0MzYsMjcgKzg4NzYsNTUgQEAKICAg ICBhdnJfZml4X2lucHV0cyAob3BlcmFuZHMsIDEgPDwgMiwgcmVnbWFzayAoUUltb2RlLCAyNCkp OwogICB9KQogCi0oZGVmaW5lX2luc24gImZtdWxfaW5zbiIKKyhkZWZpbmVfaW5zbl9hbmRfc3Bs aXQgImZtdWxfaW5zbiIKICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgIj1yIikKICAgICAgICAgKHVuc3BlYzpISSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVn aXN0ZXJfb3BlcmFuZCIgImEiKQogICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpR SSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpXQogICAgICAgICAgICAgICAgICAgIFVOU1BFQ19G TVVMKSldCiAgICJBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIK KyAgWyhwYXJhbGxlbCBbKHNldCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHVu c3BlYzpISSBbKG1hdGNoX2R1cCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9kdXAgMildCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVTlNQRUNfRk1VTCkp CisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVf aW5zbiAiKmZtdWxfaW5zbiIKKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJf b3BlcmFuZCIgIj1yIikKKyAgICAgICAgKHVuc3BlYzpISSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAi cmVnaXN0ZXJfb3BlcmFuZCIgImEiKQorICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFu ZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIpXQorICAgICAgICAgICAgICAgICAgIFVOU1BF Q19GTVVMKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJBVlJfSEFWRV9NVUwg JiYgcmVsb2FkX2NvbXBsZXRlZCIKICAgImZtdWwgJTEsJTIKIAltb3Z3ICUwLHIwCiAJY2xyIF9f emVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpCi0gICAoc2V0X2F0dHIgImNj IiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpXSkKIAotKGRlZmluZV9p bnNuICIqZm11bC5jYWxsIgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmZtdWwuY2FsbF9zcGxp dCIKICAgWyhzZXQgKHJlZzpISSAyMikKICAgICAgICAgKHVuc3BlYzpISSBbKHJlZzpRSSAyNCkK ICAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAyNSldIFVOU1BFQ19GTVVMKSkKICAgIChjbG9i YmVyIChyZWc6SEkgMjQpKV0KICAgIiFBVlJfSEFWRV9NVUwiCisgICIjIgorICAiJiYgcmVsb2Fk X2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkhJIDIyKQorICAgICAgICAgICAg ICAgICAgICh1bnNwZWM6SEkgWyhyZWc6UUkgMjQpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKHJlZzpRSSAyNSldIFVOU1BFQ19GTVVMKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIg KHJlZzpISSAyNCkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0p CisKKyhkZWZpbmVfaW5zbiAiKmZtdWwuY2FsbCIKKyAgWyhzZXQgKHJlZzpISSAyMikKKyAgICAg ICAgKHVuc3BlYzpISSBbKHJlZzpRSSAyNCkKKyAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAy NSldIFVOU1BFQ19GTVVMKSkKKyAgIChjbG9iYmVyIChyZWc6SEkgMjQpKQorICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0KKyAgIiFBVlJfSEFWRV9NVUwgJiYgcmVsb2FkX2NvbXBsZXRlZCIK ICAgIiV+Y2FsbCBfX2ZtdWwiCi0gIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0 X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAidHlwZSIgInhjYWxsIildKQog CiA7OyBGTVVMUwogKGRlZmluZV9leHBhbmQgImZtdWxzIgpAQCAtNjQ4MCwyNyArODk0OCw1NSBA QAogICAgIGF2cl9maXhfaW5wdXRzIChvcGVyYW5kcywgMSA8PCAyLCByZWdtYXNrIChRSW1vZGUs IDI0KSk7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiZm11bHNfaW5zbiIKKyhkZWZpbmVfaW5zbl9h bmRfc3BsaXQgImZtdWxzX2luc24iCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lz dGVyX29wZXJhbmQiICI9ciIpCiAgICAgICAgICh1bnNwZWM6SEkgWyhtYXRjaF9vcGVyYW5kOlFJ IDEgInJlZ2lzdGVyX29wZXJhbmQiICJhIikKICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29w ZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKV0KICAgICAgICAgICAgICAgICAgICBV TlNQRUNfRk1VTFMpKV0KICAgIkFWUl9IQVZFX01VTCIKKyAgIiMiCisgICImJiByZWxvYWRfY29t cGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAg ICAgICAodW5zcGVjOkhJIFsobWF0Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX2R1cCAyKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVOU1BF Q19GTVVMUykpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisK KyhkZWZpbmVfaW5zbiAiKmZtdWxzX2luc24iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9ciIpCisgICAgICAgICh1bnNwZWM6SEkgWyhtYXRjaF9vcGVy YW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICJhIikKKyAgICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKV0KKyAgICAgICAgICAgICAg ICAgICBVTlNQRUNfRk1VTFMpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFW Ul9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVkIgogICAiZm11bHMgJTEsJTIKIAltb3Z3ICUw LHIwCiAJY2xyIF9femVyb19yZWdfXyIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpCi0gICAo c2V0X2F0dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMyIpXSkK IAotKGRlZmluZV9pbnNuICIqZm11bHMuY2FsbCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipm bXVscy5jYWxsX3NwbGl0IgogICBbKHNldCAocmVnOkhJIDIyKQogICAgICAgICAodW5zcGVjOkhJ IFsocmVnOlFJIDI0KQogICAgICAgICAgICAgICAgICAgICAocmVnOlFJIDI1KV0gVU5TUEVDX0ZN VUxTKSkKICAgIChjbG9iYmVyIChyZWc6SEkgMjQpKV0KICAgIiFBVlJfSEFWRV9NVUwiCisgICIj IgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAocmVnOkhJIDIy KQorICAgICAgICAgICAgICAgICAgICh1bnNwZWM6SEkgWyhyZWc6UUkgMjQpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHJlZzpRSSAyNSldIFVOU1BFQ19GTVVMUykpCisgICAgICAg ICAgICAgIChjbG9iYmVyIChyZWc6SEkgMjQpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipmbXVscy5jYWxsIgorICBbKHNldCAo cmVnOkhJIDIyKQorICAgICAgICAodW5zcGVjOkhJIFsocmVnOlFJIDI0KQorICAgICAgICAgICAg ICAgICAgICAocmVnOlFJIDI1KV0gVU5TUEVDX0ZNVUxTKSkKKyAgIChjbG9iYmVyIChyZWc6SEkg MjQpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIiFBVlJfSEFWRV9NVUwgJiYg cmVsb2FkX2NvbXBsZXRlZCIKICAgIiV+Y2FsbCBfX2ZtdWxzIgotICBbKHNldF9hdHRyICJ0eXBl IiAieGNhbGwiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIg InR5cGUiICJ4Y2FsbCIpXSkKIAogOzsgRk1VTFNVCiAoZGVmaW5lX2V4cGFuZCAiZm11bHN1IgpA QCAtNjUyNCwyNyArOTAyMCw1NiBAQAogICAgIGF2cl9maXhfaW5wdXRzIChvcGVyYW5kcywgMSA8 PCAyLCByZWdtYXNrIChRSW1vZGUsIDI0KSk7CiAgIH0pCiAKLShkZWZpbmVfaW5zbiAiZm11bHN1 X2luc24iCisoZGVmaW5lX2luc25fYW5kX3NwbGl0ICJmbXVsc3VfaW5zbiIKICAgWyhzZXQgKG1h dGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKICAgICAgICAgKHVuc3Bl YzpISSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImEiKQogICAgICAg ICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiYSIp XQogICAgICAgICAgICAgICAgICAgIFVOU1BFQ19GTVVMU1UpKV0KICAgIkFWUl9IQVZFX01VTCIK KyAgIiMiCisgICImJiByZWxvYWRfY29tcGxldGVkIgorICBbKHBhcmFsbGVsIFsoc2V0IChtYXRj aF9kdXAgMCkKKyAgICAgICAgICAgICAgICAgICAodW5zcGVjOkhJIFsobWF0Y2hfZHVwIDEpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1cCAyKV0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFVOU1BFQ19GTVVMU1UpKQorICAgICAgICAgICAgICAoY2xvYmJl ciAocmVnOkNDIFJFR19DQykpXSldKQorCisoZGVmaW5lX2luc24gIipmbXVsc3VfaW5zbiIKKyAg WyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikKKyAgICAg ICAgKHVuc3BlYzpISSBbKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgImEi KQorICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJyZWdpc3Rlcl9vcGVy YW5kIiAiYSIpXQorICAgICAgICAgICAgICAgICAgIFVOU1BFQ19GTVVMU1UpKQorICAgKGNsb2Ji ZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgIkFWUl9IQVZFX01VTCAmJiByZWxvYWRfY29tcGxldGVk IgogICAiZm11bHN1ICUxLCUyCiAJbW92dyAlMCxyMAogCWNsciBfX3plcm9fcmVnX18iCi0gIFso c2V0X2F0dHIgImxlbmd0aCIgIjMiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisg IFsoc2V0X2F0dHIgImxlbmd0aCIgIjMiKV0pCiAKLShkZWZpbmVfaW5zbiAiKmZtdWxzdS5jYWxs IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmZtdWxzdS5jYWxsX3NwbGl0IgogICBbKHNldCAo cmVnOkhJIDIyKQogICAgICAgICAodW5zcGVjOkhJIFsocmVnOlFJIDI0KQogICAgICAgICAgICAg ICAgICAgICAocmVnOlFJIDI1KV0gVU5TUEVDX0ZNVUxTVSkpCiAgICAoY2xvYmJlciAocmVnOkhJ IDI0KSldCiAgICIhQVZSX0hBVkVfTVVMIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQi CisgIFsocGFyYWxsZWwgWyhzZXQgKHJlZzpISSAyMikKKyAgICAgICAgICAgICAgICAgICAodW5z cGVjOkhJIFsocmVnOlFJIDI0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWc6 UUkgMjUpXSBVTlNQRUNfRk1VTFNVKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpISSAy NCkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZp bmVfaW5zbiAiKmZtdWxzdS5jYWxsIgorICBbKHNldCAocmVnOkhJIDIyKQorICAgICAgICAodW5z cGVjOkhJIFsocmVnOlFJIDI0KQorICAgICAgICAgICAgICAgICAgICAocmVnOlFJIDI1KV0gVU5T UEVDX0ZNVUxTVSkpCisgICAoY2xvYmJlciAocmVnOkhJIDI0KSkKKyAgIChjbG9iYmVyIChyZWc6 Q0MgUkVHX0NDKSldCisgICIhQVZSX0hBVkVfTVVMICYmIHJlbG9hZF9jb21wbGV0ZWQiCiAgICIl fmNhbGwgX19mbXVsc3UiCiAgIFsoc2V0X2F0dHIgInR5cGUiICJ4Y2FsbCIpCi0gICAoc2V0X2F0 dHIgImNjIiAiY2xvYmJlciIpXSkKKyAgIF0pCiAKIAwKIDs7IFNvbWUgY29tYmluZXIgcGF0dGVy bnMgZGVhbGluZyB3aXRoIGJpdHMuCkBAIC02NTYxLDggKzkwODYsNyBAQAogICAiSU5UVkFMKG9w ZXJhbmRzWzRdKSA9PSBleGFjdF9sb2cyICh+SU5UVkFMKG9wZXJhbmRzWzJdKSAmIEdFVF9NT0RF X01BU0sgKFFJbW9kZSkpCiAgICAmJiBJTlRWQUwob3BlcmFuZHNbNF0pID09IGV4YWN0X2xvZzIg KElOVFZBTChvcGVyYW5kc1s1XSkgJiBHRVRfTU9ERV9NQVNLIChRSW1vZGUpKSIKICAgImJzdCAl MywwXDtibGQgJTAsJTQiCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKQotICAgKHNldF9hdHRy ICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIgIjIiKV0pCiAKIDs7IE1vdmUg Yml0ICQzLjAgaW50byBiaXQgJDAuJDQKIDs7IFZhcmlhdGlvbiBvZiBhYm92ZS4gVW5mb3J0dW5h dGVseSwgdGhlcmUgaXMgbm8gY2Fub25pY2FsaXplZCByZXByZXNlbnRhdGlvbgpAQCAtNjU3Nyw4 ICs5MTAxLDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJ IDQgImNvbnN0XzBfdG9fN19vcGVyYW5kIiAgICAgICJuIikpKSldCiAgICJJTlRWQUwob3BlcmFu ZHNbNF0pID09IGV4YWN0X2xvZzIgKH5JTlRWQUwob3BlcmFuZHNbMl0pICYgR0VUX01PREVfTUFT SyAoUUltb2RlKSkiCiAgICJic3QgJTMsMFw7YmxkICUwLCU0IgotICBbKHNldF9hdHRyICJsZW5n dGgiICIyIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5n dGgiICIyIildKQogCiA7OyBNb3ZlIGJpdCAkMy4wIGludG8gYml0ICQwLjAuCiA7OyBGb3IgYml0 IDAsIGNvbWJpbmVyIGdlbmVyYXRlcyBzbGlnaHRseSBkaWZmZXJlbnQgcGF0dGVybi4KQEAgLTY1 OTAsOCArOTExMyw3IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpKSkp XQogICAiMCA9PSBleGFjdF9sb2cyICh+SU5UVkFMKG9wZXJhbmRzWzJdKSAmIEdFVF9NT0RFX01B U0sgKFFJbW9kZSkpIgogICAiYnN0ICUzLDBcO2JsZCAlMCwwIgotICBbKHNldF9hdHRyICJsZW5n dGgiICIyIikKLSAgIChzZXRfYXR0ciAiY2MiICJub25lIildKQorICBbKHNldF9hdHRyICJsZW5n dGgiICIyIildKQogCiA7OyBNb3ZlIGJpdCAkMi4wIGludG8gYml0ICQwLjcuCiA7OyBGb3IgYml0 IDcsIGNvbWJpbmVyIGdlbmVyYXRlcyBzbGlnaHRseSBkaWZmZXJlbnQgcGF0dGVybgpAQCAtNjYw Myw4ICs5MTI1LDcgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgNykp KSldCiAgICIiCiAgICJic3QgJTIsMFw7YmxkICUwLDciCi0gIFsoc2V0X2F0dHIgImxlbmd0aCIg IjIiKQotICAgKHNldF9hdHRyICJjYyIgIm5vbmUiKV0pCisgIFsoc2V0X2F0dHIgImxlbmd0aCIg IjIiKV0pCiAKIDs7IENvbWJpbmVyIHRyYW5zZm9ybXMgYWJvdmUgZm91ciBwYXR0ZXJuIGludG8g WkVST19FWFRSQUNUIGlmIGl0IHNlZXMgTUVNCiA7OyBhbmQgaW5wdXQvb3V0cHV0IG1hdGNoLiAg V2UgcHJvdmlkZSBhIHNwZWNpYWwgcGF0dGVybiBmb3IgdGhpcywgYmVjYXVzZQpAQCAtNjYyMCw4 ICs5MTQxLDcgQEAKIAljYmkgJWkwLCUxCiAJc2JpICVpMCwlMQogCXNicmMgJTIsMFw7c2JpICVp MCwlMVw7c2JycyAlMiwwXDtjYmkgJWkwLCUxIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIxLDEs NCIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAi MSwxLDQiKV0pCiAKIChkZWZpbmVfaW5zbiAiKmluc3Yubm90LmlvIgogICBbKHNldCAoemVyb19l eHRyYWN0OlFJIChtZW06UUkgKG1hdGNoX29wZXJhbmQgMCAibG93X2lvX2FkZHJlc3Nfb3BlcmFu ZCIgImkiKSkKQEAgLTY2MzAsOCArOTE1MCw3IEBACiAgICAgICAgIChub3Q6UUkgKG1hdGNoX29w ZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAgICAgICAiciIpKSld CiAgICIiCiAgICJzYnJzICUyLDBcO3NiaSAlaTAsJTFcO3NicmMgJTIsMFw7Y2JpICVpMCwlMSIK LSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkK KyAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiNCIpXSkKIAogOzsgVGhlIGluc3YgZXhwYW5kZXIuCiA7 OyBXZSBvbmx5IHN1cHBvcnQgMS1iaXQgaW5zZXJ0cwpAQCAtNjY0OCwyMCArOTE2NywzNCBAQAog OzsgY29tcGxpY2F0ZWQuCiAKIDs7IEluc2VydCBiaXQgJDIuMCBpbnRvICQwLiQxCi0oZGVmaW5l X2luc24gIippbnN2LnJlZyIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIippbnN2LnJlZ19zcGxp dCIKICAgWyhzZXQgKHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rl cl9vcGVyYW5kIiAgICAiK3IsZCxkLGwsbCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNv bnN0X2ludCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDEg ImNvbnN0XzBfdG9fN19vcGVyYW5kIiAibixuLG4sbixuIikpCiAgICAgICAgIChtYXRjaF9vcGVy YW5kOlFJIDIgIm5vbm1lbW9yeV9vcGVyYW5kIiAgICAgICAgICAgICAgICAgICAgICJyLEwsUCxM LFAiKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxl bCBbKHNldCAoemVyb19leHRyYWN0OlFJIChtYXRjaF9kdXAgMCkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAgICAgICAgKG1hdGNoX2R1 cCAyKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRl ZmluZV9pbnNuICIqaW5zdi5yZWciCisgIFsoc2V0ICh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX29w ZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgIityLGQsZCxsLGwiKQorICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpRSSAxICJjb25zdF8wX3RvXzdfb3BlcmFuZCIgIm4sbixuLG4sbiIpKQor ICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJub25tZW1vcnlfb3BlcmFuZCIgICAgICAgICAg ICAgICAgICAgICAicixMLFAsTCxQIikpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQor ICAicmVsb2FkX2NvbXBsZXRlZCIKICAgIkAKIAlic3QgJTIsMFw7YmxkICUwLCUxCiAJYW5kaSAl MCxsbzgofigxPDwlMSkpCiAJb3JpICUwLGxvOCgxPDwlMSkKIAljbHRcO2JsZCAlMCwlMQogCXNl dFw7YmxkICUwLCUxIgotICBbKHNldF9hdHRyICJsZW5ndGgiICIyLDEsMSwyLDIiKQotICAgKHNl dF9hdHRyICJjYyIgIm5vbmUsc2V0X3puLHNldF96bixub25lLG5vbmUiKV0pCisgIFsoc2V0X2F0 dHIgImxlbmd0aCIgIjIsMSwxLDIsMiIpXSkKIAogOzsgSW5zZXJ0IGJpdCAkMi4kMyBpbnRvICQw LiQxCiAoZGVmaW5lX2luc24gIippbnN2LmV4dHJhY3QiCkBAIC02NjczLDggKzkyMDYsNyBAQAog ICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAiY29uc3RfMF90b183 X29wZXJhbmQiICAibiIpKSldCiAgICIiCiAgICJic3QgJTIsJTNcO2JsZCAlMCwlMSIKLSAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMiIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIAogOzsgSW5zZXJ0IGJpdCAkMi4kMyBpbnRvICQwLiQx CiAoZGVmaW5lX2luc24gIippbnN2LnNoaWZ0cnQiCkBAIC02Njg1LDY3ICs5MjE3LDEyOCBAQAog ICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAiY29uc3RfMF90b183 X29wZXJhbmQiICAibiIpKSldCiAgICIiCiAgICJic3QgJTIsJTNcO2JsZCAlMCwlMSIKLSAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMiIpCi0gICAoc2V0X2F0dHIgImNjIiAibm9uZSIpXSkKKyAgWyhz ZXRfYXR0ciAibGVuZ3RoIiAiMiIpXSkKIAogOzsgU2FtZSwgYnV0IHdpdGggYSBOT1QgaW52ZXJ0 aW5nIHRoZSBzb3VyY2UgYml0LgogOzsgSW5zZXJ0IGJpdCB+JDIuJDMgaW50byAkMC4kMQotKGRl ZmluZV9pbnNuICIqaW5zdi5ub3Qtc2hpZnRydCIKKyhkZWZpbmVfaW5zbl9hbmRfc3BsaXQgIipp bnN2Lm5vdC1zaGlmdHJ0X3NwbGl0IgogICBbKHNldCAoemVyb19leHRyYWN0OlFJIChtYXRjaF9v cGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAiK3IiKQogICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKICAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpRSSAxICJjb25zdF8wX3RvXzdfb3BlcmFuZCIgICAgICAgICJuIikpCiAg ICAgICAgIChub3Q6UUkgKGFueV9zaGlmdHJ0OlFJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lz dGVyX29wZXJhbmQiICAgICAiciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICht YXRjaF9vcGVyYW5kOlFJIDMgImNvbnN0XzBfdG9fN19vcGVyYW5kIiAibiIpKSkpXQogICAiIgor ICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHplcm9f ZXh0cmFjdDpRSSAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoY29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgIChub3Q6UUkgKGFueV9zaGlmdHJ0OlFJ IChtYXRjaF9kdXAgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAobWF0Y2hfZHVwIDMpKSkpCisgICAgICAgICAgICAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0ND KSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmluc3Yubm90LXNoaWZ0cnQiCisgIFsoc2V0ICh6ZXJv X2V4dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAg ICAgICIrciIpCisgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKQorICAgICAg ICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDEgImNvbnN0XzBfdG9fN19vcGVy YW5kIiAgICAgICAgIm4iKSkKKyAgICAgICAgKG5vdDpRSSAoYW55X3NoaWZ0cnQ6UUkgKG1hdGNo X29wZXJhbmQ6UUkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICJyIikKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAiY29uc3RfMF90b183X29wZXJh bmQiICJuIikpKSkKKyAgIChjbG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldCisgICJyZWxvYWRfY29t cGxldGVkIgogICB7CiAgICAgcmV0dXJuIGF2cl9vdXRfaW5zZXJ0X25vdGJpdCAoaW5zbiwgb3Bl cmFuZHMsIE5VTExfUlRYLCBOVUxMKTsKICAgfQotICBbKHNldF9hdHRyICJhZGp1c3RfbGVuIiAi aW5zdl9ub3RiaXQiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0 dHIgImFkanVzdF9sZW4iICJpbnN2X25vdGJpdCIpXSkKIAogOzsgSW5zZXJ0IGJpdCB+JDIuMCBp bnRvICQwLiQxCi0oZGVmaW5lX2luc24gIippbnN2LnhvcjEtYml0LjAiCisoZGVmaW5lX2luc25f YW5kX3NwbGl0ICIqaW5zdi54b3IxLWJpdC4wX3NwbGl0IgogICBbKHNldCAoemVyb19leHRyYWN0 OlFJIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICIrciIpCiAgICAg ICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKQogICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9vcGVyYW5kOlFJIDEgImNvbnN0XzBfdG9fN19vcGVyYW5kIiAibiIpKQogICAg ICAgICAoeG9yOlFJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAgICAgICAiciIpCiAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKSkpXQogICAiIgorICAi IyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxsZWwgWyhzZXQgKHplcm9fZXh0 cmFjdDpRSSAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoY29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0 Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgICh4b3I6UUkgKG1hdGNoX2R1cCAyKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKSkpCisgICAgICAgICAgICAgIChj bG9iYmVyIChyZWc6Q0MgUkVHX0NDKSldKV0pCisKKyhkZWZpbmVfaW5zbiAiKmluc3YueG9yMS1i aXQuMCIKKyAgWyhzZXQgKHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAgICAiK3IiKQorICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9p bnQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJjb25z dF8wX3RvXzdfb3BlcmFuZCIgIm4iKSkKKyAgICAgICAgKHhvcjpRSSAobWF0Y2hfb3BlcmFuZDpR SSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgInIiKQorICAgICAgICAgICAgICAg IChjb25zdF9pbnQgMSkpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJlbG9h ZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9pbnNlcnRfbm90Yml0IChpbnNu LCBvcGVyYW5kcywgY29uc3QwX3J0eCwgTlVMTCk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiYWRqdXN0 X2xlbiIgImluc3Zfbm90Yml0XzAiKQotICAgKHNldF9hdHRyICJjYyIgImNsb2JiZXIiKV0pCisg IFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJpbnN2X25vdGJpdF8wIildKQogCiA7OyBJbnNlcnQg Yml0IH4kMi4wIGludG8gJDAuJDEKLShkZWZpbmVfaW5zbiAiKmluc3Yubm90LWJpdC4wIgorKGRl ZmluZV9pbnNuX2FuZF9zcGxpdCAiKmluc3Yubm90LWJpdC4wX3NwbGl0IgogICBbKHNldCAoemVy b19leHRyYWN0OlFJIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICIr ciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKQogICAgICAgICAgICAg ICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDEgImNvbnN0XzBfdG9fN19vcGVyYW5kIiAi biIpKQogICAgICAgICAobm90OlFJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJh bmQiICAgICAgICAgICAgICAiciIpKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBs ZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNldCAoemVyb19leHRyYWN0OlFJIChtYXRjaF9kdXAgMCkK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAg ICAgICAgICAgKG5vdDpRSSAobWF0Y2hfZHVwIDIpKSkKKyAgICAgICAgICAgICAgKGNsb2JiZXIg KHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9pbnNuICIqaW5zdi5ub3QtYml0LjAiCisg IFsoc2V0ICh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMCAicmVnaXN0ZXJfb3Bl cmFuZCIgICAgIityIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCisg ICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMSAiY29uc3RfMF90b183 X29wZXJhbmQiICJuIikpCisgICAgICAgIChub3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMiAicmVn aXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICJyIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBS RUdfQ0MpKV0KKyAgInJlbG9hZF9jb21wbGV0ZWQiCiAgIHsKICAgICByZXR1cm4gYXZyX291dF9p bnNlcnRfbm90Yml0IChpbnNuLCBvcGVyYW5kcywgY29uc3QwX3J0eCwgTlVMTCk7CiAgIH0KLSAg WyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImluc3Zfbm90Yml0XzAiKQotICAgKHNldF9hdHRyICJj YyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJpbnN2X25vdGJpdF8w IildKQogCiA7OyBJbnNlcnQgYml0IH4kMi43IGludG8gJDAuJDEKLShkZWZpbmVfaW5zbiAiKmlu c3Yubm90LWJpdC43IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmluc3Yubm90LWJpdC43X3Nw bGl0IgogICBbKHNldCAoemVyb19leHRyYWN0OlFJIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lz dGVyX29wZXJhbmQiICAgICIrciIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDEgImNvbnN0 XzBfdG9fN19vcGVyYW5kIiAibiIpKQogICAgICAgICAoZ2U6UUkgKG1hdGNoX29wZXJhbmQ6UUkg MiAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICAgICAgICAiciIpCiAgICAgICAgICAgICAgICAo Y29uc3RfaW50IDApKSldCiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAg WyhwYXJhbGxlbCBbKHNldCAoemVyb19leHRyYWN0OlFJIChtYXRjaF9kdXAgMCkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9kdXAgMSkpCisgICAgICAgICAgICAgICAgICAg KGdlOlFJIChtYXRjaF9kdXAgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2lu dCAwKSkpCisgICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXSldKQorCiso ZGVmaW5lX2luc24gIippbnN2Lm5vdC1iaXQuNyIKKyAgWyhzZXQgKHplcm9fZXh0cmFjdDpRSSAo bWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAiK3IiKQorICAgICAgICAg ICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAo bWF0Y2hfb3BlcmFuZDpRSSAxICJjb25zdF8wX3RvXzdfb3BlcmFuZCIgIm4iKSkKKyAgICAgICAg KGdlOlFJIChtYXRjaF9vcGVyYW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAgICAgICAgICAg ICAgInIiKQorICAgICAgICAgICAgICAgKGNvbnN0X2ludCAwKSkpCisgICAoY2xvYmJlciAocmVn OkNDIFJFR19DQykpXQorICAicmVsb2FkX2NvbXBsZXRlZCIKICAgewogICAgIHJldHVybiBhdnJf b3V0X2luc2VydF9ub3RiaXQgKGluc24sIG9wZXJhbmRzLCBHRU5fSU5UICg3KSwgTlVMTCk7CiAg IH0KLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImluc3Zfbm90Yml0XzciKQotICAgKHNldF9h dHRyICJjYyIgImNsb2JiZXIiKV0pCisgIFsoc2V0X2F0dHIgImFkanVzdF9sZW4iICJpbnN2X25v dGJpdF83IildKQogCiA7OyBJbnNlcnQgYml0IH4kMi4kMyBpbnRvICQwLiQxCi0oZGVmaW5lX2lu c24gIippbnN2Lnhvci1leHRyYWN0IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmluc3YueG9y LWV4dHJhY3Rfc3BsaXQiCiAgIFsoc2V0ICh6ZXJvX2V4dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6 UUkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICAgICIrciIpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgKGNvbnN0X2ludCAxKQogICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9vcGVy YW5kOlFJIDEgImNvbnN0XzBfdG9fN19vcGVyYW5kIiAgICAgIm4iKSkKQEAgLTY3NTQsMTEgKzkz NDcsMzEgQEAKICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKICAgICAgICAg ICAgICAgICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDMgImNvbnN0XzBfdG9fN19vcGVyYW5k IiAgICAgICJuIikpKV0KICAgIklOVFZBTCAob3BlcmFuZHNbNF0pICYgKDEgPDwgSU5UVkFMIChv cGVyYW5kc1szXSkpIgorICAiIyIKKyAgIiYmIHJlbG9hZF9jb21wbGV0ZWQiCisgIFsocGFyYWxs ZWwgWyhzZXQgKHplcm9fZXh0cmFjdDpRSSAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAobWF0Y2hfZHVwIDEpKQorICAgICAgICAgICAgICAgICAgIChhbnlfZXh0 cmFjdDpRSSAoeG9yOlFJIChtYXRjaF9kdXAgMikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDQpKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoY29uc3RfaW50IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChtYXRjaF9kdXAgMykpKQorICAgICAgICAgICAgICAoY2xvYmJlciAocmVnOkNDIFJFR19D QykpXSldKQorCisoZGVmaW5lX2luc24gIippbnN2Lnhvci1leHRyYWN0IgorICBbKHNldCAoemVy b19leHRyYWN0OlFJIChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJhbmQiICAgICAg ICAiK3IiKQorICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAxICJjb25zdF8wX3RvXzdfb3BlcmFu ZCIgICAgICJuIikpCisgICAgICAgIChhbnlfZXh0cmFjdDpRSSAoeG9yOlFJIChtYXRjaF9vcGVy YW5kOlFJIDIgInJlZ2lzdGVyX29wZXJhbmQiICAiciIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIChtYXRjaF9vcGVyYW5kOlFJIDQgImNvbnN0X2ludF9vcGVyYW5kIiAibiIpKQor ICAgICAgICAgICAgICAgICAgICAgICAgKGNvbnN0X2ludCAxKQorICAgICAgICAgICAgICAgICAg ICAgICAgKG1hdGNoX29wZXJhbmQ6UUkgMyAiY29uc3RfMF90b183X29wZXJhbmQiICAgICAgIm4i KSkpCisgICAoY2xvYmJlciAocmVnOkNDIFJFR19DQykpXQorICAiSU5UVkFMIChvcGVyYW5kc1s0 XSkgJiAoMSA8PCBJTlRWQUwgKG9wZXJhbmRzWzNdKSkgJiYgcmVsb2FkX2NvbXBsZXRlZCIKICAg ewogICAgIHJldHVybiBhdnJfb3V0X2luc2VydF9ub3RiaXQgKGluc24sIG9wZXJhbmRzLCBOVUxM X1JUWCwgTlVMTCk7CiAgIH0KLSAgWyhzZXRfYXR0ciAiYWRqdXN0X2xlbiIgImluc3Zfbm90Yml0 IikKLSAgIChzZXRfYXR0ciAiY2MiICJjbG9iYmVyIildKQorICBbKHNldF9hdHRyICJhZGp1c3Rf bGVuIiAiaW5zdl9ub3RiaXQiKV0pCiAKIAwKIDs7IFNvbWUgY29tYmluZSBwYXR0ZXJucyB0aGF0 IHRyeSB0byBmaXggYmFkIGNvZGUgd2hlbiBhIHZhbHVlIGlzIGNvbXBvc2VkCkBAIC02ODg3LDIw ICs5NTAwLDM0IEBACiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1hdGNoX29wZXJhbmQ6UUkg MiAiY29uc3QxX29wZXJhbmQiICIiKQogICAgICAgICAgICAgICAgICAgICAgICAgIChtYXRjaF9v cGVyYW5kOlFJIDMgImNvbnN0XzBfdG9fN19vcGVyYW5kIiAiIikpKV0pCiAKLShkZWZpbmVfaW5z biAiKmV4dHp2IgorKGRlZmluZV9pbnNuX2FuZF9zcGxpdCAiKmV4dHp2X3NwbGl0IgogICBbKHNl dCAobWF0Y2hfb3BlcmFuZDpRSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAgICAgICAgICAgICAgICAg ICAiPSpkLCpkLCpkLCpkLHIiKQogICAgICAgICAoemVyb19leHRyYWN0OlFJIChtYXRjaF9vcGVy YW5kOlFJIDEgInJlZ2lzdGVyX29wZXJhbmQiICAgICAiMCxyLDAsMCxyIikKICAgICAgICAgICAg ICAgICAgICAgICAgICAoY29uc3RfaW50IDEpCiAgICAgICAgICAgICAgICAgICAgICAgICAgKG1h dGNoX29wZXJhbmQ6UUkgMiAiY29uc3RfMF90b183X29wZXJhbmQiICJMLEwsUCxDMDQsbiIpKSld CiAgICIiCisgICIjIgorICAiJiYgcmVsb2FkX2NvbXBsZXRlZCIKKyAgWyhwYXJhbGxlbCBbKHNl dCAobWF0Y2hfZHVwIDApCisgICAgICAgICAgICAgICAgICAgKHplcm9fZXh0cmFjdDpRSSAobWF0 Y2hfZHVwIDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29uc3RfaW50 IDEpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWF0Y2hfZHVwIDIpKSkK KyAgICAgICAgICAgICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0pXSkKKworKGRlZmluZV9p bnNuICIqZXh0enYiCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlFJIDAgInJlZ2lzdGVyX29wZXJh bmQiICAgICAgICAgICAgICAgICAgICI9KmQsKmQsKmQsKmQsciIpCisgICAgICAgICh6ZXJvX2V4 dHJhY3Q6UUkgKG1hdGNoX29wZXJhbmQ6UUkgMSAicmVnaXN0ZXJfb3BlcmFuZCIgICAgICIwLHIs MCwwLHIiKQorICAgICAgICAgICAgICAgICAgICAgICAgIChjb25zdF9pbnQgMSkKKyAgICAgICAg ICAgICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpRSSAyICJjb25zdF8wX3RvXzdfb3BlcmFu ZCIgIkwsTCxQLEMwNCxuIikpKQorICAgKGNsb2JiZXIgKHJlZzpDQyBSRUdfQ0MpKV0KKyAgInJl bG9hZF9jb21wbGV0ZWQiCiAgICJACiAJYW5kaSAlMCwxCiAJbW92ICUwLCUxXDthbmRpICUwLDEK IAlsc3IgJTBcO2FuZGkgJTAsMQogCXN3YXAgJTBcO2FuZGkgJTAsMQogCWJzdCAlMSwlMlw7Y2xy ICUwXDtibGQgJTAsMCIKLSAgWyhzZXRfYXR0ciAibGVuZ3RoIiAiMSwyLDIsMiwzIikKLSAgIChz ZXRfYXR0ciAiY2MiICJzZXRfem4sc2V0X3puLHNldF96bixzZXRfem4sY2xvYmJlciIpXSkKKyAg WyhzZXRfYXR0ciAibGVuZ3RoIiAiMSwyLDIsMiwzIildKQogCiAoZGVmaW5lX2luc25fYW5kX3Nw bGl0ICIqZXh0enYucWloaTEiCiAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVy X29wZXJhbmQiICAgICAgICAgICAgICAgICAgICAgIj1yIikK --000000000000217c5e05b63d2471--