Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vWBEC-00EfoE-11 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Dec 2025 10:27:27 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vWBEB-001VG3-0x for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Dec 2025 10:27:24 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vWBEA-001VFI-0h for pgsql-hackers@lists.postgresql.org; Thu, 18 Dec 2025 10:27:23 +0000 Received: from mail-ej1-x62f.google.com ([2a00:1450:4864:20::62f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vWBDz-001JBW-36 for pgsql-hackers@postgresql.org; Thu, 18 Dec 2025 10:27:22 +0000 Received: by mail-ej1-x62f.google.com with SMTP id a640c23a62f3a-b735487129fso81785666b.0 for ; Thu, 18 Dec 2025 02:27:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeltef.nl; s=google; t=1766053628; x=1766658428; darn=postgresql.org; h=in-reply-to:references:mime-version:subject:cc:from:to:message-id :date:from:to:cc:subject:date:message-id:reply-to; bh=c8AqSzru/eCBoAxfqhTILu75uTFpQR4vtRZzrOrQcHw=; b=NsB6WmQMqhML9LmTxbZhJVpl3VIfYhFnrbR4ZqEJQE6J0TR0vwV9ELIty/EqDTEipb K92Jb069pQRMzGx8jR2Eq8UqX1lAHNVa3XptSUJ8SF8T61hwv81fshxm9GROjtCDJt8s BVbUxSMsvfcjxfqmWapR1YpCobn1lF3KrSjFNNlGXVxMyXzCHF8EGoAGdUqq7uQVK4qq /mFGIlzhVOCNX5yzuoPVYvT6FWtsglUm6U31FYbULZ+JguoE7F2kfZiaAPwPXjqJeNuf pEyBL5QhvAX1S553j6P3L0Ma01/1ptOFQv9JyhHz3ar0MxPtECXk5NtZNE0VVUQdRFM3 uYfQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766053628; x=1766658428; h=in-reply-to:references:mime-version:subject:cc:from:to:message-id :date:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=c8AqSzru/eCBoAxfqhTILu75uTFpQR4vtRZzrOrQcHw=; b=Tbzyvfw2EDYH8g8h2aFmWNGiWP3B2934sju8Emhrtu9D7qQqxgg7dOEuF1JKhaFAmn /aQ0YNQ5fro9LT08Q2DI4pRxvUPeAqXOmIg0R7IkPk5xHr1iNNOjVvNmDrNebfMMlu2F hMn3IdsDvwMOz8eGsscmZ9v849/p5yMICkbiIBJ8xqaQMS4UNgvrSUnahbqkq6JMexS8 bqmEjy1JH50UIoSMbwi6EeGRj/FohJ0fgN/WQzS/ADyLvoMbLkHSZ38zzAWiA6ZLCQlS cjobdUyrkxaOLFAelAlTQiG0beRmcONdU85yEupQP24UaYi5WkrYe7nJ3/kdmpOnuTbx QQyA== X-Forwarded-Encrypted: i=1; AJvYcCUNpi/OaxzxIwOKsX3+SVqh59M2V0EncKAx4GO7+utWZSwn5GagPlR6ehNMXwZJJ6Gz7DnhUGT8pRpxmaac@postgresql.org X-Gm-Message-State: AOJu0YwIolFcEojC6Esy0EIcBR8quLFBti8X4WFzMXBRSF65r7JXmJsT W4VqyiKOrpskgUNL0vBYhKxtZ4YGFd7z/THdYtzk+kN8kh7/DDdkJJgmviPw/c/DgYs= X-Gm-Gg: AY/fxX5Qt6RQCvmCTq8l4Vm/rVFwwcrGQfwRL8fQnFzGqIe1ZYYH5eqt/wM5+h+Qhxv R3GPVJ0CcW/nHvEA50YtKDinNdKGQQHGMP0zkZU1W39rmhLBJnTQO/5ha9XraFZgGNPTHLEEGV6 Z8OeXZpcXB+w/zFVinMJEhM13wEeLIo15P2Bo/a7ZfLhxlezkxS3VnpOTfN5p1IkNzAKY18W/bO FMcGBCQmZ2SGrppk8DgGX/CvC7zUs/a2CJh2cjZYI48/Gv0zezSe37mUQWuNeodfQuOKY5HMHFH nRYdcfbFEphM+Kf9+KGzKgpthcvrjJoMmI8KEcKnM8VnGPmc2FiGrQtGVYxbDKArgaay0fvMjp3 ZyGO3TpnoaZSTGPDa+z/xox+bNAvt9eIThVIqibMIq4pVqhp/5LtXovaaVhy2s1kypBNH/vgGJd srZWYn9/ax0BWRLP17DimAJrKaoBgOVU46gEg= X-Google-Smtp-Source: AGHT+IHSZeU+SEOYzS4JhRd0n4smBQi1zqMQTRRWsTzG0kYM/gnOgcISt9+3xWeNEiq9lavxrLMM3w== X-Received: by 2002:a17:907:1c1f:b0:b70:df0d:e2e9 with SMTP id a640c23a62f3a-b7d23a3467cmr2085635566b.44.1766053627259; Thu, 18 Dec 2025 02:27:07 -0800 (PST) Received: from localhost (145-53-221-196.fixed.kpn.net. [145.53.221.196]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b8022f98862sm191136966b.4.2025.12.18.02.27.05 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 18 Dec 2025 02:27:06 -0800 (PST) Content-Type: multipart/mixed; boundary=d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Date: Thu, 18 Dec 2025 11:27:05 +0100 Message-Id: To: "Andres Freund" From: "Jelte Fennema-Nio" Cc: "Jacob Champion" , "PostgreSQL Hackers" , "Robert Haas" , "Daniel Gustafsson" , "Tom Lane" , "Peter Eisentraut" , "Nazir Bilal Yavuz" Subject: Re: RFC: adding pytest as a supported test framework MIME-Version: 1.0 References: <2302192.1718380169@sss.pgh.pa.us> In-Reply-To: X-TUID: 9wbY3Eqh68f5 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Type: multipart/alternative; boundary=9f01ba2898a5b1f2f827619da735027e6e96f577900f7f9b6aeec74725dc --9f01ba2898a5b1f2f827619da735027e6e96f577900f7f9b6aeec74725dc Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8; format=Flowed On Wed, 17 Dec 2025 at 17:10, Andres Freund wrote: > I assume this intentionally doesn't pass CI: > https://cirrus-ci.com/github/postgresql-cfbot/postgresql/cf%2F6045 Yeah it was, but turns out was also actually broken because of that. Attached is a new version that actually passes all tests. It also adds logic to convert postgres errors into python exceptions. I also moved the commits around a bit, so the SSL tests from Jacob are now built on top of my improvements to the test infra. > Why do we need pytest the program at all? Running the tests one-by-one w= ith > pytest as a runner doesn't seem to make a whole lot of sense to me. Do you mean use "python -m pytest" instead of "pytest"?=20 Or do you mean running python files manually somehow? Because that's not possible. There's only functions defined in those test files, they're not executable by themselves. pytest is still needed to find those in each file, as well as the fixtures they require. And ofcourse to make assertion errors show up as nicely. > I think it'd be a seriously bad idea to start with no central infrastruct= ure, > we'd be force to duplicate that all over. Eventually we'll be forced to > introduce some central infrastructure, but we'll probably not go around a= nd > carefully go through the existing tests for stuff that should now use the > common infrastructure. The infra to do query execution on a single postgres server is there (patch 0004). That one seemed the most important to me. I'm currently still working on some infrastructure to be able to spawn multiple postgres servers (I'm validating that by converting the libpq load balance TAP tests that I wrote in the past). Is there other infrastructure that you think is needed? --9f01ba2898a5b1f2f827619da735027e6e96f577900f7f9b6aeec74725dc-- --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0001-meson-Include-TAP-tests-in-the-configuration-summ.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0001-meson-Include-TAP-tests-in-the-configuration-summ.patch RnJvbSAwNTM5OThjZmU4YTQxNGM5NmM4MDZiYWE1ODdhNTk4MDg1ZWFhNzkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogRnJpLCA1IFNlcCAyMDI1IDE2OjM5OjA4IC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2NCAxLzddIG1lc29uOiBJbmNsdWRlIFRBUCB0ZXN0cyBpbiB0aGUgY29uZmlndXJh dGlvbiBzdW1tYXJ5CgouLi50byBtYWtlIGl0IG9idmlvdXMgd2hlbiB0aGV5J3ZlIGJlZW4gZW5h YmxlZC4gcHJvdmUgaXMgYWRkZWQgdG8gdGhlCmV4ZWN1dGFibGVzIGxpc3QgZm9yIGdvb2QgbWVh c3VyZS4KClRPRE86IGRvZXMgQXV0b2NvbmYgbmVlZCBzb21ldGhpbmcgc2ltaWxhcj8KClBlciBj b21wbGFpbnQgYnkgUGV0ZXIgRWlzZW50cmF1dC4KLS0tCiBtZXNvbi5idWlsZCB8IDkgKysrKysr KysrCiAxIGZpbGUgY2hhbmdlZCwgOSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvbWVzb24u YnVpbGQgYi9tZXNvbi5idWlsZAppbmRleCBkN2M1MTkzZDRjZS4uNTUxZTI3ZjVlYjMgMTAwNjQ0 Ci0tLSBhL21lc29uLmJ1aWxkCisrKyBiL21lc29uLmJ1aWxkCkBAIC0zOTgxLDYgKzM5ODEsNyBA QCBzdW1tYXJ5KAogICAgICdiaXNvbic6ICdAMEAgQDFAJy5mb3JtYXQoYmlzb24uZnVsbF9wYXRo KCksIGJpc29uX3ZlcnNpb24pLAogICAgICdkdHJhY2UnOiBkdHJhY2UsCiAgICAgJ2ZsZXgnOiAn QDBAIEAxQCcuZm9ybWF0KGZsZXguZnVsbF9wYXRoKCksIGZsZXhfdmVyc2lvbiksCisgICAgJ3By b3ZlJzogcHJvdmUsCiAgIH0sCiAgIHNlY3Rpb246ICdQcm9ncmFtcycsCiApCkBAIC00MDE3LDMg KzQwMTgsMTEgQEAgc3VtbWFyeSgKICAgc2VjdGlvbjogJ0V4dGVybmFsIGxpYnJhcmllcycsCiAg IGxpc3Rfc2VwOiAnICcsCiApCisKK3N1bW1hcnkoCisgIHsKKyAgICAndGFwJzogdGFwX3Rlc3Rz X2VuYWJsZWQsCisgIH0sCisgIHNlY3Rpb246ICdPdGhlciBmZWF0dXJlcycsCisgIGxpc3Rfc2Vw OiAnICcsCispCgpiYXNlLWNvbW1pdDogYjQ3YzUwZTU2NjdiNDg5YmVjM2FmZmI1NWVjZGY0ZTlj MzA2Y2EyZAotLSAKMi41Mi4wCgo= --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0002-Add-support-for-pytest-test-suites.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0002-Add-support-for-pytest-test-suites.patch RnJvbSA0ZTIwYWZiOTY3N2ZlNDQzZjI3NGI3ZTkxZWU5OWJmYWI4NzQwMDNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogV2VkLCAxMyBBdWcgMjAyNSAxMDo1ODo1NiAtMDcwMApTdWJqZWN0 OiBbUEFUQ0ggdjQgMi83XSBBZGQgc3VwcG9ydCBmb3IgcHl0ZXN0IHRlc3Qgc3VpdGVzCgpTcGVj aWZ5IC0tZW5hYmxlLXB5dGVzdC8tRHB5dGVzdD1lbmFibGVkIGF0IGNvbmZpZ3VyZSB0aW1lLiBU aGlzCmNvbnRhaW5zIG5vIFBvc3RncmVzIHRlc3QgbG9naWMgLS0gaXQgaXMganVzdCBhICJ2YW5p bGxhIiBweXRlc3QKc2tlbGV0b24uCgpJJ3ZlIHdyaXR0ZW4gYSBjdXN0b20gcGd0YXAgb3V0cHV0 IHBsdWdpbiwgdXNlZCBieSB0aGUgTWVzb24gbXRlc3QKcnVubmVyLCB0byBmdWxseSBjb250cm9s IHdoYXQgd2Ugc2VlIGR1cmluZyBDSSB0ZXN0IGZhaWx1cmVzLiBUaGUKcHl0ZXN0LXRhcCBwbHVn aW4gd291bGQgaGF2ZSBiZWVuIHByZWZlcmFibGUsIGJ1dCBpdCdzIG5vdyBpbgptYWludGVuYW5j ZSBtb2RlLCBhbmQgaXQgaGFzIHByb2JsZW1zIHdpdGggYWNjaWRlbnRhbGx5IHN1cHByZXNzaW5n CmltcG9ydGFudCBjb2xsZWN0aW9uIGZhaWx1cmVzLgoKdGVzdF9zb21ldGhpbmcucHkgaXMgaW50 ZW5kZWQgdG8gc2hvdyBhIHNhbXBsZSBmYWlsdXJlIGluIHRoZSBDSS4KClRPRE9zOgotIE9wZW5C U0QgaGFzIGFuIEFOU0ktcmVsYXRlZCB0ZXJtaW5hbCBidWcsIGJ1dCBJJ20gbm90IHN1cmUgaWYg dGhlIGJ1ZwogIGlzIGluIENpcnJ1cywgdGhlIGltYWdlLCBweXRlc3QsIFB5dGhvbiwgb3IgcmVh ZGxpbmUuIFRoZSBURVJNIGVudnZhcgogIGlzIHVuc2V0IHRvIHdvcmsgYXJvdW5kIGl0LiBJZiB0 aGlzIHdvcmthcm91bmQgaXMgcmVtb3ZlZCwgYSBiYWQgQU5TSQogIGVzY2FwZSBpcyBpbnNlcnRl ZCBpbnRvIHRoZSBwZ3RhcCBvdXRwdXQgYW5kIG10ZXN0IGlzIHVuYWJsZSB0byBwYXJzZQogIGl0 LgotIFRoZSBDaG9jb2xhdGV5IENJIHNldHVwIGlzIHN1YnBhci4gTmVlZCB0byBmaW5kIGEgd2F5 IHRvIGJsZXNzIHRoZQogIGRlcGVuZGVuY2llcyBpbiB1c2UgcmF0aGVyIHRoYW4gcHVsbGluZyBm cm9tIHBpcC4uLiBvciBtYXliZSB0aGF0IHdpbGwKICBiZSBkb25lIGJ5IHRoZSBpbWFnZSBiYWtl ci4KLS0tCiAuY2lycnVzLnRhc2tzLnltbCAgICAgICAgICAgICAgICB8ICAzOCArKysrLS0KIC5n aXRpZ25vcmUgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIGNvbmZpZy9jaGVja19weXRl c3QucHkgICAgICAgICAgIHwgMTUwICsrKysrKysrKysrKysrKysrKysrKysrKwogY29uZmlnL2Nv bmZ0ZXN0LnB5ICAgICAgICAgICAgICAgfCAgMTggKysrCiBjb25maWcvcHl0ZXN0LXJlcXVpcmVt ZW50cy50eHQgICB8ICAyMSArKysrCiBjb25maWd1cmUgICAgICAgICAgICAgICAgICAgICAgICB8 IDEwOCArKysrKysrKysrKysrKysrLQogY29uZmlndXJlLmFjICAgICAgICAgICAgICAgICAgICAg fCAgMjUgKysrLQogbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgICAgICAgfCAgOTIgKysrKysr KysrKysrKysrCiBtZXNvbl9vcHRpb25zLnR4dCAgICAgICAgICAgICAgICB8ICAgOCArLQogcHl0 ZXN0LmluaSAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL01ha2VmaWxlLmdsb2Jh bC5pbiAgICAgICAgICAgfCAgMjMgKysrKwogc3JjL21ha2VmaWxlcy9tZXNvbi5idWlsZCAgICAg ICAgfCAgIDIgKwogc3JjL3Rlc3QvTWFrZWZpbGUgICAgICAgICAgICAgICAgfCAgMTEgKy0KIHNy Yy90ZXN0L21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3B5dGVzdC9N YWtlZmlsZSAgICAgICAgIHwgIDIwICsrKysKIHNyYy90ZXN0L3B5dGVzdC9SRUFETUUgICAgICAg ICAgIHwgICAxICsKIHNyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZCAgICAgIHwgIDE2ICsrKwog c3JjL3Rlc3QvcHl0ZXN0L3BsdWdpbnMvcGd0YXAucHkgfCAxOTIgKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwogMTggZmlsZXMgY2hhbmdlZCwgNzE4IGluc2VydGlvbnMoKyksIDE1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbmZpZy9jaGVja19weXRlc3QucHkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBjb25maWcvY29uZnRlc3QucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBj b25maWcvcHl0ZXN0LXJlcXVpcmVtZW50cy50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBweXRlc3Qu aW5pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcHl0ZXN0L01ha2VmaWxlCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcHl0ZXN0L1JFQURNRQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5 dGVzdC9wbHVnaW5zL3BndGFwLnB5CgpkaWZmIC0tZ2l0IGEvLmNpcnJ1cy50YXNrcy55bWwgYi8u Y2lycnVzLnRhc2tzLnltbAppbmRleCAwMzhkMDQzZDAwZS4uZWUyMDg0YmRmYjYgMTAwNjQ0Ci0t LSBhLy5jaXJydXMudGFza3MueW1sCisrKyBiLy5jaXJydXMudGFza3MueW1sCkBAIC0yMSw3ICsy MSw4IEBAIGVudjoKIAogICAjIHRhcmdldCB0byB0ZXN0LCBmb3IgYWxsIGJ1dCB3aW5kb3dzCiAg IENIRUNLOiBjaGVjay13b3JsZCBQUk9WRV9GTEFHUz0kUFJPVkVfRkxBR1MKLSAgQ0hFQ0tGTEFH UzogLU90YXJnZXQKKyAgIyBUT0RPIHdlcmUgd2UgYXZvaWRpbmcgLS1rZWVwLWdvaW5nIG9uIHB1 cnBvc2U/CisgIENIRUNLRkxBR1M6IC1PdGFyZ2V0IC0ta2VlcC1nb2luZwogICBQUk9WRV9GTEFH UzogLS10aW1lcgogICAjIEJ1aWxkIHRlc3QgZGVwZW5kZW5jaWVzIGFzIHBhcnQgb2YgdGhlIGJ1 aWxkIHN0ZXAsIHRvIHNlZSBjb21waWxlcgogICAjIGVycm9ycy93YXJuaW5ncyBpbiBvbmUgcGxh Y2UuCkBAIC00NCw2ICs0NSw3IEBAIGVudjoKICAgICAtRGxkYXA9ZW5hYmxlZAogICAgIC1Ec3Ns PW9wZW5zc2wKICAgICAtRHRhcF90ZXN0cz1lbmFibGVkCisgICAgLURweXRlc3Q9ZW5hYmxlZAog ICAgIC1EcGxwZXJsPWVuYWJsZWQKICAgICAtRHBscHl0aG9uPWVuYWJsZWQKICAgICAtRGRvY3M9 ZW5hYmxlZApAQCAtMjI1LDcgKzIyNyw5IEBAIHRhc2s6CiAgICAgY2hvd24gcm9vdDpwb3N0Z3Jl cyAvdG1wL2NvcmVzCiAgICAgc3lzY3RsIGtlcm4uY29yZWZpbGU9Jy90bXAvY29yZXMvJU4uJVAu Y29yZScKICAgc2V0dXBfYWRkaXRpb25hbF9wYWNrYWdlc19zY3JpcHQ6IHwKLSAgICAjcGtnIGlu c3RhbGwgLXkgLi4uCisgICAgcGtnIGluc3RhbGwgLXkgXAorICAgICAgcHkzMTEtcGFja2FnaW5n IFwKKyAgICAgIHB5MzExLXB5dGVzdAogCiAgICMgTkI6IEludGVudGlvbmFsbHkgYnVpbGQgd2l0 aG91dCAtRGxsdm0uIFRoZSBmcmVlYnNkIGltYWdlIHNpemUgaXMgYWxyZWFkeQogICAjIGxhcmdl IGVub3VnaCB0byBtYWtlIFZNIHN0YXJ0dXAgc2xvdywgYW5kIGV2ZW4gd2l0aG91dCBsbHZtIGZy ZWVic2QKQEAgLTMxNyw3ICszMjEsMTAgQEAgdGFzazoKICAgICAgICAgICAtRHBhbT1lbmFibGVk CiAKICAgICAgIHNldHVwX2FkZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8Ci0gICAgICAgICNw a2dpbiAteSBpbnN0YWxsIC4uLgorICAgICAgICBwa2dpbiAteSBpbnN0YWxsIFwKKyAgICAgICAg ICBweTMxMi1wYWNrYWdpbmcgXAorICAgICAgICAgIHB5MzEyLXRlc3QKKyAgICAgICAgbG4gLXMg L3Vzci9wa2cvYmluL3B5dGVzdC0zLjEyIC91c3IvcGtnL2Jpbi9weXRlc3QKICAgICAgIDw8OiAq bmV0YnNkX3Rhc2tfdGVtcGxhdGUKIAogICAgIC0gbmFtZTogT3BlbkJTRCAtIE1lc29uCkBAIC0z MjksNiArMzM2LDcgQEAgdGFzazoKICAgICAgICAgSU1BR0VfRkFNSUxZOiBwZy1jaS1vcGVuYnNk LXBvc3RncmVzCiAgICAgICAgIFBLR0NPTkZJR19QQVRIOiAnL3Vzci9saWIvcGtnY29uZmlnOi91 c3IvbG9jYWwvbGliL3BrZ2NvbmZpZycKICAgICAgICAgQ09SRV9EVU1QX0VYRUNVVEFCTEVfRElS OiAkQ0lSUlVTX1dPUktJTkdfRElSL2J1aWxkL3RtcF9pbnN0YWxsL3Vzci9sb2NhbC9wZ3NxbC9i aW4KKyAgICAgICAgVEVSTTogIyBUT0RPIHdoeSBkb2VzIHB5dGVzdCBwcmludCBBTlNJIGVzY2Fw ZXMgb24gT3BlbkJTRD8KIAogICAgICAgICBNRVNPTl9GRUFUVVJFUzogPi0KICAgICAgICAgICAt RGJzZF9hdXRoPWVuYWJsZWQKQEAgLTMzNyw3ICszNDUsOSBAQCB0YXNrOgogICAgICAgICAgIC1E dXVpZD1lMmZzCiAKICAgICAgIHNldHVwX2FkZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8Ci0g ICAgICAgICNwa2dfYWRkIC1JIC4uLgorICAgICAgICBwa2dfYWRkIC1JIFwKKyAgICAgICAgICBw eTMtdGVzdCBcCisgICAgICAgICAgcHkzLXBhY2thZ2luZwogICAgICAgIyBBbHdheXMgY29yZSBk dW1wIHRvICR7Q09SRV9EVU1QX0RJUn0KICAgICAgIHNldF9jb3JlX2R1bXBfc2NyaXB0OiBzeXNj dGwgLXcga2Vybi5ub3N1aWRjb3JlZHVtcD0yCiAgICAgICA8PDogKm9wZW5ic2RfdGFza190ZW1w bGF0ZQpAQCAtNDk2LDggKzUwNiwxMCBAQCB0YXNrOgogICAgIEVPRgogCiAgIHNldHVwX2FkZGl0 aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8Ci0gICAgI2FwdC1nZXQgdXBkYXRlCi0gICAgI0RFQklB Tl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZSBhcHQtZ2V0IC15IGluc3RhbGwgLi4uCisgICAgYXB0 LWdldCB1cGRhdGUKKyAgICBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUgYXB0LWdldCAt eSBpbnN0YWxsIFwKKyAgICAgIHB5dGhvbjMtcHl0ZXN0IFwKKyAgICAgIHB5dGhvbjMtcGFja2Fn aW5nCiAKICAgbWF0cml4OgogICAgICMgU1BFQ0lBTDoKQEAgLTUyMSwxNCArNTMzLDE1IEBAIHRh c2s6CiAgICAgICAgICAgc2V0IC1lCiAgICAgICAgICAgLi9jb25maWd1cmUgXAogICAgICAgICAg ICAgLS1lbmFibGUtY2Fzc2VydCAtLWVuYWJsZS1pbmplY3Rpb24tcG9pbnRzIC0tZW5hYmxlLWRl YnVnIFwKLSAgICAgICAgICAgIC0tZW5hYmxlLXRhcC10ZXN0cyAtLWVuYWJsZS1ubHMgXAorICAg ICAgICAgICAgLS1lbmFibGUtdGFwLXRlc3RzIC0tZW5hYmxlLXB5dGVzdCAtLWVuYWJsZS1ubHMg XAogICAgICAgICAgICAgLS13aXRoLXNlZ3NpemUtYmxvY2tzPTYgXAogICAgICAgICAgICAgLS13 aXRoLWxpYm51bWEgXAogICAgICAgICAgICAgLS13aXRoLWxpYnVyaW5nIFwKICAgICAgICAgICAg IFwKICAgICAgICAgICAgICR7TElOVVhfQ09ORklHVVJFX0ZFQVRVUkVTfSBcCiAgICAgICAgICAg ICBcCi0gICAgICAgICAgICBDTEFORz0iY2NhY2hlIGNsYW5nIgorICAgICAgICAgICAgQ0xBTkc9 ImNjYWNoZSBjbGFuZyIgXAorICAgICAgICAgICAgUFlURVNUPSJlbnYgTERfUFJFTE9BRD0vbGli L3g4Nl82NC1saW51eC1nbnUvbGliYXNhbi5zby44IHB5dGVzdCIKICAgICAgICAgRU9GCiAgICAg ICBidWlsZF9zY3JpcHQ6IHN1IHBvc3RncmVzIC1jICJtYWtlIC1zIC1qJHtCVUlMRF9KT0JTfSB3 b3JsZC1iaW4iCiAgICAgICB1cGxvYWRfY2FjaGVzOiBjY2FjaGUKQEAgLTY2NSw2ICs2NzgsOCBA QCB0YXNrOgogICAgICAgcDUuMzQtaW8tdHR5CiAgICAgICBwNS4zNC1pcGMtcnVuCiAgICAgICBw eXRob24zMTIKKyAgICAgIHB5MzEyLXBhY2thZ2luZworICAgICAgcHkzMTItcHl0ZXN0CiAgICAg ICB0Y2wKICAgICAgIHpzdGQKIApAQCAtNzE0LDYgKzcyOSw3IEBAIHRhc2s6CiAgICAgc2ggc3Jj L3Rvb2xzL2NpL2NpX21hY3BvcnRzX3BhY2thZ2VzLnNoICRNQUNPU19QQUNLQUdFX0xJU1QKICAg ICAjIHN5c3RlbSBweXRob24gZG9lc24ndCBwcm92aWRlIGhlYWRlcnMKICAgICBzdWRvIC9vcHQv bG9jYWwvYmluL3BvcnQgc2VsZWN0IHB5dGhvbjMgcHl0aG9uMzEyCisgICAgc3VkbyAvb3B0L2xv Y2FsL2Jpbi9wb3J0IHNlbGVjdCBweXRlc3QgcHl0ZXN0MzEyCiAgICAgIyBNYWtlIG1hY3BvcnRz IGluc3RhbGwgdmlzaWJsZSBmb3Igc3Vic2VxdWVudCBzdGVwcwogICAgIGVjaG8gUEFUSD0vb3B0 L2xvY2FsL3NiaW4vOi9vcHQvbG9jYWwvYmluLzokUEFUSCA+PiAkQ0lSUlVTX0VOVgogICB1cGxv YWRfY2FjaGVzOiBtYWNwb3J0cwpAQCAtNzg3LDYgKzgwMyw4IEBAIHRhc2s6CiAgICAgICAtRGxk YXA9ZW5hYmxlZAogICAgICAgLURzc2w9b3BlbnNzbAogICAgICAgLUR0YXBfdGVzdHM9ZW5hYmxl ZAorICAgICAgLURweXRlc3Q9ZW5hYmxlZAorICAgICAgLURQWVRFU1Q9YzpcV2luZG93c1xzeXN0 ZW0zMlxjb25maWdcc3lzdGVtcHJvZmlsZVxBcHBEYXRhXFJvYW1pbmdcUHl0aG9uXFB5dGhvbjMx MFxTY3JpcHRzXHB5dGVzdC5leGUKICAgICAgIC1EcGxwZXJsPWVuYWJsZWQKICAgICAgIC1EcGxw eXRob249ZW5hYmxlZAogCkBAIC03OTUsOCArODEzLDEwIEBAIHRhc2s6CiAgIGRlcGVuZHNfb246 IFNhbml0eUNoZWNrCiAgIG9ubHlfaWY6ICRDSV9XSU5ET1dTX0VOQUJMRUQKIAorICAjIFhYWCBE b2VzIENob2NvbGF0ZXkgcmVhbGx5IG5vdCBoYXZlIGFueSBQeXRob24gcGFja2FnZSBpbnN0YWxs ZXJzPwogICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2VzX3NjcmlwdDogfAogICAgIFJFTSBjaG9j byBpbnN0YWxsIC15IC0tbm8tcHJvZ3Jlc3MgLi4uCisgICAgcGlwMyBpbnN0YWxsIC0tdXNlciBw YWNrYWdpbmcgcHl0ZXN0CiAKICAgc2V0dXBfaG9zdHNfZmlsZV9zY3JpcHQ6IHwKICAgICBlY2hv IDEyNy4wLjAuMSBwZy1sb2FkYmFsYW5jZXRlc3QgPj4gYzpcV2luZG93c1xTeXN0ZW0zMlxEcml2 ZXJzXGV0Y1xob3N0cwpAQCAtODU5LDcgKzg3OSw3IEBAIHRhc2s6CiAgICAgZm9sZGVyOiAke0ND QUNIRV9ESVJ9CiAKICAgc2V0dXBfYWRkaXRpb25hbF9wYWNrYWdlc19zY3JpcHQ6IHwKLSAgICBS RU0gQzpcbXN5czY0XHVzclxiaW5ccGFjbWFuLmV4ZSAtUyAtLW5vY29uZmlybSAuLi4KKyAgICBD Olxtc3lzNjRcdXNyXGJpblxwYWNtYW4uZXhlIC1TIC0tbm9jb25maXJtIG1pbmd3LXc2NC11Y3J0 LXg4Nl82NC1weXRob24tcGFja2FnaW5nIG1pbmd3LXc2NC11Y3J0LXg4Nl82NC1weXRob24tcHl0 ZXN0CiAKICAgbWluZ3dfaW5mb19zY3JpcHQ6IHwKICAgICAlQkFTSCUgLWMgIndoZXJlIGdjYyIK ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDRlOTExMzk1ZmUzLi4y Njg0MjYwMDNiMSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC0z MSw2ICszMSw3IEBAIHdpbjMydmVyLnJjCiAqLmV4ZQogbGliKmRsbC5kZWYKIGxpYioucGMKK19f cHljYWNoZV9fLwogCiAjIExvY2FsIGV4Y2x1ZGVzIGluIHJvb3QgZGlyZWN0b3J5CiAvR05VbWFr ZWZpbGUKZGlmZiAtLWdpdCBhL2NvbmZpZy9jaGVja19weXRlc3QucHkgYi9jb25maWcvY2hlY2tf cHl0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNTYyZDE2 YmNkYQotLS0gL2Rldi9udWxsCisrKyBiL2NvbmZpZy9jaGVja19weXRlc3QucHkKQEAgLTAsMCAr MSwxNTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorIworIyBWZXJpZnkgdGhhdCBweXRlc3QtcmVxdWlyZW1lbnRzLnR4dCBpcyBz YXRpc2ZpZWQuIFRoaXMgd291bGQgcHJvYmFibHkgYmUKKyMgZWFzaWVyIHdpdGggcGlwLCBidXQg cmVxdWlyaW5nIHBpcCBvbiBidWlsZCBtYWNoaW5lcyBpcyBhIG5vbi1zdGFydGVyIGZvcgorIyBt YW55LgorIworIyBUaGlzIGlzIGNvZGVkIGFzIGEgcHl0ZXN0IHN1aXRlIGluIG9yZGVyIHRvIGNo ZWNrIHRoZSBQeXRob24gZGlzdHJpYnV0aW9uIGluCisjIHVzZSBieSBweXRlc3QsIGFzIG9wcG9z ZWQgdG8gdGhlIFB5dGhvbiBkaXN0cmlidXRpb24gYmVpbmcgbGlua2VkIGFnYWluc3QKKyMgUG9z dGdyZXMuIEluIHNvbWUgc2V0dXBzIHRoZXkgYXJlIHNlcGFyYXRlLgorIworIyBUaGUgZGVzaWdu IHBoaWxvc29waHkgb2YgdGhpcyBzY3JpcHQgaXMgdG8gYmVuZCBvdmVyIGJhY2t3YXJkcyB0byBo ZWxwIHBlb3BsZQorIyBmaWd1cmUgb3V0IHdoYXQgaXMgbWlzc2luZy4gVGhlIHRhcmdldCBhdWRp ZW5jZSBmb3IgZXJyb3Igb3V0cHV0IGlzIHRoZQorIyBidWlsZGZhcm0gb3BlcmF0b3Igd2hvIGp1 c3Qgd2FudHMgdG8gZ2V0IHRoZSB0ZXN0cyBydW5uaW5nLCBub3QgdGhlIHRlc3QKKyMgZGV2ZWxv cGVyIHdobyBwcmVzdW1hYmx5IGFscmVhZHkga25vd3MgaG93IHRvIHNvbHZlIHRoZXNlIHByb2Js ZW1zLgorCitpbXBvcnQgaW1wb3J0bGliCitpbXBvcnQgc3lzCitmcm9tIHR5cGluZyBpbXBvcnQg TGlzdCwgVW5pb24gICMgbmVlZGVkIGZvciBlYXJsaWVyIFB5dGhvbiB2ZXJzaW9ucworCisjIGlt cG9ydGxpYi5tZXRhZGF0YSBpcyBwYXJ0IG9mIHRoZSBzdGFuZGFyZCBsaWJyYXJ5IGZyb20gMy44 IG9ud2FyZHMuIEVhcmxpZXIKKyMgUHl0aG9uIHZlcnNpb25zIGhhdmUgYW4gb2ZmaWNpYWwgYmFj a3BvcnQgY2FsbGVkIGltcG9ydGxpYl9tZXRhZGF0YSwgd2hpY2ggY2FuCisjIGdlbmVyYWxseSBi ZSBpbnN0YWxsZWQgYXMgYSBzZXBhcmF0ZSBPUyBwYWNrYWdlIChweXRob24zLWltcG9ydGxpYi1t ZXRhZGF0YSkuCisjIFRoaXMgY29tcGxpY2F0aW9uIGNhbiBiZSByZW1vdmVkIG9uY2Ugd2Ugc3Rv cCBzdXBwb3J0aW5nIFB5dGhvbiAzLjcuCit0cnk6CisgICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0 IG1ldGFkYXRhCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQg aW1wb3J0bGliX21ldGFkYXRhIGFzIG1ldGFkYXRhCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgor ICAgICAgICAjIHBhY2thZ2VfdmVyc2lvbigpIHdpbGwgbmVlZCB0byBmYWxsIGJhY2suIFRoaXMg aXMgdW5saWtlbHkgdG8gaGFwcGVuCisgICAgICAgICMgaW4gcHJhY3RpY2UsIGJlY2F1c2UgcHl0 ZXN0IDcueCBkZXBlbmRzIG9uIGltcG9ydGxpYl9tZXRhZGF0YSBpdHNlbGYuCisgICAgICAgIG1l dGFkYXRhID0gTm9uZQorCisKK2RlZiByZXBvcnQoKmFyZ3MpOgorICAgICIiIgorICAgIFByaW50 cyBhIGNvbmZpZ3VyZS10aW1lIG1lc3NhZ2UgdG8gdGhlIHVzZXIuIChUaGUgY29uZmlndXJlIHNj cmlwdHMgd2lsbAorICAgIGRpc3BsYXkgdGhlc2UgbWVzc2FnZXMgYW5kIGlnbm9yZSB0aGUgb3V0 cHV0IGZyb20gdGhlIHB5dGVzdCBzdWl0ZS4pIFRoaXMKKyAgICBhc3N1bWVzIC0tY2FwdHVyZT1u byBpcyBpbiB1c2UsIHRvIGF2b2lkIHB5dGVzdCdzIHN0YW5kYXJkIHN0cmVhbSBjYXB0dXJlLgor ICAgICIiIgorICAgIHByaW50KCphcmdzLCBmaWxlPXN5cy5zdGRlcnIpCisKKworZGVmIHBhY2th Z2VfdmVyc2lvbihwa2c6IHN0cikgLT4gVW5pb25bc3RyLCBOb25lXToKKyAgICAiIiIKKyAgICBS ZXR1cm5zIHRoZSB2ZXJzaW9uIG9mIHRoZSBuYW1lZCBwYWNrYWdlLCBvciBOb25lIGlmIHRoZSBw YWNrYWdlIGlzIG5vdAorICAgIGluc3RhbGxlZC4KKworICAgIFRoaXMgZnVuY3Rpb24gcHJlZmVy cyB0byB1c2UgdGhlIGRpc3RyaWJ1dGlvbiBwYWNrYWdlIHZlcnNpb24sIGlmIHdlIGhhdmUKKyAg ICB0aGUgbmVjZXNzYXJ5IHByZXJlcXVpc2l0ZXMuIE90aGVyd2lzZSBpdCB3aWxsIGZhbGwgYmFj ayB0byB0aGUgX192ZXJzaW9uX18KKyAgICBvZiB0aGUgaW1wb3J0ZWQgbW9kdWxlLCB3aGljaCBh bGlnbnMgd2l0aCBweXRlc3QuaW1wb3J0b3Jza2lwKCkuCisgICAgIiIiCisgICAgaWYgbWV0YWRh dGEgaXMgbm90IE5vbmU6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBtZXRhZGF0 YS52ZXJzaW9uKHBrZykKKyAgICAgICAgZXhjZXB0IG1ldGFkYXRhLlBhY2thZ2VOb3RGb3VuZEVy cm9yOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMgVGhpcyBpcyBhbiBvbGRlciBQ eXRob24gYW5kIHdlIGRvbid0IGhhdmUgaW1wb3J0bGliX21ldGFkYXRhLiBGYWxsIGJhY2sgdG8K KyAgICAjIF9fdmVyc2lvbl9fIGluc3RlYWQuCisgICAgdHJ5OgorICAgICAgICBtb2QgPSBpbXBv cnRsaWIuaW1wb3J0X21vZHVsZShwa2cpCisgICAgZXhjZXB0IE1vZHVsZU5vdEZvdW5kRXJyb3I6 CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBpZiBoYXNhdHRyKG1vZCwgIl9fdmVyc2lvbl9f Iik6CisgICAgICAgIHJldHVybiBtb2QuX192ZXJzaW9uX18KKworICAgICMgV2UncmUgb3V0IG9m IG9wdGlvbnMuIElmIHRoaXMgdHVybnMgb3V0IHRvIGNhdXNlIHByb2JsZW1zIGluIHByYWN0aWNl LCB3ZQorICAgICMgbWlnaHQgbmVlZCB0byByZXF1aXJlIGltcG9ydGxpYl9tZXRhZGF0YSBvbiBv bGRlciBidWlsZGZhcm0gbWVtYmVycy4gQnV0CisgICAgIyBzaW5jZSBvdXIgdG9wLWxldmVsIHJl cXVpcmVtZW50cyBsaXN0IHdpbGwgYmUgc21hbGwsIGFuZCB0aGlzIHBvc3NpYmlsaXR5CisgICAg IyB3aWxsIGV2ZW50dWFsbHkgYWdlIG91dCB3aXRoIG5ld2VyIFB5dGhvbnMsIGRvbid0IHNwZW5k IG1vcmUgZWZmb3J0IG9uCisgICAgIyB0aGlzIGNhc2UgZm9yIG5vdy4KKyAgICByZXBvcnQoZiJG aXggY2hlY2tfcHl0ZXN0LnB5ISB7cGtnfSBoYXMgbm8gX192ZXJzaW9uX18iKQorICAgIGFzc2Vy dCBGYWxzZSwgImludGVybmFsIGVycm9yIGluIHBhY2thZ2VfdmVyc2lvbigpIgorCisKK2RlZiBw YWNrYWdpbmdfY2hlY2socmVxdWlyZW1lbnRzOiBMaXN0W3N0cl0pIC0+IGJvb2w6CisgICAgIiIi CisgICAgUmVwb3J0cyB0aGUgc3RhdHVzIG9mIGVhY2ggcmVxdWlyZWQgcGFja2FnZSB0byB0aGUg Y29uZmlndXJlIHByb2dyYW0uCisgICAgUmV0dXJucyBUcnVlIGlmIGFsbCBkZXBlbmRlbmNpZXMg d2VyZSBmb3VuZC4KKyAgICAiIiIKKyAgICByZXBvcnQoKSAgIyBhbiBvcGVuaW5nIG5ld2xpbmUg bWFrZXMgdGhlIGNvbmZpZ3VyZSBvdXRwdXQgZWFzaWVyIHRvIHJlYWQKKworICAgIHRyeToKKyAg ICAgICAgIyBwYWNrYWdpbmcgY29udGFpbnMgdGhlIFB5UEEgZGVmaW5pdGlvbnMgb2YgcmVxdWly ZW1lbnQgc3BlY2lmaWVycy4KKyAgICAgICAgIyBUaGlzIGlzIGNvbnRhaW5lZCBpbiBhIHNlcGFy YXRlIE9TIHBhY2thZ2UgKGZvciBleGFtcGxlLAorICAgICAgICAjIHB5dGhvbjMtcGFja2FnaW5n KSwgYnV0IGl0J3MgZXh0cmVtZWx5IGxpa2VseSB0aGF0IHRoZSB1c2VyIGhhcyBpdAorICAgICAg ICAjIGluc3RhbGxlZCBhbHJlYWR5LCBiZWNhdXNlIG1vZGVybiB2ZXJzaW9ucyBvZiBweXRlc3Qg ZGVwZW5kIG9uIGl0IHRvby4KKyAgICAgICAgaW1wb3J0IHBhY2thZ2luZworICAgICAgICBmcm9t IHBhY2thZ2luZy5yZXF1aXJlbWVudHMgaW1wb3J0IFJlcXVpcmVtZW50CisKKyAgICBleGNlcHQg SW1wb3J0RXJyb3IgYXMgZXJyOgorICAgICAgICAjIFdlIGRvbid0IGV2ZW4gaGF2ZSBlbm91Z2gg cHJlcmVxdWlzaXRlcyB0byBjaGVjayBvdXIgcHJlcmVxdWlzaXRlcy4KKyAgICAgICAgIyBQcmlu dCB0aGUgaW1wb3J0IGVycm9yIGFzLWlzLgorICAgICAgICByZXBvcnQoZXJyKQorICAgICAgICBy ZXR1cm4gRmFsc2UKKworICAgICMgU3RyaXAgZXh0cmFuZW91cyB3aGl0ZXNwYWNlLCB3aG9sZS1s aW5lIGNvbW1lbnRzLCBhbmQgZW1wdHkgbGluZXMgZnJvbSBvdXIKKyAgICAjIHNwZWNpZmllciBs aXN0LgorICAgIHJlcXVpcmVtZW50cyA9IFtyLnN0cmlwKCkgZm9yIHIgaW4gcmVxdWlyZW1lbnRz XQorICAgIHJlcXVpcmVtZW50cyA9IFtyIGZvciByIGluIHJlcXVpcmVtZW50cyBpZiByIGFuZCBy WzBdICE9ICIjIl0KKworICAgIGZvdW5kID0gVHJ1ZQorICAgIGZvciBzcGVjIGluIHJlcXVpcmVt ZW50czoKKyAgICAgICAgcmVxID0gUmVxdWlyZW1lbnQoc3BlYykKKworICAgICAgICAjIFNraXAg YW55IHBhY2thZ2VzIG1hcmtlZCBhcyB1bm5lZWRlZCBmb3IgdGhpcyBwYXJ0aWN1bGFyIFB5dGhv biBlbnYuCisgICAgICAgIGlmIHJlcS5tYXJrZXIgYW5kIG5vdCByZXEubWFya2VyLmV2YWx1YXRl KCk6CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICMgTWFrZSBzdXJlIHRoZSBwYWNr YWdlIGlzIGluc3RhbGxlZC4uLgorICAgICAgICB2ZXJzaW9uID0gcGFja2FnZV92ZXJzaW9uKHJl cS5uYW1lKQorICAgICAgICBpZiB2ZXJzaW9uIGlzIE5vbmU6CisgICAgICAgICAgICByZXBvcnQo ZiJwYWNrYWdlICd7cmVxLm5hbWV9Jzogbm90IGluc3RhbGxlZCIpCisgICAgICAgICAgICBmb3Vu ZCA9IEZhbHNlCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICMgLi4uYW5kIHRoYXQg aXQgaGFzIGEgY29tcGF0aWJsZSB2ZXJzaW9uLgorICAgICAgICBpZiBub3QgcmVxLnNwZWNpZmll ci5jb250YWlucyh2ZXJzaW9uKToKKyAgICAgICAgICAgIHJlcG9ydCgKKyAgICAgICAgICAgICAg ICAicGFja2FnZSAne30nOiBoYXMgdmVyc2lvbiB7fSwgYnV0ICd7fScgaXMgcmVxdWlyZWQiLmZv cm1hdCgKKyAgICAgICAgICAgICAgICAgICAgcmVxLm5hbWUsIHZlcnNpb24sIHJlcS5zcGVjaWZp ZXIKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKQorICAgICAgICAgICAgZm91bmQg PSBGYWxzZQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAjIFJlcG9ydCBpbnN0YWxs ZWQgcGFja2FnZXMgdG9vLCB0byBtaXJyb3IgY2hlY2tfbW9kdWxlcy5wbC4KKyAgICAgICAgcmVw b3J0KGYicGFja2FnZSAne3JlcS5uYW1lfSc6IGluc3RhbGxlZCAodmVyc2lvbiB7dmVyc2lvbn0p IikKKworICAgIHJldHVybiBmb3VuZAorCisKK2RlZiB0ZXN0X3BhY2thZ2VzKHJlcXVpcmVtZW50 c19maWxlKToKKyAgICAiIiIKKyAgICBFbnRyeSBwb2ludC4KKyAgICAiIiIKKyAgICB0cnk6Cisg ICAgICAgIHdpdGggb3BlbihyZXF1aXJlbWVudHNfZmlsZSwgInIiKSBhcyBmOgorICAgICAgICAg ICAgcmVxdWlyZW1lbnRzID0gZi5yZWFkbGluZXMoKQorCisgICAgICAgIGFsbF9mb3VuZCA9IHBh Y2thZ2luZ19jaGVjayhyZXF1aXJlbWVudHMpCisKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGVy cjoKKyAgICAgICAgIyBTdXJmYWNlIGFueSBicmVha2FnZSB0byB0aGUgY29uZmlndXJlIHNjcmlw dCBiZWZvcmUgZmFpbGluZyB0aGUgdGVzdC4KKyAgICAgICAgcmVwb3J0KGVycikKKyAgICAgICAg cmFpc2UKKworICAgIGFzc2VydCBhbGxfZm91bmQsICJyZXF1aXJlZCBwYWNrYWdlcyBhcmUgbWlz c2luZyIKZGlmZiAtLWdpdCBhL2NvbmZpZy9jb25mdGVzdC5weSBiL2NvbmZpZy9jb25mdGVzdC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTljMmJjNTQ2ZTgKLS0t IC9kZXYvbnVsbAorKysgYi9jb25maWcvY29uZnRlc3QucHkKQEAgLTAsMCArMSwxOCBAQAorIyBD b3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisj CisjIFN1cHBvcnQgZm9yIGNoZWNrX3B5dGVzdC5weS4gVGhlIGNvbmZpZ3VyZSBzY3JpcHQgcHJv dmlkZXMgdGhlIHBhdGggdG8KKyMgcHl0ZXN0LXJlcXVpcmVtZW50cy50eHQgdmlhIHRoZSAtLXJl cXVpcmVtZW50cyBvcHRpb24gYWRkZWQgaGVyZS4KKworaW1wb3J0IHB5dGVzdAorCisKK2RlZiBw eXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6CisgICAgcGFyc2VyLmFkZG9wdGlvbigKKyAgICAgICAg Ii0tcmVxdWlyZW1lbnRzIiwKKyAgICAgICAgaGVscD0icGF0aCB0byBweXRlc3QtcmVxdWlyZW1l bnRzLnR4dCIsCisgICAgKQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIHJlcXVpcmVtZW50c19m aWxlKHJlcXVlc3QpOgorICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5nZXRvcHRpb24oIi0tcmVx dWlyZW1lbnRzIikKZGlmZiAtLWdpdCBhL2NvbmZpZy9weXRlc3QtcmVxdWlyZW1lbnRzLnR4dCBi L2NvbmZpZy9weXRlc3QtcmVxdWlyZW1lbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMC4uMWM1ZTI4M2QxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9jb25maWcvcHl0 ZXN0LXJlcXVpcmVtZW50cy50eHQKQEAgLTAsMCArMSwyMSBAQAorIworIyBUaGlzIGZpbGUgY29u dGFpbnMgdGhlIFB5dGhvbiBwYWNrYWdlcyB3aGljaCBhcmUgcmVxdWlyZWQgaW4gb3JkZXIgZm9y IHVzIHRvCisjIGVuYWJsZSBweXRlc3QuCisjCisjIFRoZSBzeW50YXggaXMgYSAqc3Vic2V0KiBv ZiBwaXAncyByZXF1aXJlbWVudHMudHh0IHN5bnRheCwgc28gdGhhdCBib3RoIHBpcAorIyBhbmQg Y2hlY2tfcHl0ZXN0LnB5IGNhbiB1c2UgaXQuIE9ubHkgd2hvbGUtbGluZSBjb21tZW50cyBhbmQg c3RhbmRhcmQgUHl0aG9uCisjIGRlcGVuZGVuY3kgc3BlY2lmaWVycyBhcmUgYWxsb3dlZC4gcGlw LXNwZWNpZmljIGdvb2RpZXMgbGlrZSBpbmNsdWRlcyBhbmQKKyMgZW52aXJvbm1lbnQgc3Vic3Rp dHV0aW9ucyBhcmUgbm90IHN1cHBvcnRlZDsga2VlcCBpdCBzaW1wbGUuCisjCisjIFBhY2thZ2Vz IGJlbG9uZyBoZXJlIGlmIHRoZWlyIGFic2VuY2Ugc2hvdWxkIGNhdXNlIGEgY29uZmlndXJhdGlv biBmYWlsdXJlLiBJZgorIyB5b3UnZCBsaWtlIHRvIG1ha2UgYSBwYWNrYWdlIG9wdGlvbmFsLCBj b25zaWRlciB1c2luZyBweXRlc3QuaW1wb3J0b3Jza2lwKCkKKyMgaW5zdGVhZC4KKyMKKworIyBw eXRlc3QgNy4wIHdhcyB0aGUgbGFzdCB2ZXJzaW9uIHdoaWNoIHN1cHBvcnRlZCBQeXRob24gMy42 LCBidXQgdGhlIEJTRHMgaGF2ZQorIyBzdGFydGVkIHB1dHRpbmcgOC54IGludG8gcG9ydHMsIHNv IHdlIHN1cHBvcnQgYm90aC4gKHB5dGVzdCA4IGNhbiBiZSB1c2VkCisjIHRocm91Z2hvdXQgb25j ZSB3ZSBkcm9wIHN1cHBvcnQgZm9yIFB5dGhvbiAzLjcuKQorcHl0ZXN0ID49IDcuMCwgPCAxMAor CisjIHBhY2thZ2luZyBpcyB1c2VkIGJ5IGNoZWNrX3B5dGVzdC5weSBhdCBjb25maWd1cmUgdGlt ZS4KK3BhY2thZ2luZwpkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCmluZGV4IDE0 YWQwYTUwMDZmLi5kNmZlN2QzZDI5MyAxMDA3NTUKLS0tIGEvY29uZmlndXJlCisrKyBiL2NvbmZp Z3VyZQpAQCAtNjMwLDYgKzYzMCw3IEBAIHZwYXRoX2J1aWxkCiBQR19TWVNST09UCiBQR19WRVJT SU9OX05VTQogTERGTEFHU19FWF9CRQorUFlURVNUCiBQUk9WRQogREJUT0VQVUIKIEZPUApAQCAt NzcyLDYgKzc3Myw3IEBAIENGTEFHUwogQ0MKIGVuYWJsZV9pbmplY3Rpb25fcG9pbnRzCiBQR19U RVNUX0VYVFJBCitlbmFibGVfcHl0ZXN0CiBlbmFibGVfdGFwX3Rlc3RzCiBlbmFibGVfZHRyYWNl CiBEVFJBQ0VGTEFHUwpAQCAtODUwLDYgKzg1Miw3IEBAIGVuYWJsZV9wcm9maWxpbmcKIGVuYWJs ZV9jb3ZlcmFnZQogZW5hYmxlX2R0cmFjZQogZW5hYmxlX3RhcF90ZXN0cworZW5hYmxlX3B5dGVz dAogZW5hYmxlX2luamVjdGlvbl9wb2ludHMKIHdpdGhfYmxvY2tzaXplCiB3aXRoX3NlZ3NpemUK QEAgLTE1NTAsNyArMTU1MywxMCBAQCBPcHRpb25hbCBGZWF0dXJlczoKICAgLS1lbmFibGUtcHJv ZmlsaW5nICAgICAgYnVpbGQgd2l0aCBwcm9maWxpbmcgZW5hYmxlZAogICAtLWVuYWJsZS1jb3Zl cmFnZSAgICAgICBidWlsZCB3aXRoIGNvdmVyYWdlIHRlc3RpbmcgaW5zdHJ1bWVudGF0aW9uCiAg IC0tZW5hYmxlLWR0cmFjZSAgICAgICAgIGJ1aWxkIHdpdGggRFRyYWNlIHN1cHBvcnQKLSAgLS1l bmFibGUtdGFwLXRlc3RzICAgICAgZW5hYmxlIFRBUCB0ZXN0cyAocmVxdWlyZXMgUGVybCBhbmQg SVBDOjpSdW4pCisgIC0tZW5hYmxlLXRhcC10ZXN0cyAgICAgIGVuYWJsZSAoUGVybC1iYXNlZCkg VEFQIHRlc3RzIChyZXF1aXJlcyBQZXJsIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICBJ UEM6OlJ1bikKKyAgLS1lbmFibGUtcHl0ZXN0ICAgICAgICAgZW5hYmxlIChQeXRob24tYmFzZWQp IHB5dGVzdCBzdWl0ZXMgKHJlcXVpcmVzCisgICAgICAgICAgICAgICAgICAgICAgICAgIFB5dGhv bikKICAgLS1lbmFibGUtaW5qZWN0aW9uLXBvaW50cwogICAgICAgICAgICAgICAgICAgICAgICAg ICBlbmFibGUgaW5qZWN0aW9uIHBvaW50cyAoZm9yIHRlc3RpbmcpCiAgIC0tZW5hYmxlLWRlcGVu ZCAgICAgICAgIHR1cm4gb24gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJhY2tpbmcKQEAgLTM2MzIs NyArMzYzOCw3IEBAIGZpCiAKIAogIwotIyBUQVAgdGVzdHMKKyMgVGVzdCBmcmFtZXdvcmtzCiAj CiAKIApAQCAtMzY2MCw2ICszNjY2LDMyIEBAIGZpCiAKIAogCisKKyMgQ2hlY2sgd2hldGhlciAt LWVuYWJsZS1weXRlc3Qgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHtlbmFibGVfcHl0ZXN0K3NldH0i ID0gc2V0OyB0aGVuIDoKKyAgZW5hYmxldmFsPSRlbmFibGVfcHl0ZXN0OworICBjYXNlICRlbmFi bGV2YWwgaW4KKyAgICB5ZXMpCisgICAgICA6CisgICAgICA7OworICAgIG5vKQorICAgICAgOgor ICAgICAgOzsKKyAgICAqKQorICAgICAgYXNfZm5fZXJyb3IgJD8gIm5vIGFyZ3VtZW50IGV4cGVj dGVkIGZvciAtLWVuYWJsZS1weXRlc3Qgb3B0aW9uIiAiJExJTkVOTyIgNQorICAgICAgOzsKKyAg ZXNhYworCitlbHNlCisgIGVuYWJsZV9weXRlc3Q9bm8KKworZmkKKworCisKKworCisKICMKICMg SW5qZWN0aW9uIHBvaW50cwogIwpAQCAtMTkyMjksNiArMTkyNjEsNzggQEAgJGFzX2VjaG8gIiRt b2R1bGVzdGRlcnIiID4mNjsgfQogICBmaQogZmkKIAoraWYgdGVzdCAiJGVuYWJsZV9weXRlc3Qi ID0geWVzOyB0aGVuCisgIGlmIHRlc3QgLXogIiRQWVRFU1QiOyB0aGVuCisgIGZvciBhY19wcm9n IGluIHB5dGVzdCBweS50ZXN0CitkbworICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRh Y19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KK3NldCBkdW1t eSAkYWNfcHJvZzsgYWNfd29yZD0kMgoreyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQorJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9CitpZiAke2FjX2N2X3BhdGhfUFlURVNUKzp9IGZhbHNl OyB0aGVuIDoKKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKK2Vsc2UKKyAgY2FzZSAkUFlU RVNUIGluCisgIFtcXC9dKiB8ID86W1xcL10qKQorICBhY19jdl9wYXRoX1BZVEVTVD0iJFBZVEVT VCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCisgIDs7Cisg ICopCisgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKK2ZvciBhc19kaXIg aW4gJFBBVEgKK2RvCisgIElGUz0kYXNfc2F2ZV9JRlMKKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KKyAgaWYgYXNfZm5fZXhlY3V0YWJsZV9wICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgdGhlbgorICAgIGFjX2N2X3BhdGhfUFlURVNUPSIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IgorICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQorICAgIGJyZWFrIDIKKyAgZmkK K2RvbmUKKyAgZG9uZQorSUZTPSRhc19zYXZlX0lGUworCisgIDs7Citlc2FjCitmaQorUFlURVNU PSRhY19jdl9wYXRoX1BZVEVTVAoraWYgdGVzdCAtbiAiJFBZVEVTVCI7IHRoZW4KKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQWVRFU1QiID4mNQor JGFzX2VjaG8gIiRQWVRFU1QiID4mNjsgfQorZWxzZQorICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQorJGFzX2VjaG8gIm5vIiA+JjY7IH0K K2ZpCisKKworICB0ZXN0IC1uICIkUFlURVNUIiAmJiBicmVhaworZG9uZQorCitlbHNlCisgICMg UmVwb3J0IHRoZSB2YWx1ZSBvZiBQWVRFU1QgaW4gY29uZmlndXJlJ3Mgb3V0cHV0IGluIGFsbCBj YXNlcy4KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgUFlURVNUIiA+JjUKKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBQWVRFU1QuLi4gIiA+ JjY7IH0KKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRQWVRFU1QiID4mNQorJGFzX2VjaG8gIiRQWVRFU1QiID4mNjsgfQorZmkKKworICBpZiB0ZXN0 IC16ICIkUFlURVNUIjsgdGhlbgorICAgIGFzX2ZuX2Vycm9yICQ/ICJweXRlc3Qgbm90IGZvdW5k IiAiJExJTkVOTyIgNQorICBmaQorICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGZvciBQeXRob24gcGFja2FnZXMgcmVxdWlyZWQgZm9yIHB5dGVzdCIg PiY1CiskYXNfZWNob19uICJjaGVja2luZyBmb3IgUHl0aG9uIHBhY2thZ2VzIHJlcXVpcmVkIGZv ciBweXRlc3QuLi4gIiA+JjY7IH0KKyAgbW9kdWxlc3RkZXJyPWAkUFlURVNUIC1jICIkc3JjZGly L3B5dGVzdC5pbmkiIC0tY29uZmN1dGRpcj0iJHNyY2Rpci9jb25maWciIC0tY2FwdHVyZT1ubyAi JHNyY2Rpci9jb25maWcvY2hlY2tfcHl0ZXN0LnB5IiAtLXJlcXVpcmVtZW50cyAiJHNyY2Rpci9j b25maWcvcHl0ZXN0LXJlcXVpcmVtZW50cy50eHQiIDI+JjEgPi9kZXYvbnVsbGAKKyAgaWYgdGVz dCAkPyAtZXEgMDsgdGhlbgorICAgIGVjaG8gIiRtb2R1bGVzdGRlcnIiID4mNQorICAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQorJGFz X2VjaG8gInllcyIgPiY2OyB9CisgIGVsc2UKKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJG1vZHVsZXN0ZGVyciIgPiY1CiskYXNfZWNobyAiJG1v ZHVsZXN0ZGVyciIgPiY2OyB9CisgICAgYXNfZm5fZXJyb3IgJD8gIkFkZGl0aW9uYWwgUHl0aG9u IHBhY2thZ2VzIGFyZSByZXF1aXJlZCB0byBydW4gdGhlIHB5dGVzdCBzdWl0ZXMiICIkTElORU5P IiA1CisgIGZpCitmaQorCiAjIElmIGNvbXBpbGVyIHdpbGwgdGFrZSAtV2wsLS1hcy1uZWVkZWQg KG9yIHZhcmlvdXMgcGxhdGZvcm0tc3BlY2lmaWMKICMgc3BlbGxpbmdzIHRoZXJlb2YpIHRoZW4g YWRkIHRoYXQgdG8gTERGTEFHUy4gIFRoaXMgaXMgbXVjaCBlYXNpZXIgdGhhbgogIyB0cnlpbmcg dG8gZmlsdGVyIExJQlMgdG8gdGhlIG1pbmltdW0gZm9yIGVhY2ggZXhlY3V0YWJsZS4KZGlmZiAt LWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCAwMWIzYmJjMWJlOC4uZDUx M2QzNzRmM2UgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAg LTIyNSwxMSArMjI1LDE2IEBAIEFDX1NVQlNUKERUUkFDRUZMQUdTKV0pCiBBQ19TVUJTVChlbmFi bGVfZHRyYWNlKQogCiAjCi0jIFRBUCB0ZXN0cworIyBUZXN0IGZyYW1ld29ya3MKICMKIFBHQUNf QVJHX0JPT0woZW5hYmxlLCB0YXAtdGVzdHMsIG5vLAotICAgICAgICAgICAgICBbZW5hYmxlIFRB UCB0ZXN0cyAocmVxdWlyZXMgUGVybCBhbmQgSVBDOjpSdW4pXSkKKyAgICAgICAgICAgICAgW2Vu YWJsZSAoUGVybC1iYXNlZCkgVEFQIHRlc3RzIChyZXF1aXJlcyBQZXJsIGFuZCBJUEM6OlJ1bild KQogQUNfU1VCU1QoZW5hYmxlX3RhcF90ZXN0cykKKworUEdBQ19BUkdfQk9PTChlbmFibGUsIHB5 dGVzdCwgbm8sCisgICAgICAgICAgICAgIFtlbmFibGUgKFB5dGhvbi1iYXNlZCkgcHl0ZXN0IHN1 aXRlcyAocmVxdWlyZXMgUHl0aG9uKV0pCitBQ19TVUJTVChlbmFibGVfcHl0ZXN0KQorCiBBQ19B UkdfVkFSKFBHX1RFU1RfRVhUUkEsCiAgICAgICAgICAgIFtlbmFibGUgc2VsZWN0ZWQgZXh0cmEg dGVzdHMgKG92ZXJyaWRkZW4gYXQgcnVudGltZSBieSBQR19URVNUX0VYVFJBIGVudmlyb25tZW50 IHZhcmlhYmxlKV0pCiAKQEAgLTI0MTIsNiArMjQxNywyMiBAQCBpZiB0ZXN0ICIkZW5hYmxlX3Rh cF90ZXN0cyIgPSB5ZXM7IHRoZW4KICAgZmkKIGZpCiAKK2lmIHRlc3QgIiRlbmFibGVfcHl0ZXN0 IiA9IHllczsgdGhlbgorICBQR0FDX1BBVEhfUFJPR1MoUFlURVNULCBweXRlc3QgcHkudGVzdCkK KyAgaWYgdGVzdCAteiAiJFBZVEVTVCI7IHRoZW4KKyAgICBBQ19NU0dfRVJST1IoW3B5dGVzdCBu b3QgZm91bmRdKQorICBmaQorICBBQ19NU0dfQ0hFQ0tJTkcoZm9yIFB5dGhvbiBwYWNrYWdlcyBy ZXF1aXJlZCBmb3IgcHl0ZXN0KQorICBbbW9kdWxlc3RkZXJyPWAkUFlURVNUIC1jICIkc3JjZGly L3B5dGVzdC5pbmkiIC0tY29uZmN1dGRpcj0iJHNyY2Rpci9jb25maWciIC0tY2FwdHVyZT1ubyAi JHNyY2Rpci9jb25maWcvY2hlY2tfcHl0ZXN0LnB5IiAtLXJlcXVpcmVtZW50cyAiJHNyY2Rpci9j b25maWcvcHl0ZXN0LXJlcXVpcmVtZW50cy50eHQiIDI+JjEgPi9kZXYvbnVsbGBdCisgIGlmIHRl c3QgJD8gLWVxIDA7IHRoZW4KKyAgICBlY2hvICIkbW9kdWxlc3RkZXJyIiA+JkFTX01FU1NBR0Vf TE9HX0ZECisgICAgQUNfTVNHX1JFU1VMVCh5ZXMpCisgIGVsc2UKKyAgICBBQ19NU0dfUkVTVUxU KFskbW9kdWxlc3RkZXJyXSkKKyAgICBBQ19NU0dfRVJST1IoW0FkZGl0aW9uYWwgUHl0aG9uIHBh Y2thZ2VzIGFyZSByZXF1aXJlZCB0byBydW4gdGhlIHB5dGVzdCBzdWl0ZXNdKQorICBmaQorZmkK KwogIyBJZiBjb21waWxlciB3aWxsIHRha2UgLVdsLC0tYXMtbmVlZGVkIChvciB2YXJpb3VzIHBs YXRmb3JtLXNwZWNpZmljCiAjIHNwZWxsaW5ncyB0aGVyZW9mKSB0aGVuIGFkZCB0aGF0IHRvIExE RkxBR1MuICBUaGlzIGlzIG11Y2ggZWFzaWVyIHRoYW4KICMgdHJ5aW5nIHRvIGZpbHRlciBMSUJT IHRvIHRoZSBtaW5pbXVtIGZvciBlYWNoIGV4ZWN1dGFibGUuCmRpZmYgLS1naXQgYS9tZXNvbi5i dWlsZCBiL21lc29uLmJ1aWxkCmluZGV4IDU1MWUyN2Y1ZWIzLi5lMjdjOGFkNDQ1NSAxMDA2NDQK LS0tIGEvbWVzb24uYnVpbGQKKysrIGIvbWVzb24uYnVpbGQKQEAgLTE3MTEsNiArMTcxMSwzOSBA QCBlbmRpZgogCiAKIAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIExpYnJhcnk6IHB5dGVzdAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK3B5dGVz dF9lbmFibGVkID0gZmFsc2UKK3B5dGVzdCA9IG5vdF9mb3VuZF9kZXAKKworcHl0ZXN0b3B0ID0g Z2V0X29wdGlvbigncHl0ZXN0JykKK2lmIG5vdCBweXRlc3RvcHQuZGlzYWJsZWQoKQorICBweXRl c3QgPSBmaW5kX3Byb2dyYW0oZ2V0X29wdGlvbignUFlURVNUJyksIG5hdGl2ZTogdHJ1ZSwgcmVx dWlyZWQ6IHB5dGVzdG9wdCkKKyAgaWYgcHl0ZXN0LmZvdW5kKCkKKyAgICBweXRlc3RfY2hlY2sg PSBydW5fY29tbWFuZChweXRlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy1j JywgJ3B5dGVzdC5pbmknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWNvbmZj dXRkaXI9Y29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1jYXB0dXJl PW5vJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlnL2NoZWNrX3B5dGVz dC5weScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tcmVxdWlyZW1lbnRzJywg J2NvbmZpZy9weXRlc3QtcmVxdWlyZW1lbnRzLnR4dCcsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2hlY2s6IGZhbHNlKQorICAgIGlmIHB5dGVzdF9jaGVjay5yZXR1cm5jb2RlKCkg IT0gMAorICAgICAgbWVzc2FnZShweXRlc3RfY2hlY2suc3RkZXJyKCkpCisgICAgICBpZiBweXRl c3RvcHQuZW5hYmxlZCgpCisgICAgICAgIGVycm9yKCdBZGRpdGlvbmFsIFB5dGhvbiBwYWNrYWdl cyBhcmUgcmVxdWlyZWQgdG8gcnVuIHRoZSBweXRlc3Qgc3VpdGVzLicpCisgICAgICBlbHNlCisg ICAgICAgIHdhcm5pbmcoJ0FkZGl0aW9uYWwgUHl0aG9uIHBhY2thZ2VzIGFyZSByZXF1aXJlZCB0 byBydW4gdGhlIHB5dGVzdCBzdWl0ZXMuJykKKyAgICAgIGVuZGlmCisgICAgZWxzZQorICAgICAg cHl0ZXN0X2VuYWJsZWQgPSB0cnVlCisgICAgZW5kaWYKKyAgZW5kaWYKK2VuZGlmCisKKworCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKICMgTGlicmFyeTogenN0ZAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCkBAIC0zODA4LDYgKzM4NDEsNjMgQEAgZm9y ZWFjaCB0ZXN0X2RpciA6IHRlc3RzCiAgICAgICAgICkKICAgICAgIGVuZGZvcmVhY2gKICAgICAg IGluc3RhbGxfc3VpdGVzICs9IHRlc3RfZ3JvdXAKKyAgICBlbGlmIGtpbmQgPT0gJ3B5dGVzdCcK KyAgICAgIHRlc3R3cmFwX3B5dGVzdCA9IHRlc3R3cmFwX2Jhc2UKKyAgICAgIGlmIG5vdCBweXRl c3RfZW5hYmxlZAorICAgICAgICB0ZXN0d3JhcF9weXRlc3QgKz0gWyctLXNraXAnLCAncHl0ZXN0 IG5vdCBlbmFibGVkJ10KKyAgICAgIGVuZGlmCisKKyAgICAgIHRlc3RfY29tbWFuZCA9IFsKKyAg ICAgICAgcHl0ZXN0LmZ1bGxfcGF0aCgpLAorICAgICAgICAnLWMnLCBtZXNvbi5wcm9qZWN0X3Nv dXJjZV9yb290KCkgLyAncHl0ZXN0LmluaScsCisgICAgICAgICctLXZlcmJvc2UnLAorICAgICAg ICAnLXAnLCAncGd0YXAnLCAgIyBlbmFibGUgb3VyIHRlc3QgcmVwb3J0ZXIgcGx1Z2luCisgICAg ICAgICctcmEnLCAgIyBzaG93IHNraXBwZWQgYW5kIHhmYWlsZWQgdGVzdHMgdG9vCisgICAgICBd CisKKyAgICAgICMgQWRkIHRlbXBvcmFyeSBpbnN0YWxsLCB0aGUgYnVpbGQgZGlyZWN0b3J5IGZv ciBub24taW5zdGFsbGVkIGJpbmFyaWVzIGFuZAorICAgICAgIyBhbHNvIHRlc3QvIGZvciBub24t aW5zdGFsbGVkIHRlc3QgYmluYXJpZXMgYnVpbHQgc2VwYXJhdGVseS4KKyAgICAgIGVudiA9IHRl c3RfZW52CisgICAgICBlbnYucHJlcGVuZCgnUEFUSCcsIHRlbXBfaW5zdGFsbF9iaW5kaXIsIHRl c3RfZGlyWydiZCddLCB0ZXN0X2RpclsnYmQnXSAvICd0ZXN0JykKKyAgICAgIHRlbXBfaW5zdGFs bF9kYXRhZGlyID0gJ0AwQEAxQCcuZm9ybWF0KHRlc3RfaW5zdGFsbF9kZXN0ZGlyLCBkaXJfcHJl Zml4IC8gZGlyX2RhdGEpCisgICAgICBlbnYuc2V0KCdzaGFyZV9jb250cmliX2RpcicsIHRlbXBf aW5zdGFsbF9kYXRhZGlyIC8gJ2NvbnRyaWInKQorICAgICAgZW52LnByZXBlbmQoJ1BZVEhPTlBB VEgnLCBtZXNvbi5wcm9qZWN0X3NvdXJjZV9yb290KCkgLyAnc3JjJyAvICd0ZXN0JyAvICdweXRl c3QnIC8gJ3BsdWdpbnMnKQorCisgICAgICBmb3JlYWNoIG5hbWUsIHZhbHVlIDogdC5nZXQoJ2Vu dicsIHt9KQorICAgICAgICBlbnYuc2V0KG5hbWUsIHZhbHVlKQorICAgICAgZW5kZm9yZWFjaAor CisgICAgICB0ZXN0X2dyb3VwID0gdGVzdF9kaXJbJ25hbWUnXQorICAgICAgdGVzdF9rd2FyZ3Mg PSB7CisgICAgICAgICdwcm90b2NvbCc6ICd0YXAnLAorICAgICAgICAnc3VpdGUnOiB0ZXN0X2dy b3VwLAorICAgICAgICAndGltZW91dCc6IDEwMDAsCisgICAgICAgICdkZXBlbmRzJzogdGVzdF9k ZXBzICsgdC5nZXQoJ2RlcHMnLCBbXSksCisgICAgICAgICdlbnYnOiBlbnYsCisgICAgICB9ICsg dC5nZXQoJ3Rlc3Rfa3dhcmdzJywge30pCisKKyAgICAgIGZvcmVhY2ggb25ldGVzdCA6IHRbJ3Rl c3RzJ10KKyAgICAgICAgIyBNYWtlIHRlc3QgbmFtZXMgcHJldHRpZXIsIHJlbW92ZSBweXQvIGFu ZCAucHkKKyAgICAgICAgb25ldGVzdF9wID0gb25ldGVzdAorICAgICAgICBpZiBvbmV0ZXN0X3Au c3RhcnRzd2l0aCgncHl0LycpCisgICAgICAgICAgb25ldGVzdF9wID0gb25ldGVzdC5zcGxpdCgn cHl0LycpWzFdCisgICAgICAgIGVuZGlmCisgICAgICAgIGlmIG9uZXRlc3RfcC5lbmRzd2l0aCgn LnB5JykKKyAgICAgICAgICBvbmV0ZXN0X3AgPSBmcy5zdGVtKG9uZXRlc3RfcCkKKyAgICAgICAg ZW5kaWYKKworICAgICAgICB0ZXN0KHRlc3RfZGlyWyduYW1lJ10gLyBvbmV0ZXN0X3AsCisgICAg ICAgICAgcHl0aG9uLAorICAgICAgICAgIGt3YXJnczogdGVzdF9rd2FyZ3MsCisgICAgICAgICAg YXJnczogdGVzdHdyYXBfcHl0ZXN0ICsgWworICAgICAgICAgICAgJy0tdGVzdGdyb3VwJywgdGVz dF9kaXJbJ25hbWUnXSwKKyAgICAgICAgICAgICctLXRlc3RuYW1lJywgb25ldGVzdF9wLAorICAg ICAgICAgICAgJy0tJywgdGVzdF9jb21tYW5kLAorICAgICAgICAgICAgdGVzdF9kaXJbJ3NkJ10g LyBvbmV0ZXN0LAorICAgICAgICAgIF0sCisgICAgICAgICkKKyAgICAgIGVuZGZvcmVhY2gKKyAg ICAgIGluc3RhbGxfc3VpdGVzICs9IHRlc3RfZ3JvdXAKICAgICBlbHNlCiAgICAgICBlcnJvcign dW5rbm93biBraW5kIEAwQCBvZiB0ZXN0IGluIEAxQCcuZm9ybWF0KGtpbmQsIHRlc3RfZGlyWydz ZCddKSkKICAgICBlbmRpZgpAQCAtMzk4Miw2ICs0MDcyLDcgQEAgc3VtbWFyeSgKICAgICAnZHRy YWNlJzogZHRyYWNlLAogICAgICdmbGV4JzogJ0AwQCBAMUAnLmZvcm1hdChmbGV4LmZ1bGxfcGF0 aCgpLCBmbGV4X3ZlcnNpb24pLAogICAgICdwcm92ZSc6IHByb3ZlLAorICAgICdweXRlc3QnOiBw eXRlc3QsCiAgIH0sCiAgIHNlY3Rpb246ICdQcm9ncmFtcycsCiApCkBAIC00MDIyLDYgKzQxMTMs NyBAQCBzdW1tYXJ5KAogc3VtbWFyeSgKICAgewogICAgICd0YXAnOiB0YXBfdGVzdHNfZW5hYmxl ZCwKKyAgICAncHl0ZXN0JzogcHl0ZXN0X2VuYWJsZWQsCiAgIH0sCiAgIHNlY3Rpb246ICdPdGhl ciBmZWF0dXJlcycsCiAgIGxpc3Rfc2VwOiAnICcsCmRpZmYgLS1naXQgYS9tZXNvbl9vcHRpb25z LnR4dCBiL21lc29uX29wdGlvbnMudHh0CmluZGV4IDA2YmY1NjI3ZDNjLi44OGYyMmU2OTlkOSAx MDA2NDQKLS0tIGEvbWVzb25fb3B0aW9ucy50eHQKKysrIGIvbWVzb25fb3B0aW9ucy50eHQKQEAg LTQxLDcgKzQxLDEwIEBAIG9wdGlvbignY2Fzc2VydCcsIHR5cGU6ICdib29sZWFuJywgdmFsdWU6 IGZhbHNlLAogICBkZXNjcmlwdGlvbjogJ0VuYWJsZSBhc3NlcnRpb24gY2hlY2tzIChmb3IgZGVi dWdnaW5nKScpCiAKIG9wdGlvbigndGFwX3Rlc3RzJywgdHlwZTogJ2ZlYXR1cmUnLCB2YWx1ZTog J2F1dG8nLAotICBkZXNjcmlwdGlvbjogJ0VuYWJsZSBUQVAgdGVzdHMnKQorICBkZXNjcmlwdGlv bjogJ0VuYWJsZSAoUGVybC1iYXNlZCkgVEFQIHRlc3RzJykKKworb3B0aW9uKCdweXRlc3QnLCB0 eXBlOiAnZmVhdHVyZScsIHZhbHVlOiAnYXV0bycsCisgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIChQ eXRob24tYmFzZWQpIHB5dGVzdCBzdWl0ZXMnKQogCiBvcHRpb24oJ2luamVjdGlvbl9wb2ludHMn LCB0eXBlOiAnYm9vbGVhbicsIHZhbHVlOiBmYWxzZSwKICAgZGVzY3JpcHRpb246ICdFbmFibGUg aW5qZWN0aW9uIHBvaW50cycpCkBAIC0xOTUsNiArMTk4LDkgQEAgb3B0aW9uKCdQRVJMJywgdHlw ZTogJ3N0cmluZycsIHZhbHVlOiAncGVybCcsCiBvcHRpb24oJ1BST1ZFJywgdHlwZTogJ3N0cmlu ZycsIHZhbHVlOiAncHJvdmUnLAogICBkZXNjcmlwdGlvbjogJ1BhdGggdG8gcHJvdmUgYmluYXJ5 JykKIAorb3B0aW9uKCdQWVRFU1QnLCB0eXBlOiAnYXJyYXknLCB2YWx1ZTogWydweXRlc3QnLCAn cHkudGVzdCddLAorICBkZXNjcmlwdGlvbjogJ1BhdGggdG8gcHl0ZXN0IGJpbmFyeScpCisKIG9w dGlvbignUFlUSE9OJywgdHlwZTogJ2FycmF5JywgdmFsdWU6IFsncHl0aG9uMycsICdweXRob24n XSwKICAgZGVzY3JpcHRpb246ICdQYXRoIHRvIHB5dGhvbiBiaW5hcnknKQogCmRpZmYgLS1naXQg YS9weXRlc3QuaW5pIGIvcHl0ZXN0LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uOGU4Mzg4ZjNhZmMKLS0tIC9kZXYvbnVsbAorKysgYi9weXRlc3QuaW5pCkBAIC0w LDAgKzEsNiBAQAorW3B5dGVzdF0KK21pbnZlcnNpb24gPSA3LjAKKworIyBJZ25vcmUgLi9jb25m aWcgKHdoaWNoIGNvbnRhaW5zIHRoZSBjb25maWd1cmUtdGltZSBjaGVja19weXRlc3QucHkgdGVz dHMpIGJ5CisjIGRlZmF1bHQuCithZGRvcHRzID0gLS1pZ25vcmUgLi9jb25maWcKZGlmZiAtLWdp dCBhL3NyYy9NYWtlZmlsZS5nbG9iYWwuaW4gYi9zcmMvTWFrZWZpbGUuZ2xvYmFsLmluCmluZGV4 IDM3MWNkN2ViYTJjLi4zOWU2NzM1ODI4OSAxMDA2NDQKLS0tIGEvc3JjL01ha2VmaWxlLmdsb2Jh bC5pbgorKysgYi9zcmMvTWFrZWZpbGUuZ2xvYmFsLmluCkBAIC0yMTEsNiArMjExLDcgQEAgZW5h YmxlX2R0cmFjZQk9IEBlbmFibGVfZHRyYWNlQAogZW5hYmxlX2NvdmVyYWdlCT0gQGVuYWJsZV9j b3ZlcmFnZUAKIGVuYWJsZV9pbmplY3Rpb25fcG9pbnRzID0gQGVuYWJsZV9pbmplY3Rpb25fcG9p bnRzQAogZW5hYmxlX3RhcF90ZXN0cwk9IEBlbmFibGVfdGFwX3Rlc3RzQAorZW5hYmxlX3B5dGVz dAk9IEBlbmFibGVfcHl0ZXN0QAogCiBweXRob25faW5jbHVkZXNwZWMJPSBAcHl0aG9uX2luY2x1 ZGVzcGVjQAogcHl0aG9uX2xpYmRpcgkJPSBAcHl0aG9uX2xpYmRpckAKQEAgLTM1NCw2ICszNTUs NyBAQCBNU0dGTVQgID0gQE1TR0ZNVEAKIE1TR0ZNVF9GTEFHUyA9IEBNU0dGTVRfRkxBR1NACiBN U0dNRVJHRSA9IEBNU0dNRVJHRUAKIE9QRU5TU0wJPSBAT1BFTlNTTEAKK1BZVEVTVAk9IEBQWVRF U1RACiBQWVRIT04JPSBAUFlUSE9OQAogVEFSCT0gQFRBUkAKIFhHRVRURVhUID0gQFhHRVRURVhU QApAQCAtNTA4LDYgKzUxMCwyNyBAQCBwcm92ZV9pbnN0YWxsY2hlY2sgPSBAZWNobyAiVEFQIHRl c3RzIG5vdCBlbmFibGVkLiBUcnkgY29uZmlndXJpbmcgd2l0aCAtLWVuYWJsZQogcHJvdmVfY2hl Y2sgPSAkKHByb3ZlX2luc3RhbGxjaGVjaykKIGVuZGlmCiAKK2lmZXEgKCQoZW5hYmxlX3B5dGVz dCkseWVzKQorCitweXRlc3RfaW5zdGFsbGNoZWNrID0gQGVjaG8gIkluc3RhbGxjaGVjayBpcyBu b3QgY3VycmVudGx5IHN1cHBvcnRlZCBmb3IgcHl0ZXN0LiIKKworZGVmaW5lIHB5dGVzdF9jaGVj aworZWNobyAiIyArKysgcHl0ZXN0IGNoZWNrIGluICQoc3ViZGlyKSArKysiICYmIFwKK3JtIC1y ZiAnJChDVVJESVIpJy90bXBfY2hlY2sgJiYgXAorJChNS0RJUl9QKSAnJChDVVJESVIpJy90bXBf Y2hlY2sgJiYgXAorY2QgJChzcmNkaXIpICYmIFwKKyAgIFRFU1RMT0dESVI9JyQoQ1VSRElSKS90 bXBfY2hlY2svbG9nJyBcCisgICBURVNUREFUQURJUj0nJChDVVJESVIpL3RtcF9jaGVjaycgXAor ICAgUFlUSE9OUEFUSD0nJChhYnNfdG9wX3NyY2Rpcikvc3JjL3Rlc3QvcHl0ZXN0L3BsdWdpbnM6 JCRQWVRIT05QQVRIJyBcCisgICAkKHdpdGhfdGVtcF9pbnN0YWxsKSBcCisgICAkKFBZVEVTVCkg LWMgJyQoYWJzX3RvcF9zcmNkaXIpL3B5dGVzdC5pbmknIC0tdmVyYm9zZSAtcmEgLi9weXQvCitl bmRlZgorCitlbHNlCitweXRlc3RfaW5zdGFsbGNoZWNrID0gQGVjaG8gInB5dGVzdCBpcyBub3Qg ZW5hYmxlZC4gVHJ5IGNvbmZpZ3VyaW5nIHdpdGggLS1lbmFibGUtcHl0ZXN0IgorcHl0ZXN0X2No ZWNrID0gJChweXRlc3RfaW5zdGFsbGNoZWNrKQorZW5kaWYKKwogIyBJbnN0YWxsYXRpb24uCiAK IGluc3RhbGxfYmluID0gQGluc3RhbGxfYmluQApkaWZmIC0tZ2l0IGEvc3JjL21ha2VmaWxlcy9t ZXNvbi5idWlsZCBiL3NyYy9tYWtlZmlsZXMvbWVzb24uYnVpbGQKaW5kZXggYzZlZGYxNGVjNDQu LjViOWE4MDRhYTk0IDEwMDY0NAotLS0gYS9zcmMvbWFrZWZpbGVzL21lc29uLmJ1aWxkCisrKyBi L3NyYy9tYWtlZmlsZXMvbWVzb24uYnVpbGQKQEAgLTU2LDYgKzU2LDcgQEAgcGd4c19rdiA9IHsK ICAgJ2VuYWJsZV9ubHMnOiBsaWJpbnRsLmZvdW5kKCkgPyAneWVzJyA6ICdubycsCiAgICdlbmFi bGVfaW5qZWN0aW9uX3BvaW50cyc6IGdldF9vcHRpb24oJ2luamVjdGlvbl9wb2ludHMnKSA/ICd5 ZXMnIDogJ25vJywKICAgJ2VuYWJsZV90YXBfdGVzdHMnOiB0YXBfdGVzdHNfZW5hYmxlZCA/ICd5 ZXMnIDogJ25vJywKKyAgJ2VuYWJsZV9weXRlc3QnOiBweXRlc3RfZW5hYmxlZCA/ICd5ZXMnIDog J25vJywKICAgJ2VuYWJsZV9kZWJ1Zyc6IGdldF9vcHRpb24oJ2RlYnVnJykgPyAneWVzJyA6ICdu bycsCiAgICdlbmFibGVfY292ZXJhZ2UnOiAnbm8nLAogICAnZW5hYmxlX2R0cmFjZSc6IGR0cmFj ZS5mb3VuZCgpID8gJ3llcycgOiAnbm8nLApAQCAtMTQ1LDYgKzE0Niw3IEBAIHBneHNfYmlucyA9 IHsKICAgJ09QRU5TU0wnOiBvcGVuc3NsLAogICAnUEVSTCc6IHBlcmwsCiAgICdQUk9WRSc6IHBy b3ZlLAorICAnUFlURVNUJzogcHl0ZXN0LAogICAnUFlUSE9OJzogcHl0aG9uLAogICAnVEFSJzog dGFyLAogICAnWlNURCc6IHByb2dyYW1fenN0ZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L01ha2Vm aWxlIGIvc3JjL3Rlc3QvTWFrZWZpbGUKaW5kZXggNTExYTcyZTYyMzguLjBiZTk3NzFkNzFmIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9NYWtlZmlsZQorKysgYi9zcmMvdGVzdC9NYWtlZmlsZQpAQCAt MTIsNyArMTIsMTYgQEAgc3ViZGlyID0gc3JjL3Rlc3QKIHRvcF9idWlsZGRpciA9IC4uLy4uCiBp bmNsdWRlICQodG9wX2J1aWxkZGlyKS9zcmMvTWFrZWZpbGUuZ2xvYmFsCiAKLVNVQkRJUlMgPSBw ZXJsIHBvc3RtYXN0ZXIgcmVncmVzcyBpc29sYXRpb24gbW9kdWxlcyBhdXRoZW50aWNhdGlvbiBy ZWNvdmVyeSBzdWJzY3JpcHRpb24KK1NVQkRJUlMgPSBcCisJYXV0aGVudGljYXRpb24gXAorCWlz b2xhdGlvbiBcCisJbW9kdWxlcyBcCisJcGVybCBcCisJcG9zdG1hc3RlciBcCisJcHl0ZXN0IFwK KwlyZWNvdmVyeSBcCisJcmVncmVzcyBcCisJc3Vic2NyaXB0aW9uCiAKIGlmZXEgKCQod2l0aF9p Y3UpLHllcykKIFNVQkRJUlMgKz0gaWN1CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tZXNvbi5idWls ZCBiL3NyYy90ZXN0L21lc29uLmJ1aWxkCmluZGV4IGNjYzMxZDZhODZhLi5kMDhhNmVmNjFjMiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvbWVzb24uYnVp bGQKQEAgLTUsNiArNSw3IEBAIHN1YmRpcignaXNvbGF0aW9uJykKIAogc3ViZGlyKCdhdXRoZW50 aWNhdGlvbicpCiBzdWJkaXIoJ3Bvc3RtYXN0ZXInKQorc3ViZGlyKCdweXRlc3QnKQogc3ViZGly KCdyZWNvdmVyeScpCiBzdWJkaXIoJ3N1YnNjcmlwdGlvbicpCiBzdWJkaXIoJ21vZHVsZXMnKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L01ha2VmaWxlIGIvc3JjL3Rlc3QvcHl0ZXN0L01h a2VmaWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYmRjYTk2Y2Ni ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9NYWtlZmlsZQpAQCAtMCwwICsx LDIwIEBACisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBNYWtlZmlsZSBmb3IgcHl0ZXN0CisjCisj IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorIyBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2Yg dGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorIworIyBzcmMvdGVzdC9weXRlc3QvTWFrZWZp bGUKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3N1YmRpciA9IHNyYy90ZXN0L3B5dGVzdAordG9w X2J1aWxkZGlyID0gLi4vLi4vLi4KK2luY2x1ZGUgJCh0b3BfYnVpbGRkaXIpL3NyYy9NYWtlZmls ZS5nbG9iYWwKKworY2hlY2s6CisJJChweXRlc3RfY2hlY2spCisKK2NsZWFuIGRpc3RjbGVhbiBt YWludGFpbmVyLWNsZWFuOgorCXJtIC1yZiB0bXBfY2hlY2sKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3B5dGVzdC9SRUFETUUgYi9zcmMvdGVzdC9weXRlc3QvUkVBRE1FCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xMzMzZWQ3N2I3ZQotLS0gL2Rldi9udWxsCisrKyBiL3Ny Yy90ZXN0L3B5dGVzdC9SRUFETUUKQEAgLTAsMCArMSBAQAorVE9ETwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcHl0ZXN0L21lc29uLmJ1aWxkCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYmQxMjhkZmEyNAotLS0gL2Rl di9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZApAQCAtMCwwICsxLDE2IEBA CisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKworaWYgbm90IHB5dGVzdF9lbmFibGVkCisgIHN1YmRpcl9kb25lKCkKK2VuZGlmCisKK3Rl c3RzICs9IHsKKyAgJ25hbWUnOiAncHl0ZXN0JywKKyAgJ3NkJzogbWVzb24uY3VycmVudF9zb3Vy Y2VfZGlyKCksCisgICdiZCc6IG1lc29uLmN1cnJlbnRfYnVpbGRfZGlyKCksCisgICdweXRlc3Qn OiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3B5dC90ZXN0X3NvbWV0aGluZy5weScsCisgICAg XSwKKyAgfSwKK30KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9wbHVnaW5zL3BndGFwLnB5 IGIvc3JjL3Rlc3QvcHl0ZXN0L3BsdWdpbnMvcGd0YXAucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjZhNzI5ZDI1MmUxCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rl c3QvcHl0ZXN0L3BsdWdpbnMvcGd0YXAucHkKQEAgLTAsMCArMSwxOTIgQEAKKyMgQ29weXJpZ2h0 IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQg b3MKK2ltcG9ydCBzeXMKKworaW1wb3J0IHB5dGVzdAorCisjCisjIEhlbHBlcnMKKyMKKworCitj bGFzcyBUQVA6CisgICAgIiIiCisgICAgQSBiYXNpYyBBUEkgZm9yIHJlcG9ydGluZyB2aWEgdGhl IFRBUCBwcm90b2NvbC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAg ICAgc2VsZi5jb3VudCA9IDAKKworICAgICAgICAjIFhYWCBpbnRlcmFjdHMgcG9vcmx5IHdpdGgg dGVzdHdyYXAncyBib2lsZXJwbGF0ZSBkaWFnbm9zdGljcworICAgICAgICAjIHNlbGYucHJpbnQo IlRBUCB2ZXJzaW9uIDEzIikKKworICAgIGRlZiBleHBlY3Qoc2VsZiwgbnVtOiBpbnQpOgorICAg ICAgICBzZWxmLnByaW50KGYiMS4ue251bX0iKQorCisgICAgZGVmIHByaW50KHNlbGYsICphcmdz KToKKyAgICAgICAgcHJpbnQoKmFyZ3MsIGZpbGU9c3lzLl9fc3Rkb3V0X18pCisKKyAgICBkZWYg b2soc2VsZiwgbmFtZTogc3RyKToKKyAgICAgICAgc2VsZi5jb3VudCArPSAxCisgICAgICAgIHNl bGYucHJpbnQoIm9rIiwgc2VsZi5jb3VudCwgIi0iLCBuYW1lKQorCisgICAgZGVmIHNraXAoc2Vs ZiwgbmFtZTogc3RyLCByZWFzb246IHN0cik6CisgICAgICAgIHNlbGYuY291bnQgKz0gMQorICAg ICAgICBzZWxmLnByaW50KCJvayIsIHNlbGYuY291bnQsICItIiwgbmFtZSwgIiMgc2tpcCIsIHJl YXNvbikKKworICAgIGRlZiBmYWlsKHNlbGYsIG5hbWU6IHN0ciwgZGV0YWlsczogc3RyKToKKyAg ICAgICAgc2VsZi5jb3VudCArPSAxCisgICAgICAgIHNlbGYucHJpbnQoIm5vdCBvayIsIHNlbGYu Y291bnQsICItIiwgbmFtZSkKKworICAgICAgICAjIG10ZXN0IGhhcyBzb21lIG9kZCBiZWhhdmlv ciBhcm91bmQgVEFQIHRlc3RzIHdoZXJlIGl0IHdvbid0IHByaW50CisgICAgICAgICMgZGlhZ25v c3RpY3Mgb24gZmFpbHVyZSBpZiB0aGV5J3JlIHBhcnQgb2YgdGhlIHN0ZG91dCBzdHJlYW0sIHNv IHdlCisgICAgICAgICMgbWlnaHQgYXMgd2VsbCBqdXN0IGR1bXAgdGhlIGRldGFpbHMgZGlyZWN0 bHkgdG8gc3RkZXJyIGluc3RlYWQuCisgICAgICAgIHByaW50KGRldGFpbHMsIGZpbGU9c3lzLl9f c3RkZXJyX18pCisKKwordGFwID0gVEFQKCkKKworCitjbGFzcyBUZXN0Tm90ZXM6CisgICAgIiIi CisgICAgQW5ub3RhdGlvbnMgZm9yIGEgc2luZ2xlIHRlc3QuIFRoZSBleGlzdGluZyBweXRlc3Qg aG9va3Mga2VlcCBpbnRlcmVzdGluZworICAgIGluZm9ybWF0aW9uIHNvbWV3aGF0IHNlcGFyYXRl ZCBhY3Jvc3MgdGhlIGRpZmZlcmVudCBzdGFnZXMKKyAgICAoc2V0dXAvdGVzdC90ZWFyZG93biks IHNvIHRoaXMgY2xhc3MgaXMgdXNlZCB0byBjb3JyZWxhdGUgdGhlbS4KKyAgICAiIiIKKworICAg IHNraXBwZWQgPSBGYWxzZQorICAgIHNraXBfcmVhc29uID0gTm9uZQorCisgICAgZmFpbGVkID0g RmFsc2UKKyAgICBkZXRhaWxzID0gIiIKKworCisjIFJlZ2lzdGVyIGEgY3VzdG9tIGtleSBpbiB0 aGUgc3Rhc2ggZGljdGlvbmFyeSBmb3Iga2VlcGluZyBvdXIgVGVzdE5vdGVzLgorbm90ZXNfa2V5 ID0gcHl0ZXN0LlN0YXNoS2V5W1Rlc3ROb3Rlc10oKQorCisKKyMKKyMgSG9vayBJbXBsZW1lbnRh dGlvbnMKKyMKKworCitAcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCitkZWYgcHl0ZXN0 X2NvbmZpZ3VyZShjb25maWcpOgorICAgICIiIgorICAgIEhpamFja3MgdGhlIHN0YW5kYXJkIHN0 cmVhbXMgYXMgc29vbiBhcyBwb3NzaWJsZSBkdXJpbmcgcHl0ZXN0IHN0YXJ0dXAuIFRoZQorICAg IHB5dGVzdC1mb3JtYXR0ZWQgb3V0cHV0IGdldHMgbG9nZ2VkIHRvIGZpbGUgaW5zdGVhZCwgYW5k IHdlJ2xsIHVzZSB0aGUKKyAgICBvcmlnaW5hbCBzeXMuX19zdGRvdXRfXy9fX3N0ZGVycl9fIHN0 cmVhbXMgZm9yIHRoZSBUQVAgcHJvdG9jb2wuCisgICAgIiIiCisgICAgbG9nZGlyID0gb3MuZ2V0 ZW52KCJURVNUTE9HRElSIikKKyAgICBpZiBub3QgbG9nZGlyOgorICAgICAgICByYWlzZSBSdW50 aW1lRXJyb3IoInBndGFwIHJlcXVpcmVzIHRoZSBURVNUTE9HRElSIGVudnZhciB0byBiZSBzZXQi KQorCisgICAgb3MubWFrZWRpcnMobG9nZGlyKQorICAgIGxvZ3BhdGggPSBvcy5wYXRoLmpvaW4o bG9nZGlyLCAicHl0ZXN0LmxvZyIpCisgICAgc3lzLnN0ZG91dCA9IHN5cy5zdGRlcnIgPSBvcGVu KGxvZ3BhdGgsICJhIiwgYnVmZmVyaW5nPTEpCisKKworQHB5dGVzdC5ob29raW1wbCh0cnlsYXN0 PVRydWUpCitkZWYgcHl0ZXN0X3Nlc3Npb25maW5pc2goc2Vzc2lvbiwgZXhpdHN0YXR1cyk6Cisg ICAgIiIiCisgICAgU3VwcHJlc3NlcyBub256ZXJvIGV4aXQgY29kZXMgZHVlIHRvIGZhaWxlZCB0 ZXN0cy4gKEluIHRoYXQgY2FzZSwgd2Ugd2FudAorICAgIE1lc29uIHRvIHJlcG9ydCBhIGZhaWx1 cmUgY291bnQsIG5vdCBhIGdlbmVyaWMgRVJST1IuKQorICAgICIiIgorICAgIGlmIGV4aXRzdGF0 dXMgPT0gcHl0ZXN0LkV4aXRDb2RlLlRFU1RTX0ZBSUxFRDoKKyAgICAgICAgc2Vzc2lvbi5leGl0 c3RhdHVzID0gcHl0ZXN0LkV4aXRDb2RlLk9LCisKKworQHB5dGVzdC5ob29raW1wbAorZGVmIHB5 dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydCk6CisgICAgIyBJbmNsdWRlIGNvbGxlY3Rpb24gZmFp bHVyZXMgZGlyZWN0bHkgaW4gTWVzb24gZXJyb3Igb3V0cHV0LgorICAgIGlmIHJlcG9ydC5mYWls ZWQ6CisgICAgICAgIHByaW50KHJlcG9ydC5sb25ncmVwcnRleHQsIGZpbGU9c3lzLl9fc3RkZXJy X18pCisKKworQHB5dGVzdC5ob29raW1wbAorZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKGV4Y3Jl cHIsIGV4Y2luZm8pOgorICAgICMgSW5jbHVkZSBpbnRlcm5hbCBlcnJvcnMgZGlyZWN0bHkgaW4g TWVzb24gZXJyb3Igb3V0cHV0LgorICAgIHByaW50KGV4Y3JlcHIsIGZpbGU9c3lzLl9fc3RkZXJy X18pCisKKworIworIyBIb29rIFdyYXBwZXJzCisjCisjIEluIHB5dGVzdCBwYXJsYW5jZSwgYSAi d3JhcHBlciIgZm9yIGEgaG9vayBjYW4gaW5zcGVjdCBhbmQgb3B0aW9uYWxseSBtb2RpZnkKKyMg ZXhpc3RpbmcgaG9va3MnIGJlaGF2aW9yLCBidXQgaXQgZG9lcyBub3QgcmVwbGFjZSB0aGUgaG9v ayBjaGFpbi4gVGhpcyBpcyBkb25lCisjIHRocm91Z2ggYSBnZW5lcmF0b3Itc3R5bGUgQVBJIHdo aWNoIGNoYWlucyB0aGUgaG9va3MgdG9nZXRoZXIgKHNlZSB0aGUgdXNlIG9mCisjIGB5aWVsZGAp LgorIworCisKK0BweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3Rf Y29sbGVjdGlvbihzZXNzaW9uKToKKyAgICAiIiJSZXBvcnRzIHRoZSBudW1iZXIgb2YgZ2F0aGVy ZWQgdGVzdHMgYWZ0ZXIgY29sbGVjdGlvbiBpcyBmaW5pc2hlZC4iIiIKKyAgICByZXMgPSB5aWVs ZAorICAgIHRhcC5leHBlY3Qoc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZCkKKyAgICByZXR1cm4gcmVz CisKKworQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQorZGVmIHB5dGVzdF9ydW50 ZXN0X21ha2VyZXBvcnQoaXRlbSwgY2FsbCk6CisgICAgIiIiCisgICAgQW5ub3RhdGVzIGEgdGVz dCBpdGVtIHdpdGggb3VyIFRlc3ROb3RlcyBhbmQgZ3JhYnMgcmVsZXZhbnQgaW5mb3JtYXRpb24g Zm9yCisgICAgcmVwb3J0aW5nLgorCisgICAgVGhpcyBpcyBjYWxsZWQgbXVsdGlwbGUgdGltZXMg cGVyIHRlc3QsIHNvIGl0J3Mgbm90IGNvcnJlY3QgdG8gcHJpbnQgdGhlIFRBUAorICAgIHJlc3Vs dCBoZXJlLiAoQSB0ZXN0IGFuZCBpdHMgdGVhcmRvd24gc3RhZ2UgY2FuIGJvdGggZmFpbCwgYW5k IHdlIHdhbnQgdG8KKyAgICBzZWUgdGhlIGRldGFpbHMgZm9yIGJvdGguKSBXZSBpbnN0ZWFkIGNv bWJpbmUgYWxsIHRoZSBpbmZvcm1hdGlvbiBmb3IgdXNlIGJ5CisgICAgb3VyIHB5dGVzdF9ydW50 ZXN0X3Byb3RvY29sIHdyYXBwZXIgbGF0ZXIgb24uCisgICAgIiIiCisgICAgcmVzID0geWllbGQK KworICAgIGlmIG5vdGVzX2tleSBub3QgaW4gaXRlbS5zdGFzaDoKKyAgICAgICAgaXRlbS5zdGFz aFtub3Rlc19rZXldID0gVGVzdE5vdGVzKCkKKyAgICBub3RlcyA9IGl0ZW0uc3Rhc2hbbm90ZXNf a2V5XQorCisgICAgcmVwb3J0ID0gcmVzLmdldF9yZXN1bHQoKQorICAgIGlmIHJlcG9ydC5wYXNz ZWQ6CisgICAgICAgIHBhc3MgICMgbm8gYW5ub3RhdGlvbiBuZWVkZWQKKworICAgIGVsaWYgcmVw b3J0LnNraXBwZWQ6CisgICAgICAgIG5vdGVzLnNraXBwZWQgPSBUcnVlCisgICAgICAgIF8sIF8s IG5vdGVzLnNraXBfcmVhc29uID0gcmVwb3J0LmxvbmdyZXByCisKKyAgICBlbGlmIHJlcG9ydC5m YWlsZWQ6CisgICAgICAgIG5vdGVzLmZhaWxlZCA9IFRydWUKKworICAgICAgICBpZiBub3Qgbm90 ZXMuZGV0YWlsczoKKyAgICAgICAgICAgIG5vdGVzLmRldGFpbHMgKz0gIns6X143Mn1cblxuIi5m b3JtYXQoZiIge3JlcG9ydC5oZWFkX2xpbmV9ICIpCisKKyAgICAgICAgaWYgcmVwb3J0LndoZW4g aW4gKCJzZXR1cCIsICJ0ZWFyZG93biIpOgorICAgICAgICAgICAgbm90ZXMuZGV0YWlscyArPSAi XG57Ol9eNzJ9XG5cbiIuZm9ybWF0KAorICAgICAgICAgICAgICAgIGYiIEVycm9yIGR1cmluZyB7 cmVwb3J0LndoZW59IG9mIHtyZXBvcnQuaGVhZF9saW5lfSAiCisgICAgICAgICAgICApCisKKyAg ICAgICAgbm90ZXMuZGV0YWlscyArPSByZXBvcnQubG9uZ3JlcHJ0ZXh0ICsgIlxuIgorCisgICAg ZWxzZToKKyAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJweXRlc3RfcnVudGVzdF9tYWtlcmVw b3J0IHJlY2VpdmVkIHVua25vd24gdGVzdCBzdGF0dXMiKQorCisgICAgcmV0dXJuIHJlcworCisK K0BweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKK2RlZiBweXRlc3RfcnVudGVzdF9w cm90b2NvbChpdGVtLCBuZXh0aXRlbSk6CisgICAgIiIiCisgICAgUmVwb3J0cyB0aGUgVEFQIHJl c3VsdCBmb3IgdGhpcyB0ZXN0IGl0ZW0gdXNpbmcgb3VyIGdhdGhlcmVkIFRlc3ROb3Rlcy4KKyAg ICAiIiIKKyAgICByZXMgPSB5aWVsZAorCisgICAgYXNzZXJ0IG5vdGVzX2tleSBpbiBpdGVtLnN0 YXNoLCAicGd0YXAgZGlkbid0IGFubm90YXRlIGEgdGVzdCBpdGVtPyIKKyAgICBub3RlcyA9IGl0 ZW0uc3Rhc2hbbm90ZXNfa2V5XQorCisgICAgaWYgbm90ZXMuZmFpbGVkOgorICAgICAgICB0YXAu ZmFpbChpdGVtLm5vZGVpZCwgbm90ZXMuZGV0YWlscykKKyAgICBlbGlmIG5vdGVzLnNraXBwZWQ6 CisgICAgICAgIHRhcC5za2lwKGl0ZW0ubm9kZWlkLCBub3Rlcy5za2lwX3JlYXNvbikKKyAgICBl bHNlOgorICAgICAgICB0YXAub2soaXRlbS5ub2RlaWQpCisKKyAgICByZXR1cm4gcmVzCi0tIAoy LjUyLjAKCg== --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0003-ci-Add-MTEST_SUITES-for-optional-test-tailoring.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0003-ci-Add-MTEST_SUITES-for-optional-test-tailoring.patch RnJvbSA2YmU0MzMwOTNkZDVkNzk0MmJmYjEyZmY4ZmYwMGEzNDhlYTUwYmU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAyIFNlcCAyMDI1IDE1OjM3OjUzIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2NCAzLzddIGNpOiBBZGQgTVRFU1RfU1VJVEVTIGZvciBvcHRpb25hbCB0ZXN0IHRh aWxvcmluZwoKU2hvdWxkIG1ha2UgaXQgZWFzaWVyIHRvIGNvbnRyb2wgdGhlIHRlc3QgY3ljbGUg dGltZSBmb3IgQ2lycnVzLiBBZGQgdGhlCmRlc2lyZWQgc3VpdGVzIChyZW1lbWJlcmluZyBgLS1z dWl0ZSBzZXR1cGAhKSB0byB0aGUgdG9wLWxldmVsIGVudnZhci4KLS0tCiAuY2lycnVzLnRhc2tz LnltbCB8IDE1ICsrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr KSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJy dXMudGFza3MueW1sCmluZGV4IGVlMjA4NGJkZmI2Li4zYjBiYjIwMjI3NiAxMDA2NDQKLS0tIGEv LmNpcnJ1cy50YXNrcy55bWwKKysrIGIvLmNpcnJ1cy50YXNrcy55bWwKQEAgLTI4LDYgKzI4LDcg QEAgZW52OgogICAjIGVycm9ycy93YXJuaW5ncyBpbiBvbmUgcGxhY2UuCiAgIE1CVUlMRF9UQVJH RVQ6IGFsbCB0ZXN0cHJlcAogICBNVEVTVF9BUkdTOiAtLXByaW50LWVycm9ybG9ncyAtLW5vLXJl YnVpbGQgLUMgYnVpbGQKKyAgTVRFU1RfU1VJVEVTOiAjIC0tc3VpdGUgc2V0dXAgLS1zdWl0ZSBz c2wgLS1zdWl0ZSAuLi4KICAgUEdDVExUSU1FT1VUOiAxMjAgIyBhdm9pZHMgc3B1cmlvdXMgZmFp bHVyZXMgZHVyaW5nIHBhcmFsbGVsIHRlc3RzCiAgIFRFTVBfQ09ORklHOiAke0NJUlJVU19XT1JL SU5HX0RJUn0vc3JjL3Rvb2xzL2NpL3BnX2NpX2Jhc2UuY29uZgogICBQR19URVNUX0VYVFJBOiBr ZXJiZXJvcyBsZGFwIHNzbCBsaWJwcV9lbmNyeXB0aW9uIGxvYWRfYmFsYW5jZSBvYXV0aApAQCAt MjUxLDcgKzI1Miw3IEBAIHRhc2s6CiAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICBzZXQg LWUKICAgICAgIHVsaW1pdCAtYyB1bmxpbWl0ZWQKLSAgICAgIG1lc29uIHRlc3QgJE1URVNUX0FS R1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQorICAgICAgbWVzb24gdGVzdCAkTVRFU1Rf QVJHUyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9ICR7TVRFU1RfU1VJVEVTfQogICAgIEVP RgogCiAgICMgdGVzdCBydW5uaW5nY2hlY2ssIGZyZWVic2QgY2hvc2VuIGJlY2F1c2UgaXQncyBj dXJyZW50bHkgZmFzdCBlbm91Z2gKQEAgLTM5Nyw3ICszOTgsNyBAQCB0YXNrOgogICAgICAgIyBP dGhlcndpc2UgdGVzdHMgd2lsbCBmYWlsIG9uIE9wZW5CU0QsIGR1ZSB0byBpbmFiaWxpdHkgdG8g c3RhcnQgZW5vdWdoCiAgICAgICAjIHByb2Nlc3Nlcy4KICAgICAgIHVsaW1pdCAtcCAyNTYKLSAg ICAgIG1lc29uIHRlc3QgJE1URVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQor ICAgICAgbWVzb24gdGVzdCAkTVRFU1RfQVJHUyAtLW51bS1wcm9jZXNzZXMgJHtURVNUX0pPQlN9 ICR7TVRFU1RfU1VJVEVTfQogICAgIEVPRgogCiAgIG9uX2ZhaWx1cmU6CkBAIC02MTUsNyArNjE2 LDcgQEAgdGFzazoKICAgICAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICAgICAgc2V0IC1l CiAgICAgICAgICAgdWxpbWl0IC1jIHVubGltaXRlZAotICAgICAgICAgIG1lc29uIHRlc3QgJE1U RVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfQorICAgICAgICAgIG1lc29uIHRl c3QgJE1URVNUX0FSR1MgLS1udW0tcHJvY2Vzc2VzICR7VEVTVF9KT0JTfSAke01URVNUX1NVSVRF U30KICAgICAgICAgRU9GCiAgICAgICAgICMgc28gdGhhdCB3ZSBkb24ndCB1cGxvYWQgNjRiaXQg bG9ncyBpZiAzMmJpdCBmYWlscwogICAgICAgICBybSAtcmYgYnVpbGQvCkBAIC02MjgsNyArNjI5 LDcgQEAgdGFzazoKICAgICAgICAgc3UgcG9zdGdyZXMgPDwtRU9GCiAgICAgICAgICAgc2V0IC1l CiAgICAgICAgICAgdWxpbWl0IC1jIHVubGltaXRlZAotICAgICAgICAgIFBZVEhPTkNPRVJDRUNM T0NBTEU9MCBMQU5HPUMgbWVzb24gdGVzdCAkTVRFU1RfQVJHUyAtQyBidWlsZC0zMiAtLW51bS1w cm9jZXNzZXMgJHtURVNUX0pPQlN9CisgICAgICAgICAgUFlUSE9OQ09FUkNFQ0xPQ0FMRT0wIExB Tkc9QyBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdTIC1DIGJ1aWxkLTMyIC0tbnVtLXByb2Nlc3NlcyAk e1RFU1RfSk9CU30gJHtNVEVTVF9TVUlURVN9CiAgICAgICAgIEVPRgogCiAgICAgICBvbl9mYWls dXJlOgpAQCAtNzUyLDcgKzc1Myw3IEBAIHRhc2s6CiAgIHRlc3Rfd29ybGRfc2NyaXB0OiB8CiAg ICAgdWxpbWl0IC1jIHVubGltaXRlZCAjIGRlZmF1bHQgaXMgMAogICAgIHVsaW1pdCAtbiAxMDI0 ICMgZGVmYXVsdCBpcyAyNTYsIHByZXR0eSBsb3cKLSAgICBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdT IC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30KKyAgICBtZXNvbiB0ZXN0ICRNVEVTVF9BUkdT IC0tbnVtLXByb2Nlc3NlcyAke1RFU1RfSk9CU30gJHtNVEVTVF9TVUlURVN9CiAKICAgb25fZmFp bHVyZToKICAgICA8PDogKm9uX2ZhaWx1cmVfbWVzb24KQEAgLTgzNSw3ICs4MzYsNyBAQCB0YXNr OgogCiAgIGNoZWNrX3dvcmxkX3NjcmlwdDogfAogICAgIHZjdmFyc2FsbCB4NjQKLSAgICBtZXNv biB0ZXN0ICVNVEVTVF9BUkdTJSAtLW51bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUKKyAgICBtZXNv biB0ZXN0ICVNVEVTVF9BUkdTJSAtLW51bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUgJU1URVNUX1NV SVRFUyUKIAogICBvbl9mYWlsdXJlOgogICAgIDw8OiAqb25fZmFpbHVyZV9tZXNvbgpAQCAtODk2 LDcgKzg5Nyw3IEBAIHRhc2s6CiAgIHVwbG9hZF9jYWNoZXM6IGNjYWNoZQogCiAgIHRlc3Rfd29y bGRfc2NyaXB0OiB8Ci0gICAgJUJBU0glIC1jICJtZXNvbiB0ZXN0ICVNVEVTVF9BUkdTJSAtLW51 bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUiCisgICAgJUJBU0glIC1jICJtZXNvbiB0ZXN0ICVNVEVT VF9BUkdTJSAtLW51bS1wcm9jZXNzZXMgJVRFU1RfSk9CUyUgJU1URVNUX1NVSVRFUyUiCiAKICAg b25fZmFpbHVyZToKICAgICA8PDogKm9uX2ZhaWx1cmVfbWVzb24KLS0gCjIuNTIuMAoK --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0004-Add-pytest-infrastructure-to-interact-with-Postgr.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0004-Add-pytest-infrastructure-to-interact-with-Postgr.patch RnJvbSBlOTUxYTA2ODAwZmFlMDc1ZDBmMTgwZWQwYjQwOWIyZWQyODFlNDBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWx0ZSBGZW5uZW1hLU5pbyA8cG9zdGdyZXNAamVsdGVmLm5s PgpEYXRlOiBUdWUsIDE2IERlYyAyMDI1IDA5OjI1OjQ4ICswMTAwClN1YmplY3Q6IFtQQVRDSCB2 NCA0LzddIEFkZCBweXRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gaW50ZXJhY3Qgd2l0aCBQb3N0Z3Jl U1FMCiBzZXJ2ZXJzCgpUaGlzIGFkZHMgZnVuY3Rpb25hbGl0eSB0byB0aGUgcHl0ZXN0IGluZnJh c3RydWN0dXJlIHRoYXQgYWxsb3dzIHRlc3RzCnRvIGRvIGNvbW1vbiB0aGluZ3Mgd2l0aCBQb3N0 Z3JlU1FMIHNlcnZlcnMgbGlrZToKLSBzdGFydGluZwotIHN0b3BwaW5nCi0gY29ubmVjdGluZwot IHJ1bm5pbmcgcXVlcmllcwoKRXNwZWNpYWxseSB0aGUgcnVubmluZyBvZiBxdWVyaWVzIGlzIGRl c2lnbmVkIGluIHN1Y2ggYSB3YXkgdGhhdCBpdC4KVHlwZXMgZ2V0IGNvbnZlcnRlZCB0byB0aGVp ciBQeXRob24gY291bnRlciBwYXJ0cyBhdXRvbWF0aWNhbGx5LiBFcnJvcnMKYmVjb21lIGFjdHVh bCBweXRob24gZXhjZXB0aW9ucy4gQW5kIHRoZXJlJ3MgbG9naWMgdG8gYXV0b21hdGljYWxseQp1 bnBhY2sgc2luZ2xlIGZpZWxkcyBvciBzaW5nbGUgcm93cyBzbyB5b3UgZG9uJ3QgaGF2ZSB0byBk byByb3dzWzBdWzBdCmlmIHRoZSBxdWVyeSBvbmx5IHJldHVybnMgYSBzaW5nbGUgY2VsbC4gSW4g YSBzaW1pbGFyIHZlaW4gUG9zdGdyZXMKZXJyb3JzIGF1dG9tYXRpY2FsbHkgZ2V0IGNvbnZlcnRl ZCB0byBkZWRpY2F0ZWQgUHl0aG9uIGV4Y2VwdGlvbiB0eXBlcy4KLS0tCiBweXRlc3QuaW5pICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICsKIHNyYy9iYWNrZW5kL3V0aWxz L2VycmNvZGVzLnR4dCAgICAgICAgICAgICB8ICAgIDUgKwogc3JjL3Rlc3QvcHl0ZXN0L2xpYnBx L19faW5pdF9fLnB5ICAgICAgICAgIHwgICAzNiArCiBzcmMvdGVzdC9weXRlc3QvbGlicHEvX2Nv cmUucHkgICAgICAgICAgICAgfCAgNDY3ICsrKysrCiBzcmMvdGVzdC9weXRlc3QvbGlicHEvX2Vy cm9yX2Jhc2UucHkgICAgICAgfCAgIDc0ICsKIHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJh dGVkX2Vycm9ycy5weSB8IDIxMTYgKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3B5dGVz dC9saWJwcS9lcnJvcnMucHkgICAgICAgICAgICB8ICAgMzkgKwogc3JjL3Rlc3QvcHl0ZXN0L21l c29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICAgNCArLQogc3JjL3Rlc3QvcHl0ZXN0L3B5cGcv X19pbml0X18ucHkgICAgICAgICAgIHwgICAgNCArCiBzcmMvdGVzdC9weXRlc3QvcHlwZy9fZW52 LnB5ICAgICAgICAgICAgICAgfCAgIDU0ICsKIHNyYy90ZXN0L3B5dGVzdC9weXBnL193aW4zMi5w eSAgICAgICAgICAgICB8ICAxNDUgKysKIHNyYy90ZXN0L3B5dGVzdC9weXBnL2ZpeHR1cmVzLnB5 ICAgICAgICAgICB8ICAxOTEgKysKIHNyYy90ZXN0L3B5dGVzdC9weXBnL3NlcnZlci5weSAgICAg ICAgICAgICB8ICAzOTEgKysrKwogc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvdXRpbC5weSAgICAgICAg ICAgICAgIHwgICA0MiArCiBzcmMvdGVzdC9weXRlc3QvcHl0L2NvbmZ0ZXN0LnB5ICAgICAgICAg ICAgfCAgICA0ICsKIHNyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9lcnJvcnMucHkgICAgICAgICB8 ICAgMzQgKwogc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X2xpYnBxLnB5ICAgICAgICAgIHwgIDE3 MiArKwogc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X3F1ZXJ5X2hlbHBlcnMucHkgIHwgIDI4NiAr KysKIHNyYy90b29scy9nZW5lcmF0ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5ICB8ICAxNDcgKysK IDE5IGZpbGVzIGNoYW5nZWQsIDQyMTMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fX2luaXRfXy5weQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fY29yZS5weQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZXJyb3JfYmFzZS5weQogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9fZ2VuZXJhdGVkX2Vycm9ycy5weQogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9saWJwcS9lcnJvcnMucHkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcHlwZy9fX2luaXRfXy5weQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMv dGVzdC9weXRlc3QvcHlwZy9fd2luMzIucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9w eXRlc3QvcHlwZy9maXh0dXJlcy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVz dC9weXBnL3NlcnZlci5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXBn L3V0aWwucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9weXRlc3QvcHl0L2NvbmZ0ZXN0 LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X2Vycm9ycy5w eQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weQog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9xdWVyeV9oZWxwZXJz LnB5CiBjcmVhdGUgbW9kZSAxMDA3NTUgc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9saWJwcV9l cnJvcnMucHkKCmRpZmYgLS1naXQgYS9weXRlc3QuaW5pIGIvcHl0ZXN0LmluaQppbmRleCA4ZTgz ODhmM2FmYy4uZTdhYTg0ZjNhODQgMTAwNjQ0Ci0tLSBhL3B5dGVzdC5pbmkKKysrIGIvcHl0ZXN0 LmluaQpAQCAtNCwzICs0LDYgQEAgbWludmVyc2lvbiA9IDcuMAogIyBJZ25vcmUgLi9jb25maWcg KHdoaWNoIGNvbnRhaW5zIHRoZSBjb25maWd1cmUtdGltZSBjaGVja19weXRlc3QucHkgdGVzdHMp IGJ5CiAjIGRlZmF1bHQuCiBhZGRvcHRzID0gLS1pZ25vcmUgLi9jb25maWcKKworIyBDb21tb24g dGVzdCBjb2RlIGNhbiBiZSBmb3VuZCBoZXJlLgorcHl0aG9ucGF0aCA9IHNyYy90ZXN0L3B5dGVz dApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0IGIvc3JjL2JhY2tl bmQvdXRpbHMvZXJyY29kZXMudHh0CmluZGV4IGM5NmFhN2M0OWVmLi40MGM3NTU1MDQ3ZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0CisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2VycmNvZGVzLnR4dApAQCAtMjEsNiArMjEsMTEgQEAKICMgICBkb2Mvc3JjL3NnbWwv ZXJyY29kZXMtdGFibGUuc2dtbAogIyAgICAgIGEgU0dNTCB0YWJsZSBvZiBlcnJvciBjb2RlcyBm b3IgaW5jbHVzaW9uIGluIHRoZSBkb2N1bWVudGF0aW9uCiAjCisjICAgc3JjL3Rlc3QvcHl0ZXN0 L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5CisjICAgICAgUHl0aG9uIGV4Y2VwdGlvbiBjbGFz c2VzIGZvciB0aGUgcHl0ZXN0IGxpYnBxIHdyYXBwZXIKKyMgICAgICBOb3RlOiBUaGlzIG5lZWRz IHRvIGJlIG1hbnVhbGx5IHJlZ2VuZXJhdGVkIGJ5IHJ1bm5pbmcKKyMgICAgICBzcmMvdG9vbHMv Z2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5weQorIwogIyBUaGUgZm9ybWF0IG9mIHRoaXMg ZmlsZSBpcyBvbmUgZXJyb3IgY29kZSBwZXIgbGluZSwgd2l0aCB0aGUgZm9sbG93aW5nCiAjIHdo aXRlc3BhY2Utc2VwYXJhdGVkIGZpZWxkczoKICMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVz dC9saWJwcS9fX2luaXRfXy5weSBiL3NyYy90ZXN0L3B5dGVzdC9saWJwcS9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2I0ZDE4YjYyMDYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX19pbml0X18ucHkKQEAgLTAsMCAr MSwzNiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisKKyIiIgorbGlicHEgdGVzdGluZyB1dGlsaXRpZXMgLSBjdHlwZXMgYmluZGlu Z3MgYW5kIGhlbHBlcnMgZm9yIFBvc3RncmVTUUwncyBsaWJwcSBsaWJyYXJ5LgorCitUaGlzIG1v ZHVsZSBwcm92aWRlcyBQeXRob24gd3JhcHBlcnMgYXJvdW5kIGxpYnBxIGZvciB1c2UgaW4gcHl0 ZXN0IHRlc3RzLgorIiIiCisKK2Zyb20gLiBpbXBvcnQgZXJyb3JzCitmcm9tIC5lcnJvcnMgaW1w b3J0IExpYnBxRXJyb3IsIExpYnBxV2FybmluZworZnJvbSAuX2NvcmUgaW1wb3J0ICgKKyAgICBD b25uZWN0aW9uU3RhdHVzLAorICAgIERpYWdGaWVsZCwKKyAgICBFeGVjU3RhdHVzLAorICAgIFBH Y29ubiwKKyAgICBQR3Jlc3VsdCwKKyAgICBjb25uZWN0LAorICAgIGNvbm5zdHIsCisgICAgbG9h ZF9saWJwcV9oYW5kbGUsCisgICAgcmVnaXN0ZXJfdHlwZV9pbmZvLAorKQorCitfX2FsbF9fID0g WworICAgICJlcnJvcnMiLAorICAgICJMaWJwcUVycm9yIiwKKyAgICAiTGlicHFXYXJuaW5nIiwK KyAgICAiQ29ubmVjdGlvblN0YXR1cyIsCisgICAgIkRpYWdGaWVsZCIsCisgICAgIkV4ZWNTdGF0 dXMiLAorICAgICJQR2Nvbm4iLAorICAgICJQR3Jlc3VsdCIsCisgICAgImNvbm5lY3QiLAorICAg ICJjb25uc3RyIiwKKyAgICAibG9hZF9saWJwcV9oYW5kbGUiLAorICAgICJyZWdpc3Rlcl90eXBl X2luZm8iLAorXQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19jb3JlLnB5IGIv c3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19jb3JlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi40Nzc2ZjBmZjQ3ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5 dGVzdC9saWJwcS9fY29yZS5weQpAQCAtMCwwICsxLDQ2NyBAQAorIyBDb3B5cmlnaHQgKGMpIDIw MjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorQ29yZSBsaWJw cSBmdW5jdGlvbmFsaXR5IC0gY3R5cGVzIGJpbmRpbmdzIGFuZCBjb25uZWN0aW9uIGhhbmRsaW5n LgorIiIiCisKK2ltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgY3R5cGVzCitpbXBvcnQgZGF0ZXRp bWUKK2ltcG9ydCBkZWNpbWFsCitpbXBvcnQgZW51bQoraW1wb3J0IGpzb24KK2ltcG9ydCBwbGF0 Zm9ybQoraW1wb3J0IG9zCitpbXBvcnQgdXVpZAorZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2Fs bGFibGUsIERpY3QsIE9wdGlvbmFsCisKK2Zyb20gLmVycm9ycyBpbXBvcnQgTGlicHFFcnJvciwg bWFrZV9lcnJvcgorCisKKyMgUEdfRElBRyBmaWVsZCBpZGVudGlmaWVycyBmcm9tIHBvc3RncmVz X2V4dC5oCitjbGFzcyBEaWFnRmllbGQoZW51bS5JbnRFbnVtKToKKyAgICBTRVZFUklUWSA9IG9y ZCgiUyIpCisgICAgU0VWRVJJVFlfTk9OTE9DQUxJWkVEID0gb3JkKCJWIikKKyAgICBTUUxTVEFU RSA9IG9yZCgiQyIpCisgICAgTUVTU0FHRV9QUklNQVJZID0gb3JkKCJNIikKKyAgICBNRVNTQUdF X0RFVEFJTCA9IG9yZCgiRCIpCisgICAgTUVTU0FHRV9ISU5UID0gb3JkKCJIIikKKyAgICBTVEFU RU1FTlRfUE9TSVRJT04gPSBvcmQoIlAiKQorICAgIElOVEVSTkFMX1BPU0lUSU9OID0gb3JkKCJw IikKKyAgICBJTlRFUk5BTF9RVUVSWSA9IG9yZCgicSIpCisgICAgQ09OVEVYVCA9IG9yZCgiVyIp CisgICAgU0NIRU1BX05BTUUgPSBvcmQoInMiKQorICAgIFRBQkxFX05BTUUgPSBvcmQoInQiKQor ICAgIENPTFVNTl9OQU1FID0gb3JkKCJjIikKKyAgICBEQVRBVFlQRV9OQU1FID0gb3JkKCJkIikK KyAgICBDT05TVFJBSU5UX05BTUUgPSBvcmQoIm4iKQorICAgIFNPVVJDRV9GSUxFID0gb3JkKCJG IikKKyAgICBTT1VSQ0VfTElORSA9IG9yZCgiTCIpCisgICAgU09VUkNFX0ZVTkNUSU9OID0gb3Jk KCJSIikKKworCitjbGFzcyBDb25uZWN0aW9uU3RhdHVzKGVudW0uSW50RW51bSk6CisgICAgIiIi UG9zdGdyZVNRTCBjb25uZWN0aW9uIHN0YXR1cyBjb2RlcyBmcm9tIGxpYnBxLiIiIgorCisgICAg Q09OTkVDVElPTl9PSyA9IDAKKyAgICBDT05ORUNUSU9OX0JBRCA9IDEKKworCitjbGFzcyBFeGVj U3RhdHVzKGVudW0uSW50RW51bSk6CisgICAgIiIiUG9zdGdyZVNRTCByZXN1bHQgc3RhdHVzIGNv ZGVzIGZyb20gUFFyZXN1bHRTdGF0dXMuIiIiCisKKyAgICBQR1JFU19FTVBUWV9RVUVSWSA9IDAK KyAgICBQR1JFU19DT01NQU5EX09LID0gMQorICAgIFBHUkVTX1RVUExFU19PSyA9IDIKKyAgICBQ R1JFU19DT1BZX09VVCA9IDMKKyAgICBQR1JFU19DT1BZX0lOID0gNAorICAgIFBHUkVTX0JBRF9S RVNQT05TRSA9IDUKKyAgICBQR1JFU19OT05GQVRBTF9FUlJPUiA9IDYKKyAgICBQR1JFU19GQVRB TF9FUlJPUiA9IDcKKyAgICBQR1JFU19DT1BZX0JPVEggPSA4CisgICAgUEdSRVNfU0lOR0xFX1RV UExFID0gOQorICAgIFBHUkVTX1BJUEVMSU5FX1NZTkMgPSAxMAorICAgIFBHUkVTX1BJUEVMSU5F X0FCT1JURUQgPSAxMQorCisKK2NsYXNzIF9QR2Nvbm4oY3R5cGVzLlN0cnVjdHVyZSk6CisgICAg cGFzcworCisKK2NsYXNzIF9QR3Jlc3VsdChjdHlwZXMuU3RydWN0dXJlKToKKyAgICBwYXNzCisK KworX1BHY29ubl9wID0gY3R5cGVzLlBPSU5URVIoX1BHY29ubikKK19QR3Jlc3VsdF9wID0gY3R5 cGVzLlBPSU5URVIoX1BHcmVzdWx0KQorCisKK2RlZiBsb2FkX2xpYnBxX2hhbmRsZShsaWJkaXIs IGJpbmRpcik6CisgICAgIiIiCisgICAgTG9hZHMgYSBjdHlwZXMgaGFuZGxlIGZvciBsaWJwcS4g U29tZSBjb21tb24gZnVuY3Rpb24gcHJvdG90eXBlcyBhcmUKKyAgICBpbml0aWFsaXplZCBmb3Ig Z2VuZXJhbCB1c2UuCisgICAgIiIiCisgICAgc3lzdGVtID0gcGxhdGZvcm0uc3lzdGVtKCkKKwor ICAgIGlmIHN5c3RlbSBpbiAoIkxpbnV4IiwgIkZyZWVCU0QiLCAiTmV0QlNEIiwgIk9wZW5CU0Qi KToKKyAgICAgICAgbmFtZSA9ICJsaWJwcS5zby41IgorICAgIGVsaWYgc3lzdGVtID09ICJEYXJ3 aW4iOgorICAgICAgICBuYW1lID0gImxpYnBxLjUuZHlsaWIiCisgICAgZWxpZiBzeXN0ZW0gPT0g IldpbmRvd3MiOgorICAgICAgICBuYW1lID0gImxpYnBxLmRsbCIKKyAgICBlbHNlOgorICAgICAg ICBhc3NlcnQgRmFsc2UsIGYidGhlIGxpYnBxIGZpeHR1cmUgbXVzdCBiZSB1cGRhdGVkIGZvciB7 c3lzdGVtfSIKKworICAgIGlmIHN5c3RlbSA9PSAiV2luZG93cyI6CisgICAgICAgICMgT24gV2lu ZG93cywgbGlicHEuZGxsIGlzIGNvbmZ1c2luZ2x5IGluIGJpbmRpciwgbm90IGxpYmRpci4gQW5k IHdlCisgICAgICAgICMgbmVlZCB0byBhZGQgdGhpcyBkaXJlY3RvcnkgdGhlIHRoZSBzZWFyY2gg cGF0aC4KKyAgICAgICAgbGlicHFfcGF0aCA9IG9zLnBhdGguam9pbihiaW5kaXIsIG5hbWUpCisg ICAgICAgIGxpYiA9IGN0eXBlcy5DRExMKGxpYnBxX3BhdGgpCisgICAgZWxzZToKKyAgICAgICAg bGlicHFfcGF0aCA9IG9zLnBhdGguam9pbihsaWJkaXIsIG5hbWUpCisgICAgICAgIGxpYiA9IGN0 eXBlcy5DRExMKGxpYnBxX3BhdGgpCisKKyAgICAjCisgICAgIyBGdW5jdGlvbiBQcm90b3R5cGVz CisgICAgIworCisgICAgbGliLlBRY29ubmVjdGRiLnJlc3R5cGUgPSBfUEdjb25uX3AKKyAgICBs aWIuUFFjb25uZWN0ZGIuYXJndHlwZXMgPSBbY3R5cGVzLmNfY2hhcl9wXQorCisgICAgbGliLlBR c3RhdHVzLnJlc3R5cGUgPSBjdHlwZXMuY19pbnQKKyAgICBsaWIuUFFzdGF0dXMuYXJndHlwZXMg PSBbX1BHY29ubl9wXQorCisgICAgbGliLlBRZXhlYy5yZXN0eXBlID0gX1BHcmVzdWx0X3AKKyAg ICBsaWIuUFFleGVjLmFyZ3R5cGVzID0gW19QR2Nvbm5fcCwgY3R5cGVzLmNfY2hhcl9wXQorCisg ICAgbGliLlBRcmVzdWx0U3RhdHVzLnJlc3R5cGUgPSBjdHlwZXMuY19pbnQKKyAgICBsaWIuUFFy ZXN1bHRTdGF0dXMuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3BdCisKKyAgICBsaWIuUFFjbGVhci5y ZXN0eXBlID0gTm9uZQorICAgIGxpYi5QUWNsZWFyLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9wXQor CisgICAgbGliLlBRZXJyb3JNZXNzYWdlLnJlc3R5cGUgPSBjdHlwZXMuY19jaGFyX3AKKyAgICBs aWIuUFFlcnJvck1lc3NhZ2UuYXJndHlwZXMgPSBbX1BHY29ubl9wXQorCisgICAgbGliLlBRZmlu aXNoLnJlc3R5cGUgPSBOb25lCisgICAgbGliLlBRZmluaXNoLmFyZ3R5cGVzID0gW19QR2Nvbm5f cF0KKworICAgIGxpYi5QUXJlc3VsdEVycm9yTWVzc2FnZS5yZXN0eXBlID0gY3R5cGVzLmNfY2hh cl9wCisgICAgbGliLlBRcmVzdWx0RXJyb3JNZXNzYWdlLmFyZ3R5cGVzID0gW19QR3Jlc3VsdF9w XQorCisgICAgbGliLlBRbnR1cGxlcy5yZXN0eXBlID0gY3R5cGVzLmNfaW50CisgICAgbGliLlBR bnR1cGxlcy5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcF0KKworICAgIGxpYi5QUW5maWVsZHMucmVz dHlwZSA9IGN0eXBlcy5jX2ludAorICAgIGxpYi5QUW5maWVsZHMuYXJndHlwZXMgPSBbX1BHcmVz dWx0X3BdCisKKyAgICBsaWIuUFFnZXR2YWx1ZS5yZXN0eXBlID0gY3R5cGVzLmNfY2hhcl9wCisg ICAgbGliLlBRZ2V0dmFsdWUuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3AsIGN0eXBlcy5jX2ludCwg Y3R5cGVzLmNfaW50XQorCisgICAgbGliLlBRZ2V0aXNudWxsLnJlc3R5cGUgPSBjdHlwZXMuY19p bnQKKyAgICBsaWIuUFFnZXRpc251bGwuYXJndHlwZXMgPSBbX1BHcmVzdWx0X3AsIGN0eXBlcy5j X2ludCwgY3R5cGVzLmNfaW50XQorCisgICAgbGliLlBRZnR5cGUucmVzdHlwZSA9IGN0eXBlcy5j X3VpbnQKKyAgICBsaWIuUFFmdHlwZS5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwgY3R5cGVzLmNf aW50XQorCisgICAgbGliLlBRcmVzdWx0RXJyb3JGaWVsZC5yZXN0eXBlID0gY3R5cGVzLmNfY2hh cl9wCisgICAgbGliLlBRcmVzdWx0RXJyb3JGaWVsZC5hcmd0eXBlcyA9IFtfUEdyZXN1bHRfcCwg Y3R5cGVzLmNfaW50XQorCisgICAgcmV0dXJuIGxpYgorCisKKyMgUG9zdGdyZVNRTCB0eXBlIE9J RHMgYW5kIGNvbnZlcnNpb24gc3lzdGVtCisjIFR5cGUgcmVnaXN0cnkgLSBtYXBzIE9JRCB0byBj b252ZXJ0ZXIgZnVuY3Rpb24KK190eXBlX2NvbnZlcnRlcnM6IERpY3RbaW50LCBDYWxsYWJsZVtb c3RyXSwgQW55XV0gPSB7fQorX2FycmF5X3RvX2VsZW1fbWFwOiBEaWN0W2ludCwgaW50XSA9IHt9 CisKKworZGVmIHJlZ2lzdGVyX3R5cGVfaW5mbygKKyAgICBuYW1lOiBzdHIsIG9pZDogaW50LCBh cnJheV9vaWQ6IGludCwgY29udmVydGVyOiBDYWxsYWJsZVtbc3RyXSwgQW55XQorKToKKyAgICAi IiIKKyAgICBSZWdpc3RlciBhIFBvc3RncmVTUUwgdHlwZSB3aXRoIGl0cyBPSUQsIGFycmF5IE9J RCwgYW5kIGNvbnZlcnNpb24gZnVuY3Rpb24uCisKKyAgICBVc2FnZToKKyAgICAgICAgcmVnaXN0 ZXJfdHlwZV9pbmZvKCJib29sIiwgMTYsIDEwMDAsIGxhbWJkYSB2OiB2ID09ICJ0IikKKyAgICAi IiIKKyAgICBfdHlwZV9jb252ZXJ0ZXJzW29pZF0gPSBjb252ZXJ0ZXIKKyAgICBpZiBhcnJheV9v aWQgaXMgbm90IE5vbmU6CisgICAgICAgIF9hcnJheV90b19lbGVtX21hcFthcnJheV9vaWRdID0g b2lkCisKKworIyBIZWxwZXIgY29udmVydGVycworZGVmIF9wYXJzZV9hcnJheSh2YWx1ZTogc3Ry LCBlbGVtX29pZDogaW50KSAtPiBsaXN0OgorICAgICIiIlBhcnNlIFBvc3RncmVTUUwgYXJyYXkg c3ludGF4OiB7ZWxlbTEsZWxlbTIsZWxlbTN9IiIiCisgICAgaWYgbm90ICh2YWx1ZS5zdGFydHN3 aXRoKCJ7IikgYW5kIHZhbHVlLmVuZHN3aXRoKCJ9IikpOgorICAgICAgICByZXR1cm4gdmFsdWUK KworICAgIGlubmVyID0gdmFsdWVbMTotMV0KKyAgICBpZiBub3QgaW5uZXI6CisgICAgICAgIHJl dHVybiBbXQorCisgICAgZWxlbWVudHMgPSBpbm5lci5zcGxpdCgiLCIpCisgICAgcmVzdWx0ID0g W10KKyAgICBmb3IgZWxlbSBpbiBlbGVtZW50czoKKyAgICAgICAgZWxlbSA9IGVsZW0uc3RyaXAo KQorICAgICAgICBpZiBlbGVtID09ICJOVUxMIjoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQo Tm9uZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgUmVtb3ZlIHF1b3RlcyBpZiBwcmVz ZW50CisgICAgICAgICAgICBpZiBlbGVtLnN0YXJ0c3dpdGgoJyInKSBhbmQgZWxlbS5lbmRzd2l0 aCgnIicpOgorICAgICAgICAgICAgICAgIGVsZW0gPSBlbGVtWzE6LTFdCisgICAgICAgICAgICBy ZXN1bHQuYXBwZW5kKF9jb252ZXJ0X3BnX3ZhbHVlKGVsZW0sIGVsZW1fb2lkKSkKKworICAgIHJl dHVybiByZXN1bHQKKworCisjIFJlZ2lzdGVyIHN0YW5kYXJkIFBvc3RncmVTUUwgdHlwZXMgdGhh dCB3ZSdsbCBsaWtlbHkgZW5jb3VudGVyIGluIHRlc3RzCityZWdpc3Rlcl90eXBlX2luZm8oImJv b2wiLCAxNiwgMTAwMCwgbGFtYmRhIHY6IHYgPT0gInQiKQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJp bnQyIiwgMjEsIDEwMDUsIGludCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygiaW50NCIsIDIzLCAxMDA3 LCBpbnQpCityZWdpc3Rlcl90eXBlX2luZm8oImludDgiLCAyMCwgMTAxNiwgaW50KQorcmVnaXN0 ZXJfdHlwZV9pbmZvKCJmbG9hdDQiLCA3MDAsIDEwMjEsIGZsb2F0KQorcmVnaXN0ZXJfdHlwZV9p bmZvKCJmbG9hdDgiLCA3MDEsIDEwMjIsIGZsb2F0KQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJudW1l cmljIiwgMTcwMCwgMTIzMSwgZGVjaW1hbC5EZWNpbWFsKQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJ0 ZXh0IiwgMjUsIDEwMDksIHN0cikKK3JlZ2lzdGVyX3R5cGVfaW5mbygidmFyY2hhciIsIDEwNDMs IDEwMTUsIHN0cikKK3JlZ2lzdGVyX3R5cGVfaW5mbygiZGF0ZSIsIDEwODIsIDExODIsIGRhdGV0 aW1lLmRhdGUuZnJvbWlzb2Zvcm1hdCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygidGltZSIsIDEwODMs IDExODMsIGRhdGV0aW1lLnRpbWUuZnJvbWlzb2Zvcm1hdCkKK3JlZ2lzdGVyX3R5cGVfaW5mbygi dGltZXN0YW1wIiwgMTExNCwgMTExNSwgZGF0ZXRpbWUuZGF0ZXRpbWUuZnJvbWlzb2Zvcm1hdCkK K3JlZ2lzdGVyX3R5cGVfaW5mbygidGltZXN0YW1wdHoiLCAxMTg0LCAxMTg1LCBkYXRldGltZS5k YXRldGltZS5mcm9taXNvZm9ybWF0KQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJ1dWlkIiwgMjk1MCwg Mjk1MSwgdXVpZC5VVUlEKQorcmVnaXN0ZXJfdHlwZV9pbmZvKCJqc29uIiwgMTE0LCAxOTksIGpz b24ubG9hZHMpCityZWdpc3Rlcl90eXBlX2luZm8oImpzb25iIiwgMzgwMiwgMzgwNywganNvbi5s b2FkcykKKworCitkZWYgX2NvbnZlcnRfcGdfdmFsdWUodmFsdWU6IHN0ciwgdHlwZV9vaWQ6IGlu dCkgLT4gQW55OgorICAgICIiIgorICAgIENvbnZlcnQgUG9zdGdyZVNRTCBzdHJpbmcgdmFsdWUg dG8gYXBwcm9wcmlhdGUgUHl0aG9uIHR5cGUgYmFzZWQgb24gT0lELgorICAgIFVzZXMgdGhlIHJl Z2lzdGVyZWQgdHlwZSBjb252ZXJ0ZXJzIGZyb20gcmVnaXN0ZXJfdHlwZV9pbmZvKCkuCisgICAg IiIiCisgICAgIyBDaGVjayBpZiBpdCdzIGFuIGFycmF5IHR5cGUKKyAgICBpZiB0eXBlX29pZCBp biBfYXJyYXlfdG9fZWxlbV9tYXA6CisgICAgICAgIGVsZW1fb2lkID0gX2FycmF5X3RvX2VsZW1f bWFwW3R5cGVfb2lkXQorICAgICAgICByZXR1cm4gX3BhcnNlX2FycmF5KHZhbHVlLCBlbGVtX29p ZCkKKworICAgICMgVXNlIHJlZ2lzdGVyZWQgY29udmVydGVyIGlmIGF2YWlsYWJsZQorICAgIGNv bnZlcnRlciA9IF90eXBlX2NvbnZlcnRlcnMuZ2V0KHR5cGVfb2lkKQorICAgIGlmIGNvbnZlcnRl cjoKKyAgICAgICAgcmV0dXJuIGNvbnZlcnRlcih2YWx1ZSkKKworICAgICMgVW5rbm93biB0eXBl cyAtIHJldHVybiBhcyBzdHJpbmcKKyAgICByZXR1cm4gdmFsdWUKKworCitkZWYgc2ltcGxpZnlf cXVlcnlfcmVzdWx0cyhyZXN1bHRzKSAtPiBBbnk6CisgICAgIiIiCisgICAgU2ltcGxpZnkgdGhl IHJlc3VsdHMgb2YgYSBxdWVyeSBzbyB0aGF0IHRoZSBjYWxsZXIgZG9lc24ndCBoYXZlIHRvIHVu cGFjaworICAgIGxpc3RzIGFuZCB0dXBsZXMgb2YgbGVuZ3RoIDEuCisgICAgIiIiCisgICAgaWYg bGVuKHJlc3VsdHMpID09IDE6CisgICAgICAgIHJvdyA9IHJlc3VsdHNbMF0KKyAgICAgICAgaWYg bGVuKHJvdykgPT0gMToKKyAgICAgICAgICAgICMgSWYgdGhlcmUncyBvbmx5IGEgc2luZ2xlIGNl bGwsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZQorICAgICAgICAgICAgcmV0dXJuIHJvd1swXQorICAg ICAgICAjIElmIHRoZXJlJ3Mgb25seSBhIHNpbmdsZSByb3csIGp1c3QgcmV0dXJuIHRoYXQgcm93 CisgICAgICAgIHJldHVybiByb3cKKworICAgIGlmIGxlbihyZXN1bHRzKSAhPSAwIGFuZCBsZW4o cmVzdWx0c1swXSkgPT0gMToKKyAgICAgICAgIyBJZiB0aGVyZSdzIG9ubHkgYSBzaW5nbGUgY29s dW1uLCByZXR1cm4gYW4gYXJyYXkgb2YgdmFsdWVzCisgICAgICAgIHJldHVybiBbcm93WzBdIGZv ciByb3cgaW4gcmVzdWx0c10KKworICAgICMgaWYgdGhlcmUgYXJlIG11bHRpcGxlIHJvd3MgYW5k IGNvbHVtbnMsIHJldHVybiB0aGUgcmVzdWx0cyBhcyBpcworICAgIHJldHVybiByZXN1bHRzCisK KworY2xhc3MgUEdyZXN1bHQoY29udGV4dGxpYi5BYnN0cmFjdENvbnRleHRNYW5hZ2VyKToKKyAg ICAiIiJXcmFwcyBhIHJhdyBfUEdyZXN1bHRfcCB3aXRoIGEgbW9yZSBmcmllbmRseSBpbnRlcmZh Y2UuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbGliOiBjdHlwZXMuQ0RMTCwgcmVzOiBf UEdyZXN1bHRfcCk6CisgICAgICAgIHNlbGYuX2xpYiA9IGxpYgorICAgICAgICBzZWxmLl9yZXMg PSByZXMKKworICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjKToKKyAgICAgICAgc2VsZi5fbGli LlBRY2xlYXIoc2VsZi5fcmVzKQorICAgICAgICBzZWxmLl9yZXMgPSBOb25lCisKKyAgICBkZWYg c3RhdHVzKHNlbGYpIC0+IEV4ZWNTdGF0dXM6CisgICAgICAgIHJldHVybiBFeGVjU3RhdHVzKHNl bGYuX2xpYi5QUXJlc3VsdFN0YXR1cyhzZWxmLl9yZXMpKQorCisgICAgZGVmIGVycm9yX21lc3Nh Z2Uoc2VsZik6CisgICAgICAgICIiIlJldHVybnMgdGhlIGVycm9yIG1lc3NhZ2UgYXNzb2NpYXRl ZCB3aXRoIHRoaXMgcmVzdWx0LiIiIgorICAgICAgICBtc2cgPSBzZWxmLl9saWIuUFFyZXN1bHRF cnJvck1lc3NhZ2Uoc2VsZi5fcmVzKQorICAgICAgICByZXR1cm4gbXNnLmRlY29kZSgpIGlmIG1z ZyBlbHNlICIiCisKKyAgICBkZWYgX2dldF9lcnJvcl9maWVsZChzZWxmLCBmaWVsZDogRGlhZ0Zp ZWxkKSAtPiBPcHRpb25hbFtzdHJdOgorICAgICAgICAiIiJHZXQgYW4gZXJyb3IgZmllbGQgZnJv bSB0aGUgcmVzdWx0IHVzaW5nIFBRcmVzdWx0RXJyb3JGaWVsZC4iIiIKKyAgICAgICAgdmFsID0g c2VsZi5fbGliLlBRcmVzdWx0RXJyb3JGaWVsZChzZWxmLl9yZXMsIGludChmaWVsZCkpCisgICAg ICAgIHJldHVybiB2YWwuZGVjb2RlKCkgaWYgdmFsIGVsc2UgTm9uZQorCisgICAgZGVmIHJhaXNl X2Vycm9yKHNlbGYsIHF1ZXJ5OiBPcHRpb25hbFtzdHJdID0gTm9uZSkgLT4gTm9uZToKKyAgICAg ICAgIiIiCisgICAgICAgIFJhaXNlcyBhbiBhcHByb3ByaWF0ZSBMaWJwcUVycm9yIHN1YmNsYXNz IGJhc2VkIG9uIHRoZSBlcnJvciBmaWVsZHMuCisgICAgICAgIEV4dHJhY3RzIFNRTFNUQVRFIGFu ZCBvdGhlciBkaWFnbm9zdGljIGluZm9ybWF0aW9uIGZyb20gdGhlIHJlc3VsdC4KKyAgICAgICAg IiIiCisgICAgICAgIHNxbHN0YXRlID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5T UUxTVEFURSkKKyAgICAgICAgcHJpbWFyeSA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmll bGQuTUVTU0FHRV9QUklNQVJZKQorICAgICAgICBkZXRhaWwgPSBzZWxmLl9nZXRfZXJyb3JfZmll bGQoRGlhZ0ZpZWxkLk1FU1NBR0VfREVUQUlMKQorICAgICAgICBoaW50ID0gc2VsZi5fZ2V0X2Vy cm9yX2ZpZWxkKERpYWdGaWVsZC5NRVNTQUdFX0hJTlQpCisgICAgICAgIHNldmVyaXR5ID0gc2Vs Zi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5TRVZFUklUWSkKKyAgICAgICAgc2NoZW1hX25h bWUgPSBzZWxmLl9nZXRfZXJyb3JfZmllbGQoRGlhZ0ZpZWxkLlNDSEVNQV9OQU1FKQorICAgICAg ICB0YWJsZV9uYW1lID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5UQUJMRV9OQU1F KQorICAgICAgICBjb2x1bW5fbmFtZSA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQu Q09MVU1OX05BTUUpCisgICAgICAgIGRhdGF0eXBlX25hbWUgPSBzZWxmLl9nZXRfZXJyb3JfZmll bGQoRGlhZ0ZpZWxkLkRBVEFUWVBFX05BTUUpCisgICAgICAgIGNvbnN0cmFpbnRfbmFtZSA9IHNl bGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuQ09OU1RSQUlOVF9OQU1FKQorICAgICAgICBj b250ZXh0ID0gc2VsZi5fZ2V0X2Vycm9yX2ZpZWxkKERpYWdGaWVsZC5DT05URVhUKQorCisgICAg ICAgIHBvc2l0aW9uX3N0ciA9IHNlbGYuX2dldF9lcnJvcl9maWVsZChEaWFnRmllbGQuU1RBVEVN RU5UX1BPU0lUSU9OKQorICAgICAgICBwb3NpdGlvbiA9IGludChwb3NpdGlvbl9zdHIpIGlmIHBv c2l0aW9uX3N0ciBlbHNlIE5vbmUKKworICAgICAgICAjIEJ1aWxkIHRoZSBlcnJvciBtZXNzYWdl CisgICAgICAgIG1lc3NhZ2UgPSBwcmltYXJ5IG9yIHNlbGYuZXJyb3JfbWVzc2FnZSgpCisgICAg ICAgIGlmIHF1ZXJ5OgorICAgICAgICAgICAgbWVzc2FnZSA9IGYie21lc3NhZ2V9XG5RdWVyeTog e3F1ZXJ5fSIKKworICAgICAgICByYWlzZSBtYWtlX2Vycm9yKAorICAgICAgICAgICAgbWVzc2Fn ZSwKKyAgICAgICAgICAgIHNxbHN0YXRlPXNxbHN0YXRlLAorICAgICAgICAgICAgc2V2ZXJpdHk9 c2V2ZXJpdHksCisgICAgICAgICAgICBwcmltYXJ5PXByaW1hcnksCisgICAgICAgICAgICBkZXRh aWw9ZGV0YWlsLAorICAgICAgICAgICAgaGludD1oaW50LAorICAgICAgICAgICAgc2NoZW1hX25h bWU9c2NoZW1hX25hbWUsCisgICAgICAgICAgICB0YWJsZV9uYW1lPXRhYmxlX25hbWUsCisgICAg ICAgICAgICBjb2x1bW5fbmFtZT1jb2x1bW5fbmFtZSwKKyAgICAgICAgICAgIGRhdGF0eXBlX25h bWU9ZGF0YXR5cGVfbmFtZSwKKyAgICAgICAgICAgIGNvbnN0cmFpbnRfbmFtZT1jb25zdHJhaW50 X25hbWUsCisgICAgICAgICAgICBwb3NpdGlvbj1wb3NpdGlvbiwKKyAgICAgICAgICAgIGNvbnRl eHQ9Y29udGV4dCwKKyAgICAgICAgKQorCisgICAgZGVmIGZldGNoX2FsbChzZWxmKToKKyAgICAg ICAgIiIiCisgICAgICAgIEZldGNoIGFsbCByb3dzIGFuZCBjb252ZXJ0IHRvIFB5dGhvbiB0eXBl cy4KKyAgICAgICAgUmV0dXJucyBhIGxpc3Qgb2YgdHVwbGVzLCB3aXRoIHZhbHVlcyBjb252ZXJ0 ZWQgYmFzZWQgb24gdGhlaXIgUG9zdGdyZVNRTCB0eXBlLgorICAgICAgICAiIiIKKyAgICAgICAg bnJvd3MgPSBzZWxmLl9saWIuUFFudHVwbGVzKHNlbGYuX3JlcykKKyAgICAgICAgbmNvbHMgPSBz ZWxmLl9saWIuUFFuZmllbGRzKHNlbGYuX3JlcykKKworICAgICAgICAjIEdldCB0eXBlIE9JRHMg Zm9yIGVhY2ggY29sdW1uCisgICAgICAgIHR5cGVfb2lkcyA9IFtzZWxmLl9saWIuUFFmdHlwZShz ZWxmLl9yZXMsIGNvbCkgZm9yIGNvbCBpbiByYW5nZShuY29scyldCisKKyAgICAgICAgcmVzdWx0 cyA9IFtdCisgICAgICAgIGZvciByb3cgaW4gcmFuZ2UobnJvd3MpOgorICAgICAgICAgICAgcm93 X2RhdGEgPSBbXQorICAgICAgICAgICAgZm9yIGNvbCBpbiByYW5nZShuY29scyk6CisgICAgICAg ICAgICAgICAgaWYgc2VsZi5fbGliLlBRZ2V0aXNudWxsKHNlbGYuX3Jlcywgcm93LCBjb2wpOgor ICAgICAgICAgICAgICAgICAgICByb3dfZGF0YS5hcHBlbmQoTm9uZSkKKyAgICAgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuX2xpYi5QUWdldHZhbHVl KHNlbGYuX3Jlcywgcm93LCBjb2wpLmRlY29kZSgpCisgICAgICAgICAgICAgICAgICAgIHJvd19k YXRhLmFwcGVuZChfY29udmVydF9wZ192YWx1ZSh2YWx1ZSwgdHlwZV9vaWRzW2NvbF0pKQorICAg ICAgICAgICAgcmVzdWx0cy5hcHBlbmQodHVwbGUocm93X2RhdGEpKQorCisgICAgICAgIHJldHVy biByZXN1bHRzCisKKworY2xhc3MgUEdjb25uKGNvbnRleHRsaWIuQWJzdHJhY3RDb250ZXh0TWFu YWdlcik6CisgICAgIiIiCisgICAgV3JhcHMgYSByYXcgX1BHY29ubl9wIHdpdGggYSBtb3JlIGZy aWVuZGx5IGludGVyZmFjZS4gVGhpcyBpcyBqdXN0IGEKKyAgICBzdHViOyBpdCdzIGV4cGVjdGVk IHRvIGdyb3cuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oCisgICAgICAgIHNlbGYsCisg ICAgICAgIGxpYjogY3R5cGVzLkNETEwsCisgICAgICAgIGhhbmRsZTogX1BHY29ubl9wLAorICAg ICAgICBzdGFjazogY29udGV4dGxpYi5FeGl0U3RhY2ssCisgICAgKToKKyAgICAgICAgc2VsZi5f bGliID0gbGliCisgICAgICAgIHNlbGYuX2hhbmRsZSA9IGhhbmRsZQorICAgICAgICBzZWxmLl9z dGFjayA9IHN0YWNrCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwgKmV4Yyk6CisgICAgICAgIHNl bGYuX2xpYi5QUWZpbmlzaChzZWxmLl9oYW5kbGUpCisgICAgICAgIHNlbGYuX2hhbmRsZSA9IE5v bmUKKworICAgIGRlZiBleGVjKHNlbGYsIHF1ZXJ5OiBzdHIpOgorICAgICAgICAiIiIKKyAgICAg ICAgRXhlY3V0ZXMgYSBxdWVyeSB2aWEgUFFleGVjKCkgYW5kIHJldHVybnMgYSBQR3Jlc3VsdC4K KyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IHNlbGYuX2xpYi5QUWV4ZWMoc2VsZi5faGFuZGxl LCBxdWVyeS5lbmNvZGUoKSkKKyAgICAgICAgcmV0dXJuIHNlbGYuX3N0YWNrLmVudGVyX2NvbnRl eHQoUEdyZXN1bHQoc2VsZi5fbGliLCByZXMpKQorCisgICAgZGVmIHNxbChzZWxmLCBxdWVyeTog c3RyKToKKyAgICAgICAgIiIiCisgICAgICAgIEV4ZWN1dGVzIGEgcXVlcnkgYW5kIHJhaXNlcyBh biBleGNlcHRpb24gaWYgaXQgZmFpbHMuCisgICAgICAgIFJldHVybnMgdGhlIHF1ZXJ5IHJlc3Vs dHMgd2l0aCBhdXRvbWF0aWMgdHlwZSBjb252ZXJzaW9uIGFuZCBzaW1wbGlmaWNhdGlvbi4KKyAg ICAgICAgRm9yIGNvbW1hbmRzIHRoYXQgZG9uJ3QgcmV0dXJuIGRhdGEgKElOU0VSVCwgVVBEQVRF LCBldGMuKSwgcmV0dXJucyBOb25lLgorCisgICAgICAgIEV4YW1wbGVzOgorICAgICAgICAtIFNF TEVDVCAxIC0+IDEKKyAgICAgICAgLSBTRUxFQ1QgMSwgMiAtPiAoMSwgMikKKyAgICAgICAgLSBT RUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAzKSAtPiBbMSwgMiwgM10KKyAgICAgICAg LSBTRUxFQ1QgKiBGUk9NIChWQUxVRVMgKDEsICdhJyksICgyLCAnYicpKSB0IC0+IFsoMSwgJ2En KSwgKDIsICdiJyldCisgICAgICAgIC0gQ1JFQVRFIFRBQkxFIC4uLiAtPiBOb25lCisgICAgICAg IC0gSU5TRVJUIElOVE8gLi4uIC0+IE5vbmUKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IHNl bGYuZXhlYyhxdWVyeSkKKyAgICAgICAgc3RhdHVzID0gcmVzLnN0YXR1cygpCisKKyAgICAgICAg aWYgc3RhdHVzID09IEV4ZWNTdGF0dXMuUEdSRVNfRkFUQUxfRVJST1I6CisgICAgICAgICAgICBy ZXMucmFpc2VfZXJyb3IocXVlcnkpCisgICAgICAgIGVsaWYgc3RhdHVzID09IEV4ZWNTdGF0dXMu UEdSRVNfQ09NTUFORF9PSzoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGVsaWYg c3RhdHVzID09IEV4ZWNTdGF0dXMuUEdSRVNfVFVQTEVTX09LOgorICAgICAgICAgICAgcmVzdWx0 cyA9IHJlcy5mZXRjaF9hbGwoKQorICAgICAgICAgICAgcmV0dXJuIHNpbXBsaWZ5X3F1ZXJ5X3Jl c3VsdHMocmVzdWx0cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlcy5yYWlzZV9lcnJv cihxdWVyeSkKKworCitkZWYgY29ubnN0cihvcHRzOiBEaWN0W3N0ciwgQW55XSkgLT4gc3RyOgor ICAgICIiIgorICAgIEZsYXR0ZW5zIHRoZSBwcm92aWRlZCBvcHRpb25zIGludG8gYSBsaWJwcSBj b25uZWN0aW9uIHN0cmluZy4gVmFsdWVzCisgICAgYXJlIGNvbnZlcnRlZCB0byBzdHIgYW5kIHF1 b3RlZC9lc2NhcGVkIGFzIG5lY2Vzc2FyeS4KKyAgICAiIiIKKyAgICBzZXR0aW5ncyA9IFtdCisK KyAgICBmb3IgaywgdiBpbiBvcHRzLml0ZW1zKCk6CisgICAgICAgIHYgPSBzdHIodikKKyAgICAg ICAgaWYgbm90IHY6CisgICAgICAgICAgICB2ID0gIicnIgorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgdiA9IHYucmVwbGFjZSgiXFwiLCAiXFxcXCIpCisgICAgICAgICAgICB2ID0gdi5yZXBs YWNlKCInIiwgIlxcJyIpCisKKyAgICAgICAgICAgIGlmICIgIiBpbiB2OgorICAgICAgICAgICAg ICAgIHYgPSBmIid7dn0nIgorCisgICAgICAgIHNldHRpbmdzLmFwcGVuZChmIntrfT17dn0iKQor CisgICAgcmV0dXJuICIgIi5qb2luKHNldHRpbmdzKQorCisKK2RlZiBjb25uZWN0KAorICAgIGxp YnBxX2hhbmRsZTogY3R5cGVzLkNETEwsCisgICAgc3RhY2s6IGNvbnRleHRsaWIuRXhpdFN0YWNr LAorICAgIHJlbWFpbmluZ190aW1lb3V0X2ZuOiBDYWxsYWJsZVtbXSwgZmxvYXRdLAorICAgICoq b3B0cywKKykgLT4gUEdjb25uOgorICAgICIiIgorICAgIENvbm5lY3RzIHRvIGEgc2VydmVyLCB1 c2luZyB0aGUgZ2l2ZW4gY29ubmVjdGlvbiBvcHRpb25zLCBhbmQKKyAgICByZXR1cm5zIGEgUEdj b25uIG9iamVjdCB3cmFwcGluZyB0aGUgY29ubmVjdGlvbiBoYW5kbGUuIEEKKyAgICBmYWlsdXJl IHdpbGwgcmFpc2UgTGlicHFFcnJvci4KKworICAgIENvbm5lY3Rpb25zIGhvbm9yIFBHX1RFU1Rf VElNRU9VVF9ERUZBVUxUIHVubGVzcyBjb25uZWN0X3RpbWVvdXQgaXMKKyAgICBleHBsaWNpdGx5 IG92ZXJyaWRkZW4gaW4gb3B0cy4KKworICAgIEFyZ3M6CisgICAgICAgIGxpYnBxX2hhbmRsZTog Y3R5cGVzLkNETEwgaGFuZGxlIHRvIGxpYnBxIGxpYnJhcnkKKyAgICAgICAgc3RhY2s6IEV4aXRT dGFjayBmb3IgbWFuYWdpbmcgY29ubmVjdGlvbiBjbGVhbnVwCisgICAgICAgIHJlbWFpbmluZ190 aW1lb3V0X2ZuOiBGdW5jdGlvbiB0aGF0IHJldHVybnMgcmVtYWluaW5nIHRpbWVvdXQgaW4gc2Vj b25kcworICAgICAgICAqKm9wdHM6IENvbm5lY3Rpb24gb3B0aW9ucyAoaG9zdCwgcG9ydCwgZGJu YW1lLCBldGMuKQorCisgICAgUmV0dXJuczoKKyAgICAgICAgUEdjb25uOiBDb25uZWN0ZWQgZGF0 YWJhc2UgY29ubmVjdGlvbgorCisgICAgUmFpc2VzOgorICAgICAgICBMaWJwcUVycm9yOiBJZiBj b25uZWN0aW9uIGZhaWxzCisgICAgIiIiCisKKyAgICBpZiAiY29ubmVjdF90aW1lb3V0IiBub3Qg aW4gb3B0czoKKyAgICAgICAgdCA9IGludChyZW1haW5pbmdfdGltZW91dF9mbigpKQorICAgICAg ICBvcHRzWyJjb25uZWN0X3RpbWVvdXQiXSA9IG1heCh0LCAxKQorCisgICAgY29ubl9wID0gbGli cHFfaGFuZGxlLlBRY29ubmVjdGRiKGNvbm5zdHIob3B0cykuZW5jb2RlKCkpCisKKyAgICAjIENo ZWNrIGNvbm5lY3Rpb24gc3RhdHVzIGJlZm9yZSBhZGRpbmcgdG8gc3RhY2sKKyAgICBpZiBsaWJw cV9oYW5kbGUuUFFzdGF0dXMoY29ubl9wKSAhPSBDb25uZWN0aW9uU3RhdHVzLkNPTk5FQ1RJT05f T0s6CisgICAgICAgIGVycm9yX21zZyA9IGxpYnBxX2hhbmRsZS5QUWVycm9yTWVzc2FnZShjb25u X3ApLmRlY29kZSgpCisgICAgICAgICMgTWFudWFsbHkgY2xvc2UgdGhlIGZhaWxlZCBjb25uZWN0 aW9uCisgICAgICAgIGxpYnBxX2hhbmRsZS5QUWZpbmlzaChjb25uX3ApCisgICAgICAgIHJhaXNl IExpYnBxRXJyb3IoZXJyb3JfbXNnKQorCisgICAgIyBDb25uZWN0aW9uIHN1Y2NlZWRlZCAtIGFk ZCB0byBzdGFjayBmb3IgY2xlYW51cAorICAgIGNvbm4gPSBzdGFjay5lbnRlcl9jb250ZXh0KFBH Y29ubihsaWJwcV9oYW5kbGUsIGNvbm5fcCwgc3RhY2s9c3RhY2spKQorICAgIHJldHVybiBjb25u CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2Vycm9yX2Jhc2UucHkgYi9zcmMv dGVzdC9weXRlc3QvbGlicHEvX2Vycm9yX2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjVjNzBjMDc3MTkzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qv cHl0ZXN0L2xpYnBxL19lcnJvcl9iYXNlLnB5CkBAIC0wLDAgKzEsNzQgQEAKKyMgQ29weXJpZ2h0 IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisiIiIKK0Jh c2UgZXhjZXB0aW9uIGNsYXNzZXMgZm9yIGxpYnBxIGVycm9ycyBhbmQgd2FybmluZ3MuCisiIiIK KworZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCisKKworY2xhc3MgTGlicHFFeGNlcHRpb25N aXhpbjoKKyAgICAiIiJNaXhpbiBwcm92aWRpbmcgUG9zdGdyZVNRTCBlcnJvciBmaWVsZCBhdHRy aWJ1dGVzLiIiIgorCisgICAgc3Fsc3RhdGU6IE9wdGlvbmFsW3N0cl0KKyAgICBzZXZlcml0eTog T3B0aW9uYWxbc3RyXQorICAgIHByaW1hcnk6IE9wdGlvbmFsW3N0cl0KKyAgICBkZXRhaWw6IE9w dGlvbmFsW3N0cl0KKyAgICBoaW50OiBPcHRpb25hbFtzdHJdCisgICAgc2NoZW1hX25hbWU6IE9w dGlvbmFsW3N0cl0KKyAgICB0YWJsZV9uYW1lOiBPcHRpb25hbFtzdHJdCisgICAgY29sdW1uX25h bWU6IE9wdGlvbmFsW3N0cl0KKyAgICBkYXRhdHlwZV9uYW1lOiBPcHRpb25hbFtzdHJdCisgICAg Y29uc3RyYWludF9uYW1lOiBPcHRpb25hbFtzdHJdCisgICAgcG9zaXRpb246IE9wdGlvbmFsW2lu dF0KKyAgICBjb250ZXh0OiBPcHRpb25hbFtzdHJdCisKKyAgICBkZWYgX19pbml0X18oCisgICAg ICAgIHNlbGYsCisgICAgICAgIG1lc3NhZ2U6IHN0ciwKKyAgICAgICAgKiwKKyAgICAgICAgc3Fs c3RhdGU6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICBzZXZlcml0eTogT3B0aW9uYWxb c3RyXSA9IE5vbmUsCisgICAgICAgIHByaW1hcnk6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAg ICAgICBkZXRhaWw6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICBoaW50OiBPcHRpb25h bFtzdHJdID0gTm9uZSwKKyAgICAgICAgc2NoZW1hX25hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25l LAorICAgICAgICB0YWJsZV9uYW1lOiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgY29s dW1uX25hbWU6IE9wdGlvbmFsW3N0cl0gPSBOb25lLAorICAgICAgICBkYXRhdHlwZV9uYW1lOiBP cHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICAgICAgY29uc3RyYWludF9uYW1lOiBPcHRpb25hbFtz dHJdID0gTm9uZSwKKyAgICAgICAgcG9zaXRpb246IE9wdGlvbmFsW2ludF0gPSBOb25lLAorICAg ICAgICBjb250ZXh0OiBPcHRpb25hbFtzdHJdID0gTm9uZSwKKyAgICApOgorICAgICAgICBzdXBl cigpLl9faW5pdF9fKG1lc3NhZ2UpCisgICAgICAgIHNlbGYuc3Fsc3RhdGUgPSBzcWxzdGF0ZQor ICAgICAgICBzZWxmLnNldmVyaXR5ID0gc2V2ZXJpdHkKKyAgICAgICAgc2VsZi5wcmltYXJ5ID0g cHJpbWFyeQorICAgICAgICBzZWxmLmRldGFpbCA9IGRldGFpbAorICAgICAgICBzZWxmLmhpbnQg PSBoaW50CisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfbmFtZQorICAgICAgICBz ZWxmLnRhYmxlX25hbWUgPSB0YWJsZV9uYW1lCisgICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSBj b2x1bW5fbmFtZQorICAgICAgICBzZWxmLmRhdGF0eXBlX25hbWUgPSBkYXRhdHlwZV9uYW1lCisg ICAgICAgIHNlbGYuY29uc3RyYWludF9uYW1lID0gY29uc3RyYWludF9uYW1lCisgICAgICAgIHNl bGYucG9zaXRpb24gPSBwb3NpdGlvbgorICAgICAgICBzZWxmLmNvbnRleHQgPSBjb250ZXh0CisK KyAgICBAcHJvcGVydHkKKyAgICBkZWYgc3Fsc3RhdGVfY2xhc3Moc2VsZikgLT4gT3B0aW9uYWxb c3RyXToKKyAgICAgICAgIiIiUmV0dXJucyB0aGUgMi1jaGFyYWN0ZXIgU1FMU1RBVEUgY2xhc3Mu IiIiCisgICAgICAgIGlmIHNlbGYuc3Fsc3RhdGUgYW5kIGxlbihzZWxmLnNxbHN0YXRlKSA+PSAy OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuc3Fsc3RhdGVbOjJdCisgICAgICAgIHJldHVybiBO b25lCisKKworY2xhc3MgTGlicHFFcnJvcihMaWJwcUV4Y2VwdGlvbk1peGluLCBSdW50aW1lRXJy b3IpOgorICAgICIiIkJhc2UgZXhjZXB0aW9uIGZvciBsaWJwcSBlcnJvcnMuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgTGlicHFXYXJuaW5nKExpYnBxRXhjZXB0aW9uTWl4aW4sIFVzZXJXYXJu aW5nKToKKyAgICAiIiJCYXNlIGV4Y2VwdGlvbiBmb3IgbGlicHEgd2FybmluZ3MuIiIiCisKKyAg ICBwYXNzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2dlbmVyYXRlZF9lcnJv cnMucHkgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvX2dlbmVyYXRlZF9lcnJvcnMucHkKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY1MGYzMTQzNTgwCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL19nZW5lcmF0ZWRfZXJyb3JzLnB5CkBAIC0w LDAgKzEsMjExNiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERl dmVsb3BtZW50IEdyb3VwCisjIFRoaXMgZmlsZSBpcyBnZW5lcmF0ZWQgYnkgc3JjL3Rvb2xzL2dl bmVyYXRlX3B5dGVzdF9saWJwcV9lcnJvcnMucHkgLSBkbyBub3QgZWRpdCBkaXJlY3RseS4KKwor IiIiCitHZW5lcmF0ZWQgUG9zdGdyZVNRTCBlcnJvciBjbGFzc2VzIG1hcHBlZCBmcm9tIFNRTFNU QVRFIGNvZGVzLgorIiIiCisKK2Zyb20gdHlwaW5nIGltcG9ydCBEaWN0CisKK2Zyb20gLl9lcnJv cl9iYXNlIGltcG9ydCBMaWJwcUVycm9yLCBMaWJwcVdhcm5pbmcKKworCitjbGFzcyBTdWNjZXNz ZnVsQ29tcGxldGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwMDAwMCAtIHN1Y2Nl c3NmdWwgY29tcGxldGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBXYXJuaW5nKExpYnBx V2FybmluZyk6CisgICAgIiIiU1FMU1RBVEUgMDEwMDAgLSB3YXJuaW5nLiIiIgorCisgICAgcGFz cworCisKK2NsYXNzIER5bmFtaWNSZXN1bHRTZXRzUmV0dXJuZWRXYXJuaW5nKFdhcm5pbmcpOgor ICAgICIiIlNRTFNUQVRFIDAxMDBDIC0gZHluYW1pYyByZXN1bHQgc2V0cyByZXR1cm5lZC4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBJbXBsaWNpdFplcm9CaXRQYWRkaW5nV2FybmluZyhXYXJu aW5nKToKKyAgICAiIiJTUUxTVEFURSAwMTAwOCAtIGltcGxpY2l0IHplcm8gYml0IHBhZGRpbmcu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTnVsbFZhbHVlRWxpbWluYXRlZEluU2V0RnVuY3Rp b25XYXJuaW5nKFdhcm5pbmcpOgorICAgICIiIlNRTFNUQVRFIDAxMDAzIC0gbnVsbCB2YWx1ZSBl bGltaW5hdGVkIGluIHNldCBmdW5jdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBQcml2 aWxlZ2VOb3RHcmFudGVkV2FybmluZyhXYXJuaW5nKToKKyAgICAiIiJTUUxTVEFURSAwMTAwNyAt IHByaXZpbGVnZSBub3QgZ3JhbnRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBQcml2aWxl Z2VOb3RSZXZva2VkV2FybmluZyhXYXJuaW5nKToKKyAgICAiIiJTUUxTVEFURSAwMTAwNiAtIHBy aXZpbGVnZSBub3QgcmV2b2tlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTdHJpbmdEYXRh UmlnaHRUcnVuY2F0aW9uV2FybmluZyhXYXJuaW5nKToKKyAgICAiIiJTUUxTVEFURSAwMTAwNCAt IHN0cmluZyBkYXRhIHJpZ2h0IHRydW5jYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg RGVwcmVjYXRlZEZlYXR1cmVXYXJuaW5nKFdhcm5pbmcpOgorICAgICIiIlNRTFNUQVRFIDAxUDAx IC0gZGVwcmVjYXRlZCBmZWF0dXJlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIE5vRGF0YShM aWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwMjAwMCAtIG5vIGRhdGEuIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgTm9BZGRpdGlvbmFsRHluYW1pY1Jlc3VsdFNldHNSZXR1cm5lZChOb0Rh dGEpOgorICAgICIiIlNRTFNUQVRFIDAyMDAxIC0gbm8gYWRkaXRpb25hbCBkeW5hbWljIHJlc3Vs dCBzZXRzIHJldHVybmVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNRTFN0YXRlbWVudE5v dFlldENvbXBsZXRlKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDAzMDAwIC0gc3FsIHN0 YXRlbWVudCBub3QgeWV0IGNvbXBsZXRlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENvbm5l Y3Rpb25FeGNlcHRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMDgwMDAgLSBjb25u ZWN0aW9uIGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDb25uZWN0aW9uRG9l c05vdEV4aXN0KENvbm5lY3Rpb25FeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDA4MDAzIC0g Y29ubmVjdGlvbiBkb2VzIG5vdCBleGlzdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBDb25u ZWN0aW9uRmFpbHVyZShDb25uZWN0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAwODAw NiAtIGNvbm5lY3Rpb24gZmFpbHVyZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxDbGll bnRVbmFibGVUb0VzdGFibGlzaFNRTENvbm5lY3Rpb24oQ29ubmVjdGlvbkV4Y2VwdGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgMDgwMDEgLSBzcWxjbGllbnQgdW5hYmxlIHRvIGVzdGFibGlzaCBzcWxj b25uZWN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNRTFNlcnZlclJlamVjdGVkRXN0 YWJsaXNobWVudE9mU1FMQ29ubmVjdGlvbihDb25uZWN0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJT UUxTVEFURSAwODAwNCAtIHNxbHNlcnZlciByZWplY3RlZCBlc3RhYmxpc2htZW50IG9mIHNxbGNv bm5lY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVHJhbnNhY3Rpb25SZXNvbHV0aW9u VW5rbm93bihDb25uZWN0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAwODAwNyAtIHRy YW5zYWN0aW9uIHJlc29sdXRpb24gdW5rbm93bi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBQ cm90b2NvbFZpb2xhdGlvbihDb25uZWN0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAw OFAwMSAtIHByb3RvY29sIHZpb2xhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBUcmln Z2VyZWRBY3Rpb25FeGNlcHRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMDkwMDAg LSB0cmlnZ2VyZWQgYWN0aW9uIGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBG ZWF0dXJlTm90U3VwcG9ydGVkKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDBBMDAwIC0g ZmVhdHVyZSBub3Qgc3VwcG9ydGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRU cmFuc2FjdGlvbkluaXRpYXRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMEIwMDAg LSBpbnZhbGlkIHRyYW5zYWN0aW9uIGluaXRpYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgTG9jYXRvckV4Y2VwdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwRjAwMCAt IGxvY2F0b3IgZXhjZXB0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRMb2Nh dG9yU3BlY2lmaWNhdGlvbihMb2NhdG9yRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAwRjAw MSAtIGludmFsaWQgbG9jYXRvciBzcGVjaWZpY2F0aW9uLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWRHcmFudG9yKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDBMMDAwIC0g aW52YWxpZCBncmFudG9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRHcmFudE9w ZXJhdGlvbihJbnZhbGlkR3JhbnRvcik6CisgICAgIiIiU1FMU1RBVEUgMExQMDEgLSBpbnZhbGlk IGdyYW50IG9wZXJhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkUm9sZVNw ZWNpZmljYXRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMFAwMDAgLSBpbnZhbGlk IHJvbGUgc3BlY2lmaWNhdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEaWFnbm9zdGlj c0V4Y2VwdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAwWjAwMCAtIGRpYWdub3N0 aWNzIGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTdGFja2VkRGlhZ25vc3Rp Y3NBY2Nlc3NlZFdpdGhvdXRBY3RpdmVIYW5kbGVyKERpYWdub3N0aWNzRXhjZXB0aW9uKToKKyAg ICAiIiJTUUxTVEFURSAwWjAwMiAtIHN0YWNrZWQgZGlhZ25vc3RpY3MgYWNjZXNzZWQgd2l0aG91 dCBhY3RpdmUgaGFuZGxlci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXJndW1l bnRGb3JYcXVlcnkoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMTA2MDggLSBpbnZhbGlk IGFyZ3VtZW50IGZvciB4cXVlcnkuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQ2FzZU5vdEZv dW5kKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDIwMDAwIC0gY2FzZSBub3QgZm91bmQu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQ2FyZGluYWxpdHlWaW9sYXRpb24oTGlicHFFcnJv cik6CisgICAgIiIiU1FMU1RBVEUgMjEwMDAgLSBjYXJkaW5hbGl0eSB2aW9sYXRpb24uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgRGF0YUV4Y2VwdGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJT UUxTVEFURSAyMjAwMCAtIGRhdGEgZXhjZXB0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IEFycmF5U3Vic2NyaXB0RXJyb3IoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIw MkUgLSBhcnJheSBzdWJzY3JpcHQgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQ2hh cmFjdGVyTm90SW5SZXBlcnRvaXJlKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDIxIC0gY2hhcmFjdGVyIG5vdCBpbiByZXBlcnRvaXJlLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIERhdGV0aW1lRmllbGRPdmVyZmxvdyhEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFU RSAyMjAwOCAtIGRhdGV0aW1lIGZpZWxkIG92ZXJmbG93LiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIERpdmlzaW9uQnlaZXJvKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDEy IC0gZGl2aXNpb24gYnkgemVyby4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBFcnJvckluQXNz aWdubWVudChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwNSAtIGVycm9yIGlu IGFzc2lnbm1lbnQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRXNjYXBlQ2hhcmFjdGVyQ29u ZmxpY3QoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMEIgLSBlc2NhcGUgY2hh cmFjdGVyIGNvbmZsaWN0LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEluZGljYXRvck92ZXJm bG93KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDIyIC0gaW5kaWNhdG9yIG92 ZXJmbG93LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludGVydmFsRmllbGRPdmVyZmxvdyhE YXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxNSAtIGludGVydmFsIGZpZWxkIG92 ZXJmbG93LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRBcmd1bWVudEZvckxvZ2Fy aXRobShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxRSAtIGludmFsaWQgYXJn dW1lbnQgZm9yIGxvZ2FyaXRobS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXJn dW1lbnRGb3JOdGlsZUZ1bmN0aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDE0IC0gaW52YWxpZCBhcmd1bWVudCBmb3IgbnRpbGUgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZEFyZ3VtZW50Rm9yTnRoVmFsdWVGdW5jdGlvbihEYXRhRXhjZXB0 aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAxNiAtIGludmFsaWQgYXJndW1lbnQgZm9yIG50aCB2 YWx1ZSBmdW5jdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQXJndW1lbnRG b3JQb3dlckZ1bmN0aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDFGIC0g aW52YWxpZCBhcmd1bWVudCBmb3IgcG93ZXIgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgSW52YWxpZEFyZ3VtZW50Rm9yV2lkdGhCdWNrZXRGdW5jdGlvbihEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAxRyAtIGludmFsaWQgYXJndW1lbnQgZm9yIHdpZHRoIGJ1 Y2tldCBmdW5jdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQ2hhcmFjdGVy VmFsdWVGb3JDYXN0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDE4IC0gaW52 YWxpZCBjaGFyYWN0ZXIgdmFsdWUgZm9yIGNhc3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW52YWxpZERhdGV0aW1lRm9ybWF0KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDA3IC0gaW52YWxpZCBkYXRldGltZSBmb3JtYXQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW52YWxpZEVzY2FwZUNoYXJhY3RlcihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAy MjAxOSAtIGludmFsaWQgZXNjYXBlIGNoYXJhY3Rlci4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBJbnZhbGlkRXNjYXBlT2N0ZXQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIw MEQgLSBpbnZhbGlkIGVzY2FwZSBvY3RldC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZh bGlkRXNjYXBlU2VxdWVuY2UoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMjUg LSBpbnZhbGlkIGVzY2FwZSBzZXF1ZW5jZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb25z dGFuZGFyZFVzZU9mRXNjYXBlQ2hhcmFjdGVyKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNU QVRFIDIyUDA2IC0gbm9uc3RhbmRhcmQgdXNlIG9mIGVzY2FwZSBjaGFyYWN0ZXIuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgSW52YWxpZEluZGljYXRvclBhcmFtZXRlclZhbHVlKERhdGFFeGNl cHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDEwIC0gaW52YWxpZCBpbmRpY2F0b3IgcGFyYW1l dGVyIHZhbHVlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRQYXJhbWV0ZXJWYWx1 ZShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAyMyAtIGludmFsaWQgcGFyYW1l dGVyIHZhbHVlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRQcmVjZWRpbmdPckZv bGxvd2luZ1NpemUoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMTMgLSBpbnZh bGlkIHByZWNlZGluZyBvciBmb2xsb3dpbmcgc2l6ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBJbnZhbGlkUmVndWxhckV4cHJlc3Npb24oRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RB VEUgMjIwMUIgLSBpbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkUm93Q291bnRJbkxpbWl0Q2xhdXNlKERhdGFFeGNlcHRpb24pOgorICAg ICIiIlNRTFNUQVRFIDIyMDFXIC0gaW52YWxpZCByb3cgY291bnQgaW4gbGltaXQgY2xhdXNlLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRSb3dDb3VudEluUmVzdWx0T2Zmc2V0Q2xh dXNlKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDFYIC0gaW52YWxpZCByb3cg Y291bnQgaW4gcmVzdWx0IG9mZnNldCBjbGF1c2UuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg SW52YWxpZFRhYmxlc2FtcGxlQXJndW1lbnQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RB VEUgMjIwMkggLSBpbnZhbGlkIHRhYmxlc2FtcGxlIGFyZ3VtZW50LiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRUYWJsZXNhbXBsZVJlcGVhdChEYXRhRXhjZXB0aW9uKToKKyAgICAi IiJTUUxTVEFURSAyMjAyRyAtIGludmFsaWQgdGFibGVzYW1wbGUgcmVwZWF0LiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEludmFsaWRUaW1lWm9uZURpc3BsYWNlbWVudFZhbHVlKERhdGFFeGNl cHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDA5IC0gaW52YWxpZCB0aW1lIHpvbmUgZGlzcGxh Y2VtZW50IHZhbHVlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRVc2VPZkVzY2Fw ZUNoYXJhY3RlcihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAwQyAtIGludmFs aWQgdXNlIG9mIGVzY2FwZSBjaGFyYWN0ZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTW9z dFNwZWNpZmljVHlwZU1pc21hdGNoKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIy MDBHIC0gbW9zdCBzcGVjaWZpYyB0eXBlIG1pc21hdGNoLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIE51bGxWYWx1ZU5vdEFsbG93ZWQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MjIwMDQgLSBudWxsIHZhbHVlIG5vdCBhbGxvd2VkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IE51bGxWYWx1ZU5vSW5kaWNhdG9yUGFyYW1ldGVyKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNR TFNUQVRFIDIyMDAyIC0gbnVsbCB2YWx1ZSBubyBpbmRpY2F0b3IgcGFyYW1ldGVyLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIE51bWVyaWNWYWx1ZU91dE9mUmFuZ2UoRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMDMgLSBudW1lcmljIHZhbHVlIG91dCBvZiByYW5nZS4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBTZXF1ZW5jZUdlbmVyYXRvckxpbWl0RXhjZWVkZWQoRGF0 YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMEggLSBzZXF1ZW5jZSBnZW5lcmF0b3Ig bGltaXQgZXhjZWVkZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU3RyaW5nRGF0YUxlbmd0 aE1pc21hdGNoKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDI2IC0gc3RyaW5n IGRhdGEgbGVuZ3RoIG1pc21hdGNoLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFN0cmluZ0Rh dGFSaWdodFRydW5jYXRpb24oRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMDEg LSBzdHJpbmcgZGF0YSByaWdodCB0cnVuY2F0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFN1YnN0cmluZ0Vycm9yKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDExIC0g c3Vic3RyaW5nIGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFRyaW1FcnJvcihEYXRh RXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAyNyAtIHRyaW0gZXJyb3IuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgVW50ZXJtaW5hdGVkQ1N0cmluZyhEYXRhRXhjZXB0aW9uKToKKyAg ICAiIiJTUUxTVEFURSAyMjAyNCAtIHVudGVybWluYXRlZCBjIHN0cmluZy4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBaZXJvTGVuZ3RoQ2hhcmFjdGVyU3RyaW5nKERhdGFFeGNlcHRpb24pOgor ICAgICIiIlNRTFNUQVRFIDIyMDBGIC0gemVybyBsZW5ndGggY2hhcmFjdGVyIHN0cmluZy4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBGbG9hdGluZ1BvaW50RXhjZXB0aW9uKERhdGFFeGNlcHRp b24pOgorICAgICIiIlNRTFNUQVRFIDIyUDAxIC0gZmxvYXRpbmcgcG9pbnQgZXhjZXB0aW9uLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRUZXh0UmVwcmVzZW50YXRpb24oRGF0YUV4 Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjJQMDIgLSBpbnZhbGlkIHRleHQgcmVwcmVzZW50 YXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEJpbmFyeVJlcHJlc2VudGF0 aW9uKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyUDAzIC0gaW52YWxpZCBiaW5h cnkgcmVwcmVzZW50YXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQmFkQ29weUZpbGVG b3JtYXQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjJQMDQgLSBiYWQgY29weSBm aWxlIGZvcm1hdC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBVbnRyYW5zbGF0YWJsZUNoYXJh Y3RlcihEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMlAwNSAtIHVudHJhbnNsYXRh YmxlIGNoYXJhY3Rlci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBOb3RBblhtbERvY3VtZW50 KERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDBMIC0gbm90IGFuIHhtbCBkb2N1 bWVudC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkWG1sRG9jdW1lbnQoRGF0YUV4 Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwME0gLSBpbnZhbGlkIHhtbCBkb2N1bWVudC4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkWG1sQ29udGVudChEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAwTiAtIGludmFsaWQgeG1sIGNvbnRlbnQuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgSW52YWxpZFhtbENvbW1lbnQoRGF0YUV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMjIwMFMgLSBpbnZhbGlkIHhtbCBjb21tZW50LiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRYbWxQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oRGF0YUV4Y2VwdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgMjIwMFQgLSBpbnZhbGlkIHhtbCBwcm9jZXNzaW5nIGluc3RydWN0 aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZUpzb25PYmplY3RLZXlWYWx1 ZShEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzMCAtIGR1cGxpY2F0ZSBqc29u IG9iamVjdCBrZXkgdmFsdWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEFyZ3Vt ZW50Rm9yU1FMSnNvbkRhdGV0aW1lRnVuY3Rpb24oRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FM U1RBVEUgMjIwMzEgLSBpbnZhbGlkIGFyZ3VtZW50IGZvciBzcWwganNvbiBkYXRldGltZSBmdW5j dGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkSnNvblRleHQoRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzIgLSBpbnZhbGlkIGpzb24gdGV4dC4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkU1FMSnNvblN1YnNjcmlwdChEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAzMyAtIGludmFsaWQgc3FsIGpzb24gc3Vic2NyaXB0LiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIE1vcmVUaGFuT25lU1FMSnNvbkl0ZW0oRGF0YUV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzQgLSBtb3JlIHRoYW4gb25lIHNxbCBqc29uIGl0 ZW0uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgTm9TUUxKc29uSXRlbShEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAzNSAtIG5vIHNxbCBqc29uIGl0ZW0uIiIiCisKKyAgICBw YXNzCisKKworY2xhc3MgTm9uTnVtZXJpY1NRTEpzb25JdGVtKERhdGFFeGNlcHRpb24pOgorICAg ICIiIlNRTFNUQVRFIDIyMDM2IC0gbm9uIG51bWVyaWMgc3FsIGpzb24gaXRlbS4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBOb25VbmlxdWVLZXlzSW5BSnNvbk9iamVjdChEYXRhRXhjZXB0aW9u KToKKyAgICAiIiJTUUxTVEFURSAyMjAzNyAtIG5vbiB1bmlxdWUga2V5cyBpbiBhIGpzb24gb2Jq ZWN0LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNpbmdsZXRvblNRTEpzb25JdGVtUmVxdWly ZWQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwMzggLSBzaW5nbGV0b24gc3Fs IGpzb24gaXRlbSByZXF1aXJlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxKc29uQXJy YXlOb3RGb3VuZChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzOSAtIHNxbCBq c29uIGFycmF5IG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTUUxKc29uTWVt YmVyTm90Rm91bmQoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIwM0EgLSBzcWwg anNvbiBtZW1iZXIgbm90IGZvdW5kLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNRTEpzb25O dW1iZXJOb3RGb3VuZChEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMjAzQiAtIHNx bCBqc29uIG51bWJlciBub3QgZm91bmQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1FMSnNv bk9iamVjdE5vdEZvdW5kKERhdGFFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDNDIC0g c3FsIGpzb24gb2JqZWN0IG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBUb29N YW55SnNvbkFycmF5RWxlbWVudHMoRGF0YUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjIw M0QgLSB0b28gbWFueSBqc29uIGFycmF5IGVsZW1lbnRzLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIFRvb01hbnlKc29uT2JqZWN0TWVtYmVycyhEYXRhRXhjZXB0aW9uKToKKyAgICAiIiJTUUxT VEFURSAyMjAzRSAtIHRvbyBtYW55IGpzb24gb2JqZWN0IG1lbWJlcnMuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgU1FMSnNvblNjYWxhclJlcXVpcmVkKERhdGFFeGNlcHRpb24pOgorICAgICIi IlNRTFNUQVRFIDIyMDNGIC0gc3FsIGpzb24gc2NhbGFyIHJlcXVpcmVkLiIiIgorCisgICAgcGFz cworCisKK2NsYXNzIFNRTEpzb25JdGVtQ2Fubm90QmVDYXN0VG9UYXJnZXRUeXBlKERhdGFFeGNl cHRpb24pOgorICAgICIiIlNRTFNUQVRFIDIyMDNHIC0gc3FsIGpzb24gaXRlbSBjYW5ub3QgYmUg Y2FzdCB0byB0YXJnZXQgdHlwZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJbnRlZ3JpdHlD b25zdHJhaW50VmlvbGF0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDIzMDAwIC0g aW50ZWdyaXR5IGNvbnN0cmFpbnQgdmlvbGF0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFJlc3RyaWN0VmlvbGF0aW9uKEludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24pOgorICAgICIi IlNRTFNUQVRFIDIzMDAxIC0gcmVzdHJpY3QgdmlvbGF0aW9uLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIE5vdE51bGxWaW9sYXRpb24oSW50ZWdyaXR5Q29uc3RyYWludFZpb2xhdGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgMjM1MDIgLSBub3QgbnVsbCB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgRm9yZWlnbktleVZpb2xhdGlvbihJbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0 aW9uKToKKyAgICAiIiJTUUxTVEFURSAyMzUwMyAtIGZvcmVpZ24ga2V5IHZpb2xhdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBVbmlxdWVWaW9sYXRpb24oSW50ZWdyaXR5Q29uc3RyYWlu dFZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMjM1MDUgLSB1bmlxdWUgdmlvbGF0aW9uLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIENoZWNrVmlvbGF0aW9uKEludGVncml0eUNvbnN0cmFp bnRWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDIzNTE0IC0gY2hlY2sgdmlvbGF0aW9uLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIEV4Y2x1c2lvblZpb2xhdGlvbihJbnRlZ3JpdHlDb25z dHJhaW50VmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyM1AwMSAtIGV4Y2x1c2lvbiB2aW9s YXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEN1cnNvclN0YXRlKExpYnBx RXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDI0MDAwIC0gaW52YWxpZCBjdXJzb3Igc3RhdGUuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUoTGlicHFFcnJv cik6CisgICAgIiIiU1FMU1RBVEUgMjUwMDAgLSBpbnZhbGlkIHRyYW5zYWN0aW9uIHN0YXRlLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIEFjdGl2ZVNRTFRyYW5zYWN0aW9uKEludmFsaWRUcmFu c2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwMSAtIGFjdGl2ZSBzcWwgdHJhbnNh Y3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgQnJhbmNoVHJhbnNhY3Rpb25BbHJlYWR5 QWN0aXZlKEludmFsaWRUcmFuc2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwMiAt IGJyYW5jaCB0cmFuc2FjdGlvbiBhbHJlYWR5IGFjdGl2ZS4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBIZWxkQ3Vyc29yUmVxdWlyZXNTYW1lSXNvbGF0aW9uTGV2ZWwoSW52YWxpZFRyYW5zYWN0 aW9uU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDI1MDA4IC0gaGVsZCBjdXJzb3IgcmVxdWlyZXMg c2FtZSBpc29sYXRpb24gbGV2ZWwuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW5hcHByb3By aWF0ZUFjY2Vzc01vZGVGb3JCcmFuY2hUcmFuc2FjdGlvbihJbnZhbGlkVHJhbnNhY3Rpb25TdGF0 ZSk6CisgICAgIiIiU1FMU1RBVEUgMjUwMDMgLSBpbmFwcHJvcHJpYXRlIGFjY2VzcyBtb2RlIGZv ciBicmFuY2ggdHJhbnNhY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW5hcHByb3By aWF0ZUlzb2xhdGlvbkxldmVsRm9yQnJhbmNoVHJhbnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0aW9u U3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDI1MDA0IC0gaW5hcHByb3ByaWF0ZSBpc29sYXRpb24g bGV2ZWwgZm9yIGJyYW5jaCB0cmFuc2FjdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBO b0FjdGl2ZVNRTFRyYW5zYWN0aW9uRm9yQnJhbmNoVHJhbnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0 aW9uU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDI1MDA1IC0gbm8gYWN0aXZlIHNxbCB0cmFuc2Fj dGlvbiBmb3IgYnJhbmNoIHRyYW5zYWN0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFJl YWRPbmx5U1FMVHJhbnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUpOgorICAgICIiIlNR TFNUQVRFIDI1MDA2IC0gcmVhZCBvbmx5IHNxbCB0cmFuc2FjdGlvbi4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBTY2hlbWFBbmREYXRhU3RhdGVtZW50TWl4aW5nTm90U3VwcG9ydGVkKEludmFs aWRUcmFuc2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNTAwNyAtIHNjaGVtYSBhbmQg ZGF0YSBzdGF0ZW1lbnQgbWl4aW5nIG5vdCBzdXBwb3J0ZWQuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgTm9BY3RpdmVTUUxUcmFuc2FjdGlvbihJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6Cisg ICAgIiIiU1FMU1RBVEUgMjVQMDEgLSBubyBhY3RpdmUgc3FsIHRyYW5zYWN0aW9uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEluRmFpbGVkU1FMVHJhbnNhY3Rpb24oSW52YWxpZFRyYW5zYWN0 aW9uU3RhdGUpOgorICAgICIiIlNRTFNUQVRFIDI1UDAyIC0gaW4gZmFpbGVkIHNxbCB0cmFuc2Fj dGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJZGxlSW5UcmFuc2FjdGlvblNlc3Npb25U aW1lb3V0KEludmFsaWRUcmFuc2FjdGlvblN0YXRlKToKKyAgICAiIiJTUUxTVEFURSAyNVAwMyAt IGlkbGUgaW4gdHJhbnNhY3Rpb24gc2Vzc2lvbiB0aW1lb3V0LiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFRyYW5zYWN0aW9uVGltZW91dChJbnZhbGlkVHJhbnNhY3Rpb25TdGF0ZSk6CisgICAg IiIiU1FMU1RBVEUgMjVQMDQgLSB0cmFuc2FjdGlvbiB0aW1lb3V0LiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRTUUxTdGF0ZW1lbnROYW1lKExpYnBxRXJyb3IpOgorICAgICIiIlNR TFNUQVRFIDI2MDAwIC0gaW52YWxpZCBzcWwgc3RhdGVtZW50IG5hbWUuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgVHJpZ2dlcmVkRGF0YUNoYW5nZVZpb2xhdGlvbihMaWJwcUVycm9yKToKKyAg ICAiIiJTUUxTVEFURSAyNzAwMCAtIHRyaWdnZXJlZCBkYXRhIGNoYW5nZSB2aW9sYXRpb24uIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZEF1dGhvcml6YXRpb25TcGVjaWZpY2F0aW9u KExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDI4MDAwIC0gaW52YWxpZCBhdXRob3JpemF0 aW9uIHNwZWNpZmljYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFBhc3N3 b3JkKEludmFsaWRBdXRob3JpemF0aW9uU3BlY2lmaWNhdGlvbik6CisgICAgIiIiU1FMU1RBVEUg MjhQMDEgLSBpbnZhbGlkIHBhc3N3b3JkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIERlcGVu ZGVudFByaXZpbGVnZURlc2NyaXB0b3JzU3RpbGxFeGlzdChMaWJwcUVycm9yKToKKyAgICAiIiJT UUxTVEFURSAyQjAwMCAtIGRlcGVuZGVudCBwcml2aWxlZ2UgZGVzY3JpcHRvcnMgc3RpbGwgZXhp c3QuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRGVwZW5kZW50T2JqZWN0c1N0aWxsRXhpc3Qo RGVwZW5kZW50UHJpdmlsZWdlRGVzY3JpcHRvcnNTdGlsbEV4aXN0KToKKyAgICAiIiJTUUxTVEFU RSAyQlAwMSAtIGRlcGVuZGVudCBvYmplY3RzIHN0aWxsIGV4aXN0LiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRUcmFuc2FjdGlvblRlcm1pbmF0aW9uKExpYnBxRXJyb3IpOgorICAg ICIiIlNRTFNUQVRFIDJEMDAwIC0gaW52YWxpZCB0cmFuc2FjdGlvbiB0ZXJtaW5hdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBTUUxSb3V0aW5lRXhjZXB0aW9uKExpYnBxRXJyb3IpOgor ICAgICIiIlNRTFNUQVRFIDJGMDAwIC0gc3FsIHJvdXRpbmUgZXhjZXB0aW9uLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEZ1bmN0aW9uRXhlY3V0ZWROb1JldHVyblN0YXRlbWVudChTUUxSb3V0 aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAyRjAwNSAtIGZ1bmN0aW9uIGV4ZWN1dGVk IG5vIHJldHVybiBzdGF0ZW1lbnQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU1JFTW9kaWZ5 aW5nU1FMRGF0YU5vdFBlcm1pdHRlZChTUUxSb3V0aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxT VEFURSAyRjAwMiAtIG1vZGlmeWluZyBzcWwgZGF0YSBub3QgcGVybWl0dGVkLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIFNSRVByb2hpYml0ZWRTUUxTdGF0ZW1lbnRBdHRlbXB0ZWQoU1FMUm91 dGluZUV4Y2VwdGlvbik6CisgICAgIiIiU1FMU1RBVEUgMkYwMDMgLSBwcm9oaWJpdGVkIHNxbCBz dGF0ZW1lbnQgYXR0ZW1wdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNSRVJlYWRpbmdT UUxEYXRhTm90UGVybWl0dGVkKFNRTFJvdXRpbmVFeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRF IDJGMDA0IC0gcmVhZGluZyBzcWwgZGF0YSBub3QgcGVybWl0dGVkLiIiIgorCisgICAgcGFzcwor CisKK2NsYXNzIEludmFsaWRDdXJzb3JOYW1lKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRF IDM0MDAwIC0gaW52YWxpZCBjdXJzb3IgbmFtZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBF eHRlcm5hbFJvdXRpbmVFeGNlcHRpb24oTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgMzgw MDAgLSBleHRlcm5hbCByb3V0aW5lIGV4Y2VwdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBDb250YWluaW5nU1FMTm90UGVybWl0dGVkKEV4dGVybmFsUm91dGluZUV4Y2VwdGlvbik6Cisg ICAgIiIiU1FMU1RBVEUgMzgwMDEgLSBjb250YWluaW5nIHNxbCBub3QgcGVybWl0dGVkLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEVSRU1vZGlmeWluZ1NRTERhdGFOb3RQZXJtaXR0ZWQoRXh0 ZXJuYWxSb3V0aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzODAwMiAtIG1vZGlmeWlu ZyBzcWwgZGF0YSBub3QgcGVybWl0dGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEVSRVBy b2hpYml0ZWRTUUxTdGF0ZW1lbnRBdHRlbXB0ZWQoRXh0ZXJuYWxSb3V0aW5lRXhjZXB0aW9uKToK KyAgICAiIiJTUUxTVEFURSAzODAwMyAtIHByb2hpYml0ZWQgc3FsIHN0YXRlbWVudCBhdHRlbXB0 ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRVJFUmVhZGluZ1NRTERhdGFOb3RQZXJtaXR0 ZWQoRXh0ZXJuYWxSb3V0aW5lRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzODAwNCAtIHJl YWRpbmcgc3FsIGRhdGEgbm90IHBlcm1pdHRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBF eHRlcm5hbFJvdXRpbmVJbnZvY2F0aW9uRXhjZXB0aW9uKExpYnBxRXJyb3IpOgorICAgICIiIlNR TFNUQVRFIDM5MDAwIC0gZXh0ZXJuYWwgcm91dGluZSBpbnZvY2F0aW9uIGV4Y2VwdGlvbi4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkU3Fsc3RhdGVSZXR1cm5lZChFeHRlcm5hbFJv dXRpbmVJbnZvY2F0aW9uRXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzOTAwMSAtIGludmFs aWQgc3Fsc3RhdGUgcmV0dXJuZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRVJJRU51bGxW YWx1ZU5vdEFsbG93ZWQoRXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlvbkV4Y2VwdGlvbik6CisgICAg IiIiU1FMU1RBVEUgMzkwMDQgLSBudWxsIHZhbHVlIG5vdCBhbGxvd2VkLiIiIgorCisgICAgcGFz cworCisKK2NsYXNzIFRyaWdnZXJQcm90b2NvbFZpb2xhdGVkKEV4dGVybmFsUm91dGluZUludm9j YXRpb25FeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDM5UDAxIC0gdHJpZ2dlciBwcm90b2Nv bCB2aW9sYXRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBTcmZQcm90b2NvbFZpb2xhdGVk KEV4dGVybmFsUm91dGluZUludm9jYXRpb25FeGNlcHRpb24pOgorICAgICIiIlNRTFNUQVRFIDM5 UDAyIC0gc3JmIHByb3RvY29sIHZpb2xhdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEV2 ZW50VHJpZ2dlclByb3RvY29sVmlvbGF0ZWQoRXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlvbkV4Y2Vw dGlvbik6CisgICAgIiIiU1FMU1RBVEUgMzlQMDMgLSBldmVudCB0cmlnZ2VyIHByb3RvY29sIHZp b2xhdGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFNhdmVwb2ludEV4Y2VwdGlvbihMaWJw cUVycm9yKToKKyAgICAiIiJTUUxTVEFURSAzQjAwMCAtIHNhdmVwb2ludCBleGNlcHRpb24uIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFNhdmVwb2ludFNwZWNpZmljYXRpb24oU2F2 ZXBvaW50RXhjZXB0aW9uKToKKyAgICAiIiJTUUxTVEFURSAzQjAwMSAtIGludmFsaWQgc2F2ZXBv aW50IHNwZWNpZmljYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZENhdGFs b2dOYW1lKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDNEMDAwIC0gaW52YWxpZCBjYXRh bG9nIG5hbWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZFNjaGVtYU5hbWUoTGli cHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgM0YwMDAgLSBpbnZhbGlkIHNjaGVtYSBuYW1lLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIFRyYW5zYWN0aW9uUm9sbGJhY2soTGlicHFFcnJvcik6 CisgICAgIiIiU1FMU1RBVEUgNDAwMDAgLSB0cmFuc2FjdGlvbiByb2xsYmFjay4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBUcmFuc2FjdGlvbkludGVncml0eUNvbnN0cmFpbnRWaW9sYXRpb24o VHJhbnNhY3Rpb25Sb2xsYmFjayk6CisgICAgIiIiU1FMU1RBVEUgNDAwMDIgLSB0cmFuc2FjdGlv biBpbnRlZ3JpdHkgY29uc3RyYWludCB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgU2VyaWFsaXphdGlvbkZhaWx1cmUoVHJhbnNhY3Rpb25Sb2xsYmFjayk6CisgICAgIiIiU1FM U1RBVEUgNDAwMDEgLSBzZXJpYWxpemF0aW9uIGZhaWx1cmUuIiIiCisKKyAgICBwYXNzCisKKwor Y2xhc3MgU3RhdGVtZW50Q29tcGxldGlvblVua25vd24oVHJhbnNhY3Rpb25Sb2xsYmFjayk6Cisg ICAgIiIiU1FMU1RBVEUgNDAwMDMgLSBzdGF0ZW1lbnQgY29tcGxldGlvbiB1bmtub3duLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIERlYWRsb2NrRGV0ZWN0ZWQoVHJhbnNhY3Rpb25Sb2xsYmFj ayk6CisgICAgIiIiU1FMU1RBVEUgNDBQMDEgLSBkZWFkbG9jayBkZXRlY3RlZC4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbihMaWJwcUVy cm9yKToKKyAgICAiIiJTUUxTVEFURSA0MjAwMCAtIHN5bnRheCBlcnJvciBvciBhY2Nlc3MgcnVs ZSB2aW9sYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgU3ludGF4RXJyb3IoU3ludGF4 RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNjAxIC0gc3lu dGF4IGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEluc3VmZmljaWVudFByaXZpbGVn ZShTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI1 MDEgLSBpbnN1ZmZpY2llbnQgcHJpdmlsZWdlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENh bm5vdENvZXJjZShTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FM U1RBVEUgNDI4NDYgLSBjYW5ub3QgY29lcmNlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEdy b3VwaW5nRXJyb3IoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNR TFNUQVRFIDQyODAzIC0gZ3JvdXBpbmcgZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3Mg V2luZG93aW5nRXJyb3IoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIi IlNRTFNUQVRFIDQyUDIwIC0gd2luZG93aW5nIGVycm9yLiIiIgorCisgICAgcGFzcworCisKK2Ns YXNzIEludmFsaWRSZWN1cnNpb24oU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgor ICAgICIiIlNRTFNUQVRFIDQyUDE5IC0gaW52YWxpZCByZWN1cnNpb24uIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZEZvcmVpZ25LZXkoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9s YXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyODMwIC0gaW52YWxpZCBmb3JlaWduIGtleS4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkTmFtZShTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI2MDIgLSBpbnZhbGlkIG5hbWUuIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgTmFtZVRvb0xvbmcoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVW aW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNjIyIC0gbmFtZSB0b28gbG9uZy4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBSZXNlcnZlZE5hbWUoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVW aW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyOTM5IC0gcmVzZXJ2ZWQgbmFtZS4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBEYXRhdHlwZU1pc21hdGNoKFN5bnRheEVycm9yT3JBY2Nlc3NS dWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MjgwNCAtIGRhdGF0eXBlIG1pc21hdGNo LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEluZGV0ZXJtaW5hdGVEYXRhdHlwZShTeW50YXhF cnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMTggLSBpbmRl dGVybWluYXRlIGRhdGF0eXBlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENvbGxhdGlvbk1p c21hdGNoKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFU RSA0MlAyMSAtIGNvbGxhdGlvbiBtaXNtYXRjaC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJ bmRldGVybWluYXRlQ29sbGF0aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToK KyAgICAiIiJTUUxTVEFURSA0MlAyMiAtIGluZGV0ZXJtaW5hdGUgY29sbGF0aW9uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIFdyb25nT2JqZWN0VHlwZShTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI4MDkgLSB3cm9uZyBvYmplY3QgdHlwZS4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBHZW5lcmF0ZWRBbHdheXMoU3ludGF4RXJyb3JPckFj Y2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyOEM5IC0gZ2VuZXJhdGVkIGFs d2F5cy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBVbmRlZmluZWRDb2x1bW4oU3ludGF4RXJy b3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNzAzIC0gdW5kZWZp bmVkIGNvbHVtbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBVbmRlZmluZWRGdW5jdGlvbihT eW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI4ODMg LSB1bmRlZmluZWQgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgVW5kZWZpbmVk VGFibGUoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRF IDQyUDAxIC0gdW5kZWZpbmVkIHRhYmxlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFVuZGVm aW5lZFBhcmFtZXRlcihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIi U1FMU1RBVEUgNDJQMDIgLSB1bmRlZmluZWQgcGFyYW1ldGVyLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFVuZGVmaW5lZE9iamVjdChTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgNDI3MDQgLSB1bmRlZmluZWQgb2JqZWN0LiIiIgorCisgICAgcGFz cworCisKK2NsYXNzIER1cGxpY2F0ZUNvbHVtbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xh dGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI3MDEgLSBkdXBsaWNhdGUgY29sdW1uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZUN1cnNvcihTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDMgLSBkdXBsaWNhdGUgY3Vyc29yLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZURhdGFiYXNlKFN5bnRheEVycm9yT3JB Y2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0MlAwNCAtIGR1cGxpY2F0ZSBk YXRhYmFzZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVGdW5jdGlvbihTeW50 YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI3MjMgLSBk dXBsaWNhdGUgZnVuY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlUHJl cGFyZWRTdGF0ZW1lbnQoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIi IlNRTFNUQVRFIDQyUDA1IC0gZHVwbGljYXRlIHByZXBhcmVkIHN0YXRlbWVudC4iIiIKKworICAg IHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVTY2hlbWEoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVW aW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDA2IC0gZHVwbGljYXRlIHNjaGVtYS4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBEdXBsaWNhdGVUYWJsZShTeW50YXhFcnJvck9yQWNjZXNz UnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMDcgLSBkdXBsaWNhdGUgdGFibGUu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRHVwbGljYXRlQWxpYXMoU3ludGF4RXJyb3JPckFj Y2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNzEyIC0gZHVwbGljYXRlIGFs aWFzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZU9iamVjdChTeW50YXhFcnJv ck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI3MTAgLSBkdXBsaWNh dGUgb2JqZWN0LiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEFtYmlndW91c0NvbHVtbihTeW50 YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDI3MDIgLSBh bWJpZ3VvdXMgY29sdW1uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEFtYmlndW91c0Z1bmN0 aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAgICAiIiJTUUxTVEFURSA0 MjcyNSAtIGFtYmlndW91cyBmdW5jdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBBbWJp Z3VvdXNQYXJhbWV0ZXIoU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIi IlNRTFNUQVRFIDQyUDA4IC0gYW1iaWd1b3VzIHBhcmFtZXRlci4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBBbWJpZ3VvdXNBbGlhcyhTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgNDJQMDkgLSBhbWJpZ3VvdXMgYWxpYXMuIiIiCisKKyAgICBwYXNz CisKKworY2xhc3MgSW52YWxpZENvbHVtblJlZmVyZW5jZShTeW50YXhFcnJvck9yQWNjZXNzUnVs ZVZpb2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMTAgLSBpbnZhbGlkIGNvbHVtbiByZWZl cmVuY2UuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW52YWxpZENvbHVtbkRlZmluaXRpb24o U3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyNjEx IC0gaW52YWxpZCBjb2x1bW4gZGVmaW5pdGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBJ bnZhbGlkQ3Vyc29yRGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbik6 CisgICAgIiIiU1FMU1RBVEUgNDJQMTEgLSBpbnZhbGlkIGN1cnNvciBkZWZpbml0aW9uLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWREYXRhYmFzZURlZmluaXRpb24oU3ludGF4RXJy b3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDEyIC0gaW52YWxp ZCBkYXRhYmFzZSBkZWZpbml0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRG dW5jdGlvbkRlZmluaXRpb24oU3ludGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAg ICIiIlNRTFNUQVRFIDQyUDEzIC0gaW52YWxpZCBmdW5jdGlvbiBkZWZpbml0aW9uLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEludmFsaWRQcmVwYXJlZFN0YXRlbWVudERlZmluaXRpb24oU3lu dGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDE0IC0g aW52YWxpZCBwcmVwYXJlZCBzdGF0ZW1lbnQgZGVmaW5pdGlvbi4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBJbnZhbGlkU2NoZW1hRGVmaW5pdGlvbihTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZp b2xhdGlvbik6CisgICAgIiIiU1FMU1RBVEUgNDJQMTUgLSBpbnZhbGlkIHNjaGVtYSBkZWZpbml0 aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRUYWJsZURlZmluaXRpb24oU3lu dGF4RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24pOgorICAgICIiIlNRTFNUQVRFIDQyUDE2IC0g aW52YWxpZCB0YWJsZSBkZWZpbml0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEludmFs aWRPYmplY3REZWZpbml0aW9uKFN5bnRheEVycm9yT3JBY2Nlc3NSdWxlVmlvbGF0aW9uKToKKyAg ICAiIiJTUUxTVEFURSA0MlAxNyAtIGludmFsaWQgb2JqZWN0IGRlZmluaXRpb24uIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgV2l0aENoZWNrT3B0aW9uVmlvbGF0aW9uKExpYnBxRXJyb3IpOgor ICAgICIiIlNRTFNUQVRFIDQ0MDAwIC0gd2l0aCBjaGVjayBvcHRpb24gdmlvbGF0aW9uLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIEluc3VmZmljaWVudFJlc291cmNlcyhMaWJwcUVycm9yKToK KyAgICAiIiJTUUxTVEFURSA1MzAwMCAtIGluc3VmZmljaWVudCByZXNvdXJjZXMuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgRGlza0Z1bGwoSW5zdWZmaWNpZW50UmVzb3VyY2VzKToKKyAgICAi IiJTUUxTVEFURSA1MzEwMCAtIGRpc2sgZnVsbC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBP dXRPZk1lbW9yeShJbnN1ZmZpY2llbnRSZXNvdXJjZXMpOgorICAgICIiIlNRTFNUQVRFIDUzMjAw IC0gb3V0IG9mIG1lbW9yeS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBUb29NYW55Q29ubmVj dGlvbnMoSW5zdWZmaWNpZW50UmVzb3VyY2VzKToKKyAgICAiIiJTUUxTVEFURSA1MzMwMCAtIHRv byBtYW55IGNvbm5lY3Rpb25zLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIENvbmZpZ3VyYXRp b25MaW1pdEV4Y2VlZGVkKEluc3VmZmljaWVudFJlc291cmNlcyk6CisgICAgIiIiU1FMU1RBVEUg NTM0MDAgLSBjb25maWd1cmF0aW9uIGxpbWl0IGV4Y2VlZGVkLiIiIgorCisgICAgcGFzcworCisK K2NsYXNzIFByb2dyYW1MaW1pdEV4Y2VlZGVkKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRF IDU0MDAwIC0gcHJvZ3JhbSBsaW1pdCBleGNlZWRlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBTdGF0ZW1lbnRUb29Db21wbGV4KFByb2dyYW1MaW1pdEV4Y2VlZGVkKToKKyAgICAiIiJTUUxT VEFURSA1NDAwMSAtIHN0YXRlbWVudCB0b28gY29tcGxleC4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBUb29NYW55Q29sdW1ucyhQcm9ncmFtTGltaXRFeGNlZWRlZCk6CisgICAgIiIiU1FMU1RB VEUgNTQwMTEgLSB0b28gbWFueSBjb2x1bW5zLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIFRv b01hbnlBcmd1bWVudHMoUHJvZ3JhbUxpbWl0RXhjZWVkZWQpOgorICAgICIiIlNRTFNUQVRFIDU0 MDIzIC0gdG9vIG1hbnkgYXJndW1lbnRzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIE9iamVj dE5vdEluUHJlcmVxdWlzaXRlU3RhdGUoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNTUw MDAgLSBvYmplY3Qgbm90IGluIHByZXJlcXVpc2l0ZSBzdGF0ZS4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBPYmplY3RJblVzZShPYmplY3ROb3RJblByZXJlcXVpc2l0ZVN0YXRlKToKKyAgICAi IiJTUUxTVEFURSA1NTAwNiAtIG9iamVjdCBpbiB1c2UuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgQ2FudENoYW5nZVJ1bnRpbWVQYXJhbShPYmplY3ROb3RJblByZXJlcXVpc2l0ZVN0YXRlKToK KyAgICAiIiJTUUxTVEFURSA1NVAwMiAtIGNhbnQgY2hhbmdlIHJ1bnRpbWUgcGFyYW0uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgTG9ja05vdEF2YWlsYWJsZShPYmplY3ROb3RJblByZXJlcXVp c2l0ZVN0YXRlKToKKyAgICAiIiJTUUxTVEFURSA1NVAwMyAtIGxvY2sgbm90IGF2YWlsYWJsZS4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBVbnNhZmVOZXdFbnVtVmFsdWVVc2FnZShPYmplY3RO b3RJblByZXJlcXVpc2l0ZVN0YXRlKToKKyAgICAiIiJTUUxTVEFURSA1NVAwNCAtIHVuc2FmZSBu ZXcgZW51bSB2YWx1ZSB1c2FnZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBPcGVyYXRvcklu dGVydmVudGlvbihMaWJwcUVycm9yKToKKyAgICAiIiJTUUxTVEFURSA1NzAwMCAtIG9wZXJhdG9y IGludGVydmVudGlvbi4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBRdWVyeUNhbmNlbGVkKE9w ZXJhdG9ySW50ZXJ2ZW50aW9uKToKKyAgICAiIiJTUUxTVEFURSA1NzAxNCAtIHF1ZXJ5IGNhbmNl bGVkLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEFkbWluU2h1dGRvd24oT3BlcmF0b3JJbnRl cnZlbnRpb24pOgorICAgICIiIlNRTFNUQVRFIDU3UDAxIC0gYWRtaW4gc2h1dGRvd24uIiIiCisK KyAgICBwYXNzCisKKworY2xhc3MgQ3Jhc2hTaHV0ZG93bihPcGVyYXRvckludGVydmVudGlvbik6 CisgICAgIiIiU1FMU1RBVEUgNTdQMDIgLSBjcmFzaCBzaHV0ZG93bi4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBDYW5ub3RDb25uZWN0Tm93KE9wZXJhdG9ySW50ZXJ2ZW50aW9uKToKKyAgICAi IiJTUUxTVEFURSA1N1AwMyAtIGNhbm5vdCBjb25uZWN0IG5vdy4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBEYXRhYmFzZURyb3BwZWQoT3BlcmF0b3JJbnRlcnZlbnRpb24pOgorICAgICIiIlNR TFNUQVRFIDU3UDA0IC0gZGF0YWJhc2UgZHJvcHBlZC4iIiIKKworICAgIHBhc3MKKworCitjbGFz cyBJZGxlU2Vzc2lvblRpbWVvdXQoT3BlcmF0b3JJbnRlcnZlbnRpb24pOgorICAgICIiIlNRTFNU QVRFIDU3UDA1IC0gaWRsZSBzZXNzaW9uIHRpbWVvdXQuIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgU3lzdGVtRXJyb3IoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgNTgwMDAgLSBzeXN0 ZW0gZXJyb3IuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW9FcnJvcihTeXN0ZW1FcnJvcik6 CisgICAgIiIiU1FMU1RBVEUgNTgwMzAgLSBpbyBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitj bGFzcyBVbmRlZmluZWRGaWxlKFN5c3RlbUVycm9yKToKKyAgICAiIiJTUUxTVEFURSA1OFAwMSAt IHVuZGVmaW5lZCBmaWxlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIER1cGxpY2F0ZUZpbGUo U3lzdGVtRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIDU4UDAyIC0gZHVwbGljYXRlIGZpbGUuIiIi CisKKyAgICBwYXNzCisKKworY2xhc3MgRmlsZU5hbWVUb29Mb25nKFN5c3RlbUVycm9yKToKKyAg ICAiIiJTUUxTVEFURSA1OFAwMyAtIGZpbGUgbmFtZSB0b28gbG9uZy4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBDb25maWdGaWxlRXJyb3IoTGlicHFFcnJvcik6CisgICAgIiIiU1FMU1RBVEUg RjAwMDAgLSBjb25maWcgZmlsZSBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBMb2Nr RmlsZUV4aXN0cyhDb25maWdGaWxlRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEYwMDAxIC0gbG9j ayBmaWxlIGV4aXN0cy4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdFcnJvcihMaWJwcUVy cm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwMCAtIGZkdyBlcnJvci4iIiIKKworICAgIHBhc3MK KworCitjbGFzcyBGRFdDb2x1bW5OYW1lTm90Rm91bmQoRkRXRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIEhWMDA1IC0gZmR3IGNvbHVtbiBuYW1lIG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBGRFdEeW5hbWljUGFyYW1ldGVyVmFsdWVOZWVkZWQoRkRXRXJyb3IpOgorICAgICIi IlNRTFNUQVRFIEhWMDAyIC0gZmR3IGR5bmFtaWMgcGFyYW1ldGVyIHZhbHVlIG5lZWRlZC4iIiIK KworICAgIHBhc3MKKworCitjbGFzcyBGRFdGdW5jdGlvblNlcXVlbmNlRXJyb3IoRkRXRXJyb3Ip OgorICAgICIiIlNRTFNUQVRFIEhWMDEwIC0gZmR3IGZ1bmN0aW9uIHNlcXVlbmNlIGVycm9yLiIi IgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV0luY29uc2lzdGVudERlc2NyaXB0b3JJbmZvcm1h dGlvbihGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMjEgLSBmZHcgaW5jb25zaXN0ZW50 IGRlc2NyaXB0b3IgaW5mb3JtYXRpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52 YWxpZEF0dHJpYnV0ZVZhbHVlKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAyNCAtIGZk dyBpbnZhbGlkIGF0dHJpYnV0ZSB2YWx1ZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdJ bnZhbGlkQ29sdW1uTmFtZShGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDcgLSBmZHcg aW52YWxpZCBjb2x1bW4gbmFtZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdJbnZhbGlk Q29sdW1uTnVtYmVyKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwOCAtIGZkdyBpbnZh bGlkIGNvbHVtbiBudW1iZXIuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxpZERh dGFUeXBlKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwNCAtIGZkdyBpbnZhbGlkIGRh dGEgdHlwZS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdJbnZhbGlkRGF0YVR5cGVEZXNj cmlwdG9ycyhGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMDYgLSBmZHcgaW52YWxpZCBk YXRhIHR5cGUgZGVzY3JpcHRvcnMuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxp ZERlc2NyaXB0b3JGaWVsZElkZW50aWZpZXIoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhW MDkxIC0gZmR3IGludmFsaWQgZGVzY3JpcHRvciBmaWVsZCBpZGVudGlmaWVyLiIiIgorCisgICAg cGFzcworCisKK2NsYXNzIEZEV0ludmFsaWRIYW5kbGUoRkRXRXJyb3IpOgorICAgICIiIlNRTFNU QVRFIEhWMDBCIC0gZmR3IGludmFsaWQgaGFuZGxlLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IEZEV0ludmFsaWRPcHRpb25JbmRleChGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYwMEMg LSBmZHcgaW52YWxpZCBvcHRpb24gaW5kZXguIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRX SW52YWxpZE9wdGlvbk5hbWUoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDBEIC0gZmR3 IGludmFsaWQgb3B0aW9uIG5hbWUuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxp ZFN0cmluZ0xlbmd0aE9yQnVmZmVyTGVuZ3RoKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBI VjA5MCAtIGZkdyBpbnZhbGlkIHN0cmluZyBsZW5ndGggb3IgYnVmZmVyIGxlbmd0aC4iIiIKKwor ICAgIHBhc3MKKworCitjbGFzcyBGRFdJbnZhbGlkU3RyaW5nRm9ybWF0KEZEV0Vycm9yKToKKyAg ICAiIiJTUUxTVEFURSBIVjAwQSAtIGZkdyBpbnZhbGlkIHN0cmluZyBmb3JtYXQuIiIiCisKKyAg ICBwYXNzCisKKworY2xhc3MgRkRXSW52YWxpZFVzZU9mTnVsbFBvaW50ZXIoRkRXRXJyb3IpOgor ICAgICIiIlNRTFNUQVRFIEhWMDA5IC0gZmR3IGludmFsaWQgdXNlIG9mIG51bGwgcG9pbnRlci4i IiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdUb29NYW55SGFuZGxlcyhGRFdFcnJvcik6Cisg ICAgIiIiU1FMU1RBVEUgSFYwMTQgLSBmZHcgdG9vIG1hbnkgaGFuZGxlcy4iIiIKKworICAgIHBh c3MKKworCitjbGFzcyBGRFdPdXRPZk1lbW9yeShGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUg SFYwMDEgLSBmZHcgb3V0IG9mIG1lbW9yeS4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdO b1NjaGVtYXMoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDBQIC0gZmR3IG5vIHNjaGVt YXMuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXT3B0aW9uTmFtZU5vdEZvdW5kKEZEV0Vy cm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwSiAtIGZkdyBvcHRpb24gbmFtZSBub3QgZm91bmQu IiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXUmVwbHlIYW5kbGUoRkRXRXJyb3IpOgorICAg ICIiIlNRTFNUQVRFIEhWMDBLIC0gZmR3IHJlcGx5IGhhbmRsZS4iIiIKKworICAgIHBhc3MKKwor CitjbGFzcyBGRFdTY2hlbWFOb3RGb3VuZChGRFdFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgSFYw MFEgLSBmZHcgc2NoZW1hIG5vdCBmb3VuZC4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBGRFdU YWJsZU5vdEZvdW5kKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwUiAtIGZkdyB0YWJs ZSBub3QgZm91bmQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXVW5hYmxlVG9DcmVhdGVF eGVjdXRpb24oRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDBMIC0gZmR3IHVuYWJsZSB0 byBjcmVhdGUgZXhlY3V0aW9uLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEZEV1VuYWJsZVRv Q3JlYXRlUmVwbHkoRkRXRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIEhWMDBNIC0gZmR3IHVuYWJs ZSB0byBjcmVhdGUgcmVwbHkuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgRkRXVW5hYmxlVG9F c3RhYmxpc2hDb25uZWN0aW9uKEZEV0Vycm9yKToKKyAgICAiIiJTUUxTVEFURSBIVjAwTiAtIGZk dyB1bmFibGUgdG8gZXN0YWJsaXNoIGNvbm5lY3Rpb24uIiIiCisKKyAgICBwYXNzCisKKworY2xh c3MgUGxwZ3NxbEVycm9yKExpYnBxRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIFAwMDAwIC0gcGxw Z3NxbCBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBSYWlzZUV4Y2VwdGlvbihQbHBn c3FsRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIFAwMDAxIC0gcmFpc2UgZXhjZXB0aW9uLiIiIgor CisgICAgcGFzcworCisKK2NsYXNzIE5vRGF0YUZvdW5kKFBscGdzcWxFcnJvcik6CisgICAgIiIi U1FMU1RBVEUgUDAwMDIgLSBubyBkYXRhIGZvdW5kLiIiIgorCisgICAgcGFzcworCisKK2NsYXNz IFRvb01hbnlSb3dzKFBscGdzcWxFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgUDAwMDMgLSB0b28g bWFueSByb3dzLiIiIgorCisgICAgcGFzcworCisKK2NsYXNzIEFzc2VydEZhaWx1cmUoUGxwZ3Nx bEVycm9yKToKKyAgICAiIiJTUUxTVEFURSBQMDAwNCAtIGFzc2VydCBmYWlsdXJlLiIiIgorCisg ICAgcGFzcworCisKK2NsYXNzIEludGVybmFsRXJyb3IoTGlicHFFcnJvcik6CisgICAgIiIiU1FM U1RBVEUgWFgwMDAgLSBpbnRlcm5hbCBlcnJvci4iIiIKKworICAgIHBhc3MKKworCitjbGFzcyBE YXRhQ29ycnVwdGVkKEludGVybmFsRXJyb3IpOgorICAgICIiIlNRTFNUQVRFIFhYMDAxIC0gZGF0 YSBjb3JydXB0ZWQuIiIiCisKKyAgICBwYXNzCisKKworY2xhc3MgSW5kZXhDb3JydXB0ZWQoSW50 ZXJuYWxFcnJvcik6CisgICAgIiIiU1FMU1RBVEUgWFgwMDIgLSBpbmRleCBjb3JydXB0ZWQuIiIi CisKKyAgICBwYXNzCisKKworU1FMU1RBVEVfVE9fRVhDRVBUSU9OOiBEaWN0W3N0ciwgdHlwZV0g PSB7CisgICAgIjAwMDAwIjogU3VjY2Vzc2Z1bENvbXBsZXRpb24sCisgICAgIjAxMDAwIjogV2Fy bmluZywKKyAgICAiMDEwMEMiOiBEeW5hbWljUmVzdWx0U2V0c1JldHVybmVkV2FybmluZywKKyAg ICAiMDEwMDgiOiBJbXBsaWNpdFplcm9CaXRQYWRkaW5nV2FybmluZywKKyAgICAiMDEwMDMiOiBO dWxsVmFsdWVFbGltaW5hdGVkSW5TZXRGdW5jdGlvbldhcm5pbmcsCisgICAgIjAxMDA3IjogUHJp dmlsZWdlTm90R3JhbnRlZFdhcm5pbmcsCisgICAgIjAxMDA2IjogUHJpdmlsZWdlTm90UmV2b2tl ZFdhcm5pbmcsCisgICAgIjAxMDA0IjogU3RyaW5nRGF0YVJpZ2h0VHJ1bmNhdGlvbldhcm5pbmcs CisgICAgIjAxUDAxIjogRGVwcmVjYXRlZEZlYXR1cmVXYXJuaW5nLAorICAgICIwMjAwMCI6IE5v RGF0YSwKKyAgICAiMDIwMDEiOiBOb0FkZGl0aW9uYWxEeW5hbWljUmVzdWx0U2V0c1JldHVybmVk LAorICAgICIwMzAwMCI6IFNRTFN0YXRlbWVudE5vdFlldENvbXBsZXRlLAorICAgICIwODAwMCI6 IENvbm5lY3Rpb25FeGNlcHRpb24sCisgICAgIjA4MDAzIjogQ29ubmVjdGlvbkRvZXNOb3RFeGlz dCwKKyAgICAiMDgwMDYiOiBDb25uZWN0aW9uRmFpbHVyZSwKKyAgICAiMDgwMDEiOiBTUUxDbGll bnRVbmFibGVUb0VzdGFibGlzaFNRTENvbm5lY3Rpb24sCisgICAgIjA4MDA0IjogU1FMU2VydmVy UmVqZWN0ZWRFc3RhYmxpc2htZW50T2ZTUUxDb25uZWN0aW9uLAorICAgICIwODAwNyI6IFRyYW5z YWN0aW9uUmVzb2x1dGlvblVua25vd24sCisgICAgIjA4UDAxIjogUHJvdG9jb2xWaW9sYXRpb24s CisgICAgIjA5MDAwIjogVHJpZ2dlcmVkQWN0aW9uRXhjZXB0aW9uLAorICAgICIwQTAwMCI6IEZl YXR1cmVOb3RTdXBwb3J0ZWQsCisgICAgIjBCMDAwIjogSW52YWxpZFRyYW5zYWN0aW9uSW5pdGlh dGlvbiwKKyAgICAiMEYwMDAiOiBMb2NhdG9yRXhjZXB0aW9uLAorICAgICIwRjAwMSI6IEludmFs aWRMb2NhdG9yU3BlY2lmaWNhdGlvbiwKKyAgICAiMEwwMDAiOiBJbnZhbGlkR3JhbnRvciwKKyAg ICAiMExQMDEiOiBJbnZhbGlkR3JhbnRPcGVyYXRpb24sCisgICAgIjBQMDAwIjogSW52YWxpZFJv bGVTcGVjaWZpY2F0aW9uLAorICAgICIwWjAwMCI6IERpYWdub3N0aWNzRXhjZXB0aW9uLAorICAg ICIwWjAwMiI6IFN0YWNrZWREaWFnbm9zdGljc0FjY2Vzc2VkV2l0aG91dEFjdGl2ZUhhbmRsZXIs CisgICAgIjEwNjA4IjogSW52YWxpZEFyZ3VtZW50Rm9yWHF1ZXJ5LAorICAgICIyMDAwMCI6IENh c2VOb3RGb3VuZCwKKyAgICAiMjEwMDAiOiBDYXJkaW5hbGl0eVZpb2xhdGlvbiwKKyAgICAiMjIw MDAiOiBEYXRhRXhjZXB0aW9uLAorICAgICIyMjAyRSI6IEFycmF5U3Vic2NyaXB0RXJyb3IsCisg ICAgIjIyMDIxIjogQ2hhcmFjdGVyTm90SW5SZXBlcnRvaXJlLAorICAgICIyMjAwOCI6IERhdGV0 aW1lRmllbGRPdmVyZmxvdywKKyAgICAiMjIwMTIiOiBEaXZpc2lvbkJ5WmVybywKKyAgICAiMjIw MDUiOiBFcnJvckluQXNzaWdubWVudCwKKyAgICAiMjIwMEIiOiBFc2NhcGVDaGFyYWN0ZXJDb25m bGljdCwKKyAgICAiMjIwMjIiOiBJbmRpY2F0b3JPdmVyZmxvdywKKyAgICAiMjIwMTUiOiBJbnRl cnZhbEZpZWxkT3ZlcmZsb3csCisgICAgIjIyMDFFIjogSW52YWxpZEFyZ3VtZW50Rm9yTG9nYXJp dGhtLAorICAgICIyMjAxNCI6IEludmFsaWRBcmd1bWVudEZvck50aWxlRnVuY3Rpb24sCisgICAg IjIyMDE2IjogSW52YWxpZEFyZ3VtZW50Rm9yTnRoVmFsdWVGdW5jdGlvbiwKKyAgICAiMjIwMUYi OiBJbnZhbGlkQXJndW1lbnRGb3JQb3dlckZ1bmN0aW9uLAorICAgICIyMjAxRyI6IEludmFsaWRB cmd1bWVudEZvcldpZHRoQnVja2V0RnVuY3Rpb24sCisgICAgIjIyMDE4IjogSW52YWxpZENoYXJh Y3RlclZhbHVlRm9yQ2FzdCwKKyAgICAiMjIwMDciOiBJbnZhbGlkRGF0ZXRpbWVGb3JtYXQsCisg ICAgIjIyMDE5IjogSW52YWxpZEVzY2FwZUNoYXJhY3RlciwKKyAgICAiMjIwMEQiOiBJbnZhbGlk RXNjYXBlT2N0ZXQsCisgICAgIjIyMDI1IjogSW52YWxpZEVzY2FwZVNlcXVlbmNlLAorICAgICIy MlAwNiI6IE5vbnN0YW5kYXJkVXNlT2ZFc2NhcGVDaGFyYWN0ZXIsCisgICAgIjIyMDEwIjogSW52 YWxpZEluZGljYXRvclBhcmFtZXRlclZhbHVlLAorICAgICIyMjAyMyI6IEludmFsaWRQYXJhbWV0 ZXJWYWx1ZSwKKyAgICAiMjIwMTMiOiBJbnZhbGlkUHJlY2VkaW5nT3JGb2xsb3dpbmdTaXplLAor ICAgICIyMjAxQiI6IEludmFsaWRSZWd1bGFyRXhwcmVzc2lvbiwKKyAgICAiMjIwMVciOiBJbnZh bGlkUm93Q291bnRJbkxpbWl0Q2xhdXNlLAorICAgICIyMjAxWCI6IEludmFsaWRSb3dDb3VudElu UmVzdWx0T2Zmc2V0Q2xhdXNlLAorICAgICIyMjAySCI6IEludmFsaWRUYWJsZXNhbXBsZUFyZ3Vt ZW50LAorICAgICIyMjAyRyI6IEludmFsaWRUYWJsZXNhbXBsZVJlcGVhdCwKKyAgICAiMjIwMDki OiBJbnZhbGlkVGltZVpvbmVEaXNwbGFjZW1lbnRWYWx1ZSwKKyAgICAiMjIwMEMiOiBJbnZhbGlk VXNlT2ZFc2NhcGVDaGFyYWN0ZXIsCisgICAgIjIyMDBHIjogTW9zdFNwZWNpZmljVHlwZU1pc21h dGNoLAorICAgICIyMjAwNCI6IE51bGxWYWx1ZU5vdEFsbG93ZWQsCisgICAgIjIyMDAyIjogTnVs bFZhbHVlTm9JbmRpY2F0b3JQYXJhbWV0ZXIsCisgICAgIjIyMDAzIjogTnVtZXJpY1ZhbHVlT3V0 T2ZSYW5nZSwKKyAgICAiMjIwMEgiOiBTZXF1ZW5jZUdlbmVyYXRvckxpbWl0RXhjZWVkZWQsCisg ICAgIjIyMDI2IjogU3RyaW5nRGF0YUxlbmd0aE1pc21hdGNoLAorICAgICIyMjAwMSI6IFN0cmlu Z0RhdGFSaWdodFRydW5jYXRpb24sCisgICAgIjIyMDExIjogU3Vic3RyaW5nRXJyb3IsCisgICAg IjIyMDI3IjogVHJpbUVycm9yLAorICAgICIyMjAyNCI6IFVudGVybWluYXRlZENTdHJpbmcsCisg ICAgIjIyMDBGIjogWmVyb0xlbmd0aENoYXJhY3RlclN0cmluZywKKyAgICAiMjJQMDEiOiBGbG9h dGluZ1BvaW50RXhjZXB0aW9uLAorICAgICIyMlAwMiI6IEludmFsaWRUZXh0UmVwcmVzZW50YXRp b24sCisgICAgIjIyUDAzIjogSW52YWxpZEJpbmFyeVJlcHJlc2VudGF0aW9uLAorICAgICIyMlAw NCI6IEJhZENvcHlGaWxlRm9ybWF0LAorICAgICIyMlAwNSI6IFVudHJhbnNsYXRhYmxlQ2hhcmFj dGVyLAorICAgICIyMjAwTCI6IE5vdEFuWG1sRG9jdW1lbnQsCisgICAgIjIyMDBNIjogSW52YWxp ZFhtbERvY3VtZW50LAorICAgICIyMjAwTiI6IEludmFsaWRYbWxDb250ZW50LAorICAgICIyMjAw UyI6IEludmFsaWRYbWxDb21tZW50LAorICAgICIyMjAwVCI6IEludmFsaWRYbWxQcm9jZXNzaW5n SW5zdHJ1Y3Rpb24sCisgICAgIjIyMDMwIjogRHVwbGljYXRlSnNvbk9iamVjdEtleVZhbHVlLAor ICAgICIyMjAzMSI6IEludmFsaWRBcmd1bWVudEZvclNRTEpzb25EYXRldGltZUZ1bmN0aW9uLAor ICAgICIyMjAzMiI6IEludmFsaWRKc29uVGV4dCwKKyAgICAiMjIwMzMiOiBJbnZhbGlkU1FMSnNv blN1YnNjcmlwdCwKKyAgICAiMjIwMzQiOiBNb3JlVGhhbk9uZVNRTEpzb25JdGVtLAorICAgICIy MjAzNSI6IE5vU1FMSnNvbkl0ZW0sCisgICAgIjIyMDM2IjogTm9uTnVtZXJpY1NRTEpzb25JdGVt LAorICAgICIyMjAzNyI6IE5vblVuaXF1ZUtleXNJbkFKc29uT2JqZWN0LAorICAgICIyMjAzOCI6 IFNpbmdsZXRvblNRTEpzb25JdGVtUmVxdWlyZWQsCisgICAgIjIyMDM5IjogU1FMSnNvbkFycmF5 Tm90Rm91bmQsCisgICAgIjIyMDNBIjogU1FMSnNvbk1lbWJlck5vdEZvdW5kLAorICAgICIyMjAz QiI6IFNRTEpzb25OdW1iZXJOb3RGb3VuZCwKKyAgICAiMjIwM0MiOiBTUUxKc29uT2JqZWN0Tm90 Rm91bmQsCisgICAgIjIyMDNEIjogVG9vTWFueUpzb25BcnJheUVsZW1lbnRzLAorICAgICIyMjAz RSI6IFRvb01hbnlKc29uT2JqZWN0TWVtYmVycywKKyAgICAiMjIwM0YiOiBTUUxKc29uU2NhbGFy UmVxdWlyZWQsCisgICAgIjIyMDNHIjogU1FMSnNvbkl0ZW1DYW5ub3RCZUNhc3RUb1RhcmdldFR5 cGUsCisgICAgIjIzMDAwIjogSW50ZWdyaXR5Q29uc3RyYWludFZpb2xhdGlvbiwKKyAgICAiMjMw MDEiOiBSZXN0cmljdFZpb2xhdGlvbiwKKyAgICAiMjM1MDIiOiBOb3ROdWxsVmlvbGF0aW9uLAor ICAgICIyMzUwMyI6IEZvcmVpZ25LZXlWaW9sYXRpb24sCisgICAgIjIzNTA1IjogVW5pcXVlVmlv bGF0aW9uLAorICAgICIyMzUxNCI6IENoZWNrVmlvbGF0aW9uLAorICAgICIyM1AwMSI6IEV4Y2x1 c2lvblZpb2xhdGlvbiwKKyAgICAiMjQwMDAiOiBJbnZhbGlkQ3Vyc29yU3RhdGUsCisgICAgIjI1 MDAwIjogSW52YWxpZFRyYW5zYWN0aW9uU3RhdGUsCisgICAgIjI1MDAxIjogQWN0aXZlU1FMVHJh bnNhY3Rpb24sCisgICAgIjI1MDAyIjogQnJhbmNoVHJhbnNhY3Rpb25BbHJlYWR5QWN0aXZlLAor ICAgICIyNTAwOCI6IEhlbGRDdXJzb3JSZXF1aXJlc1NhbWVJc29sYXRpb25MZXZlbCwKKyAgICAi MjUwMDMiOiBJbmFwcHJvcHJpYXRlQWNjZXNzTW9kZUZvckJyYW5jaFRyYW5zYWN0aW9uLAorICAg ICIyNTAwNCI6IEluYXBwcm9wcmlhdGVJc29sYXRpb25MZXZlbEZvckJyYW5jaFRyYW5zYWN0aW9u LAorICAgICIyNTAwNSI6IE5vQWN0aXZlU1FMVHJhbnNhY3Rpb25Gb3JCcmFuY2hUcmFuc2FjdGlv biwKKyAgICAiMjUwMDYiOiBSZWFkT25seVNRTFRyYW5zYWN0aW9uLAorICAgICIyNTAwNyI6IFNj aGVtYUFuZERhdGFTdGF0ZW1lbnRNaXhpbmdOb3RTdXBwb3J0ZWQsCisgICAgIjI1UDAxIjogTm9B Y3RpdmVTUUxUcmFuc2FjdGlvbiwKKyAgICAiMjVQMDIiOiBJbkZhaWxlZFNRTFRyYW5zYWN0aW9u LAorICAgICIyNVAwMyI6IElkbGVJblRyYW5zYWN0aW9uU2Vzc2lvblRpbWVvdXQsCisgICAgIjI1 UDA0IjogVHJhbnNhY3Rpb25UaW1lb3V0LAorICAgICIyNjAwMCI6IEludmFsaWRTUUxTdGF0ZW1l bnROYW1lLAorICAgICIyNzAwMCI6IFRyaWdnZXJlZERhdGFDaGFuZ2VWaW9sYXRpb24sCisgICAg IjI4MDAwIjogSW52YWxpZEF1dGhvcml6YXRpb25TcGVjaWZpY2F0aW9uLAorICAgICIyOFAwMSI6 IEludmFsaWRQYXNzd29yZCwKKyAgICAiMkIwMDAiOiBEZXBlbmRlbnRQcml2aWxlZ2VEZXNjcmlw dG9yc1N0aWxsRXhpc3QsCisgICAgIjJCUDAxIjogRGVwZW5kZW50T2JqZWN0c1N0aWxsRXhpc3Qs CisgICAgIjJEMDAwIjogSW52YWxpZFRyYW5zYWN0aW9uVGVybWluYXRpb24sCisgICAgIjJGMDAw IjogU1FMUm91dGluZUV4Y2VwdGlvbiwKKyAgICAiMkYwMDUiOiBGdW5jdGlvbkV4ZWN1dGVkTm9S ZXR1cm5TdGF0ZW1lbnQsCisgICAgIjJGMDAyIjogU1JFTW9kaWZ5aW5nU1FMRGF0YU5vdFBlcm1p dHRlZCwKKyAgICAiMkYwMDMiOiBTUkVQcm9oaWJpdGVkU1FMU3RhdGVtZW50QXR0ZW1wdGVkLAor ICAgICIyRjAwNCI6IFNSRVJlYWRpbmdTUUxEYXRhTm90UGVybWl0dGVkLAorICAgICIzNDAwMCI6 IEludmFsaWRDdXJzb3JOYW1lLAorICAgICIzODAwMCI6IEV4dGVybmFsUm91dGluZUV4Y2VwdGlv biwKKyAgICAiMzgwMDEiOiBDb250YWluaW5nU1FMTm90UGVybWl0dGVkLAorICAgICIzODAwMiI6 IEVSRU1vZGlmeWluZ1NRTERhdGFOb3RQZXJtaXR0ZWQsCisgICAgIjM4MDAzIjogRVJFUHJvaGli aXRlZFNRTFN0YXRlbWVudEF0dGVtcHRlZCwKKyAgICAiMzgwMDQiOiBFUkVSZWFkaW5nU1FMRGF0 YU5vdFBlcm1pdHRlZCwKKyAgICAiMzkwMDAiOiBFeHRlcm5hbFJvdXRpbmVJbnZvY2F0aW9uRXhj ZXB0aW9uLAorICAgICIzOTAwMSI6IEludmFsaWRTcWxzdGF0ZVJldHVybmVkLAorICAgICIzOTAw NCI6IEVSSUVOdWxsVmFsdWVOb3RBbGxvd2VkLAorICAgICIzOVAwMSI6IFRyaWdnZXJQcm90b2Nv bFZpb2xhdGVkLAorICAgICIzOVAwMiI6IFNyZlByb3RvY29sVmlvbGF0ZWQsCisgICAgIjM5UDAz IjogRXZlbnRUcmlnZ2VyUHJvdG9jb2xWaW9sYXRlZCwKKyAgICAiM0IwMDAiOiBTYXZlcG9pbnRF eGNlcHRpb24sCisgICAgIjNCMDAxIjogSW52YWxpZFNhdmVwb2ludFNwZWNpZmljYXRpb24sCisg ICAgIjNEMDAwIjogSW52YWxpZENhdGFsb2dOYW1lLAorICAgICIzRjAwMCI6IEludmFsaWRTY2hl bWFOYW1lLAorICAgICI0MDAwMCI6IFRyYW5zYWN0aW9uUm9sbGJhY2ssCisgICAgIjQwMDAyIjog VHJhbnNhY3Rpb25JbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0aW9uLAorICAgICI0MDAwMSI6IFNl cmlhbGl6YXRpb25GYWlsdXJlLAorICAgICI0MDAwMyI6IFN0YXRlbWVudENvbXBsZXRpb25Vbmtu b3duLAorICAgICI0MFAwMSI6IERlYWRsb2NrRGV0ZWN0ZWQsCisgICAgIjQyMDAwIjogU3ludGF4 RXJyb3JPckFjY2Vzc1J1bGVWaW9sYXRpb24sCisgICAgIjQyNjAxIjogU3ludGF4RXJyb3IsCisg ICAgIjQyNTAxIjogSW5zdWZmaWNpZW50UHJpdmlsZWdlLAorICAgICI0Mjg0NiI6IENhbm5vdENv ZXJjZSwKKyAgICAiNDI4MDMiOiBHcm91cGluZ0Vycm9yLAorICAgICI0MlAyMCI6IFdpbmRvd2lu Z0Vycm9yLAorICAgICI0MlAxOSI6IEludmFsaWRSZWN1cnNpb24sCisgICAgIjQyODMwIjogSW52 YWxpZEZvcmVpZ25LZXksCisgICAgIjQyNjAyIjogSW52YWxpZE5hbWUsCisgICAgIjQyNjIyIjog TmFtZVRvb0xvbmcsCisgICAgIjQyOTM5IjogUmVzZXJ2ZWROYW1lLAorICAgICI0MjgwNCI6IERh dGF0eXBlTWlzbWF0Y2gsCisgICAgIjQyUDE4IjogSW5kZXRlcm1pbmF0ZURhdGF0eXBlLAorICAg ICI0MlAyMSI6IENvbGxhdGlvbk1pc21hdGNoLAorICAgICI0MlAyMiI6IEluZGV0ZXJtaW5hdGVD b2xsYXRpb24sCisgICAgIjQyODA5IjogV3JvbmdPYmplY3RUeXBlLAorICAgICI0MjhDOSI6IEdl bmVyYXRlZEFsd2F5cywKKyAgICAiNDI3MDMiOiBVbmRlZmluZWRDb2x1bW4sCisgICAgIjQyODgz IjogVW5kZWZpbmVkRnVuY3Rpb24sCisgICAgIjQyUDAxIjogVW5kZWZpbmVkVGFibGUsCisgICAg IjQyUDAyIjogVW5kZWZpbmVkUGFyYW1ldGVyLAorICAgICI0MjcwNCI6IFVuZGVmaW5lZE9iamVj dCwKKyAgICAiNDI3MDEiOiBEdXBsaWNhdGVDb2x1bW4sCisgICAgIjQyUDAzIjogRHVwbGljYXRl Q3Vyc29yLAorICAgICI0MlAwNCI6IER1cGxpY2F0ZURhdGFiYXNlLAorICAgICI0MjcyMyI6IER1 cGxpY2F0ZUZ1bmN0aW9uLAorICAgICI0MlAwNSI6IER1cGxpY2F0ZVByZXBhcmVkU3RhdGVtZW50 LAorICAgICI0MlAwNiI6IER1cGxpY2F0ZVNjaGVtYSwKKyAgICAiNDJQMDciOiBEdXBsaWNhdGVU YWJsZSwKKyAgICAiNDI3MTIiOiBEdXBsaWNhdGVBbGlhcywKKyAgICAiNDI3MTAiOiBEdXBsaWNh dGVPYmplY3QsCisgICAgIjQyNzAyIjogQW1iaWd1b3VzQ29sdW1uLAorICAgICI0MjcyNSI6IEFt YmlndW91c0Z1bmN0aW9uLAorICAgICI0MlAwOCI6IEFtYmlndW91c1BhcmFtZXRlciwKKyAgICAi NDJQMDkiOiBBbWJpZ3VvdXNBbGlhcywKKyAgICAiNDJQMTAiOiBJbnZhbGlkQ29sdW1uUmVmZXJl bmNlLAorICAgICI0MjYxMSI6IEludmFsaWRDb2x1bW5EZWZpbml0aW9uLAorICAgICI0MlAxMSI6 IEludmFsaWRDdXJzb3JEZWZpbml0aW9uLAorICAgICI0MlAxMiI6IEludmFsaWREYXRhYmFzZURl ZmluaXRpb24sCisgICAgIjQyUDEzIjogSW52YWxpZEZ1bmN0aW9uRGVmaW5pdGlvbiwKKyAgICAi NDJQMTQiOiBJbnZhbGlkUHJlcGFyZWRTdGF0ZW1lbnREZWZpbml0aW9uLAorICAgICI0MlAxNSI6 IEludmFsaWRTY2hlbWFEZWZpbml0aW9uLAorICAgICI0MlAxNiI6IEludmFsaWRUYWJsZURlZmlu aXRpb24sCisgICAgIjQyUDE3IjogSW52YWxpZE9iamVjdERlZmluaXRpb24sCisgICAgIjQ0MDAw IjogV2l0aENoZWNrT3B0aW9uVmlvbGF0aW9uLAorICAgICI1MzAwMCI6IEluc3VmZmljaWVudFJl c291cmNlcywKKyAgICAiNTMxMDAiOiBEaXNrRnVsbCwKKyAgICAiNTMyMDAiOiBPdXRPZk1lbW9y eSwKKyAgICAiNTMzMDAiOiBUb29NYW55Q29ubmVjdGlvbnMsCisgICAgIjUzNDAwIjogQ29uZmln dXJhdGlvbkxpbWl0RXhjZWVkZWQsCisgICAgIjU0MDAwIjogUHJvZ3JhbUxpbWl0RXhjZWVkZWQs CisgICAgIjU0MDAxIjogU3RhdGVtZW50VG9vQ29tcGxleCwKKyAgICAiNTQwMTEiOiBUb29NYW55 Q29sdW1ucywKKyAgICAiNTQwMjMiOiBUb29NYW55QXJndW1lbnRzLAorICAgICI1NTAwMCI6IE9i amVjdE5vdEluUHJlcmVxdWlzaXRlU3RhdGUsCisgICAgIjU1MDA2IjogT2JqZWN0SW5Vc2UsCisg ICAgIjU1UDAyIjogQ2FudENoYW5nZVJ1bnRpbWVQYXJhbSwKKyAgICAiNTVQMDMiOiBMb2NrTm90 QXZhaWxhYmxlLAorICAgICI1NVAwNCI6IFVuc2FmZU5ld0VudW1WYWx1ZVVzYWdlLAorICAgICI1 NzAwMCI6IE9wZXJhdG9ySW50ZXJ2ZW50aW9uLAorICAgICI1NzAxNCI6IFF1ZXJ5Q2FuY2VsZWQs CisgICAgIjU3UDAxIjogQWRtaW5TaHV0ZG93biwKKyAgICAiNTdQMDIiOiBDcmFzaFNodXRkb3du LAorICAgICI1N1AwMyI6IENhbm5vdENvbm5lY3ROb3csCisgICAgIjU3UDA0IjogRGF0YWJhc2VE cm9wcGVkLAorICAgICI1N1AwNSI6IElkbGVTZXNzaW9uVGltZW91dCwKKyAgICAiNTgwMDAiOiBT eXN0ZW1FcnJvciwKKyAgICAiNTgwMzAiOiBJb0Vycm9yLAorICAgICI1OFAwMSI6IFVuZGVmaW5l ZEZpbGUsCisgICAgIjU4UDAyIjogRHVwbGljYXRlRmlsZSwKKyAgICAiNThQMDMiOiBGaWxlTmFt ZVRvb0xvbmcsCisgICAgIkYwMDAwIjogQ29uZmlnRmlsZUVycm9yLAorICAgICJGMDAwMSI6IExv Y2tGaWxlRXhpc3RzLAorICAgICJIVjAwMCI6IEZEV0Vycm9yLAorICAgICJIVjAwNSI6IEZEV0Nv bHVtbk5hbWVOb3RGb3VuZCwKKyAgICAiSFYwMDIiOiBGRFdEeW5hbWljUGFyYW1ldGVyVmFsdWVO ZWVkZWQsCisgICAgIkhWMDEwIjogRkRXRnVuY3Rpb25TZXF1ZW5jZUVycm9yLAorICAgICJIVjAy MSI6IEZEV0luY29uc2lzdGVudERlc2NyaXB0b3JJbmZvcm1hdGlvbiwKKyAgICAiSFYwMjQiOiBG RFdJbnZhbGlkQXR0cmlidXRlVmFsdWUsCisgICAgIkhWMDA3IjogRkRXSW52YWxpZENvbHVtbk5h bWUsCisgICAgIkhWMDA4IjogRkRXSW52YWxpZENvbHVtbk51bWJlciwKKyAgICAiSFYwMDQiOiBG RFdJbnZhbGlkRGF0YVR5cGUsCisgICAgIkhWMDA2IjogRkRXSW52YWxpZERhdGFUeXBlRGVzY3Jp cHRvcnMsCisgICAgIkhWMDkxIjogRkRXSW52YWxpZERlc2NyaXB0b3JGaWVsZElkZW50aWZpZXIs CisgICAgIkhWMDBCIjogRkRXSW52YWxpZEhhbmRsZSwKKyAgICAiSFYwMEMiOiBGRFdJbnZhbGlk T3B0aW9uSW5kZXgsCisgICAgIkhWMDBEIjogRkRXSW52YWxpZE9wdGlvbk5hbWUsCisgICAgIkhW MDkwIjogRkRXSW52YWxpZFN0cmluZ0xlbmd0aE9yQnVmZmVyTGVuZ3RoLAorICAgICJIVjAwQSI6 IEZEV0ludmFsaWRTdHJpbmdGb3JtYXQsCisgICAgIkhWMDA5IjogRkRXSW52YWxpZFVzZU9mTnVs bFBvaW50ZXIsCisgICAgIkhWMDE0IjogRkRXVG9vTWFueUhhbmRsZXMsCisgICAgIkhWMDAxIjog RkRXT3V0T2ZNZW1vcnksCisgICAgIkhWMDBQIjogRkRXTm9TY2hlbWFzLAorICAgICJIVjAwSiI6 IEZEV09wdGlvbk5hbWVOb3RGb3VuZCwKKyAgICAiSFYwMEsiOiBGRFdSZXBseUhhbmRsZSwKKyAg ICAiSFYwMFEiOiBGRFdTY2hlbWFOb3RGb3VuZCwKKyAgICAiSFYwMFIiOiBGRFdUYWJsZU5vdEZv dW5kLAorICAgICJIVjAwTCI6IEZEV1VuYWJsZVRvQ3JlYXRlRXhlY3V0aW9uLAorICAgICJIVjAw TSI6IEZEV1VuYWJsZVRvQ3JlYXRlUmVwbHksCisgICAgIkhWMDBOIjogRkRXVW5hYmxlVG9Fc3Rh Ymxpc2hDb25uZWN0aW9uLAorICAgICJQMDAwMCI6IFBscGdzcWxFcnJvciwKKyAgICAiUDAwMDEi OiBSYWlzZUV4Y2VwdGlvbiwKKyAgICAiUDAwMDIiOiBOb0RhdGFGb3VuZCwKKyAgICAiUDAwMDMi OiBUb29NYW55Um93cywKKyAgICAiUDAwMDQiOiBBc3NlcnRGYWlsdXJlLAorICAgICJYWDAwMCI6 IEludGVybmFsRXJyb3IsCisgICAgIlhYMDAxIjogRGF0YUNvcnJ1cHRlZCwKKyAgICAiWFgwMDIi OiBJbmRleENvcnJ1cHRlZCwKK30KKworCitfX2FsbF9fID0gWworICAgICJJbnZhbGlkQ3Vyc29y TmFtZSIsCisgICAgIlVuZGVmaW5lZFBhcmFtZXRlciIsCisgICAgIlVuZGVmaW5lZENvbHVtbiIs CisgICAgIk5vdEFuWG1sRG9jdW1lbnQiLAorICAgICJGRFdPdXRPZk1lbW9yeSIsCisgICAgIklu dmFsaWRSb2xlU3BlY2lmaWNhdGlvbiIsCisgICAgIkludmFsaWRBcmd1bWVudEZvck50aFZhbHVl RnVuY3Rpb24iLAorICAgICJTUUxKc29uT2JqZWN0Tm90Rm91bmQiLAorICAgICJGRFdTY2hlbWFO b3RGb3VuZCIsCisgICAgIkludmFsaWRQYXJhbWV0ZXJWYWx1ZSIsCisgICAgIkludmFsaWRUYWJs ZURlZmluaXRpb24iLAorICAgICJBc3NlcnRGYWlsdXJlIiwKKyAgICAiRkRXSW52YWxpZE9wdGlv bk5hbWUiLAorICAgICJJbnZhbGlkRXNjYXBlT2N0ZXQiLAorICAgICJSZWFkT25seVNRTFRyYW5z YWN0aW9uIiwKKyAgICAiRXh0ZXJuYWxSb3V0aW5lSW52b2NhdGlvbkV4Y2VwdGlvbiIsCisgICAg IkNyYXNoU2h1dGRvd24iLAorICAgICJGRFdJbnZhbGlkT3B0aW9uSW5kZXgiLAorICAgICJOb3RO dWxsVmlvbGF0aW9uIiwKKyAgICAiQ29uZmlnRmlsZUVycm9yIiwKKyAgICAiSW52YWxpZFNRTEpz b25TdWJzY3JpcHQiLAorICAgICJJbnZhbGlkRm9yZWlnbktleSIsCisgICAgIkluc3VmZmljaWVu dFJlc291cmNlcyIsCisgICAgIk9iamVjdE5vdEluUHJlcmVxdWlzaXRlU3RhdGUiLAorICAgICJJ bnZhbGlkUm93Q291bnRJbkxpbWl0Q2xhdXNlIiwKKyAgICAiSW50ZXJ2YWxGaWVsZE92ZXJmbG93 IiwKKyAgICAiQ29sbGF0aW9uTWlzbWF0Y2giLAorICAgICJJbnZhbGlkQXJndW1lbnRGb3JOdGls ZUZ1bmN0aW9uIiwKKyAgICAiSW52YWxpZENoYXJhY3RlclZhbHVlRm9yQ2FzdCIsCisgICAgIk5v blVuaXF1ZUtleXNJbkFKc29uT2JqZWN0IiwKKyAgICAiRGVwZW5kZW50UHJpdmlsZWdlRGVzY3Jp cHRvcnNTdGlsbEV4aXN0IiwKKyAgICAiSW5GYWlsZWRTUUxUcmFuc2FjdGlvbiIsCisgICAgIkdy b3VwaW5nRXJyb3IiLAorICAgICJUcmFuc2FjdGlvblRpbWVvdXQiLAorICAgICJDYXNlTm90Rm91 bmQiLAorICAgICJDb25uZWN0aW9uRXhjZXB0aW9uIiwKKyAgICAiRHVwbGljYXRlSnNvbk9iamVj dEtleVZhbHVlIiwKKyAgICAiSW52YWxpZFNjaGVtYURlZmluaXRpb24iLAorICAgICJGRFdVbmFi bGVUb0NyZWF0ZVJlcGx5IiwKKyAgICAiVW5kZWZpbmVkVGFibGUiLAorICAgICJTZXF1ZW5jZUdl bmVyYXRvckxpbWl0RXhjZWVkZWQiLAorICAgICJJbnZhbGlkSnNvblRleHQiLAorICAgICJJZGxl U2Vzc2lvblRpbWVvdXQiLAorICAgICJOdWxsVmFsdWVOb3RBbGxvd2VkIiwKKyAgICAiQnJhbmNo VHJhbnNhY3Rpb25BbHJlYWR5QWN0aXZlIiwKKyAgICAiSW52YWxpZEdyYW50T3BlcmF0aW9uIiwK KyAgICAiTnVsbFZhbHVlTm9JbmRpY2F0b3JQYXJhbWV0ZXIiLAorICAgICJQcm90b2NvbFZpb2xh dGlvbiIsCisgICAgIkZEV0ludmFsaWREYXRhVHlwZURlc2NyaXB0b3JzIiwKKyAgICAiVHJpZ2dl cmVkRGF0YUNoYW5nZVZpb2xhdGlvbiIsCisgICAgIkV4dGVybmFsUm91dGluZUV4Y2VwdGlvbiIs CisgICAgIkludmFsaWRTcWxzdGF0ZVJldHVybmVkIiwKKyAgICAiUGxwZ3NxbEVycm9yIiwKKyAg ICAiSW52YWxpZFhtbENvbnRlbnQiLAorICAgICJUcmlnZ2VyZWRBY3Rpb25FeGNlcHRpb24iLAor ICAgICJTUUxDbGllbnRVbmFibGVUb0VzdGFibGlzaFNRTENvbm5lY3Rpb24iLAorICAgICJGRFdU YWJsZU5vdEZvdW5kIiwKKyAgICAiTnVtZXJpY1ZhbHVlT3V0T2ZSYW5nZSIsCisgICAgIlJlc3Ry aWN0VmlvbGF0aW9uIiwKKyAgICAiQW1iaWd1b3VzUGFyYW1ldGVyIiwKKyAgICAiU3RhdGVtZW50 VG9vQ29tcGxleCIsCisgICAgIlVuc2FmZU5ld0VudW1WYWx1ZVVzYWdlIiwKKyAgICAiTm9uTnVt ZXJpY1NRTEpzb25JdGVtIiwKKyAgICAiSW52YWxpZEluZGljYXRvclBhcmFtZXRlclZhbHVlIiwK KyAgICAiRXhjbHVzaW9uVmlvbGF0aW9uIiwKKyAgICAiT3BlcmF0b3JJbnRlcnZlbnRpb24iLAor ICAgICJRdWVyeUNhbmNlbGVkIiwKKyAgICAiV2FybmluZyIsCisgICAgIkludmFsaWRBcmd1bWVu dEZvclNRTEpzb25EYXRldGltZUZ1bmN0aW9uIiwKKyAgICAiRm9yZWlnbktleVZpb2xhdGlvbiIs CisgICAgIlN0cmluZ0RhdGFMZW5ndGhNaXNtYXRjaCIsCisgICAgIlNRTFJvdXRpbmVFeGNlcHRp b24iLAorICAgICJUb29NYW55Q29ubmVjdGlvbnMiLAorICAgICJUb29NYW55SnNvbk9iamVjdE1l bWJlcnMiLAorICAgICJOb0RhdGEiLAorICAgICJVbnRyYW5zbGF0YWJsZUNoYXJhY3RlciIsCisg ICAgIkZEV1VuYWJsZVRvRXN0YWJsaXNoQ29ubmVjdGlvbiIsCisgICAgIkxvY2tGaWxlRXhpc3Rz IiwKKyAgICAiU1JFUmVhZGluZ1NRTERhdGFOb3RQZXJtaXR0ZWQiLAorICAgICJJbmRldGVybWlu YXRlRGF0YXR5cGUiLAorICAgICJDaGVja1Zpb2xhdGlvbiIsCisgICAgIkludmFsaWREYXRhYmFz ZURlZmluaXRpb24iLAorICAgICJOb0FjdGl2ZVNRTFRyYW5zYWN0aW9uRm9yQnJhbmNoVHJhbnNh Y3Rpb24iLAorICAgICJTUUxTZXJ2ZXJSZWplY3RlZEVzdGFibGlzaG1lbnRPZlNRTENvbm5lY3Rp b24iLAorICAgICJEdXBsaWNhdGVGaWxlIiwKKyAgICAiRkRXSW52YWxpZENvbHVtbk51bWJlciIs CisgICAgIlRyYW5zYWN0aW9uUm9sbGJhY2siLAorICAgICJNb3JlVGhhbk9uZVNRTEpzb25JdGVt IiwKKyAgICAiV2l0aENoZWNrT3B0aW9uVmlvbGF0aW9uIiwKKyAgICAiRkRXTm9TY2hlbWFzIiwK KyAgICAiR2VuZXJhdGVkQWx3YXlzIiwKKyAgICAiQ2Fubm90Q29ubmVjdE5vdyIsCisgICAgIkNh cmRpbmFsaXR5VmlvbGF0aW9uIiwKKyAgICAiSW52YWxpZEF1dGhvcml6YXRpb25TcGVjaWZpY2F0 aW9uIiwKKyAgICAiU1FMSnNvbk51bWJlck5vdEZvdW5kIiwKKyAgICAiU1FMSnNvbk1lbWJlck5v dEZvdW5kIiwKKyAgICAiSW52YWxpZFVzZU9mRXNjYXBlQ2hhcmFjdGVyIiwKKyAgICAiVW50ZXJt aW5hdGVkQ1N0cmluZyIsCisgICAgIlRyaW1FcnJvciIsCisgICAgIlNyZlByb3RvY29sVmlvbGF0 ZWQiLAorICAgICJEaXNrRnVsbCIsCisgICAgIlRvb01hbnlDb2x1bW5zIiwKKyAgICAiSW52YWxp ZE9iamVjdERlZmluaXRpb24iLAorICAgICJJbnZhbGlkQXJndW1lbnRGb3JMb2dhcml0aG0iLAor ICAgICJUb29NYW55SnNvbkFycmF5RWxlbWVudHMiLAorICAgICJPdXRPZk1lbW9yeSIsCisgICAg IkVSRVByb2hpYml0ZWRTUUxTdGF0ZW1lbnRBdHRlbXB0ZWQiLAorICAgICJGRFdJbnZhbGlkU3Ry aW5nRm9ybWF0IiwKKyAgICAiU3RhY2tlZERpYWdub3N0aWNzQWNjZXNzZWRXaXRob3V0QWN0aXZl SGFuZGxlciIsCisgICAgIlNjaGVtYUFuZERhdGFTdGF0ZW1lbnRNaXhpbmdOb3RTdXBwb3J0ZWQi LAorICAgICJJbnRlcm5hbEVycm9yIiwKKyAgICAiSW52YWxpZEVzY2FwZUNoYXJhY3RlciIsCisg ICAgIkZEV0Vycm9yIiwKKyAgICAiSW1wbGljaXRaZXJvQml0UGFkZGluZ1dhcm5pbmciLAorICAg ICJEaXZpc2lvbkJ5WmVybyIsCisgICAgIkludmFsaWRUYWJsZXNhbXBsZUFyZ3VtZW50IiwKKyAg ICAiRGVhZGxvY2tEZXRlY3RlZCIsCisgICAgIkNhbnRDaGFuZ2VSdW50aW1lUGFyYW0iLAorICAg ICJVbmRlZmluZWRPYmplY3QiLAorICAgICJVbmlxdWVWaW9sYXRpb24iLAorICAgICJJbnZhbGlk Q3Vyc29yRGVmaW5pdGlvbiIsCisgICAgIkNvbm5lY3Rpb25GYWlsdXJlIiwKKyAgICAiVW5kZWZp bmVkRnVuY3Rpb24iLAorICAgICJGRFdGdW5jdGlvblNlcXVlbmNlRXJyb3IiLAorICAgICJFcnJv ckluQXNzaWdubWVudCIsCisgICAgIlN1Y2Nlc3NmdWxDb21wbGV0aW9uIiwKKyAgICAiU3RyaW5n RGF0YVJpZ2h0VHJ1bmNhdGlvbiIsCisgICAgIkZEV1Rvb01hbnlIYW5kbGVzIiwKKyAgICAiRkRX SW52YWxpZERhdGFUeXBlIiwKKyAgICAiQWN0aXZlU1FMVHJhbnNhY3Rpb24iLAorICAgICJJbnZh bGlkVGV4dFJlcHJlc2VudGF0aW9uIiwKKyAgICAiSW52YWxpZFNRTFN0YXRlbWVudE5hbWUiLAor ICAgICJQcml2aWxlZ2VOb3RHcmFudGVkV2FybmluZyIsCisgICAgIlNSRU1vZGlmeWluZ1NRTERh dGFOb3RQZXJtaXR0ZWQiLAorICAgICJJbmRldGVybWluYXRlQ29sbGF0aW9uIiwKKyAgICAiU3lz dGVtRXJyb3IiLAorICAgICJOdWxsVmFsdWVFbGltaW5hdGVkSW5TZXRGdW5jdGlvbldhcm5pbmci LAorICAgICJEZXBlbmRlbnRPYmplY3RzU3RpbGxFeGlzdCIsCisgICAgIkludmFsaWRTY2hlbWFO YW1lIiwKKyAgICAiRHVwbGljYXRlQ29sdW1uIiwKKyAgICAiRnVuY3Rpb25FeGVjdXRlZE5vUmV0 dXJuU3RhdGVtZW50IiwKKyAgICAiSW52YWxpZENvbHVtbkRlZmluaXRpb24iLAorICAgICJEeW5h bWljUmVzdWx0U2V0c1JldHVybmVkV2FybmluZyIsCisgICAgIklkbGVJblRyYW5zYWN0aW9uU2Vz c2lvblRpbWVvdXQiLAorICAgICJTdGF0ZW1lbnRDb21wbGV0aW9uVW5rbm93biIsCisgICAgIkNh bm5vdENvZXJjZSIsCisgICAgIkludmFsaWRUcmFuc2FjdGlvblN0YXRlIiwKKyAgICAiRHVwbGlj YXRlVGFibGUiLAorICAgICJCYWRDb3B5RmlsZUZvcm1hdCIsCisgICAgIlplcm9MZW5ndGhDaGFy YWN0ZXJTdHJpbmciLAorICAgICJTeW50YXhFcnJvck9yQWNjZXNzUnVsZVZpb2xhdGlvbiIsCisg ICAgIlNpbmdsZXRvblNRTEpzb25JdGVtUmVxdWlyZWQiLAorICAgICJJbmRleENvcnJ1cHRlZCIs CisgICAgIkZEV0ludmFsaWRDb2x1bW5OYW1lIiwKKyAgICAiRGF0YUNvcnJ1cHRlZCIsCisgICAg IkVSSUVOdWxsVmFsdWVOb3RBbGxvd2VkIiwKKyAgICAiQXJyYXlTdWJzY3JpcHRFcnJvciIsCisg ICAgIkZEV1JlcGx5SGFuZGxlIiwKKyAgICAiRGlhZ25vc3RpY3NFeGNlcHRpb24iLAorICAgICJJ bnZhbGlkVGFibGVzYW1wbGVSZXBlYXQiLAorICAgICJTUUxKc29uSXRlbUNhbm5vdEJlQ2FzdFRv VGFyZ2V0VHlwZSIsCisgICAgIkZEV0ludmFsaWRIYW5kbGUiLAorICAgICJJbnZhbGlkUGFzc3dv cmQiLAorICAgICJJbnZhbGlkRXNjYXBlU2VxdWVuY2UiLAorICAgICJFc2NhcGVDaGFyYWN0ZXJD b25mbGljdCIsCisgICAgIkludmFsaWRTYXZlcG9pbnRTcGVjaWZpY2F0aW9uIiwKKyAgICAiRkRX SW52YWxpZEF0dHJpYnV0ZVZhbHVlIiwKKyAgICAiQ29udGFpbmluZ1NRTE5vdFBlcm1pdHRlZCIs CisgICAgIkxvY2F0b3JFeGNlcHRpb24iLAorICAgICJEYXRhdHlwZU1pc21hdGNoIiwKKyAgICAi SW52YWxpZEN1cnNvclN0YXRlIiwKKyAgICAiSW52YWxpZE5hbWUiLAorICAgICJJbmRpY2F0b3JP dmVyZmxvdyIsCisgICAgIlJlc2VydmVkTmFtZSIsCisgICAgIkRhdGV0aW1lRmllbGRPdmVyZmxv dyIsCisgICAgIkZEV0luY29uc2lzdGVudERlc2NyaXB0b3JJbmZvcm1hdGlvbiIsCisgICAgIkZs b2F0aW5nUG9pbnRFeGNlcHRpb24iLAorICAgICJBbWJpZ3VvdXNBbGlhcyIsCisgICAgIkludmFs aWRSZWN1cnNpb24iLAorICAgICJXcm9uZ09iamVjdFR5cGUiLAorICAgICJVbmRlZmluZWRGaWxl IiwKKyAgICAiTG9ja05vdEF2YWlsYWJsZSIsCisgICAgIkludmFsaWRSb3dDb3VudEluUmVzdWx0 T2Zmc2V0Q2xhdXNlIiwKKyAgICAiT2JqZWN0SW5Vc2UiLAorICAgICJEZXByZWNhdGVkRmVhdHVy ZVdhcm5pbmciLAorICAgICJGRFdEeW5hbWljUGFyYW1ldGVyVmFsdWVOZWVkZWQiLAorICAgICJE dXBsaWNhdGVGdW5jdGlvbiIsCisgICAgIkludmFsaWRYbWxEb2N1bWVudCIsCisgICAgIlN0cmlu Z0RhdGFSaWdodFRydW5jYXRpb25XYXJuaW5nIiwKKyAgICAiRHVwbGljYXRlUHJlcGFyZWRTdGF0 ZW1lbnQiLAorICAgICJJbnZhbGlkR3JhbnRvciIsCisgICAgIkV2ZW50VHJpZ2dlclByb3RvY29s VmlvbGF0ZWQiLAorICAgICJGRFdJbnZhbGlkVXNlT2ZOdWxsUG9pbnRlciIsCisgICAgIkZEV1Vu YWJsZVRvQ3JlYXRlRXhlY3V0aW9uIiwKKyAgICAiQ29ubmVjdGlvbkRvZXNOb3RFeGlzdCIsCisg ICAgIkludmFsaWRDYXRhbG9nTmFtZSIsCisgICAgIkludmFsaWRBcmd1bWVudEZvclhxdWVyeSIs CisgICAgIkZEV0NvbHVtbk5hbWVOb3RGb3VuZCIsCisgICAgIlRyYW5zYWN0aW9uSW50ZWdyaXR5 Q29uc3RyYWludFZpb2xhdGlvbiIsCisgICAgIkludmFsaWRQcmVwYXJlZFN0YXRlbWVudERlZmlu aXRpb24iLAorICAgICJGRFdJbnZhbGlkRGVzY3JpcHRvckZpZWxkSWRlbnRpZmllciIsCisgICAg IkZEV09wdGlvbk5hbWVOb3RGb3VuZCIsCisgICAgIkludmFsaWRBcmd1bWVudEZvclBvd2VyRnVu Y3Rpb24iLAorICAgICJGRFdJbnZhbGlkU3RyaW5nTGVuZ3RoT3JCdWZmZXJMZW5ndGgiLAorICAg ICJTUkVQcm9oaWJpdGVkU1FMU3RhdGVtZW50QXR0ZW1wdGVkIiwKKyAgICAiTm9EYXRhRm91bmQi LAorICAgICJEdXBsaWNhdGVEYXRhYmFzZSIsCisgICAgIkZlYXR1cmVOb3RTdXBwb3J0ZWQiLAor ICAgICJJbnRlZ3JpdHlDb25zdHJhaW50VmlvbGF0aW9uIiwKKyAgICAiQW1iaWd1b3VzQ29sdW1u IiwKKyAgICAiUHJpdmlsZWdlTm90UmV2b2tlZFdhcm5pbmciLAorICAgICJGaWxlTmFtZVRvb0xv bmciLAorICAgICJJbnZhbGlkQXJndW1lbnRGb3JXaWR0aEJ1Y2tldEZ1bmN0aW9uIiwKKyAgICAi SGVsZEN1cnNvclJlcXVpcmVzU2FtZUlzb2xhdGlvbkxldmVsIiwKKyAgICAiTm9TUUxKc29uSXRl bSIsCisgICAgIklvRXJyb3IiLAorICAgICJTYXZlcG9pbnRFeGNlcHRpb24iLAorICAgICJOb0Fj dGl2ZVNRTFRyYW5zYWN0aW9uIiwKKyAgICAiSW52YWxpZEZ1bmN0aW9uRGVmaW5pdGlvbiIsCisg ICAgIkFkbWluU2h1dGRvd24iLAorICAgICJEYXRhYmFzZURyb3BwZWQiLAorICAgICJJbnZhbGlk UmVndWxhckV4cHJlc3Npb24iLAorICAgICJXaW5kb3dpbmdFcnJvciIsCisgICAgIkludmFsaWRD b2x1bW5SZWZlcmVuY2UiLAorICAgICJJbnZhbGlkQmluYXJ5UmVwcmVzZW50YXRpb24iLAorICAg ICJTUUxKc29uU2NhbGFyUmVxdWlyZWQiLAorICAgICJDb25maWd1cmF0aW9uTGltaXRFeGNlZWRl ZCIsCisgICAgIlN5bnRheEVycm9yIiwKKyAgICAiU2VyaWFsaXphdGlvbkZhaWx1cmUiLAorICAg ICJQcm9ncmFtTGltaXRFeGNlZWRlZCIsCisgICAgIkR1cGxpY2F0ZVNjaGVtYSIsCisgICAgIlNR TFN0YXRlbWVudE5vdFlldENvbXBsZXRlIiwKKyAgICAiTGlicHFFcnJvciIsCisgICAgIkRhdGFF eGNlcHRpb24iLAorICAgICJTdWJzdHJpbmdFcnJvciIsCisgICAgIkludmFsaWRMb2NhdG9yU3Bl Y2lmaWNhdGlvbiIsCisgICAgIkluYXBwcm9wcmlhdGVBY2Nlc3NNb2RlRm9yQnJhbmNoVHJhbnNh Y3Rpb24iLAorICAgICJFUkVNb2RpZnlpbmdTUUxEYXRhTm90UGVybWl0dGVkIiwKKyAgICAiSW5z dWZmaWNpZW50UHJpdmlsZWdlIiwKKyAgICAiTm9BZGRpdGlvbmFsRHluYW1pY1Jlc3VsdFNldHNS ZXR1cm5lZCIsCisgICAgIlNRTEpzb25BcnJheU5vdEZvdW5kIiwKKyAgICAiTmFtZVRvb0xvbmci LAorICAgICJJbnZhbGlkVGltZVpvbmVEaXNwbGFjZW1lbnRWYWx1ZSIsCisgICAgIkluYXBwcm9w cmlhdGVJc29sYXRpb25MZXZlbEZvckJyYW5jaFRyYW5zYWN0aW9uIiwKKyAgICAiUmFpc2VFeGNl cHRpb24iLAorICAgICJFUkVSZWFkaW5nU1FMRGF0YU5vdFBlcm1pdHRlZCIsCisgICAgIlRyaWdn ZXJQcm90b2NvbFZpb2xhdGVkIiwKKyAgICAiTm9uc3RhbmRhcmRVc2VPZkVzY2FwZUNoYXJhY3Rl ciIsCisgICAgIkludmFsaWRUcmFuc2FjdGlvbkluaXRpYXRpb24iLAorICAgICJEdXBsaWNhdGVB bGlhcyIsCisgICAgIlRyYW5zYWN0aW9uUmVzb2x1dGlvblVua25vd24iLAorICAgICJUb29NYW55 Um93cyIsCisgICAgIkludmFsaWRYbWxDb21tZW50IiwKKyAgICAiTW9zdFNwZWNpZmljVHlwZU1p c21hdGNoIiwKKyAgICAiRHVwbGljYXRlT2JqZWN0IiwKKyAgICAiRHVwbGljYXRlQ3Vyc29yIiwK KyAgICAiQW1iaWd1b3VzRnVuY3Rpb24iLAorICAgICJUb29NYW55QXJndW1lbnRzIiwKKyAgICAi SW52YWxpZFhtbFByb2Nlc3NpbmdJbnN0cnVjdGlvbiIsCisgICAgIkludmFsaWRUcmFuc2FjdGlv blRlcm1pbmF0aW9uIiwKKyAgICAiSW52YWxpZERhdGV0aW1lRm9ybWF0IiwKKyAgICAiSW52YWxp ZFByZWNlZGluZ09yRm9sbG93aW5nU2l6ZSIsCisgICAgIkNoYXJhY3Rlck5vdEluUmVwZXJ0b2ly ZSIsCisgICAgIlNRTFNUQVRFX1RPX0VYQ0VQVElPTiIsCitdCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9weXRlc3QvbGlicHEvZXJyb3JzLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L2xpYnBxL2Vycm9ycy5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzY0YTk2YzI0NzgKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvbGlicHEvZXJyb3JzLnB5CkBAIC0wLDAg KzEsMzkgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorCisiIiIKK1Bvc3RncmVTUUwgZXJyb3IgdHlwZXMgbWFwcGVkIGZyb20gU1FM U1RBVEUgY29kZXMuCisKK1RoaXMgbW9kdWxlIHByb3ZpZGVzIExpYnBxRXJyb3IgYW5kIGl0cyBz dWJjbGFzc2VzIGZvciBoYW5kbGluZyBQb3N0Z3JlU1FMCitlcnJvcnMgYmFzZWQgb24gU1FMU1RB VEUgY29kZXMuIFRoZSBleGNlcHRpb24gY2xhc3NlcyBpbiBfZ2VuZXJhdGVkX2Vycm9ycy5weQor YXJlIGF1dG8tZ2VuZXJhdGVkIGZyb20gc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMudHh0Lgor CitUbyByZWdlbmVyYXRlOiBzcmMvdG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5w eQorIiIiCisKK2Zyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorCitmcm9tIC5fZXJyb3JfYmFz ZSBpbXBvcnQgTGlicHFFcnJvciwgTGlicHFXYXJuaW5nCitmcm9tIC5fZ2VuZXJhdGVkX2Vycm9y cyBpbXBvcnQgKAorICAgIFNRTFNUQVRFX1RPX0VYQ0VQVElPTiwKKykKK2Zyb20gLl9nZW5lcmF0 ZWRfZXJyb3JzIGltcG9ydCAqICAjIG5vcWE6IEY0MDMKKworCitkZWYgZ2V0X2V4Y2VwdGlvbl9j bGFzcyhzcWxzdGF0ZTogT3B0aW9uYWxbc3RyXSkgLT4gdHlwZToKKyAgICAiIiJHZXQgdGhlIGFw cHJvcHJpYXRlIGV4Y2VwdGlvbiBjbGFzcyBmb3IgYSBTUUxTVEFURSBjb2RlLiIiIgorICAgIGlm IHNxbHN0YXRlIGluIFNRTFNUQVRFX1RPX0VYQ0VQVElPTjoKKyAgICAgICAgcmV0dXJuIFNRTFNU QVRFX1RPX0VYQ0VQVElPTltzcWxzdGF0ZV0KKyAgICByZXR1cm4gTGlicHFFcnJvcgorCisKK2Rl ZiBtYWtlX2Vycm9yKG1lc3NhZ2U6IHN0ciwgKiwgc3Fsc3RhdGU6IE9wdGlvbmFsW3N0cl0gPSBO b25lLCAqKmt3YXJncykgLT4gTGlicHFFcnJvcjoKKyAgICAiIiJDcmVhdGUgYW4gYXBwcm9wcmlh dGUgTGlicHFFcnJvciBzdWJjbGFzcyBiYXNlZCBvbiB0aGUgU1FMU1RBVEUgY29kZS4iIiIKKyAg ICBleGNfY2xhc3MgPSBnZXRfZXhjZXB0aW9uX2NsYXNzKHNxbHN0YXRlKQorICAgIHJldHVybiBl eGNfY2xhc3MobWVzc2FnZSwgc3Fsc3RhdGU9c3Fsc3RhdGUsICoqa3dhcmdzKQorCisKK19fYWxs X18gPSBbCisgICAgIkxpYnBxRXJyb3IiLAorICAgICJMaWJwcVdhcm5pbmciLAorICAgICJtYWtl X2Vycm9yIiwKK10KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZCBiL3Ny Yy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZAppbmRleCBhYmQxMjhkZmEyNC4uMjBjYTQ0MTZlYmMg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3B5dGVzdC9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9w eXRlc3QvbWVzb24uYnVpbGQKQEAgLTEwLDcgKzEwLDkgQEAgdGVzdHMgKz0gewogICAnYmQnOiBt ZXNvbi5jdXJyZW50X2J1aWxkX2RpcigpLAogICAncHl0ZXN0JzogewogICAgICd0ZXN0cyc6IFsK LSAgICAgICdweXQvdGVzdF9zb21ldGhpbmcucHknLAorICAgICAgJ3B5dC90ZXN0X2Vycm9ycy5w eScsCisgICAgICAncHl0L3Rlc3RfbGlicHEucHknLAorICAgICAgJ3B5dC90ZXN0X3F1ZXJ5X2hl bHBlcnMucHknLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9weXRlc3Qv cHlwZy9fX2luaXRfXy5weSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL19faW5pdF9fLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZGFlNDliNjQwNgotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNCBA QAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdy b3VwCisKK2Zyb20gLl9lbnYgaW1wb3J0IGhhc190ZXN0X2V4dHJhLCByZXF1aXJlX3Rlc3RfZXh0 cmEKK2Zyb20gLl93aW4zMiBpbXBvcnQgY3VycmVudF93aW5kb3dzX3VzZXIKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkgYi9zcmMvdGVzdC9weXRlc3QvcHlwZy9fZW52 LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNTRjOTg2ZDczZQot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL19lbnYucHkKQEAgLTAsMCAr MSw1NCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKKworaW1wb3J0IHB5dGVzdAor Citsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitkZWYgaGFzX3Rlc3Rf ZXh0cmEoa2V5OiBzdHIpIC0+IGJvb2w6CisgICAgIiIiCisgICAgUmV0dXJucyBUcnVlIGlmIHRo ZSBQR19URVNUX0VYVFJBIGVudmlyb25tZW50IHZhcmlhYmxlIGNvbnRhaW5zIHRoZSBnaXZlbgor ICAgIGtleS4KKyAgICAiIiIKKyAgICBleHRyYSA9IG9zLmdldGVudigiUEdfVEVTVF9FWFRSQSIs ICIiKQorICAgIHJldHVybiBrZXkgaW4gZXh0cmEuc3BsaXQoKQorCisKK2RlZiByZXF1aXJlX3Rl c3RfZXh0cmEoKmtleXM6IHN0cikgLT4gYm9vbDoKKyAgICAiIiIKKyAgICBBIGNvbnZlbmllbmNl IGFubm90YXRpb24gd2hpY2ggd2lsbCBza2lwIHRlc3RzIGlmIGFsbCBvZiB0aGUgcmVxdWlyZWQg a2V5cworICAgIGFyZSBub3QgcHJlc2VudCBpbiBQR19URVNUX0VYVFJBLgorCisgICAgVG8gc2tp cCBhIHBhcnRpY3VsYXIgdGVzdCBmdW5jdGlvbiBvciBjbGFzczoKKworICAgICAgICBAcGcucmVx dWlyZV90ZXN0X2V4dHJhKCJsZGFwIikKKyAgICAgICAgZGVmIHRlc3Rfc29tZV9sZGFwX2ZlYXR1 cmUoKToKKyAgICAgICAgICAgIC4uLgorCisgICAgVG8gc2tpcCBhbiBlbnRpcmUgbW9kdWxlOgor CisgICAgICAgIHB5dGVzdG1hcmsgPSBwZy5yZXF1aXJlX3Rlc3RfZXh0cmEoInNzbCIsICJrZXJi ZXJvcyIpCisgICAgIiIiCisgICAgcmV0dXJuIHB5dGVzdC5tYXJrLnNraXBpZigKKyAgICAgICAg bm90IGFsbChbaGFzX3Rlc3RfZXh0cmEoaykgZm9yIGsgaW4ga2V5c10pLAorICAgICAgICByZWFz b249InJlcXVpcmVzIHt9IHRvIGJlIHNldCBpbiBQR19URVNUX0VYVFJBIi5mb3JtYXQoIiwgIi5q b2luKGtleXMpKSwKKyAgICApCisKKworZGVmIHRlc3RfdGltZW91dF9kZWZhdWx0KCkgLT4gaW50 OgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSBQR19URVNUX1RJTUVPVVRf REVGQVVMVCBlbnZpcm9ubWVudCB2YXJpYWJsZSwgaW4KKyAgICBzZWNvbmRzLCBvciAxODAgaWYg b25lIHdhcyBub3QgcHJvdmlkZWQuCisgICAgIiIiCisgICAgZGVmYXVsdCA9IG9zLmdldGVudigi UEdfVEVTVF9USU1FT1VUX0RFRkFVTFQiLCAiIikKKyAgICBpZiBub3QgZGVmYXVsdDoKKyAgICAg ICAgcmV0dXJuIDE4MAorCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gaW50KGRlZmF1bHQpCisg ICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgdjoKKyAgICAgICAgbG9nZ2VyLndhcm5pbmcoIlBHX1RF U1RfVElNRU9VVF9ERUZBVUxUIGNvdWxkIG5vdCBiZSBwYXJzZWQ6ICIgKyBzdHIodikpCisgICAg ICAgIHJldHVybiAxODAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXBnL193aW4zMi5w eSBiL3NyYy90ZXN0L3B5dGVzdC9weXBnL193aW4zMi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uM2ZkNjdiMTAxOTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9weXRlc3QvcHlwZy9fd2luMzIucHkKQEAgLTAsMCArMSwxNDUgQEAKKyMgQ29weXJpZ2h0IChj KSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgY3R5 cGVzCitpbXBvcnQgcGxhdGZvcm0KKworCitkZWYgY3VycmVudF93aW5kb3dzX3VzZXIoKToKKyAg ICAiIiIKKyAgICBBIHBvcnQgb2YgcGdfcmVncmVzcy5jJ3MgY3VycmVudF93aW5kb3dzX3VzZXIo KSBoZWxwZXIuIFJldHVybnMKKyAgICAoYWNjb3VudG5hbWUsIGRvbWFpbm5hbWUpLgorCisgICAg WFhYIFRoaXMgaXMgZGVhZCBjb2RlIG5vdywgYnV0IEknbSBrZWVwaW5nIGl0IGFzIGEgbW90aXZh dGluZyBleGFtcGxlIG9mCisgICAgV2luMzIgaW50ZXJhY3Rpb24sIGFuZCBzb21lb25lIG1heSBm aW5kIGl0IHVzZWZ1bCBpbiB0aGUgZnV0dXJlIHdoZW4gd3JpdGluZworICAgIFNTUEkgdGVzdHM/ CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBhZHZhcGkzMiA9IGN0eXBlcy53aW5kbGwuYWR2 YXBpMzIKKyAgICAgICAga2VybmVsMzIgPSBjdHlwZXMud2luZGxsLmtlcm5lbDMyCisgICAgZXhj ZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoCisgICAgICAg ICAgICBmImN1cnJlbnRfd2luZG93c191c2VyKCkgaXMgbm90IHN1cHBvcnRlZCBvbiB7cGxhdGZv cm0uc3lzdGVtKCl9IgorICAgICAgICApCisKKyAgICBkZWYgcmFpc2Vfd2luZXJyb3Jfd2hlbl9m YWxzZShyZXN1bHQsIGZ1bmMsIGFyZ3VtZW50cyk6CisgICAgICAgICIiIgorICAgICAgICBBIGN0 eXBlcyBlcnJjaGVjayBoYW5kbGVyIHRoYXQgcmFpc2VzIFdpbkVycm9yICh3aGljaCB3aWxsIGNv bnRhaW4gdGhlCisgICAgICAgIHJlc3VsdCBvZiBHZXRMYXN0RXJyb3IoKSkgd2hlbiB0aGUgZnVu Y3Rpb24ncyByZXR1cm4gdmFsdWUgaXMgZmFsc2UuCisgICAgICAgICIiIgorICAgICAgICBpZiBu b3QgcmVzdWx0OgorICAgICAgICAgICAgcmFpc2UgY3R5cGVzLldpbkVycm9yKCkKKworICAgICMK KyAgICAjIEZ1bmN0aW9uIFByb3RvdHlwZXMKKyAgICAjCisKKyAgICBmcm9tIGN0eXBlcyBpbXBv cnQgd2ludHlwZXMKKworICAgICMgR2V0Q3VycmVudFByb2Nlc3MKKyAgICBrZXJuZWwzMi5HZXRD dXJyZW50UHJvY2Vzcy5yZXN0eXBlID0gd2ludHlwZXMuSEFORExFCisgICAga2VybmVsMzIuR2V0 Q3VycmVudFByb2Nlc3MuYXJndHlwZXMgPSBbXQorCisgICAgIyBPcGVuUHJvY2Vzc1Rva2VuCisg ICAgVE9LRU5fUkVBRCA9IDB4MDAwMjAwMDgKKworICAgIGFkdmFwaTMyLk9wZW5Qcm9jZXNzVG9r ZW4ucmVzdHlwZSA9IHdpbnR5cGVzLkJPT0wKKyAgICBhZHZhcGkzMi5PcGVuUHJvY2Vzc1Rva2Vu LmFyZ3R5cGVzID0gWworICAgICAgICB3aW50eXBlcy5IQU5ETEUsCisgICAgICAgIHdpbnR5cGVz LkRXT1JELAorICAgICAgICB3aW50eXBlcy5QSEFORExFLAorICAgIF0KKyAgICBhZHZhcGkzMi5P cGVuUHJvY2Vzc1Rva2VuLmVycmNoZWNrID0gcmFpc2Vfd2luZXJyb3Jfd2hlbl9mYWxzZQorCisg ICAgIyBHZXRUb2tlbkluZm9ybWF0aW9uCisgICAgUFNJRCA9IHdpbnR5cGVzLkxQVk9JRCAgIyB3 ZSBkb24ndCBuZWVkIHRoZSBpbnRlcm5hbHMKKyAgICBUT0tFTl9JTkZPUk1BVElPTl9DTEFTUyA9 IHdpbnR5cGVzLklOVAorICAgIFRva2VuVXNlciA9IDEKKworICAgIGNsYXNzIFNJRF9BTkRfQVRU UklCVVRFUyhjdHlwZXMuU3RydWN0dXJlKToKKyAgICAgICAgX2ZpZWxkc18gPSBbCisgICAgICAg ICAgICAoIlNpZCIsIFBTSUQpLAorICAgICAgICAgICAgKCJBdHRyaWJ1dGVzIiwgd2ludHlwZXMu RFdPUkQpLAorICAgICAgICBdCisKKyAgICBjbGFzcyBUT0tFTl9VU0VSKGN0eXBlcy5TdHJ1Y3R1 cmUpOgorICAgICAgICBfZmllbGRzXyA9IFsKKyAgICAgICAgICAgICgiVXNlciIsIFNJRF9BTkRf QVRUUklCVVRFUyksCisgICAgICAgIF0KKworICAgIGFkdmFwaTMyLkdldFRva2VuSW5mb3JtYXRp b24ucmVzdHlwZSA9IHdpbnR5cGVzLkJPT0wKKyAgICBhZHZhcGkzMi5HZXRUb2tlbkluZm9ybWF0 aW9uLmFyZ3R5cGVzID0gWworICAgICAgICB3aW50eXBlcy5IQU5ETEUsCisgICAgICAgIFRPS0VO X0lORk9STUFUSU9OX0NMQVNTLAorICAgICAgICB3aW50eXBlcy5MUFZPSUQsCisgICAgICAgIHdp bnR5cGVzLkRXT1JELAorICAgICAgICB3aW50eXBlcy5QRFdPUkQsCisgICAgXQorICAgIGFkdmFw aTMyLkdldFRva2VuSW5mb3JtYXRpb24uZXJyY2hlY2sgPSByYWlzZV93aW5lcnJvcl93aGVuX2Zh bHNlCisKKyAgICAjIExvb2t1cEFjY291bnRTaWQKKyAgICBTSURfTkFNRV9VU0UgPSB3aW50eXBl cy5JTlQKKyAgICBQU0lEX05BTUVfVVNFID0gY3R5cGVzLlBPSU5URVIoU0lEX05BTUVfVVNFKQor CisgICAgYWR2YXBpMzIuTG9va3VwQWNjb3VudFNpZFcucmVzdHlwZSA9IHdpbnR5cGVzLkJPT0wK KyAgICBhZHZhcGkzMi5Mb29rdXBBY2NvdW50U2lkVy5hcmd0eXBlcyA9IFsKKyAgICAgICAgd2lu dHlwZXMuTFBDV1NUUiwKKyAgICAgICAgUFNJRCwKKyAgICAgICAgd2ludHlwZXMuTFBXU1RSLAor ICAgICAgICB3aW50eXBlcy5MUERXT1JELAorICAgICAgICB3aW50eXBlcy5MUFdTVFIsCisgICAg ICAgIHdpbnR5cGVzLkxQRFdPUkQsCisgICAgICAgIFBTSURfTkFNRV9VU0UsCisgICAgXQorICAg IGFkdmFwaTMyLkxvb2t1cEFjY291bnRTaWRXLmVycmNoZWNrID0gcmFpc2Vfd2luZXJyb3Jfd2hl bl9mYWxzZQorCisgICAgIworICAgICMgSW1wbGVtZW50YXRpb24gKHNlZSBwZ19TU1BJX3JlY3Zf YXV0aCgpKQorICAgICMKKworICAgICMgR2V0IHRoZSBjdXJyZW50IHByb2Nlc3MgdG9rZW4uLi4K KyAgICB0b2tlbiA9IHdpbnR5cGVzLkhBTkRMRSgpCisgICAgcHJvYyA9IGtlcm5lbDMyLkdldEN1 cnJlbnRQcm9jZXNzKCkKKyAgICBhZHZhcGkzMi5PcGVuUHJvY2Vzc1Rva2VuKHByb2MsIFRPS0VO X1JFQUQsIHRva2VuKQorCisgICAgIyAuLi50aGVuIHJlYWQgdGhlIFRPS0VOX1VTRVIgc3RydWN0 IGZvciB0aGF0IHRva2VuLi4uCisgICAgaW5mbyA9IFRPS0VOX1VTRVIoKQorICAgIGluZm9sZW4g PSB3aW50eXBlcy5EV09SRCgpCisKKyAgICB0cnk6CisgICAgICAgICMgKEdldFRva2VuSW5mb3Jt YXRpb24gY3JlYXRlcyBhIGJ1ZmZlciBiaWdnZXIgdGhhbiBUT0tFTl9VU0VSLCBzbyB3ZQorICAg ICAgICAjIGhhdmUgdG8gcXVlcnkgdGhlIGNvcnJlY3QgbGVuZ3RoIGZpcnN0LikKKyAgICAgICAg YWR2YXBpMzIuR2V0VG9rZW5JbmZvcm1hdGlvbih0b2tlbiwgVG9rZW5Vc2VyLCBOb25lLCAwLCBj dHlwZXMuYnlyZWYoaW5mb2xlbikpCisgICAgICAgIGFzc2VydCBGYWxzZSwgIkdldFRva2VuSW5m b3JtYXRpb24gc3VjY2VlZGVkIHVuZXhwZWN0ZWRseSIKKworICAgIGV4Y2VwdCBPU0Vycm9yIGFz IGVycjoKKyAgICAgICAgYXNzZXJ0IGVyci53aW5lcnJvciA9PSAxMjIgICMgaW5zdWZmaWNpZW50 IGJ1ZmZlcgorCisgICAgICAgIGN0eXBlcy5yZXNpemUoaW5mbywgaW5mb2xlbi52YWx1ZSkKKyAg ICAgICAgYWR2YXBpMzIuR2V0VG9rZW5JbmZvcm1hdGlvbigKKyAgICAgICAgICAgIHRva2VuLAor ICAgICAgICAgICAgVG9rZW5Vc2VyLAorICAgICAgICAgICAgY3R5cGVzLmJ5cmVmKGluZm8pLAor ICAgICAgICAgICAgY3R5cGVzLnNpemVvZihpbmZvKSwKKyAgICAgICAgICAgIGN0eXBlcy5ieXJl ZihpbmZvbGVuKSwKKyAgICAgICAgKQorCisgICAgIyAuLi50aGVuIHB1bGwgdGhlIGFjY291bnQg YW5kIGRvbWFpbiBuYW1lcyBvdXQgb2YgdGhlIHVzZXIgU0lELgorICAgIE1BWFBHUEFUSCA9IDEw MjQKKworICAgIGFjY291bnQgPSBjdHlwZXMuY3JlYXRlX3VuaWNvZGVfYnVmZmVyKE1BWFBHUEFU SCkKKyAgICBkb21haW4gPSBjdHlwZXMuY3JlYXRlX3VuaWNvZGVfYnVmZmVyKE1BWFBHUEFUSCkK KyAgICBhY2NvdW50bGVuID0gd2ludHlwZXMuRFdPUkQoY3R5cGVzLnNpemVvZihhY2NvdW50KSkK KyAgICBkb21haW5sZW4gPSB3aW50eXBlcy5EV09SRChjdHlwZXMuc2l6ZW9mKGRvbWFpbikpCisg ICAgdXNlID0gU0lEX05BTUVfVVNFKCkKKworICAgIGFkdmFwaTMyLkxvb2t1cEFjY291bnRTaWRX KAorICAgICAgICBOb25lLAorICAgICAgICBpbmZvLlVzZXIuU2lkLAorICAgICAgICBhY2NvdW50 LAorICAgICAgICBjdHlwZXMuYnlyZWYoYWNjb3VudGxlbiksCisgICAgICAgIGRvbWFpbiwKKyAg ICAgICAgY3R5cGVzLmJ5cmVmKGRvbWFpbmxlbiksCisgICAgICAgIGN0eXBlcy5ieXJlZih1c2Up LAorICAgICkKKworICAgIHJldHVybiAoYWNjb3VudC52YWx1ZSwgZG9tYWluLnZhbHVlKQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvZml4dHVyZXMucHkgYi9zcmMvdGVzdC9weXRl c3QvcHlwZy9maXh0dXJlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uOWNhYTViMjJiMjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvcHlwZy9m aXh0dXJlcy5weQpAQCAtMCwwICsxLDE5MSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBvcworaW1wb3J0IGNvbnRl eHRsaWIKK2ltcG9ydCBwYXRobGliCitpbXBvcnQgc2VjcmV0cworaW1wb3J0IHRpbWUKKworaW1w b3J0IHB5dGVzdAorCitmcm9tIC5fZW52IGltcG9ydCB0ZXN0X3RpbWVvdXRfZGVmYXVsdAorZnJv bSAudXRpbCBpbXBvcnQgY2FwdHVyZQorZnJvbSAuc2VydmVyIGltcG9ydCBQb3N0Z3Jlc1NlcnZl cgorCitmcm9tIGxpYnBxIGltcG9ydCBsb2FkX2xpYnBxX2hhbmRsZSwgY29ubmVjdCBhcyBsaWJw cV9jb25uZWN0CisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcmVtYWluaW5nX3RpbWVvdXQoKToK KyAgICAiIiIKKyAgICBUaGlzIGZpeHR1cmUgcHJvdmlkZXMgYSBmdW5jdGlvbiB0aGF0IHJldHVy bnMgaG93IG11Y2ggb2YgdGhlCisgICAgUEdfVEVTVF9USU1FT1VUX0RFRkFVTFQgcmVtYWlucyBm b3IgdGhlIGN1cnJlbnQgdGVzdCwgaW4gZnJhY3Rpb25hbCBzZWNvbmRzLgorICAgIFRoaXMgdmFs dWUgaXMgbmV2ZXIgbGVzcyB0aGFuIHplcm8uCisKKyAgICBUaGlzIGZpeHR1cmUgaXMgcGVyLXRl c3QsIHNvIHRoZSBkZWFkbGluZSBpcyBhbHNvIHJlc2V0IG9uIGEgcGVyLXRlc3QgYmFzaXMuCisg ICAgIiIiCisgICAgbm93ID0gdGltZS5tb25vdG9uaWMoKQorICAgIGRlYWRsaW5lID0gbm93ICsg dGVzdF90aW1lb3V0X2RlZmF1bHQoKQorCisgICAgcmV0dXJuIGxhbWJkYTogbWF4KGRlYWRsaW5l IC0gdGltZS5tb25vdG9uaWMoKSwgMCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Np b24iKQorZGVmIGxpYnBxX2hhbmRsZShsaWJkaXIsIGJpbmRpcik6CisgICAgIiIiCisgICAgTG9h ZHMgYSBjdHlwZXMgaGFuZGxlIGZvciBsaWJwcS4gU29tZSBjb21tb24gZnVuY3Rpb24gcHJvdG90 eXBlcyBhcmUKKyAgICBpbml0aWFsaXplZCBmb3IgZ2VuZXJhbCB1c2UuCisgICAgIiIiCisgICAg dHJ5OgorICAgICAgICByZXR1cm4gbG9hZF9saWJwcV9oYW5kbGUobGliZGlyLCBiaW5kaXIpCisg ICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAgaWYgIndyb25nIEVMRiBjbGFzcyIgaW4g c3RyKGUpOgorICAgICAgICAgICAgIyBUaGlzIGhhcHBlbnMgaW4gQ0kgd2hlbiB0cnlpbmcgdG8g bGVhZCBhIDMyLWJpdCBsaWJwcSBsaWJyYXJ5CisgICAgICAgICAgICAjIHdpdGggYSA2NC1iaXQg UHl0aG9uCisgICAgICAgICAgICBweXRlc3Quc2tpcCgibGlicHEgYXJjaGl0ZWN0dXJlIGRvZXMg bm90IG1hdGNoIFB5dGhvbiBpbnRlcnByZXRlciIpCisgICAgICAgIHJhaXNlCisKKworQHB5dGVz dC5maXh0dXJlCitkZWYgY29ubmVjdChsaWJwcV9oYW5kbGUsIHJlbWFpbmluZ190aW1lb3V0KToK KyAgICAiIiIKKyAgICBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gY29ubmVjdCB0byBQb3N0Z3JlU1FM IHZpYSBsaWJwcS4KKworICAgIFRoZSByZXR1cm5lZCBmdW5jdGlvbiBhY2NlcHRzIGNvbm5lY3Rp b24gb3B0aW9ucyBhcyBrZXl3b3JkIGFyZ3VtZW50cworICAgIChob3N0LCBwb3J0LCBkYm5hbWUs IGV0Yy4pIGFuZCByZXR1cm5zIGEgUEdjb25uIG9iamVjdC4gQ29ubmVjdGlvbnMKKyAgICBhcmUg YXV0b21hdGljYWxseSBjbGVhbmVkIHVwIGF0IHRoZSBlbmQgb2YgdGhlIHRlc3QuCisKKyAgICBF eGFtcGxlOgorICAgICAgICBjb25uID0gY29ubmVjdChob3N0PSdsb2NhbGhvc3QnLCBwb3J0PTU0 MzIsIGRibmFtZT0ncG9zdGdyZXMnKQorICAgICAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNU IDEiKQorICAgICIiIgorICAgIHdpdGggY29udGV4dGxpYi5FeGl0U3RhY2soKSBhcyBzdGFjazoK KworICAgICAgICBkZWYgX2Nvbm5lY3QoKipvcHRzKToKKyAgICAgICAgICAgIHJldHVybiBsaWJw cV9jb25uZWN0KGxpYnBxX2hhbmRsZSwgc3RhY2ssIHJlbWFpbmluZ190aW1lb3V0LCAqKm9wdHMp CisKKyAgICAgICAgeWllbGQgX2Nvbm5lY3QKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNl c3Npb24iKQorZGVmIHBnX2NvbmZpZygpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHBhdGgg dG8gcGdfY29uZmlnLiBVc2VzIFBHX0NPTkZJRyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpZiBzZXQs CisgICAgb3RoZXJ3aXNlIHVzZXMgJ3BnX2NvbmZpZycgZnJvbSBQQVRILgorICAgICIiIgorICAg IHJldHVybiBvcy5lbnZpcm9uLmdldCgiUEdfQ09ORklHIiwgInBnX2NvbmZpZyIpCisKKworQHB5 dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBiaW5kaXIocGdfY29uZmlnKToKKyAg ICAiIiIKKyAgICBSZXR1cm5zIHRoZSBQb3N0Z3JlU1FMIGJpbiBkaXJlY3RvcnkgdXNpbmcgcGdf Y29uZmlnIC0tYmluZGlyLgorICAgICIiIgorICAgIHJldHVybiBjYXB0dXJlKHBnX2NvbmZpZywg Ii0tYmluZGlyIikKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGxp YmRpcihwZ19jb25maWcpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIFBvc3RncmVTUUwgbGli IGRpcmVjdG9yeSB1c2luZyBwZ19jb25maWcgLS1saWJkaXIuCisgICAgIiIiCisgICAgcmV0dXJu IGNhcHR1cmUocGdfY29uZmlnLCAiLS1saWJkaXIiKQorCisKK0BweXRlc3QuZml4dHVyZShzY29w ZT0ic2Vzc2lvbiIpCitkZWYgdG1wX2NoZWNrKHRtcF9wYXRoX2ZhY3RvcnkpIC0+IHBhdGhsaWIu UGF0aDoKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSB0bXBfY2hlY2sgZGlyZWN0b3J5IHRoYXQg c2hvdWxkIGJlIHVzZWQgZm9yIHRoZSB0ZXN0cy4gSWYKKyAgICBURVNUREFUQURJUiBpcyBwcm92 aWRlZCwgdGhhdCB3aWxsIGJlIHVzZWQ7IG90aGVyd2lzZSBhIG5ldyB0ZW1wb3JhcnkKKyAgICBk aXJlY3RvcnkgaXMgY3JlYXRlZCBpbiB0aGUgcHl0ZXN0IHRlbXAgcm9vdC4KKyAgICAiIiIKKyAg ICBkID0gb3MuZ2V0ZW52KCJURVNUREFUQURJUiIpCisgICAgaWYgZDoKKyAgICAgICAgZCA9IHBh dGhsaWIuUGF0aChkKQorICAgIGVsc2U6CisgICAgICAgIGQgPSB0bXBfcGF0aF9mYWN0b3J5Lm1r dGVtcCgidG1wX2NoZWNrIikKKworICAgIHJldHVybiB0bXBfcGF0aF9mYWN0b3J5Lm1rdGVtcCgi Y2hlY2tfdG1wIikKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iKQorZGVmIGRh dGFkaXIodG1wX2NoZWNrKToKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSBkYXRhIGRpcmVjdG9y eSB0byB1c2UgZm9yIHRoZSBwZyBmaXh0dXJlLgorICAgICIiIgorCisgICAgcmV0dXJuIHRtcF9j aGVjayAvICJwZ2RhdGEiCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2Rl ZiBzb2NrZGlyKHRtcF9wYXRoX2ZhY3RvcnkpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIGRp cmVjdG9yeSBuYW1lIHRvIHVzZSBhcyB0aGUgc2VydmVyJ3MgdW5peF9zb2NrZXRfZGlyZWN0b3Jp ZXMKKyAgICBzZXR0aW5nLiBMb2NhbCBjbGllbnQgY29ubmVjdGlvbnMgdXNlIHRoaXMgYXMgdGhl IFBHSE9TVC4KKworICAgIEF0IHRoZSBtb21lbnQsIHRoaXMgaXMgYWx3YXlzIHB1dCB1bmRlciB0 aGUgcHl0ZXN0IHRlbXAgcm9vdC4KKyAgICAiIiIKKyAgICByZXR1cm4gdG1wX3BhdGhfZmFjdG9y eS5ta3RlbXAoInNvY2tmaWxlcyIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9u IikKK2RlZiB3aW5wYXNzd29yZCgpOgorICAgICIiIlRoZSBwZXItc2Vzc2lvbiBTQ1JBTSBwYXNz d29yZCBmb3IgdGhlIHNlcnZlciBhZG1pbiBvbiBXaW5kb3dzLiIiIgorICAgIHJldHVybiBzZWNy ZXRzLnRva2VuX3VybHNhZmUoMTYpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9u IikKK2RlZiBwZ19zZXJ2ZXJfZ2xvYmFsKGJpbmRpciwgZGF0YWRpciwgc29ja2Rpciwgd2lucGFz c3dvcmQsIGxpYnBxX2hhbmRsZSk6CisgICAgIiIiCisgICAgU3RhcnRzIGEgcnVubmluZyBQb3N0 Z3JlcyBzZXJ2ZXIgbGlzdGVuaW5nIG9uIGxvY2FsaG9zdC4gVGhlIEhCQSBpbml0aWFsbHkKKyAg ICBhbGxvd3Mgb25seSBsb2NhbCBVTklYIGNvbm5lY3Rpb25zIGZyb20gdGhlIHNhbWUgdXNlci4K KworICAgIFJldHVybnMgYSBQb3N0Z3Jlc1NlcnZlciBpbnN0YW5jZSB3aXRoIG1ldGhvZHMgZm9y IHNlcnZlciBtYW5hZ2VtZW50LCBjb25maWd1cmF0aW9uLAorICAgIGFuZCBjcmVhdGluZyB0ZXN0 IGRhdGFiYXNlcy91c2Vycy4KKyAgICAiIiIKKyAgICBzZXJ2ZXIgPSBQb3N0Z3Jlc1NlcnZlcihi aW5kaXIsIGRhdGFkaXIsIHNvY2tkaXIsIHdpbnBhc3N3b3JkLCBsaWJwcV9oYW5kbGUpCisKKyAg ICB5aWVsZCBzZXJ2ZXIKKworICAgICMgQ2xlYW51cCBhbnkgdGVzdCByZXNvdXJjZXMKKyAgICBz ZXJ2ZXIuY2xlYW51cCgpCisKKyAgICAjIFN0b3AgdGhlIHNlcnZlcgorICAgIHNlcnZlci5zdG9w KCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCitkZWYgcGdfc2VydmVyX21v ZHVsZShwZ19zZXJ2ZXJfZ2xvYmFsKToKKyAgICAiIiIKKyAgICBNb2R1bGUtc2NvcGVkIHNlcnZl ciBjb250ZXh0LiBXaGljaCBjYW4gYmUgdXNlZnVsIHNvIHRoYXQgY2VydGFpbiBzZXR0aW5ncwor ICAgIGNhbiBiZSBvdmVycmlkZW4gYXQgdGhlIG1vZHVsZSBsZXZlbCB0aHJvdWdoIGF1dG91c2Ug Zml4dHVyZXMuIEFuIGV4YW1wbGUKKyAgICBvZiB0aGlzIGlzIGluIHRoZSBTU0wgdGVzdHMuCisg ICAgIiIiCisgICAgd2l0aCBwZ19zZXJ2ZXJfZ2xvYmFsLnN1YmNvbnRleHQoKSBhcyBzOgorICAg ICAgICB5aWVsZCBzCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgcGcocGdfc2VydmVyX21vZHVs ZSwgcmVtYWluaW5nX3RpbWVvdXQpOgorICAgICIiIgorICAgIFBlci10ZXN0IHNlcnZlciBjb250 ZXh0LiBVc2UgdGhpcyBmaXh0dXJlIHRvIG1ha2UgY2hhbmdlcyB0byB0aGUgc2VydmVyCisgICAg d2hpY2ggd2lsbCBiZSByb2xsZWQgYmFjayBhdCB0aGUgZW5kIG9mIHRoZSB0ZXN0IChlLmcuLCBj cmVhdGluZyB0ZXN0CisgICAgdXNlcnMvZGF0YWJhc2VzKS4KKyAgICAiIiIKKyAgICBwZ19zZXJ2 ZXJfbW9kdWxlLnNldF90aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0KQorICAgIHdpdGggcGdfc2Vy dmVyX21vZHVsZS5zdWJjb250ZXh0KCkgYXMgczoKKyAgICAgICAgeWllbGQgcworCisKK0BweXRl c3QuZml4dHVyZQorZGVmIGNvbm4ocGcpOgorICAgICIiIgorICAgIFJldHVybnMgYSBjb25uZWN0 ZWQgUEdjb25uIGluc3RhbmNlIHRvIHRoZSB0ZXN0IFBvc3RncmVTUUwgc2VydmVyLgorICAgIFRo ZSBjb25uZWN0aW9uIGlzIGF1dG9tYXRpY2FsbHkgY2xlYW5lZCB1cCBhdCB0aGUgZW5kIG9mIHRo ZSB0ZXN0LgorCisgICAgRXhhbXBsZToKKyAgICAgICAgZGVmIHRlc3Rfc29tZXRoaW5nKGNvbm4p OgorICAgICAgICAgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAxIikKKyAgICAgICAgICAg IGFzc2VydCByZXN1bHQgPT0gMQorICAgICIiIgorICAgIHJldHVybiBwZy5jb25uZWN0KCkKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXBnL3NlcnZlci5weSBiL3NyYy90ZXN0L3B5dGVz dC9weXBnL3NlcnZlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u ZGQyYWE0ZmM0MzQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvcHlwZy9zZXJ2 ZXIucHkKQEAgLTAsMCArMSwzOTEgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQgY29udGV4dGxpYgoraW1wb3J0IGds b2IKK2ltcG9ydCBvcworaW1wb3J0IHBhdGhsaWIKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHNv Y2tldAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHRpbWUKK2Zy b20gY29sbGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUKK2Zyb20gdHlwaW5nIGltcG9ydCBDYWxs YWJsZSwgT3B0aW9uYWwKKworZnJvbSAudXRpbCBpbXBvcnQgcnVuCitmcm9tIGxpYnBxIGltcG9y dCBQR2Nvbm4KKworCitjbGFzcyBGaWxlQmFja3VwKGNvbnRleHRsaWIuQWJzdHJhY3RDb250ZXh0 TWFuYWdlcik6CisgICAgIiIiCisgICAgQSBjb250ZXh0IG1hbmFnZXIgd2hpY2ggYmFja3MgdXAg YSBmaWxlJ3MgY29udGVudHMsIHJlc3RvcmluZyB0aGVtIG9uIGV4aXQuCisgICAgIiIiCisKKyAg ICBkZWYgX19pbml0X18oc2VsZiwgZmlsZTogcGF0aGxpYi5QYXRoKToKKyAgICAgICAgc3VwZXIo KS5fX2luaXRfXygpCisKKyAgICAgICAgc2VsZi5fZmlsZSA9IGZpbGUKKworICAgIGRlZiBfX2Vu dGVyX18oc2VsZik6CisgICAgICAgIGltcG9ydCBzaHV0aWwKKworICAgICAgICB3aXRoIHRlbXBm aWxlLk5hbWVkVGVtcG9yYXJ5RmlsZSgKKyAgICAgICAgICAgIHByZWZpeD1zZWxmLl9maWxlLm5h bWUsIGRpcj1zZWxmLl9maWxlLnBhcmVudCwgZGVsZXRlPUZhbHNlCisgICAgICAgICkgYXMgZjoK KyAgICAgICAgICAgIHNlbGYuX2JhY2t1cCA9IHBhdGhsaWIuUGF0aChmLm5hbWUpCisKKyAgICAg ICAgc2h1dGlsLmNvcHlmaWxlKHNlbGYuX2ZpbGUsIHNlbGYuX2JhY2t1cCkKKworICAgICAgICBy ZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICpleGMpOgorICAgICAgICBpbXBv cnQgc2h1dGlsCisKKyAgICAgICAgIyBTd2FwIHRoZSBiYWNrdXAgYW5kIHRoZSBvcmlnaW5hbCBm aWxlLCBzbyB0aGF0IHRoZSBtb2RpZmllZCBjb250ZW50cworICAgICAgICAjIGNhbiBzdGlsbCBi ZSBpbnNwZWN0ZWQgaW4gY2FzZSBvZiBmYWlsdXJlLgorICAgICAgICB0bXAgPSBzZWxmLl9iYWNr dXAucGFyZW50IC8gKHNlbGYuX2JhY2t1cC5uYW1lICsgIi50bXAiKQorCisgICAgICAgIHNodXRp bC5jb3B5ZmlsZShzZWxmLl9maWxlLCB0bXApCisgICAgICAgIHNodXRpbC5jb3B5ZmlsZShzZWxm Ll9iYWNrdXAsIHNlbGYuX2ZpbGUpCisgICAgICAgIHNodXRpbC5tb3ZlKHRtcCwgc2VsZi5fYmFj a3VwKQorCisKK2NsYXNzIEhCQShGaWxlQmFja3VwKToKKyAgICAiIiIKKyAgICBCYWNrcyB1cCBh IHNlcnZlcidzIEhCQSBjb25maWd1cmF0aW9uIGFuZCBwcm92aWRlcyBtZWFucyBmb3IgdGVtcG9y YXJpbHkKKyAgICBlZGl0aW5nIGl0LgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs IGRhdGFkaXI6IHBhdGhsaWIuUGF0aCk6CisgICAgICAgIHN1cGVyKCkuX19pbml0X18oZGF0YWRp ciAvICJwZ19oYmEuY29uZiIpCisKKyAgICBkZWYgcHJlcGVuZChzZWxmLCAqbGluZXMpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGVtcG9yYXJpbHkgcHJlcGVuZHMgbGluZXMgdG8gdGhlIHNlcnZl cidzIHBnX2hiYS5jb25mLgorCisgICAgICAgIEFzIHN1Z2FyIGZvciBhbGlnbmluZyBIQkEgY29s dW1ucyBpbiB0aGUgdGVzdHMsIGVhY2ggbGluZSBjYW4gYmUgZWl0aGVyCisgICAgICAgIGEgc3Ry aW5nIG9yIGEgbGlzdCBvZiBzdHJpbmdzLiBMaXN0IGVsZW1lbnRzIHdpbGwgYmUgam9pbmVkIGJ5 IHNpbmdsZQorICAgICAgICBzcGFjZXMgYmVmb3JlIHRoZXkgYXJlIHdyaXR0ZW4gdG8gZmlsZS4K KyAgICAgICAgIiIiCisgICAgICAgIHdpdGggb3BlbihzZWxmLl9maWxlLCAiciIpIGFzIGY6Cisg ICAgICAgICAgICBwcmlvcl9kYXRhID0gZi5yZWFkKCkKKworICAgICAgICB3aXRoIG9wZW4oc2Vs Zi5fZmlsZSwgInciKSBhcyBmOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6CisgICAg ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lLCBsaXN0KToKKyAgICAgICAgICAgICAgICAg ICAgcHJpbnQoKmxpbmUsIGZpbGU9ZikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAg ICAgICAgICAgICBwcmludChsaW5lLCBmaWxlPWYpCisKKyAgICAgICAgICAgIGYud3JpdGUocHJp b3JfZGF0YSkKKworCitjbGFzcyBDb25maWcoRmlsZUJhY2t1cCk6CisgICAgIiIiCisgICAgQmFj a3MgdXAgYSBzZXJ2ZXIncyBwb3N0Z3Jlc3FsLmNvbmYgYW5kIHByb3ZpZGVzIG1lYW5zIGZvciB0 ZW1wb3JhcmlseQorICAgIGVkaXRpbmcgaXQuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18o c2VsZiwgZGF0YWRpcjogcGF0aGxpYi5QYXRoKToKKyAgICAgICAgc3VwZXIoKS5fX2luaXRfXyhk YXRhZGlyIC8gInBvc3RncmVzcWwuY29uZiIpCisKKyAgICBkZWYgc2V0KHNlbGYsICoqZ3Vjcyk6 CisgICAgICAgICIiIgorICAgICAgICBUZW1wb3JhcmlseSBhcHBlbmRzIEdVQyBzZXR0aW5ncyB0 byB0aGUgc2VydmVyJ3MgcG9zdGdyZXNxbC5jb25mLgorICAgICAgICAiIiIKKworICAgICAgICB3 aXRoIG9wZW4oc2VsZi5fZmlsZSwgImEiKSBhcyBmOgorICAgICAgICAgICAgcHJpbnQoZmlsZT1m KQorCisgICAgICAgICAgICBmb3IgbiwgdiBpbiBndWNzLml0ZW1zKCk6CisgICAgICAgICAgICAg ICAgdiA9IHN0cih2KQorCisgICAgICAgICAgICAgICAgIyBUT0RPOiBwcm9wZXIgcXVvdGluZwor ICAgICAgICAgICAgICAgIHYgPSB2LnJlcGxhY2UoIlxcIiwgIlxcXFwiKQorICAgICAgICAgICAg ICAgIHYgPSB2LnJlcGxhY2UoIiciLCAiXFwnIikKKyAgICAgICAgICAgICAgICB2ID0gIid7fSci LmZvcm1hdCh2KQorCisgICAgICAgICAgICAgICAgcHJpbnQobiwgIj0iLCB2LCBmaWxlPWYpCisK KworQmFja3VwID0gbmFtZWR0dXBsZSgiQmFja3VwIiwgImNvbmYsIGhiYSIpCisKKworY2xhc3Mg UG9zdGdyZXNTZXJ2ZXI6CisgICAgIiIiCisgICAgUmVwcmVzZW50cyBhIHJ1bm5pbmcgUG9zdGdy ZVNRTCBzZXJ2ZXIgaW5zdGFuY2Ugd2l0aCBtYW5hZ2VtZW50IHV0aWxpdGllcy4KKyAgICBQcm92 aWRlcyBtZXRob2RzIGZvciBjb25maWd1cmF0aW9uLCB1c2VyL2RhdGFiYXNlIGNyZWF0aW9uLCBh bmQgc2VydmVyIGNvbnRyb2wuCisgICAgIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYmlu ZGlyLCBkYXRhZGlyLCBzb2NrZGlyLCB3aW5wYXNzd29yZCwgbGlicHFfaGFuZGxlKToKKyAgICAg ICAgIiIiCisgICAgICAgIEluaXRpYWxpemUgYW5kIHN0YXJ0IGEgUG9zdGdyZVNRTCBzZXJ2ZXIg aW5zdGFuY2UuCisgICAgICAgICIiIgorICAgICAgICBzZWxmLmRhdGFkaXIgPSBkYXRhZGlyCisg ICAgICAgIHNlbGYuc29ja2RpciA9IHNvY2tkaXIKKyAgICAgICAgc2VsZi5saWJwcV9oYW5kbGUg PSBsaWJwcV9oYW5kbGUKKyAgICAgICAgc2VsZi5fcmVtYWluaW5nX3RpbWVvdXRfZm46IE9wdGlv bmFsW0NhbGxhYmxlW1tdLCBmbG9hdF1dID0gTm9uZQorICAgICAgICBzZWxmLl9iaW5kaXIgPSBi aW5kaXIKKyAgICAgICAgc2VsZi5fd2lucGFzc3dvcmQgPSB3aW5wYXNzd29yZAorICAgICAgICBz ZWxmLl9wZ19jdGwgPSBvcy5wYXRoLmpvaW4oYmluZGlyLCAicGdfY3RsIikKKyAgICAgICAgc2Vs Zi5fbG9nID0gb3MucGF0aC5qb2luKGRhdGFkaXIsICJwb3N0Z3Jlc3FsLmxvZyIpCisKKyAgICAg ICAgaW5pdGRiID0gb3MucGF0aC5qb2luKGJpbmRpciwgImluaXRkYiIpCisgICAgICAgIHBnX2N0 bCA9IHNlbGYuX3BnX2N0bAorCisgICAgICAgICMgTG9jayBkb3duIHRoZSBIQkEgYnkgZGVmYXVs dDsgdGVzdHMgY2FuIG9wZW4gaXQgYmFjayB1cCBsYXRlci4KKyAgICAgICAgaWYgcGxhdGZvcm0u c3lzdGVtKCkgPT0gIldpbmRvd3MiOgorICAgICAgICAgICAgIyBPbiBXaW5kb3dzLCBmb3IgYWRt aW4gY29ubmVjdGlvbnMsIHVzZSBTQ1JBTSB3aXRoIGEgZ2VuZXJhdGVkIHBhc3N3b3JkCisgICAg ICAgICAgICAjIG92ZXIgbG9jYWwgc29ja2V0cy4gVGhpcyByZXF1aXJlcyBhZGRpdGlvbmFsIHdv cmsgZHVyaW5nIGluaXRkYi4KKyAgICAgICAgICAgIG1ldGhvZCA9ICJzY3JhbS1zaGEtMjU2Igor CisgICAgICAgICAgICAjIE5hbWVkVGVtcG9yYXJ5RmlsZSBkb2Vzbid0IHdvcmsgdmVyeSBuaWNl bHkgb24gV2luZG93cyB1bnRpbCBQeXRob24KKyAgICAgICAgICAgICMgMy4xMiwgd2hpY2ggaW50 cm9kdWNlcyBOYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlX29uX2Nsb3NlPUZhbHNlKS4KKyAgICAg ICAgICAgICMgVW50aWwgdGhlbiwgc3BlY2lmeSBkZWxldGU9RmFsc2UgYW5kIG1hbnVhbGx5IHVu bGluayBhZnRlciB1c2UuCisgICAgICAgICAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5 RmlsZSgidyIsIGRlbGV0ZT1GYWxzZSkgYXMgcHdmaWxlOgorICAgICAgICAgICAgICAgIHB3Zmls ZS53cml0ZSh3aW5wYXNzd29yZCkKKworICAgICAgICAgICAgcnVuKGluaXRkYiwgIi0tYXV0aD1z Y3JhbS1zaGEtMjU2IiwgIi0tcHdmaWxlIiwgcHdmaWxlLm5hbWUsIGRhdGFkaXIpCisgICAgICAg ICAgICBvcy51bmxpbmsocHdmaWxlLm5hbWUpCisKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICMgRm9yIG90aGVyIE9TZXMgd2UgY2FuIGp1c3QgdXNlIHBlZXIgYXV0aC4KKyAgICAgICAgICAg IG1ldGhvZCA9ICJwZWVyIgorICAgICAgICAgICAgcnVuKHBnX2N0bCwgIi1EIiwgZGF0YWRpciwg ImluaXQiKQorCisgICAgICAgIHdpdGggb3BlbihkYXRhZGlyIC8gInBnX2hiYS5jb25mIiwgInci KSBhcyBmOgorICAgICAgICAgICAgcHJpbnQoZiIjIGRlZmF1bHQ6IGxvY2FsIHttZXRob2R9IGNv bm5lY3Rpb25zIG9ubHkiLCBmaWxlPWYpCisgICAgICAgICAgICBwcmludChmImxvY2FsIGFsbCBh bGwge21ldGhvZH0iLCBmaWxlPWYpCisKKyAgICAgICAgIyBGaWd1cmUgb3V0IGEgcG9ydCB0byBs aXN0ZW4gb24uIEF0dGVtcHQgdG8gcmVzZXJ2ZSBib3RoIElQdjQgYW5kIElQdjYKKyAgICAgICAg IyBhZGRyZXNzZXMgaW4gb25lIGdvLgorICAgICAgICAjCisgICAgICAgICMgTm90ZTogc29ja2V0 Lmhhc19kdWFsc3RhY2tfaXB2Ni9jcmVhdGVfc2VydmVyIGFyZSBvbmx5IGluIFB5dGhvbiAzLjgr LgorICAgICAgICBpZiBoYXNhdHRyKHNvY2tldCwgImhhc19kdWFsc3RhY2tfaXB2NiIpIGFuZCBz b2NrZXQuaGFzX2R1YWxzdGFja19pcHY2KCk6CisgICAgICAgICAgICBhZGRyID0gKCI6OjEiLCAw KQorICAgICAgICAgICAgcyA9IHNvY2tldC5jcmVhdGVfc2VydmVyKGFkZHIsIGZhbWlseT1zb2Nr ZXQuQUZfSU5FVDYsIGR1YWxzdGFja19pcHY2PVRydWUpCisKKyAgICAgICAgICAgIGhvc3RhZGRy LCBwb3J0LCBfLCBfID0gcy5nZXRzb2NrbmFtZSgpCisgICAgICAgICAgICBhZGRycyA9IFtob3N0 YWRkciwgIjEyNy4wLjAuMSJdCisKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFkZHIgPSAo IjEyNy4wLjAuMSIsIDApCisKKyAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKKyAgICAg ICAgICAgIHMuYmluZChhZGRyKQorCisgICAgICAgICAgICBob3N0YWRkciwgcG9ydCA9IHMuZ2V0 c29ja25hbWUoKQorICAgICAgICAgICAgYWRkcnMgPSBbaG9zdGFkZHJdCisKKyAgICAgICAgbG9n ID0gc2VsZi5fbG9nCisKKyAgICAgICAgd2l0aCBzLCBvcGVuKG9zLnBhdGguam9pbihkYXRhZGly LCAicG9zdGdyZXNxbC5jb25mIiksICJhIikgYXMgZjoKKyAgICAgICAgICAgIHByaW50KGZpbGU9 ZikKKyAgICAgICAgICAgIHByaW50KCJ1bml4X3NvY2tldF9kaXJlY3RvcmllcyA9ICd7fSciLmZv cm1hdChzb2NrZGlyLmFzX3Bvc2l4KCkpLCBmaWxlPWYpCisgICAgICAgICAgICBwcmludCgibGlz dGVuX2FkZHJlc3NlcyA9ICd7fSciLmZvcm1hdCgiLCIuam9pbihhZGRycykpLCBmaWxlPWYpCisg ICAgICAgICAgICBwcmludCgicG9ydCA9IiwgcG9ydCwgZmlsZT1mKQorICAgICAgICAgICAgcHJp bnQoImxvZ19jb25uZWN0aW9ucyA9IGFsbCIsIGZpbGU9ZikKKworICAgICAgICAjIEJldHdlZW4g Y2xvc2luZyBvZiB0aGUgc29ja2V0LCBzLCBhbmQgc2VydmVyIHN0YXJ0LCB3ZSdyZSByYWNpbmcg YWdhaW5zdAorICAgICAgICAjIGFueXRoaW5nIHRoYXQgd2FudHMgdG8gb3BlbiB1cCBlcGhlbWVy YWwgcG9ydHMsIHNvIHRyeSBub3QgdG8gcHV0IGFueSBuZXcKKyAgICAgICAgIyB3b3JrIGhlcmUu CisKKyAgICAgICAgcnVuKHBnX2N0bCwgIi1EIiwgZGF0YWRpciwgIi1sIiwgbG9nLCAic3RhcnQi KQorCisgICAgICAgICMgUmVhZCB0aGUgUElEIGZpbGUgdG8gZ2V0IHRoZSBwb3N0bWFzdGVyIFBJ RAorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRhdGFkaXIsICJwb3N0bWFzdGVyLnBp ZCIpKSBhcyBmOgorICAgICAgICAgICAgcGlkID0gaW50KGYucmVhZGxpbmUoKS5zdHJpcCgpKQor CisgICAgICAgICMgU3RvcmUgdGhlIGNvbXB1dGVkIHZhbHVlcworICAgICAgICBzZWxmLmhvc3Rh ZGRyID0gaG9zdGFkZHIKKyAgICAgICAgc2VsZi5wb3J0ID0gcG9ydAorICAgICAgICBzZWxmLnBp ZCA9IHBpZAorCisgICAgICAgICMgRXhpdFN0YWNrIGZvciBjbGVhbnVwIGNhbGxiYWNrcworICAg ICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrID0gY29udGV4dGxpYi5FeGl0U3RhY2soKQorCisgICAg ZGVmIHBzcWwoc2VsZiwgKmFyZ3MpOgorICAgICAgICAiIiJSdW4gcHNxbCB3aXRoIHRoZSBnaXZl biBhcmd1bWVudHMuIiIiCisgICAgICAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICJXaW5kb3dz IjoKKyAgICAgICAgICAgIHB3ID0gZGljdChQR1BBU1NXT1JEPXNlbGYuX3dpbnBhc3N3b3JkKQor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHcgPSBOb25lCisgICAgICAgIHNlbGYuX3J1bihv cy5wYXRoLmpvaW4oc2VsZi5fYmluZGlyLCAicHNxbCIpLCAiLXciLCAqYXJncywgYWRkZW52PXB3 KQorCisgICAgZGVmIHBnX2N0bChzZWxmLCAqYXJncyk6CisgICAgICAgICIiIlJ1biBwZ19jdGwg d2l0aCB0aGUgZ2l2ZW4gYXJndW1lbnRzLiIiIgorICAgICAgICBzZWxmLl9ydW4oc2VsZi5fcGdf Y3RsLCAiLWwiLCBzZWxmLl9sb2csICphcmdzKQorCisgICAgZGVmIF9ydW4oc2VsZiwgY21kLCAq YXJncywgYWRkZW52OiBPcHRpb25hbFtkaWN0XSA9IE5vbmUpOgorICAgICAgICAiIiJSdW4gYSBj b21tYW5kIHdpdGggUEcqIGVudmlyb25tZW50IHZhcmlhYmxlcyBzZXQuIiIiCisgICAgICAgIHN1 YmVudiA9IGRpY3Qob3MuZW52aXJvbikKKyAgICAgICAgc3ViZW52LnVwZGF0ZSgKKyAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAiUEdIT1NUIjogc3RyKHNlbGYuc29ja2RpciksCisgICAg ICAgICAgICAgICAgIlBHUE9SVCI6IHN0cihzZWxmLnBvcnQpLAorICAgICAgICAgICAgICAgICJQ R0RBVEFCQVNFIjogInBvc3RncmVzIiwKKyAgICAgICAgICAgICAgICAiUEdEQVRBIjogc3RyKHNl bGYuZGF0YWRpciksCisgICAgICAgICAgICB9CisgICAgICAgICkKKyAgICAgICAgaWYgYWRkZW52 OgorICAgICAgICAgICAgc3ViZW52LnVwZGF0ZShhZGRlbnYpCisgICAgICAgIHJ1bihjbWQsICph cmdzLCBlbnY9c3ViZW52KQorCisgICAgZGVmIGNyZWF0ZV91c2VycyhzZWxmLCAqdXNlcmtleXM6 IHN0cik6CisgICAgICAgICIiIkNyZWF0ZSB0ZXN0IHVzZXJzIGFuZCByZWdpc3RlciB0aGVtIGZv ciBjbGVhbnVwLiIiIgorICAgICAgICB1c2VybWFwID0ge30KKyAgICAgICAgZm9yIHUgaW4gdXNl cmtleXM6CisgICAgICAgICAgICBuYW1lID0gdSArICJ1c2VyIgorICAgICAgICAgICAgdXNlcm1h cFt1XSA9IG5hbWUKKyAgICAgICAgICAgIHNlbGYucHNxbCgiLWMiLCAiQ1JFQVRFIFVTRVIgIiAr IG5hbWUpCisgICAgICAgICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrLmNhbGxiYWNrKHNlbGYucHNx bCwgIi1jIiwgIkRST1AgVVNFUiAiICsgbmFtZSkKKyAgICAgICAgcmV0dXJuIHVzZXJtYXAKKwor ICAgIGRlZiBjcmVhdGVfZGJzKHNlbGYsICpkYmtleXM6IHN0cik6CisgICAgICAgICIiIkNyZWF0 ZSB0ZXN0IGRhdGFiYXNlcyBhbmQgcmVnaXN0ZXIgdGhlbSBmb3IgY2xlYW51cC4iIiIKKyAgICAg ICAgZGJtYXAgPSB7fQorICAgICAgICBmb3IgZCBpbiBkYmtleXM6CisgICAgICAgICAgICBuYW1l ID0gZCArICJkYiIKKyAgICAgICAgICAgIGRibWFwW2RdID0gbmFtZQorICAgICAgICAgICAgc2Vs Zi5wc3FsKCItYyIsICJDUkVBVEUgREFUQUJBU0UgIiArIG5hbWUpCisgICAgICAgICAgICBzZWxm Ll9jbGVhbnVwX3N0YWNrLmNhbGxiYWNrKHNlbGYucHNxbCwgIi1jIiwgIkRST1AgREFUQUJBU0Ug IiArIG5hbWUpCisgICAgICAgIHJldHVybiBkYm1hcAorCisgICAgQGNvbnRleHRsaWIuY29udGV4 dG1hbmFnZXIKKyAgICBkZWYgcmVsb2FkaW5nKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg UHJvdmlkZXMgYSBjb250ZXh0IG1hbmFnZXIgZm9yIG1ha2luZyBjb25maWd1cmF0aW9uIGNoYW5n ZXMuCisKKyAgICAgICAgSWYgdGhlIGNvbnRleHQgc3VpdGUgZmluaXNoZXMgc3VjY2Vzc2Z1bGx5 LCB0aGUgY29uZmlndXJhdGlvbiB3aWxsCisgICAgICAgIGJlIHJlbG9hZGVkIHZpYSBwZ19jdGwu IE9uIHRlYXJkb3duLCB0aGUgY29uZmlndXJhdGlvbiBjaGFuZ2VzIHdpbGwKKyAgICAgICAgYmUg dW53b3VuZCwgYW5kIHRoZSBzZXJ2ZXIgd2lsbCBiZSBzaWduYWxlZCB0byByZWxvYWQgYWdhaW4u CisKKyAgICAgICAgVGhlIGNvbnRleHQgdGFyZ2V0IGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgYXR0 cmlidXRlcyB3aGljaCBjYW4gYmUKKyAgICAgICAgdXNlZCB0byBjb25maWd1cmUgdGhlIHNlcnZl cjoKKyAgICAgICAgLSAuY29uZjogbW9kaWZpZXMgcG9zdGdyZXNxbC5jb25mCisgICAgICAgIC0g LmhiYTogbW9kaWZpZXMgcGdfaGJhLmNvbmYKKworICAgICAgICBGb3IgZXhhbXBsZToKKworICAg ICAgICAgICAgd2l0aCBwZ19zZXJ2ZXJfc2Vzc2lvbi5yZWxvYWRpbmcoKSBhcyBzOgorICAgICAg ICAgICAgICAgIHMuY29uZi5zZXQobG9nX2Nvbm5lY3Rpb25zPSJvbiIpCisgICAgICAgICAgICAg ICAgcy5oYmEucHJlcGVuZCgibG9jYWwgYWxsIGFsbCB0cnVzdCIpCisgICAgICAgICIiIgorICAg ICAgICAjIFB1c2ggYSByZWxvYWQgb250byB0aGUgc3RhY2sgYmVmb3JlIG1ha2luZyBhbnkgb3Ro ZXIKKyAgICAgICAgIyB1bndpbmRhYmxlIGNoYW5nZXMuIFRoYXQgd2F5IHRoZSBvcmRlciBvZiBv cGVyYXRpb25zIHdpbGwgYmUKKyAgICAgICAgIworICAgICAgICAjICAjIHRlc3QKKyAgICAgICAg IyAgIC0gY29uZmlnIGNoYW5nZSAxCisgICAgICAgICMgICAtIGNvbmZpZyBjaGFuZ2UgMgorICAg ICAgICAjICAgLSByZWxvYWQKKyAgICAgICAgIyAgIyB0ZWFyZG93bgorICAgICAgICAjICAgLSB1 bmRvIGNvbmZpZyBjaGFuZ2UgMgorICAgICAgICAjICAgLSB1bmRvIGNvbmZpZyBjaGFuZ2UgMQor ICAgICAgICAjICAgLSByZWxvYWQKKyAgICAgICAgIworICAgICAgICBzZWxmLl9jbGVhbnVwX3N0 YWNrLmNhbGxiYWNrKHNlbGYucGdfY3RsLCAicmVsb2FkIikKKyAgICAgICAgeWllbGQgc2VsZi5f YmFja3VwX2NvbmZpZ3VyYXRpb24oKQorCisgICAgICAgICMgTm93IGFjdHVhbGx5IHJlbG9hZAor ICAgICAgICBzZWxmLnBnX2N0bCgicmVsb2FkIikKKworICAgIEBjb250ZXh0bGliLmNvbnRleHRt YW5hZ2VyCisgICAgZGVmIHJlc3RhcnRpbmcoc2VsZik6CisgICAgICAgICIiIkxpa2UgLnJlbG9h ZGluZygpLCBidXQgd2l0aCBhIGZ1bGwgc2VydmVyIHJlc3RhcnQuIiIiCisgICAgICAgIHNlbGYu X2NsZWFudXBfc3RhY2suY2FsbGJhY2soc2VsZi5wZ19jdGwsICJyZXN0YXJ0IikKKyAgICAgICAg eWllbGQgc2VsZi5fYmFja3VwX2NvbmZpZ3VyYXRpb24oKQorICAgICAgICBzZWxmLnBnX2N0bCgi cmVzdGFydCIpCisKKyAgICBkZWYgX2JhY2t1cF9jb25maWd1cmF0aW9uKHNlbGYpOgorICAgICAg ICAjIFdyYXAgdGhlIGV4aXN0aW5nIEhCQSBhbmQgY29uZmlndXJhdGlvbiB3aXRoIEZpbGVCYWNr dXBzLgorICAgICAgICByZXR1cm4gQmFja3VwKAorICAgICAgICAgICAgaGJhPXNlbGYuX2NsZWFu dXBfc3RhY2suZW50ZXJfY29udGV4dChIQkEoc2VsZi5kYXRhZGlyKSksCisgICAgICAgICAgICBj b25mPXNlbGYuX2NsZWFudXBfc3RhY2suZW50ZXJfY29udGV4dChDb25maWcoc2VsZi5kYXRhZGly KSksCisgICAgICAgICkKKworICAgIEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVm IHN1YmNvbnRleHQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgYSBuZXcgY2xl YW51cCBjb250ZXh0IGZvciBwZXItdGVzdCBpc29sYXRpb24uCisKKyAgICAgICAgVGVtcG9yYXJp bHkgcmVwbGFjZXMgdGhlIGNsZWFudXAgc3RhY2sgc28gdGhhdCBhbnkgY2xlYW51cCBjYWxsYmFj a3MKKyAgICAgICAgcmVnaXN0ZXJlZCB3aXRoaW4gdGhpcyBjb250ZXh0IHdpbGwgYmUgY2xlYW5l ZCB1cCB3aGVuIHRoZSBjb250ZXh0IGV4aXRzLgorICAgICAgICAiIiIKKyAgICAgICAgb2xkX3N0 YWNrID0gc2VsZi5fY2xlYW51cF9zdGFjaworICAgICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrID0g Y29udGV4dGxpYi5FeGl0U3RhY2soKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLl9j bGVhbnVwX3N0YWNrLl9fZW50ZXJfXygpCisgICAgICAgICAgICB5aWVsZCBzZWxmCisgICAgICAg IGZpbmFsbHk6CisgICAgICAgICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrLl9fZXhpdF9fKE5vbmUs IE5vbmUsIE5vbmUpCisgICAgICAgICAgICBzZWxmLl9jbGVhbnVwX3N0YWNrID0gb2xkX3N0YWNr CisKKyAgICBkZWYgc3RvcChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFN0b3AgdGhlIFBv c3RncmVTUUwgc2VydmVyIGluc3RhbmNlLgorCisgICAgICAgIElnbm9yZXMgZmFpbHVyZXMgaWYg dGhlIHNlcnZlciBpcyBhbHJlYWR5IHN0b3BwZWQuCisgICAgICAgICIiIgorICAgICAgICB0cnk6 CisgICAgICAgICAgICBydW4oc2VsZi5fcGdfY3RsLCAiLUQiLCBzZWxmLmRhdGFkaXIsICItbCIs IHNlbGYuX2xvZywgInN0b3AiKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9j ZXNzRXJyb3I6CisgICAgICAgICAgICAjIFNlcnZlciBtYXkgaGF2ZSBhbHJlYWR5IGJlZW4gc3Rv cHBlZAorICAgICAgICAgICAgcGFzcworCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAgICAg ICIiIlJ1biBhbGwgcmVnaXN0ZXJlZCBjbGVhbnVwIGNhbGxiYWNrcy4iIiIKKyAgICAgICAgc2Vs Zi5fY2xlYW51cF9zdGFjay5jbG9zZSgpCisKKyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZiwgcmVt YWluaW5nX3RpbWVvdXRfZm46IENhbGxhYmxlW1tdLCBmbG9hdF0pIC0+IE5vbmU6CisgICAgICAg ICIiIgorICAgICAgICBTZXQgdGhlIHRpbWVvdXQgZnVuY3Rpb24gZm9yIGNvbm5lY3Rpb25zLgor ICAgICAgICBUaGlzIGlzIHR5cGljYWxseSBjYWxsZWQgYnkgcGcgZml4dHVyZSBmb3IgZWFjaCB0 ZXN0LgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5fcmVtYWluaW5nX3RpbWVvdXRfZm4gPSBy ZW1haW5pbmdfdGltZW91dF9mbgorCisgICAgZGVmIGNvbm5lY3Qoc2VsZiwgKipvcHRzKSAtPiBQ R2Nvbm46CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGVzIGEgY29ubmVjdGlvbiB0byB0aGlz IFBvc3RncmVTUUwgc2VydmVyIGluc3RhbmNlLgorCisgICAgICAgIFRoaXMgaXMgYSBjb252ZW5p ZW5jZSBtZXRob2QgdGhhdCBhdXRvbWF0aWNhbGx5IGZpbGxzIGluIHRoZSBob3N0LCBwb3J0LAor ICAgICAgICBhbmQgZGJuYW1lIChkZWZhdWx0aW5nIHRvICdwb3N0Z3JlcycpIGZvciBjb25uZWN0 aW5nIHRvIHRoaXMgc2VydmVyLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBzdGFjazog RXhpdFN0YWNrIGZvciBtYW5hZ2luZyBjb25uZWN0aW9uIGNsZWFudXAgKHVzZXMgaW50ZXJuYWwg c3RhY2sgaWYgbm90IHByb3ZpZGVkKQorICAgICAgICAgICAgcmVtYWluaW5nX3RpbWVvdXRfZm46 IEZ1bmN0aW9uIHRoYXQgcmV0dXJucyByZW1haW5pbmcgdGltZW91dCAodXNlcyBzdG9yZWQgdGlt ZW91dCBpZiBub3QgcHJvdmlkZWQpCisgICAgICAgICAgICAqKm9wdHM6IEFkZGl0aW9uYWwgY29u bmVjdGlvbiBvcHRpb25zIChjYW4gb3ZlcnJpZGUgZGVmYXVsdHMpCisKKyAgICAgICAgUmV0dXJu czoKKyAgICAgICAgICAgIFBHY29ubjogQ29ubmVjdGVkIGRhdGFiYXNlIGNvbm5lY3Rpb24KKwor ICAgICAgICBFeGFtcGxlOgorICAgICAgICAgICAgY29ubiA9IHBnLmNvbm5lY3QoKQorICAgICAg ICAgICAgY29ubiA9IHBnLmNvbm5lY3QoZGJuYW1lPSdteWRiJykKKyAgICAgICAgIiIiCisgICAg ICAgIGZyb20gbGlicHEgaW1wb3J0IGNvbm5lY3QgYXMgbGlicHFfY29ubmVjdAorCisgICAgICAg ICMgU2V0IGRlZmF1bHQgY29ubmVjdGlvbiBvcHRpb25zIGZvciB0aGlzIHNlcnZlcgorICAgICAg ICBkZWZhdWx0cyA9IHsKKyAgICAgICAgICAgICJob3N0Ijogc3RyKHNlbGYuc29ja2RpciksCisg ICAgICAgICAgICAicG9ydCI6IHNlbGYucG9ydCwKKyAgICAgICAgICAgICJkYm5hbWUiOiAicG9z dGdyZXMiLAorICAgICAgICB9CisKKyAgICAgICAgIyBPbiBXaW5kb3dzLCBpbmNsdWRlIHRoZSBw YXNzd29yZCBmb3IgU0NSQU0gYXV0aGVudGljYXRpb24KKyAgICAgICAgaWYgcGxhdGZvcm0uc3lz dGVtKCkgPT0gIldpbmRvd3MiIGFuZCBzZWxmLl93aW5wYXNzd29yZDoKKyAgICAgICAgICAgIGRl ZmF1bHRzWyJwYXNzd29yZCJdID0gc2VsZi5fd2lucGFzc3dvcmQKKworICAgICAgICAjIE1lcmdl IHdpdGggdXNlci1wcm92aWRlZCBvcHRpb25zICh1c2VyIG9wdGlvbnMgdGFrZSBwcmVjZWRlbmNl KQorICAgICAgICBkZWZhdWx0cy51cGRhdGUob3B0cykKKworICAgICAgICBpZiBzZWxmLl9yZW1h aW5pbmdfdGltZW91dF9mbiBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9y KAorICAgICAgICAgICAgICAgICJUaW1lb3V0IGZ1bmN0aW9uIG5vdCBzZXQuIFVzZSBzZXRfdGlt ZW91dCgpIG9yIHBnIGZpeHR1cmUuIgorICAgICAgICAgICAgKQorCisgICAgICAgIHJldHVybiBs aWJwcV9jb25uZWN0KAorICAgICAgICAgICAgc2VsZi5saWJwcV9oYW5kbGUsCisgICAgICAgICAg ICBzZWxmLl9jbGVhbnVwX3N0YWNrLAorICAgICAgICAgICAgc2VsZi5fcmVtYWluaW5nX3RpbWVv dXRfZm4sCisgICAgICAgICAgICAqKmRlZmF1bHRzLAorICAgICAgICApCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9weXRlc3QvcHlwZy91dGlsLnB5IGIvc3JjL3Rlc3QvcHl0ZXN0L3B5cGcvdXRpbC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjJhMWU2MjdlNGIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3QvcHlwZy91dGlsLnB5CkBAIC0wLDAgKzEs NDIgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorCitpbXBvcnQgc2hsZXgKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCisK KworZGVmIGVwcmludCgqYXJncywgKiprd2FyZ3MpOgorICAgICIiImVwcmludCBwcmludHMgdG8g c3RkZXJyIiIiCisgICAgcHJpbnQoKmFyZ3MsIGZpbGU9c3lzLnN0ZGVyciwgKiprd2FyZ3MpCisK KworZGVmIHJ1bigqY29tbWFuZCwgY2hlY2s9VHJ1ZSwgc2hlbGw9Tm9uZSwgc2lsZW50PUZhbHNl LCAqKmt3YXJncyk6CisgICAgIiIicnVuIHJ1bnMgdGhlIGdpdmVuIGNvbW1hbmQgYW5kIHByaW50 cyBpdCB0byBzdGRlcnIiIiIKKworICAgIGlmIHNoZWxsIGlzIE5vbmU6CisgICAgICAgIHNoZWxs ID0gbGVuKGNvbW1hbmQpID09IDEgYW5kIGlzaW5zdGFuY2UoY29tbWFuZFswXSwgc3RyKQorCisg ICAgaWYgc2hlbGw6CisgICAgICAgIGNvbW1hbmQgPSBjb21tYW5kWzBdCisgICAgZWxzZToKKyAg ICAgICAgY29tbWFuZCA9IGxpc3QobWFwKHN0ciwgY29tbWFuZCkpCisKKyAgICBpZiBub3Qgc2ls ZW50OgorICAgICAgICBpZiBzaGVsbDoKKyAgICAgICAgICAgIGVwcmludChmIisge2NvbW1hbmR9 IikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgV2UgY291bGQgbm9ybWFsbHkgdXNlIHNo bGV4LmpvaW4gaGVyZSwgYnV0IGl0J3Mgbm90IGF2YWlsYWJsZSBpbgorICAgICAgICAgICAgIyBQ eXRob24gMy42IHdoaWNoIHdlIHN0aWxsIGxpa2UgdG8gc3VwcG9ydAorICAgICAgICAgICAgdW5z YWZlX3N0cmluZ19jbWQgPSAiICIuam9pbihtYXAoc2hsZXgucXVvdGUsIGNvbW1hbmQpKQorICAg ICAgICAgICAgZXByaW50KGYiKyB7dW5zYWZlX3N0cmluZ19jbWR9IikKKworICAgIGlmIHNpbGVu dDoKKyAgICAgICAga3dhcmdzLnNldGRlZmF1bHQoInN0ZG91dCIsIHN1YnByb2Nlc3MuREVWTlVM TCkKKworICAgIHJldHVybiBzdWJwcm9jZXNzLnJ1bihjb21tYW5kLCBjaGVjaz1jaGVjaywgc2hl bGw9c2hlbGwsICoqa3dhcmdzKQorCisKK2RlZiBjYXB0dXJlKGNvbW1hbmQsICphcmdzLCBzdGRv dXQ9c3VicHJvY2Vzcy5QSVBFLCBlbmNvZGluZz0idXRmLTgiLCAqKmt3YXJncyk6CisgICAgcmV0 dXJuIHJ1bigKKyAgICAgICAgY29tbWFuZCwgKmFyZ3MsIHN0ZG91dD1zdGRvdXQsIGVuY29kaW5n PWVuY29kaW5nLCAqKmt3YXJncworICAgICkuc3Rkb3V0LnJlbW92ZXN1ZmZpeCgiXG4iKQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcHl0ZXN0L3B5dC9jb25mdGVzdC5weSBiL3NyYy90ZXN0L3B5dGVz dC9weXQvY29uZnRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmU3NTBhYzA4MGI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcHl0ZXN0L3B5dC9jb25m dGVzdC5weQpAQCAtMCwwICsxLDQgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCisKK3B5dGVzdF9wbHVnaW5zID0gWyJweXBnLmZp eHR1cmVzIl0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9lcnJvcnMucHkg Yi9zcmMvdGVzdC9weXRlc3QvcHl0L3Rlc3RfZXJyb3JzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwLi5hZDEwOTAzOTY2OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90 ZXN0L3B5dGVzdC9weXQvdGVzdF9lcnJvcnMucHkKQEAgLTAsMCArMSwzNCBAQAorIyBDb3B5cmln aHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgor VGVzdHMgZm9yIGxpYnBxIGVycm9yIHR5cGVzIGFuZCBTUUxTVEFURS1iYXNlZCBleGNlcHRpb24g bWFwcGluZy4KKyIiIgorCitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgbGlicHEKKworCitkZWYgdGVz dF9zeW50YXhfZXJyb3IoY29ubik6CisgICAgIiIiSW52YWxpZCBTUUwgc3ludGF4IHJhaXNlcyBT eW50YXhFcnJvciB3aXRoIGNvcnJlY3QgU1FMU1RBVEUuIiIiCisgICAgd2l0aCBweXRlc3QucmFp c2VzKGxpYnBxLmVycm9ycy5TeW50YXhFcnJvcikgYXMgZXhjX2luZm86CisgICAgICAgIGNvbm4u c3FsKCJTRUxFQyAxIikKKworICAgIGVyciA9IGV4Y19pbmZvLnZhbHVlCisgICAgYXNzZXJ0IGVy ci5zcWxzdGF0ZSA9PSAiNDI2MDEiCisgICAgYXNzZXJ0IGVyci5zcWxzdGF0ZV9jbGFzcyA9PSAi NDIiCisgICAgYXNzZXJ0ICJzeW50YXgiIGluIHN0cihlcnIpLmxvd2VyKCkKKworCitkZWYgdGVz dF91bmlxdWVfdmlvbGF0aW9uKGNvbm4pOgorICAgICIiIlVuaXF1ZSB2aW9sYXRpb24gaW5jbHVk ZXMgYWxsIGVycm9yIGZpZWxkcyBhbmQgY2FuIGJlIGNhdWdodCBhcyBwYXJlbnQgY2xhc3MuIiIi CisgICAgY29ubi5zcWwoIkNSRUFURSBURU1QIFRBQkxFIHRlc3RfdXYgKGlkIGludCBDT05TVFJB SU5UIHRlc3RfdXZfcGsgUFJJTUFSWSBLRVkpIikKKyAgICBjb25uLnNxbCgiSU5TRVJUIElOVE8g dGVzdF91diBWQUxVRVMgKDEpIikKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhsaWJwcS5lcnJv cnMuVW5pcXVlVmlvbGF0aW9uKSBhcyBleGNfaW5mbzoKKyAgICAgICAgY29ubi5zcWwoIklOU0VS VCBJTlRPIHRlc3RfdXYgVkFMVUVTICgxKSIpCisKKyAgICBlcnIgPSBleGNfaW5mby52YWx1ZQor ICAgIGFzc2VydCBlcnIuc3Fsc3RhdGUgPT0gIjIzNTA1IgorICAgIGFzc2VydCBlcnIudGFibGVf bmFtZSA9PSAidGVzdF91diIKKyAgICBhc3NlcnQgZXJyLmNvbnN0cmFpbnRfbmFtZSA9PSAidGVz dF91dl9wayIKKyAgICBhc3NlcnQgZXJyLmRldGFpbCA9PSAiS2V5IChpZCk9KDEpIGFscmVhZHkg ZXhpc3RzLiIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weSBi L3NyYy90ZXN0L3B5dGVzdC9weXQvdGVzdF9saWJwcS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNGZjZjQwNTZmNDEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVz dC9weXRlc3QvcHl0L3Rlc3RfbGlicHEucHkKQEAgLTAsMCArMSwxNzIgQEAKKyMgQ29weXJpZ2h0 IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorCitpbXBvcnQg Y29udGV4dGxpYgoraW1wb3J0IG9zCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3RydWN0CitpbXBv cnQgdGhyZWFkaW5nCitmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKKworaW1wb3J0IHB5dGVz dAorCitmcm9tIGxpYnBxIGltcG9ydCBjb25uc3RyLCBMaWJwcUVycm9yCisKKworQHB5dGVzdC5t YXJrLnBhcmFtZXRyaXplKAorICAgICJvcHRzLCBleHBlY3RlZCIsCisgICAgWworICAgICAgICAo ZGljdCgpLCAiIiksCisgICAgICAgIChkaWN0KHBvcnQ9NTQzMiksICJwb3J0PTU0MzIiKSwKKyAg ICAgICAgKGRpY3QocG9ydD01NDMyLCBkYm5hbWU9InBvc3RncmVzIiksICJwb3J0PTU0MzIgZGJu YW1lPXBvc3RncmVzIiksCisgICAgICAgIChkaWN0KGhvc3Q9IiIpLCAiaG9zdD0nJyIpLAorICAg ICAgICAoZGljdChob3N0PSIgIiksIHIiaG9zdD0nICciKSwKKyAgICAgICAgKGRpY3Qoa2V5d29y ZD0iJyIpLCByImtleXdvcmQ9XCciKSwKKyAgICAgICAgKGRpY3Qoa2V5d29yZD0iIFxcJyAiKSwg ciJrZXl3b3JkPScgXFxcJyAnIiksCisgICAgXSwKKykKK2RlZiB0ZXN0X2Nvbm5zdHIob3B0cywg ZXhwZWN0ZWQpOgorICAgICIiIlRlc3RzIHRoZSBlc2NhcGUgYmVoYXZpb3IgZm9yIGNvbm5zdHIo KS4iIiIKKyAgICBhc3NlcnQgY29ubnN0cihvcHRzKSA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0 X211c3RfY29ubmVjdF9lcnJvcnMoY29ubmVjdCk6CisgICAgIiIiVGVzdHMgdGhhdCBjb25uZWN0 KCkgcmFpc2VzIExpYnBxRXJyb3IuIiIiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKExpYnBxRXJy b3IsIG1hdGNoPSJpbnZhbGlkIGNvbm5lY3Rpb24gb3B0aW9uIik6CisgICAgICAgIGNvbm5lY3Qo c29tZV91bmtub3duX2tleXdvcmQ9IndoYXRldmVyIikKKworCitAcHl0ZXN0LmZpeHR1cmUKK2Rl ZiBsb2NhbF9zZXJ2ZXIodG1wX3BhdGgsIHJlbWFpbmluZ190aW1lb3V0KToKKyAgICAiIiIKKyAg ICBPcGVucyB1cCBhIGxvY2FsIFVOSVggc29ja2V0IGZvciBtb2NraW5nIGEgUG9zdGdyZXMgc2Vy dmVyIG9uIGEgYmFja2dyb3VuZAorICAgIHRocmVhZC4gU2VlIHRoZSBfU2VydmVyIEFQSSBmb3Ig dXNhZ2UuCisKKyAgICBUaGlzIGZpeHR1cmUgcmVxdWlyZXMgQUZfVU5JWCBzdXBwb3J0OyBkZXBl bmRlbnQgdGVzdHMgd2lsbCBiZSBza2lwcGVkIG9uCisgICAgcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg cHJvdmlkZSBpdC4KKyAgICAiIiIKKworICAgIHRyeToKKyAgICAgICAgZnJvbSBzb2NrZXQgaW1w b3J0IEFGX1VOSVgKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHB5dGVzdC5za2lw KCJBRl9VTklYIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIpCisKKyAgICBjbGFzcyBf U2VydmVyKGNvbnRleHRsaWIuRXhpdFN0YWNrKToKKyAgICAgICAgIiIiCisgICAgICAgIEltcGxl bWVudGF0aW9uIGNsYXNzIGZvciBsb2NhbF9zZXJ2ZXIuIFNlZSAuYmFja2dyb3VuZCgpIGZvciB0 aGUgcHJpbWFyeQorICAgICAgICBlbnRyeSBwb2ludCBmb3IgdGVzdHMuIFBvc3RncmVzIGNsaWVu dHMgbWF5IGNvbm5lY3QgdG8gdGhpcyBzZXJ2ZXIgdmlhCisgICAgICAgIGxvY2FsX3NlcnZlci5o b3N0L2xvY2FsX3NlcnZlci5wb3J0LgorCisgICAgICAgIF9TZXJ2ZXIgZGVyaXZlcyBmcm9tIGNv bnRleHRsaWIuRXhpdFN0YWNrIHRvIHByb3ZpZGUgZWFzeSBjbGVhbnVwIG9mCisgICAgICAgIGFz c29jaWF0ZWQgcmVzb3VyY2VzOyBzZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoYXQgY2xhc3Mg Zm9yIGEgZnVsbAorICAgICAgICBleHBsYW5hdGlvbi4KKyAgICAgICAgIiIiCisKKyAgICAgICAg ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc3VwZXIoKS5fX2luaXRfXygpCisKKyAg ICAgICAgICAgIHNlbGYuaG9zdCA9IHRtcF9wYXRoCisgICAgICAgICAgICBzZWxmLnBvcnQgPSA1 NDMyCisKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZCA9IE5vbmUKKyAgICAgICAgICAgIHNlbGYu X3RocmVhZF9leGMgPSBOb25lCisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lciA9IHNlbGYuZW50 ZXJfY29udGV4dCgKKyAgICAgICAgICAgICAgICBzb2NrZXQuc29ja2V0KEFGX1VOSVgsIHNvY2tl dC5TT0NLX1NUUkVBTSksCisgICAgICAgICAgICApCisKKyAgICAgICAgZGVmIGJpbmRfYW5kX2xp c3RlbihzZWxmKToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgRG9lcyB0aGUgYWN0dWFs IHdvcmsgb2YgYmluZGluZyB0aGUgVU5JWCBzb2NrZXQgdXNpbmcgdGhlIFBvc3RncmVzCisgICAg ICAgICAgICBzZXJ2ZXIgY29udmVudGlvbnMgYW5kIGxpc3RlbmluZyBmb3IgY29ubmVjdGlvbnMu CisKKyAgICAgICAgICAgIFRoZSBsaXN0ZW4gYmFja2xvZyBpcyBjdXJyZW50bHkgaGFyZGNvZGVk IHRvIG9uZS4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgc29ja2ZpbGUgPSBzZWxmLmhv c3QgLyAiLnMuUEdTUUwue30iLmZvcm1hdChzZWxmLnBvcnQpCisKKyAgICAgICAgICAgICMgTG9j ayBkb3duIHRoZSBwZXJtaXNzaW9ucyBvbiB0aGUgbmV3IHNvY2tldC4KKyAgICAgICAgICAgIHBy ZXZfbWFzayA9IG9zLnVtYXNrKDBvMDc3KQorCisgICAgICAgICAgICAjIEJpbmQgKGNyZWF0aW5n IHRoZSBzb2NrZXQgZmlsZSksIGFuZCBpbW1lZGlhdGVseSByZWdpc3RlciBpdCBmb3IKKyAgICAg ICAgICAgICMgZGVsZXRpb24gZnJvbSBkaXNrIHdoZW4gdGhlIHN0YWNrIGlzIGNsZWFuZWQgdXAu CisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5iaW5kKGJ5dGVzKHNvY2tmaWxlKSkKKyAgICAg ICAgICAgIHNlbGYuY2FsbGJhY2sob3MudW5saW5rLCBzb2NrZmlsZSkKKworICAgICAgICAgICAg b3MudW1hc2socHJldl9tYXNrKQorCisgICAgICAgICAgICBzZWxmLl9saXN0ZW5lci5saXN0ZW4o MSkKKworICAgICAgICBkZWYgYmFja2dyb3VuZChzZWxmLCBmbjogQ2FsbGFibGVbW3NvY2tldC5z b2NrZXRdLCBOb25lXSkgLT4gTm9uZToKKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgQWNj ZXB0cyBhIGNsaWVudCBjb25uZWN0aW9uIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgYW5kIHBhc3Nl cyBpdCB0bworICAgICAgICAgICAgdGhlIHByb3ZpZGVkIGNhbGxiYWNrLiBBbnkgZXhjZXB0aW9u cyByYWlzZWQgZnJvbSB0aGUgY2FsbGJhY2sgd2lsbAorICAgICAgICAgICAgYmUgcmUtcmFpc2Vk IG9uIHRoZSBtYWluIHRocmVhZCBkdXJpbmcgZml4dHVyZSB0ZWFyZG93bi4KKworICAgICAgICAg ICAgQmxvY2tpbmcgb3BlcmF0aW9ucyBvbiB0aGUgY29ubmVjdGVkIHNvY2tldCBkZWZhdWx0IHRv IHVzaW5nIHRoZQorICAgICAgICAgICAgcmVtYWluaW5nX3RpbWVvdXQoKSwgdGhvdWdoIHRoaXMg Y2FuIGJlIGNoYW5nZWQgYnkgdGhlIHRlc3QgdmlhIHRoZQorICAgICAgICAgICAgc29ja2V0J3Mg LnNldHRpbWVvdXQoKS4KKyAgICAgICAgICAgICIiIgorCisgICAgICAgICAgICBkZWYgX2JnKCk6 CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLl9saXN0ZW5l ci5zZXR0aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0KCkpCisgICAgICAgICAgICAgICAgICAgIHNv Y2ssIF8gPSBzZWxmLl9saXN0ZW5lci5hY2NlcHQoKQorCisgICAgICAgICAgICAgICAgICAgIHdp dGggc29jazoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvY2suc2V0dGltZW91dChyZW1haW5p bmdfdGltZW91dCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgZm4oc29jaykKKworICAgICAg ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgIyBT YXZlIHRoZSBleGNlcHRpb24gZm9yIHJlLXJhaXNpbmcgb24gdGhlIG1haW4gdGhyZWFkLgorICAg ICAgICAgICAgICAgICAgICBzZWxmLl90aHJlYWRfZXhjID0gZQorCisgICAgICAgICAgICAjIFRP RE86IHJhdGhlciB0aGFuIHVzaW5nIGNhbGxiYWNrKCksIGNvbnNpZGVyIGV4cGxpY2l0bHkgc2ln bmFsaW5nCisgICAgICAgICAgICAjIHRoZSBmbigpIGltcGxlbWVudGF0aW9uIHRvIHN0b3AgZWFy bHkgaWYgd2UgZ2V0IGFuIGV4Y2VwdGlvbi4KKyAgICAgICAgICAgICMgT3RoZXJ3aXNlIHdlJ2xs IGhhbmcgdW50aWwgdGhlIGVuZCBvZiB0aGUgdGltZW91dC4KKyAgICAgICAgICAgIHNlbGYuX3Ro cmVhZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PV9iZykKKyAgICAgICAgICAgIHNlbGYuY2Fs bGJhY2soc2VsZi5fam9pbikKKworICAgICAgICAgICAgc2VsZi5fdGhyZWFkLnN0YXJ0KCkKKwor ICAgICAgICBkZWYgX2pvaW4oc2VsZik6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIFdh aXRzIGZvciB0aGUgYmFja2dyb3VuZCB0aHJlYWQgdG8gZmluaXNoIGFuZCByYWlzZXMgYW55IHRo cm93bgorICAgICAgICAgICAgZXhjZXB0aW9uLiBUaGlzIGlzIGNhbGxlZCBkdXJpbmcgZml4dHVy ZSB0ZWFyZG93bi4KKyAgICAgICAgICAgICIiIgorICAgICAgICAgICAgIyBHaXZlIGEgbGl0dGxl IGJpdCBvZiB3aWdnbGUgcm9vbSBvbiB0aGUgam9pbiB0aW1lb3V0LCBzaW5jZSB3ZSdyZQorICAg ICAgICAgICAgIyByYWNpbmcgYWdhaW5zdCB0aGUgdGVzdCdzIG93biB1c2Ugb2YgcmVtYWluaW5n X3RpbWVvdXQoKS4gKEl0J3MKKyAgICAgICAgICAgICMgcHJlZmVyYWJsZSB0byBsZXQgdGVzdHMg cmVwb3J0IHRpbWVvdXRzOyB0aGUgc3RhY2sgdHJhY2VzIHdpbGwKKyAgICAgICAgICAgICMgaGVs cCB3aXRoIGRlYnVnZ2luZy4pCisgICAgICAgICAgICBzZWxmLl90aHJlYWQuam9pbihyZW1haW5p bmdfdGltZW91dCgpICsgMSkKKyAgICAgICAgICAgIGlmIHNlbGYuX3RocmVhZC5pc19hbGl2ZSgp OgorICAgICAgICAgICAgICAgIHJhaXNlIFRpbWVvdXRFcnJvcigiYmFja2dyb3VuZCB0aHJlYWQg aXMgc3RpbGwgcnVubmluZyBhZnRlciB0aW1lb3V0IikKKworICAgICAgICAgICAgaWYgc2VsZi5f dGhyZWFkX2V4YyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBzZWxmLl90aHJl YWRfZXhjCisKKyAgICB3aXRoIF9TZXJ2ZXIoKSBhcyBzOgorICAgICAgICBzLmJpbmRfYW5kX2xp c3RlbigpCisgICAgICAgIHlpZWxkIHMKKworCitkZWYgdGVzdF9jb25uZWN0aW9uX2lzX2Zpbmlz aGVkX29uX2Vycm9yKGNvbm5lY3QsIGxvY2FsX3NlcnZlcik6CisgICAgIiIiVGVzdHMgdGhhdCBQ UWZpbmlzaCgpIGdldHMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgdGVzdGluZy4iIiIKKyAgICBleHBl Y3RlZF9lcnJvciA9ICJzb21ldGhpbmcgaXMgd3JvbmciCisKKyAgICBkZWYgc2VydmVfZXJyb3Io czogc29ja2V0LnNvY2tldCkgLT4gTm9uZToKKyAgICAgICAgcGt0bGVuID0gc3RydWN0LnVucGFj aygiIUkiLCBzLnJlY3YoNCkpWzBdCisKKyAgICAgICAgIyBRdWljayBjaGVjayBmb3IgdGhlIHN0 YXJ0dXAgcGFja2V0IHZlcnNpb24uCisgICAgICAgIHZlcnNpb24gPSBzdHJ1Y3QudW5wYWNrKCIh SEgiLCBzLnJlY3YoNCkpCisgICAgICAgIGFzc2VydCB2ZXJzaW9uID09ICgzLCAwKQorCisgICAg ICAgICMgRGlzY2FyZCB0aGUgcmVtYWluZGVyIG9mIHRoZSBzdGFydHVwIHBhY2tldCBhbmQgc2Vu ZCBhIHYyIGVycm9yLgorICAgICAgICBzLnJlY3YocGt0bGVuIC0gOCkKKyAgICAgICAgcy5zZW5k KGIiRSIgKyBleHBlY3RlZF9lcnJvci5lbmNvZGUoKSArIGIiXDAiKQorCisgICAgICAgICMgQW5k IG5vdyB0aGUgc29ja2V0IHNob3VsZCBiZSBjbG9zZWQuCisgICAgICAgIGFzc2VydCBub3Qgcy5y ZWN2KDEpLCAiY2xpZW50IHNlbnQgdW5leHBlY3RlZCBkYXRhIgorCisgICAgbG9jYWxfc2VydmVy LmJhY2tncm91bmQoc2VydmVfZXJyb3IpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoTGlicHFF cnJvciwgbWF0Y2g9ZXhwZWN0ZWRfZXJyb3IpOgorICAgICAgICAjIEV4aXRpbmcgdGhpcyBjb250 ZXh0IHNob3VsZCByZXN1bHQgaW4gUFFmaW5pc2goKS4KKyAgICAgICAgY29ubmVjdChob3N0PWxv Y2FsX3NlcnZlci5ob3N0LCBwb3J0PWxvY2FsX3NlcnZlci5wb3J0KQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcHl0ZXN0L3B5dC90ZXN0X3F1ZXJ5X2hlbHBlcnMucHkgYi9zcmMvdGVzdC9weXRlc3Qv cHl0L3Rlc3RfcXVlcnlfaGVscGVycy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMC4uNWE1YTFhZTFlZGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9weXRlc3Qv cHl0L3Rlc3RfcXVlcnlfaGVscGVycy5weQpAQCAtMCwwICsxLDI4NiBAQAorIyBDb3B5cmlnaHQg KGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKKyIiIgorVGVz dHMgZm9yIHF1ZXJ5IGhlbHBlciBmdW5jdGlvbnMgd2l0aCB0eXBlIGNvbnZlcnNpb24gYW5kIHJl c3VsdCBzaW1wbGlmaWNhdGlvbi4KKyIiIgorCitpbXBvcnQgcHl0ZXN0CisKKworZGVmIHRlc3Rf c2luZ2xlX2NlbGxfaW50KGNvbm4pOgorICAgICIiIlNpbmdsZSBjZWxsIGludGVnZXIgcXVlcnkg cmV0dXJucyBqdXN0IHRoZSB2YWx1ZS4iIiIKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNU IDEiKQorICAgIGFzc2VydCByZXN1bHQgPT0gMQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3Vs dCwgaW50KQorCisKK2RlZiB0ZXN0X3NpbmdsZV9jZWxsX3N0cmluZyhjb25uKToKKyAgICAiIiJT aW5nbGUgY2VsbCBzdHJpbmcgcXVlcnkgcmV0dXJucyBqdXN0IHRoZSB2YWx1ZS4iIiIKKyAgICBy ZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUICdoZWxsbyciKQorICAgIGFzc2VydCByZXN1bHQgPT0g ImhlbGxvIgorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgc3RyKQorCisKK2RlZiB0ZXN0 X3NpbmdsZV9jZWxsX2Jvb2woY29ubik6CisgICAgIiIiU2luZ2xlIGNlbGwgYm9vbGVhbiBxdWVy eSByZXR1cm5zIGp1c3QgdGhlIHZhbHVlLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNF TEVDVCB0cnVlIikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIFRydWUKKyAgICBhc3NlcnQgaXNpbnN0 YW5jZShyZXN1bHQsIGJvb2wpCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUIGZhbHNl IikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIEZhbHNlCisKKworZGVmIHRlc3Rfc2luZ2xlX2NlbGxf ZmxvYXQoY29ubik6CisgICAgIiIiU2luZ2xlIGNlbGwgZmxvYXQgcXVlcnkgcmV0dXJucyBqdXN0 IHRoZSB2YWx1ZS4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgMy4xNDo6Zmxv YXQ0IikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGZsb2F0KQorICAgIGFzc2VydCBh YnMocmVzdWx0IC0gMy4xNCkgPCAwLjAxCisKKworZGVmIHRlc3Rfc2luZ2xlX2NlbGxfbnVsbChj b25uKToKKyAgICAiIiJTaW5nbGUgY2VsbCBOVUxMIHF1ZXJ5IHJldHVybnMgTm9uZS4iIiIKKwor ICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgTlVMTCIpCisgICAgYXNzZXJ0IHJlc3VsdCBp cyBOb25lCisKKworZGVmIHRlc3Rfc2luZ2xlX3Jvd19tdWx0aXBsZV9jb2x1bW5zKGNvbm4pOgor ICAgICIiIlNpbmdsZSByb3cgd2l0aCBtdWx0aXBsZSBjb2x1bW5zIHJldHVybnMgYSB0dXBsZS4i IiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgMSwgJ2hlbGxvJywgdHJ1ZSIpCisg ICAgYXNzZXJ0IHJlc3VsdCA9PSAoMSwgImhlbGxvIiwgVHJ1ZSkKKyAgICBhc3NlcnQgaXNpbnN0 YW5jZShyZXN1bHQsIHR1cGxlKQorCisKK2RlZiB0ZXN0X3NpbmdsZV9jb2x1bW5fbXVsdGlwbGVf cm93cyhjb25uKToKKyAgICAiIiJTaW5nbGUgY29sdW1uIHdpdGggbXVsdGlwbGUgcm93cyByZXR1 cm5zIGEgbGlzdCBvZiB2YWx1ZXMuIiIiCisKKyAgICByZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNU ICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMykiKQorICAgIGFzc2VydCByZXN1bHQgPT0gWzEs IDIsIDNdCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0LCBsaXN0KQorCisKK2RlZiB0ZXN0 X211bHRpcGxlX3Jvd3NfYW5kX2NvbHVtbnMoY29ubik6CisgICAgIiIiTXVsdGlwbGUgcm93cyBh bmQgY29sdW1ucyByZXR1cm5zIGxpc3Qgb2YgdHVwbGVzLiIiIgorCisgICAgcmVzdWx0ID0gY29u bi5zcWwoIlNFTEVDVCAqIEZST00gKFZBTFVFUyAoMSwgJ2EnKSwgKDIsICdiJyksICgzLCAnYycp KSBBUyB0IikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFsoMSwgImEiKSwgKDIsICJiIiksICgzLCAi YyIpXQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgYWxs KGlzaW5zdGFuY2Uocm93LCB0dXBsZSkgZm9yIHJvdyBpbiByZXN1bHQpCisKKworZGVmIHRlc3Rf ZW1wdHlfcmVzdWx0KGNvbm4pOgorICAgICIiIkVtcHR5IHJlc3VsdCBzZXQgcmV0dXJucyBlbXB0 eSBsaXN0LiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAxIFdIRVJFIGZhbHNl IikKKyAgICBhc3NlcnQgcmVzdWx0ID09IFtdCisKKworZGVmIHRlc3RfcXVlcnlfZXJyb3JfaGFu ZGxpbmcoY29ubik6CisgICAgIiIiUXVlcnkgZXJyb3JzIHJhaXNlIFJ1bnRpbWVFcnJvciB3aXRo IGFjdHVhbCBlcnJvciBtZXNzYWdlLiIiIgorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFJ1bnRp bWVFcnJvcikgYXMgZXhjX2luZm86CisgICAgICAgIGNvbm4uc3FsKCJTRUxFQ1QgKiBGUk9NIG5v bmV4aXN0ZW50X3RhYmxlIikKKworICAgIGVycm9yX21zZyA9IHN0cihleGNfaW5mby52YWx1ZSkK KyAgICBhc3NlcnQgIm5vbmV4aXN0ZW50X3RhYmxlIiBpbiBlcnJvcl9tc2cgb3IgImRvZXMgbm90 IGV4aXN0IiBpbiBlcnJvcl9tc2cKKworCitkZWYgdGVzdF9kaXZpc2lvbl9ieV96ZXJvX2Vycm9y KGNvbm4pOgorICAgICIiIkRpdmlzaW9uIGJ5IHplcm8gcmFpc2VzIFJ1bnRpbWVFcnJvci4iIiIK KworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhSdW50aW1lRXJyb3IpIGFzIGV4Y19pbmZvOgorICAg ICAgICBjb25uLnNxbCgiU0VMRUNUIDEvMCIpCisKKyAgICBlcnJvcl9tc2cgPSBzdHIoZXhjX2lu Zm8udmFsdWUpCisgICAgYXNzZXJ0ICJkaXZpc2lvbiBieSB6ZXJvIiBpbiBlcnJvcl9tc2cubG93 ZXIoKQorCisKK2RlZiB0ZXN0X3NpbXBsZV9leGVjX2NyZWF0ZV90YWJsZShjb25uKToKKyAgICAi IiJzcWwgZm9yIENSRUFURSBUQUJMRSByZXR1cm5zIE5vbmUuIiIiCisKKyAgICByZXN1bHQgPSBj b25uLnNxbCgiQ1JFQVRFIFRFTVAgVEFCTEUgdGVzdF90YWJsZSAoaWQgaW50LCBuYW1lIHRleHQp IikKKyAgICBhc3NlcnQgcmVzdWx0IGlzIE5vbmUKKworICAgICMgVmVyaWZ5IHRhYmxlIHdhcyBj cmVhdGVkCisgICAgY291bnQgPSBjb25uLnNxbCgiU0VMRUNUIENPVU5UKCopIEZST00gdGVzdF90 YWJsZSIpCisgICAgYXNzZXJ0IGNvdW50ID09IDAKKworCitkZWYgdGVzdF9zaW1wbGVfZXhlY19p bnNlcnQoY29ubik6CisgICAgIiIic3FsIGZvciBJTlNFUlQgcmV0dXJucyBOb25lLiIiIgorCisg ICAgY29ubi5zcWwoIkNSRUFURSBURU1QIFRBQkxFIHRlc3RfdGFibGUgKGlkIGludCwgbmFtZSB0 ZXh0KSIpCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIklOU0VSVCBJTlRPIHRlc3RfdGFibGUgVkFM VUVTICgxLCAnQWxpY2UnKSwgKDIsICdCb2InKSIpCisgICAgYXNzZXJ0IHJlc3VsdCBpcyBOb25l CisKKyAgICAjIFZlcmlmeSBkYXRhIHdhcyBpbnNlcnRlZAorICAgIGNvdW50ID0gY29ubi5zcWwo IlNFTEVDVCBDT1VOVCgqKSBGUk9NIHRlc3RfdGFibGUiKQorICAgIGFzc2VydCBjb3VudCA9PSAy CisKKworZGVmIHRlc3RfdHlwZV9jb252ZXJzaW9uX21peGVkKGNvbm4pOgorICAgICIiIlRlc3Qg bWl4ZWQgdHlwZSBjb252ZXJzaW9uIGluIGEgc2luZ2xlIHJvdy4iIiIKKworICAgIHJlc3VsdCA9 IGNvbm4uc3FsKAorICAgICAgICAiU0VMRUNUIDQyOjppbnQ0LCAxMjM6OmludDgsIDMuMTQ6OmZs b2F0OCwgJ3RleHQnLCB0cnVlLCBOVUxMIgorICAgICkKKyAgICBhc3NlcnQgcmVzdWx0ID09ICg0 MiwgMTIzLCAzLjE0LCAidGV4dCIsIFRydWUsIE5vbmUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo cmVzdWx0WzBdLCBpbnQpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzFdLCBpbnQpCisg ICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzJdLCBmbG9hdCkKKyAgICBhc3NlcnQgaXNpbnN0 YW5jZShyZXN1bHRbM10sIHN0cikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbNF0sIGJv b2wpCisgICAgYXNzZXJ0IHJlc3VsdFs1XSBpcyBOb25lCisKKworZGVmIHRlc3RfbXVsdGlwbGVf cXVlcmllc19zYW1lX2Nvbm5lY3Rpb24oY29ubik6CisgICAgIiIiVGVzdCBydW5uaW5nIG11bHRp cGxlIHF1ZXJpZXMgb24gdGhlIHNhbWUgY29ubmVjdGlvbi4iIiIKKworICAgIHJlc3VsdDEgPSBj b25uLnNxbCgiU0VMRUNUIDEiKQorICAgIGFzc2VydCByZXN1bHQxID09IDEKKworICAgIHJlc3Vs dDIgPSBjb25uLnNxbCgiU0VMRUNUICdoZWxsbycsICd3b3JsZCciKQorICAgIGFzc2VydCByZXN1 bHQyID09ICgiaGVsbG8iLCAid29ybGQiKQorCisgICAgcmVzdWx0MyA9IGNvbm4uc3FsKCJTRUxF Q1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCA1KSIpCisgICAgYXNzZXJ0IHJlc3VsdDMgPT0g WzEsIDIsIDMsIDQsIDVdCisKKworZGVmIHRlc3RfZGF0ZV90eXBlKGNvbm4pOgorICAgICIiIlRl c3QgZGF0ZSB0eXBlIGNvbnZlcnNpb24uIiIiCisgICAgaW1wb3J0IGRhdGV0aW1lCisKKyAgICBy ZXN1bHQgPSBjb25uLnNxbCgiU0VMRUNUICcyMDI1LTEwLTIwJzo6ZGF0ZSIpCisgICAgYXNzZXJ0 IHJlc3VsdCA9PSBkYXRldGltZS5kYXRlKDIwMjUsIDEwLCAyMCkKKyAgICBhc3NlcnQgaXNpbnN0 YW5jZShyZXN1bHQsIGRhdGV0aW1lLmRhdGUpCisKKworZGVmIHRlc3RfdGltZXN0YW1wX3R5cGUo Y29ubik6CisgICAgIiIiVGVzdCB0aW1lc3RhbXAgdHlwZSBjb252ZXJzaW9uLiIiIgorICAgIGlt cG9ydCBkYXRldGltZQorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCAnMjAyNS0xMC0y MCAxNTozMDo0NSc6OnRpbWVzdGFtcCIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBkYXRldGltZS5k YXRldGltZSgyMDI1LCAxMCwgMjAsIDE1LCAzMCwgNDUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo cmVzdWx0LCBkYXRldGltZS5kYXRldGltZSkKKworCitkZWYgdGVzdF90aW1lX3R5cGUoY29ubik6 CisgICAgIiIiVGVzdCB0aW1lIHR5cGUgY29udmVyc2lvbi4iIiIKKyAgICBpbXBvcnQgZGF0ZXRp bWUKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgJzE1OjMwOjQ1Jzo6dGltZSIpCisg ICAgYXNzZXJ0IHJlc3VsdCA9PSBkYXRldGltZS50aW1lKDE1LCAzMCwgNDUpCisgICAgYXNzZXJ0 IGlzaW5zdGFuY2UocmVzdWx0LCBkYXRldGltZS50aW1lKQorCisKK2RlZiB0ZXN0X251bWVyaWNf dHlwZShjb25uKToKKyAgICAiIiJUZXN0IG51bWVyaWMvZGVjaW1hbCB0eXBlIGNvbnZlcnNpb24u IiIiCisgICAgaW1wb3J0IGRlY2ltYWwKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1Qg MTIzLjQ1Njo6bnVtZXJpYyIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBkZWNpbWFsLkRlY2ltYWwo IjEyMy40NTYiKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZGVjaW1hbC5EZWNpbWFs KQorCisKK2RlZiB0ZXN0X2ludF9hcnJheShjb25uKToKKyAgICAiIiJUZXN0IGludGVnZXIgYXJy YXkgdHlwZSBjb252ZXJzaW9uLiIiIgorCisgICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCBB UlJBWVsxLCAyLCAzLCA0LCA1XSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbMSwgMiwgMywgNCwg NV0KKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpCisgICAgYXNzZXJ0IGFsbChp c2luc3RhbmNlKHgsIGludCkgZm9yIHggaW4gcmVzdWx0KQorCisKK2RlZiB0ZXN0X3RleHRfYXJy YXkoY29ubik6CisgICAgIiIiVGVzdCB0ZXh0IGFycmF5IHR5cGUgY29udmVyc2lvbi4iIiIKKwor ICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgQVJSQVlbJ2hlbGxvJywgJ3dvcmxkJywgJ3Rl c3QnXSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbImhlbGxvIiwgIndvcmxkIiwgInRlc3QiXQor ICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgYWxsKGlzaW5z dGFuY2UoeCwgc3RyKSBmb3IgeCBpbiByZXN1bHQpCisKKworZGVmIHRlc3RfYm9vbF9hcnJheShj b25uKToKKyAgICAiIiJUZXN0IGJvb2xlYW4gYXJyYXkgdHlwZSBjb252ZXJzaW9uLiIiIgorCisg ICAgcmVzdWx0ID0gY29ubi5zcWwoIlNFTEVDVCBBUlJBWVt0cnVlLCBmYWxzZSwgdHJ1ZV0iKQor ICAgIGFzc2VydCByZXN1bHQgPT0gW1RydWUsIEZhbHNlLCBUcnVlXQorICAgIGFzc2VydCBpc2lu c3RhbmNlKHJlc3VsdCwgbGlzdCkKKyAgICBhc3NlcnQgYWxsKGlzaW5zdGFuY2UoeCwgYm9vbCkg Zm9yIHggaW4gcmVzdWx0KQorCisKK2RlZiB0ZXN0X2VtcHR5X2FycmF5KGNvbm4pOgorICAgICIi IlRlc3QgZW1wdHkgYXJyYXkgdHlwZSBjb252ZXJzaW9uLiIiIgorCisgICAgcmVzdWx0ID0gY29u bi5zcWwoIlNFTEVDVCBBUlJBWVtdOjppbnRbXSIpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbXQor ICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkKKworCitkZWYgdGVzdF9qc29uX3R5 cGUoY29ubik6CisgICAgIiIiVGVzdCBKU09OIHR5cGUgKHBhcnNlZCB0byBkaWN0KS4iIiIKKwor ICAgIHJlc3VsdCA9IGNvbm4uc3FsKCdTRUxFQ1QgXCd7ImtleSI6ICJ2YWx1ZSJ9XCc6Ompzb24n KQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJlc3VsdCwgZGljdCkKKyAgICBhc3NlcnQgcmVzdWx0 ID09IHsia2V5IjogInZhbHVlIn0KKworCitkZWYgdGVzdF9qc29uYl90eXBlKGNvbm4pOgorICAg ICIiIlRlc3QgSlNPTkIgdHlwZSAocGFyc2VkIHRvIGRpY3QpLiIiIgorCisgICAgcmVzdWx0ID0g Y29ubi5zcWwoJ1NFTEVDVCBcJ3sibmFtZSI6ICJ0ZXN0IiwgImNvdW50IjogNDJ9XCc6Ompzb25i JykKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3QpCisgICAgYXNzZXJ0IHJlc3Vs dCA9PSB7Im5hbWUiOiAidGVzdCIsICJjb3VudCI6IDQyfQorCisKK2RlZiB0ZXN0X2pzb25fYXJy YXkoY29ubik6CisgICAgIiIiVGVzdCBKU09OIGFycmF5IHR5cGUuIiIiCisKKyAgICByZXN1bHQg PSBjb25uLnNxbCgiU0VMRUNUICdbMSwgMiwgMywgNCwgNV0nOjpqc29uIikKKyAgICBhc3NlcnQg aXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpCisgICAgYXNzZXJ0IHJlc3VsdCA9PSBbMSwgMiwgMywg NCwgNV0KKworCitkZWYgdGVzdF9qc29uX25lc3RlZChjb25uKToKKyAgICAiIiJUZXN0IG5lc3Rl ZCBKU09OIG9iamVjdC4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKAorICAgICAgICAnU0VM RUNUIFwneyJ1c2VyIjogeyJpZCI6IDEsICJuYW1lIjogIkFsaWNlIn0sICJhY3RpdmUiOiB0cnVl fVwnOjpqc29uJworICAgICkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIGRpY3QpCisg ICAgYXNzZXJ0IHJlc3VsdCA9PSB7InVzZXIiOiB7ImlkIjogMSwgIm5hbWUiOiAiQWxpY2UifSwg ImFjdGl2ZSI6IFRydWV9CisKKworZGVmIHRlc3RfbWl4ZWRfdHlwZXNfd2l0aF9hcnJheXMoY29u bik6CisgICAgIiIiVGVzdCBtaXhlZCB0eXBlcyBpbmNsdWRpbmcgYXJyYXlzIGluIGEgc2luZ2xl IHJvdy4iIiIKKworICAgIHJlc3VsdCA9IGNvbm4uc3FsKCJTRUxFQ1QgNDIsICd0ZXh0JywgQVJS QVlbMSwgMiwgM10sIHRydWUiKQorICAgIGFzc2VydCByZXN1bHQgPT0gKDQyLCAidGV4dCIsIFsx LCAyLCAzXSwgVHJ1ZSkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbMF0sIGludCkKKyAg ICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHRbMV0sIHN0cikKKyAgICBhc3NlcnQgaXNpbnN0YW5j ZShyZXN1bHRbMl0sIGxpc3QpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmVzdWx0WzNdLCBib29s KQorCisKK2RlZiB0ZXN0X3V1aWRfdHlwZShjb25uKToKKyAgICAiIiJUZXN0IFVVSUQgdHlwZSBj b252ZXJzaW9uLiIiIgorICAgIGltcG9ydCB1dWlkCisKKyAgICB0ZXN0X3V1aWQgPSAiNTUwZTg0 MDAtZTI5Yi00MWQ0LWE3MTYtNDQ2NjU1NDQwMDAwIgorICAgIHJlc3VsdCA9IGNvbm4uc3FsKGYi U0VMRUNUICd7dGVzdF91dWlkfSc6OnV1aWQiKQorICAgIGFzc2VydCByZXN1bHQgPT0gdXVpZC5V VUlEKHRlc3RfdXVpZCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXN1bHQsIHV1aWQuVVVJRCkK KworCitkZWYgdGVzdF91dWlkX2dlbmVyYXRpb24oY29ubik6CisgICAgIiIiVGVzdCBnZW5lcmF0 ZWQgVVVJRCB0eXBlIGNvbnZlcnNpb24uIiIiCisgICAgaW1wb3J0IHV1aWQKKworICAgIHJlc3Vs dCA9IGNvbm4uc3FsKCJTRUxFQ1QgdXVpZHY0KCkiKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHJl c3VsdCwgdXVpZC5VVUlEKQorICAgICMgQ2hlY2sgaXQncyBhIHZhbGlkIFVVSUQgYnkgZW5zdXJp bmcgaXQgY2FuIGJlIGNvbnZlcnRlZCB0byBzdHJpbmcKKyAgICBhc3NlcnQgbGVuKHN0cihyZXN1 bHQpKSA9PSAzNiAgIyBVVUlEIHN0cmluZyBmb3JtYXQgbGVuZ3RoCmRpZmYgLS1naXQgYS9zcmMv dG9vbHMvZ2VuZXJhdGVfcHl0ZXN0X2xpYnBxX2Vycm9ycy5weSBiL3NyYy90b29scy9nZW5lcmF0 ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw MDAwMDAwLi5iYTkyODkxYzE3YQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90b29scy9nZW5lcmF0 ZV9weXRlc3RfbGlicHFfZXJyb3JzLnB5CkBAIC0wLDAgKzEsMTQ3IEBACisjIS91c3IvYmluL2Vu diBweXRob24zCisjIENvcHlyaWdodCAoYykgMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKworIiIiCitHZW5lcmF0ZSBzcmMvdGVzdC9weXRlc3QvbGlicHEvX2dlbmVy YXRlZF9lcnJvcnMucHkgZnJvbSBlcnJjb2Rlcy50eHQuCisiIiIKKworaW1wb3J0IHN5cworZnJv bSBwYXRobGliIGltcG9ydCBQYXRoCisKKworQUNST05ZTVMgPSB7InNxbCIsICJmZHcifQorV09S RF9NQVAgPSB7CisgICAgInNxbGNsaWVudCI6ICJTUUxDbGllbnQiLAorICAgICJzcWxzZXJ2ZXIi OiAiU1FMU2VydmVyIiwKKyAgICAic3FsY29ubmVjdGlvbiI6ICJTUUxDb25uZWN0aW9uIiwKK30K KworCitkZWYgc25ha2VfdG9fcGFzY2FsKG5hbWU6IHN0cikgLT4gc3RyOgorICAgICIiIkNvbnZl cnQgc25ha2VfY2FzZSB0byBQYXNjYWxDYXNlLCBrZWVwaW5nIGFjcm9ueW1zIHVwcGVyY2FzZS4i IiIKKyAgICB3b3JkcyA9IFtdCisgICAgZm9yIHdvcmQgaW4gbmFtZS5zcGxpdCgiXyIpOgorICAg ICAgICBpZiB3b3JkIGluIFdPUkRfTUFQOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKFdPUkRf TUFQW3dvcmRdKQorICAgICAgICBlbGlmIHdvcmQgaW4gQUNST05ZTVM6CisgICAgICAgICAgICB3 b3Jkcy5hcHBlbmQod29yZC51cHBlcigpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd29y ZHMuYXBwZW5kKHdvcmQuY2FwaXRhbGl6ZSgpKQorICAgIHJldHVybiAiIi5qb2luKHdvcmRzKQor CisKK2RlZiBwYXJzZV9lcnJjb2RlcyhwYXRoOiBQYXRoKToKKyAgICAiIiJQYXJzZSBlcnJjb2Rl cy50eHQgYW5kIHJldHVybiBsaXN0IG9mIChzcWxzdGF0ZSwgbWFjcm9fbmFtZSwgc3BlY19uYW1l KSB0dXBsZXMuIiIiCisgICAgZXJyb3JzID0gW10KKworICAgIHdpdGggb3BlbihwYXRoKSBhcyBm OgorICAgICAgICBmb3IgbGluZSBpbiBmOgorICAgICAgICAgICAgcGFydHMgPSBsaW5lLnNwbGl0 KCkKKyAgICAgICAgICAgIGlmIGxlbihwYXJ0cykgPj0gNCBhbmQgbGVuKHBhcnRzWzBdKSA9PSA1 OgorICAgICAgICAgICAgICAgIHNxbHN0YXRlLCBfLCBtYWNyb19uYW1lLCBzcGVjX25hbWUgPSBw YXJ0c1s6NF0KKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChzcWxzdGF0ZSwgbWFjcm9f bmFtZSwgc3BlY19uYW1lKSkKKworICAgIHJldHVybiBlcnJvcnMKKworCitkZWYgbWFjcm9fdG9f Y2xhc3NfbmFtZShtYWNyb19uYW1lOiBzdHIpIC0+IHN0cjoKKyAgICAiIiJDb252ZXJ0IEVSUkNP REVfRk9PX0JBUiB0byBGb29CYXIuIiIiCisgICAgbmFtZSA9IG1hY3JvX25hbWUucmVtb3ZlcHJl Zml4KCJFUlJDT0RFXyIpCisgICAgIyBNb3ZlIFdBUk5JTkcgcHJlZml4IHRvIHRoZSBlbmQgYXMg YSBzdWZmaXgKKyAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoIldBUk5JTkdfIik6CisgICAgICAgIG5h bWUgPSBuYW1lLnJlbW92ZXByZWZpeCgiV0FSTklOR18iKSArICJfV0FSTklORyIKKyAgICByZXR1 cm4gc25ha2VfdG9fcGFzY2FsKG5hbWUubG93ZXIoKSkKKworCitkZWYgZ2VuZXJhdGVfZXJyb3Jz KGVycmNvZGVzX3BhdGg6IFBhdGgpOgorICAgICIiIkdlbmVyYXRlIHRoZSBfZ2VuZXJhdGVkX2Vy cm9ycy5weSBjb250ZW50LiIiIgorICAgIGVycm9ycyA9IHBhcnNlX2VycmNvZGVzKGVycmNvZGVz X3BhdGgpCisKKyAgICAjIEZpbmQgc3BlY19uYW1lcyB0aGF0IGFwcGVhciBtb3JlIHRoYW4gb25j ZSAoY29sbGlzaW9ucykKKyAgICBzcGVjX25hbWVfY291bnRzOiBkaWN0W3N0ciwgaW50XSA9IHt9 CisgICAgZm9yIF8sIF8sIHNwZWNfbmFtZSBpbiBlcnJvcnM6CisgICAgICAgIHNwZWNfbmFtZV9j b3VudHNbc3BlY19uYW1lXSA9IHNwZWNfbmFtZV9jb3VudHMuZ2V0KHNwZWNfbmFtZSwgMCkgKyAx CisgICAgY29sbGlkaW5nX3NwZWNfbmFtZXMgPSB7CisgICAgICAgIG5hbWUgZm9yIG5hbWUsIGNv dW50IGluIHNwZWNfbmFtZV9jb3VudHMuaXRlbXMoKSBpZiBjb3VudCA+IDEKKyAgICB9CisKKyAg ICBsaW5lcyA9IFsKKyAgICAgICAgIiMgQ29weXJpZ2h0IChjKSAyMDI1LCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cCIsCisgICAgICAgICIjIFRoaXMgZmlsZSBpcyBnZW5lcmF0 ZWQgYnkgc3JjL3Rvb2xzL2dlbmVyYXRlX3B5dGVzdF9saWJwcV9lcnJvcnMucHkgLSBkbyBub3Qg ZWRpdCBkaXJlY3RseS4iLAorICAgICAgICAiIiwKKyAgICAgICAgJyIiIicsCisgICAgICAgICJH ZW5lcmF0ZWQgUG9zdGdyZVNRTCBlcnJvciBjbGFzc2VzIG1hcHBlZCBmcm9tIFNRTFNUQVRFIGNv ZGVzLiIsCisgICAgICAgICciIiInLAorICAgICAgICAiIiwKKyAgICAgICAgImZyb20gdHlwaW5n IGltcG9ydCBEaWN0IiwKKyAgICAgICAgIiIsCisgICAgICAgICJmcm9tIC5fZXJyb3JfYmFzZSBp bXBvcnQgTGlicHFFcnJvciwgTGlicHFXYXJuaW5nIiwKKyAgICAgICAgIiIsCisgICAgICAgICIi LAorICAgIF0KKworICAgIGdlbmVyYXRlZF9jbGFzc2VzID0geyJMaWJwcUVycm9yIn0KKyAgICBz cWxzdGF0ZV90b19leGNlcHRpb24gPSB7fQorCisgICAgZm9yIHNxbHN0YXRlLCBtYWNyb19uYW1l LCBzcGVjX25hbWUgaW4gZXJyb3JzOgorICAgICAgICAjIDAwMCBlcnJvcnMgZGVmaW5lIHRoZSBw YXJlbnQgY2xhc3MgZm9yIGFsbCBlcnJvcnMgaW4gdGhpcyBTUUxTVEFURSBjbGFzcworICAgICAg ICBpZiBzcWxzdGF0ZS5lbmRzd2l0aCgiMDAwIik6CisgICAgICAgICAgICBleGNfbmFtZSA9IHNu YWtlX3RvX3Bhc2NhbChzcGVjX25hbWUpCisgICAgICAgICAgICBpZiBleGNfbmFtZSA9PSAiV2Fy bmluZyI6CisgICAgICAgICAgICAgICAgcGFyZW50ID0gIkxpYnBxV2FybmluZyIKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGFyZW50ID0gIkxpYnBxRXJyb3IiCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICBpZiBzcGVjX25hbWUgaW4gY29sbGlkaW5nX3NwZWNfbmFtZXM6 CisgICAgICAgICAgICAgICAgZXhjX25hbWUgPSBtYWNyb190b19jbGFzc19uYW1lKG1hY3JvX25h bWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4Y19uYW1lID0gc25ha2Vf dG9fcGFzY2FsKHNwZWNfbmFtZSkKKyAgICAgICAgICAgICMgVXNlIHBhcmVudCBjbGFzcyBpZiBh dmFpbGFibGUsIG90aGVyd2lzZSBMaWJwcUVycm9yCisgICAgICAgICAgICBwYXJlbnQgPSBzcWxz dGF0ZV90b19leGNlcHRpb24uZ2V0KHNxbHN0YXRlWzoyXSArICIwMDAiLCAiTGlicHFFcnJvciIp CisgICAgICAgICAgICAjIFdhcm5pbmdzIHNob3VsZCBlbmQgd2l0aCAiV2FybmluZyIKKyAgICAg ICAgICAgIGlmIHBhcmVudCA9PSAiV2FybmluZyIgYW5kIG5vdCBleGNfbmFtZS5lbmRzd2l0aCgi V2FybmluZyIpOgorICAgICAgICAgICAgICAgIGV4Y19uYW1lICs9ICJXYXJuaW5nIgorCisgICAg ICAgIGdlbmVyYXRlZF9jbGFzc2VzLmFkZChleGNfbmFtZSkKKyAgICAgICAgc3Fsc3RhdGVfdG9f ZXhjZXB0aW9uW3NxbHN0YXRlXSA9IGV4Y19uYW1lCisgICAgICAgIGxpbmVzLmV4dGVuZCgKKyAg ICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICBmImNsYXNzIHtleGNfbmFtZX0oe3BhcmVudH0p OiIsCisgICAgICAgICAgICAgICAgZicgICAgIiIiU1FMU1RBVEUge3NxbHN0YXRlfSAtIHtzcGVj X25hbWUucmVwbGFjZSgiXyIsICIgIil9LiIiIicsCisgICAgICAgICAgICAgICAgIiIsCisgICAg ICAgICAgICAgICAgIiAgICBwYXNzIiwKKyAgICAgICAgICAgICAgICAiIiwKKyAgICAgICAgICAg ICAgICAiIiwKKyAgICAgICAgICAgIF0KKyAgICAgICAgKQorCisgICAgbGluZXMuYXBwZW5kKCJT UUxTVEFURV9UT19FWENFUFRJT046IERpY3Rbc3RyLCB0eXBlXSA9IHsiKQorICAgIGZvciBzcWxz dGF0ZSwgZXhjX25hbWUgaW4gc3Fsc3RhdGVfdG9fZXhjZXB0aW9uLml0ZW1zKCk6CisgICAgICAg IGxpbmVzLmFwcGVuZChmJyAgICAie3NxbHN0YXRlfSI6IHtleGNfbmFtZX0sJykKKyAgICBsaW5l cy5leHRlbmQoWyJ9IiwgIiIsICIiXSkKKworICAgIGFsbF9leHBvcnRzID0gbGlzdChnZW5lcmF0 ZWRfY2xhc3NlcykgKyBbIlNRTFNUQVRFX1RPX0VYQ0VQVElPTiJdCisgICAgbGluZXMuYXBwZW5k KCJfX2FsbF9fID0gWyIpCisgICAgZm9yIG5hbWUgaW4gYWxsX2V4cG9ydHM6CisgICAgICAgIGxp bmVzLmFwcGVuZChmJyAgICAie25hbWV9IiwnKQorICAgIGxpbmVzLmFwcGVuZCgiXSIpCisKKyAg ICByZXR1cm4gIlxuIi5qb2luKGxpbmVzKSArICJcbiIKKworCitpZiBfX25hbWVfXyA9PSAiX19t YWluX18iOgorICAgIHNjcmlwdF9kaXIgPSBQYXRoKF9fZmlsZV9fKS5yZXNvbHZlKCkucGFyZW50 CisgICAgc3JjX3Jvb3QgPSBzY3JpcHRfZGlyLnBhcmVudC5wYXJlbnQKKworICAgIGVycmNvZGVz X3BhdGggPSBzcmNfcm9vdCAvICJzcmMiIC8gImJhY2tlbmQiIC8gInV0aWxzIiAvICJlcnJjb2Rl cy50eHQiCisgICAgb3V0cHV0X3BhdGggPSAoCisgICAgICAgIHNyY19yb290IC8gInNyYyIgLyAi dGVzdCIgLyAicHl0ZXN0IiAvICJsaWJwcSIgLyAiX2dlbmVyYXRlZF9lcnJvcnMucHkiCisgICAg KQorCisgICAgaWYgbm90IGVycmNvZGVzX3BhdGguZXhpc3RzKCk6CisgICAgICAgIHByaW50KGYi RXJyb3I6IHtlcnJjb2Rlc19wYXRofSBub3QgZm91bmQiLCBmaWxlPXN5cy5zdGRlcnIpCisgICAg ICAgIHN5cy5leGl0KDEpCisKKyAgICBvdXRwdXQgPSBnZW5lcmF0ZV9lcnJvcnMoZXJyY29kZXNf cGF0aCkKKyAgICBvdXRwdXRfcGF0aC53cml0ZV90ZXh0KG91dHB1dCkKKyAgICBwcmludChmIkdl bmVyYXRlZCB7b3V0cHV0X3BhdGh9IikKLS0gCjIuNTIuMAoK --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0005-WIP-pytest-Add-some-SSL-client-tests.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0005-WIP-pytest-Add-some-SSL-client-tests.patch RnJvbSBjZDJiYWUzOTA2ZGE3ZjA4ZWY2YWZhYTllNWQ4OTI1NDIzNTNhOTBjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAxNiBEZWMgMjAyNSAwOTozMDo1NSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjQgNS83XSBXSVA6IHB5dGVzdDogQWRkIHNvbWUgU1NMIGNsaWVudCB0ZXN0cwoK VGhpcyBpcyBhIHNhbXBsZSBjbGllbnQtb25seSB0ZXN0IHN1aXRlLiBJdCB0ZXN0cyBzb21lIGhh bmRzaGFrZQpmYWlsdXJlcyBhZ2FpbnN0IGEgbW9jayBzZXJ2ZXIsIGFzIHdlbGwgYXMgYSBmdWxs IFNTTCBoYW5kc2hha2UgKyBlbXB0eQpxdWVyeSArIHJlc3BvbnNlLgoKcHljYS9jcnlwdG9ncmFw aHkgaXMgYWRkZWQgYXMgYSBuZXcgcGFja2FnZSBkZXBlbmRlbmN5LiBDZXJ0aWZpY2F0ZXMgZm9y CnRlc3RpbmcgYXJlIGdlbmVyYXRlZCBvbiB0aGUgZmx5LgoKVGhlIGBwZ2AgdGVzdCBwYWNrYWdl IGNvbnRhaW5zIHNvbWUgaGVscGVycyBhbmQgZml4dHVyZXMgKGFzIHdlbGwgYXMKc29tZSBzZWxm LXRlc3RzIGZvciBtb3JlIGNvbXBsaWNhdGVkIGJlaGF2aW9yKS4gT2Ygbm90ZToKCi0gcGcucmVx dWlyZV90ZXN0X2V4dHJhKCkgbGV0cyB5b3UgbWFyayBhIHRlc3QvY2xhc3MvbW9kdWxlIGFzIHNr aXBwYWJsZQogIGlmIFBHX1RFU1RfRVhUUkEgZG9lcyBub3QgY29udGFpbiB0aGUgbmVjZXNzYXJ5 IHN0cmluZ3MuCgotIHBnLnJlbWFpbmluZ190aW1lb3V0KCkgaXMgYSBmdW5jdGlvbiB3aGljaCBj YW4gYmUgcmVwZWF0ZWRseSBjYWxsZWQgdG8KICBkZXRlcm1pbmUgaG93IG11Y2ggb2YgdGhlIFBH X1RFU1RfVElNRU9VVF9ERUZBVUxUIHJlbWFpbnMgZm9yIHRoZQogIGN1cnJlbnQgdGVzdCBpdGVt LgoKLSBwZy5saWJwcSBpcyBhIGZpeHR1cmUgdGhhdCB3cmFwcyBsaWJwcS5zbyBpbiBhIG1vcmUg ZnJpZW5kbHksIGJ1dAogIHN0aWxsIGxvdy1sZXZlbCwgY3R5cGVzIEZGSS4gQWxsb2NhdGVkIHJl c291cmNlcyBhcmUgdW53b3VuZCBhbmQKICByZWxlYXNlZCBkdXJpbmcgdGVzdCB0ZWFyZG93bi4K ClRoZSBtb2NrIGRlc2lnbiBpcyB0aHJlYWRlZDogdGhlIHNlcnZlciBzb2NrZXQgaXMgbGlzdGVu aW5nIG9uIGEKYmFja2dyb3VuZCB0aHJlYWQsIGFuZCB0aGUgdGVzdCBwcm92aWRlcyB0aGUgc2Vy dmVyIGxvZ2ljIHZpYSBhCmNhbGxiYWNrLiBUaGVyZSBpcyBzb21lIGFkZGl0aW9uYWwgd29yayBz dGlsbCBuZWVkZWQgdG8gbWFrZSB0aGlzCnByb2R1Y3Rpb24tcmVhZHk7IHNlZSB0aGUgbm90ZXMg Zm9yIF9UQ1BTZXJ2ZXIuYmFja2dyb3VuZCgpLiAoQ3VycmVudGx5LAphbiBleGNlcHRpb24gaW4g dGhlIHdyb25nIHBsYWNlIGNvdWxkIHJlc3VsdCBpbiBhIGhhbmctdW50aWwtdGltZW91dApyYXRo ZXIgdGhhbiBhbiBpbW1lZGlhdGUgZmFpbHVyZS4pCgpUT0RPczoKLSBsb2NhbF9zZXJ2ZXIgYW5k IHRjcF9zZXJ2ZXJfY2xhc3MgYXJlIG5lYXJseSBpZGVudGljYWwgYW5kIHNob3VsZAogIHNoYXJl IGNvZGUuCi0gZml4IGV4Y2VwdGlvbi1yZWxhdGVkIHRpbWVvdXRzIGZvciAuYmFja2dyb3VuZCgp Ci0gZmlndXJlIG91dCB0aGUgcHJvcGVyIHVzZSBvZiAic2Vzc2lvbiIgdnMgIm1vZHVsZSIgc2Nv cGUKLSBlbnN1cmUgdGhhdCBwcS5saWJwcSB1bndpbmRzICh0byBjbG9zZSBjb25uZWN0aW9ucykg YmVmb3JlIHRjcF9zZXJ2ZXI7CiAgc2VlIGNvbW1lbnQgaW4gdGVzdF9zZXJ2ZXJfd2l0aF9zc2xf ZGlzYWJsZWQoKQotLS0KIC5jaXJydXMudGFza3MueW1sICAgICAgICAgICAgICAgfCAgMTggKyst CiBjb25maWcvcHl0ZXN0LXJlcXVpcmVtZW50cy50eHQgIHwgIDEwICsrCiBzcmMvdGVzdC9zc2wv TWFrZWZpbGUgICAgICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3NzbC9tZXNvbi5idWlsZCAgICAg ICAgfCAgIDYgKwogc3JjL3Rlc3Qvc3NsL3B5dC9jb25mdGVzdC5weSAgICB8IDEzMCArKysrKysr KysrKysrKysKIHNyYy90ZXN0L3NzbC9weXQvdGVzdF9jbGllbnQucHkgfCAyNzggKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNDM4IGluc2VydGlvbnMo KyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3NsL3B5dC9j b25mdGVzdC5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3NzbC9weXQvdGVzdF9jbGll bnQucHkKCmRpZmYgLS1naXQgYS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJydXMudGFza3MueW1s CmluZGV4IDNiMGJiMjAyMjc2Li5iOTc2YmFhNWIzNCAxMDA2NDQKLS0tIGEvLmNpcnJ1cy50YXNr cy55bWwKKysrIGIvLmNpcnJ1cy50YXNrcy55bWwKQEAgLTIyOSw2ICsyMjksNyBAQCB0YXNrOgog ICAgIHN5c2N0bCBrZXJuLmNvcmVmaWxlPScvdG1wL2NvcmVzLyVOLiVQLmNvcmUnCiAgIHNldHVw X2FkZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8CiAgICAgcGtnIGluc3RhbGwgLXkgXAorICAg ICAgcHkzMTEtY3J5cHRvZ3JhcGh5IFwKICAgICAgIHB5MzExLXBhY2thZ2luZyBcCiAgICAgICBw eTMxMS1weXRlc3QKIApAQCAtMzIzLDYgKzMyNCw3IEBAIHRhc2s6CiAKICAgICAgIHNldHVwX2Fk ZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8CiAgICAgICAgIHBrZ2luIC15IGluc3RhbGwgXAor ICAgICAgICAgIHB5MzEyLWNyeXB0b2dyYXBoeSBcCiAgICAgICAgICAgcHkzMTItcGFja2FnaW5n IFwKICAgICAgICAgICBweTMxMi10ZXN0CiAgICAgICAgIGxuIC1zIC91c3IvcGtnL2Jpbi9weXRl c3QtMy4xMiAvdXNyL3BrZy9iaW4vcHl0ZXN0CkBAIC0zNDcsOCArMzQ5LDkgQEAgdGFzazoKIAog ICAgICAgc2V0dXBfYWRkaXRpb25hbF9wYWNrYWdlc19zY3JpcHQ6IHwKICAgICAgICAgcGtnX2Fk ZCAtSSBcCi0gICAgICAgICAgcHkzLXRlc3QgXAotICAgICAgICAgIHB5My1wYWNrYWdpbmcKKyAg ICAgICAgICBweTMtY3J5cHRvZ3JhcGh5IFwKKyAgICAgICAgICBweTMtcGFja2FnaW5nIFwKKyAg ICAgICAgICBweTMtdGVzdAogICAgICAgIyBBbHdheXMgY29yZSBkdW1wIHRvICR7Q09SRV9EVU1Q X0RJUn0KICAgICAgIHNldF9jb3JlX2R1bXBfc2NyaXB0OiBzeXNjdGwgLXcga2Vybi5ub3N1aWRj b3JlZHVtcD0yCiAgICAgICA8PDogKm9wZW5ic2RfdGFza190ZW1wbGF0ZQpAQCAtNTA5LDggKzUx Miw5IEBAIHRhc2s6CiAgIHNldHVwX2FkZGl0aW9uYWxfcGFja2FnZXNfc2NyaXB0OiB8CiAgICAg YXB0LWdldCB1cGRhdGUKICAgICBERUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUgYXB0LWdl dCAteSBpbnN0YWxsIFwKLSAgICAgIHB5dGhvbjMtcHl0ZXN0IFwKLSAgICAgIHB5dGhvbjMtcGFj a2FnaW5nCisgICAgICBweXRob24zLWNyeXB0b2dyYXBoeSBcCisgICAgICBweXRob24zLXBhY2th Z2luZyBcCisgICAgICBweXRob24zLXB5dGVzdAogCiAgIG1hdHJpeDoKICAgICAjIFNQRUNJQUw6 CkBAIC02NTksNiArNjYzLDcgQEAgdGFzazoKICAgICBDSVJSVVNfV09SS0lOR19ESVI6ICR7SE9N RX0vcGdzcWwvCiAgICAgQ0NBQ0hFX0RJUjogJHtIT01FfS9jY2FjaGUKICAgICBNQUNQT1JUU19D QUNIRTogJHtIT01FfS9tYWNwb3J0cy1jYWNoZQorICAgIFBZVEVTVF9ERUJVR19URU1QUk9PVDog L3RtcCAgIyBkZWZhdWx0IGlzIHRvbyBsb25nIGZvciBVTklYIHNvY2tldHMgb24gTWFjCiAKICAg ICBNRVNPTl9GRUFUVVJFUzogPi0KICAgICAgIC1EYm9uam91cj1lbmFibGVkCkBAIC02NzksNiAr Njg0LDcgQEAgdGFzazoKICAgICAgIHA1LjM0LWlvLXR0eQogICAgICAgcDUuMzQtaXBjLXJ1bgog ICAgICAgcHl0aG9uMzEyCisgICAgICBweTMxMi1jcnlwdG9ncmFwaHkKICAgICAgIHB5MzEyLXBh Y2thZ2luZwogICAgICAgcHkzMTItcHl0ZXN0CiAgICAgICB0Y2wKQEAgLTgxNyw3ICs4MjMsNyBA QCB0YXNrOgogICAjIFhYWCBEb2VzIENob2NvbGF0ZXkgcmVhbGx5IG5vdCBoYXZlIGFueSBQeXRo b24gcGFja2FnZSBpbnN0YWxsZXJzPwogICBzZXR1cF9hZGRpdGlvbmFsX3BhY2thZ2VzX3Njcmlw dDogfAogICAgIFJFTSBjaG9jbyBpbnN0YWxsIC15IC0tbm8tcHJvZ3Jlc3MgLi4uCi0gICAgcGlw MyBpbnN0YWxsIC0tdXNlciBwYWNrYWdpbmcgcHl0ZXN0CisgICAgcGlwMyBpbnN0YWxsIC0tdXNl ciBjcnlwdG9ncmFwaHkgcGFja2FnaW5nIHB5dGVzdAogCiAgIHNldHVwX2hvc3RzX2ZpbGVfc2Ny aXB0OiB8CiAgICAgZWNobyAxMjcuMC4wLjEgcGctbG9hZGJhbGFuY2V0ZXN0ID4+IGM6XFdpbmRv d3NcU3lzdGVtMzJcRHJpdmVyc1xldGNcaG9zdHMKQEAgLTg4MCw3ICs4ODYsNyBAQCB0YXNrOgog ICAgIGZvbGRlcjogJHtDQ0FDSEVfRElSfQogCiAgIHNldHVwX2FkZGl0aW9uYWxfcGFja2FnZXNf c2NyaXB0OiB8Ci0gICAgQzpcbXN5czY0XHVzclxiaW5ccGFjbWFuLmV4ZSAtUyAtLW5vY29uZmly bSBtaW5ndy13NjQtdWNydC14ODZfNjQtcHl0aG9uLXBhY2thZ2luZyBtaW5ndy13NjQtdWNydC14 ODZfNjQtcHl0aG9uLXB5dGVzdAorICAgIEM6XG1zeXM2NFx1c3JcYmluXHBhY21hbi5leGUgLVMg LS1ub2NvbmZpcm0gbWluZ3ctdzY0LXVjcnQteDg2XzY0LXB5dGhvbi1jcnlwdG9ncmFwaHkgbWlu Z3ctdzY0LXVjcnQteDg2XzY0LXB5dGhvbi1wYWNrYWdpbmcgbWluZ3ctdzY0LXVjcnQteDg2XzY0 LXB5dGhvbi1weXRlc3QKIAogICBtaW5nd19pbmZvX3NjcmlwdDogfAogICAgICVCQVNIJSAtYyAi d2hlcmUgZ2NjIgpkaWZmIC0tZ2l0IGEvY29uZmlnL3B5dGVzdC1yZXF1aXJlbWVudHMudHh0IGIv Y29uZmlnL3B5dGVzdC1yZXF1aXJlbWVudHMudHh0CmluZGV4IDFjNWUyODNkMWUyLi5mMGNjMGEx YzUxOCAxMDA2NDQKLS0tIGEvY29uZmlnL3B5dGVzdC1yZXF1aXJlbWVudHMudHh0CisrKyBiL2Nv bmZpZy9weXRlc3QtcmVxdWlyZW1lbnRzLnR4dApAQCAtMTksMyArMTksMTMgQEAgcHl0ZXN0ID49 IDcuMCwgPCAxMAogCiAjIHBhY2thZ2luZyBpcyB1c2VkIGJ5IGNoZWNrX3B5dGVzdC5weSBhdCBj b25maWd1cmUgdGltZS4KIHBhY2thZ2luZworCisjIE5vdGVzIG9uIHRoZSBjcnlwdG9ncmFwaHkg cGFja2FnZToKKyMgLSAzLjMuMiBpcyBzaGlwcGVkIG9uIERlYmlhbiBidWxsc2V5ZS4KKyMgLSAz LjQueCBkcm9wcyBzdXBwb3J0IGZvciBQeXRob24gMiwgbWFraW5nIGl0IGEgdmVyc2lvbiBvZiBu b3RlIGZvciBvbGRlciBMVFMKKyMgICBkaXN0cm9zLgorIyAtIDM1Lnggc3dpdGNoZWQgdmVyc2lv bmluZyBzY2hlbWVzIGFuZCBtb3ZlZCB0byBSdXN0IHBhcnNpbmcuCisjIC0gNDAueCBpcyB0aGUg bGFzdCB2ZXJzaW9uIHN1cHBvcnRpbmcgUHl0aG9uIDMuNi4KKyMgWFhYIElzIGl0IGFwcHJvcHJp YXRlIHRvIHJlcXVpcmUgY3J5cHRvZ3JhcGh5LCBvciBzaG91bGQgd2Ugc2ltcGx5IHNraXAKKyMg ZGVwZW5kZW50IHRlc3RzPworY3J5cHRvZ3JhcGh5ID49IDMuMy4yCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9zc2wvTWFrZWZpbGUgYi9zcmMvdGVzdC9zc2wvTWFrZWZpbGUKaW5kZXggZThhMTYzOWRi MmQuLjg5NWVhNWVhNDFjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zc2wvTWFrZWZpbGUKKysrIGIv c3JjL3Rlc3Qvc3NsL01ha2VmaWxlCkBAIC0zMCw2ICszMCw4IEBAIGNsZWFuIGRpc3RjbGVhbjoK ICMgRG9lc24ndCBkZXBlbmQgb24gc3NsZmlsZXMgYmVjYXVzZSB3ZSBkb24ndCByZWJ1aWxkIHRo ZW0gYnkgZGVmYXVsdAogY2hlY2s6CiAJJChwcm92ZV9jaGVjaykKKwkjIFhYWCB0aGVzZSBzdWl0 ZXMgc2hvdWxkIHJ1biBpbmRlcGVuZGVudGx5LCBub3Qgc2VyaWFsbHkKKwkkKHB5dGVzdF9jaGVj aykKIAogaW5zdGFsbGNoZWNrOgogCSQocHJvdmVfaW5zdGFsbGNoZWNrKQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3NsL21lc29uLmJ1aWxkCmluZGV4 IGQ4ZTBmYjUxOGUwLi5hMGVlMmFmMDg5OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3NsL21lc29u LmJ1aWxkCisrKyBiL3NyYy90ZXN0L3NzbC9tZXNvbi5idWlsZApAQCAtMTUsNCArMTUsMTAgQEAg dGVzdHMgKz0gewogICAgICAgJ3QvMDAzX3NzbGluZm8ucGwnLAogICAgIF0sCiAgIH0sCisgICdw eXRlc3QnOiB7CisgICAgJ3Rlc3RzJzogWworICAgICAgJ3B5dC90ZXN0X2NsaWVudC5weScsCisg ICAgICAncHl0L3Rlc3Rfc2VydmVyLnB5JywKKyAgICBdLAorICB9LAogfQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3Qvc3NsL3B5dC9jb25mdGVzdC5weSBiL3NyYy90ZXN0L3NzbC9weXQvY29uZnRlc3Qu cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRiOGZhODY1NWE4Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3NsL3B5dC9jb25mdGVzdC5weQpAQCAtMCwwICsx LDEzMCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2Vz cworaW1wb3J0IHRlbXBmaWxlCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCisK K2ltcG9ydCBweXRlc3QKKworcHl0ZXN0X3BsdWdpbnMgPSBbInB5cGcuZml4dHVyZXMiXQorCisK K0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIpCitkZWYgY3J5cHRvZ3JhcGh5KCk6Cisg ICAgcmV0dXJuIHB5dGVzdC5pbXBvcnRvcnNraXAoImNyeXB0b2dyYXBoeSIsICIzLjMuMiIpCisK KworQ2VydCA9IG5hbWVkdHVwbGUoIkNlcnQiLCAiY2VydCwgY2VydHBhdGgsIGtleSwga2V5cGF0 aCIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJzZXNzaW9uIikKK2RlZiBjZXJ0cyhjcnlw dG9ncmFwaHksIHRtcF9wYXRoX2ZhY3RvcnkpOgorICAgICIiIgorICAgIENhY2hlcyBjb21tb25s eSB1c2VkIGNlcnRpZmljYXRlcyBhdCB0aGUgc2Vzc2lvbiBsZXZlbCwgYW5kIHByb3ZpZGVzIGEg d2F5CisgICAgdG8gY3JlYXRlIG5ldyBvbmVzLgorCisgICAgLSBjZXJ0cy5jYTogdGhlIHJvb3Qg Q0EgY2VydGlmaWNhdGUKKworICAgIC0gY2VydHMuc2VydmVyOiB0aGUgInN0YW5kYXJkIiBzZXJ2 ZXIgY2VydGZpY2F0ZSwgc2lnbmVkIGJ5IGNlcnRzLmNhCisKKyAgICAtIGNlcnRzLnNlcnZlcl9o b3N0OiB0aGUgaG9zdG5hbWUgb2YgdGhlIGNlcnRzLnNlcnZlciBjZXJ0aWZpY2F0ZQorCisgICAg LSBjZXJ0cy5uZXcoKTogY3JlYXRlcyBhIGN1c3RvbSBjZXJ0aWZpY2F0ZSwgc2lnbmVkIGJ5IGNl cnRzLmNhCisgICAgIiIiCisKKyAgICBmcm9tIGNyeXB0b2dyYXBoeSBpbXBvcnQgeDUwOQorICAg IGZyb20gY3J5cHRvZ3JhcGh5Lmhhem1hdC5wcmltaXRpdmVzIGltcG9ydCBoYXNoZXMsIHNlcmlh bGl6YXRpb24KKyAgICBmcm9tIGNyeXB0b2dyYXBoeS5oYXptYXQucHJpbWl0aXZlcy5hc3ltbWV0 cmljIGltcG9ydCByc2EKKyAgICBmcm9tIGNyeXB0b2dyYXBoeS54NTA5Lm9pZCBpbXBvcnQgTmFt ZU9JRAorCisgICAgdG1wZGlyID0gdG1wX3BhdGhfZmFjdG9yeS5ta3RlbXAoInRlc3QtY2VydHMi KQorCisgICAgY2xhc3MgX0NlcnRzOgorICAgICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAg ICAgICAgICBzZWxmLmNhID0gc2VsZi5uZXcoCisgICAgICAgICAgICAgICAgeDUwOS5OYW1lKAor ICAgICAgICAgICAgICAgICAgICBbeDUwOS5OYW1lQXR0cmlidXRlKE5hbWVPSUQuQ09NTU9OX05B TUUsICJQRyBweXRlc3QgQ0EiKV0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAg ICBjYT1UcnVlLAorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzZWxmLnNlcnZlcl9ob3N0 ID0gImV4YW1wbGUub3JnIgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBzZWxmLm5ldygKKyAg ICAgICAgICAgICAgICB4NTA5Lk5hbWUoCisgICAgICAgICAgICAgICAgICAgIFt4NTA5Lk5hbWVB dHRyaWJ1dGUoTmFtZU9JRC5DT01NT05fTkFNRSwgc2VsZi5zZXJ2ZXJfaG9zdCldLAorICAgICAg ICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAgICBkZWYgbmV3KHNlbGYsIHN1Ympl Y3Q6IHg1MDkuTmFtZSwgKiwgY2E9RmFsc2UpIC0+IENlcnQ6CisgICAgICAgICAgICAiIiIKKyAg ICAgICAgICAgIENyZWF0ZXMgYW5kIHNpZ25zIGEgbmV3IENlcnQgd2l0aCB0aGUgZ2l2ZW4gc3Vi amVjdCBuYW1lLiBJZiBjYSBpcworICAgICAgICAgICAgVHJ1ZSwgdGhlIGNlcnRpZmljYXRlIHdp bGwgYmUgc2VsZi1zaWduZWQ7IG90aGVyd2lzZSB0aGUgY2VydGlmaWNhdGUKKyAgICAgICAgICAg IGlzIHNpZ25lZCBieSBzZWxmLmNhLgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBrZXkg PSByc2EuZ2VuZXJhdGVfcHJpdmF0ZV9rZXkoCisgICAgICAgICAgICAgICAgcHVibGljX2V4cG9u ZW50PTY1NTM3LAorICAgICAgICAgICAgICAgIGtleV9zaXplPTIwNDgsCisgICAgICAgICAgICAp CisKKyAgICAgICAgICAgIGJ1aWxkZXIgPSB4NTA5LkNlcnRpZmljYXRlQnVpbGRlcigpCisgICAg ICAgICAgICBub3cgPSBkYXRldGltZS5kYXRldGltZS5ub3coZGF0ZXRpbWUudGltZXpvbmUudXRj KQorCisgICAgICAgICAgICBidWlsZGVyID0gKAorICAgICAgICAgICAgICAgIGJ1aWxkZXIuc3Vi amVjdF9uYW1lKHN1YmplY3QpCisgICAgICAgICAgICAgICAgLnB1YmxpY19rZXkoa2V5LnB1Ymxp Y19rZXkoKSkKKyAgICAgICAgICAgICAgICAuc2VyaWFsX251bWJlcih4NTA5LnJhbmRvbV9zZXJp YWxfbnVtYmVyKCkpCisgICAgICAgICAgICAgICAgLm5vdF92YWxpZF9iZWZvcmUobm93KQorICAg ICAgICAgICAgICAgIC5ub3RfdmFsaWRfYWZ0ZXIobm93ICsgZGF0ZXRpbWUudGltZWRlbHRhKGhv dXJzPTEpKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiBjYToKKyAgICAgICAgICAg ICAgICBidWlsZGVyID0gYnVpbGRlci5pc3N1ZXJfbmFtZShzdWJqZWN0KQorICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICBidWlsZGVyID0gYnVpbGRlci5pc3N1ZXJfbmFtZShzZWxm LmNhLmNlcnQuc3ViamVjdCkKKworICAgICAgICAgICAgYnVpbGRlciA9IGJ1aWxkZXIuYWRkX2V4 dGVuc2lvbigKKyAgICAgICAgICAgICAgICB4NTA5LkJhc2ljQ29uc3RyYWludHMoY2E9Y2EsIHBh dGhfbGVuZ3RoPU5vbmUpLAorICAgICAgICAgICAgICAgIGNyaXRpY2FsPVRydWUsCisgICAgICAg ICAgICApCisKKyAgICAgICAgICAgIGNlcnQgPSBidWlsZGVyLnNpZ24oCisgICAgICAgICAgICAg ICAgcHJpdmF0ZV9rZXk9a2V5IGlmIGNhIGVsc2Ugc2VsZi5jYS5rZXksCisgICAgICAgICAgICAg ICAgYWxnb3JpdGhtPWhhc2hlcy5TSEEyNTYoKSwKKyAgICAgICAgICAgICkKKworICAgICAgICAg ICAgIyBEdW1wIHRoZSBjZXJ0aWZpY2F0ZSBhbmQga2V5IHRvIGZpbGUuCisgICAgICAgICAgICBr ZXlwYXRoID0gc2VsZi5fdG9maWxlKAorICAgICAgICAgICAgICAgIGtleS5wcml2YXRlX2J5dGVz KAorICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemF0aW9uLkVuY29kaW5nLlBFTSwKKyAgICAg ICAgICAgICAgICAgICAgc2VyaWFsaXphdGlvbi5Qcml2YXRlRm9ybWF0LlBLQ1M4LAorICAgICAg ICAgICAgICAgICAgICBzZXJpYWxpemF0aW9uLk5vRW5jcnlwdGlvbigpLAorICAgICAgICAgICAg ICAgICksCisgICAgICAgICAgICAgICAgc3VmZml4PSIua2V5IiwKKyAgICAgICAgICAgICkKKyAg ICAgICAgICAgIGNlcnRwYXRoID0gc2VsZi5fdG9maWxlKAorICAgICAgICAgICAgICAgIGNlcnQu cHVibGljX2J5dGVzKHNlcmlhbGl6YXRpb24uRW5jb2RpbmcuUEVNKSwKKyAgICAgICAgICAgICAg ICBzdWZmaXg9Ii1jYS5jcnQiIGlmIGNhIGVsc2UgIi5jcnQiLAorICAgICAgICAgICAgKQorCisg ICAgICAgICAgICByZXR1cm4gQ2VydCgKKyAgICAgICAgICAgICAgICBjZXJ0PWNlcnQsCisgICAg ICAgICAgICAgICAgY2VydHBhdGg9Y2VydHBhdGgsCisgICAgICAgICAgICAgICAga2V5PWtleSwK KyAgICAgICAgICAgICAgICBrZXlwYXRoPWtleXBhdGgsCisgICAgICAgICAgICApCisKKyAgICAg ICAgZGVmIF90b2ZpbGUoc2VsZiwgZGF0YTogYnl0ZXMsICosIHN1ZmZpeCkgLT4gc3RyOgorICAg ICAgICAgICAgIiIiCisgICAgICAgICAgICBEdW1wcyBkYXRhIHRvIGEgZmlsZSBvbiBkaXNrIHdp dGggdGhlIHJlcXVlc3RlZCBzdWZmaXggYW5kIHJldHVybnMKKyAgICAgICAgICAgIHRoZSBwYXRo LiBUaGUgZmlsZSBpcyBsb2NhdGVkIHNvbWV3aGVyZSBpbiBweXRlc3QncyB0ZW1wb3JhcnkKKyAg ICAgICAgICAgIGRpcmVjdG9yeSByb290LgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBm ID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKHN1ZmZpeD1zdWZmaXgsIGRpcj10bXBkaXIs IGRlbGV0ZT1GYWxzZSkKKyAgICAgICAgICAgIHdpdGggZjoKKyAgICAgICAgICAgICAgICBmLndy aXRlKGRhdGEpCisKKyAgICAgICAgICAgIHJldHVybiBmLm5hbWUKKworICAgIHJldHVybiBfQ2Vy dHMoKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL3B5dC90ZXN0X2NsaWVudC5weSBiL3NyYy90 ZXN0L3NzbC9weXQvdGVzdF9jbGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAuLjI0NzY4MWY5M2NiCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3NsL3B5 dC90ZXN0X2NsaWVudC5weQpAQCAtMCwwICsxLDI3OCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCBjb250ZXh0bGli CitpbXBvcnQgY3R5cGVzCitpbXBvcnQgc29ja2V0CitpbXBvcnQgc3NsCitpbXBvcnQgc3RydWN0 CitpbXBvcnQgdGhyZWFkaW5nCitmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKKworaW1wb3J0 IHB5dGVzdAorCitpbXBvcnQgcHlwZworZnJvbSBsaWJwcSBpbXBvcnQgTGlicHFFcnJvciwgRXhl Y1N0YXR1cworCisjIFRoaXMgc3VpdGUgb3BlbnMgdXAgbG9jYWwgVENQIHBvcnRzIGFuZCBpcyBo aWRkZW4gYmVoaW5kIFBHX1RFU1RfRVhUUkE9c3NsLgorcHl0ZXN0bWFyayA9IHB5cGcucmVxdWly ZV90ZXN0X2V4dHJhKCJzc2wiKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ic2Vzc2lvbiIs IGF1dG91c2U9VHJ1ZSkKK2RlZiBza2lwX2lmX25vX3NzbF9zdXBwb3J0KGxpYnBxX2hhbmRsZSk6 CisgICAgIiIiU2tpcHMgdGVzdHMgaWYgU1NMIHN1cHBvcnQgaXMgbm90IGNvbmZpZ3VyZWQuIiIi CisKKyAgICAjIERlY2xhcmUgUFFzc2xBdHRyaWJ1dGUoKS4KKyAgICBQUXNzbEF0dHJpYnV0ZSA9 IGxpYnBxX2hhbmRsZS5QUXNzbEF0dHJpYnV0ZQorICAgIFBRc3NsQXR0cmlidXRlLnJlc3R5cGUg PSBjdHlwZXMuY19jaGFyX3AKKyAgICBQUXNzbEF0dHJpYnV0ZS5hcmd0eXBlcyA9IFtjdHlwZXMu Y192b2lkX3AsIGN0eXBlcy5jX2NoYXJfcF0KKworICAgIGlmIG5vdCBQUXNzbEF0dHJpYnV0ZShO b25lLCBiImxpYnJhcnkiKToKKyAgICAgICAgcHl0ZXN0LnNraXAoInJlcXVpcmVzIFNTTCBzdXBw b3J0IHRvIGJlIGNvbmZpZ3VyZWQiKQorCisKKyMKKyMgVGVzdCBGaXh0dXJlcworIworCisKK0Bw eXRlc3QuZml4dHVyZQorZGVmIHRjcF9zZXJ2ZXJfY2xhc3MocmVtYWluaW5nX3RpbWVvdXQpOgor ICAgICIiIgorICAgIE1ldGFmaXh0dXJlIHRvIGNvbWJpbmUgcmVsYXRlZCBsb2dpYyBmb3IgdGNw X3NlcnZlciBhbmQgc3NsX3NlcnZlci4KKworICAgIFRPRE86IGNvbWJpbmUgd2l0aCB0ZXN0X2xp YnBxLmxvY2FsX3NlcnZlcgorICAgICIiIgorCisgICAgY2xhc3MgX1RDUFNlcnZlcihjb250ZXh0 bGliLkV4aXRTdGFjayk6CisgICAgICAgICIiIgorICAgICAgICBJbXBsZW1lbnRhdGlvbiBjbGFz cyBmb3IgdGNwX3NlcnZlci4gU2VlIC5iYWNrZ3JvdW5kKCkgZm9yIHRoZSBwcmltYXJ5CisgICAg ICAgIGVudHJ5IHBvaW50IGZvciB0ZXN0cy4gUG9zdGdyZXMgY2xpZW50cyBtYXkgY29ubmVjdCB0 byB0aGlzIHNlcnZlciB2aWEKKyAgICAgICAgKip0Y3Bfc2VydmVyLmNvbm5pbmZvLgorCisgICAg ICAgIF9UQ1BTZXJ2ZXIgZGVyaXZlcyBmcm9tIGNvbnRleHRsaWIuRXhpdFN0YWNrIHRvIHByb3Zp ZGUgZWFzeSBjbGVhbnVwIG9mCisgICAgICAgIGFzc29jaWF0ZWQgcmVzb3VyY2VzOyBzZWUgdGhl IGRvY3VtZW50YXRpb24gZm9yIHRoYXQgY2xhc3MgZm9yIGEgZnVsbAorICAgICAgICBleHBsYW5h dGlvbi4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAg ICAgICAgc3VwZXIoKS5fX2luaXRfXygpCisKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZCA9IE5v bmUKKyAgICAgICAgICAgIHNlbGYuX3RocmVhZF9leGMgPSBOb25lCisgICAgICAgICAgICBzZWxm Ll9saXN0ZW5lciA9IHNlbGYuZW50ZXJfY29udGV4dCgKKyAgICAgICAgICAgICAgICBzb2NrZXQu c29ja2V0KHNvY2tldC5BRl9JTkVULCBzb2NrZXQuU09DS19TVFJFQU0pLAorICAgICAgICAgICAg KQorCisgICAgICAgICAgICBzZWxmLl9iaW5kX2FuZF9saXN0ZW4oKQorICAgICAgICAgICAgc29j a25hbWUgPSBzZWxmLl9saXN0ZW5lci5nZXRzb2NrbmFtZSgpCisgICAgICAgICAgICBzZWxmLmNv bm5pbmZvID0gZGljdCgKKyAgICAgICAgICAgICAgICBob3N0YWRkcj1zb2NrbmFtZVswXSwKKyAg ICAgICAgICAgICAgICBwb3J0PXNvY2tuYW1lWzFdLAorICAgICAgICAgICAgKQorCisgICAgICAg IGRlZiBfYmluZF9hbmRfbGlzdGVuKHNlbGYpOgorICAgICAgICAgICAgIiIiCisgICAgICAgICAg ICBEb2VzIHRoZSBhY3R1YWwgd29yayBvZiBiaW5kaW5nIHRoZSBzb2NrZXQgYW5kIGxpc3Rlbmlu ZyBmb3IKKyAgICAgICAgICAgIGNvbm5lY3Rpb25zLgorCisgICAgICAgICAgICBUaGUgbGlzdGVu IGJhY2tsb2cgaXMgY3VycmVudGx5IGhhcmRjb2RlZCB0byBvbmUuCisgICAgICAgICAgICAiIiIK KyAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyLmJpbmQoKCIxMjcuMC4wLjEiLCAwKSkKKyAgICAg ICAgICAgIHNlbGYuX2xpc3RlbmVyLmxpc3RlbigxKQorCisgICAgICAgIGRlZiBiYWNrZ3JvdW5k KHNlbGYsIGZuOiBDYWxsYWJsZVtbc29ja2V0LnNvY2tldF0sIE5vbmVdKSAtPiBOb25lOgorICAg ICAgICAgICAgIiIiCisgICAgICAgICAgICBBY2NlcHRzIGEgY2xpZW50IGNvbm5lY3Rpb24gb24g YSBiYWNrZ3JvdW5kIHRocmVhZCBhbmQgcGFzc2VzIGl0IHRvCisgICAgICAgICAgICB0aGUgcHJv dmlkZWQgY2FsbGJhY2suIEFueSBleGNlcHRpb25zIHJhaXNlZCBmcm9tIHRoZSBjYWxsYmFjayB3 aWxsCisgICAgICAgICAgICBiZSByZS1yYWlzZWQgb24gdGhlIG1haW4gdGhyZWFkIGR1cmluZyBm aXh0dXJlIHRlYXJkb3duLgorCisgICAgICAgICAgICBCbG9ja2luZyBvcGVyYXRpb25zIG9uIHRo ZSBjb25uZWN0ZWQgc29ja2V0IGRlZmF1bHQgdG8gdXNpbmcgdGhlCisgICAgICAgICAgICByZW1h aW5pbmdfdGltZW91dCgpLCB0aG91Z2ggdGhpcyBjYW4gYmUgY2hhbmdlZCBieSB0aGUgdGVzdCB2 aWEgdGhlCisgICAgICAgICAgICBzb2NrZXQncyAuc2V0dGltZW91dCgpLgorICAgICAgICAgICAg IiIiCisKKyAgICAgICAgICAgIGRlZiBfYmcoKToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAg ICAgICAgICAgICAgICAgIHNlbGYuX2xpc3RlbmVyLnNldHRpbWVvdXQocmVtYWluaW5nX3RpbWVv dXQoKSkKKyAgICAgICAgICAgICAgICAgICAgc29jaywgXyA9IHNlbGYuX2xpc3RlbmVyLmFjY2Vw dCgpCisKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBzb2NrOgorICAgICAgICAgICAgICAgICAg ICAgICAgc29jay5zZXR0aW1lb3V0KHJlbWFpbmluZ190aW1lb3V0KCkpCisgICAgICAgICAgICAg ICAgICAgICAgICBmbihzb2NrKQorCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgICAgICAgICAjIFNhdmUgdGhlIGV4Y2VwdGlvbiBmb3IgcmUtcmFp c2luZyBvbiB0aGUgbWFpbiB0aHJlYWQuCisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3RocmVh ZF9leGMgPSBlCisKKyAgICAgICAgICAgICMgVE9ETzogcmF0aGVyIHRoYW4gdXNpbmcgY2FsbGJh Y2soKSwgY29uc2lkZXIgZXhwbGljaXRseSBzaWduYWxpbmcKKyAgICAgICAgICAgICMgdGhlIGZu KCkgaW1wbGVtZW50YXRpb24gdG8gc3RvcCBlYXJseSBpZiB3ZSBnZXQgYW4gZXhjZXB0aW9uLgor ICAgICAgICAgICAgIyBPdGhlcndpc2Ugd2UnbGwgaGFuZyB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0 aW1lb3V0LgorICAgICAgICAgICAgc2VsZi5fdGhyZWFkID0gdGhyZWFkaW5nLlRocmVhZCh0YXJn ZXQ9X2JnKQorICAgICAgICAgICAgc2VsZi5jYWxsYmFjayhzZWxmLl9qb2luKQorCisgICAgICAg ICAgICBzZWxmLl90aHJlYWQuc3RhcnQoKQorCisgICAgICAgIGRlZiBfam9pbihzZWxmKToKKyAg ICAgICAgICAgICIiIgorICAgICAgICAgICAgV2FpdHMgZm9yIHRoZSBiYWNrZ3JvdW5kIHRocmVh ZCB0byBmaW5pc2ggYW5kIHJhaXNlcyBhbnkgdGhyb3duCisgICAgICAgICAgICBleGNlcHRpb24u IFRoaXMgaXMgY2FsbGVkIGR1cmluZyBmaXh0dXJlIHRlYXJkb3duLgorICAgICAgICAgICAgIiIi CisgICAgICAgICAgICAjIEdpdmUgYSBsaXR0bGUgYml0IG9mIHdpZ2dsZSByb29tIG9uIHRoZSBq b2luIHRpbWVvdXQsIHNpbmNlIHdlJ3JlCisgICAgICAgICAgICAjIHJhY2luZyBhZ2FpbnN0IHRo ZSB0ZXN0J3Mgb3duIHVzZSBvZiByZW1haW5pbmdfdGltZW91dCgpLiAoSXQncworICAgICAgICAg ICAgIyBwcmVmZXJhYmxlIHRvIGxldCB0ZXN0cyByZXBvcnQgdGltZW91dHM7IHRoZSBzdGFjayB0 cmFjZXMgd2lsbAorICAgICAgICAgICAgIyBoZWxwIHdpdGggZGVidWdnaW5nLikKKyAgICAgICAg ICAgIHNlbGYuX3RocmVhZC5qb2luKHJlbWFpbmluZ190aW1lb3V0KCkgKyAxKQorICAgICAgICAg ICAgaWYgc2VsZi5fdGhyZWFkLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAgICAgcmFpc2UgVGlt ZW91dEVycm9yKCJiYWNrZ3JvdW5kIHRocmVhZCBpcyBzdGlsbCBydW5uaW5nIGFmdGVyIHRpbWVv dXQiKQorCisgICAgICAgICAgICBpZiBzZWxmLl90aHJlYWRfZXhjIGlzIG5vdCBOb25lOgorICAg ICAgICAgICAgICAgIHJhaXNlIHNlbGYuX3RocmVhZF9leGMKKworICAgIHJldHVybiBfVENQU2Vy dmVyCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgdGNwX3NlcnZlcih0Y3Bfc2VydmVyX2NsYXNz KToKKyAgICAiIiIKKyAgICBPcGVucyB1cCBhIGxvY2FsIFRDUCBzb2NrZXQgZm9yIG1vY2tpbmcg YSBQb3N0Z3JlcyBzZXJ2ZXIgb24gYSBiYWNrZ3JvdW5kCisgICAgdGhyZWFkLiBTZWUgdGhlIF9U Q1BTZXJ2ZXIgQVBJIGZvciB1c2FnZS4KKyAgICAiIiIKKyAgICB3aXRoIHRjcF9zZXJ2ZXJfY2xh c3MoKSBhcyBzOgorICAgICAgICB5aWVsZCBzCisKKworQHB5dGVzdC5maXh0dXJlCitkZWYgc3Ns X3NlcnZlcih0Y3Bfc2VydmVyX2NsYXNzLCBjZXJ0cyk6CisgICAgIiIiCisgICAgTGlrZSB0Y3Bf c2VydmVyLCBidXQgd2l0aCBhbiBhZGRpdGlvbmFsIC5iYWNrZ3JvdW5kX3NzbCgpIG1ldGhvZCB3 aGljaCB3aWxsCisgICAgcGVyZm9ybSBhIFNTTFJlcXVlc3QgaGFuZHNoYWtlIG9uIHRoZSBzb2Nr ZXQgYmVmb3JlIGhhbmRpbmcgdGhlIGNvbm5lY3Rpb24KKyAgICB0byB0aGUgdGVzdCBjYWxsYmFj ay4KKworICAgIFRoaXMgc2VydmVyIHVzZXMgY2VydHMuc2VydmVyIGFzIGl0cyBpZGVudGl0eS4K KyAgICAiIiIKKworICAgIGNsYXNzIF9TU0xTZXJ2ZXIodGNwX3NlcnZlcl9jbGFzcyk6CisgICAg ICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgICAgIHN1cGVyKCkuX19pbml0X18oKQor CisgICAgICAgICAgICBzZWxmLmNvbm5pbmZvWyJob3N0Il0gPSBjZXJ0cy5zZXJ2ZXJfaG9zdAor CisgICAgICAgICAgICBzZWxmLl9jdHggPSBzc2wuU1NMQ29udGV4dChzc2wuUFJPVE9DT0xfVExT X1NFUlZFUikKKyAgICAgICAgICAgIHNlbGYuX2N0eC5sb2FkX2NlcnRfY2hhaW4oY2VydHMuc2Vy dmVyLmNlcnRwYXRoLCBjZXJ0cy5zZXJ2ZXIua2V5cGF0aCkKKworICAgICAgICBkZWYgYmFja2dy b3VuZF9zc2woc2VsZiwgZm46IENhbGxhYmxlW1tzc2wuU1NMU29ja2V0XSwgTm9uZV0pIC0+IE5v bmU6CisgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIEludm9rZXMgYSBzZXJ2ZXIgY2FsbGJh Y2sgYXMgd2l0aCAuYmFja2dyb3VuZCgpLCBidXQgYW4gU1NMUmVxdWVzdAorICAgICAgICAgICAg aGFuZHNoYWtlIGlzIHBlcmZvcm1lZCBmaXJzdCwgYW5kIHRoZSBzb2NrZXQgcHJvdmlkZWQgdG8g dGhlCisgICAgICAgICAgICBjYWxsYmFjayBoYXMgYmVlbiB3cmFwcGVkIGluIGFuIE9wZW5TU0wg bGF5ZXIuCisgICAgICAgICAgICAiIiIKKworICAgICAgICAgICAgZGVmIGhhbmRzaGFrZShzOiBz b2NrZXQuc29ja2V0KToKKyAgICAgICAgICAgICAgICBwa3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCIh SSIsIHMucmVjdig0KSlbMF0KKworICAgICAgICAgICAgICAgICMgTWFrZSBzdXJlIHdlIGdldCBh biBTU0xSZXF1ZXN0LgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzdHJ1Y3QudW5wYWNrKCIh SEgiLCBzLnJlY3YoNCkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHZlcnNpb24gPT0gKDEyMzQs IDU2NzkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBrdGxlbiA9PSA4CisKKyAgICAgICAgICAg ICAgICAjIEFjY2VwdCB0aGUgU1NMUmVxdWVzdC4KKyAgICAgICAgICAgICAgICBzLnNlbmQoYiJT IikKKworICAgICAgICAgICAgICAgIHdpdGggc2VsZi5fY3R4LndyYXBfc29ja2V0KHMsIHNlcnZl cl9zaWRlPVRydWUpIGFzIHdyYXBwZWQ6CisgICAgICAgICAgICAgICAgICAgIGZuKHdyYXBwZWQp CisKKyAgICAgICAgICAgIHNlbGYuYmFja2dyb3VuZChoYW5kc2hha2UpCisKKyAgICB3aXRoIF9T U0xTZXJ2ZXIoKSBhcyBzOgorICAgICAgICB5aWVsZCBzCisKKworIworIyBUZXN0cworIworCisK K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgic3NsbW9kZSIsICgicmVxdWlyZSIsICJ2ZXJpZnkt Y2EiLCAidmVyaWZ5LWZ1bGwiKSkKK2RlZiB0ZXN0X3NlcnZlcl93aXRoX3NzbF9kaXNhYmxlZChj b25uZWN0LCB0Y3Bfc2VydmVyLCBjZXJ0cywgc3NsbW9kZSk6CisgICAgIiIiCisgICAgTWFrZSBz dXJlIGNsaWVudCByZWZ1c2VzIHRvIHRhbGsgdG8gbm9uLVNTTCBzZXJ2ZXJzIHdpdGggc3RyaWN0 ZXIKKyAgICBzc2xtb2Rlcy4KKyAgICAiIiIKKworICAgIGRlZiByZWZ1c2Vfc3NsKHM6IHNvY2tl dC5zb2NrZXQpOgorICAgICAgICBwa3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCIhSSIsIHMucmVjdig0 KSlbMF0KKworICAgICAgICAjIE1ha2Ugc3VyZSB3ZSBnZXQgYW4gU1NMUmVxdWVzdC4KKyAgICAg ICAgdmVyc2lvbiA9IHN0cnVjdC51bnBhY2soIiFISCIsIHMucmVjdig0KSkKKyAgICAgICAgYXNz ZXJ0IHZlcnNpb24gPT0gKDEyMzQsIDU2NzkpCisgICAgICAgIGFzc2VydCBwa3RsZW4gPT0gOAor CisgICAgICAgICMgUmVmdXNlIHRoZSBTU0xSZXF1ZXN0LgorICAgICAgICBzLnNlbmQoYiJOIikK KworICAgICAgICAjIFdhaXQgZm9yIHRoZSBjbGllbnQgdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24u CisgICAgICAgIGFzc2VydCBub3Qgcy5yZWN2KDEpLCAiY2xpZW50IHNlbnQgdW5leHBlY3RlZCBk YXRhIgorCisgICAgdGNwX3NlcnZlci5iYWNrZ3JvdW5kKHJlZnVzZV9zc2wpCisKKyAgICB3aXRo IHB5dGVzdC5yYWlzZXMoTGlicHFFcnJvciwgbWF0Y2g9InNlcnZlciBkb2VzIG5vdCBzdXBwb3J0 IFNTTCIpOgorICAgICAgICBjb25uZWN0KAorICAgICAgICAgICAgKip0Y3Bfc2VydmVyLmNvbm5p bmZvLAorICAgICAgICAgICAgc3Nscm9vdGNlcnQ9Y2VydHMuY2EuY2VydHBhdGgsCisgICAgICAg ICAgICBzc2xtb2RlPXNzbG1vZGUsCisgICAgICAgICkKKworCitkZWYgdGVzdF92ZXJpZnlfZnVs bF9jb25uZWN0aW9uKGNvbm5lY3QsIHNzbF9zZXJ2ZXIsIGNlcnRzKToKKyAgICAiIiJDb21wbGV0 ZXMgYSB2ZXJpZnktZnVsbCBjb25uZWN0aW9uIGFuZCBlbXB0eSBxdWVyeS4iIiIKKworICAgIGRl ZiBoYW5kbGVfZW1wdHlfcXVlcnkoczogc3NsLlNTTFNvY2tldCk6CisgICAgICAgIHBrdGxlbiA9 IHN0cnVjdC51bnBhY2soIiFJIiwgcy5yZWN2KDQpKVswXQorCisgICAgICAgICMgQ2hlY2sgdGhl IHN0YXJ0dXAgcGFja2V0IHZlcnNpb24sIHRoZW4gZGlzY2FyZCB0aGUgcmVtYWluZGVyLgorICAg ICAgICB2ZXJzaW9uID0gc3RydWN0LnVucGFjaygiIUhIIiwgcy5yZWN2KDQpKQorICAgICAgICBh c3NlcnQgdmVyc2lvbiA9PSAoMywgMCkKKyAgICAgICAgcy5yZWN2KHBrdGxlbiAtIDgpCisKKyAg ICAgICAgIyBTZW5kIHRoZSByZXF1aXJlZCBsaXRhbnkgb2Ygc2VydmVyIG1lc3NhZ2VzLgorICAg ICAgICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSUkiLCBiIlIiLCA4LCAwKSkgICMgQXV0aGVudGlj YXRpb25PSworCisgICAgICAgICMgUGFyYW1ldGVyU3RhdHVzOiBjbGllbnRfZW5jb2RpbmcKKyAg ICAgICAga2V5ID0gYiJjbGllbnRfZW5jb2RpbmdcMCIKKyAgICAgICAgdmFsID0gYiJVVEYtOFww IgorICAgICAgICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSSIsIGIiUyIsIDQgKyBsZW4oa2V5KSAr IGxlbih2YWwpKSArIGtleSArIHZhbCkKKworICAgICAgICAjIFBhcmFtZXRlclN0YXR1czogRGF0 ZVN0eWxlCisgICAgICAgIGtleSA9IGIiRGF0ZVN0eWxlXDAiCisgICAgICAgIHZhbCA9IGIiSVNP LCBNRFlcMCIKKyAgICAgICAgcy5zZW5kKHN0cnVjdC5wYWNrKCIhY0kiLCBiIlMiLCA0ICsgbGVu KGtleSkgKyBsZW4odmFsKSkgKyBrZXkgKyB2YWwpCisKKyAgICAgICAgcy5zZW5kKHN0cnVjdC5w YWNrKCIhY0lJSSIsIGIiSyIsIDEyLCAxMjM0LCAxMjM0KSkgICMgQmFja2VuZEtleURhdGEKKyAg ICAgICAgcy5zZW5kKHN0cnVjdC5wYWNrKCIhY0ljIiwgYiJaIiwgNSwgYiJJIikpICAjIFJlYWR5 Rm9yUXVlcnkKKworICAgICAgICAjIEV4cGVjdCBhbiBlbXB0eSBxdWVyeS4KKyAgICAgICAgcGt0 dHlwZSA9IHMucmVjdigxKQorICAgICAgICBhc3NlcnQgcGt0dHlwZSA9PSBiIlEiCisgICAgICAg IHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFJIiwgcy5yZWN2KDQpKVswXQorICAgICAgICBhc3Nl cnQgcy5yZWN2KHBrdGxlbiAtIDQpID09IGIiXDAiCisKKyAgICAgICAgIyBTZW5kIGFuIEVtcHR5 UXVlcnlSZXNwb25zZStSZWFkeUZvclF1ZXJ5LgorICAgICAgICBzLnNlbmQoc3RydWN0LnBhY2so IiFjSSIsIGIiSSIsIDQpKQorICAgICAgICBzLnNlbmQoc3RydWN0LnBhY2soIiFjSWMiLCBiIloi LCA1LCBiIkkiKSkKKworICAgICAgICAjIGxpYnBxIHNob3VsZCB0ZXJtaW5hdGUgYW5kIGNsb3Nl IHRoZSBjb25uZWN0aW9uLgorICAgICAgICBhc3NlcnQgcy5yZWN2KDEpID09IGIiWCIKKyAgICAg ICAgcGt0bGVuID0gc3RydWN0LnVucGFjaygiIUkiLCBzLnJlY3YoNCkpWzBdCisgICAgICAgIGFz c2VydCBwa3RsZW4gPT0gNAorCisgICAgICAgIGFzc2VydCBub3Qgcy5yZWN2KDEpLCAiY2xpZW50 IHNlbnQgdW5leHBlY3RlZCBkYXRhIgorCisgICAgc3NsX3NlcnZlci5iYWNrZ3JvdW5kX3NzbCho YW5kbGVfZW1wdHlfcXVlcnkpCisKKyAgICBjb25uID0gY29ubmVjdCgKKyAgICAgICAgKipzc2xf c2VydmVyLmNvbm5pbmZvLAorICAgICAgICBzc2xyb290Y2VydD1jZXJ0cy5jYS5jZXJ0cGF0aCwK KyAgICAgICAgc3NsbW9kZT0idmVyaWZ5LWZ1bGwiLAorICAgICkKKyAgICB3aXRoIGNvbm46Cisg ICAgICAgIGFzc2VydCBjb25uLmV4ZWMoIiIpLnN0YXR1cygpID09IEV4ZWNTdGF0dXMuUEdSRVNf RU1QVFlfUVVFUlkKLS0gCjIuNTIuMAoK --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0006-WIP-pytest-Add-some-server-side-SSL-tests.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0006-WIP-pytest-Add-some-server-side-SSL-tests.patch RnJvbSAxNGZiYzA2Y2FjZTZkZDI3ODYyZGQwNjA3NjA4ZTlhZjI3YWE1ZjgwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAxNiBEZWMgMjAyNSAwOTozMTo0NiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjQgNi83XSBXSVA6IHB5dGVzdDogQWRkIHNvbWUgc2VydmVyLXNpZGUgU1NMIHRl c3RzCgpJbiB0aGUgc2FtZSB2ZWluIGFzIHRoZSBwcmV2aW91cyBjb21taXQsIHRoaXMgaXMgYSBz ZXJ2ZXItb25seSB0ZXN0CnN1aXRlIG9wZXJhdGluZyBhZ2FpbnN0IGEgbW9jayBjbGllbnQuIFRo ZSB0ZXN0IGl0c2VsZiBpcyBhIGhlYXZpbHkKcGFyYW1ldGVyaXplZCBjaGVjayBmb3IgZGlyZWN0 LVNTTCBoYW5kc2hha2UgYmVoYXZpb3IsIHVzaW5nIGEKY29tYmluYXRpb24gb2YgInN0YW5kYXJk IiBhbmQgImN1c3RvbSIgY2VydGlmaWNhdGVzIHZpYSB0aGUgY2VydHMKZml4dHVyZS4KCmluc3Rh bGxjaGVjayBpcyBjdXJyZW50bHkgdW5zdXBwb3J0ZWQsIGJ1dCB0aGUgYXJjaGl0ZWN0dXJlIGhh cyBzb21lCmV4dGVuc2lvbiBwb2ludHMgdGhhdCBzaG91bGQgbWFrZSBpdCBwb3NzaWJsZSBsYXRl ci4gRm9yIG5vdywgYSBuZXcKc2VydmVyIGlzIGFsd2F5cyBzdGFydGVkIGZvciB0aGUgdGVzdCBz ZXNzaW9uLgoKTmV3IHNlc3Npb24tbGV2ZWwgZml4dHVyZXMgaGF2ZSBiZWVuIGFkZGVkIHdoaWNo IHByb2JhYmx5IG5lZWQgdG8KbWlncmF0ZSB0byB0aGUgYHBnYCBwYWNrYWdlLiBPZiBub3RlOgoK LSBkYXRhZGlyIHBvaW50cyB0byB0aGUgc2VydmVyJ3MgZGF0YSBkaXJlY3RvcnkKLSBzb2NrZGly IHBvaW50cyB0byB0aGUgc2VydmVyJ3MgVU5JWCBzb2NrZXQvbG9jayBkaXJlY3RvcnkKLSBzZXJ2 ZXJfaW5zdGFuY2UgYWN0dWFsbHkgaW5pdHMgYW5kIHN0YXJ0cyBhIHNlcnZlciB2aWEgdGhlIHBn X2N0bCBvbgogIFBBVEggKGFuZCBjb3VsZCBldmVudHVhbGx5IHBvaW50IGF0IGFuIGluc3RhbGxj aGVjayB0YXJnZXQpCgpXcmFwcGluZyB0aGVzZSBzZXNzaW9uLWxldmVsIGZpeHR1cmVzIGlzIHBn X3NlcnZlcltfc2Vzc2lvbl0sIHdoaWNoCnByb3ZpZGVzIEFQSXMgZm9yIGNvbmZpZ3VyYXRpb24g Y2hhbmdlcyB0aGF0IHVud2luZCB0aGVtc2VsdmVzIGF0IHRoZQplbmQgb2YgZml4dHVyZSBzY29w ZXMuIFRoZXJlJ3MgYWxzbyBhbiBleGFtcGxlIG9mIG5lc3RlZCBzY29wZXMsIHZpYQpwZ19zZXJ2 ZXJfc2Vzc2lvbi5zdWJjb250ZXh0KCkuIE1hbnkgVE9ET3MgcmVtYWluIGJlZm9yZSB3ZSdyZSBv biBwYXIKd2l0aCBUZXN0OjpDbHVzdGVyLCBidXQgdGhpcyBzaG91bGQgaWxsdXN0cmF0ZSBteSBk ZXNpcmVkIGFyY2hpdGVjdHVyZQpwcmV0dHkgd2VsbC4KCldpbmRvd3MgY3VycmVudGx5IHVzZXMg U0NSQU0tb3Zlci1VTklYIGZvciB0aGUgYWRtaW4gYWNjb3VudCByYXRoZXIgdGhhbgpTU1BJLW92 ZXItVENQLiBUaGVyZSdzIHNvbWUgZGVhZCBXaW4zMiBjb2RlIGluIHBnLmN1cnJlbnRfd2luZG93 c191c2VyLApidXQgSSd2ZSBrZXB0IGl0IGFzIGFuIGlsbHVzdHJhdGlvbiBvZiBob3cgYSBkZXZl bG9wZXIgbWlnaHQgd3JpdGUgc3VjaApjb2RlIGZvciBTU1BJLiBJJ2xsIHByb2JhYmx5IHJlbW92 ZSBpdCBpbiBhIGZ1dHVyZSBwYXRjaCB2ZXJzaW9uLgoKVE9ET3M6Ci0gcG9ydCBtb3JlIHNlcnZl ciBjb25maWd1cmF0aW9uIGJlaGF2aW9yIGZyb20gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlcgot IGRlY2lkZSBhZ2FpbiBvbiAic2Vzc2lvbiIgdnMuICJtb2R1bGUiIHNjb3BlIGZvciBzZXJ2ZXIg Zml4dHVyZXMKLSBpbXByb3ZlIHJlbWFpbmluZ190aW1lb3V0KCkgaW50ZWdyYXRpb24gd2l0aCBz b2NrZXQgb3BlcmF0aW9uczsgYXQgdGhlCiAgbW9tZW50LCB0aGUgdGltZW91dCByZXNldHMgb24g ZXZlcnkgY2FsbCByYXRoZXIgdGhhbiBkZWNyZW1lbnRpbmcKLS0tCiBzcmMvdGVzdC9zc2wvcHl0 L2NvbmZ0ZXN0LnB5ICAgIHwgIDUwICsrKysrKysrKysKIHNyYy90ZXN0L3NzbC9weXQvdGVzdF9z ZXJ2ZXIucHkgfCAxNjEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgMjExIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9z c2wvcHl0L3Rlc3Rfc2VydmVyLnB5CgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL3B5dC9jb25m dGVzdC5weSBiL3NyYy90ZXN0L3NzbC9weXQvY29uZnRlc3QucHkKaW5kZXggZGI4ZmE4NjU1YTgu LmRhY2I5NTk5NTMyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zc2wvcHl0L2NvbmZ0ZXN0LnB5Cisr KyBiL3NyYy90ZXN0L3NzbC9weXQvY29uZnRlc3QucHkKQEAgLTEyOCwzICsxMjgsNTMgQEAgZGVm IGNlcnRzKGNyeXB0b2dyYXBoeSwgdG1wX3BhdGhfZmFjdG9yeSk6CiAgICAgICAgICAgICByZXR1 cm4gZi5uYW1lCiAKICAgICByZXR1cm4gX0NlcnRzKCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2Nv cGU9Im1vZHVsZSIsIGF1dG91c2U9VHJ1ZSkKK2RlZiBzc2xfc2V0dXAocGdfc2VydmVyX21vZHVs ZSwgY2VydHMsIGRhdGFkaXIpOgorICAgICIiIgorICAgIFNldHMgdXAgcmVxdWlyZWQgc2VydmVy IHNldHRpbmdzIGZvciBhbGwgdGVzdHMgaW4gdGhpcyBtb2R1bGUuCisgICAgIiIiCisgICAgdHJ5 OgorICAgICAgICB3aXRoIHBnX3NlcnZlcl9tb2R1bGUucmVzdGFydGluZygpIGFzIHM6CisgICAg ICAgICAgICBzLmNvbmYuc2V0KAorICAgICAgICAgICAgICAgIHNzbD0ib24iLAorICAgICAgICAg ICAgICAgIHNzbF9jYV9maWxlPWNlcnRzLmNhLmNlcnRwYXRoLAorICAgICAgICAgICAgICAgIHNz bF9jZXJ0X2ZpbGU9Y2VydHMuc2VydmVyLmNlcnRwYXRoLAorICAgICAgICAgICAgICAgIHNzbF9r ZXlfZmlsZT1jZXJ0cy5zZXJ2ZXIua2V5cGF0aCwKKyAgICAgICAgICAgICkKKworICAgICAgICAg ICAgIyBSZWplY3QgYnkgZGVmYXVsdC4KKyAgICAgICAgICAgIHMuaGJhLnByZXBlbmQoImhvc3Rz c2wgYWxsIGFsbCBhbGwgcmVqZWN0IikKKworICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFBy b2Nlc3NFcnJvcjoKKyAgICAgICAgIyBUaGlzIGlzIGEgZGVjZW50IHBsYWNlIHRvIHNraXAgaWYg dGhlIHNlcnZlciBpc24ndCBzZXQgdXAgZm9yIFNTTC4KKyAgICAgICAgbG9ncGF0aCA9IGRhdGFk aXIgLyAicG9zdGdyZXNxbC5sb2ciCisgICAgICAgIHVuc3VwcG9ydGVkID0gcmUuY29tcGlsZSgi U1NMIGlzIG5vdCBzdXBwb3J0ZWQiKQorCisgICAgICAgIHdpdGggb3Blbihsb2dwYXRoLCAiciIp IGFzIGxvZzoKKyAgICAgICAgICAgIGZvciBsaW5lIGluIGxvZzoKKyAgICAgICAgICAgICAgICBp ZiB1bnN1cHBvcnRlZC5zZWFyY2gobGluZSk6CisgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5z a2lwKCJ0aGUgc2VydmVyIGRvZXMgbm90IHN1cHBvcnQgU1NMIikKKworICAgICAgICAjIFNvbWUg b3RoZXIgZXJyb3IgaGFwcGVuZWQuCisgICAgICAgIHJhaXNlCisKKyAgICB1c2VycyA9IHBnX3Nl cnZlcl9tb2R1bGUuY3JlYXRlX3VzZXJzKCJzc2wiKQorICAgIGRicyA9IHBnX3NlcnZlcl9tb2R1 bGUuY3JlYXRlX2Ricygic3NsIikKKworICAgIHJldHVybiAodXNlcnMsIGRicykKKworCitAcHl0 ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCitkZWYgY2xpZW50X2NlcnQoc3NsX3NldHVwLCBj ZXJ0cyk6CisgICAgIiIiCisgICAgQ3JlYXRlcyBhIENlcnQgZm9yIHRoZSAic3NsIiB1c2VyLgor ICAgICIiIgorICAgIGZyb20gY3J5cHRvZ3JhcGh5IGltcG9ydCB4NTA5CisgICAgZnJvbSBjcnlw dG9ncmFwaHkueDUwOS5vaWQgaW1wb3J0IE5hbWVPSUQKKworICAgIHVzZXJzLCBfID0gc3NsX3Nl dHVwCisgICAgdXNlciA9IHVzZXJzWyJzc2wiXQorCisgICAgcmV0dXJuIGNlcnRzLm5ldyh4NTA5 Lk5hbWUoW3g1MDkuTmFtZUF0dHJpYnV0ZShOYW1lT0lELkNPTU1PTl9OQU1FLCB1c2VyKV0pKQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3NsL3B5dC90ZXN0X3NlcnZlci5weSBiL3NyYy90ZXN0L3Nz bC9weXQvdGVzdF9zZXJ2ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjRhMzI3YjQwNzE0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3Qvc3NsL3B5dC90ZXN0 X3NlcnZlci5weQpAQCAtMCwwICsxLDE2MSBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisKK2ltcG9ydCByZQoraW1wb3J0IHNvY2tl dAoraW1wb3J0IHNzbAoraW1wb3J0IHN0cnVjdAorCitpbXBvcnQgcHl0ZXN0CisKK2ltcG9ydCBw eXBnCisKKyMgVGhpcyBzdWl0ZSBvcGVucyB1cCBsb2NhbCBUQ1AgcG9ydHMgYW5kIGlzIGhpZGRl biBiZWhpbmQgUEdfVEVTVF9FWFRSQT1zc2wuCitweXRlc3RtYXJrID0gcHlwZy5yZXF1aXJlX3Rl c3RfZXh0cmEoInNzbCIpCisKKyMgRm9yIHVzZSB3aXRoIHRoZSBgY3JlZHNgIHBhcmFtZXRlciBi ZWxvdy4KK0NMSUVOVCA9ICJjbGllbnQiCitTRVJWRVIgPSAic2VydmVyIgorCisKKyMgZm10OiBv ZmYKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAiYXV0aF9tZXRob2QsICAgICAgICAg ICAgICAgICAgICBjcmVkcywgIGV4cGVjdGVkX2Vycm9yIiwKK1sKKyAgICAjIFRydXN0IGFsbG93 cyBhbnl0aGluZy4KKyAgICAoInRydXN0IiwgICAgICAgICAgICAgICAgICAgICAgICBOb25lLCAg IE5vbmUpLAorICAgICgidHJ1c3QiLCAgICAgICAgICAgICAgICAgICAgICAgIENMSUVOVCwgTm9u ZSksCisgICAgKCJ0cnVzdCIsICAgICAgICAgICAgICAgICAgICAgICAgU0VSVkVSLCBOb25lKSwK KworICAgICMgdmVyaWZ5LWNhIGFsbG93cyBhbnkgQ0Etc2lnbmVkIGNlcnRpZmljYXRlLgorICAg ICgidHJ1c3QgY2xpZW50Y2VydD12ZXJpZnktY2EiLCAgIE5vbmUsICAgInJlcXVpcmVzIGEgdmFs aWQgY2xpZW50IGNlcnRpZmljYXRlIiksCisgICAgKCJ0cnVzdCBjbGllbnRjZXJ0PXZlcmlmeS1j YSIsICAgQ0xJRU5ULCBOb25lKSwKKyAgICAoInRydXN0IGNsaWVudGNlcnQ9dmVyaWZ5LWNhIiwg ICBTRVJWRVIsIE5vbmUpLAorCisgICAgIyBjZXJ0IGFuZCB2ZXJpZnktZnVsbCBhbGxvdyBvbmx5 IHRoZSBjb3JyZWN0IGNlcnRpZmljYXRlLgorICAgICgidHJ1c3QgY2xpZW50Y2VydD12ZXJpZnkt ZnVsbCIsIE5vbmUsICAgInJlcXVpcmVzIGEgdmFsaWQgY2xpZW50IGNlcnRpZmljYXRlIiksCisg ICAgKCJ0cnVzdCBjbGllbnRjZXJ0PXZlcmlmeS1mdWxsIiwgQ0xJRU5ULCBOb25lKSwKKyAgICAo InRydXN0IGNsaWVudGNlcnQ9dmVyaWZ5LWZ1bGwiLCBTRVJWRVIsICJhdXRoZW50aWNhdGlvbiBm YWlsZWQgZm9yIHVzZXIiKSwKKyAgICAoImNlcnQiLCAgICAgICAgICAgICAgICAgICAgICAgICBO b25lLCAgICJyZXF1aXJlcyBhIHZhbGlkIGNsaWVudCBjZXJ0aWZpY2F0ZSIpLAorICAgICgiY2Vy dCIsICAgICAgICAgICAgICAgICAgICAgICAgIENMSUVOVCwgTm9uZSksCisgICAgKCJjZXJ0Iiwg ICAgICAgICAgICAgICAgICAgICAgICAgU0VSVkVSLCAiYXV0aGVudGljYXRpb24gZmFpbGVkIGZv ciB1c2VyIiksCitdLAorKQorIyBmbXQ6IG9uCitkZWYgdGVzdF9kaXJlY3Rfc3NsX2NlcnRpZmlj YXRlX2F1dGhlbnRpY2F0aW9uKAorICAgIHBnLAorICAgIHNzbF9zZXR1cCwKKyAgICBjZXJ0cywK KyAgICBjbGllbnRfY2VydCwKKyAgICByZW1haW5pbmdfdGltZW91dCwKKyAgICAjIHRlc3QgcGFy YW1ldGVycworICAgIGF1dGhfbWV0aG9kLAorICAgIGNyZWRzLAorICAgIGV4cGVjdGVkX2Vycm9y LAorKToKKyAgICAiIiIKKyAgICBUZXN0cyBkaXJlY3QgU1NMIGNvbm5lY3Rpb25zIHdpdGggdmFy aW91cyBjbGllbnQtY2VydGlmaWNhdGUvSEJBCisgICAgY29tYmluYXRpb25zLgorICAgICIiIgor CisgICAgIyBTZXQgdXAgdGhlIEhCQSBhcyBkZXNpcmVkIGJ5IHRoZSB0ZXN0LgorICAgIHVzZXJz LCBkYnMgPSBzc2xfc2V0dXAKKworICAgIHVzZXIgPSB1c2Vyc1sic3NsIl0KKyAgICBkYiA9IGRi c1sic3NsIl0KKworICAgIHdpdGggcGcucmVsb2FkaW5nKCkgYXMgczoKKyAgICAgICAgcy5oYmEu cHJlcGVuZCgKKyAgICAgICAgICAgIFsiaG9zdHNzbCIsIGRiLCB1c2VyLCAiMTI3LjAuMC4xLzMy IiwgYXV0aF9tZXRob2RdLAorICAgICAgICAgICAgWyJob3N0c3NsIiwgZGIsIHVzZXIsICI6OjEv MTI4IiwgYXV0aF9tZXRob2RdLAorICAgICAgICApCisKKyAgICAjIENvbmZpZ3VyZSB0aGUgU1NM IHNldHRpbmdzIGZvciB0aGUgY2xpZW50LgorICAgIGN0eCA9IHNzbC5TU0xDb250ZXh0KHNzbC5Q Uk9UT0NPTF9UTFNfQ0xJRU5UKQorICAgIGN0eC5sb2FkX3ZlcmlmeV9sb2NhdGlvbnMoY2FmaWxl PWNlcnRzLmNhLmNlcnRwYXRoKQorICAgIGN0eC5zZXRfYWxwbl9wcm90b2NvbHMoWyJwb3N0Z3Jl c3FsIl0pICAjIGZvciBkaXJlY3QgU1NMCisKKyAgICAjIExvYWQgdXAgYSBjbGllbnQgY2VydGlm aWNhdGUgaWYgcmVxdWlyZWQgYnkgdGhlIHRlc3QuCisgICAgaWYgY3JlZHMgPT0gQ0xJRU5UOgor ICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKGNsaWVudF9jZXJ0LmNlcnRwYXRoLCBjbGllbnRf Y2VydC5rZXlwYXRoKQorICAgIGVsaWYgY3JlZHMgPT0gU0VSVkVSOgorICAgICAgICAjIFVzaW5n IGEgc2VydmVyIGNlcnRpZmljYXRlIGFzIHRoZSBjbGllbnQgY3JlZGVudGlhbCBpcyBleHBlY3Rl ZCB0bworICAgICAgICAjIHdvcmsgb25seSBmb3IgY2xpZW50Y2VydD12ZXJpZnktY2EgKGFuZCBg dHJ1c3RgLCBuYXR1cmFsbHkpLgorICAgICAgICBjdHgubG9hZF9jZXJ0X2NoYWluKGNlcnRzLnNl cnZlci5jZXJ0cGF0aCwgY2VydHMuc2VydmVyLmtleXBhdGgpCisKKyAgICAjIE1ha2UgYSBkaXJl Y3QgU1NMIGNvbm5lY3Rpb24uIFRoZXJlJ3Mgbm8gU1NMUmVxdWVzdCBpbiB0aGUgaGFuZHNoYWtl OyB3ZQorICAgICMgc2ltcGx5IHdyYXAgYSBUQ1AgY29ubmVjdGlvbiB3aXRoIE9wZW5TU0wuCisg ICAgYWRkciA9IChwZy5ob3N0YWRkciwgcGcucG9ydCkKKyAgICB3aXRoIHNvY2tldC5jcmVhdGVf Y29ubmVjdGlvbihhZGRyKSBhcyBzOgorICAgICAgICBzLnNldHRpbWVvdXQocmVtYWluaW5nX3Rp bWVvdXQoKSkgICMgWFhYIHRoaXMgcmVzZXRzIGV2ZXJ5IG9wZXJhdGlvbgorCisgICAgICAgIHdp dGggY3R4LndyYXBfc29ja2V0KHMsIHNlcnZlcl9ob3N0bmFtZT1jZXJ0cy5zZXJ2ZXJfaG9zdCkg YXMgY29ubjoKKyAgICAgICAgICAgICMgQnVpbGQgYW5kIHNlbmQgdGhlIHN0YXJ0dXAgcGFja2V0 LgorICAgICAgICAgICAgc3RhcnR1cF9vcHRpb25zID0gZGljdCgKKyAgICAgICAgICAgICAgICB1 c2VyPXVzZXIsCisgICAgICAgICAgICAgICAgZGF0YWJhc2U9ZGIsCisgICAgICAgICAgICAgICAg YXBwbGljYXRpb25fbmFtZT0icHl0ZXN0IiwKKyAgICAgICAgICAgICkKKworICAgICAgICAgICAg cGF5bG9hZCA9IGIiIgorICAgICAgICAgICAgZm9yIGssIHYgaW4gc3RhcnR1cF9vcHRpb25zLml0 ZW1zKCk6CisgICAgICAgICAgICAgICAgcGF5bG9hZCArPSBrLmVuY29kZSgpICsgYiJcMCIKKyAg ICAgICAgICAgICAgICBwYXlsb2FkICs9IHN0cih2KS5lbmNvZGUoKSArIGIiXDAiCisgICAgICAg ICAgICBwYXlsb2FkICs9IGIiXDAiICAjIG51bGwgdGVybWluYXRvcgorCisgICAgICAgICAgICBw a3RsZW4gPSA0ICsgNCArIGxlbihwYXlsb2FkKQorICAgICAgICAgICAgY29ubi5zZW5kKHN0cnVj dC5wYWNrKCIhSUhIIiwgcGt0bGVuLCAzLCAwKSArIHBheWxvYWQpCisKKyAgICAgICAgICAgIGlm IG5vdCBleHBlY3RlZF9lcnJvcjoKKyAgICAgICAgICAgICAgICAjIEV4cGVjdCBhbiBBdXRoZW50 aWNhdGlvbk9LIHRvIGNvbWUgYmFjay4KKyAgICAgICAgICAgICAgICBwa3R0eXBlLCBwa3RsZW4g PSBzdHJ1Y3QudW5wYWNrKCIhY0kiLCBjb25uLnJlY3YoNSkpCisgICAgICAgICAgICAgICAgYXNz ZXJ0IHBrdHR5cGUgPT0gYiJSIgorICAgICAgICAgICAgICAgIGFzc2VydCBwa3RsZW4gPT0gOAor CisgICAgICAgICAgICAgICAgYXV0aG5fcmVzdWx0ID0gc3RydWN0LnVucGFjaygiIUkiLCBjb25u LnJlY3YoNCkpWzBdCisgICAgICAgICAgICAgICAgYXNzZXJ0IGF1dGhuX3Jlc3VsdCA9PSAwCisK KyAgICAgICAgICAgICAgICAjIFJlYWQgYW5kIGRpc2NhcmQgdG8gUmVhZHlGb3JRdWVyeS4KKyAg ICAgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgICAgICBwa3R0eXBlLCBw a3RsZW4gPSBzdHJ1Y3QudW5wYWNrKCIhY0kiLCBjb25uLnJlY3YoNSkpCisgICAgICAgICAgICAg ICAgICAgIHBheWxvYWQgPSBjb25uLnJlY3YocGt0bGVuIC0gNCkKKworICAgICAgICAgICAgICAg ICAgICBpZiBwa3R0eXBlID09IGIiWiI6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnQg cGF5bG9hZCA9PSBiIkkiCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAg ICAgICAgICAgIyBTZW5kIGFuIGVtcHR5IHF1ZXJ5LgorICAgICAgICAgICAgICAgIGNvbm4uc2Vu ZChzdHJ1Y3QucGFjaygiIWNJIiwgYiJRIiwgNSkgKyBiIlwwIikKKworICAgICAgICAgICAgICAg ICMgRXhwZWN0IEVtcHR5UXVlcnlSZXNwb25zZStSZWFkeUZvclF1ZXJ5LgorICAgICAgICAgICAg ICAgIHBrdHR5cGUsIHBrdGxlbiA9IHN0cnVjdC51bnBhY2soIiFjSSIsIGNvbm4ucmVjdig1KSkK KyAgICAgICAgICAgICAgICBhc3NlcnQgcGt0dHlwZSA9PSBiIkkiCisgICAgICAgICAgICAgICAg YXNzZXJ0IHBrdGxlbiA9PSA0CisKKyAgICAgICAgICAgICAgICBwa3R0eXBlLCBwa3RsZW4gPSBz dHJ1Y3QudW5wYWNrKCIhY0kiLCBjb25uLnJlY3YoNSkpCisgICAgICAgICAgICAgICAgYXNzZXJ0 IHBrdHR5cGUgPT0gYiJaIgorCisgICAgICAgICAgICAgICAgcGF5bG9hZCA9IGNvbm4ucmVjdihw a3RsZW4gLSA0KQorICAgICAgICAgICAgICAgIGFzc2VydCBwYXlsb2FkID09IGIiSSIKKworICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIE1hdGNoIHRoZSBleHBlY3RlZCBhdXRo ZW50aWNhdGlvbiBlcnJvci4KKyAgICAgICAgICAgICAgICBwa3R0eXBlLCBwa3RsZW4gPSBzdHJ1 Y3QudW5wYWNrKCIhY0kiLCBjb25uLnJlY3YoNSkpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHBr dHR5cGUgPT0gYiJFIgorCisgICAgICAgICAgICAgICAgcGF5bG9hZCA9IGNvbm4ucmVjdihwa3Rs ZW4gLSA0KQorICAgICAgICAgICAgICAgIG1zZyA9IE5vbmUKKworICAgICAgICAgICAgICAgIGZv ciBjb21wb25lbnQgaW4gcGF5bG9hZC5zcGxpdChiIlwwIik6CisgICAgICAgICAgICAgICAgICAg IGlmIG5vdCBjb21wb25lbnQ6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhayAgIyBlbmQg b2YgbWVzc2FnZQorCisgICAgICAgICAgICAgICAgICAgIGtleSwgdmFsID0gY29tcG9uZW50Wzox XSwgY29tcG9uZW50WzE6XQorICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gYiJTIjoKKyAg ICAgICAgICAgICAgICAgICAgICAgIGFzc2VydCB2YWwgPT0gYiJGQVRBTCIKKyAgICAgICAgICAg ICAgICAgICAgZWxpZiBrZXkgPT0gYiJNIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9 IHZhbC5kZWNvZGUoKQorCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlLnNlYXJjaChleHBlY3Rl ZF9lcnJvciwgbXNnKSwgInNlcnZlciBlcnJvciBkaWQgbm90IG1hdGNoIgorCisgICAgICAgICAg ICAjIFRlcm1pbmF0ZS4KKyAgICAgICAgICAgIGNvbm4uc2VuZChzdHJ1Y3QucGFjaygiIWNJIiwg YiJYIiwgNCkpCi0tIAoyLjUyLjAKCg== --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v4-0007-XXX-run-pytest-and-ssl-suite-all-OSes.patch Content-Type: text/x-patch; charset=utf-8; name=v4-0007-XXX-run-pytest-and-ssl-suite-all-OSes.patch RnJvbSBmYTViYjlkYzA5OWNhZDA2ZjE0ZWI4Y2UwNjkxMDRmNmYyMjgzOGMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWNvYiBDaGFtcGlvbiA8amFjb2IuY2hhbXBpb25AZW50ZXJw cmlzZWRiLmNvbT4KRGF0ZTogVHVlLCAyIFNlcCAyMDI1IDE1OjM4OjUyIC0wNzAwClN1YmplY3Q6 IFtQQVRDSCB2NCA3LzddIFhYWCBydW4gcHl0ZXN0IGFuZCBzc2wgc3VpdGUsIGFsbCBPU2VzCgot LS0KIC5jaXJydXMuc3RhciAgICAgIHwgMiArLQogLmNpcnJ1cy50YXNrcy55bWwgfCAyICstCiAy IGZpbGVzIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS8uY2lycnVzLnN0YXIgYi8uY2lycnVzLnN0YXIKaW5kZXggZTliYjY3MmI5NTkuLjdjMWNh YWExMmYxIDEwMDY0NAotLS0gYS8uY2lycnVzLnN0YXIKKysrIGIvLmNpcnJ1cy5zdGFyCkBAIC03 Myw3ICs3Myw3IEBAIGRlZiBjb21wdXRlX2Vudmlyb25tZW50X3ZhcnMoKToKICAgICAjIFJFUE9f Q0lfQVVUT01BVElDX1RSSUdHRVJfVEFTS1M9InRhc2tfbmFtZSBvdGhlcl90YXNrIiB1bmRlciAi UmVwb3NpdG9yeQogICAgICMgU2V0dGluZ3MiIG9uIENpcnJ1cyBDSSdzIHdlYnNpdGUuCiAKLSAg ICBkZWZhdWx0X21hbnVhbF90cmlnZ2VyX3Rhc2tzID0gWydtaW5ndycsICduZXRic2QnLCAnb3Bl bmJzZCddCisgICAgZGVmYXVsdF9tYW51YWxfdHJpZ2dlcl90YXNrcyA9IFtdCiAKICAgICByZXBv X2NpX2F1dG9tYXRpY190cmlnZ2VyX3Rhc2tzID0gZW52LmdldCgnUkVQT19DSV9BVVRPTUFUSUNf VFJJR0dFUl9UQVNLUycsICcnKQogICAgIGZvciB0YXNrIGluIGRlZmF1bHRfbWFudWFsX3RyaWdn ZXJfdGFza3M6CmRpZmYgLS1naXQgYS8uY2lycnVzLnRhc2tzLnltbCBiLy5jaXJydXMudGFza3Mu eW1sCmluZGV4IGI5NzZiYWE1YjM0Li5kZmI5YWU2NDA2OCAxMDA2NDQKLS0tIGEvLmNpcnJ1cy50 YXNrcy55bWwKKysrIGIvLmNpcnJ1cy50YXNrcy55bWwKQEAgLTI4LDcgKzI4LDcgQEAgZW52Ogog ICAjIGVycm9ycy93YXJuaW5ncyBpbiBvbmUgcGxhY2UuCiAgIE1CVUlMRF9UQVJHRVQ6IGFsbCB0 ZXN0cHJlcAogICBNVEVTVF9BUkdTOiAtLXByaW50LWVycm9ybG9ncyAtLW5vLXJlYnVpbGQgLUMg YnVpbGQKLSAgTVRFU1RfU1VJVEVTOiAjIC0tc3VpdGUgc2V0dXAgLS1zdWl0ZSBzc2wgLS1zdWl0 ZSAuLi4KKyAgTVRFU1RfU1VJVEVTOiAtLXN1aXRlIHNldHVwIC0tc3VpdGUgcHl0ZXN0IC0tc3Vp dGUgc3NsCiAgIFBHQ1RMVElNRU9VVDogMTIwICMgYXZvaWRzIHNwdXJpb3VzIGZhaWx1cmVzIGR1 cmluZyBwYXJhbGxlbCB0ZXN0cwogICBURU1QX0NPTkZJRzogJHtDSVJSVVNfV09SS0lOR19ESVJ9 L3NyYy90b29scy9jaS9wZ19jaV9iYXNlLmNvbmYKICAgUEdfVEVTVF9FWFRSQToga2VyYmVyb3Mg bGRhcCBzc2wgbGlicHFfZW5jcnlwdGlvbiBsb2FkX2JhbGFuY2Ugb2F1dGgKLS0gCjIuNTIuMAoK --d9e3b942f0921c53629ab25a8f0780f699ed6c148157401a498130db237c--