[plasma/print-manager] /: kded: Notify when a print job is sent to a printer that is offline
Mike Noe <[email protected]> Tue, 4 Aug 2026 18:21:07 +0000 (UTC)
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
R2l0IGNvbW1pdCA4Y2Y5NmQzNzlhN2IyMTg3ZDc1YTNmZjE2NzdlMTIzODFhY2Y0M2Q2IGJ5IE1p a2UgTm9lLgpDb21taXR0ZWQgb24gMDQvMDgvMjAyNiBhdCAxNzo0NS4KUHVzaGVkIGJ5IG5vZWUg aW50byBicmFuY2ggJ21hc3RlcicuCgprZGVkOiBOb3RpZnkgd2hlbiBhIHByaW50IGpvYiBpcyBz ZW50IHRvIGEgcHJpbnRlciB0aGF0IGlzIG9mZmxpbmUKCkJVRzogMzYyMTQzCkZJWEVELUlOOiA2 LjguMAoKTSAgKzEwNCAgLTE4ICAgc3JjL2tkZWQvQ3Vwc1dhdGNoZXIuY3BwCk0gICsyNCAgIC0z ICAgIHNyYy9rZGVkL0N1cHNXYXRjaGVyLmgKTSAgKzUgICAgLTAgICAgc3JjL2tkZWQvcHJpbnRt YW5hZ2VyLm5vdGlmeXJjCk0gICsyMSAgIC0wICAgIHNyYy9saWJrY3Vwcy9LQ3Vwc1ByaW50ZXIu Y3BwCk0gICsxNCAgIC0wICAgIHNyYy9saWJrY3Vwcy9LQ3Vwc1ByaW50ZXIuaApNICArNyAgICAt MCAgICB0ZXN0cy9DTWFrZUxpc3RzLnR4dApBICArNjEgICAtMCAgICB0ZXN0cy9ub3RpZnlzdGF0 dXN0ZXN0LmNwcCAgICAgW0xpY2Vuc2U6IEdQTCh2Mi4wKyldCgpodHRwczovL2ludmVudC5rZGUu b3JnL3BsYXNtYS9wcmludC1tYW5hZ2VyLy0vY29tbWl0LzhjZjk2ZDM3OWE3YjIxODdkNzVhM2Zm MTY3N2UxMjM4MWFjZjQzZDYKCmRpZmYgLS1naXQgYS9zcmMva2RlZC9DdXBzV2F0Y2hlci5jcHAg Yi9zcmMva2RlZC9DdXBzV2F0Y2hlci5jcHAKaW5kZXggNzYxM2Q2MGUuLjUxYmVjZWQwIDEwMDY0 NAotLS0gYS9zcmMva2RlZC9DdXBzV2F0Y2hlci5jcHAKKysrIGIvc3JjL2tkZWQvQ3Vwc1dhdGNo ZXIuY3BwCkBAIC0xMCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8S0xvY2FsaXplZFN0cmluZz4KICNp bmNsdWRlIDxLTm90aWZpY2F0aW9uPgogCisjaW5jbHVkZSA8Q29tbWFuZEhlbHBlcnMuaD4KICNp bmNsdWRlIDxLQ3Vwc1JlcXVlc3QuaD4KICNpbmNsdWRlIDxQcm9jZXNzUnVubmVyLmg+CiAKQEAg LTE4LDE5ICsxOSw1MSBAQCB1c2luZyBuYW1lc3BhY2UgUXQ6OlN0cmluZ0xpdGVyYWxzOwogQ3Vw c1dhdGNoZXI6OkN1cHNXYXRjaGVyKFFPYmplY3QgKnBhcmVudCkKICAgICA6IFFPYmplY3QocGFy ZW50KQogewotICAgIGNvbm5lY3QoS0N1cHNDb25uZWN0aW9uOjpnbG9iYWwoKSwgJktDdXBzQ29u bmVjdGlvbjo6c2VydmVyU3RhcnRlZCwgdGhpcywgW10oY29uc3QgUVN0cmluZyAmbXNnKSB7Ci0g ICAgICAgIHFDRGVidWcoUE1LREVEKSA8PCAiQ1VQUyBTdGFydGVkOiIgPDwgbXNnOwotICAgIH0p OwotCi0gICAgY29ubmVjdChLQ3Vwc0Nvbm5lY3Rpb246Omdsb2JhbCgpLCAmS0N1cHNDb25uZWN0 aW9uOjpzZXJ2ZXJTdG9wcGVkLCB0aGlzLCBbXShjb25zdCBRU3RyaW5nICZtc2cpIHsKLSAgICAg ICAgcUNEZWJ1ZyhQTUtERUQpIDw8ICJDVVBTIFN0b3BwZWQ6IiA8PCBtc2c7Ci0gICAgfSk7Ci0K LSAgICBjb25uZWN0KEtDdXBzQ29ubmVjdGlvbjo6Z2xvYmFsKCksICZLQ3Vwc0Nvbm5lY3Rpb246 OnNlcnZlclJlc3RhcnRlZCwgdGhpcywgW10oY29uc3QgUVN0cmluZyAmbXNnKSB7Ci0gICAgICAg IHFDRGVidWcoUE1LREVEKSA8PCAiQ1VQUyBSZXN0YXJ0ZWQ6IiA8PCBtc2c7Ci0gICAgfSk7Cisg ICAgY29ubmVjdChLQ3Vwc0Nvbm5lY3Rpb246Omdsb2JhbCgpLCAmS0N1cHNDb25uZWN0aW9uOjpq b2JDcmVhdGVkLCB0aGlzLCAmQ3Vwc1dhdGNoZXI6OmpvYkNyZWF0ZWQpOworICAgIGNvbm5lY3Qo S0N1cHNDb25uZWN0aW9uOjpnbG9iYWwoKSwgJktDdXBzQ29ubmVjdGlvbjo6am9iUHJvZ3Jlc3Ms IHRoaXMsICZDdXBzV2F0Y2hlcjo6am9iUHJvZ3Jlc3MpOworCisgICAgLyoqCisgICAgICogSGFu ZGxlciBmb3Igd2hlbiBhIGpvYiBjb21wbGV0ZXMgc3VjY2Vzc2Z1bGx5LiAgRXZlbiBpZiB0aGUg am9iIGlzIGNhbmNlbGxlZAorICAgICAqIHdlJ2xsIHJlY2VpdmUgdGhpcyBzaWduYWwuICBFaXRo ZXIgd2F5LCByZW1vdmUgdGhlIGpvYiBmcm9tIHRoZSBub3RpZmllZCBsaXN0CisgICAgICogaWYg aXQgd2FzIG5vdGlmaWVkIHByZXZpb3VzbHkuCisgICAgICovCisgICAgY29ubmVjdChLQ3Vwc0Nv bm5lY3Rpb246Omdsb2JhbCgpLAorICAgICAgICAgICAgJktDdXBzQ29ubmVjdGlvbjo6am9iQ29t cGxldGVkLAorICAgICAgICAgICAgdGhpcywKKyAgICAgICAgICAgIFt0aGlzXShbW21heWJlX3Vu dXNlZF1dIGNvbnN0IFFTdHJpbmcgJnRleHQsCisgICAgICAgICAgICAgICAgICAgW1ttYXliZV91 bnVzZWRdXSBjb25zdCBRU3RyaW5nICZwcmludGVyVXJpLAorICAgICAgICAgICAgICAgICAgIFtb bWF5YmVfdW51c2VkXV0gY29uc3QgUVN0cmluZyAmcHJpbnRlck5hbWUsCisgICAgICAgICAgICAg ICAgICAgW1ttYXliZV91bnVzZWRdXSB1aW50IHByaW50ZXJTdGF0ZSwKKyAgICAgICAgICAgICAg ICAgICBbW21heWJlX3VudXNlZF1dIGNvbnN0IFFTdHJpbmcgJnByaW50ZXJTdGF0ZVJlYXNvbnMs CisgICAgICAgICAgICAgICAgICAgW1ttYXliZV91bnVzZWRdXSBib29sIHByaW50ZXJJc0FjY2Vw dGluZ0pvYnMsCisgICAgICAgICAgICAgICAgICAgW1ttYXliZV91bnVzZWRdXSB1aW50IGpvYklk LAorICAgICAgICAgICAgICAgICAgIFtbbWF5YmVfdW51c2VkXV0gdWludCBqb2JTdGF0ZSwKKyAg ICAgICAgICAgICAgICAgICBbW21heWJlX3VudXNlZF1dIGNvbnN0IFFTdHJpbmcgJmpvYlN0YXRl UmVhc29ucywKKyAgICAgICAgICAgICAgICAgICBbW21heWJlX3VudXNlZF1dIGNvbnN0IFFTdHJp bmcgJmpvYk5hbWUsCisgICAgICAgICAgICAgICAgICAgW1ttYXliZV91bnVzZWRdXSB1aW50IGpv YkltcHJlc3Npb25zQ29tcGxldGVkKSB7CisgICAgICAgICAgICAgICAgY29uc3QgYXV0byBjbnQg PSBtX25vdGlmaWVkSm9iSWRzLnJlbW92ZUFsbChqb2JJZCk7CisgICAgICAgICAgICAgICAgcUNE ZWJ1ZyhQTUtERUQpIDw8ICJqb2JDb21wbGV0ZWQ6IiA8PCBqb2JTdGF0ZVJlYXNvbnMgPDwgam9i SWQgPDwgIlJlbW92ZWQgZnJvbSBub3RpZnkgbGlzdDoiIDw8IGNudDsKKyAgICAgICAgICAgIH0p OworfQogCi0gICAgY29ubmVjdChLQ3Vwc0Nvbm5lY3Rpb246Omdsb2JhbCgpLCAmS0N1cHNDb25u ZWN0aW9uOjpqb2JDcmVhdGVkLCB0aGlzLCAmQ3Vwc1dhdGNoZXI6OmpvYkhhbmRsZXIpOwordm9p ZCBDdXBzV2F0Y2hlcjo6bm90aWZ5UHJpbnRlclN0YXR1cyhjb25zdCBLQ3Vwc1ByaW50ZXIgJnBy aW50ZXIsIGNvbnN0IFFTdHJpbmcgcmVhc29uKQoreworICAgIGF1dG8gbm90aWZ5ID0gbmV3IEtO b3RpZmljYXRpb24odSJTdGF0dXNXYXJuaW5nIl9zKTsKKyAgICBub3RpZnktPnNldENvbXBvbmVu dE5hbWUodSJwcmludG1hbmFnZXIiX3MpOworICAgIG5vdGlmeS0+c2V0VGl0bGUocHJpbnRlci5p bmZvKCkpOworICAgIG5vdGlmeS0+c2V0VGV4dCgKKyAgICAgICAgaTE4bmMoIkBpbmZvOnN0YXR1 cyAlMSBpcyB0aGUgcmVhc29uIG1lc3NhZ2UgZm9yIHRoZSBzdGF0dXMiLCAiJTFcblRoZSBwcmlu dCBqb2Igd2lsbCBjb21wbGV0ZSB3aGVuIHRoZSBwcmludGVyIGJlY29tZXMgYXZhaWxhYmxlLiIs IHJlYXNvbikpOworCisgICAgLy8gV2UgY2FuIGFsbG93IHRoZSB1c2VyIHRvIHJlc3VtZSB0aGUg cHJpbnRlciBpZiBpdCBpcyBwYXVzZWQvc3RvcHBlZAorICAgIGlmIChwcmludGVyLnN0YXRlKCkg PT0gS0N1cHNQcmludGVyOjpTdG9wcGVkKSB7CisgICAgICAgIGF1dG8gZGVmQWN0aW9uID0gbm90 aWZ5LT5hZGRBY3Rpb24oaTE4bmMoIkBhY3Rpb246YnV0dG9uIFByb21wdCB0byByZXN1bWUgcHJp bnRlciIsICJSZXN1bWUgUHJpbnRlciIpKTsKKyAgICAgICAgY29ubmVjdChkZWZBY3Rpb24sICZL Tm90aWZpY2F0aW9uQWN0aW9uOjphY3RpdmF0ZWQsIHRoaXMsIFtwcmludGVyXSgpIHsKKyAgICAg ICAgICAgIFByaW50ZXJDb21tYW5kcyBwcmludGVyQ21kOworICAgICAgICAgICAgcHJpbnRlckNt ZC5yZXN1bWVQcmludGVyKHByaW50ZXIubmFtZSgpKTsKKyAgICAgICAgfSk7CisgICAgfQorICAg IG5vdGlmeS0+c2VuZEV2ZW50KCk7CisgICAgcUNEZWJ1ZyhQTUtERUQpIDw8ICJTZW5kaW5nIHN0 YXR1cyBldmVudCBub3RpZmljYXRpb246IiA8PCBwcmludGVyLm5hbWUoKSA8PCByZWFzb247CiB9 CiAKIHZvaWQgQ3Vwc1dhdGNoZXI6OmNoZWNrTWFya2VyTGV2ZWxzKGNvbnN0IEtDdXBzUHJpbnRl ciAmcHJpbnRlcikKQEAgLTQ0LDE1ICs3NywxNSBAQCB2b2lkIEN1cHNXYXRjaGVyOjpjaGVja01h cmtlckxldmVscyhjb25zdCBLQ3Vwc1ByaW50ZXIgJnByaW50ZXIpCiAgICAgICAgIG5vdGlmeS0+ c2V0VGV4dChtc2dzLmpvaW4odSJcbiJfcykpOwogCiAgICAgICAgIGF1dG8gY2hlY2tNYXJrZXJz ID0gbm90aWZ5LT5hZGREZWZhdWx0QWN0aW9uKGkxOG5jKCJAYWN0aW9uOmJ1dHRvbiBjaGVjayBw cmludGVyIGluayBsZXZlbHMiLCAiQ2hlY2sgTGV2ZWxz4oCmIikpOwotICAgICAgICBjb25uZWN0 KGNoZWNrTWFya2VycywgJktOb3RpZmljYXRpb25BY3Rpb246OmFjdGl2YXRlZCwgdGhpcywgW3Bu ID0gcHJpbnRlci5uYW1lKCksIHRva2VuID0gbm90aWZ5LT54ZGdBY3RpdmF0aW9uVG9rZW4oKS50 b1V0ZjgoKV0oKSB7Ci0gICAgICAgICAgICBQcm9jZXNzUnVubmVyOjprY21Db25maWd1cmVQcmlu dGVyKHBuLCB0b2tlbik7CisgICAgICAgIGNvbm5lY3QoY2hlY2tNYXJrZXJzLCAmS05vdGlmaWNh dGlvbkFjdGlvbjo6YWN0aXZhdGVkLCB0aGlzLCBbcHJpbnRlciwgbm90aWZ5XSgpIHsKKyAgICAg ICAgICAgIFByb2Nlc3NSdW5uZXI6OmtjbUNvbmZpZ3VyZVByaW50ZXIocHJpbnRlci5uYW1lKCks IG5vdGlmeS0+eGRnQWN0aXZhdGlvblRva2VuKCkudG9VdGY4KCkpOwogICAgICAgICB9KTsKIAog ICAgICAgICBub3RpZnktPnNlbmRFdmVudCgpOwogICAgIH0KIH0KIAotdm9pZCBDdXBzV2F0Y2hl cjo6am9iSGFuZGxlcihbW21heWJlX3VudXNlZF1dIGNvbnN0IFFTdHJpbmcgJnRleHQsCit2b2lk IEN1cHNXYXRjaGVyOjpqb2JDcmVhdGVkKFtbbWF5YmVfdW51c2VkXV0gY29uc3QgUVN0cmluZyAm dGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1ttYXliZV91bnVzZWRdXSBjb25z dCBRU3RyaW5nICZwcmludGVyVXJpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW21h eWJlX3VudXNlZF1dIGNvbnN0IFFTdHJpbmcgJnByaW50ZXJOYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbW21heWJlX3VudXNlZF1dIHVpbnQgcHJpbnRlclN0YXRlLApAQCAtNjQs MTkgKzk3LDMxIEBAIHZvaWQgQ3Vwc1dhdGNoZXI6OmpvYkhhbmRsZXIoW1ttYXliZV91bnVzZWRd XSBjb25zdCBRU3RyaW5nICZ0ZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbW21h eWJlX3VudXNlZF1dIGNvbnN0IFFTdHJpbmcgJmpvYk5hbWUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFtbbWF5YmVfdW51c2VkXV0gdWludCBqb2JJbXByZXNzaW9uc0NvbXBsZXRlZCkK IHsKLSAgICBxQ0RlYnVnKFBNS0RFRCkgPDwgdGV4dCA8PCBwcmludGVyTmFtZSA8PCBqb2JJZCA8 PCBqb2JTdGF0ZVJlYXNvbnM7CisgICAgcUNEZWJ1ZyhQTUtERUQpIDw8ICJqb2JDcmVhdGVkOiIg PDwgdGV4dCA8PCBwcmludGVyTmFtZSA8PCBqb2JJZCA8PCBqb2JTdGF0ZVJlYXNvbnM7CiAgICAg c3RhdGljIGNvbnN0IFFTdHJpbmdMaXN0IHNfYXR0cnMoe0tDVVBTX01BUktFUl9OQU1FUywKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0NVUFNfTUFSS0VSX0xFVkVMUywK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0NVUFNfTUFSS0VSX0hJR0hf TEVWRUxTLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLQ1VQU19NQVJL RVJfTE9XX0xFVkVMUywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgS0NV UFNfTUFSS0VSX1RZUEVTLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBL Q1VQU19QUklOVEVSX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEtDVVBTX1BSSU5URVJfU1RBVEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEtDVVBTX1BSSU5URVJfU1RBVEVfTUVTU0FHRSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgS0NVUFNfUFJJTlRFUl9JTkZPLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBLQ1VQU19QUklOVEVSX1RZUEV9KTsKIAogICAgIGNvbnN0IGF1dG8g cmVxdWVzdCA9IG5ldyBLQ3Vwc1JlcXVlc3Q7Ci0gICAgY29ubmVjdChyZXF1ZXN0LCAmS0N1cHNS ZXF1ZXN0OjpmaW5pc2hlZCwgdGhpcywgW3RoaXNdKEtDdXBzUmVxdWVzdCAqcmVxKSB7CisgICAg Y29ubmVjdChyZXF1ZXN0LCAmS0N1cHNSZXF1ZXN0OjpmaW5pc2hlZCwgdGhpcywgW3RoaXMsIHRl eHRdKEtDdXBzUmVxdWVzdCAqcmVxKSB7CiAgICAgICAgIGlmICghcmVxLT5wcmludGVycygpLmlz RW1wdHkoKSkgewotICAgICAgICAgICAgY29uc3QgYXV0byBwcmludGVyID0gcmVxLT5wcmludGVy cygpLmF0KDApOworICAgICAgICAgICAgY29uc3QgYXV0byBwcmludGVyID0gcmVxLT5wcmludGVy cygpLmNvbnN0Rmlyc3QoKTsKKyAgICAgICAgICAgIC8qKgorICAgICAgICAgICAgICogSWYgYSBq b2IgaXMgY3JlYXRlZCB0aGUgcHJpbnRlciBpcyBtb3N0IGxpa2VseSBhdmFpbGFibGUgYW5kCisg ICAgICAgICAgICAgKiBhY2NlcHRpbmcgcHJpbnQgam9iIHJlcXVlc3RzOyBob3dldmVyLCBpdCBj b3VsZCBiZSBzaW1wbHkgcGF1c2VkL3N0b3BwZWQuCisgICAgICAgICAgICAgKi8KKyAgICAgICAg ICAgIGNvbnN0IGF1dG8gcmVhc29uID0gcHJpbnRlci5jaGVja05vdEF2YWlsYWJsZSh0ZXh0KTsK KyAgICAgICAgICAgIGlmICghcmVhc29uLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgICAgIG5v dGlmeVByaW50ZXJTdGF0dXMocHJpbnRlciwgcmVhc29uKTsKKyAgICAgICAgICAgIH0KKyAgICAg ICAgICAgIC8vIENoZWNrIG1hcmtlcnMKICAgICAgICAgICAgIGNoZWNrTWFya2VyTGV2ZWxzKHBy aW50ZXIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gaXQncyBwb3NzaWJsZSBh dHRyaWJ1dGVzIGZyb20gYSB0ZW1wb3JhcnkgcXVldWUgY291bGQgYmUgZW1wdHkKQEAgLTg4LDQg KzEzMyw0NSBAQCB2b2lkIEN1cHNXYXRjaGVyOjpqb2JIYW5kbGVyKFtbbWF5YmVfdW51c2VkXV0g Y29uc3QgUVN0cmluZyAmdGV4dCwKICAgICByZXF1ZXN0LT5nZXRQcmludGVyQXR0cmlidXRlcyhw cmludGVyTmFtZSwgZmFsc2UsIHNfYXR0cnMpOwogfQogCisvKioKKyAqIFRoaXMgc2lnbmFsIGlt cGxpZXMgQ1VQUyBpcyB0cnlpbmcgdG8gY29tcGxldGUgYSBwcmludCBqb2IgYW5kIHdpbGwgYmUg cmVjZWl2ZWQKKyAqIGlmIHRoZSBwcmludGVyIGlzIGF2YWlsYWJsZSBvciBub3QsIHBvc3NpYmx5 IG1hbnkgdGltZXMgcGVyIGpvYi4KKyAqCisgKiBJZiB3ZSd2ZSBhbHJlYWR5IG5vdGlmaWVkIG9u IGEgam9iLCBkb24ndCBub3RpZnkgYWdhaW4sIG90aGVyd2lzZSwgY2hlY2sgYXZhaWxhYmxlLgor ICovCit2b2lkIEN1cHNXYXRjaGVyOjpqb2JQcm9ncmVzcyhjb25zdCBRU3RyaW5nICZ0ZXh0LAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1ttYXliZV91bnVzZWRdXSBjb25zdCBRU3Ry aW5nICZwcmludGVyVXJpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0 cmluZyAmcHJpbnRlck5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50IHBy aW50ZXJTdGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcg JnByaW50ZXJTdGF0ZVJlYXNvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29s IHByaW50ZXJJc0FjY2VwdGluZ0pvYnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 aW50IGpvYklkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1ttYXliZV91bnVzZWRd XSB1aW50IGpvYlN0YXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0 cmluZyAmam9iU3RhdGVSZWFzb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tt YXliZV91bnVzZWRdXSBjb25zdCBRU3RyaW5nICZqb2JOYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgW1ttYXliZV91bnVzZWRdXSB1aW50IGpvYkltcHJlc3Npb25zQ29tcGxldGVk KQoreworICAgIHFDRGVidWcoUE1LREVEKSA8PCAiam9iUHJvZ3Jlc3M6IiA8PCB0ZXh0IDw8IHBy aW50ZXJOYW1lIDw8IGpvYklkIDw8IHByaW50ZXJTdGF0ZSA8PCBwcmludGVyU3RhdGVSZWFzb25z IDw8IGpvYlN0YXRlIDw8IGpvYlN0YXRlUmVhc29uczsKKworICAgIGlmIChtX25vdGlmaWVkSm9i SWRzLmNvbnRhaW5zKGpvYklkKSkgeworICAgICAgICBxQ0RlYnVnKFBNS0RFRCkgPDwgam9iSWQg PDwgIkpvYklEIGhhcyBhbHJlYWR5IHRyaWdnZXJlZCBhIG5vdGlmeSBldmVudCwgaWdub3Jpbmci OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ3JlYXRlIGEgbW9jayBwcmludGVy IGJhc2VkIG9uIHRoZSBwYXJhbXMgZnJvbSB0aGUgc2lnbmFsCisgICAgS0N1cHNQcmludGVyIHBy aW50ZXJ7e3tLQ1VQU19QUklOVEVSX0lORk8sIHByaW50ZXJOYW1lfSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAge0tDVVBTX1BSSU5URVJfTkFNRSwgcHJpbnRlck5hbWV9LAorICAgICAgICAg ICAgICAgICAgICAgICAgICB7S0NVUFNfUFJJTlRFUl9UWVBFLCBDVVBTX1BSSU5URVJfTE9DQUx9 LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7S0NVUFNfUFJJTlRFUl9TVEFURSwgcHJpbnRl clN0YXRlfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAge0tDVVBTX1BSSU5URVJfU1RBVEVf TUVTU0FHRSwgcHJpbnRlclN0YXRlUmVhc29uc30sCisgICAgICAgICAgICAgICAgICAgICAgICAg IHtLQ1VQU19QUklOVEVSX0lTX0FDQ0VQVElOR19KT0JTLCBwcmludGVySXNBY2NlcHRpbmdKb2Jz fX19OworCisgICAgY29uc3QgYXV0byByZWFzb24gPSBwcmludGVyLmNoZWNrTm90QXZhaWxhYmxl KHRleHQpOworICAgIGlmICghcmVhc29uLmlzRW1wdHkoKSkgeworICAgICAgICBub3RpZnlQcmlu dGVyU3RhdHVzKHByaW50ZXIsIHJlYXNvbik7CisgICAgICAgIG1fbm90aWZpZWRKb2JJZHMgPDwg am9iSWQ7CisgICAgICAgIHFDRGVidWcoUE1LREVEKSA8PCBqb2JJZCA8PCAiU2V0dGluZyBqb2JJ RCBsaXN0ZWQgYXMgbm90aWZpZWQiOworICAgIH0KK30KKwogI2luY2x1ZGUgIm1vY19DdXBzV2F0 Y2hlci5jcHAiCmRpZmYgLS1naXQgYS9zcmMva2RlZC9DdXBzV2F0Y2hlci5oIGIvc3JjL2tkZWQv Q3Vwc1dhdGNoZXIuaAppbmRleCAwZjVkNzMzZS4uZTM4MjMyMmIgMTAwNjQ0Ci0tLSBhL3NyYy9r ZGVkL0N1cHNXYXRjaGVyLmgKKysrIGIvc3JjL2tkZWQvQ3Vwc1dhdGNoZXIuaApAQCAtMTAsMTQg KzEwLDIxIEBACiAKIGNsYXNzIEtDdXBzUHJpbnRlcjsKIC8qKgotICogQ2hlY2sgZm9yIGF0IGxl YXN0IG9uZSBtYXJrZXIgbGV2ZWwgYmVpbmcgYmVsb3cgdGhlIHRocmVzaG9sZC4KKyAqIFBlcmZv cm0gbWFya2VyIGxldmVsIGNoZWNraW5nIGFuZCBwcmludGVyIHN0YXR1cyBjaGVja2luZworICog d2hlbiBhIGpvYiBpcyBjcmVhdGVkLgogICoKLSAqIENVUFMgb25seSB1cGRhdGVzIHByaW50ZXJz LmNvbmYgYWZ0ZXIgdGhlIGZpcnN0IHByaW50CisgKiBGb3IgbWFya2VyIGxldmVscywgQ1VQUyBv bmx5IHVwZGF0ZXMgcHJpbnRlcnMuY29uZiBhZnRlciB0aGUgZmlyc3QgcHJpbnQKICAqIGpvYiBp cyBjcmVhdGVkL3NlbnQsIHNvIG1hcmtlci0qIGF0dHJpYnV0ZXMgd2lsbCBub3QgZXhpc3QgdW50 aWwgdGhhdCBwb2ludC4KICAqIEZvciBhIG5ld2x5IGFkZGVkIHByaW50ZXIgcXVldWUgb3IgZGlz Y292ZXJlZCBwcmludGVyLCB0aGlzIHdpbGwgYmUgYSBub29wLgogICoKICAqIEFzc3VtZXMgbGV2 ZWxzIGFuZCB0aHJlc2hvbGRzIGFyZSBwZXJjZW50YWdlcy4KICAqIHNlZSBodHRwczovL29wZW5w cmludGluZy5naXRodWIuaW8vY3Vwcy9kb2Mvc3BlYy1pcHAuaHRtbCNtYXJrZXItaGlnaC1sZXZl bHMKKyAqCisgKiBGb3IgcHJpbnRlciBzdGF0dXMgY2hlY2tpbmcsIHdoZW4gYSBwcmludGVyIGlz IHBhdXNlZCBvciBub3QgYWNjZXB0aW5nIGpvYnMKKyAqIG5vICJqb2JQcm9ncmVzcyIgc2lnbmFs cyBhcmUgc2VudCBzbyB3ZSBjYW4gY2hlY2sgd2hlbiB0aGUgam9iIGlzIGNyZWF0ZWQuCisgKgor ICogSWYgdGhlIHByaW50ZXIgaXMgb2ZmbGluZSBvciBjYW5ub3QgYmUgbG9jYXRlZCwgd2Ugd2ls bCBrbm93IHRoYXQgdmlhIHRoZQorICogam9iUHJvZ3Jlc3Mgc2lnbmFsIGFuZCB3ZSBjYW4gY2hl Y2sgc3RhdHVzIHJlYXNvbnMgYWdhaW5zdCBrZXl3b3Jkcy4KICAqLwogY2xhc3MgQ3Vwc1dhdGNo ZXIgOiBwdWJsaWMgUU9iamVjdAogewpAQCAtMjksMTEgKzM2LDIzIEBAIHB1YmxpYzoKIAogcHJp dmF0ZToKICAgICB2b2lkIGNoZWNrTWFya2VyTGV2ZWxzKGNvbnN0IEtDdXBzUHJpbnRlciAmcHJp bnRlcik7CisgICAgdm9pZCBub3RpZnlQcmludGVyU3RhdHVzKGNvbnN0IEtDdXBzUHJpbnRlciAm cHJpbnRlciwgY29uc3QgUVN0cmluZyByZWFzb24gPSBRU3RyaW5nKCkpOwogCisgICAgdm9pZCBq b2JQcm9ncmVzcyhjb25zdCBRU3RyaW5nICZ0ZXh0LAorICAgICAgICAgICAgICAgICAgICAgY29u c3QgUVN0cmluZyAmcHJpbnRlclVyaSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJp bmcgJnByaW50ZXJOYW1lLAorICAgICAgICAgICAgICAgICAgICAgdWludCBwcmludGVyU3RhdGUs CisgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZwcmludGVyU3RhdGVSZWFzb25z LAorICAgICAgICAgICAgICAgICAgICAgYm9vbCBwcmludGVySXNBY2NlcHRpbmdKb2JzLAorICAg ICAgICAgICAgICAgICAgICAgdWludCBqb2JJZCwKKyAgICAgICAgICAgICAgICAgICAgIHVpbnQg am9iU3RhdGUsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZqb2JTdGF0ZVJl YXNvbnMsCisgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZqb2JOYW1lLAorICAg ICAgICAgICAgICAgICAgICAgdWludCBqb2JJbXByZXNzaW9uc0NvbXBsZXRlZCk7CiAgICAgLyoq CiAgICAgICogQGJyaWVmIEdlbmVyaWMgaGFuZGxlciBmb3Igam9iIHNpZ25hbHMKICAgICAgKi8K LSAgICB2b2lkIGpvYkhhbmRsZXIoY29uc3QgUVN0cmluZyAmdGV4dCwKKyAgICB2b2lkIGpvYkNy ZWF0ZWQoY29uc3QgUVN0cmluZyAmdGV4dCwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0 cmluZyAmcHJpbnRlclVyaSwKICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0cmluZyAmcHJp bnRlck5hbWUsCiAgICAgICAgICAgICAgICAgICAgIHVpbnQgcHJpbnRlclN0YXRlLApAQCAtNDQs NCArNjMsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZq b2JTdGF0ZVJlYXNvbnMsCiAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFFTdHJpbmcgJmpvYk5h bWUsCiAgICAgICAgICAgICAgICAgICAgIHVpbnQgam9iSW1wcmVzc2lvbnNDb21wbGV0ZWQpOwor CisgICAgUUxpc3Q8dWludD4gbV9ub3RpZmllZEpvYklkczsKIH07CmRpZmYgLS1naXQgYS9zcmMv a2RlZC9wcmludG1hbmFnZXIubm90aWZ5cmMgYi9zcmMva2RlZC9wcmludG1hbmFnZXIubm90aWZ5 cmMKaW5kZXggMzk5ZWIzYmMuLjZhNWJlZTAxIDEwMDY0NAotLS0gYS9zcmMva2RlZC9wcmludG1h bmFnZXIubm90aWZ5cmMKKysrIGIvc3JjL2tkZWQvcHJpbnRtYW5hZ2VyLm5vdGlmeXJjCkBAIC0x MTEsNiArMTExLDExIEBAIENvbW1lbnRbdWtdPdCh0L/QvtCy0ZbRidC10L3QvdGPINC/0YDQviDQ stC40Y/QstC70LXQvdC90Y8g0L3QvtCy0L7Qs9C+INC/0YDQuNC9CiBDb21tZW50W3poX0NOXT3m o4DmtYvliLDmlrDmiZPljbDmnLrml7bpgJrnn6UKIENvbW1lbnRbemhfVFddPeWBtea4rOWIsOaW sOWNsOihqOapn+aZgueZvOWHuumAmuefpQogCitbRXZlbnQvU3RhdHVzV2FybmluZ10KK05hbWU9 UHJpbnRlciBTdGF0dXMgV2FybmluZworQWN0aW9uPVBvcHVwCitJY29uTmFtZT1wcmludGVyLXdh cm5pbmcKKwogW0V2ZW50L01hcmtlckxldmVsXQogTmFtZT1Mb3cgSW5rL1RvbmVyIExldmVscwog TmFtZVthcl092YXYs9iq2YjZitin2Kog2KfZhNit2KjYsS/Zhdiz2K3ZiNmCINin2YTYrdio2LEg 2YXZhtiu2YHYttipCmRpZmYgLS1naXQgYS9zcmMvbGlia2N1cHMvS0N1cHNQcmludGVyLmNwcCBi L3NyYy9saWJrY3Vwcy9LQ3Vwc1ByaW50ZXIuY3BwCmluZGV4IDA4MTZjMzUxLi41ODNkNGIzOCAx MDA2NDQKLS0tIGEvc3JjL2xpYmtjdXBzL0tDdXBzUHJpbnRlci5jcHAKKysrIGIvc3JjL2xpYmtj dXBzL0tDdXBzUHJpbnRlci5jcHAKQEAgLTEwLDYgKzEwLDggQEAKICNpbmNsdWRlICJLQ3Vwc1By aW50ZXIuaCIKICNpbmNsdWRlIDxLTG9jYWxpemVkU3RyaW5nPgogCit1c2luZyBuYW1lc3BhY2Ug UXQ6OlN0cmluZ0xpdGVyYWxzOworCiBLQ3Vwc1ByaW50ZXI6OktDdXBzUHJpbnRlcigpCiAgICAg OiBtX2lzQ2xhc3MoZmFsc2UpCiB7CkBAIC0yOTksNiArMzAxLDI1IEBAIFFTdHJpbmcgS0N1cHNQ cmludGVyOjpzdGF0ZU1zZygpIGNvbnN0CiAgICAgcmV0dXJuIG1fYXR0cmlidXRlc1tLQ1VQU19Q UklOVEVSX1NUQVRFX01FU1NBR0VdLnRvU3RyaW5nKCk7CiB9CiAKK1FTdHJpbmcgS0N1cHNQcmlu dGVyOjpjaGVja05vdEF2YWlsYWJsZShjb25zdCBRU3RyaW5nICZtc2cpIGNvbnN0Cit7CisgICAg c3RhdGljIGNvbnN0IFFTdHJpbmdMaXN0IGtleXdvcmRze3Uib2ZmbGluZSJfcywgdSJwYXVzZWQi X3MsIHUic3RvcHBlZCJfcywgdSJzaHV0ZG93biJfc307CisKKyAgICBpZiAoc3RhdGUoKSA9PSBT dG9wcGVkKSB7CisgICAgICAgIHJldHVybiBpMThuYygiQGluZm86c3RhdHVzIiwgIlRoZSBwcmlu dGVyIGlzIHBhdXNlZCBvciBzdG9wcGVkLiIpOworICAgIH0KKworICAgIGF1dG8gaXQgPSBzdGQ6 OmZpbmRfaWYoa2V5d29yZHMuYmVnaW4oKSwga2V5d29yZHMuZW5kKCksIFt0aGlzXShjb25zdCBR U3RyaW5nICZrZXl3b3JkKSB7CisgICAgICAgIHJldHVybiBzdGF0ZU1zZygpLmNvbnRhaW5zKGtl eXdvcmQsIFF0OjpDYXNlSW5zZW5zaXRpdmUpOworICAgIH0pOworCisgICAgaWYgKG1zZy5jb250 YWlucyh1InVuYWJsZSB0byBsb2NhdGUiX3MsIFF0OjpDYXNlSW5zZW5zaXRpdmUpIHx8IG1zZy5j b250YWlucyh1InVuYXZhaWxhYmxlIl9zLCBRdDo6Q2FzZUluc2Vuc2l0aXZlKSB8fCBpdCAhPSBr ZXl3b3Jkcy5lbmQoKSkgeworICAgICAgICByZXR1cm4gbXNnOworICAgIH0KKworICAgIHJldHVy biB7fTsKK30KKwogaW50IEtDdXBzUHJpbnRlcjo6bWFya2VyQ2hhbmdlVGltZSgpIGNvbnN0CiB7 CiAgICAgcmV0dXJuIG1fYXR0cmlidXRlc1tLQ1VQU19NQVJLRVJfQ0hBTkdFX1RJTUVdLnRvSW50 KCk7CmRpZmYgLS1naXQgYS9zcmMvbGlia2N1cHMvS0N1cHNQcmludGVyLmggYi9zcmMvbGlia2N1 cHMvS0N1cHNQcmludGVyLmgKaW5kZXggMjU0ZDhlYjQuLmJkZGNkYTllIDEwMDY0NAotLS0gYS9z cmMvbGlia2N1cHMvS0N1cHNQcmludGVyLmgKKysrIGIvc3JjL2xpYmtjdXBzL0tDdXBzUHJpbnRl ci5oCkBAIC01MCw2ICs1MCwyMCBAQCBwdWJsaWM6CiAKICAgICBTdGF0dXMgc3RhdGUoKSBjb25z dDsKICAgICBRU3RyaW5nIHN0YXRlTXNnKCkgY29uc3Q7CisgICAgLyoqCisgICAgICogQGJyaWVm IGNoZWNrTm90QXZhaWxhYmxlIC0gQ2hlY2sgdG8gc2VlIGlmIGEgcHJpbnRlciBpcyBhdmFpbGFi bGUKKyAgICAgKgorICAgICAqIEBwYXJhbSBtc2cgaXMgYSBzdHJpbmcgdGhhdCBjYW4gYmUgc2Vh cmNoZWQgZm9yIGtleXdvcmRzIGluZGljYXRpbmcKKyAgICAgKiBhdmFpbGFiaWxpdHkgb2YgdGhl IHByaW50ZXIuCisgICAgICoKKyAgICAgKiBAcmV0dXJuIElmIHRoZSBwcmludGVyIGlzIG5vdCBh dmFpbGFibGUsIHRoZSBtZXNzYWdlIHBhcmFtLCBhcyB0aGlzCisgICAgICogaXMgZ2VuZXJhbGx5 IGFuIGluZm9ybWF0aXZlIG1lc3NhZ2UgZnJvbSBDVVBTIGRldGFpbGluZyB0aGUgcmVhc29uLgor ICAgICAqIEhvd2V2ZXIsIGZvciBwYXVzZWQgcHJpbnRlcnMsIHJldHVybiBhIHNpbXBsZSBtZXNz YWdlIHRoYXQKKyAgICAgKiB0aGUgcHJpbnRlciBpcyBwYXVzZWQuCisgICAgICoKKyAgICAgKiBS ZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBpZiB0aGUgcHJpbnRlciBpcyBhdmFpbGFibGUuCisgICAg ICovCisgICAgUVN0cmluZyBjaGVja05vdEF2YWlsYWJsZShjb25zdCBRU3RyaW5nICZtc2cpIGNv bnN0OwogICAgIGludCBtYXJrZXJDaGFuZ2VUaW1lKCkgY29uc3Q7CiAgICAgUVZhcmlhbnQgYXJn dW1lbnQoY29uc3QgUVN0cmluZyAmbmFtZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL3Rlc3RzL0NN YWtlTGlzdHMudHh0IGIvdGVzdHMvQ01ha2VMaXN0cy50eHQKaW5kZXggNDgyM2UxNjYuLmY4MTI5 MjA0IDEwMDY0NAotLS0gYS90ZXN0cy9DTWFrZUxpc3RzLnR4dAorKysgYi90ZXN0cy9DTWFrZUxp c3RzLnR4dApAQCAtMjIsNiArMjIsMTMgQEAgZWNtX2FkZF90ZXN0KAogICAgIE5BTUVfUFJFRklY ICJwbS0iCiApCiAKK2VjbV9hZGRfdGVzdCgKKyAgICBub3RpZnlzdGF0dXN0ZXN0LmNwcAorICAg IFRFU1RfTkFNRSBub3RpZnlzdGF0dXN0ZXN0cworICAgIExJTktfTElCUkFSSUVTIGtjdXBzIFF0 OjpUZXN0CisgICAgTkFNRV9QUkVGSVggInBtLSIKKykKKwogZWNtX2FkZF90ZXN0KAogICAgIGNv bW1hbmR0ZXN0LmNwcAogICAgIFRlc3RIZWxwZXJzLmgKZGlmZiAtLWdpdCBhL3Rlc3RzL25vdGlm eXN0YXR1c3Rlc3QuY3BwIGIvdGVzdHMvbm90aWZ5c3RhdHVzdGVzdC5jcHAKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAuLjU5NGRiMWM2Ci0tLSAvZGV2L251bGwKKysrIGIvdGVz dHMvbm90aWZ5c3RhdHVzdGVzdC5jcHAKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIFNQRFgtRmls ZUNvcHlyaWdodFRleHQ6IDIwMjYgTWlrZSBOb2UgPG5vZWVyb3ZlckBnbWFpbC5jb20+CisgKiBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMC1vci1sYXRlcgorICovCisKKyNpbmNsdWRl IDxRT2JqZWN0PgorI2luY2x1ZGUgPFFUZXN0PgorCisjaW5jbHVkZSA8S0N1cHNQcmludGVyLmg+ CisKK3VzaW5nIG5hbWVzcGFjZSBRdDo6TGl0ZXJhbHM6OlN0cmluZ0xpdGVyYWxzOworCitjbGFz cyBOb3RpZnlTdGF0dXNUZXN0IDogcHVibGljIFFPYmplY3QKK3sKKyAgICBRX09CSkVDVAorCitw cml2YXRlIFFfU0xPVFM6CisKKyAgICB2b2lkIHRlc3ROb3RpZnlTdGF0dXMoKQorICAgIHsKKyAg ICAgICAgLy8gQW4gaWRsZSwgYXZhaWxhYmxlIHByaW50ZXIKKyAgICAgICAgS0N1cHNQcmludGVy IHByaW50ZXJ7e3tLQ1VQU19QUklOVEVSX05BTUUsIHUibm90aWZ5dGVzdCJfc30sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7S0NVUFNfUFJJTlRFUl9UWVBFLCBDVVBTX1BSSU5URVJf TE9DQUx9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge0tDVVBTX1BSSU5URVJfU1RB VEUsIEtDdXBzUHJpbnRlcjo6SWRsZX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7 S0NVUFNfUFJJTlRFUl9TVEFURV9NRVNTQUdFLCB1Im5vbmUiX3N9LAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAge0tDVVBTX1BSSU5URVJfSVNfQUNDRVBUSU5HX0pPQlMsIHRydWV9fX07 CisKKyAgICAgICAgYXV0byByZWFzb24gPSBwcmludGVyLmNoZWNrTm90QXZhaWxhYmxlKHUidGVz dCBtZXNzYWdlIl9zKTsKKyAgICAgICAgLy8gcmVhc29uIGVtcHR5IG1lYW5zIHRoZSBwcmludGVy IGlzIGF2YWlsYWJsZQorICAgICAgICBRVkVSSUZZKHJlYXNvbi5pc0VtcHR5KCkpOworCisgICAg ICAgIC8vIEEgcGF1c2VkIHByaW50ZXIKKyAgICAgICAgcHJpbnRlci5zZXRBdHRyaWJ1dGUoS0NV UFNfUFJJTlRFUl9TVEFURV9NRVNTQUdFLCB1InBhdXNlZCJfcyk7CisgICAgICAgIHJlYXNvbiA9 IHByaW50ZXIuY2hlY2tOb3RBdmFpbGFibGUodSJ0ZXN0IG1lc3NhZ2UiX3MpOworICAgICAgICBR VkVSSUZZKCFyZWFzb24uaXNFbXB0eSgpKTsKKworICAgICAgICBwcmludGVyLnNldEF0dHJpYnV0 ZShLQ1VQU19QUklOVEVSX1NUQVRFX01FU1NBR0UsIHUibm9uZSJfcyk7CisgICAgICAgIHByaW50 ZXIuc2V0QXR0cmlidXRlKEtDVVBTX1BSSU5URVJfU1RBVEUsIEtDdXBzUHJpbnRlcjo6U3RvcHBl ZCk7CisgICAgICAgIHJlYXNvbiA9IHByaW50ZXIuY2hlY2tOb3RBdmFpbGFibGUodSJ0ZXN0IG1l c3NhZ2UiX3MpOworICAgICAgICBRVkVSSUZZKCFyZWFzb24uaXNFbXB0eSgpKTsKKworICAgICAg ICAvLyBBbiBvZmZsaW5lIHByaW50ZXIKKyAgICAgICAgcHJpbnRlci5zZXRBdHRyaWJ1dGUoS0NV UFNfUFJJTlRFUl9TVEFURV9NRVNTQUdFLCB1Im9mZmxpbmUiX3MpOworICAgICAgICBwcmludGVy LnNldEF0dHJpYnV0ZShLQ1VQU19QUklOVEVSX1NUQVRFLCBLQ3Vwc1ByaW50ZXI6OklkbGUpOwor ICAgICAgICByZWFzb24gPSBwcmludGVyLmNoZWNrTm90QXZhaWxhYmxlKHUidGVzdCBtZXNzYWdl Il9zKTsKKyAgICAgICAgUVZFUklGWSghcmVhc29uLmlzRW1wdHkoKSk7CisKKyAgICAgICAgLy8g QSBkaXNjb25uZWN0ZWQgcHJpbnRlcgorICAgICAgICBwcmludGVyLnNldEF0dHJpYnV0ZShLQ1VQ U19QUklOVEVSX1NUQVRFX01FU1NBR0UsIHUibm9uZSJfcyk7CisgICAgICAgIHJlYXNvbiA9IHBy aW50ZXIuY2hlY2tOb3RBdmFpbGFibGUodSJ1bmF2YWlsYWJsZSJfcyk7CisgICAgICAgIFFWRVJJ RlkoIXJlYXNvbi5pc0VtcHR5KCkpOworCisgICAgICAgIC8vIEEgbm90IGZvdW5kIHByaW50ZXIK KyAgICAgICAgcHJpbnRlci5zZXRBdHRyaWJ1dGUoS0NVUFNfUFJJTlRFUl9TVEFURV9NRVNTQUdF LCB1Im5vbmUiX3MpOworICAgICAgICByZWFzb24gPSBwcmludGVyLmNoZWNrTm90QXZhaWxhYmxl KHUidW5hYmxlIHRvIGxvY2F0ZSJfcyk7CisgICAgICAgIFFWRVJJRlkoIXJlYXNvbi5pc0VtcHR5 KCkpOworICAgIH0KK307CisKK1FURVNUX01BSU4oTm90aWZ5U3RhdHVzVGVzdCkKKyNpbmNsdWRl ICJub3RpZnlzdGF0dXN0ZXN0Lm1vYyIK