Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fLlnY-0004ZL-Gv for pgadmin-hackers@arkaria.postgresql.org; Thu, 24 May 2018 08:40:37 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fLlnV-0004CO-V7 for pgadmin-hackers@arkaria.postgresql.org; Thu, 24 May 2018 08:40:34 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fLbdY-000422-3W for pgadmin-hackers@lists.postgresql.org; Wed, 23 May 2018 21:49:37 +0000 Received: from mx0a-00296801.pphosted.com ([148.163.150.38]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fLbdT-0003vk-3l for pgadmin-hackers@postgresql.org; Wed, 23 May 2018 21:49:33 +0000 Received: from pps.filterd (m0114583.ppops.net [127.0.0.1]) by mx0a-00296801.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w4NLewMq032694 for ; Wed, 23 May 2018 21:49:28 GMT Received: from mail-ot0-f197.google.com (mail-ot0-f197.google.com [74.125.82.197]) by mx0a-00296801.pphosted.com with ESMTP id 2j2c8wmt2e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Wed, 23 May 2018 21:49:23 +0000 Received: by mail-ot0-f197.google.com with SMTP id l3-v6so17917509otk.4 for ; Wed, 23 May 2018 14:49:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=lBBqx5DZ9RYALWh0QyPGZRROxazPu+QiCO1uTlx6mr4=; b=YtM5fa46CtD0QL32UN6tHDyIiXu2ibjyfCWKq+Fk6oesPh0NFPSuzzCr497fOSLyCq Ivq2PZRJRFyubOGdo+jDhGnGyee8+C/8/rl24iRX1kG0EhlPCBJsjgMhEnX8p70uypEU criSQjYXsKxComj9ffQ3y0Pz/mQVhVnXmQmG+PQTH8ks0NMIJoocxV2KVj+fLJjM21Yr WZixTmqHrAQ1McgvX0qVgn7Qhhx6LAAspHFgErsLZT6Rulz9BW6DTdEMyCDzEEwVaU/H to0ZlsVw84zY3DO4+/XVivJ8xsUAhNlApexmikzs8ieDn3h0uYrKSHcDC9+nol54xTCa vZug== X-Gm-Message-State: ALKqPweCZWzxG0eLwn+nxKDkcWXdjbRe69b8QU7bbqBu+Bh3T5CE4vEb HKQiXVH82QLlX5Z3pyOQJbt2t2ljdQQhgEdmhR7TbOMdTS3o+IlJlZ1aqQI2mfjKCyKbz366t9a IpcVOhYnWSXZuAtsYO4nb2mT9cje/HAS0PGXZVfB0uznJh5MDLoS974G72KWWonmOBXta X-Received: by 2002:a9d:3694:: with SMTP id h20-v6mr3135780otc.176.1527112162601; Wed, 23 May 2018 14:49:22 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqi6iCMvmUkMDQfPPLSjtBSY1uocr2t8M1ibLzj3qZgZNHvA02yc0PPyDhki1MQ7kAz59AeBGcB//0RLNJmd3Y= X-Received: by 2002:a9d:3694:: with SMTP id h20-v6mr3135752otc.176.1527112161918; Wed, 23 May 2018 14:49:21 -0700 (PDT) MIME-Version: 1.0 From: Anthony Emengo Date: Wed, 23 May 2018 17:48:45 -0400 Message-ID: Subject: [pgadmin4][patch] Use pytest test runner for unit tests To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000f20347056ce681a5" X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-05-23_08:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1011 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1711220000 definitions=main-1805230214 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000f20347056ce681a5 Content-Type: multipart/alternative; boundary="000000000000f20344056ce681a3" --000000000000f20344056ce681a3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hey all, Attached is a rather large patch that attempts to introduce the Pytest test runner and Grappah test matcher into our code base. The patch replaces all of the previous python unit tests from the previous design. This is a follow-up from our previous proof of concept and discussion around the idiosyncrasies of our existing test suite. We are motivated to submit this change for the following reasons: 1. Having a highly customized test suite increases the learning curve towards contributing to the code base. Pytest is a mature stable python test framework that outside developers are more likely to be familiar with. 2. Pytest supports a lot of the features that we've built for our use-cases - out of the box, and with extensive documentation on the matter. 3. The lack of ability to run tests individually has become a pain point. Especially when it comes to debugging long running feature tests. Test can be ran with the following command: yarn test:unit =E2=80=8B Please let us know what you think and if there are any issues! *Note: *The feature tests are not yet completed. We expect our CI to fail as a result of this patch. We will complete this step soon in a follow-up patch! https://docs.pytest.org/en/latest/ https://github.com/grappa-py/grappa Thanks, Anthony && Joao && Victoria --000000000000f20344056ce681a3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hey all,

Attached is a rather large pat= ch that attempts to introduce the Pytest test runner and Grappah test match= er into our code base. The patch replaces all of the previous python unit t= ests from the previous design. This is a follow-up from our previous proof = of concept and discussion around the idiosyncrasies of our existing test su= ite.

We are motivated to submit this change for th= e following reasons:

1. Having a highly customized= test suite increases the learning curve towards contributing to the code b= ase. Pytest is a mature stable python test framework that outside developer= s are more likely to be familiar with.
2. Pytest supports a lot o= f the features that we've built for our use-cases - out of the box, and= with extensive documentation on the matter.=C2=A0
3. The lack of= ability to run tests individually has become a pain point. Especially when= it comes to debugging long running feature tests.=C2=A0 =C2=A0 =C2=A0=C2= =A0

Test can be ran with the following command:
yarn test:unit
=E2=80=8B
Please let us know what you think and if there are any = issues!

Note: The feature tests are not yet= completed. We expect our CI to fail as a result of this patch. We will com= plete this step soon in a follow-up patch!=C2=A0

<= a href=3D"https://docs.pytest.org/en/latest/">https://docs.pytest.org/en/la= test/

Thanks,
Anthony && Joao && Victoria
--000000000000f20344056ce681a3-- --000000000000f20347056ce681a5 Content-Type: application/octet-stream; name="0001-Use-Pytests.diff" Content-Disposition: attachment; filename="0001-Use-Pytests.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jhjmu8hs0 Y29tbWl0IGU2ZjE1YjAxNWFiZDc0NGQ4MjFiODE0MWY2YmQwY2IyMzlmNDJlNGIKQXV0aG9yOiBK b2FvIFBlcmVpcmEgPGpkZWFsbWVpZGFwZXJlaXJhQHBpdm90YWwuaW8+CkRhdGU6ICAgVHVlIE1h eSA4IDA5OjQ4OjE2IDIwMTggLTA0MDAKCiAgICBDb252ZXIgdGVzdHMgdG8gcHl0ZXN0cwoKZGlm ZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDgyZjkyZTA3Li41NTk5N2Yx ZiAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQorKysgYi8uZ2l0aWdub3JlCkBAIC00MSw0ICs0MSw1 IEBAIHdlYi9yZWdyZXNzaW9uL3Rlc3RfY29uZmlnLmpzb24KIG5vZGVfbW9kdWxlcy8KIHdlYi9w Z0FkbWluL3N0YXRpYy9qcy9nZW5lcmF0ZWQKIHdlYi9wZ2FkbWluL3N0YXRpYy9qcy9nZW5lcmF0 ZWQKLXdlYi95YXJuLWVycm9yLmxvZwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYi95 YXJuLWVycm9yLmxvZworLnB5dGVzdF9jYWNoZQpkaWZmIC0tZ2l0IGEvd2ViLy5naXRpZ25vcmUg Yi93ZWIvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uM2Nl MWQyNDYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvLmdpdGlnbm9yZQpAQCAtMCwwICsxIEBACisu cHl0ZXN0X2NhY2hlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3Rfc3FsX3RlbXBs YXRlX2NyZWF0ZV9pbnRlZ3JhdGlvbi5weSBiL3dlYi9fX2luaXRfXy5weQpzaW1pbGFyaXR5IGlu ZGV4IDEwMCUKcmVuYW1lIGZyb20gd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X3NxbF90ZW1wbGF0ZV9j cmVhdGVfaW50ZWdyYXRpb24ucHkKcmVuYW1lIHRvIHdlYi9fX2luaXRfXy5weQpkaWZmIC0tZ2l0 IGEvd2ViL2NvbmZpZy5weSBiL3dlYi9jb25maWcucHkKaW5kZXggZTdkMTBjZDQuLjIyYjFkMTdk IDEwMDY0NAotLS0gYS93ZWIvY29uZmlnLnB5CisrKyBiL3dlYi9jb25maWcucHkKQEAgLTExNiwx MCArMTE2LDEzIEBAIE5PREVfQkxBQ0tMSVNUID0gW10KICMgICAgICAgZnJvbSBpdCwgbm90YWJs eSB2YXJpb3VzIHBhdGhzIHN1Y2ggYXMgTE9HX0ZJTEUgYW5kIGFueXRoaW5nCiAjICAgICAgIHVz aW5nIERBVEFfRElSLgogCi1pZiBidWlsdGlucy5TRVJWRVJfTU9ERSBpcyBOb25lOgordHJ5Ogor ICAgIGlmIGJ1aWx0aW5zLlNFUlZFUl9NT0RFIGlzIE5vbmU6CisgICAgICAgIFNFUlZFUl9NT0RF ID0gVHJ1ZQorICAgIGVsc2U6CisgICAgICAgIFNFUlZFUl9NT0RFID0gYnVpbHRpbnMuU0VSVkVS X01PREUKK2V4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICBTRVJWRVJfTU9ERSA9IFRydWUKLWVs c2U6Ci0gICAgU0VSVkVSX01PREUgPSBidWlsdGlucy5TRVJWRVJfTU9ERQogCiAjIFVzZXIgSUQg KGVtYWlsIGFkZHJlc3MpIHRvIHVzZSBmb3IgdGhlIGRlZmF1bHQgdXNlciBpbiBkZXNrdG9wIG1v ZGUuCiAjIFRoZSBkZWZhdWx0IHNob3VsZCBiZSBmaW5lIGhlcmUsIGFzIGl0J3Mgbm90IGV4cG9z ZWQgaW4gdGhlIGFwcC4KZGlmZiAtLWdpdCBhL3dlYi9wYWNrYWdlLmpzb24gYi93ZWIvcGFja2Fn ZS5qc29uCmluZGV4IGI5OTUzYjY0Li5hODZkMTkxYyAxMDA2NDQKLS0tIGEvd2ViL3BhY2thZ2Uu anNvbgorKysgYi93ZWIvcGFja2FnZS5qc29uCkBAIC05OSw4ICs5OSw5IEBACiAgICAgImJ1bmRs ZSI6ICJjcm9zcy1lbnYgTk9ERV9FTlY9cHJvZHVjdGlvbiB5YXJuIHJ1biBidW5kbGU6ZGV2IiwK ICAgICAidGVzdDprYXJtYS1vbmNlIjogInlhcm4gcnVuIGxpbnRlciAmJiB5YXJuIHJ1biBrYXJt YSBzdGFydCAtLXNpbmdsZS1ydW4iLAogICAgICJ0ZXN0Omthcm1hIjogInlhcm4gcnVuIGxpbnRl ciAmJiB5YXJuIHJ1biBrYXJtYSBzdGFydCIsCisgICAgInRlc3Q6dW5pdCI6ICJ5YXJuIHJ1biBs aW50ZXIgJiYgcHl0ZXN0IC1xIHBnYWRtaW4iLAogICAgICJ0ZXN0OmZlYXR1cmUiOiAieWFybiBy dW4gYnVuZGxlICYmIHB5dGhvbiByZWdyZXNzaW9uL3J1bnRlc3RzLnB5IC0tcGtnIGZlYXR1cmVf dGVzdHMiLAotICAgICJ0ZXN0IjogInlhcm4gcnVuIHRlc3Q6a2FybWEtb25jZSAmJiB5YXJuIHJ1 biBidW5kbGUgJiYgcHl0aG9uIHJlZ3Jlc3Npb24vcnVudGVzdHMucHkiLAorICAgICJ0ZXN0Ijog Inlhcm4gcnVuIHRlc3Q6a2FybWEtb25jZSAmJiB5YXJuIHJ1biBidW5kbGUgJiYgeWFybiB0ZXN0 OnVuaXQgJiYgcHl0aG9uIHJlZ3Jlc3Npb24vcnVudGVzdHMucHkgLS1wa2cgZmVhdHVyZV90ZXN0 cyIsCiAgICAgInBlcDgiOiAicHljb2Rlc3R5bGUgLS1jb25maWc9LnB5Y29kZXN0eWxlIC4iCiAg IH0KIH0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy9fX2luaXRfXy5w eQppbmRleCBiOTAyYzQ4Yi4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvY2FzdHMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKLQotCi1jbGFzcyBDYXN0VGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0K LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMv dGVzdHMvdGVzdF9jYXN0X2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfYWRkLnB5CmluZGV4IGRl OGY5Nzk5Li4xNWZkMDFmNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9hZGQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nh c3RzL3Rlc3RzL3Rlc3RfY2FzdF9hZGQucHkKQEAgLTExLDI0ICsxMSwyNCBAQCBmcm9tIF9fZnV0 dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBqc29uCiAKK2ltcG9ydCBweXRl c3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFz IGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBDbGllbnRU ZXN0QmFzZUNsYXNzCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBjYXN0X3V0aWxzCiAKIAotY2xhc3MgQ2FzdHNBZGRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3Bk YiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBjYXN0IG5vZGUuCi0gICAgICAgICgnQ2hlY2sgQ2FzdCBOb2RlJywgZGljdCh1cmw9Jy9icm93 c2VyL2Nhc3Qvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBjYXN0IHVuZGVyIHRlc3QgZGF0YWJhc2UuICIi IgotICAgICAgICBzdXBlcihDYXN0c0FkZFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKK0BweXRl c3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RDYXN0c0FkZChDbGll bnRUZXN0QmFzZUNsYXNzKToKKyAgICBkZWYgdGVzdF9jaGVja19jYXN0X25vZGUoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIGNyZWF0aW9uIHJlcXVlc3QgaXMgc2VudCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMgIiIiCisgICAgICAgIHVybCA9 ICcvYnJvd3Nlci9jYXN0L29iai8nCiAgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQogICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYu c2VydmVyX2RhdGFbInNlcnZlcl9pZCJdCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydkYl9pZCddCkBAIC00MSwxNSArNDEsMjIgQEAgY2xhc3MgQ2FzdHNBZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICAgICAgc2VsZi5kYXRhID0gY2FzdF91dGlscy5n ZXRfY2FzdF9kYXRhKCkKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAg ICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksCiAg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1 c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKworICAgICAgICBqc29uX3Jlc3BvbnNl ID0gc2VsZi5yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBzZWxmLmFzc2VydF9u b2RlX2pzb24oanNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdj YXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuY2FzdCcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdpY29uLWNhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J21vbmV5LT5iaWdpbnQnKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQg Y2FzdC4iIiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNl bGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nh c3RfZGVsZXRlLnB5CmluZGV4IGI5NTZmY2JjLi44MjQ4OTlmZCAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3Rz L3Rlc3RfY2FzdF9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9kZWxldGUucHkKQEAg LTksMjQgKzksMjEgQEAKIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgog CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwK ICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBp bXBvcnQgQ2xpZW50VGVzdEJhc2VDbGFzcwogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgY2FzdF91dGlscwogCiAKLWNs YXNzIENhc3RzRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlz IGNsYXNzIHdpbGwgZGVsZXRlIHRoZSBjYXN0IG5vZGUgYWRkZWQgdW5kZXIgZGF0YWJhc2Ugbm9k ZS4gIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0g WwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBjYXN0IG5vZGUuCi0gICAgICAg ICgnQ2hlY2sgQ2FzdCBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2Nhc3Qvb2JqLycpKQotICAg IF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoQ2FzdHNEZWxldGVUZXN0 Q2FzZSwgc2VsZikuc2V0VXAoKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYidd KQorY2xhc3MgVGVzdENhc3RzRGVsZXRlKENsaWVudFRlc3RCYXNlQ2xhc3MpOgorICAgIEBweXRl c3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgZGVmIHNldFVwKHNlbGYsIHRoZV9yZWFsX3Nl dHVwKToKICAgICAgICAgc2VsZi5kZWZhdWx0X2RiID0gc2VsZi5zZXJ2ZXJbImRiIl0KICAgICAg ICAgc2VsZi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0K ICAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWydkYl9uYW1lJ10KQEAg LTM2LDggKzMzLDEzIEBAIGNsYXNzIENhc3RzRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgogICAgICAgICBzZWxmLmNhc3RfaWQgPSBjYXN0X3V0aWxzLmNyZWF0ZV9jYXN0KHNlbGYu c2VydmVyLCBzZWxmLnNvdXJjZV90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYudGFyZ2V0X3R5cGUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgYWRkZWQgY2FzdC4iIiIK KyAgICBkZWYgdGVzdF9jYXN0X2RlbGV0ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gYSBjYXN0IGV4aXRzCisgICAgICAgICBXaGVuIHJlbW92ZSByZXF1ZXN0IGlzIHNlbnQgdG8g dGhlIGJhY2tlbmQsCisgICAgICAgICBJdCBnZXRzIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UK KyAgICAgICAgICBBbmQgcmV0dXJuIDIwMCBzdGF0dXMiIiIKKyAgICAgICAgdXJsID0gJy9icm93 c2VyL2Nhc3Qvb2JqLycKICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLmRhdGFiYXNlX2lu Zm9bInNlcnZlcl9pZCJdCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLmRhdGFiYXNlX2luZm9b J2RiX2lkJ10KICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLApAQCAtNTcsMTEgKzU5LDExIEBAIGNsYXNzIENhc3RzRGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBsZW4ocmVzcG9uc2UpID09IDA6CiAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIGNhc3QuIikKICAgICAgICAgZGVs ZXRlX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJf aWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKICAgICAgICAgICAgICcvJyArIHN0cihzZWxm LmNhc3RfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAg ICAgZGVsZXRlX3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkK IAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxs IGRpc2Nvbm5lY3QgdGVzdCBkYXRhYmFzZS4iIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nh c3RfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2Nhc3RzL3Rlc3RzL3Rlc3RfY2FzdF9nZXQucHkKaW5kZXggZDY3ZjU1YWUuLjdkMTY3 ODU1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X2dldC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVz dF9jYXN0X2dldC5weQpAQCAtOSwyNSArOSwyMiBAQAogCiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0 IHByaW50X2Z1bmN0aW9uCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBDbGllbnRUZXN0QmFzZUNsYXNzCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBj YXN0X3V0aWxzCiAKIAotY2xhc3MgQ2FzdHNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCB0aGUgY2FzdCBub2RlIGFkZGVkIHVuZGVy IGRhdGFiYXNlIG5vZGUuICIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAg IHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgY2FzdCBu b2RlLgotICAgICAgICAoJ0NoZWNrIENhc3QgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9jYXN0 L29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6CitAcHl0ZXN0Lm1hcmsuc2tp cF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q2FzdHNHZXQoQ2xpZW50VGVzdEJhc2VD bGFzcyk6CisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgc2V0VXAo c2VsZiwgdGhlX3JlYWxfc2V0dXApOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNy ZWF0ZSBjYXN0LiIiIgotICAgICAgICBzdXBlcihDYXN0c0dldFRlc3RDYXNlLCBzZWxmKS5zZXRV cCgpCiAgICAgICAgIHNlbGYuZGVmYXVsdF9kYiA9IHNlbGYuc2VydmVyWyJkYiJdCiAgICAgICAg IHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCiAg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1snZGJfbmFtZSddCkBAIC0z Nyw4ICszNCwxMiBAQCBjbGFzcyBDYXN0c0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgc2VsZi5jYXN0X2lkID0gY2FzdF91dGlscy5jcmVhdGVfY2FzdChzZWxmLnNlcnZl ciwgc2VsZi5zb3VyY2VfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnRhcmdldF90eXBlKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgY2FzdC4iIiIKKyAgICBk ZWYgdGVzdF9nZXRfY2FzdF9ub2RlKHNlbGYpOgorICAgICAgICAiIiJXaGVuIGEgY2FzdCBleGl0 cworICAgICAgICAgV2hlbiBHRVQgcmVxdWVzdCBpcyBzZW50IHRvIHRoZSBiYWNrZW5kLAorICAg ICAgICAgSXQgcmV0cmlldmVzIHRoZSBpbmZvcm1hdGlvbiBhYm91dCBpdAorICAgICAgICAgIEFu ZCByZXR1cm4gMjAwIHN0YXR1cyIiIgorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvY2FzdC9vYmov JwogICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1sic2VydmVyX2lk Il0KICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1snZGJfaWQnXQogICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCkBAIC00 OCwxMSArNDksMzQgQEAgY2xhc3MgQ2FzdHNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6 CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlLiIpCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAg c2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAg ICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAogICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9p ZCkgKyAnLycgKyBzdHIoc2VsZi5jYXN0X2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwu dG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gc2VsZi5yZXNwb25zZV90b19qc29uKHJl c3BvbnNlKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncHJvbnNw bmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhOb25lKSkKKyAgICAgICAgKGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NyY25zcG5hbWUnKSA+CisgICAgICAgICBz aG91bGQuYmUuZXF1YWwudG8oJ3BnX2NhdGFsb2cnKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ3RyZ25zcG5hbWUnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1 YWwudG8oJ3BnX2NhdGFsb2cnKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2Rlc2NyaXB0aW9uJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKE5vbmUp KQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncHJvbmFtZScpID4K KyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygnYmluYXJ5IGNvbXBhdGlibGUnKSkKKyAgICAg ICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N5c2Nhc3QnKSA+CisgICAgICAg ICBzaG91bGQuYmUuZXF1YWwudG8oRmFsc2UpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgndHJndHlwJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCdi aWdpbnQnKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Nhc3Rm dW5jJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKDApKQorICAgICAgICAoanNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY2FzdGNvbnRleHQnKSA+CisgICAgICAgICBzaG91 bGQuYmUuZXF1YWwudG8oJ0lNUExJQ0lUJykpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdzcmN0eXAnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ21v bmV5JykpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykg PgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCdtb25leS0+YmlnaW50JykpCiAKICAgICBk ZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0 aGUgdGVzdCBkYXRhYmFzZSBhbmQgZHJvcCBhZGRlZCBjYXN0LiIiIgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3Rl c3RzL3Rlc3RfY2FzdF9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVzdHMvdGVzdF9jYXN0X3B1dC5weQppbmRleCA5OTQ4 NTA5NS4uMDU4Y2U4MmYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZXN0cy90ZXN0X2Nhc3RfcHV0LnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0 cy90ZXN0cy90ZXN0X2Nhc3RfcHV0LnB5CkBAIC0xMSwyNSArMTEsMjEgQEAgZnJvbSBfX2Z1dHVy ZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQganNvbgogCitpbXBvcnQgcHl0ZXN0 Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBk YXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgQ2xpZW50VGVz dEJhc2VDbGFzcwogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK IGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgY2FzdF91dGlscwogCiAKLWNsYXNzIENhc3RzUHV0VGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2gg dGhlIGNhc3Qgbm9kZSBhZGRlZCB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICBza2lwX29u X2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hp bmcgZGVmYXVsdCBVUkwgZm9yIGNhc3Qgbm9kZS4KLSAgICAgICAgKCdDaGVjayBDYXN0IE5vZGUn LCBkaWN0KHVybD0nL2Jyb3dzZXIvY2FzdC9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBjYXN0LiIiIgot ICAgICAgICBzdXBlcihDYXN0c1B1dFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCitAcHl0ZXN0Lm1h cmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q2FzdHNQdXQoQ2xpZW50VGVz dEJhc2VDbGFzcyk6CisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYg c2V0VXAoc2VsZiwgdGhlX3JlYWxfc2V0dXApOgogICAgICAgICBzZWxmLmRlZmF1bHRfZGIgPSBz ZWxmLnNlcnZlclsiZGIiXQogICAgICAgICBzZWxmLmRhdGFiYXNlX2luZm8gPSBwYXJlbnRfbm9k ZV9kaWN0WydkYXRhYmFzZSddWy0xXQogICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFi YXNlX2luZm9bJ2RiX25hbWUnXQpAQCAtMzksOCArMzUsMTIgQEAgY2xhc3MgQ2FzdHNQdXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHNlbGYuY2FzdF9pZCA9IGNhc3RfdXRp bHMuY3JlYXRlX2Nhc3Qoc2VsZi5zZXJ2ZXIsIHNlbGYuc291cmNlX3R5cGUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YXJnZXRfdHlwZSkKIAot ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVw ZGF0ZSBhZGRlZCBjYXN0LiIiIgorICAgIGRlZiB0ZXN0X3B1dChzZWxmKToKKyAgICAgICAgIiIi V2hlbiBhIGNhc3QgZXhpdHMKKyAgICAgICAgIFdoZW4gdXBkYXRpbmcgdGhlIGNhc3QsCisgICAg ICAgICBJdCBnZXRzIHVwZGF0ZXMgdGhlIGNhc3QgaW4gdGhlIGRhdGFiYXNlCisgICAgICAgICAg QW5kIHJldHVybiAyMDAgc3RhdHVzIiIiCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9jYXN0L29i ai8nCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJzZXJ2ZXJf aWQiXQogICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5kYXRhYmFzZV9pbmZvWydkYl9pZCddCiAg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKQEAg LTYzLDEzICs2MywyMSBAQCBjbGFzcyBDYXN0c1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgICJpZCI6IHNlbGYuY2FzdF9pZAogICAgICAgICB9CiAgICAgICAgIHB1 dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cigKICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArCiAgICAgICAgICAgICAn LycgKyBzdHIoc2VsZi5jYXN0X2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRh KSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHB1dF9yZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisKKyAgICAgICAganNv bl9yZXNwb25zZSA9IHNlbGYucmVzcG9uc2VfdG9fanNvbihwdXRfcmVzcG9uc2UpCisgICAgICAg IHNlbGYuYXNzZXJ0X25vZGVfanNvbihqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2Nhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BnYWRt aW4ubm9kZS5jYXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24tY2FzdCcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnY2hhcmFjdGVyLT5jaWRyJykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxm KToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNl IGFuZCBkcm9wIGFkZGVkIGNhc3QuIiIiCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggZWQ0NTYzNDMuLjU5 MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50X3Ry aWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2Fy ZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCi0KLQotY2xhc3MgRXZlbnRUcmlnZ2VyR2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL2V2ZW50X3RyaWdnZXJfdGVzdF9iYXNlX2NsYXNzLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2 ZW50X3RyaWdnZXJzL3Rlc3RzL2V2ZW50X3RyaWdnZXJfdGVzdF9iYXNlX2NsYXNzLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi5kYjI5NDk5MQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l dmVudF90cmlnZ2Vycy90ZXN0cy9ldmVudF90cmlnZ2VyX3Rlc3RfYmFzZV9jbGFzcy5weQpAQCAt MCwwICsxLDQ4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgQ2xpZW50VGVzdEJhc2VDbGFzcworZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAorICAg IHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBh cyBzY2hlbWFfdXRpbHMKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRyaWdnZXJfZnVuY3NfdXRpbHMKKworCitjbGFz cyBFdmVudFRyaWdnZXJUZXN0QmFzZUNsYXNzKENsaWVudFRlc3RCYXNlQ2xhc3MpOgorICAgIGRl ZiBzZXRVcChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgc2VsZi5zY2hlbWFfZGF0 YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5k Yl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzZWxmLmV4dGVuc2lv bl9uYW1lID0gInBvc3RncmVzX2ZkdyIKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzZWxmLmRiX3VzZXIg PSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQorICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IDAKKyAg ICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJp Z2dlcl9mdW5jdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNl bGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lLAorICAgICAgICAgICAgc2VydmVyX3ZlcnNp b24pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVjdCBkYXRh YmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZSgK KyAgICAgICAgICAgIHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKwor ICAgIGRlZiBfaXNfc2NoZW1hX2FuZF9kYXRhYmFzZV9hdmFpbGFibGUoc2VsZik6CisgICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydk YXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRf dHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0 cy90ZXN0X2V2ZW50X3RyaWdnZXJfYWRkLnB5CmluZGV4IGE2NjM5MDc1Li5hNzMyMzAyOSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9hZGQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50 X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9hZGQucHkKQEAgLTEwLDYwICsxMCwz NiBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAotICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAotICAgIHV0aWxzIGFzIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJf dXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK LWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHB5dGVzdAor ZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV2ZW50X3RyaWdnZXJzXAorICAgIC50ZXN0cy5ldmVu dF90cmlnZ2VyX3Rlc3RfYmFzZV9jbGFzcyBpbXBvcnQgRXZlbnRUcmlnZ2VyVGVzdEJhc2VDbGFz cworZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IFBvc3RncmVz VmVyc2lvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiBmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK IAogCi1jbGFzcyBFdmVudFRyaWdnZXJBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGV2ZW50IHRyaWdnZXIgdW5kZXIgdGVzdCBz Y2hlbWEuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0 IFVSTCBmb3IgZXZlbnQgdHJpZ2dlciBub2RlLgotICAgICAgICAoJ0ZldGNoIEV2ZW50IFRyaWdn ZXIgTm9kZSBVUkwnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2V2ZW50X3RyaWdnZXIv b2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zY2hl bWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2VsZi5leHRlbnNpb25f bmFtZSA9ICJwb3N0Z3Jlc19mZHciCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KK0BweXRlc3QubWFyay5za2lwX2lmX3Bv c3RncmVzX3ZlcnNpb24oeydiZWxvd192ZXJzaW9uJzogUG9zdGdyZXNWZXJzaW9uLnY5M30sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJFdmVudCB0cmlnZ2VycyBhcmUg bm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJi eSBQRzkuMiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgUFBB UzkuMiBhbmQgYmVsb3cuIikKK2NsYXNzIFRlc3RFdmVudFRyaWdnZXJBZGQoRXZlbnRUcmlnZ2Vy VGVzdEJhc2VDbGFzcyk6CisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBk ZWYgc2V0VXAoc2VsZiwgdGhlX3JlYWxfc2V0dXAsIGNvbnRleHRfb2ZfdGVzdHMpOgogICAgICAg ICBzZWxmLmZ1bmNfbmFtZSA9ICJ0cmlnZ2VyX2Z1bmNfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQotICAgICAgICBzZWxmLmRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQotICAg ICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYu c2VydmVyX2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIg Y29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25u ZWN0IHRvIHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJncm91cHMuIikKLSAgICAgICAgc2VydmVyX3ZlcnNpb24gPSAwCi0gICAgICAgIGlmICJ0 eXBlIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJk YXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiRXZl bnQgdHJpZ2dlcnMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEc5LjIgIiBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICJhbmQgUFBBUzkuMiBhbmQgYmVsb3cuIgotICAgICAgICAgICAgICAgIHNl bGYuc2tpcFRlc3QobWVzc2FnZSkKLSAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gdHJpZ2dl cl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKLSAgICAgICAgICAgIHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lLAot ICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24pCisgICAgICAgIHN1cGVyKFRlc3RFdmVudFRyaWdn ZXJBZGQsIHNlbGYpLnNldFVwKGNvbnRleHRfb2ZfdGVzdHMpCisKKyAgICBkZWYgdGVzdF9hZGRf dHJpZ2dlcihzZWxmKToKKyAgICAgICAgIiIiIFdoZW4gYSB0cmlnZ2VyIGZ1bmN0aW9uIGV4aXN0 cworICAgICAgICAgV2hlbiBzY2hlbWEgZXhpc3QKKyAgICAgICAgIFdoZW4gYmFja2VuZCByZWNl aXZlcyBhIHZhbGlkIHJlcXVlc3QgdG8gY3JlYXRlIGEgbmV3IHRyaWdnZXIKKyAgICAgICAgIEl0 IGNyZWF0ZXMgdGhlIHRyaWdnZXIKKyAgICAgICAgIEFuZCByZXR1cm5zIHN1Y2Nlc3MgMjAwIiIi CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9ldmVudF90cmlnZ2VyL29iai8nCisKKyAgICAgICAg c2VsZi5faXNfc2NoZW1hX2FuZF9kYXRhYmFzZV9hdmFpbGFibGUoKQogCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGV2ZW50IHRyaWdn ZXIgdW5kZXIgdGVzdCBkYXRhYmFzZS4gIiIiCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZS4iKQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hLiIpCiAgICAgICAgIGZ1bmNfbmFtZSA9IHNlbGYuZnVuY3Rpb25f aW5mb1sxXQogICAgICAgICBmdW5jX3Jlc3BvbnNlID0gdHJpZ2dlcl9mdW5jc191dGlscy52ZXJp ZnlfdHJpZ2dlcl9mdW5jdGlvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLApAQCAtNzksMTMg KzU1LDE5IEBAIGNsYXNzIEV2ZW50VHJpZ2dlckFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgICJuYW1lIjogImV2ZW50X3RyaWdnZXJfYWRkXyVzIiAlIChzdHIodXVp ZC51dWlkNCgpKVsxOjhdKSwKICAgICAgICAgICAgICJwcm92aWRlcnMiOiBbXQogICAgICAgICB9 CisKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKICAgICAgICAgICAgICcvJywgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQotICAgICAgICBzZWxmLmFzc2VydEFsbW9zdEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgZGF0 YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gc2VsZi5y ZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorCisgICAgICAgIHNlbGYuYXNzZXJ0X25vZGVfanNv bihqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50X3Ry aWdnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5ldmVu dF90cmlnZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2ljb24tZXZlbnRfdHJpZ2dlcicsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10pCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMv dGVzdHMvdGVzdF9ldmVudF90cmlnZ2VyX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0 X2V2ZW50X3RyaWdnZXJfZGVsZXRlLnB5CmluZGV4IGMwYjkyOTEzLi4wNWRlZjM3OCAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2V2ZW50X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9kZWxldGUucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V2ZW50 X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9kZWxldGUucHkKQEAgLTksNjYgKzks NDMgQEAKIAogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZy b20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuZXZlbnRfdHJpZ2dlcnNcCisgICAgLnRlc3RzLmV2ZW50X3RyaWdnZXJf dGVzdF9iYXNlX2NsYXNzIGltcG9ydCBFdmVudFRyaWdnZXJUZXN0QmFzZUNsYXNzCitmcm9tIHBn YWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCiBm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRyaWdnZXJfZnVuY3NfdXRpbHMKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBldmVudF90cmlnZ2VyX3V0aWxzCiAKIAotY2xhc3MgRXZlbnRUcmlnZ2Vy RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdp bGwgZGVsZXRlIGFkZGVkIGV2ZW50IHRyaWdnZXIgdW5kZXIgdGVzdCBkYXRhYmFzZS4gIiIiCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBldmVu dCB0cmlnZ2VyICBub2RlLgotICAgICAgICAoJ0ZldGNoIEV2ZW50IFRyaWdnZXIgTm9kZSBVUkwn LAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2V2ZW50X3RyaWdnZXIvb2JqLycpKQotICAg IF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBh cmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNl bGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNj aGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVt YV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hl bWFfZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAgICAgc2VsZi5leHRlbnNpb25fbmFtZSA9ICJwb3N0 Z3Jlc19mZHciCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5kYl91c2VyID0gc2VsZi5zZXJ2ZXJb InVzZXJuYW1lIl0KK0BweXRlc3QubWFyay5za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oeydiZWxv d192ZXJzaW9uJzogUG9zdGdyZXNWZXJzaW9uLnY5M30sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJFdmVudCB0cmlnZ2VycyBhcmUgbm90IHN1cHBvcnRlZCAiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieSBQRzkuMiAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgUFBBUzkuMiBhbmQgYmVsb3cuIikKK2Ns YXNzIFRlc3RFdmVudFRyaWdnZXJEZWxldGUoRXZlbnRUcmlnZ2VyVGVzdEJhc2VDbGFzcyk6Cisg ICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgc2V0VXAoc2VsZiwgdGhl X3JlYWxfc2V0dXAsIGNvbnRleHRfb2ZfdGVzdHMpOgogICAgICAgICBzZWxmLmZ1bmNfbmFtZSA9 ICJ0cmlnZ2VyX2Z1bmNfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzdXBl cihUZXN0RXZlbnRUcmlnZ2VyRGVsZXRlLCBzZWxmKS5zZXRVcChjb250ZXh0X29mX3Rlc3RzKQor CiAgICAgICAgIHNlbGYudHJpZ2dlcl9uYW1lID0gImV2ZW50X3RyaWdnZXJfZGVsZXRlXyVzIiAl ICgKICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlcnZlcl9j b24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0g ICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVy IHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4i KQotICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAgICAgaWYgInR5cGUiIGluIHNlcnZl cl9jb25bImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lv biJdIDwgOTAzMDA6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJFdmVudCB0cmlnZ2VycyBh cmUgbm90IHN1cHBvcnRlZCBieSBQRzkuMiAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iCi0gICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCht ZXNzYWdlKQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxz LmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUsCi0gICAgICAgICAgICBz ZXJ2ZXJfdmVyc2lvbikKICAgICAgICAgc2VsZi5ldmVudF90cmlnZ2VyX2lkID0gZXZlbnRfdHJp Z2dlcl91dGlscy5jcmVhdGVfZXZlbnRfdHJpZ2dlcigKICAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lLAogICAgICAg ICAgICAgc2VsZi50cmlnZ2VyX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgZXZlbnQgdHJpZ2dlciB1bmRlciB0ZXN0 IGRhdGFiYXNlLiAiIiIKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9k YXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0g ICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAgICAg IHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZl ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIGlmIG5vdCBzY2hlbWFfcmVz cG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEuIikKKyAgICBkZWYgdGVzdF9kZWxldGUoc2VsZik6CisgICAgICAgICIiIiBXaGVuIGEg dHJpZ2dlciBleGlzdHMKKyAgICAgICAgIFdoZW4gc2NoZW1hIGV4aXN0CisgICAgICAgICBXaGVu IGJhY2tlbmQgcmVjZWl2ZXMgYSByZXF1ZXN0IHRvIHJlbW92ZSBhIHRyaWdnZXIKKyAgICAgICAg IEl0IHJlbW92ZXMgdGhlIHRyaWdnZXIKKyAgICAgICAgIEFuZCByZXR1cm5zIHN1Y2Nlc3MgMjAw IiIiCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9ldmVudF90cmlnZ2VyL29iai8nCisKKyAgICAg ICAgc2VsZi5faXNfc2NoZW1hX2FuZF9kYXRhYmFzZV9hdmFpbGFibGUoKQorCiAgICAgICAgIGZ1 bmNfbmFtZSA9IHNlbGYuZnVuY3Rpb25faW5mb1sxXQogICAgICAgICBmdW5jX3Jlc3BvbnNlID0g dHJpZ2dlcl9mdW5jc191dGlscy52ZXJpZnlfdHJpZ2dlcl9mdW5jdGlvbigKICAgICAgICAgICAg IHNlbGYuc2VydmVyLApAQCAtODEsMTQgKzU4LDE5IEBAIGNsYXNzIEV2ZW50VHJpZ2dlckRlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIHNlbGYudHJpZ2dlcl9u YW1lKQogICAgICAgICBpZiBub3QgdHJpZ2dlcl9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgZXZlbnQgdHJpZ2dlci4iKQorCiAgICAgICAgIGRl bF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lk KSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAg ICAgc3RyKHNlbGYuZXZlbnRfdHJpZ2dlcl9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbF9yZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRlbF9yZXNwb25z ZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVz cG9uc2UgPSBzZWxmLnJlc3BvbnNlX3RvX2pzb24oZGVsX3Jlc3BvbnNlKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8o CisgICAgICAgICAgICAnRXZlbnQgdHJpZ2dlciBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91 bGQuYmUuZXF1YWwudG8oMSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50 X3RyaWdnZXJfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9nZXQu cHkKaW5kZXggYzI2M2E2YjAuLjZlYjFmMTRlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMv dGVzdF9ldmVudF90cmlnZ2VyX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVu dF90cmlnZ2VyX2dldC5weQpAQCAtOSw2NiArOSw0MiBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKLSAg ICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2 ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5ldmVudF90cmlnZ2Vy cyBcCisgICAgLnRlc3RzLmV2ZW50X3RyaWdnZXJfdGVzdF9iYXNlX2NsYXNzIGltcG9ydCBFdmVu dFRyaWdnZXJUZXN0QmFzZUNsYXNzCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVy YXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRyaWdn ZXJfZnVuY3NfdXRpbHMKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBldmVudF90cmlnZ2Vy X3V0aWxzCiAKIAotY2xhc3MgRXZlbnRUcmlnZ2VyR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgZXZlbnQgdHJpZ2dlciB1 bmRlciB0ZXN0IGRhdGFiYXNlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV2ZW50IHRyaWdnZXIgIG5vZGUuCi0gICAgICAgICgnRmV0 Y2ggRXZlbnQgVHJpZ2dlciBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIv ZXZlbnRfdHJpZ2dlci9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAg ICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAg ICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAg c2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBz ZWxmLmV4dGVuc2lvbl9uYW1lID0gInBvc3RncmVzX2ZkdyIKLSAgICAgICAgc2VsZi5kYl9uYW1l ID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBz ZWxmLmRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQorQHB5dGVzdC5tYXJrLnNraXBf aWZfcG9zdGdyZXNfdmVyc2lvbih7J2JlbG93X3ZlcnNpb24nOiBQb3N0Z3Jlc1ZlcnNpb24udjkz fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IHRyaWdnZXJz IGFyZSBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgImJ5IFBHOS4yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFu ZCBQUEFTOS4yIGFuZCBiZWxvdy4iKQorY2xhc3MgVGVzdEV2ZW50VHJpZ2dlckdldChFdmVudFRy aWdnZXJUZXN0QmFzZUNsYXNzKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVlKQor ICAgIGRlZiBzZXRVcChzZWxmLCB0aGVfcmVhbF9zZXR1cCwgY29udGV4dF9vZl90ZXN0cyk6CiAg ICAgICAgIHNlbGYuZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY18lcyIgJSBzdHIodXVpZC51dWlk NCgpKVsxOjhdCi0gICAgICAgIHNlbGYudHJpZ2dlcl9uYW1lID0gImV2ZW50X3RyaWdnZXJfZ2V0 XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZXJ2ZXJfY29uID0gc2Vy dmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQotICAgICAgICBp ZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVjdGVkLiI6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQg cmVzb3VyY2UgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cHMuIikKLSAgICAg ICAgc2VydmVyX3ZlcnNpb24gPSAwCi0gICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfY29uWyJk YXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXSA8IDkw MzAwOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiRXZlbnQgdHJpZ2dlcnMgYXJlIG5vdCBz dXBwb3J0ZWQgYnkgUEc5LjIgIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgUFBB UzkuMiBhbmQgYmVsb3cuIgotICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkK LSAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0gdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVf dHJpZ2dlcl9mdW5jdGlvbigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lLAotICAgICAgICAgICAgc2VydmVyX3Zl cnNpb24pCisgICAgICAgIHN1cGVyKFRlc3RFdmVudFRyaWdnZXJHZXQsIHNlbGYpLnNldFVwKGNv bnRleHRfb2ZfdGVzdHMpCisKKyAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUgPSAiZXZlbnRfdHJp Z2dlcl9nZXRfJXMiICUgKAorICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAg ICAgICAgc2VsZi5ldmVudF90cmlnZ2VyX2lkID0gZXZlbnRfdHJpZ2dlcl91dGlscy5jcmVhdGVf ZXZlbnRfdHJpZ2dlcigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNl bGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lLAogICAgICAgICAgICAgc2VsZi50cmlnZ2Vy X25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBmZXRjaCBhZGRlZCBldmVudCB0cmlnZ2VyIHVuZGVyIHRlc3QgZGF0YWJhc2UuCi0g ICAgICAgICIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAg ICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAgc2No ZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YS4iKQorICAgIGRlZiB0ZXN0X2dldChzZWxmKToKKyAgICAgICAgIiIiIFdoZW4gYSB0cmlnZ2Vy IGV4aXN0cworICAgICAgICAgV2hlbiBzY2hlbWEgZXhpc3QKKyAgICAgICAgIFdoZW4gYmFja2Vu ZCByZWNlaXZlcyBhIHJlcXVlc3QgdG8gcmV0cmlldmUgYSB0cmlnZ2VyIGluZm9ybWF0aW9uCisg ICAgICAgICBJdCByZXR1cm5zIHRyaWdnZXIgaW5mb3JtYXRpb24iIiIKKyAgICAgICAgdXJsID0g Jy9icm93c2VyL2V2ZW50X3RyaWdnZXIvb2JqLycKKworICAgICAgICBzZWxmLl9pc19zY2hlbWFf YW5kX2RhdGFiYXNlX2F2YWlsYWJsZSgpCisKICAgICAgICAgZnVuY19uYW1lID0gc2VsZi5mdW5j dGlvbl9pbmZvWzFdCiAgICAgICAgIGZ1bmNfcmVzcG9uc2UgPSB0cmlnZ2VyX2Z1bmNzX3V0aWxz LnZlcmlmeV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCkBAIC03 NiwxNCArNTIsMzggQEAgY2xhc3MgRXZlbnRUcmlnZ2VyR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICAgICAgZnVuY19uYW1lKQogICAgICAgICBpZiBub3QgZnVuY19yZXNw b25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHRy aWdnZXIgZnVuY3Rpb24uIikKKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgK LSAgICAgICAgICAgIHNlbGYudXJsICsKKyAgICAgICAgICAgIHVybCArCiAgICAgICAgICAgICBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsgc3RyKHNlbGYuZXZlbnRfdHJp Z2dlcl9pZCksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAg KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQog Ci0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFi YXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IHNlbGYucmVz cG9uc2VfdG9fanNvbihyZXNwb25zZSkKKworICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdzY2hlbWFvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdldmVudGZ1bm5hbWUnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdl dmVudGZ1bmNvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCd4 bWluJykKKworICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29tbWVu dCcpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhOb25lKSkKKyAgICAgICAgKGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+CisgICAgICAgICBzaG91bGQuYmUu ZXF1YWwudG8oc2VsZi50cmlnZ2VyX25hbWUpKQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnbGFuZ3VhZ2UnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8o J3BscGdzcWwnKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3do ZW4nKSA+CisgICAgICAgICBzaG91bGQuYmUuZW1wdHkpCisgICAgICAgIChqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdlbmFibGVkJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFs LnRvKCdPJykpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdldmVu dG93bmVyJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYuZGJfdXNlcikpCisg ICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdldmVudG5hbWUnKSA+Cisg ICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ0RETF9DT01NQU5EX0VORCcpKQorICAgICAgICAo anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc291cmNlJykgPgorICAgICAgICAgc2hv dWxkLmJlLmVxdWFsLnRvKCcgQkVHSU4gTlVMTDsgRU5EOyAnKSkKKyAgICAgICAgKGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NlY2xhYmVscycpID4KKyAgICAgICAgIHNob3VsZC5i ZS5lbXB0eSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9ldmVudF90cmlnZ2Vycy90ZXN0cy90ZXN0X2V2ZW50X3RyaWdnZXJf cHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2V2ZW50X3RyaWdnZXJzL3Rlc3RzL3Rlc3RfZXZlbnRfdHJpZ2dlcl9wdXQucHkKaW5kZXgg MzJmYmZiOGMuLjFmYzRjZjhmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVu dF90cmlnZ2VyX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dlcnMvdGVzdHMvdGVzdF9ldmVudF90cmlnZ2Vy X3B1dC5weQpAQCAtMTAsNjUgKzEwLDQyIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAot ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRlc3RzIGltcG9ydCBcCi0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBc Ci0gICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQg c2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9k ZV9kaWN0CitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXZlbnRfdHJp Z2dlcnNcCisgICAgLnRlc3RzLmV2ZW50X3RyaWdnZXJfdGVzdF9iYXNlX2NsYXNzIGltcG9ydCBF dmVudFRyaWdnZXJUZXN0QmFzZUNsYXNzCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dl bmVyYXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRy aWdnZXJfZnVuY3NfdXRpbHMKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBldmVudF90cmln Z2VyX3V0aWxzCiAKIAotY2xhc3MgRXZlbnRUcmlnZ2VyUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgZXZlbnQgdHJpZ2dl ciB1bmRlciB0ZXN0IGRhdGFiYXNlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV2ZW50IHRyaWdnZXIgIG5vZGUuCi0gICAgICAgICgn RmV0Y2ggRXZlbnQgVHJpZ2dlciBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvZXZlbnRfdHJpZ2dlci9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgot ICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd Ci0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10K LSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAg ICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gInBvc3RncmVzX2ZkdyIKLSAgICAgICAgc2VsZi5kYl9u YW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAg ICBzZWxmLmRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQorQHB5dGVzdC5tYXJrLnNr aXBfaWZfcG9zdGdyZXNfdmVyc2lvbih7J2JlbG93X3ZlcnNpb24nOiBQb3N0Z3Jlc1ZlcnNpb24u djkzfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV2ZW50IHRyaWdn ZXJzIGFyZSBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImJ5IFBHOS4yICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iKQorY2xhc3MgVGVzdEV2ZW50VHJpZ2dlclB1dChFdmVu dFRyaWdnZXJUZXN0QmFzZUNsYXNzKToKKyAgICBAcHl0ZXN0LmZpeHR1cmUoYXV0b3VzZT1UcnVl KQorICAgIGRlZiBzZXRVcChzZWxmLCB0aGVfcmVhbF9zZXR1cCwgY29udGV4dF9vZl90ZXN0cyk6 CiAgICAgICAgIHNlbGYuZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY18lcyIgJSBzdHIodXVpZC51 dWlkNCgpKVsxOjhdCisgICAgICAgIHN1cGVyKFRlc3RFdmVudFRyaWdnZXJQdXQsIHNlbGYpLnNl dFVwKGNvbnRleHRfb2ZfdGVzdHMpCisKICAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUgPSAiZXZl bnRfdHJpZ2dlcl9wdXRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNl cnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0 ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g c2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImdy b3Vwcy4iKQotICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAgICAgaWYgInR5cGUiIGlu IHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsi dmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJFdmVudCB0cmln Z2VycyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRzkuMiAiIFwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iCi0gICAgICAgICAgICAgICAgc2VsZi5za2lw VGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNz X3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdW5jX25hbWUsCi0gICAgICAg ICAgICBzZXJ2ZXJfdmVyc2lvbikKICAgICAgICAgc2VsZi5ldmVudF90cmlnZ2VyX2lkID0gZXZl bnRfdHJpZ2dlcl91dGlscy5jcmVhdGVfZXZlbnRfdHJpZ2dlcigKICAgICAgICAgICAgIHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lLAog ICAgICAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZXZlbnQgdHJpZ2dlciB1bmRl ciB0ZXN0IGRhdGFiYXNlLiAiIiIKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29u bmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0g ICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxm LnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIGlmIG5vdCBzY2hl bWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEuIikKKyAgICBkZWYgdGVzdF9wdXQoc2VsZik6CisgICAgICAgICIiIiBXaGVu IGEgdHJpZ2dlciBleGlzdHMKKyAgICAgICAgIFdoZW4gc2NoZW1hIGV4aXN0CisgICAgICAgICBX aGVuIGJhY2tlbmQgcmVjZWl2ZXMgYSB2YWxpZCByZXF1ZXN0IHRvIHVwZGF0ZSBhIHRyaWdnZXIK KyAgICAgICAgIEl0IHVwZGF0ZXMgdGhlIHRyaWdnZXIgaW5mb3JtYXRpb24KKyAgICAgICAgIEFu ZCByZXR1cm5zIHN1Y2Nlc3MgMjAwIiIiCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9ldmVudF90 cmlnZ2VyL29iai8nCisKKyAgICAgICAgc2VsZi5faXNfc2NoZW1hX2FuZF9kYXRhYmFzZV9hdmFp bGFibGUoKQorCiAgICAgICAgIGZ1bmNfbmFtZSA9IHNlbGYuZnVuY3Rpb25faW5mb1sxXQogICAg ICAgICBmdW5jX3Jlc3BvbnNlID0gdHJpZ2dlcl9mdW5jc191dGlscy52ZXJpZnlfdHJpZ2dlcl9m dW5jdGlvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLApAQCAtODUsMTMgKzYyLDE4IEBAIGNs YXNzIEV2ZW50VHJpZ2dlclB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAg ICAgICJpZCI6IHNlbGYuZXZlbnRfdHJpZ2dlcl9pZAogICAgICAgICB9CiAgICAgICAgIHB1dF9y ZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcv JyArIHN0cihzZWxmLmRiX2lkKSArCiAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5ldmVudF90 cmlnZ2VyX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0 X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0g ICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAg ICAgICAgcHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkK KworICAgICAgICBqc29uX3Jlc3BvbnNlID0gc2VsZi5yZXNwb25zZV90b19qc29uKHB1dF9yZXNw b25zZSkKKyAgICAgICAgc2VsZi5hc3NlcnRfbm9kZV9qc29uKGpzb25fcmVzcG9uc2UsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZlbnRfdHJpZ2dlcicsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmV2ZW50X3RyaWdnZXInLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnaWNvbi1ldmVudF90cmlnZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudHJpZ2dlcl9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5z aW9ucy90ZXN0cy9fX2luaXRfXy5weQppbmRleCAzOTAwYzU1Ny4uNTkwMDI2YWQgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlbnNpb25zL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL19faW5pdF9fLnB5 CkBAIC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgRXh0ZW5zaW9u R2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9l eHRlbnNpb25fYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fYWRkLnB5CmluZGV4 IGY0Mzk4ZDU1Li4xZGEzN2ZjNiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNp b25fYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2FkZC5weQpAQCAtMTEs MjQgKzExLDI1IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1w b3J0IGpzb24KIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0 c19oZWxwZXIgaW1wb3J0IENsaWVudFRlc3RCYXNlQ2xhc3MKIGZyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGV4dGVuc2lv bl91dGlscwogCiAKLWNsYXNzIEV4dGVuc2lvbnNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6Ci0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwot ICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KLSAgICAg ICAgKCdDaGVjayBFeHRlbnNpb24gTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9leHRlbnNpb24v b2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2Ns YXNzIFRlc3RFeHRlbnNpb25zQWRkKENsaWVudFRlc3RCYXNlQ2xhc3MpOgorICAgIGRlZiB0ZXN0 X2FkZF9leHRlbnNpb24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGNyZWF0aW9u IHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBz dGF0dXMgIiIiCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCBhZGQgZXh0ZW5zaW9uIHVuZGVyIHRlc3Qgc2NoZW1hLiAiIiIKLSAgICAgICAg c3VwZXIoRXh0ZW5zaW9uc0FkZFRlc3RDYXNlLCBzZWxmKS5ydW5UZXN0KCkKKyAgICAgICAgdXJs ID0gJy9icm93c2VyL2V4dGVuc2lvbi9vYmovJwogICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0g cGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0g c2VsZi5zY2hlbWFfZGF0YVsic2VydmVyX2lkIl0KICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYu c2NoZW1hX2RhdGFbJ2RiX2lkJ10KQEAgLTQyLDEyICs0MywyMCBAQCBjbGFzcyBFeHRlbnNpb25z QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogICAgICAgICBzZWxmLmRhdGEg PSBleHRlbnNpb25fdXRpbHMuZ2V0X2V4dGVuc2lvbl9kYXRhKHNlbGYuc2NoZW1hX25hbWUpCiAg ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVy X2lkKSArICcvJyArIHN0cigKICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKSArICcvJywKICAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLmRhdGEpLAogICAgICAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisKKyAgICAgICAganNvbl9yZXNwb25zZSA9IHNlbGYucmVzcG9uc2Vf dG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgc2VsZi5hc3NlcnRfbm9kZV9qc29uKGpzb25fcmVz cG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXh0ZW5zaW9uJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZXh0ZW5zaW9uJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2ljb24tZXh0ZW5zaW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdj dWJlJykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkIGV4dGVuc2lvbi4K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2RlbGV0ZS5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25z L3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2RlbGV0ZS5weQppbmRleCBhMTY0NGE1OS4uYTQzNmFmMWEg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2RlbGV0ZS5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5z aW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9kZWxldGUucHkKQEAgLTksMjQgKzksMjUgQEAKIAog ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCitpbXBvcnQgcHl0ZXN0Citm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRh YmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgQ2xpZW50VGVzdEJh c2VDbGFzcwogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJl Z3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZy b20gLiBpbXBvcnQgdXRpbHMgYXMgZXh0ZW5zaW9uX3V0aWxzCiAKIAotY2xhc3MgRXh0ZW5zaW9u c0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBza2lwX29uX2RhdGFiYXNl ID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVs dCBVUkwgZm9yIGV4dGVuc2lvbiBub2RlLgotICAgICAgICAoJ0NoZWNrIEV4dGVuc2lvbiBOb2Rl JywgZGljdCh1cmw9Jy9icm93c2VyL2V4dGVuc2lvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5t YXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEV4dGVuc2lvbnNEZWxldGUo Q2xpZW50VGVzdEJhc2VDbGFzcyk6CisgICAgZGVmIHRlc3RfZGVsZXRlX2V4dGVuc2lvbihzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gZGVsZXRpb24gcmVxdWVzdCBpbiBzZW50IHRv IHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cyAiIiIKIAotICAgIGRl ZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0 ZW5zaW9uLiIiIgotICAgICAgICBzdXBlcihFeHRlbnNpb25zRGVsZXRlVGVzdENhc2UsIHNlbGYp LnNldFVwKCkKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2V4dGVuc2lvbi9vYmovJwogICAgICAg ICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCiAgICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KICAgICAg ICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KQEAgLTM2LDggKzM3LDYg QEAgY2xhc3MgRXh0ZW5zaW9uc0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgc2VsZi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMuY3JlYXRlX2V4dGVuc2lv bigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZXh0ZW5zaW9u X25hbWUsIHNlbGYuc2NoZW1hX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgZXh0ZW5zaW9uIGFkZGVkIHRlc3QgZGF0 YWJhc2UuICIiIgogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLApAQCAtNDgsMTIgKzQ3LDIwIEBAIGNsYXNz IEV4dGVuc2lvbnNEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRlbnNpb25f bmFtZSkKICAgICAgICAgaWYgbm90IHJlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgZmluZCBleHRlbnNpb24uIikKLSAgICAgICAgZGVsZXRlX3Jlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVs ZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwog ICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSAr CiAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5leHRlbnNpb25faWQpLAogICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZWxldGVf cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBzZWxm LnJlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdF eHRlbnNpb24gZHJvcHBlZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAK ICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29u bmVjdCB0aGUgdGVzdCBkYXRhYmFzZS4gIiIiCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0 X2V4dGVuc2lvbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9nZXQucHkKaW5k ZXggMjQwMWYxZWQuLmM3ZDVjMzZhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVu c2lvbl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fZ2V0LnB5CkBAIC05 LDI0ICs5LDI1IEBACiAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAg ICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1w b3J0IENsaWVudFRlc3RCYXNlQ2xhc3MKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGV4dGVuc2lvbl91dGlscwogCiAK LWNsYXNzIEV4dGVuc2lvbnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2tp cF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZl dGNoaW5nIGRlZmF1bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KLSAgICAgICAgKCdDaGVjayBF eHRlbnNpb24gTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9leHRlbnNpb24vb2JqLycpKQotICAg IF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RFeHRl bnNpb25zR2V0KENsaWVudFRlc3RCYXNlQ2xhc3MpOgorICAgIGRlZiB0ZXN0X2dldF9leHRlbnNp b24oc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGdldCByZXF1ZXN0IGlzIHNlbnQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzIiIiCiAKLSAgICBk ZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4 dGVuc2lvbi4iIiIKLSAgICAgICAgc3VwZXIoRXh0ZW5zaW9uc0dldFRlc3RDYXNlLCBzZWxmKS5z ZXRVcCgpCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9leHRlbnNpb24vb2JqLycKICAgICAgICAg c2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQogICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCiAgICAgICAg IHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCkBAIC0zNiw4ICszNyw2IEBA IGNsYXNzIEV4dGVuc2lvbnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAg IHNlbGYuZXh0ZW5zaW9uX2lkID0gZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNpb24oCiAg ICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lvbl9uYW1l LCBzZWxmLnNjaGVtYV9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgZXh0ZW5zaW9uIHVuZGVyIGRhdGFiYXNl IG5hbWUuICIiIgogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLApAQCAtNDUsMTEgKzQ0LDIyIEBAIGNsYXNz IEV4dGVuc2lvbnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5v dCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgIHVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKAogICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKyBzdHIo c2VsZi5leHRlbnNpb25faWQpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQor ICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisg ICAgICAgIGpzb25fcmVzcG9uc2UgPSBzZWxmLnJlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZWlkJykKKyAgICAgICAg anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb3duZXInKSA+IFwKKyAgICAgICAgICAg IHNob3VsZC5iZS5lcXVhbC50byhzZWxmLnNlcnZlclsndXNlcm5hbWUnXSkKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gc2hvdWxkLmJlLmVxdWFsLnRv KCdjdWJlJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc2NoZW1h JykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2VsZi5zY2hlbWFfbmFtZSkK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVsb2NhdGFibGUnKSA+ IHNob3VsZC5iZS50cnVlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J3ZlcnNpb24nKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb21t ZW50JykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0 ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4 dGVuc2lvbl9wdXQucHkKaW5kZXggMzk1OTg5ODIuLmY4MGQ4NDVhIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9u cy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRl bnNpb25fcHV0LnB5CkBAIC0xMSwyNCArMTEsMjQgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw cmludF9mdW5jdGlvbgogCiBpbXBvcnQganNvbgogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgQ2xpZW50VGVzdEJhc2VDbGFzcwog ZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBv cnQgdXRpbHMgYXMgZXh0ZW5zaW9uX3V0aWxzCiAKIAotY2xhc3MgRXh0ZW5zaW9uc1B1dFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10K LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV4 dGVuc2lvbiBub2RlLgotICAgICAgICAoJ0NoZWNrIEV4dGVuc2lvbiBOb2RlJywgZGljdCh1cmw9 Jy9icm93c2VyL2V4dGVuc2lvbi9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBleHRlbnNpb24uIiIiCi0g ICAgICAgIHN1cGVyKEV4dGVuc2lvbnNQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorQHB5dGVz dC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEV4dGVuc2lvbnNQdXQo Q2xpZW50VGVzdEJhc2VDbGFzcyk6CisgICAgZGVmIHRlc3RfZXh0ZW5zaW9uc19wdXQoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFBVVCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzIiIiCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9leHRlbnNpb24vb2JqLycKICAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQogICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVt YV9kYXRhWydkYl9pZCddCkBAIC0zOCw4ICszOCw2IEBAIGNsYXNzIEV4dGVuc2lvbnNQdXRUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX2lkID0gZXh0 ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNpb24oCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lvbl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lKQogCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBk YXRlIGV4dGVuc2lvbiBhZGRlZCB1bmRlciB0ZXN0IGRhdGFiYXNlLiAiIiIKICAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwKQEAgLTU0LDE0ICs1MiwyMiBAQCBjbGFzcyBFeHRlbnNpb25zUHV0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgInNjaGVtYSI6ICJwdWJsaWMiLAogICAg ICAgICAgICAgImlkIjogc2VsZi5leHRlbnNpb25faWQKICAgICAgICAgfQotICAgICAgICBwdXRf cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wdXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAg ICAgICAgIHNlbGYuZGJfaWQpICsKICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLmV4dGVuc2lv bl9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNo b3VsZC5iZS5lcXVhbC50bygyMDApCisKKyAgICAgICAganNvbl9yZXNwb25zZSA9IHNlbGYucmVz cG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgc2VsZi5hc3NlcnRfbm9kZV9qc29uKGpz b25fcmVzcG9uc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXh0ZW5zaW9uJywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZXh0ZW5zaW9uJywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2ljb24tZXh0ZW5zaW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdjdWJlJykKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfZXh0ZXJuYWxfdGFibGVzX21vZHVsZS5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvdGVzdHMvdGVzdF9leHRlcm5hbF90YWJsZXNfbW9kdWxlLnB5CmluZGV4IGY4 YzQ3YWIzLi5kYWFkMGEzMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVy bmFsX3RhYmxlc19tb2R1bGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFs X3RhYmxlc19tb2R1bGUucHkKQEAgLTEwLDEwICsxMCwxMCBAQAogaW1wb3J0IHN5cwogCiBpbXBv cnQgc2l4Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKLWZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVyc1wKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycyBcCiAgICAgLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMgaW1wb3J0IEV4dGVy bmFsVGFibGVzTW9kdWxlCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCiAKIGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6CiAgICAgZnJvbSBtb2Nr IGltcG9ydCBNYWdpY01vY2ssIE1vY2sKQEAgLTIxLDc5ICsyMSwzOSBAQCBlbHNlOgogICAgIGZy b20gdW5pdHRlc3QubW9jayBpbXBvcnQgTWFnaWNNb2NrLCBNb2NrCiAKIAotY2xhc3MgVGVzdEV4 dGVybmFsVGFibGVzTW9kdWxlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgnI0JhY2tlbmRTdXBwb3J0ZWQgV2hlbiBhY2Nlc3MgdGhlIG9uIGEgUG9zdGdy ZXNxbCBEYXRhYmFzZSwgJwotICAgICAgICAgJ2l0IHJldHVybnMgZmFsc2UnLAotICAgICAgICAg ZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2JhY2tlbmQtc3VwcG9ydCcsCi0gICAgICAg ICAgICAgbWFuYWdlcj1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0ncGcnLAot ICAgICAgICAgICAgICAgICBzdmVyc2lvbj05MDEwMAotICAgICAgICAgICAgICksCi0gICAgICAg ICAgICAgZXhwZWN0ZWRfcmVzdWx0PUZhbHNlLAotICAgICAgICAgKSksCi0gICAgICAgICgnI0Jh Y2tlbmRTdXBwb3J0ZWQgV2hlbiBhY2Nlc3MgdGhlIG9uIGEgR3JlZW5QbHVtIERhdGFiYXNlLCAn Ci0gICAgICAgICAnaXQgcmV0dXJucyB0cnVlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAg ICAgdGVzdF90eXBlPSdiYWNrZW5kLXN1cHBvcnQnLAotICAgICAgICAgICAgIG1hbmFnZXI9ZGlj dCgKLSAgICAgICAgICAgICAgICAgc2VydmVyX3R5cGU9J2dwZGInLAotICAgICAgICAgICAgICAg ICBzdmVyc2lvbj04MjMwMwotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRf cmVzdWx0PVRydWUKLSAgICAgICAgICkpLAotICAgICAgICAoJyNnZXRfbm9kZXMgd2hlbiB0cnlp bmcgdG8gcmV0cmlldmUgdGhlIG5vZGUsICcKLSAgICAgICAgICdpdCBzaG91bGQgcmV0dXJuIHRy dWUnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2dldC1ub2Rlcycs Ci0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAg ICBnaWQ9MTAsCi0gICAgICAgICAgICAgICAgIHNpZD0xMSwKLSAgICAgICAgICAgICAgICAgZGlk PTEyLAotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfZ2VuZXJhdGVfYnJv d3Nlcl9jb2xsZWN0aW9uX25vZGVfY2FsbGVkX3dpdGg9MTIKLSAgICAgICAgICkpLAotICAgICAg ICAoJyNnZXRfbW9kdWxlX3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0IHdoZW4gY2hlY2tpbmcgaWYg bmVlZCB0byAnCi0gICAgICAgICAnZ2VuZXJhdGUgamF2YXNjcmlwdCBmcm9tIHRlbXBsYXRlLCAn Ci0gICAgICAgICAnaXQgc2hvdWxkIHJldHVybiBmYWxzZScsCi0gICAgICAgICBkaWN0KAotICAg ICAgICAgICAgIHRlc3RfdHlwZT0ndGVtcGxhdGUtamF2YXNjcmlwdCcsCi0gICAgICAgICAgICAg ZXhwZWN0ZWRfcmVzdWx0PUZhbHNlCi0gICAgICAgICApKQotICAgIF0KLQotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICBpZiBzZWxmLnRlc3RfdHlwZSA9PSAnYmFja2VuZC1zdXBwb3J0 JzoKLSAgICAgICAgICAgIHNlbGYuX190ZXN0X2JhY2tlbmRfc3VwcG9ydCgpCi0gICAgICAgIGVs aWYgc2VsZi50ZXN0X3R5cGUgPT0gJ2dldC1ub2Rlcyc6Ci0gICAgICAgICAgICBzZWxmLl9fdGVz dF9nZXRfbm9kZXMoKQotICAgICAgICBlbGlmIHNlbGYudGVzdF90eXBlID09ICd0ZW1wbGF0ZS1q YXZhc2NyaXB0JzoKLSAgICAgICAgICAgIHNlbGYuX190ZXN0X3RlbXBsYXRlX2phdmFzY3JpcHQo KQorY2xhc3MgVGVzdEV4dGVybmFsVGFibGVzTW9kdWxlKG9iamVjdCk6CisgICAgZGVmIHRlc3Rf YmFja2VuZF9zdXBwb3J0X29uX3Bvc3RncmVzcWwoc2VsZik6CisgICAgICAgICIiIldoZW4gYWNj ZXNzZWQgb24gUG9zdGdyZXNxbCBEYXRhYmFzZSIiIgorICAgICAgICBtYW5hZ2VyID0gTWFnaWNN b2NrKCkKKyAgICAgICAgbWFuYWdlci5zdmVyc2lvbiA9IDkwMTAwCisgICAgICAgIG1hbmFnZXIu c2VydmVyX3R5cGUgPSAncGcnCisgICAgICAgIG1vZHVsZSA9IEV4dGVybmFsVGFibGVzTW9kdWxl KCdzb21ldGhpbmcnKQorICAgICAgICBtb2R1bGUuQmFja2VuZFN1cHBvcnRlZChtYW5hZ2VyKSB8 IHNob3VsZC5iZS5mYWxzZQogCi0gICAgZGVmIF9fdGVzdF9iYWNrZW5kX3N1cHBvcnQoc2VsZik6 CisgICAgZGVmIHRlc3RfYmFja2VuZF9zdXBwb3J0X2dyZWVucGx1bShzZWxmKToKKyAgICAgICAg IiIiV2hlbiBhY2Nlc3NlZCBvbiBHcmVlblBsdW0gRGF0YWJhc2UiIiIKICAgICAgICAgbWFuYWdl ciA9IE1hZ2ljTW9jaygpCi0gICAgICAgIG1hbmFnZXIuc3ZlcnNpb24gPSBzZWxmLm1hbmFnZXJb J3N2ZXJzaW9uJ10KLSAgICAgICAgbWFuYWdlci5zZXJ2ZXJfdHlwZSA9IHNlbGYubWFuYWdlclsn c2VydmVyX3R5cGUnXQorICAgICAgICBtYW5hZ2VyLnN2ZXJzaW9uID0gODIzMDMKKyAgICAgICAg bWFuYWdlci5zZXJ2ZXJfdHlwZSA9ICdncGRiJwogICAgICAgICBtb2R1bGUgPSBFeHRlcm5hbFRh Ymxlc01vZHVsZSgnc29tZXRoaW5nJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCi0gICAg ICAgICAgICBzZWxmLmV4cGVjdGVkX3Jlc3VsdCwKLSAgICAgICAgICAgIG1vZHVsZS5CYWNrZW5k U3VwcG9ydGVkKG1hbmFnZXIpCi0gICAgICAgICkKKyAgICAgICAgbW9kdWxlLkJhY2tlbmRTdXBw b3J0ZWQobWFuYWdlcikgfCBzaG91bGQuYmUudHJ1ZQogCi0gICAgZGVmIF9fdGVzdF9nZXRfbm9k ZXMoc2VsZik6CisgICAgZGVmIHRlc3RfZ2V0X25vZGVzKHNlbGYpOgorICAgICAgICAiIiJ3aGVu IHRyeWluZyB0byByZXRyaWV2ZSB0aGUgbm9kZSwKKyAgICAgICAgIGl0IGNhbGxzIHRoZSBnZW5l cmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZSBmdW5jdGlvbgorICAgICAgICB3aXRoIHZhbHVl IDEyIiIiCiAgICAgICAgIG1vZHVsZSA9IEV4dGVybmFsVGFibGVzTW9kdWxlKCdzb21ldGhpbmcn KQogICAgICAgICBtb2R1bGUuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUgPSBNb2Nr KCkKIAotICAgICAgICByZXN1bHQgPSBtb2R1bGUuZ2V0X25vZGVzKCoqc2VsZi5mdW5jdGlvbl9w YXJhbWV0ZXJzKQorICAgICAgICByZXN1bHQgPSBtb2R1bGUuZ2V0X25vZGVzKGdpZD0xMCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWQ9MTEsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGlkPTEyKQogICAgICAgICBzaXgubmV4dChyZXN1bHQpCiAKLSAg ICAgICAgbW9kdWxlLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlLmFzc2VydF9jYWxs ZWRfd2l0aCgKLSAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZ2VuZXJhdGVfYnJvd3Nlcl9jb2xs ZWN0aW9uX25vZGVfY2FsbGVkX3dpdGgKLSAgICAgICAgKQorICAgICAgICBtb2R1bGUuZ2VuZXJh dGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUuYXNzZXJ0X2NhbGxlZF93aXRoKDEyKQogCi0gICAg ZGVmIF9fdGVzdF90ZW1wbGF0ZV9qYXZhc2NyaXB0KHNlbGYpOgorICAgIGRlZiB0ZXN0X3RlbXBs YXRlX2phdmFzY3JpcHQoc2VsZik6CisgICAgICAgICIiIndoZW4gY2hlY2tpbmcgaWYgaXQgbmVl ZHMgdG8gZ2VuZXJhdGUgamF2YXNjcmlwdCBmcm9tIHRlbXBsYXRlLAorICAgICAgICBpdCBzaG91 bGQgcmV0dXJuIGZhbHNlIiIiCiAgICAgICAgIG1vZHVsZSA9IEV4dGVybmFsVGFibGVzTW9kdWxl KCdzb21ldGhpbmcnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgICAgIHNl bGYuZXhwZWN0ZWRfcmVzdWx0LAotICAgICAgICAgICAgbW9kdWxlLm1vZHVsZV91c2VfdGVtcGxh dGVfamF2YXNjcmlwdCkKKyAgICAgICAgbW9kdWxlLm1vZHVsZV91c2VfdGVtcGxhdGVfamF2YXNj cmlwdCB8IHNob3VsZC5iZS5mYWxzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0 X2V4dGVybmFsX3RhYmxlc192aWV3LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFs X3RhYmxlc192aWV3LnB5CmluZGV4IDQ3MzM3OGE2Li4wZTRlNzljMSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFs X3RhYmxlcy90ZXN0cy90ZXN0X2V4dGVybmFsX3RhYmxlc192aWV3LnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJs ZXMvdGVzdHMvdGVzdF9leHRlcm5hbF90YWJsZXNfdmlldy5weQpAQCAtNywxMiArNywxMyBAQAog IwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiAKK2Zyb20gZ3Jh cHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMgaW1wb3J0IFwKICAgICBFeHRlcm5hbFRh Ymxlc1ZpZXcKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9j ayBpbXBvcnQgTWFnaWNNb2NrLCBwYXRjaApAQCAtMjEsNDE1ICsyMiw0MDYgQEAgZWxzZToKIAog CiBjbGFzcyBUZXN0RXh0ZXJuYWxUYWJsZXNWaWV3KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICgnI2NoZWNrX3ByZWNvbmRpdGlvbiBXaGVuIGV4ZWN1dGlu ZyBhbnkgaHR0cCBjYWxsLCAnCi0gICAgICAgICAnaXQgc2F2ZXMgc3RvcmVzIHRoZSBjb25uZWN0 aW9uIGFuZCB0aGUgbWFuYWdlciBpbiB0aGUgY2xhc3Mgb2JqZWN0JywKLSAgICAgICAgIGRpY3Qo Ci0gICAgICAgICAgICAgdGVzdF90eXBlPSdjaGVjay1wcmVjb25kaXRpb24nLAotICAgICAgICAg ICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgc2VydmVyX2dy b3VwX2lkPTAsCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAotICAgICAgICAgICAgICAg ICBkYXRhYmFzZV9pZD0yLAotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgbWFuYWdlcj1N YWdpY01vY2soKSwKLSAgICAgICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJk YXJyYXk9TWFnaWNNb2NrKCkpLAotICAgICAgICAgICAgIGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5f dmFsdWU9KFRydWUsIGRpY3Qocm93cz1bXSkpLAotICAgICAgICAgICAgIGV4cGVjdGVkX21hbmFn ZXJfY29ubmVjdGlvbl90b19iZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBk aWQ9MgotICAgICAgICAgICAgICksCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbm9kZXMgV2hl biByZXRyaWV2aW5nIHRoZSBjaGlsZHJlbiBvZiBleHRlcm5hbCB0YWJsZXMsICcKLSAgICAgICAg ICdpdCByZXR1cm4gbm8gY2hpbGQgJwotICAgICAgICAgJ2FuZCBzdGF0dXMgMjAwJywKLSAgICAg ICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdjaGlsZHJlbicsCi0gICAgICAgICAg ICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3Jv dXBfaWQ9MCwKLSAgICAgICAgICAgICAgICAgc2VydmVyX2lkPTEsCi0gICAgICAgICAgICAgICAg IGRhdGFiYXNlX2lkPTIsCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBtYW5hZ2VyPU1h Z2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwKLSAgICAgICAgICAg ICBjb25uZWN0aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAotICAg ICAgICAgICAgIGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qocm93cz1b XSkpLAotCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93 aXRoPWRpY3QoZGF0YT1bXSksCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbm9kZXMgV2hlbiBy ZXRyaWV2aW5nIHRoZSBub2RlcyAnCi0gICAgICAgICAnYW5kIHRoZSBkYXRhYmFzZSBkb2VzIG5v dCBoYXZlIGV4dGVybmFsIHRhYmxlcywgJwotICAgICAgICAgJ2l0IHJldHVybiBubyBjaGlsZCBu b2RlcyAnCi0gICAgICAgICAnYW5kIHN0YXR1cyAyMDAnLAotICAgICAgICAgZGljdCgKLSAgICAg ICAgICAgICB0ZXN0X3R5cGU9J25vZGVzJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0 ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9ncm91cF9pZD0wLAotICAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQ9MSwKLSAgICAgICAgICAgICAgICAgZGF0YWJhc2VfaWQ9MiwKLSAg ICAgICAgICAgICApLAotICAgICAgICAgICAgIG1hbmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBl PSdncGRiJywgc3ZlcnNpb249ODAzMjMpLAotICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNN b2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8y ZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSksCi0KLSAgICAgICAgICAg ICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPW9zLnBhdGguam9pbigKLSAgICAg ICAgICAgICAgICAgJ3NxbC8jZ3BkYiM4MDMyMyMnLCAnbGlzdC5zcWwnKSwKLSAgICAgICAgICAg ICBleHBlY3RlZF9tYWtlX2pzb25fcmVzcG9uc2VfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAg ICAgICAgICAgZGF0YT1bXSwKLSAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAotICAgICAgICAg ICAgICksCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbm9kZXMgV2hlbiByZXRyaWV2aW5nIHRo ZSBub2RlcyAnCi0gICAgICAgICAnYW5kIGFuIGVycm9yIGhhcHBlbnMgd2hpbGUgZXhlY3V0aW5n IHRoZSBxdWVyeSwgJwotICAgICAgICAgJ2l0IHJldHVybiBhbiBpbnRlcm5hbCBzZXJ2ZXIgZXJy b3IgJwotICAgICAgICAgJ2FuZCBzdGF0dXMgNTAwJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAg ICAgICAgdGVzdF90eXBlPSdub2RlcycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVy cz1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXBfaWQ9MCwKLSAgICAgICAgICAg ICAgICAgc2VydmVyX2lkPTEsCi0gICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCi0gICAg ICAgICAgICAgKSwKLQotICAgICAgICAgICAgIG1hbmFnZXI9TWFnaWNNb2NrKHNlcnZlcl90eXBl PSdncGRiJywgc3ZlcnNpb249ODAzMjMpLAotICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNN b2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8y ZGFycmF5X3JldHVybl92YWx1ZT0oRmFsc2UsICdTb21lIGVycm9yIG1lc3NhZ2UnKSwKLQotICAg ICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9b3MucGF0aC5qb2lu KAotICAgICAgICAgICAgICAgICAnc3FsLyNncGRiIzgwMzIzIycsICdsaXN0LnNxbCcpLAotICAg ICAgICAgICAgIGV4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1kaWN0 KAotICAgICAgICAgICAgICAgICBlcnJvcm1zZz0nU29tZSBlcnJvciBtZXNzYWdlJwotICAgICAg ICAgICAgICksCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbm9kZXMgV2hlbiByZXRyaWV2aW5n IHRoZSBub2RlcyAnCi0gICAgICAgICAnYW5kIHRoZSBkYXRhYmFzZSBoYXMgMiBleHRlcm5hbCB0 YWJsZXMsICcKLSAgICAgICAgICdpdCByZXR1cm4gMiBjaGlsZCBub2RlcyAnCi0gICAgICAgICAn YW5kIHN0YXR1cyAyMDAnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9 J25vZGVzJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAg ICAgICAgICAgIHNlcnZlcl9ncm91cF9pZD0wLAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9 MSwKLSAgICAgICAgICAgICAgICAgZGF0YWJhc2VfaWQ9MiwKLSAgICAgICAgICAgICApLAotCi0g ICAgICAgICAgICAgbWFuYWdlcj1NYWdpY01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lv bj04MDMyMyksCi0gICAgICAgICAgICAgY29ubmVjdGlvbj1NYWdpY01vY2soZXhlY3V0ZV8yZGFy cmF5PU1hZ2ljTW9jaygpKSwKLSAgICAgICAgICAgICBleGVjdXRlXzJkYXJyYXlfcmV0dXJuX3Zh bHVlPShUcnVlLCBkaWN0KAotICAgICAgICAgICAgICAgICByb3dzPVsKLSAgICAgICAgICAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgICAgICAgICAgb2lkPSdvaWQxJywKLSAgICAg ICAgICAgICAgICAgICAgICAgICBuYW1lPSd0YWJsZV9vbmUnCi0gICAgICAgICAgICAgICAgICAg ICApLAotICAgICAgICAgICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICAgICAgICAg ICBvaWQ9J29pZDInLAotICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3RhYmxlX3R3bycK LSAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAg ICApKSwKLQotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9 b3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAnc3FsLyNncGRiIzgwMzIzIycsICdsaXN0 LnNxbCcpLAotICAgICAgICAgICAgIGV4cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRf d2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBkYXRhPVsKLSAgICAgICAgICAgICAgICAgICAg IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiAiZXh0ZXJuYWxfdGFibGUvb2lkMSIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ3RhYmxlX29uZScsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgJ2ljb24nOiAnaWNvbi1leHRlcm5hbF90YWJsZScsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgJ2lub2RlJzogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgJ190eXBlJzogJ2V4dGVybmFsX3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAn X2lkJzogJ29pZDEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICdfcGlkJzogMiwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9kZS5leHRlcm5hbF90YWJs ZScKLSAgICAgICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICB7Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgJ2lkJzogImV4dGVybmFsX3RhYmxlL29pZDIiLAotICAgICAg ICAgICAgICAgICAgICAgICAgICdsYWJlbCc6ICd0YWJsZV90d28nLAotICAgICAgICAgICAgICAg ICAgICAgICAgICdpY29uJzogJ2ljb24tZXh0ZXJuYWxfdGFibGUnLAotICAgICAgICAgICAgICAg ICAgICAgICAgICdpbm9kZSc6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICdfdHlw ZSc6ICdleHRlcm5hbF90YWJsZScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ19pZCc6ICdv aWQyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnX3BpZCc6IDIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgJ21vZHVsZSc6ICdwZ2FkbWluLm5vZGUuZXh0ZXJuYWxfdGFibGUnCi0gICAg ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAgICAg IHN0YXR1cz0yMDAKLSAgICAgICAgICAgICApLAotICAgICAgICAgKSksCi0gICAgICAgICgnI25v ZGUgV2hlbiByZXRyaWV2aW5nIHRoZSBpbmZvcm1hdGlvbiBhYm91dCAxIGV4dGVybmFsIHRhYmxl ICcKLSAgICAgICAgICdhbmQgYW4gZXJyb3IgaGFwcGVucyB3aGlsZSBleGVjdXRpbmcgdGhlIHF1 ZXJ5LCAnCi0gICAgICAgICAnaXQgcmV0dXJuIGFuIGludGVybmFsIHNlcnZlciBlcnJvciAnCi0g ICAgICAgICAnYW5kIHN0YXR1cyA1MDAnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0 ZXN0X3R5cGU9J25vZGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgK LSAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwX2lkPTAsCi0gICAgICAgICAgICAgICAgIHNl cnZlcl9pZD0xLAotICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAotICAgICAgICAgICAg ICAgICBleHRlcm5hbF90YWJsZV9pZD0xMQotICAgICAgICAgICAgICksCi0KLSAgICAgICAgICAg ICBtYW5hZ2VyPU1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwK LSAgICAgICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNN b2NrKCkpLAotICAgICAgICAgICAgIGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KEZhbHNl LCAnU29tZSBlcnJvciBtZXNzYWdlJyksCi0KLSAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3Rl bXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVf b3JfbGlzdD1vcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgICAnc3FsLyNncGRiIzgw MzIzIycsICdub2RlLnNxbCcpLAotICAgICAgICAgICAgICAgICBleHRlcm5hbF90YWJsZV9pZD0x MQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVy X2Vycm9yX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGVycm9ybXNnPSdTb21l IGVycm9yIG1lc3NhZ2UnCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICkpLAotICAgICAgICAo JyNub2RlIFdoZW4gcmV0cmlldmluZyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgMSBleHRlcm5hbCB0 YWJsZSAnCi0gICAgICAgICAnYW5kIHRhYmxlIGRvZXMgbm90IGV4aXN0LCAnCi0gICAgICAgICAn aXQgcmV0dXJuIGFuIGVycm9yIG1lc3NhZ2UgJwotICAgICAgICAgJ2FuZCBzdGF0dXMgNDA0JywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdub2RlJywKLSAgICAgICAg ICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9n cm91cF9pZD0wLAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKLSAgICAgICAgICAgICAg ICAgZGF0YWJhc2VfaWQ9MiwKLSAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEK LSAgICAgICAgICAgICApLAotCi0gICAgICAgICAgICAgbWFuYWdlcj1NYWdpY01vY2soc2VydmVy X3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMyksCi0gICAgICAgICAgICAgY29ubmVjdGlvbj1N YWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKSwKLSAgICAgICAgICAgICBleGVj dXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlPShUcnVlLCBkaWN0KHJvd3M9W10pKSwKLQotICAgICAg ICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAg ICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PW9zLnBhdGguam9pbigKLSAgICAgICAgICAg ICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjJywgJ25vZGUuc3FsJyksCi0gICAgICAgICAgICAg ICAgIGV4dGVybmFsX3RhYmxlX2lkPTExCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBl eHBlY3RlZF9tYWtlX2pzb25fcmVzcG9uc2VfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAg ICAgICAgZGF0YT0nQ291bGQgbm90IGZpbmQgdGhlIGV4dGVybmFsIHRhYmxlLicsCi0gICAgICAg ICAgICAgICAgIHN0YXR1cz00MDQKLSAgICAgICAgICAgICApLAotICAgICAgICAgKSksCi0gICAg ICAgICgnI25vZGVzIFdoZW4gcmV0cmlldmluZyB0aGUgaW5mb3JtYXRpb24gYWJvdXQgMSBleHRl cm5hbCB0YWJsZSAnCi0gICAgICAgICAnYW5kIHRoZSB0YWJsZSBleGlzdHMsICcKLSAgICAgICAg ICdpdCByZXR1cm4gZXh0ZXJuYWwgbm9kZSBpbmZvcm1hdGlvbiAnCi0gICAgICAgICAnYW5kIHN0 YXR1cyAyMDAnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J25vZGUn LAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAg ICAgc2VydmVyX2dyb3VwX2lkPTAsCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAotICAg ICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAotICAgICAgICAgICAgICAgICBleHRlcm5hbF90 YWJsZV9pZD0xMQotICAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgICBtYW5hZ2VyPU1hZ2lj TW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKSwKLSAgICAgICAgICAgICBj b25uZWN0aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAotICAgICAg ICAgICAgIGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3QoCi0gICAgICAg ICAgICAgICAgIHJvd3M9WwotICAgICAgICAgICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICAgICAgICAgICAgICBvaWQ9J29pZDEnLAotICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9 J3RhYmxlX29uZScKLSAgICAgICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgICAg ICBkaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgIG9pZD0nb2lkMicsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgbmFtZT0ndGFibGVfdHdvJwotICAgICAgICAgICAgICAgICAgICAgKSwK LSAgICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICkpLAotCi0gICAgICAgICAgICAgZXhw ZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9b3MucGF0aC5qb2luKAotICAgICAgICAgICAgICAgICAgICAg J3NxbC8jZ3BkYiM4MDMyMyMnLCAnbm9kZS5zcWwnKSwKLSAgICAgICAgICAgICAgICAgZXh0ZXJu YWxfdGFibGVfaWQ9MTEKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGV4cGVjdGVkX21h a2VfanNvbl9yZXNwb25zZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBkYXRh PXsKLSAgICAgICAgICAgICAgICAgICAgICdpZCc6ICJleHRlcm5hbF90YWJsZS9vaWQxIiwKLSAg ICAgICAgICAgICAgICAgICAgICdsYWJlbCc6ICd0YWJsZV9vbmUnLAotICAgICAgICAgICAgICAg ICAgICAgJ2ljb24nOiAnaWNvbi1leHRlcm5hbF90YWJsZScsCi0gICAgICAgICAgICAgICAgICAg ICAnaW5vZGUnOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICdfdHlwZSc6ICdleHRlcm5h bF90YWJsZScsCi0gICAgICAgICAgICAgICAgICAgICAnX2lkJzogJ29pZDEnLAotICAgICAgICAg ICAgICAgICAgICAgJ19waWQnOiAyLAotICAgICAgICAgICAgICAgICAgICAgJ21vZHVsZSc6ICdw Z2FkbWluLm5vZGUuZXh0ZXJuYWxfdGFibGUnCi0gICAgICAgICAgICAgICAgIH0sCi0gICAgICAg ICAgICAgICAgIHN0YXR1cz0yMDAKLSAgICAgICAgICAgICApLAotICAgICAgICAgKSksCi0gICAg ICAgICgnI3Byb3BlcnRpZXMgV2hlbiByZXRyaWV2aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIGEgZXh0 ZXJuYWwgdGFibGUgJwotICAgICAgICAgJ2FuZCB0aGUgdGFibGUgZXhpc3RzLCAnCi0gICAgICAg ICAnaXQgcmV0dXJuIHRoZSBwcm9wZXJ0aWVzICcKLSAgICAgICAgICdhbmQgc3RhdHVzIDIwMCcs Ci0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0ncHJvcGVydGllcycsCi0g ICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBz ZXJ2ZXJfZ3JvdXBfaWQ9MCwKLSAgICAgICAgICAgICAgICAgc2VydmVyX2lkPTEsCi0gICAgICAg ICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCi0gICAgICAgICAgICAgICAgIGV4dGVybmFsX3RhYmxl X2lkPTExCi0gICAgICAgICAgICAgKSwKLQotICAgICAgICAgICAgIG1hbmFnZXI9TWFnaWNNb2Nr KHNlcnZlcl90eXBlPSdncGRiJywgc3ZlcnNpb249ODAzMjMpLAotICAgICAgICAgICAgIGNvbm5l Y3Rpb249TWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAgICAg ICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdCgKLSAgICAgICAgICAg ICAgICAgcm93cz1bZGljdCgKLSAgICAgICAgICAgICAgICAgICAgIHVyaWxvY2F0aW9uPSd7aHR0 cDovL3NvbWV1cmwuY29tfScsCi0gICAgICAgICAgICAgICAgICAgICBleGVjbG9jYXRpb249WydB TExfU0VHTUVOVFMnXSwKLSAgICAgICAgICAgICAgICAgICAgIGZtdHR5cGU9J2EnLAotICAgICAg ICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyAnCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAotICAg ICAgICAgICAgICAgICAgICAgY29tbWFuZD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgcmVq ZWN0bGltaXQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25l LAotICAgICAgICAgICAgICAgICAgICAgZXJydGJsbmFtZT1Ob25lLAotICAgICAgICAgICAgICAg ICAgICAgZXJyb3J0b2ZpbGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIHBnX2VuY29kaW5n X3RvX2NoYXI9J1VURjgnLAotICAgICAgICAgICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCi0g ICAgICAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICBk aXN0cmlidXRpb249Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGUn LAotICAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdwdWJsaWMnCi0gICAgICAgICAgICAg ICAgICldCi0gICAgICAgICAgICAgKSksCi0KLSAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3Rl bXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVf b3JfbGlzdD1vcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgICAgICAnc3FsLyNncGRiIzgw MzIzIycsICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJyksCi0gICAgICAgICAgICAgICAgIHRh YmxlX29pZD0xMQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbWFrZV9y ZXNwb25zZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICByZXNwb25zZT1kaWN0 KAotICAgICAgICAgICAgICAgICAgICAgbmFtZT0ic29tZV90YWJsZSIsCi0gICAgICAgICAgICAg ICAgICAgICB0eXBlPSdyZWFkYWJsZScsCi0gICAgICAgICAgICAgICAgICAgICBmb3JtYXRfdHlw ZT0nVVRGOCcsCi0gICAgICAgICAgICAgICAgICAgICBmb3JtYXRfb3B0aW9ucz0nZGVsaW1pdGVy IFwnLFwnIG51bGwgXCdcJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn ZXNjYXBlIFwnIlwnIHF1b3RlIFwnIlwnJywKLSAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFs X29wdGlvbnM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKLSAgICAg ICAgICAgICAgICAgICAgIGV4ZWN1dGVfb249J2FsbCBzZWdtZW50cycsCi0gICAgICAgICAgICAg ICAgICksCi0gICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKLSAgICAgICAgICAgICApLAotICAg ICAgICAgKSksCi0gICAgXQotCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCiAgICAgICAgICAgICcuZ2V0 X2RyaXZlcicpCi0gICAgZGVmIHJ1blRlc3Qoc2VsZiwgZ2V0X2RyaXZlcl9tb2NrKToKLSAgICAg ICAgc2VsZi5fX2JlZm9yZV9hbGwoZ2V0X2RyaXZlcl9tb2NrKQotCi0gICAgICAgIGlmIHNlbGYu dGVzdF90eXBlID09ICdjaGVjay1wcmVjb25kaXRpb24nOgotICAgICAgICAgICAgc2VsZi5fX3Rl c3RfYmFja2VuZF9zdXBwb3J0KCkKLSAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAnbm9k ZXMnOgotICAgICAgICAgICAgc2VsZi5fX3Rlc3Rfbm9kZXMoKQotICAgICAgICBlbGlmIHNlbGYu dGVzdF90eXBlID09ICdub2RlJzoKLSAgICAgICAgICAgIHNlbGYuX190ZXN0X25vZGUoKQotICAg ICAgICBlbGlmIHNlbGYudGVzdF90eXBlID09ICdjaGlsZHJlbic6Ci0gICAgICAgICAgICBzZWxm Ll9fdGVzdF9jaGlsZHJlbigpCi0gICAgICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ3Byb3Bl cnRpZXMnOgotICAgICAgICAgICAgc2VsZi5fX3Rlc3RfcHJvcGVydGllcygpCisgICAgQHBhdGNo KCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5h bF90YWJsZXMnCisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdF9w cmVjb25kaXRpb24oc2VsZiwgXywgZ2V0X2RyaXZlcl9tb2NrKToKKyAgICAgICAgIiIiV2hlbiBh biBIVFRQIHJlcXVlc3QgaXMgbWFkZQorICAgICAgICBpdCBzdG9yZXMgdGhlIG1hbmFnZXIgYW5k IGNvbm5lY3Rpb24gaW4gdGhlIGNsYXNzIG9iamVjdCIiIgorICAgICAgICBtYW5hZ2VyID0gTWFn aWNNb2NrKCkKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJh eT1NYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qocm93cz1b XSkpKQorICAgICAgICApCisgICAgICAgIG1hbmFnZXIuY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhy ZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCisgICAgICAgIGdldF9kcml2ZXJfbW9jay5yZXR1 cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uZWN0aW9uX21hbmFnZXI9TWFn aWNNb2NrKHJldHVybl92YWx1ZT1tYW5hZ2VyKQorICAgICAgICApCisKKyAgICAgICAgZXh0ZXJu YWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXcoY21kPScnKQorICAgICAgICBleHRl cm5hbF90YWJsZXNfdmlldy5ub2RlcyhzZXJ2ZXJfZ3JvdXBfaWQ9MCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkPTEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIpCisKKyAgICAgICAgbWFuYWdlci5jb25uZWN0aW9u LmFzc2VydF9jYWxsZWRfd2l0aChkaWQ9MikKKyAgICAgICAgbWFuYWdlciB8IHNob3VsZC5iZS5l cXVhbC50byhleHRlcm5hbF90YWJsZXNfdmlldy5tYW5hZ2VyKQorICAgICAgICBtYW5hZ2VyLmNv bm5lY3Rpb24gfCBzaG91bGQuYmUuZXF1YWwgXAorICAgICAgICAgICAgLnRvKGV4dGVybmFsX3Rh Ymxlc192aWV3LmNvbm5lY3Rpb24pCiAKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKICAgICAgICAgICAg Jy5tYWtlX2pzb25fcmVzcG9uc2UnKQotICAgIGRlZiBfX3Rlc3RfY2hpbGRyZW4oc2VsZiwgbWFr ZV9qc29uX3Jlc3BvbnNlX21vY2spOgotICAgICAgICBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbiA9 IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9c2VsZi5jb25uZWN0aW9uKQorICAgIGRlZiB0ZXN0X2No aWxkcmVuKHNlbGYsIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gcmV0cmlldmluZyB0aGUgdHJlZSBub2RlIHVuZGVybmVhdGggZXh0ZXJuYWwgdGFi bGVzCisgICAgICAgIEl0IHJldHVybnMgZW1wdHkgY2hpbGRyZW4gbGlzdCBhbmQgc3RhdHVzIG9m IDIwMAorICAgICAgICAiIiIKKyAgICAgICAgbWFuYWdlciA9IE1hZ2ljTW9jayhzZXJ2ZXJfdHlw ZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKQorICAgICAgICByZXR1cm5fdmFsdWUgPSBNYWdpY01v Y2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT0o VHJ1ZSwgZGljdChyb3dzPVtdKSkpCisgICAgICAgICkKKyAgICAgICAgbWFuYWdlci5jb25uZWN0 aW9uID0gTWFnaWNNb2NrKHJldHVybl92YWx1ZT1yZXR1cm5fdmFsdWUpCisKICAgICAgICAgZXh0 ZXJuYWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXcoY21kPScnKQotICAgICAgICBl eHRlcm5hbF90YWJsZXNfdmlldy5jaGlsZHJlbigqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycykK KyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcuY2hpbGRyZW4oc2VydmVyX2dyb3VwX2lkPTAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0xLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yKQogICAgICAg ICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAg ICAqKnNlbGYuZXhwZWN0ZWRfbWFrZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoCisgICAgICAg ICAgICBkYXRhPVtdCiAgICAgICAgICkKIAorICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAg ICAnLmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLm1ha2Vf anNvbl9yZXNwb25zZScpCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCiAgICAgICAgICAgICcucmVuZGVy X3RlbXBsYXRlJykKLSAgICBkZWYgX190ZXN0X2JhY2tlbmRfc3VwcG9ydChzZWxmLCBfKToKLSAg ICAgICAgc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPXNl bGYuY29ubmVjdGlvbikKKyAgICBkZWYgdGVzdF9ub2Rlc193aXRob3V0X2NoaWxkcmVuKHNlbGYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9j aywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ha2VfanNvbl9yZXNwb25z ZV9tb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2RyaXZlcl9t b2NrKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyB0aGUgdHJlZSBub2Rl cworICAgICAgICBBbmQgdGhlIGRhdGFiYXNlIGhhcyBubyBleHRlcm5hbCB0YWJsZXMKKyAgICAg ICAgSXQgcmV0dXJucyBlbXB0eSB0cmVlIG5vZGUgbGlzdCBhbmQgc3RhdHVzIG9mIDIwMAorICAg ICAgICAiIiIKKyAgICAgICAgbWFuYWdlciA9IE1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYics IHN2ZXJzaW9uPTgwMzIzKQorICAgICAgICByZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soZXhlY3V0 ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT0oVHJ1ZSwgZGlj dChyb3dzPVtdKSkpCisgICAgICAgICkKKyAgICAgICAgbWFuYWdlci5jb25uZWN0aW9uID0gTWFn aWNNb2NrKHJldHVybl92YWx1ZT1yZXR1cm5fdmFsdWUpCisKKyAgICAgICAgZ2V0X2RyaXZlcl9t b2NrLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5lY3Rpb25fbWFu YWdlcj1NYWdpY01vY2socmV0dXJuX3ZhbHVlPW1hbmFnZXIpCisgICAgICAgICkKKwogICAgICAg ICBleHRlcm5hbF90YWJsZXNfdmlldyA9IEV4dGVybmFsVGFibGVzVmlldyhjbWQ9JycpCi0gICAg ICAgIGV4dGVybmFsX3RhYmxlc192aWV3Lm5vZGVzKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJz KQotICAgICAgICBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbi5hc3NlcnRfY2FsbGVkX3dpdGgoCi0g ICAgICAgICAgICAqKnNlbGYuZXhwZWN0ZWRfbWFuYWdlcl9jb25uZWN0aW9uX3RvX2JlX2NhbGxl ZF93aXRoCisgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3Lm5vZGVzKHNlcnZlcl9ncm91cF9p ZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2VfaWQ9MikKKworICAgICAg ICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoZGF0YT1bXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0y MDApCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAg ICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjL2xpc3Quc3FsJwogICAgICAgICApCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHNlbGYubWFuYWdlciwgZXh0ZXJuYWxfdGFibGVzX3ZpZXcubWFu YWdlcikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2VsZi5jb25uZWN0aW9uLCBleHRlcm5h bF90YWJsZXNfdmlldy5jb25uZWN0aW9uKQogCisgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCisgICAgICAg ICAgICcuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCisgICAgICAgICAgICcuaW50 ZXJuYWxfc2VydmVyX2Vycm9yJykKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKICAgICAgICAgICAgJy5y ZW5kZXJfdGVtcGxhdGUnKQorICAgIGRlZiB0ZXN0X2Vycm9yX3JldHJpZXZpbmdfbm9kZXMoc2Vs ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9t b2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVy X2Vycm9yX21vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRfZHJp dmVyX21vY2spOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZXRyaWV2aW5nIHRoZSB0cmVl IG5vZGVzCisgICAgICAgIEFuZCB0aGUgZGF0YWJhc2UgaGFzIG5vIGV4dGVybmFsIHRhYmxlcwor ICAgICAgICBJdCByZXR1cm5zIGVtcHR5IHRyZWUgbm9kZSBsaXN0IGFuZCBzdGF0dXMgb2YgMjAw CisgICAgICAgICIiIgorICAgICAgICBtYW5hZ2VyID0gTWFnaWNNb2NrKHNlcnZlcl90eXBlPSdn cGRiJywgc3ZlcnNpb249ODAzMjMpCisgICAgICAgIHJldHVybl92YWx1ZSA9IE1hZ2ljTW9jayhl eGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPShGYWxz ZSwgJ1NvbWUgZXJyb3IgbWVzc2FnZScpCisgICAgICAgICkpCisgICAgICAgIG1hbmFnZXIuY29u bmVjdGlvbiA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCisgICAgICAg IGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBj b25uZWN0aW9uX21hbmFnZXI9TWFnaWNNb2NrKHJldHVybl92YWx1ZT1tYW5hZ2VyKQorICAgICAg ICApCisKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXco Y21kPScnKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5ub2RlcyhzZXJ2ZXJfZ3JvdXBf aWQ9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkPTEsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIpCisKKyAgICAg ICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAg ICAgICAgZXJyb3Jtc2c9J1NvbWUgZXJyb3IgbWVzc2FnZScKKyAgICAgICAgKQorICAgICAgICBy ZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnc3Fs LyNncGRiIzgwMzIzIy9saXN0LnNxbCcKKyAgICAgICAgKQorCisgICAgQHBhdGNoKCdwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMn CisgICAgICAgICAgICcuZ2V0X2RyaXZlcicpCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCiAgICAgICAg ICAgICcubWFrZV9qc29uX3Jlc3BvbnNlJykKICAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKLSAgICAgICAg ICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQotICAgIGRlZiBfX3Rlc3Rfbm9kZXMoc2VsZiwg aW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2ssCi0gICAgICAgICAgICAgICAgICAgICBtYWtlX2pz b25fcmVzcG9uc2VfbW9jaywgcmVuZGVyX3RlbXBsYXRlX21vY2spOgorICAgICAgICAgICAnLnJl bmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3Rfbm9kZXNfd2l0aF8yX2V4dGVybmFsX3RhYmxl cyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVy X3RlbXBsYXRlX21vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jayk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHJldHJpZXZpbmcgdGhlIHRyZWUgbm9kZXMKKyAgICAgICAgQW5kIHRoZSBkYXRhYmFzZSBoYXMg MiBleHRlcm5hbCB0YWJsZXMKKyAgICAgICAgSXQgcmV0dXJucyB0cmVlIG5vZGUgbGlzdCB3aXRo IDIgY2hpbGQgbm9kZXMKKyAgICAgICAgYW5kIHN0YXR1cyBvZiAyMDAKKyAgICAgICAgIiIiCisg ICAgICAgIG1hbmFnZXIgPSBNYWdpY01vY2soc2VydmVyX3R5cGU9J2dwZGInLCBzdmVyc2lvbj04 MDMyMykKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1N YWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFsdWU9KFRydWUsIGRpY3QoCisgICAgICAg ICAgICAgICAgcm93cz1bCisgICAgICAgICAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAg ICAgICAgICAgICBvaWQ9J29pZDEnLAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0ndGFi bGVfb25lJworICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICBkaWN0 KAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkPSdvaWQyJywKKyAgICAgICAgICAgICAgICAg ICAgICAgIG5hbWU9J3RhYmxlX3R3bycKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgICAgICBdCisgICAgICAgICAgICApKSkKKyAgICAgICAgKQorICAgICAgICBtYW5hZ2VyLmNv bm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPXJldHVybl92YWx1ZSkKKworICAgICAg ICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAg Y29ubmVjdGlvbl9tYW5hZ2VyPU1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9bWFuYWdlcikKKyAgICAg ICAgKQorCiAgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3ID0gRXh0ZXJuYWxUYWJsZXNWaWV3 KGNtZD0nJykKLSAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcubm9kZXMoKipzZWxmLmZ1bmN0 aW9uX3BhcmFtZXRlcnMpCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX2ludGVy bmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aCcpOgotICAgICAgICAgICAgaW50ZXJuYWxfc2Vy dmVyX2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgICAgICoqc2Vs Zi5leHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgKLSAgICAgICAgICAg ICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2Nr LmFzc2VydF9ub3RfY2FsbGVkKCkKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXhwZWN0ZWRf bWFrZV9qc29uX3Jlc3BvbnNlX2NhbGxlZF93aXRoJyk6Ci0gICAgICAgICAgICBtYWtlX2pzb25f cmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAgICAgKipzZWxm LmV4cGVjdGVkX21ha2VfanNvbl9yZXNwb25zZV9jYWxsZWRfd2l0aAotICAgICAgICAgICAgKQot ICAgICAgICBlbHNlOgotICAgICAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0 X25vdF9jYWxsZWQoKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5ub2RlcyhzZXJ2ZXJf Z3JvdXBfaWQ9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lk PTEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIpCisK KyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAg ICAgICAgICAgZGF0YT1bCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAn aWQnOiAiZXh0ZXJuYWxfdGFibGUvb2lkMSIsCisgICAgICAgICAgICAgICAgICAgICdsYWJlbCc6 ICd0YWJsZV9vbmUnLAorICAgICAgICAgICAgICAgICAgICAnaWNvbic6ICdpY29uLWV4dGVybmFs X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgJ2lub2RlJzogRmFsc2UsCisgICAgICAgICAg ICAgICAgICAgICdfdHlwZSc6ICdleHRlcm5hbF90YWJsZScsCisgICAgICAgICAgICAgICAgICAg ICdfaWQnOiAnb2lkMScsCisgICAgICAgICAgICAgICAgICAgICdfcGlkJzogMiwKKyAgICAgICAg ICAgICAgICAgICAgJ21vZHVsZSc6ICdwZ2FkbWluLm5vZGUuZXh0ZXJuYWxfdGFibGUnCisgICAg ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdp ZCc6ICJleHRlcm5hbF90YWJsZS9vaWQyIiwKKyAgICAgICAgICAgICAgICAgICAgJ2xhYmVsJzog J3RhYmxlX3R3bycsCisgICAgICAgICAgICAgICAgICAgICdpY29uJzogJ2ljb24tZXh0ZXJuYWxf dGFibGUnLAorICAgICAgICAgICAgICAgICAgICAnaW5vZGUnOiBGYWxzZSwKKyAgICAgICAgICAg ICAgICAgICAgJ190eXBlJzogJ2V4dGVybmFsX3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAg J19pZCc6ICdvaWQyJywKKyAgICAgICAgICAgICAgICAgICAgJ19waWQnOiAyLAorICAgICAgICAg ICAgICAgICAgICAnbW9kdWxlJzogJ3BnYWRtaW4ubm9kZS5leHRlcm5hbF90YWJsZScKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICBdLCBzdGF0dXM9MjAwKQogICAgICAgICByZW5kZXJf dGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICBzZWxmLmV4cGVj dF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGgKKyAgICAgICAgICAgICdzcWwvI2dwZGIjODAz MjMjL2xpc3Quc3FsJwogICAgICAgICApCiAKKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKKyAgICAgICAg ICAgJy5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycKKyAgICAgICAgICAgJy5pbnRl cm5hbF9zZXJ2ZXJfZXJyb3InKQogICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJwogICAgICAgICAgICAnLnJl bmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3RfZXJyb3JfcmV0cmlldmluZ19ub2RlX3dpdGhf MV9leHRlcm5hbF90YWJsZSgKKyAgICAgICAgc2VsZiwKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRl X21vY2ssCisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAorICAgICAgICBnZXRf ZHJpdmVyX21vY2sKKyAgICApOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZXRyaWV2aW5n IHRoZSB0cmVlIG5vZGVzCisgICAgICAgIEFuZCB0aGUgZGF0YWJhc2UgaGFzIDEgZXh0ZXJuYWwg dGFibGVzCisgICAgICAgIEFuZCBpdCBlcnJvcnMgZXhlY3V0aW5nIHRoZSBxdWVyeQorICAgICAg ICBJdCByZXR1cm5zIGFuIGludGVybmFsIHNlcnZlciBlcnJvcgorICAgICAgICAiIiIKKyAgICAg ICAgbWFuYWdlciA9IE1hZ2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIz KQorICAgICAgICByZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2lj TW9jaygKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT0oRmFsc2UsICdTb21lIGVycm9yIG1lc3Nh Z2UnKQorICAgICAgICApKQorICAgICAgICBtYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2so cmV0dXJuX3ZhbHVlPXJldHVybl92YWx1ZSkKKworICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0 dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPU1h Z2ljTW9jayhyZXR1cm5fdmFsdWU9bWFuYWdlcikKKyAgICAgICAgKQorCisgICAgICAgIGV4dGVy bmFsX3RhYmxlc192aWV3ID0gRXh0ZXJuYWxUYWJsZXNWaWV3KGNtZD0nJykKKyAgICAgICAgZXh0 ZXJuYWxfdGFibGVzX3ZpZXcubm9kZShzZXJ2ZXJfZ3JvdXBfaWQ9MCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGV4dGVybmFsX3RhYmxlX2lkPTExKQorCisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJv cl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIGVycm9ybXNnPSdTb21lIGVy cm9yIG1lc3NhZ2UnCisgICAgICAgICkKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwv I2dwZGIjODAzMjMjL25vZGUuc3FsJywKKyAgICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPTEx CisgICAgICAgICkKKworICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLmdldF9kcml2 ZXInKQogICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJwogICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25z ZScpCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCi0gICAgICAgICAgICcuaW50ZXJuYWxfc2VydmVyX2Vy cm9yJykKLSAgICBkZWYgX190ZXN0X25vZGUoc2VsZiwgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21v Y2ssCi0gICAgICAgICAgICAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLCByZW5kZXJf dGVtcGxhdGVfbW9jayk6CisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYg dGVzdF9lcnJvcl9yZXRyaWV2aW5nX25vbmV4aXN0ZW50X25vZGVfd2l0aF8xX2V4dGVybmFsX3Rh YmxlKAorICAgICAgICBzZWxmLAorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAg ICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaworICAg ICk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJldHJpZXZpbmcgdGhlIHRyZWUgbm9kZXMK KyAgICAgICAgQW5kIHRoZSBkYXRhYmFzZSBoYXMgMSBleHRlcm5hbCB0YWJsZXMKKyAgICAgICAg QW5kIGl0IGVycm9ycyBleGVjdXRpbmcgdGhlIHF1ZXJ5CisgICAgICAgIEl0IHJldHVybnMgYSA0 MDQgZXJyb3IKKyAgICAgICAgIiIiCisgICAgICAgIG1hbmFnZXIgPSBNYWdpY01vY2soc2VydmVy X3R5cGU9J2dwZGInLCBzdmVyc2lvbj04MDMyMykKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gTWFn aWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFs dWU9KFRydWUsIGRpY3Qocm93cz1bXSkpCisgICAgICAgICkpCisgICAgICAgIG1hbmFnZXIuY29u bmVjdGlvbiA9IE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9cmV0dXJuX3ZhbHVlKQorCisgICAgICAg IGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBj b25uZWN0aW9uX21hbmFnZXI9TWFnaWNNb2NrKHJldHVybl92YWx1ZT1tYW5hZ2VyKQorICAgICAg ICApCisKICAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcgPSBFeHRlcm5hbFRhYmxlc1ZpZXco Y21kPScnKQotICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5ub2RlKCoqc2VsZi5mdW5jdGlv bl9wYXJhbWV0ZXJzKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9pbnRlcm5h bF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGgnKToKLSAgICAgICAgICAgIGludGVybmFsX3NlcnZl cl9lcnJvcl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICAgICAqKnNlbGYu ZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoCi0gICAgICAgICAgICAp Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5h c3NlcnRfbm90X2NhbGxlZCgpCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX21h a2VfanNvbl9yZXNwb25zZV9jYWxsZWRfd2l0aCcpOgotICAgICAgICAgICAgbWFrZV9qc29uX3Jl c3BvbnNlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgICAgICoqc2VsZi5l eHBlY3RlZF9tYWtlX2pzb25fcmVzcG9uc2VfY2FsbGVkX3dpdGgKLSAgICAgICAgICAgICkKLSAg ICAgICAgZWxzZToKLSAgICAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9u b3RfY2FsbGVkKCkKKyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcubm9kZShzZXJ2ZXJfZ3Jv dXBfaWQ9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPTExKQorCisgICAg ICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAg ICAgIGRhdGE9J0NvdWxkIG5vdCBmaW5kIHRoZSBleHRlcm5hbCB0YWJsZS4nLAorICAgICAgICAg ICAgc3RhdHVzPTQwNAorICAgICAgICApCiAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFz c2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICoqc2VsZi5leHBlY3RfcmVuZGVyX3RlbXBs YXRlX2NhbGxlZF93aXRoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8j Z3BkYiM4MDMyMyMvbm9kZS5zcWwnLAorICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEK ICAgICAgICAgKQogCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5leHRlcm5hbF90YWJsZXMnCi0gICAgICAgICAgICcucmVuZGVyX3Rl bXBsYXRlJykKKyAgICAgICAgICAgJy5nZXRfZHJpdmVyJykKICAgICBAcGF0Y2goJ3BnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcycK LSAgICAgICAgICAgJy5tYWtlX3Jlc3BvbnNlJykKKyAgICAgICAgICAgJy5tYWtlX2pzb25fcmVz cG9uc2UnKQogICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJwotICAgICAgICAgICAnLmludGVybmFsX3NlcnZl cl9lcnJvcicpCi0gICAgZGVmIF9fdGVzdF9wcm9wZXJ0aWVzKHNlbGYsIGludGVybmFsX3NlcnZl cl9lcnJvcl9tb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtYWtlX3Jlc3BvbnNlX21v Y2ssIHJlbmRlcl90ZW1wbGF0ZV9tb2NrKToKKyAgICAgICAgICAgJy5yZW5kZXJfdGVtcGxhdGUn KQorICAgIGRlZiB0ZXN0X25vZGVfd2l0aF8xX2V4dGVybmFsX3RhYmxlcyhzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFrZV9qc29uX3Jlc3Bv bnNlX21vY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9k cml2ZXJfbW9jayk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJldHJpZXZpbmcgdGhlIHRy ZWUgbm9kZXMKKyAgICAgICAgQW5kIHRoZSBkYXRhYmFzZSBoYXMgMSBleHRlcm5hbCB0YWJsZXMK KyAgICAgICAgSXQgcmV0dXJucyB0cmVlIG5vZGUKKyAgICAgICAgYW5kIHN0YXR1cyBvZiAyMDAK KyAgICAgICAgIiIiCisgICAgICAgIG1hbmFnZXIgPSBNYWdpY01vY2soc2VydmVyX3R5cGU9J2dw ZGInLCBzdmVyc2lvbj04MDMyMykKKyAgICAgICAgcmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKGV4 ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soCisgICAgICAgICAgICByZXR1cm5fdmFsdWU9KFRydWUs IGRpY3QoCisgICAgICAgICAgICAgICAgcm93cz1bCisgICAgICAgICAgICAgICAgICAgIGRpY3Qo CisgICAgICAgICAgICAgICAgICAgICAgICBvaWQ9J29pZDEnLAorICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT0ndGFibGVfb25lJworICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAg ICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgb2lkPSdvaWQyJywKKyAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3RhYmxlX3R3bycKKyAgICAgICAgICAgICAgICAg ICAgKSwKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICApKSkKKyAgICAgICAgKQorICAg ICAgICBtYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPXJldHVybl92 YWx1ZSkKKworICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2Nr KAorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPU1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9 bWFuYWdlcikKKyAgICAgICAgKQorCiAgICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3ID0gRXh0 ZXJuYWxUYWJsZXNWaWV3KGNtZD0nJykKLSAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcucHJv cGVydGllcygqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycykKLSAgICAgICAgaWYgaGFzYXR0cihz ZWxmLCAnZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoJyk6Ci0gICAg ICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0g ICAgICAgICAgICAgICAgKipzZWxmLmV4cGVjdGVkX2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxs ZWRfd2l0aAotICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaW50ZXJu YWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQotICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICdleHBlY3RlZF9tYWtlX3Jlc3BvbnNlX2NhbGxlZF93aXRoJyk6Ci0gICAgICAg ICAgICBtYWtlX3Jlc3BvbnNlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAg ICAgICoqc2VsZi5leHBlY3RlZF9tYWtlX3Jlc3BvbnNlX2NhbGxlZF93aXRoCi0gICAgICAgICAg ICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBtYWtlX3Jlc3BvbnNlX21vY2suYXNzZXJ0 X25vdF9jYWxsZWQoKQorICAgICAgICBleHRlcm5hbF90YWJsZXNfdmlldy5ub2RlKHNlcnZlcl9n cm91cF9pZD0wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD0x LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX2lkPTIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEpCisKKyAg ICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAg ICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgJ2lkJzogImV4dGVybmFsX3RhYmxlL29pZDEi LAorICAgICAgICAgICAgICAgICdsYWJlbCc6ICd0YWJsZV9vbmUnLAorICAgICAgICAgICAgICAg ICdpY29uJzogJ2ljb24tZXh0ZXJuYWxfdGFibGUnLAorICAgICAgICAgICAgICAgICdpbm9kZSc6 IEZhbHNlLAorICAgICAgICAgICAgICAgICdfdHlwZSc6ICdleHRlcm5hbF90YWJsZScsCisgICAg ICAgICAgICAgICAgJ19pZCc6ICdvaWQxJywKKyAgICAgICAgICAgICAgICAnX3BpZCc6IDIsCisg ICAgICAgICAgICAgICAgJ21vZHVsZSc6ICdwZ2FkbWluLm5vZGUuZXh0ZXJuYWxfdGFibGUnCisg ICAgICAgICAgICB9LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCiAgICAgICAg IHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICoq c2VsZi5leHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoCisgICAgICAgICAgICB0ZW1w bGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvbm9kZS5zcWwnLAorICAgICAgICAg ICAgZXh0ZXJuYWxfdGFibGVfaWQ9MTEKICAgICAgICAgKQogCi0gICAgZGVmIF9fYmVmb3JlX2Fs bChzZWxmLCBnZXRfZHJpdmVyX21vY2spOgotICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0 ZV8yZGFycmF5LnJldHVybl92YWx1ZSA9IFwKLSAgICAgICAgICAgIHNlbGYuZXhlY3V0ZV8yZGFy cmF5X3JldHVybl92YWx1ZQotICAgICAgICBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbiA9IE1hZ2lj TW9jayhyZXR1cm5fdmFsdWU9c2VsZi5jb25uZWN0aW9uKQorICAgIEBwYXRjaCgncGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJwor ICAgICAgICAgICAnLmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAg ICAnLm1ha2VfcmVzcG9uc2UnKQorICAgIEBwYXRjaCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZXJuYWxfdGFibGVzJworICAgICAgICAgICAnLnJl bmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3RfcHJvcGVydGllc193aXRoXzFfZXh0ZXJuYWxf dGFibGVzKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtYWtlX3Jlc3BvbnNlX21vY2ssCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jayk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHJldHJpZXZpbmcgdGhlIHByb3BlcnRpZXMgb2YgMSBleHRlcm5hbCB0 YWJsZQorICAgICAgICBJdCByZXR1cm5zIHByb3BlcnRpZXMgb2YgdGhlIHRyZWUgbm9kZQorICAg ICAgICBhbmQgc3RhdHVzIG9mIDIwMAorICAgICAgICAiIiIKKyAgICAgICAgbWFuYWdlciA9IE1h Z2ljTW9jayhzZXJ2ZXJfdHlwZT0nZ3BkYicsIHN2ZXJzaW9uPTgwMzIzKQorICAgICAgICByZXR1 cm5fdmFsdWUgPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygKKyAgICAgICAg ICAgIHJldHVybl92YWx1ZT0oVHJ1ZSwgZGljdCgKKyAgICAgICAgICAgICAgICByb3dzPVtkaWN0 KAorICAgICAgICAgICAgICAgICAgICB1cmlsb2NhdGlvbj0ne2h0dHA6Ly9zb21ldXJsLmNvbX0n LAorICAgICAgICAgICAgICAgICAgICBleGVjbG9jYXRpb249WydBTExfU0VHTUVOVFMnXSwKKyAg ICAgICAgICAgICAgICAgICAgZm10dHlwZT0nYScsCisgICAgICAgICAgICAgICAgICAgIGZtdG9w dHM9J2RlbGltaXRlciBcJyxcJyBudWxsIFwnXCcgJworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAgICAgICAgICAgICAgICBjb21t YW5kPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0PU5vbmUsCisgICAgICAg ICAgICAgICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25lLAorICAgICAgICAgICAgICAgICAgICBl cnJ0YmxuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGVycm9ydG9maWxlPU5vbmUsCisg ICAgICAgICAgICAgICAgICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgnLAorICAgICAgICAg ICAgICAgICAgICB3cml0YWJsZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz1O b25lLAorICAgICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAg ICAgICAgICAgbmFtZT0nc29tZV90YWJsZScsCisgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFj ZT0ncHVibGljJworICAgICAgICAgICAgICAgICldCisgICAgICAgICAgICApKSkKKyAgICAgICAg KQorICAgICAgICBtYW5hZ2VyLmNvbm5lY3Rpb24gPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPXJl dHVybl92YWx1ZSkKKwogICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFn aWNNb2NrKAotICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPU1hZ2ljTW9jayhyZXR1cm5f dmFsdWU9c2VsZi5tYW5hZ2VyKQorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPU1hZ2lj TW9jayhyZXR1cm5fdmFsdWU9bWFuYWdlcikKKyAgICAgICAgKQorCisgICAgICAgIGV4dGVybmFs X3RhYmxlc192aWV3ID0gRXh0ZXJuYWxUYWJsZXNWaWV3KGNtZD0nJykKKyAgICAgICAgZXh0ZXJu YWxfdGFibGVzX3ZpZXcucHJvcGVydGllcyhzZXJ2ZXJfZ3JvdXBfaWQ9MCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQ9MSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZV9pZD0yLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVybmFsX3RhYmxlX2lkPTExKQorCisgICAgICAg IG1ha2VfcmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICByZXNw b25zZT1kaWN0KAorICAgICAgICAgICAgICAgIG5hbWU9InNvbWVfdGFibGUiLAorICAgICAgICAg ICAgICAgIHR5cGU9J3JlYWRhYmxlJywKKyAgICAgICAgICAgICAgICBmb3JtYXRfdHlwZT0nVVRG OCcsCisgICAgICAgICAgICAgICAgZm9ybWF0X29wdGlvbnM9J2RlbGltaXRlciBcJyxcJyBudWxs IFwnXCcgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcgcXVv dGUgXCciXCcnLAorICAgICAgICAgICAgICAgIGV4dGVybmFsX29wdGlvbnM9Tm9uZSwKKyAgICAg ICAgICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgZXhlY3V0ZV9vbj0nYWxs IHNlZ21lbnRzJywKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICkKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAor ICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMjL2dldF90 YWJsZV9pbmZvcm1hdGlvbi5zcWwnLAorICAgICAgICAgICAgdGFibGVfb2lkPTExCiAgICAgICAg ICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9tYXBwaW5nX3V0aWxzLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVy bmFsX3RhYmxlcy90ZXN0cy90ZXN0X21hcHBpbmdfdXRpbHMucHkKaW5kZXggZjA5YjNmZjAuLjU3 YjkxODdmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfbWFwcGluZ191dGlscy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfbWFwcGluZ191dGlscy5weQpAQCAtNiwzNzAg KzYsNDE4IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cyBcCiAgICAgLmV4dGVybmFsX3RhYmxlcy5tYXBwaW5nX3V0aWxzIGltcG9ydCBcCiAgICAgbWFw X2NvbHVtbl9mcm9tX2RhdGFiYXNlLCBtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFz ZSwgXAogICAgIGlzX3dlYl90YWJsZSwgZm9ybWF0X29wdGlvbnMsIG1hcF9leGVjdXRpb25fbG9j YXRpb24sIG1hcF9mb3JtYXRfdHlwZQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFRlc3RNYXBwaW5nVXRpbHMoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCcjbWFwX2NvbHVtbl9mcm9tX2Rh dGFiYXNlIFdoZW4gcmV0cmlldmluZyBjb2x1bW5zIGZyb20gdGFibGUsICcKLSAgICAgICAgICdp dCByZXR1cm5zIG9ubHkgdGhlIG5hbWUgYW5kIHR5cGUnLAotICAgICAgICAgZGljdCgKLSAgICAg ICAgICAgICB0ZXN0X3R5cGU9J21hcF9jb2x1bW5fZnJvbV9kYXRhYmFzZScsCi0gICAgICAgICAg ICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoY29sdW1uX2luZm9ybWF0aW9uPWRpY3QoCi0gICAg ICAgICAgICAgICAgIG5hbWU9J3NvbWUgbmFtZScsCi0gICAgICAgICAgICAgICAgIGNsdHlwZT0n c29tZSB0eXBlJywKLSAgICAgICAgICAgICAgICAgb3RoZXJfY29sdW1uPSdzb21lIG90aGVyIGNv bHVtbicKLSAgICAgICAgICAgICApKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9ZGlj dChuYW1lPSdzb21lIG5hbWUnLCB0eXBlPSdzb21lIHR5cGUnKQotICAgICAgICAgKSksCi0KLSAg ICAgICAgKCcjbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UgV2hlbiByZXRyaWV2 aW5nIGluZm9ybWF0aW9uICcKLSAgICAgICAgICdmcm9tIHdlYiB0YWJsZSwgJwotICAgICAgICAg J2l0IHJldHVybnMgYWxsIGZpZWxkcycsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRl c3RfdHlwZT0nbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UnLAotICAgICAgICAg ICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KHRhYmxlX2luZm9ybWF0aW9uPWRpY3QoCi0gICAg ICAgICAgICAgICAgIHVyaWxvY2F0aW9uPSd7aHR0cDovL3NvbWV1cmwuY29tfScsCi0gICAgICAg ICAgICAgICAgIGV4ZWNsb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddLAotICAgICAgICAgICAgICAg ICBmbXR0eXBlPSdiJywKLSAgICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwn IG51bGwgXCdcJyBlc2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAotICAgICAgICAgICAgICAgICBj b21tYW5kPU5vbmUsCi0gICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0PU5vbmUsCi0gICAgICAg ICAgICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25lLAotICAgICAgICAgICAgICAgICBlcnJ0Ymxu YW1lPU5vbmUsCi0gICAgICAgICAgICAgICAgIGVycm9ydG9maWxlPU5vbmUsCi0gICAgICAgICAg ICAgICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgnLAotICAgICAgICAgICAgICAgICB3cml0 YWJsZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAotICAgICAgICAgICAg ICAgICBkaXN0cmlidXRpb249Tm9uZSwKLSAgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJs ZV9uYW1lJywKLSAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25hbWVfc3BhY2UnCi0g ICAgICAgICAgICAgKSksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QoCi0gICAg ICAgICAgICAgICAgIHVyaXM9WydodHRwOi8vc29tZXVybC5jb20nXSwKLSAgICAgICAgICAgICAg ICAgaXNXZWI9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgZXhlY3V0aW9uTG9jYXRpb249ZGljdCh0 eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25lKSwKLSAgICAgICAgICAgICAgICAgZm9ybWF0 VHlwZT0nY3VzdG9tJywKLSAgICAgICAgICAgICAgICAgZm9ybWF0T3B0aW9ucz0nZGVsaW1pdGVy ID0gJCQsJCQsZXNjYXBlID0gJCQiJCQsJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdudWxsID0gJCQkJCxxdW90ZSA9ICQkIiQkJywKLSAgICAgICAgICAgICAgICAgY29tbWFuZD1O b25lLAotICAgICAgICAgICAgICAgICByZWplY3RMaW1pdD1Ob25lLAotICAgICAgICAgICAgICAg ICByZWplY3RMaW1pdFR5cGU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJyb3JUYWJsZU5hbWU9 Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJyb1RvRmlsZT1Ob25lLAotICAgICAgICAgICAgICAg ICBwZ0VuY29kaW5nVG9DaGFyPSdVVEY4JywKLSAgICAgICAgICAgICAgICAgd3JpdGFibGU9RmFs c2UsCi0gICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZGlz dHJpYnV0aW9uPU5vbmUsCi0gICAgICAgICAgICAgICAgIG5hbWU9J3NvbWVfdGFibGVfbmFtZScs Ci0gICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJwotICAgICAgICAg ICAgICkKLSAgICAgICAgICkpLAotICAgICAgICAoJyNtYXBfdGFibGVfaW5mb3JtYXRpb25fZnJv bV9kYXRhYmFzZSBXaGVuIHJldHJpZXZpbmcgaW5mb3JtYXRpb24gJwotICAgICAgICAgJ2Zyb20g YSB3ZWIgdGFibGUgdXNpbmcgY29tbWFuZCBpbnN0ZWFkIG9mIFVSSXMsICcKLSAgICAgICAgICdp dCByZXR1cm5zIGFsbCBmaWVsZHMnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0 X3R5cGU9J21hcF90YWJsZV9pbmZvcm1hdGlvbl9mcm9tX2RhdGFiYXNlJywKLSAgICAgICAgICAg ICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdCh0YWJsZV9pbmZvcm1hdGlvbj1kaWN0KAotICAgICAg ICAgICAgICAgICB1cmlsb2NhdGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICBleGVjbG9jYXRp b249WydBTExfU0VHTUVOVFMnXSwKLSAgICAgICAgICAgICAgICAgZm10dHlwZT0nYicsCi0gICAg ICAgICAgICAgICAgIGZtdG9wdHM9J2RlbGltaXRlciBcJyxcJyBudWxsIFwnXCcgZXNjYXBlIFwn IlwnIHF1b3RlIFwnIlwnJywKLSAgICAgICAgICAgICAgICAgY29tbWFuZD0nY2F0IC90bXAvcGxh Y2VzIHx8IGVjaG8gXCdlcnJvclwnJywKLSAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXQ9Tm9u ZSwKLSAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXR0eXBlPU5vbmUsCi0gICAgICAgICAgICAg ICAgIGVycnRibG5hbWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJyb3J0b2ZpbGU9Tm9uZSwK LSAgICAgICAgICAgICAgICAgcGdfZW5jb2RpbmdfdG9fY2hhcj0nVVRGOCcsCi0gICAgICAgICAg ICAgICAgIHdyaXRhYmxlPUZhbHNlLAotICAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCi0g ICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICBuYW1l PSdzb21lX3RhYmxlX25hbWUnLAotICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3NvbWVfbmFt ZV9zcGFjZScKLSAgICAgICAgICAgICApKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9 ZGljdCgKLSAgICAgICAgICAgICAgICAgdXJpcz1Ob25lLAotICAgICAgICAgICAgICAgICBpc1dl Yj1UcnVlLAotICAgICAgICAgICAgICAgICBleGVjdXRpb25Mb2NhdGlvbj1kaWN0KHR5cGU9J2Fs bF9zZWdtZW50cycsIHZhbHVlPU5vbmUpLAotICAgICAgICAgICAgICAgICBmb3JtYXRUeXBlPSdj dXN0b20nLAotICAgICAgICAgICAgICAgICBmb3JtYXRPcHRpb25zPSdkZWxpbWl0ZXIgPSAkJCwk JCxlc2NhcGUgPSAkJCIkJCwnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwg PSAkJCQkLHF1b3RlID0gJCQiJCQnLAotICAgICAgICAgICAgICAgICBjb21tYW5kPSdjYXQgL3Rt cC9wbGFjZXMgfHwgZWNobyBcJ2Vycm9yXCcnLAotICAgICAgICAgICAgICAgICByZWplY3RMaW1p dD1Ob25lLAotICAgICAgICAgICAgICAgICByZWplY3RMaW1pdFR5cGU9Tm9uZSwKLSAgICAgICAg ICAgICAgICAgZXJyb3JUYWJsZU5hbWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJyb1RvRmls ZT1Ob25lLAotICAgICAgICAgICAgICAgICBwZ0VuY29kaW5nVG9DaGFyPSdVVEY4JywKLSAgICAg ICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCi0gICAgICAgICAgICAgICAgIG9wdGlvbnM9Tm9u ZSwKLSAgICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCi0gICAgICAgICAgICAgICAg IG5hbWU9J3NvbWVfdGFibGVfbmFtZScsCi0gICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0nc29t ZV9uYW1lX3NwYWNlJwotICAgICAgICAgICAgICkKLSAgICAgICAgICkpLAotICAgICAgICAoJyNt YXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFzZSBXaGVuIHJldHJpZXZpbmcgaW5mb3Jt YXRpb24gJwotICAgICAgICAgJ2Zyb20gYSBub25lIHdlYiB0YWJsZSwgJwotICAgICAgICAgJ2l0 IHJldHVybnMgYWxsIGZpZWxkcycsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Rf dHlwZT0nbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UnLAotICAgICAgICAgICAg IGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KHRhYmxlX2luZm9ybWF0aW9uPWRpY3QoCi0gICAgICAg ICAgICAgICAgIHVyaWxvY2F0aW9uPSd7Z3BmZGlzdDovL2ZpbGVob3N0OjgwODEvKi5jc3Z9JywK LSAgICAgICAgICAgICAgICAgZXhlY2xvY2F0aW9uPVsnQUxMX1NFR01FTlRTJ10sCi0gICAgICAg ICAgICAgICAgIGZtdHR5cGU9J2InLAotICAgICAgICAgICAgICAgICBmbXRvcHRzPSdkZWxpbWl0 ZXIgXCcsXCcgbnVsbCBcJ1wnIGVzY2FwZSBcJyJcJyBxdW90ZSBcJyJcJycsCi0gICAgICAgICAg ICAgICAgIGNvbW1hbmQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXQ9Tm9uZSwK LSAgICAgICAgICAgICAgICAgcmVqZWN0bGltaXR0eXBlPU5vbmUsCi0gICAgICAgICAgICAgICAg IGVycnRibG5hbWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXJyb3J0b2ZpbGU9Tm9uZSwKLSAg ICAgICAgICAgICAgICAgcGdfZW5jb2RpbmdfdG9fY2hhcj0nVVRGOCcsCi0gICAgICAgICAgICAg ICAgIHdyaXRhYmxlPUZhbHNlLAotICAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCi0gICAg ICAgICAgICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAotICAgICAgICAgICAgICAgICBuYW1lPSdz b21lX3RhYmxlX25hbWUnLAotICAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9z cGFjZScKLSAgICAgICAgICAgICApKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9ZGlj dCgKLSAgICAgICAgICAgICAgICAgdXJpcz1bJ2dwZmRpc3Q6Ly9maWxlaG9zdDo4MDgxLyouY3N2 J10sCi0gICAgICAgICAgICAgICAgIGlzV2ViPUZhbHNlLAotICAgICAgICAgICAgICAgICBleGVj dXRpb25Mb2NhdGlvbj1kaWN0KHR5cGU9J2FsbF9zZWdtZW50cycsIHZhbHVlPU5vbmUpLAotICAg ICAgICAgICAgICAgICBmb3JtYXRUeXBlPSdjdXN0b20nLAotICAgICAgICAgICAgICAgICBmb3Jt YXRPcHRpb25zPSdkZWxpbWl0ZXIgPSAkJCwkJCxlc2NhcGUgPSAkJCIkJCwnCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ251bGwgPSAkJCQkLHF1b3RlID0gJCQiJCQnLAotICAgICAg ICAgICAgICAgICBjb21tYW5kPU5vbmUsCi0gICAgICAgICAgICAgICAgIHJlamVjdExpbWl0PU5v bmUsCi0gICAgICAgICAgICAgICAgIHJlamVjdExpbWl0VHlwZT1Ob25lLAotICAgICAgICAgICAg ICAgICBlcnJvclRhYmxlTmFtZT1Ob25lLAotICAgICAgICAgICAgICAgICBlcnJvVG9GaWxlPU5v bmUsCi0gICAgICAgICAgICAgICAgIHBnRW5jb2RpbmdUb0NoYXI9J1VURjgnLAotICAgICAgICAg ICAgICAgICB3cml0YWJsZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAot ICAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKLSAgICAgICAgICAgICAgICAgbmFt ZT0nc29tZV90YWJsZV9uYW1lJywKLSAgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25h bWVfc3BhY2UnCi0gICAgICAgICAgICAgKQotICAgICAgICAgKSksCi0KLQotICAgICAgICAoJyNp c193ZWJfdGFibGUgV2hlbiB1cmwgc3RhcnRzIHdpdGggaHR0cCAnCi0gICAgICAgICAnYW5kIGNv bW1hbmQgaXMgTm9uZSAnCi0gICAgICAgICAnaXQgcmV0dXJucyB0cnVlJywKLSAgICAgICAgIGRp Y3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdpc193ZWJfdGFibGUnLAotICAgICAgICAgICAg IGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KAotICAgICAgICAgICAgICAgICB1cmlzPSd7aHR0cDov L3NvbWV1cmwuY29tfScsCi0gICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZQotICAgICAgICAg ICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PVRydWUKLSAgICAgICAgICkpLAot ICAgICAgICAoJyNpc193ZWJfdGFibGUgV2hlbiB1cmwgc3RhcnRzIHdpdGggaHR0cHMgJwotICAg ICAgICAgJ2FuZCBjb21tYW5kIGlzIE5vbmUsICcKLSAgICAgICAgICdpdCByZXR1cm5zIHRydWUn LAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2lzX3dlYl90YWJsZScs Ci0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoCi0gICAgICAgICAgICAgICAg IHVyaXM9J3todHRwczovL3NvbWV1cmwuY29tfScsCi0gICAgICAgICAgICAgICAgIGNvbW1hbmQ9 Tm9uZQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PVRydWUK LSAgICAgICAgICkpLAotICAgICAgICAoJyNpc193ZWJfdGFibGUgV2hlbiB1cmwgc3RhcnRzIHdp dGggczMgJwotICAgICAgICAgJ2FuZCBjb21tYW5kIGlzIE5vbmUnCi0gICAgICAgICAnaXQgcmV0 dXJucyBmYWxzZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0naXNf d2ViX3RhYmxlJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdCh1cmlzPSd7 czM6Ly9zb21ldXJsLmNvbX0nLCBjb21tYW5kPU5vbmUpLAotICAgICAgICAgICAgIGV4cGVjdGVk X3Jlc3VsdD1GYWxzZQotICAgICAgICAgKSksCi0gICAgICAgICgnI2lzX3dlYl90YWJsZSBXaGVu IHVybCBpcyBOb25lICcKLSAgICAgICAgICdhbmQgY29tbWFuZCBpcyBub3QgTm9uZScKLSAgICAg ICAgICdpdCByZXR1cm5zIGZhbHNlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVz dF90eXBlPSdpc193ZWJfdGFibGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1k aWN0KHVyaXM9Tm9uZSwgY29tbWFuZD0nU29tZSBjb21tYW5kJyksCi0gICAgICAgICAgICAgZXhw ZWN0ZWRfcmVzdWx0PVRydWUKLSAgICAgICAgICkpLAotCi0KLSAgICAgICAgKCcjbWFwX2V4ZWN1 dGlvbl9sb2NhdGlvbiBXaGVuIHZhbHVlIGlzICJIT1NUOiAxLjEuMS4xIiwgJwotICAgICAgICAg J2l0IHJldHVybnMge3R5cGU6ICJob3N0IiwgdmFsdWU6ICIxLjEuMS4xIn0nLAotICAgICAgICAg ZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9leGVjdXRpb25fbG9jYXRpb24nLAot ICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGV4ZWN1dGlvbl9sb2NhdGlvbj1b J0hPU1Q6IDEuMS4xLjEnXSksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QodHlw ZT0naG9zdCcsIHZhbHVlPScxLjEuMS4xJykKLSAgICAgICAgICkpLAotICAgICAgICAoJyNtYXBf ZXhlY3V0aW9uX2xvY2F0aW9uIFdoZW4gdmFsdWUgaXMgIlBFUl9IT1NUIiwgJwotICAgICAgICAg J2l0IHJldHVybnMge3R5cGU6ICJwZXJfaG9zdCIsIHZhbHVlOiBOb25lfScsCi0gICAgICAgICBk aWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbicsCi0g ICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZXhlY3V0aW9uX2xvY2F0aW9uPVsn UEVSX0hPU1QnXSksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PWRpY3QodHlwZT0ncGVy X2hvc3QnLCB2YWx1ZT1Ob25lKQotICAgICAgICAgKSksCi0gICAgICAgICgnI21hcF9leGVjdXRp b25fbG9jYXRpb24gV2hlbiB2YWx1ZSBpcyAiTUFTVEVSX09OTFkiLCAnCi0gICAgICAgICAnaXQg cmV0dXJucyB7dHlwZTogIm1hc3Rlcl9vbmx5IiwgdmFsdWU6IE5vbmV9JywKLSAgICAgICAgIGRp Y3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZXhlY3V0aW9uX2xvY2F0aW9uJywKLSAg ICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChleGVjdXRpb25fbG9jYXRpb249WydN QVNURVJfT05MWSddKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9ZGljdCh0eXBlPSdt YXN0ZXJfb25seScsIHZhbHVlPU5vbmUpCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbWFwX2V4 ZWN1dGlvbl9sb2NhdGlvbiBXaGVuIHZhbHVlIGlzICJTRUdNRU5UX0lEOiAxMjM0IiwgJwotICAg ICAgICAgJ2l0IHJldHVybnMge3R5cGU6ICJzZWdtZW50IiwgdmFsdWU6ICIxMjM0In0nLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9leGVjdXRpb25fbG9jYXRp b24nLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGV4ZWN1dGlvbl9sb2Nh dGlvbj1bJ1NFR01FTlRfSUQ6IDEyMzQnXSksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0 PWRpY3QodHlwZT0nc2VnbWVudCcsIHZhbHVlPScxMjM0JykKLSAgICAgICAgICkpLAotICAgICAg ICAoJyNtYXBfZXhlY3V0aW9uX2xvY2F0aW9uIFdoZW4gdmFsdWUgaXMgIlRPVEFMX1NFR1M6IDQi LCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB7dHlwZTogInNlZ21lbnRzIiwgdmFsdWU6ICI0In0n LAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J21hcF9leGVjdXRpb25f bG9jYXRpb24nLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGV4ZWN1dGlv bl9sb2NhdGlvbj1bJ1RPVEFMX1NFR1M6IDQnXSksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVz dWx0PWRpY3QodHlwZT0nc2VnbWVudHMnLCB2YWx1ZT0nNCcpCi0gICAgICAgICApKSwKLSAgICAg ICAgKCcjbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbiBXaGVuIHZhbHVlIGlzICJ7QUxMX1NFR01FTlRT fSIsICcKLSAgICAgICAgICdpdCByZXR1cm5zIHt0eXBlOiAiYWxsX3NlZ21lbnRzIiwgdmFsdWU6 IE5vbmV9JywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZXhl Y3V0aW9uX2xvY2F0aW9uJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChl eGVjdXRpb25fbG9jYXRpb249WydBTExfU0VHTUVOVFMnXSksCi0gICAgICAgICAgICAgZXhwZWN0 ZWRfcmVzdWx0PWRpY3QodHlwZT0nYWxsX3NlZ21lbnRzJywgdmFsdWU9Tm9uZSkKLSAgICAgICAg ICkpLAotCi0gICAgICAgICgnI21hcF9mb3JtYXRfdHlwZSBXaGVuIHZhbHVlIGlzICJjIiwgJwot ICAgICAgICAgJ2l0IHJldHVybnMgY3N2JywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAg dGVzdF90eXBlPSdtYXBfZm9ybWF0X3R5cGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3Vt ZW50cz1kaWN0KGZvcm1hdF90eXBlPSdjJyksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0 PSdjc3YnCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbWFwX2Zvcm1hdF90eXBlIFdoZW4gdmFs dWUgaXMgInNvbWV0aGluZyBzdHJhbmdlIiwgJwotICAgICAgICAgJ2l0IHJldHVybnMgY3N2JywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZm9ybWF0X3R5cGUn LAotICAgICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSdzb21l dGhpbmcgc3RyYW5nZScpLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nY3N2JwotICAg ICAgICAgKSksCi0gICAgICAgICgnI21hcF9mb3JtYXRfdHlwZSBXaGVuIHZhbHVlIGlzICJiIiwg JwotICAgICAgICAgJ2l0IHJldHVybnMgY3VzdG9tJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAg ICAgICAgdGVzdF90eXBlPSdtYXBfZm9ybWF0X3R5cGUnLAotICAgICAgICAgICAgIGZ1bmN0aW9u X2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSdiJyksCi0gICAgICAgICAgICAgZXhwZWN0ZWRf cmVzdWx0PSdjdXN0b20nCi0gICAgICAgICApKSwKLSAgICAgICAgKCcjbWFwX2Zvcm1hdF90eXBl IFdoZW4gdmFsdWUgaXMgInQiLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB0ZXh0JywKLSAgICAg ICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdtYXBfZm9ybWF0X3R5cGUnLAotICAg ICAgICAgICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSd0JyksCi0gICAg ICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSd0ZXh0JwotICAgICAgICAgKSksCi0gICAgICAgICgn I21hcF9mb3JtYXRfdHlwZSBXaGVuIHZhbHVlIGlzICJhIiwgJwotICAgICAgICAgJ2l0IHJldHVy bnMgYXZybycsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nbWFwX2Zv cm1hdF90eXBlJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRf dHlwZT0nYScpLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nYXZybycKLSAgICAgICAg ICkpLAotICAgICAgICAoJyNtYXBfZm9ybWF0X3R5cGUgV2hlbiB2YWx1ZSBpcyAicCIsICcKLSAg ICAgICAgICdpdCByZXR1cm5zIHBhcnF1ZXQnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICB0ZXN0X3R5cGU9J21hcF9mb3JtYXRfdHlwZScsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJn dW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J3AnKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1 bHQ9J3BhcnF1ZXQnCi0gICAgICAgICApKSwKLQotICAgICAgICAoJyNmb3JtYXRfb3B0aW9ucyBw YXNzaW5nIE5vbmUsICcKLSAgICAgICAgICdpdCByZXR1cm5zIE5vbmUnLAotICAgICAgICAgZGlj dCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J2Zvcm1hdF9vcHRpb25zJywKLSAgICAgICAgICAg ICBmdW5jdGlvbl9hcmd1bWVudHM9ZGljdChmb3JtYXRfdHlwZT0nYXZybycsIG9wdGlvbnM9Tm9u ZSksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PU5vbmUKLSAgICAgICAgICkpLAotICAg ICAgICAoJyNmb3JtYXRfb3B0aW9ucyBwYXNzaW5nIGVtcHR5IHN0cmluZywgJwotICAgICAgICAg J2l0IHJldHVybnMgZW1wdHkgc3RyaW5nJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAg dGVzdF90eXBlPSdmb3JtYXRfb3B0aW9ucycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1l bnRzPWRpY3QoZm9ybWF0X3R5cGU9J3BhcnF1ZXQnLCBvcHRpb25zPScnKSwKLSAgICAgICAgICAg ICBleHBlY3RlZF9yZXN1bHQ9JycKLSAgICAgICAgICkpLAotICAgICAgICAoJyNmb3JtYXRfb3B0 aW9ucyBwYXNzaW5nICJmb3JtYXR0ZXIgXCdmaXhlZHdpZHRoX2luXCcgbnVsbCBcJyBcJyIsICcK LSAgICAgICAgICdpdCByZXR1cm5zICJmb3JtYXR0ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCxudWxs ID0gJCQgJCQiJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdmb3Jt YXRfb3B0aW9ucycsCi0gICAgICAgICAgICAgZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0 X3R5cGU9J2N1c3RvbScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0 aW9ucz0nZm9ybWF0dGVyIFwnZml4ZWR3aWR0aF9pblwnICcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsIFwnIFwnJyksCi0gICAgICAgICAgICAgZXhw ZWN0ZWRfcmVzdWx0PSdmb3JtYXR0ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCxudWxsID0gJCQgJCQn Ci0gICAgICAgICApKSwKLSAgICAgICAgKCcjZm9ybWF0X29wdGlvbnMgcGFzc2luZyAnCi0gICAg ICAgICAnImZvcm1hdHRlciBcJ2ZpeGVkd2lkdGhfaW5cJyBjb21tYSBcJ1wnXCcgbnVsbCBcJyBc JyIsICcKLSAgICAgICAgICdpdCByZXR1cm5zICcKLSAgICAgICAgICciZm9ybWF0dGVyID0gJCRm aXhlZHdpZHRoX2luJCQsY29tbWEgPSAkJFwnJCQsbnVsbCA9ICQkICQkIicsCi0gICAgICAgICBk aWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nZm9ybWF0X29wdGlvbnMnLAotICAgICAgICAg ICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSdjdXN0b20nLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9J2Zvcm1hdHRlciBcJ2ZpeGVk d2lkdGhfaW5cJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnY29tbWEgXCdcJ1wnIG51bGwgXCcgXCcnKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1 bHQ9J2NvbW1hID0gJCRcJyQkLGZvcm1hdHRlciA9ICQkZml4ZWR3aWR0aF9pbiQkLCcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwgPSAkJCAkJCcKLSAgICAgICAgICkpLAotICAg ICAgICAoJyNmb3JtYXRfb3B0aW9ucyBwYXNzaW5nICcKLSAgICAgICAgICciZm9ybWF0dGVyIFwn Zml4ZWR3aWR0aF9pblwnIG51bGwgXCcgXCcgcHJlc2VydmVfYmxhbmtzICcKLSAgICAgICAgICdc J29uXCcgY29tbWEgXCdcXFwnXCciLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyAnCi0gICAgICAg ICAnImZvcm1hdHRlciA9ICQkZml4ZWR3aWR0aF9pbiQkLG51bGwgPSAkJCAkJCxwcmVzZXJ2ZV9i bGFua3MgPSAnCi0gICAgICAgICAnJCRvbiQkLGNvbW1hID0gJCRcJyQkIicsCi0gICAgICAgICBk aWN0KAotICAgICAgICAgICAgIHRlc3RfdHlwZT0nZm9ybWF0X29wdGlvbnMnLAotICAgICAgICAg ICAgIGZ1bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSdjdXN0b20nLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnM9J2Zvcm1hdHRlciBcJ2ZpeGVk d2lkdGhfaW5cJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnbnVsbCBcJyBcJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAncHJlc2VydmVfYmxhbmtzIFwnb25cJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnY29tbWEgXCdcJ1wnJyksCi0gICAgICAgICAgICAgZXhwZWN0 ZWRfcmVzdWx0PSdjb21tYSA9ICQkXCckJCxmb3JtYXR0ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCwn Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsID0gJCQgJCQsJwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAncHJlc2VydmVfYmxhbmtzID0gJCRvbiQkJwotICAgICAgICAg KSksCi0gICAgICAgICgnI2Zvcm1hdF9vcHRpb25zIFdoZW4gZm9ybWF0IHR5cGUgaXMgdGV4dCAn Ci0gICAgICAgICAnaXQgcmV0dXJucyBlc2NhcGVkIHN0cmluZycsCi0gICAgICAgICBkaWN0KAot ICAgICAgICAgICAgIHRlc3RfdHlwZT0nZm9ybWF0X29wdGlvbnMnLAotICAgICAgICAgICAgIGZ1 bmN0aW9uX2FyZ3VtZW50cz1kaWN0KGZvcm1hdF90eXBlPSd0ZXh0JywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zPSdzb21ldGhpbmcgXCdzdHJhbmdlXCcgJwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyIFwnXCdc JycpLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nb3RoZXIgJCRcJyQkICcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ3NvbWV0aGluZyAkJHN0cmFuZ2UkJCcKLQotICAgICAg ICAgKSksCi0gICAgICAgICgnI2Zvcm1hdF9vcHRpb25zIFdoZW4gZm9ybWF0IHR5cGUgaXMgY3N2 ICcKLSAgICAgICAgICdpdCByZXR1cm5zIGVzY2FwZWQgc3RyaW5nJywKLSAgICAgICAgIGRpY3Qo Ci0gICAgICAgICAgICAgdGVzdF90eXBlPSdmb3JtYXRfb3B0aW9ucycsCi0gICAgICAgICAgICAg ZnVuY3Rpb25fYXJndW1lbnRzPWRpY3QoZm9ybWF0X3R5cGU9J2NzdicsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucz0nc29tZXRoaW5nIFwnc3RyYW5nZVwnICcK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlciBcJ1wn XCcnKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9J290aGVyICQkXCckJCAnCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdzb21ldGhpbmcgJCRzdHJhbmdlJCQnCi0KLSAgICAg ICAgICkpCi0gICAgXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJlc3VsdCA9 IE5vbmUKLSAgICAgICAgaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ21hcF9jb2x1bW5fZnJvbV9kYXRh YmFzZSc6Ci0gICAgICAgICAgICByZXN1bHQgPSBtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UoKipz ZWxmLmZ1bmN0aW9uX2FyZ3VtZW50cykKLSAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9PSAn bWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UnOgotICAgICAgICAgICAgcmVzdWx0 ID0gbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UoCi0gICAgICAgICAgICAgICAg KipzZWxmLmZ1bmN0aW9uX2FyZ3VtZW50cykKLSAgICAgICAgZWxpZiBzZWxmLnRlc3RfdHlwZSA9 PSAnbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbic6Ci0gICAgICAgICAgICByZXN1bHQgPSBtYXBfZXhl Y3V0aW9uX2xvY2F0aW9uKCoqc2VsZi5mdW5jdGlvbl9hcmd1bWVudHMpCi0gICAgICAgIGVsaWYg c2VsZi50ZXN0X3R5cGUgPT0gJ21hcF9mb3JtYXRfdHlwZSc6Ci0gICAgICAgICAgICByZXN1bHQg PSBtYXBfZm9ybWF0X3R5cGUoKipzZWxmLmZ1bmN0aW9uX2FyZ3VtZW50cykKLSAgICAgICAgZWxp ZiBzZWxmLnRlc3RfdHlwZSA9PSAnaXNfd2ViX3RhYmxlJzoKLSAgICAgICAgICAgIHJlc3VsdCA9 IGlzX3dlYl90YWJsZSgqKnNlbGYuZnVuY3Rpb25fYXJndW1lbnRzKQotICAgICAgICBlbGlmIHNl bGYudGVzdF90eXBlID09ICdmb3JtYXRfb3B0aW9ucyc6Ci0gICAgICAgICAgICByZXN1bHQgPSBm b3JtYXRfb3B0aW9ucygqKnNlbGYuZnVuY3Rpb25fYXJndW1lbnRzKQotICAgICAgICBzZWxmLmFz c2VydEVxdWFsKHJlc3VsdCwgc2VsZi5leHBlY3RlZF9yZXN1bHQpCisKKworY2xhc3MgVGVzdE1h cHBpbmdVdGlscyhvYmplY3QpOgorICAgIGRlZiB0ZXN0X21hcF9jb2x1bW5fZnJvbV9kYXRhYmFz ZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyBjb2x1bW5zIGZy b20gdGFibGUKKyAgICAgICAgSXQgcmV0dXJucyBvbmx5IHRoZSBuYW1lIGFuZCB0eXBlCisgICAg ICAgICIiIgorICAgICAgICByZXN1bHQgPSBtYXBfY29sdW1uX2Zyb21fZGF0YWJhc2UoCisgICAg ICAgICAgICBjb2x1bW5faW5mb3JtYXRpb249ZGljdCgKKyAgICAgICAgICAgICAgICBuYW1lPSdz b21lIG5hbWUnLAorICAgICAgICAgICAgICAgIGNsdHlwZT0nc29tZSB0eXBlJywKKyAgICAgICAg ICAgICAgICBvdGhlcl9jb2x1bW49J3NvbWUgb3RoZXIgY29sdW1uJworICAgICAgICAgICAgKQor ICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKGRpY3QobmFt ZT0nc29tZSBuYW1lJywgdHlwZT0nc29tZSB0eXBlJykpCisKKyAgICBkZWYgdGVzdF9tYXBfdGFi bGVfaW5mb3JtYXRpb25fZnJvbV9kYXRhYmFzZV91c2luZ191cmkoc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHJldHJpZXZpbmcgaW5mb3JtYXRpb24gZnJvbSB3ZWIgdGFibGUgdXNp bmcgdXJpCisgICAgICAgIEl0IHJldHVybnMgYWxsIGZpZWxkcworICAgICAgICAiIiIKKyAgICAg ICAgcmVzdWx0ID0gbWFwX3RhYmxlX2luZm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UoCisgICAgICAg ICAgICB0YWJsZV9pbmZvcm1hdGlvbj1kaWN0KAorICAgICAgICAgICAgICAgIHVyaWxvY2F0aW9u PSd7aHR0cDovL3NvbWV1cmwuY29tfScsCisgICAgICAgICAgICAgICAgZXhlY2xvY2F0aW9uPVsn QUxMX1NFR01FTlRTJ10sCisgICAgICAgICAgICAgICAgZm10dHlwZT0nYicsCisgICAgICAgICAg ICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyBlc2NhcGUgXCciXCcgcXVv dGUgXCciXCcnLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKKyAgICAgICAgICAgICAg ICByZWplY3RsaW1pdD1Ob25lLAorICAgICAgICAgICAgICAgIHJlamVjdGxpbWl0dHlwZT1Ob25l LAorICAgICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKKyAgICAgICAgICAgICAgICBlcnJv cnRvZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgIHBnX2VuY29kaW5nX3RvX2NoYXI9J1VURjgn LAorICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAgICAgICAgIG9wdGlv bnM9Tm9uZSwKKyAgICAgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAg ICAgICBuYW1lPSdzb21lX3RhYmxlX25hbWUnLAorICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0n c29tZV9uYW1lX3NwYWNlJworICAgICAgICAgICAgKQorICAgICAgICApCisKKyAgICAgICAgcmVz dWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKGRpY3QoCisgICAgICAgICAgICB1cmlzPVsnaHR0cDov L3NvbWV1cmwuY29tJ10sCisgICAgICAgICAgICBpc1dlYj1UcnVlLAorICAgICAgICAgICAgZXhl Y3V0aW9uTG9jYXRpb249ZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25lKSwKKyAg ICAgICAgICAgIGZvcm1hdFR5cGU9J2N1c3RvbScsCisgICAgICAgICAgICBmb3JtYXRPcHRpb25z PSdkZWxpbWl0ZXIgPSAkJCwkJCxlc2NhcGUgPSAkJCIkJCwnCisgICAgICAgICAgICAgICAgICAg ICAgICAgICdudWxsID0gJCQkJCxxdW90ZSA9ICQkIiQkJywKKyAgICAgICAgICAgIGNvbW1hbmQ9 Tm9uZSwKKyAgICAgICAgICAgIHJlamVjdExpbWl0PU5vbmUsCisgICAgICAgICAgICByZWplY3RM aW1pdFR5cGU9Tm9uZSwKKyAgICAgICAgICAgIGVycm9yVGFibGVOYW1lPU5vbmUsCisgICAgICAg ICAgICBlcnJvVG9GaWxlPU5vbmUsCisgICAgICAgICAgICBwZ0VuY29kaW5nVG9DaGFyPSdVVEY4 JywKKyAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAorICAgICAgICAgICAgb3B0aW9ucz1Ob25l LAorICAgICAgICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCisgICAgICAgICAgICBuYW1lPSdzb21l X3RhYmxlX25hbWUnLAorICAgICAgICAgICAgbmFtZXNwYWNlPSdzb21lX25hbWVfc3BhY2UnCisg ICAgICAgICkpCisKKyAgICBkZWYgdGVzdF9tYXBfdGFibGVfaW5mb3JtYXRpb25fZnJvbV9kYXRh YmFzZV91c2luZ19jbWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJldHJpZXZp bmcgaW5mb3JtYXRpb24gZnJvbSB3ZWIgdGFibGUgdXNpbmcgY21kCisgICAgICAgIEl0IHJldHVy bnMgYWxsIGZpZWxkcworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gbWFwX3RhYmxlX2lu Zm9ybWF0aW9uX2Zyb21fZGF0YWJhc2UoCisgICAgICAgICAgICB0YWJsZV9pbmZvcm1hdGlvbj1k aWN0KAorICAgICAgICAgICAgICAgIHVyaWxvY2F0aW9uPU5vbmUsCisgICAgICAgICAgICAgICAg ZXhlY2xvY2F0aW9uPVsnQUxMX1NFR01FTlRTJ10sCisgICAgICAgICAgICAgICAgZm10dHlwZT0n YicsCisgICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyBl c2NhcGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9J2NhdCAv dG1wL3BsYWNlcyB8fCBlY2hvIFwnZXJyb3JcJycsCisgICAgICAgICAgICAgICAgcmVqZWN0bGlt aXQ9Tm9uZSwKKyAgICAgICAgICAgICAgICByZWplY3RsaW1pdHR5cGU9Tm9uZSwKKyAgICAgICAg ICAgICAgICBlcnJ0YmxuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgZXJyb3J0b2ZpbGU9Tm9u ZSwKKyAgICAgICAgICAgICAgICBwZ19lbmNvZGluZ190b19jaGFyPSdVVEY4JywKKyAgICAgICAg ICAgICAgICB3cml0YWJsZT1GYWxzZSwKKyAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCisg ICAgICAgICAgICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCisgICAgICAgICAgICAgICAgbmFtZT0n c29tZV90YWJsZV9uYW1lJywKKyAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9z cGFjZScKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3Vs ZC5iZS5lcXVhbC50byhkaWN0KAorICAgICAgICAgICAgdXJpcz1Ob25lLAorICAgICAgICAgICAg aXNXZWI9VHJ1ZSwKKyAgICAgICAgICAgIGV4ZWN1dGlvbkxvY2F0aW9uPWRpY3QodHlwZT0nYWxs X3NlZ21lbnRzJywgdmFsdWU9Tm9uZSksCisgICAgICAgICAgICBmb3JtYXRUeXBlPSdjdXN0b20n LAorICAgICAgICAgICAgZm9ybWF0T3B0aW9ucz0nZGVsaW1pdGVyID0gJCQsJCQsZXNjYXBlID0g JCQiJCQsJworICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCA9ICQkJCQscXVvdGUgPSAk JCIkJCcsCisgICAgICAgICAgICBjb21tYW5kPSdjYXQgL3RtcC9wbGFjZXMgfHwgZWNobyBcJ2Vy cm9yXCcnLAorICAgICAgICAgICAgcmVqZWN0TGltaXQ9Tm9uZSwKKyAgICAgICAgICAgIHJlamVj dExpbWl0VHlwZT1Ob25lLAorICAgICAgICAgICAgZXJyb3JUYWJsZU5hbWU9Tm9uZSwKKyAgICAg ICAgICAgIGVycm9Ub0ZpbGU9Tm9uZSwKKyAgICAgICAgICAgIHBnRW5jb2RpbmdUb0NoYXI9J1VU RjgnLAorICAgICAgICAgICAgd3JpdGFibGU9RmFsc2UsCisgICAgICAgICAgICBvcHRpb25zPU5v bmUsCisgICAgICAgICAgICBkaXN0cmlidXRpb249Tm9uZSwKKyAgICAgICAgICAgIG5hbWU9J3Nv bWVfdGFibGVfbmFtZScsCisgICAgICAgICAgICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9zcGFjZScK KyAgICAgICAgKSkKKworICAgIGRlZiB0ZXN0X21hcF90YWJsZV9pbmZvcm1hdGlvbl9mcm9tX25v bmVfd2ViX3RhYmxlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZXRyaWV2aW5n IGluZm9ybWF0aW9uIGZyb20gbm9uZSB3ZWIgdGFibGUKKyAgICAgICAgSXQgcmV0dXJucyBhbGwg ZmllbGRzCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBtYXBfdGFibGVfaW5mb3JtYXRp b25fZnJvbV9kYXRhYmFzZSgKKyAgICAgICAgICAgIHRhYmxlX2luZm9ybWF0aW9uPWRpY3QoCisg ICAgICAgICAgICAgICAgdXJpbG9jYXRpb249J3tncGZkaXN0Oi8vZmlsZWhvc3Q6ODA4MS8qLmNz dn0nLAorICAgICAgICAgICAgICAgIGV4ZWNsb2NhdGlvbj1bJ0FMTF9TRUdNRU5UUyddLAorICAg ICAgICAgICAgICAgIGZtdHR5cGU9J2InLAorICAgICAgICAgICAgICAgIGZtdG9wdHM9J2RlbGlt aXRlciBcJyxcJyBudWxsIFwnXCcgZXNjYXBlIFwnIlwnIHF1b3RlIFwnIlwnJywKKyAgICAgICAg ICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgcmVqZWN0bGltaXQ9Tm9uZSwK KyAgICAgICAgICAgICAgICByZWplY3RsaW1pdHR5cGU9Tm9uZSwKKyAgICAgICAgICAgICAgICBl cnJ0YmxuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgZXJyb3J0b2ZpbGU9Tm9uZSwKKyAgICAg ICAgICAgICAgICBwZ19lbmNvZGluZ190b19jaGFyPSdVVEY4JywKKyAgICAgICAgICAgICAgICB3 cml0YWJsZT1GYWxzZSwKKyAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICAg ICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCisgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJs ZV9uYW1lJywKKyAgICAgICAgICAgICAgICBuYW1lc3BhY2U9J3NvbWVfbmFtZV9zcGFjZScKKyAg ICAgICAgICAgICkKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVh bC50byhkaWN0KAorICAgICAgICAgICAgdXJpcz1bJ2dwZmRpc3Q6Ly9maWxlaG9zdDo4MDgxLyou Y3N2J10sCisgICAgICAgICAgICBpc1dlYj1GYWxzZSwKKyAgICAgICAgICAgIGV4ZWN1dGlvbkxv Y2F0aW9uPWRpY3QodHlwZT0nYWxsX3NlZ21lbnRzJywgdmFsdWU9Tm9uZSksCisgICAgICAgICAg ICBmb3JtYXRUeXBlPSdjdXN0b20nLAorICAgICAgICAgICAgZm9ybWF0T3B0aW9ucz0nZGVsaW1p dGVyID0gJCQsJCQsZXNjYXBlID0gJCQiJCQsJworICAgICAgICAgICAgICAgICAgICAgICAgICAn bnVsbCA9ICQkJCQscXVvdGUgPSAkJCIkJCcsCisgICAgICAgICAgICBjb21tYW5kPU5vbmUsCisg ICAgICAgICAgICByZWplY3RMaW1pdD1Ob25lLAorICAgICAgICAgICAgcmVqZWN0TGltaXRUeXBl PU5vbmUsCisgICAgICAgICAgICBlcnJvclRhYmxlTmFtZT1Ob25lLAorICAgICAgICAgICAgZXJy b1RvRmlsZT1Ob25lLAorICAgICAgICAgICAgcGdFbmNvZGluZ1RvQ2hhcj0nVVRGOCcsCisgICAg ICAgICAgICB3cml0YWJsZT1GYWxzZSwKKyAgICAgICAgICAgIG9wdGlvbnM9Tm9uZSwKKyAgICAg ICAgICAgIGRpc3RyaWJ1dGlvbj1Ob25lLAorICAgICAgICAgICAgbmFtZT0nc29tZV90YWJsZV9u YW1lJywKKyAgICAgICAgICAgIG5hbWVzcGFjZT0nc29tZV9uYW1lX3NwYWNlJworICAgICAgICAp KQorCisgICAgZGVmIHRlc3RfaXNfd2ViX3RhYmxlX3dpdGhfaHR0cChzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdXJsIHN0YXJ0cyB3aXRoIGh0dHAKKyAgICAgICAgQW5kIGNvbW1h bmQgaXMgTm9uZQorICAgICAgICBJdCByZXR1cm5zIHRydWUKKyAgICAgICAgIiIiCisgICAgICAg IHJlc3VsdCA9IGlzX3dlYl90YWJsZSgKKyAgICAgICAgICAgIHVyaXM9J3todHRwOi8vc29tZXVy bC5jb219JywKKyAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZQorICAgICAgICApCisKKyAgICAgICAg cmVzdWx0IHwgc2hvdWxkLmJlLnRydWUKKworICAgIGRlZiB0ZXN0X2lzX3dlYl90YWJsZV93aXRo X2h0dHBzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB1cmwgc3RhcnRzIHdpdGgg aHR0cHMKKyAgICAgICAgQW5kIGNvbW1hbmQgaXMgTm9uZQorICAgICAgICBJdCByZXR1cm5zIHRy dWUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGlzX3dlYl90YWJsZSgKKyAgICAgICAg ICAgIHVyaXM9J3todHRwczovL3NvbWV1cmwuY29tfScsCisgICAgICAgICAgICBjb21tYW5kPU5v bmUKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS50cnVlCisKKyAgICBk ZWYgdGVzdF9pc193ZWJfdGFibGVfd2l0aF9zMyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gdXJsIHN0YXJ0cyB3aXRoIHMzCisgICAgICAgIEFuZCBjb21tYW5kIGlzIE5vbmUKKyAg ICAgICAgSXQgcmV0dXJucyBmYWxzZQorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gaXNf d2ViX3RhYmxlKAorICAgICAgICAgICAgdXJpcz0ne3MzOi8vc29tZXVybC5jb219JywKKyAgICAg ICAgICAgIGNvbW1hbmQ9Tm9uZQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxk LmJlLmZhbHNlCisKKyAgICBkZWYgdGVzdF9pc193ZWJfdGFibGVfd2l0aF9jb21tYW5kX25vX3Vy bChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdXJsIGlzIE5vbmUKKyAgICAgICAg QW5kIGNvbW1hbmQgaXMgbm90IG5vbmUKKyAgICAgICAgSXQgcmV0dXJucyB0cnVlCisgICAgICAg ICIiIgorICAgICAgICByZXN1bHQgPSBpc193ZWJfdGFibGUoCisgICAgICAgICAgICB1cmlzPU5v bmUsCisgICAgICAgICAgICBjb21tYW5kPSdTb21lIGNvbW1hbmQnCisgICAgICAgICkKKworICAg ICAgICByZXN1bHQgfCBzaG91bGQuYmUudHJ1ZQorCisgICAgZGVmIHRlc3RfbWFwX2V4ZWN1dGlv bl9sb2NhdGlvbl93aXRoX2hvc3Qoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHZh bHVlIGlzICJIT1NUOiAxLjEuMS4xIiwKKyAgICAgICAgSXQgcmV0dXJucyB7dHlwZTogImhvc3Qi LCB2YWx1ZTogIjEuMS4xLjEifScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9l eGVjdXRpb25fbG9jYXRpb24oCisgICAgICAgICAgICBleGVjdXRpb25fbG9jYXRpb249WydIT1NU OiAxLjEuMS4xJ10KKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVh bC50byhkaWN0KHR5cGU9J2hvc3QnLCB2YWx1ZT0nMS4xLjEuMScpKQorCisgICAgZGVmIHRlc3Rf bWFwX2V4ZWN1dGlvbl9sb2NhdGlvbl9wZXJfaG9zdChzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gdmFsdWUgaXMgIlBFUl9IT1NUIiwKKyAgICAgICAgSXQgcmV0dXJucyB7dHlwZTog InBlcl9ob3N0IiwgdmFsdWU6IE5vbmUifScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9 IG1hcF9leGVjdXRpb25fbG9jYXRpb24oCisgICAgICAgICAgICBleGVjdXRpb25fbG9jYXRpb249 WydQRVJfSE9TVCddCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1 YWwudG8oZGljdCh0eXBlPSdwZXJfaG9zdCcsIHZhbHVlPU5vbmUpKQorCisgICAgZGVmIHRlc3Rf bWFwX2V4ZWN1dGlvbl9sb2NhdGlvbl9tYXN0ZXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHZhbHVlIGlzICJNQVNURVJfT05MWSIsCisgICAgICAgIEl0IHJldHVybnMge3R5cGU6 ICJtYXN0ZXJfb25seSIsIHZhbHVlOiBOb25lIn0nCisgICAgICAgICIiIgorICAgICAgICByZXN1 bHQgPSBtYXBfZXhlY3V0aW9uX2xvY2F0aW9uKAorICAgICAgICAgICAgZXhlY3V0aW9uX2xvY2F0 aW9uPVsnTUFTVEVSX09OTFknXQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxk LmJlLmVxdWFsLnRvKGRpY3QodHlwZT0nbWFzdGVyX29ubHknLCB2YWx1ZT1Ob25lKSkKKworICAg IGRlZiB0ZXN0X21hcF9leGVjdXRpb25fbG9jYXRpb25fc2VnbWVudF9pZChzZWxmKToKKyAgICAg ICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgIlNFR01FTlRfSUQ6IDEyMzQiLAorICAgICAg ICBJdCByZXR1cm5zIHt0eXBlOiAic2VnbWVudCIsIHZhbHVlOiAxMjM0In0nCisgICAgICAgICIi IgorICAgICAgICByZXN1bHQgPSBtYXBfZXhlY3V0aW9uX2xvY2F0aW9uKAorICAgICAgICAgICAg ZXhlY3V0aW9uX2xvY2F0aW9uPVsnU0VHTUVOVF9JRDogMTIzNCddCisgICAgICAgICkKKworICAg ICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oZGljdCh0eXBlPSdzZWdtZW50JywgdmFs dWU9JzEyMzQnKSkKKworICAgIGRlZiB0ZXN0X21hcF9leGVjdXRpb25fbG9jYXRpb25fdG90YWxf c2VncyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgIlRPVEFMX1NF R1M6IDQiLAorICAgICAgICBJdCByZXR1cm5zIHt0eXBlOiAic2VnbWVudHMiLCB2YWx1ZTogNCJ9 JworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gbWFwX2V4ZWN1dGlvbl9sb2NhdGlvbigK KyAgICAgICAgICAgIGV4ZWN1dGlvbl9sb2NhdGlvbj1bJ1RPVEFMX1NFR1M6IDQnXQorICAgICAg ICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKGRpY3QodHlwZT0nc2Vn bWVudHMnLCB2YWx1ZT0nNCcpKQorCisgICAgZGVmIHRlc3RfbWFwX2V4ZWN1dGlvbl9sb2NhdGlv bl9hbGxfc2VnbWVudHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHZhbHVlIGlz ICJBTExfU0VHTUVOVFMiLAorICAgICAgICBJdCByZXR1cm5zIHt0eXBlOiAiYWxsX3NlZ21lbnRz IiwgdmFsdWU6IE5vbmUifScKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9leGVj dXRpb25fbG9jYXRpb24oCisgICAgICAgICAgICBleGVjdXRpb25fbG9jYXRpb249WydBTExfU0VH TUVOVFMnXQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRv KGRpY3QodHlwZT0nYWxsX3NlZ21lbnRzJywgdmFsdWU9Tm9uZSkpCisKKyAgICBkZWYgdGVzdF9t YXBfZm9ybWF0X3R5cGVfd2l0aF9jKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB2 YWx1ZSBpcyAiYyIsCisgICAgICAgIEl0IHJldHVybnMgY3N2CisgICAgICAgICIiIgorICAgICAg ICByZXN1bHQgPSBtYXBfZm9ybWF0X3R5cGUoZm9ybWF0X3R5cGU9J2MnKQorCisgICAgICAgIHJl c3VsdCB8IHNob3VsZC5iZS5lcXVhbC50bygnY3N2JykKKworICAgIGRlZiB0ZXN0X21hcF9mb3Jt YXRfdHlwZV93aXRoX3VuZXhwZWN0ZWRfdmFsdWUoc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHZhbHVlIGlzICJ1bmV4cGVjdGVkIHZhbHVlIiwKKyAgICAgICAgSXQgcmV0dXJucyBj c3YKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9mb3JtYXRfdHlwZShmb3JtYXRf dHlwZT0nc29tZXRoaW5nIHN0cmFuZ2UnKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5l cXVhbC50bygnY3N2JykKKworICAgIGRlZiB0ZXN0X21hcF9mb3JtYXRfdHlwZV93aXRoX2Ioc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHZhbHVlIGlzICJiIiwKKyAgICAgICAgSXQg cmV0dXJucyBjdXN0b20KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9mb3JtYXRf dHlwZShmb3JtYXRfdHlwZT0nYicpCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFs LnRvKCdjdXN0b20nKQorCisgICAgZGVmIHRlc3RfbWFwX2Zvcm1hdF90eXBlX3dpdGhfYShzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdmFsdWUgaXMgImEiLAorICAgICAgICBJdCBy ZXR1cm5zIGF2cm8KKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IG1hcF9mb3JtYXRfdHlw ZShmb3JtYXRfdHlwZT0nYScpCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRv KCdhdnJvJykKKworICAgIGRlZiB0ZXN0X21hcF9mb3JtYXRfdHlwZV93aXRoX3Aoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHZhbHVlIGlzICJwIiwKKyAgICAgICAgSXQgcmV0dXJu cyBwYXJxdWV0CisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBtYXBfZm9ybWF0X3R5cGUo Zm9ybWF0X3R5cGU9J3AnKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50bygn cGFycXVldCcpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfb3B0aW9uc193aXRoX25vbmUoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHBhc3NpbmcgTm9uZQorICAgICAgICBJdCByZXR1 cm5zIE5vbmUKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGZvcm1hdF9vcHRpb25zKGZv cm1hdF90eXBlPSdhdnJvJywgb3B0aW9ucz1Ob25lKQorCisgICAgICAgIHJlc3VsdCB8IHNob3Vs ZC5iZS5ub25lCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfb3B0aW9uc193aXRoX2VtcHR5X3N0cmlu ZyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcGFzc2luZyBlbXB0eSBzdHJpbmcK KyAgICAgICAgSXQgcmV0dXJucyBlbXB0eSBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAgIHJl c3VsdCA9IGZvcm1hdF9vcHRpb25zKGZvcm1hdF90eXBlPSdwYXJxdWV0Jywgb3B0aW9ucz0nJykK KworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8oJycpCisKKyAgICBkZWYgdGVz dF9mb3JtYXRfb3B0aW9uc193aXRoX2Zvcm1hdHRlcl9maXhlZHdpZHRoKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgV2hlbiBwYXNzaW5nIG9wdGlvbiAnZml4ZWR3aWR0aF9pbicgbnVsbCAn ICcKKyAgICAgICAgSXQgcmV0dXJucyAiZm9ybWF0dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsbnVs bCA9ICQkICQkIgorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X29wdGlvbnMo CisgICAgICAgICAgICBmb3JtYXRfdHlwZT0nY3VzdG9tJywKKyAgICAgICAgICAgIG9wdGlvbnM9 ImZvcm1hdHRlciAnZml4ZWR3aWR0aF9pbicgbnVsbCAnICciCisgICAgICAgICkKKworICAgICAg ICByZXN1bHQgfCBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ2Zvcm1hdHRlciA9 ICQkZml4ZWR3aWR0aF9pbiQkLG51bGwgPSAkJCAkJCcpCisKKyAgICBkZWYgdGVzdF9mb3JtYXRf b3B0aW9uc193aXRoX2Zvcm1hdHRlcl9maXhlZHdpZHRoX2NvbW1hKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiBwYXNzaW5nIG9wdGlvbiAnZml4ZWR3aWR0aF9pbicgY29tbWEgJycn IG51bGwgJyAnCisgICAgICAgIEl0IHJldHVybnMgImZvcm1hdHRlciA9ICQkZml4ZWR3aWR0aF9p biQkLGNvbW1hID0gJCRcJyQkLG51bGwgPSAkJCAkJCIKKyAgICAgICAgIiIiCisgICAgICAgIHJl c3VsdCA9IGZvcm1hdF9vcHRpb25zKAorICAgICAgICAgICAgZm9ybWF0X3R5cGU9J2N1c3RvbScs CisgICAgICAgICAgICBvcHRpb25zPSJmb3JtYXR0ZXIgJ2ZpeGVkd2lkdGhfaW4nIGNvbW1hICcn JyBudWxsICcgJyIKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVh bC50bygKKyAgICAgICAgICAgICJjb21tYSA9ICQkJyQkLCIKKyAgICAgICAgICAgICJmb3JtYXR0 ZXIgPSAkJGZpeGVkd2lkdGhfaW4kJCwiCisgICAgICAgICAgICAibnVsbCA9ICQkICQkIgorICAg ICAgICApCisKKyAgICBkZWYgdGVzdF9mb3JtYXRfb3B0aW9uc193aXRoX2Zvcm1hdHRlcl9wcmVz ZXJ2ZV9ibGFua3Moc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHBhc3Npbmcgb3B0 aW9uICdmaXhlZHdpZHRoX2luJyBudWxsICcgJyBwcmVzZXJ2ZV9ibGFua3MKKyAgICAgICAgJ29u JyBjb21tYSAnXCcnCisgICAgICAgIEl0IHJldHVybnMgImZvcm1hdHRlciA9ICQkZml4ZWR3aWR0 aF9pbiQkLAorICAgICAgICBudWxsID0gJCQgJCQscHJlc2VydmVfYmxhbmtzID0gJCRvbiQkLGNv bW1hID0gJCQnJCQiJworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZm9ybWF0X29wdGlv bnMoCisgICAgICAgICAgICBmb3JtYXRfdHlwZT0nY3VzdG9tJywKKyAgICAgICAgICAgIG9wdGlv bnM9ImZvcm1hdHRlciAnZml4ZWR3aWR0aF9pbicgIgorICAgICAgICAgICAgICAgICAgICAibnVs bCAnICcgIgorICAgICAgICAgICAgICAgICAgICAicHJlc2VydmVfYmxhbmtzICdvbicgIgorICAg ICAgICAgICAgICAgICAgICAiY29tbWEgJycnIgorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0 IHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgImNvbW1hID0gJCQnJCQsZm9ybWF0 dGVyID0gJCRmaXhlZHdpZHRoX2luJCQsIgorICAgICAgICAgICAgIm51bGwgPSAkJCAkJCwiCisg ICAgICAgICAgICAicHJlc2VydmVfYmxhbmtzID0gJCRvbiQkIgorICAgICAgICApCisKKyAgICBk ZWYgdGVzdF9mb3JtYXRfb3B0aW9uc193aXRoX3RleHQoc2VsZik6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHBhc3NpbmcgZm9ybWF0IHR5cGUgaXMgdGV4dAorICAgICAgICBpdCByZXR1cm5z IGVzY2FwZWQgc3RyaW5nCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBmb3JtYXRfb3B0 aW9ucygKKyAgICAgICAgICAgIGZvcm1hdF90eXBlPSd0ZXh0JywKKyAgICAgICAgICAgIG9wdGlv bnM9InNvbWV0aGluZyAnc3RyYW5nZScgb3RoZXIgJycnIgorICAgICAgICApCisKKyAgICAgICAg cmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgIm90aGVyICQkJyQkIHNv bWV0aGluZyAkJHN0cmFuZ2UkJCIKKyAgICAgICAgKQorCisgICAgZGVmIHRlc3RfZm9ybWF0X29w dGlvbnNfd2l0aF9jc3Yoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHBhc3Npbmcg Zm9ybWF0IHR5cGUgaXMgY3N2CisgICAgICAgIGl0IHJldHVybnMgZXNjYXBlZCBzdHJpbmcKKyAg ICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGZvcm1hdF9vcHRpb25zKAorICAgICAgICAgICAg Zm9ybWF0X3R5cGU9J2NzdicsCisgICAgICAgICAgICBvcHRpb25zPSJzb21ldGhpbmcgJ3N0cmFu Z2UnIG90aGVyICcnJyIKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5l cXVhbC50bygib3RoZXIgJCQnJCQgc29tZXRoaW5nICQkc3RyYW5nZSQkIikKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl cm5hbF90YWJsZXMvdGVzdHMvdGVzdF9wcm9wZXJ0aWVzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVybmFsX3RhYmxlcy90ZXN0cy90 ZXN0X3Byb3BlcnRpZXMucHkKaW5kZXggMjg4ZjFiNDUuLjEwODEwMGU4IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJu YWxfdGFibGVzL3Rlc3RzL3Rlc3RfcHJvcGVydGllcy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3Rz L3Rlc3RfcHJvcGVydGllcy5weQpAQCAtOCwxMSArOCwxMiBAQAogIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK IGltcG9ydCBzeXMKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIFwKICAgICAuZXh0ZXJuYWxf dGFibGVzIGltcG9ydCBQcm9wZXJ0aWVzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVybmFsX3RhYmxlcyBcCi0gICAgLnByb3BlcnRpZXMg aW1wb3J0IFByb3BlcnRpZXNFeGNlcHRpb24sIFByb3BlcnRpZXNUYWJsZU5vdEZvdW5kRXhjZXB0 aW9uCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisg ICAgLnByb3BlcnRpZXMgaW1wb3J0IFByb3BlcnRpZXNFeGNlcHRpb24KIAogaWYgc3lzLnZlcnNp b25faW5mbyA8ICgzLCAzKToKICAgICBmcm9tIG1vY2sgaW1wb3J0IE1hZ2ljTW9jaywgcGF0Y2gK QEAgLTIwLDEzNyArMjEsMTE0IEBAIGVsc2U6CiAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9y dCBNYWdpY01vY2ssIHBhdGNoCiAKIAotY2xhc3MgVGVzdFByb3BlcnRpZXMoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCcjcHJvcGVydGllcyBXaGVuIHJl dHJpZXZpbmcgdGhlIHByb3BlcnRpZXMgb2YgYSBleHRlcm5hbCB0YWJsZSAnCi0gICAgICAgICAn YW5kIHRoZSB0YWJsZSBleGlzdHMsICcKLSAgICAgICAgICdpdCByZXR1cm4gdGhlIHByb3BlcnRp ZXMgJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdwcm9wZXJ0aWVz JywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAg ICAgIHRhYmxlX29pZD0xMQotICAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgICBjb25uZWN0 aW9uPU1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAotICAgICAgICAgICAg IGV4ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3QoCi0gICAgICAgICAgICAg ICAgIHJvd3M9W2RpY3QoCi0gICAgICAgICAgICAgICAgICAgICB1cmlsb2NhdGlvbj0ne2h0dHA6 Ly9zb21ldXJsLmNvbX0nLAotICAgICAgICAgICAgICAgICAgICAgZXhlY2xvY2F0aW9uPVsnQUxM X1NFR01FTlRTJ10sCi0gICAgICAgICAgICAgICAgICAgICBmbXR0eXBlPSdhJywKLSAgICAgICAg ICAgICAgICAgICAgIGZtdG9wdHM9J2RlbGltaXRlciBcJyxcJyBudWxsIFwnXCcgJwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZXNjYXBlIFwnIlwnIHF1b3RlIFwnIlwnJywKLSAgICAg ICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlamVj dGxpbWl0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICByZWplY3RsaW1pdHR5cGU9Tm9uZSwK LSAgICAgICAgICAgICAgICAgICAgIGVycnRibG5hbWU9Tm9uZSwKLSAgICAgICAgICAgICAgICAg ICAgIGVycm9ydG9maWxlPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICBwZ19lbmNvZGluZ190 b19jaGFyPSdVVEY4JywKLSAgICAgICAgICAgICAgICAgICAgIHdyaXRhYmxlPUZhbHNlLAotICAg ICAgICAgICAgICAgICAgICAgb3B0aW9ucz1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgZGlz dHJpYnV0aW9uPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICBuYW1lPSdzb21lX3RhYmxlJywK LSAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZT0ncHVibGljJwotICAgICAgICAgICAgICAg ICApXQotICAgICAgICAgICAgICkpLAotCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1w bGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29y X2xpc3Q9J3NvbWUvc3FsL2xvY2F0aW9uLycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJywKLSAgICAgICAgICAgICAgICAg dGFibGVfb2lkPTExCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXN1 bHQ9ZGljdCgKLSAgICAgICAgICAgICAgICAgbmFtZT0ic29tZV90YWJsZSIsCi0gICAgICAgICAg ICAgICAgIHR5cGU9J3JlYWRhYmxlJywKLSAgICAgICAgICAgICAgICAgZm9ybWF0X3R5cGU9J1VU RjgnLAotICAgICAgICAgICAgICAgICBmb3JtYXRfb3B0aW9ucz0nZGVsaW1pdGVyIFwnLFwnIG51 bGwgXCdcJyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlc2NhcGUgXCciXCcg cXVvdGUgXCciXCcnLAotICAgICAgICAgICAgICAgICBleHRlcm5hbF9vcHRpb25zPU5vbmUsCi0g ICAgICAgICAgICAgICAgIGNvbW1hbmQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgZXhlY3V0ZV9v bj0nYWxsIHNlZ21lbnRzJywKLSAgICAgICAgICAgICApLAotICAgICAgICAgKSksCi0gICAgICAg ICgnI3Byb3BlcnRpZXMgV2hlbiByZXRyaWV2aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIGEgZXh0ZXJu YWwgdGFibGUgJwotICAgICAgICAgJ2FuZCBhIFNRTCBlcnJvciBoYXBwZW5zLCAnCi0gICAgICAg ICAnaXQgcmFpc2VzIGV4Y2VwdGlvbiB3aXRoIHRoZSBlcnJvciBtZXNzYWdlJywKLSAgICAgICAg IGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSdwcm9wZXJ0aWVzJywKLSAgICAgICAgICAg ICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHRhYmxlX29pZD0x MQotICAgICAgICAgICAgICksCi0KLSAgICAgICAgICAgICBjb25uZWN0aW9uPU1hZ2ljTW9jayhl eGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpLAotICAgICAgICAgICAgIGV4ZWN1dGVfMmRhcnJh eV9yZXR1cm5fdmFsdWU9KEZhbHNlLCAnU29tZSBlcnJvcicpLAotCi0gICAgICAgICAgICAgZXhw ZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NvbWUvc3FsL2xvY2F0aW9uLycKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJywKLSAg ICAgICAgICAgICAgICAgdGFibGVfb2lkPTExCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAg ICBleHBlY3RlZF9yYWlzZV9leGNlcHRpb249UHJvcGVydGllc0V4Y2VwdGlvbiwKLSAgICAgICAg ICAgICBleHBlY3RlZF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGg9WydTb21lIGVy cm9yJ10KLSAgICAgICAgICkpLAotICAgICAgICAoJyNwcm9wZXJ0aWVzIFdoZW4gcmV0cmlldmlu ZyB0aGUgcHJvcGVydGllcyBvZiBhIGV4dGVybmFsIHRhYmxlICcKLSAgICAgICAgICdhbmQgdGFi bGUgaXMgbm90IGZvdW5kLCAnCi0gICAgICAgICAnaXQgcmFpc2VzIGV4Y2VwdGlvbiAnLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICB0ZXN0X3R5cGU9J3Byb3BlcnRpZXMnLAotICAgICAg ICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgdGFibGVf b2lkPTExCi0gICAgICAgICAgICAgKSwKLQotICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNN b2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSksCi0gICAgICAgICAgICAgZXhlY3V0ZV8y ZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChyb3dzPVtdKSksCi0KLSAgICAgICAgICAg ICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAg ICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc29tZS9zcWwvbG9jYXRpb24vJwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwn LAotICAgICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTEKLSAgICAgICAgICAgICApLAotICAgICAg ICAgICAgIGV4cGVjdGVkX3JhaXNlX2V4Y2VwdGlvbj1Qcm9wZXJ0aWVzVGFibGVOb3RGb3VuZEV4 Y2VwdGlvbgotICAgICAgICAgKSksCi0gICAgXQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0gXAot ICAgICAgICAgICAgc2VsZi5leGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlCi0gICAgICAgIHNl bGYuX190ZXN0X3Byb3BlcnRpZXMoKQorY2xhc3MgVGVzdFByb3BlcnRpZXMob2JqZWN0KToKKwor ICAgIGRlZiB0ZXN0X3Byb3BlcnRpZXNfZXhpc3RpbmdfdGFibGUoc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHJldHJpZXZpbmcgcHJvcGVydGllcyBvbiBhbiBleGlzdGluZyBleHRl cm5hbCB0YWJsZQorICAgICAgICBJdCByZXR1cm5zIHRoZSBwcm9wZXJ0aWVzCisgICAgICAgICIi IgorICAgICAgICBjb25uZWN0aW9uID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01v Y2soKSkKKyAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0g KFRydWUsIGRpY3QoCisgICAgICAgICAgICByb3dzPVtkaWN0KAorICAgICAgICAgICAgICAgIHVy aWxvY2F0aW9uPSd7aHR0cDovL3NvbWV1cmwuY29tfScsCisgICAgICAgICAgICAgICAgZXhlY2xv Y2F0aW9uPVsnQUxMX1NFR01FTlRTJ10sCisgICAgICAgICAgICAgICAgZm10dHlwZT0nYScsCisg ICAgICAgICAgICAgICAgZm10b3B0cz0nZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdcJyAnCisgICAg ICAgICAgICAgICAgICAgICAgICAnZXNjYXBlIFwnIlwnIHF1b3RlIFwnIlwnJywKKyAgICAgICAg ICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgcmVqZWN0bGltaXQ9Tm9uZSwK KyAgICAgICAgICAgICAgICByZWplY3RsaW1pdHR5cGU9Tm9uZSwKKyAgICAgICAgICAgICAgICBl cnJ0YmxuYW1lPU5vbmUsCisgICAgICAgICAgICAgICAgZXJyb3J0b2ZpbGU9Tm9uZSwKKyAgICAg ICAgICAgICAgICBwZ19lbmNvZGluZ190b19jaGFyPSdVVEY4JywKKyAgICAgICAgICAgICAgICB3 cml0YWJsZT1GYWxzZSwKKyAgICAgICAgICAgICAgICBvcHRpb25zPU5vbmUsCisgICAgICAgICAg ICAgICAgZGlzdHJpYnV0aW9uPU5vbmUsCisgICAgICAgICAgICAgICAgbmFtZT0nc29tZV90YWJs ZScsCisgICAgICAgICAgICAgICAgbmFtZXNwYWNlPSdwdWJsaWMnCisgICAgICAgICAgICApXQor ICAgICAgICApKQorCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTWFnaWNNb2NrKCkK KyAgICAgICAgZXh0ZXJuYWxfdGFibGVzX3ZpZXcgPSBQcm9wZXJ0aWVzKAorICAgICAgICAgICAg cmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAgICAgICAgICBjb25uZWN0aW9uLAorICAgICAgICAg ICAgJ3NvbWUvc3FsL2xvY2F0aW9uLycKKyAgICAgICAgKQorICAgICAgICByZXN1bHQgPSBleHRl cm5hbF90YWJsZXNfdmlldy5yZXRyaWV2ZSh0YWJsZV9vaWQ9MTEpCisKKyAgICAgICAgcmVuZGVy X3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgdGVtcGxhdGVf bmFtZV9vcl9saXN0PSdzb21lL3NxbC9sb2NhdGlvbi8nCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2dldF90YWJsZV9pbmZvcm1hdGlvbi5zcWwnLAorICAgICAgICAgICAgdGFi bGVfb2lkPTExCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwu dG8oCisgICAgICAgICAgICBkaWN0KAorICAgICAgICAgICAgICAgIG5hbWU9InNvbWVfdGFibGUi LAorICAgICAgICAgICAgICAgIHR5cGU9J3JlYWRhYmxlJywKKyAgICAgICAgICAgICAgICBmb3Jt YXRfdHlwZT0nVVRGOCcsCisgICAgICAgICAgICAgICAgZm9ybWF0X29wdGlvbnM9J2RlbGltaXRl ciBcJyxcJyBudWxsIFwnXCcgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlc2Nh cGUgXCciXCcgcXVvdGUgXCciXCcnLAorICAgICAgICAgICAgICAgIGV4dGVybmFsX29wdGlvbnM9 Tm9uZSwKKyAgICAgICAgICAgICAgICBjb21tYW5kPU5vbmUsCisgICAgICAgICAgICAgICAgZXhl Y3V0ZV9vbj0nYWxsIHNlZ21lbnRzJywKKyAgICAgICAgICAgICkKKyAgICAgICAgKQogCiAgICAg QHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcycK ICAgICAgICAgICAgJy5leHRlcm5hbF90YWJsZXMucHJvcGVydGllcy5pbnRlcm5hbF9zZXJ2ZXJf ZXJyb3InKQotICAgIGRlZiBfX3Rlc3RfcHJvcGVydGllcyhzZWxmLCBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3JfbW9jayk6Ci0gICAgICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKKyAgICBkZWYgdGVzdF9w cm9wZXJ0aWVzX2RhdGFiYXNlX2Vycm9yKHNlbGYsIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2Nr KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyBwcm9wZXJ0aWVzIG9mIGFu IGV4dGVybmFsIHRhYmxlCisgICAgICAgIEFuZCBhIFNRTCBlcnJvciBoYXBwZW5zLAorICAgICAg ICBJdCByYWlzZXMgZXhjZXB0aW9uIHdpdGggdGhlIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgIiIi CisgICAgICAgIGNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9j aygpKQorICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1cm5fdmFsdWUgPSAo RmFsc2UsICdTb21lIGVycm9yJykKICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdp Y01vY2soKQogCi0gICAgICAgIGV4dGVybmFsX3RhYmxlc192aWV3ID0gUHJvcGVydGllcygKKyAg ICAgICAgc3ViamVjdCA9IFByb3BlcnRpZXMoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVf bW9jaywKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICAnc29tZS9zcWwvbG9j YXRpb24vJworICAgICAgICApCisKKyAgICAgICAgKGxhbWJkYTogc3ViamVjdC5yZXRyaWV2ZSh0 YWJsZV9vaWQ9MTEpKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5yYWlzZXMoUHJvcGVydGllc0V4 Y2VwdGlvbikKKworICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dp dGgoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NvbWUvc3FsL2xvY2F0aW9u LycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0 aW9uLnNxbCcsCisgICAgICAgICAgICB0YWJsZV9vaWQ9MTEKKyAgICAgICAgKQorCisgICAgICAg IGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAg ICAgICdTb21lIGVycm9yJworICAgICAgICApCisKKyAgICBkZWYgdGVzdF9wcm9wZXJ0aWVzXzQw NF9lcnJvcihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmV0cmlldmluZyB0aGUg cHJvcGVydGllcyBvZiBhIGV4dGVybmFsIHRhYmxlCisgICAgICAgIEFuZCB0YWJsZSBpcyBub3Qg Zm91bmQsCisgICAgICAgIEl0IHJhaXNlcyBleGNlcHRpb24KKyAgICAgICAgIiIiCisgICAgICAg IGNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2ljTW9jaygpKQorICAg ICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1cm5fdmFsdWUgPSAoVHJ1ZSwgZGlj dChyb3dzPVtdKSkKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdpY01vY2soKQor CisgICAgICAgIHN1YmplY3QgPSBQcm9wZXJ0aWVzKAogICAgICAgICAgICAgcmVuZGVyX3RlbXBs YXRlX21vY2ssCi0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24sCisgICAgICAgICAgICBjb25u ZWN0aW9uLAogICAgICAgICAgICAgJ3NvbWUvc3FsL2xvY2F0aW9uLycKICAgICAgICAgKQogCi0g ICAgICAgIHJlc3VsdCA9IE5vbmUKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXN1bHQg PSBleHRlcm5hbF90YWJsZXNfdmlldy5yZXRyaWV2ZSgqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVy cykKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ2V4cGVjdGVkX3JhaXNlX2V4Y2VwdGlv bicpOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnTm8gZXhjZXB0aW9uIHdhcyByYWlzZWQn KQotICAgICAgICBleGNlcHQgUHJvcGVydGllc0V4Y2VwdGlvbiBhcyBleGNlcHRpb246Ci0gICAg ICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9yYWlzZV9leGNlcHRpb24nKToKLSAg ICAgICAgICAgICAgICBpZiB0eXBlKGV4Y2VwdGlvbikgaXMgc2VsZi5leHBlY3RlZF9yYWlzZV9l eGNlcHRpb246Ci0gICAgICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2Nh bGxlZF93aXRoJyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3JfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg KnNlbGYuZXhwZWN0ZWRfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoCi0gICAgICAg ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAgICAgICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxl ZCgpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5mYWls KCdXcm9uZyBleGNlcHRpb24gdHlwZTogJyArIHN0cihleGNlcHRpb24pKQotICAgICAgICAgICAg ZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBleGNlcHRpb24KLQotICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICdleHBlY3RlZF9yZXN1bHQnKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwocmVzdWx0LCBzZWxmLmV4cGVjdGVkX3Jlc3VsdCkKKyAgICAgICAgKGxhbWJkYTogc3ViamVj dC5yZXRyaWV2ZSh0YWJsZV9vaWQ9MTEpKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5yYWlzZXMo UHJvcGVydGllc0V4Y2VwdGlvbikKIAogICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3Nl cnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAqKnNlbGYuZXhwZWN0X3JlbmRlcl90ZW1wbGF0 ZV9jYWxsZWRfd2l0aAorICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzb21lL3Nx bC9sb2NhdGlvbi8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF90YWJs ZV9pbmZvcm1hdGlvbi5zcWwnLAorICAgICAgICAgICAgdGFibGVfb2lkPTExCiAgICAgICAgICkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9yZXZlcnNlX2VuZ2luZWVyX2RkbC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9yZXZlcnNlX2VuZ2luZWVyX2RkbC5weQppbmRleCBi MDkwNDBmNi4uZjIwNjExNDkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlcm5hbF90YWJsZXMvdGVzdHMvdGVzdF9yZXZl cnNlX2VuZ2luZWVyX2RkbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZXJuYWxfdGFibGVzL3Rlc3RzL3Rlc3RfcmV2ZXJzZV9l bmdpbmVlcl9kZGwucHkKQEAgLTksMTAgKzksMTEgQEAKIAogaW1wb3J0IHN5cwogCitmcm9tIGdy YXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMgXAogICAgIC5leHRlcm5hbF90YWJsZXMucmV2ZXJzZV9lbmdpbmVl cl9kZGwgaW1wb3J0IFwKICAgICBSZXZlcnNlRW5naW5lZXJEREwsIFJldmVyc2VFbmdpbmVlckRE TEV4Y2VwdGlvbgotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBpbXBv cnQgTWFnaWNNb2NrCkBAIC0yMCwyNDIgKzIxLDIxNSBAQCBlbHNlOgogICAgIGZyb20gdW5pdHRl c3QubW9jayBpbXBvcnQgTWFnaWNNb2NrCiAKIAotY2xhc3MgVGVzdFJldmVyc2VFbmdpbmVlckRE TChCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJyNleGVj dXRlIFdoZW4gcmV0cml2aW5nIHRoZSBEREwgZm9yIHRoZSBjcmVhdGlvbiBvZiBleHRlcm5hbCAn Ci0gICAgICAgICAndGFibGVzLCAnCi0gICAgICAgICAnaXQgcmV0cmlldmVzIGluZm9ybWF0aW9u IG9mIHRoZSBjb2x1bW5zIGFuZCB0aGUgdGFibGVzICcKLSAgICAgICAgICdhbmQgZ2VuZXJhdGUg dGhlIFNRTCB0byBjcmVhdGUgdGhlIHRhYmxlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAg ICAgdGVzdF90eXBlPSdleGVjdXRlJywKLSAgICAgICAgICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJz PWRpY3QodGFibGVfb2lkPTE0KSwKLSAgICAgICAgICAgICBmaW5kX2NvbHVtbnNfcmV0dXJuX3Zh bHVlPWRpY3Qoc29tZXZhbHVlPSd2YWx1ZScpLAotICAgICAgICAgICAgIHRhYmxlX2luZm9ybWF0 aW9uX3JldHVybl92YWx1ZT1kaWN0KHNvbWVvdGhlcj0nYmFtbScpLAorY2xhc3MgVGVzdFJldmVy c2VFbmdpbmVlckRETDoKKyAgICBkZWYgdGVzdF9leGVjdXRlKHNlbGYpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiByZXRyaXZpbmcgdGhlIERETCBmb3IgdGhlIGNyZWF0aW9uIG9mIGV4dGVy bmFsIHRhYmxlcywKKyAgICAgICAgSXQgcmV0cmlldmVzIGluZm9ybWF0aW9uIG9mIHRoZSBjb2x1 bW5zIGFuZCB0aGUgdGFibGVzCisgICAgICAgIEFuZCBnZW5lcmF0ZSB0aGUgU1FMIHRvIGNyZWF0 ZSB0aGUgdGFibGUKKyAgICAgICAgIiIiCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrID0g TWFnaWNNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJy YXk9TWFnaWNNb2NrKCkpCisgICAgICAgIHN1YmplY3QgPSBSZXZlcnNlRW5naW5lZXJEREwoCisg ICAgICAgICAgICAnc3FsLyNncGRiIzgwMzIzIy8nLAorICAgICAgICAgICAgcmVuZGVyX3RlbXBs YXRlX21vY2ssCisgICAgICAgICAgICBjb25uZWN0aW9uLAorICAgICAgICAgICAgMSwgMiwgMykK KyAgICAgICAgc3ViamVjdC5maW5kX2NvbHVtbnMgPSBNYWdpY01vY2socmV0dXJuX3ZhbHVlPWRp Y3Qoc29tZXZhbHVlPSd2YWx1ZScpKQorICAgICAgICBzdWJqZWN0LnRhYmxlX2luZm9ybWF0aW9u ID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWRpY3Qoc29tZW90aGVyPSdi YW1tJykpCisgICAgICAgIHN1YmplY3QuZXhlY3V0ZSh0YWJsZV9vaWQ9MTQpCisKKyAgICAgICAg c3ViamVjdC5maW5kX2NvbHVtbnMuYXNzZXJ0X2NhbGxlZF93aXRoKDE0KQorICAgICAgICBzdWJq ZWN0LnRhYmxlX2luZm9ybWF0aW9uLmFzc2VydF9jYWxsZWRfd2l0aCgxNCkKKyAgICAgICAgcmVu ZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgdGVtcGxh dGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMjL2NyZWF0ZS5zcWwnLAorICAgICAgICAg ICAgdGFibGU9ZGljdCgKKyAgICAgICAgICAgICAgICBzb21lb3RoZXI9J2JhbW0nLAorICAgICAg ICAgICAgICAgIGNvbHVtbnM9ZGljdChzb21ldmFsdWU9J3ZhbHVlJykKKyAgICAgICAgICAgICkK KyAgICAgICAgKQogCi0gICAgICAgICAgICAgZXhwZWN0X2ZpbmRfY29sdW1uc19jYWxsZWRfd2l0 aD0xNCwKLSAgICAgICAgICAgICBleHBlY3RfdGFibGVfaW5mb3JtYXRpb25fY2FsbGVkX3dpdGg9 MTQsCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aD1kaWN0 KAotICAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1lX29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMy MyMvY3JlYXRlLnNxbCcsCi0gICAgICAgICAgICAgICAgIHRhYmxlPWRpY3QoCi0gICAgICAgICAg ICAgICAgICAgICBzb21lb3RoZXI9J2JhbW0nLAotICAgICAgICAgICAgICAgICAgICAgY29sdW1u cz1kaWN0KHNvbWV2YWx1ZT0ndmFsdWUnKQotICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg ICAgKQotICAgICAgICAgKSksCi0gICAgICAgICgnI2ZpbmRfY29sdW1ucyBXaGVuIGFuIGV4dGVy bmFsIHRhYmxlIGV4aXN0cywgJwotICAgICAgICAgJ2FuZCBoYXZlIDMgY29sdW1ucywgJwotICAg ICAgICAgJ2l0IHJldHVybnMgYSBsaXN0IHdpdGggMSBvYmplY3QgdGhhdCBhcyB0aGUgdGFibGUg bmFtZSB0byBpbmhlcml0ICcKLSAgICAgICAgICdmcm9tJywKLSAgICAgICAgIGRpY3QoCi0gICAg ICAgICAgICAgdGVzdF90eXBlPSdmaW5kX2NvbHVtbnMnLAotICAgICAgICAgICAgIGZ1bmN0aW9u X3BhcmFtZXRlcnM9eyd0YWJsZV9vaWQnOiAxMjN9LAotICAgICAgICAgICAgIGV4ZWN1dGVfMmRh cnJheV9yZXR1cm5fdmFsdWU9KFRydWUsIGRpY3Qocm93cz1bCi0gICAgICAgICAgICAgICAgIHsK LSAgICAgICAgICAgICAgICAgICAgICduYW1lJzogJ2NvbHVtbl8xJywKLSAgICAgICAgICAgICAg ICAgICAgICdjbHR5cGUnOiAndGV4dCcsCi0gICAgICAgICAgICAgICAgICAgICAnaW5oZXJpdGVk RnJvbSc6ICdvdGhlcl90YWJsZScsCi0gICAgICAgICAgICAgICAgICAgICAnaW5oZXJpdGVkaWQn OiAnMTIzNCcsCi0gICAgICAgICAgICAgICAgIH0sIHsKLSAgICAgICAgICAgICAgICAgICAgICdu YW1lJzogJ2NvbHVtbl8yJywKLSAgICAgICAgICAgICAgICAgICAgICdjbHR5cGUnOiAnaW50JywK LSAgICAgICAgICAgICAgICAgICAgICdpbmhlcml0ZWRGcm9tJzogJ290aGVyX3RhYmxlJywKLSAg ICAgICAgICAgICAgICAgICAgICdpbmhlcml0ZWRpZCc6ICcxMjM0JywKLSAgICAgICAgICAgICAg ICAgfSwgewotICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzMnLAotICAgICAg ICAgICAgICAgICAgICAgJ2NsdHlwZSc6ICdudW1lcmljJywKLSAgICAgICAgICAgICAgICAgICAg ICdpbmhlcml0ZWRGcm9tJzogJ290aGVyX3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgICdp bmhlcml0ZWRpZCc6ICcxMjM0JywKLSAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgIF0p KSwKKyAgICBkZWYgdGVzdF9maW5kX2NvbHVtbnNfd2l0aF9leHRlcm5hbF90YWJsZXMoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGFuIGV4dGVybmFsIHRhYmxlIGV4aXN0cyBhbmQg aGF2ZSAzIGNvbHVtbnMsCisgICAgICAgIEl0IHJldHVybnMgYSBsaXN0IHdpdGggMSBvYmplY3Qg dGhhdCBhcyB0aGUgdGFibGUgbmFtZSB0byBpbmhlcml0IGZyb20KKyAgICAgICAgIiIiCisgICAg ICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTWFnaWNNb2NrKCkKKyAgICAgICAgY29ubmVjdGlv biA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpCisgICAgICAgIGNvbm5l Y3Rpb24uZXhlY3V0ZV8yZGFycmF5LnJldHVybl92YWx1ZSA9IChUcnVlLCBkaWN0KHJvd3M9Wwor ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2NvbHVtbl8xJywKKyAgICAg ICAgICAgICAgICAnY2x0eXBlJzogJ3RleHQnLAorICAgICAgICAgICAgICAgICdpbmhlcml0ZWRG cm9tJzogJ290aGVyX3RhYmxlJywKKyAgICAgICAgICAgICAgICAnaW5oZXJpdGVkaWQnOiAnMTIz NCcsCisgICAgICAgICAgICB9LCB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzIn LAorICAgICAgICAgICAgICAgICdjbHR5cGUnOiAnaW50JywKKyAgICAgICAgICAgICAgICAnaW5o ZXJpdGVkRnJvbSc6ICdvdGhlcl90YWJsZScsCisgICAgICAgICAgICAgICAgJ2luaGVyaXRlZGlk JzogJzEyMzQnLAorICAgICAgICAgICAgfSwgeworICAgICAgICAgICAgICAgICduYW1lJzogJ2Nv bHVtbl8zJywKKyAgICAgICAgICAgICAgICAnY2x0eXBlJzogJ251bWVyaWMnLAorICAgICAgICAg ICAgICAgICdpbmhlcml0ZWRGcm9tJzogJ290aGVyX3RhYmxlJywKKyAgICAgICAgICAgICAgICAn aW5oZXJpdGVkaWQnOiAnMTIzNCcsCisgICAgICAgICAgICB9CisgICAgICAgIF0pKQorCisgICAg ICAgIHN1YmplY3QgPSBSZXZlcnNlRW5naW5lZXJEREwoCisgICAgICAgICAgICAnc3FsLyNncGRi IzgwMzIzIy8nLAorICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAgICAgICAg ICBjb25uZWN0aW9uLAorICAgICAgICAgICAgMSwgMiwgMykKIAotICAgICAgICAgICAgIGV4cGVj dF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgdGVt cGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMjL2dldF9jb2x1bW5zLnNxbCcsCi0g ICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMjMKLSAgICAgICAgICAgICApLAotICAgICAgICAg ICAgIGV4cGVjdGVkX3Jlc3VsdD1bCi0gICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg ICAgICAgICduYW1lJzogJ2NvbHVtbl8xJywKLSAgICAgICAgICAgICAgICAgICAgICd0eXBlJzog J3RleHQnCi0gICAgICAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAgICAgIHsKLSAgICAgICAg ICAgICAgICAgICAgICduYW1lJzogJ2NvbHVtbl8yJywKLSAgICAgICAgICAgICAgICAgICAgICd0 eXBlJzogJ2ludCcKLSAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICAgewotICAg ICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1uXzMnLAotICAgICAgICAgICAgICAgICAg ICAgJ3R5cGUnOiAnbnVtZXJpYycKLSAgICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICBd LAotICAgICAgICAgKSksCi0gICAgICAgICgnI2ZpbmRfY29sdW1ucyBXaGVuIGVycm9yIGhhcHBl bnMgd2hpbGUgcmV0cmlldmluZyAnCi0gICAgICAgICAnY29sdW1uIGluZm9ybWF0aW9uLCAnCi0g ICAgICAgICAnaXQgcmFpc2UgYW4gZXhjZXB0aW9uJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAg ICAgICAgdGVzdF90eXBlPSdmaW5kX2NvbHVtbnMnLAotICAgICAgICAgICAgIGZ1bmN0aW9uX3Bh cmFtZXRlcnM9eyd0YWJsZV9vaWQnOiAxMjN9LAotICAgICAgICAgICAgIGV4ZWN1dGVfMmRhcnJh eV9yZXR1cm5fdmFsdWU9KEZhbHNlLCAnU29tZSBlcnJvciBtZXNzYWdlJyksCisgICAgICAgIHJl c3VsdCA9IHN1YmplY3QuZmluZF9jb2x1bW5zKHRhYmxlX29pZD0xMjMpCiAKLSAgICAgICAgICAg ICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAg ICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy9nZXRfY29sdW1ucy5z cWwnLAotICAgICAgICAgICAgICAgICB0YWJsZV9vaWQ9MTIzCi0gICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgICBleHBlY3RlZF9leGNlcHRpb249UmV2ZXJzZUVuZ2luZWVyRERMRXhjZXB0aW9u KAotICAgICAgICAgICAgICAgICAnU29tZSBlcnJvciBtZXNzYWdlJyksCi0gICAgICAgICApCi0g ICAgICAgICApLAotICAgICAgICAoJyN0YWJsZV9pbmZvcm1hdGlvbiBXaGVuIGVycm9yIGhhcHBl bnMgd2hpbGUgcmV0cmlldmluZyAnCi0gICAgICAgICAndGFibGUgZ2VuZXJpYyBpbmZvcm1hdGlv biwgJwotICAgICAgICAgJ2l0IHJhaXNlIGFuIGV4Y2VwdGlvbicsCi0gICAgICAgICBkaWN0KAot ICAgICAgICAgICAgIHRlc3RfdHlwZT0ndGFibGVfaW5mb3JtYXRpb24nLAotICAgICAgICAgICAg IGZ1bmN0aW9uX3BhcmFtZXRlcnM9eyd0YWJsZV9vaWQnOiAxMjN9LAotICAgICAgICAgICAgIGV4 ZWN1dGVfMmRhcnJheV9yZXR1cm5fdmFsdWU9KEZhbHNlLCAnU29tZSBlcnJvciBtZXNzYWdlJyks CisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAg ICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy9nZXRfY29sdW1u cy5zcWwnLAorICAgICAgICAgICAgdGFibGVfb2lkPTEyMworICAgICAgICApCiAKLSAgICAgICAg ICAgICBleHBlY3RfcmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAg ICAgICAgIHRlbXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy8nCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNx bCcsCi0gICAgICAgICAgICAgICAgIHRhYmxlX29pZD0xMjMKLSAgICAgICAgICAgICApLAotICAg ICAgICAgICAgIGV4cGVjdGVkX2V4Y2VwdGlvbj1SZXZlcnNlRW5naW5lZXJERExFeGNlcHRpb24o Ci0gICAgICAgICAgICAgICAgICdTb21lIGVycm9yIG1lc3NhZ2UnKSwKLSAgICAgICAgICkKLSAg ICAgICAgICksCi0gICAgICAgICgnI3RhYmxlX2luZm9ybWF0aW9uIFdoZW4gY2Fubm90IGZpbmQg dGhlIHRhYmxlLCAnCi0gICAgICAgICAnaXQgcmFpc2UgYW4gZXhjZXB0aW9uJywKLSAgICAgICAg IGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSd0YWJsZV9pbmZvcm1hdGlvbicsCi0gICAg ICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz17J3RhYmxlX29pZCc6IDEyM30sCi0gICAgICAg ICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgeydyb3dzJzogW119KSwK KyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKFsKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgICAnbmFtZSc6ICdjb2x1bW5fMScsCisgICAgICAgICAgICAgICAgJ3R5cGUn OiAndGV4dCcKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg J25hbWUnOiAnY29sdW1uXzInLAorICAgICAgICAgICAgICAgICd0eXBlJzogJ2ludCcKKyAgICAg ICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ25hbWUnOiAnY29sdW1u XzMnLAorICAgICAgICAgICAgICAgICd0eXBlJzogJ251bWVyaWMnCisgICAgICAgICAgICB9LAor ICAgICAgICBdKQorCisgICAgZGVmIHRlc3RfZmluZF9jb2x1bW5zX3dpdGhfZXJyb3Ioc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICAgICAgV2hlbiBlcnJvciBoYXBwZW5zIHdoaWxlIHJldHJp ZXZpbmcgY29sdW1uIGluZm9ybWF0aW9uLAorICAgICAgICAgICAgSXQgcmFpc2UgYW4gZXhjZXB0 aW9uCisgICAgICAgICIiIgorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jayA9IE1hZ2ljTW9j aygpCisgICAgICAgIGNvbm5lY3Rpb24gPSBNYWdpY01vY2soZXhlY3V0ZV8yZGFycmF5PU1hZ2lj TW9jaygpKQorICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1cm5fdmFsdWUg PSAoRmFsc2UsICdTb21lIGVycm9yIG1lc3NhZ2UnKQorCisgICAgICAgIHN1YmplY3QgPSBSZXZl cnNlRW5naW5lZXJEREwoCisgICAgICAgICAgICAnc3FsLyNncGRiIzgwMzIzIy8nLAorICAgICAg ICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAgICAgICAgICBjb25uZWN0aW9uLAorICAg ICAgICAgICAgMSwgMiwgMykKIAotICAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVtcGxhdGVf Y2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0 PSdzcWwvI2dwZGIjODAzMjMjLycKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdnZXRfdGFibGVfaW5mb3JtYXRpb24uc3FsJywKLSAgICAgICAgICAgICAgICAgdGFibGVf b2lkPTEyMwotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfZXhjZXB0aW9u PVJldmVyc2VFbmdpbmVlckRETEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgJ1RhYmxlIG5v dCBmb3VuZCcpLAotICAgICAgICAgKSksCi0gICAgICAgICgnI3RhYmxlX2luZm9ybWF0aW9uIFdo ZW4gcmV0cmlldmluZyBnZW5lcmljIGluZm9ybWF0aW9uICcKLSAgICAgICAgICdhYm91dCBhIFdl YiB0YWJsZSwgJwotICAgICAgICAgJ2l0IHJldHVybnMgdGhlIHRhYmxlIGluZm9ybWF0aW9uJywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdF90eXBlPSd0YWJsZV9pbmZvcm1hdGlv bicsCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz17J3RhYmxlX29pZCc6IDEyM30s Ci0gICAgICAgICAgICAgZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZT0oVHJ1ZSwgZGljdChy b3dzPVsKLSAgICAgICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICAgICAgJ3VyaWxvY2F0 aW9uJzogJ3todHRwOi8vc29tZXVybC5jb219JywKLSAgICAgICAgICAgICAgICAgICAgICdleGVj bG9jYXRpb24nOiBbJ0FMTF9TRUdNRU5UUyddLAotICAgICAgICAgICAgICAgICAgICAgJ2ZtdHR5 cGUnOiAnYScsCi0gICAgICAgICAgICAgICAgICAgICAnZm10b3B0cyc6ICdkZWxpbWl0ZXIgXCcs XCcgbnVsbCBcJ1wnICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VzY2FwZSBc JyJcJyBxdW90ZSBcJyJcJycsCi0gICAgICAgICAgICAgICAgICAgICAnY29tbWFuZCc6IE5vbmUs Ci0gICAgICAgICAgICAgICAgICAgICAncmVqZWN0bGltaXQnOiBOb25lLAotICAgICAgICAgICAg ICAgICAgICAgJ3JlamVjdGxpbWl0dHlwZSc6IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAn ZXJydGJsbmFtZSc6IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAnZXJyb3J0b2ZpbGUnOiBO b25lLAotICAgICAgICAgICAgICAgICAgICAgJ3BnX2VuY29kaW5nX3RvX2NoYXInOiAnVVRGOCcs Ci0gICAgICAgICAgICAgICAgICAgICAnd3JpdGFibGUnOiBGYWxzZSwKLSAgICAgICAgICAgICAg ICAgICAgICdvcHRpb25zJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICdkaXN0cmlidXRp b24nOiBOb25lLAotICAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAnc29tZV90YWJsZScsCi0g ICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJzogJ3B1YmxpYycKLSAgICAgICAgICAgICAg ICAgfQotICAgICAgICAgICAgIF0pKSwKKyAgICAgICAgKGxhbWJkYTogc3ViamVjdC5maW5kX2Nv bHVtbnModGFibGVfb2lkPTEyMykpIHwgXAorICAgICAgICAgICAgc2hvdWxkLnJhaXNlcyhSZXZl cnNlRW5naW5lZXJERExFeGNlcHRpb24pCiAKLSAgICAgICAgICAgICBleHBlY3RfcmVuZGVyX3Rl bXBsYXRlX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIHRlbXBsYXRlX25hbWVf b3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy8nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCi0gICAgICAgICAgICAgICAg IHRhYmxlX29pZD0xMjMKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jl c3VsdD17Ci0gICAgICAgICAgICAgICAgICd1cmlzJzogWydodHRwOi8vc29tZXVybC5jb20nXSwK LSAgICAgICAgICAgICAgICAgJ2lzV2ViJzogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgJ2V4ZWN1 dGlvbkxvY2F0aW9uJzogZGljdCh0eXBlPSdhbGxfc2VnbWVudHMnLCB2YWx1ZT1Ob25lKSwKLSAg ICAgICAgICAgICAgICAgJ2Zvcm1hdFR5cGUnOiAnYXZybycsCi0gICAgICAgICAgICAgICAgICdm b3JtYXRPcHRpb25zJzogJ2RlbGltaXRlciA9ICQkLCQkLGVzY2FwZSA9ICQkIiQkLCcKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCA9ICQkJCQscXVvdGUgPSAkJCIkJCcs Ci0gICAgICAgICAgICAgICAgICdjb21tYW5kJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgJ3Jl amVjdExpbWl0JzogTm9uZSwKLSAgICAgICAgICAgICAgICAgJ3JlamVjdExpbWl0VHlwZSc6IE5v bmUsCi0gICAgICAgICAgICAgICAgICdlcnJvclRhYmxlTmFtZSc6IE5vbmUsCi0gICAgICAgICAg ICAgICAgICdlcnJvVG9GaWxlJzogTm9uZSwKLSAgICAgICAgICAgICAgICAgJ3BnRW5jb2RpbmdU b0NoYXInOiAnVVRGOCcsCi0gICAgICAgICAgICAgICAgICd3cml0YWJsZSc6IEZhbHNlLAotICAg ICAgICAgICAgICAgICAnb3B0aW9ucyc6IE5vbmUsCi0gICAgICAgICAgICAgICAgICdkaXN0cmli dXRpb24nOiBOb25lLAotICAgICAgICAgICAgICAgICAnbmFtZSc6ICdzb21lX3RhYmxlJywKLSAg ICAgICAgICAgICAgICAgJ25hbWVzcGFjZSc6ICdwdWJsaWMnCi0gICAgICAgICAgICAgfSwKLSAg ICAgICAgICkpLAotICAgIF0KKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2Nh bGxlZF93aXRoKAorICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIj ODAzMjMjL2dldF9jb2x1bW5zLnNxbCcsCisgICAgICAgICAgICB0YWJsZV9vaWQ9MTIzCisgICAg ICAgICkKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAg ICBzdXBlcihUZXN0UmV2ZXJzZUVuZ2luZWVyRERMLCBzZWxmKS5fX2luaXRfXygqYXJncywgKipr d2FyZ3MpCi0gICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IE5vbmUKLSAgICAgICAgc2VsZi5zdWJq ZWN0ID0gTm9uZQotICAgICAgICBzZWxmLnJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTm9uZQorICAg IGRlZiB0ZXN0X3RhYmxlX2luZm9ybWF0aW9uX3dpdGhfZXJyb3Ioc2VsZik6CisgICAgICAgICIi IgorICAgICAgICAgICAgV2hlbiBlcnJvciBoYXBwZW5zIHdoaWxlIHJldHJpZXZpbmcgdGFibGUg Z2VuZXJpYyBpbmZvcm1hdGlvbiwKKyAgICAgICAgICAgIEl0IHJhaXNlIGFuIGV4Y2VwdGlvbgor ICAgICAgICAiIiIKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sgPSBNYWdpY01vY2soKQor ICAgICAgICBjb25uZWN0aW9uID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2so KSkKKyAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0gKEZh bHNlLCAnU29tZSBlcnJvciBtZXNzYWdlJykKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICBzZWxmLnJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTWFnaWNNb2NrKCkKLSAgICAgICAgc2Vs Zi5jb25uZWN0aW9uID0gTWFnaWNNb2NrKGV4ZWN1dGVfMmRhcnJheT1NYWdpY01vY2soKSkKLSAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXhlY3V0ZV8yZGFycmF5X3JldHVybl92YWx1ZScpOgot ICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5yZXR1cm5fdmFsdWUg PSBcCi0gICAgICAgICAgICAgICAgc2VsZi5leGVjdXRlXzJkYXJyYXlfcmV0dXJuX3ZhbHVlCi0g ICAgICAgIHNlbGYuc3ViamVjdCA9IFJldmVyc2VFbmdpbmVlckRETCgKKyAgICAgICAgc3ViamVj dCA9IFJldmVyc2VFbmdpbmVlckRETCgKICAgICAgICAgICAgICdzcWwvI2dwZGIjODAzMjMjLycs Ci0gICAgICAgICAgICBzZWxmLnJlbmRlcl90ZW1wbGF0ZV9tb2NrLAotICAgICAgICAgICAgc2Vs Zi5jb25uZWN0aW9uLAorICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAgICAg ICAgICBjb25uZWN0aW9uLAogICAgICAgICAgICAgMSwgMiwgMykKLSAgICAgICAgaWYgc2VsZi50 ZXN0X3R5cGUgPT0gJ2ZpbmRfY29sdW1ucyc6Ci0gICAgICAgICAgICBzZWxmLl9fdGVzdF9maW5k X2NvbHVtbnMoKQotICAgICAgICBlbGlmIHNlbGYudGVzdF90eXBlID09ICd0YWJsZV9pbmZvcm1h dGlvbic6Ci0gICAgICAgICAgICBzZWxmLl9fdGVzdF90YWJsZV9pbmZvcm1hdGlvbigpCi0gICAg ICAgIGVsaWYgc2VsZi50ZXN0X3R5cGUgPT0gJ2V4ZWN1dGUnOgotICAgICAgICAgICAgc2VsZi5f X3Rlc3RfZXhlY3V0ZSgpCiAKLSAgICBkZWYgX190ZXN0X2ZpbmRfY29sdW1ucyhzZWxmKToKLSAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZXhwZWN0ZWRfZXhjZXB0aW9uJyk6Ci0gICAgICAgICAg ICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5zdWJqZWN0LmZpbmRfY29sdW1ucygqKnNlbGYu ZnVuY3Rpb25fcGFyYW1ldGVycykKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0V4Y2VwdGlv biBub3QgcmFpc2UnKQotICAgICAgICAgICAgZXhjZXB0IFJldmVyc2VFbmdpbmVlckRETEV4Y2Vw dGlvbiBhcyBleGNlcHRpb246Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHIo ZXhjZXB0aW9uKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmV4 cGVjdGVkX2V4Y2VwdGlvbikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHQgPSBz ZWxmLnN1YmplY3QuZmluZF9jb2x1bW5zKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQotICAg ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmV4cGVjdGVkX3Jlc3VsdCwgcmVzdWx0KQor ICAgICAgICAobGFtYmRhOiBzdWJqZWN0LnRhYmxlX2luZm9ybWF0aW9uKHRhYmxlX29pZD0xMjMp KSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5yYWlzZXMoUmV2ZXJzZUVuZ2luZWVyRERMRXhjZXB0 aW9uKQogCi0gICAgICAgIHNlbGYucmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93 aXRoKAotICAgICAgICAgICAgKipzZWxmLmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfY2FsbGVkX3dp dGgKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAg ICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWwvI2dwZGIjODAzMjMjL2dldF90YWJs ZV9pbmZvcm1hdGlvbi5zcWwnLAorICAgICAgICAgICAgdGFibGVfb2lkPTEyMwogICAgICAgICAp CiAKLSAgICBkZWYgX190ZXN0X3RhYmxlX2luZm9ybWF0aW9uKHNlbGYpOgotICAgICAgICBpZiBo YXNhdHRyKHNlbGYsICdleHBlY3RlZF9leGNlcHRpb24nKToKLSAgICAgICAgICAgIHRyeToKLSAg ICAgICAgICAgICAgICBzZWxmLnN1YmplY3QudGFibGVfaW5mb3JtYXRpb24oKipzZWxmLmZ1bmN0 aW9uX3BhcmFtZXRlcnMpCi0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdFeGNlcHRpb24gbm90 IHJhaXNlJykKLSAgICAgICAgICAgIGV4Y2VwdCBSZXZlcnNlRW5naW5lZXJERExFeGNlcHRpb24g YXMgZXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyKGV4Y2Vw dGlvbiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5leHBlY3Rl ZF9leGNlcHRpb24pKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5z dWJqZWN0LnRhYmxlX2luZm9ybWF0aW9uKCoqc2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzKQotICAg ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmV4cGVjdGVkX3Jlc3VsdCwgcmVzdWx0KQor ICAgIGRlZiB0ZXN0X3RhYmxlX2luZm9ybWF0aW9uX29uX3RhYmxlX25vdF9mb3VuZChzZWxmKToK KyAgICAgICAgIiIiCisgICAgICAgICAgICBXaGVuIGNhbm5vdCBmaW5kIHRhYmxlCisgICAgICAg ICAgICBJdCByYWlzZSBhbiBleGNlcHRpb24KKyAgICAgICAgIiIiCisgICAgICAgIHJlbmRlcl90 ZW1wbGF0ZV9tb2NrID0gTWFnaWNNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbiA9IE1hZ2ljTW9j ayhleGVjdXRlXzJkYXJyYXk9TWFnaWNNb2NrKCkpCisgICAgICAgIGNvbm5lY3Rpb24uZXhlY3V0 ZV8yZGFycmF5LnJldHVybl92YWx1ZSA9IChUcnVlLCB7J3Jvd3MnOiBbXX0pCisKKyAgICAgICAg c3ViamVjdCA9IFJldmVyc2VFbmdpbmVlckRETCgKKyAgICAgICAgICAgICdzcWwvI2dwZGIjODAz MjMjLycsCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jaywKKyAgICAgICAgICAgIGNv bm5lY3Rpb24sCisgICAgICAgICAgICAxLCAyLCAzKQorCisgICAgICAgIChsYW1iZGE6IHN1Ympl Y3QudGFibGVfaW5mb3JtYXRpb24odGFibGVfb2lkPTEyMykpIHwgXAorICAgICAgICAgICAgc2hv dWxkLnJhaXNlcyhSZXZlcnNlRW5naW5lZXJERExFeGNlcHRpb24pCiAKLSAgICAgICAgc2VsZi5y ZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAqKnNl bGYuZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9jYWxsZWRfd2l0aAorICAgICAgICByZW5kZXJfdGVt cGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICB0ZW1wbGF0ZV9uYW1l X29yX2xpc3Q9J3NxbC8jZ3BkYiM4MDMyMyMvZ2V0X3RhYmxlX2luZm9ybWF0aW9uLnNxbCcsCisg ICAgICAgICAgICB0YWJsZV9vaWQ9MTIzCiAgICAgICAgICkKIAotICAgIGRlZiBfX3Rlc3RfZXhl Y3V0ZShzZWxmKToKLSAgICAgICAgc2VsZi5zdWJqZWN0LmZpbmRfY29sdW1ucyA9IE1hZ2ljTW9j aygKLSAgICAgICAgICAgIHJldHVybl92YWx1ZT1zZWxmLmZpbmRfY29sdW1uc19yZXR1cm5fdmFs dWUpCi0gICAgICAgIHNlbGYuc3ViamVjdC50YWJsZV9pbmZvcm1hdGlvbiA9IE1hZ2ljTW9jaygK LSAgICAgICAgICAgIHJldHVybl92YWx1ZT1zZWxmLnRhYmxlX2luZm9ybWF0aW9uX3JldHVybl92 YWx1ZSkKKyAgICBkZWYgdGVzdF90YWJsZV9pbmZvcm1hdGlvbihzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgICAgICAgV2hlbiByZXRyaWV2aW5nIGdlbmVyaWMgaW5mb3JtYXRpb24gYWJvdXQg YSBXZWIgdGFibGUsCisgICAgICAgICAgICAgSXQgcmV0dXJucyB0aGUgdGFibGUgaW5mb3JtYXRp b24KKyAgICAgICAgIiIiCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrID0gTWFnaWNNb2Nr KCkKKyAgICAgICAgY29ubmVjdGlvbiA9IE1hZ2ljTW9jayhleGVjdXRlXzJkYXJyYXk9TWFnaWNN b2NrKCkpCisgICAgICAgIGNvbm5lY3Rpb24uZXhlY3V0ZV8yZGFycmF5LnJldHVybl92YWx1ZSA9 IChUcnVlLCBkaWN0KHJvd3M9WworICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICd1cmls b2NhdGlvbic6ICd7aHR0cDovL3NvbWV1cmwuY29tfScsCisgICAgICAgICAgICAgICAgJ2V4ZWNs b2NhdGlvbic6IFsnQUxMX1NFR01FTlRTJ10sCisgICAgICAgICAgICAgICAgJ2ZtdHR5cGUnOiAn YScsCisgICAgICAgICAgICAgICAgJ2ZtdG9wdHMnOiAnZGVsaW1pdGVyIFwnLFwnIG51bGwgXCdc JyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXNjYXBlIFwnIlwnIHF1b3RlIFwnIlwn JywKKyAgICAgICAgICAgICAgICAnY29tbWFuZCc6IE5vbmUsCisgICAgICAgICAgICAgICAgJ3Jl amVjdGxpbWl0JzogTm9uZSwKKyAgICAgICAgICAgICAgICAncmVqZWN0bGltaXR0eXBlJzogTm9u ZSwKKyAgICAgICAgICAgICAgICAnZXJydGJsbmFtZSc6IE5vbmUsCisgICAgICAgICAgICAgICAg J2Vycm9ydG9maWxlJzogTm9uZSwKKyAgICAgICAgICAgICAgICAncGdfZW5jb2RpbmdfdG9fY2hh cic6ICdVVEY4JywKKyAgICAgICAgICAgICAgICAnd3JpdGFibGUnOiBGYWxzZSwKKyAgICAgICAg ICAgICAgICAnb3B0aW9ucyc6IE5vbmUsCisgICAgICAgICAgICAgICAgJ2Rpc3RyaWJ1dGlvbic6 IE5vbmUsCisgICAgICAgICAgICAgICAgJ25hbWUnOiAnc29tZV90YWJsZScsCisgICAgICAgICAg ICAgICAgJ25hbWVzcGFjZSc6ICdwdWJsaWMnCisgICAgICAgICAgICB9CisgICAgICAgIF0pKQor CisgICAgICAgIHN1YmplY3QgPSBSZXZlcnNlRW5naW5lZXJEREwoCisgICAgICAgICAgICAnc3Fs LyNncGRiIzgwMzIzIy8nLAorICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2ssCisgICAg ICAgICAgICBjb25uZWN0aW9uLAorICAgICAgICAgICAgMSwgMiwgMykKIAotICAgICAgICBzZWxm LnN1YmplY3QuZXhlY3V0ZSgqKnNlbGYuZnVuY3Rpb25fcGFyYW1ldGVycykKKyAgICAgICAgc3Vi amVjdC50YWJsZV9pbmZvcm1hdGlvbih0YWJsZV9vaWQ9MTIzKSB8IHNob3VsZC5iZS5lcXVhbC50 bygKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndXJpcyc6IFsnaHR0cDovL3NvbWV1 cmwuY29tJ10sCisgICAgICAgICAgICAgICAgJ2lzV2ViJzogVHJ1ZSwKKyAgICAgICAgICAgICAg ICAnZXhlY3V0aW9uTG9jYXRpb24nOiBkaWN0KHR5cGU9J2FsbF9zZWdtZW50cycsIHZhbHVlPU5v bmUpLAorICAgICAgICAgICAgICAgICdmb3JtYXRUeXBlJzogJ2F2cm8nLAorICAgICAgICAgICAg ICAgICdmb3JtYXRPcHRpb25zJzogJ2RlbGltaXRlciA9ICQkLCQkLGVzY2FwZSA9ICQkIiQkLCcK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsID0gJCQkJCxxdW90ZSA9ICQk IiQkJywKKyAgICAgICAgICAgICAgICAnY29tbWFuZCc6IE5vbmUsCisgICAgICAgICAgICAgICAg J3JlamVjdExpbWl0JzogTm9uZSwKKyAgICAgICAgICAgICAgICAncmVqZWN0TGltaXRUeXBlJzog Tm9uZSwKKyAgICAgICAgICAgICAgICAnZXJyb3JUYWJsZU5hbWUnOiBOb25lLAorICAgICAgICAg ICAgICAgICdlcnJvVG9GaWxlJzogTm9uZSwKKyAgICAgICAgICAgICAgICAncGdFbmNvZGluZ1Rv Q2hhcic6ICdVVEY4JywKKyAgICAgICAgICAgICAgICAnd3JpdGFibGUnOiBGYWxzZSwKKyAgICAg ICAgICAgICAgICAnb3B0aW9ucyc6IE5vbmUsCisgICAgICAgICAgICAgICAgJ2Rpc3RyaWJ1dGlv bic6IE5vbmUsCisgICAgICAgICAgICAgICAgJ25hbWUnOiAnc29tZV90YWJsZScsCisgICAgICAg ICAgICAgICAgJ25hbWVzcGFjZSc6ICdwdWJsaWMnCisgICAgICAgICAgICB9KQorCisgICAgICAg IHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIHRl bXBsYXRlX25hbWVfb3JfbGlzdD0nc3FsLyNncGRiIzgwMzIzIy9nZXRfdGFibGVfaW5mb3JtYXRp b24uc3FsJywKKyAgICAgICAgICAgIHRhYmxlX29pZD0xMjMKIAotICAgICAgICBzZWxmLnN1Ympl Y3QuZmluZF9jb2x1bW5zLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgIHNlbGYuZXhw ZWN0X2ZpbmRfY29sdW1uc19jYWxsZWRfd2l0aCkKLSAgICAgICAgc2VsZi5zdWJqZWN0LnRhYmxl X2luZm9ybWF0aW9uLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgIHNlbGYuZXhwZWN0 X3RhYmxlX2luZm9ybWF0aW9uX2NhbGxlZF93aXRoKQotICAgICAgICBzZWxmLnJlbmRlcl90ZW1w bGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAgICAgICAgICoqc2VsZi5leHBlY3Rf cmVuZGVyX3RlbXBsYXRlX2NhbGxlZF93aXRoKQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9k YXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFf d3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDEyZGY0Zjlk Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv dGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv dGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQot Ci1jbGFzcyBGb3JlaWduU2VydmVyc0dlbmVyYXRvclRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9m b3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9z ZXJ2ZXJzX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rl c3RfZm9yZWlnbl9zZXJ2ZXJzX2FkZC5weQppbmRleCBhYmVkOWQwYy4uZGViMDQ2MjUgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWln bl9zZXJ2ZXJzX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90 ZXN0cy90ZXN0X2ZvcmVpZ25fc2VydmVyc19hZGQucHkKQEAgLTEyLDU1ICsxMiw1OCBAQCBmcm9t IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1 aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVuc2lvbnMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBleHRlbnNpb25fdXRpbHMKLWZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dy YXBwZXJzLlwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFz IGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIEZvcmVpZ25TZXJ2 ZXJBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFz cyB3aWxsIGFkZCBmb3JlaWduIHNlcnZlciB1bmRlciBkYXRhYmFzZSBub2RlLgotICAgICIiIgot ICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAg ICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZm9yZWlnbiBzZXJ2ZXIgbm9kZS4KLSAgICAg ICAgKCdDaGVjayBGU1JWIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9zZXJ2ZXIv b2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2Ns YXNzIFRlc3RGb3JlaWduU2VydmVyQWRkOgorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fc2VydmVyX2Fk ZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gc2VuZGluZyBhIEhUVFAgcmVxdWVzdCB0byBhZGQgZm9yZWlnbiBzZXJ2ZXIgdW5kZXIg ZGF0YWJhc2Ugbm9kZQorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIi CisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAg ICB1cmwgPSAnL2Jyb3dzZXIvZm9yZWlnbl9zZXJ2ZXIvb2JqLycKKworICAgICAgICBzY2hlbWFf ZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNl bGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNjaGVtYV9kYXRhWydk Yl9uYW1lJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUn XQorICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gJ2N1YmUnCisgICAgICAgIGZkd19uYW1l ID0gImZkd197MH0iLmZvcm1hdChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBleHRl bnNpb25fdXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNjaGVtYV9uYW1lKQorICAgICAgICBm ZHdfaWQgPSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZHdfbmFtZSkKKyAgICAgICAg c2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVu c2lvbiBhbmQgZm9yZWlnbiBkYXRhIHdyYXBwZXIuIiIiCi0gICAgICAgIHN1cGVyKEZvcmVpZ25T ZXJ2ZXJBZGRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLnNjaGVtYV9kYXRh ID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNl bGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLmV4dGVu c2lvbl9uYW1lID0gImN1YmUiCi0gICAgICAgIHNlbGYuZmR3X25hbWUgPSAiZmR3X3swfSIuZm9y bWF0KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX2lkID0g ZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNpb24oCi0gICAgICAgICAgICBzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lvbl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lKQot ICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5mZHdfbmFtZSkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nv bm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQor CisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAg ICAgIkRhdGFiYXNlIGNvbm5lY3RlZC4iLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZS4nKQorCisgICAgICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsIGZkd19uYW1lKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5u b3RfYmUubm9uZQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCBmZXRjaCBmb3JlaWduIGRhdGEgd3JhcHBlciBwcmVzZW50IHVuZGVyIHRlc3QK LSAgICAgICAgIGRhdGFiYXNlLiIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0g ICAgICAgIGZkd19yZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZmR3X25hbWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQogICAgICAgICBkYl91c2Vy ID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAg ICJmc3J2YWNsIjogWwpAQCAtOTUsMTYgKzk4LDE2IEBAIGNsYXNzIEZvcmVpZ25TZXJ2ZXJBZGRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAibmFtZSI6ICJ0ZXN0X2Zz cnZfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICB9CiAgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdf aWQpICsgJy8nLAorICAgICAgICAgICAgJy8nICsgc3RyKGZkd19pZCkgKyAnLycsCiAgICAgICAg ICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwu dG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQgZm9yZWlnbgot ICAgICAgICAgZGF0YSB3cmFwcGVyLiIiIgogICAgICAgICBleHRlbnNpb25fdXRpbHMuZHJvcF9l eHRlbnNpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUpCi0gICAgICAgIGRhdGFiYXNl X3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3Jh cHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2RlbGV0ZS5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9m b3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9z ZXJ2ZXJzX2RlbGV0ZS5weQppbmRleCA0ZTVjNzBlZC4uN2ExNjU0NjYgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWdu X2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJz X2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy90 ZXN0X2ZvcmVpZ25fc2VydmVyc19kZWxldGUucHkKQEAgLTExLDcyICsxMSw4MiBAQCBmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBw eXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgZXh0ZW5zaW9uX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy5cCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25f ZGF0YV93cmFwcGVycy4gXAogICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnNydl91dGlscwog CiAKLWNsYXNzIEZvcmVpZ25TZXJ2ZXJEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBmb3JlaWduIHNlcnZlciB1bmRlciBGRFcgbm9k ZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZvcmVpZ24gc2VydmVyIG5vZGUu Ci0gICAgICAgICgnQ2hlY2sgRlNSViBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVpZ25f c2VydmVyL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVuc2lvbiBhbmQgZm9yZWlnbiBkYXRhIHdy YXBwZXIuIiIiCi0gICAgICAgIHN1cGVyKEZvcmVpZ25TZXJ2ZXJEZWxldGVUZXN0Q2FzZSwgc2Vs Zikuc2V0VXAoKQotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsn c2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsn c2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lk J10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVst MV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0 YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gImN1YmUiCitA cHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Rm9yZWlnblNl cnZlckRlbGV0ZToKKyAgICBkZWYgdGVzdF9mb3JlaWduX3NlcnZlcl9kZWxldGUoc2VsZiwgcmVx dWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRp bmcgYSBIVFRQIHJlcXVlc3QgdG8KKyAgICAgICAgZGVsZXRlIGZvcmVpZ24gc2VydmVyIHVuZGVy IGRhdGFiYXNlIG5vZGUKKyAgICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL2ZvcmVpZ25fc2VydmVyL29iai8nCisKKyAgICAgICAgc2NoZW1h X2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBz ZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBz Y2hlbWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsi ZGJfbmFtZSJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1h X25hbWUnXQorICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gJ2N1YmUnCiAgICAgICAgIHNl bGYuZmR3X25hbWUgPSAidGVzdF9mZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAg ICAgICAgIHNlbGYuZnNydl9uYW1lID0gInRlc3RfZnNydl8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKLSAgICAgICAgc2VsZi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMuY3Jl YXRlX2V4dGVuc2lvbigKKyAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNpb24o CiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lvbl9u YW1lLCBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5j cmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgc2VsZi5mc3J2 X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9u YW1lLCBzZWxmLmZkd19uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBmb3JlaWduIHNlcnZlciBwcmVzZW50IHVuZGVyIHRl c3QKLSAgICAgICAgIGRhdGFiYXNlLiIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAg ICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIp Ci0gICAgICAgIGZkd19yZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQotICAgICAgICBmc3J2 X3Jlc3BvbnNlID0gZnNydl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmZzcnZfbmFtZSkKLSAgICAgICAgaWYgbm90IGZzcnZfcmVzcG9uc2U6Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZTUlYuIikKKyAgICAgICAgZnNydl9pZCA9 IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYu ZmR3X25hbWUpCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0 X2NsaWVudCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5l Y3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAg c2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQorCisg ICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAg IkRhdGFiYXNlIGNvbm5lY3RlZC4iLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZS4nKQorCisgICAgICAgICMgZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mZHdfbmFtZSkgfCBcCisgICAgICAgICMgICAgIHNo b3VsZC5ub3RfYmUubm9uZQorCisgICAgICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZmR3X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxk Lm5vdF9iZS5lcXVhbC50byhOb25lLCBtc2c9J0NvdWxkIG5vdCBmaW5kIEZEVy4nKQorCisgICAg ICAgIGZzcnZfdXRpbHMudmVyaWZ5X2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2Vs Zi5mc3J2X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5lcXVhbC50byhOb25l LCBtc2c9J0NvdWxkIG5vdCBmaW5kIEZTUlYuJykKKwogICAgICAgICBkZWxldGVfcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBz dHIoc2VsZi5kYl9pZCkgKwogICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuZmR3X2lkKSArICcv JyArCi0gICAgICAgICAgICBzdHIoc2VsZi5mc3J2X2lkKSwKKyAgICAgICAgICAgIHN0cihmc3J2 X2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMoZGVsZXRlX3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAg ZGVsZXRlX3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25u ZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkIGV4dGVuc2lvbgotICAgICAgICAg YW5kIGRlcGVuZGFudCBvYmplY3RzLiIiIgogICAgICAgICBleHRlbnNpb25fdXRpbHMuZHJvcF9l eHRlbnNpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUpCi0gICAgICAgIGRhdGFiYXNl X3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNl bGYudGVzdGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMv Zm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2dldC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2Rh dGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2dl dC5weQppbmRleCBjMmZjZmZiYi4uNGI1MDBiOTMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBl cnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX2dldC5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9y ZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZXN0cy90ZXN0X2ZvcmVpZ25fc2Vy dmVyc19nZXQucHkKQEAgLTExLDY3ICsxMSw3MyBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy aW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZXh0 ZW5zaW9uX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy5cCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy4gXAog ICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGls cyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnNydl91dGlscwogCiAKLWNsYXNzIEZvcmVpZ25T ZXJ2ZXJHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGFkZCBmb3JlaWduIHNlcnZlciB1bmRlciBGRFcgbm9kZS4iIiIKLSAgICBza2lwX29uX2Rh dGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIGZvcmVpZ24gc2VydmVyIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgRlNS ViBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVpZ25fc2VydmVyL29iai8nKSkKLSAgICBd Ci0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg Y3JlYXRlIGV4dGVuc2lvbiBhbmQgZm9yZWlnbiBkYXRhIHdyYXBwZXIuIiIiCi0gICAgICAgIHN1 cGVyKEZvcmVpZ25TZXJ2ZXJHZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxm LnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1l ID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAg ICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gImN1YmUiCi0gICAgICAgIHNlbGYuZmR3X25hbWUgPSAi ZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmZzcnZfbmFt ZSA9ICJ0ZXN0X2ZzcnZfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLmV4dGVuc2lvbl9pZCA9IGV4dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAot ICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5leHRlbnNpb25fbmFt ZSwgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgc2VsZi5mZHdfaWQgPSBmZHdfdXRpbHMuY3Jl YXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIHNlbGYuZnNydl9p ZCA9IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFt ZSwgc2VsZi5mZHdfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggZm9yZWlnbiBzZXJ2ZXIgcHJlc2VudCB1bmRlciB0ZXN0 Ci0gICAgICAgIGRhdGFiYXNlLiIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0g ICAgICAgIGZkd19yZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZmR3X25hbWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQorQHB5dGVzdC5tYXJrLnNr aXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEZvcmVpZ25TZXJ2ZXJHZXQ6CisgICAg ZGVmIHRlc3RfZm9yZWlnbl9zZXJ2ZXJfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEgSFRUUCByZXF1ZXN0IHRv IGdldCBmb3JlaWduIHNlcnZlciB1bmRlciBkYXRhYmFzZSBub2RlCisgICAgICAgIEl0IHJldHVy bnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXpl cihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX3NlcnZl ci9vYmovJworCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVy X2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQn XQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2Vs Zi5kYl9uYW1lID0gc2NoZW1hX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzY2hlbWFfbmFtZSA9 IHNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUg PSAnY3ViZScKKyAgICAgICAgZmR3X25hbWUgPSAiZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQorICAgICAgICBmc3J2X25hbWUgPSAidGVzdF9mc3J2X2FkZF8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNp b24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lv bl9uYW1lLCBzY2hlbWFfbmFtZSkKKyAgICAgICAgZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9m ZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZmR3X25hbWUpCisgICAgICAgIGZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0 ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZzcnZfbmFtZSwgZmR3X25hbWUpCisKKyAgICAgICAgc2VsZi50 ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBz ZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNl bGYuc2VydmVyWydkYl9wYXNzd29yZCddKQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hv dWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0RhdGFiYXNlIGNvbm5lY3RlZC4nLAorICAg ICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4nKQorCisgICAgICAg IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZkd19uYW1l KSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUubm9uZQorCiAgICAgICAgIGZzcnZfcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KyBzdHIoc2VsZi5kYl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuZmR3X2lkKSAr ICcvJyArIHN0cihzZWxmLmZzcnZfaWQpLAorICAgICAgICAgICAgJy8nICsgc3RyKGZkd19pZCkg KyAnLycgKyBzdHIoZnNydl9pZCksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGZzcnZfcmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKworICAgICAgICBmc3J2X3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkIGV4dGVu c2lvbgotICAgICAgICAgYW5kIGRlcGVuZGFudCBvYmplY3RzLiIiIgogICAgICAgICBleHRlbnNp b25fdXRpbHMuZHJvcF9leHRlbnNpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUpCi0g ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25u ZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMv dGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3Jl aWduX3NlcnZlcnMvdGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfcHV0LnB5CmluZGV4IDc3YzVj ZTI1Li4wY2QzOWZjMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZl cnMvdGVzdHMvdGVzdF9mb3JlaWduX3NlcnZlcnNfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBl cnMvZm9yZWlnbl9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfZm9yZWlnbl9zZXJ2ZXJzX3B1dC5weQpAQCAt MTIsNzQgKzEyLDgwIEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGlt cG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGV4dGVuc2lv bl91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuXAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICB0 ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMg ZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZzcnZfdXRpbHMKIAogCi1jbGFzcyBGb3JlaWduU2VydmVy UHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBh ZGQgZm9yZWlnbiBzZXJ2ZXIgdW5kZXIgRkRXIG5vZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFz ZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciBmb3JlaWduIHNlcnZlciBub2RlLgotICAgICAgICAoJ0NoZWNrIEZTUlYgTm9k ZScsIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX3NlcnZlci9vYmovJykpCi0gICAgXQotCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0 ZSBleHRlbnNpb24gYW5kIGZvcmVpZ24gZGF0YSB3cmFwcGVyLiIiIgotICAgICAgICBzdXBlcihG b3JlaWduU2VydmVyUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zY2hl bWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2Vs Zi5leHRlbnNpb25fbmFtZSA9ICJjdWJlIgotICAgICAgICBzZWxmLmZkd19uYW1lID0gImZkd18l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mc3J2X25hbWUgPSAi dGVzdF9mc3J2X3B1dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2Vs Zi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKLSAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNl bGYuc2NoZW1hX25hbWUpCi0gICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9m ZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBzZWxmLmZzcnZfaWQgPSBm c3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNl bGYuZmR3X25hbWUpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiB3aWxsIHVwZGF0ZSBmb3JlaWduIHNlcnZlciBwcmVzZW50IHVuZGVyIHRlc3QKLSAg ICAgICAgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYg bm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKLSAgICAg ICAgZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5mZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZkd19yZXNwb25zZToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRkRXLiIpCi0gICAgICAgIGZzcnZfcmVzcG9u c2UgPSBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9u YW1lKQotICAgICAgICBpZiBub3QgZnNydl9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRlNSVi4iKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJh c2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdEZvcmVpZ25TZXJ2ZXJQdXQ6CisgICAgZGVmIHRlc3Rf Zm9yZWlnbl9zZXJ2ZXJfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEgSFRUUCByZXF1ZXN0IHRvIGdldCBmb3Jl aWduIHNlcnZlciB1bmRlciBkYXRhYmFzZSBub2RlCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0 YXR1cworICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRl YXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX3NlcnZlci9vYmovJwor CisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1l ID0gc2NoZW1hX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNjaGVtYV9k YXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAnY3ViZScK KyAgICAgICAgZmR3X25hbWUgPSAiZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICBmc3J2X25hbWUgPSAidGVzdF9mc3J2X3B1dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKKyAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNpb24oCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lvbl9uYW1lLCBz Y2hlbWFfbmFtZSkKKyAgICAgICAgZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZmR3X25hbWUpCisgICAgICAgIGZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZzcnZfbmFtZSwgZmR3X25hbWUpCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJh c2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3Rl ciwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLAorICAgICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddKQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVx dWFsLnRvKAorICAgICAgICAgICAgJ0RhdGFiYXNlIGNvbm5lY3RlZC4nLAorICAgICAgICAgICAg bXNnPSdDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4nKQorCisgICAgICAgIGZkd191dGls cy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZkd19uYW1lKSB8IFwKKyAg ICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBub3QgZmlu ZCBGRFcuJykKKworICAgICAgICBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsIGZzcnZfbmFtZSkgfCBcCisgICAgICAgICAgICBzaG91bGQubm90X2JlLmVx dWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90IGZpbmQgRlNSVi4nKQorCiAgICAgICAgIGRhdGEg PSB7ImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgZm9yZWlnbiBzZXJ2ZXIgdXBkYXRlIGNvbW1lbnQi LAotICAgICAgICAgICAgICAgICJpZCI6IHNlbGYuZnNydl9pZH0KKyAgICAgICAgICAgICAgICAi aWQiOiBmc3J2X2lkfQorCiAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgK LSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwor ICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAg ICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihz ZWxmLmZzcnZfaWQpLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICAnLycgKyBz dHIoZmR3X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZnNydl9pZCksIGRhdGE9anNvbi5k dW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAg ICAgcHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25u ZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkIGV4dGVuc2lvbgotICAgICAgICAg YW5kIGRlcGVuZGFudCBvYmplY3RzLiIiIgogICAgICAgICBleHRlbnNpb25fdXRpbHMuZHJvcF9l eHRlbnNpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUpCi0gICAgICAgIGRhdGFiYXNl X3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKAor ICAgICAgICAgICAgc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rl c3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9t YXBwaW5nL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDU0NDE3ZjUzLi41OTAwMjZhZCAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3Rz L19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJf bWFwcGluZy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMgc29mdHdh cmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgotCi0KLWNsYXNzIFVzZXJNYXBwaW5nR2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rl c3RzL3Rlc3RfdXNlcl9tYXBwaW5nX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9z ZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0X3VzZXJfbWFwcGluZ19hZGQucHkKaW5kZXgg ZmM1YWYyN2UuLjZjNDhiNjdmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25f c2VydmVycy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfYWRkLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3Jl aWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0 X3VzZXJfbWFwcGluZ19hZGQucHkKQEAgLTEyLDYzICsxMiw2OCBAQCBmcm9tIF9fZnV0dXJlX18g aW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0 IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVuc2lvbnMudGVzdHMgaW1wb3J0 IFwKICAgICB1dGlscyBhcyBleHRlbnNpb25fdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLlwKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWln bl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgZm9yZWlnbl9zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBmc3J2X3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLlwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuIFwKICAgICBmb3JlaWduX2RhdGFfd3JhcHBlcnMudGVzdHMgaW1wb3J0IHV0 aWxzIGFzIGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFVzZXJN YXBwaW5nQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mg d2lsbCBhZGQgdXNlciBtYXBwaW5nIHVuZGVyIGZvcmVpZ24gc2VydmVyIG5vZGUuIiIiCi0gICAg c2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHVzZXIgbWFwcGluZyBub2RlLgotICAgICAgICAo J0NoZWNrIHVzZXIgbWFwcGluZyBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3VzZXJfbWFwcGlu Zy9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBleHRlbnNpb24gYW5kIGZvcmVpZ24gZGF0YSB3cmFwcGVy LiIiIgotICAgICAgICBzdXBlcihVc2VyTWFwcGluZ0FkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgp Ci0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVst MV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQn XQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAg ICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFf bmFtZSddCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAiY3ViZSIKLSAgICAgICAgc2Vs Zi5mZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAg IHNlbGYuZnNydl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0g ICAgICAgIHNlbGYuZXh0ZW5zaW9uX2lkID0gZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRlbnNp b24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVuc2lv bl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGls cy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgc2VsZi5m c3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNy dl9uYW1lLCBzZWxmLmZkd19uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZm9yZWlnbiBzZXJ2ZXIgcHJlc2VudCB1bmRl ciB0ZXN0Ci0gICAgICAgIGRhdGFiYXNlLiAiIiIKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2Vf dXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQot ICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZS4iKQotICAgICAgICBmZHdfcmVzcG9uc2UgPSBmZHdfdXRpbHMudmVyaWZ5X2ZkdyhzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBpZiBub3QgZmR3X3Jlc3BvbnNlOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGRFcuIikKLSAgICAgICAg ZnNydl9yZXNwb25zZSA9IGZzcnZfdXRpbHMudmVyaWZ5X2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5mc3J2X25hbWUpCi0gICAgICAgIGlmIG5vdCBmc3J2X3Jlc3BvbnNlOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGU1JWLiIpCitAcHl0ZXN0Lm1hcmsu c2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0VXNlck1hcHBpbmdBZGQ6CisgICAg ZGVmIHRlc3RfdXNlcl9tYXBwaW5nX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3Rz KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBhbiBIVFRQIHJlcXVlc3QKKyAg ICAgICAgdG8gYWRkIGEgdXNlciBtYXBwaW5nIHVuZGVyIGZvcmVpZ24gc2VydmVyIG5vZGUKKyAg ICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVl c3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2Vy L3VzZXJfbWFwcGluZy9vYmovJworCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRh WydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2NoZW1hX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBz Y2hlbWFfbmFtZSA9IHNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuZXh0 ZW5zaW9uX25hbWUgPSAnY3ViZScKKyAgICAgICAgZmR3X25hbWUgPSAiZmR3XyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBmc3J2X25hbWUgPSAiZnNydl8lcyIgJSAoc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZXh0ZW5zaW9uX3V0aWxzLmNyZWF0ZV9leHRl bnNpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmV4dGVu c2lvbl9uYW1lLCBzY2hlbWFfbmFtZSkKKyAgICAgICAgZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0 ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmR3X25hbWUpCisgICAgICAgIGZzcnZfaWQgPSBmc3J2X3V0aWxzLmNy ZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZzcnZfbmFtZSwgZmR3X25hbWUpCisKKyAgICAgICAgc2Vs Zi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAg ICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAg IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwg c2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0RhdGFiYXNlIGNvbm5lY3RlZC4nLAor ICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4nKQorCisgICAg ICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZkd19u YW1lKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdD b3VsZCBub3QgZmluZCBGRFcuJykKKworICAgICAgICBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZzcnZfbmFtZSkgfCBcCisgICAgICAgICAgICBzaG91 bGQubm90X2JlLmVxdWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90IGZpbmQgRlNSVi4nKQorCiAg ICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQogICAgICAgICBkYXRhID0g eyJuYW1lIjogZGJfdXNlciwKICAgICAgICAgICAgICAgICAidW1fb3B0aW9ucyI6IFtdLApAQCAt ODIsMTggKzg3LDE5IEBAIGNsYXNzIFVzZXJNYXBwaW5nQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgInVtdmFsdWUiOiBzZWxmLnNlcnZlclsi ZGJfcGFzc3dvcmQiXQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgXX0K KwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKyBzdHIoCiAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkgKwotICAg ICAgICAgICAgJy8nICsgc3RyKHNlbGYuZmR3X2lkKSArICcvJyArIHN0cihzZWxmLmZzcnZfaWQp ICsgJy8nLAorICAgICAgICAgICAgJy8nICsgc3RyKGZkd19pZCkgKyAnLycgKyBzdHIoZnNydl9p ZCkgKyAnLycsCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAg ICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRy b3AgYWRkZWQgZXh0ZW5zaW9uCi0gICAgICAgICBhbmQgZGVwZW5kYW50IG9iamVjdHMuIiIiCiAg ICAgICAgIGV4dGVuc2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRl bnNpb25fbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu Y2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3Rlciwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2Zv cmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfZGVsZXRl LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3Rz L3Rlc3RfdXNlcl9tYXBwaW5nX2RlbGV0ZS5weQppbmRleCBhNzVkNmU4My4uN2QzNGJlNGYgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90 ZXN0cy90ZXN0X3VzZXJfbWFwcGluZ19kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9m b3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5nX2RlbGV0 ZS5weQpAQCAtMTEsODAgKzExLDg1IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu Y3Rpb24KIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLmV4dGVuc2lvbnMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBleHRlbnNpb25f dXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgZm9yZWlnbl9zZXJ2ZXJzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBmc3J2X3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93cmFwcGVycy5cCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93 cmFwcGVycy4gXAogICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0 IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdW1fdXRpbHMKIAogCi1jbGFz cyBVc2VyTWFwcGluZ0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJU aGlzIGNsYXNzIHdpbGwgZGVsZXRlIHVzZXIgbWFwcGluZyB1bmRlciBmb3JlaWduIHNlcnZlciBu b2RlLiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9 IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdXNlciBtYXBwaW5nIG5vZGUu Ci0gICAgICAgICgnQ2hlY2sgdXNlciBtYXBwaW5nIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIv dXNlcl9tYXBwaW5nL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVuc2lvbiBhbmQgZm9yZWlnbiBk YXRhIHdyYXBwZXIuIiIiCi0gICAgICAgIHN1cGVyKFVzZXJNYXBwaW5nRGVsZXRlVGVzdENhc2Us IHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2Rp Y3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2Rh dGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydk Yl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1h X2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5leHRlbnNpb25fbmFtZSA9ICJjdWJl IgotICAgICAgICBzZWxmLmZkd19uYW1lID0gImZkd18lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKLSAgICAgICAgc2VsZi5mc3J2X25hbWUgPSAiZnNydl8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMu Y3JlYXRlX2V4dGVuc2lvbigKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs IHNlbGYuZXh0ZW5zaW9uX25hbWUsIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAgIHNlbGYuZmR3 X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQot ICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNyZWF0ZV9mc3J2KHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIHNlbGYudW1faWQg PSB1bV91dGlscy5jcmVhdGVfdXNlcl9tYXBwaW5nKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZnNydl9uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCBkZWxldGUgdXNlciBtYXBwaW5nIHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAg ICAgZGF0YWJhc2UuICIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5v dCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAgICAg IGZkd19yZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZmR3X25hbWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQotICAgICAgICBmc3J2X3Jlc3BvbnNl ID0gZnNydl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFt ZSkKLSAgICAgICAgaWYgbm90IGZzcnZfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIEZTUlYuIikKLSAgICAgICAgdW1fcmVzcG9uc2UgPSB1bV91 dGlscy52ZXJpZnlfdXNlcl9tYXBwaW5nKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZf bmFtZSkKLSAgICAgICAgaWYgbm90IHVtX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB1c2VyIG1hcHBpbmcuIikKK0BweXRlc3QubWFyay5za2lw X2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RVc2VyTWFwcGluZ0RlbGV0ZToKKyAgICBk ZWYgdGVzdF91c2VyX21hcHBpbmdfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGFuIEhUVFAgcmVxdWVzdAor ICAgICAgICB0byBkZWxldGUgYSB1c2VyIG1hcHBpbmcgdW5kZXIgZm9yZWlnbiBzZXJ2ZXIgbm9k ZQorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvdXNlcl9tYXBwaW5nL29iai8nCisKKyAgICAgICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsnZGJf aWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsnZGJfbmFtZSddCisgICAg ICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2Vs Zi5leHRlbnNpb25fbmFtZSA9ICdjdWJlJworICAgICAgICBmZHdfbmFtZSA9ICJmZHdfJXMiICUg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGZzcnZfbmFtZSA9ICJmc3J2XyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBleHRlbnNpb25fdXRpbHMuY3JlYXRl X2V4dGVuc2lvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYu ZXh0ZW5zaW9uX25hbWUsIHNjaGVtYV9uYW1lKQorICAgICAgICBmZHdfaWQgPSBmZHdfdXRpbHMu Y3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmZHdfbmFtZSkKKyAgICAgICAgZnNydl9pZCA9IGZzcnZfdXRp bHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnNydl9uYW1lLCBmZHdfbmFtZSkKKyAgICAgICAg dW1faWQgPSB1bV91dGlscy5jcmVhdGVfdXNlcl9tYXBwaW5nKHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmc3J2 X25hbWUpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGll bnQnXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9jb25uZWN0X2Rh dGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYu ZGJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKKworICAgICAg ICBkYl9jb25bImluZm8iXSB8IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdEYXRh YmFzZSBjb25uZWN0ZWQuJywKKyAgICAgICAgICAgIG1zZz0nQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UuJykKKworICAgICAgICBmZHdfdXRpbHMudmVyaWZ5X2ZkdyhzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLCBmZHdfbmFtZSkgfCBcCisgICAgICAgICAgICBzaG91bGQubm90X2JlLmVx dWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90IGZpbmQgRkRXLicpCisKKyAgICAgICAgZnNydl91 dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBmc3J2X25hbWUpIHwg XAorICAgICAgICAgICAgc2hvdWxkLm5vdF9iZS5lcXVhbC50byhOb25lLCBtc2c9J0NvdWxkIG5v dCBmaW5kIEZTUlYuJykKKworICAgICAgICB1bV91dGlscy52ZXJpZnlfdXNlcl9tYXBwaW5nKAor ICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgZnNydl9uYW1lKSB8IFwKKyAg ICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBub3QgZmlu ZCB1c2VyIG1hcHBpbmcuJykKKwogICAgICAgICBkZWxldGVfcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9p ZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuZmR3X2lkKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoc2VsZi5mc3J2X2lkKSArICcvJyArIHN0cihzZWxmLnVtX2lkKSwKKyAgICAgICAg ICAgICcvJyArIHN0cihmZHdfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihmc3J2X2lkKSAr ICcvJyArIHN0cih1bV9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0g ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorCisgICAgICAgIGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bC50bygyMDApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZSBhbmQgZHJvcCBhZGRlZCBleHRlbnNp b24KLSAgICAgICAgIGFuZCBkZXBlbmRhbnQgb2JqZWN0cy4iIiIKICAgICAgICAgZXh0ZW5zaW9u X3V0aWxzLmRyb3BfZXh0ZW5zaW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lKQotICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVj dF9kYXRhYmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Vz ZXJfbWFwcGluZy90ZXN0cy90ZXN0X3VzZXJfbWFwcGluZ19nZXQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBw ZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdf Z2V0LnB5CmluZGV4IDVlNGU3OGMxLi5jOTJlMmQ1MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFw cGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5n X2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBp bmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfZ2V0LnB5CkBAIC0xMSwzNyArMTEsNDEgQEAgZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitpbXBv cnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cyBpbXBv cnQgXAogICAgIHV0aWxzIGFzIGV4dGVuc2lvbl91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwK ICAgICBmb3JlaWduX3NlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZzcnZfdXRpbHMKLWZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWln bl9kYXRhX3dyYXBwZXJzLlwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0 IHV0aWxzIGFzIGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0 aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1m cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9y dCB1dGlscyBhcyB1bV91dGlscwogCiAKLWNsYXNzIFVzZXJNYXBwaW5nR2V0VGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgdXNlciBtYXBwaW5n IHVuZGVyIGZvcmVpZ24gc2VydmVyIG5vZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsn Z3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJM IGZvciB1c2VyIG1hcHBpbmcgbm9kZS4KLSAgICAgICAgKCdDaGVjayB1c2VyIG1hcHBpbmcgTm9k ZScsIGRpY3QodXJsPScvYnJvd3Nlci91c2VyX21hcHBpbmcvb2JqLycpKQotICAgIF0KK0BweXRl c3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RVc2VyTWFwcGluZ0dl dDoKKyAgICBkZWYgdGVzdF91c2VyX21hcHBpbmdfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRf b2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGFuIEhUVFAgcmVx dWVzdAorICAgICAgICB0byBhZGQgYSB1c2VyIG1hcHBpbmcgdW5kZXIgZm9yZWlnbiBzZXJ2ZXIg bm9kZQorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAg ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChz ZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9uIGFu ZCBmb3JlaWduIGRhdGEgd3JhcHBlci4iIiIKLSAgICAgICAgc3VwZXIoVXNlck1hcHBpbmdHZXRU ZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50 X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci91c2VyX21h cHBpbmcvb2JqLycKKworICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQogICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2Rh dGFbJ3NlcnZlcl9pZCddCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydk Yl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zY2hlbWFfZGF0 YVsnZGJfbmFtZSddCiAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRh WydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUgPSAiY3ViZSIKKyAg ICAgICAgc2VsZi5leHRlbnNpb25fbmFtZSA9ICdjdWJlJwogICAgICAgICBzZWxmLmZkd19uYW1l ID0gImZkd18lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5mc3J2 X25hbWUgPSAiZnNydl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2Vs Zi5leHRlbnNpb25faWQgPSBleHRlbnNpb25fdXRpbHMuY3JlYXRlX2V4dGVuc2lvbigKQEAgLTUy LDM0ICs1NiwzNSBAQCBjbGFzcyBVc2VyTWFwcGluZ0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmZzcnZfbmFtZSwgc2VsZi5mZHdfbmFtZSkKICAgICAgICAgc2VsZi51bV9pZCA9IHVtX3V0aWxz LmNyZWF0ZV91c2VyX21hcHBpbmcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUp CisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor CisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9jb25uZWN0X2RhdGFiYXNl KAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuZGJfaWQs CisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKIAotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGZvcmVpZ24g c2VydmVyIHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKLSAgICAgICAg ZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9V UCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFi YXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4iKQotICAgICAgICBmZHdfcmVzcG9uc2UgPSBmZHdfdXRpbHMu dmVyaWZ5X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBpZiBub3Qg ZmR3X3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCBGRFcuIikKLSAgICAgICAgZnNydl9yZXNwb25zZSA9IGZzcnZfdXRpbHMudmVyaWZ5X2ZzcnYo c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUpCi0gICAgICAgIGlmIG5vdCBmc3J2X3Jl c3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGU1JW LiIpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICBkYl9jb25bImluZm8iXSB8IHNob3Vs ZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdEYXRhYmFzZSBjb25uZWN0ZWQuJywKKyAgICAg ICAgICAgIG1zZz0nQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuJykKKworICAgICAgICBm ZHdfdXRpbHMudmVyaWZ5X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmZkd19u YW1lKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdD b3VsZCBub3QgZmluZCBGRFcuJykKKworICAgICAgICBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuZnNydl9uYW1lKSB8IFwKKyAgICAgICAgICAg IHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdDb3VsZCBub3QgZmluZCBGU1JWLicp CisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQodXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAgICAgc2VsZi5kYl9pZCkg KyAnLycgKyBzdHIoc2VsZi5mZHdfaWQpICsgJy8nICsgc3RyKAogICAgICAgICAgICAgc2VsZi5m c3J2X2lkKSArICcvJyArIHN0cigKICAgICAgICAgICAgIHNlbGYudW1faWQpLCBjb250ZW50X3R5 cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgYW5kIGRyb3AgYWRkZWQgZXh0 ZW5zaW9uCi0gICAgICAgICBhbmQgZGVwZW5kYW50IG9iamVjdHMuIiIiCiAgICAgICAgIGV4dGVu c2lvbl91dGlscy5kcm9wX2V4dGVuc2lvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRlbnNpb25fbmFtZSkK LSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nv bm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVy cy91c2VyX21hcHBpbmcvdGVzdHMvdGVzdF91c2VyX21hcHBpbmdfcHV0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93 cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBw aW5nX3B1dC5weQppbmRleCAwMjViNTcxYS4uOTU5NzRhMzYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFf d3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy90ZXN0cy90ZXN0X3VzZXJfbWFw cGluZ19wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdXNlcl9t YXBwaW5nL3Rlc3RzL3Rlc3RfdXNlcl9tYXBwaW5nX3B1dC5weQpAQCAtMTIsNzIgKzEyLDc2IEBA IGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBqc29uCiBpbXBv cnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5z aW9ucy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGV4dGVuc2lvbl91dGlscwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2Rh dGFfd3JhcHBlcnMuIFwKICAgICBmb3JlaWduX3NlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFz IGZzcnZfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLlwKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAg ICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxz IGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB1bV91dGlscwogCiAKLWNsYXNzIFVzZXJNYXBwaW5n UHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1 cGRhdGUgdXNlciBtYXBwaW5nIHVuZGVyIGZvcmVpZ24gc2VydmVyIG5vZGUuIiIiCi0gICAgc2tp cF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZl dGNoaW5nIGRlZmF1bHQgVVJMIGZvciB1c2VyIG1hcHBpbmcgbm9kZS4KLSAgICAgICAgKCdDaGVj ayB1c2VyIG1hcHBpbmcgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci91c2VyX21hcHBpbmcvb2Jq LycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVu Y3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9uIGFuZCBmb3JlaWduIGRhdGEgd3JhcHBlci4iIiIK LSAgICAgICAgc3VwZXIoVXNlck1hcHBpbmdQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAg ICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAg ICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUn XQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdFVzZXJN YXBwaW5nUHV0OgorICAgIGRlZiB0ZXN0X3VzZXJfbWFwcGluZ19wdXQoc2VsZiwgcmVxdWVzdCwg Y29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgYW4g SFRUUCByZXF1ZXN0CisgICAgICAgIHRvIHB1dCBhIHVzZXIgbWFwcGluZyB1bmRlciBmb3JlaWdu IHNlcnZlciBub2RlCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIK KworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAg IHVybCA9ICcvYnJvd3Nlci91c2VyX21hcHBpbmcvb2JqLycKKworICAgICAgICBzY2hlbWFfZGF0 YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlbGYu c2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVt YV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNjaGVtYV9kYXRhWyJkYl9u YW1lIl0KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQog ICAgICAgICBzZWxmLmV4dGVuc2lvbl9uYW1lID0gImN1YmUiCi0gICAgICAgIHNlbGYuZmR3X25h bWUgPSAiZmR3XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmZz cnZfbmFtZSA9ICJmc3J2XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBz ZWxmLmV4dGVuc2lvbl9pZCA9IGV4dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5leHRlbnNpb25fbmFtZSwg c2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgc2VsZi5mZHdfaWQgPSBmZHdfdXRpbHMuY3JlYXRl X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUpCi0gICAgICAgIHNlbGYuZnNydl9pZCA9 IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSwg c2VsZi5mZHdfbmFtZSkKLSAgICAgICAgc2VsZi51bV9pZCA9IHVtX3V0aWxzLmNyZWF0ZV91c2Vy X21hcHBpbmcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUpCi0KLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBmb3Jl aWduIHNlcnZlciBwcmVzZW50IHVuZGVyIHRlc3QKLSAgICAgICAgZGF0YWJhc2UiIiIKLSAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9H Uk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRh dGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQotICAgICAgICBmZHdfcmVzcG9uc2UgPSBmZHdfdXRp bHMudmVyaWZ5X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBpZiBu b3QgZmR3X3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCBGRFcuIikKLSAgICAgICAgZnNydl9yZXNwb25zZSA9IGZzcnZfdXRpbHMudmVyaWZ5X2Zz cnYoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUpCi0gICAgICAgIGlmIG5vdCBmc3J2X3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBGU1JWLiIpCi0g ICAgICAgIHVtX3Jlc3BvbnNlID0gdW1fdXRpbHMudmVyaWZ5X3VzZXJfbWFwcGluZyhzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUpCi0gICAgICAgIGlmIG5vdCB1bV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdXNlciBtYXBw aW5nLiIpCisgICAgICAgIGZkd19uYW1lID0gImZkd18lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKKyAgICAgICAgZnNydl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIGV4dGVuc2lvbl91dGlscy5jcmVhdGVfZXh0ZW5zaW9uKAorICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5leHRlbnNpb25fbmFtZSwgc2No ZW1hX25hbWUpCisgICAgICAgIGZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZkd19uYW1lKQorICAgICAgICBmc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBmc3J2X25hbWUsIGZkd19uYW1lKQorICAgICAgICB1bV9pZCA9IHVtX3V0aWxzLmNy ZWF0ZV91c2VyX21hcHBpbmcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZzcnZfbmFtZSkKKyAgICAgICAgc2Vs Zi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisKKyAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAg ICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAg IHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddKQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwg c2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0RhdGFiYXNlIGNvbm5lY3RlZC4nLAor ICAgICAgICAgICAgbXNnPSdDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4nKQorCisgICAg ICAgIGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZkd19u YW1lKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUuZXF1YWwudG8oTm9uZSwgbXNnPSdD b3VsZCBub3QgZmluZCBGRFcuJykKKworICAgICAgICBmc3J2X3V0aWxzLnZlcmlmeV9mc3J2KHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIGZzcnZfbmFtZSkgfCBcCisgICAgICAgICAgICBzaG91 bGQubm90X2JlLmVxdWFsLnRvKE5vbmUsIG1zZz0nQ291bGQgbm90IGZpbmQgRlNSVi4nKQorCisg ICAgICAgIHVtX3V0aWxzLnZlcmlmeV91c2VyX21hcHBpbmcoCisgICAgICAgICAgICBzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLCBmc3J2X25hbWUpIHwgXAorICAgICAgICAgICAgc2hvdWxkLm5v dF9iZS5lcXVhbC50byhOb25lLCBtc2c9J0NvdWxkIG5vdCBmaW5kIHVzZXIgbWFwcGluZy4nKQor CiAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAiaWQiOiBzZWxmLnVtX2lkLAorICAgICAg ICAgICAgImlkIjogdW1faWQsCiAgICAgICAgICAgICAidW1vcHRpb25zIjoKICAgICAgICAgICAg ICAgICB7CiAgICAgICAgICAgICAgICAgICAgICJjaGFuZ2VkIjoKQEAgLTg4LDE4ICs5MiwxOSBA QCBjbGFzcyBVc2VyTWFwcGluZ1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAg ICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgIH0KKwogICAg ICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZl cl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNl bGYuZmR3X2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5mc3J2X2lkKSArICcvJyAr IHN0cihzZWxmLnVtX2lkKSwKKyAgICAgICAgICAgICcvJyArIHN0cihmZHdfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihmc3J2X2lkKSArICcvJyArIHN0cih1bV9pZCksCiAgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgICAgIHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bC50bygyMDApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZSBhbmQgZHJvcCBhZGRlZAotICAgICAg ICBleHRlbnNpb24gYW5kIGRlcGVuZGFudCBvYmplY3RzLiIiIgogICAgICAgICBleHRlbnNpb25f dXRpbHMuZHJvcF9leHRlbnNpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX25hbWUpCi0gICAg ICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0 X2RhdGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3Jl aWduX2RhdGFfd3JhcHBlcnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYzc4YWRlMzQuLjU5MDAy NmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3Jl aWduX2RhdGFfd3JhcHBlcnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMK ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBGRFdHZW5lcmF0b3JUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X2FkZC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2Rh dGFfd3JhcHBlcnMvdGVzdHMvdGVzdF9mZHdfYWRkLnB5CmluZGV4IDM2ODZkYTRiLi5hZjI5Y2Y3 MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19hZGQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Zv cmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19hZGQucHkKQEAgLTExLDUzICsxMSw2 OCBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBqc29u CiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2Fk bWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBc CisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1 dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0 CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZmR3X3V0aWxzCiAKIAotY2xhc3MgRkRXREFk ZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFk ZCBmb3JlaWduIGRhdGEgd3JhcHBlcnMgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgc2tp cF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMg RmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZvcmVpZ25fZGF0YV93cmFwcGVyIG5vZGUuCi0gICAg ICAgICgnQ2hlY2sgRkRXIE5vZGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2ZvcmVp Z25fZGF0YV93cmFwcGVyL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g ICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRlIGV4dGVuc2lvbi4iIiIKLSAgICAg ICAgc3VwZXIoRkRXREFkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0KLSAgICAgICAgc2VsZi5z Y2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxm LnNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYu ZGJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0gICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLQotICAgIGRl ZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGZvcmVp Z24gZGF0YSB3cmFwcGVyIHVuZGVyIHRlc3QgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25u ZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UuIikKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2Ns YXNzIFRlc3RGb3JlaWduRGF0YVdyYXBwZXJBZGQ6CisgICAgZGVmIHRlc3RfZm9yZWlnbl9kYXRh X3dyYXBwZXJfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEgdmFsaWQgSFRUUCByZXF1ZXN0IHRvIGFkZCBhIGZv cmVpZ24gZGF0YSB3cmFwcGVyCisgICAgICAgIEl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAg ICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisg ICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX2RhdGFfd3JhcHBlci9vYmovJworCisgICAg ICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10K KyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisg ICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5k Yl9pZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzY2hlbWFf ZGF0YVsiZGJfbmFtZSJdCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50 X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgc2VsZi5kYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyWyJkYl9wYXNzd29yZCJd KQorCisgICAgICAgIGRiX2NvblsiaW5mbyJdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAg ICAgICAgIkRhdGFiYXNlIGNvbm5lY3RlZC4iLAorICAgICAgICAgICAgbXNnPSdDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4nKQorCiAgICAgICAgIHNlbGYuZGF0YSA9IGZkd191dGlscy5n ZXRfZmR3X2RhdGEoc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSkKICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsg c3RyKHNlbGYuZGJfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYu ZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorCisgICAgICAg IGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKGpzb25fcmVzcG9uc2UsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JlaWduX2RhdGFfd3JhcHBlcics CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZ2FkbWluLm5vZGUu Zm9yZWlnbl9kYXRhX3dyYXBwZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn aWNvbi1mb3JlaWduX2RhdGFfd3JhcHBlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGF0YVsnbmFtZSddKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgRkRXIGFuZCBkaXNjb25uZWN0 IHRoZSB0ZXN0IGRhdGFiYXNlICIiIgotICAgICAgICBmZHdfdXRpbHMuZGVsZXRlX2ZkdyhzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmRhdGFbIm5hbWUiXSkKLSAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAg ICBpZiBoYXNhdHRyKHNlbGYsICdkYXRhJyk6CisgICAgICAgICAgICBmZHdfdXRpbHMuZGVsZXRl X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmRhdGFbIm5hbWUiXSkKKyAgICAg ICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIs IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0 cy90ZXN0X2Zkd19kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X2Rl bGV0ZS5weQppbmRleCA3M2ZhMDdlZC4uOTRlM2UyOWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3Jh cHBlcnMvdGVzdHMvdGVzdF9mZHdfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVz dHMvdGVzdF9mZHdfZGVsZXRlLnB5CkBAIC0xMSw1NiArMTEsNzYgQEAgZnJvbSBfX2Z1dHVyZV9f IGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRh YmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRt aW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGls cwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmZHdfdXRpbHMKIAogCi1jbGFzcyBGRFdERGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxl dGUgZm9yZWlnbiBkYXRhIHdyYXBwZXJzIHVuZGVyIHRlc3QgZGF0YWJhc2UuIiIiCi0gICAgc2tp cF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWyAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgZm9yZWlnbl9kYXRhX3dyYXBwZXIgbm9kZS4KLSAgICAgICAgKCdDaGVj ayBGRFcgTm9kZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9kYXRhX3dy YXBwZXIvb2JqLycpKV0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9uIGFuZCBmb3JlaWduIGRhdGEgd3JhcHBlci4i IiIKLSAgICAgICAgc3VwZXIoRkRXRERlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAg ICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxm LmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0g ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSdd CitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Rm9yZWln bkRhdGFXcmFwcGVyRGVsZXRlOgorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fZGF0YV93cmFwcGVyX2Rl bGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gc2VuZGluZyBhIEhUVFAgcmVxdWVzdCB0byBkZWxldGUgYSBmb3JlaWduIGRhdGEg d3JhcHBlcgorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICBzZWxm LnNlcnZlcl9pbmZvcm1hdGlvbiA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlv biddCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQn XQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfaW5mb3JtYXRpb25bInNlcnZlcl9pZCJdCisK KyAgICAgICAgdXJsID0gJy9icm93c2VyL2ZvcmVpZ25fZGF0YV93cmFwcGVyL29iai8nCisKKyAg ICAgICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24n XQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gc2NoZW1hX2RhdGFbImRiX25hbWUiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0g c2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KICAgICAgICAgc2VsZi5mZHdfbmFtZSA9ICJmZHdf ezB9Ii5mb3JtYXQoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mZHdfaWQg PSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAg ICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlcnZlciwgc2VsZi5kYl9uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25h bWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3 aWxsIGZldGNoIGZvcmVpZ24gZGF0YSB3cmFwcGVyIHByZXNlbnQgdW5kZXIgdGVzdAotICAgICAg ICAgZGF0YWJhc2UuIiIiCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90 IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAg ZmR3X3Jlc3BvbnNlID0gZmR3X3V0aWxzLnZlcmlmeV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5m ZHdfbmFtZSkKLSAgICAgICAgaWYgbm90IGZkd19yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRkRXLiIpCi0gICAgICAgIGRlbGV0ZV9yZXNwb25z ZSA9IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVybCArCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2 ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdfaWQpLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAg ICAgICAgICBzZWxmLnRlc3RlciwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgc2VsZi5kYl9pZCwKKyAgICAg ICAgICAgIHNlcnZlclsiZGJfcGFzc3dvcmQiXSkKKworICAgICAgICBkYl9jb25bImluZm8iXSB8 IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICJEYXRhYmFzZSBjb25uZWN0ZWQuIiwK KyAgICAgICAgICAgIG1zZz0nQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuJykKKworICAg ICAgICBmZHdfdXRpbHMudmVyaWZ5X2ZkdyhzZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mZHdf bmFtZSkgfCBcCisgICAgICAgICAgICBzaG91bGQubm90X2JlLm5vbmUKKworICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSh1cmwgKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5mZHdf aWQpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdGb3JlaWduIERhdGEg V3JhcHBlciBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25u ZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkcm9wIGFkZGVkIGV4dGVuc2lvbgotICAgICAgICAg YW5kIGRlcGVuZGFudCBvYmplY3RzLiIiIgotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgc2VsZi50ZXN0ZXIsCisg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pbmZvcm1hdGlvblsnc2VydmVyX2lkJ10sCisgICAgICAg ICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0 X2Zkd19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X2dldC5weQppbmRl eCA4MGE4ZWQxNC4uMGYzZGU0ZTEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVzdHMv dGVzdF9mZHdfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvdGVzdHMvdGVzdF9mZHdfZ2V0 LnB5CkBAIC0xMSw1MyArMTEsNjIgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j dGlvbgogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMg ZmR3X3V0aWxzCiAKIAotY2xhc3MgRkRXREdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBmb3JlaWduIGRhdGEgd3JhcHBlcnMgdW5kZXIg dGVzdCBkYXRhYmFzZS4gIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAg c2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmb3JlaWdu X2RhdGFfd3JhcHBlciBub2RlLgotICAgICAgICAoJ0NoZWNrIEZEVyBOb2RlJywKLSAgICAgICAg IGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX2RhdGFfd3JhcHBlci9vYmovJykpCi0gICAgXQot Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNy ZWF0ZSBleHRlbnNpb24gYW5kIGZvcmVpZ24gZGF0YSB3cmFwcGVyLiIiIgotICAgICAgICBzdXBl cihGRFdER2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0 YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBz ZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KK0BweXRlc3QubWFyay5za2lw X2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RGb3JlaWduRGF0YVdyYXBwZXJHZXQ6Cisg ICAgZGVmIHRlc3RfZm9yZWlnbl9kYXRhX3dyYXBwZXJfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRl eHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGEgdmFsaWQg SFRUUCByZXF1ZXN0IHRvIGFkZCBhIGZvcmVpZ24gZGF0YSB3cmFwcGVyCisgICAgICAgIEl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFs aXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX2Rh dGFfd3JhcHBlci9vYmovJworCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9kYXRhWydz ZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2RhdGFbJ2RiX2lkJ10KKyAg ICAgICAgc2VsZi5kYl9uYW1lID0gc2NoZW1hX2RhdGFbImRiX25hbWUiXQorICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KICAgICAgICAgc2VsZi5m ZHdfbmFtZSA9ICJmZHdfezB9Ii5mb3JtYXQoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAg ICAgc2VsZi5mZHdfaWQgPSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAorICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYu c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmZkd19uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCBmZXRjaCBmb3JlaWduIGRhdGEgd3JhcHBlciBwcmVzZW50IHVuZGVyIHRlc3QK LSAgICAgICAgIGRhdGFiYXNlLiIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisg ICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAor ICAgICAgICAgICAgc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAs CisgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuZGJfaWQsCisg ICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKKworICAgICAgICBkYl9jb25b ImluZm8iXSB8IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICJEYXRhYmFzZSBjb25u ZWN0ZWQuIiwKKyAgICAgICAgICAgIG1zZz0nQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2Uu JykKKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAg ICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQp ICsgJy8nICsgc3RyKHNlbGYuZmR3X2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rp b24gZGVsZXRlIHRoZSBGRFcgYW5kIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UgIiIiCiAg ICAgICAgIGZkd191dGlscy5kZWxldGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNl bGYuZmR3X25hbWUpCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uo c2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKKworICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3RlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9y ZWlnbl9kYXRhX3dyYXBwZXJzL3Rlc3RzL3Rlc3RfZmR3X3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBl cnMvdGVzdHMvdGVzdF9mZHdfcHV0LnB5CmluZGV4IGNlYzAyNjRiLi4wZWNiZWM3MyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19wdXQucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0 YV93cmFwcGVycy90ZXN0cy90ZXN0X2Zkd19wdXQucHkKQEAgLTEyLDYzICsxMiw2OSBAQCBmcm9t IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1 aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZkd191dGlscwogCiAKLWNs YXNzIEZEV0RQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFz cyB3aWxsIHVwZGF0ZSBmb3JlaWduIGRhdGEgd3JhcHBlcnMgdW5kZXIgdGVzdCBkYXRhYmFzZS4i IiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLQotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZm9yZWlnbl9kYXRhX3dyYXBwZXIg bm9kZS4KLSAgICAgICAgKCdDaGVjayBGRFcgTm9kZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jy b3dzZXIvZm9yZWlnbl9kYXRhX3dyYXBwZXIvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgZXh0ZW5zaW9u IGFuZCBmb3JlaWduIGRhdGEgd3JhcHBlci4iIiIKLSAgICAgICAgc3VwZXIoRkRXRFB1dFRlc3RD YXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVt YV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0 YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNj aGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydn cGRiJ10pCitjbGFzcyBUZXN0Rm9yZWlnbkRhdGFXcmFwcGVyUHV0OgorICAgIGRlZiB0ZXN0X2Zv cmVpZ25fZGF0YV93cmFwcGVyX3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBhIEhUVFAgcmVxdWVzdCB0byBwdXQg YSBmb3JlaWduIGRhdGEgd3JhcHBlciB1cGRhdGUKKyAgICAgICAgSXQgcmV0dXJucyAyMDAgc3Rh dHVzCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVh ckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2ZvcmVpZ25fZGF0YV93cmFwcGVyL29i ai8nCisKKyAgICAgICAgc2NoZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5m b3JtYXRpb24nXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCisg ICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRi X25hbWUgPSBzY2hlbWFfZGF0YVsiZGJfbmFtZSJdCiAgICAgICAgIHNlbGYuZmR3X25hbWUgPSAi ZmR3X3B1dF97MH0iLmZvcm1hdChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxm LmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFt ZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3 aWxsIGZldGNoIGZvcmVpZ24gZGF0YSB3cmFwcGVyIHByZXNlbnQgdW5kZXIKLSAgICAgICAgICAg IHRlc3QgZGF0YWJhc2UuICIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25u ZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGlm IG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0gICAg ICAgIGZkd19yZXNwb25zZSA9IGZkd191dGlscy52ZXJpZnlfZmR3KHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZmR3X25hbWUpCi0gICAgICAgIGlmIG5vdCBmZHdfcmVzcG9uc2U6Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIEZEVy4iKQorICAgICAgICBmZHdfaWQgPSBm ZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZkd19uYW1lKQorCisgICAgICAgIHNl bGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAg ICAgc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAg ICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgIHNlbGYuZGJfaWQsCisgICAgICAgICAg ICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKKworICAgICAgICBkYl9jb25bImluZm8iXSB8 IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICJEYXRhYmFzZSBjb25uZWN0ZWQuIiwK KyAgICAgICAgICAgIG1zZz0nQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuJykKKworICAg ICAgICBmZHdfdXRpbHMudmVyaWZ5X2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxm LmZkd19uYW1lKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5ub3RfYmUubm9uZQorCiAgICAgICAg IGRhdGEgPSB7CiAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBGRFcgdXBkYXRl IGNvbW1lbnQiLAotICAgICAgICAgICAgImlkIjogc2VsZi5mZHdfaWQKKyAgICAgICAgICAgICJp ZCI6IGZkd19pZAogICAgICAgICB9CisKICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0 ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0 cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLmZkd19pZCksCisgICAgICAgICAgICBzdHIo c2VsZi5kYl9pZCkgKyAnLycgKyBzdHIoZmR3X2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5k dW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAg ICAgcHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUg dGhlIEZEVyBhbmQgZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZSAiIiIKICAgICAgICAgZmR3 X3V0aWxzLmRlbGV0ZV9mZHcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mZHdfbmFt ZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRh YmFzZSgKKyAgICAgICAgICAgIHNlbGYudGVzdGVyLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCisgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9sYW5ndWFnZXMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYjA1OWQ0MTQuLjU5MDAyNmFk IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvX19p bml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVu ZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBM YW5ndWFnZVRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0 X2xhbmd1YWdlX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9hZGQucHkKaW5kZXgg OGZkNjc3OWQuLmIyMjEzMGUxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3RzL3Rlc3RfbGFuZ3VhZ2Vf YWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9hZGQucHkKQEAgLTEyLDI2ICsx MiwzNiBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNv bgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3Vs ZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGls cy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFz c2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBsYW5ndWFnZV91dGls cwogCiAKLWNsYXNzIExhbmd1YWdlc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgnTGFuZ3VhZ2UgYWRkIHRlc3QgY2FzZScsIGRpY3QodXJsPScvYnJvd3Nlci9sYW5ndWFnZS9v YmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xh c3MgVGVzdExhbmd1YWdlc0FkZDoKKyAgICBkZWYgdGVzdF9sYW5ndWFnZV9hZGQoc2VsZiwgcmVx dWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBs YW5ndWFnZSBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvbGFuZ3VhZ2Uvb2Jq LycKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoTGFuZ3VhZ2VzQWRkVGVz dENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5z ZXJ2ZXJfZGF0YVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFb J2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsiZGJfbmFt ZSJdCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9y bWF0aW9uJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2NoZW1hX2RhdGFbImRiX25hbWUiXQog ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLApAQCAtMzksMTEgKzQ5LDcgQEAgY2xhc3MgTGFuZ3VhZ2VzQWRk VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZv Il0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgbGFuZ3VhZ2UgdW5kZXIgdGVz dCBkYXRhYmFzZS4iIiIKLQogICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1l J10KLQogICAgICAgICBzZWxmLmRhdGEgPSB7CiAgICAgICAgICAgICAibGFuYWNsIjogW10sCiAg ICAgICAgICAgICAibGFuaW5sIjogImJ0aW50MnNvcnRzdXBwb3J0IiwKQEAgLTY1LDE4ICs3MSwy NSBAQCBjbGFzcyBMYW5ndWFnZXNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgIH0KIAogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycsCiAgICAgICAgICAg ICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAor ICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdsYW5ndWFnZScsCisgICAg ICAgICAgICAncGdhZG1pbi5ub2RlLmxhbmd1YWdlJywKKyAgICAgICAgICAgIEZhbHNlLAorICAg ICAgICAgICAgJ2ljb24tbGFuZ3VhZ2UnLAorICAgICAgICAgICAgc2VsZi5kYXRhWyduYW1lJ10K KyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1 bmN0aW9uIGRlbGV0ZSBhZGRlZCBsYW5ndWFnZSBhbmQKLSAgICAgICAgZGlzY29ubmVjdCB0aGUg dGVzdCBkYXRhYmFzZS4iIiIKLQogICAgICAgICBsYW5ndWFnZV91dGlscy5kZWxldGVfbGFuZ3Vh Z2UoCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmRhdGFbJ25h bWUnXQogICAgICAgICApCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5ndWFnZV9kZWxldGUucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFu Z3VhZ2VzL3Rlc3RzL3Rlc3RfbGFuZ3VhZ2VfZGVsZXRlLnB5CmluZGV4IDZhYzI0ZDYyLi41NzUz YmQ0MiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX2RlbGV0ZS5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFu Z3VhZ2VzL3Rlc3RzL3Rlc3RfbGFuZ3VhZ2VfZGVsZXRlLnB5CkBAIC0xMSwyNCArMTEsMzQgQEAg ZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRh YmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNw b25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20g LiBpbXBvcnQgdXRpbHMgYXMgbGFuZ3VhZ2VfdXRpbHMKIAogCi1jbGFzcyBMYW5ndWFnZXNEZWxl dGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAoJ0xhbmd1YWdlIGRlbGV0ZSB0ZXN0IGNhc2UnLCBkaWN0KHVybD0nL2Jyb3dzZXIvbGFuZ3Vh Z2Uvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RMYW5ndWFnZXNEZWxldGU6CisgICAgZGVmIHRl c3RfbGFuZ3VhZ2VfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgbGFuZ3VhZ2UgZGVsZXRlIHJlcXVlc3QgaXMgc2Vu ZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAg IiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL2xhbmd1YWdlL29iai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6 Ci0gICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbInNlcnZlcl9p ZCJdCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFz ZSddWy0xXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCiAg ICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCi0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbImRiX25hbWUiXQorICAgICAgICBzZWxmLmRi X25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KICAgICAgICAgc2VsZi5sYW5nX25h bWUgPSAibGFuZ3VhZ2VfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogCiAgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKQEAgLTM3LDE5ICs0 NywyNCBAQCBjbGFzcyBMYW5ndWFnZXNEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0 ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UuIikKKwogICAgICAgICBzZWxmLmxhbmd1YWdlX2lkID0gbGFuZ3VhZ2VfdXRpbHMu Y3JlYXRlX2xhbmd1YWdlKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxhbmdf bmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHdpbGwgZGVsZXRlIGxhbmd1YWdlIHVuZGVyIHRlc3QgZGF0YWJhc2UuIiIiCi0KICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoInswfXsxfS97Mn0vezN9L3s0fSIuZm9ybWF0 KAotICAgICAgICAgICAgc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAgICB1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCiAgICAgICAgICAgICBzZWxmLmxhbmd1YWdlX2lkKSwg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCisgICAgICAg IHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAg anNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVx dWFsLnRvKAorICAgICAgICAgICAgJ0xhbmd1YWdlIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5Cisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25l CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNo b3VsZC5iZS5lcXVhbC50bygxKQogCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2Vz L3Rlc3RzL3Rlc3RfbGFuZ3VhZ2VfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX2dl dC5weQppbmRleCAyYWFhMjJmNi4uMjYwNjUwOTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVz dF9sYW5ndWFnZV9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX2dldC5weQpA QCAtMTEsNDggKzExLDY0IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24K IAogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2Vu ZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3Rz X2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pz b25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGxhbmd1YWdlX3V0aWxzCiAKIAot Y2xhc3MgTGFuZ3VhZ2VzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgKCdMYW5ndWFnZSBnZXQgdGVzdCBjYXNlJywgZGljdCh1cmw9Jy9i cm93c2VyL2xhbmd1YWdlL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0TGFuZ3VhZ2VzQWRkOgor ICAgIGRlZiB0ZXN0X2xhbmd1YWdlX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3Rz KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGxhbmd1YWdlIGdldCByZXF1ZXN0IGlz IHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAg ICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisg ICAgICAgIHVybCA9ICcvYnJvd3Nlci9sYW5ndWFnZS9vYmovJwogCi0gICAgZGVmIHNldFVwKHNl bGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJh c2UiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWyJzZXJ2 ZXJfaWQiXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0 YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0 X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVy J10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQn XQogICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQotICAgICAg ICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWyJkYl9uYW1lIl0KKyAgICAgICAgc2No ZW1hX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAg ICBzZWxmLmRiX25hbWUgPSBzY2hlbWFfZGF0YVsiZGJfbmFtZSJdCiAgICAgICAgIHNlbGYubGFu Z19uYW1lID0gImxhbmd1YWdlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKwogICAgICAg ICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dS T1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJE YXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzZWxmLmxhbmd1YWdlX2lkID0g bGFuZ3VhZ2VfdXRpbHMuY3JlYXRlX2xhbmd1YWdlKHNlbGYuc2VydmVyLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmxhbmdfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IHRoZSBsYW5ndWFnZSB1bmRlciB0ZXN0IGRhdGFiYXNl LiIiIgotCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KCJ7MH17MX0vezJ9L3sz fS97NH0iLmZvcm1hdCgKLSAgICAgICAgICAgIHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAorICAgICAgICAgICAgdXJsLCB1dGlscy5TRVJW RVJfR1JPVVAsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAogICAgICAgICAgICAgc2VsZi5s YW5ndWFnZV9pZCksIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgYWRkZWQgbGFuZ3VhZ2UgYW5kCi0g ICAgICAgICAgICAgICBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgorICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5i ZS5lcXVhbC50byhzZWxmLmxhbmdfbmFtZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgndHJ1c3RlZCcpID4gc2hvdWxkLmJlLmVxdWFsLnRydWUKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnYWNsJykgPiBzaG91bGQuYmUubm9uZQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkZXNjcmlwdGlvbicpID4gc2hv dWxkLmJlLm5vbmUKIAotICAgICAgICBsYW5ndWFnZV91dGlscy5kZWxldGVfbGFuZ3VhZ2Uoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYubGFuZ19uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgIGRlZiB0ZWFy RG93bihzZWxmKToKKyAgICAgICAgbGFuZ3VhZ2VfdXRpbHMuZGVsZXRlX2xhbmd1YWdlKAorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5sYW5nX25hbWUKKyAgICAg ICAgKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL3Rlc3Rz L3Rlc3RfbGFuZ3VhZ2VfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX3B1dC5weQpp bmRleCBiYTRkMGViOS4uNmYyZmE5YmYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvdGVzdHMvdGVzdF9sYW5n dWFnZV9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2xhbmd1YWdlcy90ZXN0cy90ZXN0X2xhbmd1YWdlX3B1dC5weQpAQCAtMTIs MjQgKzEyLDM1IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9y dCBqc29uCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1w b3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVz dF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMu dGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgbGFuZ3VhZ2VfdXRpbHMK IAogCi1jbGFzcyBMYW5ndWFnZXNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAg c2NlbmFyaW9zID0gWwotICAgICAgICAoJ0xhbmd1YWdlIHVwZGF0ZSB0ZXN0IGNhc2UnLCBkaWN0 KHVybD0nL2Jyb3dzZXIvbGFuZ3VhZ2Uvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RMYW5ndWFn ZXNQdXQ6CisgICAgZGVmIHRlc3RfbGFuZ3VhZ2VfcHV0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRf b2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgbGFuZ3VhZ2UgcHV0IHJl cXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0 dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRv d24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2xhbmd1YWdlL29iai8nCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9k aWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3Nl cnZlcl9pZCddCiAgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCdd Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbImRiX25hbWUiXQorICAg ICAgICBzY2hlbWFfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbidd CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNjaGVtYV9kYXRhWyJkYl9uYW1lIl0KICAgICAgICAg c2VsZi5sYW5nX25hbWUgPSAibGFuZ3VhZ2VfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQog ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLApAQCAtMzcsMjggKzQ4LDM1IEBAIGNsYXNzIExhbmd1YWdlc1B1dFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX2lkKQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0g PT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNlbGYubGFuZ3VhZ2Vf aWQgPSBsYW5ndWFnZV91dGlscy5jcmVhdGVfbGFuZ3VhZ2Uoc2VsZi5zZXJ2ZXIsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYubGFuZ19uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGxhbmd1YWdlIHVuZGVyIHRlc3Qg ZGF0YWJhc2UuIiIiCi0KICAgICAgICAgZGF0YSA9IFwKICAgICAgICAgICAgIHsKICAgICAgICAg ICAgICAgICAiaWQiOiBzZWxmLmxhbmd1YWdlX2lkLAogICAgICAgICAgICAgICAgICJkZXNjcmlw dGlvbiI6ICJUaGlzIGlzIHRlc3QgY29tbWVudC4iCiAgICAgICAgICAgICB9CiAgICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KCJ7MH17MX0vezJ9L3szfS97NH0iLmZvcm1hdCgKLSAg ICAgICAgICAgIHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkLAorICAgICAgICAgICAgdXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkLAogICAgICAgICAgICAgc2VsZi5sYW5ndWFnZV9pZCksIGRhdGE9 anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAg IGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgYWRk ZWQgbGFuZ3VhZ2UgYW5kCi0gICAgICAgIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIi CisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkK KyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25z ZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAg ICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2xhbmd1YWdlJywKKyAgICAgICAgICAgICdw Z2FkbWluLm5vZGUubGFuZ3VhZ2UnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAn aWNvbi1sYW5ndWFnZScsCisgICAgICAgICAgICBzZWxmLmxhbmdfbmFtZQorICAgICAgICApCiAK LSAgICAgICAgbGFuZ3VhZ2VfdXRpbHMuZGVsZXRlX2xhbmd1YWdlKHNlbGYuc2VydmVyLCBzZWxm LmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxh bmdfbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICBkZWYgdGVhckRvd24oc2VsZik6Cisg ICAgICAgIGxhbmd1YWdlX3V0aWxzLmRlbGV0ZV9sYW5ndWFnZSgKKyAgICAgICAgICAgIHNlbGYu c2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYubGFuZ19uYW1lCisgICAgICAgICkKKyAgICAgICAg ZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNl bGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvX19pbml0X18ucHkKaW5kZXggY2NkMDgxYzQu Ljc2MWNiMDI3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvX19pbml0X18ucHkKQEAgLTcsNyArNyw3IEBACiAjCiAj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogCiBjbGFzcyBDb2xsYXRpb25UZXN0R2VuZXJhdG9yKEJh c2VUZXN0R2VuZXJhdG9yKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9j b2xsYXRpb25fYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9hZGQu cHkKaW5kZXggM2MyYTkzMWYuLjBlMmMxMGZlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rl c3RzL3Rlc3RfY29sbGF0aW9uX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3RzL3Rlc3Rf Y29sbGF0aW9uX2FkZC5weQpAQCAtMTAsMjkgKzEwLDM5IEBACiBpbXBvcnQganNvbgogaW1wb3J0 IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBv cnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zy b21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CiAKIAotY2xhc3MgQ29sbGF0aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAg ICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsK LSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgY29sbGF0aW9uIG5vZGUuCi0gICAg ICAgICgnRGVmYXVsdCBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9jb2xsYXRpb24vb2Jq LycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNz IFRlc3RDb2xsYXRpb25BZGQ6CisgICAgZGVmIHRlc3RfY29sbGF0aW9uX2FkZChzZWxmLCByZXF1 ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGNv bGxhdGlvbiBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvY29sbGF0aW9uL29i ai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKENvbGxhdGlvbkFkZFRl c3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVu dF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYu ZGF0YWJhc2VfaW5mb1siZGJfbmFtZSJdCi0gICAgICAgICMgQ2hhbmdlIHRoZSBkYiBuYW1lLCBz byB0aGF0IHNjaGVtYSB3aWxsIGNyZWF0ZSBpbiBuZXdseSBjcmVhdGVkIGRiCisgICAgICAgIHNl bGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAg c2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5kYl9uYW1l ID0gc2NoZW1hX2RhdGFbImRiX25hbWUiXQogICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gInNj aGVtYV9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorCiAgICAgICAgIGNvbm5lY3Rp b24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddLApAQCAtNDIsMTUgKzUyLDEzIEBAIGNsYXNzIENvbGxhdGlvbkFkZFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgc2VsZi5zY2hlbWFfZGV0YWlscyA9 IHNjaGVtYV91dGlscy5jcmVhdGVfc2NoZW1hKGNvbm5lY3Rpb24sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l KQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJk Yl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uo c2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBjb2xsYXRpb24uIikKKyAgICAgICAg ZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFi YXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg Y29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVtYV9pZCA9IHNlbGYuc2NoZW1h X2RldGFpbHNbMF0KICAgICAgICAgc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kZXRhaWxzWzFd CiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhz ZWxmLnNlcnZlciwKQEAgLTU5LDIwICs2NywzMCBAQCBjbGFzcyBDb2xsYXRpb25BZGRUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8g YWRkIHRoZSBjb2xsYXRpb24uIikKIAorICAgICAgICBjb2xsYXRpb25fbmFtZSA9ICJjb2xsYXRp b25fYWRkXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgZGF0YSA9IHsKICAg ICAgICAgICAgICJjb3B5X2NvbGxhdGlvbiI6ICJwZ19jYXRhbG9nLlwiQ1wiIiwKLSAgICAgICAg ICAgICJuYW1lIjogImNvbGxhdGlvbl9hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XSwK KyAgICAgICAgICAgICJuYW1lIjogY29sbGF0aW9uX25hbWUsCiAgICAgICAgICAgICAib3duZXIi OiBzZWxmLnNlcnZlclsidXNlcm5hbWUiXSwKICAgICAgICAgICAgICJzY2hlbWEiOiBzY2hlbWFf bmFtZQogICAgICAgICB9Ci0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArICcv JyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSAr ICcvJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBk YXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQp CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3Ry KHNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25z ZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pz b25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAg ICAgICAgICAgJ2NvbGxhdGlvbicsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmNvbGxhdGlv bicsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWNvbGxhdGlvbicsCisg ICAgICAgICAgICBjb2xsYXRpb25fbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRvd24o c2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nv bm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9kZWxldGUucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9j b2xsYXRpb25zL3Rlc3RzL3Rlc3RfY29sbGF0aW9uX2RlbGV0ZS5weQppbmRleCBhZGQ4ZDU2YS4u NGViNjJlZTUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25f ZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fZGVsZXRl LnB5CkBAIC05LDI2ICs5LDM2IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgY29sbGF0aW9uX3V0aWxzCiAKIAotY2xhc3MgQ29sbGF0aW9uRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVs ZXRlIGFkZGVkIGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgc2tpcF9vbl9k YXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5n IGRlZmF1bHQgVVJMIGZvciBjb2xsYXRpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBjb2xsYXRp b24gTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sbGF0aW9uL29iai8nKSkKLSAgICBd CitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q29sbGF0 aW9uRGVsZXRlOgorICAgIGRlZiB0ZXN0X2NvbGxhdGlvbl9kZWxldGUoc2VsZiwgcmVxdWVzdCwg Y29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBjb2xsYXRp b24gZGVsZXRlIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1 cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2NvbGxhdGlvbi9vYmov JworCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFz ZSddWy0xXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisg ICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKENvbGxhdGlvbkRlbGV0ZVRlc3RDYXNlLCBzZWxm KS5zZXRVcCgpCiAgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJz Y2hlbWEiXVstMV0KICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9b InNjaGVtYV9uYW1lIl0KICAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQpAQCAtMzgsMzIgKzQ4LDM2IEBAIGNsYXNzIENvbGxh dGlvbkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xsX25hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1 bmN0aW9uIHdpbGwgZGVsZXRlIGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAg ICAgIHNlcnZlcl9pZCA9IHNlbGYuc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRi X2lkID0gc2VsZi5zY2hlbWFfaW5mb1siZGJfaWQiXQogICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCkKLSAgICAgICAg aWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAg ICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQog CiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhz ZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBz Y2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIGNvbGxhdGlvbi4iKQorCiAgICAgICAgIGNvbGxh dGlvbl9pZCA9IHNlbGYuY29sbGF0aW9uWzBdCiAgICAgICAgIHNjaGVtYV9pZCA9IHNlbGYuc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVy LmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKyBzdHIoCi0gICAgICAgICAgICAgICAgc2VydmVyX2lkKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoZGJfaWQpICsgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycgKyBzdHIoY29sbGF0 aW9uX2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJf aWQpICsgJy8nICsgc3RyKHNjaGVtYV9pZCkgKyAnLycgKyBzdHIoY29sbGF0aW9uX2lkKSwKICAg ICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMoZ2V0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29ubmVj dCBkYXRhYmFzZSB0byBkZWxldGUgaXQKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25z ZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAg ICAgICAgICAgJ0NvbGxhdGlvbiBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1 YWwudG8oMSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgcGFzcworICAgICAg ICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwg c2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3Rlc3RzL3Rl c3RfY29sbGF0aW9uX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25f Z2V0LnB5CmluZGV4IDlhNWViMjA3Li4xNzY3MjYwMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9u cy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90 ZXN0X2NvbGxhdGlvbl9nZXQucHkKQEAgLTksMjYgKzksMzYgQEAKIAogaW1wb3J0IHV1aWQKIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAg ICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVy dF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBjb2xsYXRpb25fdXRpbHMKIAogCi1jbGFz cyBDb2xsYXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMg Y2xhc3Mgd2lsbCBmZXRjaCBuZXcgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAg ICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGNvbGxhdGlvbiBub2RlLgotICAgICAgICAoJ0Zl dGNoIGNvbGxhdGlvbiBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9jb2xsYXRpb24vb2Jq LycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNz IFRlc3RDb2xsYXRpb25HZXQ6CisgICAgZGVmIHRlc3RfY29sbGF0aW9uX2dldChzZWxmLCByZXF1 ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGNv bGxhdGlvbiBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvY29sbGF0aW9uL29i ai8nCisKKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFi YXNlJ11bLTFdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9j bGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KIAotICAgIGRl ZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoQ29sbGF0aW9uR2V0VGVzdENhc2UsIHNlbGYp LnNldFVwKCkKICAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNj aGVtYSJdWy0xXQogICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1si c2NoZW1hX25hbWUiXQogICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJk YXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCkBAIC0zOCwzMiArNDgsNDUgQEAgY2xhc3MgQ29sbGF0 aW9uR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbGxfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBmZXRjaCBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgICAgICBz ZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9 IHNlbGYuc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdl dF9kYl9jb25uZWN0aW9uKHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3Jk J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCisgICAgICAgIHNlbGYuc2NoZW1h X2RldGFpbHMgPSBzY2hlbWFfdXRpbHMuY3JlYXRlX3NjaGVtYShjb25uZWN0aW9uLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSkKKwogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJp bmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCiAgICAgICAgIHNjaGVtYV9y ZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0g ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikK KyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0 byBhZGQgdGhlIGNvbGxhdGlvbi4iKQorCiAgICAgICAgIGNvbGxhdGlvbl9pZCA9IHNlbGYuY29s bGF0aW9uWzBdCiAgICAgICAgIHNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bInNjaGVtYV9p ZCJdCi0gICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAg IHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCi0gICAgICAg ICAgICAgICAgc2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8n ICsgc3RyKHNjaGVtYV9pZCkgKyAnLycgKyBzdHIoY29sbGF0aW9uX2lkKSwKKyAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCkg KyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsgc3RyKHNjaGVtYV9p ZCkgKyAnLycgKyBzdHIoY29sbGF0aW9uX2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZ2V0X3Jlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29ubmVjdCBkYXRhYmFzZSB0byBkZWxldGUgaXQK LSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJf aWQsIGRiX2lkKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn b2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4g XAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKGNvbGxfbmFtZSkKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGVzY3JpcHRpb24nKSA+IHNob3VsZC5iZS5u b25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NjaGVtYScpID4g c2hvdWxkLmJlXAorICAgICAgICAgICAgLmVxdWFsKHNlbGYuc2NoZW1hX25hbWUpCiAKICAgICBk ZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu Y2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90ZXN0cy90ZXN0X2NvbGxhdGlvbl9wdXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9jb2xsYXRpb25zL3Rlc3RzL3Rlc3RfY29sbGF0aW9uX3B1dC5weQppbmRleCA0Yzdh ZTc3NS4uZjllMDIxZTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xs YXRpb25fcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvdGVzdHMvdGVzdF9jb2xsYXRpb25fcHV0 LnB5CkBAIC0xMCw1MiArMTAsNjAgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBv cnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQg XAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRh dGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jl c3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQog ZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBv cnQgdXRpbHMgYXMgY29sbGF0aW9uX3V0aWxzCiAKIAotY2xhc3MgQ29sbGF0aW9uUHV0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGFk ZGVkIGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFz ZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1 bHQgVVJMIGZvciBjb2xsYXRpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBjb2xsYXRpb24gTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sbGF0aW9uL29iai8nKSkKLSAgICBdCitAcHl0 ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q29sbGF0aW9uUHV0 OgorICAgIGRlZiB0ZXN0X2NvbGxhdGlvbl9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBjb2xsYXRpb24gcHV0IHJlcXVl c3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMK KyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24p CisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2NvbGxhdGlvbi9vYmovJworCisgICAgICAgIHNl bGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAg c2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9kYXRhID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAgc2VsZi5kYl9uYW1l ID0gc2NoZW1hX2RhdGFbImRiX25hbWUiXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAg ICBzdXBlcihDb2xsYXRpb25QdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQogICAgICAgICBzZWxm LnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCiAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAg IHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1l Il0KICAgICAgICAgY29sbF9uYW1lID0gImNvbGxhdGlvbl9nZXRfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQogICAgICAgICBzZWxmLmNvbGxhdGlvbiA9IGNvbGxhdGlvbl91dGlscy5jcmVh dGVfY29sbGF0aW9uKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sbF9uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIg VGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIi IgotICAgICAgICBzZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAg ICAgICBkYl9pZCA9IHNlbGYuc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgIyBWZXJpZnkg ZGF0YWJhc2UKICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJd ID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKLSAgICAgICAgIyBWZXJpZnkgc2NoZW1h CisKICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYS4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCisKICAgICAgICAgIyBW ZXJpZnkgY29sbGF0aW9uCiAgICAgICAgIGNvbGxfbmFtZSA9IHNlbGYuY29sbGF0aW9uWzFdCiAg ICAgICAgIGNvbGxhdGlvbl9yZXNwb25zZSA9IGNvbGxhdGlvbl91dGlscy52ZXJpZnlfY29sbGF0 aW9uKHNlbGYuc2VydmVyLApAQCAtNzAsMTYgKzc4LDI1IEBAIGNsYXNzIENvbGxhdGlvblB1dFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJU aGlzIGlzIGNvbGxhdGlvbiB1cGRhdGUgY29tbWVudCIsCiAgICAgICAgICAgICAiaWQiOiBjb2xs YXRpb25faWQKICAgICAgICAgfQotICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5w dXQoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsgc3Ry KHNjaGVtYV9pZCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8n ICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihjb2xsYXRpb25f aWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKGRhdGEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25uZWN0IGRhdGFiYXNlIHRvIGRlbGV0 ZSBpdAotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNl cnZlcl9pZCwgZGJfaWQpCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQodXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsgc3RyKHNjaGVtYV9p ZCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoY29sbGF0aW9uX2lkKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAg IHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAg anNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAg ICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jl c3BvbnNlLAorICAgICAgICAgICAgJ2NvbGxhdGlvbicsCisgICAgICAgICAgICAncGdhZG1pbi5u b2RlLmNvbGxhdGlvbicsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWNv bGxhdGlvbicsCisgICAgICAgICAgICBjb2xsX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRl YXJEb3duKHNlbGYpOgotICAgICAgICBwYXNzCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVu dF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rl c3RzL19faW5pdF9fLnB5CmluZGV4IDA5NjU1ZjEzLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL19faW5pdF9f LnB5CkBAIC02LDEwICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgRG9tYWlu VGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFp bl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2FkZC5weQppbmRleCBmYjdl NjZjYi4uYWE5MDZhNjAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5f YWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fYWRkLnB5CkBAIC0xMCw0 NiArMTAsNTYgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGls cwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50 ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMu YmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAor ICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIERvbWFpbkFkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgZG9tYWlu IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKK2NsYXNzIFRlc3REb21haW5BZGQ6CisgICAgZGVmIHRl c3RfZG9tYWluX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIGRvbWFpbiBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAn L2Jyb3dzZXIvZG9tYWluL29iai8nCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRvbWFpbiBub2RlLgotICAgICAgICAoJ0ZldGNoIGRvbWFp biBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kb21haW4vb2JqLycpKQotICAgIF0KKyAg ICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6 Ci0gICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFf aW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1h X2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29u bmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBp ZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCi0g ICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRk IGRvbWFpbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgICAgIGRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFf aW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAg ICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxh dGlvbi4iKQotICAgICAgICBzY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAg ICAgICAgc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk Yl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBp ZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHRoZSBk b21haW4uIikKIAorICAgICAgICBkb21haW5fbmFtZSA9ICJkb21haW5fYWRkXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgImJhc2Vu c3AiOiBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICJiYXNlbnNwIjogc2VsZi5zY2hlbWFfbmFt ZSwKICAgICAgICAgICAgICJiYXNldHlwZSI6ICJjaGFyYWN0ZXIiLAogICAgICAgICAgICAgImNv bnN0cmFpbnRzIjogW3sKICAgICAgICAgICAgICAgICAiY29ubmFtZSI6ICJudW0iLApAQCAtNTgs MjEgKzY4LDMxIEBAIGNsYXNzIERvbWFpbkFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgICAgICJpc190bGVuZ3RoIjogVHJ1ZSwKICAgICAgICAgICAgICJtYXhfdmFsIjog MjE0NzQ4MzY0NywKICAgICAgICAgICAgICJtaW5fdmFsIjogMSwKLSAgICAgICAgICAgICJuYW1l IjogImRvbWFpbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAorICAgICAgICAg ICAgIm5hbWUiOiBkb21haW5fbmFtZSwKICAgICAgICAgICAgICJvd25lciI6IHNlbGYuc2VydmVy WyJ1c2VybmFtZSJdLAogICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAogICAgICAgICAgICAg InR5cGRlZmF1bHQiOiAiMSIsCiAgICAgICAgICAgICAidHlwbGVuIjogIjEwIgogICAgICAgICB9 CiAgICAgICAgICMgQ2FsbCBQT1NUIEFQSSB0byBhZGQgZG9tYWluCi0gICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucG9zdChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICcvJyArIHN0cihzY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK KworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDAp CisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9u c2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAg ICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdkb21haW4nLAorICAgICAgICAgICAgJ3Bn YWRtaW4ubm9kZS5kb21haW4nLAorICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICdpY29u LWRvbWFpbicsCisgICAgICAgICAgICBkb21haW5fbmFtZQorICAgICAgICApCiAKICAgICBkZWYg dGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3Rz L3Rlc3RfZG9tYWluX2RlbGV0ZS5weQppbmRleCA0YTQyZDQ4MS4uYjNmNzU0ZTEgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvdGVzdHMvdGVzdF9kb21haW5fZGVsZXRlLnB5CkBAIC05LDYyICs5LDc5IEBACiAKIGltcG9y dCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0 YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29u dmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVz cG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIGRvbWFpbl91dGlscwogCiAKLWNsYXNzIERvbWFpbkRlbGV0ZVRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0 ZSBuZXcgZG9tYWluIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGRvbWFpbiBub2RlLgotICAgICAgICAo J0ZldGNoIGRvbWFpbiBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9kb21haW4vZGVsZXRl LycpKQotICAgIF0KK2NsYXNzIFRlc3REb21haW5EZWxldGU6CisgICAgZGVmIHRlc3RfZG9tYWlu X2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIGRvbWFpbiBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNr ZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvZG9tYWluL29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rl c3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3Rb J2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2Ri X2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSdd CisKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSdd Wy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1h X25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVt YV9pZCddCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gYWRkIHRoZSBkb21haW4uIikKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2Vs Zi5kYXRhYmFzZV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9uYW1lIl0KLSAgICAgICAg c2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAg ICAgIHNlbGYuZG9tYWluX25hbWUgPSAiZG9tYWluX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgZG9tYWluX25hbWUgPSAiZG9tYWluX2RlbGV0ZV8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5kb21haW5faW5mbyA9IGRvbWFp bl91dGlscy5jcmVhdGVfZG9tYWluKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kb21haW5fbmFtZSkKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9uYW1lKQogCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGRvbWFp biB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgICAgIGRiX2lkID0gc2VsZi5kYXRhYmFzZV9p bmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1sic2Vy dmVyX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZ2V0IHRoZSBkb21haW4uIikKLSAgICAg ICAgZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfbmFtZSJdCi0gICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGdl dCB0aGUgZG9tYWluLiIpCiAgICAgICAgIGRvbWFpbl9pZCA9IHNlbGYuZG9tYWluX2luZm9bMF0K LSAgICAgICAgIyBDYWxsIEdFVCBBUEkgdG8gdmVyaWZ5IHRoZSBkb21haW4KLSAgICAgICAgZ2V0 X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VydmVyX2lk KSArICcvJyArCi0gICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIo c2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihkb21haW5faWQpLAogICAg ICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhnZXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVy dF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAn RG9tYWluIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQogCiAg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICBwYXNzCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5fZ2V0LnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFpbl9nZXQucHkKaW5kZXggNmI1ZWRjODQuLjdm Y2Y0YzYzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2dldC5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9kb21haW5zL3Rlc3RzL3Rlc3RfZG9tYWluX2dldC5weQpAQCAtOSw2MiArOSw3NiBA QAogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0 cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMg XAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIg aW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZG9tYWluX3V0aWxz CiAKIAotY2xhc3MgRG9tYWluR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIi IiBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggbmV3IGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4g IiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBkb21haW4gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBkb21haW4gTm9kZSBVUkwnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvZG9tYWluL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RG9tYWluR2V0Ogor ICAgIGRlZiB0ZXN0X2RvbWFpbl9nZXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBkb21haW4gZ2V0IHJlcXVlc3QgaXMgc2Vu ZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAg IiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL2RvbWFpbi9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0g Y29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJl bnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNl bGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNl cnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2Rh dGFbJ2RiX25hbWUnXQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1h X2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVt YV9pbmZvWydzY2hlbWFfaWQnXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAg aWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwor ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2No ZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgZG9tYWluLiIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6 Ci0gICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1siZGJfbmFt ZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBzZWxmLmRvbWFpbl9uYW1lID0gImRvbWFpbl9nZXRfJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGRvbWFpbl9uYW1lID0gImRvbWFpbl9kZWxl dGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIHNlbGYuZG9tYWluX2lu Zm8gPSBkb21haW5fdXRpbHMuY3JlYXRlX2RvbWFpbihzZWxmLnNlcnZlciwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZG9tYWluX25hbWUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5fbmFtZSkK IAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGFkZCBkb21haW4gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgICAgICBkYl9pZCA9IHNlbGYu ZGF0YWJhc2VfaW5mb1siZGJfaWQiXQotICAgICAgICBzZXJ2ZXJfaWQgPSBzZWxmLmRhdGFiYXNl X2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAg IGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGdldCB0aGUgZG9tYWlu LiIpCi0gICAgICAgIGRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX25hbWUiXQotICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5z ZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYSB0byBnZXQgdGhlIGRvbWFpbi4iKQogICAgICAgICBkb21haW5faWQgPSBzZWxmLmRvbWFp bl9pbmZvWzBdCi0gICAgICAgICMgQ2FsbCBHRVQgQVBJIHRvIHZlcmlmeSB0aGUgZG9tYWluCi0g ICAgICAgIGdldF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNl cnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoZG9tYWluX2lkKSwK ICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbHMoZ2V0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29u bmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19j b2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnZGVzY3JpcHRpb24nKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IHNob3VsZC5iZVwKKyAgICAgICAgICAg IC5lcXVhbChkb21haW5fbmFtZSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg cGFzcworICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5z L3Rlc3RzL3Rlc3RfZG9tYWluX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVzdHMvdGVzdF9kb21haW5f cHV0LnB5CmluZGV4IGZhYmJiMjA2Li45MGRjY2VhNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90 ZXN0cy90ZXN0X2RvbWFpbl9wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZXN0cy90ZXN0X2RvbWFp bl9wdXQucHkKQEAgLTEwLDcxICsxMCw5MSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAK K2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRp bHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zy b20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNw b25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZy b20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGRvbWFpbl91dGlscwogCiAKLWNsYXNzIERvbWFpblB1dFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBjb2xsYXRp b24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBG ZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZG9tYWluIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggZG9t YWluIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RvbWFpbi9vYmovJykpCi0gICAgXQor Y2xhc3MgVGVzdERvbWFpblB1dDoKKyAgICBkZWYgdGVzdF9kb21haW5fcHV0KHNlbGYsIHJlcXVl c3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgZG9t YWluIHB1dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJu cyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihz ZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRhdGFi YXNlX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXQotICAgICAgICBzZWxm LmRiX25hbWUgPSBzZWxmLmRhdGFiYXNlX2luZm9bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2Vs Zi5kb21haW5fbmFtZSA9ICJkb21haW5fcHV0XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBzZWxmLmRvbWFpbl9pbmZvID0gZG9tYWluX3V0aWxzLmNyZWF0ZV9kb21haW4o c2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRvbWFpbl9uYW1lKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZG9tYWluL29iai8nCisKKyAg ICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5zY2hlbWFf aW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNj aGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNv bm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZS4iKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBU aGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGRvbWFpbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0g ICAgICAgIGRiX2lkID0gc2VsZi5kYXRhYmFzZV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZl cl9pZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy X2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJh c2UgdG8gZ2V0IHRoZSBkb21haW4uIikKLSAgICAgICAgZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2Vf aW5mb1siZGJfbmFtZSJdCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52 ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGdldCB0aGUgZG9tYWluLiIp CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gYWRkIHRoZSBkb21haW4uIikKKworICAgICAgICBkb21haW5fbmFtZSA9ICJkb21haW5fZGVs ZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLmRvbWFpbl9p bmZvID0gZG9tYWluX3V0aWxzLmNyZWF0ZV9kb21haW4oc2VsZi5zZXJ2ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb21haW5fbmFtZSkKICAgICAgICAgZG9tYWlu X3Jlc3BvbnNlID0gZG9tYWluX3V0aWxzLnZlcmlmeV9kb21haW4oc2VsZi5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZG9tYWluX25hbWUpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9uYW1lKQogICAgICAg ICBpZiBub3QgZG9tYWluX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgZG9tYWluIHRvIHVwZGF0ZS4iKQorCiAgICAgICAgIGRvbWFpbl9p ZCA9IHNlbGYuZG9tYWluX2luZm9bMF0KLSAgICAgICAgZGF0YSA9IHsiZGVzY3JpcHRpb24iOiAi VGhpcyBpcyBkb21haW4gdXBkYXRlIGNvbW1lbnQiLAotICAgICAgICAgICAgICAgICJpZCI6IGRv bWFpbl9pZCwKLSAgICAgICAgICAgICAgICB9CisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAg ICAiZGVzY3JpcHRpb24iOiAiVGhpcyBpcyBkb21haW4gdXBkYXRlIGNvbW1lbnQiLAorICAgICAg ICAgICAgImlkIjogZG9tYWluX2lkLAorICAgICAgICB9CiAgICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKGRvbWFpbl9pZCksCiAgICAg ICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCi0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAg ICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAg ICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisg ICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNv bl9yZXNwb25zZSwKKyAgICAgICAgICAgICdkb21haW4nLAorICAgICAgICAgICAgJ3BnYWRtaW4u bm9kZS5kb21haW4nLAorICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICdpY29uLWRvbWFp bicsCisgICAgICAgICAgICBkb21haW5fbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA1OGExMWQxZC4uNTkwMDI2YWQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0 d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCi0KLQotY2xhc3MgRm9yZWlnblRhYmxlR2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybiBbXQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVzdF9mb3JlaWduX3RhYmxlX2Fk ZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9hZGQucHkK aW5kZXggOGE2ODBjMmUuLjAyMDA3OTk5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rl c3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9hZGQucHkKQEAgLTEyLDU5ICsxMiw1OSBAQCBmcm9tIF9f ZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQK IAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZvcmVpZ25fZGF0YV93 cmFwcGVycy4gXAogICAgIGZvcmVpZ25fc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZnNy dl91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMuIFwKICAgICB0ZXN0cyBpbXBvcnQgdXRpbHMgYXMg ZmR3X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAor ICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1w b3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdF91dGls cwogCiAKLWNsYXNzIEZvcmVpZ25UYWJsZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgYWRkIGZvcmVpZ24gdGFibGUgdW5kZXIgZGF0 YWJhc2Ugbm9kZS4KLSAgICAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLQot ICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZm9y ZWlnbiBzZXJ2ZXIgbm9kZS4KLSAgICAgICAgKCdDaGVjayBmb3JlaWduIHRhYmxlIE5vZGUnLCBk aWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl90YWJsZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVm IHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBmb3Jl aWduIGRhdGEgd3JhcHBlciBhbmQKLSAgICAgICAgZm9yZWlnbiBzZXJ2ZXIuICIiIgotICAgICAg ICBzdXBlcihGb3JlaWduVGFibGVBZGRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotCi0gICAgICAg IHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQnXQotICAgICAg ICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRi X25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAg ICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFtZSddCi0g ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KK0Bw eXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RGb3JlaWduVGFi bGVBZGQ6CisgICAgZGVmIHRlc3RfZm9yZWlnbl90YWJsZV9hZGQoc2VsZiwgcmVxdWVzdCwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBmb3JlaWduIHRh YmxlIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJu cyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihz ZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX3RhYmxlL29i ai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2Vs Zi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKICAgICAg ICAgc2VsZi5mZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAg ICAgICAgIHNlbGYuZnNydl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCi0gICAgICAgIHNlbGYuZmR3X2lkID0gZmR3X3V0aWxzLmNyZWF0ZV9mZHcoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmZkd19uYW1lKQotICAgICAgICBzZWxmLmZzcnZfaWQgPSBmc3J2X3V0aWxzLmNy ZWF0ZV9mc3J2KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsIHNlbGYuZmR3X25hbWUp CiAgICAgICAgIHNlbGYuZnRfbmFtZSA9ICJmdF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIGZvcmVpZ24gdGFibGUgdW5kZXIgdGVzdCBkYXRhYmFzZS4iIiIKLQogICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQ LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRh YmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAorICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGls cy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKKyAgICAgICAgc2VsZi5m c3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNy dl9uYW1lLCBzZWxmLmZkd19uYW1lKQogICAgICAgICBmc3J2X3Jlc3BvbnNlID0gZnNydl91dGls cy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKICAgICAgICAg aWYgbm90IGZzcnZfcmVzcG9uc2U6CkBAIC05MiwxOCArOTIsMjUgQEAgY2xhc3MgRm9yZWlnblRh YmxlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICB9CiAKICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVt YV9pZCkgKyAnLycsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRf dHlwZT0naHRtbC9qc29uJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3Bv bnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdmb3JlaWduX3Rh YmxlJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZm9yZWlnbl90YWJsZScsCisgICAgICAg ICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWZvcmVpZ25fdGFibGUnLAorICAgICAgICAg ICAgc2VsZi5mdF9uYW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZSBhbmQg ZGVsZXRlIHRlc3QKLSAgICAgICAgZm9yZWlnbiB0YWJsZSBvYmplY3QuICIiIgogICAgICAgICBm dF91dGlscy5kZWxldGVfZm9yZWdpbl90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLCBz ZWxmLmZ0X25hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0g ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9kZWxldGUucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mb3JlaWduX3RhYmxlcy90ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfZGVsZXRlLnB5Cmlu ZGV4IDQxNGY4NmY3Li5kOTBmYjIyMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVz dHMvdGVzdF9mb3JlaWduX3RhYmxlX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfZGVsZXRlLnB5CkBAIC0xMSw4NSArMTEsODkgQEAgZnJv bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitpbXBv cnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJz LiBcCiAgICAgZm9yZWlnbl9zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBmc3J2X3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmZv cmVpZ25fZGF0YV93cmFwcGVycy4gXAogICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBmZHdfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyBmdF91dGlscwogCiAKLWNsYXNzIEZvcmVpZ25UYWJsZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGZvcmVpZ24g dGFibGUgdW5kZXIgZGF0YWJhc2Ugbm9kZS4KLSAgICAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNl ID0gWydncGRiJ10KLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZh dWx0IFVSTCBmb3IgZm9yZWlnbiB0YWJsZSBub2RlLgotICAgICAgICAoJ0NoZWNrIGZvcmVpZ24g dGFibGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWduX3RhYmxlL29iai8nKSkKLSAg ICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgY3JlYXRlIGZvcmVpZ24gZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlcgotICAgICAgICBh bmQgZm9yZWlnbiB0YWJsZS4gIiIiCi0gICAgICAgIHN1cGVyKEZvcmVpZ25UYWJsZURlbGV0ZVRl c3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0KLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVt YV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3Rb ImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNl bGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBz ZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2Vz KFsnZ3BkYiddKQorY2xhc3MgVGVzdEZvcmVpZ25UYWJsZURlbGV0ZToKKyAgICBkZWYgdGVzdF9m b3JlaWduX3RhYmxlX2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGZvcmVpZ24gdGFibGUgZGVsZXRlIHJlcXVlc3Qg aXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAg ICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisK KyAgICAgICAgdXJsID0gJy9icm93c2VyL2ZvcmVpZ25fdGFibGUvb2JqLycKKworICAgICAgICBz ZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZl cl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRi X2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBz ZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0g cGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKwogICAgICAgICBzZWxmLmZkd19uYW1l ID0gImZkd18lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi5mc3J2 X25hbWUgPSAiZnNydl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgc2Vs Zi5mdF9uYW1lID0gImZ0XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBz ZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdf bmFtZSkKLSAgICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1lKQotICAgICAgICBzZWxm LmZ0X2lkID0gZnRfdXRpbHMuY3JlYXRlX2ZvcmVpZ25fdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRfbmFtZSkKLQotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGZvcmVpZ24g dGFibGUgdW5kZXIgdGVzdCBkYXRhYmFzZS4iIiIKIAogICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQp Ci0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQu IjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UuIikKIAorICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKKyAgICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91 dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZk d19uYW1lKQogICAgICAgICBmc3J2X3Jlc3BvbnNlID0gZnNydl91dGlscy52ZXJpZnlfZnNydihz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKLQogICAgICAgICBpZiBub3QgZnNydl9y ZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRm9y ZWlnbiBTZXJ2ZXIuIikKIAorICAgICAgICBzZWxmLmZ0X2lkID0gZnRfdXRpbHMuY3JlYXRlX2Zv cmVpZ25fdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZnRfbmFtZSkKICAgICAgICAgZnRfcmVzcG9uc2UgPSBmdF91dGlscy52ZXJpZnlfZm9y ZWlnbl90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lKQogICAgICAg ICBpZiBub3QgZnRfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIEZvcmVpZ24gVGFibGUuIikKIAotICAgICAgICBkZWxldGVfcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUo CisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxm LmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsK ICAgICAgICAgICAgIHN0cihzZWxmLmZ0X2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZWxldGVfcmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90 b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnRm9yZWlnbiBUYWJs ZSBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJy b3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0 aGUgdGVzdCBkYXRhYmFzZS4gIiIiCi0KLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0 YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYu c2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVz dF9mb3JlaWduX3RhYmxlX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9y ZWlnbl90YWJsZV9nZXQucHkKaW5kZXggMGE1MDA3MzMuLjRhZTU4ZWFiIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfZ2V0LnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9nZXQucHkKQEAgLTExLDg0 ICsxMSw3OSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9y dCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWdu X2RhdGFfd3JhcHBlcnMuIFwKICAgICBmb3JlaWduX3NlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIGZzcnZfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuZm9yZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0 aWxzIGFzIGZkd191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4g aW1wb3J0IHV0aWxzIGFzIGZ0X3V0aWxzCiAKIAotY2xhc3MgRm9yZWlnblRhYmxlR2V0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3Mgd2lsbCBmZXRj aCBmb3JlaWduIHRhYmxlIHVuZGVyIGRhdGFiYXNlIG5vZGUuCi0gICAgIiIiCi0gICAgc2tpcF9v bl9kYXRhYmFzZSA9IFsnZ3BkYiddCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRi J10pCitjbGFzcyBUZXN0Rm9yZWlnblRhYmxlR2V0OgorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fdGFi bGVfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAg ICAgICAgV2hlbiB0aGUgZm9yZWlnbiB0YWJsZSBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAn L2Jyb3dzZXIvZm9yZWlnbl90YWJsZS9vYmovJwogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmb3JlaWduIHNlcnZlciBub2RlLgotICAgICAg ICAoJ0NoZWNrIGZvcmVpZ24gdGFibGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9mb3JlaWdu X3RhYmxlL29iai8nKSkKLSAgICBdCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUn XQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxs IGNyZWF0ZSBmb3JlaWduIGRhdGEgd3JhcHBlciwgZm9yZWlnbiBzZXJ2ZXIKLSAgICAgICAgYW5k IGZvcmVpZ24gdGFibGUuICIiIgotICAgICAgICBzdXBlcihGb3JlaWduVGFibGVHZXRUZXN0Q2Fz ZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVf ZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVt YV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hl bWFfaW5mb1snc2NoZW1hX2lkJ10KIAotICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50 X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5z Y2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1h X2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2Vs Zi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNl bGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCiAgICAgICAgIHNlbGYuZmR3X25hbWUgPSAiZmR3 XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLmZzcnZfbmFtZSA9 ICJmc3J2XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLmZ0X25h bWUgPSAiZnRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAKLSAgICAgICAgc2VsZi5m ZHdfaWQgPSBmZHdfdXRpbHMuY3JlYXRlX2ZkdyhzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZmR3X25hbWUp Ci0gICAgICAgIHNlbGYuZnNydl9pZCA9IGZzcnZfdXRpbHMuY3JlYXRlX2ZzcnYoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmZzcnZfbmFtZSwgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgc2VsZi5mdF9p ZCA9IGZ0X3V0aWxzLmNyZWF0ZV9mb3JlaWduX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mc3J2X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0X25hbWUpCi0KLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIGZvcmVpZ24gdGFibGUg dW5kZXIgdGVzdCBkYXRhYmFzZS4iIiIKLQogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAg ICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2Uu IikKIAorICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mZHdfbmFtZSkKKyAgICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91dGlscy5j cmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1l KQogICAgICAgICBmc3J2X3Jlc3BvbnNlID0gZnNydl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSkKLQogICAgICAgICBpZiBub3QgZnNydl9yZXNwb25z ZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRm9yZWlnbiBT ZXJ2ZXIuIikKIAotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgc2VsZi5mdF9pZCA9IGZ0 X3V0aWxzLmNyZWF0ZV9mb3JlaWduX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mc3J2X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmZ0X25hbWUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5nZXQodXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lk KSArICcvJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmZ0 X2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lk JykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gc2hv dWxkLmJlLmVxdWFsKHNlbGYuZnRfbmFtZSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBkYXRhYmFzZSBhbmQg ZGVsZXRlIHRlc3QKLSAgICAgICAgZm9yZWlnbiB0YWJsZSBvYmplY3QuICIiIgotICAgICAgICBm dF91dGlscy5kZWxldGVfZm9yZWdpbl90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLCBz ZWxmLmZ0X25hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQotCi0g ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2ZvcmVpZ25fdGFibGVzL3Rlc3RzL3Rlc3RfZm9yZWlnbl90YWJsZV9wdXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mb3JlaWduX3RhYmxlcy90ZXN0cy90ZXN0X2ZvcmVpZ25fdGFibGVfcHV0LnB5CmluZGV4IGFm OWJjMDIyLi44OTg4MTlkNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVzdHMvdGVz dF9mb3JlaWduX3RhYmxlX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZXN0cy90ZXN0 X2ZvcmVpZ25fdGFibGVfcHV0LnB5CkBAIC0xMiw3MCArMTIsNjggQEAgZnJvbSBfX2Z1dHVyZV9f IGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9y dCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5mb3JlaWduX2RhdGFfd3JhcHBlcnMu IFwKICAgICBmb3JlaWduX3NlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZzcnZfdXRpbHMK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZm9y ZWlnbl9kYXRhX3dyYXBwZXJzLiBcCiAgICAgdGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZkd191dGls cwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50 ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMu dGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRfdXRpbHMKIAogCi1j bGFzcyBGb3JlaWduVGFibGVQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi Ci0gICAgVGhpcyBjbGFzcyB3aWxsIGZldGNoIGZvcmVpZ24gdGFibGUgdW5kZXIgZGF0YWJhc2Ug bm9kZS4KLSAgICAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLQotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZm9yZWlnbiBz ZXJ2ZXIgbm9kZS4KLSAgICAgICAgKCdDaGVjayBmb3JlaWduIHRhYmxlIE5vZGUnLCBkaWN0KHVy bD0nL2Jyb3dzZXIvZm9yZWlnbl90YWJsZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSBmb3JlaWduIGRh dGEgd3JhcHBlciwgZm9yZWlnbiBzZXJ2ZXIKLSAgICAgICAgYW5kIGZvcmVpZ24gdGFibGUuICIi IgotICAgICAgICBzdXBlcihGb3JlaWduVGFibGVQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQot Ci0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVst MV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQn XQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAg ICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFf bmFtZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1h X2lkJ10KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RG b3JlaWduVGFibGVQdXQ6CisgICAgZGVmIHRlc3RfZm9yZWlnbl90YWJsZV9wdXQoc2VsZiwgcmVx dWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBm b3JlaWduIHRhYmxlIHB1dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAg aXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWdu X3RhYmxlL29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFi YXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAg ICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQor ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUn XQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCdd CisKICAgICAgICAgc2VsZi5mZHdfbmFtZSA9ICJmZHdfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCiAgICAgICAgIHNlbGYuZnNydl9uYW1lID0gImZzcnZfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCiAgICAgICAgIHNlbGYuZnRfbmFtZSA9ICJmdF8lcyIgJSAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKIAotICAgICAgICBzZWxmLmZkd19pZCA9IGZkd191dGlscy5jcmVhdGVf ZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKLSAgICAgICAgc2VsZi5mc3J2X2lkID0g ZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnNydl9uYW1lLCBz ZWxmLmZkd19uYW1lKQotICAgICAgICBzZWxmLmZ0X2lkID0gZnRfdXRpbHMuY3JlYXRlX2ZvcmVp Z25fdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZnRfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1 bmN0aW9uIHdpbGwgdXBkYXRlIGZvcmVpZ24gdGFibGUgdW5kZXIgdGVzdCBkYXRhYmFzZS4iIiIK LQogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5m byJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAorICAgICAgICBzZWxmLmZkd19p ZCA9IGZkd191dGlscy5jcmVhdGVfZmR3KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mZHdfbmFtZSkKKyAg ICAgICAgc2VsZi5mc3J2X2lkID0gZnNydl91dGlscy5jcmVhdGVfZnNydihzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZnNydl9uYW1lLCBzZWxmLmZkd19uYW1lKQogICAgICAgICBmc3J2X3Jlc3BvbnNl ID0gZnNydl91dGlscy52ZXJpZnlfZnNydihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFt ZSkKLQogICAgICAgICBpZiBub3QgZnNydl9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgRm9yZWlnbiBTZXJ2ZXIuIikKIAorICAgICAgICBzZWxm LmZ0X2lkID0gZnRfdXRpbHMuY3JlYXRlX2ZvcmVpZ25fdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmZzcnZfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRfbmFtZSkKICAgICAgICAgZnRfcmVz cG9uc2UgPSBmdF91dGlscy52ZXJpZnlfZm9yZWlnbl90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZnNydl9uYW1lKQogICAgICAgICBpZiBub3QgZnRfcmVzcG9uc2U6CkBAIC04Nywy MiArODUsMjggQEAgY2xhc3MgRm9yZWlnblRhYmxlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgogICAgICAgICAgICAgICAgICJpZCI6IHNlbGYuZnRfaWQsCiAgICAgICAgICAgICB9CiAK LSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAg ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYu c2NoZW1hX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5mdF9pZCksCiAgICAgICAg ICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisg ICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2ZvcmVpZ25fdGFibGUnLAor ICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mb3JlaWduX3RhYmxlJywKKyAgICAgICAgICAgIEZh bHNlLAorICAgICAgICAgICAgJ2ljb24tZm9yZWlnbl90YWJsZScsCisgICAgICAgICAgICBzZWxm LmZ0X25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAi IiIgVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlIGFuZCBkZWxldGUg dGVzdAotICAgICAgICBmb3JlaWduIHRhYmxlIG9iamVjdC4gIiIiCiAgICAgICAgIGZ0X3V0aWxz LmRlbGV0ZV9mb3JlZ2luX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnRf bmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRp b25zL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDMyMjFkNDM4Li41OTAwMjZhZCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19j b25maWd1cmF0aW9ucy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgotCi0KLWNsYXNzIEZUU0NvbmZpZ3VyYXRpb25UZXN0R2VuZXJhdG9yKEJhc2VU ZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4g W10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25m aWd1cmF0aW9uX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19j b25maWd1cmF0aW9uX2FkZC5weQppbmRleCA5ZjI3NzcyMS4uNmQwMTFlZDcgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0aW9uX2FkZC5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNfY29uZmlndXJhdGlv bl9hZGQucHkKQEAgLTEyLDYgKzEyLDggQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m dW5jdGlvbgogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLiBcCiAgICAgZnRzX3BhcnNlci50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgZnRz X3BhcnNlcl91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCkBAIC0yMCw0MSArMjIsNDMgQEAgZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz IFwKICAgICAuZnRzX2NvbmZpZ3VyYXRpb25zLnRlc3RzIGltcG9ydCB1dGlscyBhcyBmdHNfY29u ZmlnX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1p bi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19q c29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVz c2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgRlRTQ29uZmlndXJh aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdp bGwgYWRkIG5ldyBGVFMgY29uZmlndXJhdGlvbiB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCitjbGFz cyBUZXN0RlRTQ29uZmlndXJhaW9uQWRkOgorICAgIGRlZiB0ZXN0X2Z0c19jb25maWd1cmF0aW9u X3RhYmxlX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIEZUUyBjb25maWd1cmF0aW9uIGFkZCByZXF1ZXN0IGlzIHNlbmQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAg IHVybCA9ICcvYnJvd3Nlci9mdHNfY29uZmlndXJhdGlvbi9vYmovJwogCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmdHNfY29uZmlndXJhdGlv biBub2RlLgotICAgICAgICAoJ0ZldGNoIGZ0c19jb25maWd1cmF0aW9uIE5vZGUgVVJMJywKLSAg ICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9mdHNfY29uZmlndXJhdGlvbi9vYmovJykpCi0gICAg XQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxm LmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgIGRlZiBzZXRVcChz ZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgcGFyc2VyLiIiIgor ICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd CisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFt ZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lk J10KIAotICAgICAgICBzY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0x XQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10K LSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10KLSAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2Vs Zi5kYl9pZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KICAgICAgICAgc2VsZi5m dHNfcGFyc2VyX25hbWUgPSAiZnRzX3BhcnNlcl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd CiAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9pZCA9IGZ0c19wYXJzZXJfdXRpbHMuY3JlYXRlX2Z0 c19wYXJzZXIoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNj aGVtYV9uYW1lLCBzZWxmLmZ0c19wYXJzZXJfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBuZXcgRlRTIGNvbmZpZ3VyYXRp b24gdW5kZXIgdGVzdCBzY2hlbWEuICIiIgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdHNfcGFyc2VyX25hbWUKKyAgICAgICAg KQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGls cy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJp bmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC03NSwxOSArNzksMjYg QEAgY2xhc3MgRlRTQ29uZmlndXJhaW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICAgICAgfQogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCiAgICAgICAg ICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1q c29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQog Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAg ICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkK KyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBq c29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2Z0c19jb25maWd1cmF0aW9uJywKKyAgICAgICAg ICAgICdwZ2FkbWluLm5vZGUuZnRzX2NvbmZpZ3VyYXRpb24nLAorICAgICAgICAgICAgRmFsc2Us CisgICAgICAgICAgICAnaWNvbi1mdHNfY29uZmlndXJhdGlvbicsCisgICAgICAgICAgICBzZWxm LmZ0c19jb25mX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX2NvbmZpZyBhbmQgZGlzY29ubmVj dCB0aGUgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKICAgICAgICAgZnRzX2NvbmZpZ191dGls cy5kZWxldGVfZnRzX2NvbmZpZ3VyYXRpb25zKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNj aGVtYV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mdHNfY29uZl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19j b25maWd1cmF0aW9uX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0 X2Z0c19jb25maWd1cmF0aW9uX2RlbGV0ZS5weQppbmRleCAwYTVjYzE2Yi4uMjhmMmJmNDQgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0 aW9uX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNf Y29uZmlndXJhdGlvbl9kZWxldGUucHkKQEAgLTExLDQ4ICsxMSw0OSBAQCBmcm9tIF9fZnV0dXJl X18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGlt cG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0 aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGls cy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2Fk bWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9y dCB1dGlscyBhcyBmdHNfY29uZmlndXJhdGlvbl91dGlscwogCiAKLWNsYXNzIEZUU0NvbmZEZWxl dGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBk ZWxldGUgYWRkZWQgRlRTIGNvbmZpZ3VyYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorY2xh c3MgVGVzdEZUU0NvbmZpZ3VyYWlvbkRlbGV0ZToKKyAgICBkZWYgdGVzdF9mdHNfY29uZmlndXJh dGlvbl90YWJsZV9kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAg ICAgICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMgY29uZmlndXJhdGlvbiBkZWxldGUgcmVxdWVz dCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cwor ICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikK IAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig ZnRzX2NvbmZpZ3VyYXRpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBGVFMgY29uZmlndXJhdGlv biBOb2RlIFVSTCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX2NvbmZpZ3VyYXRp b24vb2JqLycpKQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19jb25maWd1cmF0 aW9uL29iai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0 aW9uIHdpbGwgY3JlYXRlIEZUUyBjb25maWd1cmF0aW9uLiIiIgorICAgICAgICBzZWxmLnRlc3Rl ciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0g cGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2Vs Zi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZl cl9kYXRhWydkYl9uYW1lJ10KIAotICAgICAgICBzY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2Rp Y3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFb J3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfZGF0YVsnc2No ZW1hX2lkJ10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lk J10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2VsZi5mdHNfY29uZl9uYW1lID0gImZ0c19jb25mXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3Rb J3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5m b1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2lu Zm9bJ3NjaGVtYV9pZCddCiAKKyAgICAgICAgc2VsZi5mdHNfY29uZl9uYW1lID0gImZ0c19jb25m XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgc2VsZi5mdHNfY29uZl9pZCA9 IGZ0c19jb25maWd1cmF0aW9uX3V0aWxzLmNyZWF0ZV9mdHNfY29uZmlndXJhdGlvbigKLSAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYu ZnRzX2NvbmZfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhp cyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBuZXcgRlRTIGNvbmZpZ3VyYXRpb24gdW5kZXIgdGVzdAot ICAgICAgICBzY2hlbWEuICIiIgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFt ZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5mdHNfY29uZl9uYW1lCisgICAgICAgICkKIAogICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVS X0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09 ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjUsMjEgKzY2LDI2IEBAIGNsYXNz IEZUU0NvbmZEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGZ0c19j b25mX3Jlc3BvbnNlID0gZnRzX2NvbmZpZ3VyYXRpb25fdXRpbHMudmVyaWZ5X2Z0c19jb25maWd1 cmF0aW9uKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5mdHNf Y29uZl9uYW1lCiAgICAgICAgICkKLQogICAgICAgICBpZiBub3QgZnRzX2NvbmZfcmVzcG9uc2U6 CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgQ29u ZmlndXJhdGlvbi4iKQogCi0gICAgICAgIGRlbGV0ZV9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRl bGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKHNlbGYuZnRzX2NvbmZfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUs IDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlv biBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgorICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2Ug PSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAg ICAgICAgICdGVFMgQ29uZmlndXJhdGlvbiBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQu YmUuZXF1YWwudG8oMSkKIAotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAg ICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwg c2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMv dGVzdHMvdGVzdF9mdHNfY29uZmlndXJhdGlvbl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlv bnMvdGVzdHMvdGVzdF9mdHNfY29uZmlndXJhdGlvbl9nZXQucHkKaW5kZXggNmQ5NTliNWMuLmQ1 OTk3Y2I0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNf Y29uZmlndXJhdGlvbl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3VyYXRpb25zL3Rlc3RzL3Rl c3RfZnRzX2NvbmZpZ3VyYXRpb25fZ2V0LnB5CkBAIC0xMSw1MCArMTEsNTIgQEAgZnJvbSBfX2Z1 dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBw YSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVt YV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMgXAog ICAgIC5mdHNfY29uZmlndXJhdGlvbnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZ0c19jb25maWdf dXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9y ZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UK IGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIGZ0c19jb25maWd1cmF0aW9uX3V0aWxzCiAKIAotY2xhc3MgRlRTQ29uZkdl dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZl dGNoIGFkZGVkIGZ0c19jb25maWd1cmF0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKK2NsYXNz IFRlc3RGVFNDb25maWd1cmFpb25HZXQ6CisgICAgZGVmIHRlc3RfZnRzX2NvbmZpZ3VyYXRpb25f dGFibGVfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiB0aGUgRlRTIGNvbmZpZ3VyYXRpb24gZ2V0IHJlcXVlc3QgaXMgc2VuZCB0 byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIi CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBzY2Vu YXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ0c19jb25maWd1 cmF0aW9uIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggRlRTIGNvbmZpZ3VyYXRpb24gTm9kZSBVUkwn LAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z0c19jb25maWd1cmF0aW9uL29iai8nKSkK LSAgICBdCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mdHNfY29uZmlndXJhdGlvbi9vYmovJwog Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGNy ZWF0ZSBGVFMgY29uZmlndXJhdGlvbi4iIiIKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0 X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2Rl X2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2 ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJf bmFtZSddCiAKLSAgICAgICAgc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEn XVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9kYXRhWydzY2hlbWFfbmFt ZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAg IHNlbGYuZGJfaWQgPSBzY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNl bGYuZnRzX2NvbmZfbmFtZSA9ICJmdHNfY29uZl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd CisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVst MV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9u YW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFf aWQnXQogCisgICAgICAgIHNlbGYuZnRzX2NvbmZfbmFtZSA9ICJmdHNfY29uZl8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIHNlbGYuZnRzX2NvbmZfaWQgPSBmdHNfY29uZmln dXJhdGlvbl91dGlscy5jcmVhdGVfZnRzX2NvbmZpZ3VyYXRpb24oCi0gICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmZ0c19jb25mX25h bWUpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBmZXRjaCBuZXcgRlRTIGNvbmZpZ3VyYXRpb24gdW5kZXIgdGVzdCBzY2hlbWEuCi0gICAg ICAgICIiIgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hl bWFfbmFtZSwgc2VsZi5mdHNfY29uZl9uYW1lCisgICAgICAgICkKIAogICAgICAgICBkYl9jb24g PSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBj b25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5l Y3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjQsMjEgKzY2LDIzIEBAIGNsYXNzIEZUU0NvbmZHZXRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEuIikKIAotICAgICAgICBnZXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAg ICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmZ0c19jb25m X2lkKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKIAotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhnZXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAg cmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBq c29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykgPiBcCisgICAgICAgICAgICBzaG91bGQu YmUuZXF1YWwudG8oc2VsZi5mdHNfY29uZl9uYW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX2NvbmZpZyBhbmQgZGlz Y29ubmVjdCB0aGUgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKICAgICAgICAgZnRzX2NvbmZp Z191dGlscy5kZWxldGVfZnRzX2NvbmZpZ3VyYXRpb25zKHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5mdHNfY29uZl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5k aXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNl X3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZl cl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0 X2Z0c19jb25maWd1cmF0aW9uX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90 ZXN0X2Z0c19jb25maWd1cmF0aW9uX3B1dC5weQppbmRleCA3NjA3YjM5NS4uZmVkN2M5ZmIgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0aW9ucy90ZXN0cy90ZXN0X2Z0c19jb25maWd1cmF0 aW9uX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMvdGVzdHMvdGVzdF9mdHNfY29u ZmlndXJhdGlvbl9wdXQucHkKQEAgLTEyLDUwICsxMiw1MiBAQCBmcm9tIF9fZnV0dXJlX18gaW1w b3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFw cGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzIFwK ICAgICAuZnRzX2NvbmZpZ3VyYXRpb25zLnRlc3RzIGltcG9ydCB1dGlscyBhcyBmdHNfY29uZmln X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl CiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGlt cG9ydCB1dGlscyBhcyBmdHNfY29uZmlndXJhdGlvbl91dGlscwogCiAKLWNsYXNzIEZUU0NvbmZQ dXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1 cGRhdGUgYWRkZWQgRlRTIGNvbmZpZ3VyYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorY2xh c3MgVGVzdEZUU0NvbmZpZ3VyYWlvblB1dDoKKyAgICBkZWYgdGVzdF9mdHNfY29uZmlndXJhdGlv bl90YWJsZV9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSBGVFMgY29uZmlndXJhdGlvbiBwdXQgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZnRzX2NvbmZp Z3VyYXRpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBGVFMgY29uZmlndXJhdGlvbiBOb2RlIFVS TCcsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX2NvbmZpZ3VyYXRpb24vb2JqLycp KQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19jb25maWd1cmF0aW9uL29iai8n CiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg Y3JlYXRlIEZUUyBjb25maWd1cmF0aW9uLiIiIgorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25v ZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNl cnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9uYW1lJ10KIAotICAgICAgICBzY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVt YSddWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2RhdGFbJ3NjaGVtYV9u YW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfZGF0YVsnc2NoZW1hX2lkJ10K LSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAg ICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAg c2VsZi5mdHNfY29uZl9uYW1lID0gImZ0c19jb25mXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0KKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSdd Wy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1h X25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVt YV9pZCddCiAKKyAgICAgICAgc2VsZi5mdHNfY29uZl9uYW1lID0gImZ0c19jb25mXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgc2VsZi5mdHNfY29uZl9pZCA9IGZ0c19jb25m aWd1cmF0aW9uX3V0aWxzLmNyZWF0ZV9mdHNfY29uZmlndXJhdGlvbigKLSAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnRzX2NvbmZf bmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlv biB3aWxsIHVwZGF0ZSBuZXcgRlRTIGNvbmZpZ3VyYXRpb24gdW5kZXIKLSAgICAgICAgdGVzdCBz Y2hlbWEuICIiIgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5z Y2hlbWFfbmFtZSwgc2VsZi5mdHNfY29uZl9uYW1lCisgICAgICAgICkKIAogICAgICAgICBkYl9j b24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFz ZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjUsMzQgKzY3LDM1IEBAIGNsYXNzIEZUU0NvbmZQ dXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVz cG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEuIikKIAotICAgICAgICBmdHNfY29uZl9yZXNwb25zZSA9IGZ0c19jb25maWd1cmF0aW9u X3V0aWxzLnZlcmlmeV9mdHNfY29uZmlndXJhdGlvbigKLSAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuZnRzX2NvbmZfbmFtZQotICAgICAgICApCi0KLSAgICAgICAg aWYgbm90IGZ0c19jb25mX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgZmluZCB0aGUgRlRTIENvbmZpZ3VyYXRpb24uIikKLQogICAgICAgICBkYXRhID0g XAogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlz IEZUUyBjb25maWd1cmF0aW9uIHVwZGF0ZSBjb21tZW50IiwKICAgICAgICAgICAgICAgICAiaWQi OiBzZWxmLmZ0c19jb25mX2lkCiAgICAgICAgICAgICB9CiAKLSAgICAgICAgcHV0X3Jlc3BvbnNl ID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAor ICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5k Yl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAg ICAgICAgICAgICBzdHIoc2VsZi5mdHNfY29uZl9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAg ICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAg ICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29u X3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2Z0c19jb25maWd1cmF0aW9uJywKKyAgICAgICAgICAg ICdwZ2FkbWluLm5vZGUuZnRzX2NvbmZpZ3VyYXRpb24nLAorICAgICAgICAgICAgRmFsc2UsCisg ICAgICAgICAgICAnaWNvbi1mdHNfY29uZmlndXJhdGlvbicsCisgICAgICAgICAgICBzZWxmLmZ0 c19jb25mX25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX2NvbmZpZyBhbmQgZGlzY29ubmVjdCB0 aGUgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKICAgICAgICAgZnRzX2NvbmZpZ191dGlscy5k ZWxldGVfZnRzX2NvbmZpZ3VyYXRpb25zKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5mdHNfY29uZl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNs aWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDhmNWI2ZmIyLi41OTAw MjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2LDMg QEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNl bmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgRm9yZWlnblRhYmxlVGVzdEdlbmVyYXRv cihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg cmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRz X2RpY3Rpb25hcmllc19hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRz X2RpY3Rpb25hcmllc19hZGQucHkKaW5kZXggYzQxOWEyZGEuLmYwNDgxOTM0IDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfYWRk LnB5CkBAIC0xMiw0MCArMTIsNDYgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j dGlvbgogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCBcCiAgICAgdXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcyBcCiAgICAgLmZ0c19kaWN0 aW9uYXJpZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIGZ0c19kaWN0X3V0aWxzCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRp bHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdh ZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwg XAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIEZ0c0RpY3Rpb25hcnlBZGRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQg bmV3IEZUUyBkaWN0aW9uYXJ5IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKK2NsYXNzIFRlc3RGVFNE aWN0aW9uYXJpZXNBZGQ6CisgICAgZGVmIHRlc3RfZnRzX2RpY3Rpb25hcmllc19hZGQoc2VsZiwg cmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRo ZSBGVFMgZGljdGlvbmFyaWVzIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAg ICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0 LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9m dHNfZGljdGlvbmFyeS9vYmovJwogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgZGljdGlvbmFyeSBub2RlLgotICAgICAgICAoJ0ZldGNo IEZUUyBkaWN0aW9uYXJ5IE5vZGUgVVJMJywgZGljdCgKLSAgICAgICAgICAgIHVybD0nL2Jyb3dz ZXIvZnRzX2RpY3Rpb25hcnkvb2JqLycpKQotICAgIF0KKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2Vs Zi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2Vy dmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfbmFtZSddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBhZGQgbmV3IEZUUyBkaWN0aW9uYXJ5IHVuZGVyIHRlc3Qgc2NoZW1hLiAi IiIKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSdd Wy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1h X25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVt YV9pZCddCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVy X2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQorICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2No ZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1sn c2NoZW1hX2lkJ10KIAogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90 IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNTQs NiArNjAsNyBAQCBjbGFzcyBGdHNEaWN0aW9uYXJ5QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQor CiAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGljdF8lcyIgJSBzdHIodXVpZC51 dWlkNCgpKVsxOjhdCiAgICAgICAgIGRhdGEgPSBcCiAgICAgICAgICAgICB7CkBAIC03MCwxOSAr NzcsMjYgQEAgY2xhc3MgRnRzRGljdGlvbmFyeUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKICAgICAgICAgICAgIH0KIAogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3Qo Ci0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsK KyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAg ICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwogICAg ICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKICAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDAp CisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9u c2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAg ICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdmdHNfZGljdGlvbmFyeScsCisgICAgICAg ICAgICAncGdhZG1pbi5ub2RlLmZ0c19kaWN0aW9uYXJ5JywKKyAgICAgICAgICAgIEZhbHNlLAor ICAgICAgICAgICAgJ2ljb24tZnRzX2RpY3Rpb25hcnknLAorICAgICAgICAgICAgc2VsZi5mdHNf ZGljdF9uYW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIGZ0cyBkaWN0aW9uYXJpZXMgYW5kIGRpc2Nvbm5l Y3QgdGhlIHRlc3QKLSAgICAgICAgZGF0YWJhc2UuIiIiCiAgICAgICAgIGZ0c19kaWN0X3V0aWxz LmRlbGV0ZV9mdHNfZGljdGlvbmFyaWVzKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZnRzX2RpY3RfbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19k ZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmll c19kZWxldGUucHkKaW5kZXggN2M5M2EzN2EuLjcyOGY3MjI4IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf ZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rpb25hcmllc19kZWxldGUucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfZGVsZXRlLnB5 CkBAIC0xMSw1MCArMTEsNDQgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlv bgogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0 cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0 aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIg aW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX2RpY3RfdXRp bHMKIAogCi1jbGFzcyBGdHNEaWN0aW9uYXJ5RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGFkZGVkIEZUUyBEaWN0aW9uYXJ5 IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBG ZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgRlRTIGRpY3Rpb25hcnkgbm9kZS4KLSAgICAgICAgKCdG ZXRjaCBGVFMgZGljdGlvbmFyeSBOb2RlIFVSTCcsIGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9i cm93c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RlRTRGljdGlv bmFyaWVzRGVsZXRlOgorICAgIGRlZiB0ZXN0X2Z0c19kaWN0aW9uYXJpZXNfZGVsZXRlKHNlbGYs IHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0 aGUgRlRTIGRpY3Rpb25hcmllcyBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5k CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVx dWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChzZWxmKToK KyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nCiAKLSAgICAgICAg c2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAg ICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAg ICAgICBzZWxmLmZ0c19kaWN0X25hbWUgPSAiZnRzX2RpY3RfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo4XQotCi0gICAgICAgIHNlbGYuZnRzX2RpY3RfaWQgPSBmdHNfZGljdF91dGlscy5jcmVh dGVfZnRzX2RpY3Rpb25hcnkoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwKLSAgICAgICAgICAg IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAg ICBzZWxmLmZ0c19kaWN0X25hbWUpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90 ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0 WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUn XQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgdXBkYXRlIEZUUyBkaWN0aW9uYXJ5IHByZXNlbnQgdW5kZXIKLSAgICAgICAgICAgICAgICAg ICB0ZXN0IHNjaGVtYS4gIiIiCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2No ZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNj aGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAg ICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4i KQogCkBAIC02NCw2ICs1OCwxMyBAQCBjbGFzcyBGdHNEaWN0aW9uYXJ5RGVsZXRlVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAK KyAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lID0gImZ0c19kaWN0XyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5mdHNfZGljdF9pZCA9IGZ0c19kaWN0X3V0aWxzLmNy ZWF0ZV9mdHNfZGljdGlvbmFyeSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKKwogICAgICAgICBkaWN0X3Jlc3BvbnNlID0gZnRzX2Rp Y3RfdXRpbHMudmVyaWZ5X2Z0c19kaWN0KHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0 c19kaWN0X25hbWUpCkBAIC03MSwxOCArNzIsMjMgQEAgY2xhc3MgRnRzRGljdGlvbmFyeURlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90IGRpY3RfcmVzcG9u c2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMg ZGljdGlvbmFyeS4iKQogCi0gICAgICAgIGRlbGV0ZV9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRl bGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKHNlbGYuZnRzX2RpY3RfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24o cmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8n KSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdGVFMgRGljdGlvbmFyeSBkcm9w cGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cn KSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVz dWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKIAogICAgIGRlZiB0ZWFy RG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0 IGRhdGFiYXNlLiIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNf Z2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNf Z2V0LnB5CmluZGV4IGI2NzBiMGFlLi5kODU3ODVkZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rp b25hcmllcy90ZXN0cy90ZXN0X2Z0c19kaWN0aW9uYXJpZXNfZ2V0LnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19k aWN0aW9uYXJpZXMvdGVzdHMvdGVzdF9mdHNfZGljdGlvbmFyaWVzX2dldC5weQpAQCAtMTEsNDkg KzExLDQ0IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0 IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwK ICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRh YmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVf ZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0c19kaWN0X3V0aWxzCiAKIAotY2xh c3MgRnRzRGljdGlvbmFyeUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIg VGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBGVFMgZGljdGlvbmFyeSB1bmRlciBzY2hlbWEgbm9k ZS4gIiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIEZUUyBkaWN0aW9uYXJ5IG5vZGUuCi0gICAgICAgICgnRmV0Y2ggRlRTIGRpY3Rpb25h cnkgTm9kZSBVUkwnLCBkaWN0KAotICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdHNfZGljdGlv bmFyeS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEZUU0RpY3Rpb25hcmllc0dldDoKKyAgICBk ZWYgdGVzdF9mdHNfZGljdGlvbmFyaWVzX2dldChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rl c3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIEZUUyBkaWN0aW9uYXJpZXMgZ2V0 IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBz dGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVh ckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9m dHNfZGljdGlvbmFyeS9vYmovJwogCi0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRf bm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxm LnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVt YV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3Rb ImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lID0g ImZ0c19kaWN0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi50ZXN0 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9 IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lk ID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNl bGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2 ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICAgICAgc2VsZi5mdHNfZGljdF9pZCA9IGZ0c19kaWN0 X3V0aWxzLmNyZWF0ZV9mdHNfZGljdGlvbmFyeSgKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLAot ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwK LSAgICAgICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSkKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5m byA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCiAKLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBuZXcgRlRTIGRpY3Rp b25hcmllcyB1bmRlciB0ZXN0IHNjaGVtYS4KLSAgICAgICAgIiIiCiAgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNv bm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZS4iKQogCkBAIC02MywyMCArNTgsMjkgQEAgY2xhc3MgRnRzRGljdGlvbmFy eUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYS4iKQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICBzZWxmLmZ0c19kaWN0 X25hbWUgPSAiZnRzX2RpY3RfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBz ZWxmLmZ0c19kaWN0X2lkID0gZnRzX2RpY3RfdXRpbHMuY3JlYXRlX2Z0c19kaWN0aW9uYXJ5KAor ICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1l CisgICAgICAgICkKKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZnRzX2RpY3RfaWQpLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAg ICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykgPiBcCisgICAg ICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2VsZi5mdHNfZGljdF9uYW1lKQogCiAgICAgZGVm IHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRz IGRpY3Rpb25hcmllcyBhbmQgZGlzY29ubmVjdCB0aGUgdGVzdAotICAgICAgICBkYXRhYmFzZS4i IiIKICAgICAgICAgZnRzX2RpY3RfdXRpbHMuZGVsZXRlX2Z0c19kaWN0aW9uYXJpZXMoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdHNfZGljdF9uYW1lKQotICAgICAgICBkYXRhYmFz ZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAg IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBz ZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVz dHMvdGVzdF9mdHNfZGljdGlvbmFyaWVzX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVz dHMvdGVzdF9mdHNfZGljdGlvbmFyaWVzX3B1dC5weQppbmRleCA3OTM5YWY0OS4uYjI0NDljZmUg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c19kaWN0aW9uYXJpZXMvdGVzdHMvdGVzdF9mdHNfZGljdGlvbmFy aWVzX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGljdGlvbmFyaWVzL3Rlc3RzL3Rlc3RfZnRzX2RpY3Rp b25hcmllc19wdXQucHkKQEAgLTEyLDUwICsxMiw0NSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0 IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0 aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBn YWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24s IFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9u IGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRz X2RpY3RfdXRpbHMKIAogCi1jbGFzcyBGdHNEaWN0aW9uYXJ5UHV0VGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGFkZGVkIEZUUyBkaWN0 aW9uYXJ5IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAg ICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgRlRTIGRpY3Rpb25hcnkgbm9kZS4KLSAgICAg ICAgKCdGZXRjaCBGVFMgZGljdGlvbmFyeSBOb2RlIFVSTCcsIGRpY3QoCi0gICAgICAgICAgICB1 cmw9Jy9icm93c2VyL2Z0c19kaWN0aW9uYXJ5L29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0RlRT RGljdGlvbmFyaWVzUHV0OgorICAgIGRlZiB0ZXN0X2Z0c19kaWN0aW9uYXJpZXNfcHV0KHNlbGYs IHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0 aGUgRlRTIGRpY3Rpb25hcmllcyBwdXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisg ICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVz dC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChzZWxmKToKLQot ICAgICAgICBzZWxmLnNjaGVtYV9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd Ci0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfbmFt ZSddCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX2lk J10KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzZXJ2ZXJfaWQn XQotICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnZGJfaWQnXQotICAgICAg ICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFt ZSJdCi0gICAgICAgIHNlbGYuZnRzX2RpY3RfbmFtZSA9ICJmdHNfZGljdF8lcyIgJSBzdHIodXVp ZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mdHNfZGljdGlvbmFyeS9v YmovJwogCi0gICAgICAgIHNlbGYuZnRzX2RpY3RfaWQgPSBmdHNfZGljdF91dGlscy5jcmVhdGVf ZnRzX2RpY3Rpb25hcnkoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwKLSAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICBz ZWxmLmZ0c19kaWN0X25hbWUpCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0 c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0Wydk YXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFb J3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9p ZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQog Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwg dXBkYXRlIEZUUyBkaWN0aW9uYXJ5IHByZXNlbnQgdW5kZXIgdGVzdCBzY2hlbWEuCi0gICAgICAg ICAiIiIKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVt YSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2No ZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3Nj aGVtYV9pZCddCiAKICAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotCiAgICAgICAgIGlmIG5vdCBk Yl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTY1LDYg KzYwLDE0IEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAorICAgICAgICBzZWxmLmZ0 c19kaWN0X25hbWUgPSAiZnRzX2RpY3RfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAg ICAgICBzZWxmLmZ0c19kaWN0X2lkID0gZnRzX2RpY3RfdXRpbHMuY3JlYXRlX2Z0c19kaWN0aW9u YXJ5KAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5mdHNfZGlj dF9uYW1lCisgICAgICAgICkKKwogICAgICAgICBkaWN0X3Jlc3BvbnNlID0gZnRzX2RpY3RfdXRp bHMudmVyaWZ5X2Z0c19kaWN0KHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19kaWN0 X25hbWUpCkBAIC03OCw4ICs4MSw4IEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlQdXRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgImlkIjogc2VsZi5mdHNfZGljdF9p ZAogCiAgICAgICAgICAgICB9Ci0gICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1 dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAg ICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwpAQCAtODcsMTMgKzkwLDIwIEBA IGNsYXNzIEZ0c0RpY3Rpb25hcnlQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg ICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJl Y3RzPVRydWUpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2Uo CisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2Z0c19kaWN0aW9uYXJ5 JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuZnRzX2RpY3Rpb25hcnknLAorICAgICAgICAg ICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1mdHNfZGljdGlvbmFyeScsCisgICAgICAgICAg ICBzZWxmLmZ0c19kaWN0X25hbWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzIGRpY3Rpb25hcmllcyBh bmQgZGlzY29ubmVjdCB0aGUgdGVzdAotICAgICAgICBkYXRhYmFzZS4iIiIKICAgICAgICAgZnRz X2RpY3RfdXRpbHMuZGVsZXRlX2Z0c19kaWN0aW9uYXJpZXMoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mdHNfZGljdF9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvX19pbml0X18ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dHNfcGFyc2VyL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDhmNWI2ZmIyLi41OTAwMjZhZCAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFy c2VyL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci0KLQotY2xhc3MgRm9yZWlnblRhYmxlVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6 Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9hZGQucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFy c2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9hZGQucHkKaW5kZXggZmYxOTNlMjQuLjc3N2NkMjQx IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9hZGQucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfYWRkLnB5CkBAIC0xMiwz OCArMTIsNDUgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0 IGpzb24KIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAg dXRpbHMgYXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9y IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBl ciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFs dWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ0c19wYXJzZXJfdXRpbHMKIAogCi1jbGFz cyBGdHNQYXJzZXJBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMg Y2xhc3Mgd2lsbCBhZGQgbmV3IEZUUyBwYXJzZXIgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorY2xh c3MgVGVzdEZUU1BhcnNlckFkZDoKKyAgICBkZWYgdGVzdF9mdHNfcGFyc2VyX2FkZChzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IEZUUyBwYXJzZXIgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBp dCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmlu YWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Z0c19wYXJz ZXIvb2JqLycKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0 IFVSTCBmb3IgRlRTIHBhcnNlciBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyBwYXJzZXIgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX3BhcnNlci9vYmovJykpCi0gICAgXQorICAg ICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxm LnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBz ZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25h bWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBhIG5ldyBGVFMgcGFyc2VyIHVu ZGVyIHRlc3Qgc2NoZW1hLiAiIiIKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9u b2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5z Y2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYu c2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5z Y2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1h X2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsi ZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz ZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0g c2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KIAogICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQp Ci0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQu IjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UuIikKIApAQCAtNjYsMTkgKzczLDI2IEBAIGNsYXNzIEZ0c1BhcnNlckFkZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIH0KIAogICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIo c2VsZi5kYl9pZCkgKwogICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcv JywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLmRhdGEpLAogICAgICAgICAgICAg Y29udGVudF90eXBlPSdodG1sL2pzb24nKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zy b21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2Z0 c19wYXJzZXInLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mdHNfcGFyc2VyJywKKyAgICAg ICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tZnRzX3BhcnNlcicsCisgICAgICAgICAg ICBzZWxmLmZ0c19wYXJzZXJfbmFtZQorICAgICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSBmdHNfcGFyc2VyIGFuZCBk aXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgIGRhdGFiYXNlLiIiIgogICAgICAgICBmdHNfcGFy c2VyX3V0aWxzLmRlbGV0ZV9mdHNfcGFyc2VyKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c19w YXJzZXJfbmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9kZWxldGUucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9kZWxldGUucHkKaW5kZXggNjY0ZmVkNjQu LjVhNzdjODUxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNl cl9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci90ZXN0cy90ZXN0X2Z0c19wYXJzZXJfZGVs ZXRlLnB5CkBAIC0xMSw0NyArMTEsNDQgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m dW5jdGlvbgogCiBpbXBvcnQgdXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVy YXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19o ZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3Bh cnNlcl91dGlscwogCiAKLWNsYXNzIEZ0c1BhcnNlckRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBhZGRlZCBGVFMgUGFyc2Vy IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKK2NsYXNzIFRlc3RGVFNQYXJzZXJEZWxldGU6CisgICAg ZGVmIHRlc3RfZnRzX3BhcnNlcl9kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0 cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMgcGFyc2VyIGRlbGV0ZSByZXF1 ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVz CisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3du KQogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZv ciBGVFMgcGFyc2VyIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggRlRTIHBhcnNlciBOb2RlIFVSTCcs IGRpY3QodXJsPScvYnJvd3Nlci9mdHNfcGFyc2VyL29iai8nKSkKLSAgICBdCisgICAgICAgIHVy bCA9ICcvYnJvd3Nlci9mdHNfcGFyc2VyL29iai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAg ICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNl bGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAg IHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJf bmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgICAgIHNlbGYuc2NoZW1h X2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5z Y2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5m dHNfcGFyc2VyX25hbWUgPSAiZnRzX3BhcnNlcl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd CisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVst MV0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9u YW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFf aWQnXQogCi0gICAgICAgIHNlbGYuZnRzX3BhcnNlcl9pZCA9IGZ0c19wYXJzZXJfdXRpbHMuY3Jl YXRlX2Z0c19wYXJzZXIoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwKLSAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICBz ZWxmLmZ0c19wYXJzZXJfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBGVFMgcGFyc2VyIHByZXNlbnQgdW5kZXIgdGVz dCBzY2hlbWEuICIiIgogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90 IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjEs NiArNTgsMTMgQEAgY2xhc3MgRnRzUGFyc2VyRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKKyAgICAgICAgc2VsZi5m dHNfcGFyc2VyX25hbWUgPSAiZnRzX3BhcnNlcl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd CisgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9pZCA9IGZ0c19wYXJzZXJfdXRpbHMuY3JlYXRlX2Z0 c19wYXJzZXIoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZ0 c19wYXJzZXJfbmFtZSkKKwogICAgICAgICBwYXJzZXJfcmVzcG9uc2UgPSBmdHNfcGFyc2VyX3V0 aWxzLnZlcmlmeV9mdHNfcGFyc2VyKAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCiAgICAgICAg ICAgICBzZWxmLmRiX25hbWUsCkBAIC02OSwxOCArNzMsMjMgQEAgY2xhc3MgRnRzUGFyc2VyRGVs ZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBub3QgcGFyc2VyX3Jl c3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUg RlRTIHBhcnNlci4iKQogCi0gICAgICAgIGRlbGV0ZV9yZXNwb25zZSA9IHNlbGYudGVzdGVyLmRl bGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKHNlbGYuZnRzX3BhcnNlcl9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRy dWUpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZXRlX3Jlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5m bycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0ZUUyBQYXJzZXIgZHJvcHBl ZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykg PiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3Vs dCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAKICAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgdGVzdCBk YXRhYmFzZS4iIiIKLQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX2dldC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0 c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX2dldC5weQppbmRleCBjMThjNTVhMy4uYTY4 MTk4MjEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX2dl dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9nZXQucHkKQEAg LTExLDQ3ICsxMSw0NCBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAK IGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGlt cG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMg YXMgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBv cnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdHNfcGFyc2VyX3V0aWxz CiAKIAotY2xhc3MgRnRzUGFyc2VyR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAg ICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBmb3JlaWduIHRhYmxlIHVuZGVyIHNjaGVtYSBu b2RlLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0 IFVSTCBmb3IgRlRTIHBhcnNlciBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyBwYXJzZXIgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX3BhcnNlci9vYmovJykpCi0gICAgXQorY2xh c3MgVGVzdEZUU1BhcnNlckdldDoKKyAgICBkZWYgdGVzdF9mdHNfcGFyc2VyX2dldChzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IEZUUyBwYXJzZXIgZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBp dCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmlu YWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHVy bCA9ICcvYnJvd3Nlci9mdHNfcGFyc2VyL29iai8nCiAKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0 YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9 IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50 X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLmZ0c19w YXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAg ICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAg c2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9u YW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICAgICAgc2VsZi5mdHNfcGFy c2VyX2lkID0gZnRzX3BhcnNlcl91dGlscy5jcmVhdGVfZnRzX3BhcnNlcigKLSAgICAgICAgICAg IHNlbGYuc2VydmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQorICAgICAg ICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisg ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KIAot ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZl dGNoIG5ldyBGVFMgcGFyc2VyIHVuZGVyIHRlc3Qgc2NoZW1hLiAiIiIKICAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX2lkKQotCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2Ug Y29ubmVjdGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25u ZWN0IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTYxLDIwICs1OCwyOCBAQCBjbGFzcyBGdHNQYXJzZXJH ZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVz cG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEuIikKIAotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgc2VsZi5mdHNfcGFyc2Vy X25hbWUgPSAiZnRzX3BhcnNlcl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAg IHNlbGYuZnRzX3BhcnNlcl9pZCA9IGZ0c19wYXJzZXJfdXRpbHMuY3JlYXRlX2Z0c19wYXJzZXIo CisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZ0c19wYXJzZXJf bmFtZSkKKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwgKyBzdHIodXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZnRzX3BhcnNlcl9pZCksCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKIAotICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAg ICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAg IGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwKKyAgICAgICAg ICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLmZ0c19wYXJzZXJfbmFtZSkKIAogICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIGZ0c19w YXJzZXIgYW5kIGRpc2Nvbm5lY3QgdGhlIHRlc3QKLSAgICAgICAgZGF0YWJhc2UuIiIiCiAgICAg ICAgIGZ0c19wYXJzZXJfdXRpbHMuZGVsZXRlX2Z0c19wYXJzZXIoc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZnRzX3BhcnNlcl9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0 X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNs aWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX3B1dC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNfcGFyc2VyX3B1dC5weQppbmRleCBiMWVm NzhkMy4uNTM1MzJmMjcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19wYXJzZXIvdGVzdHMvdGVzdF9mdHNf cGFyc2VyX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL3Rlc3RzL3Rlc3RfZnRzX3BhcnNlcl9w dXQucHkKQEAgLTEyLDQ3ICsxMiw0NSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1 bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2Vf dGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBh c3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3BhcnNlcl91 dGlscwogCiAKLWNsYXNzIEZ0c1BhcnNlclB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSBhZGRlZCBGVFMgUGFyc2VyIHVuZGVyIHNj aGVtYSBub2RlLiAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBk ZWZhdWx0IFVSTCBmb3IgRlRTIHBhcnNlciBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyBwYXJz ZXIgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX3BhcnNlci9vYmovJykpCi0gICAg XQorY2xhc3MgVGVzdEZUU1BhcnNlclB1dDoKKyAgICBkZWYgdGVzdF9mdHNfcGFyc2VyX3B1dChz ZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gdGhlIEZUUyBwYXJzZXIgcHV0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3Qu YWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHVybCA9ICcvYnJvd3Nlci9mdHNfcGFyc2VyL29iai8nCiAKLSAgICAgICAgc2VsZi5zY2hl bWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5k Yl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxm LmZ0c19wYXJzZXJfbmFtZSA9ICJmdHNfcGFyc2VyXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0KKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAg ICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisg ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAg ICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2Vs Zi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICAgICAgc2VsZi5m dHNfcGFyc2VyX2lkID0gZnRzX3BhcnNlcl91dGlscy5jcmVhdGVfZnRzX3BhcnNlcigKLSAgICAg ICAgICAgIHNlbGYuc2VydmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX3BhcnNlcl9uYW1lKQor ICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd CisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFt ZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lk J10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3 aWxsIHVwZGF0ZSBGVFMgcGFyc2VyIHByZXNlbnQgdW5kZXIgdGVzdCBzY2hlbWEuICIiIgogICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVS X0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09 ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjIsNiArNjAsMTMgQEAgY2xhc3Mg RnRzUGFyc2VyUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCiAKKyAgICAgICAgc2VsZi5mdHNfcGFyc2VyX25hbWUgPSAiZnRz X3BhcnNlcl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHNlbGYuZnRzX3Bh cnNlcl9pZCA9IGZ0c19wYXJzZXJfdXRpbHMuY3JlYXRlX2Z0c19wYXJzZXIoCisgICAgICAgICAg ICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZWxmLmZ0c19wYXJzZXJfbmFtZSkKKwogICAg ICAgICBwYXJzZXJfcmVzcG9uc2UgPSBmdHNfcGFyc2VyX3V0aWxzLnZlcmlmeV9mdHNfcGFyc2Vy KAogICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCkBA IC03Nyw4ICs4Miw4IEBAIGNsYXNzIEZ0c1BhcnNlclB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKIAogICAgICAgICAgICAgfQogCi0gICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwpAQCAtODYsMTMgKzkx LDIwIEBAIGNsYXNzIEZ0c1BhcnNlclB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90 b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnZnRzX3BhcnNlcics CisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmZ0c19wYXJzZXInLAorICAgICAgICAgICAgRmFs c2UsCisgICAgICAgICAgICAnaWNvbi1mdHNfcGFyc2VyJywKKyAgICAgICAgICAgIHNlbGYuZnRz X3BhcnNlcl9uYW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIGZ0c19wYXJzZXIgYW5kIGRpc2Nvbm5lY3Qg dGhlIHRlc3QKLSAgICAgICAgICAgICAgICBkYXRhYmFzZS4iIiIKICAgICAgICAgZnRzX3BhcnNl cl91dGlscy5kZWxldGVfZnRzX3BhcnNlcihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mdHNfcGFy c2VyX25hbWUpCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVzdHMvX19pbml0X18ucHkKaW5kZXggOGY1YjZmYjIuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfdGVtcGxhdGVzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Ci0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQot Ci1jbGFzcyBGb3JlaWduVGFibGVUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLQot ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX2FkZC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190 ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX2FkZC5weQppbmRleCAxMmM0NGE4NS4u NTQ5NDQwMTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVt cGxhdGVzX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBs YXRlc19hZGQucHkKQEAgLTEyLDQyICsxMiw0NSBAQCBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy aW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxz LmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwK KyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3Rl bXBfdXRpbHMKIAogCi1jbGFzcyBGdHNUZW1wbGF0ZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgRlRTIHRlbXBsYXRlIHVuZGVy IHRlc3Qgc2NoZW1hLiAiIiIKK2NsYXNzIFRlc3RGVFNUZW1wbGF0ZXNBZGQ6CisgICAgZGVmIHRl c3RfZnRzX3RlbXBsYXRlc19hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMgdGVtcGxhdGVzIGFkZCByZXF1ZXN0IGlz IHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAg ICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBGVFMg dGVtcGxhdGUgbm9kZS4KLSAgICAgICAgKAotICAgICAgICAgICAgJ0ZldGNoIEZUUyB0ZW1wbGF0 ZXMgTm9kZSBVUkwnLAotICAgICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z0c190ZW1wbGF0 ZS9vYmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29i ai8nCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24g d2lsbCBhZGQgRlRTIHRlbXBsYXRlIHByZXNlbnQgdW5kZXIKLSAgICAgICAgICAgIHRlc3Qgc2No ZW1hLiAiIiIKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2Ns aWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10K KyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11b LTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lk J10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICAgICAg c2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAg ICAgc2VsZi5kYl9pZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAg ICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSdd CisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10K IAogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0KICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5m byJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIApAQCAtNjcsMTkgKzcwLDI2IEBA IGNsYXNzIEZ0c1RlbXBsYXRlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAg ICAgICAgfQogCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAgICAgc3Ry KHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCiAgICAgICAgICAgICAn LycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1 bXBzKHNlbGYuZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAg ICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQor ICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpz b25fcmVzcG9uc2UsCisgICAgICAgICAgICAnZnRzX3RlbXBsYXRlJywKKyAgICAgICAgICAgICdw Z2FkbWluLm5vZGUuZnRzX3RlbXBsYXRlJywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAg ICAgJ2ljb24tZnRzX3RlbXBsYXRlJywKKyAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBsYXRlX25h bWUKKyAgICAgICAgKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX3RlbXBsYXRlIGFuZCBkaXNjb25uZWN0IHRoZSB0ZXN0 Ci0gICAgICAgICAgICAgICAgZGF0YWJhc2UuIiIiCiAgICAgICAgIGZ0c190ZW1wX3V0aWxzLmRl bGV0ZV9mdHNfdGVtcGxhdGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBsYXRlX25h bWUpCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfZGVsZXRlLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfZGVsZXRlLnB5CmluZGV4IDhlZGFi OTc0Li43ZTkzZWUzYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0 c190ZW1wbGF0ZXNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9m dHNfdGVtcGxhdGVzX2RlbGV0ZS5weQpAQCAtMTEsNDcgKzExLDQ0IEBAIGZyb20gX19mdXR1cmVf XyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxz LmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZy b20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGZ0c190ZW1wX3V0aWxzCiAKIAotY2xhc3MgRnRzVGVtcGxhdGVEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxldGUg bmV3IEZUUyB0ZW1wbGF0ZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCitjbGFzcyBUZXN0RlRTVGVt cGxhdGVzRGVsZXRlOgorICAgIGRlZiB0ZXN0X2Z0c190ZW1wbGF0ZXNfZGVsZXRlKHNlbGYsIHJl cXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUg RlRTIHRlbXBsYXRlcyBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAg ICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5h ZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg IyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgRlRTIHRlbXBsYXRlIG5vZGUuCi0gICAgICAgICgn RmV0Y2ggRlRTIHRlbXBsYXRlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2Z0c190ZW1w bGF0ZS9vYmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZnRzX3RlbXBsYXRl L29iai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEg PSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzZWxmLnNjaGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHNlbGYuc2NoZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBz ZWxmLnNjaGVtYV9kYXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5mdHNfdGVt cF9uYW1lID0gImZ0c190ZW1wXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAg c2VsZi5mdHNfdGVtcF9pZCA9IGZ0c190ZW1wX3V0aWxzLmNyZWF0ZV9mdHNfdGVtcGxhdGUoCi0g ICAgICAgICAgICBzZWxmLnNlcnZlciwKLSAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUp CisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAg IHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIEZUUyB0ZW1wbGF0 ZSBwcmVzZW50IHVuZGVyCi0gICAgICAgICAgICB0ZXN0IHNjaGVtYS4gIiIiCisgICAgICAgIHNl bGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQogCiAgICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJf R1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9pZCkKLQogICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0g IkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCkBAIC02MSw2ICs1OCwxMiBAQCBjbGFzcyBG dHNUZW1wbGF0ZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYg bm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYS4iKQogCisgICAgICAgIHNlbGYuZnRzX3RlbXBfbmFtZSA9ICJm dHNfdGVtcF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHNlbGYuZnRzX3Rl bXBfaWQgPSBmdHNfdGVtcF91dGlscy5jcmVhdGVfZnRzX3RlbXBsYXRlKAorICAgICAgICAgICAg c2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lKQogICAgICAgICBm dHNfcmVzcG9uc2UgPSBmdHNfdGVtcF91dGlscy52ZXJpZnlfZnRzX3RlbXBsYXRlKHNlbGYuc2Vy dmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUpCkBAIC02OCwxOCArNzEs MjMgQEAgY2xhc3MgRnRzVGVtcGxhdGVEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 CiAgICAgICAgIGlmIG5vdCBmdHNfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBGVFMgdGVtcGxhdGUuIikKIAotICAgICAgICBkZWxldGVf cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5kZWxldGUoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAg ICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFf aWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmZ0c190ZW1wX2lkKSwKICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhk ZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0g Y29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAg ICAgICAnRlRTIFRlbXBsYXRlIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVh bC50bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCi0KLSAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBk YXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2Vs Zi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rl c3RfZnRzX3RlbXBsYXRlc19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRz X3RlbXBsYXRlc19nZXQucHkKaW5kZXggZmE2NDY0OGYuLjY2NzBkM2UyIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfdGVtcGxhdGVzL3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRlc19nZXQucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX3RlbXBsYXRlcy90ZXN0cy90ZXN0X2Z0c190ZW1wbGF0ZXNfZ2V0LnB5CkBAIC0xMSw0OSAr MTEsNDQgQEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiBpbXBvcnQg dXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIGRhdGFi YXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnRzX3RlbXBfdXRpbHMKIAogCi1jbGFz cyBGdHNUZW1wbGF0ZUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhp cyBjbGFzcyB3aWxsIGZldGNoIG5ldyBGVFMgdGVtcGxhdGUgdW5kZXIgdGVzdCBzY2hlbWEuICIi IgorY2xhc3MgVGVzdEZUU1RlbXBsYXRlc0RlbGV0ZToKKyAgICBkZWYgdGVzdF9mdHNfdGVtcGxh dGVzX2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIEZUUyB0ZW1wbGF0ZXMgZGVsZXRlIHJlcXVlc3QgaXMgc2VuZCB0 byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIi CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBzY2Vu YXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIEZUUyB0ZW1wbGF0 ZSBub2RlLgotICAgICAgICAoJ0ZldGNoIEZUUyB0ZW1wbGF0ZXMgTm9kZSBVUkwnLCBkaWN0KAot ICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9mdHNfdGVtcGxhdGUvb2JqLycpCi0gICAgICAgICAp Ci0gICAgXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29iai8nCiAKLSAg ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2NoZW1hX2RhdGEgPSBwYXJlbnRfbm9k ZV9kaWN0WydzY2hlbWEnXVstMV0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NjaGVtYV9uYW1lJ10KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNj aGVtYV9kYXRhWydzY2hlbWFfaWQnXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ3NlcnZlcl9pZCddCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNjaGVtYV9k YXRhWydkYl9pZCddCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lID0gImZ0 c190ZW1wXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5mdHNfdGVt cF9pZCA9IGZ0c190ZW1wX3V0aWxzLmNyZWF0ZV9mdHNfdGVtcGxhdGUoCi0gICAgICAgICAgICBz ZWxmLnNlcnZlciwKLSAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUsCi0gICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUpCisgICAgICAgIHNl bGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxm LnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVy X2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJf aWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNl bGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggRlRTIHRlbXBsYXRlIHByZXNlbnQgdW5k ZXIKLSAgICAgICAgICAgIHRlc3Qgc2NoZW1hLiAiIiIKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5m byA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9u YW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCiAKICAgICAgICAgZGJfY29uID0g ZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX2lkKQotCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29u bmVjdGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTYzLDIwICs1OCwyOCBAQCBjbGFzcyBGdHNUZW1wbGF0ZUdl dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYS4iKQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICBzZWxmLmZ0c190ZW1wX25h bWUgPSAiZnRzX3RlbXBfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxm LmZ0c190ZW1wX2lkID0gZnRzX3RlbXBfdXRpbHMuY3JlYXRlX2Z0c190ZW1wbGF0ZSgKKyAgICAg ICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBfbmFtZSkKKwor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwgKyBzdHIodXRpbHMuU0VSVkVS X0dST1VQKSArICcvJyArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RyKHNlbGYuZnRzX3RlbXBfaWQpLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgcmVzcG9uc2Uu c3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3Bv bnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCduYW1lJykgPiBcCisgICAgICAgICAgICBzaG91bGQu YmUuZXF1YWwudG8oc2VsZi5mdHNfdGVtcF9uYW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgZnRzX3RlbXBsYXRlIGFuZCBk aXNjb25uZWN0IHRoZSB0ZXN0Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZS4iIiIK ICAgICAgICAgZnRzX3RlbXBfdXRpbHMuZGVsZXRlX2Z0c190ZW1wbGF0ZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lKQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxh dGVzX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX3B1 dC5weQppbmRleCA4YzRkYTk3OS4uNTVlMDRhOTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0 ZXMvdGVzdHMvdGVzdF9mdHNfdGVtcGxhdGVzX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVz L3Rlc3RzL3Rlc3RfZnRzX3RlbXBsYXRlc19wdXQucHkKQEAgLTEyLDQ3ICsxMiw0NSBAQCBmcm9t IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQganNvbgogaW1wb3J0IHV1 aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBkYXRhYmFz ZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgZnRzX3RlbXBfdXRpbHMKIAogCi1jbGFzcyBGdHNUZW1wbGF0ZVB1dFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIHVwZGF0 ZSBuZXcgRlRTIHRlbXBsYXRlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKK2NsYXNzIFRlc3RGVFNU ZW1wbGF0ZXNQdXQ6CisgICAgZGVmIHRlc3RfZnRzX3RlbXBsYXRlc19wdXQoc2VsZiwgcmVxdWVz dCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBGVFMg dGVtcGxhdGVzIHB1dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQg cmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFs aXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBGVFMgdGVtcGxhdGUgbm9kZS4KLSAgICAgICAgKCdGZXRjaCBG VFMgdGVtcGxhdGUgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZnRzX3RlbXBsYXRlL29i ai8nKSkKLSAgICBdCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mdHNfdGVtcGxhdGUvb2JqLycK IAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5zY2hlbWFfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2Vs Zi5zY2hlbWFfZGF0YVsnc2NoZW1hX25hbWUnXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNl bGYuc2NoZW1hX2RhdGFbJ3NjaGVtYV9pZCddCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2Vs Zi5zY2hlbWFfZGF0YVsnc2VydmVyX2lkJ10KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2No ZW1hX2RhdGFbJ2RiX2lkJ10KLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGlj dFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUg PSAiZnRzX3RlbXBfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLmZ0 c190ZW1wX2lkID0gZnRzX3RlbXBfdXRpbHMuY3JlYXRlX2Z0c190ZW1wbGF0ZSgKLSAgICAgICAg ICAgIHNlbGYuc2VydmVyLAotICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBfbmFtZSkKKyAgICAg ICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAg IHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2Vs Zi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1l ID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgRlRTIHRlbXBsYXRlIHByZXNl bnQgdW5kZXIKLSAgICAgICAgICAgIHRlc3Qgc2NoZW1hLiAiIiIKKyAgICAgICAgc2VsZi5zY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCiAKICAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQotCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJh c2UgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKQEAgLTYyLDYgKzYwLDEzIEBAIGNsYXNzIEZ0c1RlbXBs YXRlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBpZiBub3Qgc2NoZW1h X3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgc2NoZW1hLiIpCiAKKyAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lID0gImZ0c190ZW1wXyVz IiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5mdHNfdGVtcF9pZCA9IGZ0 c190ZW1wX3V0aWxzLmNyZWF0ZV9mdHNfdGVtcGxhdGUoCisgICAgICAgICAgICBzZWxmLnNlcnZl ciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUsCisgICAgICAgICAgICBzZWxmLmZ0c190ZW1wX25hbWUpCisKICAgICAgICAgZnRzX3Jlc3Bv bnNlID0gZnRzX3RlbXBfdXRpbHMudmVyaWZ5X2Z0c190ZW1wbGF0ZShzZWxmLnNlcnZlciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1lKQpAQCAtNzYsOCArODEsOCBAQCBjbGFz cyBGdHNUZW1wbGF0ZVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKIAogICAgICAgICAg ICAgfQogCi0gICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5T RVJWRVJfR1JPVVApICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAn LycgKwogICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwpAQCAtODUsMTMgKzkwLDIwIEBAIGNsYXNzIEZ0c1Rl bXBsYXRlUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgZGF0YT1q c29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0g ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQor ICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisg ICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2Up CisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAg anNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdmdHNfdGVtcGxhdGUnLAorICAgICAgICAgICAg J3BnYWRtaW4ubm9kZS5mdHNfdGVtcGxhdGUnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAg ICAgICAnaWNvbi1mdHNfdGVtcGxhdGUnLAorICAgICAgICAgICAgc2VsZi5mdHNfdGVtcF9uYW1l CisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkZWxldGUgdGhlIGZ0c190ZW1wbGF0ZSBhbmQgZGlzY29ubmVjdCB0aGUgdGVzdAot ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YWJhc2UuIiIiCiAgICAgICAgIGZ0c190ZW1wX3V0 aWxzLmRlbGV0ZV9mdHNfdGVtcGxhdGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnRzX3RlbXBf bmFtZSkKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvX19pbml0 X18ucHkKaW5kZXggNDdjYjkwMzEuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL19faW5pdF9fLnB5CkBA IC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgVHJpZ2dlckZ1bmN0 aW9uVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF90cmlnZ2VyX2Z1bmNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9m dW5jX2FkZC5weQppbmRleCBkMjM4YmYwMS4uM2Q3YWViMzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl c3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2FkZC5weQpAQCAtMTAsMzQgKzEwLDQ1IEBACiBpbXBvcnQg anNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxz IGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90 ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGls cy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFz c2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFRyaWdnZXJGdW5jQWRkVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyB0cmlnZ2Vy IGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0g WydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIHRyaWdnZXIgZnVuY3Rpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBUcmlnZ2VyIEZ1 bmN0aW9uIE5vZGUgVVJMJywgZGljdCgKLSAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvdHJpZ2dl cl9mdW5jdGlvbi9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsn Z3BkYiddKQorY2xhc3MgVGVzdFRyaWdnZXJGdW5jdGlvbnNBZGQ6CisgICAgZGVmIHRlc3RfdHJp Z2dlcl9mdW5jdGlvbnNfYWRkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgVHJpZ2dlciBGdW5jdGlvbnMgYWRkIHJlcXVlc3Qg aXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAg ICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisK KyAgICAgICAgdXJsID0gJy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycKKworICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAg c2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNl cnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxm LmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUg PSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KIAotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0cmlnZ2VyIGZ1bmN0aW9u IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICAgICAgc3VwZXIoVHJpZ2dlckZ1bmNBZGRUZXN0 Q2FzZSwgc2VsZikucnVuVGVzdCgpCi0gICAgICAgIGRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCiAgICAg ICAgIHByb3JldHR5cGVuYW1lID0gImV2ZW50X3RyaWdnZXIvdHJpZ2dlciIKLSAgICAgICAgc2Vy dmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCisg ICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQpCiAgICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZl ciBjb25uZWN0ZWQuIjoKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgImdyb3Vwcy4iKQpAQCAtNDUsMTcgKzU2LDE5IEBAIGNsYXNzIFRyaWdnZXJGdW5jQWRk VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgaWYgc2VydmVyX2Nvblsi ZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKICAgICAgICAgICAgICAgICBwcm9yZXR0eXBlbmFt ZSA9ICJ0cmlnZ2VyIgogCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlm IG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBhIGZ1bmN0aW9uLiIp Ci0gICAgICAgIHNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBz Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25u ZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBh IGZ1bmN0aW9uLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzY2hlbWEuIikKKwogICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1l Il0KICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICJhY2wiOiBbCkBAIC05NywxNyArMTEw LDMyIEBAIGNsYXNzIFRyaWdnZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICB0cmlnZ2VyX2Z1bmNfdHlwZXMgPSBkYXRhWydwcm9yZXR0eXBlbmFtZSddLnNwbGl0 KCcvJykKICAgICAgICAgZm9yIGZ1bmNfdHlwZSBpbiB0cmlnZ2VyX2Z1bmNfdHlwZXM6CiAgICAg ICAgICAgICBkYXRhWydwcm9yZXR0eXBlbmFtZSddID0gZnVuY190eXBlCi0gICAgICAgICAgICBk YXRhWyJuYW1lIl0gPSAidGVzdF9ldmVudF9hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQotICAgICAgICAgICAgaWYgc2NoZW1hX2lkOgotICAgICAgICAgICAgICAgIGRhdGFbJ3Byb25h bWVzcGFjZSddID0gc2NoZW1hX2lkCisgICAgICAgICAgICB0cmlnZ2VyX2Z1bmNfbmFtZSA9IFwK KyAgICAgICAgICAgICAgICAidGVzdF9ldmVudF9hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQorICAgICAgICAgICAgZGF0YVsibmFtZSJdID0gdHJpZ2dlcl9mdW5jX25hbWUKKyAgICAg ICAgICAgIGlmIHNlbGYuc2NoZW1hX2lkOgorICAgICAgICAgICAgICAgIGRhdGFbJ3Byb25hbWVz cGFjZSddID0gc2VsZi5zY2hlbWFfaWQKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgc2NoZW1hX2lkID0gZGF0YVsncHJvbmFtZXNwYWNlJ10KKyAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IGRhdGFbJ3Byb25hbWVzcGFjZSddCiAgICAgICAgICAgICByZXNwb25zZSA9 IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMu U0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKyBzdHIoZGJfaWQpICsgJy8nICsgc3RyKHNjaGVtYV9pZCkgKwotICAgICAgICAgICAgICAg ICcvJywgZGF0YT1qc29uLmR1bXBzKGRhdGEpLCBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAg ICAgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAg c3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFf aWQpICsgJy8nLAorICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAg ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIHJlc3Bv bnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg ICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBq c29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgICAgICd0cmlnZ2VyX2Z1bmN0aW9uJywKKyAgICAg ICAgICAgICAgICAncGdhZG1pbi5ub2RlLnRyaWdnZXJfZnVuY3Rpb24nLAorICAgICAgICAgICAg ICAgIEZhbHNlLAorICAgICAgICAgICAgICAgICdpY29uLXRyaWdnZXJfZnVuY3Rpb24nLAorICAg ICAgICAgICAgICAgIHRyaWdnZXJfZnVuY19uYW1lICsgJygpJwogICAgICAgICAgICAgKQogCi0g ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQot ICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKyAgICBkZWYgdGVh ckRvd24oc2VsZik6CisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19kZWxldGUucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5CmluZGV4IDNkMWZlOWZlLi5kNDA1 YjI1OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2Rl bGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRl LnB5CkBAIC05LDM5ICs5LDQ0IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMK IGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwot ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBw Z2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMKIAogCi1jbGFzcyBUcmln Z2VyRnVuY0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBj bGFzcyB3aWxsIGRlbGV0ZSB0aGUgdHJpZ2dlciBmdW5jdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4g IiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwot ICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciB0cmlnZ2VyIGZ1bmN0aW9uIG5vZGUu Ci0gICAgICAgICgnRmV0Y2ggVHJpZ2dlciBGdW5jdGlvbiBOb2RlIFVSTCcsCi0gICAgICAgICBk aWN0KHVybD0nL2Jyb3dzZXIvdHJpZ2dlcl9mdW5jdGlvbi9vYmovJykpCi0gICAgXQorQHB5dGVz dC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdFRyaWdnZXJGdW5jdGlv bnNBZGQ6CisgICAgZGVmIHRlc3RfdHJpZ2dlcl9mdW5jdGlvbnNfYWRkKHNlbGYsIHJlcXVlc3Qs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgVHJpZ2dl ciBGdW5jdGlvbnMgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBp dCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmlu YWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1 cGVyKFRyaWdnZXJGdW5jRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFd WyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdHJp Z2dlcl9mdW5jdGlvbi9vYmovJwogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdnZXIgZnVuY3Rpb24gdW5kZXIgZGF0YWJh c2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2No ZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQot ICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGZ1bmNfbmFtZSA9 ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAg IHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVyX2lk KQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxm LmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBz ZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVy X2lkKQogICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVj dGVkLiI6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJn cm91cHMuIikKQEAgLTQ5LDI5ICs1NCw0NCBAQCBjbGFzcyBUcmlnZ2VyRnVuY0RlbGV0ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25b ImRhdGEiXToKICAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwg OTAzMDA6CiAgICAgICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRh Il1bInZlcnNpb24iXQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNz X3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAotICAgICAgICAgICAg c2VydmVyX3ZlcnNpb24pCiAKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAg aWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxhdGlvbi4i KQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8i XSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQg dGhlIGNvbGxhdGlvbi4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZXZlbnRfZGVs ZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VsZi5mdW5jdGlvbl9p bmZvID0gdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKKyAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNf bmFtZSwKKyAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uKQorCiAgICAgICAgIHRyaWdnZXJfZnVu Y19pZCA9IHNlbGYuZnVuY3Rpb25faW5mb1swXQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoZGJfaWQp ICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIodHJp Z2dlcl9mdW5jX2lkKSwKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVt YV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHRyaWdnZXJfZnVuY19pZCksCiAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgKQotICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29k ZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAg ICdGdW5jdGlvbiBkcm9wcGVkLicpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEp CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZGF0YWJh c2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2Vy dmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dl cl9mdW5jX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19nZXQu cHkKaW5kZXggN2ViMGQyYTMuLmJiYzUzOTdhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVz dHMvdGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0 X3RyaWdnZXJfZnVuY19nZXQucHkKQEAgLTksNDAgKzksNDQgQEAKIAogaW1wb3J0IHV1aWQKIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAg ICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMg YXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0 IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191dGls cwogCiAKLWNsYXNzIFRyaWdnZXJGdW5jR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgot ICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBhZGRlZCB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVy IHNjaGVtYSBub2RlLiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgdHJpZ2dlciBm dW5jdGlvbiBub2RlLgotICAgICAgICAoJ0ZldGNoIFRyaWdnZXIgRnVuY3Rpb24gTm9kZSBVUkwn LAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycpKQot ICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RU cmlnZ2VyRnVuY3Rpb25zR2V0OgorICAgIGRlZiB0ZXN0X3RyaWdnZXJfZnVuY3Rpb25zX2dldChz ZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gdGhlIFRyaWdnZXIgRnVuY3Rpb25zIGdldCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tl bmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBy ZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJv d3Nlci90cmlnZ2VyX2Z1bmN0aW9uL29iai8nCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg ICAgIHN1cGVyKFRyaWdnZXJGdW5jR2V0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1b LTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25vZGVf ZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50 X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxm LnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2 ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRh WydkYl9uYW1lJ10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVyIGRhdGFiYXNlIG5vZGUu ICIiIgotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0x XQotICAgICAgICBzZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAg ZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9l dmVudF9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBkYl91c2VyID0g c2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGls cy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCisgICAgICAgIHNlbGYuc2NoZW1hX2lu Zm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCisgICAgICAgIHNlcnZlcl9j b24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCiAg ICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoK ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVy IHRvIGFkZCByZXNvdXJjZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4i KQpAQCAtNTAsMjggKzU0LDM4IEBAIGNsYXNzIFRyaWdnZXJGdW5jR2V0VGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgog ICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKICAg ICAgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lv biJdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3Jl YXRlX3RyaWdnZXJfZnVuY3Rpb24oCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCi0gICAgICAgICAgICBzZXJ2ZXJfdmVy c2lvbikKIAotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgY29sbGF0aW9uLiIpCisgICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JP VVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRh YmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCB0aGUgY29sbGF0 aW9uLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEuIikKKworICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9ldmVudF9kZWxldGVfJXMiICUg c3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmln Z2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19uYW1lLAorICAg ICAgICAgICAgc2VydmVyX3ZlcnNpb24pCisKICAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gc2Vs Zi5mdW5jdGlvbl9pbmZvWzBdCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAot ICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0 cihzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9p ZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cih0 cmlnZ2VyX2Z1bmNfaWQpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAg ICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKworICAgICAgICByZXNw b25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25f cmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwKKyAgICAgICAgICAgIHNo b3VsZC5iZS5lcXVhbC50byhmdW5jX25hbWUpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0g ICAgICAgIHBhc3MKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19wdXQucHkKaW5kZXggNjNkNGMwODUuLmMyMWY4ZDhlIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19wdXQucHkKQEAgLTEwLDM5 ICsxMCw0NSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMK IGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwot ZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBw Z2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSBy ZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRp bHMgYXMgdHJpZ2dlcl9mdW5jc191dGlscwogCiAKLWNsYXNzIFRyaWdnZXJGdW5jUHV0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIG5l dyB0cmlnZ2VyIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBza2lwX29uX2Rh dGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIHRyaWdnZXIgZnVuY3Rpb24gbm9kZS4KLSAgICAgICAgKCdGZXRjaCBU cmlnZ2VyIEZ1bmN0aW9uIE5vZGUgVVJMJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90 cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g ICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAg ICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25h bWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1h Il1bLTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25v ZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQotCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRyaWdnZXIgZnVuY3Rp b24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAg ICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X3B1dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjhdCi0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2Vs Ziwgc2VydmVyX2lkKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xh c3MgVGVzdFRyaWdnZXJGdW5jdGlvbnNHZXQ6CisgICAgZGVmIHRlc3RfdHJpZ2dlcl9mdW5jdGlv bnNfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAg ICAgICAgV2hlbiB0aGUgVHJpZ2dlciBGdW5jdGlvbnMgZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0 aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisg ICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJs ID0gJy9icm93c2VyL3RyaWdnZXJfZnVuY3Rpb24vb2JqLycKKworICAgICAgICBzZWxmLnRlc3Rl ciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0g cGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2Vs Zi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZl cl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25v ZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNj aGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5z Y2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0 aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQogICAgICAgICBpZiBub3Qg c2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVjdGVkLiI6CiAgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQgcmVzb3Vy Y2UgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cHMuIikKQEAgLTUwLDE5ICs1 NiwyNSBAQCBjbGFzcyBUcmlnZ2VyRnVuY1B1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9jb25bImRhdGEiXToKICAgICAgICAgICAgIGlm IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6CiAgICAgICAgICAgICAgICAg c2VydmVyX3ZlcnNpb24gPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXQotICAgICAgICBz ZWxmLmZ1bmN0aW9uX2luZm8gPSB0cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1 bmN0aW9uKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hl bWFfbmFtZSwgZnVuY19uYW1lLAotICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24pCi0gICAgICAg IGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VS VkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29u bmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlIHRvIGFkZCBjb2xsYXRpb24uIikKKworICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVk LiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlLiIpCisKICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAg ICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIGNvbGxhdGlvbi4iKQotICAgICAg ICBmdW5jX25hbWUgPSBzZWxmLmZ1bmN0aW9uX2luZm9bMV0KKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgICAgIGZ1bmNfbmFt ZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAg ICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdn ZXJfZnVuY3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxm LnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCisgICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKwog ICAgICAgICBmdW5jX3Jlc3BvbnNlID0gdHJpZ2dlcl9mdW5jc191dGlscy52ZXJpZnlfdHJpZ2dl cl9mdW5jdGlvbigKICAgICAgICAgICAgIHNlbGYuc2VydmVyLAogICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLApAQCAtNzcsMTYgKzg5LDI2IEBAIGNsYXNzIFRyaWdnZXJGdW5jUHV0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgImlkIjogdHJpZ2dlcl9mdW5jX2lkCiAg ICAgICAgIH0KIAotICAgICAgICBwdXRfcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKLSAgICAgICAgICAg ICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAg IHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIodHJpZ2dlcl9mdW5j X2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZv bGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3Bv bnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UK LSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJf aWQsIGRiX2lkKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2Uo CisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3RyaWdnZXJfZnVuY3Rp b24nLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS50cmlnZ2VyX2Z1bmN0aW9uJywKKyAgICAg ICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tdHJpZ2dlcl9mdW5jdGlvbicsCisgICAg ICAgICAgICBmdW5jX25hbWUgKyAnKCknCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKLSAgICAgICAgcGFzcworICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29u bmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9wYWNrYWdlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL19f aW5pdF9fLnB5CmluZGV4IGU2NWFmMjBjLi41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2Fn ZXMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvX19pbml0X18ucHkK QEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBQYWNrYWdlVGVz dEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToK LSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90ZXN0X3BhY2th Z2VfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX2FkZC5weQppbmRleCBm YTc0MTBjNy4uYjZmMmVhMjkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFj a2FnZV9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX2FkZC5weQpA QCAtMTAsODMgKzEwLDc2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5 dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAg ICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFz ZV91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVy X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Citmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl CiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNz IFBhY2thZ2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xh c3Mgd2lsbCBhZGQgbmV3IHBhY2thZ2UgdW5kZXIgdGVzdCBzY2hlbWEuICIiIgotICAgIHNraXBf b25fZGF0YWJhc2UgPSBbJ2dwZGInXQotCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZl dGNoaW5nIGRlZmF1bHQgVVJMIGZvciBwYWNrYWdlIG5vZGUuCi0gICAgICAgICgnRmV0Y2ggUGFj a2FnZSBOb2RlIFVSTCcsIGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9icm93c2VyL3BhY2thZ2Uv b2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoUGFj a2FnZUFkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9k aWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0g c2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5m b1siZGJfaWQiXQotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2Vy dmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQotCi0gICAgICAgIGlmIHNlcnZlcl9jb246Ci0gICAg ICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgICAg IGlmIHNlcnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0gICAgICAgICAgICAgICAg ICAgIG1lc3NhZ2UgPSAiUGFja2FnZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcuIgotICAgICAg ICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgcGFja2FnZSB1bmRlciB0 ZXN0IHNjaGVtYS4gIiIiCi0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQotCi0gICAgICAgIGlm IG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCi0KLSAg ICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYu c2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKK0BweXRlc3QubWFyay5za2lwX2Rh dGFiYXNlcyhbJ2dwZGInLCAncGcnXSkKK2NsYXNzIFRlc3RQYWNrYWdlQWRkOgorICAgIEBweXRl c3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBk ZWYgdGVzdF9wYWNrYWdlX2FkZChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIHBhY2thZ2UgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFj a2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAg IHVybCA9ICcvYnJvd3Nlci9wYWNrYWdlL29iai8nCisKKyAgICAgICAgdGVzdGVyID0gY29udGV4 dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2 ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIGRi X25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2NoZW1hX25hbWUgPSBz ZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0 YVsnc2NoZW1hX2lkJ10KKworICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hLiIpCiAKKyAgICAgICAgcGFja2FnZV9uYW1lID0gInBrZ18lcyIgJSBz dHIodXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIGRhdGEgPSBcCiAgICAgICAgICAgICB7Ci0g ICAgICAgICAgICAgICAgIm5hbWUiOiAicGtnXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0s Ci0gICAgICAgICAgICAgICAgIm93bmVyIjogc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0sCisgICAg ICAgICAgICAgICAgIm5hbWUiOiBwYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAgIm93bmVy Ijogc2VydmVyWyJ1c2VybmFtZSJdLAogICAgICAgICAgICAgICAgICJwa2dhY2wiOiBbXSwKICAg ICAgICAgICAgICAgICAicGtnYm9keXNyYyI6ICJQUk9DRURVUkUgcDEoKSBpcyBcbiIKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJiZWdpbiBcbiIKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJkYm1zX291dHB1dC5wdXRfbGluZSgnVGVzdF9wa2cuUHJvYy4uLicpOyAiCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG5FTkRcdDsiLAogICAgICAgICAgICAgICAg ICJwa2doZWFkc3JjIjogIlBST0NFRFVSRSBwMSgpOyIsCi0gICAgICAgICAgICAgICAgInNjaGVt YSI6IHNlbGYuc2NoZW1hX2lkCisgICAgICAgICAgICAgICAgInNjaGVtYSI6IHNjaGVtYV9pZAog ICAgICAgICAgICAgfQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0g ICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAgICByZXNw b25zZSA9IHRlc3Rlci5wb3N0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcv JywKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25z ZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIGRpc2Nvbm5lY3QgdGhlIHRlc3QgZGF0YWJhc2UuIiIiCi0KLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lk KQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDAp CisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9u c2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAg ICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdwYWNrYWdlJywKKyAgICAgICAgICAgICdw Z2FkbWluLm5vZGUucGFja2FnZScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdp Y29uLXBhY2thZ2UnLAorICAgICAgICAgICAgcGFja2FnZV9uYW1lCisgICAgICAgICkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9kZWxldGUucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNr YWdlcy90ZXN0cy90ZXN0X3BhY2thZ2VfZGVsZXRlLnB5CmluZGV4IGQ2MmUwMTZhLi43MGNiY2Uy ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX2RlbGV0ZS5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90ZXN0X3BhY2thZ2VfZGVsZXRlLnB5CkBAIC05LDg3ICs5 LDcxIEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9y dCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz Ci1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9y dCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9y dCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBw YWNrYWdlX3V0aWxzCiAKIAotY2xhc3MgUGFja2FnZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBuZXcgcGFja2FnZSB1bmRl ciB0ZXN0IHNjaGVtYS4gIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0KLSAg ICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHBhY2th Z2Ugbm9kZS4KLSAgICAgICAgKCdGZXRjaCBQYWNrYWdlIE5vZGUgVVJMJywgZGljdCgKLSAgICAg ICAgICAgIHVybD0nL2Jyb3dzZXIvcGFja2FnZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNl dFVwKHNlbGYpOgotICAgICAgICBzdXBlcihQYWNrYWdlRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNl dFVwKCkKLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVst MV0KLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KLSAgICAgICAgc2VsZi5wa2dfbmFtZSA9ICJwa2dfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo4XQotICAgICAgICBzZWxmLnByb2NfbmFtZSA9ICJwcm9jXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVy X2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAg IHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQpCi0KLSAgICAgICAgaWYgc2VydmVyX2NvbjoKLSAgICAgICAgICAgIGlmICJ0eXBlIiBp biBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0 YSJdWyJ0eXBlIl0gPT0gInBnIjoKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJQYWNr YWdlcyBhcmUgbm90IHN1cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu c2tpcFRlc3QobWVzc2FnZSkKK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInLCAn cGcnXSkKK2NsYXNzIFRlc3RQYWNrYWdlRGVsZXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0 dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9wYWNrYWdl X2RlbGV0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gdGhlIHBhY2thZ2UgREVMRVRFIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCiAKLSAgICAgICAgc2VsZi5w YWNrYWdlX2lkID0gcGFja2FnZV91dGlscy5jcmVhdGVfcGFja2FnZShzZWxmLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBrZ19uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvY19uYW1lKQor ICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcGFja2FnZS9vYmovJwogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHBhY2thZ2UgdW5k ZXIgdGVzdCBzY2hlbWEuICIiIgorICAgICAgICB0ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcidd CisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0 aW9uJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgZGJfbmFtZSA9IHNlcnZl cl9kYXRhWydkYl9uYW1lJ10KIAotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25u ZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIHNj aGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX2lk ID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCiAKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5m byJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKLQotICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBu b3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICAgICAgcGFja2FnZV9yZXNwb25zZSA9IHBhY2th Z2VfdXRpbHMudmVyaWZ5X3BhY2thZ2Uoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSkKKyAgICAgICAgcGtnX25hbWUgPSAicGtnXyVzIiAlIHN0cih1dWlkLnV1aWQ0 KCkpWzE6NF0KKyAgICAgICAgcHJvY19uYW1lID0gInByb2NfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo0XQorICAgICAgICBwYWNrYWdlX2lkID0gcGFja2FnZV91dGlscy5jcmVhdGVfcGFja2Fn ZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwa2dfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcHJvY19uYW1lKQorCisgICAgICAgIHBhY2thZ2VfcmVzcG9uc2Ug PSBwYWNrYWdlX3V0aWxzLnZlcmlmeV9wYWNrYWdlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUpCiAKICAgICAgICAgaWYgbm90IHBhY2thZ2VfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBwYWNrYWdlLiIpCiAKLSAgICAgICAgZGVs ZXRlX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCi0g ICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKLSAgICAgICAgICAgIHN0cihz ZWxmLnBhY2thZ2VfaWQpLAorICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5kZWxldGUoCisgICAg ICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihwYWNr YWdlX2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhkZWxldGVfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLQotICAg IGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0 IHRoZSB0ZXN0IGRhdGFiYXNlLiIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0g Y29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAg ICAgICAnUGFja2FnZSBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8o MSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9nZXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9wYWNrYWdlcy90ZXN0cy90ZXN0X3BhY2thZ2VfZ2V0LnB5CmluZGV4IDFjNGUxYmYwLi43YTZh YjRiMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX2dldC5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9wYWNrYWdlcy90ZXN0cy90ZXN0X3BhY2thZ2VfZ2V0LnB5CkBAIC05LDgwICs5LDYx IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1m cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBj b252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwYWNr YWdlX3V0aWxzCiAKIAotY2xhc3MgUGFja2FnZUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGZldGNoIG5ldyBwYWNrYWdlIHVuZGVyIHRlc3Qg c2NoZW1hLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLQotICAgIHNjZW5h cmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgcGFja2FnZSBub2Rl LgotICAgICAgICAoJ0ZldGNoIFBhY2thZ2UgTm9kZSBVUkwnLCBkaWN0KAotICAgICAgICAgICAg dXJsPScvYnJvd3Nlci9wYWNrYWdlL29iai8nKSkKLSAgICBdCi0KLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIHN1cGVyKFBhY2thZ2VHZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAg ICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAg ICAgICBzZWxmLnBrZ19uYW1lID0gInBrZ18lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0g ICAgICAgIHNlbGYucHJvY19uYW1lID0gInByb2NfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAg ICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgc2VydmVyX2Nv biA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLQot ICAgICAgICBpZiBzZXJ2ZXJfY29uOgotICAgICAgICAgICAgaWYgInR5cGUiIGluIHNlcnZlcl9j b25bImRhdGEiXToKLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInR5cGUi XSA9PSAicGciOgotICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gIlBhY2thZ2VzIGFyZSBu b3Qgc3VwcG9ydGVkIGJ5IFBHLiIKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCht ZXNzYWdlKQotCi0gICAgICAgIHNlbGYucGFja2FnZV9pZCA9IHBhY2thZ2VfdXRpbHMuY3JlYXRl X3BhY2thZ2Uoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5w a2dfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnByb2NfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNoIHBhY2thZ2UgdW5kZXIgdGVzdCBzY2hlbWEu ICIiIgotCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uo c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKLQotICAgICAgICBpZiBub3QgZGJfY29u WyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQotCi0gICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydn cGRiJywgJ3BnJ10pCitjbGFzcyBUZXN0UGFja2FnZUdldDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNl Zml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfcGFj a2FnZV9nZXQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBX aGVuIHRoZSBwYWNrYWdlIEdFVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAg ICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvcGFja2FnZS9vYmovJworCisgICAgICAgIHRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVy J10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3Jt YXRpb24nXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAg ICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBkYl9uYW1lID0gc2Vy dmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFb J3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9p ZCddCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNw b25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYS4iKQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlbGYuZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzZWxmLnBhY2thZ2VfaWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLQotICAgIGRlZiB0ZWFyRG93bihzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNl LiIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKKyAgICAgICAgcGtnX25hbWUgPSAicGtnXyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6NF0KKyAgICAgICAgcHJvY19uYW1lID0gInByb2NfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo0XQorICAgICAgICBwYWNrYWdlX2lkID0gcGFja2FnZV91dGlscy5jcmVhdGVfcGFj a2FnZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBwa2dfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJvY19uYW1lKQorCisgICAgICAgIHJlc3BvbnNlID0gdGVz dGVyLmdldCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihk Yl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHBhY2thZ2VfaWQpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nCisgICAgICAgICkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNl X3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ29pZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUn KSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhwa2dfbmFtZSkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3BhY2thZ2VzL3Rlc3RzL3Rlc3RfcGFja2FnZV9wdXQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNrYWdlcy90 ZXN0cy90ZXN0X3BhY2thZ2VfcHV0LnB5CmluZGV4IDVlNTk1NDdjLi43NmJiMTk2MSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvcGFja2FnZXMvdGVzdHMvdGVzdF9wYWNrYWdlX3B1dC5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9wYWNr YWdlcy90ZXN0cy90ZXN0X3BhY2thZ2VfcHV0LnB5CkBAIC0xMCw5MiArMTAsODEgQEAKIGltcG9y dCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwot ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRp bHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQg Y29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwYWNrYWdlX3V0aWxzCiAKIAot Y2xhc3MgUGFja2FnZVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhp cyBjbGFzcyB3aWxsIHVwZGF0ZSBuZXcgcGFja2FnZSB1bmRlciB0ZXN0IHNjaGVtYS4gIiIiCi0g ICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBwYWNrYWdlIG5vZGUuCi0gICAgICAgICgnRmV0 Y2ggUGFja2FnZSBOb2RlIFVSTCcsIGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9icm93c2VyL3Bh Y2thZ2Uvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3Vw ZXIoUGFja2FnZVB1dFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRf bm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNlbGYucGtnX25h bWUgPSAicGtnXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5wcm9j X25hbWUgPSAicHJvY18lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQg PSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxz LmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQotCi0gICAgICAgIGlmIHNlcnZl cl9jb246Ci0gICAgICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAg ICAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0gICAg ICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiUGFja2FnZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkg UEcuIgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAgICAg ICAgc2VsZi5wYWNrYWdlX2lkID0gcGFja2FnZV91dGlscy5jcmVhdGVfcGFja2FnZShzZWxmLnNl cnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBrZ19uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJv Y19uYW1lKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYicsICdwZyddKQorY2xh c3MgVGVzdFBhY2thZ2VQdXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJl X2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3BhY2thZ2VfcHV0KHNlbGYsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgcGFja2FnZSBQ VVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAw IHN0YXR1cworICAgICAgICAiIiIKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiIgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBwYWNrYWdlIHVuZGVyIHRlc3Qgc2NoZW1hLiAi IiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3BhY2thZ2Uvb2JqLycKIAotICAgICAgICBkYl9j b24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlv biddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAg ICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJf ZGF0YVsnZGJfbmFtZSddCiAKLSAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRh YmFzZSBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0 YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1h X2lkJ10KIAotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3Nj aGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuJykKIAotICAg ICAgICBwYWNrYWdlX3Jlc3BvbnNlID0gcGFja2FnZV91dGlscy52ZXJpZnlfcGFja2FnZShzZWxm LnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBwa2dfbmFt ZSA9ICdwa2dfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo0XQorICAgICAgICBwcm9jX25hbWUg PSAncHJvY18lcycgJSBzdHIodXVpZC51dWlkNCgpKVsxOjRdCisgICAgICAgIHBhY2thZ2VfaWQg PSBwYWNrYWdlX3V0aWxzLmNyZWF0ZV9wYWNrYWdlKAorICAgICAgICAgICAgc2VydmVyLAorICAg ICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAg cGtnX25hbWUsCisgICAgICAgICAgICBwcm9jX25hbWUpCisKKyAgICAgICAgcGFja2FnZV9yZXNw b25zZSA9IHBhY2thZ2VfdXRpbHMudmVyaWZ5X3BhY2thZ2Uoc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hl bWFfbmFtZSkKIAogICAgICAgICBpZiBub3QgcGFja2FnZV9yZXNwb25zZToKLSAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHBhY2thZ2UuIikKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHBhY2thZ2UuJykKIAogICAg ICAgICBkYXRhID0gewotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgRlRTIHRl bXBsYXRlIHVwZGF0ZSBjb21tZW50IiwKLSAgICAgICAgICAgICJpZCI6IHNlbGYucGFja2FnZV9p ZAorICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ1RoaXMgaXMgRlRTIHRlbXBsYXRlIHVwZGF0 ZSBjb21tZW50JywKKyAgICAgICAgICAgICdpZCc6IHBhY2thZ2VfaWQKICAgICAgICAgfQogCi0g ICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNl bGYuc2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KwotICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICBz dHIoc2VsZi5wYWNrYWdlX2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wdXQo CisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoZGJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihwYWNrYWdlX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLQotICAgIGRlZiB0ZWFyRG93bihzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkaXNjb25uZWN0IHRoZSB0ZXN0IGRhdGFiYXNl LiIiIgotCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90 b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAncGFja2FnZScsCisg ICAgICAgICAgICAncGdhZG1pbi5ub2RlLnBhY2thZ2UnLAorICAgICAgICAgICAgRmFsc2UsCisg ICAgICAgICAgICAnaWNvbi1wYWNrYWdlJywKKyAgICAgICAgICAgIHBrZ19uYW1lCisgICAgICAg ICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVl bmNlcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA2YWI4YzdlZi4uNTkwMDI2YWQgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3NlcXVlbmNlcy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVz dHMvX19pbml0X18ucHkKQEAgLTYsMTAgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0K LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1j bGFzcyBTZXF1ZW5jZVRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNl cy90ZXN0cy90ZXN0X3NlcXVlbmNlX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0X3Nl cXVlbmNlX2FkZC5weQppbmRleCBkNTgwMTU5ZC4uZTlhODc4MTcgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Nl cXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVz dHMvdGVzdF9zZXF1ZW5jZV9hZGQucHkKQEAgLTEwLDc5ICsxMCw2NiBAQAogaW1wb3J0IGpzb24K IGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK KwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3Rf Z2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRl c3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0 X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgU2VxdWVuY2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHNlcXVlbmNlKHMpIHVu ZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAg ICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNlcXVl bmNlIG5vZGUuCi0gICAgICAgICgKLSAgICAgICAgICAgICdGZXRjaCBzZXF1ZW5jZSBOb2RlIFVS TCAodmFsaWQgb3B0aW9uYWwgZGF0YSknLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAg ICAgICB1cmw9Jy9icm93c2VyL3NlcXVlbmNlL29iai8nLAotICAgICAgICAgICAgICAgICMgVmFs aWQgb3B0aW9uYWwgZGF0YQotICAgICAgICAgICAgICAgIGRhdGE9ewotICAgICAgICAgICAgICAg ICAgICAiY2FjaGUiOiAiMSIsCi0gICAgICAgICAgICAgICAgICAgICJjeWNsZWQiOiBUcnVlLAot ICAgICAgICAgICAgICAgICAgICAiaW5jcmVtZW50IjogIjEiLAotICAgICAgICAgICAgICAgICAg ICAibWF4aW11bSI6ICIxMDAwMDAiLAotICAgICAgICAgICAgICAgICAgICAibWluaW11bSI6ICIx IiwKLSAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiAidGVzdF9zZXF1ZW5jZV9hZGRfJXMiICUg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAotICAgICAgICAgICAgICAgICAgICAic2VjdXJpdGll cyI6IFtdLAotICAgICAgICAgICAgICAgICAgICAic3RhcnQiOiAiMTAwIgotICAgICAgICAgICAg ICAgIH0KLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAg J0ZldGNoIHNlcXVlbmNlIE5vZGUgVVJMIChpbnZhbGlkIG9wdGlvbmFsIGRhdGEpJywKLSAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9zZXF1ZW5jZS9vYmov JywKLSAgICAgICAgICAgICAgICAjIE9wdGlvbmFsIGZpZWxkcyBzaG91bGQgYmUgaW50IGJ1dCB3 ZSBhcmUgcGFzc2luZyBlbXB0eSBzdHIKLSAgICAgICAgICAgICAgICBkYXRhPXsKLSAgICAgICAg ICAgICAgICAgICAgImNhY2hlIjogIiIsCi0gICAgICAgICAgICAgICAgICAgICJjeWNsZWQiOiBG YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgImluY3JlbWVudCI6ICIiLAotICAgICAgICAgICAg ICAgICAgICAibWF4aW11bSI6ICIiLAotICAgICAgICAgICAgICAgICAgICAibWluaW11bSI6ICIi LAotICAgICAgICAgICAgICAgICAgICAibmFtZSI6ICJ0ZXN0X3NlcXVlbmNlX2FkZF8lcyIgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSksCi0gICAgICAgICAgICAgICAgICAgICJzZWN1cml0aWVz IjogW10sCi0gICAgICAgICAgICAgICAgICAgICJzdGFydCI6ICIiCi0gICAgICAgICAgICAgICAg fQotICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzdXBlcihTZXF1ZW5jZUFkZFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0KLSAg ICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBz ZXF1ZW5jZShzKSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKLSAgICAgICAgZGJfbmFtZSA9IHBhcmVu dF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2lu Zm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJf aWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVt YV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQot ICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgc2Vx dWVuY2UuIikKLSAgICAgICAgc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0g ICAgICAgIHNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KK0BweXRlc3Qu bWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RTZXF1ZW5jZUFkZDoKKyAg ICBkZWYgdGVzdF9zZXF1ZW5jZV9hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBzZXF1ZW5jZSBhZGQgcmVxdWVzdCBpcyBz ZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAg ICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAg ICAgICB1cmwgPSAnL2Jyb3dzZXIvc2VxdWVuY2Uvb2JqLycKKworICAgICAgICBzZWxmLnRlc3Rl ciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0g cGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2Vs Zi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZl cl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25v ZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNj aGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5z Y2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAg ICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIp CisKICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgc2VxdWVuY2UuIikKLSAg ICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAotICAgICAgICBjb21t b25fZGF0YSA9IHsKKyAgICAgICAgc2VxdWVuY2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX2FkZF8l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZGJfdXNlciA9IHNlbGYuc2Vy dmVyWyJ1c2VybmFtZSJdCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiY2FjaGUiOiAi MSIsCisgICAgICAgICAgICAiY3ljbGVkIjogVHJ1ZSwKKyAgICAgICAgICAgICJpbmNyZW1lbnQi OiAiMSIsCisgICAgICAgICAgICAibWF4aW11bSI6ICIxMDAwMDAiLAorICAgICAgICAgICAgIm1p bmltdW0iOiAiMSIsCisgICAgICAgICAgICAibmFtZSI6IHNlcXVlbmNlX25hbWUsCisgICAgICAg ICAgICAic2VjdXJpdGllcyI6IFtdLAorICAgICAgICAgICAgInN0YXJ0IjogIjEwMCIsCiAgICAg ICAgICAgICAicmVsYWNsIjogWwogICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAg ICAgImdyYW50ZWUiOiBkYl91c2VyLApAQCAtMTA3LDIwICs5NCwxMjAgQEAgY2xhc3MgU2VxdWVu Y2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAgICAg ICBdCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzY2hl bWEiOiBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICJzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1l LAogICAgICAgICAgICAgInNlcW93bmVyIjogZGJfdXNlciwKICAgICAgICAgfQotCi0gICAgICAg IHNlbGYuZGF0YS51cGRhdGUoY29tbW9uX2RhdGEpCi0KICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3Ry KHNlbGYuZGJfaWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihzY2hlbWFfaWQpICsgJy8nLAot ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksCisgICAgICAgICAgICB1cmwg KyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisg ICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgZGF0YT1q c29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAg ICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkK KyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBq c29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3NlcXVlbmNlJywKKyAgICAgICAgICAgICdwZ2Fk bWluLm5vZGUuc2VxdWVuY2UnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNv bi1zZXF1ZW5jZScsCisgICAgICAgICAgICBzZXF1ZW5jZV9uYW1lCisgICAgICAgICkKKworICAg IGRlZiB0ZXN0X3NlcXVlbmNlX2FkZF9pbnZhbGlkKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBXaGVuIHRoZSBzZXF1ZW5jZSBh ZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgICAgICBXaXRoIGludmFs aWQgb3B0aW9ucworICAgICAgICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICAg ICAiIiIKKyAgICAgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisK KyAgICAgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zZXF1ZW5jZS9vYmovJworCisgICAgICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgICAg IHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQor ICAgICAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAg ICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFd CisgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1h X25hbWUnXQorICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydz Y2hlbWFfaWQnXQorCisgICAgICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisg ICAgICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4i OgorICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UuIikKKworICAgICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQorICAgICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAg ICAgICAgICAgc2VxdWVuY2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX2FkZF8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNl cm5hbWUiXQorICAgICAgICAgICAgIyBPcHRpb25hbCBmaWVsZHMgc2hvdWxkIGJlIGludCBidXQg d2UgYXJlIHBhc3NpbmcgZW1wdHkgc3RyCisgICAgICAgICAgICBkYXRhID0geworICAgICAgICAg ICAgICAgICJjYWNoZSI6ICIiLAorICAgICAgICAgICAgICAgICJjeWNsZWQiOiBGYWxzZSwKKyAg ICAgICAgICAgICAgICAiaW5jcmVtZW50IjogIiIsCisgICAgICAgICAgICAgICAgIm1heGltdW0i OiAiIiwKKyAgICAgICAgICAgICAgICAibWluaW11bSI6ICIiLAorICAgICAgICAgICAgICAgICJu YW1lIjogc2VxdWVuY2VfbmFtZSwKKyAgICAgICAgICAgICAgICAic2VjdXJpdGllcyI6IFtdLAor ICAgICAgICAgICAgICAgICJzdGFydCI6ICIiLAorICAgICAgICAgICAgICAgICJyZWxhY2wiOiBb CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJncmFudGVl IjogZGJfdXNlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICJncmFudG9yIjogZGJfdXNlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2VzIjoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2VfdHlwZSI6ICJyIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQiOiBUcnVlCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2VfdHlw ZSI6ICJ3IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2Ui OiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3JhbnQi OiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAicHJpdmlsZWdlX3R5cGUiOiAiVSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAicHJpdmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJ3aXRoX2dyYW50IjogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgInNjaGVtYSI6IHNlbGYuc2NoZW1h X25hbWUsCisgICAgICAgICAgICAgICAgInNlcW93bmVyIjogZGJfdXNlciwKKyAgICAgICAgICAg IH0KKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgc3RyKHNlbGYu ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8n LAorICAgICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgICAg ICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgICAgIHJlc3BvbnNlLnN0YXR1 c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAgICAgIGpzb25fcmVzcG9u c2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgICAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBqc29uX3Jlc3Bv bnNlLAorICAgICAgICAgICAgICAgICdzZXF1ZW5jZScsCisgICAgICAgICAgICAgICAgJ3BnYWRt aW4ubm9kZS5zZXF1ZW5jZScsCisgICAgICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAg ICAgJ2ljb24tc2VxdWVuY2UnLAorICAgICAgICAgICAgICAgIHNlcXVlbmNlX25hbWUKKyAgICAg ICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGls cy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9zZXF1ZW5jZV9kZWxl dGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9zZXF1ZW5jZV9kZWxldGUucHkKaW5kZXgg YTExYzViZTUuLmYzM2YxOGMzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvdGVzdHMvdGVzdF9z ZXF1ZW5jZV9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2Vf ZGVsZXRlLnB5CkBAIC05LDYxICs5LDg1IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRl c3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2Vf dXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9y ZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QK IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzZXF1ZW5jZV91dGlscwogCiAKLWNsYXNzIFNl cXVlbmNlRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xh c3Mgd2lsbCBkZWxldGUgYWRkZWQgc2VxdWVuY2UgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAg c2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzZXF1ZW5jZSBub2RlLgotICAgICAgICAoJ0ZldGNo IHNlcXVlbmNlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3NlcXVlbmNlL29iai8nKSkK LSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0 U2VxdWVuY2VEZWxldGU6CisgICAgZGVmIHRlc3Rfc2VxdWVuY2VfZGVsZXRlKHNlbGYsIHJlcXVl c3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgc2Vx dWVuY2UgZGVsZXRlIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCBy ZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxp emVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3NlcXVlbmNlL29i ai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2Vs Zi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRh dGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAg ICBzdXBlcihTZXF1ZW5jZURlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgc2VxdWVuY2UuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hl bWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfbmFtZSJdCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHNlcXVlbmNlLiIpCi0gICAg ICAgIHNlbGYuc2VxdWVuY2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX2RlbGV0ZV8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYuc2VxdWVuY2VfaWQgPSBzZXF1ZW5jZV91 dGlscy5jcmVhdGVfc2VxdWVuY2VzKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5zZXF1ZW5jZV9uYW1lKQorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCiAKLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgYWRk ZWQgc2VxdWVuY2UgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgICAgICBzZXF1ZW5jZV9uYW1l ID0gInRlc3Rfc2VxdWVuY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAg ICAgICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMo CisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZXF1ZW5jZV9uYW1lCisg ICAgICAgICkKICAgICAgICAgc2VxdWVuY2VfcmVzcG9uc2UgPSBzZXF1ZW5jZV91dGlscy52ZXJp Znlfc2VxdWVuY2Uoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXF1ZW5j ZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXF1ZW5jZV9uYW1lKQogICAgICAgICBpZiBub3Qgc2VxdWVuY2VfcmVzcG9u c2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzZXF1 ZW5jZSB0byBkZWxldGUuIikKKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0 ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2Vs Zi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyAr CiAgICAgICAgICAgICBzdHIoc2VsZi5zZXF1ZW5jZV9pZCksCiAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUu ZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90 b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnU2VxdWVuY2UgZHJv cHBlZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNn JykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jl c3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAKICAgICBkZWYgdGVh ckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv c2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL3Rlc3Rz L3Rlc3Rfc2VxdWVuY2VfZ2V0LnB5CmluZGV4IDE5OWNhMzdmLi4xNDI0OTYyYSAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvc2VxdWVuY2VzL3Rlc3RzL3Rlc3Rfc2VxdWVuY2VfZ2V0LnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVl bmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX2dldC5weQpAQCAtOSw1NiArOSw3NyBAQAogCiBpbXBv cnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVy YXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19o ZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgc2VxdWVu Y2VfdXRpbHMKIAogCi1jbGFzcyBTZXF1ZW5jZUdldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgc2VxdWVuY2UgdW5kZXIgc2No ZW1hIG5vZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzZXF1ZW5jZSBub2Rl LgotICAgICAgICAoJ0ZldGNoIHNlcXVlbmNlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2Vy L3NlcXVlbmNlL29iai8nKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydn cGRiJ10pCitjbGFzcyBUZXN0U2VxdWVuY2VHZXQ6CisgICAgZGVmIHRlc3Rfc2VxdWVuY2VfZ2V0 KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiB0aGUgc2VxdWVuY2UgZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3Qu YWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3Nl cXVlbmNlL29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFi YXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAg ICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQor ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUn XQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCdd CisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZv Il0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzdXBlcihTZXF1ZW5jZUdldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVst MV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAg ICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQ LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNv bm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZSB0byBhZGQgc2VxdWVuY2UuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQg PSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVt YV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHNlcXVlbmNlLiIp Ci0gICAgICAgIHNlbGYuc2VxdWVuY2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX2RlbGV0ZV8lcyIg JSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICBzZXF1ZW5jZV9uYW1lID0gInRl c3Rfc2VxdWVuY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAg c2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCi0gICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxm LnNlcXVlbmNlX25hbWUpCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBz ZXF1ZW5jZV9uYW1lCisgICAgICAgICkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgc2VxdWVuY2UgdW5kZXIgc2NoZW1h IG5vZGUuIiIiCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAg ICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAg ICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAgICAgICBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcv JyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsKICAgICAgICAgICAg IHN0cihzZWxmLnNlcXVlbmNlX2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK KworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDAp CisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9u c2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwKKyAgICAgICAg ICAgIHNob3VsZC5iZS5lcXVhbC50byhzZXF1ZW5jZV9uYW1lKQogCiAgICAgZGVmIHRlYXJEb3du KHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVl bmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy90ZXN0cy90ZXN0 X3NlcXVlbmNlX3B1dC5weQppbmRleCA2ZjU2M2FkNi4uNGZmNmFlYzcgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3NlcXVlbmNlcy90ZXN0cy90ZXN0X3NlcXVlbmNlX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMv dGVzdHMvdGVzdF9zZXF1ZW5jZV9wdXQucHkKQEAgLTEwLDY2ICsxMCw5NCBAQAogaW1wb3J0IGpz b24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGlt cG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rl c3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNz ZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHNlcXVlbmNlX3V0aWxz CiAKIAotY2xhc3MgU2VxdWVuY2VQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAg IiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSBhZGRlZCBzZXF1ZW5jZSB1bmRlciBzY2hlbWEgbm9k ZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHNlcXVlbmNlIG5vZGUuCi0gICAg ICAgICgnRmV0Y2ggc2VxdWVuY2UgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VxdWVu Y2Uvb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkK K2NsYXNzIFRlc3RTZXF1ZW5jZVB1dDoKKyAgICBkZWYgdGVzdF9zZXF1ZW5jZV9wdXQoc2VsZiwg cmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRo ZSBzZXF1ZW5jZSBwdXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0 IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5h bGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvc2VxdWVuY2Uv b2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVst MV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQn XQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAg ICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBz ZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAg IHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAg ICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAi RGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg ICAgIHN1cGVyKFNlcXVlbmNlUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2Vs Zi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQot ICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBz ZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJh c2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlIHRvIGFkZCBzZXF1ZW5jZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2lu Zm9bInNjaGVtYV9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK ICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgc2VxdWVuY2UuIikKLSAgICAg ICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRlc3Rfc2VxdWVuY2VfZGVsZXRlXyVzIiAlIHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVlbmNlX3V0 aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9u YW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnNlcXVlbmNlX25hbWUpCisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGFkZGVk IHNlcXVlbmNlIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAgICAgICBzZXF1ZW5jZV9uYW1lID0g InRlc3Rfc2VxdWVuY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAg ICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCisg ICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZXF1ZW5jZV9uYW1lCisgICAg ICAgICkKICAgICAgICAgc2VxdWVuY2VfcmVzcG9uc2UgPSBzZXF1ZW5jZV91dGlscy52ZXJpZnlf c2VxdWVuY2Uoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXF1ZW5jZV9u YW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXF1ZW5jZV9uYW1lKQogICAgICAgICBpZiBub3Qgc2VxdWVuY2VfcmVzcG9uc2U6 CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzZXF1ZW5j ZSB0byBkZWxldGUuIikKKwogICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgImNvbW1lbnQi OiAiVGhpcyBpcyBzZXF1ZW5jZSB1cGRhdGUgY29tbWVudCIsCiAgICAgICAgICAgICAiaWQiOiBz ZWxmLnNlcXVlbmNlX2lkCiAgICAgICAgIH0KKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KyAnLycgKworICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KwogICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBz dHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSAr ICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zZXF1ZW5jZV9pZCksCiAgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisK KyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQor ICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNl KQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAg IGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnc2VxdWVuY2UnLAorICAgICAgICAgICAgJ3Bn YWRtaW4ubm9kZS5zZXF1ZW5jZScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdp Y29uLXNlcXVlbmNlJywKKyAgICAgICAgICAgIHNlcXVlbmNlX25hbWUKKyAgICAgICAgKQogCiAg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNl Ci0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3N5bm9ueW1zL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMv X19pbml0X18ucHkKaW5kZXggM2NhYzQ0ZjcuLmFkYzU0YjVkIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5v bnltcy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy9fX2luaXRfXy5w eQpAQCAtNyw3ICs3LDcgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5i YXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiAKIGNsYXNzIFN5 bm9ueW1UZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5 bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy90ZXN0 X3N5bm9ueW1fYWRkLnB5CmluZGV4IGQ5M2RiOThhLi45YmY0MWFiZCAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv c3lub255bXMvdGVzdHMvdGVzdF9zeW5vbnltX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0 cy90ZXN0X3N5bm9ueW1fYWRkLnB5CkBAIC0xMCw3NiArMTAsNzkgQEAKIGltcG9ydCBqc29uCiBp bXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy5zZXF1ZW5jZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyBzZXF1ZW5jZV91dGls cwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0 X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiAKIAotY2xhc3MgU3lub255bUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyBzeW5vbnltIHVuZGVyIHRlc3Qgc2NoZW1h LiIiIgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQorQHB5dGVzdC5tYXJrLnNraXBf ZGF0YWJhc2VzKFsnZ3BkYicsICdwZyddKQorY2xhc3MgVGVzdFN5bm9ueW1BZGQ6CisgICAgQHB5 dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAg IGRlZiB0ZXN0X3N5bm9ueW1fYWRkKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgc3lub255bSBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL3N5bm9ueW0vb2JqLycKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAg ICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igc3lub255bSBub2RlLgotICAgICAgICAo J0RlZmF1bHQgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc3lub255bS9vYmovJykpCi0g ICAgXQorICAgICAgICB0ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisg ICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZl cl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKyAgICAgICAg c2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2Vy dmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1l J10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoU3lub255bUFkZFRlc3RD YXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2Rp Y3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJl bnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hl bWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJk Yl9pZCJdCi0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIo c2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIHNlcnZlcl9jb246Ci0gICAgICAgICAg ICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAgICAgIGlmIHNl cnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0gICAgICAgICAgICAgICAgICAgIG1l c3NhZ2UgPSAiU3lub255bXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcuIgotICAgICAgICAgICAg ICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJd OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZSB0byBhZGQgc3lub255bS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9b InNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZl cmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAg ICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBz Y2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIHN5bm9ueW0uIikK LSAgICAgICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRlc3Rfc2VxdWVuY2Vfc3lub255bV8lcyIg JSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K LSAgICAgICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5j ZXMoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9u YW1lLCBzZWxmLnNlcXVlbmNlX25hbWUpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBzeW5vbnltIHVuZGVyIHRlc3Qgc2NoZW1hLiIi IgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h LiIpCiAKLSAgICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAg IHNlcXVlbmNlX25hbWUgPSAidGVzdF9zZXF1ZW5jZV9zeW5vbnltXyVzIiAlIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc2VxdWVuY2Vf dXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKKyAgICAgICAgICAgIHNlcnZlciwKKyAgICAgICAgICAg IGRiX25hbWUsCisgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIHNlcXVlbmNl X25hbWUKKyAgICAgICAgKQogCisgICAgICAgIGRiX3VzZXIgPSBzZXJ2ZXJbInVzZXJuYW1lIl0K KyAgICAgICAgc3lub255bV9uYW1lID0gInN5bm9ueW1fYWRkXyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQogICAgICAgICBkYXRhID0gewogICAgICAgICAgICAgIm93bmVyIjogZGJfdXNl ciwKLSAgICAgICAgICAgICJzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAg InN5bm9iam5hbWUiOiBzZWxmLnNlcXVlbmNlX25hbWUsCi0gICAgICAgICAgICAic3lub2Jqc2No ZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICJzY2hlbWEiOiBzY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgICJzeW5vYmpuYW1lIjogc2VxdWVuY2VfbmFtZSwKKyAgICAgICAgICAg ICJzeW5vYmpzY2hlbWEiOiBzY2hlbWFfbmFtZSwKICAgICAgICAgICAgICJ0YXJnZXR0eXBlIjog IlNlcXVlbmNlIiwKLSAgICAgICAgICAgICJuYW1lIjogInN5bm9ueW1fYWRkXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICAgICAgIm5hbWUiOiBzeW5vbnltX25hbWUKICAg ICAgICAgfQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0 cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCi0gICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLQotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAg ICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICByZXNwb25zZSA9IHRlc3Rl ci5wb3N0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGRi X2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJywKKyAgICAgICAg ICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRt bC9qc29uJworICAgICAgICApCiAKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9u c2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jl c3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2Us CisgICAgICAgICAgICAnc3lub255bScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnN5bm9u eW0nLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1zeW5vbnltJywKKyAg ICAgICAgICAgIHN5bm9ueW1fbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnlt cy90ZXN0cy90ZXN0X3N5bm9ueW1fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9z eW5vbnltX2RlbGV0ZS5weQppbmRleCAwNTIzOGJlNi4uNDZlMWM0MTcgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMv dGVzdHMvdGVzdF9zeW5vbnltX2RlbGV0ZS5weQpAQCAtOSw3OSArOSw4MSBAQAogCiBpbXBvcnQg dXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5z ZXF1ZW5jZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyBzZXF1ZW5jZV91dGlscwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGls cyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2Vy dmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBv cnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBzeW5vbnltX3V0aWxzCiAK IAotY2xhc3MgU3lub255bURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGFkZGVkIHN5bm9ueW0gdW5kZXIgc2NoZW1hIG5vZGUu IiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCitAcHl0ZXN0Lm1hcmsuc2tpcF9k YXRhYmFzZXMoWydncGRiJywgJ3BnJ10pCitjbGFzcyBUZXN0U3lub255bURlbGV0ZToKKyAgICBA cHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisg ICAgZGVmIHRlc3Rfc3lub255bV9kZWxldGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAg ICAgICIiIgorICAgICAgICBXaGVuIHRoZSBzeW5vbnltIERFTEVURSByZXF1ZXN0IGlzIHNlbmQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zeW5vbnltL29iai8nCiAKLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHN5bm9ueW0gbm9kZS4K LSAgICAgICAgKCdGZXRjaCBzeW5vbnltIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3N5 bm9ueW0vb2JqLycpKQotICAgIF0KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rl c3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2lu Zm9ybWF0aW9uJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCdd CisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgZGJfbmFtZSA9 IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAg c3VwZXIoU3lub255bURlbGV0ZVRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYu ZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAg ICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2Vs Zi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlm IHNlcnZlcl9jb246Ci0gICAgICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJd OgotICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6 Ci0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiU3lub255bXMgYXJlIG5vdCBzdXBwb3J0 ZWQgYnkgUEcuIgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0g ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgc3lub255bS4iKQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsn c2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lk J10KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YSB0byBhZGQgdGhlIHN5bm9ueW0uIikKLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRl c3Rfc2VxdWVuY2Vfc3lub255bV8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVl bmNlX3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnNlcXVlbmNlX25hbWUpCi0gICAgICAg IHNlbGYuc3lub255bV9uYW1lID0gInRlc3Rfc3lub255bV9kZWxldGVfJXMiICUgc3RyKHV1aWQu dXVpZDQoKSlbMTo4XQotICAgICAgICBzeW5vbnltX3V0aWxzLmNyZWF0ZV9zeW5vbnltKHNlbGYu c2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3lub255bV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VxdWVuY2VfbmFt ZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YS4iKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCBkZWxldGUgc3lub255bSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICAgICAgc2VxdWVu Y2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX3N5bm9ueW1fJXMiICUgXAorICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZXF1ZW5jZV91dGlscy5j cmVhdGVfc2VxdWVuY2VzKAorICAgICAgICAgICAgc2VydmVyLAorICAgICAgICAgICAgZGJfbmFt ZSwKKyAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VxdWVuY2VfbmFtZQor ICAgICAgICApCiAKLSAgICAgICAgc3lub255bV9yZXNwb25zZSA9IHN5bm9ueW1fdXRpbHMudmVy aWZ5X3N5bm9ueW0oc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zeW5vbnltX25hbWUp CisgICAgICAgIHN5bm9ueW1fbmFtZSA9ICJ0ZXN0X3N5bm9ueW1fZGVsZXRlXyVzIiAlIHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgc3lub255bV91dGlscy5jcmVhdGVfc3lub255bShz ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5vbnltX25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2VfbmFtZSkKKyAgICAgICAgc3lub255bV9y ZXNwb25zZSA9IHN5bm9ueW1fdXRpbHMudmVyaWZ5X3N5bm9ueW0oc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz eW5vbnltX25hbWUpCiAgICAgICAgIGlmIG5vdCBzeW5vbnltX3Jlc3BvbnNlOgogICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzeW5vbnltIG5vZGUgdG8gZGVsZXRlLiIpCiAKLSAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICBzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNl cnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3Ry KHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihzZWxmLnN5bm9ueW1fbmFtZSksCisgICAgICAg IHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0 aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKworICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2No ZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc3lub255bV9uYW1lKSwKICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLQotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAg ICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQogCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAg ICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJl LmVxdWFsLnRvKAorICAgICAgICAgICAgJ1N5bm9ueW0gZHJvcHBlZCcpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5v bmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4g c2hvdWxkLmJlLmVxdWFsLnRvKDEpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy90ZXN0 X3N5bm9ueW1fZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9zeW5vbnltX2dldC5weQpp bmRleCBkOGFjZWU0Ni4uM2I0ZGI4NGYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5bm9ueW1zL3Rlc3RzL3Rl c3Rfc3lub255bV9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9zeW5vbnltX2dl dC5weQpAQCAtOSw3MyArOSw3NSBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5zZXF1ZW5jZXMudGVzdHMgXAogICAgIGlt cG9ydCB1dGlscyBhcyBzZXF1ZW5jZV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRp bHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGls cwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJv bSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMu dGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFz IHN5bm9ueW1fdXRpbHMKIAogCi1jbGFzcyBTeW5vbnltR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBuZXcgc3lub255bSB1bmRlciBz Y2hlbWEgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KK0BweXRlc3Qu bWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInLCAncGcnXSkKK2NsYXNzIFRlc3RTeW5vbnltR2V0 OgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0 aW9uJykKKyAgICBkZWYgdGVzdF9zeW5vbnltX2dldChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHN5bm9ueW0gR0VUIHJlcXVlc3QgaXMgc2Vu ZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAg IiIiCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zeW5vbnltL29iai8nCiAKLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHN5bm9ueW0gbm9kZS4K LSAgICAgICAgKCdGZXRjaCBzeW5vbnltIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3N5 bm9ueW0vb2JqLycpKQotICAgIF0KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rl c3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2lu Zm9ybWF0aW9uJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCdd CisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgZGJfbmFtZSA9 IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAg c3VwZXIoU3lub255bUdldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNlbGYuZGJf bmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAg ICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5k Yl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJf dXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIHNl cnZlcl9jb246Ci0gICAgICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgot ICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0g ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiU3lub255bXMgYXJlIG5vdCBzdXBwb3J0ZWQg YnkgUEcuIgotICAgICAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAg ICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMu U0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29u WydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3Vs ZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgc3lub255bS4iKQotICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVt YV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0 byBhZGQgdGhlIHN5bm9ueW0uIikKLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9uYW1lID0gInRlc3Rf c2VxdWVuY2Vfc3lub255bV8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5zZXF1ZW5jZV9pZCA9IHNlcXVlbmNl X3V0aWxzLmNyZWF0ZV9zZXF1ZW5jZXMoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnNlcXVlbmNlX25hbWUpCi0gICAgICAgIHNl bGYuc3lub255bV9uYW1lID0gInRlc3Rfc3lub255bV9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo4XQotICAgICAgICBzeW5vbnltX3V0aWxzLmNyZWF0ZV9zeW5vbnltKHNlbGYuc2VydmVy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3lub255bV9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VxdWVuY2VfbmFtZSkKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQog Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBm ZXRjaCBzeW5vbnltIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAgICAgICBzZXF1ZW5jZV9uYW1l ID0gInRlc3Rfc2VxdWVuY2Vfc3lub255bV8lcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAg ICBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHNlcXVlbmNlX3V0aWxzLmNyZWF0ZV9z ZXF1ZW5jZXMoCisgICAgICAgICAgICBzZXJ2ZXIsCisgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICBzZXF1ZW5jZV9uYW1lCisgICAgICAg ICkKIAotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3Ry KHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHNlbGYuc3lub255bV9uYW1lKSwK LSAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgc3lub255bV9uYW1lID0g InRlc3Rfc3lub255bV9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAg ICBzeW5vbnltX3V0aWxzLmNyZWF0ZV9zeW5vbnltKHNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN5bm9ueW1fbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXF1ZW5jZV9uYW1lKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiIgRGlz Y29ubmVjdCB0aGUgZGF0YWJhc2UuICIiIgorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50 LmdldCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsK KyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihkYl9p ZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHN5bm9ueW1fbmFtZSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CiAKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBz aG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9y ZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJv bV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnc3lu b255bScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnN5bm9ueW0nLAorICAgICAgICAgICAg RmFsc2UsCisgICAgICAgICAgICAnaWNvbi1zeW5vbnltJywKKyAgICAgICAgICAgIHNlcXVlbmNl X25hbWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc3lub255bXMvdGVzdHMvdGVzdF9zeW5v bnltX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9wdXQucHkKaW5kZXgg OWU4MGI0YjAuLmYyZjJiNmNlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9zeW5vbnltcy90ZXN0cy90ZXN0X3N5 bm9ueW1fcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3N5bm9ueW1zL3Rlc3RzL3Rlc3Rfc3lub255bV9wdXQucHkK QEAgLTEwLDk4ICsxMCwxMDYgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQg cHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5mdW5jdGlvbnMudGVzdHMg XAogICAgIGltcG9ydCB1dGlscyBhcyBmdW5jdGlvbnNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5zZXF1ZW5jZXMudGVz dHMgXAogICAgIGltcG9ydCB1dGlscyBhcyBzZXF1ZW5jZV91dGlscwogZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAg ZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFz IHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBn YWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCitm cm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIHN5bm9ueW1fdXRpbHMKIAogCi1jbGFzcyBTeW5vbnltUHV0VGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUg YWRkZWQgc3lub255bSB1bmRlciB0ZXN0IHNjaGVtYS4iIiIKLSAgICBza2lwX29uX2RhdGFiYXNl ID0gWydncGRiJ10KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInLCAncGcnXSkK K2NsYXNzIFRlc3RTeW5vbnltVXBkYXRlOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygn cmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9zeW5vbnltX3VwZGF0 ZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHRfb2ZfdGVzdHMsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3NlcnZlcl92ZXJzaW9uKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIHN5bm9ueW0gUFVUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAg ICAgICAgdXJsID0gJy9icm93c2VyL3N5bm9ueW0vb2JqLycKKworICAgICAgICBodHRwX2NsaWVu dCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQor ICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQogCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzeW5vbnltIG5vZGUuCi0g ICAgICAgICgnRmV0Y2ggc3lub255bSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9zeW5v bnltL29iai8nKSkKLSAgICBdCisgICAgICAgIHNlcnZlcl92ZXJzaW9uID0gMAorICAgICAgICBp ZiBQb3N0Z3Jlc1ZlcnNpb24udjkyIDwgZ2V0X3NlcnZlcl92ZXJzaW9uOgorICAgICAgICAgICAg c2VydmVyX3ZlcnNpb24gPSBnZXRfc2VydmVyX3ZlcnNpb24KIAotICAgIGRlZiBzZXRVcChzZWxm KToKLSAgICAgICAgc3VwZXIoU3lub255bVB1dFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAg ICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9u YW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVst MV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAg ICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIHNlcnZlcl9j b24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQpCi0g ICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSAwCi0gICAgICAgIGlmIHNlcnZlcl9jb246Ci0g ICAgICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAg ICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidHlwZSJdID09ICJwZyI6Ci0gICAgICAgICAgICAg ICAgICAgIG1lc3NhZ2UgPSAiU3lub255bXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEcuIgotICAg ICAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAg ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9u Il0gPj0gOTAyMDA6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9u ID0gc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJh c2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlIHRvIGFkZCBzeW5vbnltLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1h X2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5m b1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQor ICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAg IHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorCisgICAgICAgIHNjaGVtYV9y ZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1h X25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIHRoZSBzeW5vbnlt LiIpCi0gICAgICAgIHNlbGYuc2VxdWVuY2VfbmFtZSA9ICJ0ZXN0X3NlcXVlbmNlX3N5bm9ueW1f JXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsx OjhdCi0gICAgICAgIHNlbGYuc2VxdWVuY2VfaWQgPSBzZXF1ZW5jZV91dGlscy5jcmVhdGVfc2Vx dWVuY2VzKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hl bWFfbmFtZSwgc2VsZi5zZXF1ZW5jZV9uYW1lKQotICAgICAgICBzZWxmLnN5bm9ueW1fbmFtZSA9 ICJ0ZXN0X3N5bm9ueW1fcHV0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAg c3lub255bV91dGlscy5jcmVhdGVfc3lub255bShzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnN5bm9ueW1fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcXVlbmNlX25hbWUpCisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuJykKIAotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHN5bm9ueW0gdW5k ZXIgc2NoZW1hIG5vZGUuIiIiCisgICAgICAgIHNlcXVlbmNlX25hbWUgPSAndGVzdF9zZXF1ZW5j ZV9zeW5vbnltXyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0KKyAgICAgICAgc2VxdWVuY2VfdXRpbHMuY3JlYXRlX3NlcXVlbmNlcygKKyAgICAg ICAgICAgIHNlcnZlciwKKyAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICBzY2hlbWFf bmFtZSwKKyAgICAgICAgICAgIHNlcXVlbmNlX25hbWUKKyAgICAgICAgKQogCi0gICAgICAgIHN5 bm9ueW1fcmVzcG9uc2UgPSBzeW5vbnltX3V0aWxzLnZlcmlmeV9zeW5vbnltKHNlbGYuc2VydmVy LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc3lub255bV9uYW1lKQorICAgICAgICBzeW5vbnltX25hbWUg PSAndGVzdF9zeW5vbnltX2RlbGV0ZV8lcycgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAg ICAgIHN5bm9ueW1fdXRpbHMuY3JlYXRlX3N5bm9ueW0oc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3lub255bV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcXVlbmNlX25hbWUpCisgICAgICAgIHN5bm9ueW1fcmVzcG9uc2UgPSBzeW5vbnltX3V0aWxz LnZlcmlmeV9zeW5vbnltKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lub255bV9uYW1lKQogICAgICAgICBp ZiBub3Qgc3lub255bV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8g c3lub255bSBub2RlIHRvIHVwZGF0ZS4iKQotICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9mdW5j dGlvbl9zeW5vbnltXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi50 YWJsZV9pZCA9IGZ1bmN0aW9uc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKLSAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNf bmFtZSwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24pCisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oJ05vIHN5bm9ueW0gbm9kZSB0byB1cGRhdGUuJykKKworICAgICAgICBmdW5j X25hbWUgPSAndGVzdF9mdW5jdGlvbl9zeW5vbnltXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0KKyAgICAgICAgZnVuY3Rpb25zX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAorICAg ICAgICAgICAgc2VydmVyLAorICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgIHNjaGVt YV9uYW1lLAorICAgICAgICAgICAgZnVuY19uYW1lLAorICAgICAgICAgICAgc2VydmVyX3ZlcnNp b24pCiAKICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICJuYW1lIjogc2VsZi5zeW5vbnlt X25hbWUsCi0gICAgICAgICAgICAic3lub2JqbmFtZSI6IGZ1bmNfbmFtZSwKLSAgICAgICAgICAg ICJzeW5vYmpzY2hlbWEiOiBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgInRhcmdldHR5 cGUiOiAiRnVuY3Rpb24iCisgICAgICAgICAgICAnbmFtZSc6IHN5bm9ueW1fbmFtZSwKKyAgICAg ICAgICAgICdzeW5vYmpuYW1lJzogZnVuY19uYW1lLAorICAgICAgICAgICAgJ3N5bm9ianNjaGVt YSc6IHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgJ3RhcmdldHR5cGUnOiAnRnVuY3Rpb24nCiAg ICAgICAgIH0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAg IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQp ICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwotICAgICAg ICAgICAgc3RyKHNlbGYuc3lub255bV9uYW1lKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2Ns aWVudC5wdXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcv JyArCisgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIo ZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAg ICAgICAgIHN0cihzeW5vbnltX25hbWUpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgZGVmIHRlYXJEb3du KHNlbGYpOgotICAgICAgICAiIiIgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UuICIiIgogCi0gICAg ICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJl LmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9u c2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3N5bm9ueW0nLAor ICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5zeW5vbnltJywKKyAgICAgICAgICAgIEZhbHNlLAor ICAgICAgICAgICAgJ2ljb24tc3lub255bScsCisgICAgICAgICAgICBzeW5vbnltX25hbWUKKyAg ICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTFhZTMxZGEuLjU5MDAy NmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL19faW5pdF9fLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMK ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBDb2x1bW5zVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdl bmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fYWRkLnB5CmluZGV4IGEyYThmMTc5Li5i ZWM0ZjM1OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9h ZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9hZGQucHkKQEAg LTEwLDQ5ICsxMCw2MyBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFz IHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0 aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGls cy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2Fk bWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBc CisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgQ29sdW1uQWRkVGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGNvbHVt biB1bmRlciB0YWJsZSBub2RlLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdBZGQg Y29sdW1uIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2NvbHVtbi9vYmovJykpCi0gICAg XQorY2xhc3MgVGVzdENvbHVtbkFkZDoKKyAgICBkZWYgdGVzdF9jb2x1bW5fYWRkKHNlbGYsIHJl cXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUg Y29sdW1uIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0 dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXpl cihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9jb2x1bW4vb2JqLycK KworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAg ICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxm LmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNl bGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJh c2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2lu Zm9bInNjaGVtYV9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK ICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKICAg ICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVf dGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQog Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBh ZGQgY29sdW1uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgICAgIHNlbGYuY29sdW1uX25hbWUg PSAidGVzdF9jb2x1bW5fYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAg ICBjb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCiAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAibmFtZSI6IHNlbGYuY29sdW1u X25hbWUsCisgICAgICAgICAgICAibmFtZSI6IGNvbHVtbl9uYW1lLAogICAgICAgICAgICAgImNs dHlwZSI6ICJcImNoYXJcIiIsCiAgICAgICAgICAgICAiYXR0YWNsIjogW10sCiAgICAgICAgICAg ICAiaXNfcHJpbWFyeV9rZXkiOiBGYWxzZSwKQEAgLTYyLDE1ICs3NiwyNyBAQCBjbGFzcyBDb2x1 bW5BZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAiYXR0b3B0aW9u cyI6IFtdLAogICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdCiAgICAgICAgIH0KLSAgICAgICAg IyBBZGQgdGFibGUKKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAg ICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAg ICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKwotICAg ICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihzZWxmLnRhYmxl X2lkKSArICcvJywKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9p ZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpICsgJy8nLAogICAgICAg ICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdo dG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29k ZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisg ICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2NvbHVtbicsCisgICAgICAg ICAgICAncGdhZG1pbi5ub2RlLmNvbHVtbicsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAg ICAgICdpY29uLWNvbHVtbicsCisgICAgICAgICAgICBjb2x1bW5fbmFtZQorICAgICAgICApCiAK ICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9kZWxldGUucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2RlbGV0ZS5weQppbmRleCAxNDk2ZWE4 Ni4uYzI2NmYxZjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1 bW5fZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fZGVs ZXRlLnB5CkBAIC05LDY2ICs5LDkwIEBACiAKIGltcG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGlt cG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRh Ymxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5i YXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1 dGlscyBhcyBjb2x1bW5zX3V0aWxzCiAKIAotY2xhc3MgQ29sdW1uRGVsZXRlVGVzdENhc2UoQmFz ZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgY29sdW1uIHVu ZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0ZSBj b2x1bW4gTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvY29sdW1uL29iai8nKSkKLSAgICBd Ci0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8g PSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9p bmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJs ZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQot ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KK2Ns YXNzIFRlc3RDb2x1bW5EZWxldGU6CisgICAgZGVmIHRlc3RfY29sdW1uX2RlbGV0ZShzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IGNvbHVtbiBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0 IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5h bGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvY29sdW1uL29i ai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2Vs Zi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRh dGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUu IikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YS4iKQorCiAgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFi bGVfbmFtZSkKLSAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9kZWxldGVf JXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY29sdW1uX2lkID0g Y29sdW1uc191dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKLQotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZHJvcCBjb2x1bW4gdW5kZXIg dGFibGUgbm9kZS4iIiIKKworICAgICAgICBjb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9kZWxl dGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGNvbHVtbl9pZCA9IGNv bHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b2x1bW5fbmFtZSkKKwogICAgICAgICBjb2xfcmVzcG9uc2UgPSBjb2x1bW5zX3V0aWxzLnZlcmlm eV9jb2x1bW4oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkK ICAgICAgICAgaWYgbm90IGNvbF9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIGNvbHVtbiB0byBkcm9wLiIpCi0gICAgICAgIHJlc3BvbnNl ID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkg KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5z ZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3RyKHNlbGYuZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJyArCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmNvbHVtbl9pZCksCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKworICAgICAg ICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9p ZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAg ICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYudGFi bGVfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihjb2x1bW5faWQpLAorICAgICAgICAgICAg Zm9sbG93X3JlZGlyZWN0cz1UcnVlKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0Nv bHVtbiBpcyBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFz ZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX2dldC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fZ2V0LnB5CmluZGV4IDIyYmZiMTFlLi5hMzg1 NzlmMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9nZXQu cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9nZXQucHkKQEAgLTks NjIgKzksODEgQEAKIAogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAor CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0 aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5l cmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNf aGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbiBp bXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNvbHVt bnNfdXRpbHMKIAogCi1jbGFzcyBDb2x1bW5HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6 Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGdldCBjb2x1bW4gdW5kZXIgdGFibGUgbm9kZS4iIiIK LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRmV0Y2ggY29sdW1ucyB1bmRlciB0YWJsZSBu b2RlJywgZGljdCh1cmw9Jy9icm93c2VyL2NvbHVtbi9vYmovJykpCi0gICAgXQorY2xhc3MgVGVz dENvbHVtbkdldDoKKyAgICBkZWYgdGVzdF9jb2x1bW5fZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRl eHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgY29sdW1uIGdldCBy ZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3Rh dHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJE b3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9jb2x1bW4vb2JqLycKKworICAgICAgICBz ZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2Vs Zi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZl cl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRi X2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBz ZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0g cGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf aWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVk LiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRh dGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBh ZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYg bm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKICAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK ICAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5z ZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxm LmNvbHVtbl9uYW1lID0gInRlc3RfY29sdW1uX2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKLSAgICAgICAgc2VsZi5jb2x1bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9j b2x1bW4oc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmNvbHVtbl9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgY29sdW1uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0g ICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJyArCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmNvbHVtbl9pZCksCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgY29sdW1u X25hbWUgPSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQorICAgICAgICBjb2x1bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VsZi5z ZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uX25hbWUpCisKKyAgICAgICAgcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAg ICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5z Y2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnRhYmxlX2lkKSArICcvJyAr CisgICAgICAgICAgICBzdHIoY29sdW1uX2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZSkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24ocmVzcG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25h bWUnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhjb2x1bW5fbmFtZSkKIAog ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFz ZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX21zcWwucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX21zcWwucHkKaW5kZXggMGNiY2FmMTEuLjJk ZGZmYWViIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX21z cWwucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9tc3FsLnB5CkBA IC0xMCwxMyArMTAsMTUgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0 ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAg IGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0 aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0 aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBm cm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9y dCB1dGlscyBhcyBjb2x1bW5zX3V0aWxzCkBAIC0yNywxNTMgKzI5LDE4MCBAQCBleGNlcHQgSW1w b3J0RXJyb3IgYXMgZToKICAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsZW5jb2RlCiAKIAotY2xh c3MgQ29sdW1uTXNxbFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNs YXNzIHdpbGwgdGVzdCBtc3FsIHJvdXRlIG9mIGNvbHVtbiB3aXRoIHZhcmlvdXMgY29tYmluYXRp b25zLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdtc3FsIGNvbHVtbiBjaGFuZ2Ug dGltZXN0YW1wIGFycmF5IGxlbmd0aCcsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHVy bD0nL2Jyb3dzZXIvY29sdW1uL21zcWwvJywKLSAgICAgICAgICAgICBkYXRhX3R5cGU9J3RpbWVz dGFtcCgzKSB3aXRoIHRpbWUgem9uZVtdJywKLSAgICAgICAgICAgICBuZXdfbGVuPTYsCi0gICAg ICAgICAgICAgZXhwZWN0ZWRfcmVzPSdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAg QUxURVIgQ09MVU1OICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUg dGltZXN0YW1wKHtsZW59KSB3aXRoIHRpbWUgem9uZSBbXTsnCi0gICAgICAgICApKSwKLSAgICAg ICAgKCdtc3FsIGNvbHVtbiBjaGFuZ2UgdGltZXN0YW1wIGxlbmd0aCcsCi0gICAgICAgICBkaWN0 KAotICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvY29sdW1uL21zcWwvJywKLSAgICAgICAgICAg ICBkYXRhX3R5cGU9J3RpbWVzdGFtcCg0KSB3aXRoIHRpbWUgem9uZScsCi0gICAgICAgICAgICAg bmV3X2xlbj03LAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVt YX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICd7Y29sdW1ufSBUWVBFIHRpbWVzdGFtcCh7bGVufSkgd2l0aCB0aW1lIHpvbmUgOycKLSAgICAg ICAgICkpLAotICAgICAgICAoJ21zcWwgY29sdW1uIGNoYW5nZSBudW1lcmljIGFycmF5IHByZWNp c2lvbicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvY29sdW1u L21zcWwvJywKLSAgICAgICAgICAgICBkYXRhX3R5cGU9J251bWVyaWMoNSwyKVtdJywKLSAgICAg ICAgICAgICBvbGRfbGVuPTUsCi0gICAgICAgICAgICAgbmV3X3ByZWNpc2lvbj00LAotICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxuICAgIEFM VEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51 bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnCi0gICAgICAgICApKSwKLSAgICAgICAgKCdt c3FsIGNvbHVtbiBjaGFuZ2UgbnVtZXJpYyBwcmVjaXNpb24nLAotICAgICAgICAgZGljdCgKLSAg ICAgICAgICAgICB1cmw9Jy9icm93c2VyL2NvbHVtbi9tc3FsLycsCi0gICAgICAgICAgICAgZGF0 YV90eXBlPSdudW1lcmljKDYsMyknLAotICAgICAgICAgICAgIG9sZF9sZW49NiwKLSAgICAgICAg ICAgICBuZXdfcHJlY2lzaW9uPTUsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzPSdBTFRFUiBU QUJMRSB7c2NoZW1hfS57dGFibGV9XG4gICAgQUxURVIgQ09MVU1OICcKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgbnVtZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KTsn Ci0gICAgICAgICApKSwKLSAgICAgICAgKCdtc3FsIGNvbHVtbiBjaGFuZ2UgbnVtZXJpYyBhcnJh eSBsZW5ndGgnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL2Nv bHVtbi9tc3FsLycsCi0gICAgICAgICAgICAgZGF0YV90eXBlPSdudW1lcmljKDYsMylbXScsCi0g ICAgICAgICAgICAgbmV3X2xlbj04LAotICAgICAgICAgICAgIG9sZF9wcmVjaXNpb249MywKLSAg ICAgICAgICAgICBleHBlY3RlZF9yZXM9J0FMVEVSIFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1cbiAg ICBBTFRFUiBDT0xVTU4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAne2NvbHVtbn0gVFlQ RSBudW1lcmljICh7bGVufSwge3ByZWNpc2lvbn0pW107JwotICAgICAgICAgKSksCi0gICAgICAg ICgnbXNxbCBjb2x1bW4gY2hhbmdlIG51bWVyaWMgbGVuZ3RoJywKLSAgICAgICAgIGRpY3QoCi0g ICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9jb2x1bW4vbXNxbC8nLAotICAgICAgICAgICAgIGRh dGFfdHlwZT0nbnVtZXJpYyg2LDQpJywKLSAgICAgICAgICAgICBuZXdfbGVuPTgsCi0gICAgICAg ICAgICAgb2xkX3ByZWNpc2lvbj00LAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIg VEFCTEUge3NjaGVtYX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSk7 JwotICAgICAgICAgKSksCi0gICAgICAgICgnbXNxbCBjb2x1bW4gY2hhbmdlIG51bWVyaWMgYXJy YXkgbGVuIGFuZCBwcmVjaXNpb24nLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICB1cmw9 Jy9icm93c2VyL2NvbHVtbi9tc3FsLycsCi0gICAgICAgICAgICAgZGF0YV90eXBlPSdudW1lcmlj KDEwLDUpW10nLAotICAgICAgICAgICAgIG5ld19sZW49MTUsCi0gICAgICAgICAgICAgbmV3X3By ZWNpc2lvbj04LAotICAgICAgICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVt YX0ue3RhYmxlfVxuICAgIEFMVEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICd7Y29sdW1ufSBUWVBFIG51bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnCi0gICAgICAg ICApKSwKLSAgICAgICAgKCdtc3FsIGNvbHVtbiBjaGFuZ2UgbnVtZXJpYyBsZW4gYW5kIHByZWNp c2lvbicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHVybD0nL2Jyb3dzZXIvY29sdW1u L21zcWwvJywKLSAgICAgICAgICAgICBkYXRhX3R5cGU9J251bWVyaWMoMTIsNiknLAotICAgICAg ICAgICAgIG5ld19sZW49MTQsCi0gICAgICAgICAgICAgbmV3X3ByZWNpc2lvbj05LAotICAgICAg ICAgICAgIGV4cGVjdGVkX3Jlcz0nQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxuICAgIEFM VEVSIENPTFVNTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51 bWVyaWMgKHtsZW59LCB7cHJlY2lzaW9ufSk7JwotICAgICAgICAgKSkKLSAgICBdCi0KLSAgICBk ZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3Rb ImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRf bm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFf aW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9p ZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBu b3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQotICAg ICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KK2NsYXNzIFRlc3RD b2x1bUdldE1zcWw6CisgICAgIiIiCisgICAgV2hlbiB0aGUgY29sdW1uIGdldCByZXF1ZXN0IGlz IHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICBmb3IgYSBtc3FsIGNvbHVtbgorICAgIGl0IHJldHVy bnMgMjAwIHN0YXR1cywKKyAgICAiIiIKKyAgICBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoCisg ICAgICAgICdkYXRhX3R5cGUsIGV4cGVjdGVkX3JlcywnCisgICAgICAgICdvbGRfbGVuLCBuZXdf bGVuLCBvbGRfcHJlY2lzaW9uLCBuZXdfcHJlY2lzaW9uJywgWworICAgICAgICAgICAgKAorICAg ICAgICAgICAgICAgICd0aW1lc3RhbXAoMykgd2l0aCB0aW1lIHpvbmVbXScsCisgICAgICAgICAg ICAgICAgJ0FMVEVSIFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1cbiAgICBBTFRFUiBDT0xVTU4gJwor ICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIHRpbWVzdGFtcCh7bGVufSkgd2l0aCB0aW1l IHpvbmUgW107JywKKyAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgICAgIDYsCisg ICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAg KSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAndGltZXN0YW1wKDQpIHdpdGggdGlt ZSB6b25lJywKKyAgICAgICAgICAgICAgICAnQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxlfVxu ICAgIEFMVEVSIENPTFVNTiAnCisgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgdGltZXN0 YW1wKHtsZW59KSB3aXRoIHRpbWUgem9uZSA7JywKKyAgICAgICAgICAgICAgICBOb25lLAorICAg ICAgICAgICAgICAgIDcsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICBO b25lLAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAnbnVt ZXJpYyg1LDIpW10nLAorICAgICAgICAgICAgICAgICdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFi bGV9XG4gICAgQUxURVIgQ09MVU1OICcKKyAgICAgICAgICAgICAgICAne2NvbHVtbn0gVFlQRSBu dW1lcmljICh7bGVufSwge3ByZWNpc2lvbn0pW107JywKKyAgICAgICAgICAgICAgICA1LAorICAg ICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAg ICA0LAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAnbnVt ZXJpYyg2LDMpJywKKyAgICAgICAgICAgICAgICAnQUxURVIgVEFCTEUge3NjaGVtYX0ue3RhYmxl fVxuICAgIEFMVEVSIENPTFVNTiAnCisgICAgICAgICAgICAgICAgJ3tjb2x1bW59IFRZUEUgbnVt ZXJpYyAoe2xlbn0sIHtwcmVjaXNpb259KTsnLAorICAgICAgICAgICAgICAgIDYsCisgICAgICAg ICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgICAgIDUs CisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICdudW1lcmlj KDYsMylbXScsCisgICAgICAgICAgICAgICAgJ0FMVEVSIFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1c biAgICBBTFRFUiBDT0xVTU4gJworICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVy aWMgKHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnLAorICAgICAgICAgICAgICAgIE5vbmUsCisgICAg ICAgICAgICAgICAgOCwKKyAgICAgICAgICAgICAgICAzLAorICAgICAgICAgICAgICAgIE5vbmUs CisgICAgICAgICAgICApLAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICdudW1lcmlj KDYsNCknLAorICAgICAgICAgICAgICAgICdBTFRFUiBUQUJMRSB7c2NoZW1hfS57dGFibGV9XG4g ICAgQUxURVIgQ09MVU1OICcKKyAgICAgICAgICAgICAgICAne2NvbHVtbn0gVFlQRSBudW1lcmlj ICh7bGVufSwge3ByZWNpc2lvbn0pOycsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAg ICAgICAgICA4LAorICAgICAgICAgICAgICAgIDQsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAg ICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgJ251bWVyaWMoMTAs NSlbXScsCisgICAgICAgICAgICAgICAgJ0FMVEVSIFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1cbiAg ICBBTFRFUiBDT0xVTU4gJworICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMg KHtsZW59LCB7cHJlY2lzaW9ufSlbXTsnLAorICAgICAgICAgICAgICAgIE5vbmUsCisgICAgICAg ICAgICAgICAgMTUsCisgICAgICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgICAgICA4LAor ICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAnbnVtZXJpYygx Miw2KScsCisgICAgICAgICAgICAgICAgJ0FMVEVSIFRBQkxFIHtzY2hlbWF9Lnt0YWJsZX1cbiAg ICBBTFRFUiBDT0xVTU4gJworICAgICAgICAgICAgICAgICd7Y29sdW1ufSBUWVBFIG51bWVyaWMg KHtsZW59LCB7cHJlY2lzaW9ufSk7JywKKyAgICAgICAgICAgICAgICBOb25lLAorICAgICAgICAg ICAgICAgIDE0LAorICAgICAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICAgICAgOSwKKyAg ICAgICAgICAgICkKKyAgICAgICAgXQorICAgICkKKyAgICBkZWYgdGVzdF9jb2x1bW5fcHV0KAor ICAgICAgICBzZWxmLAorICAgICAgICByZXF1ZXN0LAorICAgICAgICBjb250ZXh0X29mX3Rlc3Rz LAorICAgICAgICBkYXRhX3R5cGUsCisgICAgICAgIGV4cGVjdGVkX3JlcywKKyAgICAgICAgb2xk X2xlbiwKKyAgICAgICAgbmV3X2xlbiwKKyAgICAgICAgb2xkX3ByZWNpc2lvbiwKKyAgICAgICAg bmV3X3ByZWNpc2lvbgorICAgICk6CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYu dGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2NvbHVtbi9tc3FsLycKKworICAg ICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxm LnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBz ZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25h bWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1h X25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2No ZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24g PSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29u bmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK ICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKICAg ICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKICAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVf dGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQot ICAgICAgICBzZWxmLmNvbHVtbl9uYW1lID0gInRlc3RfY29sdW1uX21zcWxfJXMiICUgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY29sdW1uX2lkID0gY29sdW1uc191dGls cy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu dGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRhX3R5cGUpCi0KLSAgICBkZWYgcnVuVGVz dChzZWxmKToKKworICAgICAgICBjb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9nZXRfbXNxbF8l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgY29sdW1uX2lkID0gY29sdW1u c191dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVt bl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YV90eXBlKQogICAgICAgICBjb2xfcmVzcG9uc2UgPSBjb2x1bW5zX3V0aWxzLnZlcmlmeV9j b2x1bW4oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkKICAg ICAgICAgaWYgbm90IGNvbF9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIGNvbHVtbiB0byB1cGRhdGUuIikKIAotICAgICAgICBkYXRhID0g eyJhdHRudW0iOiBzZWxmLmNvbHVtbl9pZH0KKyAgICAgICAgZGF0YSA9IHsiYXR0bnVtIjogY29s dW1uX2lkfQogCiAgICAgICAgIGV4cGVjdGVkX2xlbiA9IE5vbmUKICAgICAgICAgZXhwZWN0ZWRf cHJlY2lzaW9uID0gTm9uZQogCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ25ld19sZW4nKToK LSAgICAgICAgICAgIGRhdGFbImF0dGxlbiJdID0gc2VsZi5uZXdfbGVuCi0gICAgICAgICAgICBl eHBlY3RlZF9sZW4gPSBzZWxmLm5ld19sZW4KLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnbmV3 X3ByZWNpc2lvbicpOgotICAgICAgICAgICAgZGF0YVsiYXR0cHJlY2lzaW9uIl0gPSBzZWxmLm5l d19wcmVjaXNpb24KLSAgICAgICAgICAgIGV4cGVjdGVkX3ByZWNpc2lvbiA9IHNlbGYubmV3X3By ZWNpc2lvbgorICAgICAgICBpZiBuZXdfbGVuIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGF0 YVsiYXR0bGVuIl0gPSBuZXdfbGVuCisgICAgICAgICAgICBleHBlY3RlZF9sZW4gPSBuZXdfbGVu CisgICAgICAgIGVsaWYgb2xkX2xlbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGV4cGVjdGVk X2xlbiA9IG9sZF9sZW4KKworICAgICAgICBpZiBuZXdfcHJlY2lzaW9uIGlzIG5vdCBOb25lOgor ICAgICAgICAgICAgZGF0YVsiYXR0cHJlY2lzaW9uIl0gPSBuZXdfcHJlY2lzaW9uCisgICAgICAg ICAgICBleHBlY3RlZF9wcmVjaXNpb24gPSBuZXdfcHJlY2lzaW9uCisgICAgICAgIGVsaWYgb2xk X3ByZWNpc2lvbiBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGV4cGVjdGVkX3ByZWNpc2lvbiA9 IG9sZF9wcmVjaXNpb24KIAogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwogICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIoc2VsZi5kYl9p ZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAgICAg ICAgICAgICBzdHIoc2VsZi50YWJsZV9pZCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYu Y29sdW1uX2lkKSArICc/JyArCisgICAgICAgICAgICBzdHIoY29sdW1uX2lkKSArICc/JyArCiAg ICAgICAgICAgICB1cmxlbmNvZGUoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3Rz PVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCiAKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8o MjAwKQogICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRl Y29kZSgndXRmLTgnKSkKLQotICAgICAgICBpZiBub3QgZXhwZWN0ZWRfbGVuIGFuZCBoYXNhdHRy KHNlbGYsICdvbGRfbGVuJyk6Ci0gICAgICAgICAgICBleHBlY3RlZF9sZW4gPSBzZWxmLm9sZF9s ZW4KLQotICAgICAgICBpZiBub3QgZXhwZWN0ZWRfcHJlY2lzaW9uIGFuZCBoYXNhdHRyKHNlbGYs ICdvbGRfcHJlY2lzaW9uJyk6Ci0gICAgICAgICAgICBleHBlY3RlZF9wcmVjaXNpb24gPSBzZWxm Lm9sZF9wcmVjaXNpb24KLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgICAg IHJlc3BvbnNlX2RhdGFbJ2RhdGEnXSwKLSAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfcmVzLmZv cm1hdCgKKyAgICAgICAgcmVzcG9uc2VfZGF0YVsnZGF0YSddIHwgc2hvdWxkLmJlLmVxdWFsLnRv KAorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzLmZvcm1hdCgKICAgICAgICAgICAgICAgICAqKmRp Y3QoCiAgICAgICAgICAgICAgICAgICAgIFsoJ3NjaGVtYScsIHNlbGYuc2NoZW1hX25hbWUpLAog ICAgICAgICAgICAgICAgICAgICAgKCd0YWJsZScsIHNlbGYudGFibGVfbmFtZSksCi0gICAgICAg ICAgICAgICAgICAgICAoJ2NvbHVtbicsIHNlbGYuY29sdW1uX25hbWUpLAorICAgICAgICAgICAg ICAgICAgICAgKCdjb2x1bW4nLCBjb2x1bW5fbmFtZSksCiAgICAgICAgICAgICAgICAgICAgICAo J2xlbicsIGV4cGVjdGVkX2xlbiksCiAgICAgICAgICAgICAgICAgICAgICAoJ3ByZWNpc2lvbics IGV4cGVjdGVkX3ByZWNpc2lvbikKICAgICAgICAgICAgICAgICAgICAgIF0KQEAgLTE4Miw1ICsy MTEsNSBAQCBjbGFzcyBDb2x1bW5Nc3FsVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMu Y2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbHVtbi90ZXN0cy90ZXN0X2NvbHVtbl9wdXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29sdW1uL3Rlc3RzL3Rlc3RfY29sdW1uX3B1dC5weQppbmRleCA5MjJl YmIyZi4uOWNhYTIzYWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9j b2x1bW5fcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vdGVzdHMvdGVzdF9jb2x1bW5fcHV0 LnB5CkBAIC0xMCw3MyArMTAsOTggQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitmcm9t IGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1 dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNj aGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRt aW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zy b20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jl c3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyBjb2x1bW5zX3V0aWxzCiAKIAotY2xhc3MgQ29sdW1uUHV0VGVzdENhc2UoQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhlIGNvbHVtbiB1bmRlciB0 YWJsZSBub2RlLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdQdXQgY29sdW1uIE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2NvbHVtbi9vYmovJykpCi0gICAgXQorY2xhc3Mg VGVzdENvbHVtblB1dDoKKyAgICBkZWYgdGVzdF9jb2x1bW5fcHV0KHNlbGYsIHJlcXVlc3QsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgY29sdW1uIHB1 dCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAg c3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRl YXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9jb2x1bW4vb2JqLycKKworICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAg c2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNl cnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxm LmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUg PSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZv ID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1h X2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBk YXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVj dGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFt ZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAg c2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9p ZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0 byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVt YV9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9z Y2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAg aWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisKICAgICAgICAgc2Vs Zi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKICAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBz ZWxmLmNvbHVtbl9uYW1lID0gInRlc3RfY29sdW1uX3B1dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKLSAgICAgICAgc2VsZi5jb2x1bW5faWQgPSBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9j b2x1bW4oc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmNvbHVtbl9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRo aXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGNvbHVtbiB1bmRlciB0YWJsZSBub2RlLiIiIgor ICAgICAgICBjb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9kZWxldGVfJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGNvbHVtbl9pZCA9IGNvbHVtbnNfdXRpbHMuY3JlYXRl X2NvbHVtbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkKICAgICAg ICAgY29sX3Jlc3BvbnNlID0gY29sdW1uc191dGlscy52ZXJpZnlfY29sdW1uKHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLmNvbHVtbl9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uX25hbWUpCiAgICAgICAgIGlmIG5vdCBjb2xf cmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBjb2x1bW4gdG8gdXBkYXRlLiIpCisKICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICJh dHRudW0iOiBzZWxmLmNvbHVtbl9pZCwKLSAgICAgICAgICAgICJuYW1lIjogc2VsZi5jb2x1bW5f bmFtZSwKKyAgICAgICAgICAgICJhdHRudW0iOiBjb2x1bW5faWQsCisgICAgICAgICAgICAibmFt ZSI6IGNvbHVtbl9uYW1lLAogICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGVz dCBjb21tZW50IGZvciBjb2x1bW4iCiAgICAgICAgIH0KICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsgJy8nICsKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKwogICAgICAgICAg ICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9p ZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpICsgJy8nICsKLSAgICAg ICAgICAgIHN0cihzZWxmLmNvbHVtbl9pZCksCisgICAgICAgICAgICBzdHIoY29sdW1uX2lkKSwK ICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19y ZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3Rv X2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNl KAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAgICAgICdjb2x1bW4nLAorICAg ICAgICAgICAgJ3BnYWRtaW4ubm9kZS5jb2x1bW4nLAorICAgICAgICAgICAgRmFsc2UsCisgICAg ICAgICAgICAnaWNvbi1jb2x1bW4nLAorICAgICAgICAgICAgY29sdW1uX25hbWUKKyAgICAgICAg KQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVu dF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3Rz L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVz dHMvX19pbml0X18ucHkKaW5kZXggZGZmYjljNzAuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5w eQpAQCAtNiw5ICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUg UG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotIyBmcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0jCi0jCi0jIGNsYXNzIENoZWNr Q29uc3RyYWludFRlc3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotIyAgICAgZGVmIHJ1 blRlc3Qoc2VsZik6Ci0jICAgICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRf YWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVz dF9jaGVja19jb25zdHJhaW50X2FkZC5weQppbmRleCBiMjAyYTE4Yy4uOWYxODdkOGQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3Rf Y2hlY2tfY29uc3RyYWludF9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNr X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2FkZC5weQpAQCAtMTAsNjcg KzEwLDczIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQg dXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBz Y2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdy ZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNf aGVscGVyIGltcG9ydCBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSwgXAorICAgIGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgQ2hlY2tDb25zdHJhaW50QWRk VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQg Y2hlY2sgY29uc3RyYWludCB0byBleGlzdGluZyB0YWJsZSIiIgotICAgIHNraXBfb25fZGF0YWJh c2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdBZGQgY2hlY2sgY29u c3RyYWludCB0byB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvY2hlY2tfY29u c3RyYWludC9vYmovJykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3Bk YiddKQorY2xhc3MgVGVzdENoZWNrQ29uc3RyYWludEFkZDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNl Zml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfY29u c3RyYWludF9hZGQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSBjb25zdHJhaW50IGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQK KyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBodHRw X2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzdXBlcihDaGVja0NvbnN0cmFpbnRBZGRUZXN0Q2FzZSwgc2VsZikuc2V0VXAo KQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0x XVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2No ZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBk Yl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZF Ul9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0 YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgY2hlY2sgIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1h X2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5m b1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQor ICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzY2hlbWFf bmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNwb25z ZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUp CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgY2hlY2sgIgotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYudGFibGVf bmFtZSA9ICJ0YWJsZV9jaGVja2NvbnN0cmFpbnRfYWRkXyVzIiAlIFwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVf aWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBjaGVjayAnCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2NvbnN0cmFpbnQuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9jaGVja2Nv bnN0cmFpbnRfYWRkXyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVt YV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFi bGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHdpbGwgYWRkIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUuIiIiCi0gICAgICAgIGNoZWNr X2NvbnN0cmFpbnRfbmFtZSA9ICJ0ZXN0X2NoZWNrY29uc3RyYWludF9hZGRfJXMiICUgXAorICAg ICAgICBjaGVja19jb25zdHJhaW50X25hbWUgPSAndGVzdF9jaGVja2NvbnN0cmFpbnRfYWRkXyVz JyAlIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCi0gICAgICAgIGRhdGEgPSB7Im5hbWUiOiBjaGVja19jb25zdHJhaW50X25hbWUsCi0g ICAgICAgICAgICAgICAgImNvbnNyYyI6ICIgKGlkID4gMCkiLAotICAgICAgICAgICAgICAgICJj b252YWxpZGF0ZWQiOiBUcnVlLAotICAgICAgICAgICAgICAgICJjb21tZW50IjogInRoaXMgaXMg dGVzdCBjb21tZW50In0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKLSAg ICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoc2VsZi50YWJs ZV9pZCkgKyAnLycsCisgICAgICAgIGRhdGEgPSB7J25hbWUnOiBjaGVja19jb25zdHJhaW50X25h bWUsCisgICAgICAgICAgICAgICAgJ2NvbnNyYyc6ICcgKGlkID4gMCknLAorICAgICAgICAgICAg ICAgICdjb252YWxpZGF0ZWQnOiBUcnVlLAorICAgICAgICAgICAgICAgICdjb21tZW50JzogJ3Ro aXMgaXMgdGVzdCBjb21tZW50J30KKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0 KAorICAgICAgICAgICAgc2VsZi5fX2J1aWxkX3VybChzZXJ2ZXJfZGF0YSwgdGFibGVfaWQpLAog ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nv bm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNl LnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNw b25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0 X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAor ICAgICAgICAgICAgJ2NoZWNrX2NvbnN0cmFpbnQnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9k ZS5jaGVja19jb25zdHJhaW50JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2lj b24tY2hlY2tfY29uc3RyYWludF9iYWQnLAorICAgICAgICAgICAgY2hlY2tfY29uc3RyYWludF9u YW1lCisgICAgICAgICkKKworICAgIGRlZiBfX2J1aWxkX3VybChzZWxmLCBzZXJ2ZXJfaW5mb3Jt YXRpb24sIHRhYmxlX2lkKToKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2NoZWNrX2NvbnN0cmFp bnQvb2JqLycKKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2luZm9ybWF0aW9uWydzZXJ2ZXJf aWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9pbmZvcm1hdGlvblsnZGJfaWQnXQorICAgICAg ICBzY2hlbWFfaWQgPSBzZXJ2ZXJfaW5mb3JtYXRpb25bJ3NjaGVtYV9pZCddCisKKyAgICAgICAg cmV0dXJuIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgXAorICAgICAgICAg ICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsgXAorICAgICAgICAgICAgJy8n ICsgc3RyKHNjaGVtYV9pZCkgKyAnLycgKyBzdHIodGFibGVfaWQpICsgJy8nCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNr X2NvbnN0cmFpbnRfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0 cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2RlbGV0ZS5weQppbmRleCBhY2NhOWZk My4uODdiZDA0ZmUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25z dHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9kZWxldGUucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJh aW50X2RlbGV0ZS5weQpAQCAtOSw3NCArOSw3NSBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQg cHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAog ICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9y Ci1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51 dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNoa19jb25zdHJhaW50X3V0aWxzCiAKIAotY2xhc3MgQ2hl Y2tDb25zdHJhaW50RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRo aXMgY2xhc3Mgd2lsbCBkZWxldGUgY2hlY2sgY29uc3RyYWludCB0byBleGlzdGluZyB0YWJsZSIi IgotICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGInXQotICAgIHNjZW5hcmlvcyA9IFsKLSAg ICAgICAgKCdEZWxldGUgY2hlY2sgY29uc3RyYWludCB0byB0YWJsZScsCi0gICAgICAgICBkaWN0 KHVybD0nL2Jyb3dzZXIvY2hlY2tfY29uc3RyYWludC9vYmovJykpCi0gICAgXQorQHB5dGVzdC5t YXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQorY2xhc3MgVGVzdENoZWNrQ29uc3RyYWludERl bGV0ZToKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29u bmVjdGlvbicpCisgICAgZGVmIHRlc3RfY2hlY2tfY29uc3RyYWludF9kZWxldGUoc2VsZiwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBjaGVjayBjb250 cmFpbnQgREVMRVRFIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCBy ZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9j aGVja19jb25zdHJhaW50L29iai8nCisKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29m X3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVy X2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoQ2hl Y2tDb25zdHJhaW50RGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAg ICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxm LmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2Vf dXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlIHRvIGRlbGV0ZSBhIGNoZWNrICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29u c3RyYWludC4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFf aWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1l Il0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFt ZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAg ICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVt YV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgYSBjaGVjayAiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQuIikKLSAgICAgICAgc2VsZi50 YWJsZV9uYW1lID0gInRhYmxlX2NoZWNrY29uc3RyYWludF9kZWxldGVfJXMiICUgXAotICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2Vs Zi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRf bmFtZSA9ICJ0ZXN0X2NoZWNrY29uc3RyYWludF9kZWxldGVfJXMiICUgXAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfaWQgPSBcCisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIGEgY2hlY2sgJworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdjb25zdHJhaW50LicpCisgICAgICAgIHRhYmxlX25hbWUg PSAndGFibGVfY2hlY2tjb25zdHJhaW50X2RlbGV0ZV8lcycgJSBcCisgICAgICAgICAgICAgICAg ICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNf dXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHRhYmxlX25hbWUpCisgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfbmFt ZSA9ICd0ZXN0X2NoZWNrY29uc3RyYWludF9kZWxldGVfJXMnICUgXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgY2hlY2tf Y29uc3RyYWludF9pZCA9IFwKICAgICAgICAgICAgIGNoa19jb25zdHJhaW50X3V0aWxzLmNyZWF0 ZV9jaGVja19jb25zdHJhaW50KAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAg ICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFtZSkKKyAgICAgICAgICAgICAgICBzZXJ2ZXIsIGRi X25hbWUsIHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgIGNoZWNrX2Nv bnN0cmFpbnRfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUuIiIiCiAgICAg ICAgIGNoa19jb25zdHJhaW50ID0gY2hrX2NvbnN0cmFpbnRfdXRpbHMudmVyaWZ5X2NoZWNrX2Nv bnN0cmFpbnQoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLmNo ZWNrX2NvbnN0cmFpbnRfbmFtZSkKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgY2hlY2tf Y29uc3RyYWludF9uYW1lKQogICAgICAgICBpZiBub3QgY2hrX2NvbnN0cmFpbnQ6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBjaGVjayBjb25zdHJhaW50 IHRvIGRlbGV0ZS4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAg ICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2hlY2tf Y29uc3RyYWludF9pZCksCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBm aW5kIHRoZSBjaGVjayBjb25zdHJhaW50IHRvIGRlbGV0ZS4nKQorCisgICAgICAgIHJlc3BvbnNl ID0gaHR0cF9jbGllbnQuZGVsZXRlKAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97 NX0vezZ9Jy5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19jb25z dHJhaW50X2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICAp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBz aG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9y ZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnQ2hl Y2sgY29uc3RyYWludCBkcm9wcGVkLicpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRv KDEpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90 ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X2dldC5weQppbmRl eCA0MTI0N2I1YS4uODczOWM0ZDggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9j aGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9nZXQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9jaGVja19j b25zdHJhaW50X2dldC5weQpAQCAtOSw3MSArOSw3NyBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBv cnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMg XAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFi YXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1p bi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGNoa19jb25zdHJhaW50X3V0aWxzCiAKIAotY2xhc3Mg Q2hlY2tDb25zdHJhaW50R2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRo aXMgY2xhc3Mgd2lsbCBmZXRjaCBjaGVjayBjb25zdHJhaW50IHRvIGV4aXN0aW5nIHRhYmxlIiIi Ci0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRh YmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0Q2hlY2tDb25zdHJhaW50R2V0OgorICAgIEBweXRl c3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBk ZWYgdGVzdF9jaGVja19jb25zdHJhaW50X2dldChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGNoZWNrIGNvbnN0cmFpbnQgR0VUIHJlcXVlc3Qg aXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAg ICAgICAgIiIiCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9jaGVja19jb25zdHJhaW50L29iai8n CiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRmV0Y2ggY2hlY2sgY29uc3RyYWludCB0 byB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvY2hlY2tfY29uc3RyYWludC9v YmovJykpCi0gICAgXQorICAgICAgICB0ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2Ns aWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAg ICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10K IAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoQ2hlY2tDb25zdHJhaW50R2V0 VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9 IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2lu Zm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAg ICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGZldGNoIGEgY2hl Y2sgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJhaW50LiIpCi0gICAgICAg IHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFf cmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2Ri X25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAg ICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBz ZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0 YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMu dmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qg c2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIGZldGNoIGEgY2hlY2sgIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9j aGVja2NvbnN0cmFpbnRfZ2V0XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFt ZSkKLSAgICAgICAgc2VsZi5jaGVja19jb25zdHJhaW50X25hbWUgPSAidGVzdF9jaGVja2NvbnN0 cmFpbnRfZ2V0XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5jaGVja19jb25zdHJhaW50X2lk ID0gXAorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGZldGNoIGEgY2hlY2sgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25z dHJhaW50LicpCisgICAgICAgIHRhYmxlX25hbWUgPSAndGFibGVfY2hlY2tjb25zdHJhaW50X2dl dF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK KyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUpCisg ICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfbmFtZSA9ICd0ZXN0X2NoZWNrY29uc3RyYWludF9nZXRf JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKKyAgICAgICAgY2hlY2tfY29uc3RyYWludF9pZCA9IFwKICAgICAgICAgICAgIGNo a19jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9jaGVja19jb25zdHJhaW50KAotICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFi bGVfbmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfbmFtZSkKKyAg ICAgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lLAor ICAgICAgICAgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggY2hlY2sgY29uc3Ry YWludCB0byB0YWJsZS4iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0g ICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwg dXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoZWNr X2NvbnN0cmFpbnRfaWQpLAorICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5nZXQoCisgICAgICAg ICAgICAnezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZF Ul9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlcl9pZCwgZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfaWQpLAogICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVz cG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAg ICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNj b25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAg ICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAg IGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAg ICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb21tZW50JykgPgorICAgICAg ICAgc2hvdWxkLmJlLmVxdWFsLnRvKCd0aGlzIGlzIHRlc3QgY29tbWVudCcpKQorICAgICAgICAo anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4KKyAgICAgICAgIHNob3Vs ZC5iZS5lcXVhbC50byhjaGVja19jb25zdHJhaW50X25hbWUpKQorICAgICAgICAoanNvbl9yZXNw b25zZSB8IHNob3VsZC5oYXZlLmtleSgnbnNwbmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5l cXVhbC50byhzY2hlbWFfbmFtZSkpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ29pZCcpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdj b25zcmMnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ2lkID4gMCcpKQorICAgICAg ICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVsbmFtZScpID4KKyAgICAgICAg IHNob3VsZC5iZS5lcXVhbC50byh0YWJsZV9uYW1lKSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnY29ubm9pbmhlcml0JykgPiBzaG91bGQuYmUuZmFsc2UKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29udmFsaWRhdGVkJykgPiBzaG91 bGQuYmUudHJ1ZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0 cmFpbnQvdGVzdHMvdGVzdF9jaGVja19jb25zdHJhaW50X3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3RfY2hlY2tfY29uc3RyYWludF9wdXQu cHkKaW5kZXggYjI0MDA2MDIuLjU4MzkyYWYxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3Ry YWludHMvY2hlY2tfY29uc3RyYWludC90ZXN0cy90ZXN0X2NoZWNrX2NvbnN0cmFpbnRfcHV0LnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rlc3RzL3Rlc3Rf Y2hlY2tfY29uc3RyYWludF9wdXQucHkKQEAgLTEwLDc2ICsxMCw4MCBAQAogaW1wb3J0IGpzb24K IGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQK KwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwog ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1 dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9y ZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UK IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBjaGtfY29uc3RyYWludF91dGlscwogCiAKLWNs YXNzIENoZWNrQ29uc3RyYWludFB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGNoZWNrIGNvbnN0cmFpbnQgdG8gZXhpc3RpbmcgdGFi bGUiIiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgnVXBkYXRlIGNoZWNrIGNvbnN0cmFpbnQgdG8gdGFibGUnLAotICAgICAgICAg ZGljdCh1cmw9Jy9icm93c2VyL2NoZWNrX2NvbnN0cmFpbnQvb2JqLycpKQotICAgIF0KK0BweXRl c3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RDaGVja0NvbnN0cmFp bnRQdXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nv bm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X2NoZWNrX2NvbnN0cmFpbnRfdXBkYXRlKHNlbGYsIGNv bnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgY2hlY2sgY29u c3RyYWludCBQVVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2No ZWNrX2NvbnN0cmFpbnQvb2JqLycKKworICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2Zf dGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1sn c2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJf aW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzdXBlcihDaGVj a0NvbnN0cmFpbnRQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQotICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAg IHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJf aWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2Ug dG8gdXBkYXRlIGEgY2hlY2sgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb25zdHJh aW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJd Ci0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQot ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9uYW1lID0g c2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsn c2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAg ICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25h bWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2Ug PSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQog ICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIHVwZGF0ZSBhIGNoZWNrICIKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAiY29uc3RyYWludC4iKQotICAgICAgICBzZWxmLnRhYmxl X25hbWUgPSAidGFibGVfY2hlY2tjb25zdHJhaW50X3B1dF8lcyIgJSBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnRhYmxl X2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF9uYW1lID0g InRlc3RfY2hlY2tjb25zdHJhaW50X3B1dF8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY2hl Y2tfY29uc3RyYWludF9pZCA9IFwKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byB1cGRhdGUgYSBjaGVjayAnCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2NvbnN0cmFpbnQuJykKKworICAgICAgICB0YWJsZV9uYW1lID0gJ3RhYmxl X2NoZWNrY29uc3RyYWludF9wdXRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0 ZV90YWJsZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0YWJsZV9uYW1lKQorICAgICAgICBjaGVja19jb25zdHJhaW50X25hbWUgPSAndGVzdF9j aGVja2NvbnN0cmFpbnRfcHV0XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRfaWQg PSBcCiAgICAgICAgICAgICBjaGtfY29uc3RyYWludF91dGlscy5jcmVhdGVfY2hlY2tfY29uc3Ry YWludCgKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNj aGVtYV9uYW1lLCBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi5jaGVja19j b25zdHJhaW50X25hbWUpCisgICAgICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFf bmFtZSwgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICBjaGVja19jb25zdHJhaW50X25hbWUp CiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxs IGRlbGV0ZSBjaGVjayBjb25zdHJhaW50IHRvIHRhYmxlLiIiIgogICAgICAgICBjaGtfY29uc3Ry YWludCA9IGNoa19jb25zdHJhaW50X3V0aWxzLnZlcmlmeV9jaGVja19jb25zdHJhaW50KAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5jaGVja19jb25zdHJhaW50 X25hbWUpCisgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIGNoZWNrX2NvbnN0cmFpbnRfbmFt ZSkKICAgICAgICAgaWYgbm90IGNoa19jb25zdHJhaW50OgotICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgY2hlY2sgY29uc3RyYWludCB0byB1cGRhdGUuIikK LSAgICAgICAgZGF0YSA9IHsib2lkIjogc2VsZi5jaGVja19jb25zdHJhaW50X2lkLAotICAgICAg ICAgICAgICAgICJjb21tZW50IjogIlRoaXMgaXMgdGVzdCBjb21tZW50IGZvciBjaGVjayBjb25z dHJhaW50LiJ9Ci0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAg ICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNF UlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2lkLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jaGVja19jb25zdHJh aW50X2lkKSwKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhl IGNoZWNrIGNvbnN0cmFpbnQgdG8gdXBkYXRlLicpCisgICAgICAgIGRhdGEgPSB7J29pZCc6IGNo ZWNrX2NvbnN0cmFpbnRfaWQsCisgICAgICAgICAgICAgICAgJ2NvbW1lbnQnOiAnVGhpcyBpcyB0 ZXN0IGNvbW1lbnQgZm9yIGNoZWNrIGNvbnN0cmFpbnQuJ30KKyAgICAgICAgcmVzcG9uc2UgPSBo dHRwX2NsaWVudC5wdXQoCisgICAgICAgICAgICAnezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0n LmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX2NvbnN0cmFpbnRf aWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9s bG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERp c2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3Bv bnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9y ZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNz ZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNl LAorICAgICAgICAgICAgJ2NoZWNrX2NvbnN0cmFpbnQnLAorICAgICAgICAgICAgJ3BnYWRtaW4u bm9kZS5jaGVja19jb25zdHJhaW50JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAg J2ljb24tY2hlY2tfY29uc3RyYWludF9iYWQnLAorICAgICAgICAgICAgY2hlY2tfY29uc3RyYWlu dF9uYW1lCisgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3Jl aWduX2tleS90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWdu X2tleS90ZXN0cy9fX2luaXRfXy5weQppbmRleCBlNjM1OTEyZS4uNTkwMDI2YWQgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvX19pbml0X18ucHkK QEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLSMgZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotIwotIwotIyBjbGFzcyBGb3Jl aWduS2V5VGVzdEdlbmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0jCi0jICAgICBkZWYgcnVu VGVzdChzZWxmKToKLSMgICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2FkZC5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2Fk ZC5weQppbmRleCA3OWIxNGQ3NS4uZjk3Y2Q5OWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2FkZC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9h ZGQucHkKQEAgLTEwLDcxICsxMCw3OCBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2lt cG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0 cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBc CiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0 YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2Fk bWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBc CisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIEZv cmVpZ25LZXlBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFz cyB3aWxsIGFkZCBmb3JlaWduIGtleSB0byBleGlzdGluZyB0YWJsZSIiIgotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgKCdBZGQgZm9yZWlnbiBLZXkgY29uc3RyYWludCB0byB0YWJsZScsCi0g ICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9rZXkvb2JqLycpKQotICAgIF0KK2Ns YXNzIFRlc3RGb3JlaWduS2V5QWRkOgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVx dWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9jb25zdHJhaW50X2FkZChz ZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGZv cmVpZ24ga2V5IGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQg cmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBodHRwX2NsaWVudCA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz ZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJd Ci0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAg IHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0 ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gYWRkIGEgZm9yZWlnbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ImtleSBjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9b InNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2No ZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5 X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAg ICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzY2hlbWFfbmFtZSA9 IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAg ICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgZm9yZWlnbiAiCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgImtleSBjb25zdHJhaW50LiIpCi0gICAgICAgIHNlbGYubG9jYWxf dGFibGVfbmFtZSA9ICJ0YWJsZV9mb3JlaWdua2V5XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYubG9j YWxfdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9jYWxfdGFibGVfbmFtZSkKLSAgICAg ICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUgPSAidGFibGVfZm9yZWlnbmtleV8lcyIgJSBcCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0p Ci0gICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9u YW1lLAotICAgICAgICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUpCisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgZm9yZWln biAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleSBjb25zdHJhaW50LicpCisgICAg ICAgIGxvY2FsX3RhYmxlX25hbWUgPSAndGFibGVfZm9yZWlnbmtleV8lcycgJSBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgbG9j YWxfdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxv Y2FsX3RhYmxlX25hbWUpCisgICAgICAgIGZvcmVpZ25fdGFibGVfbmFtZSA9ICd0YWJsZV9mb3Jl aWdua2V5XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCisgICAgICAgIGZvcmVpZ25fdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3Jl YXRlX3RhYmxlKAorICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwKKyAg ICAgICAgICAgIGZvcmVpZ25fdGFibGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgot ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIGZvcmVpZ24ga2V5IHRhYmxlIGNvbHVt bi4iIiIKLSAgICAgICAgZm9yZWlnbmtleV9uYW1lID0gInRlc3RfZm9yZWlnbmtleV9hZGRfJXMi ICUgXAorICAgICAgICBmb3JlaWdua2V5X25hbWUgPSAndGVzdF9mb3JlaWdua2V5X2FkZF8lcycg JSBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQot ICAgICAgICBkYXRhID0geyJuYW1lIjogZm9yZWlnbmtleV9uYW1lLAotICAgICAgICAgICAgICAg ICJjb2x1bW5zIjogW3sibG9jYWxfY29sdW1uIjogImlkIiwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgInJlZmVyZW5jZXMiOiBzZWxmLmZvcmVpZ25fdGFibGVfaWQsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJyZWZlcmVuY2VkIjogImlkIn1dLAotICAgICAgICAgICAgICAg ICJjb25mdXBkdHlwZSI6ICJhIiwgImNvbmZkZWx0eXBlIjogImEiLCAiYXV0b2luZGV4IjogRmFs c2V9Ci0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3Ry KHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAgICAgICAn LycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHNlbGYubG9jYWxfdGFibGVfaWQp ICsgJy8nLAorICAgICAgICBkYXRhID0geyduYW1lJzogZm9yZWlnbmtleV9uYW1lLAorICAgICAg ICAgICAgICAgICdjb2x1bW5zJzogW3snbG9jYWxfY29sdW1uJzogJ2lkJywKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ3JlZmVyZW5jZXMnOiBmb3JlaWduX3RhYmxlX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAncmVmZXJlbmNlZCc6ICdpZCd9XSwKKyAgICAgICAgICAg ICAgICAnY29uZnVwZHR5cGUnOiAnYScsICdjb25mZGVsdHlwZSc6ICdhJywgJ2F1dG9pbmRleCc6 IEZhbHNlfQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9zdCgKKyAgICAgICAg ICAgIHNlbGYuX19idWlsZF91cmwoc2VydmVyX2RhdGEsIGxvY2FsX3RhYmxlX2lkKSwKICAgICAg ICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0 IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0 dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2Ug PSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29u X3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAg ICAgICAgICdmb3JlaWduX2tleScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLmZvcmVpZ25f a2V5JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tZm9yZWlnbl9rZXkn LAorICAgICAgICAgICAgZm9yZWlnbmtleV9uYW1lCisgICAgICAgICkKKworICAgIGRlZiBfX2J1 aWxkX3VybChzZWxmLCBzZXJ2ZXJfZGF0YSwgbG9jYWxfdGFibGVfaWQpOgorICAgICAgICB1cmwg PSAnL2Jyb3dzZXIvZm9yZWlnbl9rZXkvb2JqLycKKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHJl dHVybiB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIFwKKyAgICAgICAgICAg IHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArIFwKKyAgICAgICAgICAgICcvJyAr IHN0cihzY2hlbWFfaWQpICsgJy8nICsgc3RyKGxvY2FsX3RhYmxlX2lkKSArICcvJwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWln bl9rZXlfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3Rz L3Rlc3RfZm9yZWlnbl9rZXlfZGVsZXRlLnB5CmluZGV4IGZjZjMyNTlkLi5iYzU4YTQ0YyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9y ZWlnbl9rZXlfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tl eS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2RlbGV0ZS5weQpAQCAtOSw3NiArOSw3NSBAQAogCiBp bXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisK IGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2Rl X2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVz cG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZrX3V0aWxzCiAKIAot Y2xhc3MgRm9yZWlnbktleURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAi IiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIGZvcmVpZ24ga2V5IHRvIGV4aXN0aW5nIHRhYmxlIiIi Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0ZSBmb3JlaWduIEtleSBjb25zdHJh aW50LicsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZm9yZWlnbl9rZXkvb2JqLycpKQot ICAgIF0KK2NsYXNzIFRlc3RGb3JlaWduS2V5RGVsZXRlOgorICAgIEBweXRlc3QubWFyay51c2Vm aXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9mb3Jl aWduX2tleV9kZWxldGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHRoZSBmb3JlaWduIGtleSBERUxFVEUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAg IHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRh ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRV cChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJh c2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0g ICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBh IGZvcmVpZ24gIgotICAgICAgICAgICAgICAgICJrZXkgY29uc3RyYWludC4iKQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9u YW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2Vy dmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFb J3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZl cmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZp bmQgdGhlIHNjaGVtYSB0byBkZWxldGUgYSBmb3JlaWduICIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAia2V5IGNvbnN0cmFpbnQuIikKLSAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9uYW1l ID0gImxvY2FsX3RhYmxlX2ZvcmVpZ25rZXlfZGVsZXRlXyVzIiAlIFwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYu bG9jYWxfdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAotICAgICAgICAgICAg c2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5sb2NhbF90 YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFtZSA9ICJmb3JlaWduX3Rh YmxlX2ZvcmVpZ25rZXlfZGVsZXRlXyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mb3JlaWduX3Rh YmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKLSAgICAgICAgICAgIHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICBzZWxmLmZv cmVpZ25fdGFibGVfbmFtZSkKLSAgICAgICAgc2VsZi5mb3JlaWduX2tleV9uYW1lID0gInRlc3Rf Zm9yZWlnbmtleV9kZWxldGVfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5mb3JlaWduX2tleV9pZCA9 IGZrX3V0aWxzLmNyZWF0ZV9mb3JlaWdua2V5KAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNl bGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgc2VsZi5sb2NhbF90YWJsZV9uYW1lLAotICAg ICAgICAgICAgc2VsZi5mb3JlaWduX3RhYmxlX25hbWUpCisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIGEgZm9yZWlnbiAnCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleSBjb25zdHJhaW50LicpCisgICAgICAgIGxv Y2FsX3RhYmxlX25hbWUgPSAnbG9jYWxfdGFibGVfZm9yZWlnbmtleV9kZWxldGVfJXMnICUgXAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAg ICAgIGxvY2FsX3RhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKKyAgICAgICAg ICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGxvY2FsX3RhYmxlX25hbWUpCisgICAg ICAgIGZvcmVpZ25fdGFibGVfbmFtZSA9ICdmb3JlaWduX3RhYmxlX2ZvcmVpZ25rZXlfZGVsZXRl XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoCisgICAgICAgICAgICBz ZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgZm9yZWlnbl90YWJsZV9u YW1lKQorICAgICAgICAndGVzdF9mb3JlaWdua2V5X2RlbGV0ZV8lcycgJSBcCisgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZm9yZWlnbl9rZXlfaWQgPSBma191 dGlscy5jcmVhdGVfZm9yZWlnbmtleSgKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2No ZW1hX25hbWUsIGxvY2FsX3RhYmxlX25hbWUsCisgICAgICAgICAgICBmb3JlaWduX3RhYmxlX25h bWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3 aWxsIGRlbGV0ZSBmb3JlaWduIGtleSBhdHRhY2hlZCB0byB0YWJsZSBjb2x1bW4uIiIiCi0gICAg ICAgIGZrX3Jlc3BvbnNlID0gZmtfdXRpbHMudmVyaWZ5X2ZvcmVpZ25rZXkoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmxvY2FsX3RhYmxlX25hbWUpCisgICAgICAgIGZrX3Jlc3BvbnNlID0gZmtf dXRpbHMudmVyaWZ5X2ZvcmVpZ25rZXkoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsX3RhYmxlX25hbWUpCiAgICAg ICAgIGlmIG5vdCBma19yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdG8gIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJkZWxldGUuIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5kZWxldGUoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1h dChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu bG9jYWxfdGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmZvcmVpZ25fa2V5X2lkKSwKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bignQ291bGQgbm90IGZpbmQgdGhlIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdG8gJworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUuJykKKyAgICAgICAgdXJsID0gJy9icm93c2Vy L2ZvcmVpZ25fa2V5L29iai8nCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZGVsZXRl KAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Jy5mb3JtYXQodXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxfdGFibGVfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduX2tleV9pZCksCiAgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNl bGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNl X3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIw MCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNw b25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4g c2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ0ZvcmVpZ24ga2V5IGRyb3BwZWQuJykK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNo b3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdk YXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVzdWx0Jykg PiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5 X2dldC5weQppbmRleCBkMjMzZTllMC4uN2JjZjRkMzAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X2dldC5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvY29uc3RyYWludHMvZm9yZWlnbl9rZXkvdGVzdHMvdGVzdF9mb3JlaWduX2tl eV9nZXQucHkKQEAgLTksNzEgKzksMTAxIEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRl c3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAg aW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRp bHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRp bHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZy b20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20g LiBpbXBvcnQgdXRpbHMgYXMgZmtfdXRpbHMKIAogCi1jbGFzcyBGb3JlaWduR2V0RGVsZXRlVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBm b3JlaWduIGtleSBmcm9tIGV4aXN0aW5nIHRhYmxlIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoJ0ZldGNoIGZvcmVpZ24gS2V5IGNvbnN0cmFpbnQuJywKLSAgICAgICAgIGRpY3QodXJs PScvYnJvd3Nlci9mb3JlaWduX2tleS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEZvcmVpZ25H ZXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5l Y3Rpb24nKQorICAgIGRlZiB0ZXN0X2ZvcmVpZ25fa2V5X2dldChzZWxmLCBjb250ZXh0X29mX3Rl c3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGNoZWNrIGNvbnN0cmFpbnQgR0VU IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBz dGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgdGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sn dGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXIn XQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1h dGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0 byBkYXRhYmFzZSB0byBmZXRjaCBhIGZvcmVpZ24gIgotICAgICAgICAgICAgICAgICJrZXkgY29u c3RyYWludC4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFf aWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1l Il0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFt ZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAg ICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVt YV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBmZXRjaCBhIGZvcmVpZ24gIgot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgY29uc3RyYWludC4iKQotICAgICAgICBz ZWxmLmxvY2FsX3RhYmxlX25hbWUgPSAibG9jYWxfdGFibGVfZm9yZWlnbmtleV9nZXRfJXMiICUg XAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKLSAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9u YW1lLCBzZWxmLmxvY2FsX3RhYmxlX25hbWUpCi0gICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9u YW1lID0gImZvcmVpZ25fdGFibGVfZm9yZWlnbmtleV9nZXRfJXMiICUgXAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBz ZWxmLmZvcmVpZ25fdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAotICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmZvcmVpZ25fa2V5 X25hbWUgPSAidGVzdF9mb3JlaWdua2V5X2dldF8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmZvcmVp Z25fa2V5X2lkID0gZmtfdXRpbHMuY3JlYXRlX2ZvcmVpZ25rZXkoCi0gICAgICAgICAgICBzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmxvY2FsX3RhYmxl X25hbWUsCi0gICAgICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFtZSkKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBmZXRjaCBhIGZv cmVpZ24gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXkgY29uc3RyYWludC4nKQor CisgICAgICAgIGxvY2FsX3RhYmxlX25hbWUgPSAnbG9jYWxfdGFibGVfZm9yZWlnbmtleV9nZXRf JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCisgICAgICAgIGxvY2FsX3RhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgK KyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGxvY2FsX3RhYmxlX25h bWUpCisgICAgICAgIGZvcmVpZ25fdGFibGVfbmFtZSA9ICdmb3JlaWduX3RhYmxlX2ZvcmVpZ25r ZXlfZ2V0XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoCisgICAgICAg ICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgZm9yZWlnbl90 YWJsZV9uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVu Y3Rpb24gd2lsbCBkZWxldGUgZm9yZWlnbiBrZXkgYXR0YWNoZWQgdG8gdGFibGUgY29sdW1uLiIi IgotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgICJ7MH17 MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZm9yZWlnbl9rZXlfaWQp LAorICAgICAgICBmb3JlaWduX2tleV9pZCA9IGZrX3V0aWxzLmNyZWF0ZV9mb3JlaWdua2V5KAor ICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgbG9jYWxfdGFibGVfbmFt ZSwKKyAgICAgICAgICAgIGZvcmVpZ25fdGFibGVfbmFtZSkKKworICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvZm9yZWlnbl9rZXkvb2JqLycKKyAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZ2V0KAor ICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Jy5mb3JtYXQodXJsLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVS X0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBsb2NhbF90YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGZvcmVpZ25fa2V5X2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVj dHM9VHJ1ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0 YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlz Y29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9k YXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9u c2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jl c3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29u X3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb21tZW50JykgPiBzaG91bGQuYmUubm9uZQor ICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZmtuc3AnKSA+CisgICAg ICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2NoZW1hX25hbWUpKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCduYW1lJykKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ2NvbmZkZWx0eXBlJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCdhJykp CisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb25ma2V5JykgPgor ICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKFsxXSkpCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ2NvbmZyZWxpZCcpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdyZWZ0YWInKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8o Zm9yZWlnbl90YWJsZV9uYW1lKSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnY29uZGVmZXJyYWJsZScpID4gc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbmRlZmVycmVkJykgPiBzaG91bGQuYmUuZmFsc2UK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29uZm1hdGNodHlwZScp CisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZWZuc3AnKSA+Cisg ICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oc2NoZW1hX25hbWUpKQorICAgICAgICAoanNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZmt0YWInKSA+CisgICAgICAgICBzaG91bGQuYmUu ZXF1YWwudG8obG9jYWxfdGFibGVfbmFtZSkpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ2hhc2luZGV4JykgPiBzaG91bGQuYmUudHJ1ZQorICAgICAgICAoanNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29ua2V5JykgPgorICAgICAgICAgc2hvdWxkLmJl LmVxdWFsLnRvKFsxXSkpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J2NvbnZhbGlkYXRlZCcpID4gc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ2F1dG9pbmRleCcpID4gc2hvdWxkLmJlLnRydWUKKyAgICAgICAg KGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2ZrdGFiJykgPgorICAgICAgICAgc2hv dWxkLmJlLmVxdWFsLnRvKGxvY2FsX3RhYmxlX25hbWUpKQorICAgICAgICBqc29uX3Jlc3BvbnNl IHwgc2hvdWxkLmhhdmUua2V5KCdjb3ZlcmluZ2luZGV4JykKKworICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb2x1bW5zJykKKyAgICAgICAgKGpzb25fcmVzcG9uc2Vb J2NvbHVtbnMnXVswXSB8IHNob3VsZC5oYXZlLmtleSgncmVmZXJlbmNlZCcpID4KKyAgICAgICAg IHNob3VsZC5iZS5lcXVhbC50bygnaWQnKSkKKyAgICAgICAganNvbl9yZXNwb25zZVsnY29sdW1u cyddWzBdIHwgc2hvdWxkLmhhdmUua2V5KCdyZWZlcmVuY2VzJykKKyAgICAgICAgKGpzb25fcmVz cG9uc2VbJ2NvbHVtbnMnXVswXSB8IHNob3VsZC5oYXZlLmtleSgnbG9jYWxfY29sdW1uJykgPgor ICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCdpZCcpKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlfcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlf cHV0LnB5CmluZGV4IGNkY2FlZDVkLi44NzA1ODBlZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2ZvcmVpZ25fa2V5L3Rlc3RzL3Rlc3RfZm9yZWlnbl9rZXlfcHV0LnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9mb3JlaWduX2tleS90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5 X3B1dC5weQpAQCAtMTAsNzQgKzEwLDc2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRl c3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0 IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBk YXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBn YWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24s IFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIGZrX3V0aWxzCiAKIAotY2xhc3MgRm9yZWlnblB1dERlbGV0ZVRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGZvcmVp Z24ga2V5IGZyb20gZXhpc3RpbmcgdGFibGUiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgnRmV0Y2ggZm9yZWlnbiBLZXkgY29uc3RyYWludC4nLAotICAgICAgICAgZGljdCh1cmw9Jy9i cm93c2VyL2ZvcmVpZ25fa2V5L29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0Rm9yZWlnbktleVB1 dDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVj dGlvbicpCisgICAgZGVmIHRlc3RfZm9yZWlnbl9rZXlfdXBkYXRlKHNlbGYsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgZm9yZWlnbiBrZXlzIFBVVCBy ZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3Rh dHVzCisgICAgICAgICIiIgorCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0 c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2 ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZv cm1hdGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9 IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZSB0byBmZXRjaCBhIGZvcmVpZ24gIgotICAgICAgICAgICAgICAgICJrZXkg Y29uc3RyYWludC4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJf bmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNj aGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf bmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBmZXRjaCBhIGZvcmVpZ24g IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrZXkgY29uc3RyYWludC4iKQotICAgICAg ICBzZWxmLmxvY2FsX3RhYmxlX25hbWUgPSAibG9jYWxfdGFibGVfZm9yZWlnbmtleV9nZXRfJXMi ICUgXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlb MTo4XSkKLSAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVf dGFibGUoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVt YV9uYW1lLCBzZWxmLmxvY2FsX3RhYmxlX25hbWUpCi0gICAgICAgIHNlbGYuZm9yZWlnbl90YWJs ZV9uYW1lID0gImZvcmVpZ25fdGFibGVfZm9yZWlnbmtleV9nZXRfJXMiICUgXAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLmZvcmVpZ25fdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwKLSAg ICAgICAgICAgIHNlbGYuZm9yZWlnbl90YWJsZV9uYW1lKQotICAgICAgICBzZWxmLmZvcmVpZ25f a2V5X25hbWUgPSAidGVzdF9mb3JlaWdua2V5X2dldF8lcyIgJSBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmZv cmVpZ25fa2V5X2lkID0gZmtfdXRpbHMuY3JlYXRlX2ZvcmVpZ25rZXkoCi0gICAgICAgICAgICBz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLmxvY2FsX3Rh YmxlX25hbWUsCi0gICAgICAgICAgICBzZWxmLmZvcmVpZ25fdGFibGVfbmFtZSkKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBmZXRjaCBh IGZvcmVpZ24gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXkgY29uc3RyYWludC4n KQorICAgICAgICBsb2NhbF90YWJsZV9uYW1lID0gJ2xvY2FsX3RhYmxlX2ZvcmVpZ25rZXlfZ2V0 XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsx OjhdKQorICAgICAgICBsb2NhbF90YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUo CisgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCBsb2NhbF90YWJsZV9u YW1lKQorICAgICAgICBmb3JlaWduX3RhYmxlX25hbWUgPSAnZm9yZWlnbl90YWJsZV9mb3JlaWdu a2V5X2dldF8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKAorICAgICAg ICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgIGZvcmVpZ25f dGFibGVfbmFtZSkKKyAgICAgICAgZm9yZWlnbl9rZXlfaWQgPSBma191dGlscy5jcmVhdGVfZm9y ZWlnbmtleSgKKyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGxvY2Fs X3RhYmxlX25hbWUsCisgICAgICAgICAgICBmb3JlaWduX3RhYmxlX25hbWUpCiAKLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSBmb3Jl aWduIGtleSBhdHRhY2hlZCB0byB0YWJsZSBjb2x1bW4uIiIiCi0gICAgICAgIGRhdGEgPSB7Im9p ZCI6IHNlbGYuZm9yZWlnbl9rZXlfaWQsCi0gICAgICAgICAgICAgICAgImNvbW1lbnQiOiAiVGhp cyBpcyBURVNUIGNvbW1lbnQgZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQuIgorICAgICAgICBk YXRhID0geydvaWQnOiBmb3JlaWduX2tleV9pZCwKKyAgICAgICAgICAgICAgICAnY29tbWVudCc6 ICdUaGlzIGlzIFRFU1QgY29tbWVudCBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludC4nCiAgICAg ICAgICAgICAgICAgfQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAg ICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGls cy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2NhbF90YWJsZV9pZCwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZm9y ZWlnbl9rZXlfaWQpLAorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9mb3JlaWduX2tleS9vYmov JworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAgICd7MH17 MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lk LCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxvY2FsX3RhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZm9yZWlnbl9rZXlfaWQpLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBz KGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxm LmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRh dGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisg ICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ2ZvcmVpZ25fa2V5JywKKyAg ICAgICAgICAgICdwZ2FkbWluLm5vZGUuZm9yZWlnbl9rZXknLAorICAgICAgICAgICAgRmFsc2Us CisgICAgICAgICAgICAnaWNvbi1mb3JlaWduX2tleScsCisgICAgICAgICAgICBsb2NhbF90YWJs ZV9uYW1lICsgJ19pZF9ma2V5JworICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDFhZjJj ZTY0Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2Nv bnN0cmFpbnQvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2lu ZGV4X2NvbnN0cmFpbnQvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCi0KLSMgZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgotIwotIwotIyBjbGFzcyBJbmRleENvbnN0cmFpbnRUZXN0R2VuZXJhdG9y KEJhc2VUZXN0R2VuZXJhdG9yKToKLSMKLSMgICAgIGRlZiBydW5UZXN0KHNlbGYpOgotIyAgICAg ICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2Nv bnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2FkZC5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9h ZGQucHkKaW5kZXggY2VlYjYzNTAuLjFlZDBlN2ZhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfYWRk LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rl c3RfaW5kZXhfY29uc3RyYWludF9hZGQucHkKQEAgLTEwLDc3ICsxMCwxMjQgQEAKIGltcG9ydCBq c29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hv dWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu c2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBv cnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0 X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy50 ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2Vy dF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVu dF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIEluZGV4Q29uc3RyYWludEFkZFRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIGluZGV4IGNvbnN0 cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkgdG8KLSAgICB0YWJsZSBjb2x1bW4iIiIK LSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBwcmltYXJ5X2tleV9uYW1lID0g InRlc3RfcHJpbWFyeWtleV9hZGRfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgICAoc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICBwcmltYXJ5X2tleV9kYXRhID0geyJuYW1lIjogcHJp bWFyeV9rZXlfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJzcGNuYW1lIjogInBnX2Rl ZmF1bHQiLAotICAgICAgICAgICAgICAgICAgICAgICAgImNvbHVtbnMiOiBbeyJjb2x1bW4iOiAi aWQifV0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICB1bmlxdWVfa2V5X25hbWUgPSAi dGVzdF91bmlxdWVrZXlfYWRkXyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKLSAgICB1bmlxdWVfa2V5X2RhdGEgPSB7Im5hbWUiOiB1bmlxdWVf a2V5X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICJzcGNuYW1lIjogInBnX2RlZmF1bHQi LAotICAgICAgICAgICAgICAgICAgICAgICAiY29sdW1ucyI6IFt7ImNvbHVtbiI6ICJpZCJ9XX0K LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnQWRkIHByaW1hcnkgS2V5IGNvbnN0cmFpbnQg dG8gdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3ByaW1hcnlfa2V5L29iai8n LCBkYXRhPXByaW1hcnlfa2V5X2RhdGEpKSwKLSAgICAgICAgKCdBZGQgdW5pcXVlIEtleSBjb25z dHJhaW50IHRvIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci91bmlxdWVfY29u c3RyYWludC9vYmovJywgZGF0YT11bmlxdWVfa2V5X2RhdGEpKQotICAgIF0KK0BweXRlc3QubWFy ay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RJbmRleENvbnN0cmFpbnRBZGQ6 CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rp b24nKQorICAgIGRlZiB0ZXN0X3ByaW1hcnlfa2V5X2FkZChzZWxmLCBjb250ZXh0X29mX3Rlc3Rz KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIFByaW1hcnkgS2V5IGFkZCByZXF1ZXN0 IGlzIHNlbmQKKyAgICAgICAgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgSXQgcmV0dXJucyAyMDAg c3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVz dHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5m b3JtYXRpb24nXQorCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisg ICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAg c2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBp bmRleCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBr ZXkgb3IgdW5pcXVlIGtleSkuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9pbmRleGNv bnN0cmFpbnRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9u YW1lKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJworICAgICAg ICBwcmltYXJ5X2tleV9uYW1lID0gJ3Rlc3RfcHJpbWFyeWtleV9hZGRfJXMnICUgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHBy aW1hcnlfa2V5X2RhdGEgPSB7J25hbWUnOiBwcmltYXJ5X2tleV9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdzcGNuYW1lJzogJ3BnX2RlZmF1bHQnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdjb2x1bW5zJzogW3snY29sdW1uJzogJ2lkJ31dCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBvc3QoCisg ICAgICAgICAgICBzZWxmLl9fYnVpbGRfdXJsKHNlcnZlcl9kYXRhLCB0YWJsZV9pZCwgdXJsKSwK KyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhwcmltYXJ5X2tleV9kYXRhKSwKKyAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAgICByZXNwb25zZS5zdGF0dXNf Y29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBj b252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9qc29uX3Zh bHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAgICAgICAg ICAgICdwcmltYXJ5X2tleScsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnByaW1hcnlfa2V5 JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAgJ2ljb24tcHJpbWFyeV9rZXknLAor ICAgICAgICAgICAgcHJpbWFyeV9rZXlfbmFtZQorICAgICAgICApCisKKyAgICBAcHl0ZXN0Lm1h cmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRl c3RfdW5pcXVlcl9jb25zdHJhaW50X2FkZChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAg ICAgIiIiCisgICAgICAgIFdoZW4gdGhlIFVuaXF1ZSBDb25zdHJhaW50IGFkZCByZXF1ZXN0IGlz IHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAg ICAgICIiIgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAg ICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQog Ci0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAgICAgICAgY2xz LmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0g ICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAg ICAgIGNscy5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgY2xz LmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2Vf dXRpbHMuY29ubmVjdF9kYXRhYmFzZShjbHMsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2lkLCBj bHMuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0g ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNl IHRvIGFkZCBhICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW5kZXggY29uc3RyYWlu dChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4iKQotICAgICAgICBjbHMuc2NoZW1hX2lkID0g c2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIGNscy5zY2hlbWFfbmFtZSA9IHNjaGVt YV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2NoZW1hX25hbWUp CisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNjaGVt YV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAiCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVl IGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVfaW5kZXhjb25zdHJhaW50 XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShjbHMu c2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAnCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtl eSkuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMnICUg XAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAg IHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQogCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgaW5kZXgg Y29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KQotICAgICAgICB0byB0YWJsZSBj b2x1bW4uIiIiCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKLSAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAg ICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCi0gICAgICAg ICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQp ICsgJy8nLAotICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksCisgICAgICAg IHVybCA9ICcvYnJvd3Nlci91bmlxdWVfY29uc3RyYWludC9vYmovJworICAgICAgICB1bmlxdWVf a2V5X25hbWUgPSAndGVzdF91bmlxdWVrZXlfYWRkXyVzJyAlIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHVuaXF1ZV9rZXlfZGF0 YSA9IHsnbmFtZSc6IHVuaXF1ZV9rZXlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzcGNuYW1lJzogJ3BnX2RlZmF1bHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nv bHVtbnMnOiBbeydjb2x1bW4nOiAnaWQnfV19CisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGll bnQucG9zdCgKKyAgICAgICAgICAgIHNlbGYuX19idWlsZF91cmwoc2VydmVyX2RhdGEsIHRhYmxl X2lkLCB1cmwpLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHVuaXF1ZV9rZXlfZGF0YSks CiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3NtZXRob2QK LSAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRh dGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2UoY2xzLCBj bHMuc2VydmVyX2lkLCBjbHMuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zy b21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3Vu aXF1ZV9jb25zdHJhaW50JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudW5pcXVlX2NvbnN0 cmFpbnQnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi11bmlxdWVfY29u c3RyYWludCcsCisgICAgICAgICAgICB1bmlxdWVfa2V5X25hbWUKKyAgICAgICAgKQorCisgICAg ZGVmIF9fYnVpbGRfdXJsKHNlbGYsIHNlcnZlcl9kYXRhLCB0YWJsZV9pZCwgYmFzZV91cmwpOgor ICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJf aWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0 YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgcmV0dXJuIGJhc2VfdXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKyBcCisgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0 cihkYl9pZCkgKyBcCisgICAgICAgICAgICAnLycgKyBzdHIoc2NoZW1hX2lkKSArICcvJyArIHN0 cih0YWJsZV9pZCkgKyAnLycKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRl eF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9kZWxldGUucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0 cmFpbnRfZGVsZXRlLnB5CmluZGV4IDUyNmIzNmNkLi4wMWUyODcyOSAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25z dHJhaW50X2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3Ry YWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFpbnRfZGVsZXRlLnB5CkBAIC05LDc5ICs5LDEy NCBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNf dXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBh cmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz IGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGluZGV4 X2NvbnN0cmFpbnRfdXRpbHMKIAogCi1jbGFzcyBJbmRleENvbnN0cmFpbnREZWxldGVUZXN0Q2Fz ZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSBpbmRl eCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpIG9mCi0gICAgdGFibGUgY29s dW1uIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgcHJpbWFyeV9rZXlf bmFtZSA9ICJ0ZXN0X3ByaW1hcnlrZXlfZGVsZXRlXyVzIiAlIFwKLSAgICAgICAgICAgICAgICAg ICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgdW5pcXVlX2tleV9uYW1lID0gInRl c3RfdW5pcXVla2V5X2RlbGV0ZV8lcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0ZSBw cmltYXJ5IEtleSBjb25zdHJhaW50IG9mIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJv d3Nlci9wcmltYXJ5X2tleS9vYmovJywgbmFtZT1wcmltYXJ5X2tleV9uYW1lLAotICAgICAgICAg ICAgICB0eXBlPSJQUklNQVJZIEtFWSIpKSwKLSAgICAgICAgKCdEZWxldGUgdW5pcXVlIEtleSBj b25zdHJhaW50IG9mIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci91bmlxdWVf Y29uc3RyYWludC9vYmovJywgbmFtZT11bmlxdWVfa2V5X25hbWUsCi0gICAgICAgICAgICAgIHR5 cGU9IlVOSVFVRSIpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGIn XSkKK2NsYXNzIFRlc3RJbmRleENvbnN0cmFpbnREZWxldGU6CisgICAgQHB5dGVzdC5tYXJrLnVz ZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3By aW1hcnlfa2V5X2RlbGV0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIFByaW1hcnkgS2V5IENvbnN0cmFpbnQgREVMRVRFIHJlcXVlc3QgaXMg c2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAg ICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGll bnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAK LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBjbHMu ZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAg ICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAg ICAgY2xzLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBjbHMu ZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91 dGlscy5jb25uZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWQsIGNs cy5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2Ug dG8gYWRkIGEgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRleCBjb25zdHJhaW50 KHByaW1hcnkga2V5IG9yIHVuaXF1ZSBrZXkpLiIpCi0gICAgICAgIGNscy5zY2hlbWFfaWQgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgY2xzLnNjaGVtYV9uYW1lID0gc2NoZW1h X2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKGNscy5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuZGJfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSkK KyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVy X2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2Rh dGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCdd CisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQg YSBpbmRleCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFy eSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVf aW5kZXhjb25zdHJhaW50XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNy ZWF0ZV90YWJsZShjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBp bmRleCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBr ZXkgb3IgdW5pcXVlIGtleSkuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9pbmRleGNv bnN0cmFpbnRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9u YW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24g d2lsbCBkZWxldGUgaW5kZXggY29uc3RyYWludChwcmltYXJ5IGtleSBvcgotICAgICAgICB1bmlx dWUga2V5KSBvZiB0YWJsZSBjb2x1bW4uIiIiCisgICAgICAgIHByaW1hcnlfa2V5X25hbWUgPSAn dGVzdF9wcmltYXJ5a2V5X2RlbGV0ZV8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKICAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZCA9 IFwKICAgICAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2luZGV4X2NvbnN0 cmFpbnQoCi0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5z Y2hlbWFfbmFtZSwgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYubmFtZSwg c2VsZi50eXBlKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAg ICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJsLCB1dGls cy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pZCwKKyAgICAg ICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lLAorICAg ICAgICAgICAgICAgIHByaW1hcnlfa2V5X25hbWUsICdQUklNQVJZIEtFWScpCisgICAgICAgIHVy bCA9ICcvYnJvd3Nlci9wcmltYXJ5X2tleS9vYmovJworCisgICAgICAgIHJlc3BvbnNlID0gaHR0 cF9jbGllbnQuZGVsZXRlKAorICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9 Jy5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9jb25zdHJhaW50 X2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQorICAgICAgICApCisKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAg ICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQu YmUuZXF1YWwudG8oCisgICAgICAgICAgICAnUHJpbWFyeSBrZXkgZHJvcHBlZC4nKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJl LmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3Vs ZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nl c3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQorCisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1 cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3VuaXF1ZV9j b25zdHJhaW50X2RlbGV0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIFVuaXF1ZSBDb25zdHJhaW50IERFTEVURSByZXF1ZXN0IGlzIHNlbmQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vy dmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorCisgICAg ICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9 IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAg ICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgaW5k ZXggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25zdHJhaW50KHByaW1hcnkga2V5 IG9yIHVuaXF1ZSBrZXkpLicpCisgICAgICAgIHRhYmxlX25hbWUgPSAndGFibGVfaW5kZXhjb25z dHJhaW50XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsx OjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFt ZSkKKworICAgICAgICB1bmlxdWVfY29uc3RyYWludF9uYW1lID0gJ3Rlc3RfdW5pcXVla2V5X2Rl bGV0ZV8lcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKKyAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZCA9IFwKKyAgICAgICAg ICAgIGluZGV4X2NvbnN0cmFpbnRfdXRpbHMuY3JlYXRlX2luZGV4X2NvbnN0cmFpbnQoCisgICAg ICAgICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgdGFibGVfbmFtZSwKKyAg ICAgICAgICAgICAgICB1bmlxdWVfY29uc3RyYWludF9uYW1lLCAnVU5JUVVFJykKKyAgICAgICAg dXJsID0gJy9icm93c2VyL3VuaXF1ZV9jb25zdHJhaW50L29iai8nCisKKyAgICAgICAgcmVzcG9u c2UgPSBodHRwX2NsaWVudC5kZWxldGUoCisgICAgICAgICAgICAnezB9ezF9L3syfS97M30vezR9 L3s1fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9pZCwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X2Nv bnN0cmFpbnRfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAgICAg ICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkK IAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAgICAg ICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29u bmVjdF9kYXRhYmFzZShjbHMsIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwu dG8oCisgICAgICAgICAgICAnVW5pcXVlIGNvbnN0cmFpbnQgZHJvcHBlZC4nKQorICAgICAgICBq c29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVt cHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5i ZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3Mn KSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL2luZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhf Y29uc3RyYWludF9nZXQucHkKaW5kZXggMzE0MTIxNzYuLjAwMjVlMGI0IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2Nv bnN0cmFpbnRfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJh aW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9nZXQucHkKQEAgLTksNzkgKzksMTQyIEBA CiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGls cwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9y dCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVy dF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgaW5kZXhfY29u c3RyYWludF91dGlscwogCiAKLWNsYXNzIEluZGV4Q29uc3RyYWludEdldFRlc3RDYXNlKEJhc2VU ZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIGluZGV4IGNv bnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkgb2YKLSAgICB0YWJsZSBjb2x1bW4i IiIKLSAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBwcmltYXJ5X2tleV9uYW1l ID0gInRlc3RfcHJpbWFyeWtleV9kZWxldGVfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAg ICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICB1bmlxdWVfa2V5X25hbWUgPSAidGVzdF91 bmlxdWVrZXlfZGVsZXRlXyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRmV0Y2ggcHJpbWFy eSBLZXkgY29uc3RyYWludCBvZiB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIv cHJpbWFyeV9rZXkvb2JqLycsIG5hbWU9cHJpbWFyeV9rZXlfbmFtZSwKLSAgICAgICAgICAgICAg dHlwZT0iUFJJTUFSWSBLRVkiKSksCi0gICAgICAgICgnRmV0Y2ggdW5pcXVlIEtleSBjb25zdHJh aW50IG9mIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci91bmlxdWVfY29uc3Ry YWludC9vYmovJywgbmFtZT11bmlxdWVfa2V5X25hbWUsCi0gICAgICAgICAgICAgIHR5cGU9IlVO SVFVRSIpKQotICAgIF0KLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBzZXRVcENsYXNzKGNs cyk6Ci0gICAgICAgIGNscy5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVst MV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNj aGVtYSJdWy0xXQotICAgICAgICBjbHMuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCi0gICAgICAgIGNscy5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2UoY2xzLCB1dGlscy5TRVJWRVJf R1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLnNlcnZlcl9pZCwgY2xzLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11b ImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ImluZGV4IGNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkuIikKLSAgICAgICAg Y2xzLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBjbHMuc2No ZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoY2xzLnNlcnZlciwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5kYl9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLnNjaGVtYV9uYW1lKQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsnZ3BkYiddKQor Y2xhc3MgVGVzdEluZGV4Q29uc3RyYWludEdldDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVy ZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfcHJpbWFyeV9r ZXlfZ2V0KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hl biB0aGUgUHJpbWFyeSBLZXkgR0VUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgaHR0cF9j bGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4 dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKworICAgICAgICBkYl9uYW1lID0gc2Vy dmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBz Y2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUg PSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBz Y2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAg ICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIGluZGV4ICIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiY29uc3RyYWludChwcmltYXJ5IGtleSBvciB1bmlxdWUga2V5KS4i KQotICAgICAgICBjbHMudGFibGVfbmFtZSA9ICJ0YWJsZV9pbmRleGNvbnN0cmFpbnRfJXMiICUg XAotICAgICAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAg ICAgICBjbHMudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKGNscy5zZXJ2ZXIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLmRi X25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y2xzLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNscy50YWJsZV9uYW1lKQotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCB0aGUgaW5kZXggY29uc3RyYWludChwcmlt YXJ5IGtleSBvcgotICAgICAgICB1bmlxdWUga2V5KSBvZiB0YWJsZSBjb2x1bW4uIiIiCisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRk IGEgaW5kZXggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25zdHJhaW50KHByaW1h cnkga2V5IG9yIHVuaXF1ZSBrZXkpLicpCisgICAgICAgIHRhYmxlX25hbWUgPSAndGFibGVfaW5k ZXhjb25zdHJhaW50XyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVt YV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFi bGVfbmFtZSkKKworICAgICAgICBwcmltYXJ5X2tleV9uYW1lID0gJ3Rlc3RfcHJpbWFyeWtleV9n ZXRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkp WzE6OF0pCiAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfaWQgPSBcCiAgICAgICAgICAgICBpbmRl eF9jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9pbmRleF9jb25zdHJhaW50KAotICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFi bGVfbmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLm5hbWUsIHNlbGYudHlwZSkKLSAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30v ezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudGFibGVfaWQsCisgICAgICAgICAgICAgICAgc2VydmVyLCBkYl9u YW1lLCBzY2hlbWFfbmFtZSwgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICBwcmltYXJ5X2tl eV9uYW1lLCAnUFJJTUFSWSBLRVknKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcHJpbWFyeV9r ZXkvb2JqLycKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5nZXQoCisgICAgICAgICAg ICAnezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlcl9pZCwgZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJsZV9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfaWQpLAogICAgICAgICAgICAgZm9sbG93X3Jl ZGlyZWN0cz1UcnVlCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93 bkNsYXNzKGNscyk6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShjbHMsIGNscy5zZXJ2ZXJfaWQsIGNs cy5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwu dG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29u KHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb21t ZW50JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnbmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhwcmltYXJ5X2tl eV9uYW1lKSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZG5h dHRzJykgPgorICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKDEpKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdjb25kZWZlcnJhYmxlJykgPiBzaG91bGQuYmUuZmFsc2UKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29uZGVmZXJyZWQnKSA+IHNob3Vs ZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdmaWxs ZmFjdG9yJykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICAoanNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnc3BjbmFtZScpID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygncGdf ZGVmYXVsdCcpKQorCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Nv bHVtbnMnKSA+IHNob3VsZC5oYXZlLmxlbmd0aC5vZigxKQorICAgICAgICAoanNvbl9yZXNwb25z ZVsnY29sdW1ucyddWzBdIHwgc2hvdWxkLmhhdmUua2V5KCdjb2x1bW4nKSA+CisgICAgICAgICBz aG91bGQuYmUuZXF1YWwudG8oJ2lkJykpCisKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMo J3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfdW5pcXVlX2NvbnN0 cmFpbnRfZ2V0KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiB0aGUgVW5pcXVlciBDb25zdHJhaW50IEdFVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAg ICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAg ICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0 YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisKKyAgICAgICAgZGJf bmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNj aGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf bmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAnCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5p cXVlIGtleSkuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9pbmRleGNvbnN0cmFpbnRf JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorCisg ICAgICAgIHVuaXF1ZV9jb25zdHJhaW50X25hbWUgPSAndGVzdF91bmlxdWVfY29uc3RyYWludF9n ZXRfJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCisgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfaWQgPSBcCisgICAgICAgICAg ICBpbmRleF9jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9pbmRleF9jb25zdHJhaW50KAorICAgICAg ICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIHRhYmxlX25hbWUsCisgICAg ICAgICAgICAgICAgdW5pcXVlX2NvbnN0cmFpbnRfbmFtZSwgJ1VOSVFVRScpCisgICAgICAgIHVy bCA9ICcvYnJvd3Nlci91bmlxdWVfY29uc3RyYWludC9vYmovJworICAgICAgICByZXNwb25zZSA9 IGh0dHBfY2xpZW50LmdldCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2 fScuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfY29uc3RyYWlu dF9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKKyAgICAgICAgKQorCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAg ICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29tbWVudCcpID4gc2hv dWxkLmJlLm5vbmUKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25h bWUnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8odW5pcXVlX2NvbnN0cmFpbnRfbmFt ZSkpCisgICAgICAgIChqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmRuYXR0cycp ID4KKyAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50bygxKSkKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnY29uZGVmZXJyYWJsZScpID4gc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpz b25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbmRlZmVycmVkJykgPiBzaG91bGQuYmUu ZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZmlsbGZhY3Rv cicpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAgKGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ3NwY25hbWUnKSA+CisgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ3BnX2RlZmF1 bHQnKSkKKworICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb2x1bW5z JykgPiBzaG91bGQuaGF2ZS5sZW5ndGgub2YoMSkKKyAgICAgICAgKGpzb25fcmVzcG9uc2VbJ2Nv bHVtbnMnXVswXSB8IHNob3VsZC5oYXZlLmtleSgnY29sdW1uJykgPgorICAgICAgICAgc2hvdWxk LmJlLmVxdWFsLnRvKCdpZCcpKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2lu ZGV4X2NvbnN0cmFpbnQvdGVzdHMvdGVzdF9pbmRleF9jb25zdHJhaW50X3B1dC5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rlc3RzL3Rlc3RfaW5kZXhfY29uc3Ry YWludF9wdXQucHkKaW5kZXggZWYwZTNhZGUuLjUzYzEwZWU2IDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29uc3RyYWludHMvaW5kZXhfY29uc3RyYWludC90ZXN0cy90ZXN0X2luZGV4X2NvbnN0cmFp bnRfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9pbmRleF9jb25zdHJhaW50L3Rl c3RzL3Rlc3RfaW5kZXhfY29uc3RyYWludF9wdXQucHkKQEAgLTEwLDgxICsxMCwxMzMgQEAKIGlt cG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJs ZXNfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwot ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0 cyBpbXBvcnQgdXRpbHMgYXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0 IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0 IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9t X3Jlc3BvbnNlCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgaW5kZXhfY29uc3RyYWludF91 dGlscwogCiAKLWNsYXNzIEluZGV4Q29uc3RyYWludFVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBkYXRlIGluZGV4IGNvbnN0cmFpbnQo cHJpbWFyeSBrZXkgb3IgdW5pcXVlIGtleSkgb2YKLSAgICB0YWJsZSBjb2x1bW4iIiIKLSAgICBz a2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KLSAgICBwcmltYXJ5X2tleV9uYW1lID0gInRlc3Rf cHJpbWFyeWtleV9wdXRfJXMiICUgXAotICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKLSAgICB1bmlxdWVfa2V5X25hbWUgPSAidGVzdF91bmlxdWVrZXlfcHV0 XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK LSAgICBkYXRhID0geyJvaWQiOiAiIiwgImNvbW1lbnQiOiAidGhpcyBpcyB0ZXN0IGNvbW1lbnQi fQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdVcGRhdGUgcHJpbWFyeSBLZXkgY29uc3Ry YWludCBvZiB0YWJsZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvcHJpbWFyeV9rZXkv b2JqLycsIG5hbWU9cHJpbWFyeV9rZXlfbmFtZSwKLSAgICAgICAgICAgICAgdHlwZT0iUFJJTUFS WSBLRVkiLCBkYXRhPWRhdGEpKSwKLSAgICAgICAgKCdVcGRhdGUgdW5pcXVlIEtleSBjb25zdHJh aW50IG9mIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci91bmlxdWVfY29uc3Ry YWludC9vYmovJywgbmFtZT11bmlxdWVfa2V5X25hbWUsCi0gICAgICAgICAgICAgIHR5cGU9IlVO SVFVRSIsIGRhdGE9ZGF0YSkpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsn Z3BkYiddKQorY2xhc3MgVGVzdEluZGV4Q29uc3RyYWludFVwZGF0ZToKKyAgICBAcHl0ZXN0Lm1h cmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRl c3RfcHJpbWFyeV9rZXlfdXBkYXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgUHJpbWFyeSBLZXkgUFVUIHJlcXVlc3QgaXMgc2VuZCB0byB0 aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisg ICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAg ICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJf ZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBAY2xh c3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBjbHMuZGJfbmFtZSA9 IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgY2xzLnNl cnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBjbHMuZGJfaWQgPSBz Y2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25u ZWN0X2RhdGFiYXNlKGNscywgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfaWQsIGNscy5kYl9pZCkK LSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEg IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbmRleCBjb25zdHJhaW50KHByaW1hcnkg a2V5IG9yIHVuaXF1ZSBrZXkpLiIpCi0gICAgICAgIGNscy5zY2hlbWFfaWQgPSBzY2hlbWFfaW5m b1sic2NoZW1hX2lkIl0KLSAgICAgICAgY2xzLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNj aGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlm eV9zY2hlbWFzKGNscy5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjbHMuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSkKKyAgICAgICAg ZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2Vy dmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lk J10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAg IHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1h X3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hl bWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAi Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3Ig dW5pcXVlIGtleSkuIikKLSAgICAgICAgY2xzLnRhYmxlX25hbWUgPSAidGFibGVfaW5kZXhjb25z dHJhaW50XyVzIiAlIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKLSAgICAgICAgY2xzLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJs ZShjbHMuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNscy5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNscy5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbHMudGFibGVfbmFtZSkKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAnCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5p cXVlIGtleSkuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9pbmRleGNvbnN0cmFpbnRf JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAg ICAgICBwcmltYXJ5X2tleV9uYW1lID0gJ3Rlc3RfcHJpbWFyeWtleV9wdXRfJXMnICUgXAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAg IGluZGV4X2NvbnN0cmFpbnRfaWQgPSBcCisgICAgICAgICAgICBpbmRleF9jb25zdHJhaW50X3V0 aWxzLmNyZWF0ZV9pbmRleF9jb25zdHJhaW50KAorICAgICAgICAgICAgICAgIHNlcnZlciwgZGJf bmFtZSwgc2NoZW1hX25hbWUsIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgcHJpbWFyeV9r ZXlfbmFtZSwgJ1BSSU1BUlkgS0VZJykKKyAgICAgICAgZGF0YSA9IHsnb2lkJzogaW5kZXhfY29u c3RyYWludF9pZCwgJ2NvbW1lbnQnOiAndGhpcyBpcyB0ZXN0IGNvbW1lbnQnfQorICAgICAgICB1 cmwgPSAnL2Jyb3dzZXIvcHJpbWFyeV9rZXkvb2JqLycKKyAgICAgICAgcmVzcG9uc2UgPSBodHRw X2NsaWVudC5wdXQoCisgICAgICAgICAgICAnezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0nLmZv cm1hdCh1cmwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW5kZXhfY29uc3RyYWludF9pZAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAg ICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAg ICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisg ICAgICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNv bl9yZXNwb25zZSwKKyAgICAgICAgICAgICdwcmltYXJ5X2tleScsCisgICAgICAgICAgICAncGdh ZG1pbi5ub2RlLnByaW1hcnlfa2V5JywKKyAgICAgICAgICAgIEZhbHNlLAorICAgICAgICAgICAg J2ljb24tcHJpbWFyeV9rZXknLAorICAgICAgICAgICAgcHJpbWFyeV9rZXlfbmFtZQorICAgICAg ICApCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3 aWxsIHVwZGF0ZSBpbmRleCBjb25zdHJhaW50KHByaW1hcnkga2V5IG9yCi0gICAgICAgIHVuaXF1 ZSBrZXkpIG9mIHRhYmxlIGNvbHVtbi4iIiIKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMo J3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfdW5pcXVlX2NvbnN0 cmFpbnRfdXBkYXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiB0aGUgVW5pcXVlIENvbnN0cmFpbnQgUFVUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAg ICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAg ICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0 YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisKKyAgICAgICAgZGJf bmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVy X2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNj aGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf bmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSBpbmRleCAnCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnN0cmFpbnQocHJpbWFyeSBrZXkgb3IgdW5p cXVlIGtleSkuJykKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9pbmRleGNvbnN0cmFpbnRf JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAg ICAgICB1bmlxdWVfY29uc3RyYWludF9uYW1lID0gJ3Rlc3RfdW5pcXVlY29uc3RyYWludF9wdXRf JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCiAgICAgICAgIGluZGV4X2NvbnN0cmFpbnRfaWQgPSBcCiAgICAgICAgICAgICBp bmRleF9jb25zdHJhaW50X3V0aWxzLmNyZWF0ZV9pbmRleF9jb25zdHJhaW50KAotICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYu dGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLm5hbWUsIHNlbGYudHlwZSkKLSAgICAg ICAgc2VsZi5kYXRhWyJvaWQiXSA9IGluZGV4X2NvbnN0cmFpbnRfaWQKLSAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1 fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCwKKyAgICAgICAgICAgICAgICBzZXJ2ZXIsIGRi X25hbWUsIHNjaGVtYV9uYW1lLCB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgIHVuaXF1ZV9j b25zdHJhaW50X25hbWUsICdVTklRVUUnKQorICAgICAgICBkYXRhID0geydvaWQnOiBpbmRleF9j b25zdHJhaW50X2lkLCAnY29tbWVudCc6ICd0aGlzIGlzIHRlc3QgY29tbWVudCd9CisgICAgICAg IHVybCA9ICcvYnJvd3Nlci91bmlxdWVfY29uc3RyYWludC9vYmovJworICAgICAgICByZXNwb25z ZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9 L3s2fScuZm9ybWF0KHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfaWQsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9jb25zdHJhaW50X2lkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMo ZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBAY2xhc3NtZXRo b2QKLSAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhl IGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2UoY2xz LCBjbHMuc2VydmVyX2lkLCBjbHMuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2Rl IHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVz X2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAg J3VuaXF1ZV9jb25zdHJhaW50JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUudW5pcXVlX2Nv bnN0cmFpbnQnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi11bmlxdWVf Y29uc3RyYWludCcsCisgICAgICAgICAgICB1bmlxdWVfY29uc3RyYWludF9uYW1lCisgICAgICAg ICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy90ZXN0cy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA1MTIwOTc4Mi4u NTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy90ZXN0cy9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYs MTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5y b3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBDb25zdHJhaW50c1Rlc3RH ZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0g ICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA5MjEz OGQ4Zi4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL19faW5p dF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC02LDEx ICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNR TCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgSW5kZXhlc1Rlc3RHZW5lcmF0 b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAg IHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRl eGVzX2FkZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19hZGQucHkK aW5kZXggMTFmYzY0YmUuLjgwMTE2YjU0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90 ZXN0cy90ZXN0X2luZGV4ZXNfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rl c3RfaW5kZXhlc19hZGQucHkKQEAgLTEwLDYwICsxMCw2NyBAQAogaW1wb3J0IGpzb24KIGltcG9y dCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz LnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRl c3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25z ZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwog CiAKLWNsYXNzIEluZGV4ZXNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi VGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgaW5kZXggdG8gZXhpc3RpbmcgdGFibGUgY29sdW1uIiIi Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0FkZCBpbmRleCBOb2RlIFVSTCcsIGRpY3Qo dXJsPScvYnJvd3Nlci9pbmRleC9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEluZGV4ZXNBZGQ6 CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rp b24nKQorICAgIGRlZiB0ZXN0X2luZGV4X2FkZChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGluZGV4IGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8g dGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgor ICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAg ICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVy X2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVm IHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJk YXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25v ZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2lu Zm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQi XQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYs IHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90 IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKLSAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsn ZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQor ICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9 IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9k YXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5v dCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAgc2VsZi50YWJsZV9u YW1lID0gInRhYmxlX2Zvcl9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0g ICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4n KQorCisgICAgICAgIHRhYmxlX25hbWUgPSAndGFibGVfZm9yX2NvbHVtbl8lcycgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKKworICAgICAgICBpbmRleF9uYW1lID0gJ3Rlc3Rf aW5kZXhfYWRkXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBkYXRhID0g eyduYW1lJzogaW5kZXhfbmFtZSwKKyAgICAgICAgICAgICAgICAnc3BjbmFtZSc6ICdwZ19kZWZh dWx0JywKKyAgICAgICAgICAgICAgICAnYW1uYW1lJzogJ2J0cmVlJywKKyAgICAgICAgICAgICAg ICAnY29sdW1ucyc6IFsKKyAgICAgICAgICAgICAgICAgICAgeydjb2xuYW1lJzogJ2lkJywgJ3Nv cnRfb3JkZXInOiBGYWxzZSwgJ251bGxzJzogRmFsc2V9XX0KKyAgICAgICAgdXJsID0gJy9icm93 c2VyL2luZGV4L29iai8nCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhp cyBmdW5jdGlvbiB3aWxsIGFkZCBpbmRleCB0byBleGlzdGluZyB0YWJsZSBjb2x1bW4uIiIiCi0g ICAgICAgIHNlbGYuaW5kZXhfbmFtZSA9ICJ0ZXN0X2luZGV4X2FkZF8lcyIgJSAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKLSAgICAgICAgZGF0YSA9IHsibmFtZSI6IHNlbGYuaW5kZXhfbmFtZSwK LSAgICAgICAgICAgICAgICAic3BjbmFtZSI6ICJwZ19kZWZhdWx0IiwKLSAgICAgICAgICAgICAg ICAiYW1uYW1lIjogImJ0cmVlIiwKLSAgICAgICAgICAgICAgICAiY29sdW1ucyI6IFsKLSAgICAg ICAgICAgICAgICAgICAgeyJjb2xuYW1lIjogImlkIiwgInNvcnRfb3JkZXIiOiBGYWxzZSwgIm51 bGxzIjogRmFsc2V9XX0KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAotICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKLSAg ICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoc2VsZi50YWJs ZV9pZCkgKyAnLycsCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9zdCgKKyAgICAg ICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBz dHIoc2NoZW1hX2lkKSArICcvJyArIHN0cih0YWJsZV9pZCkgKyAnLycsCiAgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDAp CiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0 YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVy dF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNf ZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAn aW5kZXgnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5pbmRleCcsCisgICAgICAgICAgICBG YWxzZSwKKyAgICAgICAgICAgICdpY29uLWluZGV4JywKKyAgICAgICAgICAgIGluZGV4X25hbWUK KyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRl eGVzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19kZWxl dGUucHkKaW5kZXggYWUyNzgzMzguLjdjYTIxMTkyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5k ZXhlcy90ZXN0cy90ZXN0X2luZGV4ZXNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVz L3Rlc3RzL3Rlc3RfaW5kZXhlc19kZWxldGUucHkKQEAgLTksNzQgKzksNzcgQEAKIAogaW1wb3J0 IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGFibGVzLmNvbHVtbi4gXAogICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBjb2x1bW5zX3V0aWxz CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0 aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGlt cG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9k ZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jl c3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBpbmRleGVzX3V0aWxz CiAKIAotY2xhc3MgSW5kZXhlc0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICAiIiJUaGlzIGNsYXNzIHdpbGwgZGVsZXRlIHRoZSBleGlzdGluZyBpbmRleCBvZiBjb2x1bW4u IiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0ZSBpbmRleCBOb2RlIFVSTCcs IGRpY3QodXJsPScvYnJvd3Nlci9pbmRleC9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdEluZGV4 ZXNEZWxldGU6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNl X2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3N5bm9ueW1fZGVsZXRlKHNlbGYsIGNvbnRleHRf b2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgSW5kZXggREVMRVRFIHJl cXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0 dXMKKyAgICAgICAgIiIiCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sn dGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXIn XQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1h dGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBh cmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1h X2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNj aGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lk KQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQg YSB0YWJsZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFf aWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1l Il0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFz KHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFt ZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2Rh dGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAg ICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVt YV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3Bv bnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQotICAg ICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCi0g ICAgICAgIHNlbGYuY29sdW1uX25hbWUgPSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNvbHVtbnNfdXRp bHMuY3JlYXRlX2NvbHVtbihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuY29sdW1uX25hbWUpCi0gICAgICAgIHNlbGYuaW5kZXhfbmFtZSA9ICJ0 ZXN0X2luZGV4X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAg c2VsZi5pbmRleF9pZCA9IGluZGV4ZXNfdXRpbHMuY3JlYXRlX2luZGV4KHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmRleF9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2x1bW5f bmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNj aGVtYSB0byBhZGQgYSB0YWJsZS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3RhYmxlX2NvbHVt bl8lcycgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgY29sdW1u X25hbWUgPSAndGVzdF9jb2x1bW5fZGVsZXRlXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQorICAgICAgICBjb2x1bW5zX3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VydmVyLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGFibGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbHVtbl9uYW1lKQorICAgICAgICBpbmRleF9uYW1lID0gJ3Rlc3RfaW5kZXhfZGVsZXRlXyVz JyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBpbmRleF9pZCA9IGluZGV4ZXNf dXRpbHMuY3JlYXRlX2luZGV4KHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X25hbWUsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uX25hbWUpCiAKLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBpbmRl eCBvZiBleGlzdGluZyBjb2x1bW4uIiIiCi0gICAgICAgIGluZGV4X3Jlc3BvbnNlID0gaW5kZXhl c191dGlscy52ZXJpZnlfaW5kZXgoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluZGV4X25h bWUpCisgICAgICAgIGluZGV4X3Jlc3BvbnNlID0gaW5kZXhlc191dGlscy52ZXJpZnlfaW5kZXgo c2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluZGV4X25hbWUpCiAgICAgICAgIGlmIG5vdCBpbmRleF9yZXNwb25zZToK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIGluZGV4IHRv IGRlbGV0ZS4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZShzZWxmLnVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAn LycgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi50YWJs ZV9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIo c2VsZi5pbmRleF9pZCksCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBm aW5kIHRoZSBpbmRleCB0byBkZWxldGUuJykKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvaW5k ZXgvb2JqLycKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5kZWxldGUodXJsICsgc3Ry KHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzdHIoc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHN0cih0YWJsZV9pZCkgKyAnLycgKworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoaW5kZXhfaWQpLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVh ckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAg ZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdp bmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnSW5kZXggaXMgZHJvcHBl ZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykg PiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3Vs dCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvaW5kZXhlcy90ZXN0cy90ZXN0X2luZGV4ZXNfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4 ZXMvdGVzdHMvdGVzdF9pbmRleGVzX2dldC5weQppbmRleCAzY2ZkNzUwOC4uY2ZlMDQ2OWUgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19nZXQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX2dldC5weQpAQCAtOSw2OSAr OSwxMDEgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLmNvbHVtbi4gXAogICAgIHRlc3RzIGltcG9ydCB1dGls cyBhcyBjb2x1bW5zX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMg YXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9u IGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVy IGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGls cyBhcyBpbmRleGVzX3V0aWxzCiAKIAotY2xhc3MgSW5kZXhlc0dldFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggdGhlIGV4aXN0aW5nIGlu ZGV4IG9mIGNvbHVtbi4iIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRmV0Y2ggaW5k ZXggTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvaW5kZXgvb2JqLycpKQotICAgIF0KK2Ns YXNzIFRlc3RJbmRleGVzR2V0OgorICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWly ZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF9pbmRleF9nZXQoc2VsZiwgY29u dGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBpbmRleCBHRVQg cmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0 YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3Rz Wyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9y bWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0g cGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0g c2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29u bmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFk ZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVt YV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25h bWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVt YXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9u YW1lID0gc2VydmVyX2RhdGFbImRiX25hbWUiXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJf ZGF0YVsic2VydmVyX2lkIl0KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsiZGJfaWQiXQor ICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsic2NoZW1hX2lkIl0KKyAgICAgICAgc2No ZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9u YW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFkZCBhIHRhYmxlLiIpCi0g ICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkK LSAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSA9ICJ0ZXN0X2NvbHVtbl9kZWxldGVfJXMiICUgKHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYuY29sdW1uX2lkID0gY29sdW1uc191 dGlscy5jcmVhdGVfY29sdW1uKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKLSAgICAgICAgc2VsZi5pbmRleF9uYW1lID0g InRlc3RfaW5kZXhfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLmluZGV4X2lkID0gaW5kZXhlc191dGlscy5jcmVhdGVfaW5kZXgoc2VsZi5zZXJ2ZXIs IHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluZGV4X25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbHVt bl9uYW1lKQorICAgICAgICB0YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmxlX25hbWUpCisgICAgICAgIGNvbHVtbl9uYW1lID0gInRlc3RfY29sdW1uX2RlbGV0 ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgY29sdW1uc191dGlscy5j cmVhdGVfY29sdW1uKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5fbmFtZSkKKyAgICAgICAgaW5k ZXhfbmFtZSA9ICJ0ZXN0X2luZGV4X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKKyAgICAgICAgaW5kZXhfaWQgPSBpbmRleGVzX3V0aWxzLmNyZWF0ZV9pbmRleChzZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4 X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29s dW1uX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB3aWxsIGZldGNoIHRoZSBleGlzdGluZyBjb2x1bW4gaW5kZXguIiIiCi0gICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0 fS97NX0vezZ9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYudGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluZGV4X2lkKSwKKyAgICAgICAgdXJsID0g Jy9icm93c2VyL2luZGV4L29iai8nCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0 KAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQodXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLCB0YWJsZV9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4X2lkKSwKICAgICAgICAgICAg IGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9u c2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBy ZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZG5hdHRzJykgPiBzaG91bGQuYmUu ZXF1YWwudG8oMSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnY29u b2lkJykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdpbmRpc3ByaW1hcnknKSA+IHNob3VsZC5iZS5mYWxzZQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb2xzJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgndGFibmFtZScpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAg ICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnaW5ka2V5JykgPiBzaG91bGQuYmUuZXF1YWwudG8oJzQnKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmRpc2NsdXN0ZXJlZCcpID4gc2hvdWxkLmJlLmZhbHNl CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbmRlZmVycmVkJykg PiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdhbW5hbWUnKSA+IHNob3VsZC5iZS5lcXVhbC50bygnYnRyZWUnKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb250eXBlJykgPiBzaG91bGQuYmUubm9uZQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmRyZWxpZCcpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAgICAgIGpzb25fcmVz cG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2lzX3N5c19pZHgnKSA+IHNob3VsZC5iZS5mYWxzZQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkZXNjcmlwdGlvbicpID4g c2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn bnNwbmFtZScpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgc2NoZW1hX25hbWUp CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2NvbmRlZmVycmFibGUn KSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ3NwY25hbWUnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdu YW1lJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICBpbmRleF9uYW1lKQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmRjbGFzcycpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZGlzdmFsaWQnKSA+IHNob3VsZC5i ZS50cnVlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZGNvbnN0 cmFpbnQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ2luZGlzdW5pcXVlJykgPiBzaG91bGQuYmUuZmFsc2UKKyAgICAgICAganNvbl9y ZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZmlsbGZhY3RvcicpID4gc2hvdWxkLmJlLm5vbmUK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3Bjb2lkJykKKworICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb2x1bW5zJykgPiBzaG91bGQu aGF2ZS5sZW5ndGgoMSkKKyAgICAgICAganNvbl9yZXNwb25zZVsnY29sdW1ucyddWzBdIHwgc2hv dWxkLmhhdmUua2V5KCdvcF9jbGFzcycpID4gc2hvdWxkLmJlIFwKKyAgICAgICAgICAgIC5ub25l CisgICAgICAgIGpzb25fcmVzcG9uc2VbJ2NvbHVtbnMnXVswXSB8IHNob3VsZC5oYXZlLmtleSgn Y29sbmFtZScpID4gc2hvdWxkLmJlIFwKKyAgICAgICAgICAgIC5lcXVhbC50byhjb2x1bW5fbmFt ZSkKKyAgICAgICAganNvbl9yZXNwb25zZVsnY29sdW1ucyddWzBdIHwgc2hvdWxkLmhhdmUua2V5 KCdjb2xsc3BjbmFtZScpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvaW5kZXhlcy90ZXN0cy90ZXN0 X2luZGV4ZXNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVzdHMvdGVzdF9pbmRleGVzX3B1 dC5weQppbmRleCA2YzJjNzlkNi4uOWQ1MzVlMjkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRl eGVzL3Rlc3RzL3Rlc3RfaW5kZXhlc19wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvdGVz dHMvdGVzdF9pbmRleGVzX3B1dC5weQpAQCAtMTAsNzYgKzEwLDgyIEBACiBpbXBvcnQganNvbgog aW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAor CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNj aGVtYXMudGFibGVzLmNvbHVtbi4gXAogICAgIHRlc3RzIGltcG9ydCB1dGlscyBhcyBjb2x1bW5z X3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0 aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1w b3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSwgXAorICAgIGNvbnZlcnRfcmVzcG9uc2VfdG9f anNvbgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGluZGV4ZXNfdXRpbHMKIAogCi1jbGFz cyBJbmRleGVzVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCB1cGRhdGUgdGhlIGV4aXN0aW5nIGluZGV4IG9mIGNvbHVtbi4iIiIKLSAgICBz Y2VuYXJpb3MgPSBbCi0gICAgICAgICgnUHV0IGluZGV4IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9i cm93c2VyL2luZGV4L29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0SW5kZXhlc1VwZGF0ZToKKyAg ICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicp CisgICAgZGVmIHRlc3RfaW5kZXhfdXBkYXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgaW5kZXggUFVUIHJlcXVlc3QgaXMgc2VuZCB0byB0 aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisg ICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAg ICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJf ZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9k ZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5m b1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJd Ci0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwg dXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3Qg ZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBhZGQgYSB0YWJsZS4iKQotICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxm LnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1h X3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydk Yl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisg ICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0g c2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2Rh dGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90 IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnRhYmxlX25h bWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNlbGYuY29sdW1u X25hbWUgPSAidGVzdF9jb2x1bW5fZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBzZWxmLmNvbHVtbl9pZCA9IGNvbHVtbnNfdXRpbHMuY3JlYXRlX2NvbHVtbihz ZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29s dW1uX25hbWUpCi0gICAgICAgIHNlbGYuaW5kZXhfbmFtZSA9ICJ0ZXN0X2luZGV4X2RlbGV0ZV8l cyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5pbmRleF9pZCA9IGlu ZGV4ZXNfdXRpbHMuY3JlYXRlX2luZGV4KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5pbmRleF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2x1bW5fbmFtZSkKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbignQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0YWJs ZS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3RhYmxlX2NvbHVtbl8lcycgJSAoc3RyKHV1aWQu dXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3Rh YmxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgY29sdW1uX25hbWUgPSAndGVzdF9jb2x1 bW5fZGVsZXRlXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBjb2x1bW5z X3V0aWxzLmNyZWF0ZV9jb2x1bW4oc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj aGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbl9uYW1lKQorICAg ICAgICBpbmRleF9uYW1lID0gJ3Rlc3RfaW5kZXhfZGVsZXRlXyVzJyAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKQorICAgICAgICBpbmRleF9pZCA9IGluZGV4ZXNfdXRpbHMuY3JlYXRlX2luZGV4 KHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluZGV4X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY29sdW1uX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgaW5kZXggb2YgZXhpc3Rpbmcg Y29sdW1uLiIiIgotICAgICAgICBpbmRleF9yZXNwb25zZSA9IGluZGV4ZXNfdXRpbHMudmVyaWZ5 X2luZGV4KHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pbmRleF9uYW1lKQorICAgICAgICBp bmRleF9yZXNwb25zZSA9IGluZGV4ZXNfdXRpbHMudmVyaWZ5X2luZGV4KHNlcnZlciwgZGJfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp bmRleF9uYW1lKQogICAgICAgICBpZiBub3QgaW5kZXhfcmVzcG9uc2U6Ci0gICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBpbmRleCB0byB1cGRhdGUuIikKLSAg ICAgICAgZGF0YSA9IHsib2lkIjogc2VsZi5pbmRleF9pZCwKLSAgICAgICAgICAgICAgICAiZGVz Y3JpcHRpb24iOiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQgZm9yIGluZGV4In0KLSAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9 L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaW5kZXhfaWQpLAorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgaW5kZXggdG8gdXBkYXRlLicpCisKKyAg ICAgICAgZGF0YSA9IHsnb2lkJzogaW5kZXhfaWQsCisgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0 aW9uJzogJ1RoaXMgaXMgdGVzdCBjb21tZW50IGZvciBpbmRleCd9CisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9pbmRleC9vYmovJworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgK KyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRp bHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleF9pZCksCiAgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAK LSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBz aG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9y ZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJv bV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAnaW5k ZXgnLAorICAgICAgICAgICAgJ3BnYWRtaW4ubm9kZS5pbmRleCcsCisgICAgICAgICAgICBGYWxz ZSwKKyAgICAgICAgICAgICdpY29uLWluZGV4JywKKyAgICAgICAgICAgIGluZGV4X25hbWUKKyAg ICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3BhcnRpdGlvbnMvdGVzdHMvdGVzdF9iYWNr ZW5kX3N1cHBvcnRlZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9wYXJ0aXRpb25zL3Rlc3RzL3Rlc3RfYmFja2Vu ZF9zdXBwb3J0ZWQucHkKaW5kZXggYTQzMzViNDEuLjZjMmZmMmEwIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvcGFydGl0aW9ucy90ZXN0cy90ZXN0X2JhY2tlbmRfc3VwcG9ydGVkLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9wYXJ0aXRpb25zL3Rlc3RzL3Rlc3RfYmFja2VuZF9zdXBwb3J0ZWQucHkKQEAgLTks OSArOSwxMCBAQAogCiBpbXBvcnQgc3lzCiAKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuXAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLiBcCiAgICAgcGFydGl0aW9ucyBpbXBvcnQgUGFydGl0 aW9uc01vZHVsZQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBpbXBv cnQgcGF0Y2gsIE1vY2ssIGNhbGwKQEAgLTE5LDc5ICsyMCwxMTAgQEAgZWxzZToKICAgICBmcm9t IHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoLCBNb2NrLCBjYWxsCiAKIAotY2xhc3MgVGVzdEJh Y2tlbmRTdXBwb3J0KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAg ICAgICgnd2hlbiB0aWQgaXMgbm90IHByZXNlbnQgaW4gYXJndW1lbnRzLCBzaG91bGQgcmV0dXJu IE5vbmUgYW5kIG5vICcKLSAgICAgICAgICdxdWVyeSBzaG91bGQgYmUgZG9uZScsCi0gICAgICAg ICBkaWN0KAotICAgICAgICAgICAgIG1hbmFnZXI9ZGljdCgKLSAgICAgICAgICAgICAgICAgc2Vy dmVyX3R5cGU9IiIsCi0gICAgICAgICAgICAgICAgIHZlcnNpb249IiIKLSAgICAgICAgICAgICAp LAotICAgICAgICAgICAgIGlucHV0X2FyZ3VtZW50cz1kaWN0KGRpZD00MzIpLAotCi0gICAgICAg ICAgICAgY29sbGVjdGlvbl9ub2RlX2FjdGl2ZT1UcnVlLAotICAgICAgICAgICAgIGNvbm5lY3Rp b25fZXhlY3V0aW9uX3JldHVybl92YWx1ZT1bXSwKLQotICAgICAgICAgICAgIGV4cGVjdGVkX3Jl dHVybl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdF9lcnJvcl9yZXNwb25zZT1GYWxz ZSwKLSAgICAgICAgICAgICBleHBlY3RlZF9udW1iZXJfY2FsbHNfb25fcmVuZGVyX3RlbXBsYXRl PTAKLSAgICAgICAgICkpLAotICAgICAgICAoJ3doZW4gdGlkIGlzIHByZXNlbnQgaW4gYXJndW1l bnRzIGFuZCBDb2xsZWN0aW9uTm9kZU1vZHVsZSBkb2VzICcKLSAgICAgICAgICdub3Qgc3VwcG9y dCwgc2hvdWxkIHJldHVybiBOb25lIGFuZCBubyBxdWVyeSBzaG91bGQgYmUgZG9uZScsCi0gICAg ICAgICBkaWN0KAotICAgICAgICAgICAgIG1hbmFnZXI9ZGljdCgKLSAgICAgICAgICAgICAgICAg c2VydmVyX3R5cGU9IiIsCi0gICAgICAgICAgICAgICAgIHZlcnNpb249IiIKLSAgICAgICAgICAg ICApLAotICAgICAgICAgICAgIGlucHV0X2FyZ3VtZW50cz1kaWN0KGRpZD00MzIsIHRpZD0xMjMp LAotCi0gICAgICAgICAgICAgY29sbGVjdGlvbl9ub2RlX2FjdGl2ZT1GYWxzZSwKLSAgICAgICAg ICAgICBjb25uZWN0aW9uX2V4ZWN1dGlvbl9yZXR1cm5fdmFsdWU9W10sCi0KLSAgICAgICAgICAg ICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RfZXJyb3Jf cmVzcG9uc2U9RmFsc2UsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbnVtYmVyX2NhbGxzX29uX3Jl bmRlcl90ZW1wbGF0ZT0wCi0gICAgICAgICApKSwKLSAgICAgICAgKCd3aGVuIHRhYmxlIGlzIHBh cnRpdGlvbmVkLCAnCi0gICAgICAgICAnc2hvdWxkIHJldHVybiB0aGUgdGFibGUgaWRlbnRpZmll cicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIG1hbmFnZXI9ZGljdCgKLSAgICAgICAg ICAgICAgICAgc2VydmVyX3R5cGU9ImdwZGIiLAotICAgICAgICAgICAgICAgICB2ZXJzaW9uPSI1 IgotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgaW5wdXRfYXJndW1lbnRzPWRpY3QoZGlk PTQzMiwgdGlkPTEyMyksCi0KLSAgICAgICAgICAgICBjb2xsZWN0aW9uX25vZGVfYWN0aXZlPVRy dWUsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9leGVjdXRpb25fcmV0dXJuX3ZhbHVlPVtUcnVl LCAxMjNdLAotCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPTEyMywKLSAgICAg ICAgICAgICBleHBlY3RfZXJyb3JfcmVzcG9uc2U9RmFsc2UsCi0gICAgICAgICAgICAgZXhwZWN0 ZWRfbnVtYmVyX2NhbGxzX29uX3JlbmRlcl90ZW1wbGF0ZT0xLAotICAgICAgICAgICAgIGV4cGVj dF9yZW5kZXJfdGVtcGxhdGVfdG9fYmVfY2FsbGVkX3dpdGg9Y2FsbCgKLSAgICAgICAgICAgICAg ICAgJ3BhcnRpdGlvbi9zcWwvZ3BkYi8jZ3BkYiM1Iy9iYWNrZW5kX3N1cHBvcnQuc3FsJywgdGlk PTEyMwotICAgICAgICAgICAgICkKLSAgICAgICAgICkpLAotICAgICAgICAoJ3doZW4gZXJyb3Ig aGFwcGVucyB3aGlsZSBxdWVyeWluZyB0aGUgZGF0YWJhc2UsICcKLSAgICAgICAgICdzaG91bGQg cmV0dXJuIGFuIGludGVybmFsIHNlcnZlciBlcnJvcicsCi0gICAgICAgICBkaWN0KAotICAgICAg ICAgICAgIG1hbmFnZXI9ZGljdCgKLSAgICAgICAgICAgICAgICAgc2VydmVyX3R5cGU9InBnIiwK LSAgICAgICAgICAgICAgICAgdmVyc2lvbj0iMTAiCi0gICAgICAgICAgICAgKSwKLSAgICAgICAg ICAgICBpbnB1dF9hcmd1bWVudHM9ZGljdChkaWQ9NDMyLCB0aWQ9MTIzKSwKLQotICAgICAgICAg ICAgIGNvbGxlY3Rpb25fbm9kZV9hY3RpdmU9VHJ1ZSwKLSAgICAgICAgICAgICBjb25uZWN0aW9u X2V4ZWN1dGlvbl9yZXR1cm5fdmFsdWU9W0ZhbHNlLCAiU29tZSB1Z2x5IGVycm9yIl0sCi0KLSAg ICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICBleHBl Y3RfZXJyb3JfcmVzcG9uc2U9VHJ1ZSwKLSAgICAgICAgICAgICBleHBlY3RlZF9udW1iZXJfY2Fs bHNfb25fcmVuZGVyX3RlbXBsYXRlPTEsCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1w bGF0ZV90b19iZV9jYWxsZWRfd2l0aD1jYWxsKAotICAgICAgICAgICAgICAgICAncGFydGl0aW9u L3NxbC9wZy8jcGcjMTAjL2JhY2tlbmRfc3VwcG9ydC5zcWwnLCB0aWQ9MTIzCi0gICAgICAgICAg ICAgKQotICAgICAgICAgKSkKLSAgICBdCitjbGFzcyBUZXN0QmFja2VuZFN1cHBvcnQ6CisgICAg QHBhdGNoKAorICAgICAgICAncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuJworICAgICAgICAncGFydGl0aW9ucy5Db2xsZWN0aW9u Tm9kZU1vZHVsZScKKyAgICApCisgICAgQHBhdGNoKAorICAgICAgICAncGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuJworICAgICAg ICAncGFydGl0aW9ucy5yZW5kZXJfdGVtcGxhdGUnCisgICAgKQorICAgIGRlZiB0ZXN0X25vdF9h bGxfYXJndW1lbnRzX3ByZXNlbnQoCisgICAgICAgIHNlbGYsIHJlbmRlcl90ZW1wbGF0ZV9tb2Nr LCBDb2xsZWN0aW9uTm9kZU1vZHVsZV9tb2NrCisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gdGlkIGlzIG5vdCBwcmVzZW50IGluIHRoZSBhcmd1bWVudHMKKyAgICAgICAgSXQgcmV0 dXJuIE5vbmUgYW5kIG5vIHF1ZXJ5IHNob3VsZCBiZSBkb25lCisgICAgICAgICIiIgorICAgICAg ICBtb2R1bGUgPSBQYXJ0aXRpb25zTW9kdWxlKCdwYXJ0aXRpb24nKQorICAgICAgICBtb2R1bGUu bWFuYWdlciA9IE1vY2soKQorICAgICAgICBtb2R1bGUubWFuYWdlci5zZXJ2ZXJfdHlwZSA9ICcn CisgICAgICAgIG1vZHVsZS5tYW5hZ2VyLnZlcnNpb24gPSAnJworICAgICAgICBjb25uZWN0aW9u X21vY2sgPSBNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbl9tb2NrLmV4ZWN1dGVfc2NhbGFyLnJl dHVybl92YWx1ZSA9IFtdCisgICAgICAgIG1vZHVsZS5tYW5hZ2VyLmNvbm5lY3Rpb24ucmV0dXJu X3ZhbHVlID0gY29ubmVjdGlvbl9tb2NrCisgICAgICAgIENvbGxlY3Rpb25Ob2RlTW9kdWxlX21v Y2suQmFja2VuZFN1cHBvcnRlZC5yZXR1cm5fdmFsdWUgPSBUcnVlCisKKyAgICAgICAgcmVzdWx0 ID0gbW9kdWxlLkJhY2tlbmRTdXBwb3J0ZWQoCisgICAgICAgICAgICBtb2R1bGUubWFuYWdlciwK KyAgICAgICAgICAgIGRpZD00MzIKKyAgICAgICAgKQorCisgICAgICAgIHJlbmRlcl90ZW1wbGF0 ZV9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUu bm9uZQorCisgICAgQHBhdGNoKAorICAgICAgICAncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuJworICAgICAgICAncGFydGl0aW9u cy5Db2xsZWN0aW9uTm9kZU1vZHVsZScKKyAgICApCisgICAgQHBhdGNoKAorICAgICAgICAncGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJs ZXMuJworICAgICAgICAncGFydGl0aW9ucy5yZW5kZXJfdGVtcGxhdGUnCisgICAgKQorICAgIGRl ZiB0ZXN0X3RpZF9wcmVzZW50X25vdF9zdXBwb3J0ZWQoCisgICAgICAgIHNlbGYsIHJlbmRlcl90 ZW1wbGF0ZV9tb2NrLCBDb2xsZWN0aW9uTm9kZU1vZHVsZV9tb2NrCisgICAgKToKKyAgICAgICAg IiIiCisgICAgICAgIHdoZW4gdGlkIGlzIHByZXNlbnQgaW4gYXJndW1lbnRzCisgICAgICAgIEFu ZCBDb2xsZWN0aW9uTm9kZU1vZHVsZSBkb2VzIG5vdCBzdXBwb3J0CisgICAgICAgIEl0IHJldHVy biBOb25lIGFuZCBubyBxdWVyeSBzaG91bGQgYmUgZG9uZQorICAgICAgICAiIiIKKyAgICAgICAg bW9kdWxlID0gUGFydGl0aW9uc01vZHVsZSgncGFydGl0aW9uJykKKyAgICAgICAgbW9kdWxlLm1h bmFnZXIgPSBNb2NrKCkKKyAgICAgICAgbW9kdWxlLm1hbmFnZXIuc2VydmVyX3R5cGUgPSAnJwor ICAgICAgICBtb2R1bGUubWFuYWdlci52ZXJzaW9uID0gJycKKyAgICAgICAgY29ubmVjdGlvbl9t b2NrID0gTW9jaygpCisgICAgICAgIGNvbm5lY3Rpb25fbW9jay5leGVjdXRlX3NjYWxhci5yZXR1 cm5fdmFsdWUgPSBbXQorICAgICAgICBtb2R1bGUubWFuYWdlci5jb25uZWN0aW9uLnJldHVybl92 YWx1ZSA9IGNvbm5lY3Rpb25fbW9jaworICAgICAgICBDb2xsZWN0aW9uTm9kZU1vZHVsZV9tb2Nr LkJhY2tlbmRTdXBwb3J0ZWQucmV0dXJuX3ZhbHVlID0gRmFsc2UKKworICAgICAgICByZXN1bHQg PSBtb2R1bGUuQmFja2VuZFN1cHBvcnRlZCgKKyAgICAgICAgICAgIG1vZHVsZS5tYW5hZ2VyLAor ICAgICAgICAgICAgZGlkPTQzMiwKKyAgICAgICAgICAgIHRpZD0xMjMKKyAgICAgICAgKQorCisg ICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKworICAgICAg ICByZXN1bHQgfCBzaG91bGQuYmUubm9uZQorCisgICAgQHBhdGNoKAorICAgICAgICAncGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMu JworICAgICAgICAncGFydGl0aW9ucy5Db2xsZWN0aW9uTm9kZU1vZHVsZScKKyAgICApCisgICAg QHBhdGNoKAorICAgICAgICAncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuJworICAgICAgICAncGFydGl0aW9ucy5yZW5kZXJfdGVt cGxhdGUnCisgICAgKQorICAgIGRlZiB0ZXN0X3RhYmxlX3BhcnRpdGlvbmVkKAorICAgICAgICBz ZWxmLCByZW5kZXJfdGVtcGxhdGVfbW9jaywgQ29sbGVjdGlvbk5vZGVNb2R1bGVfbW9jaworICAg ICk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRhYmxlIGlzIHBhcnRpdGlvbmVkCisgICAg ICAgIEl0IHJldHVybiB0aGUgdGFibGUgaWRlbnRpZmllcgorICAgICAgICAiIiIKKyAgICAgICAg bW9kdWxlID0gUGFydGl0aW9uc01vZHVsZSgncGFydGl0aW9uJykKKyAgICAgICAgbW9kdWxlLm1h bmFnZXIgPSBNb2NrKCkKKyAgICAgICAgbW9kdWxlLm1hbmFnZXIuc2VydmVyX3R5cGUgPSAnZ3Bk YicKKyAgICAgICAgbW9kdWxlLm1hbmFnZXIudmVyc2lvbiA9ICc1JworICAgICAgICBjb25uZWN0 aW9uX21vY2sgPSBNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbl9tb2NrLmV4ZWN1dGVfc2NhbGFy LnJldHVybl92YWx1ZSA9IFtUcnVlLCAxMjNdCisgICAgICAgIG1vZHVsZS5tYW5hZ2VyLmNvbm5l Y3Rpb24ucmV0dXJuX3ZhbHVlID0gY29ubmVjdGlvbl9tb2NrCisgICAgICAgIENvbGxlY3Rpb25O b2RlTW9kdWxlX21vY2suQmFja2VuZFN1cHBvcnRlZC5yZXR1cm5fdmFsdWUgPSBUcnVlCisKKyAg ICAgICAgcmVzdWx0ID0gbW9kdWxlLkJhY2tlbmRTdXBwb3J0ZWQoCisgICAgICAgICAgICBtb2R1 bGUubWFuYWdlciwKKyAgICAgICAgICAgIGRpZD00MzIsCisgICAgICAgICAgICB0aWQ9MTIzCisg ICAgICAgICkKKworICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfaGFzX2NhbGxz KAorICAgICAgICAgICAgW2NhbGwoJ3BhcnRpdGlvbi9zcWwvZ3BkYi8jZ3BkYiM1Iy9iYWNrZW5k X3N1cHBvcnQuc3FsJywgdGlkPTEyMyldCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBz aG91bGQuYmUuZXF1YWwudG8oMTIzKQogCiAgICAgQHBhdGNoKAogICAgICAgICAncGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMuJwpA QCAtMTA1LDM1ICsxMzcsMzUgQEAgY2xhc3MgVGVzdEJhY2tlbmRTdXBwb3J0KEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLicKICAgICAgICAgJ3BhcnRpdGlvbnMucmVuZGVyX3Rl bXBsYXRlJwogICAgICkKLSAgICBkZWYgcnVuVGVzdCgKKyAgICBkZWYgdGVzdF9lcnJvcl93aGls ZV9xdWVyeWluZ19kYXRhYmFzZSgKICAgICAgICAgc2VsZiwgcmVuZGVyX3RlbXBsYXRlX21vY2ss IENvbGxlY3Rpb25Ob2RlTW9kdWxlX21vY2ssCiAgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJv cl9tb2NrCiAgICAgKToKLSAgICAgICAgbW9kdWxlID0gUGFydGl0aW9uc01vZHVsZSgicGFydGl0 aW9uIikKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gZXJyb3IgaGFwcGVucyB3aGlsZSBxdWVy eWluZyB0aGUgZGF0YWJhc2UKKyAgICAgICAgSXQgcmV0dXJuIGFuIGludGVybmFsIHNlcnZlciBl cnJvcgorICAgICAgICAiIiIKKyAgICAgICAgbW9kdWxlID0gUGFydGl0aW9uc01vZHVsZSgncGFy dGl0aW9uJykKICAgICAgICAgbW9kdWxlLm1hbmFnZXIgPSBNb2NrKCkKLSAgICAgICAgbW9kdWxl Lm1hbmFnZXIuc2VydmVyX3R5cGUgPSBzZWxmLm1hbmFnZXJbJ3NlcnZlcl90eXBlJ10KLSAgICAg ICAgbW9kdWxlLm1hbmFnZXIudmVyc2lvbiA9IHNlbGYubWFuYWdlclsndmVyc2lvbiddCisgICAg ICAgIG1vZHVsZS5tYW5hZ2VyLnNlcnZlcl90eXBlID0gJ3BnJworICAgICAgICBtb2R1bGUubWFu YWdlci52ZXJzaW9uID0gJzEwJwogICAgICAgICBjb25uZWN0aW9uX21vY2sgPSBNb2NrKCkKLSAg ICAgICAgY29ubmVjdGlvbl9tb2NrLmV4ZWN1dGVfc2NhbGFyLnJldHVybl92YWx1ZSA9IFwKLSAg ICAgICAgICAgIHNlbGYuY29ubmVjdGlvbl9leGVjdXRpb25fcmV0dXJuX3ZhbHVlCisgICAgICAg IGNvbm5lY3Rpb25fbW9jay5leGVjdXRlX3NjYWxhci5yZXR1cm5fdmFsdWUgPSBbCisgICAgICAg ICAgICBGYWxzZSwKKyAgICAgICAgICAgICdTb21lIHVnbHkgZXJyb3InXQogICAgICAgICBtb2R1 bGUubWFuYWdlci5jb25uZWN0aW9uLnJldHVybl92YWx1ZSA9IGNvbm5lY3Rpb25fbW9jawotICAg ICAgICBDb2xsZWN0aW9uTm9kZU1vZHVsZV9tb2NrLkJhY2tlbmRTdXBwb3J0ZWQucmV0dXJuX3Zh bHVlID0gXAotICAgICAgICAgICAgc2VsZi5jb2xsZWN0aW9uX25vZGVfYWN0aXZlCisgICAgICAg IENvbGxlY3Rpb25Ob2RlTW9kdWxlX21vY2suQmFja2VuZFN1cHBvcnRlZC5yZXR1cm5fdmFsdWUg PSBUcnVlCiAKLSAgICAgICAgcmVzdWx0ID0gbW9kdWxlLkJhY2tlbmRTdXBwb3J0ZWQoCi0gICAg ICAgICAgICBtb2R1bGUubWFuYWdlciwgKipzZWxmLmlucHV0X2FyZ3VtZW50cworICAgICAgICBt b2R1bGUuQmFja2VuZFN1cHBvcnRlZCgKKyAgICAgICAgICAgIG1vZHVsZS5tYW5hZ2VyLAorICAg ICAgICAgICAgZGlkPTQzMiwKKyAgICAgICAgICAgIHRpZD0xMjMKICAgICAgICAgKQogCi0gICAg ICAgIGlmIHNlbGYuZXhwZWN0ZWRfbnVtYmVyX2NhbGxzX29uX3JlbmRlcl90ZW1wbGF0ZSA9PSAw OgotICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQot ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2suYXNzZXJ0X2hh c19jYWxscygKLSAgICAgICAgICAgICAgICBbc2VsZi5leHBlY3RfcmVuZGVyX3RlbXBsYXRlX3Rv X2JlX2NhbGxlZF93aXRoXQotICAgICAgICAgICAgKQotCi0gICAgICAgIGlmIHNlbGYuZXhwZWN0 X2Vycm9yX3Jlc3BvbnNlOgotICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2su YXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgICAgIGVycm9ybXNnPXNlbGYuY29ubmVj dGlvbl9leGVjdXRpb25fcmV0dXJuX3ZhbHVlWzFdCi0gICAgICAgICAgICApCi0gICAgICAgIGVs c2U6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3VsdCwgc2VsZi5leHBlY3RlZF9y ZXR1cm5fdmFsdWUpCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9oYXNfY2Fs bHMoCisgICAgICAgICAgICBbY2FsbCgncGFydGl0aW9uL3NxbC9wZy8jcGcjMTAjL2JhY2tlbmRf c3VwcG9ydC5zcWwnLCB0aWQ9MTIzKV0KKyAgICAgICAgKQorCisgICAgICAgIGludGVybmFsX3Nl cnZlcl9lcnJvcl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIGVycm9ybXNn PSdTb21lIHVnbHkgZXJyb3InCisgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxl cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy9fX2luaXRfXy5weQpp bmRleCBkMWYyZWNjMS4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0 cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvX19pbml0X18ucHkKQEAg LTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBSdWxlc1Rlc3RHZW5l cmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL3Rlc3RfcnVs ZXNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL3Rlc3RfcnVsZXNfYWRkLnB5CmluZGV4 IDM5NTU4NjBhLi45ZGNiMjY1ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3RzL3Rl c3RfcnVsZXNfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2Fk ZC5weQpAQCAtMTAsNjEgKzEwLDY2IEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAoraW1w b3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3Rz IFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwK ICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRh YmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRt aW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwK KyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgUnVs ZXNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxs IGFkZCBuZXcgcnVsZSB1bmRlciB0YWJsZSBub2RlLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAg ICAgICAgKCdBZGQgcnVsZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9ydWxlL29iai8n KSkKLSAgICBdCitjbGFzcyBUZXN0UnVsZXNBZGQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1 cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3J1bGVfYWRk KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUg cnVsZSBhZGQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVy bnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0 X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVz dHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAg ICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxm LmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2Vf dXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlIHRvIGFkZCBhIHJ1bGUuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5m b1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJz Y2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJp Znlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAg ICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9 IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydk Yl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAg ICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgcnVs ZS4iKQotICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBz Y2hlbWEgdG8gYWRkIGEgcnVsZS4nKQorICAgICAgICB0YWJsZV9uYW1lID0gJ3RhYmxlX2NvbHVt bl8lcycgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKIAotICAgIGRlZiBydW5U ZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgcnVsZSB1bmRlciB0YWJs ZSBub2RlLiIiIgotICAgICAgICBydWxlX25hbWUgPSAidGVzdF9ydWxlX2FkZF8lcyIgJSAoc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgZGF0YSA9IHsic2NoZW1hIjogc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgICAgICAidmlldyI6IHNlbGYudGFibGVfbmFtZSwKLSAgICAg ICAgICAgICAgICAibmFtZSI6IHJ1bGVfbmFtZSwKLSAgICAgICAgICAgICAgICAiZXZlbnQiOiAi VXBkYXRlIgorICAgICAgICBydWxlX25hbWUgPSAndGVzdF9ydWxlX2FkZF8lcycgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZGF0YSA9IHsnc2NoZW1hJzogc2NoZW1hX25hbWUs CisgICAgICAgICAgICAgICAgJ3ZpZXcnOiB0YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICdu YW1lJzogcnVsZV9uYW1lLAorICAgICAgICAgICAgICAgICdldmVudCc6ICdVcGRhdGUnCiAgICAg ICAgICAgICAgICAgfQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAg ICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMu U0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9pZCksCisgICAg ICAgIHVybCA9ICcvYnJvd3Nlci9ydWxlL29iai8nCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9j bGllbnQucG9zdCgKKyAgICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9LycuZm9ybWF0 KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQpLAogICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pz b24nCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25u ZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25zZS5z dGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisgICAgICAgIGpzb25fcmVzcG9u c2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2VydF9q c29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwKKyAg ICAgICAgICAgICdydWxlJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUucnVsZScsCisgICAg ICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLXJ1bGUnLAorICAgICAgICAgICAgcnVs ZV9uYW1lCisgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0 X3J1bGVzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2RlbGV0 ZS5weQppbmRleCAzOTgzMGZkMi4uOGZiMmM2NDUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxl cy90ZXN0cy90ZXN0X3J1bGVzX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMv dGVzdF9ydWxlc19kZWxldGUucHkKQEAgLTksNjUgKzksNjcgQEAKIAogaW1wb3J0IHV1aWQKIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRl c3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJv d3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0 IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBk YXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBn YWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24K IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBydWxlc191dGlscwogCiAKLWNsYXNzIFJ1bGVz RGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2ls bCBkZWxldGUgcnVsZSB1bmRlciB0YWJsZSBub2RlLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAg ICAgICAgKCdEZWxldGUgcnVsZSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci9ydWxlL29i ai8nKSkKLSAgICBdCitjbGFzcyBUZXN0UnVsZXNEZWxldGU6CisgICAgQHB5dGVzdC5tYXJrLnVz ZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3J1 bGVfZGVsZXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiB0aGUgcnVsZSBERUxFVEUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAg ICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgaHR0cF9jbGll bnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQot ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29u ID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JP VVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsi Y29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25u ZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBydWxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hl bWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVt YV9uYW1lKQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAg ICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBz ZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2No ZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUn XQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGRlbGV0ZSBydWxlLiIpCi0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1 bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQg PSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudGFibGVfbmFtZSkKLSAgICAgICAgc2VsZi5ydWxlX25hbWUgPSAidGVzdF9ydWxl X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi5ydWxl X2lkID0gcnVsZXNfdXRpbHMuY3JlYXRlX3J1bGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnJ1bGVfbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ291 bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcnVsZS4nKQorICAgICAgICB0YWJsZV9u YW1lID0gJ3RhYmxlX2NvbHVtbl8lcycgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAg ICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFt ZSkKKyAgICAgICAgcnVsZV9uYW1lID0gJ3Rlc3RfcnVsZV9kZWxldGVfJXMnICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHJ1bGVfaWQgPSBydWxlc191dGlscy5jcmVhdGVfcnVs ZShzZXJ2ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBydWxlX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgICAgIHJ1 bGVfcmVzcG9uc2UgPSBydWxlc191dGlscy52ZXJpZnlfcnVsZShzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5ydWxlX25hbWUpCisgICAgICAgIHJ1bGVfcmVzcG9uc2UgPSBydWxlc191dGlscy52ZXJp ZnlfcnVsZShzZXJ2ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBydWxlX25hbWUpCiAgICAgICAgIGlmIG5vdCBydWxlX3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcnVsZSB0 byBkZWxldGUuIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAg ICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZvcm1hdChzZWxmLnVybCwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50YWJsZV9p ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu cnVsZV9pZCksCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRo ZSBydWxlIHRvIGRlbGV0ZS4nKQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcnVsZS9vYmovJwor ICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmRlbGV0ZSgKKyAgICAgICAgICAgICd7MH17 MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lk LCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaGVtYV9pZCwgdGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBydWxlX2lkKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVj dCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3Rh dHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNl ID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAg ICAgICAgICAnUnVsZSBkcm9wcGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5o YXZlLmtleSgnZXJyb3Jtc2cnKSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgncmVzdWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8o MSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2dldC5weQppbmRleCAwMjUwZjA4Ny4u NTAzOTEwMDQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9ydWxlcy90ZXN0cy90ZXN0X3J1bGVzX2dl dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxlc19nZXQucHkKQEAgLTks NjEgKzksNzYgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMg dGFibGVzX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGlt cG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBh cyBydWxlc191dGlscwogCiAKLWNsYXNzIFJ1bGVzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCB0aGUgcnVsZSB1bmRlciB0YWJsZSBu b2RlLiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdGZXRjaCBydWxlIE5vZGUgVVJM JywgZGljdCh1cmw9Jy9icm93c2VyL3J1bGUvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RSdWxl c0dldDoKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29u bmVjdGlvbicpCisgICAgZGVmIHRlc3RfcnVsZV9nZXQoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBydWxlIEdFVCByZXF1ZXN0IGlzIHNlbmQg dG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIi IgorICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K KyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vy dmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAg ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1h X2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJf aWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNl bGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYg bm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHJ1bGUuIikKLSAg ICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0 YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQn XQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9p ZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZl cl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91 dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlm IG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHJ1bGUuIikKLSAgICAgICAgc2VsZi50YWJs ZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAg ICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLnJ1 bGVfbmFtZSA9ICJ0ZXN0X3J1bGVfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBzZWxmLnJ1bGVfaWQgPSBydWxlc191dGlscy5jcmVhdGVfcnVsZShzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucnVsZV9uYW1lKQorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBydWxl LicpCisKKyAgICAgICAgdGFibGVfbmFtZSA9ICd0YWJsZV9jb2x1bW5fJXMnICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90 YWJsZShzZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0YWJsZV9uYW1lKQorICAgICAgICBydWxlX25hbWUgPSAndGVzdF9ydWxlX2dldF8lcycgJSAo c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgcnVsZV9pZCA9IHJ1bGVzX3V0aWxzLmNy ZWF0ZV9ydWxlKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh YmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxl X25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlv biB3aWxsIGZldGNoIHRoZSBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97 NX0vezZ9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfaWQsIHNlbGYudGFibGVfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bGVfaWQpLAorICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvcnVsZS9vYmovJworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmdldCgKKyAg ICAgICAgICAgICd7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fScuZm9ybWF0KHVybCwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlX2lkKSwKICAgICAgICAgICAgIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAg ICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlz Y29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAg ICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAg ICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAg ICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdjb21tZW50JykgPiBzaG91bGQu YmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdkZWZpbml0 aW9uJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3RhdGVtZW50 cycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ05PVEhJTkc7JykKKyAgICAg ICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gc2hvdWxkLmJlLmVx dWFsLnRvKHJ1bGVfbmFtZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgncGFyZW50aXN0YWJsZScpID4gc2hvdWxkLmJlLnRydWUKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnZG9faW5zdGVhZCcpID4gc2hvdWxkLmJlLmZhbHNlCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2VuYWJsZWQnKSA+IHNob3VsZC5iZS50cnVlCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N5c3RlbV9ydWxlJykgPiBz aG91bGQuYmUuZmFsc2UKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn dmlldycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAg ICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXZlbnQnKSA+IHNob3VsZC5i ZS5lcXVhbC50bygnVXBkYXRlJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnY29uZGl0aW9uJykgPiBzaG91bGQuYmUuZXF1YWwudG8oJycpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NjaGVtYScpID4gc2hvdWxkLmJlLmVxdWFsLnRv KAorICAgICAgICAgICAgc2NoZW1hX25hbWUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMv dGVzdHMvdGVzdF9ydWxlc19wdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvcnVsZXMvdGVzdHMvdGVzdF9ydWxl c19wdXQucHkKaW5kZXggNGY4OWUyNTMuLjFhNDhhMDYzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv cnVsZXMvdGVzdHMvdGVzdF9ydWxlc19wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL3Rlc3Rz L3Rlc3RfcnVsZXNfcHV0LnB5CkBAIC0xMCw2OCArMTAsNzMgQEAKIGltcG9ydCBqc29uCiBpbXBv cnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50YWJsZXMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50 ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKK2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9u c2VfdG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK IGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgcnVsZXNfdXRpbHMKIAogCi1jbGFzcyBSdWxlc1VwZGF0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdXBk YXRlIHRoZSBydWxlIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoJ1B1dCBydWxlIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3J1bGUvb2JqLycp KQotICAgIF0KK2NsYXNzIFRlc3RSdWxlc1VwZGF0ZToKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4 dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRlc3RfcnVsZV91 cGRhdGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IHRoZSBydWxlIFBVVCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQg cmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICBodHRwX2NsaWVudCA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VydmVyID0gY29udGV4dF9v Zl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXJfaW5mb3JtYXRpb24nXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz ZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJd Ci0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAg IHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRh YmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl cl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0 ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g ZGF0YWJhc2UgdG8gZGVsZXRlIHJ1bGUuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hl bWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGls cy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUp CisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlcnZl cl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBkYl9pZCA9IHNlcnZlcl9k YXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQn XQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFtZSddCisgICAg ICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVs ZXRlIHJ1bGUuIikKLSAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxl c191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi50YWJsZV9uYW1lKQotICAgICAgICBzZWxmLnJ1bGVfbmFtZSA9ICJ0ZXN0X3J1bGVfZGVsZXRl XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnJ1bGVfaWQgPSBy dWxlc191dGlscy5jcmVhdGVfcnVsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRh YmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYucnVsZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDb3VsZCBub3Qg ZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBydWxlLicpCisgICAgICAgIHRhYmxlX25hbWUgPSAn dGFibGVfY29sdW1uXyVzJyAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJs ZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAg ICAgICBydWxlX25hbWUgPSAndGVzdF9ydWxlX2RlbGV0ZV8lcycgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKKyAgICAgICAgcnVsZV9pZCA9IHJ1bGVzX3V0aWxzLmNyZWF0ZV9ydWxlKHNlcnZl ciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNj aGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFi bGVfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVf bmFtZSkKKyAgICAgICAgcnVsZV9yZXNwb25zZSA9IHJ1bGVzX3V0aWxzLnZlcmlmeV9ydWxlKHNl cnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJ1bGVfbmFtZSkKKyAgICAgICAgaWYgbm90IHJ1bGVfcmVzcG9uc2U6CisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oJ0NvdWxkIG5vdCBmaW5kIHRoZSBydWxlIHRvIHVwZGF0ZS4n KQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2ls bCB1cGRhdGUgdGhlIHJ1bGUgdW5kZXIgdGFibGUgbm9kZS4iIiIKLSAgICAgICAgcnVsZV9yZXNw b25zZSA9IHJ1bGVzX3V0aWxzLnZlcmlmeV9ydWxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1 bGVfbmFtZSkKLSAgICAgICAgZGF0YSA9IHsiaWQiOiBzZWxmLnJ1bGVfaWQsCi0gICAgICAgICAg ICAgICAgImNvbW1lbnQiOiAiVGhpcyBpcyB0ZXN0aW5nIGNvbW1lbnQuIgorICAgICAgICBkYXRh ID0geydpZCc6IHJ1bGVfaWQsCisgICAgICAgICAgICAgICAgJ2NvbW1lbnQnOiAnVGhpcyBpcyB0 ZXN0aW5nIGNvbW1lbnQuJwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgaWYgbm90IHJ1bGVf cmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBydWxlIHRvIHVwZGF0ZS4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgK LSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHNlbGYudXJs LCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnRh YmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5ydWxlX2lkKSwKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3J1bGUvb2JqLycKKyAgICAg ICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wdXQoCisgICAgICAgICAgICAnezB9ezF9L3syfS97 M30vezR9L3s1fS97Nn0nLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFf aWQsIHRhYmxlX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnVsZV9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAg ICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0g ICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMu ZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAg ICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQor ICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpz b25fcmVzcG9uc2UsCisgICAgICAgICAgICAncnVsZScsCisgICAgICAgICAgICAncGdhZG1pbi5u b2RlLnJ1bGUnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNvbi1ydWxlJywK KyAgICAgICAgICAgIHJ1bGVfbmFtZQorICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL2ZvcmVpZ25fa2V5L3NxbC90ZXN0cy90ZXN0X2ZvcmVpZ25fa2V5X3Byb3BlcnRp ZXMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fa2V5L3NxbC90ZXN0cy90ZXN0X2Zv cmVpZ25fa2V5X3Byb3BlcnRpZXMucHkKaW5kZXggNTFhZjQyY2QuLmYwMjUzMTVmIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fa2V5L3NxbC90ZXN0cy90ZXN0X2ZvcmVp Z25fa2V5X3Byb3BlcnRpZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX2tl eS9zcWwvdGVzdHMvdGVzdF9mb3JlaWduX2tleV9wcm9wZXJ0aWVzLnB5CkBAIC0xMCwyOCArMTAs MjkgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxk CisKIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IERyaXZlclJlZ2lzdHJ5CiBmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxl X2FzX3RlbXBsYXRlCiAKIERyaXZlclJlZ2lzdHJ5LmxvYWRfZHJpdmVycygpCi1mcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIAogaWYgc3lzLnZlcnNpb25faW5m b1swXSA+PSAzOgogICAgIGxvbmcgPSBpbnQKIAogCi1jbGFzcyBUZXN0Q29sdW1uRm9yZWlnbktl eUdldENvbnN0cmFpbnRDb2xzKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgiVGVzdCBmb3JlaWduIGtleSBnZXQgY29uc3RyYWludCB3aXRoIG5vIGZvcmVp Z24ga2V5IHByb3BlcnRpZXMgb24iCi0gICAgICAgICAiIHRoZSBjb2x1bW4iLCBkaWN0KCkpCi0g ICAgXQorY2xhc3MgVGVzdENvbHVtbkZvcmVpZ25LZXlHZXRDb25zdHJhaW50Q29sczoKKyAgICBk ZWYgdGVzdF9jb2x1bW5fZm9yZWlnbl9rZXlzKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGVyZSBhcmUgbm8gZm9yZWlnbiBrZXkgcHJvcGVydGll cyBvbiB0aGUgY29sdW1uCisgICAgICAgIGl0IHJldHVybnMgYW4gZW1wdHkgcmVzdWx0CisgICAg ICAgICIiIgorCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCiAK LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFdoZW4gdGhlcmUgYXJlIG5vIGZv cmVpZ24ga2V5IHByb3BlcnRpZXMgb24gdGhlIGNvbHVtbiwgaXQgcmV0dXJucwotICAgICAgICBh biBlbXB0eSByZXN1bHQgIiIiCi0gICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFzZShzZWxm LnNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgotICAgICAgICAgICAgdGVz dF91dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIGRhdGFiYXNlX25hbWUsICJ0ZXN0X3Rh YmxlIikKKyAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlcnZlcikgYXMgKGNvbm5l Y3Rpb24sIGRhdGFiYXNlX25hbWUpOgorICAgICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGFi bGUoc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVzdF90YWJsZSIpCiAKICAgICAgICAgICAgIGN1 cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJT RUxFQ1QgcGdfY2xhc3Mub2lkIGFzIHRhYmxlX2lkLCAiCkBAIC00MywyMiArNDQsMjIgQEAgY2xh c3MgVGVzdENvbHVtbkZvcmVpZ25LZXlHZXRDb25zdHJhaW50Q29scyhCYXNlVGVzdEdlbmVyYXRv cik6CiAgICAgICAgICAgICB0YWJsZV9pZCwgY29sdW1uX2lkID0gY3Vyc29yLmZldGNob25lKCkK IAogICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgotICAg ICAgICAgICAgICAgIHNlbGYudmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCddCisgICAgICAg ICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9ICdkZWZhdWx0JwogICAgICAgICAgICAgZWxzZToK LSAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJzkuMV9wbHVzJ10KKyAg ICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gJzkuMV9wbHVzJwogCi0gICAgICAgICAg ICBmb3IgdmVyc2lvbiBpbiBzZWxmLnZlcnNpb25zX3RvX3Rlc3Q6Ci0gICAgICAgICAgICAgICAg dGVtcGxhdGVfZmlsZSA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICAgICAgb3MucGF0 aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAg InByb3BlcnRpZXMuc3FsIgotICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICB0ZW1w bGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAgIHRlbXBs YXRlX2ZpbGUgPSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1l KF9fZmlsZV9fKSwgIi4uIiwgdmVyc2lvbnNfdG9fdGVzdCwKKyAgICAgICAgICAgICAgICAicHJv cGVydGllcy5zcWwiCisgICAgICAgICAgICApCisgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVf YXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKIAotICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBs YXRlLnJlbmRlcigKLSAgICAgICAgICAgICAgICAgICAgdGlkPXRhYmxlX2lkLAotICAgICAgICAg ICAgICAgICAgICBjaWQ9Y29sdW1uX2lkKQorICAgICAgICAgICAgc3FsID0gdGVtcGxhdGUucmVu ZGVyKAorICAgICAgICAgICAgICAgIHRpZD10YWJsZV9pZCwKKyAgICAgICAgICAgICAgICBjaWQ9 Y29sdW1uX2lkKQorCisgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisg ICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCisgICAgICAgICAgICBmZXRjaF9yZXN1bHQg PSBjdXJzb3IuZmV0Y2hhbGwoKQogCi0gICAgICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlv bi5jdXJzb3IoKQotICAgICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkKLSAgICAgICAg ICAgICAgICBmZXRjaF9yZXN1bHQgPSBjdXJzb3IuZmV0Y2hhbGwoKQotICAgICAgICAgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGZldGNoX3Jlc3VsdCkpCisgICAgICAgICAgICBmZXRj aF9yZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgub2YoMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCA5 NGZhYWY1NS4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy9fX2luaXRfXy5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMK ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBUYWJsZXNUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2Jhc2VfcGFydGl0aW9uX3RhYmxlLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3Rlc3RzL3Rlc3RfYmFzZV9wYXJ0aXRpb25fdGFibGUucHkKaW5kZXggMzhjMDQw ZjAuLmI0ZDdjYWVlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9iYXNlX3BhcnRp dGlvbl90YWJsZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9iYXNlX3BhcnRpdGlvbl90 YWJsZS5weQpAQCAtNiwxMDIgKzYsNDggQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzXAot ICAgIC50YWJsZXMuYmFzZV9wYXJ0aXRpb25fdGFibGUgaW1wb3J0IEJhc2VQYXJ0aXRpb25UYWJs ZQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0K LWNsYXNzIFRlc3RCYXNlUGFydGl0aW9uVGFibGUoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgKCcjaXNfdGFibGVfcGFydGl0aW9uZWQgd2hlbiB0YWJsZSBp bmZvcm1hdGlvbiBkb2VzIG5vdCAnCi0gICAgICAgICAnaGF2ZSBwYXJ0aXRpb24gaW5mb3JtYXRp b24sICcKLSAgICAgICAgICdpdCByZXR1cm5zIGZhbHNlJywKLSAgICAgICAgIGRpY3QoCi0gICAg ICAgICAgICAgdGVzdD0naXNfdGFibGVfcGFydGl0aW9uZWQnLAotICAgICAgICAgICAgIGlucHV0 X3BhcmFtZXRlcnM9ZGljdCgpLAotICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybj1GYWxzZQot ICAgICAgICAgKSksCi0gICAgICAgICgnI2lzX3RhYmxlX3BhcnRpdGlvbmVkIHdoZW4gdGFibGUg aW5mb3JtYXRpb24gJwotICAgICAgICAgJ2hhcyBwYXJ0aXRpb24gaW5mb3JtYXRpb24gYW5kIHRh YmxlIGlzIHBhcnRpdGlvbmVkLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyB0cnVlJywKLSAgICAg ICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdD0naXNfdGFibGVfcGFydGl0aW9uZWQnLAotICAg ICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgaXNfcGFy dGl0aW9uZWQ9VHJ1ZQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmV0 dXJuPVRydWUKLSAgICAgICAgICkpLAotICAgICAgICAoJyNpc190YWJsZV9wYXJ0aXRpb25lZCB3 aGVuIHRhYmxlIGluZm9ybWF0aW9uICcKLSAgICAgICAgICdoYXMgcGFydGl0aW9uIGluZm9ybWF0 aW9uIGFuZCB0YWJsZSBpcyBub3QgcGFydGl0aW9uZWQsICcKLSAgICAgICAgICdpdCByZXR1cm5z IGZhbHNlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgdGVzdD0naXNfdGFibGVfcGFy dGl0aW9uZWQnLAotICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAg ICAgICAgICAgaXNfcGFydGl0aW9uZWQ9RmFsc2UKLSAgICAgICAgICAgICApLAotICAgICAgICAg ICAgIGV4cGVjdGVkX3JldHVybj1GYWxzZQotICAgICAgICAgKSksCi0gICAgICAgICgnI2lzX3Rh YmxlX3BhcnRpdGlvbmVkIHdoZW4gbm9kZV90eXBlIGlzIHByZXNlbnQgJwotICAgICAgICAgJ2Fu ZCBpcyBwYXJ0aXRpb24sICcKLSAgICAgICAgICdpdCByZXR1cm5zIHRydWUnLAotICAgICAgICAg ZGljdCgKLSAgICAgICAgICAgICB0ZXN0PSdpc190YWJsZV9wYXJ0aXRpb25lZCcsCi0gICAgICAg ICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBpc19wYXJ0aXRp b25lZD1GYWxzZQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgbm9kZV90eXBlPSdwYXJ0 aXRpb24nLAotICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybj1UcnVlCi0gICAgICAgICApKSwK LSAgICAgICAgKCcjaXNfdGFibGVfcGFydGl0aW9uZWQgd2hlbiBub2RlX3R5cGUgaXMgcHJlc2Vu dCAnCi0gICAgICAgICAnYW5kIGlzIG5vdCBwYXJ0aXRpb24gJwotICAgICAgICAgJ2FuZCB0YWJs ZSBpcyBub3QgcGFydGl0aW9uZWQgJwotICAgICAgICAgJ2l0IHJldHVybnMgdHJ1ZScsCi0gICAg ICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Q9J2lzX3RhYmxlX3BhcnRpdGlvbmVkJywKLSAg ICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIGlzX3Bh cnRpdGlvbmVkPUZhbHNlCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBub2RlX3R5cGU9 J3RhYmxlJywKLSAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm49RmFsc2UKLSAgICAgICAgICkp LAotCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKLSAgICAgICAg KCcjZ2V0X2ljb25fY3NzX2NsYXNzIHdoZW4gdGFibGUgaXMgcGFydGl0aW9uZWQgJwotICAgICAg ICAgJ2l0IHJldHVybnMgaWNvbi1wYXJ0aXRpb24gY2xhc3MnLAotICAgICAgICAgZGljdCgKLSAg ICAgICAgICAgICB0ZXN0PSdnZXRfaWNvbl9jc3NfY2xhc3MnLAotICAgICAgICAgICAgIGlucHV0 X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgaXNfcGFydGl0aW9uZWQ9VHJ1ZQot ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuPSdpY29uLXBhcnRp dGlvbicKLSAgICAgICAgICkpLAotICAgICAgICAoJyNnZXRfaWNvbl9jc3NfY2xhc3Mgd2hlbiB0 YWJsZSBpcyBub3QgcGFydGl0aW9uZWQgJwotICAgICAgICAgJ2l0IHJldHVybnMgaWNvbi10YWJs ZSBjbGFzcycsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIHRlc3Q9J2dldF9pY29uX2Nz c19jbGFzcycsCi0gICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAg ICAgICAgICBpc19wYXJ0aXRpb25lZD1GYWxzZQotICAgICAgICAgICAgICksCi0gICAgICAgICAg ICAgZXhwZWN0ZWRfcmV0dXJuPSdpY29uLXRhYmxlJwotICAgICAgICAgKSkKLSAgICBdCitmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMg XAorICAgIC50YWJsZXMuYmFzZV9wYXJ0aXRpb25fdGFibGUgaW1wb3J0IEJhc2VQYXJ0aXRpb25U YWJsZQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYudGVzdCA9PSAn aXNfdGFibGVfcGFydGl0aW9uZWQnOgotICAgICAgICAgICAgc2VsZi5fX3Rlc3RfaXNfdGFibGVf cGFydGl0aW9uZWQoKQotICAgICAgICBlbGlmIHNlbGYudGVzdCA9PSAnZ2V0X2ljb25fY3NzX2Ns YXNzJzoKLSAgICAgICAgICAgIHNlbGYuX190ZXN0X2dldF9pY29uX2Nzc19jbGFzcygpCiAKLSAg ICBkZWYgX190ZXN0X2lzX3RhYmxlX3BhcnRpdGlvbmVkKHNlbGYpOgorY2xhc3MgVGVzdElzVGFi bGVQYXJ0aXRpb25lZDoKKyAgICAiIiIKKyAgICB0ZXN0ICNpc190YWJsZV9wYXJ0aXRpb25lZAor ICAgICIiIgorICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgJ2lucHV0X3Bh cmFtZXRlcnMsIGV4cGVjdGVkX3JldHVybiwgbm9kZV90eXBlJywgWworICAgICAgICAgICAgKGRp Y3QoKSwgRmFsc2UsIE5vbmUpLAorICAgICAgICAgICAgKGRpY3QoaXNfcGFydGl0aW9uZWQ9VHJ1 ZSksIFRydWUsIE5vbmUpLAorICAgICAgICAgICAgKGRpY3QoaXNfcGFydGl0aW9uZWQ9RmFsc2Up LCBGYWxzZSwgTm9uZSksCisgICAgICAgICAgICAoZGljdChpc19wYXJ0aXRpb25lZD1GYWxzZSks IFRydWUsICdwYXJ0aXRpb24nKSwKKyAgICAgICAgICAgIChkaWN0KGlzX3BhcnRpdGlvbmVkPUZh bHNlKSwgRmFsc2UsICd0YWJsZScpLAorICAgICAgICBdKQorICAgIGRlZiB0ZXN0X2lzX3RhYmxl X3BhcnRpdGlvbmVkKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5w dXRfcGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rl ZF9yZXR1cm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZV90eXBlKToK ICAgICAgICAgc3ViamVjdCA9IEJhc2VQYXJ0aXRpb25UYWJsZSgpCi0gICAgICAgIGlmIGhhc2F0 dHIoc2VsZiwgJ25vZGVfdHlwZScpOgotICAgICAgICAgICAgc3ViamVjdC5ub2RlX3R5cGUgPSBz ZWxmLm5vZGVfdHlwZQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3ViamVjdC5pc190YWJs ZV9wYXJ0aXRpb25lZChzZWxmLmlucHV0X3BhcmFtZXRlcnMpLAotICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZXhwZWN0ZWRfcmV0dXJuKQotCi0gICAgZGVmIF9fdGVzdF9nZXRfaWNvbl9j c3NfY2xhc3Moc2VsZik6CisgICAgICAgIGlmIG5vZGVfdHlwZSBpcyBub3QgTm9uZToKKyAgICAg ICAgICAgIHN1YmplY3Qubm9kZV90eXBlID0gbm9kZV90eXBlCisKKyAgICAgICAgc3ViamVjdC5p c190YWJsZV9wYXJ0aXRpb25lZChpbnB1dF9wYXJhbWV0ZXJzKSB8IHNob3VsZC5iZS5lcXVhbC50 bygKKyAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybikKKworCitjbGFzcyBUZXN0R2V0SWNvbkNT U0NsYXNzOgorICAgICIiIgorICAgIHRlc3QgI2dldF9pY29uX2Nzc19jbGFzcworICAgICIiIgor ICAgIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgKKyAgICAgICAgJ2lucHV0X3BhcmFtZXRlcnMs IGV4cGVjdGVkX3JldHVybicsIFsKKyAgICAgICAgICAgIChkaWN0KGlzX3BhcnRpdGlvbmVkPVRy dWUpLCAnaWNvbi1wYXJ0aXRpb24nKSwKKyAgICAgICAgICAgIChkaWN0KGlzX3BhcnRpdGlvbmVk PUZhbHNlKSwgJ2ljb24tdGFibGUnKSwKKyAgICAgICAgXSkKKyAgICBkZWYgdGVzdF9nZXRfaWNv bl9jc3NfY2xhc3Moc2VsZiwgaW5wdXRfcGFyYW1ldGVycywgZXhwZWN0ZWRfcmV0dXJuKToKICAg ICAgICAgc3ViamVjdCA9IEJhc2VQYXJ0aXRpb25UYWJsZSgpCiAKLSAgICAgICAgc2VsZi5hc3Nl cnRFcXVhbChzdWJqZWN0LmdldF9pY29uX2Nzc19jbGFzcyhzZWxmLmlucHV0X3BhcmFtZXRlcnMp LAotICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfcmV0dXJuKQorICAgICAg ICBzdWJqZWN0LmdldF9pY29uX2Nzc19jbGFzcyhpbnB1dF9wYXJhbWV0ZXJzKSB8IHNob3VsZC5i ZS5lcXVhbC50bygKKyAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybikKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9hY2xfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rl c3RfY29sdW1uX2FjbF9zcWwucHkKaW5kZXggNjIyOGZlMjIuLjc4YzNlZDc4IDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fYWNsX3NxbC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVzdHMvdGVzdF9jb2x1bW5fYWNsX3NxbC5weQpAQCAtOSw0NCArOSw1NCBAQAogCiBpbXBvcnQg b3MKIAotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0 X2Jhc2UgaW1wb3J0IFwKLSAgICBTUUxUZW1wbGF0ZVRlc3RCYXNlCitpbXBvcnQgcHl0ZXN0Citm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxz LnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQogCiAKLWNsYXNzIFRlc3RD b2x1bW5BY2xTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6Ci0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzY2hlbWEgbm9kZS4KLSAgICAgICAgKCdU ZXN0IENvbHVtbiBBQ0wgU1FMIGZpbGUnLCBkaWN0KCkpCi0gICAgXQotCi0gICAgZGVmIF9faW5p dF9fKHNlbGYpOgotICAgICAgICBzdXBlcihUZXN0Q29sdW1uQWNsU3FsLCBzZWxmKS5fX2luaXRf XygpCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQotICAgICAgICBzZWxmLmNvbHVtbl9pZCA9 IC0xCi0KLSAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgotICAg ICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCwgIgot ICAgICAgICAgICAgICAgICAgICAgICAicGdfYXR0cmlidXRlLmF0dG51bSBBUyBjb2x1bW5faWQg IgotICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBwZ19jbGFzcyBKT0lOIHBnX2F0dHJpYnV0 ZSBPTiAiCi0gICAgICAgICAgICAgICAgICAgICAgICJhdHRyZWxpZD1wZ19jbGFzcy5vaWQgIgot ICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVzdF90YWJs ZSciCi0gICAgICAgICAgICAgICAgICAgICAgICIgQU5EIHBnX2F0dHJpYnV0ZS5hdHRuYW1lID0g J3NvbWVfY29sdW1uJyIpCi0gICAgICAgIHNlbGYudGFibGVfaWQsIHNlbGYuY29sdW1uX2lkID0g Y3Vyc29yLmZldGNob25lKCkKLQotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6 Ci0gICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24s ICJhY2wuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRl X2ZpbGUpCi0gICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCi0gICAgICAgIHNxbCA9IHRl bXBsYXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNsaWQ9c2VsZi5jb2x1bW5faWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK LQotICAgICAgICByZXR1cm4gc3FsCi0KLSAgICBkZWYgYXNzZXJ0aW9ucyhzZWxmLCBmZXRjaF9y ZXN1bHQsIGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGZl dGNoX3Jlc3VsdCkpCitAcHl0ZXN0Lm1hcmsuZGF0YWJhc2UKK2NsYXNzIFRlc3RDb2x1bW5BY2xT cWw6CisgICAgZGVmIHRlc3RfY29sdW1uX2FjbF9zcWwoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50Cisg ICAgICAgIEl0IGNvcnJlY3RseSBnZW5lcmF0ZXMgdGhlIFNRTAorICAgICAgICBBbmQgZXhlY3V0 ZXMgYWdhaW5zdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgIiIiCisgICAgICAgIHNlcnZlciA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHdpdGggdGVzdF91dGlscy5EYXRhYmFz ZShzZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKKyAgICAgICAgICAgIHRl c3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGF0YWJhc2VfbmFtZSwgJ3Rlc3RfdGFibGUn KQorCisgICAgICAgICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6Cisg ICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCddCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJzkuMV9wbHVzJ10K KworICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorCisgICAgICAgICAg ICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCwgIgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgInBnX2F0dHJpYnV0ZS5hdHRudW0gQVMgY29sdW1uX2lk ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBnX2NsYXNzIEpPSU4gcGdfYXR0 cmlidXRlIE9OICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdHRyZWxpZD1wZ19jbGFz cy5vaWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBnX2NsYXNzLnJlbG5h bWU9J3Rlc3RfdGFibGUnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBBTkQgcGdfYXR0 cmlidXRlLmF0dG5hbWUgPSAnc29tZV9jb2x1bW4nIikKKyAgICAgICAgICAgIHRhYmxlX2lkLCBj b2x1bW5faWQgPSBjdXJzb3IuZmV0Y2hvbmUoKQorCisgICAgICAgICAgICBmb3IgdmVyc2lvbiBp biB2ZXJzaW9uc190b190ZXN0OgorICAgICAgICAgICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxm LmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJhY2wuc3FsIikKKyAgICAgICAgICAgICAgICB0 ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAgICAg ICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAorICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRl LnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD10YWJsZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgY2xpZD1jb2x1bW5faWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQor ICAgICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKHNxbCkKKyAgICAgICAgICAgICAgICBmZXRj aF9yZXN1bHQgPSBjdXJzb3IuZmV0Y2hhbGwoKQorCisgICAgICAgICAgICAgICAgZmV0Y2hfcmVz dWx0IHwgc2hvdWxkLmhhdmUubGVuZ3RoKDApCiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVm IGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0 cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3NxbC5weQppbmRleCA2NTFhNTk3YS4uOTU1OWI3ODQg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X2NvbHVtbl9wcm9wZXJ0aWVzX3NxbC5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF9jb2x1bW5fcHJvcGVydGllc19zcWwucHkKQEAg LTksNDggKzksNjAgQEAKIAogaW1wb3J0IG9zCiAKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBcCi0gICAgU1FMVGVtcGxhdGVU ZXN0QmFzZQoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNf dGVtcGxhdGUKIAogCi1jbGFzcyBUZXN0Q29sdW1uUHJvcGVydGllc1NxbChTUUxUZW1wbGF0ZVRl c3RCYXNlKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBV UkwgZm9yIHNjaGVtYSBub2RlLgotICAgICAgICAoJ1Rlc3QgQ29sdW1uIFByb3BlcnRpZXMgU1FM IGZpbGUnLCBkaWN0KCkpCi0gICAgXQorQHB5dGVzdC5tYXJrLmRhdGFiYXNlCitjbGFzcyBUZXN0 Q29sdW1uUHJvcGVydGllc1NxbDoKKyAgICBkZWYgdGVzdF9ydW4oc2VsZiwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmVz ZW50CisgICAgICAgIEl0IGV4ZWN1dGVzIHRoZSBxdWVyeSB0byB0aGUgcmV0cmlldmUgdGhlIGNv bHVtbiBwcm9wZXJ0aWVzCisgICAgICAgICIiIgorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29m X3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VydmVy KSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6CisgICAgICAgICAgICB0ZXN0X3V0aWxz LmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNlX25hbWUsICd0ZXN0X3RhYmxlJykKIAotICAg IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc3VwZXIoVGVzdENvbHVtblByb3BlcnRpZXNT cWwsIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCisgICAgICAg ICAgICBpZiBjb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uIDwgOTAxMDA6CisgICAgICAgICAgICAg ICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnZGVmYXVsdCddCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJzkuMV9wbHVzJ10KIAotICAgIGRlZiB0 ZXN0X3NldHVwKHNlbGYsIGNvbm5lY3Rpb24sIGN1cnNvcik6Ci0gICAgICAgIGN1cnNvci5leGVj dXRlKCJTRUxFQ1Qgb2lkIEZST00gcGdfY2xhc3Mgd2hlcmUgcmVsbmFtZT0ndGVzdF90YWJsZSci KQorICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAg Y3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgJ1NFTEVDVCBvaWQgRlJPTSBwZ19jbGFz cyB3aGVyZSByZWxuYW1lPVwndGVzdF90YWJsZVwnJykKIAotICAgICAgICBzZWxmLnRhYmxlX2lk ID0gY3Vyc29yLmZldGNob25lKClbMF0KKyAgICAgICAgICAgIHRhYmxlX2lkID0gY3Vyc29yLmZl dGNob25lKClbMF0KIAotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6Ci0gICAg ICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICJwcm9w ZXJ0aWVzLnNxbCIpCi0gICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0 ZV9maWxlKQotICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAotICAgICAgICBzcWwgPSB0 ZW1wbGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGlkPXNlbGYudGFibGVfaWQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAg ICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lv biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAncHJvcGVydGllcy5zcWwnKQorICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190 ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAgICAgICAgICAgICAgIHB1YmxpY19zY2hlbWFfaWQg PSAyMjAwCisgICAgICAgICAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKAorICAgICAgICAg ICAgICAgICAgICBzY2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgIHRp ZD10YWJsZV9pZAorICAgICAgICAgICAgICAgICkKIAotICAgICAgICByZXR1cm4gc3FsCisgICAg ICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgICAg IGN1cnNvci5leGVjdXRlKHNxbCkKKyAgICAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgPSBjdXJz b3IuZmV0Y2hhbGwoKQogCi0gICAgZGVmIGFzc2VydGlvbnMoc2VsZiwgZmV0Y2hfcmVzdWx0LCBk ZXNjcmlwdGlvbnMpOgotICAgICAgICBmaXJzdF9yb3cgPSB7fQotICAgICAgICBmb3IgaW5kZXgs IGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlwdGlvbnMpOgotICAgICAgICAgICAgZmly c3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorICAgICAg ICAgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAgICAgICAgICAgZm9yIGluZGV4LCBkZXNj cmlwdGlvbiBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2NyaXB0aW9uKToKKyAgICAgICAgICAgICAg ICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4 XQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NvbWVfY29sdW1uJywgZmlyc3Rfcm93Wydu YW1lJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2NoYXJhY3RlciB2YXJ5aW5nJywgZmly c3Rfcm93WydjbHR5cGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgzLCBsZW4oZmV0Y2hf cmVzdWx0KSkKKyAgICAgICAgICAgICAgICBmaXJzdF9yb3dbJ25hbWUnXSB8IHNob3VsZC5iZS5l cXVhbC50bygnc29tZV9jb2x1bW4nKQorICAgICAgICAgICAgICAgIGZpcnN0X3Jvd1snY2x0eXBl J10gfCBzaG91bGQuYmUuZXF1YWwudG8oJ2NoYXJhY3RlciB2YXJ5aW5nJykKKyAgICAgICAgICAg ICAgICBmZXRjaF9yZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgoMykKIAogICAgIEBzdGF0aWNt ZXRob2QKICAgICBkZWYgZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgogICAg ICAgICByZXR1cm4gb3MucGF0aC5qb2luKAotICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9f ZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRlcyIsICJjb2x1bW4iLCAic3FsIiwKKyAgICAgICAgICAg IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICcuLicsICd0ZW1wbGF0ZXMnLCAnY29sdW1uJywg J3NxbCcsCiAgICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQogICAgICAgICApCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF90YWJsZV9hZGQucHkKaW5kZXggNGMzY2RlMzEuLmY5Y2Q4OGYzIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rl c3RfdGFibGVfYWRkLnB5CkBAIC0xMCw3MCArMTAsMzYgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQg dXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50 ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwotZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgXAotICAgIGRhdGFiYXNlX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZl cl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGlj dAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFz IHV0aWxzCiAKIAotY2xhc3MgVGFibGVBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IGNvbGxhdGlvbiB1bmRlciBzY2hlbWEgbm9k ZS4gIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJM IGZvciB0YWJsZSBub2RlLgotICAgICAgICAoJ0NyZWF0ZSBUYWJsZScsIGRpY3QodXJsPScvYnJv d3Nlci90YWJsZS9vYmovJykpLAotICAgICAgICAoJ0NyZWF0ZSBSYW5nZSBwYXJ0aXRpb25lZCB0 YWJsZSB3aXRoIDIgcGFydGl0aW9ucycsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdGFi bGUvb2JqLycsCi0gICAgICAgICAgICAgIHNlcnZlcl9taW5fdmVyc2lvbj0xMDAwMDAsCi0gICAg ICAgICAgICAgIHBhcnRpdGlvbl90eXBlPSdyYW5nZScKLSAgICAgICAgICAgICAgKQotICAgICAg ICAgKSwKLSAgICAgICAgKCdDcmVhdGUgTGlzdCBwYXJ0aXRpb25lZCB0YWJsZSB3aXRoIDIgcGFy dGl0aW9ucycsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGUvb2JqLycsCi0gICAg ICAgICAgICAgIHNlcnZlcl9taW5fdmVyc2lvbj0xMDAwMDAsCi0gICAgICAgICAgICAgIHBhcnRp dGlvbl90eXBlPSdsaXN0JwotICAgICAgICAgICAgICApCi0gICAgICAgICApCi0gICAgXQotCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9k aWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2No ZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1si ZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAg aWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikK LSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCitjbGFzcyBU ZXN0VGFibGVBZGQ6CisgICAgZGVmIHNldF91cChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAg ICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAg ICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2Vy dmVyX2RhdGEgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorCisgICAg ICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisgICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZXJ2 ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlcnZlcl9kYXRhWydz Y2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9kYXRhWydzY2hlbWFfbmFt ZSddCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCiAg ICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxm LnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCiAg ICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKIAotICAgICAg ICBzZWxmLmlzX3BhcnRpdGlvbiA9IEZhbHNlCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3Nl cnZlcl9taW5fdmVyc2lvbicpOgotICAgICAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGls cy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgICAgIGlmIG5v dCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQg IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFydGl0aW9uZWQgdGFibGUuIikK LSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdIDwgc2VsZi5zZXJ2 ZXJfbWluX3ZlcnNpb246Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJQYXJ0aXRpb25lZCB0 YWJsZSBhcmUgbm90IHN1cHBvcnRlZCBieSAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg IlBQQVMvUEcgMTAuMCBhbmQgYmVsb3cuIgotICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3Qo bWVzc2FnZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5pc19wYXJ0 aXRpb24gPSBUcnVlCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMg ZnVuY3Rpb24gd2lsbCBhZGQgdGFibGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgogICAgICAgICBk Yl91c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KLSAgICAgICAgc2VsZi50YWJsZV9uYW1l ID0gInRlc3RfdGFibGVfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAg ICBkYXRhID0geworICAgICAgICB0YWJsZV9uYW1lID0gInRlc3RfdGFibGVfYWRkXyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLmRhdGEgPSB7CiAgICAgICAgICAg ICAiY2hlY2tfY29uc3RyYWludCI6IFtdLAogICAgICAgICAgICAgImNvbGxfaW5oZXJpdHMiOiAi W10iLAogICAgICAgICAgICAgImNvbHVtbnMiOiBbCkBAIC0xMDcsNyArNzMsNyBAQCBjbGFzcyBU YWJsZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICJsaWtlX2Nv bnN0cmFpbnRzIjogVHJ1ZSwKICAgICAgICAgICAgICJsaWtlX2RlZmF1bHRfdmFsdWUiOiBUcnVl LAogICAgICAgICAgICAgImxpa2VfcmVsYXRpb24iOiAicGdfY2F0YWxvZy5wZ19uYW1lc3BhY2Ui LAotICAgICAgICAgICAgIm5hbWUiOiBzZWxmLnRhYmxlX25hbWUsCisgICAgICAgICAgICAibmFt ZSI6IHRhYmxlX25hbWUsCiAgICAgICAgICAgICAicHJpbWFyeV9rZXkiOiBbXSwKICAgICAgICAg ICAgICJyZWxhY2wiOiBbCiAgICAgICAgICAgICAgICAgewpAQCAtMTM1LDcgKzEwMSw3IEBAIGNs YXNzIFRhYmxlQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAgXSwK ICAgICAgICAgICAgICJyZWxoYXNvaWRzIjogVHJ1ZSwKICAgICAgICAgICAgICJyZWxvd25lciI6 IGRiX3VzZXIsCi0gICAgICAgICAgICAic2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAg ICAgICAgICJzY2hlbWEiOiBzY2hlbWFfbmFtZSwKICAgICAgICAgICAgICJzZWNsYWJlbHMiOiBb XSwKICAgICAgICAgICAgICJzcGNuYW1lIjogInBnX2RlZmF1bHQiLAogICAgICAgICAgICAgInVu aXF1ZV9jb25zdHJhaW50IjogW10sCkBAIC0xOTMsNDMgKzE1OSwxMjAgQEAgY2xhc3MgVGFibGVB ZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICBdCiAgICAgICAgIH0K IAotICAgICAgICBpZiBzZWxmLmlzX3BhcnRpdGlvbjoKLSAgICAgICAgICAgIGRhdGFbJ3BhcnRp dGlvbl90eXBlJ10gPSBzZWxmLnBhcnRpdGlvbl90eXBlCi0gICAgICAgICAgICBkYXRhWydpc19w YXJ0aXRpb25lZCddID0gVHJ1ZQotICAgICAgICAgICAgaWYgc2VsZi5wYXJ0aXRpb25fdHlwZSA9 PSAncmFuZ2UnOgotICAgICAgICAgICAgICAgIGRhdGFbJ3BhcnRpdGlvbnMnXSA9IFwKLSAgICAg ICAgICAgICAgICAgICAgW3sndmFsdWVzX2Zyb20nOiAiJzIwMTAtMDEtMDEnIiwKLSAgICAgICAg ICAgICAgICAgICAgICAndmFsdWVzX3RvJzogIicyMDEwLTEyLTMxJyIsCi0gICAgICAgICAgICAg ICAgICAgICAgJ2lzX2F0dGFjaCc6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICdwYXJ0 aXRpb25fbmFtZSc6ICdlbXBfMjAxMCcKLSAgICAgICAgICAgICAgICAgICAgICB9LAotICAgICAg ICAgICAgICAgICAgICAgeyd2YWx1ZXNfZnJvbSc6ICInMjAxMS0wMS0wMSciLAotICAgICAgICAg ICAgICAgICAgICAgICd2YWx1ZXNfdG8nOiAiJzIwMTEtMTItMzEnIiwKLSAgICAgICAgICAgICAg ICAgICAgICAnaXNfYXR0YWNoJzogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgJ3BhcnRp dGlvbl9uYW1lJzogJ2VtcF8yMDExJwotICAgICAgICAgICAgICAgICAgICAgIH1dCi0gICAgICAg ICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGRhdGFbJ3BhcnRpdGlvbnMnXSA9IFwKLSAgICAg ICAgICAgICAgICAgICAgW3sndmFsdWVzX2luJzogIicyMDEyLTAxLTAxJywgJzIwMTItMTItMzEn IiwKLSAgICAgICAgICAgICAgICAgICAgICAnaXNfYXR0YWNoJzogRmFsc2UsCi0gICAgICAgICAg ICAgICAgICAgICAgJ3BhcnRpdGlvbl9uYW1lJzogJ2VtcF8yMDEyJwotICAgICAgICAgICAgICAg ICAgICAgIH0sCi0gICAgICAgICAgICAgICAgICAgICB7J3ZhbHVlc19pbic6ICInMjAxMy0wMS0w MScsICcyMDEzLTEyLTMxJyIsCi0gICAgICAgICAgICAgICAgICAgICAgJ2lzX2F0dGFjaCc6IEZh bHNlLAotICAgICAgICAgICAgICAgICAgICAgICdwYXJ0aXRpb25fbmFtZSc6ICdlbXBfMjAxMycK LSAgICAgICAgICAgICAgICAgICAgICB9XQotICAgICAgICAgICAgZGF0YVsncGFydGl0aW9uX2tl eXMnXSA9IFwKLSAgICAgICAgICAgICAgICBbeydrZXlfdHlwZSc6ICdjb2x1bW4nLCAncHRfY29s dW1uJzogJ0RPSid9XQotCi0gICAgICAgICMgQWRkIHRhYmxlCisgICAgQHB5dGVzdC5tYXJrLnVz ZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3Rh YmxlX2FkZChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gdGhlIHRhYmxlIGFkZCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAg aXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJv d3Nlci90YWJsZS9vYmovJworCisgICAgICAgIHNlbGYuc2V0X3VwKGNvbnRleHRfb2ZfdGVzdHMp CisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgdXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBz dHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNl bGYuZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAg ICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorCisgICAg QHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQor ICAgIGRlZiB0ZXN0X3RhYmxlX2FkZF9yYW5nZV9wYXJ0aXRpb25lZChzZWxmLCBjb250ZXh0X29m X3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHJhbmdlLXBhcnRpdGlvbmVk IHRhYmxlIGFkZCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0 dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90 YWJsZS9vYmovJworICAgICAgICBzZXJ2ZXJfbWluX3ZlcnNpb24gPSAxMDAwMDAKKyAgICAgICAg cGFydGl0aW9uX3R5cGUgPSAncmFuZ2UnCisKKyAgICAgICAgc2VsZi5zZXRfdXAoY29udGV4dF9v Zl90ZXN0cykKKworICAgICAgICBzZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2Vy dmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQorICAgICAgICBzZXJ2ZXJfY29uWydpbmZvJ10gfCBc CisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8oJ1NlcnZlciBjb25uZWN0ZWQuJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIHNl cnZlciB0byBhZGQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcnRpdGlvbmVk IHRhYmxlLicpCisKKyAgICAgICAgaWYgc2VydmVyX2NvblsnZGF0YSddWyd2ZXJzaW9uJ10gPCBz ZXJ2ZXJfbWluX3ZlcnNpb246CisgICAgICAgICAgICBtZXNzYWdlID0gJ1BhcnRpdGlvbmVkIHRh YmxlIGFyZSBub3Qgc3VwcG9ydGVkIGJ5ICcgXAorICAgICAgICAgICAgICAgICAgICAgICdQUEFT L1BHIDEwLjAgYW5kIGJlbG93LicKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKG1lc3NhZ2UpCisK KyAgICAgICAgc2VsZi5kYXRhWydwYXJ0aXRpb25fdHlwZSddID0gcGFydGl0aW9uX3R5cGUKKyAg ICAgICAgc2VsZi5kYXRhWydpc19wYXJ0aXRpb25lZCddID0gVHJ1ZQorICAgICAgICBzZWxmLmRh dGFbJ3BhcnRpdGlvbnMnXSA9IFwKKyAgICAgICAgICAgIFt7J3ZhbHVlc19mcm9tJzogIicyMDEw LTAxLTAxJyIsCisgICAgICAgICAgICAgICd2YWx1ZXNfdG8nOiAiJzIwMTAtMTItMzEnIiwKKyAg ICAgICAgICAgICAgJ2lzX2F0dGFjaCc6IEZhbHNlLAorICAgICAgICAgICAgICAncGFydGl0aW9u X25hbWUnOiAnZW1wXzIwMTAnCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgeyd2YWx1 ZXNfZnJvbSc6ICInMjAxMS0wMS0wMSciLAorICAgICAgICAgICAgICAndmFsdWVzX3RvJzogIicy MDExLTEyLTMxJyIsCisgICAgICAgICAgICAgICdpc19hdHRhY2gnOiBGYWxzZSwKKyAgICAgICAg ICAgICAgJ3BhcnRpdGlvbl9uYW1lJzogJ2VtcF8yMDExJworICAgICAgICAgICAgICB9XQorCisg ICAgICAgIHNlbGYuZGF0YVsncGFydGl0aW9uX2tleXMnXSA9IFwKKyAgICAgICAgICAgIFt7J2tl eV90eXBlJzogJ2NvbHVtbicsICdwdF9jb2x1bW4nOiAnRE9KJ31dCisKKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyAr IHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQp ICsgJy8nLAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksCisgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorCisgICAgQHB5dGVzdC5tYXJrLnVzZWZp eHR1cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3RhYmxl X2FkZF9saXN0X3BhcnRpdGlvbmVkKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgbGlzdC1wYXJ0aXRpb25lZCB0YWJsZSBhZGQgcmVxdWVzdCBp cyBzZW50IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAg ICAgICAiIiIKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdGFibGUvb2JqLycKKyAgICAgICAg c2VydmVyX21pbl92ZXJzaW9uID0gMTAwMDAwCisgICAgICAgIHBhcnRpdGlvbl90eXBlID0gJ2xp c3QnCisKKyAgICAgICAgc2VsZi5zZXRfdXAoY29udGV4dF9vZl90ZXN0cykKKworICAgICAgICBz ZXJ2ZXJfY29uID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVy X2lkKQorICAgICAgICBzZXJ2ZXJfY29uWydpbmZvJ10gfCBcCisgICAgICAgICAgICBzaG91bGQu YmUuZXF1YWwudG8oJ1NlcnZlciBjb25uZWN0ZWQuJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtc2c9J0NvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQnCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJ0aXRpb25lZCB0YWJsZS4nKQorCisgICAg ICAgIGlmIHNlcnZlcl9jb25bJ2RhdGEnXVsndmVyc2lvbiddIDwgc2VydmVyX21pbl92ZXJzaW9u OgorICAgICAgICAgICAgbWVzc2FnZSA9ICdQYXJ0aXRpb25lZCB0YWJsZSBhcmUgbm90IHN1cHBv cnRlZCBieSAnIFwKKyAgICAgICAgICAgICAgICAgICAgICAnUFBBUy9QRyAxMC4wIGFuZCBiZWxv dy4nCisgICAgICAgICAgICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIHNlbGYuZGF0 YVsncGFydGl0aW9uX3R5cGUnXSA9IHBhcnRpdGlvbl90eXBlCisgICAgICAgIHNlbGYuZGF0YVsn aXNfcGFydGl0aW9uZWQnXSA9IFRydWUKKyAgICAgICAgc2VsZi5kYXRhWydwYXJ0aXRpb25zJ10g PSBcCisgICAgICAgICAgICBbeyd2YWx1ZXNfaW4nOiAiJzIwMTItMDEtMDEnLCAnMjAxMi0xMi0z MSciLAorICAgICAgICAgICAgICAnaXNfYXR0YWNoJzogRmFsc2UsCisgICAgICAgICAgICAgICdw YXJ0aXRpb25fbmFtZSc6ICdlbXBfMjAxMicKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAg ICB7J3ZhbHVlc19pbic6ICInMjAxMy0wMS0wMScsICcyMDEzLTEyLTMxJyIsCisgICAgICAgICAg ICAgICdpc19hdHRhY2gnOiBGYWxzZSwKKyAgICAgICAgICAgICAgJ3BhcnRpdGlvbl9uYW1lJzog J2VtcF8yMDEzJworICAgICAgICAgICAgICB9XQorCisgICAgICAgIHNlbGYuZGF0YVsncGFydGl0 aW9uX2tleXMnXSA9IFwKKyAgICAgICAgICAgIFt7J2tleV90eXBlJzogJ2NvbHVtbicsICdwdF9j b2x1bW4nOiAnRE9KJ31dCisKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAot ICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisg ICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCiAgICAgICAg ICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsKICAgICAg ICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCi0gICAgICAgICAgICBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5kYXRh KSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5h c3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93 bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxm LmRiX2lkKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxldGUucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxldGUucHkKaW5kZXggMTdiM2QwMWIuLjBl ZWE3MDdiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9kZWxldGUucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVfZGVsZXRlLnB5CkBAIC05LDU4ICs5LDU1 IEBACiAKIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1m cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGls cwogCiAKLWNsYXNzIFRhYmxlRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAg ICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgbmV3IHRhYmxlIHVuZGVyIHNjaGVtYSBub2RlLiIi IgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig dGFibGUgbm9kZS4KLSAgICAgICAgKCdEZWxldGUgVGFibGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIv dGFibGUvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RUYWJsZURlbGV0ZToKKyAgICBAcHl0ZXN0 Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVm IHRlc3RfdGFibGVfZGVsZXRlKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIK KyAgICAgICAgV2hlbiB0aGUgdGFibGUgZGVsZXRlIHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFj a2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL3RhYmxlL29iai8nCisKKyAgICAgICAgaHR0cF9jbGllbnQgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4dF9vZl90ZXN0 c1snc2VydmVyX2luZm9ybWF0aW9uJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQot ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlIHRvIGFkZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l KQorICAgICAgICBkYl9uYW1lID0gc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2 ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJf ZGF0YVsnZGJfaWQnXQorICAgICAgICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lk J10KKyAgICAgICAgc2NoZW1hX25hbWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorICAg ICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VydmVy LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGFk ZCBhIHRhYmxlLiIpCi0gICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0ZXN0X3RhYmxlX2RlbGV0 ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9 IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBhIHRhYmxlLiIpCiAKLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBhZGRlZCB0YWJs ZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKLSAgICAgICAgdGFibGVfcmVzcG9uc2UgPSB0YWJsZXNf dXRpbHMudmVyaWZ5X3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2lkKQor ICAgICAgICB0YWJsZV9uYW1lID0gInRlc3RfdGFibGVfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFi bGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0YWJsZV9uYW1lKQorCisgICAgICAgIHRhYmxlX3Jlc3BvbnNlID0gdGFibGVz X3V0aWxzLnZlcmlmeV90YWJsZShzZXJ2ZXIsIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9pZCkKICAgICAgICAgaWYgbm90 IHRhYmxlX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3Qg ZmluZCB0aGUgdGFibGUgdG8gZGVsZXRlLiIpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0 ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNlbGYuZGJf aWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHNl bGYuc2NoZW1hX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0cihzZWxmLnRhYmxlX2lkKSwKKworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50 LmRlbGV0ZSh1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHRhYmxlX2lkKSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVl KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQog Ci0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFi YXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0 X3RhYmxlX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX2dldC5weQppbmRleCBi YWIyMWZkZC4uNmZiYjY5ZjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxl X2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZV9nZXQucHkKQEAgLTksNTQg KzksNTAgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGlt cG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMg aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdGFibGVz X3V0aWxzCiAKIAotY2xhc3MgVGFibGVHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0g ICAgIiIiVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcgY29sbGF0aW9uIHVuZGVyIHNjaGVtYSBub2Rl LiIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBm b3IgdGFibGUgbm9kZS4KLSAgICAgICAgKCdGZXRjaCB0YWJsZSBOb2RlIFVSTCcsIGRpY3QodXJs PScvYnJvd3Nlci90YWJsZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgot ICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsi ZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1h Il1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJd Ci0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9j b24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9H Uk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSdd WyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAgc2VsZi5zY2hlbWFf aWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCitjbGFzcyBUZXN0VGFibGVHZXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1 cmVzKCdyZXF1aXJlX2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X3RhYmxlX2dl dChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IHRhYmxlIGdldCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0 dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90 YWJsZS9vYmovJworCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlv biddCisKKyAgICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAg c2VydmVyX2lkID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2Vy dmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVt YV9pZCddCisgICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10K KyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToK ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0 byBhZGQgYSB0YWJsZS4iKQotICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGVzdF90YWJsZV9n ZXRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQg PSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYudGFibGVfbmFtZSkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIGFkZGVkIHRhYmxlIHVuZGVyIHNjaGVtYSBub2Rl LiIiIgotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldChzZWxmLnVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Jy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi50YWJsZV9pZCksCisKKyAgICAgICAgdGFi bGVfbmFtZSA9ICJ0ZXN0X3RhYmxlX2dldF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkK KyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVt YV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFi bGVfbmFtZSkKKworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmdldCh1cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcvJyArIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKGRiX2lkKSArICcvJyArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cihzY2hlbWFfaWQpICsgJy8nICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RyKHRhYmxlX2lkKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNw b25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAg ICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAg IHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90 ZXN0X3RhYmxlX3B1dC5weQppbmRleCA2M2Y3M2VhZS4uOTdjNDM5ZTcgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZXN0cy90ZXN0X3RhYmxlX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVz dF90YWJsZV9wdXQucHkKQEAgLTEwLDEzNSArMTAsMTQ1IEBACiBpbXBvcnQganNvbgogaW1wb3J0 IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2 ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2Rp Y3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBh cyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKIAogCi1jbGFzcyBU YWJsZVVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNz IHdpbGwgYWRkIG5ldyBjb2xsYXRpb24gdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciB0YWJsZSBub2RlLgot ICAgICAgICAoJ1VwZGF0ZSBUYWJsZScsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJykp LAotICAgICAgICAoJ0NyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlv bmVkIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZS9vYmovJywKLSAg ICAgICAgICAgICAgc2VydmVyX21pbl92ZXJzaW9uPTEwMDAwMCwKLSAgICAgICAgICAgICAgcGFy dGl0aW9uX3R5cGU9J3JhbmdlJywKLSAgICAgICAgICAgICAgbW9kZT0nY3JlYXRlJwotICAgICAg ICAgICAgICApCi0gICAgICAgICApLAotICAgICAgICAoJ0NyZWF0ZSBwYXJ0aXRpb25zIG9mIGV4 aXN0aW5nIGxpc3QgcGFydGl0aW9uZWQgdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93 c2VyL3RhYmxlL29iai8nLAotICAgICAgICAgICAgICBzZXJ2ZXJfbWluX3ZlcnNpb249MTAwMDAw LAotICAgICAgICAgICAgICBwYXJ0aXRpb25fdHlwZT0nbGlzdCcsCi0gICAgICAgICAgICAgIG1v ZGU9J2NyZWF0ZScKLSAgICAgICAgICAgICAgKQotICAgICAgICAgKSwKLSAgICAgICAgKCdEZXRh Y2ggcGFydGl0aW9uIGZyb20gZXhpc3RpbmcgcmFuZ2UgcGFydGl0aW9uZWQgdGFibGUnLAotICAg ICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29iai8nLAotICAgICAgICAgICAgICBzZXJ2 ZXJfbWluX3ZlcnNpb249MTAwMDAwLAotICAgICAgICAgICAgICBwYXJ0aXRpb25fdHlwZT0ncmFu Z2UnLAotICAgICAgICAgICAgICBtb2RlPSdkZXRhY2gnCi0gICAgICAgICAgICAgICkKLSAgICAg ICAgICksCi0gICAgICAgICgnRGV0YWNoIHBhcnRpdGlvbiBmcm9tIGV4aXN0aW5nIGxpc3QgcGFy dGl0aW9uZWQgdGFibGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlL29iai8n LAotICAgICAgICAgICAgICBzZXJ2ZXJfbWluX3ZlcnNpb249MTAwMDAwLAotICAgICAgICAgICAg ICBwYXJ0aXRpb25fdHlwZT0nbGlzdCcsCi0gICAgICAgICAgICAgIG1vZGU9J2RldGFjaCcKLSAg ICAgICAgICAgICAgKQotICAgICAgICAgKSwKLSAgICAgICAgKCdBdHRhY2ggcGFydGl0aW9uIHRv IGV4aXN0aW5nIHJhbmdlIHBhcnRpdGlvbmVkIHRhYmxlJywKLSAgICAgICAgIGRpY3QodXJsPScv YnJvd3Nlci90YWJsZS9vYmovJywKLSAgICAgICAgICAgICAgc2VydmVyX21pbl92ZXJzaW9uPTEw MDAwMCwKLSAgICAgICAgICAgICAgcGFydGl0aW9uX3R5cGU9J3JhbmdlJywKLSAgICAgICAgICAg ICAgbW9kZT0nYXR0YWNoJwotICAgICAgICAgICAgICApCi0gICAgICAgICApLAotICAgICAgICAo J0F0dGFjaCBwYXJ0aXRpb24gdG8gZXhpc3RpbmcgbGlzdCBwYXJ0aXRpb25lZCB0YWJsZScsCi0g ICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGUvb2JqLycsCi0gICAgICAgICAgICAgIHNl cnZlcl9taW5fdmVyc2lvbj0xMDAwMDAsCi0gICAgICAgICAgICAgIHBhcnRpdGlvbl90eXBlPSds aXN0JywKLSAgICAgICAgICAgICAgbW9kZT0nYXR0YWNoJwotICAgICAgICAgICAgICApCi0gICAg ICAgICApCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25h bWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAg IHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNl bGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJf aWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGls cy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2Ug dG8gYWRkIGEgdGFibGUuIikKLSAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1si c2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlf c2NoZW1hcyhzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0gICAgICAg IGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdGFibGUuIikKK2NsYXNzIFRlc3RUYWJs ZVB1dDoKKyAgICBkZWYgc2V0X3VwKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICBz ZWxmLnVybCA9ICcvYnJvd3Nlci90YWJsZS9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0g Y29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorCisgICAgICAgIHNlbGYuc2VydmVyID0g Y29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IGNv bnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisgICAgICAgIHNlbGYuZGJfbmFt ZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxm LnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zZXJ2 ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2Vy dmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2VsZi5zY2hlbWFfcmVzcG9uc2UgPSBz Y2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUKKyAg ICAgICAgKQorCisgICAgICAgIGlmIG5vdCBzZWxmLnNjaGVtYV9yZXNwb25zZToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byB1cGRhdGUg dGFibGUuIikKKwogICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGVzdF90YWJsZV9wdXRfJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAKLSAgICAgICAgc2VsZi5pc19wYXJ0aXRpb24g PSBGYWxzZQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdzZXJ2ZXJfbWluX3ZlcnNpb24nKToK LSAgICAgICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2Vs Ziwgc2VsZi5zZXJ2ZXJfaWQpCi0gICAgICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJd ID09ICJTZXJ2ZXIgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInBhcnRpdGlvbmVkIHRhYmxlLiIpCi0gICAgICAgICAgICBpZiBzZXJ2 ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXSA8IHNlbGYuc2VydmVyX21pbl92ZXJzaW9uOgotICAg ICAgICAgICAgICAgIG1lc3NhZ2UgPSAiUGFydGl0aW9uZWQgdGFibGUgYXJlIG5vdCBzdXBwb3J0 ZWQgYnkgIiBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJQUEFTL1BHIDEwLjAgYW5kIGJl bG93LiIKLSAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgICAg ICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYuaXNfcGFydGl0aW9uID0gVHJ1ZQotCi0gICAg ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZV9mb3JfcGFy dGl0aW9uKAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAg ICAgICAgIHNlbGYudGFibGVfbmFtZSwKLSAgICAgICAgICAgICAgICAncGFydGl0aW9uZWQnLAot ICAgICAgICAgICAgICAgIHNlbGYucGFydGl0aW9uX3R5cGUpCi0gICAgICAgIGVsc2U6Ci0gICAg ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZSgKLSAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQotCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBh ZGRlZCB0YWJsZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICBkZWYgc2V0X3VwX3BhcnRpdGlv bl9hbmRfbW9kZShzZWxmLCBwYXJ0aXRpb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBtb2RlKToKKworICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZV9mb3JfcGFydGl0aW9uKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisg ICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAor ICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAorICAgICAgICAgICAgJ3BhcnRpdGlvbmVkJywK KyAgICAgICAgICAgIHBhcnRpdGlvbl90eXBlKQorCiAgICAgICAgIHRhYmxlX3Jlc3BvbnNlID0g dGFibGVzX3V0aWxzLnZlcmlmeV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJs ZV9pZCkKKwogICAgICAgICBpZiBub3QgdGFibGVfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0YWJsZSB0byB1cGRhdGUuIikKIAotICAg ICAgICBpZiBzZWxmLmlzX3BhcnRpdGlvbjoKLSAgICAgICAgICAgIGRhdGEgPSB7ImlkIjogc2Vs Zi50YWJsZV9pZH0KLSAgICAgICAgICAgIHRhYmxlc191dGlscy5zZXRfcGFydGl0aW9uX2RhdGEo Ci0gICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFf bmFtZSwgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYucGFydGl0aW9uX3R5 cGUsIGRhdGEsIHNlbGYubW9kZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGRhdGEgPSB7 Ci0gICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGVzdCBjb21tZW50IGZv ciB0YWJsZSIsCi0gICAgICAgICAgICAgICAgImlkIjogc2VsZi50YWJsZV9pZAotICAgICAgICAg ICAgfQorICAgICAgICBzZWxmLmRhdGEgPSB7ImlkIjogc2VsZi50YWJsZV9pZH0KKyAgICAgICAg dGFibGVzX3V0aWxzLnNldF9wYXJ0aXRpb25fZGF0YSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYudGFibGVfbmFtZSwKKyAgICAg ICAgICAgIHBhcnRpdGlvbl90eXBlLCBzZWxmLmRhdGEsIG1vZGUpCisKKyAgICBAcHl0ZXN0Lm1h cmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgZGVmIHRl c3RfdGFibGVfcHV0KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiB0aGUgdGFibGUgcHV0IHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5z ZXRfdXAoY29udGV4dF9vZl90ZXN0cykKKworICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVz X3V0aWxzLmNyZWF0ZV90YWJsZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgc2VsZi50YWJs ZV9uYW1lKQorCisgICAgICAgIHRhYmxlX3Jlc3BvbnNlID0gdGFibGVzX3V0aWxzLnZlcmlmeV90 YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pZCkKKworICAgICAgICBpZiBu b3QgdGFibGVfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSB0YWJsZSB0byB1cGRhdGUuIikKKworICAgICAgICBkYXRhID0geworICAgICAg ICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGVzdCBjb21tZW50IGZvciB0YWJsZSIsCisg ICAgICAgICAgICAiaWQiOiBzZWxmLnRhYmxlX2lkCisgICAgICAgIH0KIAogICAgICAgICByZXNw b25zZSA9IHNlbGYudGVzdGVyLnB1dCgKICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxz LlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSAr ICcvJyArIHN0cihzZWxmLmRiX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoc2VsZi5zY2hl bWFfaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVfaWQpLAorICAgICAgICAgICAgc3RyKHNlbGYu c2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIo c2VsZi50YWJsZV9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksIGZvbGxv d19yZWRpcmVjdHM9VHJ1ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3Rh dHVzX2NvZGUsIDIwMCkKIAotICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNj b25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICByZXNwb25z ZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCisKKyAgICBAcHl0ZXN0Lm1h cmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29ubmVjdGlvbicpCisgICAgQHB5dGVz dC5tYXJrLnBhcmFtZXRyaXplKAorICAgICAgICAncGFydGl0aW9uX3R5cGUsIG1vZGUnLCBbCisg ICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgJ3JhbmdlJywKKyAgICAgICAgICAgICAgICAn Y3JlYXRlJworICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAn bGlzdCcsCisgICAgICAgICAgICAgICAgJ2NyZWF0ZScKKyAgICAgICAgICAgICksCisgICAgICAg ICAgICAoCisgICAgICAgICAgICAgICAgJ3JhbmdlJywKKyAgICAgICAgICAgICAgICAnZGV0YWNo JworICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAnbGlzdCcs CisgICAgICAgICAgICAgICAgJ2RldGFjaCcKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAo CisgICAgICAgICAgICAgICAgJ3JhbmdlJywKKyAgICAgICAgICAgICAgICAnYXR0YWNoJworICAg ICAgICAgICAgKSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAnbGlzdCcsCisgICAg ICAgICAgICAgICAgJ2F0dGFjaCcKKyAgICAgICAgICAgICkKKyAgICAgICAgXQorICAgICkKKyAg ICBkZWYgdGVzdF90YWJsZV9wdXRfcGFydGl0aW9uZWQoc2VsZiwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29udGV4dF9vZl90ZXN0cywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGFydGl0aW9uX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG1vZGUpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgdGFibGUgcHV0 IHJlcXVlc3QgaXMgc2VudCB0bworICAgICAgICBhIHBhcnRpdGlvbiB0YWJsZQorICAgICAgICBp dCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5zZXRfdXAo Y29udGV4dF9vZl90ZXN0cykKKworICAgICAgICBzZWxmLnNldF91cF9wYXJ0aXRpb25fYW5kX21v ZGUocGFydGl0aW9uX3R5cGUsIG1vZGUpCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wdXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAg ICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9p ZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYudGFibGVfaWQpLAorICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAg ICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDApCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfYWNsX3NxbC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy90ZXN0X3RhYmxlc19hY2xfc3FsLnB5CmluZGV4IDM3MWEyZjU4Li45Njc2MmFiMSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbF9zcWwucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX2FjbF9zcWwucHkKQEAgLTgsNTUgKzgsNjcgQEAK ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCBvcworCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdy YXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBs YXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQotZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFwKLSAgICBTUUxUZW1w bGF0ZVRlc3RCYXNlCi0KLQotY2xhc3MgVGVzdFRhYmxlc0FjbFNxbChTUUxUZW1wbGF0ZVRlc3RC YXNlKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgiVGVzdCBxdWVyeSByZXR1cm5zIHRo ZSBwZXJtaXNzaW9ucyB3aGVuIHRoZXJlIGFyZSBwZXJtaXNzaW9ucyBzZXQgdXAiCi0gICAgICAg ICAiIG9uIHRoZSB0YWJsZSIsIGRpY3QoKSkKLSAgICBdCi0KLSAgICBkZWYgX19pbml0X18oc2Vs Zik6Ci0gICAgICAgIHN1cGVyKFRlc3RUYWJsZXNBY2xTcWwsIHNlbGYpLl9faW5pdF9fKCkKLSAg ICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCi0KLSAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25u ZWN0aW9uLCBjdXJzb3IpOgotICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiR1JBTlQgU0VMRUNUIE9O IHRlc3RfdGFibGUgVE8gUFVCTElDIikKLSAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJz b3IoKQotICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdI RVJFIHJlbG5hbWU9J3Rlc3RfdGFibGUnIikKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNv ci5mZXRjaG9uZSgpWzBdCi0KLSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgot ICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAi YWNsLnNxbCIpCi0gICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9m aWxlKQotICAgICAgICBwdWJsaWNfc2NoZW1hX2lkID0gMjIwMAotICAgICAgICBzcWwgPSB0ZW1w bGF0ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGlkPXNlbGYudGFibGVfaWQpCi0gICAgICAgIHJldHVybiBzcWwKLQotICAgIGRl ZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAg cHVibGljX2FjbHMgPSBsaXN0KAotICAgICAgICAgICAgZmlsdGVyKGxhbWJkYSBhY2w6IGFjbFsx XSA9PSAnUFVCTElDJywgZmV0Y2hfcmVzdWx0KQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwobGVuKHB1YmxpY19hY2xzKSwgMSkKIAotICAgICAgICBuZXdfYWNsX21hcCA9IGRp Y3QoCi0gICAgICAgICAgICB6aXAobWFwKGxhbWJkYSBjb2x1bW46IGNvbHVtbi5uYW1lLCBkZXNj cmlwdGlvbnMpLCBwdWJsaWNfYWNsc1swXSkKLSAgICAgICAgKQogCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwoJ1BVQkxJQycsIG5ld19hY2xfbWFwWydncmFudGVlJ10pCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWwoc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sIG5ld19hY2xfbWFwWydncmFudG9y J10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3JlbGFjbCcsIG5ld19hY2xfbWFwWydkZWZ0 eXBlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydyJ10sIG5ld19hY2xfbWFwWydwcml2 aWxlZ2VzJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW0ZhbHNlXSwgbmV3X2FjbF9tYXBb J2dyYW50YWJsZSddKQotICAgICAgICByZXR1cm4gcHVibGljX2FjbHMKK0BweXRlc3QubWFyay5k YXRhYmFzZQorY2xhc3MgVGVzdFRhYmxlc0FjbFNxbDoKKyAgICBkZWYgdGVzdF9leGVjdXRlX2Fj bF9zcWwoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50CisgICAgICAgIEl0IGV4ZWN1dGVzIHRoZSBxdWVy eSB0aGF0IHJldHJpZXZlcyB0aGUgQUNMIGZvciBhIHRhYmxlCisgICAgICAgICIiIgorICAgICAg ICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICB3aXRoIHRlc3Rf dXRpbHMuRGF0YWJhc2Uoc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFtZSk6Cisg ICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNlX25hbWUs ICd0ZXN0X3RhYmxlJykKKworICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lv biA8IDkwMTAwOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQn XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0g Wyc5LjFfcGx1cyddCisKKyAgICAgICAgICAgIGN1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkK KyAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCdHUkFOVCBTRUxFQ1QgT04gdGVzdF90YWJsZSBU TyBQVUJMSUMnKQorICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAg ICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoCisgICAgICAgICAgICAgICAgJ1NFTEVDVCBvaWQgRlJP TSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lPVwndGVzdF90YWJsZVwnJykKKyAgICAgICAgICAgIHRh YmxlX2lkID0gY3Vyc29yLmZldGNob25lKClbMF0KKworICAgICAgICAgICAgZm9yIHZlcnNpb24g aW4gdmVyc2lvbnNfdG9fdGVzdDoKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2Vs Zi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAnYWNsLnNxbCcpCisgICAgICAgICAgICAgICAg dGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAgICAgICAgICAg ICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKKyAgICAgICAgICAgICAgICBzcWwgPSB0ZW1wbGF0 ZS5yZW5kZXIoc2NpZD1wdWJsaWNfc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aWQ9dGFibGVfaWQpCisKKyAgICAgICAgICAgICAgICBjdXJzb3IgPSBj b25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQor ICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCisKKyAgICAg ICAgICAgICAgICBwdWJsaWNfYWNscyA9IGxpc3QoCisgICAgICAgICAgICAgICAgICAgIGZpbHRl cihsYW1iZGEgYWNsOiBhY2xbMV0gPT0gJ1BVQkxJQycsIGZldGNoX3Jlc3VsdCkKKyAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICAgICAgcHVibGljX2FjbHMgfCBzaG91bGQuaGF2ZS5sZW5n dGgoMSkKKworICAgICAgICAgICAgICAgIG5ld19hY2xfbWFwID0gZGljdCgKKyAgICAgICAgICAg ICAgICAgICAgemlwKG1hcChsYW1iZGEgY29sdW1uOiBjb2x1bW4ubmFtZSwgY3Vyc29yLmRlc2Ny aXB0aW9uKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY19hY2xzWzBdKQorICAgICAg ICAgICAgICAgICkKKworICAgICAgICAgICAgICAgIG5ld19hY2xfbWFwWydncmFudGVlJ10gfCBz aG91bGQuYmUuZXF1YWwudG8oJ1BVQkxJQycpCisgICAgICAgICAgICAgICAgbmV3X2FjbF9tYXBb J2dyYW50b3InXSB8IHNob3VsZC5iZS5lcXVhbC50byhzZXJ2ZXJbJ3VzZXJuYW1lJ10pCisgICAg ICAgICAgICAgICAgbmV3X2FjbF9tYXBbJ2RlZnR5cGUnXSB8IHNob3VsZC5iZS5lcXVhbC50bygn cmVsYWNsJykKKyAgICAgICAgICAgICAgICBuZXdfYWNsX21hcFsncHJpdmlsZWdlcyddIHwgc2hv dWxkLmJlLmVxdWFsLnRvKFsnciddKQorICAgICAgICAgICAgICAgIG5ld19hY2xfbWFwWydncmFu dGFibGUnXSB8IHNob3VsZC5iZS5lcXVhbC50byhbRmFsc2VdKQogCiAgICAgQHN0YXRpY21ldGhv ZAogICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CiAgICAgICAg IHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxl X18pLCAiLi4iLCAidGVtcGxhdGVzIiwgInRhYmxlIiwgInNxbCIsCisgICAgICAgICAgICBvcy5w YXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAndGVtcGxhdGVzJywgJ3RhYmxlJywgJ3NxbCcs CiAgICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQogICAgICAgICApCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfbm9kZV9zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMv dGVzdF90YWJsZXNfbm9kZV9zcWwucHkKaW5kZXggMTA4ODhmODIuLjhmZGIwNjhjIDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90YWJsZXNfbm9kZV9zcWwucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3Rlc3RzL3Rlc3RfdGFibGVzX25vZGVfc3FsLnB5CkBAIC0xMCw1MCArMTAsNjQgQEAKIGlt cG9ydCBvcwogaW1wb3J0IHN5cwogCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMu c3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgXAotICAgIFNRTFRlbXBsYXRlVGVzdEJhc2UK K2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGltcG9ydCBmaWxlX2FzX3RlbXBsYXRl CiAKIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPj0gMzoKICAgICBsb25nID0gaW50CiAKIAotY2xh c3MgVGVzdFRhYmxlc05vZGVTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6Ci0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoIlRoaXMgc2NlbmFyaW8gdGVzdHMgdGhhdCBhbGwgYXBwbGljYWJsZSBz cWwgdGVtcGxhdGUgdmVyc2lvbnMgY2FuICIKLSAgICAgICAgICJmZXRjaCB0YWJsZSBuYW1lcyIs IGRpY3QoKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuZGF0YWJhc2UKK2NsYXNzIFRlc3RUYWJsZXNO b2RlU3FsOgorICAgIGRlZiB0ZXN0X3JldHJpZXZhbF9vZl9hbGxfdGFibGVfbm9kZShzZWxmLCBj b250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYWxsIHBhcmFtZXRl cnMgYXJlIHByZXNlbnQKKyAgICAgICAgSXQgZXhlY3V0ZXMgYSBxdWVyeSBpbiB0aGUgZGF0YWJh c2UgdG8gcmV0cmlldmUgYWxsIHRhYmxlIG5hbWVzCisgICAgICAgICIiIgorICAgICAgICBzZXJ2 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAgIHdpdGggdGVzdF91dGls cy5EYXRhYmFzZShzZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKKyAgICAg ICAgICAgIHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGF0YWJhc2VfbmFtZSwgJ3Rl c3RfdGFibGUnKQogCi0gICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29y KToKLSAgICAgICAgcGFzcworICAgICAgICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lv biA8IDkwMTAwOgorICAgICAgICAgICAgICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQn XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0g Wyc5LjFfcGx1cyddCiAKLSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgotICAg ICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAibm9k ZXMuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2Zp bGUpCi0gICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCi0gICAgICAgIHNxbCA9IHRlbXBs YXRlLnJlbmRlcihzY2lkPXB1YmxpY19zY2hlbWFfaWQpCi0gICAgICAgIHJldHVybiBzcWwKKyAg ICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAgICAgICAg ICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUoCisgICAgICAgICAgICAg ICAgICAgIHZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICdub2Rlcy5zcWwnKQorICAgICAg ICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0ZW1wbGF0ZV9maWxlKQorICAg ICAgICAgICAgICAgIHB1YmxpY19zY2hlbWFfaWQgPSAyMjAwCisgICAgICAgICAgICAgICAgc3Fs ID0gdGVtcGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCkKIAotICAgIGRlZiBhc3Nl cnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKKyAgICAgICAgICAgICAg ICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICAgICAgY3Vyc29yLmV4 ZWN1dGUoc3FsKQorICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFs bCgpCiAKLSAgICAgICAgZmlyc3Rfcm93ID0ge30KLSAgICAgICAgZm9yIGluZGV4LCBkZXNjcmlw dGlvbiBpbiBlbnVtZXJhdGUoZGVzY3JpcHRpb25zKToKLSAgICAgICAgICAgIGZpcnN0X3Jvd1tk ZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KKyAgICAgICAgICAgICAg ICBmaXJzdF9yb3cgPSB7fQorICAgICAgICAgICAgICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24g aW4gZW51bWVyYXRlKGN1cnNvci5kZXNjcmlwdGlvbik6CisgICAgICAgICAgICAgICAgICAgIGZp cnN0X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KIAotICAg ICAgICBvaWQgPSBmaXJzdF9yb3dbJ29pZCddCi0gICAgICAgIG5hbWUgPSBmaXJzdF9yb3dbJ25h bWUnXQotICAgICAgICB0cmlnZ2VyY291bnQgPSBmaXJzdF9yb3dbJ3RyaWdnZXJjb3VudCddCi0g ICAgICAgIGhhc19lbmFibGVfdHJpZ2dlcnMgPSBmaXJzdF9yb3dbJ2hhc19lbmFibGVfdHJpZ2dl cnMnXQorICAgICAgICAgICAgICAgIG9pZCA9IGZpcnN0X3Jvd1snb2lkJ10KKyAgICAgICAgICAg ICAgICBuYW1lID0gZmlyc3Rfcm93WyduYW1lJ10KKyAgICAgICAgICAgICAgICB0cmlnZ2VyY291 bnQgPSBmaXJzdF9yb3dbJ3RyaWdnZXJjb3VudCddCisgICAgICAgICAgICAgICAgaGFzX2VuYWJs ZV90cmlnZ2VycyA9IGZpcnN0X3Jvd1snaGFzX2VuYWJsZV90cmlnZ2VycyddCiAKLSAgICAgICAg c2VsZi5hc3NlcnRJc05vdE5vbmUobG9uZyhvaWQpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs KCd0ZXN0X3RhYmxlJywgbmFtZSkKLSAgICAgICAgIyB0cmlnZ2VyY291bnQgaXMgc29tZXRpbWVz IHJldHVybmVkIGFzIGEgc3RyaW5nIGZvciBzb21lIHJlYXNvbgotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKDAsIGxvbmcodHJpZ2dlcmNvdW50KSkKLSAgICAgICAgc2VsZi5hc3NlcnRJc05vdE5v bmUobG9uZyhoYXNfZW5hYmxlX3RyaWdnZXJzKSkKKyAgICAgICAgICAgICAgICBsb25nKG9pZCkg fCBzaG91bGQubm90X2JlLm5vbmUKKyAgICAgICAgICAgICAgICBuYW1lIHwgc2hvdWxkLmJlLmVx dWFsLnRvKCd0ZXN0X3RhYmxlJykKKyAgICAgICAgICAgICAgICAjIHRyaWdnZXJjb3VudCBpcyBz b21ldGltZXMgcmV0dXJuZWQgYXMgYQorICAgICAgICAgICAgICAgICMgc3RyaW5nIGZvciBzb21l IHJlYXNvbgorICAgICAgICAgICAgICAgIGxvbmcodHJpZ2dlcmNvdW50KSB8IHNob3VsZC5iZS5l cXVhbC50bygwKQorICAgICAgICAgICAgICAgIGxvbmcoaGFzX2VuYWJsZV90cmlnZ2VycykgfCBz aG91bGQubm90X2JlLm5vbmUKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgZ2V0X3RlbXBs YXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2lu KAotICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRlbXBsYXRl cyIsICJ0YWJsZSIsICJzcWwiLAorICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f KSwgJy4uJywgJ3RlbXBsYXRlcycsICd0YWJsZScsICdzcWwnLAogICAgICAgICAgICAgdmVyc2lv biwgZmlsZW5hbWUKICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3Rf dGFibGVzX3Byb3BlcnRpZXNfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX3By b3BlcnRpZXNfc3FsLnB5CmluZGV4IGMxYjgyMDZiLi4wMDA0NmEwMiAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL3Rlc3RzL3Rlc3RfdGFibGVzX3Byb3BlcnRpZXNfc3FsLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy90ZXN0cy90ZXN0X3RhYmxlc19wcm9wZXJ0aWVzX3NxbC5weQpAQCAtMTAsNjYgKzEwLDc2IEBA CiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0 aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQotZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFwKLSAg ICBTUUxUZW1wbGF0ZVRlc3RCYXNlCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCiAKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBp bXBvcnQgZmlsZV9hc190ZW1wbGF0ZQogCiBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6CiAg ICAgbG9uZyA9IGludAogCiAKLWNsYXNzIFRlc3RUYWJsZXNQcm9wZXJ0aWVzU3FsKFNRTFRlbXBs YXRlVGVzdEJhc2UpOgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUaGlzIHNjZW5hcmlv IHRlc3RzIHRoYXQgYWxsIGFwcGxpY2FibGUgc3FsIHRlbXBsYXRlIHZlcnNpb25zIGNhbiAiCi0g ICAgICAgICAiZmV0Y2ggc29tZSBkZGwiLCBkaWN0KCkpCi0gICAgXQorQHB5dGVzdC5tYXJrLmRh dGFiYXNlCitjbGFzcyBUZXN0VGFibGVzUHJvcGVydGllc1NxbDoKKyAgICBkZWYgdGVzdF90YWJs ZV9wcm9wZXJ0aWVzX3NxbChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gYWxsIHBhcmFtZXRlcnMgYXJlIHByZXNlbnQKKyAgICAgICAgSXQgY29ycmVj dGx5IGdlbmVyYXRlcyB0aGUgU1FMCisgICAgICAgIEFuZCBleGVjdXRlcyBhZ2FpbnN0IHRoZSBk YXRhYmFzZQorICAgICAgICAiIiIKKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1sn c2VydmVyJ10KKyAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlcnZlcikgYXMgKGNv bm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgorICAgICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVf dGFibGUoc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAndGVzdF90YWJsZScpCiAKLSAgICBkZWYgX19p bml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFRlc3RUYWJsZXNQcm9wZXJ0aWVzU3FsLCBzZWxm KS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYuZGF0YWJhc2VfaWQgPSAtMQotICAgICAgICBzZWxm Lmxhc3Rfc3lzdGVtX29pZCA9IC0xCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQorICAgICAg ICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgorICAgICAgICAgICAg ICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWyc5LjFfcGx1cyddCiAKLSAgICBkZWYg YXNzZXJ0aW9ucyhzZWxmLCBmZXRjaF9yZXN1bHQsIGRlc2NyaXB0aW9ucyk6CisgICAgICAgICAg ICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICBjdXJzb3IuZXhlY3V0 ZSh1IiIiCisgICAgICAgICAgICAgICAgU0VMRUNUCisgICAgICAgICAgICAgICAgICAgIGRiLm9p ZCBhcyBkaWQsIGRhdGxhc3RzeXNvaWQKKyAgICAgICAgICAgICAgICBGUk9NCisgICAgICAgICAg ICAgICAgICAgIHBnX2RhdGFiYXNlIGRiCisgICAgICAgICAgICAgICAgV0hFUkUgZGIuZGF0bmFt ZSA9ICd7MH0nIiIiLmZvcm1hdChkYXRhYmFzZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgZGF0YWJhc2VfaWQsIGxhc3Rfc3lzdGVtX29pZCA9IGN1cnNv ci5mZXRjaG9uZSgpCiAKLSAgICAgICAgZmlyc3Rfcm93ID0ge30KLSAgICAgICAgZm9yIGluZGV4 LCBkZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoZGVzY3JpcHRpb25zKToKLSAgICAgICAgICAgIGZp cnN0X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KKyAgICAg ICAgICAgIGN1cnNvci5leGVjdXRlKAorICAgICAgICAgICAgICAgICdTRUxFQ1Qgb2lkIEZST00g cGdfY2xhc3Mgd2hlcmUgcmVsbmFtZT1cJ3Rlc3RfdGFibGVcJycpCisgICAgICAgICAgICB0YWJs ZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn dGVzdF90YWJsZScsIGZpcnN0X3Jvd1snbmFtZSddKQotICAgICAgICAjIHRyaWdnZXJjb3VudCBp cyBzb21ldGltZXMgcmV0dXJuZWQgYXMgYSBzdHJpbmcgZm9yIHNvbWUgcmVhc29uCi0gICAgICAg IHNlbGYuYXNzZXJ0RXF1YWwoMCwgbG9uZyhmaXJzdF9yb3dbJ3RyaWdnZXJjb3VudCddKSkKLSAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBmaXJzdF9yb3dbJ3R5cG5hbWUnXSkKLSAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZmlyc3Rfcm93Wydjb2xsX2luaGVyaXRzJ10pCisgICAg ICAgICAgICBmb3IgdmVyc2lvbiBpbiB2ZXJzaW9uc190b190ZXN0OgorICAgICAgICAgICAgICAg IHRlbXBsYXRlX2ZpbGUgPSBcCisgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X3RlbXBsYXRl X2ZpbGUodmVyc2lvbiwgJ3Byb3BlcnRpZXMuc3FsJykKKyAgICAgICAgICAgICAgICB0ZW1wbGF0 ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAgICAgICBwdWJs aWNfc2NoZW1hX2lkID0gMjIwMAorICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRl cihzY2lkPXB1YmxpY19zY2hlbWFfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRpZD1kYXRhYmFzZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGF0bGFzdHN5c29pZD1sYXN0X3N5c3RlbV9vaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRpZD10YWJsZV9pZAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCiAKLSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgot ICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAi cHJvcGVydGllcy5zcWwiKQotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVt cGxhdGVfZmlsZSkKLSAgICAgICAgcHVibGljX3NjaGVtYV9pZCA9IDIyMDAKLSAgICAgICAgc3Fs ID0gdGVtcGxhdGUucmVuZGVyKHNjaWQ9cHVibGljX3NjaGVtYV9pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRpZD1zZWxmLmRhdGFiYXNlX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLmxhc3Rfc3lzdGVtX29pZCwKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHRpZD1zZWxmLnRhYmxlX2lkCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApCi0gICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgICAgICAgICBjdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUo c3FsKQorICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCiAK LSAgICBkZWYgdGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgotICAgICAgICBj dXJzb3IuZXhlY3V0ZSh1IiIiCi0gICAgICAgICAgICBTRUxFQ1QKLSAgICAgICAgICAgICAgICBk Yi5vaWQgYXMgZGlkLCBkYXRsYXN0c3lzb2lkCi0gICAgICAgICAgICBGUk9NCi0gICAgICAgICAg ICAgICAgcGdfZGF0YWJhc2UgZGIKLSAgICAgICAgICAgIFdIRVJFIGRiLmRhdG5hbWUgPSAnezB9 JyIiIi5mb3JtYXQoc2VsZi5kYXRhYmFzZV9uYW1lKQotICAgICAgICAgICAgICAgICAgICAgICAp Ci0gICAgICAgIHNlbGYuZGF0YWJhc2VfaWQsIHNlbGYubGFzdF9zeXN0ZW1fb2lkID0gY3Vyc29y LmZldGNob25lKCkKKyAgICAgICAgICAgICAgICBmaXJzdF9yb3cgPSB7fQorICAgICAgICAgICAg ICAgIGZvciBpbmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGN1cnNvci5kZXNjcmlwdGlv bik6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZl dGNoX3Jlc3VsdFswXVtpbmRleF0KIAotICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIG9p ZCBGUk9NIHBnX2NsYXNzIHdoZXJlIHJlbG5hbWU9J3Rlc3RfdGFibGUnIikKLSAgICAgICAgc2Vs Zi50YWJsZV9pZCA9IGN1cnNvci5mZXRjaG9uZSgpWzBdCisgICAgICAgICAgICAgICAgZmlyc3Rf cm93WyduYW1lJ10gfCBzaG91bGQuYmUuZXF1YWwudG8oJ3Rlc3RfdGFibGUnKQorICAgICAgICAg ICAgICAgICMgdHJpZ2dlcmNvdW50IGlzIHNvbWV0aW1lcyByZXR1cm5lZCBhcyBhCisgICAgICAg ICAgICAgICAgIyBzdHJpbmcgZm9yIHNvbWUgcmVhc29uCisgICAgICAgICAgICAgICAgbG9uZyhm aXJzdF9yb3dbJ3RyaWdnZXJjb3VudCddKSB8IHNob3VsZC5iZS5lcXVhbC50bygwKQorICAgICAg ICAgICAgICAgIGZpcnN0X3Jvd1sndHlwbmFtZSddIHwgc2hvdWxkLmJlLm5vbmUKKyAgICAgICAg ICAgICAgICBmaXJzdF9yb3dbJ2NvbGxfaW5oZXJpdHMnXSB8IHNob3VsZC5iZS5lbXB0eQogCiAg ICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxl bmFtZSk6CiAgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBvcy5wYXRo LmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAidGVtcGxhdGVzIiwgInRhYmxlIiwgInNxbCIsCisg ICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnLi4nLCAndGVtcGxhdGVzJywg J3RhYmxlJywgJ3NxbCcsCiAgICAgICAgICAgICB2ZXJzaW9uLCBmaWxlbmFtZQogICAgICAgICAp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90ZW1wbGF0ZV9jcmVhdGUucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvdGVzdHMvdGVzdF90ZW1wbGF0ZV9jcmVhdGUucHkKaW5kZXggNzFmMTQ0ZDcuLmY4 YzE3OGRkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90ZW1wbGF0ZV9jcmVhdGUu cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdGVtcGxhdGVfY3JlYXRlLnB5CkBAIC0xMSw5 NyArMTEsMTA0IEBAIGltcG9ydCBvcwogaW1wb3J0IHJlCiAKIGZyb20gZmxhc2sgaW1wb3J0IEZs YXNrLCByZW5kZXJfdGVtcGxhdGUKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIGZyb20gamlu amEyIGltcG9ydCBGaWxlU3lzdGVtTG9hZGVyLCBDaG9pY2VMb2FkZXIKIAogZnJvbSBjb25maWcg aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiBmcm9tIHBnYWRtaW4gaW1wb3J0IFZlcnNpb25lZFRl bXBsYXRlTG9hZGVyCiBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVy Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQot Y2xhc3MgVGVzdFRlbXBsYXRlQ3JlYXRlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJp b3MgPSBbCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIHJlbmRlcmluZyBHcmVlblBsdW0g NS4zIHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiBubyBkaXN0cmlidXRpb24gaXMgcHJl c2VudCwgJwotICAgICAgICAgICAgJ3doZW4gbm8gcHJpbWFyeSBrZXkgaXMgcHJlc2VudCwgJwot ICAgICAgICAgICAgJ2l0IHJldHVybnMgIkRJU1RSSUJVVEVEIFJBTkRPTUxZIicsCi0gICAgICAg ICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3RhYmxlL3NxbC9ncGRi XzUuMF9wbHVzL2NyZWF0ZS5zcWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9 ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgZGF0YT1kaWN0KCkKLSAgICAgICAgICAgICAgICAp LAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX2luX3JldHVybl92YWx1ZT0nRElTVFJJQlVURUQg UkFORE9NTFknLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX25vdF9pbl9yZXR1cm5fdmFsdWU9 J0RJU1RSSUJVVEVEIEJZICcKKworCitjbGFzcyBUZXN0VGVtcGxhdGVDcmVhdGU6CisgICAgZGVm IHRlc3RfdGVtcGxhdGVfY3JlYXRlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBy ZW5kZXJpbmcgR3JlZW5QbHVtIDUuMyB0ZW1wbGF0ZQorICAgICAgICB3aGVuIG5vIGRpc3RyaWJ1 dGlvbiBpcyBwcmVzZW50CisgICAgICAgIHdoZW4gbm8gcHJpbWFyeSBrZXkgaXMgcHJlc2VudAor ICAgICAgICBpdCByZXR1cm5zICJESVNUUklCVVRFRCBSQU5ET01MWSIKKyAgICAgICAgIiIiCisK KyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihGYWtlQXBwKCkp CisKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJl c3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAndGFibGUvc3FsL2dwZGJf NS4wX3BsdXMvY3JlYXRlLnNxbCcsCisgICAgICAgICAgICAgICAgZGF0YT1kaWN0KCkKKyAgICAg ICAgICAgICkKKyAgICAgICAgICAgIHJlc3VsdF9iZWF1dGlmaWVkID0gcmUuc3ViKAorICAgICAg ICAgICAgICAgICcgKycsICcgJywgc3RyKHJlc3VsdCkucmVwbGFjZSgiXG4iLCAiICIpLnN0cmlw KCkpCisKKyAgICAgICAgICAgIHJlc3VsdF9iZWF1dGlmaWVkIHwgc2hvdWxkLmNvbnRhaW4oJ0RJ U1RSSUJVVEVEIFJBTkRPTUxZJykKKyAgICAgICAgICAgIHJlc3VsdF9iZWF1dGlmaWVkIHwgc2hv dWxkLnRvX25vdC5jb250YWluKAorICAgICAgICAgICAgICAgICdESVNUUklCVVRFRCBCWSAnCiAg ICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIHJl bmRlcmluZyBHcmVlblBsdW0gNS4zIHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiBubyBk aXN0cmlidXRpb24gaXMgcHJlc2VudCwgJwotICAgICAgICAgICAgJ3doZW4gcHJpbWFyeSBrZXkg aXMgcHJlc2VudCwgJwotICAgICAgICAgICAgJ2l0IHJldHVybnMgIkRJU1RSSUJVVEVEIEJZIChh dHRyX3ByaW1hcnlfa2V5KSInLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0 ZW1wbGF0ZV9wYXRoPSd0YWJsZS9zcWwvZ3BkYl81LjBfcGx1cy9jcmVhdGUuc3FsJywKLSAgICAg ICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGRh dGE9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5PVsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb2x1bW5zPVtkaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29s dW1uPSdhdHRyX3ByaW1hcnlfa2V5X2NvbHVtbl8xJwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApLCBkaWN0KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29s dW1uPSdhdHRyX3ByaW1hcnlfa2V5X2NvbHVtbl8yJwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApXQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAg ICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICksCi0g ICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW5fcmV0dXJuX3ZhbHVlPSdESVNUUklCVVRFRCBCWSAn Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoYXR0cl9wcmltYXJ5 X2tleV9jb2x1bW5fMSwgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnYXR0cl9wcmltYXJ5X2tleV9jb2x1bW5fMiknLAotICAgICAgICAgICAgICAgIGV4cGVjdGVk X25vdF9pbl9yZXR1cm5fdmFsdWU9J0RJU1RSSUJVVEVEIFJBTkRPTUxZJworCisgICAgZGVmIHRl c3RfdGVtcGxhdGVfY3JlYXRlX3ByaW1hcnlfa2V5KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiByZW5kZXJpbmcgR3JlZW5QbHVtIDUuMyB0ZW1wbGF0ZQorICAgICAgICB3aGVuIG5v IGRpc3RyaWJ1dGlvbiBpcyBwcmVzZW50CisgICAgICAgIHdoZW4gcHJpbWFyeSBrZXkgaXMgcHJl c2VudAorICAgICAgICBpdCByZXR1cm5zICJESVNUUklCVVRFRCBCWSAoYXR0cl9wcmltYXJ5X2tl eSkiCisgICAgICAgICIiIgorCisgICAgICAgIHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxh dGVMb2FkZXIoRmFrZUFwcCgpKQorCisgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0 KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAg ICAgJ3RhYmxlL3NxbC9ncGRiXzUuMF9wbHVzL2NyZWF0ZS5zcWwnLAorICAgICAgICAgICAgICAg IGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXk9WworICAgICAgICAg ICAgICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5z PVtkaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW49J2F0dHJfcHJp bWFyeV9rZXlfY29sdW1uXzEnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwgZGljdCgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uPSdhdHRyX3ByaW1hcnlfa2V5 X2NvbHVtbl8yJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICldCisgICAgICAgICAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICApCiAg ICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIHJl bmRlcmluZyBHcmVlblBsdW0gNS4zIHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiBkaXN0 cmlidXRpb24gaXMgcHJlc2VudCwgJwotICAgICAgICAgICAgJ2l0IHJldHVybnMgIkRJU1RSSUJV VEVEIEJZIChhdHRyMSwgYXR0cjIsIGF0dHI0KSInLAotICAgICAgICAgICAgZGljdCgKLSAgICAg ICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSd0YWJsZS9zcWwvZ3BkYl81LjBfcGx1cy9jcmVhdGUu c3FsJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAg ICAgICAgICAgIGRhdGE9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgICAgIGRpc3RyaWJ1dGlv bj1bMSwgMiwgNF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPVsKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICB7J25hbWUnOiAnYXR0cjEnfSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICB7J25hbWUnOiAnYXR0cjInfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7J25hbWUnOiAnYXR0cjMnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J25hbWUn OiAnYXR0cjQnfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB7J25hbWUnOiAnYXR0cjUn fSwKLSAgICAgICAgICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgICAgICAgKQotICAg ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW5fcmV0dXJuX3ZhbHVl PSdESVNUUklCVVRFRCBCWSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICcoYXR0cjEsIGF0dHIyLCBhdHRyNCknLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX25v dF9pbl9yZXR1cm5fdmFsdWU9J0RJU1RSSUJVVEVEIFJBTkRPTUxZJworICAgICAgICAgICAgcmVz dWx0X2JlYXV0aWZpZWQgPSByZS5zdWIoCisgICAgICAgICAgICAgICAgJyArJywgJyAnLCBzdHIo cmVzdWx0KS5yZXBsYWNlKCJcbiIsICIgIikuc3RyaXAoKSkKKworICAgICAgICAgICAgcmVzdWx0 X2JlYXV0aWZpZWQgfCBzaG91bGQuY29udGFpbignRElTVFJJQlVURUQgQlkgJworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKGF0dHJfcHJpbWFyeV9rZXlf Y29sdW1uXzEsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2F0dHJfcHJpbWFyeV9rZXlfY29sdW1uXzIpJykKKyAgICAgICAgICAgIHJlc3VsdF9iZWF1 dGlmaWVkIHwgc2hvdWxkLnRvX25vdC5jb250YWluKAorICAgICAgICAgICAgICAgICdESVNUUklC VVRFRCBSQU5ET01MWScKICAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICBdCiAKLSAgICBk ZWYgc2V0VXAoc2VsZik6CisgICAgZGVmIHRlc3RfdGVtcGxhdGVfY3JlYXRlX2Rpc3RyaWJ1dGlv bihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIEdyZWVuUGx1bSA1 LjMgdGVtcGxhdGUKKyAgICAgICAgd2hlbiBkaXN0cmlidXRpb24gaXMgcHJlc2VudAorICAgICAg ICBpdCByZXR1cm5zICJESVNUUklCVVRFRCBCWSAoYXR0cjEsIGF0dHIyLCBhdHRyNCkiCisgICAg ICAgICIiIgorCiAgICAgICAgIHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIo RmFrZUFwcCgpKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6CiAgICAgICAgIHdpdGggRmFrZUFw cCgpLmFwcF9jb250ZXh0KCk6CiAgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUo Ci0gICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoLCAqKnNlbGYuaW5wdXRfcGFyYW1l dGVycykKKyAgICAgICAgICAgICAgICAndGFibGUvc3FsL2dwZGJfNS4wX3BsdXMvY3JlYXRlLnNx bCcsCisgICAgICAgICAgICAgICAgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAgICAgICBkaXN0 cmlidXRpb249WzEsIDIsIDRdLAorICAgICAgICAgICAgICAgICAgICBjb2x1bW5zPVsKKyAgICAg ICAgICAgICAgICAgICAgICAgIHsnbmFtZSc6ICdhdHRyMSd9LAorICAgICAgICAgICAgICAgICAg ICAgICAgeyduYW1lJzogJ2F0dHIyJ30sCisgICAgICAgICAgICAgICAgICAgICAgICB7J25hbWUn OiAnYXR0cjMnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsnbmFtZSc6ICdhdHRyNCd9LAor ICAgICAgICAgICAgICAgICAgICAgICAgeyduYW1lJzogJ2F0dHI1J30sCisgICAgICAgICAgICAg ICAgICAgIF0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCiAgICAgICAgICAgICBy ZXN1bHRfYmVhdXRpZmllZCA9IHJlLnN1YigKICAgICAgICAgICAgICAgICAnICsnLCAnICcsIHN0 cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiAiKS5zdHJpcCgpKQotICAgICAgICAgICAgaWYgaGFz YXR0cihzZWxmLCAnZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlJyk6Ci0gICAgICAgICAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChyZXN1bHRfYmVhdXRpZmllZCwgc2VsZi5leHBlY3RlZF9yZXR1cm5fdmFs dWUpCi0gICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdleHBlY3RlZF9pbl9yZXR1cm5fdmFs dWUnKToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKHNlbGYuZXhwZWN0ZWRfaW5fcmV0 dXJuX3ZhbHVlLCByZXN1bHRfYmVhdXRpZmllZCkKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2Vs ZiwgJ2V4cGVjdGVkX25vdF9pbl9yZXR1cm5fdmFsdWUnKToKLSAgICAgICAgICAgICAgICBzZWxm LmFzc2VydE5vdEluKAotICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX25vdF9pbl9y ZXR1cm5fdmFsdWUsIHJlc3VsdF9iZWF1dGlmaWVkKQorCisgICAgICAgICAgICByZXN1bHRfYmVh dXRpZmllZCB8IHNob3VsZC5jb250YWluKCdESVNUUklCVVRFRCBCWSAnCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoYXR0cjEsIGF0dHIyLCBhdHRyNCkn KQorICAgICAgICAgICAgcmVzdWx0X2JlYXV0aWZpZWQgfCBzaG91bGQudG9fbm90LmNvbnRhaW4o CisgICAgICAgICAgICAgICAgJ0RJU1RSSUJVVEVEIFJBTkRPTUxZJworICAgICAgICAgICAgKQog CiAKIGNsYXNzIEZha2VBcHAoRmxhc2spOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rl c3RfdHJpZ2dlcl9nZXRfb2lkX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RyaWdnZXJf Z2V0X29pZF9zcWwucHkKaW5kZXggODM5ZDlkZmYuLjg1ZDZiMzhjIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvdGVzdHMvdGVzdF90cmlnZ2VyX2dldF9vaWRfc3FsLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZXN0cy90ZXN0X3RyaWdnZXJfZ2V0X29pZF9zcWwucHkKQEAgLTEwLDQ3ICsxMCw1OCBAQAogaW1w b3J0IG9zCiAKIGltcG9ydCBqaW5qYTIKLWZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNlIGltcG9ydCBcCi0gICAgU1FMVGVtcGxhdGVUZXN0QmFz ZQoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVncmVzc2lv bi5weXRob25fdGVzdF91dGlscy50ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxh dGUKIAogCi1jbGFzcyBUZXN0VHJpZ2dlckdldE9pZFNxbChTUUxUZW1wbGF0ZVRlc3RCYXNlKToK LSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnVGVzdCBUcmlnZ2VyIHRvIHJldHJpZXZlIE9J RCBTUUwgZmlsZScsIGRpY3QoKSkKLSAgICBdCitAcHl0ZXN0Lm1hcmsuZGF0YWJhc2UKK2NsYXNz IFRlc3RUcmlnZ2VyR2V0T2lkU3FsOgorICAgIGRlZiB0ZXN0X2NvbHVtbl9hY2xfc3FsKHNlbGYs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhbGwgcGFyYW1l dGVycyBhcmUgcHJlc2VudAorICAgICAgICBJdCBjb3JyZWN0bHkgZ2VuZXJhdGVzIHRoZSBTUUwK KyAgICAgICAgQW5kIGV4ZWN1dGVzIGFnYWluc3QgdGhlIGRhdGFiYXNlCisgICAgICAgICIiIgor ICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICB3aXRo IHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFt ZSk6CisgICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNl X25hbWUsICd0ZXN0X3RhYmxlJykKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAg c3VwZXIoVGVzdFRyaWdnZXJHZXRPaWRTcWwsIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2Vs Zi50YWJsZV9pZCA9IC0xCi0gICAgICAgIHNlbGYuY29sdW1uX2lkID0gLTEKKyAgICAgICAgICAg IGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24gPCA5MDEwMDoKKyAgICAgICAgICAgICAgICB2 ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0J10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsnOS4xX3BsdXMnXQogCi0gICAgZGVmIHRlc3Rf c2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29yKToKLSAgICAgICAgY3Vyc29yLmV4ZWN1dGUo IlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVfaWQsICIKLSAgICAgICAgICAgICAgICAgICAg ICAgInBnX2F0dHJpYnV0ZS5hdHRudW0gQVMgY29sdW1uX2lkICIKLSAgICAgICAgICAgICAgICAg ICAgICAgIkZST00gcGdfY2xhc3MgSk9JTiBwZ19hdHRyaWJ1dGUgT04gIgotICAgICAgICAgICAg ICAgICAgICAgICAiYXR0cmVsaWQ9cGdfY2xhc3Mub2lkICIKLSAgICAgICAgICAgICAgICAgICAg ICAgIldIRVJFIHBnX2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIgotICAgICAgICAgICAgICAg ICAgICAgICAiIEFORCBwZ19hdHRyaWJ1dGUuYXR0bmFtZSA9ICdzb21lX2NvbHVtbiciKQotICAg ICAgICBzZWxmLnRhYmxlX2lkLCBzZWxmLmNvbHVtbl9pZCA9IGN1cnNvci5mZXRjaG9uZSgpCisg ICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICBjdXJz b3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCwgIgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgInBnX2F0dHJpYnV0ZS5hdHRudW0gQVMgY29sdW1uX2lkICIKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICJGUk9NIHBnX2NsYXNzIEpPSU4gcGdfYXR0cmlidXRl IE9OICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdHRyZWxpZD1wZ19jbGFzcy5vaWQg IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBnX2NsYXNzLnJlbG5hbWU9J3Rl c3RfdGFibGUnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBBTkQgcGdfYXR0cmlidXRl LmF0dG5hbWUgPSAnc29tZV9jb2x1bW4nIikKKyAgICAgICAgICAgIHRhYmxlX2lkLCBjb2x1bW5f aWQgPSBjdXJzb3IuZmV0Y2hvbmUoKQogCi0gICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJz aW9uKToKLSAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVy c2lvbiwgImdldF9vaWQuc3FsIikKLSAgICAgICAgamluamEyLmZpbHRlcnMuRklMVEVSU1sncXRM aXRlcmFsJ10gPSBsYW1iZGEgdmFsdWU6ICJOVUxMIgotICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVf YXNfdGVtcGxhdGUodGVtcGxhdGVfZmlsZSkKKyAgICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZl cnNpb25zX3RvX3Rlc3Q6CisgICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0 X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgJ2dldF9vaWQuc3FsJykKKyAgICAgICAgICAgICAgICBq aW5qYTIuZmlsdGVycy5GSUxURVJTWydxdExpdGVyYWwnXSA9IGxhbWJkYSB2YWx1ZTogJ05VTEwn CisgICAgICAgICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2Zp bGUpCiAKLSAgICAgICAgc3FsID0gdGVtcGxhdGUucmVuZGVyKGRhdGE9eyduYW1lJzogTm9uZX0s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9c2VsZi50YWJsZV9pZAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRl LnJlbmRlcigKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17J25hbWUnOiBOb25lfSwKKyAgICAg ICAgICAgICAgICAgICAgdGlkPXRhYmxlX2lkCisgICAgICAgICAgICAgICAgKQogCi0gICAgICAg IHJldHVybiBzcWwKKyAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp CisgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQorICAgICAgICAgICAgICAgIGZl dGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCiAKLSAgICBkZWYgYXNzZXJ0aW9ucyhzZWxm LCBmZXRjaF9yZXN1bHQsIGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo MCwgbGVuKGZldGNoX3Jlc3VsdCkpCisgICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0IHwgc2hv dWxkLmJlLmVtcHR5CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAgZGVmIGdldF90ZW1wbGF0ZV9m aWxlKHZlcnNpb24sIGZpbGVuYW1lKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguam9pbigKLSAg ICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICJ0ZW1wbGF0ZXMiLCAi dHJpZ2dlciIsICJzcWwiLAorICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwg Jy4uJywgJ3RlbXBsYXRlcycsICd0cmlnZ2VyJywgJ3NxbCcsCiAgICAgICAgICAgICB2ZXJzaW9u LCBmaWxlbmFtZQogICAgICAgICApCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF90 cmlnZ2VyX25vZGVzX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZXN0cy90ZXN0X3RyaWdnZXJfbm9kZXNf c3FsLnB5CmluZGV4IGMzNTUzOTEyLi5jZWYxZDM3NyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl c3RzL3Rlc3RfdHJpZ2dlcl9ub2Rlc19zcWwucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3Rf dHJpZ2dlcl9ub2Rlc19zcWwucHkKQEAgLTksMzkgKzksNTAgQEAKIAogaW1wb3J0IG9zCiAKLWZy b20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy5zcWxfdGVtcGxhdGVfdGVzdF9iYXNlIGlt cG9ydCBcCi0gICAgU1FMVGVtcGxhdGVUZXN0QmFzZQotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190ZW1wbGF0ZQotCi0KLWNs YXNzIFRlc3RUcmlnZ2VyTm9kZXNTcWwoU1FMVGVtcGxhdGVUZXN0QmFzZSk6Ci0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAoJ1Rlc3QgVHJpZ2dlciBOb2RlcyBTUUwgZmlsZScsIGRpY3QoKSkK LSAgICBdCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKLSAgICBk ZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFRlc3RUcmlnZ2VyTm9kZXNTcWwsIHNl bGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IC0xCi0KLSAgICBkZWYgdGVz dF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgotICAgICAgICBjdXJzb3IuZXhlY3V0 ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCAiCi0gICAgICAgICAgICAgICAgICAg ICAgICJGUk9NIHBnX2NsYXNzICIKLSAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBnX2Ns YXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIikKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1cnNv ci5mZXRjaG9uZSgpWzBdCi0KLSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgot ICAgICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCAi bm9kZXMuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRl X2ZpbGUpCi0gICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcih0aWQ9c2VsZi50YWJsZV9pZCkK K2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscworZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmls ZV9hc190ZW1wbGF0ZQogCi0gICAgICAgIHJldHVybiBzcWwKIAotICAgIGRlZiBhc3NlcnRpb25z KHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAgc2VsZi5hc3NlcnRF cXVhbCgwLCBsZW4oZmV0Y2hfcmVzdWx0KSkKK0BweXRlc3QubWFyay5kYXRhYmFzZQorY2xhc3Mg VGVzdFRyaWdnZXJOb2Rlc1NxbDoKKyAgICBkZWYgdGVzdF90cmlnZ2VyX25vZGVzX3NxbChzZWxm LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYWxsIHBhcmFt ZXRlcnMgYXJlIHByZXNlbnQKKyAgICAgICAgSXQgY29ycmVjdGx5IGdlbmVyYXRlcyB0aGUgU1FM CisgICAgICAgIEFuZCBleGVjdXRlcyBhZ2FpbnN0IHRoZSBkYXRhYmFzZQorICAgICAgICAiIiIK KyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgd2l0 aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25h bWUpOgorICAgICAgICAgICAgdGVzdF91dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYXRhYmFz ZV9uYW1lLCAndGVzdF90YWJsZScpCisKKyAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2VydmVy X3ZlcnNpb24gPCA5MDEwMDoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWydk ZWZhdWx0J10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9f dGVzdCA9IFsnOS4xX3BsdXMnXQorCisgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1 cnNvcigpCisgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBB UyB0YWJsZV9pZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBwZ19jbGFzcyAi CisgICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVz dF90YWJsZSciKQorICAgICAgICAgICAgdGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQor CisgICAgICAgICAgICBmb3IgdmVyc2lvbiBpbiB2ZXJzaW9uc190b190ZXN0OgorICAgICAgICAg ICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sICdu b2Rlcy5zcWwnKQorICAgICAgICAgICAgICAgIHRlbXBsYXRlID0gZmlsZV9hc190ZW1wbGF0ZSh0 ZW1wbGF0ZV9maWxlKQorICAgICAgICAgICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcih0aWQ9 dGFibGVfaWQpCisKKyAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigp CisgICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQorICAgICAgICAgICAgICAgIGZl dGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCisKKyAgICAgICAgICAgICAgICBmZXRjaF9y ZXN1bHQgfCBzaG91bGQuYmUuZW1wdHkKIAogICAgIEBzdGF0aWNtZXRob2QKICAgICBkZWYgZ2V0 X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgZmlsZW5hbWUpOgogICAgICAgICByZXR1cm4gb3MucGF0 aC5qb2luKAotICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgInRl bXBsYXRlcyIsICJ0cmlnZ2VyIiwgInNxbCIsCisgICAgICAgICAgICBvcy5wYXRoLmRpcm5hbWUo X19maWxlX18pLCAnLi4nLCAndGVtcGxhdGVzJywgJ3RyaWdnZXInLCAnc3FsJywKICAgICAgICAg ICAgIHZlcnNpb24sIGZpbGVuYW1lCiAgICAgICAgICkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90 ZXN0cy90ZXN0X3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rlc3RzL3Rlc3RfdXRpbHMucHkKaW5kZXgg YTRkZDViNjkuLmMxMGEyNjAyIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF91dGls cy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVzdHMvdGVzdF91dGlscy5weQpAQCAtNyw2NiArNyw2MyBA QAogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIGltcG9ydCBzeXMKKworZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnNjaGVtYXMudGFibGVzIGltcG9ydCBcCiAgICAgQmFzZVRhYmxlVmlldwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIGlm IHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6Ci0gICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaCwg TWFnaWNNb2NrCisgICAgZnJvbSBtb2NrIGltcG9ydCBNYWdpY01vY2ssIHBhdGNoCiBlbHNlOgot ICAgIGZyb20gdW5pdHRlc3QubW9jayBpbXBvcnQgcGF0Y2gsIE1hZ2ljTW9jaworICAgIGZyb20g dW5pdHRlc3QubW9jayBpbXBvcnQgTWFnaWNNb2NrLCBwYXRjaAogCiAKLWNsYXNzIFRlc3RCYXNl VmlldyhCYXNlVGFibGVWaWV3KToKK2NsYXNzIEJhc2VWaWV3KEJhc2VUYWJsZVZpZXcpOgogICAg IEBCYXNlVGFibGVWaWV3LmNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiB0ZXN0KHNlbGYsIGRp ZCwgc2lkKToKICAgICAgICAgcGFzcwogCiAKIGNsYXNzIFRlc3RVdGlscyhCYXNlVGVzdEdlbmVy YXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ1Rlc3Qgd3JhcHBpbmcgZnVuY3Rp b24nLCBkaWN0KHRlc3Q9J3dyYXAnKSkKLSAgICBdCisgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzJworICAgICAgICAgICAnLmRhdGFiYXNlcy5zY2hlbWFz LnRhYmxlcy51dGlscycKKyAgICAgICAgICAgJy5nZXRfZHJpdmVyJykKKyAgICBkZWYgdGVzdF93 cmFwcGluZ19mdW5jdGlvbihzZWxmLCBnZXRfZHJpdmVyX21vY2spOgorICAgICAgICAiIiIKKyAg ICAgICAgSXQgcmV0dXJucyBzdHViYmVkIHZhbHVlcyBmb3IgdGVzdHMKKyAgICAgICAgIiIiCisK KyAgICAgICAgc3ViamVjdCA9IEJhc2VWaWV3KGNtZD0nc29tZXRoaW5nJykKKyAgICAgICAgZ2V0 X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5l Y3Rpb25fbWFuYWdlcj1NYWdpY01vY2soCisgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPU1h Z2ljTW9jaygKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbj1NYWdpY01vY2soKSwKKyAg ICAgICAgICAgICAgICAgICAgZGJfaW5mbz17CisgICAgICAgICAgICAgICAgICAgICAgICAxOiBk aWN0KGRhdGxhc3RzeXNvaWQ9RmFsc2UpCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAg ICAgICAgICAgICAgIHZlcnNpb249MTAsCisgICAgICAgICAgICAgICAgICAgIHNlcnZlcl90eXBl PSdncGRiJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICksCisgICAgICAgICAgICBx dEluZGVudD1NYWdpY01vY2soKSwKKyAgICAgICAgICAgIHF0VHlwZUlkZW50PU1hZ2ljTW9jaygp CisgICAgICAgICkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBpZiBzZWxmLnRl c3QgPT0gJ3dyYXAnOgotICAgICAgICAgICAgc2VsZi5fX3dyYXBfdGVzdHMoKQorICAgICAgICBz dWJqZWN0LnRlc3QoZGlkPTEsIHNpZD0yKQogCi0gICAgZGVmIF9fd3JhcF90ZXN0cyhzZWxmKToK LSAgICAgICAgc3ViamVjdCA9IFRlc3RCYXNlVmlldyhjbWQ9J3NvbWV0aGluZycpCi0gICAgICAg IHdpdGggcGF0Y2goJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMnCi0gICAgICAgICAgICAgICAgICAgJy50YWJsZXMudXRpbHMuZ2V0X2RyaXZl cicpIGFzIGdldF9kcml2ZXJfbW9jazoKLSAgICAgICAgICAgIGdldF9kcml2ZXJfbW9jay5yZXR1 cm5fdmFsdWUgPSBNYWdpY01vY2soCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2Vy PU1hZ2ljTW9jaygKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPU1hZ2ljTW9jaygK LSAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb249TWFnaWNNb2NrKCksCi0gICAgICAg ICAgICAgICAgICAgICAgICBkYl9pbmZvPXsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAx OiBkaWN0KGRhdGxhc3RzeXNvaWQ9RmFsc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICB9LAot ICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj0xMCwKLSAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlcl90eXBlPSdncGRiJwotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg ICAgICAgKSwKLSAgICAgICAgICAgICAgICBxdEluZGVudD1NYWdpY01vY2soKSwKLSAgICAgICAg ICAgICAgICBxdFR5cGVJZGVudD1NYWdpY01vY2soKQotICAgICAgICAgICAgKQotICAgICAgICAg ICAgc3ViamVjdC50ZXN0KGRpZD0xLCBzaWQ9MikKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwoCi0gICAgICAgICAgICAgICAgc3ViamVjdC50YWJsZV90ZW1wbGF0ZV9wYXRoLCAndGFibGUv c3FsLyNncGRiIzEwIycpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAg ICAgICAgIHN1YmplY3QuZGF0YV90eXBlX3RlbXBsYXRlX3BhdGgsICdkYXRhdHlwZS9zcWwvI2dw ZGIjMTAjJykKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAg c3ViamVjdC5jaGVja19jb25zdHJhaW50X3RlbXBsYXRlX3BhdGgsCi0gICAgICAgICAgICAgICAg J2NoZWNrX2NvbnN0cmFpbnQvc3FsLyNncGRiIzEwIycpCi0gICAgICAgICAgICBzZWxmLmFzc2Vy dEVxdWFsKAotICAgICAgICAgICAgICAgIHN1YmplY3QuZXhjbHVzaW9uX2NvbnN0cmFpbnRfdGVt cGxhdGVfcGF0aCwKLSAgICAgICAgICAgICAgICAnZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsLyNn cGRiIzEwIycpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAg IHN1YmplY3QuZm9yZWlnbl9rZXlfdGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAgICAgICAnZm9y ZWlnbl9rZXkvc3FsLyNncGRiIzEwIycpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAot ICAgICAgICAgICAgICAgIHN1YmplY3QuaW5kZXhfdGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAg ICAgICAnaW5kZXgvc3FsLyNncGRiIzEwIycpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs KAotICAgICAgICAgICAgICAgIHN1YmplY3QudHJpZ2dlcl90ZW1wbGF0ZV9wYXRoLAotICAgICAg ICAgICAgICAgICd0cmlnZ2VyL3NxbC8jZ3BkYiMxMCMnKQorICAgICAgICBzdWJqZWN0LnRhYmxl X3RlbXBsYXRlX3BhdGggfCBcCisgICAgICAgICAgICBzaG91bGQuZXF1YWwoJ3RhYmxlL3NxbC8j Z3BkYiMxMCMnKQorICAgICAgICBzdWJqZWN0LmRhdGFfdHlwZV90ZW1wbGF0ZV9wYXRoIHwgXAor ICAgICAgICAgICAgc2hvdWxkLmVxdWFsKCdkYXRhdHlwZS9zcWwvI2dwZGIjMTAjJykKKyAgICAg ICAgc3ViamVjdC5jaGVja19jb25zdHJhaW50X3RlbXBsYXRlX3BhdGggfCBcCisgICAgICAgICAg ICBzaG91bGQuZXF1YWwoJ2NoZWNrX2NvbnN0cmFpbnQvc3FsLyNncGRiIzEwIycpCisgICAgICAg IHN1YmplY3QuZXhjbHVzaW9uX2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCB8IFwKKyAgICAgICAg ICAgIHNob3VsZC5lcXVhbCgnZXhjbHVzaW9uX2NvbnN0cmFpbnQvc3FsLyNncGRiIzEwIycpCisg ICAgICAgIHN1YmplY3QuZm9yZWlnbl9rZXlfdGVtcGxhdGVfcGF0aCB8IFwKKyAgICAgICAgICAg IHNob3VsZC5lcXVhbCgnZm9yZWlnbl9rZXkvc3FsLyNncGRiIzEwIycpCisgICAgICAgIHN1Ympl Y3QuaW5kZXhfdGVtcGxhdGVfcGF0aCB8IFwKKyAgICAgICAgICAgIHNob3VsZC5lcXVhbCgnaW5k ZXgvc3FsLyNncGRiIzEwIycpCisgICAgICAgIHN1YmplY3QudHJpZ2dlcl90ZW1wbGF0ZV9wYXRo IHwgXAorICAgICAgICAgICAgc2hvdWxkLmVxdWFsKCd0cmlnZ2VyL3NxbC8jZ3BkYiMxMCMnKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFi bGVzL3RyaWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDVmMDc0MTYzLi41OTAwMjZhZCAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90cmlnZ2Vycy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMSArNiwzIEBACiAjIFRo aXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwog IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFRyaWdnZXJzVGVzdEdlbmVyYXRvcihCYXNlVGVzdEdl bmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgcmV0dXJuIFtdCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90cmlnZ2Vyc19hZGQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90cmlnZ2Vyc19hZGQucHkKaW5kZXggNzRh OTI2MjEuLmNjYTNiY2U1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMvdGVz dF90cmlnZ2Vyc19hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJp Z2dlcnNfYWRkLnB5CkBAIC0xMCw3MiArMTAsNjcgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVp ZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5mdW5j dGlvbnMudGVzdHMgXAogICAgIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVt YXMudGFibGVzLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCiBmcm9t IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMu dGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKLWZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxz IGFzIFwKLSAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9y dCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9k aWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMg YXMgdXRpbHMKIAogCi1jbGFzcyBUcmlnZ2Vyc0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIG5ldyB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5v ZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0g WwotICAgICAgICAoJ0FkZCB0cmlnZ2VyIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3Ry aWdnZXIvb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGIn XSkKK2NsYXNzIFRlc3RUcmlnZ2Vyc0FkZDoKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJl cygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF90cmlnZ2VyX2Fk ZChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2Vu ZGluZyBwb3N0IHJlcXVlc3QgdG8gYWRkIHRyaWdnZXIKKyAgICAgICAgaXQgcmV0dXJucyAyMDAg c3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90cmlnZ2VyL29i ai8nCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQn XQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBz ZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCisKKyAg ICAgICAgZGJfbmFtZSA9IHNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKyAgICAgICAgc2VydmVyX2lk ID0gc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIGRiX2lkID0gc2VydmVyX2RhdGFb J2RiX2lkJ10KKyAgICAgICAgc2NoZW1hX2lkID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9pZCddCisg ICAgICAgIHNjaGVtYV9uYW1lID0gc2VydmVyX2RhdGFbJ3NjaGVtYV9uYW1lJ10KIAotICAgIGRl ZiBzZXRVcChzZWxmKToKLSAgICAgICAgc3VwZXIoVHJpZ2dlcnNBZGRUZXN0Q2FzZSwgc2VsZiku c2V0VXAoKQotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFz ZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGlj dFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNl cnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAg ICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxz LlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2Nv blsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEgdHJpZ2dlci4iKQotICAgICAgICBz ZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KLSAgICAgICAgc2NoZW1hX3Jl c3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYg bm90IHNjaGVtYV9yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0cmlnZ2VyLiIpCi0gICAgICAgIHNlbGYudGFi bGVfbmFtZSA9ICJ0YWJsZV90cmlnZ2VyXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQot ICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNl cnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNlbGYu ZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY19hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSBcCi0gICAgICAgICAgICB0cmlnZ2VyX2Z1 bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uX3dpdGhfdHJpZ2dlcigKLSAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBzZWxm LmZ1bmNfbmFtZSkKKyAgICAgICAgdGFibGVfbmFtZSA9ICJ0YWJsZV90cmlnZ2VyXyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICB0YWJsZV9pZCA9IHRhYmxlc191dGlscy5j cmVhdGVfdGFibGUoc2VydmVyLCBkYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0YWJsZV9uYW1lKQorICAgICAgICBmdW5jX25hbWUgPSAidHJp Z2dlcl9mdW5jX2FkZF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHRyaWdn ZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb25fd2l0aF90cmlnZ2VyKAorICAg ICAgICAgICAgc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwgZnVuY19uYW1lKQogCi0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCB0cmlnZ2Vy IHVuZGVyIHRhYmxlIG5vZGUuIiIiCiAgICAgICAgIHRyaWdnZXJfbmFtZSA9ICJ0ZXN0X3RyaWdn ZXJfYWRkXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBkYXRhID0geyJu YW1lIjogdHJpZ2dlcl9uYW1lLAogICAgICAgICAgICAgICAgICJpc19yb3dfdHJpZ2dlciI6IFRy dWUsCiAgICAgICAgICAgICAgICAgImZpcmVzIjogIkJFRk9SRSIsCiAgICAgICAgICAgICAgICAg ImNvbHVtbnMiOiBbXSwKLSAgICAgICAgICAgICAgICAidGZ1bmN0aW9uIjogInswfS57MX0iLmZv cm1hdChzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZnVuY19uYW1lKSwKKyAgICAgICAgICAgICAgICAidGZ1bmN0aW9u IjogInswfS57MX0iLmZvcm1hdChzY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmdW5jX25hbWUpLAogICAgICAgICAgICAgICAgICJldm50 X2luc2VydCI6IFRydWUKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgIHJlc3BvbnNlID0gc2Vs Zi50ZXN0ZXIucG9zdCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9LyIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBz ZWxmLnRhYmxlX2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KAorICAg ICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vIi5mb3JtYXQodXJsLCB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJfaWQsIGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZW1hX2lkLCB0YWJsZV9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMo ZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0g ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNl Ci0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5z ZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hv dWxkLmVxdWFsKDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0 X3RyaWdnZXJzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdn ZXJzX2RlbGV0ZS5weQppbmRleCBmN2U3MTQxMi4uZDhkNTMwOTIgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rh Ymxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX2RlbGV0ZS5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdHJpZ2dlcnMvdGVzdHMvdGVzdF90cmlnZ2Vyc19kZWxldGUucHkKQEAgLTksNzYgKzksNzIg QEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMuZnVuY3Rpb25zLnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dl cl9mdW5jc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRh Ymxlc191dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz Ci1mcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCi0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJz X3V0aWxzCiAKIAotY2xhc3MgVHJpZ2dlcnNEZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5v ZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0g WwotICAgICAgICAoJ0RlbGV0ZSB0cmlnZ2VyIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2Vy L3RyaWdnZXIvb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dw ZGInXSkKK2NsYXNzIFRlc3RUcmlnZ2Vyc0RlbGV0ZToKKworICAgIEBweXRlc3QubWFyay51c2Vm aXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25uZWN0aW9uJykKKyAgICBkZWYgdGVzdF90cmln Z2VyX2RlbGV0ZShzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gc2VuZGluZyBwb3N0IHJlcXVlc3QgdG8gYWRkIHRyaWdnZXIKKyAgICAgICAgaXQgcmV0 dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90 cmlnZ2VyL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQor ICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlv biddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFRyaWdnZXJzRGVsZXRl VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9 IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2lu Zm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAg ICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSB0cmln Z2VyLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJd Ci0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQot ICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2Vs Zi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBkYl9uYW1lID0g c2VydmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsn c2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAg ICBzY2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25h bWUgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQorCisgICAgICAgIHNjaGVtYV9yZXNwb25z ZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZXJ2ZXIsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUp CiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHRyaWdnZXIuIikKLSAg ICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX3RyaWdnZXJfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRl X3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkK LSAgICAgICAgc2VsZi5mdW5jX25hbWUgPSAidHJpZ2dlcl9mdW5jX2RlbGV0ZV8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYuZnVuY3Rpb25faW5mbyA9IFwKLSAgICAg ICAgICAgIHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb25fd2l0aF90 cmlnZ2VyKAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYu c2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lKQotICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSA9 ICJ0ZXN0X3RyaWdnZXJfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAg ICAgICBzZWxmLnRyaWdnZXJfaWQgPSB0cmlnZ2Vyc191dGlscy5jcmVhdGVfdHJpZ2dlcihzZWxm LnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYudHJpZ2dlcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmNfbmFtZSkKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0cmlnZ2VyLiIpCisg ICAgICAgIHRhYmxlX25hbWUgPSAidGFibGVfdHJpZ2dlcl8lcyIgJSAoc3RyKHV1aWQudXVpZDQo KSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNl cnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY19hZGRf JXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICB0cmlnZ2VyX2Z1bmNzX3V0aWxz LmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uX3dpdGhfdHJpZ2dlcigKKyAgICAgICAgICAgIHNlcnZl ciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAgICB0cmlnZ2VyX25h bWUgPSAidGVzdF90cmlnZ2VyX2FkZF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgdHJpZ2dlcl9pZCA9IHRyaWdnZXJzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyKHNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz Y2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRhYmxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0cmlnZ2VyX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmdW5jX25hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0cmlnZ2VyIHVuZGVyIHRh YmxlIG5vZGUuIiIiCi0gICAgICAgIHRyaWdnZXJfcmVzcG9uc2UgPSB0cmlnZ2Vyc191dGlscy52 ZXJpZnlfdHJpZ2dlcihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudHJpZ2dlcl9u YW1lKQorICAgICAgICB0cmlnZ2VyX3Jlc3BvbnNlID0gdHJpZ2dlcnNfdXRpbHMudmVyaWZ5X3Ry aWdnZXIoc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfbmFtZSkKICAgICAgICAgaWYgbm90IHRy aWdnZXJfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSB0cmlnZ2VyIHRvIGRlbGV0ZS4iKQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLmRlbGV0ZSgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X2lkLCBzZWxmLnRhYmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi50cmlnZ2VyX2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2Ns aWVudC5kZWxldGUoCisgICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fS97Nn0iLmZv cm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfaWQsIHRhYmxlX2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcl9pZCks CiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQogCi0gICAgZGVmIHRl YXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAg IGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmVxdWFs KDIwMCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJz X2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3RyaWdnZXJzX2dldC5weQpp bmRleCBlMjNiNjE0OS4uODM5ZmYwM2IgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90 ZXN0cy90ZXN0X3RyaWdnZXJzX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvdGVzdHMv dGVzdF90cmlnZ2Vyc19nZXQucHkKQEAgLTksNzEgKzksNjYgQEAKIAogaW1wb3J0IHV1aWQKIAor aW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMuZnVuY3Rpb25z LnRlc3RzIFwKICAgICBpbXBvcnQgdXRpbHMgYXMgdHJpZ2dlcl9mdW5jc191dGlscwogZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh Ymxlcy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3Rz IGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCi1mcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc Ci0gICAgZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAog ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJzX3V0aWxzCiAKIAotY2xhc3MgVHJp Z2dlcnNHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3 aWxsIGZldGNoIHRyaWdnZXIgdW5kZXIgdGFibGUgbm9kZS4iIiIKLSAgICBza2lwX29uX2RhdGFi YXNlID0gWydncGRiJ10KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnRmV0Y2ggdHJpZ2dl ciBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nlci90cmlnZ2VyL29iai8nKSkKLSAgICBdCitA cHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0VHJpZ2dlcnNH ZXQ6CisKKyAgICBAcHl0ZXN0Lm1hcmsudXNlZml4dHVyZXMoJ3JlcXVpcmVfZGF0YWJhc2VfY29u bmVjdGlvbicpCisgICAgZGVmIHRlc3RfdHJpZ2dlcl9nZXQoc2VsZiwgY29udGV4dF9vZl90ZXN0 cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgZ2V0IHJlcXVlc3QgdG8gdHJp Z2dlciBlbmRwb2ludAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIi CisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3RyaWdnZXIvb2JqLycKKyAgICAgICAgaHR0cF9j bGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlcnZlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9kYXRhID0gY29udGV4 dF9vZl90ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ10KKworICAgICAgICBkYl9uYW1lID0gc2Vy dmVyX2RhdGFbJ2RiX25hbWUnXQorICAgICAgICBzZXJ2ZXJfaWQgPSBzZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBzZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBz Y2hlbWFfaWQgPSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX2lkJ10KKyAgICAgICAgc2NoZW1hX25hbWUg PSBzZXJ2ZXJfZGF0YVsnc2NoZW1hX25hbWUnXQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAg ICAgICBzdXBlcihUcmlnZ2Vyc0dldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0gICAgICAgIHNl bGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0K LSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAg c2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3Rl ZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZSB0byBnZXQgYSB0cmlnZ2VyLiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQotICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l KQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMo c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1h IHRvIGdldCBhIHRyaWdnZXIuIikKLSAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX3Ry aWdnZXJfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIHNlbGYudGFibGVf aWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudGFibGVfbmFtZSkKLSAgICAgICAgc2VsZi5mdW5jX25hbWUgPSAidHJpZ2dl cl9mdW5jX2dldF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYuZnVu Y3Rpb25faW5mbyA9IFwKLSAgICAgICAgICAgIHRyaWdnZXJfZnVuY3NfdXRpbHMuY3JlYXRlX3Ry aWdnZXJfZnVuY3Rpb25fd2l0aF90cmlnZ2VyKAotICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIHNlbGYuZnVuY19uYW1lKQotICAgICAg ICBzZWxmLnRyaWdnZXJfbmFtZSA9ICJ0ZXN0X3RyaWdnZXJfZ2V0XyVzIiAlIChzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnRyaWdnZXJfaWQgPSB0cmlnZ2Vyc191dGlscy5j cmVhdGVfdHJpZ2dlcihzZWxmLnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnRhYmxlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudHJpZ2dlcl9uYW1lLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZ1bmNfbmFtZSkKKyAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBh ZGQgYSB0cmlnZ2VyLiIpCisgICAgICAgIHRhYmxlX25hbWUgPSAidGFibGVfdHJpZ2dlcl8lcyIg JSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgdGFibGVfaWQgPSB0YWJsZXNfdXRp bHMuY3JlYXRlX3RhYmxlKHNlcnZlciwgZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbmFtZSkKKyAgICAgICAgZnVuY19uYW1lID0g InRyaWdnZXJfZnVuY19hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICB0 cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uX3dpdGhfdHJpZ2dlcigK KyAgICAgICAgICAgIHNlcnZlciwgZGJfbmFtZSwgc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKIAot ICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0 Y2ggdHJpZ2dlciB1bmRlciB0YWJsZSBub2RlLiIiIgotICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmdldCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9y bWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1h X2lkLCBzZWxmLnRhYmxlX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi50cmlnZ2VyX2lkKSwKKyAgICAgICAgdHJpZ2dlcl9uYW1lID0gInRl c3RfdHJpZ2dlcl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRy aWdnZXJfaWQgPSB0cmlnZ2Vyc191dGlscy5jcmVhdGVfdHJpZ2dlcihzZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0 YWJsZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdHJpZ2dlcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnVuY19uYW1lKQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50 LmdldCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHVy bCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyX2lkKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24o c2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfcHV0LnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rlc3RfdHJpZ2dlcnNfcHV0LnB5CmluZGV4IDky NzIzMWYyLi5kNmNiYjA1YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdnZXJzL3Rlc3RzL3Rl c3RfdHJpZ2dlcnNfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy90ZXN0cy90ZXN0X3Ry aWdnZXJzX3B1dC5weQpAQCAtMTAsNiArMTAsOSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlk CiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLmZ1bmN0 aW9ucy50ZXN0cyBcCiAgICAgaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMKIGZy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy50YWJsZXMudGVzdHMgXApAQCAtMTgsNzMgKzIxLDcxIEBAIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAog ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFi YXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJv bSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxz CiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJzX3V0aWxzCiAKIAotY2xhc3MgVHJpZ2dl cnNVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3 aWxsIHVwZGF0ZSB0cmlnZ2VyIHVuZGVyIHRhYmxlIG5vZGUuIiIiCi0gICAgc2tpcF9vbl9kYXRh YmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ1B1dCB0cmlnZ2Vy IE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3RyaWdnZXIvb2JqLycpKQotICAgIF0KK0Bw eXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ2dwZGInXSkKK2NsYXNzIFRlc3RUcmlnZ2Vyc1B1 dDoKKworICAgIEBweXRlc3QubWFyay51c2VmaXh0dXJlcygncmVxdWlyZV9kYXRhYmFzZV9jb25u ZWN0aW9uJykKKyAgICBkZWYgdGVzdF90cmlnZ2VyX3B1dChzZWxmLCBjb250ZXh0X29mX3Rlc3Rz KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBwb3N0IHJlcXVlc3QgdG8gYWRk IHRyaWdnZXIKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisg ICAgICAgIHVybCA9ICcvYnJvd3Nlci90cmlnZ2VyL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50 ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfZGF0YSA9IGNvbnRleHRfb2Zf dGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg ICAgIHN1cGVyKFRyaWdnZXJzVXBkYXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQot ICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIHVwZGF0ZSBhIHRyaWdnZXIuIikKLSAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGRiX25hbWUgPSBzZXJ2ZXJfZGF0YVsn ZGJfbmFtZSddCisgICAgICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQor ICAgICAgICBkYl9pZCA9IHNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNjaGVtYV9pZCA9 IHNlcnZlcl9kYXRhWydzY2hlbWFfaWQnXQorICAgICAgICBzY2hlbWFfbmFtZSA9IHNlcnZlcl9k YXRhWydzY2hlbWFfbmFtZSddCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKICAgICAgICAgaWYg bm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHNjaGVtYSB0byB1cGRhdGUgYSB0cmlnZ2VyLiIpCi0gICAgICAgIHNlbGYu dGFibGVfbmFtZSA9ICJ0YWJsZV90cmlnZ2VyXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhd KQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxm LnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCi0gICAgICAgIHNl bGYuZnVuY19uYW1lID0gInRyaWdnZXJfZnVuY19hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSBcCi0gICAgICAgICAgICB0cmlnZ2Vy X2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uX3dpdGhfdHJpZ2dlcigKLSAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBz ZWxmLmZ1bmNfbmFtZSkKLSAgICAgICAgc2VsZi50cmlnZ2VyX25hbWUgPSAidGVzdF90cmlnZ2Vy X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50cmln Z2VyX2lkID0gdHJpZ2dlcnNfdXRpbHMuY3JlYXRlX3RyaWdnZXIoc2VsZi5zZXJ2ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyaWdnZXJf bmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5mdW5jX25hbWUpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxk IG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gYWRkIGEgdHJpZ2dlci4iKQorICAgICAgICB0YWJsZV9u YW1lID0gInRhYmxlX3RyaWdnZXJfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAg ICAgIHRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX25h bWUpCisgICAgICAgIGZ1bmNfbmFtZSA9ICJ0cmlnZ2VyX2Z1bmNfYWRkXyVzIiAlIHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dl cl9mdW5jdGlvbl93aXRoX3RyaWdnZXIoCisgICAgICAgICAgICBzZXJ2ZXIsIGRiX25hbWUsIHNj aGVtYV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAgdHJpZ2dlcl9uYW1lID0gInRlc3RfdHJp Z2dlcl9hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHRyaWdnZXJf aWQgPSB0cmlnZ2Vyc191dGlscy5jcmVhdGVfdHJpZ2dlcihzZXJ2ZXIsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9u YW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dHJpZ2dlcl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZnVuY19uYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIi IlRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdHJpZ2dlciB1bmRlciB0YWJsZSBub2RlLiIiIgot ICAgICAgICB0cmlnZ2VyX3Jlc3BvbnNlID0gdHJpZ2dlcnNfdXRpbHMudmVyaWZ5X3RyaWdnZXIo c2VsZi5zZXJ2ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRyaWdnZXJfbmFtZSkKKyAgICAgICAg dHJpZ2dlcl9yZXNwb25zZSA9IHRyaWdnZXJzX3V0aWxzLnZlcmlmeV90cmlnZ2VyKHNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0cmlnZ2VyX25hbWUpCiAgICAgICAgIGlmIG5vdCB0cmlnZ2VyX3Jlc3BvbnNl OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdHJpZ2dl ciB0byBkZWxldGUuIikKLSAgICAgICAgZGF0YSA9IHsiaWQiOiBzZWxmLnRyaWdnZXJfaWQsCi0g ICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGVzdCBjb21tZW50LiIKLSAg ICAgICAgICAgICAgICB9Ci0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAg ICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0vezZ9Ii5mb3JtYXQoc2VsZi51cmwsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQsIHNlbGYudGFibGVf aWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnRyaWdnZXJfaWQpLAorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgdHJpZ2dlci4iKQorCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiaWQiOiB0 cmlnZ2VyX2lkLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgdGVzdCBjb21t ZW50LiIKKyAgICAgICAgfQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAg ICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9L3s2fSIuZm9ybWF0KHVybCwgdXRpbHMu U0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyX2lkLCBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNjaGVtYV9pZCwgdGFibGVfaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyX2lkKSwKICAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQog ICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCiAKLSAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCAzNGEzZjY2Ni4uNTkwMDI2YWQgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL19faW5pdF9fLnB5CkBA IC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgU2NoZW1hVGVzdEdl bmVyYXRvcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAg ICAgICAgcmV0dXJuIFtdCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9hZGQucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9hZGQucHkKaW5kZXggYzE5ZmRhOGQuLmYyMzA3YjRhIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9hZGQucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVz dF9zY2hlbWFfYWRkLnB5CkBAIC0xMCwzOSArMTAsNDggQEAKIGltcG9ydCBqc29uCiBpbXBvcnQg dXVpZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK ICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGlt cG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNf ZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKIAogCi1jbGFzcyBTY2hlbWFBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAg IiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHNjaGVtYSB1bmRlciBkYXRhYmFzZSBub2RlLiAi IiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IHNjaGVtYSBub2RlLgotICAgICAgICAoJ0NoZWNrIFNjaGVtYSBOb2RlIFVSTCcsIGRpY3QodXJs PScvYnJvd3Nlci9zY2hlbWEvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RTY2hlbWFBZGQ6Cisg ICAgZGVmIHRlc3Rfc2NoZW1hX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHNjaGVtYSBhZGQgcmVxdWVzdCBpcyBzZW5k IHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAi IiIKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvc2NoZW1hL29iai8nCiAKLSAgICBkZWYgcnVu VGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBhZGQgc2NoZW1hIHVu ZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotICAgICAgICBkYXRhYmFzZV9pbmZvID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV0KLSAgICAgICAgc2VydmVyX2lkID0gZGF0YWJhc2VfaW5m b1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFi YXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCiAKLSAg ICAgICAgZGJfaWQgPSBkYXRhYmFzZV9pbmZvWyJkYl9pZCJdCiAgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfaWQpCiAgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29u bmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0 IHRvIGRhdGFiYXNlIHRvIGFkZCB0aGUgc2NoZW1hLiIpCisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKICAgICAgICAgZGJfdXNl ciA9IHNlbGYuc2VydmVyWyJ1c2VybmFtZSJdCisgICAgICAgIHNjaGVtYV9uYW1lID0gInRlc3Rf c2NoZW1hX3swfSIuZm9ybWF0KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCiAgICAgICAgIGRhdGEg PSB7CiAgICAgICAgICAgICAiZGVmZnVuY2FjbCI6IFtdLAogICAgICAgICAgICAgImRlZnNlcWFj bCI6IFtdLAogICAgICAgICAgICAgImRlZnRibGFjbCI6IFtdLAogICAgICAgICAgICAgImRlZnR5 cGVhY2wiOiBbXSwKLSAgICAgICAgICAgICJuYW1lIjogInRlc3Rfc2NoZW1hX3swfSIuZm9ybWF0 KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAorICAgICAgICAgICAgIm5hbWUiOiBzY2hlbWFfbmFt ZSwKICAgICAgICAgICAgICJuYW1lc3BhY2Vvd25lciI6IGRiX3VzZXIsCiAgICAgICAgICAgICAi bnNwYWNsIjogWwogICAgICAgICAgICAgICAgIHsKQEAgLTY1LDggKzc0LDIxIEBAIGNsYXNzIFNj aGVtYUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIF0sCiAgICAg ICAgICAgICAic2VjbGFiZWxzIjogW10KICAgICAgICAgfQotICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnBvc3Qoc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lkKSArICcv JyArIHN0cihkYl9pZCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy8n LCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5wb3N0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAn LycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAg ICBzdHIoc2VsZi5kYl9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29u X3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBh c3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9u c2UsCisgICAgICAgICAgICAnc2NoZW1hJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUuc2No ZW1hJywKKyAgICAgICAgICAgIFRydWUsCisgICAgICAgICAgICAnaWNvbi1zY2hlbWEnLAorICAg ICAgICAgICAgc2NoZW1hX25hbWUKKyAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVz dF9zY2hlbWFfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfZGVsZXRlLnB5CmluZGV4 IGFlOGUwNDdiLi5iODQ2MzcyMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfZGVs ZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX2RlbGV0ZS5weQpAQCAtOSw1OCArOSw3 MCBAQAogCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWlu LnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9t IHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pz b24KIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4g aW1wb3J0IHV0aWxzIGFzIHNjaGVtYV91dGlscwogCiAKLWNsYXNzIFNjaGVtYURlbGV0ZVRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCBuZXcg c2NoZW1hIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorY2xhc3MgVGVzdFNjaGVtYURlbGV0ZToK KyAgICBkZWYgdGVzdF9zY2hlbWFfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVz dHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgc2NoZW1hIGRlbGV0ZSByZXF1ZXN0 IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisg ICAgICAgICIiIgorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zY2hlbWEvb2JqLycKKworICAg ICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAg ICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxm LnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBz ZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25h bWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KIAotICAgIHNjZW5hcmlvcyA9IFsKLSAg ICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZXh0ZW5zaW9uIG5vZGUuCi0gICAgICAg ICgnQ2hlY2sgU2NoZW1hIE5vZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL3NjaGVtYS9vYmov JykpCi0gICAgXQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0 VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3Rb ImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5m b1siZGJfbmFtZSJdCi0gICAgICAgICMgQ2hhbmdlIHRoZSBkYiBuYW1lLCBzbyB0aGF0IHNjaGVt YSB3aWxsIGNyZWF0ZSBpbiBuZXdseSBjcmVhdGVkIGRiCiAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUgPSAic2NoZW1hX2dldF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIGNv bm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLmRiX25hbWUsCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5h bWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyWydkYl9wYXNzd29yZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10pCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsncG9ydCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Nz bG1vZGUnXSkKICAgICAgICAgc2VsZi5zY2hlbWFfZGV0YWlscyA9IHNjaGVtYV91dGlscy5jcmVh dGVfc2NoZW1hKGNvbm5lY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotCi0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHNjaGVtYSB1 bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICAgICAgc2VydmVyX2lkID0gc2VsZi5kYXRhYmFz ZV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1si ZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNl KHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQsIGRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgdGhlIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgc2NoZW1hLiIpCi0KLSAgICAgICAgc2NoZW1hX2lkID0gc2VsZi5z Y2hlbWFfZGV0YWlsc1swXQotICAgICAgICBzY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2RldGFp bHNbMV0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hl bWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQog ICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0 aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZS4iKQogCi0gICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIo c2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cihkYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lkKSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNlbGYuc2NoZW1hX2RldGFpbHNbMF0KKworICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVt YV9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCiAKLSAgICBkZWYgdGVh ckRvd24oc2VsZik6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg fCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVy dF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAn U2NoZW1hIGRyb3BwZWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5 KCdlcnJvcm1zZycpID4gc2hvdWxkLmJlLmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBz aG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdyZXN1bHQnKSA+IHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2Ug fCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nlc3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hlbWFfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMvdGVzdF9zY2hl bWFfZ2V0LnB5CmluZGV4IGQxMDM2YjMzLi40ZWE0ODcyZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMv dGVzdF9zY2hlbWFfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX2dldC5weQpAQCAt Niw0NiArNiw1OCBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCiAKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBw Z2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBn YWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4u dXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bgogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFz cyBTY2hlbWFHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xh c3Mgd2lsbCBhZGQgbmV3IHNjaGVtYSB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKLSAgICBzY2Vu YXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGV4dGVuc2lvbiBu b2RlLgotICAgICAgICAoJ0NoZWNrIFNjaGVtYSBOb2RlIFVSTCcsIGRpY3QodXJsPScvYnJvd3Nl ci9zY2hlbWEvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RTY2hlbWFHZXQ6CisgICAgZGVmIHRl c3Rfc2NoZW1hX2dldChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAg IiIiCisgICAgICAgIFdoZW4gdGhlIHNjaGVtYSBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAg ICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBzY2hlbWEgdW5k ZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYSA9IHBhcmVudF9ub2RlX2RpY3Rb InNjaGVtYSJdWy0xXQotICAgICAgICBkYl9pZCA9IHNjaGVtYVsiZGJfaWQiXQotICAgICAgICBz ZXJ2ZXJfaWQgPSBzY2hlbWFbInNlcnZlcl9pZCJdCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9z Y2hlbWEvb2JqLycKIAotICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29u bmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVyX2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3Bv bnNlWyJkYXRhIl1bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gY29ubmVjdCB0aGUiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIiBkYXRhYmFzZS4iKQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25v ZGVfZGljdFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNl cnZlcl9kYXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydk Yl9uYW1lJ10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsn c2NoZW1hJ11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZv WydzY2hlbWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5m b1snc2NoZW1hX2lkJ10KIAogICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQogICAgICAgICBp ZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBnZXQg dGhlIHNjaGVtYS4iKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZS4iKQogCi0gICAgICAgIHNjaGVtYV9pZCA9IHNjaGVtYVsic2NoZW1h X2lkIl0KLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAg ICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAg ICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihkYl9pZCkgKwotICAgICAgICAgICAgJy8n ICsgc3RyKHNjaGVtYV9pZCksCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAor ICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5k Yl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSwKICAgICAgICAg ICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo c2NoZW1hX3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICMgRGlzY29ubmVjdCB0 aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShz ZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRf cmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3Vs ZC5oYXZlLmtleSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnbmFtZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYuc2NoZW1h X25hbWUpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX3B1dC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3Rz L3Rlc3Rfc2NoZW1hX3B1dC5weQppbmRleCAzOWQyYmY5MS4uYzI5NjY0MTMgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3Rlc3RzL3Rlc3Rfc2NoZW1hX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3NjaGVtYV9w dXQucHkKQEAgLTEwLDI3ICsxMCw0NSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKK2lt cG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMg YXMgXAogICAgIGRhdGFiYXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9y dCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJv bV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9t IHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMK IGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiAKIAotY2xhc3MgU2NoZW1hUHV0 VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgdXBk YXRlIHRoZSBzY2hlbWEgdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgc2tpcF9vbl9kYXRh YmFzZSA9IFsnZ3BkYiddCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIGRl ZmF1bHQgVVJMIGZvciBleHRlbnNpb24gbm9kZS4KLSAgICAgICAgKCdDaGVjayBTY2hlbWEgTm9k ZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2NoZW1hL29iai8nKSkKLSAgICBdCitAcHl0ZXN0 Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydncGRiJ10pCitjbGFzcyBUZXN0U2NoZW1hUHV0OgorICAg IGRlZiB0ZXN0X3NjaGVtYV9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBzY2hlbWEgcHV0IHJlcXVlc3QgaXMgc2VuZCB0 byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIi CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAg dXJsID0gJy9icm93c2VyL3NjaGVtYS9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29u dGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRf bm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYu c2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZl cl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFb J2RiX25hbWUnXQorCisgICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WydzY2hlbWEnXVstMV0KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0 X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5v dCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBk ZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKFNjaGVtYVB1dFRlc3RDYXNlLCBzZWxmKS5z ZXRVcCgpCi0gICAgICAgIHNlbGYuZGF0YWJhc2VfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbImRh dGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuZGF0YWJhc2VfaW5mb1si ZGJfbmFtZSJdCi0gICAgICAgICMgQ2hhbmdlIHRoZSBkYiBuYW1lLCBzbyB0aGF0IHNjaGVtYSB3 aWxsIGNyZWF0ZSBpbiBuZXdseSBjcmVhdGVkIGRiCiAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUg PSAic2NoZW1hX2dldF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCiAgICAgICAgIGNvbm5l Y3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLmRiX25hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUn XSwKQEAgLTQwLDI1ICs1OCwxMyBAQCBjbGFzcyBTY2hlbWFQdXRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnc3NsbW9kZSddKQogICAgICAgICBzZWxmLnNjaGVtYV9kZXRhaWxzID0gc2No ZW1hX3V0aWxzLmNyZWF0ZV9zY2hlbWEoY29ubmVjdGlvbiwKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCi0K LSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBk ZWxldGUgc2NoZW1hIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotCi0gICAgICAgIHNlcnZlcl9p ZCA9IHNlbGYuZGF0YWJhc2VfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgZGJfaWQgPSBzZWxm LmRhdGFiYXNlX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMu Y29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAg ICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gZGVsZXRlIHRo ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHNjaGVtYS4iKQotICAgICAgICBzY2hl bWFfaWQgPSBzZWxmLnNjaGVtYV9kZXRhaWxzWzBdCi0gICAgICAgIHNjaGVtYV9uYW1lID0gc2Vs Zi5zY2hlbWFfZGV0YWlsc1sxXQogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRp bHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CiAgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gdXBkYXRlLiIp CiAKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9kZXRhaWxzWzBdCiAgICAg ICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQogICAgICAgICBkYXRhID0gewog ICAgICAgICAgICAgImRlZmZ1bmNhY2wiOiB7CkBAIC0xMjcsMTYgKzEzMywyOCBAQCBjbGFzcyBT Y2hlbWFQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAg ICAgICB9CiAgICAgICAgICAgICAgICAgICAgIF0KICAgICAgICAgICAgIH0sCi0gICAgICAgICAg ICAiaWQiOiBzY2hlbWFfaWQKKyAgICAgICAgICAgICJpZCI6IHNlbGYuc2NoZW1hX2lkCiAgICAg ICAgIH0KLSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAotICAgICAgICAg ICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cihzZXJ2ZXJf aWQpICsKLSAgICAgICAgICAgICcvJyArIHN0cihkYl9pZCkgKyAnLycgKyBzdHIoc2NoZW1hX2lk KSwKKworICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHVy bCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsK KyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCksCiAgICAgICAgICAgICBkYXRhPWpzb24u ZHVtcHMoZGF0YSksIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKIAotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgIyBEaXNjb25u ZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2Rl IHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgcHJpbnQoanNvbl9yZXNwb25z ZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAg ICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ3NjaGVtYScsCisgICAgICAgICAgICAncGdh ZG1pbi5ub2RlLnNjaGVtYScsCisgICAgICAgICAgICBUcnVlLAorICAgICAgICAgICAgJ2ljb24t c2NoZW1hJywKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUKKyAgICAgICAgKQogCiAgICAg ZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICBwYXNzCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3Rlc3RzL3Rlc3RfdXRpbHMucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0 X3V0aWxzLnB5CmluZGV4IDgyNmMwMDNjLi5iZmFhYjgxNiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVzdHMv dGVzdF91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZXN0cy90ZXN0X3V0aWxzLnB5CkBAIC05LDkgKzksMTEg QEAKIAogaW1wb3J0IHN5cwogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGls cyBpbXBvcnQgXAogICAgIERhdGFUeXBlUmVhZGVyCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dl bmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogaWYgc3lzLnZlcnNpb25faW5mbyA8 ICgzLCAzKToKICAgICBmcm9tIG1vY2sgaW1wb3J0IHBhdGNoLCBNb2NrCkBAIC00Myw3NiArNDUs MTQzIEBAIF9kZWZhdWx0X21hbmFnZXIgPSBkaWN0KAogKQogCiAKLWNsYXNzIERhdGFUeXBlUmVh ZGVyVGVzdChCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo J1NjaGVtYSBPaWQgaXMgcGFzc2VkIHRvIHRoZSBTUUwgUmVuZGVyZXInLAotICAgICAgICAgZGlj dCgKLSAgICAgICAgICAgICBtYW5hZ2VyPV9kZWZhdWx0X21hbmFnZXIsCi0gICAgICAgICAgICAg ZXhlY3V0ZV9yZXR1cm5fdmFsdWVzPV9kZWZhdWx0X2RhdGFiYXNlX3Jlc3BvbnNlLAotICAgICAg ICAgICAgIGRhdGFfdHlwZV90ZW1wbGF0ZV9wYXRoPSdzb21lcGxhdGUvd2hlcmUvdGVtcGxhdGVz L2FyZScsCi0gICAgICAgICAgICAgc3FsX2NvbmRpdGlvbj0nbmV3IGNvbmRpdGlvbicsCi0gICAg ICAgICAgICAgc2NoZW1hX29pZD0nMTIzJywKLSAgICAgICAgICAgICBhZGRfc2VyaWFscz1GYWxz ZSwKLSAgICAgICAgICAgICBleHBlY3RlZF9zcWxfdGVtcGxhdGVfcGF0aD0nc29tZXBsYXRlL3do ZXJlL3RlbXBsYXRlcy9hcmUnLAotICAgICAgICAgICAgIGV4cGVjdGVkX2Z1bmN0aW9uX291dHB1 dD1fZGVmYXVsdF9leHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQKLSAgICAgICAgICkpLAotICAgICAg ICAoJ1doZW4gbm8gZGF0YV90eXBlX3RlbXBsYXRlX3BhdGggaXMgcHJlc2VudCBpbiBjbGFzcywg JwotICAgICAgICAgJ3Nob3VsZCBjcmVhdGUgdGVtcGxhdGUgcGF0aCB3aXRoIHZlcnNpb24gbnVt YmVyJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgbWFuYWdlcj1fZGVmYXVsdF9tYW5h Z2VyLAotICAgICAgICAgICAgIGV4ZWN1dGVfcmV0dXJuX3ZhbHVlcz1fZGVmYXVsdF9kYXRhYmFz ZV9yZXNwb25zZSwKLSAgICAgICAgICAgICBzcWxfY29uZGl0aW9uPSduZXcgY29uZGl0aW9uJywK LSAgICAgICAgICAgICBzY2hlbWFfb2lkPScxMjMnLAotICAgICAgICAgICAgIGFkZF9zZXJpYWxz PUZhbHNlLAotICAgICAgICAgICAgIGV4cGVjdGVkX3NxbF90ZW1wbGF0ZV9wYXRoPSdkYXRhdHlw ZS9zcWwvIzQ1NiMnLAotICAgICAgICAgICAgIGV4cGVjdGVkX2Z1bmN0aW9uX291dHB1dD1fZGVm YXVsdF9leHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQKLSAgICAgICAgICkpLAotICAgICAgICAoJ1do ZW4gbm8gZGF0YV90eXBlX3RlbXBsYXRlX3BhdGggaXMgcHJlc2VudCBpbiBjbGFzcyBmb3IgR3Jl ZW5QbHVtLCAnCi0gICAgICAgICAnc2hvdWxkIGNyZWF0ZSB0ZW1wbGF0ZSBwYXRoIHdpdGggZ3Bk YiBhbmQgdGhlIHZlcnNpb24gbnVtYmVyJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAg bWFuYWdlcj1kaWN0KAotICAgICAgICAgICAgICAgICBzZXJ2ZXJfdHlwZT0nZ3BkYicsCi0gICAg ICAgICAgICAgICAgIHZlcnNpb249JzQ1NicKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAg IGV4ZWN1dGVfcmV0dXJuX3ZhbHVlcz1fZGVmYXVsdF9kYXRhYmFzZV9yZXNwb25zZSwKLSAgICAg ICAgICAgICBzcWxfY29uZGl0aW9uPSduZXcgY29uZGl0aW9uJywKLSAgICAgICAgICAgICBzY2hl bWFfb2lkPScxMjMnLAotICAgICAgICAgICAgIGFkZF9zZXJpYWxzPUZhbHNlLAotICAgICAgICAg ICAgIGV4cGVjdGVkX3NxbF90ZW1wbGF0ZV9wYXRoPSdkYXRhdHlwZS9zcWwvI2dwZGIjNDU2Iycs Ci0gICAgICAgICAgICAgZXhwZWN0ZWRfZnVuY3Rpb25fb3V0cHV0PV9kZWZhdWx0X2V4cGVjdGVk X2Z1bmN0aW9uX291dHB1dAotICAgICAgICAgKSkKLSAgICBdCitjbGFzcyBUZXN0RGF0YVR5cGVS ZWFkZXIoQmFzZVRlc3RHZW5lcmF0b3IpOgogCiAgICAgQHBhdGNoKCdwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnV0aWxzJwogICAgICAgICAg ICAnLnJlbmRlcl90ZW1wbGF0ZScpCi0gICAgZGVmIHJ1blRlc3Qoc2VsZiwgdGVtcGxhdGVfbW9j ayk6CisgICAgZGVmIHRlc3Rfc2NoZW1hX29pZChzZWxmLCB0ZW1wbGF0ZV9tb2NrKToKKyAgICAg ICAgIiIiU2NoZW1hIE9pZCBpcyBwYXNzZWQgdG8gdGhlIFNRTCBSZW5kZXJlciIiIgorICAgICAg ICBtYW5hZ2VyID0gX2RlZmF1bHRfbWFuYWdlcgorICAgICAgICBzcWxfY29uZGl0aW9uID0gJ25l dyBjb25kaXRpb24nCisgICAgICAgIHNjaGVtYV9vaWQgPSAnMTIzJworICAgICAgICBhZGRfc2Vy aWFscyA9IEZhbHNlCisgICAgICAgIGV4cGVjdGVkX3NxbF90ZW1wbGF0ZV9wYXRoID0gJ3NvbWVw bGF0ZS93aGVyZS90ZW1wbGF0ZXMvYXJlJworICAgICAgICBleHBlY3RlZF9mdW5jdGlvbl9vdXRw dXQgPSBfZGVmYXVsdF9leHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQKICAgICAgICAgdGVtcGxhdGVf bW9jay5yZXR1cm5fdmFsdWUgPSAnU29tZSBTUUwnCiAgICAgICAgIGNvbm5lY3Rpb24gPSBNb2Nr KCkKICAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJuX3ZhbHVlID0gWwog ICAgICAgICAgICAgVHJ1ZSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAncm93cyc6 IHNlbGYuZXhlY3V0ZV9yZXR1cm5fdmFsdWVzCisgICAgICAgICAgICAgICAgJ3Jvd3MnOiBfZGVm YXVsdF9kYXRhYmFzZV9yZXNwb25zZQogCiAgICAgICAgICAgICB9CiAgICAgICAgIF0KLQogICAg ICAgICByZWFkZXIgPSBEYXRhVHlwZVJlYWRlcigpCiAgICAgICAgIHJlYWRlci5tYW5hZ2VyID0g TW9jaygpCi0gICAgICAgIHJlYWRlci5tYW5hZ2VyLnNlcnZlcl90eXBlID0gc2VsZi5tYW5hZ2Vy WydzZXJ2ZXJfdHlwZSddCi0gICAgICAgIHJlYWRlci5tYW5hZ2VyLnZlcnNpb24gPSBzZWxmLm1h bmFnZXJbJ3ZlcnNpb24nXQorICAgICAgICByZWFkZXIubWFuYWdlci5zZXJ2ZXJfdHlwZSA9IG1h bmFnZXJbJ3NlcnZlcl90eXBlJ10KKyAgICAgICAgcmVhZGVyLm1hbmFnZXIudmVyc2lvbiA9IG1h bmFnZXJbJ3ZlcnNpb24nXQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZWFkZXIuZGF0YV90 eXBlX3RlbXBsYXRlX3BhdGggPSBzZWxmLmRhdGFfdHlwZV90ZW1wbGF0ZV9wYXRoCisgICAgICAg ICAgICByZWFkZXIuZGF0YV90eXBlX3RlbXBsYXRlX3BhdGggPSAnc29tZXBsYXRlL3doZXJlL3Rl bXBsYXRlcy9hcmUnCiAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKICAgICAgICAgICAg ICcnCi0gICAgICAgIHJlc3VsdCA9IHJlYWRlci5nZXRfdHlwZXMoY29ubmVjdGlvbiwgc2VsZi5z cWxfY29uZGl0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRk X3NlcmlhbHMsIHNlbGYuc2NoZW1hX29pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXN1 bHRbMV0sIHNlbGYuZXhwZWN0ZWRfZnVuY3Rpb25fb3V0cHV0KQotICAgICAgICBzZWxmLmFzc2Vy dFRydWUocmVzdWx0WzBdKQorCisgICAgICAgIHJlc3VsdCA9IHJlYWRlci5nZXRfdHlwZXMoCisg ICAgICAgICAgICBjb25uZWN0aW9uLAorICAgICAgICAgICAgc3FsX2NvbmRpdGlvbiwKKyAgICAg ICAgICAgIGFkZF9zZXJpYWxzLAorICAgICAgICAgICAgc2NoZW1hX29pZAorICAgICAgICApCisK KyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmhhdmUubGVuZ3RoLm9mKDIpCisgICAgICAgIHJlc3Vs dFsxXSB8IHNob3VsZC5iZS5lcXVhbC50byhleHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQpCisgICAg ICAgIHJlc3VsdFswXSB8IHNob3VsZC5iZS50cnVlCisKKyAgICAgICAgY29ubmVjdGlvbi5leGVj dXRlXzJkYXJyYXkuYXNzZXJ0X2NhbGxlZF93aXRoKCdTb21lIFNRTCcpCisgICAgICAgIHRlbXBs YXRlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgZXhwZWN0ZWRfc3FsX3Rl bXBsYXRlX3BhdGggKyAnL2dldF90eXBlcy5zcWwnLAorICAgICAgICAgICAgY29uZGl0aW9uPXNx bF9jb25kaXRpb24sCisgICAgICAgICAgICBhZGRfc2VyaWFscz1hZGRfc2VyaWFscywKKyAgICAg ICAgICAgIHNjaGVtYV9vaWQ9c2NoZW1hX29pZAorICAgICAgICApCisKKyAgICBAcGF0Y2goJ3Bn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudXRp bHMnCisgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdF9ub19kYXRh X3R5cGVfdGVtcGxhdGVfcGF0aChzZWxmLCB0ZW1wbGF0ZV9tb2NrKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gbm8gZGF0YV90eXBlX3RlbXBsYXRlX3BhdGggaXMgcHJlc2VudCBpbiBjbGFz cywKKyAgICAgICAgc2hvdWxkIGNyZWF0ZSB0ZW1wbGF0ZSBwYXRoIHdpdGggdmVyc2lvbiBudW1i ZXIKKyAgICAgICAgIiIiCisgICAgICAgIG1hbmFnZXIgPSBfZGVmYXVsdF9tYW5hZ2VyCisgICAg ICAgIHNxbF9jb25kaXRpb24gPSAnbmV3IGNvbmRpdGlvbicKKyAgICAgICAgc2NoZW1hX29pZCA9 ICcxMjMnCisgICAgICAgIGFkZF9zZXJpYWxzID0gRmFsc2UKKyAgICAgICAgZXhwZWN0ZWRfc3Fs X3RlbXBsYXRlX3BhdGggPSAnZGF0YXR5cGUvc3FsLyM0NTYjJworICAgICAgICBleHBlY3RlZF9m dW5jdGlvbl9vdXRwdXQgPSBfZGVmYXVsdF9leHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQKKyAgICAg ICAgdGVtcGxhdGVfbW9jay5yZXR1cm5fdmFsdWUgPSAnU29tZSBTUUwnCisgICAgICAgIGNvbm5l Y3Rpb24gPSBNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJkYXJyYXkucmV0dXJu X3ZhbHVlID0gWworICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAncm93cyc6IF9kZWZhdWx0X2RhdGFiYXNlX3Jlc3BvbnNlCisKKyAgICAgICAgICAgIH0K KyAgICAgICAgXQorICAgICAgICByZWFkZXIgPSBEYXRhVHlwZVJlYWRlcigpCisgICAgICAgIHJl YWRlci5tYW5hZ2VyID0gTW9jaygpCisgICAgICAgIHJlYWRlci5tYW5hZ2VyLnNlcnZlcl90eXBl ID0gbWFuYWdlclsnc2VydmVyX3R5cGUnXQorICAgICAgICByZWFkZXIubWFuYWdlci52ZXJzaW9u ID0gbWFuYWdlclsndmVyc2lvbiddCisKKyAgICAgICAgcmVzdWx0ID0gcmVhZGVyLmdldF90eXBl cygKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICBzcWxfY29uZGl0aW9uLAor ICAgICAgICAgICAgYWRkX3NlcmlhbHMsCisgICAgICAgICAgICBzY2hlbWFfb2lkCisgICAgICAg ICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgub2YoMikKKyAgICAgICAg cmVzdWx0WzFdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKGV4cGVjdGVkX2Z1bmN0aW9uX291dHB1dCkK KyAgICAgICAgcmVzdWx0WzBdIHwgc2hvdWxkLmJlLnRydWUKKworICAgICAgICBjb25uZWN0aW9u LmV4ZWN1dGVfMmRhcnJheS5hc3NlcnRfY2FsbGVkX3dpdGgoJ1NvbWUgU1FMJykKKyAgICAgICAg dGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBleHBlY3RlZF9z cWxfdGVtcGxhdGVfcGF0aCArICcvZ2V0X3R5cGVzLnNxbCcsCisgICAgICAgICAgICBjb25kaXRp b249c3FsX2NvbmRpdGlvbiwKKyAgICAgICAgICAgIGFkZF9zZXJpYWxzPWFkZF9zZXJpYWxzLAor ICAgICAgICAgICAgc2NoZW1hX29pZD1zY2hlbWFfb2lkCisgICAgICAgICkKKworICAgIEBwYXRj aCgncGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1h cy51dGlscycKKyAgICAgICAgICAgJy5yZW5kZXJfdGVtcGxhdGUnKQorICAgIGRlZiB0ZXN0X25v X2RhdGFfdHlwZV90ZW1wbGF0ZV9wYXRoX2Zvcl9ncGRiKHNlbGYsIHRlbXBsYXRlX21vY2spOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBubyBkYXRhX3R5cGVfdGVtcGxhdGVfcGF0aCBpcyBw cmVzZW50IGluIGNsYXNzIGZvciBHcmVlblBsdW0sCisgICAgICAgIHNob3VsZCBjcmVhdGUgdGVt cGxhdGUgcGF0aCB3aXRoIGdwZGIgYW5kIHRoZSB2ZXJzaW9uIG51bWJlcgorICAgICAgICAiIiIK KyAgICAgICAgbWFuYWdlciA9IGRpY3Qoc2VydmVyX3R5cGU9J2dwZGInLCB2ZXJzaW9uPSc0NTYn KQorICAgICAgICBzcWxfY29uZGl0aW9uID0gJ25ldyBjb25kaXRpb24nCisgICAgICAgIHNjaGVt YV9vaWQgPSAnMTIzJworICAgICAgICBhZGRfc2VyaWFscyA9IEZhbHNlCisgICAgICAgIGV4cGVj dGVkX3NxbF90ZW1wbGF0ZV9wYXRoID0gJ2RhdGF0eXBlL3NxbC8jZ3BkYiM0NTYjJworICAgICAg ICBleHBlY3RlZF9mdW5jdGlvbl9vdXRwdXQgPSBfZGVmYXVsdF9leHBlY3RlZF9mdW5jdGlvbl9v dXRwdXQKKyAgICAgICAgdGVtcGxhdGVfbW9jay5yZXR1cm5fdmFsdWUgPSAnU29tZSBTUUwnCisg ICAgICAgIGNvbm5lY3Rpb24gPSBNb2NrKCkKKyAgICAgICAgY29ubmVjdGlvbi5leGVjdXRlXzJk YXJyYXkucmV0dXJuX3ZhbHVlID0gWworICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAncm93cyc6IF9kZWZhdWx0X2RhdGFiYXNlX3Jlc3BvbnNlCisKKyAg ICAgICAgICAgIH0KKyAgICAgICAgXQorICAgICAgICByZWFkZXIgPSBEYXRhVHlwZVJlYWRlcigp CisgICAgICAgIHJlYWRlci5tYW5hZ2VyID0gTW9jaygpCisgICAgICAgIHJlYWRlci5tYW5hZ2Vy LnNlcnZlcl90eXBlID0gbWFuYWdlclsnc2VydmVyX3R5cGUnXQorICAgICAgICByZWFkZXIubWFu YWdlci52ZXJzaW9uID0gbWFuYWdlclsndmVyc2lvbiddCisKKyAgICAgICAgcmVzdWx0ID0gcmVh ZGVyLmdldF90eXBlcygKKyAgICAgICAgICAgIGNvbm5lY3Rpb24sCisgICAgICAgICAgICBzcWxf Y29uZGl0aW9uLAorICAgICAgICAgICAgYWRkX3NlcmlhbHMsCisgICAgICAgICAgICBzY2hlbWFf b2lkCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgub2Yo MikKKyAgICAgICAgcmVzdWx0WzFdIHwgc2hvdWxkLmJlLmVxdWFsLnRvKGV4cGVjdGVkX2Z1bmN0 aW9uX291dHB1dCkKKyAgICAgICAgcmVzdWx0WzBdIHwgc2hvdWxkLmJlLnRydWUKIAogICAgICAg ICBjb25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheS5hc3NlcnRfY2FsbGVkX3dpdGgoJ1NvbWUgU1FM JykKICAgICAgICAgdGVtcGxhdGVfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAg ICBzZWxmLmV4cGVjdGVkX3NxbF90ZW1wbGF0ZV9wYXRoICsgJy9nZXRfdHlwZXMuc3FsJywKLSAg ICAgICAgICAgIGNvbmRpdGlvbj1zZWxmLnNxbF9jb25kaXRpb24sCi0gICAgICAgICAgICBhZGRf c2VyaWFscz1zZWxmLmFkZF9zZXJpYWxzLAotICAgICAgICAgICAgc2NoZW1hX29pZD1zZWxmLnNj aGVtYV9vaWQKKyAgICAgICAgICAgIGV4cGVjdGVkX3NxbF90ZW1wbGF0ZV9wYXRoICsgJy9nZXRf dHlwZXMuc3FsJywKKyAgICAgICAgICAgIGNvbmRpdGlvbj1zcWxfY29uZGl0aW9uLAorICAgICAg ICAgICAgYWRkX3NlcmlhbHM9YWRkX3NlcmlhbHMsCisgICAgICAgICAgICBzY2hlbWFfb2lkPXNj aGVtYV9vaWQKICAgICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90eXBlcy90ZXN0cy9fX2luaXRfXy5weQppbmRleCBmM2M1NjQwOS4uNTkwMDI2YWQg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl c3RzL19faW5pdF9fLnB5CkBAIC02LDExICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwot Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQot Y2xhc3MgVHlwZXNUZXN0R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBy dW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gW10KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rl c3RzL3Rlc3RfdHlwZXNfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19hZGQucHkK aW5kZXggNzBiNjRhNjUuLmMyNWNiNWFiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0 X3R5cGVzX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX2FkZC5weQpAQCAt MTAsNjAgKzEwLDkyIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFf dXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFz ZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0 aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBn YWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24s IFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZQogZnJvbSByZWdyZXNzaW9u IGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBUeXBlc0FkZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0eXBlIHVu ZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnQWRkIHR5 cGUgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdHlwZS9vYmovJykpCi0g ICAgXQorY2xhc3MgVGVzdFR5cGVzQWRkOgorICAgIGRlZiB0ZXN0X3R5cGVzX2FkZChzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhl IHR5cGVzIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0 dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXpl cihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90eXBlL29iai8nCisK KyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisg ICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAg c2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAg ICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5k Yl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5zY2hl bWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNj aGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxm LnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNl IGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byBkYXRhYmFzZS4iKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxm LmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0g ICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNl bGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFz ZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQi XToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0 YWJhc2UgdG8gYWRkIGEgdHlwZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9b InNjaGVtYV9uYW1lIl0KICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZl cmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAg ICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgYSB0eXBlLiIpCisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKIAotICAgIGRl ZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0eXBl IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKICAgICAgICAgZGJfdXNlciA9IHNlbGYuc2VydmVyWyJ1 c2VybmFtZSJdCi0gICAgICAgIHNlbGYudHlwZV9uYW1lID0gInRlc3RfdHlwZV9hZGRfJXMiICUg KHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgICAgIGRhdGEgPSB7Im5hbWUiOiBzZWxmLnR5 cGVfbmFtZSwKLSAgICAgICAgICAgICAgICAiaXNfc3lzX3R5cGUiOiBGYWxzZSwKLSAgICAgICAg ICAgICAgICAidHlwdHlwZSI6ICJjIiwKLSAgICAgICAgICAgICAgICAidHlwZW93bmVyIjogZGJf dXNlciwKLSAgICAgICAgICAgICAgICAic2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAg ICAgICAgICAgICAiY29tcG9zaXRlIjogW3sibWVtYmVyX25hbWUiOiAib25lIiwgInR5cGUiOiAi YWJzdGltZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImlzX3RsZW5ndGgiOiBG YWxzZSwgImlzX3ByZWNpc2lvbiI6IEZhbHNlfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsibWVtYmVyX25hbWUiOiAidHdvIiwgInR5cGUiOiAiXCJjaGFyXCJbXSIsCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgImlzX3RsZW5ndGgiOiBGYWxzZSwgImlzX3ByZWNpc2lv biI6IEZhbHNlfV0sCi0gICAgICAgICAgICAgICAgImVudW0iOiBbXSwgInR5cGFjbCI6IFtdLCAi c2VjbGFiZWxzIjogW119CisgICAgICAgIHR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfYWRkXyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBkYXRhID0geworICAgICAgICAgICAg Im5hbWUiOiB0eXBlX25hbWUsCisgICAgICAgICAgICAiaXNfc3lzX3R5cGUiOiBGYWxzZSwKKyAg ICAgICAgICAgICJ0eXB0eXBlIjogImMiLAorICAgICAgICAgICAgInR5cGVvd25lciI6IGRiX3Vz ZXIsCisgICAgICAgICAgICAic2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAg ICJjb21wb3NpdGUiOiBbCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAi bWVtYmVyX25hbWUiOiAib25lIiwgInR5cGUiOiAiYWJzdGltZSIsCisgICAgICAgICAgICAgICAg ICAgICJpc190bGVuZ3RoIjogRmFsc2UsICJpc19wcmVjaXNpb24iOiBGYWxzZQorICAgICAgICAg ICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAibWVtYmVy X25hbWUiOiAidHdvIiwgInR5cGUiOiAiXCJjaGFyXCJbXSIsCisgICAgICAgICAgICAgICAgICAg ICJpc190bGVuZ3RoIjogRmFsc2UsICJpc19wcmVjaXNpb24iOiBGYWxzZQorICAgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiZW51bSI6IFtdLCAidHlwYWNsIjog W10sICJzZWNsYWJlbHMiOiBbXX0KKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBv c3QoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8n ICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9p ZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKKyAgICAg ICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycsCiAgICAgICAg ICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwu dG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29u KHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAg ICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAndHlwZScsCisgICAgICAgICAg ICAncGdhZG1pbi5ub2RlLnR5cGUnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAn aWNvbi10eXBlJywKKyAgICAgICAgICAgIHR5cGVfbmFtZQorICAgICAgICApCiAKICAgICBkZWYg dGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAg ICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9p ZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rpc2Nvbm5lY3Rf ZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0 X3R5cGVzX2RlbGV0ZS5weQppbmRleCAwYzg4N2UzZC4uZGY2YWZiYTEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3R5cGVzL3Rlc3RzL3Rlc3RfdHlwZXNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3Rl c3RfdHlwZXNfZGVsZXRlLnB5CkBAIC05LDU4ICs5LDc4IEBACiAKIGltcG9ydCB1dWlkCiAKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25z ZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwog ZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0eXBlc191dGlscwogCiAKLWNsYXNzIFR5cGVzRGVsZXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZGVs ZXRlIHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAg ICAgKCdEZWxldGUgdHlwZSB1bmRlciBzY2hlbWEgbm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90 eXBlL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0VHlwZXNEZWxldGU6CisgICAgZGVmIHRlc3Rf dHlwZXNfZGVsZXRlKHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiB0aGUgdHlwZXMgZGVsZXRlIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAg ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0g Jy9icm93c2VyL3R5cGUvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2Zf dGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGlj dFsnZGF0YWJhc2UnXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9k YXRhWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsn ZGJfaWQnXQorICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1l J10KKworICAgICAgICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1h J11bLTFdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hl bWFfbmFtZSddCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2No ZW1hX2lkJ10KKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9j b25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCiAKLSAgICBkZWYgc2V0 VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFi YXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9k aWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1si c2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0g ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRp bHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJf Y29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgYSB0eXBlLiIpCi0gICAgICAg IHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYu c2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQogICAgICAgICBzY2hlbWFf cmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X25hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRv IGRlbGV0ZSBhIHR5cGUuIikKLSAgICAgICAgc2VsZi50eXBlX25hbWUgPSAidGVzdF90eXBlX2Rl bGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKLSAgICAgICAgc2VsZi50eXBlX2lk ID0gdHlwZXNfdXRpbHMuY3JlYXRlX3R5cGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSwgc2VsZi50eXBlX25hbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmlu ZCB0aGUgc2NoZW1hLiIpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRo aXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdHlwZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAg ICAgIHR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQorICAgICAgICBzZWxmLnR5cGVfaWQgPSB0eXBlc191dGlscy5jcmVhdGVfdHlwZShz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLCB0eXBlX25hbWUpCiAgICAgICAgIHR5 cGVfcmVzcG9uc2UgPSB0eXBlc191dGlscy52ZXJpZnlfdHlwZShzZWxmLnNlcnZlciwgc2VsZi5k Yl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi50eXBlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0eXBlX25hbWUpCiAgICAgICAgIGlmIG5vdCB0eXBlX3Jlc3BvbnNlOgogICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgdHlwZSB0byBkZWxldGUu IikKKwogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAgICAgICAgICAg ICJ7MH17MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQodXJsLCB1 dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50eXBlX2lkCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs cyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19j b2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNv bnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKAorICAgICAgICAg ICAgJ1R5cGUgZHJvcHBlZCcpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5r ZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkKKyAgICAgICAganNvbl9yZXNwb25zZSB8 IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQu aGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25z ZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4gc2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAK ICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJh c2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxm LnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Rp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19nZXQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0 cy90ZXN0X3R5cGVzX2dldC5weQppbmRleCBkNzYyNTZiZS4uMTM3NDBmZDkgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3R5cGVzL3Rlc3RzL3Rlc3RfdHlwZXNfZ2V0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3Rlc3RzL3Rl c3RfdHlwZXNfZ2V0LnB5CkBAIC05LDU0ICs5LDcxIEBACiAKIGltcG9ydCB1dWlkCiAKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMg c2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKLWZy b20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdh ZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgor ZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90 b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJv bSAuIGltcG9ydCB1dGlscyBhcyB0eXBlc191dGlscwogCiAKLWNsYXNzIFR5cGVzR2V0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIiBUaGlzIGNsYXNzIHdpbGwgZ2V0IHRoZSB0 eXBlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgn R2V0IHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvdHlwZS9vYmov JykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUg PSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNj aGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQg PSBzY2hlbWFfaW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8g Z2V0IGEgdHlwZS4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hl bWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9u YW1lIl0KK2NsYXNzIFRlc3RUeXBlc0dldDoKKyAgICBkZWYgdGVzdF90eXBlc19nZXQoc2VsZiwg cmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRo ZSB0eXBlcyBnZXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJl dHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6 ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdHlwZS9vYmovJwor CisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAg IHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0xXQorICAg ICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCddCisgICAg ICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAgIHNlbGYu ZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAgIHNlbGYuc2No ZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAgICAgc2Vs Zi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCisgICAgICAgIGRi X2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFz ZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNv bm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGdldCBhIHR5cGUuIikKLSAg ICAgICAgc2VsZi50eXBlX25hbWUgPSAidGVzdF90eXBlX2dldF8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIHNjaGVtYS4iKQorCisgICAgICAgIHR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfZGVsZXRlXyVz IiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQogICAgICAgICBzZWxmLnR5cGVfaWQgPSB0eXBl c191dGlscy5jcmVhdGVfdHlwZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLCBz ZWxmLnR5cGVfbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2NoZW1hX25hbWUsIHR5cGVfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGdldCBhIHR5cGUgdW5kZXIgc2NoZW1hIG5vZGUu ICIiIgogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAgICAgICAgICJ7 MH17MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQodXJsLCB1dGls cy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9pZCwgc2VsZi50eXBlX2lkCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICBmb2xs b3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhy ZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2Rl IHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZl cnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNo b3VsZC5oYXZlLmtleSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgnbmFtZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHR5cGVfbmFt ZSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBk YXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYs IHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGll bnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90eXBlcy90ZXN0cy90ZXN0X3R5cGVzX3B1dC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVz L3Rlc3RzL3Rlc3RfdHlwZXNfcHV0LnB5CmluZGV4IDc1M2I0ZTQyLi40ZDkwOGUyNiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdHlwZXMvdGVzdHMvdGVzdF90eXBlc19wdXQucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVz dHMvdGVzdF90eXBlc19wdXQucHkKQEAgLTEwLDYwICsxMCw4MyBAQAogaW1wb3J0IGpzb24KIGlt cG9ydCB1dWlkCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9y dCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAg ZGF0YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RH ZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBC YXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQg Y29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBm cm9tIC4gaW1wb3J0IHV0aWxzIGFzIHR5cGVzX3V0aWxzCiAKIAotY2xhc3MgVHlwZXNVcGRhdGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB1cGRh dGUgdHlwZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAoJ1VwZGF0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3R5 cGUvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RUeXBlc1B1dDoKKyAgICBkZWYgdGVzdF90eXBl c19wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHRoZSB0eXBlcyBwdXQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisg ICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVz dC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIv dHlwZS9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFz ZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZl cl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAg ICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAg ICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10K KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQor CisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5T RVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJd ID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKIAotICAgIGRlZiBzZXRVcChzZWxmKToK LSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1b ImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVt YSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQi XQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KLSAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJf R1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIHVwZGF0ZSBhIHR5cGUuIikKLSAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCiAgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9 IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gdXBkYXRlIGEg dHlwZS4iKQotICAgICAgICBzZWxmLnR5cGVfbmFtZSA9ICJ0ZXN0X3R5cGVfcHV0XyVzIiAlIChz dHIodXVpZC51dWlkNCgpKVsxOjhdKQotICAgICAgICBzZWxmLnR5cGVfaWQgPSB0eXBlc191dGls cy5jcmVhdGVfdHlwZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLCBzZWxmLnR5 cGVfbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEu IikKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3 aWxsIHVwZGF0ZSB0eXBlIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICAgICAgdHlwZV9uYW1l ID0gInRlc3RfdHlwZV9kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAg ICAgIHNlbGYudHlwZV9pZCA9IHR5cGVzX3V0aWxzLmNyZWF0ZV90eXBlKHNlbGYuc2VydmVyLCBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUsIHR5cGVfbmFtZSkKICAgICAgICAgdHlwZV9yZXNwb25zZSA9 IHR5cGVzX3V0aWxzLnZlcmlmeV90eXBlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnR5cGVfbmFt ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVf bmFtZSkKICAgICAgICAgaWYgbm90IHR5cGVfcmVzcG9uc2U6CiAgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0eXBlIHRvIHVwZGF0ZS4iKQorCiAgICAgICAg IGRhdGEgPSB7ImlkIjogc2VsZi50eXBlX2lkLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlv biI6ICJ0aGlzIGlzIHRlc3QgY29tbWVudC4ifQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLnB1dCgKLSAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97NH0vezV9Ii5mb3JtYXQoc2Vs Zi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97 NH0vezV9Ii5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9p ZCwgc2VsZi50eXBlX2lkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICksCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91 bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNw b25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9y ZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAndHlwZScs CisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnR5cGUnLAorICAgICAgICAgICAgRmFsc2UsCisg ICAgICAgICAgICAnaWNvbi10eXBlJywKKyAgICAgICAgICAgIHR5cGVfbmFtZQorICAgICAgICAp CiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0 YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuY2xpZW50 X2Rpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy9f X2luaXRfXy5weQppbmRleCAyNWI2YTY5NC4uZmY4ODI5MTIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdz L3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC03 LDcgKzcsNyBAQAogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVz dF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAKIAogY2xhc3MgVmlld3NUZXN0 R2VuZXJhdG9yKEJhc2VUZXN0R2VuZXJhdG9yKToKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3Rz L3Rlc3Rfdmlld3NfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3c19hZGQucHkKaW5k ZXggZWIxNDA0ZTcuLmE3N2NkMWY0IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3Zp ZXdzX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2FkZC5weQpAQCAtOSw5 NSArOSwxNzkgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCitpbXBvcnQgcHl0ZXN0Citm cm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAogICAgIHV0aWxz IGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2 ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNlX3V0aWxz CiBmcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBQb3N0Z3Jlc1ZlcnNpb24K K2Zyb20gcGdhZG1pbi51dGlscy50ZXN0c19oZWxwZXIgaW1wb3J0IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbiwgXAorICAgIGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlCiBmcm9tIHJl Z3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFZpZXdzQWRk VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQg bmV3IHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0gICAgdmlld19uYW1lID0gInRlc3Rfdmll d19hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgdl9kYXRhID0geyJzY2hl bWEiOiAiIiwKLSAgICAgICAgICAgICAgIm93bmVyIjogIiIsCi0gICAgICAgICAgICAgICJkYXRh Y2wiOiBbXSwKLSAgICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAotICAgICAgICAgICAgICAi bmFtZSI6IHZpZXdfbmFtZSwKLSAgICAgICAgICAgICAgImRlZmluaXRpb24iOiAiU0VMRUNUICdI ZWxsbyBXb3JsZCc7IgotICAgICAgICAgICAgICB9Ci0gICAgbV92aWV3X25hbWUgPSAidGVzdF9t dmlld19hZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCi0gICAgbV92aWV3X2RhdGEg PSB7InNwY25hbWUiOiAicGdfZGVmYXVsdCIsCi0gICAgICAgICAgICAgICAgICAgInRvYXN0X2F1 dG92YWN1dW1fZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICJhdXRvdmFjdXVt X2VuYWJsZWQiOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAic2NoZW1hIjogIiIsCi0gICAg ICAgICAgICAgICAgICAgIm93bmVyIjogIiIsCi0gICAgICAgICAgICAgICAgICAgInZhY3V1bV90 YWJsZSI6IFsKLSAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fYW5h bHl6ZV9zY2FsZV9mYWN0b3IifSwKLSAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1 dG92YWN1dW1fYW5hbHl6ZV90aHJlc2hvbGQifSwKLSAgICAgICAgICAgICAgICAgICAgICAgeyJu YW1lIjogImF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UifSwKLSAgICAgICAgICAgICAgICAgICAg ICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfZGVsYXkifSwKLSAgICAgICAgICAg ICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX2Nvc3RfbGltaXQifSwKLSAg ICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2Zh Y3RvciJ9LAotICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1 dW1fdGhyZXNob2xkIn0sCi0gICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFj dXVtX2ZyZWV6ZV9taW5fYWdlIn0sCi0gICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJh dXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UifV0sCi0gICAgICAgICAgICAgICAgICAgInZhY3V1 bV90b2FzdCI6IFt7Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfbWF4X2FnZSJ9LAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVt X2Nvc3RfZGVsYXkifSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibmFt ZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0In0sCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9y In0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3Zh Y3V1bV92YWN1dW1fdGhyZXNob2xkIn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZSJ9LAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fZnJlZXplX3RhYmxl X2FnZSJ9XSwKLSAgICAgICAgICAgICAgICAgICAiZGF0YWNsIjogW10sCi0gICAgICAgICAgICAg ICAgICAgInNlY2xhYmVscyI6IFtdLAotICAgICAgICAgICAgICAgICAgICJuYW1lIjogbV92aWV3 X25hbWUsCi0gICAgICAgICAgICAgICAgICAgImRlZmluaXRpb24iOiAiU0VMRUNUICd0ZXN0X3Bn YWRtaW4nOyJ9Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0FkZCB2aWV3IHVuZGVyIHNj aGVtYSBub2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3ZpZXcvb2JqLycsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9dl9kYXRhKSksCi0gICAgICAgICgn QWRkIG1hdGVyaWFsaXplZCB2aWV3IHVuZGVyIHNjaGVtYSBub2RlJywKLSAgICAgICAgIGRpY3Qo dXJsPScvYnJvd3Nlci9tdmlldy9vYmovJywgZGF0YT1tX3ZpZXdfZGF0YSkpCi0gICAgXQotCi0g ICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9k aWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2No ZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1si ZGJfaWQiXQorQHB5dGVzdC5tYXJrLnNraXBfaWZfcG9zdGdyZXNfdmVyc2lvbih7J2JlbG93X3Zl cnNpb24nOiBQb3N0Z3Jlc1ZlcnNpb24udjkzfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIk1hdGVyaWFsaXplZCBWaWV3cyBhcmUgbm90IHN1cHBvcnRlZCAiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieSBQRzkuMiAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgUFBBUzkuMiBhbmQgYmVsb3cuIikKK2Ns YXNzIFRlc3RWaWV3QWRkOgorICAgIGRlZiB0ZXN0X3ZpZXdzX2FkZChzZWxmLCByZXF1ZXN0LCBj b250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHZpZXdzIGFk ZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAg c3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRl YXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci92aWV3L29iai8nCisKKyAgICAgICAg c2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNl bGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2 ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYu c2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5k Yl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0g c2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9 IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1l ID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9p ZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRi X2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3Rl ZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBk YXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJp Znlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAg ICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICBkYl91c2VyID0gc2VsZi5z ZXJ2ZXJbInVzZXJuYW1lIl0KKyAgICAgICAgdmlld19uYW1lID0gInRlc3Rfdmlld19hZGRfJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAg ICAic2NoZW1hIjogc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICJvd25lciI6IGRiX3Vz ZXIsCisgICAgICAgICAgICAiZGF0YWNsIjogW10sCisgICAgICAgICAgICAic2VjbGFiZWxzIjog W10sCisgICAgICAgICAgICAibmFtZSI6IHZpZXdfbmFtZSwKKyAgICAgICAgICAgICJkZWZpbml0 aW9uIjogIlNFTEVDVCAnSGVsbG8gV29ybGQnOyIKKyAgICAgICAgfQorCisgICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihz ZWxmLnNjaGVtYV9pZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSks CisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAgICAgICAgcmVzcG9u c2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jl c3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3Nl cnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2Us CisgICAgICAgICAgICAndmlldycsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnZpZXcnLAor ICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICdpY29uLXZpZXcnLAorICAgICAgICAgICAg dmlld19uYW1lCisgICAgICAgICkKKworICAgIGRlZiB0ZXN0X21hdGVyaWFsaXplZF92aWV3c19h ZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSBtYXRlcmlhbGl6ZWQgdmlld3MgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUg YmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAg ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0g Jy9icm93c2VyL212aWV3L29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29m X3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2Rp Y3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJf ZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFb J2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFt ZSddCisKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVt YSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2No ZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3Nj aGVtYV9pZCddCisKICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5l Y3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQogCi0gICAgICAgIGlmIHNlcnZlcl9yZXNw b25zZVsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMCBhbmQgIm12aWV3IiBpbiBzZWxmLnVybDoK KyAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgog ICAgICAgICAgICAgbWVzc2FnZSA9ICJNYXRlcmlhbGl6ZWQgVmlld3MgYXJlIG5vdCBzdXBwb3J0 ZWQgYnkgUEc5LjIgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBi ZWxvdy4iCi0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJf R1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEn XVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBj b25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCB2aWV3LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lk ID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBz Y2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICAgICAgcHl0ZXN0LnNraXBUZXN0KG1l c3NhZ2UpCisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFz ZShzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29u WyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gYWRkIHRoZSB2aWV3LiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBzY2hlbWEuIikKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAi IiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkIHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCiAgICAg ICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQotICAgICAgICBzZWxmLmRhdGFb InNjaGVtYSJdID0gc2VsZi5zY2hlbWFfbmFtZQotICAgICAgICBzZWxmLmRhdGFbIm93bmVyIl0g PSBkYl91c2VyCisgICAgICAgIHZpZXdfbmFtZSA9ICJ0ZXN0X212aWV3X2FkZF8lcyIgJSAoc3Ry KHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJzcGNu YW1lIjogInBnX2RlZmF1bHQiLAorICAgICAgICAgICAgInRvYXN0X2F1dG92YWN1dW1fZW5hYmxl ZCI6IEZhbHNlLAorICAgICAgICAgICAgImF1dG92YWN1dW1fZW5hYmxlZCI6IEZhbHNlLAorICAg ICAgICAgICAgInNjaGVtYSI6IHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAib3duZXIi OiBkYl91c2VyLAorICAgICAgICAgICAgInZhY3V1bV90YWJsZSI6IFsKKyAgICAgICAgICAgICAg ICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9hbmFseXplX3NjYWxlX2ZhY3RvciJ9LAorICAgICAgICAg ICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX2FuYWx5emVfdGhyZXNob2xkIn0sCisgICAgICAg ICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fZnJlZXplX21heF9hZ2UifSwKKyAgICAgICAg ICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSJ9LAorICAgICAg ICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0In0sCisgICAg ICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFjdXVtX3NjYWxlX2ZhY3RvciJ9LAor ICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV90aHJlc2hvbGQifSwK KyAgICAgICAgICAgICAgICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZSJ9LAor ICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6ZV90YWJsZV9hZ2UifV0s CisgICAgICAgICAgICAidmFjdXVtX3RvYXN0IjogW3sibmFtZSI6ICJhdXRvdmFjdXVtX2ZyZWV6 ZV9tYXhfYWdlIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRv dmFjdXVtX3ZhY3V1bV9jb3N0X2RlbGF5In0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0In0sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHsibmFtZSI6ICJhdXRvdmFjdXVtX3ZhY3V1bV9zY2FsZV9mYWN0b3Ii fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJuYW1lIjogImF1dG92YWN1dW1fdmFj dXVtX3RocmVzaG9sZCJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Im5hbWUiOiAi YXV0b3ZhY3V1bV9mcmVlemVfbWluX2FnZSJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB7Im5hbWUiOiAiYXV0b3ZhY3V1bV9mcmVlemVfdGFibGVfYWdlIn1dLAorICAgICAgICAgICAg ImRhdGFjbCI6IFtdLAorICAgICAgICAgICAgInNlY2xhYmVscyI6IFtdLAorICAgICAgICAgICAg Im5hbWUiOiB2aWV3X25hbWUsCisgICAgICAgICAgICAiZGVmaW5pdGlvbiI6ICJTRUxFQ1QgJ3Rl c3RfcGdhZG1pbic7IgorICAgICAgICB9CisKICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rl ci5wb3N0KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSAr ICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkgKwotICAgICAgICAgICAgJy8nICsgc3RyKHNlbGYu ZGJfaWQpICsgJy8nICsgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywKLSAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhzZWxmLmRhdGEpLCBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAg ICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBz dHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSAr ICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nLAorICAgICAgICAg ICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFs LnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNv bihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UoCisg ICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAgICAgICAgJ212aWV3JywKKyAgICAgICAg ICAgICdwZ2FkbWluLm5vZGUubXZpZXcnLAorICAgICAgICAgICAgVHJ1ZSwKKyAgICAgICAgICAg ICdpY29uLXZpZXcnLAorICAgICAgICAgICAgdmlld19uYW1lCisgICAgICAgICkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5jbGllbnRfZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rl c3Rfdmlld3NfZGVsZXRlLnB5CmluZGV4IGY1OTY3MzA1Li5lYTJkNzdmYyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVzdHMvdGVzdF92aWV3c19kZWxldGUucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMv dGVzdF92aWV3c19kZWxldGUucHkKQEAgLTksNzkgKzksMTY1IEBACiAKIGltcG9ydCB1dWlkCiAK K2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGlt cG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAg ICAgZGF0YWJhc2VfdXRpbHMKIGZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxz IGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0 IFBvc3RncmVzVmVyc2lvbgorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQg Y29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9u b2RlX2RpY3QKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB2aWV3c191dGlscwogCiAKLWNs YXNzIFZpZXdzRGVsZXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCBkZWxldGUgdGhlIHZpZXcvbXZpZXcgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCi0g ICAgdmlld19zcWwgPSAiQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyAlcy4lcyBBUyBTRUxFQ1QgJ0hl bGxvIFdvcmxkJzsgIiBcCi0gICAgICAgICAgICAgICAiQUxURVIgVEFCTEUgJXMuJXMgT1dORVIg VE8gJXMiCi0gICAgbV92aWV3X3NxbCA9ICJDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgJXMuJXMg VEFCTEVTUEFDRSBwZ19kZWZhdWx0IEFTICIgXAotICAgICAgICAgICAgICAgICAiU0VMRUNUICd0 ZXN0X3BnYWRtaW4nIFdJVEggTk8gREFUQTtBTFRFUiBUQUJMRSAlcy4lcyBPV05FUiIgXAotICAg ICAgICAgICAgICAgICAiIFRPICVzIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdEZWxl dGUgdmlldyB1bmRlciBzY2hlbWEgbm9kZScsIGRpY3QoCi0gICAgICAgICAgICB1cmw9Jy9icm93 c2VyL3ZpZXcvb2JqLycsCi0gICAgICAgICAgICB2aWV3X25hbWU9InRlc3Rfdmlld19kZWxldGVf JXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pLAotICAgICAgICAgICAgc3FsX3F1ZXJ5PXZp ZXdfc3FsKSksCi0gICAgICAgICgnRGVsZXRlIG1hdGVyaWFsaXplZCB2aWV3IHVuZGVyIHNjaGVt YSBub2RlJywKLSAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci9tdmlldy9vYmovJywKLSAgICAg ICAgICAgICAgdmlld19uYW1lPSJ0ZXN0X212aWV3X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSksCi0gICAgICAgICAgICAgIHNxbF9xdWVyeT1tX3ZpZXdfc3FsKSkKLSAgICBd Ci0KLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KLSAgICAgICAgc2NoZW1hX2luZm8g PSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9p bmZvWyJkYl9pZCJdCitjbGFzcyBUZXN0Vmlld0RlbGV0ZToKKyAgICBkZWYgdGVzdF92aWV3c19k ZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHRoZSB2aWV3cyBkZWxldGUgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5k CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVx dWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICB1cmwgPSAnL2Jyb3dz ZXIvdmlldy9vYmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sn dGVzdF9jbGllbnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCisgICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRh YmFzZSddWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3Nl cnZlcl9pZCddCisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCdd CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisg ICAgICAgIHNlbGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0K KyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1l J10KKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQn XQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2Vs ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGls cy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5m byJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAgICAgICBzY2hlbWFfcmVz cG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAg ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hLiIpCisK KyAgICAgICAgdmlld19uYW1lID0gInRlc3Rfdmlld19kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0pCisgICAgICAgIHNxbF9xdWVyeSA9ICJDUkVBVEUgT1IgUkVQTEFDRSBWSUVX ICVzLiVzIEFTIFNFTEVDVCAnSGVsbG8gV29ybGQnOyAiIFwKKyAgICAgICAgICAgICAgICAgICAg IkFMVEVSIFRBQkxFICVzLiVzIE9XTkVSIFRPICVzIgorICAgICAgICBzZWxmLnZpZXdfaWQgPSB2 aWV3c191dGlscy5jcmVhdGVfdmlldyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcWxfcXVlcnksCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdfbmFtZSkKKwor ICAgICAgICB2aWV3X3Jlc3BvbnNlID0gdmlld3NfdXRpbHMudmVyaWZ5X3ZpZXcoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZpZXdfbmFtZSkKKyAgICAgICAgaWYgbm90IHZpZXdfcmVzcG9uc2U6CisgICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB2aWV3IHRvIGRlbGV0 ZS4iKQorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAg ICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdCh1cmwsIHV0aWxzLlNFUlZFUl9HUk9V UCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnZpZXdfaWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZQorICAgICAgICApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQu YmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25z ZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdpbmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnVmlldyBkcm9w cGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cn KSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVz dWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKKworICAgIEBweXRlc3Qu bWFyay5za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oCisgICAgICAgIHsnYmVsb3dfdmVyc2lvbic6 IFBvc3RncmVzVmVyc2lvbi52OTN9LAorICAgICAgICAiTWF0ZXJpYWxpemVkIFZpZXdzIGFyZSBu b3Qgc3VwcG9ydGVkICIKKyAgICAgICAgImJ5IFBHOS4yICIKKyAgICAgICAgImFuZCBQUEFTOS4y IGFuZCBiZWxvdy4iKQorICAgIGRlZiB0ZXN0X21hdGVyaWFsaXplZF92aWV3c19hZGQoc2VsZiwg cmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRo ZSBtYXRlcmlhbGl6ZWQgdmlld3MgYWRkIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAor ICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVl c3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2Vy L212aWV3L29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFi YXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2Vy dmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10K KyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAg ICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQor ICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUn XQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCdd CisKICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVy KHNlbGYsIHNlbGYuc2VydmVyX2lkKQogCi0gICAgICAgIGlmIHNlcnZlcl9yZXNwb25zZVsiZGF0 YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMCBhbmQgIm12aWV3IiBpbiBzZWxmLnVybDoKKyAgICAgICAg aWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgogICAgICAgICAg ICAgbWVzc2FnZSA9ICJNYXRlcmlhbGl6ZWQgVmlld3MgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgUEc5 LjIgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iCi0g ICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAgICAgICAgZGJfY29uID0gZGF0 YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVj dGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlIHRvIGRlbGV0ZSB2aWV3LiIpCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2No ZW1hX2luZm9bInNjaGVtYV9pZCJdCi0gICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFf aW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICAgICAgcHl0ZXN0LnNraXBUZXN0KG1lc3NhZ2Up CisKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxm LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxz LlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZv Il0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCiAgICAgICAgIHNjaGVtYV9yZXNw b25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFt ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUpCiAgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6Ci0gICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVs ZXRlIHRoZSB2aWV3LiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBm aW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICB2aWV3X25hbWUgPSAidGVzdF9tdmlld19kZWxl dGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNxbF9xdWVyeSA9ICJD UkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgJXMuJXMgVEFCTEVTUEFDRSIgXAorICAgICAgICAgICAg ICAgICAgICAiIHBnX2RlZmF1bHQgQVMgIiBcCisgICAgICAgICAgICAgICAgICAgICJTRUxFQ1Qg J3Rlc3RfcGdhZG1pbicgV0lUSCBOTyBEQVRBOyIgXAorICAgICAgICAgICAgICAgICAgICAiQUxU RVIgVEFCTEUgJXMuJXMgT1dORVIiIFwKKyAgICAgICAgICAgICAgICAgICAgIiBUTyAlcyIKICAg ICAgICAgc2VsZi52aWV3X2lkID0gdmlld3NfdXRpbHMuY3JlYXRlX3ZpZXcoc2VsZi5zZXJ2ZXIs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zcWxfcXVlcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudmlld19uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzcWxfcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHZpZXdfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRoZSB2aWV3L212aWV3IHVu ZGVyIHNjaGVtYSBub2RlLiIiIgogICAgICAgICB2aWV3X3Jlc3BvbnNlID0gdmlld3NfdXRpbHMu dmVyaWZ5X3ZpZXcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmlld19uYW1lKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQogICAgICAg ICBpZiBub3Qgdmlld19yZXNwb25zZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGZpbmQgdGhlIHZpZXcgdG8gZGVsZXRlLiIpCisKICAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1fSIu Zm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAiezB9ezF9 L3syfS97M30vezR9L3s1fSIuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfaWQsIHNlbGYudmlld19pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICApLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAgICAg ICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIw MCkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygy MDApCisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVz cG9uc2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2luZm8nKSA+ IHNob3VsZC5iZS5lcXVhbC50bygKKyAgICAgICAgICAgICdWaWV3IGRyb3BwZWQnKQorICAgICAg ICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdlcnJvcm1zZycpID4gc2hvdWxkLmJl LmVtcHR5CisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2RhdGEnKQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyZXN1bHQnKSA+IHNob3Vs ZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3N1Y2Nl c3MnKSA+IHNob3VsZC5iZS5lcXVhbC50bygxKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgot ICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVz dGVyLCBzZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rl c3Rfdmlld3NfZ2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvdGVzdHMvdGVzdF92aWV3c19nZXQucHkKaW5kZXgg MmM2YzE0ZmMuLjJiYjNkOTdiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdz X2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX2dldC5weQpAQCAtOSw3NSAr OSwxNDkgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMu ZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKICAgICB1dGlscyBhcyBzY2hlbWFfdXRp bHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwogZnJvbSBwZ2FkbWlu LnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMu YmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCitmcm9tIHBnYWRtaW4u dXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIHZpZXdzX3V0aWxzCiAKIAotY2xhc3MgVmlld3NHZXRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRoZSB2aWV3IHVuZGVyIHNj aGVtYSBub2RlLiIiIgotICAgIHZpZXdfc3FsID0gIkNSRUFURSBPUiBSRVBMQUNFIFZJRVcgJXMu JXMgQVMgU0VMRUNUICdIZWxsbyBXb3JsZCc7ICIgXAotICAgICAgICAgICAgICAgIkFMVEVSIFRB QkxFICVzLiVzIE9XTkVSIFRPICVzIgotICAgIG1fdmlld19zcWwgPSAiQ1JFQVRFIE1BVEVSSUFM SVpFRCBWSUVXICVzLiVzIFRBQkxFU1BBQ0UgcGdfZGVmYXVsdCBBUyAiIFwKLSAgICAgICAgICAg ICAgICAgIlNFTEVDVCAndGVzdF9wZ2FkbWluJyBXSVRIIE5PIERBVEE7QUxURVIgVEFCTEUgJXMu JXMgT1dORVIiIFwKLSAgICAgICAgICAgICAgICAgIiBUTyAlcyIKLSAgICBzY2VuYXJpb3MgPSBb Ci0gICAgICAgICgnR2V0IHZpZXcgdW5kZXIgc2NoZW1hIG5vZGUnLCBkaWN0KAotICAgICAgICAg ICAgdXJsPScvYnJvd3Nlci92aWV3L29iai8nLAotICAgICAgICAgICAgdmlld19uYW1lPSJ0ZXN0 X3ZpZXdfZ2V0XyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKSwKLSAgICAgICAgICAgIHNx bF9xdWVyeT12aWV3X3NxbCkpLAotICAgICAgICAoJ0dldCBtYXRlcmlhbGl6ZWQgdmlldyB1bmRl ciBzY2hlbWEgbm9kZScsCi0gICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvbXZpZXcvb2JqLycs Ci0gICAgICAgICAgICAgIHZpZXdfbmFtZT0idGVzdF9tdmlld19nZXRfJXMiICUgKHN0cih1dWlk LnV1aWQ0KCkpWzE6OF0pLAotICAgICAgICAgICAgICBzcWxfcXVlcnk9bV92aWV3X3NxbCkpCi0g ICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJl bnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9p bmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlbGYuZGJfaWQgPSBzY2hl bWFfaW5mb1siZGJfaWQiXQorY2xhc3MgVGVzdFZpZXdHZXQ6CisgICAgZGVmIHRlc3Rfdmlld3Nf Z2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiB0aGUgdmlld3MgZ2V0IHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFja2VuZAorICAg ICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3Qu YWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3Zp ZXcvb2JqLycKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3Rf Y2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXIn XQorICAgICAgICBzZWxmLnNlcnZlcl9kYXRhID0gcGFyZW50X25vZGVfZGljdFsnZGF0YWJhc2Un XVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydzZXJ2ZXJf aWQnXQorICAgICAgICBzZWxmLmRiX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfaWQnXQorICAg ICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9uYW1lJ10KKworICAgICAg ICBzZWxmLnNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsnc2NoZW1hJ11bLTFdCisgICAg ICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfbmFtZSddCisg ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX2lkJ10KKwor ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bImluZm8iXSA9 PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisKKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNl ID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAg ICAgIHZpZXdfbmFtZSA9ICJ0ZXN0X3ZpZXdfZGVsZXRlXyVzIiAlIChzdHIodXVpZC51dWlkNCgp KVsxOjhdKQorICAgICAgICBzcWxfcXVlcnkgPSAiQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyAlcy4l cyBBUyBTRUxFQ1QgJ0hlbGxvIFdvcmxkJzsgIiBcCisgICAgICAgICAgICAgICAgICAgICJBTFRF UiBUQUJMRSAlcy4lcyBPV05FUiBUTyAlcyIKKyAgICAgICAgc2VsZi52aWV3X2lkID0gdmlld3Nf dXRpbHMuY3JlYXRlX3ZpZXcoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3FsX3F1ZXJ5LAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3X25hbWUpCisKKyAgICAg ICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICAiezB9ezF9L3syfS97 M30vezR9L3s1fSIuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfaWQsIHNlbGYudmlld19pZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICApLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCisgICAgICAgICkK KworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50bygyMDAp CisgICAgICAgIGpzb25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9u c2UpCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ29pZCcpCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ25hbWUnKSA+IFwKKyAgICAgICAg ICAgIHNob3VsZC5iZS5lcXVhbC50byh2aWV3X25hbWUpCisKKyAgICBAcHl0ZXN0Lm1hcmsuc2tp cF9pZl9wb3N0Z3Jlc192ZXJzaW9uKAorICAgICAgICB7J2JlbG93X3ZlcnNpb24nOiBQb3N0Z3Jl c1ZlcnNpb24udjkzfSwKKyAgICAgICAgIk1hdGVyaWFsaXplZCBWaWV3cyBhcmUgbm90IHN1cHBv cnRlZCAiCisgICAgICAgICJieSBQRzkuMiAiCisgICAgICAgICJhbmQgUFBBUzkuMiBhbmQgYmVs b3cuIikKKyAgICBkZWYgdGVzdF9tYXRlcmlhbGl6ZWRfdmlld3NfYWRkKHNlbGYsIHJlcXVlc3Qs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgbWF0ZXJp YWxpemVkIHZpZXdzIGFkZCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAg aXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9tdmlldy9v YmovJworCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGll bnQnXQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisg ICAgICAgIHNlbGYuc2VydmVyX2RhdGEgPSBwYXJlbnRfbm9kZV9kaWN0WydkYXRhYmFzZSddWy0x XQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ3NlcnZlcl9pZCdd CisgICAgICAgIHNlbGYuZGJfaWQgPSBzZWxmLnNlcnZlcl9kYXRhWydkYl9pZCddCisgICAgICAg IHNlbGYuZGJfbmFtZSA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX25hbWUnXQorCisgICAgICAgIHNl bGYuc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXVstMV0KKyAgICAgICAg c2VsZi5zY2hlbWFfbmFtZSA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9uYW1lJ10KKyAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzZWxmLnNjaGVtYV9pbmZvWydzY2hlbWFfaWQnXQorCiAgICAg ICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBz ZWxmLnNlcnZlcl9pZCkKIAotICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbImRhdGEiXVsidmVy c2lvbiJdIDwgOTAzMDAgYW5kICJtdmlldyIgaW4gc2VsZi51cmw6CisgICAgICAgIGlmIHNlcnZl cl9yZXNwb25zZVsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKICAgICAgICAgICAgIG1lc3Nh Z2UgPSAiTWF0ZXJpYWxpemVkIFZpZXdzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHOS4yICIgXAog ICAgICAgICAgICAgICAgICAgICAgICJhbmQgUFBBUzkuMiBhbmQgYmVsb3cuIgotICAgICAgICAg ICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQotCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0 aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkKQotICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgot ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZSB0byBmZXRjaCB0aGUgdmlldy4iKQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfaWQiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9b InNjaGVtYV9uYW1lIl0KKyAgICAgICAgICAgIHB5dGVzdC5za2lwVGVzdChtZXNzYWdlKQorCisg ICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlscy5TRVJW RVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09 ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKwogICAgICAgICBzY2hlbWFfcmVzcG9uc2Ug PSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnNjaGVtYV9uYW1lKQogICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgotICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGZldGNoIHRo ZSB2aWV3LiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSBzY2hlbWEuIikKKworICAgICAgICB2aWV3X25hbWUgPSAidGVzdF9tdmlld19kZWxldGVfJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNxbF9xdWVyeSA9ICJDUkVBVEUg TUFURVJJQUxJWkVEIFZJRVcgJXMuJXMgVEFCTEVTUEFDRSIgXAorICAgICAgICAgICAgICAgICAg ICAiIHBnX2RlZmF1bHQgQVMgIiBcCisgICAgICAgICAgICAgICAgICAgICJTRUxFQ1QgJ3Rlc3Rf cGdhZG1pbicgV0lUSCBOTyBEQVRBOyIgXAorICAgICAgICAgICAgICAgICAgICAiQUxURVIgVEFC TEUgJXMuJXMgT1dORVIiIFwKKyAgICAgICAgICAgICAgICAgICAgIiBUTyAlcyIKICAgICAgICAg c2VsZi52aWV3X2lkID0gdmlld3NfdXRpbHMuY3JlYXRlX3ZpZXcoc2VsZi5zZXJ2ZXIsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zcWxfcXVlcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYudmlld19uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzcWxfcXVlcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHZpZXdfbmFtZSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHZpZXcvbXZpZXcgdW5kZXIgc2No ZW1hIG5vZGUuIiIiCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAg ICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VS VkVSX0dST1VQLAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9L3s0fS97NX0iLmZvcm1hdCh1 cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQsCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX2lkLCBzZWxmLnZpZXdfaWQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAg ICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZQogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3Rh dHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNl ID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdvaWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hv dWxkLmhhdmUua2V5KCduYW1lJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZXF1YWwudG8o dmlld19uYW1lKQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9p ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL3Rlc3RzL3Rlc3Rfdmlld3NfcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdmlld3MvdGVzdHMvdGVzdF92aWV3c19wdXQucHkKaW5kZXggNzhjYmUyNWIuLmY3ZGJjMDMz IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy92aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX3B1dC5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92 aWV3cy90ZXN0cy90ZXN0X3ZpZXdzX3B1dC5weQpAQCAtMTAsODIgKzEwLDE3NiBAQAogaW1wb3J0 IGpzb24KIGltcG9ydCB1dWlkCiAKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCiAgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBm cm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3Rz IGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0YWJhc2VfdXRpbHMKIGZyb20gcGdhZG1pbi51dGls cyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2Vf dGVzdF9nZW5lcmF0b3IgaW1wb3J0IFBvc3RncmVzVmVyc2lvbgorZnJvbSBwZ2FkbWluLnV0aWxz LnRlc3RzX2hlbHBlciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNz ZXJ0X2pzb25fdmFsdWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0 ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHZpZXdzX3V0aWxzCiAK IAotY2xhc3MgVmlld3NVcGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIi VGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB0aGUgdmlldy9tdmlldyB1bmRlciBzY2hlbWEgbm9kZS4i IiIKLSAgICB2aWV3X3NxbCA9ICJDUkVBVEUgT1IgUkVQTEFDRSBWSUVXICVzLiVzIEFTIFNFTEVD VCAnSGVsbG8gV29ybGQnOyAiIFwKLSAgICAgICAgICAgICAgICJBTFRFUiBUQUJMRSAlcy4lcyBP V05FUiBUTyAlcyIKLSAgICBtX3ZpZXdfc3FsID0gIkNSRUFURSBNQVRFUklBTElaRUQgVklFVyAl cy4lcyBUQUJMRVNQQUNFIHBnX2RlZmF1bHQgQVMgIiBcCi0gICAgICAgICAgICAgICAgICJTRUxF Q1QgJ3Rlc3RfcGdhZG1pbicgV0lUSCBOTyBEQVRBO0FMVEVSIFRBQkxFICVzLiVzIE9XTkVSIiBc Ci0gICAgICAgICAgICAgICAgICIgVE8gJXMiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo J1VwZGF0ZSB2aWV3IHVuZGVyIHNjaGVtYSBub2RlJywgZGljdCgKLSAgICAgICAgICAgIHVybD0n L2Jyb3dzZXIvdmlldy9vYmovJywKLSAgICAgICAgICAgIHZpZXdfbmFtZT0idGVzdF92aWV3X3B1 dF8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSksCi0gICAgICAgICAgICBzcWxfcXVlcnk9 dmlld19zcWwpKSwKLSAgICAgICAgKCdVcGRhdGUgbWF0ZXJpYWxpemVkIHZpZXcgdW5kZXIgc2No ZW1hIG5vZGUnLAotICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL212aWV3L29iai8nLAotICAg ICAgICAgICAgICB2aWV3X25hbWU9InRlc3RfbXZpZXdfcHV0XyVzIiAlIChzdHIodXVpZC51dWlk NCgpKVsxOjhdKSwKLSAgICAgICAgICAgICAgc3FsX3F1ZXJ5PW1fdmlld19zcWwpKQotICAgIF0K LQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25v ZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQotICAgICAgICBzY2hlbWFfaW5mbyA9 IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2lu Zm9bImRiX2lkIl0KK2NsYXNzIFRlc3RWaWV3R2V0OgorICAgIGRlZiB0ZXN0X3ZpZXdzX2dldChz ZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gdGhlIHZpZXdzIGdldCByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAg aXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci92aWV3L29i ai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVu dCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAg ICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFd CisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAg c2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2Vs Zi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBz ZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFfaW5mb1snc2NoZW1hX25hbWUnXQorICAgICAg ICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1hX2luZm9bJ3NjaGVtYV9pZCddCisKKyAgICAg ICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRh dGFiYXNlIGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNj aGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2No ZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICB2 aWV3X25hbWUgPSAidGVzdF92aWV3X2RlbGV0ZV8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKKyAgICAgICAgc3FsX3F1ZXJ5ID0gIkNSRUFURSBPUiBSRVBMQUNFIFZJRVcgJXMuJXMgQVMg U0VMRUNUICdIZWxsbyBXb3JsZCc7ICIgXAorICAgICAgICAgICAgICAgICAgICAiQUxURVIgVEFC TEUgJXMuJXMgT1dORVIgVE8gJXMiCisgICAgICAgIHNlbGYudmlld19pZCA9IHZpZXdzX3V0aWxz LmNyZWF0ZV92aWV3KHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxbF9xdWVyeSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQorICAgICAgICB2aWV3 X3Jlc3BvbnNlID0gdmlld3NfdXRpbHMudmVyaWZ5X3ZpZXcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZp ZXdfbmFtZSkKKyAgICAgICAgaWYgbm90IHZpZXdfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB2aWV3IHRvIHVwZGF0ZS4iKQorCisgICAg ICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiaWQiOiBzZWxmLnZpZXdfaWQsCisgICAgICAgICAg ICAiY29tbWVudCI6ICJUaGlzIGlzIHRlc3QgY29tbWVudCIKKyAgICAgICAgfQorICAgICAgICBy ZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKKyAgICAgICAgICAgICJ7MH17MX0vezJ9L3szfS97 NH0vezV9Ii5mb3JtYXQodXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9p ZCwgc2VsZi52aWV3X2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBm b2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBz aG91bGQuYmUuZXF1YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9y ZXNwb25zZV90b19qc29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJv bV9yZXNwb25zZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAndmll dycsCisgICAgICAgICAgICAncGdhZG1pbi5ub2RlLnZpZXcnLAorICAgICAgICAgICAgVHJ1ZSwK KyAgICAgICAgICAgICdpY29uLXZpZXcnLAorICAgICAgICAgICAgdmlld19uYW1lCisgICAgICAg ICkKKworICAgIEBweXRlc3QubWFyay5za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oCisgICAgICAg IHsnYmVsb3dfdmVyc2lvbic6IFBvc3RncmVzVmVyc2lvbi52OTN9LAorICAgICAgICAiTWF0ZXJp YWxpemVkIFZpZXdzIGFyZSBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgImJ5IFBHOS4yICIKKyAg ICAgICAgImFuZCBQUEFTOS4yIGFuZCBiZWxvdy4iKQorICAgIGRlZiB0ZXN0X21hdGVyaWFsaXpl ZF92aWV3c19hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSBtYXRlcmlhbGl6ZWQgdmlld3MgYWRkIHJlcXVlc3QgaXMgc2Vu ZCB0byB0aGUgYmFja2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAg IiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAg ICAgdXJsID0gJy9icm93c2VyL212aWV3L29iai8nCisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBj b250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfZGF0YSA9IHBhcmVu dF9ub2RlX2RpY3RbJ2RhdGFiYXNlJ11bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2Vs Zi5zZXJ2ZXJfZGF0YVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNlbGYuc2Vy dmVyX2RhdGFbJ2RiX2lkJ10KKyAgICAgICAgc2VsZi5kYl9uYW1lID0gc2VsZi5zZXJ2ZXJfZGF0 YVsnZGJfbmFtZSddCisKKyAgICAgICAgc2VsZi5zY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2Rp Y3RbJ3NjaGVtYSddWy0xXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2VsZi5zY2hlbWFf aW5mb1snc2NoZW1hX25hbWUnXQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNlbGYuc2NoZW1h X2luZm9bJ3NjaGVtYV9pZCddCisKICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0 aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQogCi0gICAgICAgIGlmIHNl cnZlcl9yZXNwb25zZVsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMCBhbmQgIm12aWV3IiBpbiBz ZWxmLnVybDoKKyAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bInZlcnNpb24iXSA8 IDkwMzAwOgogICAgICAgICAgICAgbWVzc2FnZSA9ICJNYXRlcmlhbGl6ZWQgVmlld3MgYXJlIG5v dCBzdXBwb3J0ZWQgYnkgUEc5LjIgIiBcCiAgICAgICAgICAgICAgICAgICAgICAgImFuZCBQUEFT OS4yIGFuZCBiZWxvdy4iCi0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0KLSAg ICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGls cy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9j b25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIHVwZGF0ZSBhIHZpZXcuIikKLSAgICAgICAg c2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KLSAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgICAgICBweXRl c3Quc2tpcFRlc3QobWVzc2FnZSkKKworICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5j b25uZWN0X2RhdGFiYXNlKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisgICAgICAg IGlmIG5vdCBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlLiIpCisK ICAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNl bGYuc2VydmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5kYl9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKICAgICAgICAgaWYgbm90IHNj aGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZp bmQgdGhlIHNjaGVtYSB0byB1cGRhdGUgYSB2aWV3LiIpCisgICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEuIikKKworICAgICAgICB2aWV3X25hbWUg PSAidGVzdF9tdmlld19kZWxldGVfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAg ICAgIHNxbF9xdWVyeSA9ICJDUkVBVEUgTUFURVJJQUxJWkVEIFZJRVcgJXMuJXMgVEFCTEVTUEFD RSIgXAorICAgICAgICAgICAgICAgICAgICAiIHBnX2RlZmF1bHQgQVMgIiBcCisgICAgICAgICAg ICAgICAgICAgICJTRUxFQ1QgJ3Rlc3RfcGdhZG1pbicgV0lUSCBOTyBEQVRBOyIgXAorICAgICAg ICAgICAgICAgICAgICAiQUxURVIgVEFCTEUgJXMuJXMgT1dORVIiIFwKKyAgICAgICAgICAgICAg ICAgICAgIiBUTyAlcyIKICAgICAgICAgc2VsZi52aWV3X2lkID0gdmlld3NfdXRpbHMuY3JlYXRl X3ZpZXcoc2VsZi5zZXJ2ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuZGJfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zcWxfcXVlcnksCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmlld19uYW1lKQotCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhl IHZpZXcvbXZpZXcgdW5kZXIgc2NoZW1hIG5vZGUuIiIiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNxbF9xdWVyeSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld19uYW1lKQogICAgICAgICB2aWV3X3Jlc3Bv bnNlID0gdmlld3NfdXRpbHMudmVyaWZ5X3ZpZXcoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmll d19uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmlld19uYW1lKQogICAgICAgICBpZiBub3Qgdmlld19yZXNwb25zZToKICAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHZpZXcgdG8gdXBkYXRlLiIpCi0gICAg ICAgIGRhdGEgPSB7ImlkIjogc2VsZi52aWV3X2lkLAotICAgICAgICAgICAgICAgICJjb21tZW50 IjogIlRoaXMgaXMgdGVzdCBjb21tZW50IgotICAgICAgICAgICAgICAgIH0KKworICAgICAgICBk YXRhID0geworICAgICAgICAgICAgImlkIjogc2VsZi52aWV3X2lkLAorICAgICAgICAgICAgImNv bW1lbnQiOiAiVGhpcyBpcyB0ZXN0IGNvbW1lbnQiCisgICAgICAgIH0KICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30vezR9L3s1 fSIuZm9ybWF0KHNlbGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAiezB9 ezF9L3syfS97M30vezR9L3s1fSIuZm9ybWF0KHVybCwgdXRpbHMuU0VSVkVSX0dST1VQLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwg c2VsZi5kYl9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zY2hlbWFfaWQsIHNlbGYudmlld19pZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAog ICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1 c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9 IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkKKyAgICAgICAgYXNzZXJ0X2pzb25f dmFsdWVzX2Zyb21fcmVzcG9uc2UoCisgICAgICAgICAgICBqc29uX3Jlc3BvbnNlLAorICAgICAg ICAgICAgJ212aWV3JywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUubXZpZXcnLAorICAgICAg ICAgICAgVHJ1ZSwKKyAgICAgICAgICAgICdpY29uLXZpZXcnLAorICAgICAgICAgICAgdmlld19u YW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIyBEaXNj b25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBkYXRhYmFz ZV91dGlscy5jbGllbnRfZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2 ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvX19pbml0X18ucHkKaW5k ZXggN2ZjZTc4MmQuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL19f aW5pdF9fLnB5CkBAIC02LDEwICs2LDMgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi1mcm9t IHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3Mg RGF0YWJhc2VDcmVhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgZGVmIHJ1blRl c3Qoc2VsZik6Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfYWRkLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3Rz L3Rlc3RfZGJfYWRkLnB5CmluZGV4IDg4Yjk4MmY4Li43ZjZhYjNmNCAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rl c3RfZGJfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX2FkZC5weQpAQCAtOSw1MSArOSw1OCBAQAogCiBp bXBvcnQganNvbgogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0 aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9y dCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1w b3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgZGF0YWJhc2Vf dXRpbHMKIAogCi1jbGFzcyBEYXRhYmFzZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToK LSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdGVzdCB0aGUgQUREIGRhdGFiYXNlIEFQSSIiIgotICAg IHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJh c2Ugbm9kZS4KLSAgICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZSBVUkwnLCBkaWN0KHVybD0n L2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToK LSAgICAgICAgcGFzcwotCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgYWRkIGRhdGFiYXNlIHVuZGVyIDFzdCBzZXJ2ZXIgb2YgdHJlZSBub2Rl LiAiIiIKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gJycKLSAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAgICAgIHNl cnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZWxmLnNl cnZlcl9pZCkKLSAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJpbmZvIl0gPT0gIlNlcnZlciBj b25uZWN0ZWQuIjoKLSAgICAgICAgICAgIGRiX293bmVyID0gc2VydmVyX3Jlc3BvbnNlWydkYXRh J11bJ3VzZXInXVsnbmFtZSddCi0gICAgICAgICAgICBzZWxmLmRhdGEgPSBkYXRhYmFzZV91dGls cy5nZXRfZGJfZGF0YShkYl9vd25lcikKLSAgICAgICAgICAgIHNlbGYuZGF0YVsndGVtcGxhdGUn XSA9ICd0ZW1wbGF0ZTAnCi0gICAgICAgICAgICBzZWxmLmRiX25hbWUgPSBzZWxmLmRhdGFbJ25h bWUnXQotICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsg c3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICIvIiArIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAiLyIsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYuZGF0YSksCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKLSAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICAgICAgZGJfaWQgPSByZXNwb25zZV9kYXRh Wydub2RlJ11bJ19pZCddCi0gICAgICAgICAgICBkYl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxm LnNlcnZlcl9pZCwgImRiX2lkIjogZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICJkYl9u YW1lIjogc2VsZi5kYl9uYW1lfQotICAgICAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJk aWQiLCBkYl9kaWN0KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJFcnJvciB3aGlsZSBjb25uZWN0aW5nIHNlcnZlciB0byBhZGQgdGhlIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICIgZGF0YWJhc2UuIikKK2NsYXNzIFRlc3REYXRhYmFzZUFkZDoKIAot ICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICBkZWYgdGVzdF9kYXRhYmFzZV9hZGQoc2VsZiwg cmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CiAgICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1 bmN0aW9uIGRlbGV0ZSB0aGUgZGF0YWJhc2UgZnJvbSBzZXJ2ZXIgYWRkZWQgaW4gU1FMaXRlLgor ICAgICAgICBXaGVuIHNlbmRpbmcgcG9zdCByZXF1ZXN0IHRvIGRhdGFiYXNlIGVuZHBvaW50Cisg ICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cwogICAgICAgICAiIiIKKworICAgICAgICByZXF1 ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHNlbGYuc2VydmVyID0g Y29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0 X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9kYXRhYmFz ZS9vYmovJworICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5m b3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVy X3V0aWxzLmNsaWVudF9jb25uZWN0X3NlcnZlcigKKyAgICAgICAgICAgIGh0dHBfY2xpZW50LAor ICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3 b3JkJ10pCisgICAgICAgIGlmIG5vdCBzZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEnXVsnY29ubmVjdGVk J106CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlcnZlciBub3QgZm91bmQuJykKKwor ICAgICAgICBkYl9vd25lciA9IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWyd1c2VyJ11bJ25hbWUn XQorICAgICAgICBkYXRhID0gZGF0YWJhc2VfdXRpbHMuZ2V0X2RiX2RhdGEoZGJfb3duZXIpCisg ICAgICAgIGRhdGFbJ3RlbXBsYXRlJ10gPSAndGVtcGxhdGUwJworICAgICAgICBzZWxmLmRiX25h bWUgPSBkYXRhWyduYW1lJ10KKworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBvc3Qo CisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICIvIiArCisgICAg ICAgICAgICBzdHIoc2VydmVyX2lkKSArICIvIiwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAg ICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisKKyAgICAgICAg cmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04Jykp CisgICAgICAgIGRiX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9kZSddWydfaWQnXQorICAgICAgICBk Yl9kaWN0ID0geworICAgICAgICAgICAgInNlcnZlcl9pZCI6IHNlcnZlcl9pZCwKKyAgICAgICAg ICAgICJkYl9pZCI6IGRiX2lkLAorICAgICAgICAgICAgImRiX25hbWUiOiAnYmFhJworICAgICAg ICB9CisKKyAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJkaWQiLCBkYl9kaWN0KQorCisg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29y ZCddLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5 CmluZGV4IDhjOTI1YzMzLi5jYzk4ODFmOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZGVsZXRlLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy90ZXN0cy90ZXN0X2RiX2RlbGV0ZS5weQpAQCAtOSw0MyArOSw1MSBAQAogCiBpbXBvcnQgdXVp ZAogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcGdhZG1pbi51dGlscyBpbXBv cnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRf bm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBEYXRhYmFzZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUgZGF0YWJhc2Ug dW5kZXIgbGFzdCBhZGRlZCBzZXJ2ZXIuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg IyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJhc2Ugbm9kZS4KLSAgICAgICAgKCdDaGVj ayBEYXRhYmFzZXMgTm9kZSBVUkwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvZGF0YWJhc2Uvb2JqLycp KQotICAgIF0KK2NsYXNzIFRlc3REYXRhYmFzZURlbGV0ZToKKworICAgIGRlZiB0ZXN0X2RhdGFi YXNlX2RlbGV0ZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gc2VuZGluZyBkZWxldGUgcmVxdWVzdCB0byBkYXRhYmFzZSBlbmRwb2lu dAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBzZXRVcChzZWxm KToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gImRiX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlk NCgpKVsxOjhdLAotICAgICAgICBzZWxmLmRiX2lkID0gdXRpbHMuY3JlYXRlX2RhdGFiYXNlKHNl bGYuc2VydmVyLCBzZWxmLmRiX25hbWUpCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gcGFyZW50 X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9kaWN0ID0g eyJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9pZCwgImRiX2lkIjogc2VsZi5kYl9pZCwKLSAgICAg ICAgICAgICAgICAgICAiZGJfbmFtZSI6IHNlbGYuZGJfbmFtZX0KKyAgICAgICAgc2VsZi5zZXJ2 ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICBodHRwX2NsaWVudCA9IGNv bnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgdXJsID0gJy9icm93c2VyL2Rh dGFiYXNlL29iai8nCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl cl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBz ZXJ2ZXJfdXRpbHMuY2xpZW50X2Nvbm5lY3Rfc2VydmVyKAorICAgICAgICAgICAgaHR0cF9jbGll bnQsCisgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJf cGFzc3dvcmQnXSkKKyAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWydjb25u ZWN0ZWQnXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VydmVyIG5vdCBmb3VuZC4n KQorCisgICAgICAgIHNlbGYuZGJfbmFtZSA9ICJkYl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjhdLAorICAgICAgICBkYl9pZCA9IHV0aWxzLmNyZWF0ZV9kYXRhYmFzZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lKQorICAgICAgICBkYl9kaWN0ID0geworICAgICAgICAgICAgInNlcnZlcl9p ZCI6IHNlcnZlcl9pZCwKKyAgICAgICAgICAgICJkYl9pZCI6IGRiX2lkLAorICAgICAgICAgICAg ImRiX25hbWUiOiBzZWxmLmRiX25hbWUKKyAgICAgICAgfQogICAgICAgICB1dGlscy53cml0ZV9u b2RlX2luZm8oImRpZCIsIGRiX2RpY3QpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIGRhdGFiYXNlLiIiIgotICAgICAg ICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIHNlcnZlcl9yZXNwb25zZVsiZGF0YSJdWyJjb25uZWN0 ZWQiXToKLSAgICAgICAgICAgIGRiX2lkID0gc2VsZi5kYl9pZAotICAgICAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAgICAgc3RyKHNlbGYuc2Vy dmVyX2lkKSArICcvJyArIHN0cihkYl9pZCksCi0gICAgICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVz X2NvZGUsIDIwMCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVyIHRvIGRlbGV0ZSB0aGUgIgotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJkYXRhYmFzZS4iKQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xp ZW50LmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihkYl9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAg cmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQogCiAgICAgZGVmIHRlYXJE b3duKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRyb3AgdGhlIGFkZGVkIGRhdGFi YXNlIiIiCiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxm LnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVz dHMvdGVzdF9kYl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkKaW5kZXggM2ZmMGQ5MGQuLjk4MzJm ZGY4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvdGVzdHMvdGVzdF9kYl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJfZ2V0LnB5CkBA IC03LDQxICs3LDI4IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0 IHBhcmVudF9ub2RlX2RpY3QKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxz IGFzIHV0aWxzCi1mcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCiAKIAotY2xh c3MgRGF0YWJhc2VzR2V0VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAg IFRoaXMgY2xhc3Mgd2lsbCBmZXRjaCBkYXRhYmFzZSBhZGRlZCB1bmRlciBsYXN0IGFkZGVkIHNl cnZlci4KLSAgICAiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVm YXVsdCBVUkwgZm9yIGRhdGFiYXNlIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgRGF0YWJhc2VzIE5v ZGUgVVJMJywgZGljdCh1cmw9Jy9icm93c2VyL2RhdGFiYXNlL29iai8nKSkKLSAgICBdCitjbGFz cyBUZXN0RGF0YWJhc2VHZXQ6CisgICAgQHB5dGVzdC5tYXJrLnVzZWZpeHR1cmVzKCdyZXF1aXJl X2RhdGFiYXNlX2Nvbm5lY3Rpb24nKQorICAgIGRlZiB0ZXN0X2RhdGFiYXNlX2dldChzZWxmLCBj b250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBnZXQg cmVxdWVzdCB0byBkYXRhYmFzZSBlbmRwb2ludAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0 dXMKKyAgICAgICAgIiIiCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL2RhdGFiYXNlL29iai8n CisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQor ICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24n XVsnc2VydmVyX2lkJ10KKyAgICAgICAgZGJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJf aW5mb3JtYXRpb24nXVsnZGJfaWQnXQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQu Z2V0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGRiX2lk KSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAg ICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggYWRkZWQgZGF0YWJhc2UuICIiIgotICAg ICAgICBzZXJ2ZXJfZGF0YSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCi0gICAg ICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9kYXRhWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9 IHNlcnZlcl9kYXRhWydkYl9pZCddCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQotICAgICAgICB0cnk6Ci0gICAg ICAgICAgICBpZiBkYl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6Ci0gICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICAgICAg ICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCi0gICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWQpICsgJy8nICsKLSAgICAgICAgICAgICAgICAg ICAgc3RyKGRiX2lkKSwgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICAgICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0gICAgICAgICAgICBl bHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UuIikKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246Ci0g ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVycm9yIHdoaWxlIGdldHRpbmcgZGF0YWJhc2Uu ICVzIiAlIGV4Y2VwdGlvbikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICMgRGlzY29u bmVjdCBkYXRhYmFzZSB0byBkZWxldGUgaXQKLSAgICAgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRp c2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VydmVyX2lkLCBkYl9pZCkKKyAgICAgICAgcmVzcG9u c2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Rlc3RzL3Rlc3RfZGJf cHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CmluZGV4IGU1NTk4NDY4Li40MjQ0ZWU1OCAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3Rlc3RzL3Rlc3RfZGJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy90ZXN0X2RiX3B1dC5weQpAQCAtMTAsNjQgKzEw LDcyIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20gcGdhZG1pbi51 dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNlcnZlcl91dGlscwogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIGRhdGFiYXNlX3V0aWxzCiAKIAotY2xhc3MgRGF0YWJhc2VzVXBkYXRlVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUg dGhlIGRhdGFiYXNlIHVuZGVyIGxhc3QgYWRkZWQgc2VydmVyLiIiIgotICAgIHNjZW5hcmlvcyA9 IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3IgZGF0YWJhc2Ugbm9kZS4KLSAg ICAgICAgKCdDaGVjayBEYXRhYmFzZXMgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9kYXRhYmFz ZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdERhdGFiYXNlUHV0OgorCisgICAgZGVmIHRlc3Rf ZGF0YWJhc2VfcHV0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIHB1dCByZXF1ZXN0IHRvIGRhdGFiYXNlIGVuZHBvaW50 CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICBy ZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHNlbGYuc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250 ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9kYXRh YmFzZS9vYmovJworICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJf aW5mb3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2Vy dmVyX3V0aWxzLmNsaWVudF9jb25uZWN0X3NlcnZlcigKKyAgICAgICAgICAgIGh0dHBfY2xpZW50 LAorICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bh c3N3b3JkJ10pCisgICAgICAgIGlmIG5vdCBzZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEnXVsnY29ubmVj dGVkJ106CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1NlcnZlciBub3QgZm91bmQuJykK IAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgc2VsZi5kYl9uYW1lID0gInRlc3RfZGJf cHV0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5kYl9pZCA9IHV0 aWxzLmNyZWF0ZV9kYXRhYmFzZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lKQotICAgICAgICBz ZWxmLnNlcnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lk Il0KLSAgICAgICAgZGJfZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWQsICJkYl9p ZCI6IHNlbGYuZGJfaWQsCi0gICAgICAgICAgICAgICAgICAgImRiX25hbWUiOiBzZWxmLmRiX25h bWV9CisgICAgICAgIHNlbGYuZGJfbmFtZSA9ICJkYl8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsx OjhdLAorICAgICAgICBkYl9pZCA9IHV0aWxzLmNyZWF0ZV9kYXRhYmFzZShzZWxmLnNlcnZlciwg c2VsZi5kYl9uYW1lKQorICAgICAgICBkYl9kaWN0ID0geworICAgICAgICAgICAgInNlcnZlcl9p ZCI6IHNlcnZlcl9pZCwKKyAgICAgICAgICAgICJkYl9pZCI6IGRiX2lkLAorICAgICAgICAgICAg ImRiX25hbWUiOiBzZWxmLmRiX25hbWUKKyAgICAgICAgfQogICAgICAgICB1dGlscy53cml0ZV9u b2RlX2luZm8oImRpZCIsIGRiX2RpY3QpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGNvbW1lbnRzIGZpZWxkIG9mIGRh dGFiYXNlLiIiIgotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFi YXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCi0gICAgICAgIGlmIGRiX2Nvblsi aW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHRyeToKLSAgICAg ICAgICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgICAgICAgICAiY29tbWVudHMiOiAiVGhp cyBpcyBkYiB1cGRhdGUgY29tbWVudCIsCi0gICAgICAgICAgICAgICAgICAgICJpZCI6IHNlbGYu ZGJfaWQKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wdXQoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl cnZlcl9pZCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCksIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0 cz1UcnVlKQotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1 c19jb2RlLCAyMDApCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoK LSAgICAgICAgICAgICAgICBmcm9tIHRyYWNlYmFjayBpbXBvcnQgcHJpbnRfZXhjCi0gICAgICAg ICAgICAgICAgcHJpbnRfZXhjKCkKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkVy cm9yIHdoaWxlIHVwZGF0aW5nIGRhdGFiYXNlIGRldGFpbHMuICVzIiAlCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGV4Y2VwdGlvbikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAg ICAgICAgICAgICAgIyBEaXNjb25uZWN0IGRhdGFiYXNlIHRvIGRlbGV0ZSBpdAotICAgICAgICAg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJFcnJvciB3aGlsZSB1cGRhdGluZyBkYXRhYmFzZSBkZXRhaWxzLiIpCisgICAgICAgIGRiX2Nv biA9IGRhdGFiYXNlX3V0aWxzLmNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAg aHR0cF9jbGllbnQsCisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAg ICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgIHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddCisgICAgICAgICkKKworICAgICAgICBpZiBub3QgZGJfY29uWydkYXRh J11bJ2Nvbm5lY3RlZCddOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdEYXRhYmFzZSBu b3QgZm91bmQuJykKKworICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImNvbW1lbnRzIjog IlRoaXMgaXMgZGIgdXBkYXRlIGNvbW1lbnQiLAorICAgICAgICAgICAgImlkIjogZGJfaWQKKyAg ICAgICAgfQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAgICAg IHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihz ZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihkYl9pZCksCisgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuZXF1YWwoMjAwKQogCiAg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlv biBkZWxldGUgdGhlIGRhdGFiYXNlIGZyb20gc2VydmVyIGFkZGVkIGluIFNRTGl0ZS4KLSAgICAg ICAgIiIiCiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxm LnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJb J3BvcnQnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlclsnc3NsbW9kZSddKQogICAgICAgICB1dGlscy5kcm9wX2RhdGFi YXNlKGNvbm5lY3Rpb24sIHNlbGYuZGJfbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91 dGlscy5weQppbmRleCA2NTEwMTQxZi4uNjNlMmEwNTkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZXN0cy91dGlscy5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv dGVzdHMvdXRpbHMucHkKQEAgLTExMCwxMiArMTEwLDM2IEBAIGRlZiBjb25uZWN0X2RhdGFiYXNl KHNlbGYsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkLCBkYl9pZCk6CiAgICAgOnJldHVybjogdGVt cF9kYl9jb24KICAgICA6cnR5cGU6IGxpc3QKICAgICAiIiIKKyAgICByZXR1cm4gY2xpZW50X2Nv bm5lY3RfZGF0YWJhc2Uoc2VsZi50ZXN0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl9ncm91cCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3Jk J10pCiAKLSAgICAjIFZlcmlmeSBzZXJ2ZXJzCi0gICAgc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2Vy dmVyKHNlbGYsIHNlcnZlcl9pZCkKIAotICAgICMgQ29ubmVjdCB0byBkYXRhYmFzZQotICAgIGRi X2NvbiA9IHNlbGYudGVzdGVyLnBvc3QoCitkZWYgY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoaHR0 cF9jbGllbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2dyb3VwLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9wYXNzd29yZCk6 CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB2ZXJpZmllcyB0aGF0IGRhdGFiYXNlIGlzIGV4 aXN0cyBhbmQgd2hldGhlciBpdCBjb25uZWN0CisgICAgc3VjY2Vzc2Z1bGx5IG9yIG5vdAorCisg ICAgOnBhcmFtIGh0dHBfY2xpZW50OiBUZXN0IEhUVFAgQ2xpZW50IG9iamVjdAorICAgIDpwYXJh bSBzZXJ2ZXJfZ3JvdXA6IHNlcnZlciBncm91cCBpZAorICAgIDp0eXBlIHNlcnZlcl9ncm91cDog aW50CisgICAgOnBhcmFtIHNlcnZlcl9pZDogc2VydmVyIGlkCisgICAgOnR5cGUgc2VydmVyX2lk OiBzdHIKKyAgICA6cGFyYW0gZGJfaWQ6IGRhdGFiYXNlIGlkCisgICAgOnR5cGUgZGJfaWQ6IHN0 cgorICAgIDpwYXJhbSBkYl9wYXNzd29yZDogcGFzc3dvcmQgZm9yIHRoZSBkYXRhYmFzZQorICAg IDpyZXR1cm46IHRlbXBfZGJfY29uCisgICAgOnJ0eXBlOiBsaXN0CisgICAgIiIiCisgICAgc2Vy dmVyX3V0aWxzLmNsaWVudF9jb25uZWN0X3NlcnZlcihodHRwX2NsaWVudCwgc2VydmVyX2lkLCBk Yl9wYXNzd29yZCkKKworICAgIGRiX2NvbiA9IGh0dHBfY2xpZW50LnBvc3QoCiAgICAgICAgICd7 MH17MX0vezJ9L3szfScuZm9ybWF0KAogICAgICAgICAgICAgREFUQUJBU0VfQ09OTkVDVF9VUkws CiAgICAgICAgICAgICBzZXJ2ZXJfZ3JvdXAsCkBAIC0xMzEsNyArMTU1LDIwIEBAIGRlZiBjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkLCBkYl9pZCk6CiAKIGRl ZiBkaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpOgogICAgICIiIlRo aXMgZnVuY3Rpb24gZGlzY29ubmVjdCB0aGUgZGIiIiIKLSAgICBkYl9jb24gPSBzZWxmLnRlc3Rl ci5kZWxldGUoCisgICAgcmV0dXJuIGNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYudGVz dGVyLCBzZXJ2ZXJfaWQsIGRiX2lkKQorCisKK2RlZiBjbGllbnRfZGlzY29ubmVjdF9kYXRhYmFz ZShodHRwX2NsaWVudCwgc2VydmVyX2lkLCBkYl9pZCk6CisgICAgIiIiCisgICAgRXhlY3V0ZSBh IEhUVFAgUmVxdWVzdCB0byBpbmZvcm0gdGhlIHNlcnZlciB0aGF0IHRoZSBjb25uZWN0aW9uCisg ICAgdG8gYSBkYXRhYmFzZSBzaG91bGQgYmUgcmVtb3ZlZAorCisgICAgOnBhcmFtIGh0dHBfY2xp ZW50OiBGbGFzayBIVFRQIENsaWVudAorICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IElkZW50aWZpZXIg b2YgdGhlIHNlcnZlciB0byBkaXNjb25uZWN0IGZyb20KKyAgICA6cGFyYW0gZGJfaWQ6IElkZW50 aWZpZXIgb2YgdGhlIGRhdGFiYXNlIHRvIGRpc2Nvbm5lY3QgZnJvbQorICAgIDpyYWlzZXMgQXNz ZXJ0aW9uRXJyb3IgaWYgYW4gZXJyb3IgaXMgcmV0dXJuZWQgYnkgdGhlIHNlcnZlcgorICAgICIi IgorICAgIGRiX2NvbiA9IGh0dHBfY2xpZW50LmRlbGV0ZSgKICAgICAgICAgJ3swfXsxfS97Mn0v ezN9Jy5mb3JtYXQoCiAgICAgICAgICAgICAnYnJvd3Nlci9kYXRhYmFzZS9jb25uZWN0LycsCiAg ICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy9f X2luaXRfXy5weQppbmRleCA2MWY0ZDE5YS4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvX19pbml0X18u cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2Vu dC90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMCArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgot Ci0KLWNsYXNzIFBnQWdlbnRDcmVhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAg ZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0X3BnYWdl bnRfYWRkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdh Z2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfYWRkLnB5CmluZGV4IDdlYjQ5OWY3Li45OGQzNWY1NCAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdh Z2VudC90ZXN0cy90ZXN0X3BnYWdlbnRfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdF9wZ2FnZW50X2FkZC5weQpA QCAtNiwzMyArNiw0NCBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KK2ltcG9ydCBweXRlc3QK IGltcG9ydCBzaW1wbGVqc29uIGFzIGpzb24KIGltcG9ydCB1dWlkCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0 aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHBnYWdlbnRfdXRpbHMKIAogCi1j bGFzcyBQZ0FnZW50QWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMg Y2xhc3Mgd2lsbCB0ZXN0IHRoZSBhZGQgcGdBZ2VudCBqb2IgQVBJIiIiCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoJ0FkZCBwZ0FnZW50IGpvYicsIGRpY3QodXJsPScvYnJvd3Nlci9wZ2Ff am9iL29iai8nKSkKLSAgICBdCitjbGFzcyBUZXN0UGdBZ2VudEFkZDoKKyAgICBkZWYgdGVzdF9w Z19hZ2VudF9hZGQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIi IgorICAgICAgICBXaGVuIHRoZSBQRyBBZ2VudCBhZGQgcmVxdWVzdCBpcyBzZW50IHRvIHRoZSBi YWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKIAotICAg IGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgZmxhZywgbXNnID0gcGdhZ2VudF91dGlscy5pc192 YWxpZF9zZXJ2ZXJfdG9fcnVuX3BnYWdlbnQoc2VsZikKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5h bGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2Zf dGVzdHNbJ3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rl c3RzWydzZXJ2ZXInXQorCisgICAgICAgIGZsYWcsIG1lc3NhZ2UgPSBwZ2FnZW50X3V0aWxzLmlz X3ZhbGlkX3NlcnZlcl90b19ydW5fcGdhZ2VudChzZWxmKQogICAgICAgICBpZiBub3QgZmxhZzoK LSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobXNnKQotICAgICAgICBmbGFnLCBtc2cgPSBwZ2Fn ZW50X3V0aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZlcihzZWxmKQorICAgICAgICAg ICAgcHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICBmbGFnLCBtZXNzYWdlID0gcGdhZ2Vu dF91dGlscy5pc19wZ2FnZW50X2luc3RhbGxlZF9vbl9zZXJ2ZXIoc2VsZikKICAgICAgICAgaWYg bm90IGZsYWc6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1zZykKKyAgICAgICAgICAgIHB5 dGVzdC5za2lwKG1lc3NhZ2UpCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3BnYV9qb2Ivb2Jq LycKKworICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3Jt YXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rl c3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHBnYWdlbnRfam9iID0gInRlc3Rfam9iX2FkZCVz IiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgYWRkcyBwZ0FnZW50IGpvYiIiIgotICAgICAgICBz ZWxmLnBnYWdlbnRfam9iID0gInRlc3Rfam9iX2FkZCVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0KICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICdqb2JuYW1lJzogc2VsZi5wZ2FnZW50 X2pvYiwKKyAgICAgICAgICAgICdqb2JuYW1lJzogcGdhZ2VudF9qb2IsCiAgICAgICAgICAgICAn am9iZW5hYmxlZCc6IFRydWUsCiAgICAgICAgICAgICAnam9iaG9zdGFnZW50JzogJycsCiAgICAg ICAgICAgICAnam9iamNsaWQnOiAxLApAQCAtNjgsMjIgKzc5LDIyIEBAIGNsYXNzIFBnQWdlbnRB ZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICB9XSwKICAgICAgICAg fQogCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgcmVzcG9u c2UgPSBodHRwX2NsaWVudC5wb3N0KAogICAgICAgICAgICAgJ3swfXsxfS97Mn0vJy5mb3JtYXQo Ci0gICAgICAgICAgICAgICAgc2VsZi51cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIo c2VsZi5zZXJ2ZXJfaWQpCisgICAgICAgICAgICAgICAgdXJsLCB1dGlscy5TRVJWRVJfR1JPVVAs IHNlcnZlcl9pZAogICAgICAgICAgICAgKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJwogICAgICAgICApCi0g ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8oMjAwKQogCiAg ICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEpCisKICAgICAg ICAgc2VsZi5qb2JfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCi0gICAgICAgIGlz X3ByZXNlbnQgPSBwZ2FnZW50X3V0aWxzLnZlcmlmeV9wZ2FnZW50X2pvYihzZWxmKQotICAgICAg ICBzZWxmLmFzc2VydFRydWUoCi0gICAgICAgICAgICBpc19wcmVzZW50LCAicGdBZ2VudCBqb2Ig d2FzIG5vdCBjcmVhdGVkIHN1Y2Nlc3NmdWxseSIKLSAgICAgICAgKQorICAgICAgICBwZ2FnZW50 X3V0aWxzLnZlcmlmeV9wZ2FnZW50X2pvYihzZWxmKSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5i ZS5lcXVhbC50byhUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZz0ncGdB Z2VudCBqb2Igd2FzIG5vdCBjcmVhdGVkIHN1Y2Nlc3NmdWxseScpCiAKICAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgICIiIkNsZWFuIHVwIGNvZGUiIiIKICAgICAgICAgcGdhZ2VudF91 dGlscy5kZWxldGVfcGdhZ2VudF9qb2Ioc2VsZikKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdF9wZ2FnZW50X2Rl bGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdl bnQvdGVzdHMvdGVzdF9wZ2FnZW50X2RlbGV0ZS5weQppbmRleCBmOWJjYjA4Ny4uOTRkMmUyYmUg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Bn YWdlbnQvdGVzdHMvdGVzdF9wZ2FnZW50X2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL3Rlc3RfcGdhZ2VudF9kZWxl dGUucHkKQEAgLTgsNDIgKzgsNTEgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCB1dWlk Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCisKK2lt cG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIHBnYWdlbnRfdXRpbHMKIAogCi1jbGFzcyBQZ0FnZW50RGVsZXRlVGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB0ZXN0IHRoZSBk ZWxldGUgcGdBZ2VudCBqb2IgQVBJIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0Rl bGV0ZSBwZ0FnZW50IGpvYicsIGRpY3QodXJsPScvYnJvd3Nlci9wZ2Ffam9iL29iai8nKSkKLSAg ICBdCitjbGFzcyBUZXN0UGdBZ2VudERlbGV0ZToKKyAgICBkZWYgdGVzdF9wZ19hZ2VudF9kZWxl dGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIHRoZSBQRyBBZ2VudCBkZWxldGUgcmVxdWVzdCBpcyBzZW50IHRvIHRoZSBiYWNrZW5k CisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAgICAgICAiIiIKKworICAgICAgICBy ZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBmbGFnLCBtc2cgPSBwZ2FnZW50X3V0aWxzLmlzX3ZhbGlkX3NlcnZlcl90b19y dW5fcGdhZ2VudChzZWxmKQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNb J3Rlc3RfY2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorCisgICAgICAgIGZsYWcsIG1lc3NhZ2UgPSBwZ2FnZW50X3V0aWxzLmlzX3ZhbGlk X3NlcnZlcl90b19ydW5fcGdhZ2VudChzZWxmKQogICAgICAgICBpZiBub3QgZmxhZzoKLSAgICAg ICAgICAgIHNlbGYuc2tpcFRlc3QobXNnKQotICAgICAgICBmbGFnLCBtc2cgPSBwZ2FnZW50X3V0 aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZlcihzZWxmKQorICAgICAgICAgICAgcHl0 ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICBmbGFnLCBtZXNzYWdlID0gcGdhZ2VudF91dGls cy5pc19wZ2FnZW50X2luc3RhbGxlZF9vbl9zZXJ2ZXIoc2VsZikKICAgICAgICAgaWYgbm90IGZs YWc6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1zZykKKyAgICAgICAgICAgIHB5dGVzdC5z a2lwKG1lc3NhZ2UpCisKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3BnYV9qb2Ivb2JqLycKKwog ICAgICAgICBuYW1lID0gInRlc3Rfam9iX2RlbGV0ZSVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0KICAgICAgICAgc2VsZi5qb2JfaWQgPSBwZ2FnZW50X3V0aWxzLmNyZWF0ZV9wZ2FnZW50X2pv YihzZWxmLCBuYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGVzIHBnQWdlbnQgam9iIiIiCiAgICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZGVsZXRlKAogICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9Jy5mb3JtYXQo Ci0gICAgICAgICAgICAgICAgc2VsZi51cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIo c2VsZi5zZXJ2ZXJfaWQpLAorICAgICAgICAgICAgICAgIHVybCwgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCksIHN0cihzZWxmLnNlcnZlcl9pZCksCiAgICAgICAgICAgICAgICAgc3RyKHNlbGYuam9i X2lkKQogICAgICAgICAgICAgKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29u JwogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCi0gICAgICAgIGlzX3ByZXNlbnQgPSBwZ2FnZW50X3V0aWxzLnZlcmlmeV9wZ2Fn ZW50X2pvYihzZWxmKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKAotICAgICAgICAgICAgaXNf cHJlc2VudCwgInBnQWdlbnQgam9iIHdhcyBub3QgZGVsZXRlZCBzdWNjZXNzZnVsbHkiCi0gICAg ICAgICkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbC50 bygyMDApCisgICAgICAgIHBnYWdlbnRfdXRpbHMudmVyaWZ5X3BnYWdlbnRfam9iKHNlbGYpIHwg XAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKEZhbHNlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1zZz0ncGdBZ2VudCBqb2Igd2FzIG5vdCBkZWxldGVkIHN1Y2Nlc3Nm dWxseScpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIkNsZWFuIHVwIGNv ZGUiIiIKICAgICAgICAgcGdhZ2VudF91dGlscy5kZWxldGVfcGdhZ2VudF9qb2Ioc2VsZikKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdl bnQvdGVzdHMvdGVzdF9wZ2FnZW50X3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdF9wZ2FnZW50X3B1dC5weQppbmRleCAw OGZmYzZiOS4uNGU0MWE3YzcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdF9wZ2FnZW50X3B1dC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL3Rl c3RfcGdhZ2VudF9wdXQucHkKQEAgLTYsNDYgKzYsNTYgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyBy ZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworaW1wb3J0IHB5dGVzdAogaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgogaW1wb3J0IHV1aWQK LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgcGdh Z2VudF91dGlscwogCiAKLWNsYXNzIFBnQWdlbnRQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIHRlc3QgdGhlIHB1dCBwZ0FnZW50IGpvYiBBUEki IiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnUHV0IHBnQWdlbnQgam9iJywgZGljdCh1 cmw9Jy9icm93c2VyL3BnYV9qb2Ivb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RQZ0FnZW50UHV0 OgorICAgIGRlZiB0ZXN0X3BnX2FnZW50X3B1dChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rl c3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIFBHIEFnZW50IHB1dCByZXF1ZXN0 IGlzIHNlbnQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisg ICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24p CisKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCdd CisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KIAotICAg IGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgZmxhZywgbXNnID0gcGdhZ2VudF91dGlscy5pc192 YWxpZF9zZXJ2ZXJfdG9fcnVuX3BnYWdlbnQoc2VsZikKKyAgICAgICAgZmxhZywgbWVzc2FnZSA9 IHBnYWdlbnRfdXRpbHMuaXNfdmFsaWRfc2VydmVyX3RvX3J1bl9wZ2FnZW50KHNlbGYpCiAgICAg ICAgIGlmIG5vdCBmbGFnOgotICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtc2cpCi0gICAgICAg IGZsYWcsIG1zZyA9IHBnYWdlbnRfdXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2VydmVy KHNlbGYpCisgICAgICAgICAgICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIGZsYWcs IG1lc3NhZ2UgPSBwZ2FnZW50X3V0aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZlcihz ZWxmKQogICAgICAgICBpZiBub3QgZmxhZzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobXNn KQorICAgICAgICAgICAgcHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICB1cmwgPSAnL2Jy b3dzZXIvcGdhX2pvYi9vYmovJworCiAgICAgICAgIG5hbWUgPSAidGVzdF9qb2JfcHV0JXMiICUg c3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAgICAgICBzZWxmLmpvYl9pZCA9IHBnYWdlbnRfdXRp bHMuY3JlYXRlX3BnYWdlbnRfam9iKHNlbGYsIG5hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIHB1dCBwZ0FnZW50IGpvYiIiIgogICAg ICAgICBkYXRhID0gewogICAgICAgICAgICAgImpvYmRlc2MiOiAiVGhpcyBpcyBhIHRlc3QgY29t bWVudCIsCiAgICAgICAgIH0KIAogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgK ICAgICAgICAgICAgICd7MH17MX0vezJ9L3szfScuZm9ybWF0KAotICAgICAgICAgICAgICAgIHNl bGYudXJsLCBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSwgc3RyKHNlbGYuc2VydmVyX2lkKSwKKyAg ICAgICAgICAgICAgICB1cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIoc2VsZi5zZXJ2 ZXJfaWQpLAogICAgICAgICAgICAgICAgIHN0cihzZWxmLmpvYl9pZCkKICAgICAgICAgICAgICks CiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUsCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAg ICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRv KDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiQ2xlYW4gdXAgY29k ZSIiIgogICAgICAgICBwZ2FnZW50X3V0aWxzLmRlbGV0ZV9wZ2FnZW50X2pvYihzZWxmKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2Vu dC90ZXN0cy90ZXN0c19wZ2FnZW50X2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMvdGVzdHNfcGdhZ2VudF9nZXQucHkKaW5kZXgg MWMyZTUxMTUuLjAyYmQ1ZDlkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9wZ2FnZW50L3Rlc3RzL3Rlc3RzX3BnYWdlbnRfZ2V0LnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQvdGVzdHMv dGVzdHNfcGdhZ2VudF9nZXQucHkKQEAgLTgsMzggKzgsNDkgQEAKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiAKIGltcG9ydCB1dWlkCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCisKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwor ZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgcGdhZ2VudF91dGlscwogCiAKLWNs YXNzIFBnQWdlbnRHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBj bGFzcyB3aWxsIHRlc3QgdGhlIGdldCBwZ0FnZW50IGpvYiBBUEkiIiIKLSAgICBzY2VuYXJpb3Mg PSBbCi0gICAgICAgICgnR2V0IHBnQWdlbnQgam9iJywgZGljdCh1cmw9Jy9icm93c2VyL3BnYV9q b2Ivb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RQZ0FnZW50R2V0OgorICAgIGRlZiB0ZXN0X3Bn X2FnZW50X2dldChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gdGhlIFBHIEFnZW50IGdldCByZXF1ZXN0IGlzIHNlbnQgdG8gdGhlIGJh Y2tlbmQKKyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorCisgICAg ICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgc2VsZi50 ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2Vy dmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToK LSAgICAgICAgZmxhZywgbXNnID0gcGdhZ2VudF91dGlscy5pc192YWxpZF9zZXJ2ZXJfdG9fcnVu X3BnYWdlbnQoc2VsZikKKyAgICAgICAgZmxhZywgbWVzc2FnZSA9IHBnYWdlbnRfdXRpbHMuaXNf dmFsaWRfc2VydmVyX3RvX3J1bl9wZ2FnZW50KHNlbGYpCiAgICAgICAgIGlmIG5vdCBmbGFnOgot ICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtc2cpCi0gICAgICAgIGZsYWcsIG1zZyA9IHBnYWdl bnRfdXRpbHMuaXNfcGdhZ2VudF9pbnN0YWxsZWRfb25fc2VydmVyKHNlbGYpCisgICAgICAgICAg ICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIGZsYWcsIG1lc3NhZ2UgPSBwZ2FnZW50 X3V0aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZlcihzZWxmKQogICAgICAgICBpZiBu b3QgZmxhZzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobXNnKQorICAgICAgICAgICAgcHl0 ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcGdhX2pvYi9vYmov JworCiAgICAgICAgIG5hbWUgPSAidGVzdF9qb2JfZ2V0JXMiICUgc3RyKHV1aWQudXVpZDQoKSlb MTo4XQogICAgICAgICBzZWxmLmpvYl9pZCA9IHBnYWdlbnRfdXRpbHMuY3JlYXRlX3BnYWdlbnRf am9iKHNlbGYsIG5hbWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhp cyBmdW5jdGlvbiB3aWxsIGdldCBwZ0FnZW50IGpvYiIiIgogICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLmdldCgKICAgICAgICAgICAgICd7MH17MX0vezJ9L3szfScuZm9ybWF0KAotICAg ICAgICAgICAgICAgIHNlbGYudXJsLCBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSwgc3RyKHNlbGYu c2VydmVyX2lkKSwKKyAgICAgICAgICAgICAgICB1cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVAp LCBzdHIoc2VsZi5zZXJ2ZXJfaWQpLAogICAgICAgICAgICAgICAgIHN0cihzZWxmLmpvYl9pZCkK ICAgICAgICAgICAgICksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAg ICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRv KDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiQ2xlYW4gdXAgY29k ZSIiIgogICAgICAgICBwZ2FnZW50X3V0aWxzLmRlbGV0ZV9wZ2FnZW50X2pvYihzZWxmKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2Vu dC90ZXN0cy90ZXN0c19wZ2FnZW50X3N0YXRzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0c19wZ2FnZW50X3N0YXRzLnB5Cmlu ZGV4IDNiYzNkMGY2Li4wNjdiNDNlMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcGdhZ2VudC90ZXN0cy90ZXN0c19wZ2FnZW50X3N0YXRzLnB5 CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3BnYWdlbnQv dGVzdHMvdGVzdHNfcGdhZ2VudF9zdGF0cy5weQpAQCAtOCwzOCArOCw0OSBAQAogIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKIAogaW1wb3J0IHV1aWQKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKKworaW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNo b3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQg dGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwZ2FnZW50X3V0aWxz CiAKIAotY2xhc3MgUGdBZ2VudFN0YXRzVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAg ICIiIlRoaXMgY2xhc3Mgd2lsbCB0ZXN0IHRoZSBzdGF0cyBwZ0FnZW50IGpvYiBBUEkiIiIKLSAg ICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnQ2hlY2sgdGhlIHN0YXRzIG9mIHBnQWdlbnQgam9i JywgZGljdCh1cmw9Jy9icm93c2VyL3BnYV9qb2Ivc3RhdHMvJykpCi0gICAgXQorY2xhc3MgVGVz dFBnQWdlbnRTdGF0czoKKyAgICBkZWYgdGVzdF9wZ19hZ2VudF9zdGF0cyhzZWxmLCByZXF1ZXN0 LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gY2hlY2tpbmcg dGhlIHN0YXRzIG9mIHBnQWdlbnQgam9iCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cwor ICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3du KQorCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQn XQorICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCiAKLSAg ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIGZsYWcsIG1zZyA9IHBnYWdlbnRfdXRpbHMuaXNf dmFsaWRfc2VydmVyX3RvX3J1bl9wZ2FnZW50KHNlbGYpCisgICAgICAgIGZsYWcsIG1lc3NhZ2Ug PSBwZ2FnZW50X3V0aWxzLmlzX3ZhbGlkX3NlcnZlcl90b19ydW5fcGdhZ2VudChzZWxmKQogICAg ICAgICBpZiBub3QgZmxhZzoKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobXNnKQotICAgICAg ICBmbGFnLCBtc2cgPSBwZ2FnZW50X3V0aWxzLmlzX3BnYWdlbnRfaW5zdGFsbGVkX29uX3NlcnZl cihzZWxmKQorICAgICAgICAgICAgcHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICBmbGFn LCBtZXNzYWdlID0gcGdhZ2VudF91dGlscy5pc19wZ2FnZW50X2luc3RhbGxlZF9vbl9zZXJ2ZXIo c2VsZikKICAgICAgICAgaWYgbm90IGZsYWc6Ci0gICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1z ZykKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKG1lc3NhZ2UpCisKKyAgICAgICAgdXJsID0gJy9i cm93c2VyL3BnYV9qb2Ivb2JqLycKKwogICAgICAgICBuYW1lID0gInRlc3Rfam9iX2dldCVzIiAl IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgc2VsZi5qb2JfaWQgPSBwZ2FnZW50X3V0 aWxzLmNyZWF0ZV9wZ2FnZW50X2pvYihzZWxmLCBuYW1lKQogCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBjaGVjayBzdGF0cyBvZiBwZ0FnZW50 IGpvYiIiIgogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKICAgICAgICAgICAg ICd7MH17MX0vezJ9L3szfScuZm9ybWF0KAotICAgICAgICAgICAgICAgIHNlbGYudXJsLCBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSwgc3RyKHNlbGYuc2VydmVyX2lkKSwKKyAgICAgICAgICAgICAg ICB1cmwsIHN0cih1dGlscy5TRVJWRVJfR1JPVVApLCBzdHIoc2VsZi5zZXJ2ZXJfaWQpLAogICAg ICAgICAgICAgICAgIHN0cihzZWxmLmpvYl9pZCkKICAgICAgICAgICAgICksCiAgICAgICAgICAg ICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihz ZWxmKToKLSAgICAgICAgIiIiQ2xlYW4gdXAgY29kZSIiIgogICAgICAgICBwZ2FnZW50X3V0aWxz LmRlbGV0ZV9wZ2FnZW50X2pvYihzZWxmKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3Jv dXBzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IDk5NjhmY2FlLi41OTAwMjZhZCAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3Jv dXBzL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weQpAQCAtNiwxMCAr NiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwg TGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRl IGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFJlc291cmNlR3JvdXBzQ3JlYXRl VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vwc19hZGQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9n cm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNfYWRkLnB5CmluZGV4IGMxNzkzYmM2Li43 NjZjNGUzOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2FkZC5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9n cm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNfYWRkLnB5CkBAIC0xMCw1MCArMTAsNDgg QEAKIGltcG9ydCBqc29uCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0 IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25v ZGVfZGljdAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9t IHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IsIFwKKyAgICBQb3N0Z3Jlc1ZlcnNpb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91 dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyBy ZXNvdXJjZV9ncm91cHNfdXRpbHMKIAogCi1jbGFzcyBSZXNvdXJjZUdyb3Vwc0FkZFRlc3RDYXNl KEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgdGVzdCB0aGUgYWRk IHJlc291cmNlIGdyb3VwcyBBUEkiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnQWRk IHJlc291cmNlIGdyb3VwcycsIGRpY3QodXJsPScvYnJvd3Nlci9yZXNvdXJjZV9ncm91cC9vYmov JykpCi0gICAgXQorQHB5dGVzdC5tYXJrLnNraXBfZGF0YWJhc2VzKFsncGcnXSkKK0BweXRlc3Qu bWFyay5za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oeydiZWxvd192ZXJzaW9uJzogUG9zdGdyZXNW ZXJzaW9uLnY5NH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZXNv dXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQgJworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnYnkgUEc5LjMgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnYW5kIFBQQVM5LjMgYW5kIGJlbG93LicpCitjbGFzcyBUZXN0UmVzb3VyY2VHcm91 cHNBZGQoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgIGRlZiB0ZXN0X2FkZF9uZXdfcmVzb3VyY2Vf Z3JvdXAoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHJlcXVlc3QgdG8gYWRkIGEgcmVzb3VyY2UgZ3JvdXAgaXMgdmFsaWQKKyAgICAg ICAgSXQgcmV0dXJucyBzdWNjZXNzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBz ZWxmLnNlcnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lk Il0KLSAgICAgICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxm LCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9jb25bImluZm8iXSA9PSAi U2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfY29uWyJk YXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1bInR5cGUiXSA9PSAicGci OgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiUmVzb3VyY2UgZ3JvdXBzIGFyZSBub3Qgc3Vw cG9ydGVkIGJ5IFBHLiIKLSAgICAgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0g ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsi dmVyc2lvbiJdIDwgOTA0MDA6Ci0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiUmVzb3Vy Y2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBQQVMgOS4zIiBcCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiIGFuZCBiZWxvdy4iCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu c2tpcFRlc3QobWVzc2FnZSkKKyAgICAgICAgdXJsID0gJy9icm93c2VyL3Jlc291cmNlX2dyb3Vw L29iai8nCisgICAgICAgIHNlcnZlcl9pbmZvID0gY29udGV4dF9vZl90ZXN0c1sic2VydmVyX2lu Zm9ybWF0aW9uIl0KKyAgICAgICAgc2VydmVyX2lkID0gc2VydmVyX2luZm9bInNlcnZlcl9pZCJd CiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxs IGFkZCByZXNvdXJjZSBncm91cHMgdW5kZXIgc2VydmVyIG5vZGUiIiIKKyAgICAgICAgaHR0cF9j bGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHNlbGYuc2Vy dmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KICAgICAgICAgc2VsZi5yZXNvdXJjZV9n cm91cCA9ICJ0ZXN0X3Jlc291cmNlX2dyb3VwX2FkZCVzIiAlIFwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KICAgICAgICAgZGF0YSA9IHsibmFt ZSI6IHNlbGYucmVzb3VyY2VfZ3JvdXAsCiAgICAgICAgICAgICAgICAgImNwdV9yYXRlX2xpbWl0 IjogMCwKICAgICAgICAgICAgICAgICAiZGlydHlfcmF0ZV9saW1pdCI6IDB9Ci0gICAgICAgIHJl c3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdChzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JP VVApICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiArIHN0cihzZWxm LnNlcnZlcl9pZCkgKyAiLyIsCisKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0 KHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICIvIiArIHN0cihzZXJ2ZXJfaWQpICsgIi8iLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAg IHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKIAogICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHJlc291 cmNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlLiIiIgogICAgICAgICBjb25uZWN0aW9uID0gdXRp bHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydk Yl9wYXNzd29yZCddLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2Rl bGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291 cmNlX2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vwc19kZWxldGUucHkKaW5kZXggYmU3 ZWVkY2YuLjc4YTI5OGYxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9yZXNvdXJjZV9ncm91cHNf ZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vwc19kZWxldGUucHkKQEAg LTksNTMgKzksNTMgQEAKIAogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9y dCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9u b2RlX2RpY3QKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJv bSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yLCBcCisgICAgUG9zdGdyZXNWZXJzaW9uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMg cmVzb3VyY2VfZ3JvdXBzX3V0aWxzCiAKIAotY2xhc3MgUmVzb3VyY2VHcm91cHNEZWxldGVUZXN0 Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0 aGUgcmVzb3VyY2UgZ3JvdXBzIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ0RlbGV0 ZSByZXNvdXJjZSBncm91cHMnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcmVzb3VyY2VfZ3JvdXAvb2Jq LycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ3BnJ10pCitAcHl0ZXN0 Lm1hcmsuc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKHsnYmVsb3dfdmVyc2lvbic6IFBvc3RncmVz VmVyc2lvbi52OTR9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVz b3VyY2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkICcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2J5IFBHOS4zICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2FuZCBQUEFTOS4zIGFuZCBiZWxvdy4nKQorY2xhc3MgVGVzdFJlc291cmNlR3Jv dXBzRGVsZXRlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBkZWYgdGVzdF9kZWxldGVfcmVzb3Vy Y2VfZ3JvdXAoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgor ICAgICAgICBXaGVuIHJlcXVlc3QgdG8gZGVsZXRlIGEgcmVzb3VyY2UgZ3JvdXAgaXMgdmFsaWQK KyAgICAgICAgSXQgcmV0dXJucyBzdWNjZXNzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0 LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHNlbGYuc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VydmVyX2lkID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyX2luZm9ybWF0aW9uJ11bJ3NlcnZlcl9pZCddCisgICAgICAgIHVybCA9ICcv YnJvd3Nlci9yZXNvdXJjZV9ncm91cC9vYmovJworICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRl eHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAg ICAgc2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZl cl9pZCJdCi0gICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3Nl cnZlcihzZWxmLCBzZWxmLnNlcnZlcl9pZCkKLSAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25z ZVsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJncm91cHMuIikKLSAgICAgICAgaWYgInR5cGUiIGlu IHNlcnZlcl9yZXNwb25zZVsiZGF0YSJdOgotICAgICAgICAgICAgaWYgc2VydmVyX3Jlc3BvbnNl WyJkYXRhIl1bInR5cGUiXSA9PSAicGciOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiUmVz b3VyY2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHLiIKLSAgICAgICAgICAgICAgICBz ZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg IGlmIHNlcnZlcl9yZXNwb25zZVsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDQwMDoKLSAgICAgICAg ICAgICAgICAgICAgbWVzc2FnZSA9ICJSZXNvdXJjZSBncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQg YnkgUFBBUyAiIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI5LjMgYW5kIGJlbG93 LiIKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQogICAgICAgICBz ZWxmLnJlc291cmNlX2dyb3VwID0gInRlc3RfcmVzb3VyY2VfZ3JvdXBfZGVsZXRlJXMiICUgXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAg ICAgICBzZWxmLnJlc291cmNlX2dyb3VwX2lkID0gcmVzb3VyY2VfZ3JvdXBzX3V0aWxzLmNyZWF0 ZV9yZXNvdXJjZV9ncm91cHMoCisgICAgICAgIHJlc291cmNlX2dyb3VwX2lkID0gcmVzb3VyY2Vf Z3JvdXBzX3V0aWxzLmNyZWF0ZV9yZXNvdXJjZV9ncm91cHMoCiAgICAgICAgICAgICBzZWxmLnNl cnZlciwgc2VsZi5yZXNvdXJjZV9ncm91cCkKLQotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHJlc291cmNlIGdyb3Vwcy4iIiIKICAg ICAgICAgcmVzb3VyY2VfZ3JwX3Jlc3BvbnNlID0gcmVzb3VyY2VfZ3JvdXBzX3V0aWxzLnZlcmlm eV9yZXNvdXJjZV9ncm91cCgKICAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnJlc291cmNl X2dyb3VwKQogICAgICAgICBpZiBub3QgcmVzb3VyY2VfZ3JwX3Jlc3BvbnNlOgogICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcmVzb3VyY2UgZ3JvdXAgdG8g ZmV0Y2guIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCi0gICAgICAg ICAgICAiezB9ezF9L3syfS97M30iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQ LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNl bGYucmVzb3VyY2VfZ3JvdXBfaWQpLAorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQu ZGVsZXRlKAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9Ii5mb3JtYXQoCisgICAgICAgICAg ICAgICAgdXJsLAorICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgcmVzb3VyY2VfZ3JvdXBfaWQpLAog ICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1 c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHJlc291cmNlIGdyb3VwIGZyb20g dGhlIGRhdGFiYXNlLiIiIgogICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5l Y3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVz b3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX2dldC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vwcy90ZXN0cy90 ZXN0X3Jlc291cmNlX2dyb3Vwc19nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAuLjczNjUzODJhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2Vf Z3JvdXBzX2dldC5weQpAQCAtMCwwICsxLDY2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CitpbXBvcnQgdXVpZAorCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxk CisKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBQb3N0Z3Jl c1ZlcnNpb24KK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyByZXNvdXJjZV9ncm91cHNfdXRp bHMKKworCitAcHl0ZXN0Lm1hcmsuc2tpcF9kYXRhYmFzZXMoWydwZyddKQorQHB5dGVzdC5tYXJr LnNraXBfaWZfcG9zdGdyZXNfdmVyc2lvbih7J2JlbG93X3ZlcnNpb24nOiBQb3N0Z3Jlc1ZlcnNp b24udjk0fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1Jlc291cmNl IGdyb3VwcyBhcmUgbm90IHN1cHBvcnRlZCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdieSBQRzkuMyAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdhbmQgUFBBUzkuMyBhbmQgYmVsb3cuJykKK2NsYXNzIFRlc3RSZXNvdXJjZUdyb3Vwc0dl dDoKKyAgICBkZWYgdGVzdF9nZXRfcmVzb3VyY2VfZ3JvdXAoc2VsZiwgcmVxdWVzdCwgY29udGV4 dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHJlcXVlc3QgdG8gZ2V0IGEg cmVzb3VyY2UgZ3JvdXAgaW5mb3JtYXRpb24KKyAgICAgICAgSXQgcmV0dXJucyBzdWNjZXNzCisg ICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQor CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9yZXNvdXJjZV9ncm91cC9vYmovJworICAgICAgICBo dHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgICAgICBz ZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9p ZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQor CisgICAgICAgIHNlbGYucmVzb3VyY2VfZ3JvdXAgPSAidGVzdF9yZXNvdXJjZV9ncm91cF9nZXQl cyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsx OjhdCisgICAgICAgIHNlbGYucmVzb3VyY2VfZ3JvdXBfaWQgPSByZXNvdXJjZV9ncm91cHNfdXRp bHMuY3JlYXRlX3Jlc291cmNlX2dyb3VwcygKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxm LnJlc291cmNlX2dyb3VwKQorICAgICAgICByZXNvdXJjZV9ncnBfcmVzcG9uc2UgPSByZXNvdXJj ZV9ncm91cHNfdXRpbHMudmVyaWZ5X3Jlc291cmNlX2dyb3VwKAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsIHNlbGYucmVzb3VyY2VfZ3JvdXApCisgICAgICAgIGlmIG5vdCByZXNvdXJjZV9ncnBf cmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRo ZSByZXNvdXJjZSBncm91cCB0byBmZXRjaC4iKQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9j bGllbnQuZ2V0KAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9Ii5mb3JtYXQoCisgICAgICAg ICAgICAgICAgdXJsLAorICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAg ICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgc2VsZi5yZXNvdXJjZV9ncm91 cF9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICAgICAgcmVz cG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQorCisgICAgZGVmIHRlYXJE b3duKHNlbGYpOgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24o c2VsZi5zZXJ2ZXJbJ2RiJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3Qn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICByZXNvdXJjZV9ncm91cHNfdXRpbHMu ZGVsZXRlX3Jlc291cmNlX2dyb3VwKGNvbm5lY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXNvdXJjZV9ncm91cCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNl X2dyb3Vwcy90ZXN0cy90ZXN0X3Jlc291cmNlX2dyb3Vwc19wdXQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9y ZXNvdXJjZV9ncm91cHNfcHV0LnB5CmluZGV4IGJkNjY3MDFkLi5kOGYxMTgzNyAxMDA2NDQKLS0t IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3Jv dXBzL3Rlc3RzL3Rlc3RfcmVzb3VyY2VfZ3JvdXBzX3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdF9y ZXNvdXJjZV9ncm91cHNfcHV0LnB5CkBAIC0xMCw2MiArMTAsNjUgQEAKIGltcG9ydCBqc29uCiBp bXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBz ZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHB5 dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMuYmFz ZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgUG9zdGdyZXNWZXJzaW9uCiBmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBv cnQgdXRpbHMgYXMgcmVzb3VyY2VfZ3JvdXBzX3V0aWxzCiAKIAotY2xhc3MgUmVzb3VyY2VHcm91 cHNQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB3aWxs IHVwZGF0ZSB0aGUgcmVzb3VyY2UgZ3JvdXBzIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAoJ1B1dCByZXNvdXJjZSBncm91cHMnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcmVzb3VyY2VfZ3Jv dXAvb2JqLycpKQotICAgIF0KK0BweXRlc3QubWFyay5za2lwX2RhdGFiYXNlcyhbJ3BnJ10pCitA cHl0ZXN0Lm1hcmsuc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKHsnYmVsb3dfdmVyc2lvbic6IFBv c3RncmVzVmVyc2lvbi52OTR9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnUmVzb3VyY2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkICcKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2J5IFBHOS4zICcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2FuZCBQUEFTOS4zIGFuZCBiZWxvdy4nKQorY2xhc3MgVGVzdFJlc291 cmNlR3JvdXBzUHV0OgorICAgIGRlZiB0ZXN0X2RlbGV0ZV9yZXNvdXJjZV9ncm91cChzZWxmLCBy ZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVx dWVzdCB0byB1cGRhdGUgYSByZXNvdXJjZSBncm91cCBpcyB2YWxpZAorICAgICAgICBJdCByZXR1 cm5zIHN1Y2Nlc3MKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNl bGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHNlbGYuc2VydmVy X2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQotICAgICAg ICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2Vs Zi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfcmVzcG9uc2VbImluZm8iXSA9PSAi U2VydmVyIGNvbm5lY3RlZC4iOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBu b3QgY29ubmVjdCB0byBzZXJ2ZXIgdG8gYWRkIHJlc291cmNlICIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAiZ3JvdXBzLiIpCi0gICAgICAgIGlmICJ0eXBlIiBpbiBzZXJ2ZXJfcmVzcG9u c2VbImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9yZXNwb25zZVsiZGF0YSJdWyJ0eXBl Il0gPT0gInBnIjoKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gIlJlc291cmNlIGdyb3VwcyBh cmUgbm90IHN1cHBvcnRlZCBieSBQRy4iCi0gICAgICAgICAgICAgICAgc2VsZi5za2lwVGVzdCht ZXNzYWdlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfcmVz cG9uc2VbImRhdGEiXVsidmVyc2lvbiJdIDwgOTA0MDA6Ci0gICAgICAgICAgICAgICAgICAgIG1l c3NhZ2UgPSAiUmVzb3VyY2UgZ3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBQQVMgOS4zIiBc Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFuZCBiZWxvdy4iCi0gICAgICAgICAg ICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKLSAgICAgICAgc2VsZi5yZXNvdXJjZV9n cm91cF9uYW1lID0gInRlc3RfcmVzb3VyY2VfZ3JvdXBfcHV0JXMiICUgXAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNl bGYucmVzb3VyY2VfZ3JvdXBfaWQgPSByZXNvdXJjZV9ncm91cHNfdXRpbHMuY3JlYXRlX3Jlc291 cmNlX2dyb3VwcygKLSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnJlc291cmNlX2dyb3Vw X25hbWUpCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9yZXNvdXJjZV9ncm91cC9vYmovJworICAg ICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KIAotICAg IGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZ2V0IHRo ZSByZXNvdXJjZSBncm91cHMuIiIiCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90 ZXN0c1snc2VydmVyJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXJfaW5mb3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKworICAgICAgICBpbml0aWFsX3Jl c291cmNlX2dyb3VwX25hbWUgPSAidGVzdF9yZXNvdXJjZV9ncm91cF9wdXQlcyIgJSBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K KyAgICAgICAgc2VsZi5yZXNvdXJjZV9ncm91cF9pZCA9IHJlc291cmNlX2dyb3Vwc191dGlscy5j cmVhdGVfcmVzb3VyY2VfZ3JvdXBzKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAg ICAgICBpbml0aWFsX3Jlc291cmNlX2dyb3VwX25hbWUpCiAgICAgICAgIHJlc291cmNlX2dycF9y ZXNwb25zZSA9IHJlc291cmNlX2dyb3Vwc191dGlscy52ZXJpZnlfcmVzb3VyY2VfZ3JvdXAoCi0g ICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5yZXNvdXJjZV9ncm91cF9uYW1lKQorICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICBpbml0aWFsX3Jlc291cmNlX2dyb3VwX25h bWUpCiAgICAgICAgIGlmIG5vdCByZXNvdXJjZV9ncnBfcmVzcG9uc2U6CiAgICAgICAgICAgICBy YWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSByZXNvdXJjZSBncm91cCB0byBmZXRj aC4iKQotICAgICAgICBzZWxmLnJlc291cmNlX2dyb3VwX25hbWUgPSAidGVzdF9yZXNvdXJjZV9n cm91cF9wdXQlcyIgJSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0KKworICAgICAgICBzZWxmLnVwZGF0ZWRfcmVzb3VyY2VfZ3JvdXBf bmFtZSA9ICJ0ZXN0X3Jlc291cmNlX2dyb3VwX3B1dCVzIiAlIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisKICAgICAg ICAgZGF0YSA9IHsiaWQiOiBzZWxmLnJlc291cmNlX2dyb3VwX2lkLAotICAgICAgICAgICAgICAg ICJuYW1lIjogc2VsZi5yZXNvdXJjZV9ncm91cF9uYW1lfQotICAgICAgICByZXNwb25zZSA9IHNl bGYudGVzdGVyLnB1dCgnezB9ezF9L3syfS97M30nLmZvcm1hdCgKLSAgICAgICAgICAgIHNlbGYu dXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsIHNlbGYuc2VydmVyX2lkLAorICAgICAgICAgICAgICAg ICJuYW1lIjogc2VsZi51cGRhdGVkX3Jlc291cmNlX2dyb3VwX25hbWV9CisgICAgICAgIHJlc3Bv bnNlID0gaHR0cF9jbGllbnQucHV0KCd7MH17MX0vezJ9L3szfScuZm9ybWF0KAorICAgICAgICAg ICAgdXJsLAorICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICBzZWxmLnJlc291cmNlX2dyb3VwX2lkKSwgZGF0YT1q c29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHJl c291cmNlIGdyb3VwIGZyb20gdGhlIGRhdGFiYXNlLiIiIgogICAgICAgICBjb25uZWN0aW9uID0g dXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10sCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsndXNlcm5hbWUnXSwK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVy WydkYl9wYXNzd29yZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ2hvc3QnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydwb3J0J10sCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnc3NsbW9kZSddKQotICAgICAg ICByZXNvdXJjZV9ncm91cHNfdXRpbHMuZGVsZXRlX3Jlc291cmNlX2dyb3VwKGNvbm5lY3Rpb24s Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5yZXNvdXJjZV9ncm91cF9uYW1lKQorICAgICAgICByZXNvdXJjZV9ncm91cHNfdXRpbHMuZGVs ZXRlX3Jlc291cmNlX2dyb3VwKAorICAgICAgICAgICAgY29ubmVjdGlvbiwKKyAgICAgICAgICAg IHNlbGYudXBkYXRlZF9yZXNvdXJjZV9ncm91cF9uYW1lKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3JvdXBzL3Rlc3RzL3Rl c3RzX3Jlc291cmNlX2dyb3Vwc19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yZXNvdXJjZV9ncm91cHMvdGVzdHMvdGVzdHNfcmVzb3VyY2VfZ3JvdXBz X2dldC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWM0Zjc2YTcuLjAwMDAwMDAw Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNl X2dyb3Vwcy90ZXN0cy90ZXN0c19yZXNvdXJjZV9ncm91cHNfZ2V0LnB5CisrKyAvZGV2L251bGwK QEAgLTEsNjYgKzAsMCBAQAotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSMKLSMgcGdBZG1pbiA0IC0gUG9z dGdyZVNRTCBUb29scwotIwotIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdBZG1p biBEZXZlbG9wbWVudCBUZWFtCi0jIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQotIwotIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotaW1wb3J0IHV1aWQK LQotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMgYXMgc2VydmVyX3V0aWxz Ci1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9t IHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKLWZyb20gcmVncmVzc2lvbi5weXRo b25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwotZnJvbSAuIGltcG9ydCB1 dGlscyBhcyByZXNvdXJjZV9ncm91cHNfdXRpbHMKLQotCi1jbGFzcyBSZXNvdXJjZUdyb3Vwc0dl dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgZ2V0 IHRoZSByZXNvdXJjZSBncm91cHMiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnR2V0 IHJlc291cmNlIGdyb3VwcycsIGRpY3QodXJsPScvYnJvd3Nlci9yZXNvdXJjZV9ncm91cC9vYmov JykpCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9p ZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAg c2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYu c2VydmVyX2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX3Jlc3BvbnNlWyJpbmZvIl0gPT0gIlNl cnZlciBjb25uZWN0ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90 IGNvbm5lY3QgdG8gc2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgImdyb3Vwcy4iKQotICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX3Jlc3BvbnNl WyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfcmVzcG9uc2VbImRhdGEiXVsidHlwZSJd ID09ICJwZyI6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICJSZXNvdXJjZSBncm91cHMgYXJl IG5vdCBzdXBwb3J0ZWQgYnkgUEcuIgotICAgICAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVz c2FnZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYgc2VydmVyX3Jlc3Bv bnNlWyJkYXRhIl1bInZlcnNpb24iXSA8IDkwNDAwOgotICAgICAgICAgICAgICAgICAgICBtZXNz YWdlID0gIlJlc291cmNlIGdyb3VwcyBhcmUgbm90IHN1cHBvcnRlZCBieSBQUEFTIDkuMyIgXAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgYmVsb3cuIgotICAgICAgICAgICAg ICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCi0gICAgICAgIHNlbGYucmVzb3VyY2VfZ3Jv dXAgPSAidGVzdF9yZXNvdXJjZV9ncm91cF9nZXQlcyIgJSBcCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYucmVzb3VyY2Vf Z3JvdXBfaWQgPSByZXNvdXJjZV9ncm91cHNfdXRpbHMuY3JlYXRlX3Jlc291cmNlX2dyb3VwcygK LSAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnJlc291cmNlX2dyb3VwKQotCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gd2lsbCBnZXQgdGhlIHJl c291cmNlIGdyb3Vwcy4iIiIKLSAgICAgICAgcmVzb3VyY2VfZ3JwX3Jlc3BvbnNlID0gcmVzb3Vy Y2VfZ3JvdXBzX3V0aWxzLnZlcmlmeV9yZXNvdXJjZV9ncm91cCgKLSAgICAgICAgICAgIHNlbGYu c2VydmVyLCBzZWxmLnJlc291cmNlX2dyb3VwKQotICAgICAgICBpZiBub3QgcmVzb3VyY2VfZ3Jw X3Jlc3BvbnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0 aGUgcmVzb3VyY2UgZ3JvdXAgdG8gZmV0Y2guIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRl c3Rlci5nZXQoCi0gICAgICAgICAgICAiezB9ezF9L3syfS97M30iLmZvcm1hdChzZWxmLnVybCwg dXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQsIHNlbGYucmVzb3VyY2VfZ3JvdXBfaWQpLAotICAgICAgICAgICAgZm9s bG93X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQotCi0gICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgcmVzb3VyY2UgZ3JvdXAgZnJvbSB0aGUgZGF0YWJhc2Uu IiIiCi0gICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNl cnZlclsnZGInXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Bv cnQnXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyWydzc2xtb2RlJ10pCi0gICAgICAgIHJlc291cmNlX2dyb3Vwc191dGlscy5kZWxldGVf cmVzb3VyY2VfZ3JvdXAoY29ubmVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc291cmNlX2dyb3VwKQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy9fX2lu aXRfXy5weQppbmRleCA2M2QxYmY3Zi4uYmIzMWU1MjEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL19faW5pdF9fLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL19faW5pdF9fLnB5 CkBAIC03MDYsNyArNzA2LDcgQEAgcm9sbWVtYmVyc2hpcDp7CiAgICAgICAgICAgICAgICAgXygi Q291bGQgbm90IGRyb3AgdGhlIHJvbGUuXG57MH0iKS5mb3JtYXQocmVzKQogICAgICAgICAgICAg KQogCi0gICAgICAgIHJldHVybiBzdWNjZXNzX3JldHVybigpCisgICAgICAgIHJldHVybiBzdWNj ZXNzX3JldHVybignUm9sZSBkcm9wcGVkJykKIAogICAgIEBjaGVja19wcmVjb25kaXRpb24oKQog ICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIHJpZCk6CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL19f aW5pdF9fLnB5CmluZGV4IGEzZDkxNDY1Li41OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvX19pbml0X18ucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVz dHMvX19pbml0X18ucHkKQEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVh c2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0K LWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1j bGFzcyBSb2xlR2VuZXJhdG9yVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX2FkZC5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3Rz L3Rlc3Rfcm9sZV9hZGQucHkKaW5kZXggZTJlZWIyZDUuLjA2NmM0M2JiIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0 X3JvbGVfYWRkLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9hZGQucHkKQEAgLTksNDcgKzksNTQgQEAKIAogaW1w b3J0IGpzb24KIAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4udXRp bHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQg Y29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFsdWVzX2Zyb21f cmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyByb2xlc191dGlscwogCiAKLWNs YXNzIExvZ2luUm9sZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlz IGNsYXNzIGhhcyBhZGQgcm9sZSBzY2VuYXJpbyIiIgotCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgotICAgICAgICAoJ0No ZWNrIFJvbGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9yb2xlL29iai8nKSkKLSAgICBdCi0K LSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIHBhc3MKK2NsYXNzIFRlc3RSb2xlQWRkOgor ICAgIGRlZiB0ZXN0X2FkZF9uZXdfcm9sZShzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3Rz KToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYSByZXF1ZXN0IGlzIHNlbnQgdG8gYWRkIGEg bmV3IFJvbGUgaXMgdmFsaWQKKyAgICAgICAgSXQgcmV0dXJuIHN1Y2Nlc3MKKyAgICAgICAgIiIi CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYg cnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB0ZXN0IHRoZSBhZGQgcm9s ZSBzY2VuYXJpbyIiIgotICAgICAgICBzZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2 ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlcnZlcl9yZXNwb25zZSA9IHNlcnZlcl91 dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCisgICAgICAgIHNlbGYuc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250 ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9yb2xl L29iai8nCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZv cm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJf dXRpbHMuY2xpZW50X2Nvbm5lY3Rfc2VydmVyKAorICAgICAgICAgICAgaHR0cF9jbGllbnQsCisg ICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXSkKICAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWydjb25uZWN0ZWQn XToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byBhZGQg dGhlIHJvbGUuIikKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VydmVyIG5vdCBmb3Vu ZCB0byBhZGQgdGhlIHJvbGUuJykKIAogICAgICAgICBkYXRhID0gcm9sZXNfdXRpbHMuZ2V0X3Jv bGVfZGF0YShzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKICAgICAgICAgc2VsZi5yb2xlX25h bWUgPSBkYXRhWydyb2xuYW1lJ10KLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0 KAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr IHN0cihzZXJ2ZXJfaWQpICsgJy8nLAorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBv c3QoCisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0 cihzZXJ2ZXJfaWQpICsgJy8nLAogICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAog ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCiAgICAgICAgICkKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKLSAgICAgICAgcmVz cG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCi0g ICAgICAgIHJvbGVfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCi0gICAgICAgIHJv bGVfZGljdCA9IHsic2VydmVyX2lkIjogc2VydmVyX2lkLCAicm9sZV9pZCI6IHJvbGVfaWQsCi0g ICAgICAgICAgICAgICAgICAgICAicm9sZV9uYW1lIjogc2VsZi5yb2xlX25hbWV9Ci0gICAgICAg IHV0aWxzLndyaXRlX25vZGVfaW5mbygibHJpZCIsIHJvbGVfZGljdCkKKyAgICAgICAgcmVzcG9u c2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQorCisgICAgICAgIGpzb25fcmVz cG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAgIGFzc2Vy dF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNwb25zZSwK KyAgICAgICAgICAgICdyb2xlJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5vZGUucm9sZScsCisg ICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLWdyb3VwJywKKyAgICAgICAgICAg IHNlbGYucm9sZV9uYW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHJvbGUgZnJvbSBhZGRlZCBzZXJ2ZXIi IiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2Vy dmVyWydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rf cm9sZV9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRlLnB5CmluZGV4IDIyYzZkYjJmLi45NTc3OGE5 NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv cm9sZXMvdGVzdHMvdGVzdF9yb2xlX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRlLnB5CkBA IC05LDM3ICs5LDQ0IEBACiAKIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0 ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50 X25vZGVfZGljdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRp bHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVn cmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJv bSAuIGltcG9ydCB1dGlscyBhcyByb2xlc191dGlscwogCiAKLWNsYXNzIExvZ2luUm9sZURlbGV0 ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIGhhcyBkZWxl dGUgcm9sZSBzY2VuYXJpbyIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGlu ZyBkZWZhdWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KLSAgICAgICAgKCdDaGVjayBSb2xlIE5vZGUn LCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9vYmovJykpCi0gICAgXQotCi0gICAgZGVmIHNldFVw KHNlbGYpOgotICAgICAgICBzZWxmLnJvbGVfbmFtZSA9ICJyb2xlX2RlbGV0ZV8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYucm9sZV9pZCA9IHJvbGVzX3V0aWxzLmNy ZWF0ZV9yb2xlKHNlbGYuc2VydmVyLCBzZWxmLnJvbGVfbmFtZSkKLSAgICAgICAgc2VsZi5zZXJ2 ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAg ICAgIHJvbGVfZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWQsICJyb2xlX2lkIjog c2VsZi5yb2xlX2lkLAotICAgICAgICAgICAgICAgICAgICAgInJvbGVfbmFtZSI6IHNlbGYucm9s ZV9uYW1lfQotICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oImxyaWQiLCByb2xlX2RpY3Qp Ci0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB0ZXN0 IHRoZSBkZWxldGUgcm9sZSBzY2VuYXJpbyIiIgotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVz dGVyLmRlbGV0ZSgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKwotICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihz ZWxmLnJvbGVfaWQpLAorY2xhc3MgVGVzdFJvbGVEZWxldGU6CisgICAgZGVmIHRlc3Rfcm9sZV9k ZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHRoZSByb2xlIERFTEVURSByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQK KyAgICAgICAgaXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICByZXF1 ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9ICcvYnJvd3Nl ci9yb2xlL29iai8nCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVz dF9jbGllbnQnXQorCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KKyAgICAgICAgc2VydmVyX2lkID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyX2luZm9y bWF0aW9uJ11bJ3NlcnZlcl9pZCddCisgICAgICAgIHNlbGYucm9sZV9uYW1lID0gJ3JvbGVfZGVs ZXRlXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgcm9sZV9pZCA9IHJvbGVz X3V0aWxzLmNyZWF0ZV9yb2xlKHNlbGYuc2VydmVyLCBzZWxmLnJvbGVfbmFtZSkKKworICAgICAg ICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmRlbGV0ZSgKKyAgICAgICAgICAgIHVybCArIHN0cih1 dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpICsg Jy8nICsgc3RyKHJvbGVfaWQpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQot ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorCisg ICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsLnRvKDIwMCkKKyAg ICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2VfdG9fanNvbihyZXNwb25zZSkK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnaW5mbycpID4gc2hvdWxk LmJlLmVxdWFsLnRvKAorICAgICAgICAgICAgJ1JvbGUgZHJvcHBlZCcpCisgICAgICAgIGpzb25f cmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Vycm9ybXNnJykgPiBzaG91bGQuYmUuZW1wdHkK KyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGF0YScpCisgICAgICAg IGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3Jlc3VsdCcpID4gc2hvdWxkLmJlLm5v bmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnc3VjY2VzcycpID4g c2hvdWxkLmJlLmVxdWFsLnRvKDEpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSByb2xlIGZyb20gYWRkZWQgc2VydmVyIiIiCiAg ICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsn ZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVf Z2V0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMv dGVzdHMvdGVzdF9yb2xlX2dldC5weQppbmRleCBiYmIxYTBhNy4uMzNkNWRjMTcgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3Rz L3Rlc3Rfcm9sZV9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xlX2dldC5weQpAQCAtOSwzNyArOSw2NSBAQAog CiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBp bXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMg YXMgcm9sZXNfdXRpbHMKIAogCi1jbGFzcyBMb2dpblJvbGVHZXRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB0ZXN0cyB0aGUgZ2V0IHJvbGUgc2NlbmFyaW8i IiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9y IHJvbGVzIG5vZGUuCi0gICAgICAgICgnQ2hlY2sgUm9sZSBOb2RlJywgZGljdCh1cmw9Jy9icm93 c2VyL3JvbGUvb2JqLycpKQotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAg c2VsZi5zZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9p ZCJdCi0gICAgICAgIHNlbGYucm9sZV9uYW1lID0gInJvbGVfZ2V0XyVzIiAlIHN0cih1dWlkLnV1 aWQ0KCkpWzE6OF0KLSAgICAgICAgc2VsZi5yb2xlX2lkID0gcm9sZXNfdXRpbHMuY3JlYXRlX3Jv bGUoc2VsZi5zZXJ2ZXIsIHNlbGYucm9sZV9uYW1lKQotICAgICAgICByb2xlX2RpY3QgPSB7InNl cnZlcl9pZCI6IHNlbGYuc2VydmVyX2lkLCAicm9sZV9pZCI6IHNlbGYucm9sZV9pZCwKLSAgICAg ICAgICAgICAgICAgICAgICJyb2xlX25hbWUiOiBzZWxmLnJvbGVfbmFtZX0KLSAgICAgICAgdXRp bHMud3JpdGVfbm9kZV9pbmZvKCJscmlkIiwgcm9sZV9kaWN0KQotCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVzdCB0aGUgZ2V0IHJvbGUgc2NlbmFy aW8iIiIKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCi0gICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5yb2xlX2lkKSwKK2NsYXNzIFRlc3RS b2xlR2V0OgorICAgIGRlZiB0ZXN0X3JvbGVfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgcm9sZSBHRVQgcmVxdWVzdCBp cyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1cworICAg ICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKwor ICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcm9sZS9vYmovJworICAgICAgICBodHRwX2NsaWVudCA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgICAgICBzZWxmLnNlcnZlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisgICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRf b2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQorCisgICAgICAgIHNl bGYucm9sZV9uYW1lID0gJ3JvbGVfZ2V0XyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAg ICAgICAgcm9sZV9pZCA9IHJvbGVzX3V0aWxzLmNyZWF0ZV9yb2xlKHNlbGYuc2VydmVyLCBzZWxm LnJvbGVfbmFtZSkKKworICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmdldCgKKyAgICAg ICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHJvbGVfaWQpLAogICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0 dXNfY29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJl LmVxdWFsLnRvKDIwMCkKKyAgICAgICAganNvbl9yZXNwb25zZSA9IGNvbnZlcnRfcmVzcG9uc2Vf dG9fanNvbihyZXNwb25zZSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnb2lkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnb2lkLTIn KQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyb2xwYXNzd29yZCcp ID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKCcnKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyb2xjcmVhdGVkYicpID4gXAorICAgICAgICAgICAg c2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXko J3JvbHN1cGVyJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUuZmFsc2UKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncm9sY3JlYXRlcm9sZScpID4gXAorICAgICAg ICAgICAgc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2 ZS5rZXkoJ3JvbGNhdHVwZGF0ZScpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmZhbHNlCisg ICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3JvbG5hbWUnKSA+IFwKKyAg ICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhzZWxmLnJvbGVfbmFtZSkKKyAgICAgICAganNv bl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncm9sdmFsaWR1bnRpbCcpID4gXAorICAgICAg ICAgICAgc2hvdWxkLmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZl LmtleSgncm9sY2FubG9naW4nKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS50cnVlCisgICAg ICAgIGpzb25fcmVzcG9uc2UgfCBzaG91bGQuaGF2ZS5rZXkoJ2Rlc2NyaXB0aW9uJykgPiBcCisg ICAgICAgICAgICBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxk LmhhdmUua2V5KCdyb2xpbmhlcml0JykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUudHJ1ZQor ICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdyb2xjb25maWcnKSA+IFwK KyAgICAgICAgICAgIHNob3VsZC5iZS5ub25lCisgICAgICAgIGpzb25fcmVzcG9uc2UgfCBzaG91 bGQuaGF2ZS5rZXkoJ3JvbG1lbWJlcnNoaXAnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5l cXVhbC50byhbXSkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkZWxldGUgdGhlIHJvbGUgZnJvbSBhZGRlZCBzZXJ2ZXIiIiIKICAgICAgICAgY29u bmVjdGlvbiA9IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3Vz ZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9wdXQucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0 X3JvbGVfcHV0LnB5CmluZGV4IGU1ZTAwOTMwLi5mOGVlYjNjNCAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdGVzdF9yb2xl X3B1dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZXN0cy90ZXN0X3JvbGVfcHV0LnB5CkBAIC0xMCw0NSArMTAsNTYgQEAKIGltcG9ydCBq c29uCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zy b20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBl ciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFs dWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyByb2xlc191dGls cwogCiAKLWNsYXNzIExvZ2luUm9sZVB1dFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAg ICAiIiJUaGlzIGNsYXNzIGhhcyB1cGRhdGUgcm9sZSBzY2VuYXJpbyIiIgotICAgIHNjZW5hcmlv cyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KLSAg ICAgICAgKCdDaGVjayBSb2xlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9vYmovJykp Ci0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9 IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAgICAgICAgc2Vs Zi5yb2xlX25hbWUgPSAicm9sZV9wdXRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAg ICAgICBzZWxmLnJvbGVfaWQgPSByb2xlc191dGlscy5jcmVhdGVfcm9sZShzZWxmLnNlcnZlciwg c2VsZi5yb2xlX25hbWUpCi0gICAgICAgIHJvbGVfZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5z ZXJ2ZXJfaWQsICJyb2xlX2lkIjogc2VsZi5yb2xlX2lkLAotICAgICAgICAgICAgICAgICAgICAg InJvbGVfbmFtZSI6IHNlbGYucm9sZV9uYW1lfQotICAgICAgICB1dGlscy53cml0ZV9ub2RlX2lu Zm8oImxyaWQiLCByb2xlX2RpY3QpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB0ZXN0cyB0aGUgdXBkYXRlIHJvbGUgZGF0YSBzY2VuYXJpbyIiIgot ICAgICAgICByb2xlX3Jlc3BvbnNlID0gcm9sZXNfdXRpbHMudmVyaWZ5X3JvbGUoc2VsZi5zZXJ2 ZXIsIHNlbGYucm9sZV9uYW1lKQotICAgICAgICBpZiBsZW4ocm9sZV9yZXNwb25zZSkgPT0gMDoK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gcm9sZXMocykgdG8gdXBkYXRlISEhIikK K2NsYXNzIFRlc3RSb2xlUHV0OgorICAgIGRlZiB0ZXN0X3JvbGVfcHV0KHNlbGYsIHJlcXVlc3Qs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgUm9sZSBQ VVQgcmVxdWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAw IHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50 ZWFyRG93bikKKworICAgICAgICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZl ciddCisgICAgICAgIGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQn XQorICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvcm9sZS9vYmovJworCisgICAgICAgIHNlcnZlcl9p ZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbiddWydzZXJ2ZXJfaWQnXQor ICAgICAgICBzZWxmLnJvbGVfbmFtZSA9ICdyb2xlX3B1dF8lcycgJSBzdHIodXVpZC51dWlkNCgp KVsxOjhdCisgICAgICAgIHJvbGVfaWQgPSByb2xlc191dGlscy5jcmVhdGVfcm9sZShzZWxmLnNl cnZlciwgc2VsZi5yb2xlX25hbWUpCisKKyAgICAgICAgaXNfcm9sZV92ZXJpZmllZCA9IHJvbGVz X3V0aWxzLnZlcmlmeV9yb2xlKHNlbGYuc2VydmVyLCBzZWxmLnJvbGVfbmFtZSkKKyAgICAgICAg aWYgbGVuKGlzX3JvbGVfdmVyaWZpZWQpID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oJ05vIHJvbGVzKHMpIHRvIHVwZGF0ZSEhIScpCisKICAgICAgICAgZGF0YSA9IHsKLSAgICAg ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIHRoZSB0ZXN0IGRlc2NyaXB0aW9uIGZvciBj YXN0IiwKLSAgICAgICAgICAgICJscmlkIjogc2VsZi5yb2xlX2lkCisgICAgICAgICAgICAnZGVz Y3JpcHRpb24nOiAnVGhpcyBpcyB0aGUgdGVzdCBkZXNjcmlwdGlvbiBmb3IgY2FzdCcsCisgICAg ICAgICAgICAnbHJpZCc6IHJvbGVfaWQKICAgICAgICAgfQotICAgICAgICBwdXRfcmVzcG9uc2Ug PSBzZWxmLnRlc3Rlci5wdXQoCi0gICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKLSAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KyBzdHIoc2VsZi5yb2xlX2lkKSwKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wdXQo CisgICAgICAgICAgICB1cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAg ICAgICAgICBzdHIoc2VydmVyX2lkKSArICcvJyArIHN0cihyb2xlX2lkKSwKICAgICAgICAgICAg IGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwudG8o MjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19qc29uKHJl c3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgKKyAgICAg ICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAncm9sZScsCisgICAgICAgICAgICAn cGdhZG1pbi5ub2RlLnJvbGUnLAorICAgICAgICAgICAgRmFsc2UsCisgICAgICAgICAgICAnaWNv bi1yb2xlJywKKyAgICAgICAgICAgIHNlbGYucm9sZV9uYW1lCisgICAgICAgICkKIAogICAgIGRl ZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHJv bGUgZnJvbSBhZGRlZCBzZXJ2ZXIiIiIKICAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9k Yl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dv cmQnXSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3JvbGVzL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdXRpbHMucHkKaW5kZXggMmI4ZWFlZWYuLmFkMTk5YjQw IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZXN0cy91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9yb2xlcy90ZXN0cy91dGlscy5weQpAQCAtMTAsMTIgKzEwLDEwIEBACiBmcm9t IF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBvcwotaW1wb3J0IHBp Y2tsZQogaW1wb3J0IHN5cwogaW1wb3J0IHV1aWQKIAogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90 ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVz dF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKIAogUk9MRV9VUkwgPSAnL2Jyb3dzZXIvcm9sZS9v YmovJwogZmlsZV9uYW1lID0gb3MucGF0aC5iYXNlbmFtZShfX2ZpbGVfXykKQEAgLTUyLDI0ICs1 MCw2IEBAIGRlZiB2ZXJpZnlfcm9sZShzZXJ2ZXIsIHJvbGVfbmFtZSk6CiAgICAgICAgIHByaW50 KGV4Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQogCiAKLWRlZiB0ZXN0X2dldHJvbGUodGVzdGVy KToKLSAgICBpZiBub3QgdGVzdGVyOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgYWxsX2lk ID0gdXRpbHMuZ2V0X2lkcygpCi0KLSAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQotICAg IHJvbGVfaWRzX2RpY3QgPSBhbGxfaWRbImxyaWQiXVswXQotICAgIHNlcnZlcl9ncm91cCA9IGNv bmZpZ19kYXRhWydzZXJ2ZXJfZ3JvdXAnXQotCi0gICAgcm9sZV9yZXNwb25zZV9kYXRhID0gW10K LSAgICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0gICAgICAgIHJvbGVfaWQgPSByb2xl X2lkc19kaWN0W2ludChzZXJ2ZXJfaWQpXQotICAgICAgICByb2xlX3Jlc3BvbnNlX2RhdGEuYXBw ZW5kKAotICAgICAgICAgICAgdmVyaWZ5X3JvbGUodGVzdGVyLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZl cl9pZCwgcm9sZV9pZCkpCi0gICAgcmV0dXJuIHJvbGVfcmVzcG9uc2VfZGF0YQotCi0KIGRlZiBn ZXRfcm9sZV9kYXRhKGxyX3B3ZCk6CiAgICAgIiIiVGhpcyBmdW5jdGlvbiByZXR1cm5zIHRoZSBy b2xlIGRhdGEiIiIKICAgICBkYXRhID0gewpAQCAtMTIyLDM0ICsxMDIsNiBAQCBkZWYgY3JlYXRl X3JvbGUoc2VydmVyLCByb2xlX25hbWUpOgogICAgICAgICBwcmludChleGNlcHRpb24sIGZpbGU9 c3lzLnN0ZGVycikKIAogCi1kZWYgd3JpdGVfcm9sZV9pZChyZXNwb25zZV9kYXRhKToKLSAgICAi IiIKLQotICAgIDpwYXJhbSByZXNwb25zZV9kYXRhOgotICAgIDpyZXR1cm46Ci0gICAgIiIiCi0K LSAgICBscl9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICBzZXJ2ZXJfaWQg PSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19waWQnXQotICAgIHBpY2tsZV9pZF9kaWN0ID0gdXRp bHMuZ2V0X3BpY2tsZV9pZF9kaWN0KCkKLSAgICAjIFRPRE86IG1vZGlmeSBsb2dpYyB0byB3cml0 ZSBpbiBmaWxlIC8gZmlsZSBleGlzdHMgb3IgY3JlYXRlIG5ldyBjaGVjawotICAgICMgb2xkIGZp bGUKLSAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6Ci0gICAgICAgIGV4aXN0aW5n X3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdyYicpCi0gICAgICAgIHRvbF9zZXJ2ZXJf aWQgPSBwaWNrbGUubG9hZChleGlzdGluZ19zZXJ2ZXJfaWQpCi0gICAgICAgIHBpY2tsZV9pZF9k aWN0ID0gdG9sX3NlcnZlcl9pZAotICAgIGlmICdscmlkJyBpbiBwaWNrbGVfaWRfZGljdDoKLSAg ICAgICAgaWYgcGlja2xlX2lkX2RpY3RbJ2xyaWQnXToKLSAgICAgICAgICAgICMgQWRkIHRoZSBk Yl9pZCBhcyB2YWx1ZSBpbiBkaWN0Ci0gICAgICAgICAgICBwaWNrbGVfaWRfZGljdFsibHJpZCJd WzBdLnVwZGF0ZSh7c2VydmVyX2lkOiBscl9pZH0pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICAjIENyZWF0ZSBuZXcgZGljdCB3aXRoIHNlcnZlcl9pZCBhbmQgZGJfaWQKLSAgICAgICAgICAg IHBpY2tsZV9pZF9kaWN0WyJscmlkIl0uYXBwZW5kKHtzZXJ2ZXJfaWQ6IGxyX2lkfSkKLSAgICBk Yl9vdXRwdXQgPSBvcGVuKHBpY2tsZV9wYXRoLCAnd2InKQotICAgIHBpY2tsZS5kdW1wKHBpY2ts ZV9pZF9kaWN0LCBkYl9vdXRwdXQpCi0gICAgZGJfb3V0cHV0LmNsb3NlKCkKLQotCiBkZWYgZGVs ZXRlX3JvbGUoY29ubmVjdGlvbiwgcm9sZV9uYW1lKToKICAgICAiIiIKICAgICBUaGlzIGZ1bmN0 aW9uIHVzZSB0byBkZWxldGUgdGhlIGV4aXN0aW5nIHJvbGVzIGluIHRoZSBzZXJ2ZXJzCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL19faW5pdF9fLnB5CmluZGV4IGZjNzU3ZjEyLi41 OTAwMjZhZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvX19pbml0X18ucHkK QEAgLTYsMTEgKzYsMyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLQotCi1jbGFzcyBUYmxzcGFjZUdl bmVyYXRvclRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfYmFja2VuZF9zdXBwb3J0 ZWQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNw YWNlcy90ZXN0cy90ZXN0X2JhY2tlbmRfc3VwcG9ydGVkLnB5CmluZGV4IGQ4ZjQ2NDk4Li43YTFh NDdjZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF9iYWNrZW5kX3N1cHBvcnRlZC5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90 ZXN0X2JhY2tlbmRfc3VwcG9ydGVkLnB5CkBAIC04LDQ2ICs4LDM1IEBACiAjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIwogaW1wb3J0IHN5cwogCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGlmIHN5cy52 ZXJzaW9uX2luZm8gPCAoMywgMyk6CiAgICAgZnJvbSBtb2NrIGltcG9ydCBNYWdpY01vY2sKIGVs c2U6CiAgICAgZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBNYWdpY01vY2sKIAogZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRhYmxlc3BhY2VzIGltcG9ydCBUYWJs ZXNwYWNlTW9kdWxlCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCi0KIAotY2xhc3MgQmFja2VuZFN1cHBvcnRlZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJh dG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIHRhYmxlc3BhY2Ugbm9kZSB1bmRlciBz ZXJ2ZXIiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgnV2hlbiBzZXJ2ZXIgaXMgcG9z dGdyZXMsIGl0IHJldHVybnMgdHJ1ZScsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIG1h bmFnZXI9ZGljdCgKLSAgICAgICAgICAgICAgICAgc3ZlcnNpb249OTAxMDAsCi0gICAgICAgICAg ICAgICAgIHNlcnZlcl90eXBlPSdwZycKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIGV4 cGVjdGVkX3Jlc3VsdD1UcnVlCi0gICAgICAgICApKSwKLSAgICAgICAgKCdXaGVuIHNlcnZlciBp cyBHcmVlblBsdW0gNS4wLCBpdCByZXR1cm5zIGZhbHNlJywKLSAgICAgICAgIGRpY3QoCi0gICAg ICAgICAgICAgbWFuYWdlcj1kaWN0KAotICAgICAgICAgICAgICAgICBzdmVyc2lvbj04MDMyMywK LSAgICAgICAgICAgICAgICAgc2VydmVyX3R5cGU9J2dwZGInCi0gICAgICAgICAgICAgKSwKLSAg ICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9RmFsc2UKLSAgICAgICAgICkpCi0gICAgXQogCi0g ICAgY2xhc3MgTG9jYWxNYW5hZ2VyOgotICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcHJvcGVy dGllcyk6Ci0gICAgICAgICAgICBzZWxmLnN2ZXJzaW9uID0gcHJvcGVydGllc1snc3ZlcnNpb24n XQotICAgICAgICAgICAgc2VsZi5zdmVyc2lvbiA9IHByb3BlcnRpZXNbJ3N2ZXJzaW9uJ10KK2Ns YXNzIFRlc3RCYWNrZW5kU3VwcG9ydGVkOgorICAgIGRlZiB0ZXN0X3Bvc3RncmVzKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBjaGVja2luZyBpZiB0aGUgUG9zdGdyZXMgRGF0YWJh c2Ugc3VwcG9ydHMgVGFibGUgc3BhY2VzCisgICAgICAgIEl0IHJldHVybnMgdHJ1ZQorICAgICAg ICAiIiIKKyAgICAgICAgbW9kdWxlID0gVGFibGVzcGFjZU1vZHVsZSgnbmFtZScpCisgICAgICAg IG1hbmFnZXIgPSBNYWdpY01vY2soKQorICAgICAgICBtYW5hZ2VyLnN2ZXJzaW9uID0gOTAxMDAK KyAgICAgICAgbWFuYWdlci5zZXJ2ZXJfdHlwZSA9ICdwZycKKyAgICAgICAgbW9kdWxlLkJhY2tl bmRTdXBwb3J0ZWQobWFuYWdlcikgfCBzaG91bGQuYmUudHJ1ZQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6CisgICAgZGVmIHRlc3RfZ3JlZW5wbHVtKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiBjaGVja2luZyBpZiB0aGUgR3JlZW5wbHVtIERhdGFiYXNlIHN1cHBvcnRzIFRhYmxl c3BhY2VzCisgICAgICAgIEl0IHJldHVybnMgZmFsc2UKKyAgICAgICAgIiIiCiAgICAgICAgIG1v ZHVsZSA9IFRhYmxlc3BhY2VNb2R1bGUoJ25hbWUnKQogICAgICAgICBtYW5hZ2VyID0gTWFnaWNN b2NrKCkKLSAgICAgICAgbWFuYWdlci5zdmVyc2lvbiA9IHNlbGYubWFuYWdlclsnc3ZlcnNpb24n XQotICAgICAgICBtYW5hZ2VyLnNlcnZlcl90eXBlID0gc2VsZi5tYW5hZ2VyWydzZXJ2ZXJfdHlw ZSddCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAotICAgICAgICAgICAgc2VsZi5leHBlY3Rl ZF9yZXN1bHQsIG1vZHVsZS5CYWNrZW5kU3VwcG9ydGVkKG1hbmFnZXIpCi0gICAgICAgICkKKyAg ICAgICAgbWFuYWdlci5zdmVyc2lvbiA9IDgwMzIzCisgICAgICAgIG1hbmFnZXIuc2VydmVyX3R5 cGUgPSAnZ3BkYicKKyAgICAgICAgbW9kdWxlLkJhY2tlbmRTdXBwb3J0ZWQobWFuYWdlcikgfCBz aG91bGQuYmUuZmFsc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfYWRkLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVz dF90YnNwY19hZGQucHkKaW5kZXggYzhiOWIwYmEuLjhkYWU4OTUyIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90 ZXN0X3Ric3BjX2FkZC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2FkZC5weQpAQCAtMTEsNTkgKzEx LDY3IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogaW1wb3J0IGpz b24KIAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBn YWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBl ciBpbXBvcnQgY29udmVydF9yZXNwb25zZV90b19qc29uLCBcCisgICAgYXNzZXJ0X2pzb25fdmFs dWVzX2Zyb21fcmVzcG9uc2UKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNwYWNl X3V0aWxzCiAKIAotY2xhc3MgVGFibGVTcGFjZUFkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKLSAgICAiIiJUaGlzIGNsYXNzIHdpbGwgYWRkIHRhYmxlc3BhY2Ugbm9kZSB1bmRlciBzZXJ2 ZXIiIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHRhYmxlc3BhY2Ugbm9kZS4KLSAgICAgICAgKCdDaGVjayBUYWJsZXNwYWNlIE5vZGUnLCBk aWN0KHVybD0nL2Jyb3dzZXIvdGFibGVzcGFjZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFRh YmxlU3BhY2VBZGQ6CisgICAgZGVmIHRlc3RfYWRkX3RhYmxlc3BhY2Uoc2VsZiwgcmVxdWVzdCwg Y29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIGEgcmVxdWVzdCBp cyBzZW50IHRvIGFkZCBhIG5ldyB0YWJsZXNwYWNlIGlzIHZhbGlkCisgICAgICAgIEl0IHJldHVy biBzdWNjZXNzCisgICAgICAgICIiIgorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxm LnRlYXJEb3duKQorCisgICAgICAgIHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2Vy dmVyJ10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi50YWJsZXNwYWNlX25h bWUgPSAnJwotICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddXAot ICAgICAgICAgICAgICAgIG9yIHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXSBpcyBOb25l OgotICAgICAgICAgICAgbWVzc2FnZSA9ICJUYWJsZXNwYWNlIGFkZCB0ZXN0IGNhc2UuIFRhYmxl c3BhY2UgcGF0aCIgXAotICAgICAgICAgICAgICAgICAgICAgICIgbm90IGNvbmZpZ3VyZWQgZm9y IHNlcnZlcjogJXMiICUgc2VsZi5zZXJ2ZXJbJ25hbWUnXQotICAgICAgICAgICAgIyBTa2lwIHRo ZSB0ZXN0IGNhc2UgaWYgdGFibGVzcGFjZV9wYXRoIG5vdCBmb3VuZC4KLSAgICAgICAgICAgIHNl bGYuc2tpcFRlc3QobWVzc2FnZSkKKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyWyd0YWJsZXNw YWNlX3BhdGgnXSBcCisgICAgICAgICAgIG9yIHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgn XSBpcyBOb25lOgorICAgICAgICAgICAgbWVzc2FnZSA9ICdUYWJsZXNwYWNlIGFkZCB0ZXN0IGNh c2UuIFRhYmxlc3BhY2UgcGF0aCcgXAorICAgICAgICAgICAgICAgICAgICAgICcgbm90IGNvbmZp Z3VyZWQgZm9yIHNlcnZlcjogJXMnICUgc2VsZi5zZXJ2ZXJbJ25hbWUnXQorICAgICAgICAgICAg cHl0ZXN0LnNraXAobWVzc2FnZSkKKworICAgICAgICB1cmwgPSAnL2Jyb3dzZXIvdGFibGVzcGFj ZS9vYmovJworICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xp ZW50J10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHRlc3QgdGhlIGFkZCB0YWJsZXNwYWNlIEFQSSIiIgotICAgICAgICBzZXJ2ZXJfaWQgPSBwYXJl bnRfbm9kZV9kaWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAgICAgIHNlcnZlcl9y ZXNwb25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCisg ICAgICAgIHNlcnZlcl9pZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlcl9pbmZvcm1hdGlvbidd WydzZXJ2ZXJfaWQnXQorICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMuY2xp ZW50X2Nvbm5lY3Rfc2VydmVyKAorICAgICAgICAgICAgaHR0cF9jbGllbnQsCisgICAgICAgICAg ICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKICAg ICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWydjb25uZWN0ZWQnXToKLSAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiVW5hYmxlIHRvIGNvbm5lY3Qgc2VydmVyIHRvIGdldCB0 YWJsZXNwYWNlLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuYWJsZSB0byBjb25u ZWN0IHNlcnZlciB0byBnZXQgdGFibGVzcGFjZS4nKQogCiAgICAgICAgIGRiX293bmVyID0gc2Vy dmVyX3Jlc3BvbnNlWydkYXRhJ11bJ3VzZXInXVsnbmFtZSddCiAgICAgICAgIHRhYmxlX3NwYWNl X3BhdGggPSBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ10KICAgICAgICAgZGF0YSA9IHRh Ymxlc3BhY2VfdXRpbHMuZ2V0X3RhYmxlc3BhY2VfZGF0YSgKICAgICAgICAgICAgIHRhYmxlX3Nw YWNlX3BhdGgsIGRiX293bmVyKQogICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZSA9IGRhdGFb J25hbWUnXQotICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCi0gICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKHNlcnZlcl9p ZCkgKyAnLycsCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQucG9zdCgKKyAgICAgICAg ICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsgc3RyKHNlcnZlcl9pZCkg KyAnLycsCiAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCiAgICAgICAgICAgICBj b250ZW50X3R5cGU9J2h0bWwvanNvbicKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICByZXNwb25zZV9kYXRhID0g anNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAgICAgdGFibGVz cGFjZV9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAgICAgICAgdGFibGVzcGFj ZV9kaWN0ID0geyJ0YWJsZXNwYWNlX2lkIjogdGFibGVzcGFjZV9pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICJ0YWJsZXNwYWNlX25hbWUiOiBzZWxmLnRhYmxlc3BhY2VfbmFtZSwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfaWQiOiBzZXJ2ZXJfaWR9Ci0gICAgICAg IHV0aWxzLndyaXRlX25vZGVfaW5mbygidHNpZCIsIHRhYmxlc3BhY2VfZGljdCkKKworICAgICAg ICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisgICAgICAgIGpz b25fcmVzcG9uc2UgPSBjb252ZXJ0X3Jlc3BvbnNlX3RvX2pzb24ocmVzcG9uc2UpCisgICAgICAg IGFzc2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKAorICAgICAgICAgICAganNvbl9yZXNw b25zZSwKKyAgICAgICAgICAgICd0YWJsZXNwYWNlJywKKyAgICAgICAgICAgICdwZ2FkbWluLm5v ZGUudGFibGVzcGFjZScsCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgICdpY29uLXRh Ymxlc3BhY2UnLAorICAgICAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUKKyAgICAgICAgKQog CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5j dGlvbiBkZWxldGUgdGhlIHRhYmxlc3BhY2UgZnJvbSBzZXJ2ZXIgYWRkZWQgaW4gU1FMaXRlIGFu ZAotICAgICAgICBjbGVhcnMgdGhlIG5vZGVfaW5mb19kaWN0Ci0gICAgICAgICIiIgogICAgICAg ICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VsZi5zZXJ2ZXJbJ2RiJ10s CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl clsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNw Y19kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2RlbGV0ZS5weQppbmRleCA0ZTE2YmY3YS4uMGMw OTEyNDkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZGVsZXRlLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3Rf dGJzcGNfZGVsZXRlLnB5CkBAIC05LDU4ICs5LDYyIEBACiAKIGZyb20gX19mdXR1cmVfXyBpbXBv cnQgcHJpbnRfZnVuY3Rpb24KIAotaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdh ZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lv biBpbXBvcnQgcGFyZW50X25vZGVfZGljdAoraW1wb3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1w b3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24KIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBp bXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNw YWNlX3V0aWxzCiAKIAotY2xhc3MgVGFibGVTcGFjZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiJUaGlzIGNsYXNzIGhhcyBkZWxldGUgdGFibGUgc3BhY2Ugc2NlbmFy aW8iIiIKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHRhYmxlc3BhY2Ugbm9kZS4KLSAgICAgICAgKCdDaGVjayBUYWJsZXNwYWNlIE5vZGUnLCBk aWN0KHVybD0nL2Jyb3dzZXIvdGFibGVzcGFjZS9vYmovJykpCi0gICAgXQorY2xhc3MgVGVzdFRh YmxlU3BhY2VEZWxldGU6CisgICAgZGVmIHRlc3RfdGFibGVzcGFjZV9kZWxldGUoc2VsZiwgcmVx dWVzdCwgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSB0 YWJsZXNwYWNlIERFTEVURSByZXF1ZXN0IGlzIHNlbmQgdG8gdGhlIGJhY2tlbmQKKyAgICAgICAg aXQgcmV0dXJucyAyMDAgc3RhdHVzCisgICAgICAgICIiIgorICAgICAgICB1cmwgPSAnL2Jyb3dz ZXIvdGFibGVzcGFjZS9vYmovJworICAgICAgICBodHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVz dHNbJ3Rlc3RfY2xpZW50J10KIAotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAgICAgaWYgbm90 IHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXVwKLSAgICAgICAgICAgICAgICBvciBzZWxm LnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ10gaXMgTm9uZToKLSAgICAgICAgICAgIG1lc3NhZ2Ug PSAiVGFibGVzcGFjZSBkZWxldGUgdGVzdCBjYXNlLiBUYWJsZXNwYWNlIHBhdGgiIFwKLSAgICAg ICAgICAgICAgICAgICAgICAiIG5vdCBjb25maWd1cmVkIGZvciBzZXJ2ZXI6ICVzIiAlIHNlbGYu c2VydmVyWyduYW1lJ10KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIFwK KyAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIGlzIE5vbmU6Cisg ICAgICAgICAgICBtZXNzYWdlID0gJ1RhYmxlc3BhY2UgZGVsZXRlIHRlc3QgY2FzZS4gVGFibGVz cGFjZSBwYXRoJyBcCisgICAgICAgICAgICAgICAgICAgICAgJyBub3QgY29uZmlndXJlZCBmb3Ig c2VydmVyOiAlcycgJSBzZWxmLnNlcnZlclsnbmFtZSddCiAgICAgICAgICAgICAjIFNraXAgdGhl IHRlc3QgY2FzZSBpZiB0YWJsZXNwYWNlX3BhdGggbm90IGZvdW5kLgotICAgICAgICAgICAgc2Vs Zi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLnRhYmxlc3BhY2VfbmFtZSA9ICJ0YWJs ZXNwYWNlX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAgICAgIHNlbGYu c2VydmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJzZXJ2ZXJfaWQiXQot ICAgICAgICBzZWxmLnRhYmxlc3BhY2VfaWQgPSB0YWJsZXNwYWNlX3V0aWxzLmNyZWF0ZV90YWJs ZXNwYWNlKAotICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYudGFibGVzcGFjZV9uYW1lKQot ICAgICAgICB0YWJsZXNwYWNlX2RpY3QgPSB7Ci0gICAgICAgICAgICAidGFibGVzcGFjZV9pZCI6 IHNlbGYudGFibGVzcGFjZV9pZCwKLSAgICAgICAgICAgICJ0YWJsZXNwYWNlX25hbWUiOiBzZWxm LnRhYmxlc3BhY2VfbmFtZSwKLSAgICAgICAgICAgICJzZXJ2ZXJfaWQiOiBzZWxmLnNlcnZlcl9p ZAotICAgICAgICB9Ci0gICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbygidHNpZCIsIHRhYmxl c3BhY2VfZGljdCkKKyAgICAgICAgICAgIHB5dGVzdC5za2lwKG1lc3NhZ2UpCisKKyAgICAgICAg cmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKIAotICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRlc3RzIHRoZSBkZWxldGUgdGFibGUgc3Bh Y2UgYXBpIiIiCi0gICAgICAgIHRhYmxlc3BhY2VfY291bnQgPSB0YWJsZXNwYWNlX3V0aWxzLnZl cmlmeV90YWJsZV9zcGFjZSgKKyAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUgPSAndGFibGVz cGFjZV9kZWxldGVfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBzZXJ2ZXJf aWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXVsnc2VydmVyX2lkJ10K KyAgICAgICAgdGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfdXRpbHMuY3JlYXRlX3RhYmxlc3Bh Y2UoCiAgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi50YWJsZXNwYWNlX25hbWUpCi0gICAg ICAgIGlmIHRhYmxlc3BhY2VfY291bnQgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiTm8gdGFibGVzcGFjZShzKSB0byBkZWxldGUhISEiKQogCi0gICAgICAgIHJlc3BvbnNlID0g c2VsZi50ZXN0ZXIuZGVsZXRlKAotICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VS VkVSX0dST1VQKSArCi0gICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8n ICsgc3RyKHNlbGYudGFibGVzcGFjZV9pZCksCisgICAgICAgIHRhYmxlc3BhY2VfZXhpc3RzID0g dGFibGVzcGFjZV91dGlscy50YWJsZXNwYWNlX2V4aXN0cygKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUpCisgICAgICAgIGlmIG5vdCB0 YWJsZXNwYWNlX2V4aXN0czoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm8gdGFibGVz cGFjZShzKSB0byBkZWxldGUhISEnKQorCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQu ZGVsZXRlKAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKworICAg ICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIodGFibGVzcGFjZV9pZCks CiAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUKICAgICAgICAgKQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICBkZWxl dGVfcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04 JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGRlbGV0ZV9yZXNwb25zZV9kYXRhWydzdWNj ZXNzJ10sIDEpCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdp bmZvJykgPiBzaG91bGQuYmUuZXF1YWwudG8oCisgICAgICAgICAgICAnVGFibGVzcGFjZSBkcm9w cGVkJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZXJyb3Jtc2cn KSA+IHNob3VsZC5iZS5lbXB0eQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUu a2V5KCdkYXRhJykKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgncmVz dWx0JykgPiBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhh dmUua2V5KCdzdWNjZXNzJykgPiBzaG91bGQuYmUuZXF1YWwudG8oMSkKIAogICAgIGRlZiB0ZWFy RG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSB0YWJsZXNw YWNlIiIiCiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxm LnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90 ZXN0cy90ZXN0X3Ric3BjX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfZ2V0LnB5CmluZGV4IDIxNTRl N2U2Li5mNTc2NDZjMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19nZXQucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMv dGVzdF90YnNwY19nZXQucHkKQEAgLTksNTUgKzksODAgQEAKIAogaW1wb3J0IHV1aWQKIAoraW1w b3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4udXRp bHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJfdXRpbHMKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQg cGFyZW50X25vZGVfZGljdAorZnJvbSBwZ2FkbWluLnV0aWxzLnRlc3RzX2hlbHBlciBpbXBvcnQg Y29udmVydF9yZXNwb25zZV90b19qc29uCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdGFi bGVzcGFjZV91dGlscwogCiAKLWNsYXNzIFRhYmxlc3BhY2VHZXRUZXN0Q2FzZShCYXNlVGVzdEdl bmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyB0ZXN0cyB0aGUgZ2V0IHRhYmxlIHNwYWNlIHNj ZW5hcmlvIiIiCitjbGFzcyBUZXN0VGFibGVzcGFjZUdldDoKKyAgICBkZWYgdGVzdF90YWJsZXNw YWNlX2dldChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIHRhYmxlc3BhY2UgR0VUIHJlcXVlc3QgaXMgc2VuZCB0byB0aGUgYmFj a2VuZAorICAgICAgICBpdCByZXR1cm5zIDIwMCBzdGF0dXMKKyAgICAgICAgIiIiCisgICAgICAg IHNlbGYuc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKworICAgICAgICBpZiBu b3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIFwKKyAgICAgICAgICAgb3Igc2VsZi5z ZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIGlzIE5vbmU6CisgICAgICAgICAgICBtZXNzYWdlID0g J1RhYmxlc3BhY2UgZ2V0IHRlc3QgY2FzZS4gVGFibGVzcGFjZSBwYXRoJyBcCisgICAgICAgICAg ICAgICAgICAgICAgJyBub3QgY29uZmlndXJlZCBmb3Igc2VydmVyOiAlcycgJSBzZWxmLnNlcnZl clsnbmFtZSddCisgICAgICAgICAgICBweXRlc3Quc2tpcChtZXNzYWdlKQorCisgICAgICAgIHJl cXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHJvbGVzIG5vZGUuCi0gICAgICAgICgn Q2hlY2sgVGFibGVzcGFjZSBOb2RlJywgZGljdCh1cmw9Jy9icm93c2VyL3RhYmxlc3BhY2Uvb2Jq LycpKQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2VyL3RhYmxlc3BhY2Uvb2JqLycKKyAg ICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCiAKLSAg ICBkZWYgc2V0VXAoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFj ZV9wYXRoJ11cCi0gICAgICAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0 aCddIGlzIE5vbmU6Ci0gICAgICAgICAgICBtZXNzYWdlID0gIlRhYmxlc3BhY2UgZ2V0IHRlc3Qg Y2FzZS4gVGFibGVzcGFjZSBwYXRoIiBcCi0gICAgICAgICAgICAgICAgICAgICAgIiBub3QgY29u ZmlndXJlZCBmb3Igc2VydmVyOiAlcyIgJSBzZWxmLnNlcnZlclsnbmFtZSddCi0gICAgICAgICAg ICAjIFNraXAgdGhlIHRlc3QgY2FzZSBpZiB0YWJsZXNwYWNlX3BhdGggbm90IGZvdW5kLgotICAg ICAgICAgICAgc2VsZi5za2lwVGVzdChtZXNzYWdlKQotICAgICAgICBzZWxmLnRhYmxlc3BhY2Vf bmFtZSA9ICJ0YWJsZXNwYWNlX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0g ICAgICAgIHNlbGYudGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfdXRpbHMuY3JlYXRlX3RhYmxl c3BhY2UoCi0gICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi50YWJsZXNwYWNlX25hbWUpCi0g ICAgICAgIHNlbGYuc2VydmVyX2lkID0gcGFyZW50X25vZGVfZGljdFsic2VydmVyIl1bLTFdWyJz ZXJ2ZXJfaWQiXQotICAgICAgICB0YWJsZXNwYWNlX2RpY3QgPSB7InRhYmxlc3BhY2VfaWQiOiBz ZWxmLnRhYmxlc3BhY2VfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAidGFibGVzcGFj ZV9uYW1lIjogc2VsZi50YWJsZXNwYWNlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWR9Ci0gICAgICAgIHV0aWxzLndyaXRlX25vZGVf aW5mbygidHNpZCIsIHRhYmxlc3BhY2VfZGljdCkKKyAgICAgICAgc2VsZi50YWJsZXNwYWNlX25h bWUgPSAndGFibGVzcGFjZV9kZWxldGVfJXMnICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAg ICAgICB0YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV91dGlscy5jcmVhdGVfdGFibGVzcGFjZSgK KyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi50YWJsZXNwYWNlX25h bWUpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB0 ZXN0IHRoZSBnZXQgdGFibGUgc3BhY2Ugc2NlbmFyaW8iIiIKLSAgICAgICAgc2VydmVyX3Jlc3Bv bnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNlbGYuc2VydmVyX2lkKQor ICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24n XVsnc2VydmVyX2lkJ10KKworICAgICAgICBzZXJ2ZXJfcmVzcG9uc2UgPSBzZXJ2ZXJfdXRpbHMu Y2xpZW50X2Nvbm5lY3Rfc2VydmVyKAorICAgICAgICAgICAgaHR0cF9jbGllbnQsCisgICAgICAg ICAgICBzZXJ2ZXJfaWQsCisgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkK ICAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0YSddWydjb25uZWN0ZWQnXToKLSAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiVW5hYmxlIHRvIGNvbm5lY3Qgc2VydmVyIHRvIGdl dCB0YWJsZXNwYWNlLiIpCisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuYWJsZSB0byBj b25uZWN0IHNlcnZlciB0byBnZXQgdGFibGVzcGFjZS4nKQorCisgICAgICAgIHRhYmxlc3BhY2Vf ZXhpc3RzID0gdGFibGVzcGFjZV91dGlscy50YWJsZXNwYWNlX2V4aXN0cygKKyAgICAgICAgICAg IHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUpCisgICAgICAg IGlmIG5vdCB0YWJsZXNwYWNlX2V4aXN0czoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign Tm8gdGFibGVzcGFjZShzKSB0byB1cGRhdGUhISEnKQogCi0gICAgICAgIHRhYmxlc3BhY2VfY291 bnQgPSB0YWJsZXNwYWNlX3V0aWxzLnZlcmlmeV90YWJsZV9zcGFjZSgKLSAgICAgICAgICAgIHNl bGYuc2VydmVyLCBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKLSAgICAgICAgaWYgdGFibGVzcGFjZV9j b3VudCA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyB0YWJsZXNwYWNlKHMp IHRvIHVwZGF0ZSEhISIpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAg ICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAg ICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVzcGFjZV9p ZCksCisgICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KAorICAgICAgICAgICAgdXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZl cl9pZCkgKyAnLycgKyBzdHIodGFibGVzcGFjZV9pZCksCiAgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdz cGNhY2wnKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5lcXVhbC50byhbXSkKKyAgICAgICAg anNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnbmFtZScpID4gXAorICAgICAgICAgICAg c2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYudGFibGVzcGFjZV9uYW1lKQorICAgICAgICBqc29uX3Jl c3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzcGNvcHRpb25zJykgPiBcCisgICAgICAgICAgICBz aG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdv aWQnKQorICAgICAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzcGNsb2NhdGlv bicpID4gXAorICAgICAgICAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKHNlbGYuc2VydmVyWyd0YWJs ZXNwYWNlX3BhdGgnXSkKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgn YWNsJykgPiBcCisgICAgICAgICAgICBzaG91bGQuYmUubm9uZQorICAgICAgICBqc29uX3Jlc3Bv bnNlIHwgc2hvdWxkLmhhdmUua2V5KCdzcGN1c2VyJykgPiBcCisgICAgICAgICAgICBzaG91bGQu YmUuZXF1YWwudG8oc2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10pCisgICAgICAgIGpzb25fcmVzcG9u c2UgfCBzaG91bGQuaGF2ZS5rZXkoJ3NlY2xhYmVscycpID4gXAorICAgICAgICAgICAgc2hvdWxk LmJlLm5vbmUKKyAgICAgICAganNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtleSgnZGVzY3Jp cHRpb24nKSA+IFwKKyAgICAgICAgICAgIHNob3VsZC5iZS5ub25lCiAKICAgICBkZWYgdGVhckRv d24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSB0YWJsZXNwYWNl IGZyb20gYWRkZWQgc2VydmVyIiIiCiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJf Y29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3Jk J10sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX3B1dC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfcHV0 LnB5CmluZGV4IGUxY2VlMDRmLi4zYmUwOGU1OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19w dXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFi bGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19wdXQucHkKQEAgLTEwLDU3ICsxMCw3MCBAQAogaW1w b3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91 bGQKKworZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMudGVzdHNfaGVscGVyIGltcG9ydCBjb252 ZXJ0X3Jlc3BvbnNlX3RvX2pzb24sIFwKKyAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNw b25zZQogZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIGZyb20g LiBpbXBvcnQgdXRpbHMgYXMgdGFibGVzcGFjZV91dGlscwogCiAKLWNsYXNzIFRhYmxlU3BhY2VV cGRhdGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyBjbGFzcyBoYXMg dXBkYXRlIHRhYmxlc3BhY2Ugc2NlbmFyaW8iIiIKK2NsYXNzIFRlc3RUYWJsZVNwYWNlVXBkYXRl OgorICAgIGRlZiB0ZXN0X3RhYmxlc3BhY2VfcHV0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgVGFibGVzcGFjZSBQVVQgcmVx dWVzdCBpcyBzZW5kIHRvIHRoZSBiYWNrZW5kCisgICAgICAgIGl0IHJldHVybnMgMjAwIHN0YXR1 cworICAgICAgICAiIiIKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydz ZXJ2ZXInXQorICAgICAgICBzZXJ2ZXJfaWQgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5m b3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29m X3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgIHVybCA9ICcvYnJvd3Nlci90YWJsZXNwYWNl L29iai8nCisKKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXSBc CisgICAgICAgICAgIG9yIHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXSBpcyBOb25lOgor ICAgICAgICAgICAgbWVzc2FnZSA9ICdUYWJsZXNwYWNlIGRlbGV0ZSB0ZXN0IGNhc2UuIFRhYmxl c3BhY2UgcGF0aCcgXAorICAgICAgICAgICAgICAgICAgICAgICcgbm90IGNvbmZpZ3VyZWQgZm9y IHNlcnZlcjogJXMnICUgc2VsZi5zZXJ2ZXJbJ25hbWUnXQorICAgICAgICAgICAgcHl0ZXN0LnNr aXAobWVzc2FnZSkKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZh dWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KLSAgICAgICAgKCdDaGVjayBUYWJsZXNwYWNlIE5vZGUn LCBkaWN0KHVybD0nL2Jyb3dzZXIvdGFibGVzcGFjZS9vYmovJykpCi0gICAgXQorICAgICAgICBy ZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddXAotICAgICAg ICAgICAgICAgIG9yIHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXSBpcyBOb25lOgotICAg ICAgICAgICAgbWVzc2FnZSA9ICJUYWJsZXNwYWNlIGRlbGV0ZSB0ZXN0IGNhc2UuIFRhYmxlc3Bh Y2UgcGF0aCIgXAotICAgICAgICAgICAgICAgICAgICAgICIgbm90IGNvbmZpZ3VyZWQgZm9yIHNl cnZlcjogJXMiICUgc2VsZi5zZXJ2ZXJbJ25hbWUnXQotICAgICAgICAgICAgIyBTa2lwIHRoZSB0 ZXN0IGNhc2UgaWYgdGFibGVzcGFjZV9wYXRoIG5vdCBmb3VuZC4KLSAgICAgICAgICAgIHNlbGYu c2tpcFRlc3QobWVzc2FnZSkKLSAgICAgICAgc2VsZi50YWJsZXNwYWNlX25hbWUgPSAidGFibGVz cGFjZV9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAgICBzZWxmLnRh Ymxlc3BhY2VfaWQgPSB0YWJsZXNwYWNlX3V0aWxzLmNyZWF0ZV90YWJsZXNwYWNlKAotICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYudGFibGVzcGFjZV9uYW1lKQotICAgICAgICBzZWxmLnNl cnZlcl9pZCA9IHBhcmVudF9ub2RlX2RpY3RbInNlcnZlciJdWy0xXVsic2VydmVyX2lkIl0KLSAg ICAgICAgdGFibGVzcGFjZV9kaWN0ID0geyJ0YWJsZXNwYWNlX2lkIjogc2VsZi50YWJsZXNwYWNl X2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgInRhYmxlc3BhY2VfbmFtZSI6IHNlbGYu dGFibGVzcGFjZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgInNlcnZlcl9pZCI6 IHNlbGYuc2VydmVyX2lkfQotICAgICAgICB1dGlscy53cml0ZV9ub2RlX2luZm8oInRzaWQiLCB0 YWJsZXNwYWNlX2RpY3QpCisgICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lID0gJ3RhYmxlc3Bh Y2VfZGVsZXRlXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgdGFibGVzcGFj ZV9pZCA9IHRhYmxlc3BhY2VfdXRpbHMuY3JlYXRlX3RhYmxlc3BhY2UoCisgICAgICAgICAgICBz ZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lKQogCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVzdHMgdGhlIHVwZGF0 ZSB0YWJsZXNwYWNlIGRhdGEgc2NlbmFyaW8iIiIKLSAgICAgICAgdGFibGVzcGFjZV9jb3VudCA9 IHRhYmxlc3BhY2VfdXRpbHMudmVyaWZ5X3RhYmxlX3NwYWNlKAotICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsIHNlbGYudGFibGVzcGFjZV9uYW1lKQotICAgICAgICBpZiB0YWJsZXNwYWNlX2NvdW50 ID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHRhYmxlc3BhY2UocykgdG8g dXBkYXRlISEhIikKKyAgICAgICAgdGFibGVzcGFjZV9leGlzdHMgPSB0YWJsZXNwYWNlX3V0aWxz LnRhYmxlc3BhY2VfZXhpc3RzKAorICAgICAgICAgICAgc2VsZi5zZXJ2ZXIsCisgICAgICAgICAg ICBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKKyAgICAgICAgaWYgbm90IHRhYmxlc3BhY2VfZXhpc3Rz OgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyB0YWJsZXNwYWNlKHMpIHRvIHVwZGF0 ZSEhIScpCiAKICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJU aGlzIGlzIHRlc3QgZGVzY3JpcHRpb24uIiwKLSAgICAgICAgICAgICJ0YWJsZV9zcGFjZV9pZCI6 IHNlbGYudGFibGVzcGFjZV9pZAorICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJzogJ1RoaXMgaXMg dGVzdCBkZXNjcmlwdGlvbi4nLAorICAgICAgICAgICAgJ3RhYmxlX3NwYWNlX2lkJzogdGFibGVz cGFjZV9pZAogICAgICAgICB9Ci0gICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1 dCgKLSAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKwotICAg ICAgICAgICAgJy8nICsgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLnRhYmxl c3BhY2VfaWQpLAorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnB1dCgKKyAgICAgICAg ICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICcvJyArIHN0 cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHRhYmxlc3BhY2VfaWQpLAogICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKGRhdGEpLAogICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlCiAg ICAgICAgICkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1 YWwudG8oMjAwKQorICAgICAgICBqc29uX3Jlc3BvbnNlID0gY29udmVydF9yZXNwb25zZV90b19q c29uKHJlc3BvbnNlKQorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25zZSgK KyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICAndGFibGVzcGFjZScsCisg ICAgICAgICAgICAncGdhZG1pbi5ub2RlLnRhYmxlc3BhY2UnLAorICAgICAgICAgICAgRmFsc2Us CisgICAgICAgICAgICAnaWNvbi10YWJsZXNwYWNlJywKKyAgICAgICAgICAgIHNlbGYudGFibGVz cGFjZV9uYW1lCisgICAgICAgICkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSB0YWJsZXNwYWNlIiIiCiAgICAgICAgIGNvbm5l Y3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2Vy bmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy91dGlscy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0 aWxzLnB5CmluZGV4IGJlZTFkOTFmLi4zMDkzZGEwMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdXRpbHMucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFj ZXMvdGVzdHMvdXRpbHMucHkKQEAgLTc0LDE2ICs3NCw3IEBAIGRlZiBjcmVhdGVfdGFibGVzcGFj ZShzZXJ2ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKToKICAgICAgICAgcmFpc2UgRXhjZXB0aW9u KCJFcnJvciB3aGlsZSBjcmVhdGluZyB0YWJsZXNwYWNlLiAlcyIgJSBleGNlcHRpb24pCiAKIAot ZGVmIHZlcmlmeV90YWJsZV9zcGFjZShzZXJ2ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKToKLSAg ICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIGNhbGxzIHRoZSBHRVQgQVBJIGZvciByb2xlIHRvIHZl cmlmeQotICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBpbmZvCi0gICAgOnR5cGUgc2VydmVyOiBk aWN0Ci0gICAgOnBhcmFtIHRlc3RfdGFibGVzcGFjZV9uYW1lOiB0YWJsZXNwYWNlIG5hbWUKLSAg ICA6dHlwZSB0ZXN0X3RhYmxlc3BhY2VfbmFtZTogc3RyCi0gICAgOnJldHVybiB0YWJsZXNwYWNl X2NvdW50OiB0YWJsZXNwYWNlIGNvdW50Ci0gICAgOnJ0eXBlOiBpbnQKLSAgICAiIiIKK2RlZiB0 YWJsZXNwYWNlX2V4aXN0cyhzZXJ2ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKToKICAgICB0cnk6 CiAgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZXJ2ZXJbJ2Ri J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJb J3VzZXJuYW1lJ10sCkBAIC05Niw3ICs4Nyw3IEBAIGRlZiB2ZXJpZnlfdGFibGVfc3BhY2Uoc2Vy dmVyLCB0ZXN0X3RhYmxlc3BhY2VfbmFtZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICIg dHMuc3BjbmFtZT0nJXMnIiAlIHRlc3RfdGFibGVzcGFjZV9uYW1lKQogICAgICAgICB0YWJsZXNw YWNlX2NvdW50ID0gbGVuKHBnX2N1cnNvci5mZXRjaGFsbCgpKQogICAgICAgICBjb25uZWN0aW9u LmNsb3NlKCkKLSAgICAgICAgcmV0dXJuIHRhYmxlc3BhY2VfY291bnQKKyAgICAgICAgcmV0dXJu IHRhYmxlc3BhY2VfY291bnQgPT0gMQogICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9u OgogICAgICAgICBleGNlcHRpb24gPSAiJXM6IGxpbmU6JXMgJXMiICUgKAogICAgICAgICAgICAg ZmlsZV9uYW1lLCBzeXMuZXhjX3RyYWNlYmFjay50Yl9saW5lbm8sIGV4Y2VwdGlvbikKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvX19pbml0X18ucHkKaW5kZXggMWI3YTI0MzIuLjU5MDAyNmFkIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy9fX2lu aXRfXy5weQpAQCAtNiwxMCArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIFNl cnZlckdlbmVyYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgIGRlZiBydW5UZXN0 KHNlbGYpOgotICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NlcnZpY2Vf aWQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zZXJ2aWNlX2lkLnB5CmluZGV4IDNiMDNkNDk0Li45NjgyZmYy NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv dGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhfc2VydmljZV9pZC5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0 aF9zZXJ2aWNlX2lkLnB5CkBAIC05LDM5ICs5LDM1IEBACiAKIGltcG9ydCBqc29uCiAKLWZyb20g cGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gZ3JhcHBh IGltcG9ydCBzaG91bGQKKwogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9y dCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAotY2xhc3MgU2VydmVyc1dpdGhTZXJ2aWNlSURBZGRU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQg dGhlIHNlcnZlcnMgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuICIiIgorY2xhc3MgVGVzdFNl cnZlcnNXaXRoU2VydmljZUlEQWRkOgorICAgIGRlZiB0ZXN0X3NlcnZlcl93aXRoX2lkX2FkZChz ZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gc2VuZGluZyBhIHBvc3QgcmVxdWVzdCB0byBhZGQgc2VydmVyIHdpdGggc2VydmljZSBpZAor ICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQorICAgICAgICAiIiIKIAotICAgIHNj ZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaCB0aGUgZGVmYXVsdCB1cmwgZm9yIHNlcnZlciBv YmplY3QKLSAgICAgICAgKAotICAgICAgICAgICAgJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywg ZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL3NlcnZlci9vYmovJwotICAgICAg ICAgICAgKQotICAgICAgICApCi0gICAgXQorICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihz ZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBwYXNzCisgICAg ICAgIHVybCA9ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqL3swfS8iLmZvcm1hdCh1dGlscy5TRVJWRVJf R1JPVVApCisKKyAgICAgICAgc2VydmVyID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAg ICAgICAgc2VydmVyWydzZXJ2aWNlJ10gPSAiVGVzdERCIgorICAgICAgICBzZWxmLnRlc3RlciA9 IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KIAotICAgIGRlZiBydW5UZXN0KHNlbGYp OgotICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0aGUgc2VydmVyIHVuZGVyIGRl ZmF1bHQgc2VydmVyIGdyb3VwLiIiIgotICAgICAgICB1cmwgPSAiezB9ezF9LyIuZm9ybWF0KHNl bGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVApCi0gICAgICAgICMgQWRkIHNlcnZpY2UgbmFtZSBp biB0aGUgY29uZmlnCi0gICAgICAgIHNlbGYuc2VydmVyWydzZXJ2aWNlJ10gPSAiVGVzdERCIgog ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCiAgICAgICAgICAgICB1cmwsCi0g ICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi5zZXJ2ZXIpLAorICAgICAgICAgICAgZGF0 YT1qc29uLmR1bXBzKHNlcnZlciksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNv bicKICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmVxdWFs KDIwMCkKICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5k ZWNvZGUoJ3V0Zi04JykpCiAgICAgICAgIHNlbGYuc2VydmVyX2lkID0gcmVzcG9uc2VfZGF0YVsn bm9kZSddWydfaWQnXQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAgICAiIiJUaGlz IGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlICIiIgogICAgICAgICB1dGls cy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3Rz L3Rlc3RfYWRkX3NlcnZlcl93aXRoX3NzaF90dW5uZWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zc2hfdHVu bmVsLnB5CmluZGV4IGNjYTkzMjJiLi45Y2M0ZjZhNCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9hZGRfc2VydmVyX3dpdGhf c3NoX3R1bm5lbC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X2FkZF9zZXJ2ZXJfd2l0aF9zc2hfdHVubmVsLnB5CkBAIC05LDU0ICs5 LDc3IEBACiAKIGltcG9ydCBqc29uCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKworZnJvbSBwZ2Fk bWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKIAogCi1jbGFzcyBTZXJ2ZXJzV2l0aFNTSFR1bm5lbEFkZFRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGFkZCB0aGUgc2VydmVycyB1bmRlciBk ZWZhdWx0IHNlcnZlciBncm91cC4gIiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICgK LSAgICAgICAgICAgICdBZGQgc2VydmVyIHVzaW5nIFNTSCB0dW5uZWwgd2l0aCBwYXNzd29yZCcs IGRpY3QoCi0gICAgICAgICAgICAgICAgdXJsPScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycsCi0gICAg ICAgICAgICAgICAgd2l0aF9wYXNzd29yZD1UcnVlCi0gICAgICAgICAgICApCi0gICAgICAgICks Ci0gICAgICAgICgKLSAgICAgICAgICAgICdBZGQgc2VydmVyIHVzaW5nIFNTSCB0dW5uZWwgd2l0 aCBpZGVudGl0eSBmaWxlJywgZGljdCgKLSAgICAgICAgICAgICAgICB1cmw9Jy9icm93c2VyL3Nl cnZlci9vYmovJywKLSAgICAgICAgICAgICAgICB3aXRoX3Bhc3N3b3JkPUZhbHNlCi0gICAgICAg ICAgICApCi0gICAgICAgICksCi0gICAgXQotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAg ICBwYXNzCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rp b24gd2lsbCBhZGQgdGhlIHNlcnZlciB1bmRlciBkZWZhdWx0IHNlcnZlciBncm91cC4iIiIKLSAg ICAgICAgdXJsID0gInswfXsxfS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQ KQotICAgICAgICAjIEFkZCBzZXJ2aWNlIG5hbWUgaW4gdGhlIGNvbmZpZworY2xhc3MgVGVzdFNl cnZlcnNXaXRoU1NIVHVubmVsQWRkOgorICAgIGRlZiB0ZXN0X3NlcnZlcl91c2luZ190dW5uZWxf d2l0aF9wYXNzd29yZChzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXF1ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4g c2VuZGluZyBhIHBvc3QgcmVxdWVzdCB0byBhZGQgc2VydmVyCisgICAgICAgIHVzaW5nIHNzaCB0 dW5uZWwgd2l0aCBwYXNzd29yZAorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQor ICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3du KQorCisgICAgICAgIHVybCA9ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqL3swfS8iLmZvcm1hdCh1dGls cy5TRVJWRVJfR1JPVVApCisKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3Rz WydzZXJ2ZXInXQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3Rf Y2xpZW50J10KKyAgICAgICAgc2VsZi5zZXJ2ZXJbJ3VzZV9zc2hfdHVubmVsJ10gPSAxCisgICAg ICAgIHNlbGYuc2VydmVyWyd0dW5uZWxfaG9zdCddID0gJzEyNy4wLjAuMScKKyAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ3R1bm5lbF9wb3J0J10gPSAyMgorICAgICAgICBzZWxmLnNlcnZlclsndHVubmVs X3VzZXJuYW1lJ10gPSAndXNlcicKKyAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50 aWNhdGlvbiddID0gMAorCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCgKKyAg ICAgICAgICAgIHVybCwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnNlcnZlciks CisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCisgICAg ICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmVxdWFsKDIwMCkKKworICAgICAgICBy ZXNwb25zZV9kYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkK KyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCisK KyAgICBkZWYgdGVzdF9zZXJ2ZXJfdXNpbmdfdHVubmVsX3dpdGhfaWRfZmlsZShzZWxmLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dF9vZl90ZXN0 cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgYSBwb3N0IHJlcXVlc3QgdG8g YWRkIHNlcnZlcgorICAgICAgICB1c2luZyBzc2ggdHVubmVsIHdpdGggYW4gaWRlbnRpdHkgZmls ZQorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQorICAgICAgICAiIiIKKworICAg ICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIHVybCA9 ICIvYnJvd3Nlci9zZXJ2ZXIvb2JqL3swfS8iLmZvcm1hdCh1dGlscy5TRVJWRVJfR1JPVVApCisK KyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAg ICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3VzZV9zc2hfdHVubmVsJ10gPSAxCiAgICAgICAgIHNlbGYuc2VydmVyWyd0 dW5uZWxfaG9zdCddID0gJzEyNy4wLjAuMScKICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9w b3J0J10gPSAyMgogICAgICAgICBzZWxmLnNlcnZlclsndHVubmVsX3VzZXJuYW1lJ10gPSAndXNl cicKLSAgICAgICAgaWYgc2VsZi53aXRoX3Bhc3N3b3JkOgotICAgICAgICAgICAgc2VsZi5zZXJ2 ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddID0gMAotICAgICAgICBlbHNlOgotICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3R1bm5lbF9hdXRoZW50aWNhdGlvbiddID0gMQotICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3R1bm5lbF9pZGVudGl0eV9maWxlJ10gPSAncGtleV9yc2EnCisgICAgICAg IHNlbGYuc2VydmVyWyd0dW5uZWxfYXV0aGVudGljYXRpb24nXSA9IDEKKyAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3R1bm5lbF9pZGVudGl0eV9maWxlJ10gPSAncGtleV9yc2EnCiAKICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAogICAgICAgICAgICAgdXJsLAogICAgICAgICAgICAg ZGF0YT1qc29uLmR1bXBzKHNlbGYuc2VydmVyKSwKICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJwogICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91 bGQuZXF1YWwoMjAwKQorCiAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3Bv bnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQogICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHJlc3Bv bnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAiIiIKICAg ICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2 ZXJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZXN0cy90ZXN0X2NoZWNrX3JlY292ZXJ5LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19yZWNvdmVyeS5weQppbmRleCBi MzFmY2MxOS4uNjA5M2Y0OTMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfY2hlY2tfcmVjb3ZlcnkucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVja19yZWNv dmVyeS5weQpAQCAtMSw0NyArMSw1MCBAQAogaW1wb3J0IG9zCiAKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKLWZyb20gcmVncmVzc2lvbi5weXRob25f dGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwotCi0KLWNsYXNzIFRlc3RDaGVja1JlY292ZXJ5 KEJhc2VUZXN0R2VuZXJhdG9yKToKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCJUZXN0 IGZvciBjaGVjayByZWNvdmVyeSIsIGRpY3QoKSkKLSAgICBdCi0KLSAgICBkZWYgcnVuVGVzdChz ZWxmKToKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKIAotICAgICAg ICBjdXJzb3IgPSB0ZXN0X3V0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYidd LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWyd1c2VybmFtZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2VydmVyWydkYl9wYXNzd29yZCddLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl clsnc3NsbW9kZSddKS5jdXJzb3IoKQotCi0gICAgICAgIGlmIGN1cnNvciBpcyBub3QgTm9uZSBh bmQgY3Vyc29yLmNvbm5lY3Rpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZXJ2ZXJfdmVy c2lvbiA9IGN1cnNvci5jb25uZWN0aW9uLnNlcnZlcl92ZXJzaW9uCi0gICAgICAgICAgICBpZiBz ZXJ2ZXJfdmVyc2lvbiA+PSAxMDAwMDA6Ci0gICAgICAgICAgICAgICAgdmVyc2lvbiA9ICcxMF9w bHVzJwotICAgICAgICAgICAgZWxpZiBzZXJ2ZXJfdmVyc2lvbiA+PSA5MDAwMDoKLSAgICAgICAg ICAgICAgICB2ZXJzaW9uID0gJzkuMF9wbHVzJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICAgICB2ZXJzaW9uID0gJ2RlZmF1bHQnCi0KLSAgICAgICAgICAgIHRlbXBsYXRlX2ZpbGUg PSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9f KSwgIi4uL3RlbXBsYXRlcy9jb25uZWN0L3NxbCIsIHZlcnNpb24sCi0gICAgICAgICAgICAgICAg ImNoZWNrX3JlY292ZXJ5LnNxbCIKLSAgICAgICAgICAgICkKLQotICAgICAgICAgICAgY3Vyc29y LmV4ZWN1dGUob3Blbih0ZW1wbGF0ZV9maWxlLCAncicpLnJlYWQoKSkKLSAgICAgICAgICAgIGZl dGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCi0KLSAgICAgICAgICAgIGZpcnN0X3JvdyA9 IHt9Ci0gICAgICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShjdXJz b3IuZGVzY3JpcHRpb24pOgotICAgICAgICAgICAgICAgIGZpcnN0X3Jvd1tkZXNjcmlwdGlvbi5u YW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVz dF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogCi0gICAgICAgICAgICBpbl9yZWNvdmVyeSA9IGZp cnN0X3Jvd1snaW5yZWNvdmVyeSddCi0gICAgICAgICAgICB3YWxfcGF1c2VkID0gZmlyc3Rfcm93 Wydpc3JlcGxheXBhdXNlZCddCiAKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRmFsc2Us IGluX3JlY292ZXJ5KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChGYWxzZSwgd2FsX3Bh dXNlZCkKK2NsYXNzIFRlc3RDaGVja1JlY292ZXJ5OgorICAgIGRlZiB0ZXN0X2NoZWNrX3JlY292 ZXJ5KHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBs b2FkaW5nIHRoZSBjaGVja19yZWNvdmVyeS5zcWwKKyAgICAgICAgaXQgbG9hZHMgZmFsc2UgZm9y IGlucmVjb3ZlcnkgYW5kIHdhbF9wYXVzZWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VydmVy ID0gY29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKworICAgICAgICBjdXJzb3IgPSB0ZXN0X3V0 aWxzLmdldF9kYl9jb25uZWN0aW9uKAorICAgICAgICAgICAgc2VydmVyWydkYiddLAorICAgICAg ICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29y ZCddLAorICAgICAgICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICBzZXJ2ZXJbJ3Bv cnQnXSwKKyAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKS5jdXJzb3IoKQorCisgICAgICAg IGlmIGN1cnNvciBpcyBOb25lIG9yIGN1cnNvci5jb25uZWN0aW9uIGlzIE5vbmU6CisgICAgICAg ICAgICBweXRlc3Quc2tpcCgnUHJvdmlkZWQgc2VydmVyIGRvZXMgbm90IGhhdmUgYSBjdXJzb3In KQorCisgICAgICAgIHNlcnZlcl92ZXJzaW9uID0gY3Vyc29yLmNvbm5lY3Rpb24uc2VydmVyX3Zl cnNpb24KKyAgICAgICAgaWYgc2VydmVyX3ZlcnNpb24gPj0gMTAwMDAwOgorICAgICAgICAgICAg dmVyc2lvbiA9ICcxMF9wbHVzJworICAgICAgICBlbGlmIHNlcnZlcl92ZXJzaW9uID49IDkwMDAw OgorICAgICAgICAgICAgdmVyc2lvbiA9ICc5LjBfcGx1cycKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIHZlcnNpb24gPSAnZGVmYXVsdCcKKworICAgICAgICB0ZW1wbGF0ZV9maWxlID0gb3Mu cGF0aC5qb2luKAorICAgICAgICAgICAgb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4uL3Rl bXBsYXRlcy9jb25uZWN0L3NxbCIsIHZlcnNpb24sCisgICAgICAgICAgICAiY2hlY2tfcmVjb3Zl cnkuc3FsIgorICAgICAgICApCisKKyAgICAgICAgY3Vyc29yLmV4ZWN1dGUob3Blbih0ZW1wbGF0 ZV9maWxlLCAncicpLnJlYWQoKSkKKyAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNo YWxsKCkKKworICAgICAgICBmaXJzdF9yb3cgPSB7fQorICAgICAgICBmb3IgaW5kZXgsIGRlc2Ny aXB0aW9uIGluIGVudW1lcmF0ZShjdXJzb3IuZGVzY3JpcHRpb24pOgorICAgICAgICAgICAgZmly c3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQorCisgICAg ICAgIGZpcnN0X3Jvd1snaW5yZWNvdmVyeSddIHwgc2hvdWxkLmJlLmZhbHNlCisgICAgICAgIGZp cnN0X3Jvd1snaXNyZXBsYXlwYXVzZWQnXSB8IHNob3VsZC5iZS5mYWxzZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9jaGVj a19zc2xfY29ubmVjdGlvbi5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3Rlc3RzL3Rlc3RfY2hlY2tfc3NsX2Nvbm5lY3Rpb24ucHkKaW5kZXggYmNjMzJhMzEu LjBmMTBjZDJjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy90ZXN0cy90ZXN0X2NoZWNrX3NzbF9jb25uZWN0aW9uLnB5CisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3RfY2hlY2tfc3NsX2Nv bm5lY3Rpb24ucHkKQEAgLTYsMzMgKzYsMzEgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworaW1w b3J0IHB5dGVzdAorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9u X3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMKIAogCi1jbGFzcyBUZXN0U1NMQ29ubmVjdGlv bihCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiVGhpcyB3aWxsIGNoZWNrIGlmIFNTTCBpcyB1 c2VkIGluIG91ciBkYXRhYmFzZSBjb25uZWN0aW9uIiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAoJ1Rlc3QgZm9yIFNTTCBjb25uZWN0aW9uJywgZGljdCgpKQotICAgIF0KK2NsYXNzIFRl c3RTU0xDb25uZWN0aW9uOgorICAgIGRlZiB0ZXN0X3NzbF9jb25uZWN0aW9uKHNlbGYsIGNvbnRl eHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgSXQgdmVyaWZpZXMgU1NMIGNvbm5l Y3Rpb24KKyAgICAgICAgIiIiCisgICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Nl cnZlciddCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxm LCAnaWdub3JlX3Rlc3QnKToKLSAgICAgICAgICAgIHJldHVybgogICAgICAgICBzdXBwb3J0ZWRf bW9kZXMgPSBbJ3JlcXVpcmUnLCAndmVyaWZ5LWNhJywgJ3ZlcmlmeS1mdWxsJ10KLSAgICAgICAg aWYgc2VsZi5zZXJ2ZXJbJ3NzbG1vZGUnXSBpbiBzdXBwb3J0ZWRfbW9kZXM6Ci0gICAgICAgICAg ICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzICgKLSAgICAgICAgICAg ICAgICBjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lCi0gICAgICAgICAgICApOgotCi0gICAgICAg ICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQotICAgICAgICAgICAgICAgIGN1 cnNvci5leGVjdXRlKCJDUkVBVEUgRVhURU5TSU9OIHNzbGluZm8iKQotICAgICAgICAgICAgICAg IGNvbm5lY3Rpb24uY29tbWl0KCkKLSAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VM RUNUIHNzbF9pc191c2VkKCkiKQotICAgICAgICAgICAgICAgIGlzX3NzbF91c2VkID0gY3Vyc29y LmZldGNob25lKClbMF0KLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhUcnVlLCBp c19zc2xfdXNlZCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisg ICAgICAgIGlmIHNlcnZlclsnc3NsbW9kZSddIG5vdCBpbiBzdXBwb3J0ZWRfbW9kZXM6CisgICAg ICAgICAgICBweXRlc3Quc2tpcCgKICAgICAgICAgICAgICAgICAnQ2Fubm90IHJ1biBTU0wgY29u bmVjdGlvbiBjaGVjayB0ZXN0ICcKLSAgICAgICAgICAgICAgICAnd2l0aCBcJ3swfVwnIHNzbG1v ZGUnLmZvcm1hdChzZWxmLnNlcnZlclsnc3NsbW9kZSddKSkKKyAgICAgICAgICAgICAgICAnd2l0 aCBcJ3swfVwnIHNzbG1vZGUnLmZvcm1hdChzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgICAg ICkKKworICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VydmVyKSBhcyAoCisgICAg ICAgICAgICBjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lCisgICAgICAgICk6CisgICAgICAgICAg ICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgICAgICBjdXJzb3IuZXhlY3V0 ZSgiQ1JFQVRFIEVYVEVOU0lPTiBzc2xpbmZvIikKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uY29t bWl0KCkKKyAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKCJTRUxFQ1Qgc3NsX2lzX3VzZWQoKSIp CisgICAgICAgICAgICBjdXJzb3IuZmV0Y2hvbmUoKVswXSB8IHNob3VsZC5lcXVhbCgnVHJ1ZScp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 ZXN0cy90ZXN0X2RlcGVuZGVuY2llc19zcWwucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVuY2llc19zcWwucHkKaW5kZXggODI0 ZmM0NDEuLjU5Y2ExNmZiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZXN0cy90ZXN0X2RlcGVuZGVuY2llc19zcWwucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbmNp ZXNfc3FsLnB5CkBAIC05LDQ2ICs5LDU4IEBACiAKIGltcG9ydCBvcwogCi1mcm9tIHJlZ3Jlc3Np b24ucHl0aG9uX3Rlc3RfdXRpbHMuc3FsX3RlbXBsYXRlX3Rlc3RfYmFzZSBpbXBvcnQgXAotICAg IFNRTFRlbXBsYXRlVGVzdEJhc2UKK2ltcG9ydCBweXRlc3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBz aG91bGQKKworZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0 aWxzCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMudGVtcGxhdGVfaGVscGVyIGlt cG9ydCBmaWxlX2FzX3RlbXBsYXRlCiAKIAotY2xhc3MgVGVzdERlcGVuZGVuY2llc1NxbChTUUxU ZW1wbGF0ZVRlc3RCYXNlKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgRmV0Y2hpbmcg ZGVmYXVsdCBVUkwgZm9yIHNjaGVtYSBub2RlLgotICAgICAgICAoJ1Rlc3QgZGVwZW5kZW5jaWVz IFNRTCBmaWxlJywgZGljdCgpKQotICAgIF0KK0BweXRlc3QubWFyay5kYXRhYmFzZQorY2xhc3Mg VGVzdERlcGVuZGVuY2llc1NxbDoKKyAgICBkZWYgdGVzdF9kZXBlbmRlbmNpZXNfc3FsKHNlbGYs IGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhbGwgcGFyYW1l dGVycyBhcmUgcHJlc2VudAorICAgICAgICBJdCBjb3JyZWN0bHkgZ2VuZXJhdGVzIHRoZSBTUUwK KyAgICAgICAgQW5kIGV4ZWN1dGVzIGFnYWluc3QgdGhlIGRhdGFiYXNlCisgICAgICAgICIiIgor ICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorICAgICAgICB3aXRo IHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VydmVyKSBhcyAoY29ubmVjdGlvbiwgZGF0YWJhc2VfbmFt ZSk6CisgICAgICAgICAgICB0ZXN0X3V0aWxzLmNyZWF0ZV90YWJsZShzZXJ2ZXIsIGRhdGFiYXNl X25hbWUsICd0ZXN0X3RhYmxlJykKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAg c3VwZXIoVGVzdERlcGVuZGVuY2llc1NxbCwgc2VsZikuX19pbml0X18oKQotICAgICAgICBzZWxm LnRhYmxlX2lkID0gLTEKKyAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24g PCA5MDEwMDoKKyAgICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWydkZWZhdWx0J10K KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmVyc2lvbnNfdG9fdGVzdCA9IFsn OS4xX3BsdXMnXQogCi0gICAgZGVmIHRlc3Rfc2V0dXAoc2VsZiwgY29ubmVjdGlvbiwgY3Vyc29y KToKLSAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVf aWQgIgotICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBwZ19jbGFzcyAiCi0gICAgICAgICAg ICAgICAgICAgICAgICJXSEVSRSBwZ19jbGFzcy5yZWxuYW1lPSd0ZXN0X3RhYmxlJyIpCi0gICAg ICAgIHNlbGYudGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorICAgICAgICAgICAgY3Vy c29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNF TEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVfaWQgIgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkZST00gcGdfY2xhc3MgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBn X2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIikKKyAgICAgICAgICAgIHRhYmxlX2lkID0gY3Vy c29yLmZldGNob25lKClbMF0KIAotICAgIGRlZiBnZW5lcmF0ZV9zcWwoc2VsZiwgdmVyc2lvbik6 Ci0gICAgICAgIHRlbXBsYXRlX2ZpbGUgPSBzZWxmLmdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24s ICJkZXBlbmRlbmNpZXMuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRl KHRlbXBsYXRlX2ZpbGUpCi0gICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcigKLSAgICAgICAg ICAgIHdoZXJlX2NsYXVzZT0iV0hFUkUgZGVwLm9iamlkPSVzOjpvaWQiICUgc2VsZi50YWJsZV9p ZCkKKyAgICAgICAgICAgIGZvciB2ZXJzaW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAg ICAgICAgICAgdGVtcGxhdGVfZmlsZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUoCisgICAgICAg ICAgICAgICAgICAgIHZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICdkZXBlbmRlbmNpZXMu c3FsJykKKyAgICAgICAgICAgICAgICB0ZW1wbGF0ZSA9IGZpbGVfYXNfdGVtcGxhdGUodGVtcGxh dGVfZmlsZSkKKyAgICAgICAgICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoCisgICAgICAg ICAgICAgICAgICAgIHdoZXJlX2NsYXVzZT0iV0hFUkUgZGVwLm9iamlkPSVzOjpvaWQiICUgdGFi bGVfaWQpCiAKLSAgICAgICAgcmV0dXJuIHNxbAorICAgICAgICAgICAgICAgIGN1cnNvciA9IGNv bm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZShzcWwpCisg ICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0ID0gY3Vyc29yLmZldGNoYWxsKCkKIAotICAgIGRl ZiBhc3NlcnRpb25zKHNlbGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAg c2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oZmV0Y2hfcmVzdWx0KSkKKyAgICAgICAgICAgICAgICBm ZXRjaF9yZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5ndGgoMSkKIAotICAgICAgICBmaXJzdF9yb3cg PSB7fQotICAgICAgICBmb3IgaW5kZXgsIGRlc2NyaXB0aW9uIGluIGVudW1lcmF0ZShkZXNjcmlw dGlvbnMpOgotICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hf cmVzdWx0WzBdW2luZGV4XQorICAgICAgICAgICAgICAgIGZpcnN0X3JvdyA9IHt9CisgICAgICAg ICAgICAgICAgZm9yIGluZGV4LCBkZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoY3Vyc29yLmRlc2Ny aXB0aW9uKToKKyAgICAgICAgICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVd ID0gZmV0Y2hfcmVzdWx0WzBdW2luZGV4XQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ24n LCBmaXJzdF9yb3dbImRlcHR5cGUiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncHVibGlj JywgZmlyc3Rfcm93WyJyZWZuYW1lIl0pCisgICAgICAgICAgICAgICAgZmlyc3Rfcm93WydkZXB0 eXBlJ10gfCBzaG91bGQuYmUuZXF1YWwudG8oJ24nKQorICAgICAgICAgICAgICAgIGZpcnN0X3Jv d1sncmVmbmFtZSddIHwgc2hvdWxkLmJlLmVxdWFsLnRvKCdwdWJsaWMnKQogCiAgICAgQHN0YXRp Y21ldGhvZAogICAgIGRlZiBnZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6Ci0g ICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgIi4u IiwgInRlbXBsYXRlcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlcGVuZHMiLCAi c3FsIiwgdmVyc2lvbiwgZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBvcy5wYXRoLmpvaW4ob3Mu cGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJy4uJywgJ3RlbXBsYXRlcycsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ2RlcGVuZHMnLCAnc3FsJywgdmVyc2lvbiwgZmlsZW5hbWUpCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90 ZXN0X2RlcGVuZGVudHNfc3FsLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbnRzX3NxbC5weQppbmRleCA5ZDYyNTlmNS4uMGNi NzhmZTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3RfZGVwZW5kZW50c19zcWwucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9kZXBlbmRlbnRzX3NxbC5weQpAQCAt OSw0NCArOSw1NiBAQAogCiBpbXBvcnQgb3MKIAotZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0 X3V0aWxzLnNxbF90ZW1wbGF0ZV90ZXN0X2Jhc2UgaW1wb3J0IFwKLSAgICBTUUxUZW1wbGF0ZVRl c3RCYXNlCitpbXBvcnQgcHl0ZXN0Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKK2Zyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscwogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlbXBsYXRlX2hlbHBlciBpbXBvcnQgZmlsZV9hc190 ZW1wbGF0ZQogCiAKLWNsYXNzIFRlc3REZXBlbmRlbnRzU3FsKFNRTFRlbXBsYXRlVGVzdEJhc2Up OgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig c2NoZW1hIG5vZGUuCi0gICAgICAgICgnVGVzdCBkZXBlbmRlbmNpZXMgU1FMIGZpbGUnLCBkaWN0 KCkpCi0gICAgXQorQHB5dGVzdC5tYXJrLmRhdGFiYXNlCitjbGFzcyBUZXN0RGVwZW5kZW50c1Nx bDoKKyAgICBkZWYgdGVzdF9jb2x1bW5fYWNsX3NxbChzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gYWxsIHBhcmFtZXRlcnMgYXJlIHByZXNlbnQKKyAg ICAgICAgSXQgY29ycmVjdGx5IGdlbmVyYXRlcyB0aGUgU1FMCisgICAgICAgIEFuZCBleGVjdXRl cyBhZ2FpbnN0IHRoZSBkYXRhYmFzZQorICAgICAgICAiIiIKKyAgICAgICAgc2VydmVyID0gY29u dGV4dF9vZl90ZXN0c1snc2VydmVyJ10KKyAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNl KHNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgorICAgICAgICAgICAgdGVz dF91dGlscy5jcmVhdGVfdGFibGUoc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAndGVzdF90YWJsZScp CiAKLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFRlc3REZXBlbmRlbnRz U3FsLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYudGFibGVfaWQgPSAtMQorICAgICAg ICAgICAgaWYgY29ubmVjdGlvbi5zZXJ2ZXJfdmVyc2lvbiA8IDkwMTAwOgorICAgICAgICAgICAg ICAgIHZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICB2ZXJzaW9uc190b190ZXN0ID0gWyc5LjFfcGx1cyddCiAKLSAgICBkZWYg dGVzdF9zZXR1cChzZWxmLCBjb25uZWN0aW9uLCBjdXJzb3IpOgotICAgICAgICBjdXJzb3IuZXhl Y3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0YWJsZV9pZCAiCi0gICAgICAgICAgICAgICAg ICAgICAgICJGUk9NIHBnX2NsYXNzICIKLSAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBn X2NsYXNzLnJlbG5hbWU9J3Rlc3RfdGFibGUnIikKLSAgICAgICAgc2VsZi50YWJsZV9pZCA9IGN1 cnNvci5mZXRjaG9uZSgpWzBdCisgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNv cigpCisgICAgICAgICAgICBjdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBnX2NsYXNzLm9pZCBBUyB0 YWJsZV9pZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiRlJPTSBwZ19jbGFzcyAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAiV0hFUkUgcGdfY2xhc3MucmVsbmFtZT0ndGVzdF90 YWJsZSciKQorICAgICAgICAgICAgdGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQogCi0g ICAgZGVmIGdlbmVyYXRlX3NxbChzZWxmLCB2ZXJzaW9uKToKLSAgICAgICAgdGVtcGxhdGVfZmls ZSA9IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUodmVyc2lvbiwgImRlcGVuZGVudHMuc3FsIikKLSAg ICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCi0gICAgICAg IHNxbCA9IHRlbXBsYXRlLnJlbmRlcigKLSAgICAgICAgICAgIHdoZXJlX2NsYXVzZT0iV0hFUkUg ZGVwLm9iamlkPSVzOjpvaWQiICUgc2VsZi50YWJsZV9pZCkKKyAgICAgICAgICAgIGZvciB2ZXJz aW9uIGluIHZlcnNpb25zX3RvX3Rlc3Q6CisgICAgICAgICAgICAgICAgdGVtcGxhdGVfZmlsZSA9 IHNlbGYuZ2V0X3RlbXBsYXRlX2ZpbGUoCisgICAgICAgICAgICAgICAgICAgIHZlcnNpb24sCisg ICAgICAgICAgICAgICAgICAgICdkZXBlbmRlbnRzLnNxbCcpCisgICAgICAgICAgICAgICAgdGVt cGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisgICAgICAgICAgICAgICAg c3FsID0gdGVtcGxhdGUucmVuZGVyKAorICAgICAgICAgICAgICAgICAgICB3aGVyZV9jbGF1c2U9 IldIRVJFIGRlcC5vYmppZD0lczo6b2lkIiAlIHRhYmxlX2lkKQogCi0gICAgICAgIHJldHVybiBz cWwKKyAgICAgICAgICAgICAgICBjdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAg ICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoc3FsKQorICAgICAgICAgICAgICAgIGZldGNoX3Jlc3Vs dCA9IGN1cnNvci5mZXRjaGFsbCgpCiAKLSAgICBkZWYgYXNzZXJ0aW9ucyhzZWxmLCBmZXRjaF9y ZXN1bHQsIGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGZl dGNoX3Jlc3VsdCkpCisgICAgICAgICAgICAgICAgZmV0Y2hfcmVzdWx0IHwgc2hvdWxkLmhhdmUu bGVuZ3RoKDEpCiAKLSAgICAgICAgZmlyc3Rfcm93ID0ge30KLSAgICAgICAgZm9yIGluZGV4LCBk ZXNjcmlwdGlvbiBpbiBlbnVtZXJhdGUoZGVzY3JpcHRpb25zKToKLSAgICAgICAgICAgIGZpcnN0 X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KKyAgICAgICAg ICAgICAgICBmaXJzdF9yb3cgPSB7fQorICAgICAgICAgICAgICAgIGZvciBpbmRleCwgZGVzY3Jp cHRpb24gaW4gZW51bWVyYXRlKGN1cnNvci5kZXNjcmlwdGlvbik6CisgICAgICAgICAgICAgICAg ICAgIGZpcnN0X3Jvd1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0K IAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCduJywgZmlyc3Rfcm93WyJkZXB0eXBlIl0pCi0g ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3Rlc3RfdGFibGUnLCBmaXJzdF9yb3dbInJlZm5hbWUi XSkKKyAgICAgICAgICAgICAgICBmaXJzdF9yb3dbJ2RlcHR5cGUnXSB8IHNob3VsZC5iZS5lcXVh bC50bygnbicpCisgICAgICAgICAgICAgICAgZmlyc3Rfcm93WydyZWZuYW1lJ10gfCBzaG91bGQu YmUuZXF1YWwudG8oJ3Rlc3RfdGFibGUnKQogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBn ZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLCBmaWxlbmFtZSk6CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3JvbGVfZGVwZW5k ZW5jaWVzX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3Rlc3RzL3Rlc3Rfcm9sZV9kZXBlbmRlbmNpZXNfc3FsLnB5CmluZGV4IDllZmU0ZDZhLi5hOWRi NzU2ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvdGVzdHMvdGVzdF9yb2xlX2RlcGVuZGVuY2llc19zcWwucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9yb2xlX2RlcGVuZGVuY2ll c19zcWwucHkKQEAgLTgsMjMgKzgsMjMgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiBpbXBvcnQgb3MK IAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscy50 ZW1wbGF0ZV9oZWxwZXIgaW1wb3J0IGZpbGVfYXNfdGVtcGxhdGUKIAogCi1jbGFzcyBUZXN0Um9s ZURlcGVuZGVuY2llc1NxbChCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwot ICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBzY2hlbWEgbm9kZS4KLSAgICAgICAg KCdUZXN0IFJvbGUgRGVwZW5kZW5jaWVzIFNRTCBmaWxlJywgZGljdCgpKQotICAgIF0KK2NsYXNz IFRlc3RSb2xlRGVwZW5kZW5jaWVzU3FsOgorICAgIGRlZiB0ZXN0X3JvbGVfZGVwZW5kZW5jaWVz KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAg SXQgdmVyaWZpZXMgdGhlIHJvbGUgZGVwZW5kZW5jaWVzIHNxbCBmaWxlCisgICAgICAgICIiIgor ICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgZGVmIF9f aW5pdF9fKHNlbGYpOgotICAgICAgICBzdXBlcihUZXN0Um9sZURlcGVuZGVuY2llc1NxbCwgc2Vs ZikuX19pbml0X18oKQotICAgICAgICBzZWxmLnRhYmxlX2lkID0gLTEKKyAgICAgICAgc2VsZi5z ZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFzIChjb25u ZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKKyAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNl KHNlbGYuc2VydmVyKSBcCisgICAgICAgICAgICAgICAgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNl X25hbWUpOgogICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQogICAgICAg ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGN1cnNvci5leGVjdXRlKApAQCAtMzQsNTMgKzM0 LDQ4IEBAIGNsYXNzIFRlc3RSb2xlRGVwZW5kZW5jaWVzU3FsKEJhc2VUZXN0R2VuZXJhdG9yKToK ICAgICAgICAgICAgICAgICBwcmludChleGNlcHRpb24pCiAgICAgICAgICAgICBjb25uZWN0aW9u LmNvbW1pdCgpCiAKLSAgICAgICAgc2VsZi5zZXJ2ZXJfd2l0aF9tb2RpZmllZF91c2VyID0gc2Vs Zi5zZXJ2ZXIuY29weSgpCi0gICAgICAgIHNlbGYuc2VydmVyX3dpdGhfbW9kaWZpZWRfdXNlclsn dXNlcm5hbWUnXSA9ICJ0ZXN0cGdhZG1pbiIKKyAgICAgICAgc2VydmVyX3dpdGhfbW9kaWZpZWRf dXNlciA9IHNlbGYuc2VydmVyLmNvcHkoKQorICAgICAgICBzZXJ2ZXJfd2l0aF9tb2RpZmllZF91 c2VyWyd1c2VybmFtZSddID0gInRlc3RwZ2FkbWluIgogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImlnbm9yZV90ZXN0Iik6Ci0gICAgICAgICAgICBy ZXR1cm4KLQotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uoc2VsZi5zZXJ2ZXIpIGFz IChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKLSAgICAgICAgICAgIHRlc3RfdXRpbHMuY3Jl YXRlX3RhYmxlKHNlbGYuc2VydmVyX3dpdGhfbW9kaWZpZWRfdXNlciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlX25hbWUsICJ0ZXN0X25ld19yb2xlX3RhYmxl IikKKyAgICAgICAgd2l0aCB0ZXN0X3V0aWxzLkRhdGFiYXNlKHNlbGYuc2VydmVyKSBcCisgICAg ICAgICAgICAgICAgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgorICAgICAgICAgICAg dGVzdF91dGlscy5jcmVhdGVfdGFibGUoCisgICAgICAgICAgICAgICAgc2VydmVyX3dpdGhfbW9k aWZpZWRfdXNlciwKKyAgICAgICAgICAgICAgICBkYXRhYmFzZV9uYW1lLAorICAgICAgICAgICAg ICAgICJ0ZXN0X25ld19yb2xlX3RhYmxlIgorICAgICAgICAgICAgKQogICAgICAgICAgICAgY3Vy c29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQogICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUoIlNF TEVDVCBwZ19jbGFzcy5vaWQgQVMgdGFibGVfaWQgIgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkZST00gcGdfY2xhc3MgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIldIRVJFIHBn X2NsYXNzLnJlbG5hbWU9J3Rlc3RfbmV3X3JvbGVfdGFibGUnIikKLSAgICAgICAgICAgIHNlbGYu dGFibGVfaWQgPSBjdXJzb3IuZmV0Y2hvbmUoKVswXQorICAgICAgICAgICAgdGFibGVfaWQgPSBj dXJzb3IuZmV0Y2hvbmUoKVswXQorCisgICAgICAgICAgICB0ZW1wbGF0ZV9maWxlID0gb3MucGF0 aC5qb2luKAorICAgICAgICAgICAgICAgIG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisgICAg ICAgICAgICAgICAgIi4uIiwKKyAgICAgICAgICAgICAgICAidGVtcGxhdGVzIiwKKyAgICAgICAg ICAgICAgICAiZGVwZW5kcyIsCisgICAgICAgICAgICAgICAgInNxbCIsCisgICAgICAgICAgICAg ICAgJ2RlZmF1bHQnLAorICAgICAgICAgICAgICAgICdyb2xlX2RlcGVuZGVuY2llcy5zcWwnKQor ICAgICAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRlX2ZpbGUpCisg ICAgICAgICAgICBzcWwgPSB0ZW1wbGF0ZS5yZW5kZXIoCisgICAgICAgICAgICAgICAgd2hlcmVf Y2xhdXNlPSJXSEVSRSBkZXAub2JqaWQ9JXM6Om9pZCIgJSB0YWJsZV9pZCkKIAotICAgICAgICAg ICAgc3FsID0gc2VsZi5nZW5lcmF0ZV9zcWwoJ2RlZmF1bHQnKQogICAgICAgICAgICAgY3Vyc29y LmV4ZWN1dGUoc3FsKQogCiAgICAgICAgICAgICBmZXRjaF9yZXN1bHQgPSBjdXJzb3IuZmV0Y2hh bGwoKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRpb25zKGZldGNoX3Jlc3VsdCwgY3Vyc29yLmRl c2NyaXB0aW9uKQorCisgICAgICAgICAgICBmZXRjaF9yZXN1bHQgfCBzaG91bGQuaGF2ZS5sZW5n dGgub2YoMSkKKworICAgICAgICAgICAgZmlyc3Rfcm93ID0ge30KKyAgICAgICAgICAgIGZvciBp bmRleCwgZGVzY3JpcHRpb24gaW4gZW51bWVyYXRlKGN1cnNvci5kZXNjcmlwdGlvbik6CisgICAg ICAgICAgICAgICAgZmlyc3Rfcm93W2Rlc2NyaXB0aW9uLm5hbWVdID0gZmV0Y2hfcmVzdWx0WzBd W2luZGV4XQorCisgICAgICAgICAgICBmaXJzdF9yb3dbJ2RlcHR5cGUnXSB8IHNob3VsZC5lcXVh bCgnbycpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIHdpdGggdGVzdF91dGls cy5EYXRhYmFzZShzZWxmLnNlcnZlcikgYXMgKGNvbm5lY3Rpb24sIGRhdGFiYXNlX25hbWUpOgog ICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQogICAgICAgICAgICAgY3Vy c29yLmV4ZWN1dGUoIkRST1AgUk9MRSB0ZXN0cGdhZG1pbiIpCiAgICAgICAgICAgICBjb25uZWN0 aW9uLmNvbW1pdCgpCi0KLSAgICBkZWYgZ2VuZXJhdGVfc3FsKHNlbGYsIHZlcnNpb24pOgotICAg ICAgICB0ZW1wbGF0ZV9maWxlID0gc2VsZi5nZXRfdGVtcGxhdGVfZmlsZSh2ZXJzaW9uLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicm9sZV9kZXBlbmRl bmNpZXMuc3FsIikKLSAgICAgICAgdGVtcGxhdGUgPSBmaWxlX2FzX3RlbXBsYXRlKHRlbXBsYXRl X2ZpbGUpCi0gICAgICAgIHNxbCA9IHRlbXBsYXRlLnJlbmRlcigKLSAgICAgICAgICAgIHdoZXJl X2NsYXVzZT0iV0hFUkUgZGVwLm9iamlkPSVzOjpvaWQiICUgc2VsZi50YWJsZV9pZCkKLQotICAg ICAgICByZXR1cm4gc3FsCi0KLSAgICBkZWYgYXNzZXJ0aW9ucyhzZWxmLCBmZXRjaF9yZXN1bHQs IGRlc2NyaXB0aW9ucyk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGZldGNoX3Jl c3VsdCkpCi0KLSAgICAgICAgZmlyc3Rfcm93ID0ge30KLSAgICAgICAgZm9yIGluZGV4LCBkZXNj cmlwdGlvbiBpbiBlbnVtZXJhdGUoZGVzY3JpcHRpb25zKToKLSAgICAgICAgICAgIGZpcnN0X3Jv d1tkZXNjcmlwdGlvbi5uYW1lXSA9IGZldGNoX3Jlc3VsdFswXVtpbmRleF0KLQotICAgICAgICBz ZWxmLmFzc2VydEVxdWFsKCdvJywgZmlyc3Rfcm93WyJkZXB0eXBlIl0pCi0KLSAgICBAc3RhdGlj bWV0aG9kCi0gICAgZGVmIGdldF90ZW1wbGF0ZV9maWxlKHZlcnNpb24sIGZpbGVuYW1lKToKLSAg ICAgICAgcmV0dXJuIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4i LCAidGVtcGxhdGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwZW5kcyIsICJz cWwiLCB2ZXJzaW9uLCBmaWxlbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5w eQppbmRleCA1YWQwNDY5NC4uMTVmZTcyYjkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2FkZC5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZl cl9hZGQucHkKQEAgLTksMzIgKzksMzQgQEAKIAogaW1wb3J0IGpzb24KIAotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSBncmFwcGEgaW1wb3J0 IHNob3VsZAorCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFNlcnZlcnNBZGRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgdGhlIHNlcnZlcnMg dW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuICIiIgorY2xhc3MgVGVzdFNlcnZlcnNBZGQ6Cisg ICAgZGVmIHRlc3Rfc2VydmVyX2FkZChzZWxmLCByZXF1ZXN0LCBjb250ZXh0X29mX3Rlc3RzKToK KyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gc2VuZGluZyBwb3N0IHJlcXVlc3QgdG8gc2VydmVy IHVybAorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQorICAgICAgICAiIiIKKwor ICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0gICAgc2NlbmFy aW9zID0gWwotICAgICAgICAjIEZldGNoIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIG9iamVj dAotICAgICAgICAoJ0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywgZGljdCh1cmw9Jy9icm93c2Vy L3NlcnZlci9vYmovJykpCi0gICAgXQorICAgICAgICB1cmwgPSAiL2Jyb3dzZXIvc2VydmVyL29i ai97MH0vIi5mb3JtYXQodXRpbHMuU0VSVkVSX0dST1VQKQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBwYXNzCisgICAgICAgIHNlbGYudGVzdGVyID0gY29udGV4dF9vZl90ZXN0c1sn dGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXIn XQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdp bGwgYWRkIHRoZSBzZXJ2ZXIgdW5kZXIgZGVmYXVsdCBzZXJ2ZXIgZ3JvdXAuIiIiCi0gICAgICAg IHVybCA9ICJ7MH17MX0vIi5mb3JtYXQoc2VsZi51cmwsIHV0aWxzLlNFUlZFUl9HUk9VUCkKLSAg ICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHVybCwgZGF0YT1qc29uLmR1bXBzKHNl bGYuc2VydmVyKSwKKyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KHVybCwgZGF0 YT1qc29uLmR1bXBzKHNlcnZlciksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwg c2hvdWxkLmVxdWFsKDIwMCkKKwogICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2Fkcyhy ZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBy ZXNwb25zZV9kYXRhWydub2RlJ11bJ19pZCddCiAgICAgICAgIHNlcnZlcl9kaWN0ID0geyJzZXJ2 ZXJfaWQiOiBpbnQoc2VsZi5zZXJ2ZXJfaWQpfQogICAgICAgICB1dGlscy53cml0ZV9ub2RlX2lu Zm8oInNpZCIsIHNlcnZlcl9kaWN0KQogCiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZSB0aGUgc2VydmVyIGZyb20gU1FMaXRlICIiIgogICAg ICAgICB1dGlscy5kZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZl cl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQppbmRleCA2NGQw NjljZC4uN2VjODExM2EgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9kZWxldGUu cHkKQEAgLTYsMzQgKzYsMzUgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQg QmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBv cnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFNlcnZlckRlbGV0ZVRlc3RDYXNlKEJh c2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUgbGFz dCBzZXJ2ZXIgcHJlc2VudCB1bmRlciB0cmVlIG5vZGUuIiIiCitjbGFzcyBUZXN0U2VydmVyRGVs ZXRlOgorICAgIGRlZiB0ZXN0X3NlcnZlcl9kZWxldGUoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgZGVsZXRlIHJlcXVl c3QgdG8gc2VydmVyIHVybAorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQorICAg ICAgICAiIiIKIAotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgIyBGZXRjaGluZyB0aGUgZGVm YXVsdCB1cmwgZm9yIHNlcnZlciBub2RlCi0gICAgICAgICgnRGVmYXVsdCBTZXJ2ZXIgTm9kZSB1 cmwnLCBkaWN0KHVybD0nL2Jyb3dzZXIvc2VydmVyL29iai8nKSkKLSAgICBdCisgICAgICAgIHJl cXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6 Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBzZXJ2ZXIgdG8gdGVzdCB0aGUgREVM RVRFIEFQSSIiIgotICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIo c2VsZi5zZXJ2ZXIpCi0gICAgICAgIHNlcnZlcl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNl cnZlcl9pZH0KLSAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGlj dCkKKyAgICAgICAgdXJsID0gIi9icm93c2VyL3NlcnZlci9vYmovezB9LyIuZm9ybWF0KHV0aWxz LlNFUlZFUl9HUk9VUCkKKworICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2 ZXInXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIoc2VydmVy KQorICAgICAgICBzZWxmLnRlc3RlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10K IAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0 ZXMgdGhlIGFkZGVkIHNlcnZlciIiIgotICAgICAgICB1cmwgPSBzZWxmLnVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsgIi8iCiAgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9pZDoKICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gc2VydmVyIHRvIGRlbGV0ZSEhISIpCi0gICAg ICAgICMgQ2FsbCBBUEkgdG8gZGVsZXRlIHRoZSBzZXJ2ZXJzCisKKyAgICAgICAgc2VydmVyX2Rp Y3QgPSB7InNlcnZlcl9pZCI6IHNlbGYuc2VydmVyX2lkfQorICAgICAgICB1dGlscy53cml0ZV9u b2RlX2luZm8oInNpZCIsIHNlcnZlcl9kaWN0KQorCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50 ZXN0ZXIuZGVsZXRlKHVybCArIHN0cihzZWxmLnNlcnZlcl9pZCkpCi0gICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlLnN0 YXR1c19jb2RlIHwgc2hvdWxkLmVxdWFsKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToK LSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSAi IiIKICAgICAgICAgdXRpbHMuZGVsZXRlX3NlcnZlcl93aXRoX2FwaShzZWxmLnRlc3Rlciwgc2Vs Zi5zZXJ2ZXJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkKaW5kZXggNDg4 N2UzM2MuLmM0NjQyNTgxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy90ZXN0cy90ZXN0X3NlcnZlcl9nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfZ2V0LnB5CkBA IC03LDM4ICs3LDM2IEBACiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogCi1mcm9tIHBnYWRtaW4udXRp bHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0 IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiAKIAot Y2xhc3MgU2VydmVyc0dldFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIKLSAg ICBUaGlzIGNsYXNzIHdpbGwgZmV0Y2ggYWRkZWQgc2VydmVycyB1bmRlciBkZWZhdWx0IHNlcnZl ciBncm91cAotICAgIGJ5IHJlc3BvbnNlIGNvZGUuCi0gICAgIiIiCitjbGFzcyBUZXN0U2VydmVy c0dldDoKKyAgICBkZWYgdGVzdF9zZXJ2ZXJfZ2V0KHNlbGYsIHJlcXVlc3QsIGNvbnRleHRfb2Zf dGVzdHMpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBzZW5kaW5nIGdldCByZXF1ZXN0IHRv IHNlcnZlciB1cmwKKyAgICAgICAgSXQgcmV0dXJucyAyMDAgc3RhdHVzIGNvZGUKKyAgICAgICAg IiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAg ICAgICB1cmwgPSAnL2Jyb3dzZXIvc2VydmVyL29iai8nCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0g ICAgICAgICMgRmV0Y2ggdGhlIGRlZmF1bHQgdXJsIGZvciBzZXJ2ZXIgbm9kZQotICAgICAgICAo J0RlZmF1bHQgU2VydmVyIE5vZGUgdXJsJywgZGljdCh1cmw9Jy9icm93c2VyL3NlcnZlci9vYmov JykpCi0gICAgXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIo Y29udGV4dF9vZl90ZXN0c1snc2VydmVyJ10pCisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlcl9p ZDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byB0ZXN0 IEdFVCBBUEkiKQogCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIGFkZCB0aGUgc2VydmVyIHRvIHRlc3QgdGhlIEdFVCBBUEkiIiIKLSAgICAgICAgc2VsZi5z ZXJ2ZXJfaWQgPSB1dGlscy5jcmVhdGVfc2VydmVyKHNlbGYuc2VydmVyKQogICAgICAgICBzZXJ2 ZXJfZGljdCA9IHsic2VydmVyX2lkIjogc2VsZi5zZXJ2ZXJfaWR9CiAgICAgICAgIHV0aWxzLndy aXRlX25vZGVfaW5mbygic2lkIiwgc2VydmVyX2RpY3QpCisgICAgICAgIHNlbGYudGVzdGVyID0g Y29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQogCi0gICAgZGVmIHJ1blRlc3Qoc2VsZik6 Ci0gICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIGFkZGVkIHNlcnZlcnMg dG8gb2JqZWN0IGJyb3dzZXIuICIiIgotICAgICAgICBzZXJ2ZXJfaWQgPSBwYXJlbnRfbm9kZV9k aWN0WyJzZXJ2ZXIiXVstMV1bInNlcnZlcl9pZCJdCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfaWQ6 Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlNlcnZlciBub3QgZm91bmQgdG8gdGVzdCBH RVQgQVBJIikKLSAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHN0cihzZXJ2ZXJfaWQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIu Z2V0KAorICAgICAgICAgICAgdXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwor ICAgICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRp cmVjdHM9VHJ1ZSkKKworICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5l cXVhbC50bygyMDApCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6Ci0gICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gZGVsZXRlIHRoZSBzZXJ2ZXIgZnJvbSBTUUxpdGUgIiIiCiAgICAgICAgIHV0aWxz LmRlbGV0ZV9zZXJ2ZXJfd2l0aF9hcGkoc2VsZi50ZXN0ZXIsIHNlbGYuc2VydmVyX2lkKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVzdHMv dGVzdF9zZXJ2ZXJfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVzdHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CmluZGV4IDMwM2QxNGUxLi5lM2ZlMmM4NSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVz dHMvdGVzdF9zZXJ2ZXJfcHV0LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3Rlc3RzL3Rlc3Rfc2VydmVyX3B1dC5weQpAQCAtOSwzNSArOSw0MyBAQAog CiBpbXBvcnQganNvbgogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCitmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCisKIGZyb20gcmVncmVzc2lvbi5w eXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogCiAKLWNsYXNzIFNl cnZlclVwZGF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICAiIiIgVGhpcyBjbGFz cyB3aWxsIHVwZGF0ZSBzZXJ2ZXIncyBjb21tZW50IGZpZWxkLiAiIiIKK2NsYXNzIFRlc3RTZXJ2 ZXJzUHV0OgorICAgIGRlZiB0ZXN0X3NlcnZlcl9wdXQoc2VsZiwgcmVxdWVzdCwgY29udGV4dF9v Zl90ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHNlbmRpbmcgcHV0IHJlcXVlc3Qg dG8gc2VydmVyIHVybAorICAgICAgICBJdCByZXR1cm5zIDIwMCBzdGF0dXMgY29kZQorICAgICAg ICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQogCi0g ICAgc2NlbmFyaW9zID0gWwotICAgICAgICAjIEZldGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Ig c2VydmVyIG5vZGUKLSAgICAgICAgKCdEZWZhdWx0IFNlcnZlciBOb2RlIHVybCcsIGRpY3QodXJs PScvYnJvd3Nlci9zZXJ2ZXIvb2JqLycpKQotICAgIF0KKyAgICAgICAgdXJsID0gJy9icm93c2Vy L3NlcnZlci9vYmovJworICAgICAgICBzZXJ2ZXIgPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXIn XQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHV0aWxzLmNyZWF0ZV9zZXJ2ZXIoc2VydmVyKQor ICAgICAgICBpZiBub3Qgc2VsZi5zZXJ2ZXJfaWQ6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIlNlcnZlciBub3QgZm91bmQgdG8gdGVzdCBHRVQgQVBJIikKIAotICAgIGRlZiBzZXRVcChz ZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBhZGQgdGhlIHNlcnZlciB0byB0ZXN0IHRo ZSBQVVQgQVBJIiIiCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gdXRpbHMuY3JlYXRlX3NlcnZl cihzZWxmLnNlcnZlcikKKyAgICAgICAgc2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0 ZXN0X2NsaWVudCddCiAgICAgICAgIHNlcnZlcl9kaWN0ID0geyJzZXJ2ZXJfaWQiOiBzZWxmLnNl cnZlcl9pZH0KICAgICAgICAgdXRpbHMud3JpdGVfbm9kZV9pbmZvKCJzaWQiLCBzZXJ2ZXJfZGlj dCkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHVw ZGF0ZSB0aGUgc2VydmVyIGRldGFpbHMiIiIKLSAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyX2lk OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBzZXJ2ZXIgdG8gdXBkYXRlLiIpCi0g ICAgICAgIGRhdGEgPSB7ImNvbW1lbnQiOiBzZWxmLnNlcnZlclsnY29tbWVudCddLCAiaWQiOiBz ZWxmLnNlcnZlcl9pZH0KLSAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAot ICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0g ICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpLCBkYXRhPWpzb24uZHVtcHMoZGF0YSksCi0g ICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICBkYXRhID0gewor ICAgICAgICAgICAgImNvbW1lbnQiOiBzZXJ2ZXJbJ2NvbW1lbnQnXSwKKyAgICAgICAgICAgICJp ZCI6IHNlbGYuc2VydmVyX2lkCisgICAgICAgIH0KKworICAgICAgICByZXNwb25zZSA9IHNlbGYu dGVzdGVyLnB1dCgKKyAgICAgICAgICAgIHVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCksCisgICAgICAgICAgICBkYXRh PWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicK KyAgICAgICAgKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVx dWFsLnRvKDIwMCkKIAogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiBkZWxldGUgdGhlIHNlcnZlciBmcm9tIFNRTGl0ZSIiIgogICAgICAgICB1dGlscy5k ZWxldGVfc2VydmVyX3dpdGhfYXBpKHNlbGYudGVzdGVyLCBzZWxmLnNlcnZlcl9pZCkKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weQpp bmRleCAyMWIwMmNhZC4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy90ZXN0cy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvdGVzdHMvX19pbml0X18ucHkKQEAgLTYsMTAgKzYsMyBAQAogIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCi0KLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKLQotCi1jbGFzcyBTR0dlbmVyYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weQpp bmRleCBkZWY3NWE3Yi4uYTQ5Yjg3YjUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy90ZXN0cy90ZXN0X3NnX2dldC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvdGVzdHMvdGVzdF9zZ19nZXQucHkKQEAgLTksMjYgKzksMjUgQEAK IAogaW1wb3J0IGpzb24KIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgotZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAgaW1wb3J0IGNvbmZpZ19kYXRh Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKK2Zyb20gcmVncmVzc2lvbi50ZXN0X3NldHVw IGltcG9ydCBjb25maWdfZGF0YQogCi1jbGFzcyBTZ05vZGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6Ci0gICAgIiIiCi0gICAgIFRoaXMgY2xhc3Mgd2lsbCBjaGVjayBhdmFpbGFibGUgc2Vy dmVyIGdyb3VwcyBpbiBwZ0FkbWluLgotICAgICIiIgogCi0gICAgc2NlbmFyaW9zID0gWwotICAg ICAgICAjIEZldGNoaW5nIHRoZSBkZWZhdWx0IHVybCBmb3Igc2VydmVyIGdyb3VwIG5vZGUKLSAg ICAgICAgKCdDaGVjayBTZXJ2ZXIgR3JvdXAgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXAvb2JqLycpKQotICAgIF0KK2NsYXNzIFRlc3RTZXJ2ZXJHcm91cE5vZGU6CisgICAg ZGVmIHRlc3Rfc2VydmVyX2dyb3VwX25vZGUoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6CisgICAg ICAgICIiIgorICAgICAgICBXaGVuIGEgZ2V0IHJlcXVlc3QgaXMgbWFkZSB0byB0aGUgc2VydmVy IGdyb3VwIGVuZHBvaW50CisgICAgICAgIEl0IHJldHVybnMgc3RhdHVzIDIwMCBhbmQgdGhlIHNl cnZlciBncm91cAorICAgICAgICAiIiIKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgY2hlY2sgYXZhaWxhYmxlIHNlcnZlciBncm91cHMuIiIi CisgICAgICAgIHVybCA9ICcvYnJvd3Nlci9zZXJ2ZXJfZ3JvdXAvb2JqLycKKyAgICAgICAgaHR0 cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCiAKICAgICAgICAgc2Vy dmVyX2dyb3VwX2lkID0gY29uZmlnX2RhdGFbJ3NlcnZlcl9ncm91cCddCi0gICAgICAgIHJlc3Bv bnNlID0gc2VsZi50ZXN0ZXIuZ2V0KHNlbGYudXJsICsgc3RyKHNlcnZlcl9ncm91cF9pZCksCisg ICAgICAgIHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KHVybCArIHN0cihzZXJ2ZXJfZ3JvdXBf aWQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXNwb25zZS5zdGF0dXNfY29kZSwg MjAwKQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmVxdWFsKDIwMCkK ICAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUo J3V0ZjgnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlX2RhdGFbJ2lkJ10sIHNl cnZlcl9ncm91cF9pZCkKKyAgICAgICAgcmVzcG9uc2VfZGF0YVsnaWQnXSB8IHNob3VsZC5lcXVh bChzZXJ2ZXJfZ3JvdXBfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3Rz L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy9fX2luaXRfXy5weQppbmRl eCA3Y2U1MzEzMS4uNTkwMDI2YWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy9fX2luaXRfXy5w eQpAQCAtNiwxMCArNiwzIEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhl IFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotCi0KLWNsYXNzIEJyb3dzZXJH ZW5lcmF0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3Rz L3Rlc3RfY2hhbmdlX3Bhc3N3b3JkLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0 X2NoYW5nZV9wYXNzd29yZC5weQppbmRleCA1YjMzN2RiNy4uYzM0NDM2NDcgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9jaGFuZ2VfcGFzc3dvcmQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2NoYW5nZV9wYXNzd29yZC5weQpAQCAtMTAs NyArMTAsNyBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNl X3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24udGVz dF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKIGZyb20gLiBpbXBvcnQgdXRpbHMKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9ncmF2YXRhcl9pbWFnZV9kaXNwbGF5 LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2dyYXZhdGFyX2ltYWdlX2Rpc3Bs YXkucHkKaW5kZXggYTQ1MjZjOWQuLjg3YjU2NTRjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3Rlc3RzL3Rlc3RfZ3JhdmF0YXJfaW1hZ2VfZGlzcGxheS5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfZ3JhdmF0YXJfaW1hZ2VfZGlzcGxheS5weQpAQCAtOCw3 ICs4LDcgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCBjb25maWcKLWZyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGls cy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCiBmcm9t IHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEgYXMgdGNvbmZpZwogCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4ucHkKaW5kZXggZDgzMGRmYmMuLjJjMjIy MWMxIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9naW4ucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZXN0cy90ZXN0X2xvZ2luLnB5CkBAIC05LDcgKzks NyBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwogZnJvbSByZWdyZXNzaW9uLnRlc3Rfc2V0dXAg aW1wb3J0IGNvbmZpZ19kYXRhCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVz dHMvdGVzdF9sb2dvdXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfbG9nb3V0 LnB5CmluZGV4IDUxYzIwNmY0Li4wZjQ0ZTEzOSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci90ZXN0cy90ZXN0X2xvZ291dC5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3Rz L3Rlc3RfbG9nb3V0LnB5CkBAIC04LDcgKzgsNyBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIAogCi1m cm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBn YWRtaW4udXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK IGZyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1 dGlscwogCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNl dF9wYXNzd29yZC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNz d29yZC5weQppbmRleCA3YmFkNDAwYS4uYTAzZTg4ZDIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvdGVzdHMvdGVzdF9yZXNldF9wYXNzd29yZC5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3Rlc3RzL3Rlc3RfcmVzZXRfcGFzc3dvcmQucHkKQEAgLTksNyArOSw3IEBACiAKIGlt cG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgogZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzLnRlc3RfdXRp bHMgaW1wb3J0IGxvZ2luX3Rlc3Rlcl9hY2NvdW50CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rl c3RfdXRpbHMudGVzdF91dGlscyBpbXBvcnQgbG9nb3V0X3Rlc3Rlcl9hY2NvdW50CiBmcm9tIHJl Z3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvdGVzdHMvdGVzdF92ZXJzaW9uX2luX3JhbmdlLnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci90ZXN0cy90ZXN0X3ZlcnNpb25faW5fcmFuZ2UucHkKaW5kZXggNGQ5Y2E3NmQu LjY5OTQ3MzMwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfdmVy c2lvbl9pbl9yYW5nZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Rlc3RzL3Rlc3RfdmVy c2lvbl9pbl9yYW5nZS5weQpAQCAtNiw3OCArNiw2NyBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj Citmcm9tIGdyYXBwYSBpbXBvcnQgc2hvdWxkCiAKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBp bXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcGdhZG1pbi5icm93c2VyLnV0aWxzIGltcG9y dCBpc192ZXJzaW9uX2luX3JhbmdlCiAKIAotY2xhc3MgVmVyc2lvbkluUmFuZ2VUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgVGhpcyBjbGFzcyB2YWxpZGF0ZXMgdGhl IHZlcnNpb24gaW4gcmFuZ2UgZnVuY3Rpb25hbGl0eQotICAgIGJ5IGRlZmluaW5nIGRpZmZlcmVu dCB2ZXJzaW9uIHNjZW5hcmlvczsgd2hlcmUgZGljdCBvZgotICAgIHBhcmFtZXRlcnMgZGVzY3Jp YmVzIHRoZSBzY2VuYXJpbyBhcHBlbmRlZCBieSB0ZXN0IG5hbWUuCi0gICAgIiIiCitjbGFzcyBU ZXN0VmVyc2lvbkluUmFuZ2U6CisgICAgZGVmIHRlc3RfdmVyc2lvbl9pbl9yYW5nZV9wZzhfMjMo c2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFZhbGlkYXRpbmcgcGd2ZXJzaW9uIDgu MjMKKyAgICAgICAgQW5kIHRoZSBtaW5fdmVyc2lvbiBpcyA5MTAwMAorICAgICAgICBJdCBzaG91 bGQgcmV0dXJuIGZhbHNlCisgICAgICAgICIiIgogCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAoCi0gICAgICAgICAgICAnVGVzdENhc2UgZm9yIFZhbGlkYXRpbmcgcGd2ZXJzaW9uIDguMjMg YW5kIG1pbl92ZXJzaW9uIGlzIDkxMDAwLCAnCi0gICAgICAgICAgICAnaXQgc2hvdWxkIG5vdCBz aG93JywgZGljdCgKLSAgICAgICAgICAgICAgICBzdmVyc2lvbj04MjMwMCwKLSAgICAgICAgICAg ICAgICBtaW5fdmVyc2lvbj05MDEwMCwKLSAgICAgICAgICAgICAgICBtYXhfdmVyc2lvbj0xMDAw MDAwMDAwLAotICAgICAgICAgICAgICAgIHNjZW5hcmlvPTIKLSAgICAgICAgICAgICkpLAotICAg ICAgICAoCi0gICAgICAgICAgICAnVGVzdENhc2UgZm9yIFZhbGlkYXRpbmcgcGd2ZXJzaW9uIDku MiwgJwotICAgICAgICAgICAgJ2l0IHNob3VsZCBzaG93IGJ5IGRlZmF1bHQnLCBkaWN0KAotICAg ICAgICAgICAgICAgIHN2ZXJzaW9uPTkwMjAwLAotICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9u PTAsCi0gICAgICAgICAgICAgICAgbWF4X3ZlcnNpb249MTAwMDAwMDAwMCwKLSAgICAgICAgICAg ICAgICBzY2VuYXJpbz0xCi0gICAgICAgICAgICApKSwKLSAgICAgICAgKAotICAgICAgICAgICAg J1Rlc3RDYXNlIGZvciBWYWxpZGF0aW5nIHBndmVyc2lvbiA5LjIgYW5kIG1pbi9tYXggYXJlIE5v bmUsICcKLSAgICAgICAgICAgICdpdCBzaG91bGQgc2hvdyBieSBkZWZhdWx0JywgZGljdCgKLSAg ICAgICAgICAgICAgICBzdmVyc2lvbj05MDIwMCwKLSAgICAgICAgICAgICAgICBtaW5fdmVyc2lv bj1Ob25lLAotICAgICAgICAgICAgICAgIG1heF92ZXJzaW9uPU5vbmUsCi0gICAgICAgICAgICAg ICAgc2NlbmFyaW89MQotICAgICAgICAgICAgKSksCi0gICAgICAgICgKLSAgICAgICAgICAgICdU ZXN0Q2FzZSBmb3IgVmFsaWRhdGluZyBwZ3ZlcnNpb24gOS42IGFuZCBtYXggaXMgbG93ZXIsICcK LSAgICAgICAgICAgICdpdCBzaG91bGQgbm90IHNob3cnLCBkaWN0KAotICAgICAgICAgICAgICAg IHN2ZXJzaW9uPTkwNjAwLAotICAgICAgICAgICAgICAgIG1pbl92ZXJzaW9uPU5vbmUsCi0gICAg ICAgICAgICAgICAgbWF4X3ZlcnNpb249OTA0MDAsCi0gICAgICAgICAgICAgICAgc2NlbmFyaW89 MgotICAgICAgICAgICAgKSkKLSAgICBdCisgICAgICAgIHJlc3VsdCA9IGlzX3ZlcnNpb25faW5f cmFuZ2UoCisgICAgICAgICAgICA4MjMwMCwKKyAgICAgICAgICAgIDkwMTAwLAorICAgICAgICAg ICAgMTAwMDAwMDAwMAorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmZh bHNlCisKKyAgICBkZWYgdGVzdF92ZXJzaW9uX2luX3JhbmdlX3BnOV8yKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgV2hlbiBWYWxpZGF0aW5nIHBndmVyc2lvbiA5LjIKKyAgICAgICAgSXQg c2hvdWxkIHJldHVybiB0cnVlCisgICAgICAgICIiIgorCisgICAgICAgIHJlc3VsdCA9IGlzX3Zl cnNpb25faW5fcmFuZ2UoCisgICAgICAgICAgICA5MDIwMCwKKyAgICAgICAgICAgIDAsCisgICAg ICAgICAgICAxMDAwMDAwMDAwLAorICAgICAgICApCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBk ZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICBwYXNzCisgICAgICAgIHJlc3VsdCB8IHNob3Vs ZC5iZS50cnVlCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB3aWxsIGNoZWNrIHZlcnNpb24gaW4gcmFuZ2UgZnVuY3Rpb25hbGl0eS4iIiIKLSAgICAg ICAgaWYgc2VsZi5zY2VuYXJpbyA9PSAxOgotICAgICAgICAgICAgc2VsZi50ZXN0X3Jlc3VsdF9p c190cnVlKCkKLSAgICAgICAgaWYgc2VsZi5zY2VuYXJpbyA9PSAyOgotICAgICAgICAgICAgc2Vs Zi50ZXN0X3Jlc3VsdF9pc19mYWxzZSgpCisgICAgZGVmIHRlc3RfdmVyc2lvbl9pbl9yYW5nZV9w Zzlfbm9uZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gVmFsaWRhdGluZyBwZ3Zl cnNpb24gOS4yCisgICAgICAgIEFuZCB0aGUgbWluL21heCBhcmUgTm9uZQorICAgICAgICBJdCBz aG91bGQgcmV0dXJuIHRydWUKKyAgICAgICAgIiIiCiAKLSAgICBkZWYgdGVzdF9yZXN1bHRfaXNf dHJ1ZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAotICAgICAgICAgICAgaXNfdmVy c2lvbl9pbl9yYW5nZSgKLSAgICAgICAgICAgICAgICBzZWxmLnN2ZXJzaW9uLAotICAgICAgICAg ICAgICAgIHNlbGYubWluX3ZlcnNpb24sCi0gICAgICAgICAgICAgICAgc2VsZi5tYXhfdmVyc2lv bgotICAgICAgICAgICAgKQorICAgICAgICByZXN1bHQgPSBpc192ZXJzaW9uX2luX3JhbmdlKAor ICAgICAgICAgICAgOTAyMDAsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwK ICAgICAgICAgKQogCi0gICAgZGVmIHRlc3RfcmVzdWx0X2lzX2ZhbHNlKHNlbGYpOgotICAgICAg ICBzZWxmLmFzc2VydEZhbHNlKAotICAgICAgICAgICAgaXNfdmVyc2lvbl9pbl9yYW5nZSgKLSAg ICAgICAgICAgICAgICBzZWxmLnN2ZXJzaW9uLAotICAgICAgICAgICAgICAgIHNlbGYubWluX3Zl cnNpb24sCi0gICAgICAgICAgICAgICAgc2VsZi5tYXhfdmVyc2lvbgotICAgICAgICAgICAgKQor ICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUudHJ1ZQorCisgICAgZGVmIHRlc3RfdmVyc2lvbl9p bl9yYW5nZV9wZzlfNl9sb3dlcl9tYXgoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVu IFZhbGlkYXRpbmcgcGd2ZXJzaW9uIDkuNgorICAgICAgICBBbmQgdGhlIG1heCBpcyBsb3dlcgor ICAgICAgICBJdCBzaG91bGQgcmV0dXJuIGZhbHNlCisgICAgICAgICIiIgorCisgICAgICAgIHJl c3VsdCA9IGlzX3ZlcnNpb25faW5fcmFuZ2UoCisgICAgICAgICAgICA5MDYwMCwKKyAgICAgICAg ICAgIE5vbmUsCisgICAgICAgICAgICA5MDQwMCwKICAgICAgICAgKQorCisgICAgICAgIHJlc3Vs dCB8IHNob3VsZC5iZS5mYWxzZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vY29uZnRlc3QucHkg Yi93ZWIvcGdhZG1pbi9jb25mdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMC4uNzhiZjZiZjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9jb25mdGVzdC5w eQpAQCAtMCwwICsxLDE5OSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9ydCBvcwor aW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMudXRpbHMgaW1wb3J0IFwKKyAgICBjbGll bnRfY29ubmVjdF9kYXRhYmFzZSwgY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UKK2Zyb20gcGdh ZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzCisKK0NVUlJFTlRfUEFUSCA9IG9zLnBhdGgu ZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSkKKworcm9vdCA9IG9zLnBhdGguZGly bmFtZShDVVJSRU5UX1BBVEgpCisKK2lmIHN5cy5wYXRoWzBdICE9IHJvb3Q6CisgICAgc3lzLnBh dGguaW5zZXJ0KDAsIHJvb3QpCisgICAgb3MuY2hkaXIocm9vdCkKKworaW1wb3J0IGNvbmZpZwor ZnJvbSBwZ2FkbWluIGltcG9ydCBjcmVhdGVfYXBwCitmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0 IFNDSEVNQV9WRVJTSU9OCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rfc2V0dXAKK2Zyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscworCisjIERlbGV0 ZSBTUUxpdGUgZGIgZmlsZSBpZiBleGlzdHMKK2lmIG9zLnBhdGguaXNmaWxlKGNvbmZpZy5URVNU X1NRTElURV9QQVRIKToKKyAgICBvcy5yZW1vdmUoY29uZmlnLlRFU1RfU1FMSVRFX1BBVEgpCisK K29zLmVudmlyb25bIlBHQURNSU5fVEVTVElOR19NT0RFIl0gPSAiMSIKKworIyBEaXNhYmxlIHVw Z3JhZGUgY2hlY2tzIC0gbm8gbmVlZCBkdXJpbmcgdGVzdGluZywgYW5kIGl0J2xsIGNhdXNlIGFu IGVycm9yCisjIGlmIHRoZXJlJ3Mgbm8gbmV0d29yayBjb25uZWN0aW9uIHdoZW4gaXQgcnVucy4K K2NvbmZpZy5VUEdSQURFX0NIRUNLX0VOQUJMRUQgPSBGYWxzZQorCitwZ2FkbWluX2NyZWRlbnRp YWxzID0gdGVzdF9zZXR1cC5jb25maWdfZGF0YQorCisjIFNldCBlbnZpcm9ubWVudCB2YXJpYWJs ZXMgZm9yIGVtYWlsIGFuZCBwYXNzd29yZAorb3MuZW52aXJvblsnUEdBRE1JTl9TRVRVUF9FTUFJ TCddID0gJycKK29zLmVudmlyb25bJ1BHQURNSU5fU0VUVVBfUEFTU1dPUkQnXSA9ICcnCitpZiBw Z2FkbWluX2NyZWRlbnRpYWxzOgorICAgIGlmICdwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscycg aW4gcGdhZG1pbl9jcmVkZW50aWFsczoKKyAgICAgICAgaWYgYWxsKGl0ZW0gaW4gcGdhZG1pbl9j cmVkZW50aWFsc1sncGdBZG1pbjRfbG9naW5fY3JlZGVudGlhbHMnXQorICAgICAgICAgICAgICAg Zm9yIGl0ZW0gaW4gWydsb2dpbl91c2VybmFtZScsICdsb2dpbl9wYXNzd29yZCddKToKKyAgICAg ICAgICAgIHBnYWRtaW5fY3JlZGVudGlhbHMgPSBwZ2FkbWluX2NyZWRlbnRpYWxzWworICAgICAg ICAgICAgICAgICdwZ0FkbWluNF9sb2dpbl9jcmVkZW50aWFscyddCisgICAgICAgICAgICBvcy5l bnZpcm9uWydQR0FETUlOX1NFVFVQX0VNQUlMJ10gPSBzdHIoCisgICAgICAgICAgICAgICAgcGdh ZG1pbl9jcmVkZW50aWFsc1snbG9naW5fdXNlcm5hbWUnXSkKKyAgICAgICAgICAgIG9zLmVudmly b25bJ1BHQURNSU5fU0VUVVBfUEFTU1dPUkQnXSA9IHN0cigKKyAgICAgICAgICAgICAgICBwZ2Fk bWluX2NyZWRlbnRpYWxzWydsb2dpbl9wYXNzd29yZCddKQorCisjIEV4ZWN1dGUgdGhlIHNldHVw IGZpbGUKK2V4ZWMob3Blbihvcy5wYXRoLmpvaW4ocm9vdCwgInNldHVwLnB5IikpLnJlYWQoKSkK KworY29uZmlnLlNFVFRJTkdTX1NDSEVNQV9WRVJTSU9OID0gU0NIRU1BX1ZFUlNJT04KKworIyBD cmVhdGUgdGhlIGFwcAorYXBwID0gY3JlYXRlX2FwcCgpCithcHAuY29uZmlnWydXVEZfQ1NSRl9F TkFCTEVEJ10gPSBGYWxzZQorYXBwLlBHQURNSU5fS0VZID0gJycKK2FwcC5jb25maWcudXBkYXRl KHsnU0VTU0lPTl9DT09LSUVfRE9NQUlOJzogTm9uZX0pCit0ZXN0X2NsaWVudCA9IGFwcC50ZXN0 X2NsaWVudCgpCitkcml2ZXIgPSBOb25lCithcHBfc3RhcnRlciA9IE5vbmUKK2hhbmRsZV9jbGVh bnVwID0gTm9uZQorCitzZXJ2ZXJfaW5mbyA9IHRlc3RfdXRpbHMuZ2V0X2NvbmZpZ19kYXRhKCkK KworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9InNlc3Npb24iLCBhdXRvdXNlPVRydWUpCitkZWYg ZGF0YWJhc2Vfc2VydmVyKCk6CisgICAgc2VydmVyX2luZm9ybWF0aW9uID0gdGVzdF91dGlscy5j cmVhdGVfcGFyZW50X3NlcnZlcl9ub2RlKHNlcnZlcl9pbmZvWzBdKQorCisgICAgeWllbGQgc2Vy dmVyX2luZm9ybWF0aW9uCisKKyAgICB0ZXN0X3V0aWxzLmRlbGV0ZV90ZXN0X3NlcnZlcih0ZXN0 X2NsaWVudCkKKworCitAcHl0ZXN0LmZpeHR1cmUoc2NvcGU9J3Nlc3Npb24nKQorZGVmIGNvbnRl eHRfb2ZfdGVzdHMoZGF0YWJhc2Vfc2VydmVyKToKKyAgICB5aWVsZCB7CisgICAgICAgICdzZXJ2 ZXJfaW5mb3JtYXRpb24nOiBkYXRhYmFzZV9zZXJ2ZXIsCisgICAgICAgICd0ZXN0X2NsaWVudCc6 IHRlc3RfY2xpZW50LAorICAgICAgICAnc2VydmVyJzogc2VydmVyX2luZm9bMF0KKyAgICB9CisK KworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKK2RlZiBnYXRoZXJfY3VycmVudF9k YXRhYmFzZV9pbmZvcm1hdGlvbihjb250ZXh0X29mX3Rlc3RzKToKKyAgICBzZXJ2ZXJfaWQgPSBj b250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXVsnc2VydmVyX2lkJ10KKyAgICBk Yl9wYXNzd29yZCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddWydkYl9wYXNzd29yZCddCisg ICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgc2Vy dmVyX2NvbiA9IHNlcnZlcl91dGlscy5jbGllbnRfY29ubmVjdF9zZXJ2ZXIoaHR0cF9jbGllbnQs IHNlcnZlcl9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBkYl9wYXNzd29yZCkKKyAgICBzZXJ2ZXJfZGF0YSA9IE5vbmUKKyAgICBpZiAnZGF0 YScgaW4gc2VydmVyX2NvbjoKKyAgICAgICAgc2VydmVyX2RhdGEgPSBzZXJ2ZXJfY29uWydkYXRh J10KKyAgICB5aWVsZCBzZXJ2ZXJfZGF0YQorCisKK0BweXRlc3QuZml4dHVyZQorZGVmIGdldF9z ZXJ2ZXJfdHlwZShnYXRoZXJfY3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvbik6CisgICAgc2Vy dmVyX3R5cGUgPSBOb25lCisgICAgaWYgZ2F0aGVyX2N1cnJlbnRfZGF0YWJhc2VfaW5mb3JtYXRp b24gYW5kIFwKKyAgICAgICAndHlwZScgaW4gZ2F0aGVyX2N1cnJlbnRfZGF0YWJhc2VfaW5mb3Jt YXRpb246CisgICAgICAgIHNlcnZlcl90eXBlID0gZ2F0aGVyX2N1cnJlbnRfZGF0YWJhc2VfaW5m b3JtYXRpb25bJ3R5cGUnXQorICAgIHlpZWxkIHNlcnZlcl90eXBlCisKKworQHB5dGVzdC5maXh0 dXJlCitkZWYgZ2V0X3NlcnZlcl92ZXJzaW9uKGdhdGhlcl9jdXJyZW50X2RhdGFiYXNlX2luZm9y bWF0aW9uKToKKyAgICBzZXJ2ZXJfdmVyc2lvbiA9IE5vbmUKKyAgICBpZiBnYXRoZXJfY3VycmVu dF9kYXRhYmFzZV9pbmZvcm1hdGlvbiBhbmQgXAorICAgICAgICd2ZXJzaW9uJyBpbiBnYXRoZXJf Y3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvbjoKKyAgICAgICAgc2VydmVyX3ZlcnNpb24gPSBn YXRoZXJfY3VycmVudF9kYXRhYmFzZV9pbmZvcm1hdGlvblsndmVyc2lvbiddCisgICAgeWllbGQg c2VydmVyX3ZlcnNpb24KKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiByZXF1aXJlX2RhdGFiYXNl X2Nvbm5lY3Rpb24oY29udGV4dF9vZl90ZXN0cyk6CisgICAgc2VydmVyX2RhdGEgPSBjb250ZXh0 X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgIHNlcnZlcl9pZCA9IHNlcnZlcl9k YXRhWydzZXJ2ZXJfaWQnXQorICAgIGRiX2lkID0gc2VydmVyX2RhdGFbJ2RiX2lkJ10KKyAgICBo dHRwX2NsaWVudCA9IGNvbnRleHRfb2ZfdGVzdHNbJ3Rlc3RfY2xpZW50J10KKworICAgIGRiX2Nv biA9IGNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAgICBodHRwX2NsaWVudCwKKyAgICAg ICAgdGVzdF91dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgIHNlcnZlcl9pZCwKKyAgICAgICAg ZGJfaWQsCisgICAgICAgIHNlcnZlcl9kYXRhWydkYl9wYXNzd29yZCddKQorICAgIGlmIG5vdCBk Yl9jb25bImluZm8iXSA9PSAiRGF0YWJhc2UgY29ubmVjdGVkLiI6CisgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UuIikKKworICAgIHlpZWxkIGRi X2NvbgorCisgICAgY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoaHR0cF9jbGllbnQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRiX2lkKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0nZnVuY3Rpb24n LCBhdXRvdXNlPVRydWUpCitkZWYgY2hlY2tfaWZfdGVzdF9zaG91bGRfYmVfc2tpcHBlZChyZXF1 ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3NlcnZlcl90eXBl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X3NlcnZlcl92ZXJzaW9u KToKKyAgICBfX3NraXBfaWZfZGF0YWJhc2UoZ2V0X3NlcnZlcl90eXBlLCByZXF1ZXN0KQorICAg IF9fc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKGdldF9zZXJ2ZXJfdmVyc2lvbiwgcmVxdWVzdCkK KworCitkZWYgX19za2lwX2lmX2RhdGFiYXNlKGdldF9zZXJ2ZXJfdHlwZSwgcmVxdWVzdCk6Cisg ICAgaWYgcmVxdWVzdC5ub2RlLmdldF9tYXJrZXIoJ3NraXBfZGF0YWJhc2VzJyk6CisgICAgICAg IGlmIGdldF9zZXJ2ZXJfdHlwZSBpbiBcCisgICAgICAgICAgIHJlcXVlc3Qubm9kZS5nZXRfbWFy a2VyKCdza2lwX2RhdGFiYXNlcycpLmFyZ3NbMF06CisgICAgICAgICAgICBweXRlc3Quc2tpcCgn Y2Fubm90IHJ1biBpbjogJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgIGdldF9zZXJ2ZXJf dHlwZSkKKworCitkZWYgX19za2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24oZ2V0X3NlcnZlcl92ZXJz aW9uLCByZXF1ZXN0KToKKyAgICBpZiByZXF1ZXN0Lm5vZGUuZ2V0X21hcmtlcignc2tpcF9pZl9w b3N0Z3Jlc192ZXJzaW9uJyk6CisgICAgICAgIHZlcnNpb25zID0gXAorICAgICAgICAgICAgcmVx dWVzdC5ub2RlLmdldF9tYXJrZXIoJ3NraXBfaWZfcG9zdGdyZXNfdmVyc2lvbicpLmFyZ3NbMF0K KyAgICAgICAgc2tpcF9tZXNzYWdlID0gXAorICAgICAgICAgICAgcmVxdWVzdC5ub2RlLmdldF9t YXJrZXIoJ3NraXBfaWZfcG9zdGdyZXNfdmVyc2lvbicpLmFyZ3NbMV0KKyAgICAgICAgaWYgdmVy c2lvbnNbJ2JlbG93X3ZlcnNpb24nXSA+IGdldF9zZXJ2ZXJfdmVyc2lvbjoKKyAgICAgICAgICAg IHB5dGVzdC5za2lwKHNraXBfbWVzc2FnZSkKKworCitkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3Rz KG1ldGFmdW5jKToKKyAgICBpZiBub3QgaGFzYXR0cihtZXRhZnVuYy5jbHMsICdzY2VuYXJpb3Mn KToKKyAgICAgICAgcmV0dXJuCisKKyAgICBsaXN0X29mX3NjZW5hcmlvX25hbWVzID0gW10KKyAg ICBzY2VuYXJpb19wYXJhbWV0ZXJzID0gW10KKyAgICBmb3Igc2NlbmFyaW8gaW4gbWV0YWZ1bmMu Y2xzLnNjZW5hcmlvczoKKyAgICAgICAgbGlzdF9vZl9zY2VuYXJpb19uYW1lcy5hcHBlbmQoc2Nl bmFyaW9bMF0pCisgICAgICAgIHNjZW5hcmlvX3BhcmFtZXRlcnMuYXBwZW5kKCgnJywgc2NlbmFy aW9bMV0pKQorICAgIG1ldGFmdW5jLnBhcmFtZXRyaXplKCdhcmdzLGt3YXJncycsCisgICAgICAg ICAgICAgICAgICAgICAgICAgc2NlbmFyaW9fcGFyYW1ldGVycywKKyAgICAgICAgICAgICAgICAg ICAgICAgICBpZHM9bGlzdF9vZl9zY2VuYXJpb19uYW1lcywKKyAgICAgICAgICAgICAgICAgICAg ICAgICBzY29wZT0iY2xhc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluZGlyZWN0PUZh bHNlKQorCisKK2RlZiBweXRlc3RfaXRlbWNvbGxlY3RlZChpdGVtKToKKyAgICBwYXIgPSBpdGVt LnBhcmVudC5vYmoKKyAgICBub2RlID0gaXRlbS5vYmoKKyAgICBwcmVmID0gcGFyLl9fZG9jX18u c3RyaXAoKSBpZiBwYXIuX19kb2NfXyBlbHNlIHBhci5fX2NsYXNzX18uX19uYW1lX18KKyAgICBz dWYgPSBub2RlLl9fZG9jX18uc3RyaXAoKSBpZiBub2RlLl9fZG9jX18gZWxzZSBub2RlLl9fbmFt ZV9fCisgICAgaWYgaXRlbS5fZ2VuaWQgaXMgbm90IE5vbmU6CisgICAgICAgIHN1ZiA9IGl0ZW0u X2dlbmlkCisKKyAgICBpZiBwcmVmIG9yIHN1ZjoKKyAgICAgICAgaXRlbS5fbm9kZWlkID0gJyAn LmpvaW4oKHByZWYsIHN1ZikpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9kYXNoYm9hcmQvdGVz dHMvdGVzdF9kYXNoYm9hcmRfdGVtcGxhdGVzLnB5IGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3Rl c3RzL3Rlc3RfZGFzaGJvYXJkX3RlbXBsYXRlcy5weQppbmRleCBkZDI0YmRkYy4uYTM0MDY0NzIg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Rhc2hib2FyZC90ZXN0cy90ZXN0X2Rhc2hib2FyZF90 ZW1wbGF0ZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vZGFzaGJvYXJkL3Rlc3RzL3Rlc3RfZGFzaGJv YXJkX3RlbXBsYXRlcy5weQpAQCAtMTAsOSArMTAsMTAgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN5 cwogZnJvbSBmbGFzayBpbXBvcnQgRmxhc2ssIHJlbmRlcl90ZW1wbGF0ZQorZnJvbSBncmFwcGEg aW1wb3J0IHNob3VsZAogZnJvbSBqaW5qYTIgaW1wb3J0IEZpbGVTeXN0ZW1Mb2FkZXIKIGZyb20g cGdhZG1pbiBpbXBvcnQgVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIKLWZyb20gcGdhZG1pbi51dGls cy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNl X3Rlc3RfZ2VuZXJhdG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiBpZiBzeXMudmVyc2lv bl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBpbXBvcnQgTWFnaWNNb2NrCkBAIC02MSwx OTggKzYyLDE4MiBAQCBEQVRBQkFTRV9JRCA9IDEyMwogXyA9IE1hZ2ljTW9jayhzaWRlX2VmZmVj dD1sYW1iZGEgeDogeCkKIAogCi1jbGFzcyBUZXN0RGFzaGJvYXJkVGVtcGxhdGVzKEJhc2VUZXN0 R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAgICMgU2VydmVyIGRhc2hib2Fy ZAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUg aHRtbCBwYWdlIHdpdGggZ3JhcGhzIGFuZCAnCi0gICAgICAgICAgICAnc2VydmVyIGFjdGl2aXR5 IHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3Igc2VydmVyIGRhc2hib2FyZCcsCi0gICAgICAgICAg ICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9zZXJ2ZXJf ZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgK LSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAgICAg ZGlkPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAgICAgICAg ICAgICAgICB2ZXJzaW9uPVZFUlNJT04sCi0gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzPURJ U1BMQVlfREFTSEJPQVJEWydib3RoJ10sCi0gICAgICAgICAgICAgICAgICAgIF89XwotICAgICAg ICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAg ICAgICAgICAgICAgICAgICAgJ1NlcnZlciBzZXNzaW9ucycsCi0gICAgICAgICAgICAgICAgICAg ICdTZXJ2ZXIgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBu b3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVtdCi0gICAgICAgICAgICApCi0gICAgICAgICksCi0g ICAgICAgICgKLSAgICAgICAgICAgICdEYXNoYm9hcmQsIHdoZW4gcmV0dXJuaW5nIHRoZSBodG1s IHBhZ2Ugd2l0aCBvbmx5IGdyYXBocyAnCi0gICAgICAgICAgICAncmVsYXRlZCBodG1sIGVsZW1l bnRzIGZvciBzZXJ2ZXIgZGFzaGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAg ICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcsCi0g ICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAg ICBzaWQ9U0VSVkVSX0lELAotICAgICAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKLSAgICAgICAg ICAgICAgICAgICAgcmF0ZXM9UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVS U0lPTiwKLSAgICAgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ29u bHlfZ3JhcGhzJ10sCi0gICAgICAgICAgICAgICAgICAgIF89XwotICAgICAgICAgICAgICAgICks Ci0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAg ICAgICAgJ1NlcnZlciBzZXNzaW9ucycKLSAgICAgICAgICAgICAgICBdLAotICAgICAgICAgICAg ICAgIG5vdF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnU2Vy dmVyIGFjdGl2aXR5JwotICAgICAgICAgICAgICAgIF0KK2NsYXNzIFRlc3REYXNoYm9hcmRUZW1w bGF0ZXM6CisgICAgZGVmIHRlc3REYXNoYm9hcmRUZW1wbEdyYXBoc0FuZFNlcnZlcihzZWxmKToK KyAgICAgICAgIiIiCisgICAgICAgIERhc2hib2FyZCBzaG91bGQgYmUgYWJsZSB0byByZW5kZXIg aHRtbCBwYWdlIHdpdGggZ3JhcGhzCisgICAgICAgIGFuZCBzZXJ2ZXIgYWN0aXZpdHkgcmVsYXRl ZCBlbGVtZW50cworICAgICAgICAiIiIKKworICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25l ZFRlbXBsYXRlTG9hZGVyKEZha2VBcHAoKSkKKworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBf Y29udGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAg ICAgICAgICAgICdkYXNoYm9hcmQvc2VydmVyX2Rhc2hib2FyZC5odG1sJywKKyAgICAgICAgICAg ICAgICBzaWQ9U0VSVkVSX0lELAorICAgICAgICAgICAgICAgIGRpZD1Ob25lLAorICAgICAgICAg ICAgICAgIHJhdGVzPVJBVEVTLAorICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKKyAg ICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnYm90aCddLAorICAgICAg ICAgICAgICAgIF89XwogICAgICAgICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAg ICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUgaHRtbCBwYWdlIHdpdGggb25s eSBzZXJ2ZXIgJwotICAgICAgICAgICAgJ2FjdGl2aXR5IHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBm b3Igc2VydmVyIGRhc2hib2FyZCcsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAg IHRlbXBsYXRlX3BhdGg9J2Rhc2hib2FyZC9zZXJ2ZXJfZGFzaGJvYXJkLmh0bWwnLAotICAgICAg ICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc2lk PVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAgICAgZGlkPU5vbmUsCi0gICAgICAgICAgICAg ICAgICAgIHJhdGVzPVJBVEVTLAotICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJT04s Ci0gICAgICAgICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydvbmx5X3Nl cnZlcl9hY3Rpdml0eSddLAotICAgICAgICAgICAgICAgICAgICBfPV8KLSAgICAgICAgICAgICAg ICApLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT1bCi0gICAgICAgICAg ICAgICAgICAgICdTZXJ2ZXIgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAg ICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAg J1NlcnZlciBzZXNzaW9ucycKLSAgICAgICAgICAgICAgICBdCisKKyAgICAgICAgICAgIHJlc3Vs dCB8IHNob3VsZC5jb250YWluKCJTZXJ2ZXIgc2Vzc2lvbnMiKQorICAgICAgICAgICAgcmVzdWx0 IHwgc2hvdWxkLmNvbnRhaW4oIlNlcnZlciBhY3Rpdml0eSIpCisKKyAgICBkZWYgdGVzdERhc2hi b2FyZFRlbXBsR3JhcGhzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgRGFzaGJvYXJkIHNo b3VsZCBiZSBhYmxlIHRvIHJlbmRlciBodG1sIHBhZ2UKKyAgICAgICAgd2l0aCBvbmx5IGdyYXBo IHJlbGF0ZWQgZWxlbWVudHMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBW ZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihGYWtlQXBwKCkpCisKKyAgICAgICAgd2l0aCBGYWtlQXBw KCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICAgICAnZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcsCisgICAg ICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKKyAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKKyAg ICAgICAgICAgICAgICByYXRlcz1SQVRFUywKKyAgICAgICAgICAgICAgICB2ZXJzaW9uPVZFUlNJ T04sCisgICAgICAgICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ29ubHlfZ3Jh cGhzJ10sCisgICAgICAgICAgICAgICAgXz1fCiAgICAgICAgICAgICApCi0gICAgICAgICksCi0g ICAgICAgICgKLSAgICAgICAgICAgICdEYXNoYm9hcmQsIHdoZW4gcmV0dXJuaW5nIHRoZSBodG1s IHBhZ2Ugd2l0aCBuZWl0aGVyICcKLSAgICAgICAgICAgICdncmFwaHMgbm9yIHNlcnZlciBhY3Rp dml0eSByZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9yIHNlcnZlciAnCi0gICAgICAgICAgICAnZGFz aGJvYXJkJywKLSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0 aD0nZGFzaGJvYXJkL3NlcnZlcl9kYXNoYm9hcmQuaHRtbCcsCi0gICAgICAgICAgICAgICAgaW5w dXRfcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAot ICAgICAgICAgICAgICAgICAgICBkaWQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9 UkFURVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAg ICAgICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ25vbmUnXSwKLSAgICAgICAgICAg ICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBleHBlY3Rl ZF9yZXR1cm5fdmFsdWU9W10sCi0gICAgICAgICAgICAgICAgbm90X2V4cGVjdGVkX3JldHVybl92 YWx1ZT1bCi0gICAgICAgICAgICAgICAgICAgICdTZXJ2ZXIgYWN0aXZpdHknLAotICAgICAgICAg ICAgICAgICAgICAnU2VydmVyIHNlc3Npb25zJwotICAgICAgICAgICAgICAgIF0KKworICAgICAg ICAgICAgcmVzdWx0IHwgc2hvdWxkLmNvbnRhaW4oIlNlcnZlciBzZXNzaW9ucyIpCisgICAgICAg ICAgICByZXN1bHQgfCBzaG91bGQuX25vdC5jb250YWluKCJTZXJ2ZXIgYWN0aXZpdHkiKQorCisg ICAgZGVmIHRlc3REYXNoYm9hcmRUZW1wbFNlcnZlcihzZWxmKToKKyAgICAgICAgIiIiCisgICAg ICAgIERhc2hib2FyZCBzaG91bGQgYmUgYWJsZSB0byByZW5kZXIgaHRtbCBwYWdlCisgICAgICAg IHdpdGggb25seSBzZXJ2ZXIgYWN0aXZpdHkgcmVsYXRlZCBlbGVtZW50cworICAgICAgICAiIiIK KworICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEZha2VBcHAo KSkKKworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAg cmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICdkYXNoYm9hcmQvc2Vy dmVyX2Rhc2hib2FyZC5odG1sJywKKyAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAorICAg ICAgICAgICAgICAgIGRpZD1Ob25lLAorICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAorICAg ICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKKyAgICAgICAgICAgICAgICBzZXR0aW5ncz1E SVNQTEFZX0RBU0hCT0FSRFsnb25seV9zZXJ2ZXJfYWN0aXZpdHknXSwKKyAgICAgICAgICAgICAg ICBfPV8KICAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgIyBEYXRhYmFzZSBkYXNo Ym9hcmQKLSAgICAgICAgKAotICAgICAgICAgICAgJ0Rhc2hib2FyZCwgd2hlbiByZXR1cm5pbmcg dGhlIGh0bWwgcGFnZSB3aXRoIGdyYXBocyBhbmQgJwotICAgICAgICAgICAgJ2RhdGFiYXNlIGFj dGl2aXR5IHJlbGF0ZWQgaHRtbCBlbGVtZW50cyBmb3IgZGF0YWJhc2UgZGFzaGJvYXJkJywKLSAg ICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nZGFzaGJvYXJk L2RhdGFiYXNlX2Rhc2hib2FyZC5odG1sJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0 ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCi0gICAgICAgICAg ICAgICAgICAgIGRpZD1EQVRBQkFTRV9JRCwKLSAgICAgICAgICAgICAgICAgICAgcmF0ZXM9UkFU RVMsCi0gICAgICAgICAgICAgICAgICAgIHZlcnNpb249VkVSU0lPTiwKLSAgICAgICAgICAgICAg ICAgICAgc2V0dGluZ3M9RElTUExBWV9EQVNIQk9BUkRbJ2JvdGgnXSwKLSAgICAgICAgICAgICAg ICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9y ZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2Ugc2Vzc2lvbnMnLAot ICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2UgYWN0aXZpdHknCi0gICAgICAgICAgICAgICAg XSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPVtdCisKKyAgICAg ICAgICAgIHJlc3VsdCB8IHNob3VsZC5jb250YWluKCJTZXJ2ZXIgYWN0aXZpdHkiKQorICAgICAg ICAgICAgcmVzdWx0IHwgc2hvdWxkLl9ub3QuY29udGFpbigiU2VydmVyIHNlc3Npb25zIikKKwor ICAgIGRlZiB0ZXN0RGFzaGJvYXJkVGVtcGxOb25lKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgRGFzaGJvYXJkIHNob3VsZCBiZSBhYmxlIHRvIHJlbmRlciBodG1sIHBhZ2UKKyAgICAgICAg d2l0aCBvbmx5IHNlcnZlciBhY3Rpdml0eSByZWxhdGVkIGVsZW1lbnRzCisgICAgICAgICIiIgor CisgICAgICAgIHNlbGYubG9hZGVyID0gVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoRmFrZUFwcCgp KQorCisgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICBy ZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ2Rhc2hib2FyZC9zZXJ2 ZXJfZGFzaGJvYXJkLmh0bWwnLAorICAgICAgICAgICAgICAgIHNpZD1TRVJWRVJfSUQsCisgICAg ICAgICAgICAgICAgZGlkPU5vbmUsCisgICAgICAgICAgICAgICAgcmF0ZXM9UkFURVMsCisgICAg ICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAorICAgICAgICAgICAgICAgIHNldHRpbmdzPURJ U1BMQVlfREFTSEJPQVJEWydub25lJ10sCisgICAgICAgICAgICAgICAgXz1fCiAgICAgICAgICAg ICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdEYXNoYm9hcmQsIHdoZW4g cmV0dXJuaW5nIHRoZSBodG1sIHBhZ2Ugd2l0aCBvbmx5ICcKLSAgICAgICAgICAgICdncmFwaHMg cmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBkYXRhYmFzZSBkYXNoYm9hcmQnLAotICAgICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdkYXNoYm9hcmQvZGF0YWJh c2VfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGlj dCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAg ICAgZGlkPURBVEFCQVNFX0lELAotICAgICAgICAgICAgICAgICAgICByYXRlcz1SQVRFUywKLSAg ICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAgICAgICAgICAgICAgICBz ZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9ncmFwaHMnXSwKLSAgICAgICAgICAgICAg ICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9y ZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2Ugc2Vzc2lvbnMnCi0g ICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0dXJuX3Zh bHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIGFjdGl2aXR5JwotICAgICAgICAg ICAgICAgIF0KKworICAgICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLl9ub3QuY29udGFpbigiU2Vy dmVyIGFjdGl2aXR5IikKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5fbm90LmNvbnRhaW4o IlNlcnZlciBzZXNzaW9ucyIpCisKKyAgICBkZWYgdGVzdERCRGFzaGJvYXJkVGVtcGxHcmFwaHNB bmRTZXJ2ZXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBEQiBEYXNoYm9hcmQgc2hvdWxk IGJlIGFibGUgdG8gcmVuZGVyIGh0bWwgcGFnZSB3aXRoIGdyYXBocworICAgICAgICBhbmQgc2Vy dmVyIGFjdGl2aXR5IHJlbGF0ZWQgZWxlbWVudHMKKyAgICAgICAgIiIiCisKKyAgICAgICAgc2Vs Zi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihGYWtlQXBwKCkpCisKKyAgICAgICAg d2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRl cl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAnZGFzaGJvYXJkL2RhdGFiYXNlX2Rhc2hib2Fy ZC5odG1sJywKKyAgICAgICAgICAgICAgICBzaWQ9U0VSVkVSX0lELAorICAgICAgICAgICAgICAg IGRpZD1Ob25lLAorICAgICAgICAgICAgICAgIHJhdGVzPVJBVEVTLAorICAgICAgICAgICAgICAg IHZlcnNpb249VkVSU0lPTiwKKyAgICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hC T0FSRFsnYm90aCddLAorICAgICAgICAgICAgICAgIF89XwogICAgICAgICAgICAgKQotICAgICAg ICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0 aGUgaHRtbCBwYWdlIHdpdGggb25seSAnCi0gICAgICAgICAgICAnZGF0YWJhc2UgYWN0aXZpdHkg cmVsYXRlZCBodG1sIGVsZW1lbnRzIGZvciBkYXRhYmFzZSBkYXNoYm9hcmQnLAotICAgICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdkYXNoYm9hcmQvZGF0YWJh c2VfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9ZGlj dCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAgICAgICAgICAgICAgICAg ICAgZGlkPURBVEFCQVNFX0lELAotICAgICAgICAgICAgICAgICAgICByYXRlcz1SQVRFUywKLSAg ICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAgICAgICAgICAgICAgICBz ZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnb25seV9zZXJ2ZXJfYWN0aXZpdHknXSwKLSAgICAg ICAgICAgICAgICAgICAgXz1fCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBl eHBlY3RlZF9yZXR1cm5fdmFsdWU9WwotICAgICAgICAgICAgICAgICAgICAnRGF0YWJhc2UgYWN0 aXZpdHknCi0gICAgICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRf cmV0dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIHNlc3Npb25zJwot ICAgICAgICAgICAgICAgIF0KKworICAgICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmNvbnRhaW4o IkRhdGFiYXNlIHNlc3Npb25zIikKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5jb250YWlu KCJEYXRhYmFzZSBhY3Rpdml0eSIpCisKKyAgICBkZWYgdGVzdERCRGFzaGJvYXJkVGVtcGxHcmFw aHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBEQiBEYXNoYm9hcmQgc2hvdWxkIGJlIGFi bGUgdG8gcmVuZGVyIGh0bWwgcGFnZQorICAgICAgICB3aXRoIG9ubHkgZ3JhcGggcmVsYXRlZCBl bGVtZW50cworICAgICAgICAiIiIKKworICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRl bXBsYXRlTG9hZGVyKEZha2VBcHAoKSkKKworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29u dGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAg ICAgICAgICdkYXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwnLAorICAgICAgICAgICAg ICAgIHNpZD1TRVJWRVJfSUQsCisgICAgICAgICAgICAgICAgZGlkPU5vbmUsCisgICAgICAgICAg ICAgICAgcmF0ZXM9UkFURVMsCisgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAorICAg ICAgICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydvbmx5X2dyYXBocyddLAor ICAgICAgICAgICAgICAgIF89XwogICAgICAgICAgICAgKQotICAgICAgICApLAotICAgICAgICAo Ci0gICAgICAgICAgICAnRGFzaGJvYXJkLCB3aGVuIHJldHVybmluZyB0aGUgaHRtbCBwYWdlIHdp dGggbmVpdGhlciAnCi0gICAgICAgICAgICAnZ3JhcGhzIG5vciBkYXRhYmFzZSBhY3Rpdml0eSBy ZWxhdGVkIGh0bWwgZWxlbWVudHMgZm9yIGRhdGFiYXNlICcKLSAgICAgICAgICAgICdkYXNoYm9h cmQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdk YXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwnLAotICAgICAgICAgICAgICAgIGlucHV0 X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc2lkPVNFUlZFUl9JRCwKLSAg ICAgICAgICAgICAgICAgICAgZGlkPURBVEFCQVNFX0lELAotICAgICAgICAgICAgICAgICAgICBy YXRlcz1SQVRFUywKLSAgICAgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAotICAgICAg ICAgICAgICAgICAgICBzZXR0aW5ncz1ESVNQTEFZX0RBU0hCT0FSRFsnbm9uZSddLAotICAgICAg ICAgICAgICAgICAgICBfPV8KLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGV4 cGVjdGVkX3JldHVybl92YWx1ZT1bXSwKLSAgICAgICAgICAgICAgICBub3RfZXhwZWN0ZWRfcmV0 dXJuX3ZhbHVlPVsKLSAgICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIHNlc3Npb25zJywKLSAg ICAgICAgICAgICAgICAgICAgJ0RhdGFiYXNlIGFjdGl2aXR5JwotICAgICAgICAgICAgICAgIF0K KworICAgICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmNvbnRhaW4oIkRhdGFiYXNlIHNlc3Npb25z IikKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5fbm90LmNvbnRhaW4oIkRhdGFiYXNlIGFj dGl2aXR5IikKKworICAgIGRlZiB0ZXN0REJEYXNoYm9hcmRUZW1wbFNlcnZlcihzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIERCIERhc2hib2FyZCBzaG91bGQgYmUgYWJsZSB0byByZW5kZXIg aHRtbCBwYWdlCisgICAgICAgIHdpdGggb25seSBzZXJ2ZXIgYWN0aXZpdHkgcmVsYXRlZCBlbGVt ZW50cworICAgICAgICAiIiIKKworICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBs YXRlTG9hZGVyKEZha2VBcHAoKSkKKworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4 dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg ICAgICdkYXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwnLAorICAgICAgICAgICAgICAg IHNpZD1TRVJWRVJfSUQsCisgICAgICAgICAgICAgICAgZGlkPU5vbmUsCisgICAgICAgICAgICAg ICAgcmF0ZXM9UkFURVMsCisgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAorICAgICAg ICAgICAgICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydvbmx5X3NlcnZlcl9hY3Rpdml0 eSddLAorICAgICAgICAgICAgICAgIF89XwogICAgICAgICAgICAgKQotICAgICAgICApLAogCi0g ICAgXQorICAgICAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmNvbnRhaW4oIkRhdGFiYXNlIGFjdGl2 aXR5IikKKyAgICAgICAgICAgIHJlc3VsdCB8IHNob3VsZC5fbm90LmNvbnRhaW4oIkRhdGFiYXNl IHNlc3Npb25zIikKKworICAgIGRlZiB0ZXN0REJEYXNoYm9hcmRUZW1wbE5vbmUoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBEQiBEYXNoYm9hcmQgc2hvdWxkIGJlIGFibGUgdG8gcmVuZGVy IGh0bWwgcGFnZQorICAgICAgICB3aXRoIG9ubHkgc2VydmVyIGFjdGl2aXR5IHJlbGF0ZWQgZWxl bWVudHMKKyAgICAgICAgIiIiCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYu bG9hZGVyID0gVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoRmFrZUFwcCgpKQogCi0gICAgZGVmIHJ1 blRlc3Qoc2VsZik6CiAgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CiAgICAg ICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoCi0gICAgICAgICAgICAgICAgc2VsZi50 ZW1wbGF0ZV9wYXRoLCAqKnNlbGYuaW5wdXRfcGFyYW1ldGVycworICAgICAgICAgICAgICAgICdk YXNoYm9hcmQvZGF0YWJhc2VfZGFzaGJvYXJkLmh0bWwnLAorICAgICAgICAgICAgICAgIHNpZD1T RVJWRVJfSUQsCisgICAgICAgICAgICAgICAgZGlkPU5vbmUsCisgICAgICAgICAgICAgICAgcmF0 ZXM9UkFURVMsCisgICAgICAgICAgICAgICAgdmVyc2lvbj1WRVJTSU9OLAorICAgICAgICAgICAg ICAgIHNldHRpbmdzPURJU1BMQVlfREFTSEJPQVJEWydub25lJ10sCisgICAgICAgICAgICAgICAg Xz1fCiAgICAgICAgICAgICApCi0gICAgICAgICAgICAjIGNoZWNrcyBmb3IgZXhwZWN0ZWQgaHRt bCBlbGVtZW50cwotICAgICAgICAgICAgZm9yIGV4cGVjdGVkX3N0cmluZyBpbiBzZWxmLmV4cGVj dGVkX3JldHVybl92YWx1ZToKLSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEluKAotICAgICAg ICAgICAgICAgICAgICBleHBlY3RlZF9zdHJpbmcsIHJlc3VsdAotICAgICAgICAgICAgICAgICkK LQotICAgICAgICAgICAgIyBjaGVja3MgZm9yIG5vdCBleHBlY3RlZCBodG1sIGVsZW1lbnRzCi0g ICAgICAgICAgICBmb3Igbm90X2V4cGVjdGVkX3N0cmluZyBpbiBzZWxmLm5vdF9leHBlY3RlZF9y ZXR1cm5fdmFsdWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnROb3RJbigKLSAgICAgICAg ICAgICAgICAgICAgbm90X2V4cGVjdGVkX3N0cmluZywgcmVzdWx0Ci0gICAgICAgICAgICAgICAg KQorCisgICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuX25vdC5jb250YWluKCJEYXRhYmFzZSBh Y3Rpdml0eSIpCisgICAgICAgICAgICByZXN1bHQgfCBzaG91bGQuX25vdC5jb250YWluKCJEYXRh YmFzZSBzZXNzaW9ucyIpCiAKIAogY2xhc3MgRmFrZUFwcChGbGFzayk6CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHBsYWluX3BsYW5fdGVtcGxh dGVzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfZXhwbGFpbl9w bGFuX3RlbXBsYXRlcy5weQppbmRleCBjMmJiY2RkMi4uODYxYTJkZWQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2V4cGxhaW5fcGxhbl90ZW1wbGF0 ZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfZXhwbGFp bl9wbGFuX3RlbXBsYXRlcy5weQpAQCAtMTAsMTQ0ICsxMCwxMjEgQEAKIGltcG9ydCBvcwogCiBm cm9tIGZsYXNrIGltcG9ydCBGbGFzaywgcmVuZGVyX3RlbXBsYXRlCitmcm9tIGdyYXBwYSBpbXBv cnQgc2hvdWxkCiBmcm9tIGppbmphMiBpbXBvcnQgRmlsZVN5c3RlbUxvYWRlcgogCi1mcm9tIHBn YWRtaW4gaW1wb3J0IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyCi1mcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCi0KLQotY2xhc3MgVGVzdEV4cGxhaW5QbGFu VGVtcGxhdGVzKEJhc2VUZXN0R2VuZXJhdG9yKToKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgKLSAgICAgICAgICAgICdXaGVuIHJlbmRlcmluZyBQb3N0Z3JlcyA5LjAgdGVtcGxhdGUsICcK LSAgICAgICAgICAgICd3aGVuIHBhc3NpbmcgYWxsIHBhcmFtZXRlcnMsJwotICAgICAgICAgICAg J2l0IHJldHVybnMgdGhlIGV4cGxhaW4gcGxhbiB3aXRoIGFsbCBwYXJhbWV0ZXJzJywKLSAgICAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9yL3Nx bC9kZWZhdWx0L2V4cGxhaW5fcGxhbi5zcWwnLAotICAgICAgICAgICAgICAgIGlucHV0X3BhcmFt ZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgKiBGUk9NIHBsYWNl cycsCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdD0neG1sJywKLSAgICAgICAgICAgICAgICAg ICAgYW5hbHl6ZT1UcnVlLAotICAgICAgICAgICAgICAgICAgICB2ZXJib3NlPVRydWUsCi0gICAg ICAgICAgICAgICAgICAgIGNvc3RzPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBidWZmZXJz PVRydWUKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIHNxbF9zdGF0ZW1lbnQ9 J1NFTEVDVCAqIEZST00gcGxhY2VzJywKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5f dmFsdWU9J0VYUExBSU4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn KEZPUk1BVCBYTUwsQU5BTFlaRSBUcnVlLCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ1ZFUkJPU0UgVHJ1ZSxDT1NUUyBGYWxzZSwnCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdCVUZGRVJTIFRydWUpIFNFTEVDVCAqIEZST00gcGxhY2VzJwot ICAgICAgICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnV2hlbiBy ZW5kZXJpbmcgUG9zdGdyZXMgOS4wIHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiBub3Qg YWxsIHBhcmFtZXRlcnMgYXJlIHByZXNlbnQsJwotICAgICAgICAgICAgJ2l0IHJldHVybnMgdGhl IGV4cGxhaW4gcGxhbiB3aXRoIHRoZSBwcmVzZW50IHBhcmFtZXRlcnMnLAotICAgICAgICAgICAg ZGljdCgKLSAgICAgICAgICAgICAgICB0ZW1wbGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3FsL2RlZmF1 bHQvZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz1k aWN0KAotICAgICAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZST00gcGxhY2VzJywKLSAg ICAgICAgICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKLSAgICAgICAgICAgICAgICAgICAgYnVm ZmVycz1UcnVlCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBzcWxfc3RhdGVt ZW50PSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycsCi0gICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmV0 dXJuX3ZhbHVlPSdFWFBMQUlOICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJyhGT1JNQVQgSlNPTixCVUZGRVJTIFRydWUpICcKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ1NFTEVDVCAqIEZST00gcGxhY2VzJwotICAgICAgICAgICAgKQotICAg ICAgICApLAotICAgICAgICAoCi0gICAgICAgICAgICAnV2hlbiByZW5kZXJpbmcgUG9zdGdyZXMg OS4yIHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiB0aW1pbmcgaXMgcHJlc2VudCwnCi0g ICAgICAgICAgICAnaXQgcmV0dXJucyB0aGUgZXhwbGFpbiBwbGFuIHdpdGggdGltaW5nJywKLSAg ICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9y L3NxbC85LjJfcGx1cy9leHBsYWluX3BsYW4uc3FsJywKLSAgICAgICAgICAgICAgICBpbnB1dF9w YXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICogRlJPTSBw bGFjZXMnLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAotICAgICAgICAgICAg ICAgICAgICBidWZmZXJzPVRydWUsCi0gICAgICAgICAgICAgICAgICAgIHRpbWluZz1GYWxzZQot ICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgc3FsX3N0YXRlbWVudD0nU0VMRUNU ICogRlJPTSBwbGFjZXMnLAotICAgICAgICAgICAgICAgIGV4cGVjdGVkX3JldHVybl92YWx1ZT0n RVhQTEFJTiAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcoRk9STUFU IEpTT04sVElNSU5HIEZhbHNlLCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ0JVRkZFUlMgVHJ1ZSkgU0VMRUNUICogRlJPTSBwbGFjZXMnCi0gICAgICAgICAgICApCi0g ICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIHJlbmRlcmluZyBQb3N0Z3Jl cyAxMCB0ZW1wbGF0ZSwgJwotICAgICAgICAgICAgJ3doZW4gc3VtbWFyeSBpcyBwcmVzZW50LCcK LSAgICAgICAgICAgICdpdCByZXR1cm5zIHRoZSBleHBsYWluIHBsYW4gd2l0aCBzdW1tYXJ5JywK LSAgICAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgICAgdGVtcGxhdGVfcGF0aD0nc3FsZWRp dG9yL3NxbC8xMF9wbHVzL2V4cGxhaW5fcGxhbi5zcWwnLAotICAgICAgICAgICAgICAgIGlucHV0 X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgc3FsPSdTRUxFQ1QgKiBGUk9N IHBsYWNlcycsCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdD0neWFtbCcsCi0gICAgICAgICAg ICAgICAgICAgIGJ1ZmZlcnM9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgdGltaW5nPUZhbHNl LAotICAgICAgICAgICAgICAgICAgICBzdW1tYXJ5PVRydWUKLSAgICAgICAgICAgICAgICApLAot ICAgICAgICAgICAgICAgIHNxbF9zdGF0ZW1lbnQ9J1NFTEVDVCAqIEZST00gcGxhY2VzJywKLSAg ICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9J0VYUExBSU4gJwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKEZPUk1BVCBZQU1MLFRJTUlORyBGYWxzZSwn Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTVU1NQVJZIFRydWUsQlVG RkVSUyBUcnVlKSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTRUxF Q1QgKiBGUk9NIHBsYWNlcycKLSAgICAgICAgICAgICkKLSAgICAgICAgKSwKLSAgICAgICAgKAot ICAgICAgICAgICAgJ1doZW4gcmVuZGVyaW5nIEdyZWVuUGx1bSA1LjMgdGVtcGxhdGUsICcKLSAg ICAgICAgICAgICd3aGVuIGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50LCcKLSAgICAgICAgICAg ICdpdCByZXR1cm5zIHRoZSBleHBsYWluIHdpdGhvdXQgcGFyYW1ldGVycycsCi0gICAgICAgICAg ICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3NxbGVkaXRvci9zcWwvZ3Bk Yl81LjBfcGx1cy9leHBsYWluX3BsYW4uc3FsJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJh bWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICogRlJPTSBwbGFj ZXMnLAotICAgICAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAotICAgICAgICAgICAgICAg ICAgICBidWZmZXJzPVRydWUKLSAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIHNx bF9zdGF0ZW1lbnQ9J1NFTEVDVCAqIEZST00gcGxhY2VzJywKLSAgICAgICAgICAgICAgICBleHBl Y3RlZF9yZXR1cm5fdmFsdWU9J0VYUExBSU4gU0VMRUNUICogRlJPTSBwbGFjZXMnCi0gICAgICAg ICAgICApCi0gICAgICAgICksCi0gICAgICAgICgKLSAgICAgICAgICAgICdXaGVuIHJlbmRlcmlu ZyBHcmVlblBsdW0gNS4zIHRlbXBsYXRlLCAnCi0gICAgICAgICAgICAnd2hlbiBhbmFseXplIGlz IHRydWUsJwotICAgICAgICAgICAgJ2l0IHJldHVybnMgdGhlIGV4cGxhaW4gYW5hbHl6ZScsCi0g ICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3NxbGVkaXRv ci9zcWwvZ3BkYl81LjBfcGx1cy9leHBsYWluX3BsYW4uc3FsJywKLSAgICAgICAgICAgICAgICBp bnB1dF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICog RlJPTSBwbGFjZXMnLAotICAgICAgICAgICAgICAgICAgICBhbmFseXplPVRydWUKLSAgICAgICAg ICAgICAgICApLAotICAgICAgICAgICAgICAgIHNxbF9zdGF0ZW1lbnQ9J1NFTEVDVCAqIEZST00g cGxhY2VzJywKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWU9J0VYUExBSU4g QU5BTFlaRSBTRUxFQ1QgKiBGUk9NIHBsYWNlcycKLSAgICAgICAgICAgICkKLSAgICAgICAgKSwK LSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4gcmVuZGVyaW5nIEdyZWVuUGx1bSA1LjMgdGVt cGxhdGUsICcKLSAgICAgICAgICAgICd3aGVuIGFuYWx5emUgaXMgZmFsc2UsJwotICAgICAgICAg ICAgJ2l0IHJldHVybnMgdGhlIG9ubHkgZXhwbGFpbicsCi0gICAgICAgICAgICBkaWN0KAotICAg ICAgICAgICAgICAgIHRlbXBsYXRlX3BhdGg9J3NxbGVkaXRvci9zcWwvZ3BkYl81LjBfcGx1cy9l eHBsYWluX3BsYW4uc3FsJywKLSAgICAgICAgICAgICAgICBpbnB1dF9wYXJhbWV0ZXJzPWRpY3Qo Ci0gICAgICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICogRlJPTSBwbGFjZXMnLAotICAgICAg ICAgICAgICAgICAgICBhbmFseXplPUZhbHNlCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAg ICAgICAgICBzcWxfc3RhdGVtZW50PSdTRUxFQ1QgKiBGUk9NIHBsYWNlcycsCi0gICAgICAgICAg ICAgICAgZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBMQUlOIFNFTEVDVCAqIEZST00gcGxhY2Vz JwotICAgICAgICAgICAgKQotICAgICAgICApLAotICAgIF0KLQotICAgIGRlZiBzZXRVcChzZWxm KToKLSAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihGYWtlQXBw KCkpCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKKworY2xhc3MgVGVzdEV4cGxhaW5QbGFuVGVt cGxhdGVzOgorICAgIGRlZiB0ZXN0X2FsbF9wYXJhbWV0ZXJzX29uX3BnXzlfMChzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIFBvc3RncmVzIDkuMCB0ZW1wbGF0ZQor ICAgICAgICB3aGVuIHBhc3NpbmcgYWxsIHBhcmFtZXRlcnMKKyAgICAgICAgaXQgcmV0dXJucyB0 aGUgZXhwbGFpbiBwbGFuIHdpdGggYWxsIHBhcmFtZXRlcnMKKyAgICAgICAgIiIiCiAgICAgICAg IHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6Ci0gICAgICAgICAgICByZXN1bHQgPSByZW5k ZXJfdGVtcGxhdGUoc2VsZi50ZW1wbGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICoqc2VsZi5pbnB1dF9wYXJhbWV0ZXJzKQotICAgICAgICAgICAgc2VsZi5h c3NlcnRFcXVhbCgKLSAgICAgICAgICAgICAgICBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIi KSwgc2VsZi5leHBlY3RlZF9yZXR1cm5fdmFsdWUpCisgICAgICAgICAgICByZXN1bHQgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ3NxbGVkaXRvci9zcWwvZGVmYXVsdC9leHBs YWluX3BsYW4uc3FsJywKKyAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZST00gcGxhY2Vz JywKKyAgICAgICAgICAgICAgICBmb3JtYXQ9J3htbCcsCisgICAgICAgICAgICAgICAgYW5hbHl6 ZT1UcnVlLAorICAgICAgICAgICAgICAgIHZlcmJvc2U9VHJ1ZSwKKyAgICAgICAgICAgICAgICBj b3N0cz1GYWxzZSwKKyAgICAgICAgICAgICAgICBidWZmZXJzPVRydWUpCisKKyAgICAgICAgICAg IHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpIHwgc2hvdWxkLmJlLmVxdWFsKAorICAgICAg ICAgICAgICAgICdFWFBMQUlOICcKKyAgICAgICAgICAgICAgICAnKEZPUk1BVCBYTUwsQU5BTFla RSBUcnVlLCcKKyAgICAgICAgICAgICAgICAnVkVSQk9TRSBUcnVlLENPU1RTIEZhbHNlLCcKKyAg ICAgICAgICAgICAgICAnQlVGRkVSUyBUcnVlKSBTRUxFQ1QgKiBGUk9NIHBsYWNlcycpCisKKyAg ICBkZWYgdGVzdF9ub3RfYWxsX3BhcmFtZXRlcnNfb25fcGdfOV8wKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiByZW5kZXJpbmcgUG9zdGdyZXMgOS4wIHRlbXBsYXRlCisgICAgICAg IFdoZW4gbm90IGFsbCBwYXJhbWV0ZXJzIGFyZSBwcmVzZW50CisgICAgICAgIEl0IHJldHVybnMg dGhlIGV4cGxhaW4gcGxhbiB3aXRoIHRoZSBwcmVzZW50IHBhcmFtZXRlcnMKKyAgICAgICAgIiIi CisgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1 bHQgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgJ3NxbGVkaXRvci9zcWwvZGVm YXVsdC9leHBsYWluX3BsYW4uc3FsJywKKyAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZS T00gcGxhY2VzJywKKyAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAorICAgICAgICAgICAg ICAgIGJ1ZmZlcnM9VHJ1ZSkKKworICAgICAgICAgICAgc3RyKHJlc3VsdCkucmVwbGFjZSgiXG4i LCAiIikgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAgICAgICAgICAgJ0VYUExBSU4gJworICAg ICAgICAgICAgICAgICcoRk9STUFUIEpTT04sQlVGRkVSUyBUcnVlKSAnCisgICAgICAgICAgICAg ICAgJ1NFTEVDVCAqIEZST00gcGxhY2VzJykKKworICAgIGRlZiB0ZXN0X3RpbWluZ19wcmVzZW50 X29uX3BnXzlfMihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIFBv c3RncmVzIDkuMiB0ZW1wbGF0ZQorICAgICAgICBXaGVuIHRpbWluZyBpcyBwcmVzZW50CisgICAg ICAgIEl0IHJldHVybnMgdGhlIGV4cGxhaW4gcGxhbiB3aXRoIHRpbWluZworICAgICAgICAiIiIK KyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3Vs dCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAnc3FsZWRpdG9yL3NxbC85LjJf cGx1cy9leHBsYWluX3BsYW4uc3FsJywKKyAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZS T00gcGxhY2VzJywKKyAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAorICAgICAgICAgICAg ICAgIGJ1ZmZlcnM9VHJ1ZSwKKyAgICAgICAgICAgICAgICB0aW1pbmc9RmFsc2UpCisKKyAgICAg ICAgICAgIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpIHwgc2hvdWxkLmJlLmVxdWFsKAor ICAgICAgICAgICAgICAgICdFWFBMQUlOICcKKyAgICAgICAgICAgICAgICAnKEZPUk1BVCBKU09O LFRJTUlORyBGYWxzZSwnCisgICAgICAgICAgICAgICAgJ0JVRkZFUlMgVHJ1ZSkgU0VMRUNUICog RlJPTSBwbGFjZXMnKQorCisgICAgZGVmIHRlc3Rfc3VtbWFyeV9wcmVzZW50X29uX3BnXzEwKHNl bGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZW5kZXJpbmcgUG9zdGdyZXMgOS4yIHRl bXBsYXRlCisgICAgICAgIFdoZW4gdGltaW5nIGlzIHByZXNlbnQKKyAgICAgICAgSXQgcmV0dXJu cyB0aGUgZXhwbGFpbiBwbGFuIHdpdGggc3VtbWFyeQorICAgICAgICAiIiIKKyAgICAgICAgd2l0 aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90 ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAnc3FsZWRpdG9yL3NxbC8xMF9wbHVzL2V4cGxhaW5f cGxhbi5zcWwnLAorICAgICAgICAgICAgICAgIHNxbD0nU0VMRUNUICogRlJPTSBwbGFjZXMnLAor ICAgICAgICAgICAgICAgIGZvcm1hdD0neWFtbCcsCisgICAgICAgICAgICAgICAgYnVmZmVycz1U cnVlLAorICAgICAgICAgICAgICAgIHRpbWluZz1GYWxzZSwKKyAgICAgICAgICAgICAgICBzdW1t YXJ5PVRydWUpCisKKyAgICAgICAgICAgIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpIHwg c2hvdWxkLmJlLmVxdWFsKAorICAgICAgICAgICAgICAgICdFWFBMQUlOICcKKyAgICAgICAgICAg ICAgICAnKEZPUk1BVCBZQU1MLFRJTUlORyBGYWxzZSwnCisgICAgICAgICAgICAgICAgJ1NVTU1B UlkgVHJ1ZSxCVUZGRVJTIFRydWUpICcKKyAgICAgICAgICAgICAgICAnU0VMRUNUICogRlJPTSBw bGFjZXMnKQorCisgICAgZGVmIHRlc3RfYWxsX3BhcmFtZXRlcnNfcHJlc2VudF9vbl9ncGRiXzVf MyhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gcmVuZGVyaW5nIEdyZWVuUGx1bSA1 LjMgdGVtcGxhdGUKKyAgICAgICAgV2hlbiBhbGwgcGFyYW1ldGVycyBhcmUgcHJlc2VudAorICAg ICAgICBJdCByZXR1cm5zIHRoZSBleHBsYWluIHdpdGhvdXQgcGFyYW1ldGVycworICAgICAgICAi IiIKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJl c3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAnc3FsZWRpdG9yL3NxbC9n cGRiXzUuMF9wbHVzL2V4cGxhaW5fcGxhbi5zcWwnLAorICAgICAgICAgICAgICAgIHNxbD0nU0VM RUNUICogRlJPTSBwbGFjZXMnLAorICAgICAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCisgICAg ICAgICAgICAgICAgYnVmZmVycz1UcnVlKQorCisgICAgICAgICAgICBzdHIocmVzdWx0KS5yZXBs YWNlKCJcbiIsICIiKSB8IHNob3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgICAgICAnRVhQTEFJ TiBTRUxFQ1QgKiBGUk9NIHBsYWNlcycpCisKKyAgICBkZWYgdGVzdF9hbmFseXplX29uX2dwZGJf NV8zKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiByZW5kZXJpbmcgR3JlZW5QbHVt IDUuMyB0ZW1wbGF0ZQorICAgICAgICBXaGVuIGFuYWx5emUgaXMgdHJ1ZQorICAgICAgICBJdCBy ZXR1cm5zIHRoZSBleHBsYWluIGFuYWx5emUKKyAgICAgICAgIiIiCisgICAgICAgIHdpdGggRmFr ZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAgICAgJ3NxbGVkaXRvci9zcWwvZ3BkYl81LjBfcGx1cy9leHBsYWlu X3BsYW4uc3FsJywKKyAgICAgICAgICAgICAgICBzcWw9J1NFTEVDVCAqIEZST00gcGxhY2VzJywK KyAgICAgICAgICAgICAgICBhbmFseXplPVRydWUpCisKKyAgICAgICAgICAgIHN0cihyZXN1bHQp LnJlcGxhY2UoIlxuIiwgIiIpIHwgc2hvdWxkLmJlLmVxdWFsKAorICAgICAgICAgICAgICAgICdF WFBMQUlOIEFOQUxZWkUgU0VMRUNUICogRlJPTSBwbGFjZXMnKQogCiAKIGNsYXNzIEZha2VBcHAo Rmxhc2spOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rl c3RfZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnMucHkgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9leHRyYWN0X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1l dGVycy5weQppbmRleCBiZWNhMTY1Ny4uOWJmYjI4OGYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2V4dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJh bWV0ZXJzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2V4 dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzLnB5CkBAIC02LDU3ICs2LDUxIEBACiAj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQog IwogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKLQorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogZnJvbSB3 ZXJremV1Zy5kYXRhc3RydWN0dXJlcyBpbXBvcnQgSW1tdXRhYmxlTXVsdGlEaWN0CiAKIGZyb20g cGdhZG1pbi50b29scy5zcWxlZGl0b3IgaW1wb3J0IGV4dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19w YXJhbWV0ZXJzCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCi0KLQotY2xhc3MgRXh0cmFjdFNRTEZyb21OZXR3b3JrUGFyYW1ldGVyc1Rlc3QoQmFzZVRl c3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIFRoaXMgY2xhc3MgdmFsaWRhdGVzIHRoZSBjaGFu Z2UgcGFzc3dvcmQgZnVuY3Rpb25hbGl0eQotICAgIGJ5IGRlZmluaW5nIGNoYW5nZSBwYXNzd29y ZCBzY2VuYXJpb3M7IHdoZXJlIGRpY3Qgb2YKLSAgICBwYXJhbWV0ZXJzIGRlc2NyaWJlcyB0aGUg c2NlbmFyaW8gYXBwZW5kZWQgYnkgdGVzdCBuYW1lLgotICAgICIiIgotCi0gICAgc2NlbmFyaW9z ID0gWwotICAgICAgICAoJ1NpbmdsZSBzdHJpbmcgaW4gdGhlIHBheWxvYWQnLCBkaWN0KAotICAg ICAgICAgICAgcmVxdWVzdF9zdHJpZ2lmaWVkX2RhdGE9JyJzb21lIHNxbCInLAotICAgICAgICAg ICAgcmVxdWVzdF9hcmd1bWVudHM9SW1tdXRhYmxlTXVsdGlEaWN0KCksCi0gICAgICAgICAgICBy ZXF1ZXN0X2Zvcm1fZGF0YT1JbW11dGFibGVNdWx0aURpY3QoKSwKLQotICAgICAgICAgICAgZXhw ZWN0ZWRfcmVzdWx0PWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKQotICAg ICAgICApKSwKLSAgICAgICAgKCdQYXlsb2FkIHRoYXQgcmVxdWVzdHMgZXhwbGFpbiBwbGFuIHVz aW5nIGpzb24nLCBkaWN0KAotICAgICAgICAgICAgcmVxdWVzdF9zdHJpZ2lmaWVkX2RhdGE9J3si c3FsIjogInNvbWUgc3FsIiwgImV4cGxhaW5fcGxhbiI6ICcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICd7ImZvcm1hdCI6ICJqc29uIiwgImFuYWx5emUiOiBmYWxzZSwgJwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyJ2ZXJib3NlIjogZmFsc2UsICJj b3N0cyI6IGZhbHNlLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnImJ1 ZmZlcnMiOiBmYWxzZSwgInRpbWluZyI6IGZhbHNlfX0nLAotICAgICAgICAgICAgcmVxdWVzdF9h cmd1bWVudHM9SW1tdXRhYmxlTXVsdGlEaWN0KCksCi0gICAgICAgICAgICByZXF1ZXN0X2Zvcm1f ZGF0YT1JbW11dGFibGVNdWx0aURpY3QoKSwKLQotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0 PWRpY3QoCi0gICAgICAgICAgICAgICAgc3FsPSdzb21lIHNxbCcsCi0gICAgICAgICAgICAgICAg ZXhwbGFpbl9wbGFuPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCi0g ICAgICAgICAgICAgICAgICAgIGFuYWx5emU9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIHZl cmJvc2U9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGJ1ZmZlcnM9RmFsc2UsCi0gICAgICAg ICAgICAgICAgICAgIGNvc3RzPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICB0aW1pbmc9RmFs c2UKLSAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApCi0gICAgICAgICkpCi0gICAgXQor ZnJvbSBwZ2FkbWluLnV0aWxzLmJhc2VfdGVzdF9nZW5lcmF0b3IgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgIiIiQ2hlY2sgY29ycmVj dCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gaGFuZGxlIHRvIHJ1biBxdWVyeS4iIiIKKworY2xhc3Mg VGVzdEV4dHJhY3RTUUxGcm9tTmV0d29ya1BhcmFtZXRlcnMoQmFzZVRlc3RHZW5lcmF0b3IpOgor ICAgIGRlZiB0ZXN0X3NpbmdsZV9zdHJpbmdfcGF5bG9hZChzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIFdoZW4gdGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBhIHN0cmluZworICAgICAgICBJdCBy ZXR1cm5zIHRoZSBzcWwgaW5mb3JtYXRpb24gYnV0IG5vIGV4cGxhaW4gcGxhbgorICAgICAgICAi IiIKIAogICAgICAgICByZXN1bHQgPSBleHRyYWN0X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1ldGVy cygKLSAgICAgICAgICAgIHNlbGYucmVxdWVzdF9zdHJpZ2lmaWVkX2RhdGEsCi0gICAgICAgICAg ICBzZWxmLnJlcXVlc3RfYXJndW1lbnRzLAotICAgICAgICAgICAgc2VsZi5yZXF1ZXN0X2Zvcm1f ZGF0YQorICAgICAgICAgICAgJyJzb21lIHNxbCInLAorICAgICAgICAgICAgSW1tdXRhYmxlTXVs dGlEaWN0KCksCisgICAgICAgICAgICBJbW11dGFibGVNdWx0aURpY3QoKQogICAgICAgICApCiAK LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzdWx0LCBzZWxmLmV4cGVjdGVkX3Jlc3VsdCkK KyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsKGRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4 cGxhaW5fcGxhbj1Ob25lKSkKKworICAgIGRlZiB0ZXN0X2pzb25fcGF5bG9hZChzZWxmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIHJlcXVlc3QgcGF5bG9hZCBpcyBhIGpzb24KKyAg ICAgICAgSXQgcmV0dXJucyB0aGUgc3FsIGluZm9ybWF0aW9uIGFuZCBleHBsYWluIHBsYW4gb3B0 aW9ucworICAgICAgICAiIiIKKworICAgICAgICByZXN1bHQgPSBleHRyYWN0X3NxbF9mcm9tX25l dHdvcmtfcGFyYW1ldGVycygKKyAgICAgICAgICAgICd7InNxbCI6ICJzb21lIHNxbCIsICJleHBs YWluX3BsYW4iOiAnCisgICAgICAgICAgICAneyJmb3JtYXQiOiAianNvbiIsICJhbmFseXplIjog ZmFsc2UsICcKKyAgICAgICAgICAgICcidmVyYm9zZSI6IGZhbHNlLCAiY29zdHMiOiBmYWxzZSwg JworICAgICAgICAgICAgJyJidWZmZXJzIjogZmFsc2UsICJ0aW1pbmciOiBmYWxzZX19JywKKyAg ICAgICAgICAgIEltbXV0YWJsZU11bHRpRGljdCgpLAorICAgICAgICAgICAgSW1tdXRhYmxlTXVs dGlEaWN0KCkKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbChk aWN0KAorICAgICAgICAgICAgc3FsPSdzb21lIHNxbCcsCisgICAgICAgICAgICBleHBsYWluX3Bs YW49ZGljdCgKKyAgICAgICAgICAgICAgICBmb3JtYXQ9J2pzb24nLAorICAgICAgICAgICAgICAg IGFuYWx5emU9RmFsc2UsCisgICAgICAgICAgICAgICAgdmVyYm9zZT1GYWxzZSwKKyAgICAgICAg ICAgICAgICBidWZmZXJzPUZhbHNlLAorICAgICAgICAgICAgICAgIGNvc3RzPUZhbHNlLAorICAg ICAgICAgICAgICAgIHRpbWluZz1GYWxzZQorICAgICAgICAgICAgKQorICAgICAgICApKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcG9sbF9xdWVy eV90b29sLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcG9sbF9x dWVyeV90b29sLnB5CmluZGV4IGUwYThkMzg4Li5jZmViMzJmMSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcG9sbF9xdWVyeV90b29sLnB5CisrKyBi L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X3BvbGxfcXVlcnlfdG9vbC5w eQpAQCAtOSwyMCArOSw0NCBAQAogCiBpbXBvcnQganNvbgogCitmcm9tIGdyYXBwYSBpbXBvcnQg c2hvdWxkCisKIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAgICBkYXRhYmFzZV91dGlscwotZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgotZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCi1jbGFzcyBUZXN0UG9sbFF1ZXJ5 VG9vbChCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCB0ZXN0IHRo ZSBxdWVyeSB0b29sIHBvbGxpbmcuICIiIgotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKCdX aGVuIHF1ZXJ5IHRvb2wgcG9sbGluZyByZXR1cm5zIG1lc3NhZ2VzIHdpdGggcmVzdWx0IGRhdGEt c2V0JywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgc3FsPVsKLSAgICAgICAgICAgICAg ICAgIiIiCitjbGFzcyBUZXN0UG9sbFF1ZXJ5VG9vbDoKKyAgICBkZWYgdGVzdF9wb2xsX2FuZF9o YXZlXzJfbm90aWNlcyhzZWxmLCBjb250ZXh0X29mX3Rlc3RzKToKKyAgICAgICAgIiIiCisgICAg ICAgIFdoZW4gcXVlcnkgdG9vbCBwb2xsIHRvIGNoZWNrIG9uIHRoZSBxdWVyeSB3aXRoIDIgbm90 aWNlcworICAgICAgICBJdCByZXR1cm5zIG1lc3NhZ2VzIHNheWluZyBwb2xsaW5nIGlzIGNoZWNr aW5nCisgICAgICAgICIiIgorICAgICAgICBkYXRhYmFzZV9pbmZvID0gY29udGV4dF9vZl90ZXN0 c1sic2VydmVyX2luZm9ybWF0aW9uIl0KKyAgICAgICAgc2VydmVyX2lkID0gZGF0YWJhc2VfaW5m b1sic2VydmVyX2lkIl0KKyAgICAgICAgZGJfaWQgPSBkYXRhYmFzZV9pbmZvWyJkYl9pZCJdCisK KyAgICAgICAgaHR0cF9jbGllbnQgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisg ICAgICAgIHNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisKKyAgICAgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY2xpZW50X2Nvbm5lY3RfZGF0YWJhc2UoCisgICAgICAgICAg ICBodHRwX2NsaWVudCwKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAg ICAgIHNlcnZlcl9pZCwKKyAgICAgICAgICAgIGRiX2lkLAorICAgICAgICAgICAgc2VydmVyWydk Yl9wYXNzd29yZCddKQorICAgICAgICBpZiBub3QgZGJfY29uWyJpbmZvIl0gPT0gIkRhdGFiYXNl IGNvbm5lY3RlZC4iOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29u bmVjdCB0byB0aGUgZGF0YWJhc2UuIikKKworICAgICAgICB1cmwgPSAnL2RhdGFncmlkL2luaXRp YWxpemUvcXVlcnlfdG9vbC97MH0vezF9L3syfScuZm9ybWF0KAorICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICByZXNwb25zZSA9IGh0dHBf Y2xpZW50LnBvc3QodXJsKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5i ZS5lcXVhbCgyMDApCisKKyAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9u c2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAgICAgIHRyYW5zX2lkID0gcmVzcG9uc2VfZGF0 YVsnZGF0YSddWydncmlkVHJhbnNJZCddCisKKyAgICAgICAgc3FsID0gIiIiCiBEUk9QIFRBQkxF IElGIEVYSVNUUyB0ZXN0X2Zvcl9ub3RpY2VzOwogCiBETyAkJApAQCAtMzEsOCArNTUsNjQgQEAg QkVHSU4KIEVORCAkJDsKIAogU0VMRUNUICdDSEVDS0lORyBQT0xMSU5HJzsKLSIiIiwKLSAgICAg ICAgICAgICAgICAgIiIiCisiIiIKKyAgICAgICAgZXhwZWN0ZWRfbWVzc2FnZSA9ICIiIk5PVElD RTogIHRhYmxlICJ0ZXN0X2Zvcl9ub3RpY2VzIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKK05P VElDRTogIEhlbGxvLCB3b3JsZCEKKyIiIgorICAgICAgICBleHBlY3RlZF9yZXN1bHQgPSAnQ0hF Q0tJTkcgUE9MTElORycKKworICAgICAgICB1cmwgPSAnL3NxbGVkaXRvci9xdWVyeV90b29sL3N0 YXJ0L3swfScuZm9ybWF0KHRyYW5zX2lkKQorICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50 LnBvc3QodXJsLCBkYXRhPWpzb24uZHVtcHMoeyJzcWwiOiBzcWx9KSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgICAg ICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisKKyAgICAgICAg dXJsID0gJy9zcWxlZGl0b3IvcG9sbC97MH0nLmZvcm1hdCh0cmFuc19pZCkKKyAgICAgICAgcmVz cG9uc2UgPSBodHRwX2NsaWVudC5nZXQodXJsKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29k ZSB8IHNob3VsZC5iZS5lcXVhbCgyMDApCisKKyAgICAgICAgcmVzcG9uc2VfZGF0YSA9IGpzb24u bG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisKKyAgICAgICAgcmVzcG9uc2Vf ZGF0YVsnZGF0YSddWydhZGRpdGlvbmFsX21lc3NhZ2VzJ10gfCBzaG91bGQuYmUuZXF1YWwoCisg ICAgICAgICAgICBleHBlY3RlZF9tZXNzYWdlCisgICAgICAgICkKKworICAgICAgICBleHBlY3Rl ZF9yZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAgICAgICByZXNwb25zZV9kYXRhWydk YXRhJ11bJ3Jlc3VsdCddWzBdWzBdKQorCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9k aXNjb25uZWN0X2RhdGFiYXNlKGh0dHBfY2xpZW50LCBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX2lkKQorCisgICAgZGVmIHRl c3RfcG9sbF9hbmRfaGF2ZV8xMDAwX25vdGljZXMoc2VsZiwgY29udGV4dF9vZl90ZXN0cyk6Cisg ICAgICAgICIiIgorICAgICAgICBXaGVuIHF1ZXJ5IHRvb2wgcG9sbCB0byBjaGVjayBvbiB0aGUg cXVlcnkgd2l0aCAxMDAwIG5vdGljZXMKKyAgICAgICAgSXQgcmV0dXJucyBtZXNzYWdlcyBzYXlp bmcgcG9sbGluZyBpcyBjaGVja2luZyBmb3IgbG9uZyBtZXNzYWdlcworICAgICAgICAiIiIKKyAg ICAgICAgZGF0YWJhc2VfaW5mbyA9IGNvbnRleHRfb2ZfdGVzdHNbInNlcnZlcl9pbmZvcm1hdGlv biJdCisgICAgICAgIHNlcnZlcl9pZCA9IGRhdGFiYXNlX2luZm9bInNlcnZlcl9pZCJdCisgICAg ICAgIGRiX2lkID0gZGF0YWJhc2VfaW5mb1siZGJfaWQiXQorCisgICAgICAgIGh0dHBfY2xpZW50 ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIgPSBjb250 ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxz LmNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgaHR0cF9jbGllbnQsCisgICAg ICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICBzZXJ2ZXJfaWQsCisgICAg ICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSkKKyAgICAg ICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoKKyAgICAg ICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNl LiIpCisKKyAgICAgICAgdXJsID0gJy9kYXRhZ3JpZC9pbml0aWFsaXplL3F1ZXJ5X3Rvb2wvezB9 L3sxfS97Mn0nLmZvcm1hdCgKKyAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VydmVy X2lkLCBkYl9pZCkKKyAgICAgICAgcmVzcG9uc2UgPSBodHRwX2NsaWVudC5wb3N0KHVybCkKKyAg ICAgICAgcmVzcG9uc2Uuc3RhdHVzX2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQorCisgICAg ICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYt OCcpKQorICAgICAgICB0cmFuc19pZCA9IHJlc3BvbnNlX2RhdGFbJ2RhdGEnXVsnZ3JpZFRyYW5z SWQnXQorCisgICAgICAgIHNxbCA9ICIiIgogRE8gJCQKIEJFR0lOCiAgICAgRk9SIGkgaW4gMS4u MTAwMCBMT09QCkBAIC00MSw3NCArMTIxLDgxIEBAIEJFR0lOCiBFTkQgJCQ7CiAKIFNFTEVDVCAn Q0hFQ0tJTkcgUE9MTElORyBGT1IgTE9ORyBNRVNTQUdFUyc7Ci0iIiIsCi0gICAgICAgICAgICAg ICAgICJTRUxFQ1QgJ0NIRUNLSU5HIFBPTExJTkcgV0lUSE9VVCBNRVNTQUdFUyc7IgotICAgICAg ICAgICAgIF0sCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbWVzc2FnZT1bJ05PVElDRTogIHRhYmxl ICJ0ZXN0X2Zvcl9ub3RpY2VzIiAnICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi IiJkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmcKLU5PVElDRTogIEhlbGxvLCB3b3JsZCEKLSIiIiwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXG4iLmpvaW4oWyJOT1RJQ0U6ICBDb3Vu dCBpcyB7MH0iLmZvcm1hdChpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgMTAwMSldKSArICJcbiIsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTm9uZV0sCi0gICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PVsnQ0hF Q0tJTkcgUE9MTElORycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ0hFQ0tJTkcg UE9MTElORyBGT1IgTE9ORyBNRVNTQUdFUycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnQ0hFQ0tJTkcgUE9MTElORyBXSVRIT1VUIE1FU1NBR0VTJ10sCi0gICAgICAgICAgICAgcHJp bnRfbWVzc2FnZXM9WycyIE5PVElDRVMgV0lUSCBEQVRBU0VUJywKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJzEwMDAgTk9USUNFUyBXSVRIIERBVEFTRVQnLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnTk8gTk9USUNFIFdJVEggREFUQVNFVCcKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXQotICAgICAgICAgKSkKLSAgICBdCi0KLSAgICBkZWYgcnVuVGVzdChzZWxm KToKLSAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBjaGVjayBtZXNzYWdlcyByZXR1cm4g YnkgcXVlcnkgdG9vbCBwb2xsaW5nLiAiIiIKLSAgICAgICAgZGF0YWJhc2VfaW5mbyA9IHBhcmVu dF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCi0gICAgICAgIHNlbGYuc2VydmVyX2lkID0gZGF0 YWJhc2VfaW5mb1sic2VydmVyX2lkIl0KLQotICAgICAgICBzZWxmLmRiX2lkID0gZGF0YWJhc2Vf aW5mb1siZGJfaWQiXQotICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2Rh dGFiYXNlKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpCisiIiIKKyAgICAgICAgZXhw ZWN0ZWRfbWVzc2FnZSA9ICJcbiIuam9pbihbIk5PVElDRTogIENvdW50IGlzIHswfSIuZm9ybWF0 KGkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdl KDEsIDEwMDEpXSkgKyAiXG4iCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdCA9ICdDSEVDS0lORyBQ T0xMSU5HIEZPUiBMT05HIE1FU1NBR0VTJworCisgICAgICAgIHVybCA9ICcvc3FsZWRpdG9yL3F1 ZXJ5X3Rvb2wvc3RhcnQvezB9Jy5mb3JtYXQodHJhbnNfaWQpCisgICAgICAgIHJlc3BvbnNlID0g aHR0cF9jbGllbnQucG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyh7InNxbCI6IHNxbH0pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n KQorCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkK KworICAgICAgICB1cmwgPSAnL3NxbGVkaXRvci9wb2xsL3swfScuZm9ybWF0KHRyYW5zX2lkKQor ICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LmdldCh1cmwpCisgICAgICAgIHJlc3BvbnNl LnN0YXR1c19jb2RlIHwgc2hvdWxkLmJlLmVxdWFsKDIwMCkKKworICAgICAgICByZXNwb25zZV9k YXRhID0ganNvbi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKworICAgICAg ICByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2FkZGl0aW9uYWxfbWVzc2FnZXMnXSB8IHNob3VsZC5i ZS5lcXVhbCgKKyAgICAgICAgICAgIGV4cGVjdGVkX21lc3NhZ2UKKyAgICAgICAgKQorCisgICAg ICAgIGV4cGVjdGVkX3Jlc3VsdCB8IHNob3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgIHJlc3Bv bnNlX2RhdGFbJ2RhdGEnXVsncmVzdWx0J11bMF1bMF0pCisKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuY2xpZW50X2Rpc2Nvbm5lY3RfZGF0YWJhc2UoaHR0cF9jbGllbnQsIHNlcnZlcl9pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJfaWQpCisK KyAgICBkZWYgdGVzdF9wb2xsX2FuZF9oYXZlX25vX25vdGljZXMoc2VsZiwgY29udGV4dF9vZl90 ZXN0cyk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHF1ZXJ5IHRvb2wgcG9sbCB0byBjaGVj ayBvbiB0aGUgcXVlcnkgd2l0aCBubyBub3RpY2VzCisgICAgICAgIEl0IHJldHVybnMgbWVzc2Fn ZXMgc2F5aW5nIHBvbGxpbmcgaXMgY2hlY2tpbmcgd2l0aG91dCBtZXNzYWdlcworICAgICAgICAi IiIKKyAgICAgICAgZGF0YWJhc2VfaW5mbyA9IGNvbnRleHRfb2ZfdGVzdHNbInNlcnZlcl9pbmZv cm1hdGlvbiJdCisgICAgICAgIHNlcnZlcl9pZCA9IGRhdGFiYXNlX2luZm9bInNlcnZlcl9pZCJd CisgICAgICAgIGRiX2lkID0gZGF0YWJhc2VfaW5mb1siZGJfaWQiXQorCisgICAgICAgIGh0dHBf Y2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQorICAgICAgICBzZXJ2ZXIg PSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXInXQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNsaWVudF9jb25uZWN0X2RhdGFiYXNlKAorICAgICAgICAgICAgaHR0cF9jbGllbnQs CisgICAgICAgICAgICB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICBzZXJ2ZXJfaWQs CisgICAgICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSkK ICAgICAgICAgaWYgbm90IGRiX2NvblsiaW5mbyJdID09ICJEYXRhYmFzZSBjb25uZWN0ZWQuIjoK ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gdGhlIGRh dGFiYXNlLiIpCiAKLSAgICAgICAgIyBJbml0aWFsaXplIHF1ZXJ5IHRvb2wKICAgICAgICAgdXJs ID0gJy9kYXRhZ3JpZC9pbml0aWFsaXplL3F1ZXJ5X3Rvb2wvezB9L3sxfS97Mn0nLmZvcm1hdCgK LSAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9HUk9VUCwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJf aWQpCi0gICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwpCi0gICAgICAgIHNl bGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICAgICB1 dGlscy5TRVJWRVJfR1JPVVAsIHNlcnZlcl9pZCwgZGJfaWQpCisgICAgICAgIHJlc3BvbnNlID0g aHR0cF9jbGllbnQucG9zdCh1cmwpCisgICAgICAgIHJlc3BvbnNlLnN0YXR1c19jb2RlIHwgc2hv dWxkLmJlLmVxdWFsKDIwMCkKIAogICAgICAgICByZXNwb25zZV9kYXRhID0ganNvbi5sb2Fkcyhy ZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAgICAgc2VsZi50cmFuc19pZCA9IHJl c3BvbnNlX2RhdGFbJ2RhdGEnXVsnZ3JpZFRyYW5zSWQnXQorICAgICAgICB0cmFuc19pZCA9IHJl c3BvbnNlX2RhdGFbJ2RhdGEnXVsnZ3JpZFRyYW5zSWQnXQorCisgICAgICAgIHNxbCA9ICJTRUxF Q1QgJ0NIRUNLSU5HIFBPTExJTkcgV0lUSE9VVCBNRVNTQUdFUyc7IgorICAgICAgICBleHBlY3Rl ZF9yZXN1bHQgPSAnQ0hFQ0tJTkcgUE9MTElORyBXSVRIT1VUIE1FU1NBR0VTJwogCi0gICAgICAg IGNudCA9IDAKLSAgICAgICAgZm9yIHMgaW4gc2VsZi5zcWw6Ci0gICAgICAgICAgICBwcmludCgi RXhlY3V0aW5nIGFuZCBwb2xsaW5nIHdpdGg6ICIgKyBzZWxmLnByaW50X21lc3NhZ2VzW2NudF0p Ci0gICAgICAgICAgICAjIFN0YXJ0IHF1ZXJ5IHRvb2wgdHJhbnNhY3Rpb24KLSAgICAgICAgICAg IHVybCA9ICcvc3FsZWRpdG9yL3F1ZXJ5X3Rvb2wvc3RhcnQvezB9Jy5mb3JtYXQoc2VsZi50cmFu c19pZCkKLSAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIucG9zdCh1cmwsIGRhdGE9 anNvbi5kdW1wcyh7InNxbCI6IHN9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgICAgIHVybCA9ICcvc3FsZWRp dG9yL3F1ZXJ5X3Rvb2wvc3RhcnQvezB9Jy5mb3JtYXQodHJhbnNfaWQpCisgICAgICAgIHJlc3Bv bnNlID0gaHR0cF9jbGllbnQucG9zdCh1cmwsIGRhdGE9anNvbi5kdW1wcyh7InNxbCI6IHNxbH0p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQogCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNf Y29kZSwgMjAwKQorICAgICAgICByZXNwb25zZS5zdGF0dXNfY29kZSB8IHNob3VsZC5iZS5lcXVh bCgyMDApCiAKLSAgICAgICAgICAgICMgUXVlcnkgdG9vbCBwb2xsaW5nCi0gICAgICAgICAgICB1 cmwgPSAnL3NxbGVkaXRvci9wb2xsL3swfScuZm9ybWF0KHNlbGYudHJhbnNfaWQpCi0gICAgICAg ICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCh1cmwpCi0gICAgICAgICAgICBzZWxmLmFz c2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotICAgICAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCisgICAg ICAgIHVybCA9ICcvc3FsZWRpdG9yL3BvbGwvezB9Jy5mb3JtYXQodHJhbnNfaWQpCisgICAgICAg IHJlc3BvbnNlID0gaHR0cF9jbGllbnQuZ2V0KHVybCkKKyAgICAgICAgcmVzcG9uc2Uuc3RhdHVz X2NvZGUgfCBzaG91bGQuYmUuZXF1YWwoMjAwKQogCi0gICAgICAgICAgICBpZiBzZWxmLmV4cGVj dGVkX21lc3NhZ2VbY250XSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAjIENoZWNrIHRo ZSByZXR1cm5lZCBtZXNzYWdlcwotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4oc2VsZi5l eHBlY3RlZF9tZXNzYWdlW2NudF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNw b25zZV9kYXRhWydkYXRhJ11bJ2FkZGl0aW9uYWxfbWVzc2FnZXMnXSkKKyAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykpCiAKLSAg ICAgICAgICAgICMgQ2hlY2sgdGhlIG91dHB1dAotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMoc2VsZi5leHBlY3RlZF9yZXN1bHRbY250XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHJlc3BvbnNlX2RhdGFbJ2RhdGEnXVsncmVzdWx0J11bMF1bMF0pCisgICAgICAgIHJlc3Bv bnNlX2RhdGFbJ2RhdGEnXVsnYWRkaXRpb25hbF9tZXNzYWdlcyddIHwgc2hvdWxkLmJlLm5vbmUK IAotICAgICAgICAgICAgY250ICs9IDEKKyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0IHwgc2hvdWxk LmJlLmVxdWFsKAorICAgICAgICAgICAgcmVzcG9uc2VfZGF0YVsnZGF0YSddWydyZXN1bHQnXVsw XVswXSkKIAotICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCi0gICAgICAgIGRhdGFi YXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYu ZGJfaWQpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmNsaWVudF9kaXNjb25uZWN0X2RhdGFiYXNl KGh0dHBfY2xpZW50LCBzZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMv c3FsZWRpdG9yL3Rlc3RzL3Rlc3RfcHJlZl91dGlsaXRpZXMucHkgYi93ZWIvcGdhZG1pbi90b29s cy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9wcmVmX3V0aWxpdGllcy5weQppbmRleCBjYmQxNDFiMC4u ZWEwM2I0NmUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90 ZXN0X3ByZWZfdXRpbGl0aWVzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90 ZXN0cy90ZXN0X3ByZWZfdXRpbGl0aWVzLnB5CkBAIC02LDE5ICs2LDIwIEBACiAjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLnRvb2xzLnNx bGVkaXRvci51dGlscy5xdWVyeV90b29sX3ByZWZlcmVuY2VzIGltcG9ydCBcCiAgICAgZ2V0X3Rl eHRfcmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQKIAogCi1jbGFzcyBUZXN0UXVlcnlUb29sUHJl ZmVyZW5jZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgRW5zdXJlcyB0aGF0IHdl IGFyZSBhYmxlIHRvIGZldGNoIHByZWZlcmVuY2VzIHByb3Blcmx5Ci0gICAgIiIiCi0gICAgc2Nl bmFyaW9zID0gWwotICAgICAgICAoJ0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxp ZCBzaG9ydGN1dHMnLCBkaWN0KAotICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAg ICAgICAgc2FtcGxlX3Nob3J0Y3V0PWRpY3QoCitjbGFzcyBUZXN0UXVlcnlUb29sUHJlZmVyZW5j ZToKKyAgICBkZWYgdGVzdF9zaG9ydGN1dF9hKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiB0aGUgdGhlIHNob3J0Y3V0IHByZXNzZWQgaXMgJ2EnCisgICAgICAgIEl0IHJldHVybiB0 aGUgc3RyaW5nICdhJworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZ2V0X3RleHRfcmVw cmVzZW50YXRpb25fb2Zfc2hvcnRjdXQoCisgICAgICAgICAgICBkaWN0KAogICAgICAgICAgICAg ICAgIGFsdD1GYWxzZSwKICAgICAgICAgICAgICAgICBzaGlmdD1GYWxzZSwKICAgICAgICAgICAg ICAgICBjb250cm9sPUZhbHNlLApAQCAtMjYsMTMgKzI3LDE2IEBAIGNsYXNzIFRlc3RRdWVyeVRv b2xQcmVmZXJlbmNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgY2hh cj0nYScsCiAgICAgICAgICAgICAgICAgICAgIGtleUNvZGU9NjUKICAgICAgICAgICAgICAgICAp Ci0gICAgICAgICAgICApLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdhJwotICAgICAg ICApKSwKKyAgICAgICAgICAgICkpCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbCgn YScpCiAKLSAgICAgICAgKCdDaGVjayB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQgc2hv cnRjdXRzJywgZGljdCgKLSAgICAgICAgICAgIGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAgICAg IHNhbXBsZV9zaG9ydGN1dD1kaWN0KAorICAgIGRlZiB0ZXN0X3Nob3J0Y3V0X2FsdF9hKHNlbGYp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgdGhlIHNob3J0Y3V0IHByZXNzZWQgaXMg QUxUICsgJ2EnCisgICAgICAgIEl0IHJldHVybiB0aGUgc3RyaW5nICdBbHQrYScKKyAgICAgICAg IiIiCisgICAgICAgIHJlc3VsdCA9IGdldF90ZXh0X3JlcHJlc2VudGF0aW9uX29mX3Nob3J0Y3V0 KAorICAgICAgICAgICAgZGljdCgKICAgICAgICAgICAgICAgICBhbHQ9VHJ1ZSwKICAgICAgICAg ICAgICAgICBzaGlmdD1GYWxzZSwKICAgICAgICAgICAgICAgICBjb250cm9sPUZhbHNlLApAQCAt NDAsMTMgKzQ0LDE2IEBAIGNsYXNzIFRlc3RRdWVyeVRvb2xQcmVmZXJlbmNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgY2hhcj0nYScsCiAgICAgICAgICAgICAgICAg ICAgIGtleUNvZGU9NjUKICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICApLAotICAgICAg ICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdBbHQrYScKLSAgICAgICAgKSksCisgICAgICAgICAgICAp KQorICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwoJ0FsdCthJykKIAotICAgICAgICAo J0NoZWNrIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSB2YWxpZCBzaG9ydGN1dHMnLCBkaWN0KAot ICAgICAgICAgICAgZmV0Y2hfcHJlZj1UcnVlLAotICAgICAgICAgICAgc2FtcGxlX3Nob3J0Y3V0 PWRpY3QoCisgICAgZGVmIHRlc3Rfc2hvcnRjdXRfYWx0X3NoaXRfY29udHJvbF9hKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgdGhlIHNob3J0Y3V0IHByZXNzZWQgaXMgQWx0 ICsgQ29udHJvbCArIFNoaWZ0ICsgJ2EnCisgICAgICAgIEl0IHJldHVybiB0aGUgc3RyaW5nICdB bHQrU2hpZnQrQ3RybCthJworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gZ2V0X3RleHRf cmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQoCisgICAgICAgICAgICBkaWN0KAogICAgICAgICAg ICAgICAgIGFsdD1UcnVlLAogICAgICAgICAgICAgICAgIHNoaWZ0PVRydWUsCiAgICAgICAgICAg ICAgICAgY29udHJvbD1UcnVlLApAQCAtNTQsMTMgKzYxLDE2IEBAIGNsYXNzIFRlc3RRdWVyeVRv b2xQcmVmZXJlbmNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgY2hh cj0nYScsCiAgICAgICAgICAgICAgICAgICAgIGtleUNvZGU9NjUKICAgICAgICAgICAgICAgICAp Ci0gICAgICAgICAgICApLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0PSdBbHQrU2hpZnQr Q3RybCthJwotICAgICAgICApKSwKKyAgICAgICAgICAgICkpCisgICAgICAgIHJlc3VsdCB8IHNo b3VsZC5iZS5lcXVhbCgnQWx0K1NoaWZ0K0N0cmwrYScpCiAKLSAgICAgICAgKCdDaGVjayB0ZXh0 IHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWQgc2hvcnRjdXRzJywgZGljdCgKLSAgICAgICAgICAg IGZldGNoX3ByZWY9VHJ1ZSwKLSAgICAgICAgICAgIHNhbXBsZV9zaG9ydGN1dD1kaWN0KAorICAg IGRlZiB0ZXN0X3Nob3J0Y3V0X3NoaXRfYShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdo ZW4gdGhlIHRoZSBzaG9ydGN1dCBwcmVzc2VkIGlzIFNoaWZ0ICsgJ2EnCisgICAgICAgIEl0IHJl dHVybiB0aGUgc3RyaW5nICdTaGlmdCthJworICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0g Z2V0X3RleHRfcmVwcmVzZW50YXRpb25fb2Zfc2hvcnRjdXQoCisgICAgICAgICAgICBkaWN0KAog ICAgICAgICAgICAgICAgIGFsdD1GYWxzZSwKICAgICAgICAgICAgICAgICBzaGlmdD1UcnVlLAog ICAgICAgICAgICAgICAgIGNvbnRyb2w9RmFsc2UsCkBAIC02OCwzMyArNzgsMjkgQEAgY2xhc3Mg VGVzdFF1ZXJ5VG9vbFByZWZlcmVuY2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAgICAg ICAgICAgICBjaGFyPSdhJywKICAgICAgICAgICAgICAgICAgICAga2V5Q29kZT02NQogICAgICAg ICAgICAgICAgICkKLSAgICAgICAgICAgICksCi0gICAgICAgICAgICBleHBlY3RlZF9yZXN1bHQ9 J1NoaWZ0K2EnCi0gICAgICAgICkpLAotCi0gICAgICAgICgnQ2hlY2sgdGV4dCByZXByZXNlbnRh dGlvbiBvZiBhIHZhbGlkIHNob3J0Y3V0cycsIGRpY3QoCi0gICAgICAgICAgICBmZXRjaF9wcmVm PVRydWUsCi0gICAgICAgICAgICBzYW1wbGVfc2hvcnRjdXQ9ZGljdCgKLSAgICAgICAgICAgICAg ICBhbHQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICBzaGlmdD1UcnVlLAotICAgICAgICAgICAgICAg IGNvbnRyb2w9RmFsc2UsCi0gICAgICAgICAgICAgICAga2V5PWRpY3QoCi0gICAgICAgICAgICAg ICAgICAgIGNoYXI9J2EnLAotICAgICAgICAgICAgICAgICAgICBrZXlDb2RlPTY1Ci0gICAgICAg ICAgICAgICAgKQotICAgICAgICAgICAgKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0n QWx0K1NoaWZ0K2EnCi0gICAgICAgICkpLAorICAgICAgICAgICAgKSkKKyAgICAgICAgcmVzdWx0 IHwgc2hvdWxkLmJlLmVxdWFsKCdTaGlmdCthJykKIAotICAgICAgICAoJ0NoZWNrIHRleHQgcmVw cmVzZW50YXRpb24gb2YgYSBpbnZhbGlkIHNob3J0Y3V0cycsIGRpY3QoCi0gICAgICAgICAgICBm ZXRjaF9wcmVmPVRydWUsCi0gICAgICAgICAgICBzYW1wbGVfc2hvcnRjdXQ9Tm9uZSwKLSAgICAg ICAgICAgIGV4cGVjdGVkX3Jlc3VsdD0nJworICAgIGRlZiB0ZXN0X3Nob3J0Y3V0X2FsdF9zaGl0 X2Eoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSB0aGUgc2hvcnRjdXQgcHJl c3NlZCBpcyBBbHQgKyBTaGlmdCArICdhJworICAgICAgICBJdCByZXR1cm4gdGhlIHN0cmluZyAn QWx0K1NoaWZ0K2EnCisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBnZXRfdGV4dF9yZXBy ZXNlbnRhdGlvbl9vZl9zaG9ydGN1dChkaWN0KAorICAgICAgICAgICAgYWx0PVRydWUsCisgICAg ICAgICAgICBzaGlmdD1UcnVlLAorICAgICAgICAgICAgY29udHJvbD1GYWxzZSwKKyAgICAgICAg ICAgIGtleT1kaWN0KAorICAgICAgICAgICAgICAgIGNoYXI9J2EnLAorICAgICAgICAgICAgICAg IGtleUNvZGU9NjUKKyAgICAgICAgICAgICkKICAgICAgICAgKSkKKyAgICAgICAgcmVzdWx0IHwg c2hvdWxkLmJlLmVxdWFsKCdBbHQrU2hpZnQrYScpCiAKLSAgICBdCi0KLSAgICBkZWYgcnVuVGVz dChzZWxmKToKLSAgICAgICAgIiIiQ2hlY2sgY29ycmVjdCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8g aGFuZGxlIHRvIHJ1biBxdWVyeS4iIiIKLSAgICAgICAgcmVzdWx0ID0gZ2V0X3RleHRfcmVwcmVz ZW50YXRpb25fb2Zfc2hvcnRjdXQoc2VsZi5zYW1wbGVfc2hvcnRjdXQpCi0gICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3VsdCwgc2VsZi5leHBlY3RlZF9yZXN1bHQpCisgICAgZGVmIHRlc3Rf c2hvcnRjdXRfaW52YWxpZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gdGhlIGZ1 bmN0aW9uIHJlY2VpdmVzIE5vbmUgYXMgdGhlIHNob3J0Y3V0CisgICAgICAgIEl0IHJldHVybiBl bXB0eSBzdHJpbmcKKyAgICAgICAgIiIiCisgICAgICAgIHJlc3VsdCA9IGdldF90ZXh0X3JlcHJl c2VudGF0aW9uX29mX3Nob3J0Y3V0KE5vbmUpCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5l cXVhbCgnJykKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90 ZXN0X3N0YXJ0X3F1ZXJ5X3Rvb2wucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVz dHMvdGVzdF9zdGFydF9xdWVyeV90b29sLnB5CmluZGV4IGMyZmYyMWM1Li4xMDg1MzA5YiAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3Rfc3RhcnRfcXVl cnlfdG9vbC5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9z dGFydF9xdWVyeV90b29sLnB5CkBAIC04LDcgKzgsOCBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIGlt cG9ydCBzeXMKIAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9tIHBnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yIGltcG9ydCBTdGFydFJ1bm5pbmdRdWVyeQogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwg KDMsIDMpOgpAQCAtMTcsMTUgKzE4LDE4IEBAIGVsc2U6CiAgICAgZnJvbSB1bml0dGVzdC5tb2Nr IGltcG9ydCBwYXRjaCwgQU5ZCiAKIAotY2xhc3MgU3RhcnRRdWVyeVRvb2woQmFzZVRlc3RHZW5l cmF0b3IpOgotICAgICIiIgotICAgIEVuc3VyZXMgdGhhdCB0aGUgY2FsbCB0byB0aGUgYmFja2Vu ZCB0byBzdGFydCBydW5uaW5nIGEgcXVlcnkKLSAgICBjYWxscyB0aGUgbmVlZGVkIGZ1bmN0aW9u cwotICAgICIiIgorY2xhc3MgVGVzdFN0YXJ0UXVlcnlUb29sOgorICAgICIiIlN0YXJ0UXVlcnlU b29sIiIiCiAKICAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLmV4dHJhY3Rfc3Fs X2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzJykKLSAgICBkZWYgcnVuVGVzdChzZWxmLCBleHRyYWN0 X3NxbF9mcm9tX25ldHdvcmtfcGFyYW1ldGVyc19tb2NrKToKLSAgICAgICAgIiIiQ2hlY2sgY29y cmVjdCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gaGFuZGxlIHRvIHJ1biBxdWVyeS4iIiIKKyAgICBk ZWYgdGVzdF9hbGwoc2VsZiwgZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3BhcmFtZXRlcnNfbW9j aywKKyAgICAgICAgICAgICAgICAgY29udGV4dF9vZl90ZXN0cyk6CisgICAgICAgICIiIgorICAg ICAgICBXaGVuIHJlcXVlc3QgaXMgc2VudCB0byB0aGUgYmFja2VuZAorICAgICAgICBBbmQgdGhl IHJlcXVlc3QgcGFyYW1ldGVycyBhcmUgY29ycmVjdAorICAgICAgICBJdCBzdGFydHMgdGhlIGV4 ZWN1dGlvbiBvZiB0aGUgcXVlcnkgYW5kIHJldHVybiAyMDAKKyAgICAgICAgIiIiCisgICAgICAg IGh0dHBfY2xpZW50ID0gY29udGV4dF9vZl90ZXN0c1sndGVzdF9jbGllbnQnXQogCiAgICAgICAg IGV4dHJhY3Rfc3FsX2Zyb21fbmV0d29ya19wYXJhbWV0ZXJzX21vY2sucmV0dXJuX3ZhbHVlID0g XAogICAgICAgICAgICAgJ3RyYW5zZm9ybWVkIHNxbCcKQEAgLTM0LDEzICszOCwxNCBAQCBjbGFz cyBTdGFydFF1ZXJ5VG9vbChCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICdleGVjdXRlJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVl PSdzb21lIHJlc3VsdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBTdGFydFJ1bm5p bmdRdWVyeV9leGVjdXRlX21vY2s6Ci0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVy LnBvc3QoCisgICAgICAgICAgICByZXNwb25zZSA9IGh0dHBfY2xpZW50LnBvc3QoCiAgICAgICAg ICAgICAgICAgJy9zcWxlZGl0b3IvcXVlcnlfdG9vbC9zdGFydC8xMjM0JywKICAgICAgICAgICAg ICAgICBkYXRhPScic29tZSBzcWwgc3RhdGVtZW50IicKICAgICAgICAgICAgICkKIAotICAgICAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzLCAnMjAwIE9LJykKLSAgICAg ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLmRhdGEsIGInc29tZSByZXN1bHQnKQor ICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzIHwgc2hvdWxkLmJlLmVxdWFsLnRvKCcyMDAgT0sn KQorICAgICAgICAgICAgcmVzcG9uc2UuZGF0YSB8IHNob3VsZC5iZS5lcXVhbC50byhiJ3NvbWUg cmVzdWx0JykKKwogICAgICAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnlfZXhlY3V0ZV9tb2NrIFwK ICAgICAgICAgICAgICAgICAuYXNzZXJ0X2NhbGxlZF93aXRoKCd0cmFuc2Zvcm1lZCBzcWwnLCAx MjM0LCBBTlksIEZhbHNlKQogICAgICAgICAgICAgZXh0cmFjdF9zcWxfZnJvbV9uZXR3b3JrX3Bh cmFtZXRlcnNfbW9jayBcCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv dGVzdHMvdGVzdF92aWV3X2RhdGFfdGVtcGxhdGVzLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3Fs ZWRpdG9yL3Rlc3RzL3Rlc3Rfdmlld19kYXRhX3RlbXBsYXRlcy5weQppbmRleCA3YzM5NDIwZi4u ODYxNWYzNWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90 ZXN0X3ZpZXdfZGF0YV90ZW1wbGF0ZXMucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3Rlc3RzL3Rlc3Rfdmlld19kYXRhX3RlbXBsYXRlcy5weQpAQCAtMTEsMTcwICsxMSwxOTgg QEAgaW1wb3J0IG9zCiBpbXBvcnQgcmUKIAogZnJvbSBmbGFzayBpbXBvcnQgRmxhc2ssIHJlbmRl cl90ZW1wbGF0ZQorZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAogZnJvbSBqaW5qYTIgaW1wb3J0 IEZpbGVTeXN0ZW1Mb2FkZXIKIAotZnJvbSBwZ2FkbWluIGltcG9ydCBWZXJzaW9uZWRUZW1wbGF0 ZUxvYWRlcgotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRv cgotZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBjb25m aWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGlt cG9ydCBnZXRfZHJpdmVyCisKIHRyeToKICAgICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRl cmVkRGljdAogZXhjZXB0IEltcG9ydEVycm9yOgogICAgIGZyb20gb3JkZXJlZGRpY3QgaW1wb3J0 IE9yZGVyZWREaWN0CiAKIAotY2xhc3MgVGVzdFZpZXdEYXRhVGVtcGxhdGVzKEJhc2VUZXN0R2Vu ZXJhdG9yKToKLSAgICAiIiIKLSAgICBUaGlzIGNsYXNzIHZhbGlkYXRlcyB0aGUgdGVtcGxhdGUg cXVlcnkgZm9yCi0gICAgaW5zZXJ0aW5nIGFuZCBzZWxlY3RpbmcgdGFibGUgZGF0YS4KLSAgICAi IiIKLSAgICBkYXRhX3RvX2JlX3NhdmVkID0gT3JkZXJlZERpY3QoKQotICAgIGRhdGFfdG9fYmVf c2F2ZWRbJ2lkJ10gPSAnMScKLSAgICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0 ZXN0JwotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4gaW5z ZXJ0aW5nIGFuZCBzZWxlY3RpbmcgdGFibGUgZGF0YSB3aXRoIG9ubHkgUEsnLAotICAgICAgICAg ICAgZGljdCgKLSAgICAgICAgICAgICAgICBpbnNlcnRfdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9y L3NxbC9kZWZhdWx0L2luc2VydC5zcWwnLAotICAgICAgICAgICAgICAgIGluc2VydF9wYXJhbWV0 ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWQ9ZGF0YV90b19i ZV9zYXZlZCwKLSAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU5vbmUsCi0gICAgICAg ICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKLSAgICAgICAgICAgICAgICAg ICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKLSAgICAgICAgICAgICAgICAgICAgZGF0YV90eXBl PXsndGV4dCc6ICd0ZXh0JywgJ2lkJzogJ2ludGVnZXInfSwKLSAgICAgICAgICAgICAgICAgICAg cGtfbmFtZXM9J2lkJywKLSAgICAgICAgICAgICAgICAgICAgaGFzX29pZHM9RmFsc2UKLSAgICAg ICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGluc2VydF9leHBlY3RlZF9yZXR1cm5fdmFs dWU9J0lOU0VSVCBJTlRPJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJyB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlJwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJyAoaWQsIHRleHQpIFZBTFVFUycKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKCUoaWQpczo6aW50ZWdlciwgJwotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyUodGV4dClzOjp0ZXh0 KScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgcmV0dXJu aW5nIGlkOycsCi0gICAgICAgICAgICAgICAgc2VsZWN0X3RlbXBsYXRlX3BhdGg9J3NxbGVkaXRv ci9zcWwvZGVmYXVsdC9zZWxlY3Quc3FsJywKLSAgICAgICAgICAgICAgICBzZWxlY3RfcGFyYW1l dGVycz1kaWN0KAotICAgICAgICAgICAgICAgICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScs Ci0gICAgICAgICAgICAgICAgICAgIG5zcF9uYW1lPSd0ZXN0X3NjaGVtYScsCi0gICAgICAgICAg ICAgICAgICAgIHByaW1hcnlfa2V5cz1PcmRlcmVkRGljdChbKCdpZCcsICdpbnQ0JyldKSwKLSAg ICAgICAgICAgICAgICAgICAgaGFzX29pZHM9RmFsc2UKLSAgICAgICAgICAgICAgICApLAotICAg ICAgICAgICAgICAgIHNlbGVjdF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9J1NFTEVDVCAqIEZST00g JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rlc3Rfc2No ZW1hLnRlc3RfdGFibGUnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnV0hFUkUgaWQgPSAlKGlkKXM7JwotICAgICAgICAgICAgKSksCi0gICAgICAgICgKLSAg ICAgICAgICAgICdXaGVuIGluc2VydGluZyBhbmQgc2VsZWN0aW5nIHRhYmxlIGRhdGEgd2l0aCBt dWx0aXBsZSBQSycsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIGluc2VydF90 ZW1wbGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNxbCcsCi0gICAgICAg ICAgICAgICAgaW5zZXJ0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgZGF0 YV90b19iZV9zYXZlZD1kYXRhX3RvX2JlX3NhdmVkLAotICAgICAgICAgICAgICAgICAgICBwcmlt YXJ5X2tleXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFi bGUnLAotICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAotICAgICAg ICAgICAgICAgICAgICBkYXRhX3R5cGU9eyd0ZXh0JzogJ3RleHQnLCAnaWQnOiAnaW50ZWdlcid9 LAotICAgICAgICAgICAgICAgICAgICBwa19uYW1lcz0naWQsIHRleHQnLAotICAgICAgICAgICAg ICAgICAgICBoYXNfb2lkcz1GYWxzZQotICAgICAgICAgICAgICAgICksCi0gICAgICAgICAgICAg ICAgaW5zZXJ0X2V4cGVjdGVkX3JldHVybl92YWx1ZT0nSU5TRVJUIElOVE8nCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHRlc3Rfc2NoZW1hLnRlc3RfdGFi bGUnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIChpZCwg dGV4dCknCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIFZB TFVFUyAoJShpZClzOjppbnRlZ2VyLCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICcgJSh0ZXh0KXM6OnRleHQpJwotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJyByZXR1cm5pbmcgaWQsIHRleHQ7JywKLSAgICAgICAgICAg ICAgICBzZWxlY3RfdGVtcGxhdGVfcGF0aD0nc3FsZWRpdG9yL3NxbC9kZWZhdWx0L3NlbGVjdC5z cWwnLAotICAgICAgICAgICAgICAgIHNlbGVjdF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAg ICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAg bnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKLSAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlz PU9yZGVyZWREaWN0KFsoJ2lkJywgJ2ludDQnKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAoJ3RleHQnLCAndGV4dCcpXSksCi0gICAgICAgICAgICAgICAg ICAgIGhhc19vaWRzPUZhbHNlCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBz ZWxlY3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdTRUxFQ1QgKiBGUk9NJwotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxl JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dIRVJFIGlk ID0gJShpZClzIEFORCcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICcgdGV4dCA9ICUodGV4dClzOycKLSAgICAgICAgICAgICkpLAotICAgICAgICAoCi0gICAg ICAgICAgICAnV2hlbiBpbnNlcnRpbmcgYW5kIHNlbGVjdGluZyB0YWJsZSBkYXRhIHdpdGggUEsg YW5kIE9JRCcsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIGluc2VydF90ZW1w bGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNxbCcsCi0gICAgICAgICAg ICAgICAgaW5zZXJ0X3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgZGF0YV90 b19iZV9zYXZlZD1kYXRhX3RvX2JlX3NhdmVkLAotICAgICAgICAgICAgICAgICAgICBwcmltYXJ5 X2tleXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUn LAotICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAotICAgICAgICAg ICAgICAgICAgICBkYXRhX3R5cGU9eyd0ZXh0JzogJ3RleHQnLCAnaWQnOiAnaW50ZWdlcid9LAot ICAgICAgICAgICAgICAgICAgICBwa19uYW1lcz0naWQnLAotICAgICAgICAgICAgICAgICAgICBo YXNfb2lkcz1UcnVlCi0gICAgICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBpbnNlcnRf ZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdJTlNFUlQgSU5UTycKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICcgdGVzdF9zY2hlbWEudGVzdF90YWJsZScKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgKGlkLCB0ZXh0KSBWQUxV RVMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICglKGlk KXM6OmludGVnZXIsICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICclKHRleHQpczo6dGV4dCkgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3JldHVybmluZyBvaWQ7JywKLSAgICAgICAgICAgICAgICBzZWxlY3RfdGVt cGxhdGVfcGF0aD0nc3FsZWRpdG9yL3NxbC9kZWZhdWx0L3NlbGVjdC5zcWwnLAotICAgICAgICAg ICAgICAgIHNlbGVjdF9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgIG9iamVj dF9uYW1lPSd0ZXN0X3RhYmxlJywKLSAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rf c2NoZW1hJywKLSAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU9yZGVyZWREaWN0KFso J2lkJywgJ2ludDQnKV0pLAotICAgICAgICAgICAgICAgICAgICBoYXNfb2lkcz1UcnVlCi0gICAg ICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICAgICBzZWxlY3RfZXhwZWN0ZWRfcmV0dXJuX3Zh bHVlPSdTRUxFQ1Qgb2lkLCAqICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdGUk9NIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV0hFUkUgb2lkID0gJShvaWQpczsnCi0gICAg ICAgICAgICApKSwKLSAgICAgICAgKAotICAgICAgICAgICAgJ1doZW4gaW5zZXJ0aW5nIGFuZCBz ZWxlY3RpbmcgdGFibGUgZGF0YSB3aXRoIG9ubHkgT0lEJywKLSAgICAgICAgICAgIGRpY3QoCi0g ICAgICAgICAgICAgICAgaW5zZXJ0X3RlbXBsYXRlX3BhdGg9J3NxbGVkaXRvci9zcWwvZGVmYXVs dC9pbnNlcnQuc3FsJywKLSAgICAgICAgICAgICAgICBpbnNlcnRfcGFyYW1ldGVycz1kaWN0KAot ICAgICAgICAgICAgICAgICAgICBkYXRhX3RvX2JlX3NhdmVkPWRhdGFfdG9fYmVfc2F2ZWQsCi0g ICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lLAotICAgICAgICAgICAgICAgICAg ICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCi0gICAgICAgICAgICAgICAgICAgIG5zcF9uYW1l PSd0ZXN0X3NjaGVtYScsCi0gICAgICAgICAgICAgICAgICAgIGRhdGFfdHlwZT17J3RleHQnOiAn dGV4dCcsICdpZCc6ICdpbnRlZ2VyJ30sCi0gICAgICAgICAgICAgICAgICAgIHBrX25hbWVzPU5v bmUsCi0gICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPVRydWUKLSAgICAgICAgICAgICAgICAp LAotICAgICAgICAgICAgICAgIGluc2VydF9leHBlY3RlZF9yZXR1cm5fdmFsdWU9J0lOU0VSVCBJ TlRPJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyB0ZXN0 X3NjaGVtYS50ZXN0X3RhYmxlJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJyAoaWQsIHRleHQpIFZBTFVFUycKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICcgKCUoaWQpczo6aW50ZWdlciwnCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICUodGV4dClzOjp0ZXh0KScKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgcmV0dXJuaW5nIG9pZDsnLAot ICAgICAgICAgICAgICAgIHNlbGVjdF90ZW1wbGF0ZV9wYXRoPSdzcWxlZGl0b3Ivc3FsL2RlZmF1 bHQvc2VsZWN0LnNxbCcsCi0gICAgICAgICAgICAgICAgc2VsZWN0X3BhcmFtZXRlcnM9ZGljdCgK LSAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUnLAotICAgICAgICAg ICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAotICAgICAgICAgICAgICAgICAgICBw cmltYXJ5X2tleXM9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgaGFzX29pZHM9VHJ1ZQotICAg ICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgICAgc2VsZWN0X2V4cGVjdGVkX3JldHVybl92 YWx1ZT0nU0VMRUNUIG9pZCwgKiBGUk9NJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJyB0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlJwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dIRVJFIG9pZCA9ICUob2lkKXM7JworY2xh c3MgVGVzdFZpZXdEYXRhVGVtcGxhdGVzOgorICAgIGRlZiB0ZXN0X2luc2VydF93aXRoX29ubHlf cGsoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIEluc2VydGluZyB0YWJsZSBkYXRh IHdpdGggb25seSBQcmltYXJ5IEtleQorICAgICAgICBJdCByZXR1cm5zIHRoZSBjb3JyZWN0IFNR TAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YV90b19iZV9zYXZlZCA9IE9yZGVyZWREaWN0KCkK KyAgICAgICAgZGF0YV90b19iZV9zYXZlZFsnaWQnXSA9ICcxJworICAgICAgICBkYXRhX3RvX2Jl X3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0ZXN0JworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBf Y29udGV4dCgpOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKCdzcWxlZGl0 b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNxbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YV90b19iZV9zYXZlZD1kYXRhX3RvX2JlX3NhdmVkLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfdHlwZT17J3RleHQnOiAn dGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn aWQnOiAnaW50ZWdlcid9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBr X25hbWVzPSdpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzX29p ZHM9RmFsc2UpCisKKyAgICAgICAgICAgIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpIHwg c2hvdWxkLmJlLmVxdWFsKAorICAgICAgICAgICAgICAgICdJTlNFUlQgSU5UTyB0ZXN0X3NjaGVt YS50ZXN0X3RhYmxlIChpZCwgdGV4dCkgVkFMVUVTJworICAgICAgICAgICAgICAgICcgKCUoaWQp czo6aW50ZWdlciwgJSh0ZXh0KXM6OnRleHQpIHJldHVybmluZyBpZDsnCisgICAgICAgICAgICAg ICAgLnJlcGxhY2UoIlxuIiwgIiIpKQorCisgICAgZGVmIHRlc3RfaW5zZXJ0X3dpdGhfbXVsdGlw bGVfcGsoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIEluc2VydGluZyB0YWJsZSBk YXRhIHdpdGggbXVsdGlwbGUgUHJpbWFyeSBLZXlzCisgICAgICAgIEl0IHJldHVybnMgdGhlIGNv cnJlY3QgU1FMCisgICAgICAgICIiIgorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkID0gT3JkZXJl ZERpY3QoKQorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWydpZCddID0gJzEnCisgICAgICAgIGRh dGFfdG9fYmVfc2F2ZWRbJ3RleHQnXSA9ICdqdXN0IHRlc3QnCisgICAgICAgIHdpdGggRmFrZUFw cCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUo J3NxbGVkaXRvci9zcWwvZGVmYXVsdC9pbnNlcnQuc3FsJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhX3RvX2JlX3NhdmVkPWRhdGFfdG9fYmVfc2F2ZWQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU5vbmUsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUn LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5zcF9uYW1lPSd0ZXN0X3Nj aGVtYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV90eXBlPXsn dGV4dCc6ICd0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdpZCc6ICdpbnRlZ2VyJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcGtfbmFtZXM9J2lkLCB0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBoYXNfb2lkcz1GYWxzZSkKKworICAgICAgICAgICAgc3RyKHJlc3VsdCkucmVwbGFj ZSgiXG4iLCAiIikgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAgICAgICAgICAgJ0lOU0VSVCBJ TlRPIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUgKGlkLCB0ZXh0KSBWQUxVRVMnCisgICAgICAgICAg ICAgICAgJyAoJShpZClzOjppbnRlZ2VyLCAlKHRleHQpczo6dGV4dCkgcmV0dXJuaW5nIGlkLCB0 ZXh0OycKKyAgICAgICAgICAgICAgICAucmVwbGFjZSgiXG4iLCAiIikpCisKKyAgICBkZWYgdGVz dF9pbnNlcnRfd2l0aF9vbmVfcGtfYW5kX29pZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAg IFdoZW4gSW5zZXJ0aW5nIHRhYmxlIGRhdGEgd2l0aCBvbmUgUHJpbWFyeSBLZXkgYW5kIE9JRAor ICAgICAgICBJdCByZXR1cm5zIHRoZSBjb3JyZWN0IFNRTAorICAgICAgICAiIiIKKyAgICAgICAg ZGF0YV90b19iZV9zYXZlZCA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgZGF0YV90b19iZV9zYXZl ZFsnaWQnXSA9ICcxJworICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0 ZXN0JworICAgICAgICB3aXRoIEZha2VBcHAoKS5hcHBfY29udGV4dCgpOgorICAgICAgICAgICAg cmVzdWx0ID0gcmVuZGVyX3RlbXBsYXRlKCdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNx bCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV90b19iZV9zYXZl ZD1kYXRhX3RvX2JlX3NhdmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHByaW1hcnlfa2V5cz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFfdHlwZT17J3RleHQnOiAndGV4dCcsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiAnaW50ZWdlcid9LAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBrX25hbWVzPSdpZCcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzX29pZHM9VHJ1ZSkKKworICAgICAgICAgICAg c3RyKHJlc3VsdCkucmVwbGFjZSgiXG4iLCAiIikgfCBzaG91bGQuYmUuZXF1YWwoCisgICAgICAg ICAgICAgICAgJ0lOU0VSVCBJTlRPIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUgKGlkLCB0ZXh0KSBW QUxVRVMnCisgICAgICAgICAgICAgICAgJyAoJShpZClzOjppbnRlZ2VyLCAlKHRleHQpczo6dGV4 dCkgcmV0dXJuaW5nIG9pZDsnCisgICAgICAgICAgICAgICAgLnJlcGxhY2UoIlxuIiwgIiIpKQor CisgICAgZGVmIHRlc3RfaW5zZXJ0X3dpdGhfb25seV9vaWQoc2VsZik6CisgICAgICAgICIiIgor ICAgICAgICBXaGVuIEluc2VydGluZyB0YWJsZSBkYXRhIHdpdGggT0lECisgICAgICAgIEl0IHJl dHVybnMgdGhlIGNvcnJlY3QgU1FMCisgICAgICAgICIiIgorICAgICAgICBkYXRhX3RvX2JlX3Nh dmVkID0gT3JkZXJlZERpY3QoKQorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWydpZCddID0gJzEn CisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ3RleHQnXSA9ICdqdXN0IHRlc3QnCisgICAgICAg IHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5k ZXJfdGVtcGxhdGUoJ3NxbGVkaXRvci9zcWwvZGVmYXVsdC9pbnNlcnQuc3FsJywKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3RvX2JlX3NhdmVkPWRhdGFfdG9fYmVf c2F2ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlz PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9 J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5zcF9u YW1lPSd0ZXN0X3NjaGVtYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YV90eXBlPXsndGV4dCc6ICd0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICdpZCc6ICdpbnRlZ2VyJ30sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGtfbmFtZXM9J2lkJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoYXNfb2lkcz1UcnVlKQorCisgICAgICAgICAgICBzdHIocmVzdWx0KS5y ZXBsYWNlKCJcbiIsICIiKSB8IHNob3VsZC5iZS5lcXVhbCgKKyAgICAgICAgICAgICAgICAnSU5T RVJUIElOVE8gdGVzdF9zY2hlbWEudGVzdF90YWJsZSAoaWQsIHRleHQpIFZBTFVFUycKKyAgICAg ICAgICAgICAgICAnICglKGlkKXM6OmludGVnZXIsICUodGV4dClzOjp0ZXh0KSByZXR1cm5pbmcg b2lkOycKKyAgICAgICAgICAgICAgICAucmVwbGFjZSgiXG4iLCAiIikpCisKKyAgICBkZWYgdGVz dF9zZWxlY3Rfb25seV9wayhzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU2VsZWN0 aW5nIHRhYmxlIGRhdGEgd2l0aCBvbmx5IFByaW1hcnkgS2V5CisgICAgICAgIEl0IHJldHVybnMg dGhlIGNvcnJlY3QgU1FMCisgICAgICAgICIiIgorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkID0g T3JkZXJlZERpY3QoKQorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWydpZCddID0gJzEnCisgICAg ICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ3RleHQnXSA9ICdqdXN0IHRlc3QnCisgICAgICAgIHdpdGgg RmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAgICAgICByZXN1bHQgPSByZW5kZXJfdGVt cGxhdGUoJ3NxbGVkaXRvci9zcWwvZGVmYXVsdC9zZWxlY3Quc3FsJywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RfbmFtZT0ndGVzdF90YWJsZScsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9T3JkZXJlZERp Y3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2lkJywgJ2lu dDQnKV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPUZh bHNlKQorICAgICAgICAgICAgcmUuc3ViKCcgKycsICcgJywgc3RyKHJlc3VsdCkucmVwbGFjZSgi XG4iLCAiICIpKSB8IHNob3VsZC5iZSBcCisgICAgICAgICAgICAgICAgLmVxdWFsKAorICAgICAg ICAgICAgICAgICIiIiBTRUxFQ1QgKiBGUk9NIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUgV0hFUkUg aWQgPSAlKGlkKXMgOyIiIgogICAgICAgICAgICAgKQotICAgICAgICApCi0gICAgXQogCi0gICAg ZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBsYXRl TG9hZGVyKEZha2VBcHAoKSkKKyAgICBkZWYgdGVzdF9zZWxlY3Rfd2l0aF9tdWx0aXBsZV9wayhz ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU2VsZWN0aW5nIHRhYmxlIGRhdGEgd2l0 aCBtdWx0aXBsZSBQcmltYXJ5IEtleXMKKyAgICAgICAgSXQgcmV0dXJucyB0aGUgY29ycmVjdCBT UUwKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWQgPSBPcmRlcmVkRGljdCgp CisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ2lkJ10gPSAnMScKKyAgICAgICAgZGF0YV90b19i ZV9zYXZlZFsndGV4dCddID0gJ2p1c3QgdGVzdCcKKyAgICAgICAgd2l0aCBGYWtlQXBwKCkuYXBw X2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZSgnc3FsZWRp dG9yL3NxbC9kZWZhdWx0L3NlbGVjdC5zcWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHByaW1hcnlfa2V5cz1PcmRlcmVkRGljdCgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnaWQnLCAnaW50NCcpLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCd0ZXh0JywgJ3RleHQnKV0pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc19vaWRzPUZhbHNlKQorICAg ICAgICAgICAgcmUuc3ViKCcgKycsICcgJywgc3RyKHJlc3VsdCkucmVwbGFjZSgiXG4iLCAiICIp KSB8IHNob3VsZC5iZSBcCisgICAgICAgICAgICAgICAgLmVxdWFsKAorICAgICAgICAgICAgICAg ICIiIiBTRUxFQ1QgKiBGUk9NIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUgIiIiICsKKyAgICAgICAg ICAgICAgICAiIiJXSEVSRSBpZCA9ICUoaWQpcyBBTkQgdGV4dCA9ICUodGV4dClzIDsiIiIKKyAg ICAgICAgICAgICkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgIGRlZiB0ZXN0X3NlbGVj dF93aXRoX29uZV9wa19hbmRfb2lkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBT ZWxlY3RpbmcgdGFibGUgZGF0YSB3aXRoIG9uZSBQcmltYXJ5IEtleSBhbmQgT0lECisgICAgICAg IEl0IHJldHVybnMgdGhlIGNvcnJlY3QgU1FMCisgICAgICAgICIiIgorICAgICAgICBkYXRhX3Rv X2JlX3NhdmVkID0gT3JkZXJlZERpY3QoKQorICAgICAgICBkYXRhX3RvX2JlX3NhdmVkWydpZCdd ID0gJzEnCisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ3RleHQnXSA9ICdqdXN0IHRlc3QnCiAg ICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6Ci0gICAgICAgICAgICByZXN1bHQg PSByZW5kZXJfdGVtcGxhdGUoc2VsZi5pbnNlcnRfdGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqKnNlbGYuaW5zZXJ0X3BhcmFtZXRlcnMpCi0gICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHJlLnN1YignICsnLCAn ICcsIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpKSwKLSAgICAgICAgICAgICAgICByZS5z dWIoJyArJywgJyAnLAotICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmluc2VydF9leHBlY3Rl ZF9yZXR1cm5fdmFsdWUucmVwbGFjZSgiXG4iLCAiIikpKQotCi0gICAgICAgICAgICByZXN1bHQg PSByZW5kZXJfdGVtcGxhdGUoc2VsZi5zZWxlY3RfdGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqKnNlbGYuc2VsZWN0X3BhcmFtZXRlcnMpCi0gICAg ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIHJlLnN1YignICsnLCAn ICcsIHN0cihyZXN1bHQpLnJlcGxhY2UoIlxuIiwgIiIpKSwKLSAgICAgICAgICAgICAgICByZS5z dWIoJyArJywgJyAnLAotICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlbGVjdF9leHBlY3Rl ZF9yZXR1cm5fdmFsdWUucmVwbGFjZSgiXG4iLCAiIikpKQorICAgICAgICAgICAgcmVzdWx0ID0g cmVuZGVyX3RlbXBsYXRlKCdzcWxlZGl0b3Ivc3FsL2RlZmF1bHQvc2VsZWN0LnNxbCcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUn LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5zcF9uYW1lPSd0ZXN0X3Nj aGVtYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlz PU9yZGVyZWREaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb KCdpZCcsICdpbnQ0JyldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo YXNfb2lkcz1UcnVlKQorICAgICAgICAgICAgcmUuc3ViKCcgKycsICcgJywgc3RyKHJlc3VsdCku cmVwbGFjZSgiXG4iLCAiICIpKSB8IHNob3VsZC5iZSBcCisgICAgICAgICAgICAgICAgLmVxdWFs KAorICAgICAgICAgICAgICAgICIiIiBTRUxFQ1Qgb2lkLCAqIEZST00gdGVzdF9zY2hlbWEudGVz dF90YWJsZSAiIiIgKworICAgICAgICAgICAgICAgICIiIldIRVJFIG9pZCA9ICUob2lkKXMgOyIi IgorICAgICAgICAgICAgKQorCisgICAgZGVmIHRlc3Rfc2VsZWN0X3dpdGhfb25seV9vaWQoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFNlbGVjdGluZyB0YWJsZSBkYXRhIHdpdGgg T0lECisgICAgICAgIEl0IHJldHVybnMgdGhlIGNvcnJlY3QgU1FMCisgICAgICAgICIiIgorICAg ICAgICBkYXRhX3RvX2JlX3NhdmVkID0gT3JkZXJlZERpY3QoKQorICAgICAgICBkYXRhX3RvX2Jl X3NhdmVkWydpZCddID0gJzEnCisgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ3RleHQnXSA9ICdq dXN0IHRlc3QnCisgICAgICAgIHdpdGggRmFrZUFwcCgpLmFwcF9jb250ZXh0KCk6CisgICAgICAg ICAgICByZXN1bHQgPSByZW5kZXJfdGVtcGxhdGUoJ3NxbGVkaXRvci9zcWwvZGVmYXVsdC9zZWxl Y3Quc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RfbmFt ZT0ndGVzdF90YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnNw X25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwcmltYXJ5X2tleXM9T3JkZXJlZERpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFsoJ2lkJywgJ2ludDQnKV0pLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGhhc19vaWRzPVRydWUpCisgICAgICAgICAgICByZS5zdWIoJyArJywgJyAn LCBzdHIocmVzdWx0KS5yZXBsYWNlKCJcbiIsICIgIikpIHwgc2hvdWxkLmJlIFwKKyAgICAgICAg ICAgICAgICAuZXF1YWwoCisgICAgICAgICAgICAgICAgIiIiIFNFTEVDVCBvaWQsICogRlJPTSB0 ZXN0X3NjaGVtYS50ZXN0X3RhYmxlIFdIRVJFICIiIiArCisgICAgICAgICAgICAgICAgIiIib2lk ID0gJShvaWQpcyA7IiIiCisgICAgICAgICAgICApCiAKIAogY2xhc3MgRmFrZUFwcChGbGFzayk6 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVz dF9hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlci5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci91dGlscy90ZXN0cy90ZXN0X2FwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyLnB5CmluZGV4 IDZhOTYyMjBmLi4xN2M1MjA5NCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRp dG9yL3V0aWxzL3Rlc3RzL3Rlc3RfYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXIucHkKKysrIGIv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3RfYXBwbHlfZXhwbGFp bl9wbGFuX3dyYXBwZXIucHkKQEAgLTcsMTEgKzcsMTEgQEAKICMKICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CiAKLSIiIkFwcGx5IEV4cGxhaW4gcGxhbiB3cmFwcGVyIHRvIHNxbCBvYmplY3QuIiIiCiBpbXBv cnQgc3lzCiAKK2Zyb20gZ3JhcHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLnRvb2xz LnNxbGVkaXRvci51dGlscyBpbXBvcnQgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVl ZGVkCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiAK IGlmIHN5cy52ZXJzaW9uX2luZm8gPCAoMywgMyk6CiAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRj aCwgTWFnaWNNb2NrCkBAIC0xOSwxMTcgKzE5LDExNiBAQCBlbHNlOgogICAgIGZyb20gdW5pdHRl c3QubW9jayBpbXBvcnQgcGF0Y2gsIE1hZ2ljTW9jawogCiAKLWNsYXNzIFN0YXJ0UnVubmluZ1F1 ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgQ2hlY2sgdGhhdCB0aGUg U3RhcnRSdW5uaW5nUXVlcnlUZXN0IG1ldGhvZCB3b3JrcyBhcwotICAgIGludGVuZGVkCi0gICAg IiIiCi0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAoJ1doZW4gZXhwbGFpbl9wbGFuIGlzIG5v bmUsIGl0IHNob3VsZCByZXR1cm4gdW5hbHRlcmVkIFNRTCcsIGRpY3QoCi0gICAgICAgICAgICBm dW5jdGlvbl9pbnB1dF9wYXJhbWV0ZXJzPXsKLSAgICAgICAgICAgICAgICAnbWFuYWdlcic6IE1h Z2ljTW9jaygpLAotICAgICAgICAgICAgICAgICdzcWwnOiB7Ci0gICAgICAgICAgICAgICAgICAg ICdzcWwnOiAnc29tZSBzcWwnLAotICAgICAgICAgICAgICAgICAgICAnZXhwbGFpbl9wbGFuJzog Tm9uZQorY2xhc3MgVGVzdFN0YXJ0UnVubmluZ1F1ZXJ5OgorICAgIEBwYXRjaCgncGdhZG1pbi50 b29scy5zcWxlZGl0b3IudXRpbHMuYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXInCisgICAgICAg ICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdFN0YXJ0UnVubmluZ1F1ZXJ5Tm9F eHBsYWluUGxhbjEoc2VsZiwgcmVuZGVyX3RlbXBsYXRlX21vY2spOgorICAgICAgICAiIiIKKyAg ICAgICAgV2hlbiB0aGUgU3RhcnRSdW5uaW5nUXVlcnlUZXN0IG1ldGhvZCBpcyBpbnZva2VkCisg ICAgICAgIEFuZCB0aGUgZXhwbGFpbiBwbGFuIGlzIG5vdCBwcmVzZW50CisgICAgICAgIEl0IHJl dHVybnMgdW5hbHRlcmVkIFNRTAorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gYXBwbHlf ZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkKAorICAgICAgICAgICAgTWFnaWNNb2NrKCks IHsKKyAgICAgICAgICAgICAgICAnc3FsJzogJ3NvbWUgc3FsJywKKyAgICAgICAgICAgICAgICAn ZXhwbGFpbl9wbGFuJzogTm9uZQorICAgICAgICAgICAgfQorICAgICAgICApCisKKyAgICAgICAg cmVzdWx0IHwgc2hvdWxkLmJlLmVxdWFsLnRvKCdzb21lIHNxbCcpCisgICAgICAgIHJlbmRlcl90 ZW1wbGF0ZV9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKworICAgIEBwYXRjaCgncGdhZG1pbi50 b29scy5zcWxlZGl0b3IudXRpbHMuYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXInCisgICAgICAg ICAgICcucmVuZGVyX3RlbXBsYXRlJykKKyAgICBkZWYgdGVzdFN0YXJ0UnVubmluZ1F1ZXJ5Tm9F eHBsYWluUGxhbjIoc2VsZiwgcmVuZGVyX3RlbXBsYXRlX21vY2spOgorICAgICAgICAiIiIKKyAg ICAgICAgV2hlbiB0aGUgU3RhcnRSdW5uaW5nUXVlcnlUZXN0IG1ldGhvZCBpcyBpbnZva2VkCisg ICAgICAgIEFuZCB0aGUgZXhwbGFpbiBwbGFuIGlzIG5vdCBwcmVzZW50CisgICAgICAgIEl0IHJl dHVybnMgdW5hbHRlcmVkIFNRTAorICAgICAgICAiIiIKKyAgICAgICAgcmVzdWx0ID0gYXBwbHlf ZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkKAorICAgICAgICAgICAgTWFnaWNNb2NrKCks IHsKKyAgICAgICAgICAgICAgICAnc3FsJzogJ3NvbWUgc3FsJywKKyAgICAgICAgICAgIH0KKyAg ICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50bygnc29tZSBzcWwn KQorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisKKyAg ICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLmFwcGx5X2V4cGxhaW5fcGxh bl93cmFwcGVyJworICAgICAgICAgICAnLnJlbmRlcl90ZW1wbGF0ZScpCisgICAgZGVmIHRlc3RT dGFydFJ1bm5pbmdRdWVyeVBnRXhwbGFpblBsYW4oc2VsZiwgcmVuZGVyX3RlbXBsYXRlX21vY2sp OgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgU3RhcnRSdW5uaW5nUXVlcnlUZXN0IG1l dGhvZCBpcyBpbnZva2VkCisgICAgICAgIEFuZCB0aGUgZXhwbGFpbiBwbGFuIGlzIHByZXNlbnQg Zm9yIHBvc3RncmVzCisgICAgICAgIEl0IHJldHVybnMgU1FMIHdpdGggdGhlIGV4cGxhaW4gcGxh bgorICAgICAgICAiIiIKKworICAgICAgICBleHBlY3RlZF9yZXR1cm5fdmFsdWUgPSAnRVhQTEFJ TiAoRk9STUFUIEpTT04sIEFOQUxZWkUgRkFMU0UsICcgXAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnVkVSQk9TRSBUUlVFLCBDT1NUUyBGQUxTRSwgQlVGRkVSUyBGQUxTRSwgJyBc CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUSU1JTkcgVFJVRSkgc29tZSBzcWwn CisKKyAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRf cmV0dXJuX3ZhbHVlCisKKyAgICAgICAgcmVzdWx0ID0gYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBw ZXJfaWZfbmVlZGVkKAorICAgICAgICAgICAgTWFnaWNNb2NrKHZlcnNpb249MTAsIHNlcnZlcl90 eXBlPSdwZycpLCB7CisgICAgICAgICAgICAgICAgJ3NxbCc6ICdzb21lIHNxbCcsCisgICAgICAg ICAgICAgICAgJ2V4cGxhaW5fcGxhbic6IHsKKyAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCc6 ICdqc29uJywKKyAgICAgICAgICAgICAgICAgICAgJ2FuYWx5emUnOiBGYWxzZSwKKyAgICAgICAg ICAgICAgICAgICAgJ3ZlcmJvc2UnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAnYnVmZmVy cyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAndGltaW5nJzogVHJ1ZQogICAgICAgICAg ICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0KLSAgICAgICAgICAgIGV4cGVjdF9yZW5kZXJfdGVt cGxhdGVfbW9ja19wYXJhbWV0ZXJzPU5vbmUsCi0KLSAgICAgICAgICAgIGV4cGVjdGVkX3JldHVy bl92YWx1ZT0nc29tZSBzcWwnCi0gICAgICAgICkpLAotICAgICAgICAoJ1doZW4gZXhwbGFpbl9w bGFuIGlzIG5vdCBwcmVzZW50LCBpdCBzaG91bGQgcmV0dXJuIHVuYWx0ZXJlZCBTUUwnLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9pbnB1dF9wYXJhbWV0ZXJzPXsKLSAg ICAgICAgICAgICAgICAgJ21hbmFnZXInOiBNYWdpY01vY2soKSwKLSAgICAgICAgICAgICAgICAg J3NxbCc6IHsKLSAgICAgICAgICAgICAgICAgICAgICdzcWwnOiAnc29tZSBzcWwnCi0gICAgICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgICB9LAotCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRl cl90ZW1wbGF0ZV9tb2NrX3BhcmFtZXRlcnM9Tm9uZSwKLQotICAgICAgICAgICAgIGV4cGVjdGVk X3JldHVybl92YWx1ZT0nc29tZSBzcWwnCi0gICAgICAgICApKSwKLSAgICAgICAgKCdXaGVuIGV4 cGxhaW5fcGxhbiBpcyBwcmVzZW50IGZvciBhIFBvc3RncmVzIHNlcnZlciB2ZXJzaW9uIDEwLCAn Ci0gICAgICAgICAnaXQgc2hvdWxkIHJldHVybiBTUUwgd2l0aCBleHBsYWluIHBsYW4nLAotICAg ICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlvbl9pbnB1dF9wYXJhbWV0ZXJzPXsKLSAg ICAgICAgICAgICAgICAgJ21hbmFnZXInOiBNYWdpY01vY2sodmVyc2lvbj0xMCwgc2VydmVyX3R5 cGU9J3BnJyksCi0gICAgICAgICAgICAgICAgICdzcWwnOiB7Ci0gICAgICAgICAgICAgICAgICAg ICAnc3FsJzogJ3NvbWUgc3FsJywKLSAgICAgICAgICAgICAgICAgICAgICdleHBsYWluX3BsYW4n OiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCc6ICdqc29uJywKLSAgICAgICAg ICAgICAgICAgICAgICAgICAnYW5hbHl6ZSc6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAg ICAgICd2ZXJib3NlJzogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAnYnVmZmVycyc6 IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1pbmcnOiBUcnVlCi0gICAgICAg ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICB9LAotCi0g ICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9tb2NrX3BhcmFtZXRlcnM9ZGljdCgK LSAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWxlZGl0b3Ivc3FsLyMx MCMvZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAgICAgIG5hbWVkX3BhcmFtZXRlcnM9 ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCi0gICAgICAgICAgICAg ICAgICAgICBhbmFseXplPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1UcnVl LAotICAgICAgICAgICAgICAgICAgICAgYnVmZmVycz1GYWxzZSwKLSAgICAgICAgICAgICAgICAg ICAgIHRpbWluZz1UcnVlCi0gICAgICAgICAgICAgICAgICkpLAotCi0gICAgICAgICAgICAgZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBMQUlOIChGT1JNQVQgSlNPTiwgQU5BTFlaRSBGQUxTRSwg JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVkVSQk9TRSBUUlVFLCBDT1NU UyBGQUxTRSwgQlVGRkVSUyBGQUxTRSwgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnVElNSU5HIFRSVUUpIHNvbWUgc3FsJwotICAgICAgICAgKSksCi0gICAgICAgICgnV2hl biBleHBsYWluX3BsYW4gaXMgcHJlc2VudCBmb3IgYSBHcmVlblBsdW0gc2VydmVyIHZlcnNpb24g NSwgJwotICAgICAgICAgJ2l0IHNob3VsZCByZXR1cm4gU1FMIHdpdGggZXhwbGFpbiBwbGFuJywK LSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25faW5wdXRfcGFyYW1ldGVycz17 Ci0gICAgICAgICAgICAgICAgICdtYW5hZ2VyJzogTWFnaWNNb2NrKHZlcnNpb249ODAzMjMsIHNl cnZlcl90eXBlPSdncGRiJyksCi0gICAgICAgICAgICAgICAgICdzcWwnOiB7Ci0gICAgICAgICAg ICAgICAgICAgICAnc3FsJzogJ3NvbWUgc3FsJywKLSAgICAgICAgICAgICAgICAgICAgICdleHBs YWluX3BsYW4nOiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCc6ICdqc29uJywK LSAgICAgICAgICAgICAgICAgICAgICAgICAnYW5hbHl6ZSc6IEZhbHNlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICd2ZXJib3NlJzogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAn YnVmZmVycyc6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1pbmcnOiBUcnVl Ci0gICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg ICB9LAotCi0gICAgICAgICAgICAgZXhwZWN0X3JlbmRlcl90ZW1wbGF0ZV9tb2NrX3BhcmFtZXRl cnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgdGVtcGxhdGVfbmFtZV9vcl9saXN0PSdzcWxlZGl0 b3Ivc3FsLyNncGRiIzgwMzIzIy8nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAnZXhwbGFpbl9wbGFuLnNxbCcsCi0gICAgICAgICAgICAgICAgIG5hbWVkX3BhcmFtZXRl cnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCi0gICAgICAgICAg ICAgICAgICAgICBhbmFseXplPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgdmVyYm9zZT1U cnVlLAotICAgICAgICAgICAgICAgICAgICAgYnVmZmVycz1GYWxzZSwKLSAgICAgICAgICAgICAg ICAgICAgIHRpbWluZz1UcnVlCi0gICAgICAgICAgICAgICAgICkpLAotCi0gICAgICAgICAgICAg ZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdFWFBMQUlOIHNvbWUgc3FsJwotICAgICAgICAgKSkKLSAg ICBdCi0KLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAgICAgd2l0aCBwYXRjaCgKLSAgICAg ICAgICAgICdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5hcHBseV9leHBsYWluX3BsYW5f d3JhcHBlcicKLSAgICAgICAgICAgICcucmVuZGVyX3RlbXBsYXRlJwotICAgICAgICApIGFzIHJl bmRlcl90ZW1wbGF0ZV9tb2NrOgotICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlX21vY2sucmV0 dXJuX3ZhbHVlID0gc2VsZi5leHBlY3RlZF9yZXR1cm5fdmFsdWUKLSAgICAgICAgICAgIHJlc3Vs dCA9IGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCgKLSAgICAgICAgICAgICAg ICAqKnNlbGYuZnVuY3Rpb25faW5wdXRfcGFyYW1ldGVycykKLSAgICAgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWxzKHJlc3VsdCwgc2VsZi5leHBlY3RlZF9yZXR1cm5fdmFsdWUpCi0gICAgICAgICAg ICBpZiBzZWxmLmV4cGVjdF9yZW5kZXJfdGVtcGxhdGVfbW9ja19wYXJhbWV0ZXJzOgotICAgICAg ICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5leHBlY3RfcmVuZGVyX3RlbXBsYXRlX21vY2tfcGFyYW1ldGVy c1sKLSAgICAgICAgICAgICAgICAgICAgICAgICd0ZW1wbGF0ZV9uYW1lX29yX2xpc3QnXSwKLSAg ICAgICAgICAgICAgICAgICAgc3FsPXNlbGYuZnVuY3Rpb25faW5wdXRfcGFyYW1ldGVyc1snc3Fs J11bJ3NxbCddLAotICAgICAgICAgICAgICAgICAgICAqKnNlbGYuZXhwZWN0X3JlbmRlcl90ZW1w bGF0ZV9tb2NrX3BhcmFtZXRlcnNbCi0gICAgICAgICAgICAgICAgICAgICAgICAnbmFtZWRfcGFy YW1ldGVycyddCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAg ICAgICB9CisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8o ZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlKQorICAgICAgICByZW5kZXJfdGVtcGxhdGVfbW9jay5hc3Nl cnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnc3FsZWRpdG9yL3NxbC8jMTAjL2V4cGxhaW5f cGxhbi5zcWwnLAorICAgICAgICAgICAgZm9ybWF0PSdqc29uJywKKyAgICAgICAgICAgIGFuYWx5 emU9RmFsc2UsCisgICAgICAgICAgICB2ZXJib3NlPVRydWUsCisgICAgICAgICAgICBidWZmZXJz PUZhbHNlLAorICAgICAgICAgICAgdGltaW5nPVRydWUsCisgICAgICAgICAgICBzcWw9J3NvbWUg c3FsJworICAgICAgICApCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0 aWxzLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyJworICAgICAgICAgICAnLnJlbmRlcl90ZW1w bGF0ZScpCisgICAgZGVmIHRlc3RTdGFydFJ1bm5pbmdRdWVyeUdwZGJFeHBsYWluUGxhbihzZWxm LCByZW5kZXJfdGVtcGxhdGVfbW9jayk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBT dGFydFJ1bm5pbmdRdWVyeVRlc3QgbWV0aG9kIGlzIGludm9rZWQKKyAgICAgICAgQW5kIHRoZSBl eHBsYWluIHBsYW4gaXMgcHJlc2VudCBmb3IgR1BEQgorICAgICAgICBJdCByZXR1cm5zIFNRTCB3 aXRoIHRoZSBleHBsYWluIHBsYW4KKyAgICAgICAgIiIiCisKKyAgICAgICAgZXhwZWN0ZWRfcmV0 dXJuX3ZhbHVlID0gJ0VYUExBSU4gKEZPUk1BVCBKU09OLCBBTkFMWVpFIEZBTFNFLCAnIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZFUkJPU0UgVFJVRSwgQ09TVFMgRkFMU0Us IEJVRkZFUlMgRkFMU0UsICcgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVElN SU5HIFRSVUUpIHNvbWUgc3FsJworCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLnJldHVy bl92YWx1ZSA9IGV4cGVjdGVkX3JldHVybl92YWx1ZQorCisgICAgICAgIHJlc3VsdCA9IGFwcGx5 X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCgKKyAgICAgICAgICAgIE1hZ2ljTW9jayh2 ZXJzaW9uPTgwMzIzLCBzZXJ2ZXJfdHlwZT0nZ3BkYicpLCB7CisgICAgICAgICAgICAgICAgJ3Nx bCc6ICdzb21lIHNxbCcsCisgICAgICAgICAgICAgICAgJ2V4cGxhaW5fcGxhbic6IHsKKyAgICAg ICAgICAgICAgICAgICAgJ2Zvcm1hdCc6ICdqc29uJywKKyAgICAgICAgICAgICAgICAgICAgJ2Fu YWx5emUnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UnOiBUcnVlLAorICAg ICAgICAgICAgICAgICAgICAnYnVmZmVycyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAn dGltaW5nJzogVHJ1ZQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg KQorCisgICAgICAgIHJlc3VsdCB8IHNob3VsZC5iZS5lcXVhbC50byhleHBlY3RlZF9yZXR1cm5f dmFsdWUpCisgICAgICAgIHJlbmRlcl90ZW1wbGF0ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgK KyAgICAgICAgICAgICdzcWxlZGl0b3Ivc3FsLyNncGRiIzgwMzIzIy9leHBsYWluX3BsYW4uc3Fs JywKKyAgICAgICAgICAgIGZvcm1hdD0nanNvbicsCisgICAgICAgICAgICBhbmFseXplPUZhbHNl LAorICAgICAgICAgICAgdmVyYm9zZT1UcnVlLAorICAgICAgICAgICAgYnVmZmVycz1GYWxzZSwK KyAgICAgICAgICAgIHRpbWluZz1UcnVlLAorICAgICAgICAgICAgc3FsPSdzb21lIHNxbCcKKyAg ICAgICAgKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rl c3RzL3Rlc3RfZmlsdGVyX2RpYWxvZ19jYWxsYmFja3MucHkgYi93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9maWx0ZXJfZGlhbG9nX2NhbGxiYWNrcy5weQppbmRl eCA5NzQ3OTc4Mi4uNTg0ZmEyMjQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci91dGlscy90ZXN0cy90ZXN0X2ZpbHRlcl9kaWFsb2dfY2FsbGJhY2tzLnB5CisrKyBiL3dl Yi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X2ZpbHRlcl9kaWFsb2df Y2FsbGJhY2tzLnB5CkBAIC02LDExICs2LDkgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZnJv bSBncmFwcGEgaW1wb3J0IHNob3VsZAogCi0iIiJBcHBseSBFeHBsYWluIHBsYW4gd3JhcHBlciB0 byBzcWwgb2JqZWN0LiIiIgotZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNv bl9yZXNwb25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCiBmcm9tIHBnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yLnV0aWxzLmZpbHRlcl9kaWFsb2cgaW1wb3J0IEZpbHRlckRpYWxvZwotZnJvbSBwZ2Fk bWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiBUWF9JRF9FUlJPUl9N U0cgPSAnVHJhbnNhY3Rpb24gSUQgbm90IGZvdW5kIGluIHRoZSBzZXNzaW9uLicKIEZBSUxFRF9U WF9NU0cgPSAnRmFpbGVkIHRvIHVwZGF0ZSB0aGUgZGF0YSBvbiBzZXJ2ZXIuJwpAQCAtMjMsODEg KzIxLDU5IEBAIGNsYXNzIE1vY2tSZXF1ZXN0KG9iamVjdCk6CiAgICAgICAgIHNlbGYuYXJncyA9 ICJUZXN0IGRhdGEiLAogCiAKLWNsYXNzIFN0YXJ0UnVubmluZ0RhdGFTb3J0aW5nVGVzdChCYXNl VGVzdEdlbmVyYXRvcik6Ci0gICAgIiIiCi0gICAgQ2hlY2sgdGhhdCB0aGUgRGF0YVNvcnRpbmcg bWV0aG9kcyB3b3JrcyBhcwotICAgIGludGVuZGVkCi0gICAgIiIiCi0gICAgc2NlbmFyaW9zID0g WwotICAgICAgICAoJ1doZW4gd2UgZG8gbm90IGZpbmQgVHJhbnNhY3Rpb24gSUQgaW4gc2Vzc2lv biBpbiBnZXQnLCBkaWN0KAotICAgICAgICAgICAgaW5wdXRfcGFyYW1ldGVycz0oTm9uZSwgVFhf SURfRVJST1JfTVNHLCBOb25lLCBOb25lLCBOb25lKSwKLSAgICAgICAgICAgIGV4cGVjdGVkX3Jl dHVybl9yZXNwb25zZT17Ci0gICAgICAgICAgICAgICAgJ3N1Y2Nlc3MnOiAwLAotICAgICAgICAg ICAgICAgICdlcnJvcm1zZyc6IFRYX0lEX0VSUk9SX01TRywKLSAgICAgICAgICAgICAgICAnaW5m byc6ICdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJFRCcsCi0gICAgICAgICAgICAgICAgJ3N0 YXR1cyc6IDQwNAotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgIHR5cGU9J2dldCcKLSAgICAg ICAgKSksCi0gICAgICAgICgnV2hlbiB3ZSBwYXNzIGFsbCB0aGUgdmFsdWVzIGFzIE5vbmUgaW4g Z2V0JywgZGljdCgKLSAgICAgICAgICAgIGlucHV0X3BhcmFtZXRlcnM9KE5vbmUsIE5vbmUsIE5v bmUsIE5vbmUsIE5vbmUpLAotICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3Jlc3BvbnNlPXsK LSAgICAgICAgICAgICAgICAnZGF0YSc6IHsKLSAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cyc6 IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAnbXNnJzogTm9uZSwKLSAgICAgICAgICAgICAg ICAgICAgJ3Jlc3VsdCc6IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhX3NvcnRpbmcn OiBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbHVtbl9saXN0JzogW10KLSAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0sCi0gICAg ICAgICAgICB0eXBlPSdnZXQnCi0gICAgICAgICkpLAorY2xhc3MgVGVzdFN0YXJ0UnVubmluZ0Rh dGFTb3J0aW5nOgorICAgIGRlZiB0ZXN0X2ZpbHRlcl9kaWFsb2dfZ2V0X25vX2lkKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgRmlsdGVyRGlhbG9nLmdldCBtZXRob2QgaXMg Y2FsbGVkCisgICAgICAgIEFuZCB0aGVyZSBpcyBubyBUcmFuc2FjdGlvbiBJRCBmb3VuZCBpbiBz ZXNzaW9uCisgICAgICAgIEl0IHJldHVucyBhIDQwNAorICAgICAgICAiIiIKKyAgICAgICAgcmVz dWx0ID0gRmlsdGVyRGlhbG9nLmdldChOb25lLCBUWF9JRF9FUlJPUl9NU0csIE5vbmUsIE5vbmUs IE5vbmUpCisgICAgICAgIHJlc3VsdC5zdGF0dXNfY29kZSB8IFwKKyAgICAgICAgICAgIHNob3Vs ZC5lcXVhbCg0MDQpCiAKLSAgICAgICAgKCdXaGVuIHdlIGRvIG5vdCBmaW5kIFRyYW5zYWN0aW9u IElEIGluIHNlc3Npb24gaW4gc2F2ZScsIGRpY3QoCi0gICAgICAgICAgICBpbnB1dF9hcmdfcGFy YW1ldGVycz0oTm9uZSwgVFhfSURfRVJST1JfTVNHLCBOb25lLCBOb25lLCBOb25lKSwKLSAgICAg ICAgICAgIGlucHV0X2t3YXJnX3BhcmFtZXRlcnM9ewotICAgICAgICAgICAgICAgICd0cmFuc19p ZCc6IE5vbmUsCi0gICAgICAgICAgICAgICAgJ3JlcXVlc3QnOiBNb2NrUmVxdWVzdCgpCi0gICAg ICAgICAgICB9LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3Jlc3BvbnNlPXsKLSAgICAg ICAgICAgICAgICAnc3VjY2Vzcyc6IDAsCi0gICAgICAgICAgICAgICAgJ2Vycm9ybXNnJzogVFhf SURfRVJST1JfTVNHLAotICAgICAgICAgICAgICAgICdpbmZvJzogJ0RBVEFHUklEX1RSQU5TQUNU SU9OX1JFUVVJUkVEJywKLSAgICAgICAgICAgICAgICAnc3RhdHVzJzogNDA0Ci0gICAgICAgICAg ICB9LAotICAgICAgICAgICAgdHlwZT0nc2F2ZScKLSAgICAgICAgKSksCisgICAgZGVmIHRlc3Rf ZmlsdGVyX2RpYWxvZ19nZXRfbm9fdmFsdWVzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg V2hlbiB0aGUgRmlsdGVyRGlhbG9nLmdldCBtZXRob2QgaXMgY2FsbGVkCisgICAgICAgIEFuZCBh bGwgdGhlIHZhbHVlcyBhcmUgcGFzc2VkIGFzIE5vbmUKKyAgICAgICAgSXQgcmV0dW5zIGEgNDA0 CisgICAgICAgICIiIgorICAgICAgICByZXN1bHQgPSBGaWx0ZXJEaWFsb2cuZ2V0KE5vbmUsIE5v bmUsIE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgIHJlc3VsdC5zdGF0dXNfY29kZSB8IFwKKyAg ICAgICAgICAgIHNob3VsZC5lcXVhbCgyMDApCiAKLSAgICAgICAgKCdXaGVuIHdlIHBhc3MgYWxs IHRoZSB2YWx1ZXMgYXMgTm9uZSBpbiBzYXZlJywgZGljdCgKLSAgICAgICAgICAgIGlucHV0X2Fy Z19wYXJhbWV0ZXJzPShOb25lLCBOb25lLCBOb25lLCBOb25lLCBOb25lKSwKLSAgICAgICAgICAg IGlucHV0X2t3YXJnX3BhcmFtZXRlcnM9ewotICAgICAgICAgICAgICAgICd0cmFuc19pZCc6IE5v bmUsCi0gICAgICAgICAgICAgICAgJ3JlcXVlc3QnOiBNb2NrUmVxdWVzdCgpCi0gICAgICAgICAg ICB9LAotICAgICAgICAgICAgZXhwZWN0ZWRfcmV0dXJuX3Jlc3BvbnNlPXsKLSAgICAgICAgICAg ICAgICAnc3RhdHVzJzogNTAwLAotICAgICAgICAgICAgICAgICdzdWNjZXNzJzogMCwKLSAgICAg ICAgICAgICAgICAnZXJyb3Jtc2cnOiBGQUlMRURfVFhfTVNHCisgICAgZGVmIHRlc3RfZmlsdGVy X2RpYWxvZ19zYXZlX25vX2lkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUg RmlsdGVyRGlhbG9nLnNhdmUgbWV0aG9kIGlzIGNhbGxlZAorICAgICAgICBBbmQgdGhlcmUgaXMg bm8gVHJhbnNhY3Rpb24gSUQgZm91bmQgaW4gc2Vzc2lvbgorICAgICAgICBJdCByZXR1bnMgYSA0 MDQKKyAgICAgICAgIiIiCisgICAgICAgIGlucHV0X2FyZ19wYXJhbWV0ZXJzID0gKE5vbmUsIFRY X0lEX0VSUk9SX01TRywgTm9uZSwgTm9uZSwgTm9uZSkKKyAgICAgICAgaW5wdXRfa3dhcmdfcGFy YW1ldGVycyA9IHsKKyAgICAgICAgICAgICd0cmFuc19pZCc6IE5vbmUsCisgICAgICAgICAgICAn cmVxdWVzdCc6IE1vY2tSZXF1ZXN0KCkKKyAgICAgICAgfQogCi0gICAgICAgICAgICB9LAotICAg ICAgICAgICAgdHlwZT0nc2F2ZScKLSAgICAgICAgKSkKLSAgICBdCisgICAgICAgIHJlc3VsdCA9 IEZpbHRlckRpYWxvZy5zYXZlKAorICAgICAgICAgICAgKmlucHV0X2FyZ19wYXJhbWV0ZXJzLCAq KmlucHV0X2t3YXJnX3BhcmFtZXRlcnMpCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKLSAgICAg ICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBtYWtlX2pzb25fcmVzcG9uc2UoCi0gICAgICAgICAgICAq KnNlbGYuZXhwZWN0ZWRfcmV0dXJuX3Jlc3BvbnNlCi0gICAgICAgICkKLSAgICAgICAgaWYgc2Vs Zi50eXBlID09ICdnZXQnOgotICAgICAgICAgICAgcmVzdWx0ID0gRmlsdGVyRGlhbG9nLmdldCgq c2VsZi5pbnB1dF9wYXJhbWV0ZXJzKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCi0g ICAgICAgICAgICAgICAgcmVzdWx0LnN0YXR1c19jb2RlLCBleHBlY3RlZF9yZXNwb25zZS5zdGF0 dXNfY29kZQotICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmVzdWx0 ID0gRmlsdGVyRGlhbG9nLnNhdmUoCi0gICAgICAgICAgICAgICAgKnNlbGYuaW5wdXRfYXJnX3Bh cmFtZXRlcnMsICoqc2VsZi5pbnB1dF9rd2FyZ19wYXJhbWV0ZXJzCi0gICAgICAgICAgICApCi0g ICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKLSAgICAgICAgICAgICAgICByZXN1bHQuc3Rh dHVzX2NvZGUsIGV4cGVjdGVkX3Jlc3BvbnNlLnN0YXR1c19jb2RlCi0gICAgICAgICAgICApCisg ICAgICAgIHJlc3VsdC5zdGF0dXNfY29kZSB8IFwKKyAgICAgICAgICAgIHNob3VsZC5lcXVhbCg0 MDQpCisKKyAgICBkZWYgdGVzdF9maWx0ZXJfZGlhbG9nX3NhdmVfbm9fdmFsdWVzKHNlbGYpOgor ICAgICAgICAiIiIKKyAgICAgICAgV2hlbiB0aGUgRmlsdGVyRGlhbG9nLnNhdmUgbWV0aG9kIGlz IGNhbGxlZAorICAgICAgICBBbmQgYWxsIHRoZSB2YWx1ZXMgYXJlIHBhc3NlZCBhcyBOb25lCisg ICAgICAgIEl0IHJldHVucyBhIDUwMAorICAgICAgICAiIiIKKyAgICAgICAgaW5wdXRfYXJnX3Bh cmFtZXRlcnMgPSAoTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSkKKyAgICAgICAgaW5wdXRf a3dhcmdfcGFyYW1ldGVycyA9IHsKKyAgICAgICAgICAgICd0cmFuc19pZCc6IE5vbmUsCisgICAg ICAgICAgICAncmVxdWVzdCc6IE1vY2tSZXF1ZXN0KCkKKyAgICAgICAgfQorCisgICAgICAgIHJl c3VsdCA9IEZpbHRlckRpYWxvZy5zYXZlKAorICAgICAgICAgICAgKmlucHV0X2FyZ19wYXJhbWV0 ZXJzLCAqKmlucHV0X2t3YXJnX3BhcmFtZXRlcnMpCisKKyAgICAgICAgcmVzdWx0LnN0YXR1c19j b2RlIHwgXAorICAgICAgICAgICAgc2hvdWxkLmVxdWFsKDUwMCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X3F1ZXJ5X3Rvb2xfZnNfdXRp bHMucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9xdWVy eV90b29sX2ZzX3V0aWxzLnB5CmluZGV4IDdjYWIwNjc4Li4xYTkyMGVjNiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3RfcXVlcnlfdG9vbF9m c191dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMv dGVzdF9xdWVyeV90b29sX2ZzX3V0aWxzLnB5CkBAIC03LDM5ICs3LDMxIEBACiAjCiAjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwogaW1wb3J0IG9zCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCi1mcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnF1ZXJ5 X3Rvb2xfZnNfdXRpbHMgaW1wb3J0IFwKLSAgICByZWFkX2ZpbGVfZ2VuZXJhdG9yCiAKK2Zyb20g Z3JhcHBhIGltcG9ydCBzaG91bGQKIAotY2xhc3MgVGVzdFJlYWRGaWxlR2VuZXJhdG9yRm9yRW5j b2RpbmcoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIgotICAgIENoZWNrIHRoYXQgdGhlIHN0 YXJ0X3J1bm5pbmdfcXVlcnkgbWV0aG9kIHdvcmtzIGFzIGludGVuZGVkCi0gICAgIiIiCitmcm9t IHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnF1ZXJ5X3Rvb2xfZnNfdXRpbHMgaW1wb3J0 IFwKKyAgICByZWFkX2ZpbGVfZ2VuZXJhdG9yCiAKLSAgICBzY2VuYXJpb3MgPSBbCi0gICAgICAg ICgKLSAgICAgICAgICAgICdXaGVuIHVzZXIgaXMgdHJ5aW5nIHRvIGxvYWQgdGhlIGZpbGUgd2l0 aCB1dGYtOCBlbmNvZGluZycsCi0gICAgICAgICAgICBkaWN0KAotICAgICAgICAgICAgICAgIGZp bGU9J3Rlc3RfZmlsZV91dGY4X2VuY29kaW5nLnNxbCcsCi0gICAgICAgICAgICAgICAgZW5jb2Rp bmc9J3V0Zi04JwotICAgICAgICAgICAgKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAg ICAgICAnV2hlbiB1c2VyIGlzIHRyeWluZyB0byBsb2FkIHRoZSBmaWxlIHdpdGggb3RoZXIgZW5j b2RpbmcgYW5kJwotICAgICAgICAgICAgJyB0cnlpbmcgdG8gdXNlIHV0Zi04IGVuY29kaW5nIHRv IHJlYWQgaXQnLAotICAgICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICAgICBmaWxlPSd0ZXN0 X2ZpbGVfb3RoZXJfZW5jb2Rpbmcuc3FsJywKLSAgICAgICAgICAgICAgICBlbmNvZGluZz0ndXRm LTgnCi0gICAgICAgICAgICApCi0gICAgICAgICksCi0gICAgXQogCi0gICAgZGVmIHNldFVwKHNl bGYpOgotICAgICAgICBzZWxmLmRpcl9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVh bHBhdGgoX19maWxlX18pKQotICAgICAgICBzZWxmLmNvbXBsYXRlX3BhdGggPSBvcy5wYXRoLmpv aW4oc2VsZi5kaXJfcGF0aCwgc2VsZi5maWxlKQorY2xhc3MgVGVzdFJlYWRGaWxlR2VuZXJhdG9y Rm9yRW5jb2Rpbmc6CisgICAgZGVmIHRlc3RfbG9hZF91dGY4X2VuY29kaW5nKHNlbGYpOgorICAg ICAgICAiIiIKKyAgICAgICAgV2hlbiBhIHVzZXIgaXMgdHJ5aW5nIHRvIGxvYWQgdGhlIGZpbGUg d2l0aCB1dGYtOCBlbmNvZGluZworICAgICAgICBJdCByZXR1cm5zICdTRUxFQ1QgMScKKyAgICAg ICAgIiIiCisgICAgICAgIGRpcl9wYXRoID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBh dGgoX19maWxlX18pKQorICAgICAgICBjb21wbGV0ZV9wYXRoID0gb3MucGF0aC5qb2luKGRpcl9w YXRoLCAndGVzdF9maWxlX3V0ZjhfZW5jb2Rpbmcuc3FsJykKKyAgICAgICAgcmVzdWx0ID0gcmVh ZF9maWxlX2dlbmVyYXRvcihjb21wbGV0ZV9wYXRoLCAndXRmLTgnKQorICAgICAgICBuZXh0KHJl c3VsdCkgfCBzaG91bGQuYmUuY29udGFpbignU0VMRUNUIDEnKQogCi0gICAgZGVmIHJ1blRlc3Qo c2VsZik6Ci0gICAgICAgIHJlc3VsdCA9IHJlYWRfZmlsZV9nZW5lcmF0b3Ioc2VsZi5jb21wbGF0 ZV9wYXRoLCBzZWxmLmVuY29kaW5nKQotICAgICAgICAjIENoZWNrIGlmIGZpbGUgaXMgcmVhZCBw cm9wZXJseSBieSB0aGUgZ2VuZXJhdG9yCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oJ1NFTEVDVCAx JywgbmV4dChyZXN1bHQpKQorICAgIGRlZiB0ZXN0X2xvYWRfb3RoZXJfZW5jb2Rpbmcoc2VsZik6 CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHVzZXIgaXMgdHJ5aW5nIHRvIGxvYWQgdGhlIGZp bGUgd2l0aCBvdGhlciBlbmNvZGluZworICAgICAgICBBbmQgdHJ5aW5nIHRvIHVzZSB1dGYtOCBl bmNvZGluZyB0byByZWFkIGl0CisgICAgICAgIEl0IHJldHVybnMgJ1NFTEVDVCAxJworICAgICAg ICAiIiIKKyAgICAgICAgZGlyX3BhdGggPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0 aChfX2ZpbGVfXykpCisgICAgICAgIGNvbXBsZXRlX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlyX3Bh dGgsICd0ZXN0X2ZpbGVfb3RoZXJfZW5jb2Rpbmcuc3FsJykKKyAgICAgICAgcmVzdWx0ID0gcmVh ZF9maWxlX2dlbmVyYXRvcihjb21wbGV0ZV9wYXRoLCAndXRmLTgnKQorICAgICAgICBuZXh0KHJl c3VsdCkgfCBzaG91bGQuYmUuY29udGFpbignU0VMRUNUIDEnKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3Rlc3RzL3Rlc3Rfc3RhcnRfcnVubmluZ19xdWVy eS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90ZXN0X3N0YXJ0 X3J1bm5pbmdfcXVlcnkucHkKaW5kZXggYzgzOTEzNTMuLjJkMzkwNzk1IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvdGVzdHMvdGVzdF9zdGFydF9ydW5uaW5n X3F1ZXJ5LnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy90ZXN0cy90 ZXN0X3N0YXJ0X3J1bm5pbmdfcXVlcnkucHkKQEAgLTgsMTIgKzgsMTMgQEAKICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCiBpbXBvcnQgc3lzCiAKLWZyb20gZmxhc2sgaW1wb3J0IFJlc3BvbnNlCiBpbXBvcnQg c2ltcGxlanNvbiBhcyBqc29uCitmcm9tIGZsYXNrIGltcG9ydCBSZXNwb25zZQorZnJvbSBncmFw cGEgaW1wb3J0IHNob3VsZAogCiBmcm9tIHBnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0 YXJ0X3J1bm5pbmdfcXVlcnkgaW1wb3J0IFN0YXJ0UnVubmluZ1F1ZXJ5Citmcm9tIHBnYWRtaW4u dXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20g cGdhZG1pbi51dGlscy5leGNlcHRpb24gaW1wb3J0IENvbm5lY3Rpb25Mb3N0LCBTU0hUdW5uZWxD b25uZWN0aW9uTG9zdAotZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdl bmVyYXRvcgogCiBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDMpOgogICAgIGZyb20gbW9jayBp bXBvcnQgcGF0Y2gsIE1hZ2ljTW9jawpAQCAtMjQsNDk4ICsyNSw5MDcgQEAgZ2V0X2RyaXZlcl9l eGNlcHRpb24gPSBFeGNlcHRpb24oJ2dldF9kcml2ZXIgZXhjZXB0aW9uJykKIGdldF9jb25uZWN0 aW9uX2xvc3RfZXhjZXB0aW9uID0gRXhjZXB0aW9uKCdVbmFibGUgdG8gY29ubmVjdCB0byBzZXJ2 ZXInKQogCiAKLWNsYXNzIFN0YXJ0UnVubmluZ1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6 Ci0gICAgIiIiCi0gICAgQ2hlY2sgdGhhdCB0aGUgc3RhcnRfcnVubmluZ19xdWVyeSBtZXRob2Qg d29ya3MgYXMgaW50ZW5kZWQKLSAgICAiIiIKLQotICAgIHNjZW5hcmlvcyA9IFsKLSAgICAgICAg KCdXaGVuIGdyaWREYXRhIGlzIG5vdCBwcmVzZW50IGluIHRoZSBzZXNzaW9uLCBpdCByZXR1cm5z IGFuIGVycm9yJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1l dGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhw bGFpbl9wbGFuPU5vbmUpLAotICAgICAgICAgICAgICAgICB0cmFuc19pZD0xMjMsCi0gICAgICAg ICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KCkKLSAgICAgICAgICAgICApLAotICAgICAgICAg ICAgIHBpY2tsZV9sb2FkX3JldHVybj1Ob25lLAotICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhj ZXB0aW9uPUZhbHNlLAotICAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9u PUZhbHNlLAotICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb249Tm9uZSwK LQotICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9RmFsc2UsCi0gICAgICAgICAg ICAgY29ubmVjdGlvbl9jb25uZWN0X3JldHVybj1Ob25lLAotICAgICAgICAgICAgIGV4ZWN1dGVf YXN5bmNfcmV0dXJuX3ZhbHVlPU5vbmUsCi0gICAgICAgICAgICAgaXNfYmVnaW5fcmVxdWlyZWQ9 RmFsc2UsCi0gICAgICAgICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAg ICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZT0n c29tZSBzcWwnLAotCi0gICAgICAgICAgICAgZXhwZWN0X21ha2VfanNvbl9yZXNwb25zZV90b19o YXZlX2JlZW5fY2FsbGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAot ICAgICAgICAgICAgICAgICBlcnJvcm1zZz0nVHJhbnNhY3Rpb24gSUQgbm90IGZvdW5kIGluIHRo ZSBzZXNzaW9uLicsCi0gICAgICAgICAgICAgICAgIGluZm89J0RBVEFHUklEX1RSQU5TQUNUSU9O X1JFUVVJUkVEJywKLSAgICAgICAgICAgICAgICAgc3RhdHVzPTQwNCwKLSAgICAgICAgICAgICAp LAotICAgICAgICAgICAgIGV4cGVjdF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGg9 Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RlZF9sb2dnZXJfZXJyb3I9Tm9uZSwKLSAgICAgICAg ICAgICBleHBlY3RfZXhlY3V0ZV92b2lkX2NhbGxlZF93aXRoPSdzb21lIHNxbCcsCi0gICAgICAg ICApKSwKLSAgICAgICAgKCdXaGVuIHRyYW5zYWN0aW9uSWQgaXMgbm90IHByZXNlbnQgaW4gdGhl IGdyaWREYXRhLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBhbiBlcnJvcicsCi0gICAgICAgICBk aWN0KAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAg ICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKLSAgICAg ICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAotICAgICAgICAgICAgICAgICBodHRwX3Nlc3Npb249 ZGljdChncmlkRGF0YT1kaWN0KCkpCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNr bGVfbG9hZF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1G YWxzZSwKLSAgICAgICAgICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwK LSAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAg ICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLAotICAgICAgICAgICAgIGNvbm5l Y3Rpb25fY29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBleGVjdXRlX2FzeW5jX3Jl dHVybl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVkPUZhbHNlLAot ICAgICAgICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNlLAotICAgICAgICAgICAgIGFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1cm5fdmFsdWU9J3NvbWUgc3Fs JywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2ZV9iZWVu X2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKLSAgICAgICAg ICAgICAgICAgZXJyb3Jtc2c9J1RyYW5zYWN0aW9uIElEIG5vdCBmb3VuZCBpbiB0aGUgc2Vzc2lv bi4nLAotICAgICAgICAgICAgICAgICBpbmZvPSdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJF RCcsCi0gICAgICAgICAgICAgICAgIHN0YXR1cz00MDQsCi0gICAgICAgICAgICAgKSwKLSAgICAg ICAgICAgICBleHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoPU5vbmUsCi0g ICAgICAgICAgICAgZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yPU5vbmUsCi0gICAgICAgICAgICAgZXhw ZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29tZSBzcWwnLAotICAgICAgICAgKSksCi0g ICAgICAgICgnV2hlbiB0aGUgY29tbWFuZCBpbmZvcm1hdGlvbiBmb3IgdGhlIHRyYW5zYWN0aW9u ICcKLSAgICAgICAgICdjYW5ub3QgYmUgcmV0cmlldmVkLCAnCi0gICAgICAgICAnaXQgcmV0dXJu cyBhbiBlcnJvcicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIGZ1bmN0aW9uX3BhcmFt ZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4 cGxhaW5fcGxhbj1Ob25lKSwKLSAgICAgICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAotICAgICAg ICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29tbWFu ZF9vYmo9JycpfSkKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIHBpY2tsZV9sb2FkX3Jl dHVybj1Ob25lLAotICAgICAgICAgICAgIGdldF9kcml2ZXJfZXhjZXB0aW9uPUZhbHNlLAotICAg ICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uPUZhbHNlLAotICAgICAgICAg ICAgIG1hbmFnZXJfY29ubmVjdGlvbl9leGNlcHRpb249Tm9uZSwKLQotICAgICAgICAgICAgIGlz X2Nvbm5lY3RlZF90b19zZXJ2ZXI9RmFsc2UsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9jb25u ZWN0X3JldHVybj1Ob25lLAotICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0dXJuX3ZhbHVl PU5vbmUsCi0gICAgICAgICAgICAgaXNfYmVnaW5fcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAg ICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgYXBwbHlfZXhwbGFp bl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZT0nc29tZSBzcWwnLAotCi0gICAg ICAgICAgICAgZXhwZWN0X21ha2VfanNvbl9yZXNwb25zZV90b19oYXZlX2JlZW5fY2FsbGVkX3dp dGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgZGF0YT1kaWN0KAotICAgICAgICAgICAgICAgICAg ICAgc3RhdHVzPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgcmVzdWx0PSdFaXRoZXIgdHJh bnNhY3Rpb24gb2JqZWN0IG9yIHNlc3Npb24gb2JqZWN0ICcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnbm90IGZvdW5kLicsCi0gICAgICAgICAgICAgICAgICAgICBjYW5fZWRpdD1GYWxz ZSwKLSAgICAgICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9RmFsc2UsCi0gICAgICAgICAgICAg ICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9NQotICAgICAgICAgICAgICAgICApCi0gICAg ICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2Nh bGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yPU5vbmUs Ci0gICAgICAgICAgICAgZXhwZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aD0nc29tZSBzcWwn LAotICAgICAgICAgKSksCi0gICAgICAgICgnV2hlbiBleGNlcHRpb24gaGFwcGVucyB3aGlsZSBy ZXRyaWV2aW5nIHRoZSBkYXRhYmFzZSBkcml2ZXIsICcKLSAgICAgICAgICdpdCByZXR1cm5zIGFu IGVycm9yJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVy cz1kaWN0KAotICAgICAgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhwbGFp bl9wbGFuPU5vbmUpLAotICAgICAgICAgICAgICAgICB0cmFuc19pZD0xMjMsCi0gICAgICAgICAg ICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29i aj0nJyl9KQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgcGlja2xlX2xvYWRfcmV0dXJu PU1hZ2ljTW9jayhjb25uX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpKSwKLSAgICAgICAgICAg ICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1UcnVlLAotICAgICAgICAgICAgIGdldF9jb25uZWN0aW9u X2xvc3RfZXhjZXB0aW9uPUZhbHNlLAotICAgICAgICAgICAgIG1hbmFnZXJfY29ubmVjdGlvbl9l eGNlcHRpb249Tm9uZSwKLQotICAgICAgICAgICAgIGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXI9RmFs c2UsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9jb25uZWN0X3JldHVybj1Ob25lLAotICAgICAg ICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0dXJuX3ZhbHVlPU5vbmUsCi0gICAgICAgICAgICAgaXNf YmVnaW5fcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9 RmFsc2UsCi0gICAgICAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVk X3JldHVybl92YWx1ZT0nc29tZSBzcWwnLAotCi0gICAgICAgICAgICAgZXhwZWN0X21ha2VfanNv bl9yZXNwb25zZV90b19oYXZlX2JlZW5fY2FsbGVkX3dpdGg9Tm9uZSwKLSAgICAgICAgICAgICBl eHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAg ICAgICAgIGVycm9ybXNnPSdnZXRfZHJpdmVyIGV4Y2VwdGlvbicKLSAgICAgICAgICAgICApLAot ICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ2dlcl9lcnJvcj1nZXRfZHJpdmVyX2V4Y2VwdGlvbiwK LSAgICAgICAgICAgICBleHBlY3RfZXhlY3V0ZV92b2lkX2NhbGxlZF93aXRoPSdzb21lIHNxbCcs Ci0gICAgICAgICApKSwKLSAgICAgICAgKCdXaGVuIENvbm5lY3Rpb25Mb3N0IGhhcHBlbnMgd2hp bGUgcmV0cmlldmluZyB0aGUgJwotICAgICAgICAgJ2RhdGFiYXNlIGNvbm5lY3Rpb24sICcKLSAg ICAgICAgICdpdCByZXR1cm5zIGFuIGVycm9yJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAg ICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBzcWw9ZGljdChz cWw9J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUpLAotICAgICAgICAgICAgICAgICB0cmFu c19pZD0xMjMsCi0gICAgICAgICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsn MTIzJzogZGljdChjb21tYW5kX29iaj0nJyl9KQotICAgICAgICAgICAgICksCi0gICAgICAgICAg ICAgcGlja2xlX2xvYWRfcmV0dXJuPU1hZ2ljTW9jaygKLSAgICAgICAgICAgICAgICAgY29ubl9p ZD0xLAotICAgICAgICAgICAgICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygp Ci0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxz ZSwKLSAgICAgICAgICAgICBnZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKLSAg ICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPUNvbm5lY3Rpb25Mb3N0KCcx JywgJzInLCAnMycpLAotCi0gICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1GYWxz ZSwKLSAgICAgICAgICAgICBjb25uZWN0aW9uX2Nvbm5lY3RfcmV0dXJuPU5vbmUsCi0gICAgICAg ICAgICAgZXhlY3V0ZV9hc3luY19yZXR1cm5fdmFsdWU9Tm9uZSwKLSAgICAgICAgICAgICBpc19i ZWdpbl9yZXF1aXJlZD1GYWxzZSwKLSAgICAgICAgICAgICBpc19yb2xsYmFja19yZXF1aXJlZD1G YWxzZSwKLSAgICAgICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRf cmV0dXJuX3ZhbHVlPSdzb21lIHNxbCcsCi0KLSAgICAgICAgICAgICBleHBlY3RfbWFrZV9qc29u X3Jlc3BvbnNlX3RvX2hhdmVfYmVlbl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAgICAgIGV4 cGVjdF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfY2FsbGVkX3dpdGg9Tm9uZSwKLSAgICAgICAgICAg ICBleHBlY3RlZF9sb2dnZXJfZXJyb3I9Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RfZXhlY3V0 ZV92b2lkX2NhbGxlZF93aXRoPSdzb21lIHNxbCcsCi0gICAgICAgICApKSwKLSAgICAgICAgKCdX aGVuIFNTSFR1bm5lbENvbm5lY3Rpb25Mb3N0IGhhcHBlbnMgd2hpbGUgcmV0cmlldmluZyB0aGUg JwotICAgICAgICAgJ2RhdGFiYXNlIGNvbm5lY3Rpb24sICcKLSAgICAgICAgICdpdCByZXR1cm5z IGFuIGVycm9yJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1l dGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhw bGFpbl9wbGFuPU5vbmUpLAotICAgICAgICAgICAgICAgICB0cmFuc19pZD0xMjMsCi0gICAgICAg ICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5k X29iaj0nJyl9KQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgcGlja2xlX2xvYWRfcmV0 dXJuPU1hZ2ljTW9jaygKLSAgICAgICAgICAgICAgICAgY29ubl9pZD0xLAotICAgICAgICAgICAg ICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpCi0gICAgICAgICAgICAgKSwK LSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBn ZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBtYW5hZ2Vy X2Nvbm5lY3Rpb25fZXhjZXB0aW9uPVNTSFR1bm5lbENvbm5lY3Rpb25Mb3N0KCcxLjEuMS4xJyks Ci0KLSAgICAgICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLAotICAgICAgICAg ICAgIGNvbm5lY3Rpb25fY29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBleGVjdXRl X2FzeW5jX3JldHVybl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVk PUZhbHNlLAotICAgICAgICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNlLAotICAgICAg ICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1cm5fdmFsdWU9 J3NvbWUgc3FsJywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9f aGF2ZV9iZWVuX2NhbGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0X2ludGVybmFs X3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdGVkX2xv Z2dlcl9lcnJvcj1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVk X3dpdGg9J3NvbWUgc3FsJywKLSAgICAgICAgICkpLAotICAgICAgICAoJ1doZW4gaXMgbm90IGNv bm5lY3RlZCB0byB0aGUgc2VydmVyIGFuZCBmYWlscyB0byBjb25uZWN0LCAnCi0gICAgICAgICAn aXQgcmV0dXJucyBhbiBlcnJvcicsCi0gICAgICAgICBkaWN0KAotICAgICAgICAgICAgIGZ1bmN0 aW9uX3BhcmFtZXRlcnM9ZGljdCgKLSAgICAgICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21l IHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKLSAgICAgICAgICAgICAgICAgdHJhbnNfaWQ9MTIz LAotICAgICAgICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRp Y3QoY29tbWFuZF9vYmo9JycpfSkKLSAgICAgICAgICAgICApLAotICAgICAgICAgICAgIHBpY2ts ZV9sb2FkX3JldHVybj1NYWdpY01vY2soCi0gICAgICAgICAgICAgICAgIGNvbm5faWQ9MSwKLSAg ICAgICAgICAgICAgICAgdXBkYXRlX2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2soKQotICAgICAg ICAgICAgICksCi0gICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249RmFsc2UsCi0gICAg ICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249VHJ1ZSwKLSAgICAgICAgICAg ICBtYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAgICAgICAgICBpc19j b25uZWN0ZWRfdG9fc2VydmVyPUZhbHNlLAotICAgICAgICAgICAgIGNvbm5lY3Rpb25fY29ubmVj dF9yZXR1cm49W0ZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdVbmFibGUgdG8gY29ubmVjdCB0byBzZXJ2ZXInXSwKLSAgICAgICAgICAgICBleGVjdXRlX2Fz eW5jX3JldHVybl92YWx1ZT1Ob25lLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVkPUZh bHNlLAotICAgICAgICAgICAgIGlzX3JvbGxiYWNrX3JlcXVpcmVkPUZhbHNlLAotICAgICAgICAg ICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1cm5fdmFsdWU9J3Nv bWUgc3FsJywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2 ZV9iZWVuX2NhbGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0X2ludGVybmFsX3Nl cnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBlcnJvcm1zZz0n VW5hYmxlIHRvIGNvbm5lY3QgdG8gc2VydmVyJwotICAgICAgICAgICAgICksCi0gICAgICAgICAg ICAgZXhwZWN0ZWRfbG9nZ2VyX2Vycm9yPWdldF9jb25uZWN0aW9uX2xvc3RfZXhjZXB0aW9uLAot ICAgICAgICAgICAgIGV4cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dpdGg9J3NvbWUgc3FsJywK LSAgICAgICAgICkpLAotICAgICAgICAoJ1doZW4gc2VydmVyIGlzIGNvbm5lY3RlZCBhbmQgc3Rh cnQgcXVlcnkgYXN5bmMgcmVxdWVzdCwgJwotICAgICAgICAgJ2l0IHJldHVybnMgYW4gc3VjY2Vz cyBtZXNzYWdlJywKLSAgICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1l dGVycz1kaWN0KAotICAgICAgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhw bGFpbl9wbGFuPU5vbmUpLAotICAgICAgICAgICAgICAgICB0cmFuc19pZD0xMjMsCi0gICAgICAg ICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5k X29iaj0nJyl9KQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgcGlja2xlX2xvYWRfcmV0 dXJuPU1hZ2ljTW9jaygKLSAgICAgICAgICAgICAgICAgY29ubl9pZD0xLAotICAgICAgICAgICAg ICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpLAotICAgICAgICAgICAgICAg ICBzZXRfY29ubmVjdGlvbl9pZD1NYWdpY01vY2soKSwKLSAgICAgICAgICAgICAgICAgYXV0b19j b21taXQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgYXV0b19yb2xsYmFjaz1GYWxzZSwKLSAgICAg ICAgICAgICAgICAgY2FuX2VkaXQ9bGFtYmRhOiBUcnVlLAotICAgICAgICAgICAgICAgICBjYW5f ZmlsdGVyPWxhbWJkYTogVHJ1ZQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZ2V0X2Ry aXZlcl9leGNlcHRpb249RmFsc2UsCi0gICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9l eGNlcHRpb249RmFsc2UsCi0gICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlv bj1Ob25lLAotCi0gICAgICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1UcnVlLAotICAg ICAgICAgICAgIGNvbm5lY3Rpb25fY29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBl eGVjdXRlX2FzeW5jX3JldHVybl92YWx1ZT1bVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnXSwKLSAgICAg ICAgICAgICBpc19iZWdpbl9yZXF1aXJlZD1GYWxzZSwKLSAgICAgICAgICAgICBpc19yb2xsYmFj a19yZXF1aXJlZD1GYWxzZSwKLSAgICAgICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBl cl9pZl9uZWVkZWRfcmV0dXJuX3ZhbHVlPSdzb21lIHNxbCcsCi0KLSAgICAgICAgICAgICBleHBl Y3RfbWFrZV9qc29uX3Jlc3BvbnNlX3RvX2hhdmVfYmVlbl9jYWxsZWRfd2l0aD1kaWN0KAotICAg ICAgICAgICAgICAgICBkYXRhPWRpY3QoCi0gICAgICAgICAgICAgICAgICAgICBzdGF0dXM9VHJ1 ZSwKLSAgICAgICAgICAgICAgICAgICAgIHJlc3VsdD0nYXN5bmMgZnVuY3Rpb24gcmVzdWx0IG91 dHB1dCcsCi0gICAgICAgICAgICAgICAgICAgICBjYW5fZWRpdD1UcnVlLAotICAgICAgICAgICAg ICAgICAgICAgY2FuX2ZpbHRlcj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgaW5mb19ub3Rp Zmllcl90aW1lb3V0PTUKLSAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICksCi0gICAg ICAgICAgICAgZXhwZWN0X2ludGVybmFsX3NlcnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1Ob25lLAot ICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ2dlcl9lcnJvcj1Ob25lLAotICAgICAgICAgICAgIGV4 cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dpdGg9J3NvbWUgc3FsJywKLSAgICAgICAgICkpLAot ICAgICAgICAoJ1doZW4gc2VydmVyIGlzIGNvbm5lY3RlZCBhbmQgc3RhcnQgcXVlcnkgYXN5bmMg cmVxdWVzdCBhbmQgJwotICAgICAgICAgJ2JlZ2luIGlzIHJlcXVpcmVkLCAnCi0gICAgICAgICAn aXQgcmV0dXJucyBhbiBzdWNjZXNzIG1lc3NhZ2UnLAotICAgICAgICAgZGljdCgKLSAgICAgICAg ICAgICBmdW5jdGlvbl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNxbD1kaWN0 KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCi0gICAgICAgICAgICAgICAgIHRy YW5zX2lkPTEyMywKLSAgICAgICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9 eycxMjMnOiBkaWN0KGNvbW1hbmRfb2JqPScnKX0pCi0gICAgICAgICAgICAgKSwKLSAgICAgICAg ICAgICBwaWNrbGVfbG9hZF9yZXR1cm49TWFnaWNNb2NrKAotICAgICAgICAgICAgICAgICBjb25u X2lkPTEsCi0gICAgICAgICAgICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2Nr KCksCi0gICAgICAgICAgICAgICAgIHNldF9jb25uZWN0aW9uX2lkPU1hZ2ljTW9jaygpLAotICAg ICAgICAgICAgICAgICBhdXRvX2NvbW1pdD1UcnVlLAotICAgICAgICAgICAgICAgICBhdXRvX3Jv bGxiYWNrPUZhbHNlLAotICAgICAgICAgICAgICAgICBjYW5fZWRpdD1sYW1iZGE6IFRydWUsCi0g ICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBUcnVlCi0gICAgICAgICAgICAgKSwK LSAgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBn ZXRfY29ubmVjdGlvbl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBtYW5hZ2Vy X2Nvbm5lY3Rpb25fZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAgICAgICAgICBpc19jb25uZWN0ZWRf dG9fc2VydmVyPVRydWUsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9jb25uZWN0X3JldHVybj1O b25lLAotICAgICAgICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0dXJuX3ZhbHVlPVtUcnVlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXN5bmMgZnVuY3Rpb24gcmVz dWx0IG91dHB1dCddLAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVkPVRydWUsCi0gICAg ICAgICAgICAgaXNfcm9sbGJhY2tfcmVxdWlyZWQ9RmFsc2UsCi0gICAgICAgICAgICAgYXBwbHlf ZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZT0nc29tZSBzcWwnLAot Ci0gICAgICAgICAgICAgZXhwZWN0X21ha2VfanNvbl9yZXNwb25zZV90b19oYXZlX2JlZW5fY2Fs bGVkX3dpdGg9ZGljdCgKLSAgICAgICAgICAgICAgICAgZGF0YT1kaWN0KAotICAgICAgICAgICAg ICAgICAgICAgc3RhdHVzPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICByZXN1bHQ9J2FzeW5j IGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnLAotICAgICAgICAgICAgICAgICAgICAgY2FuX2VkaXQ9 VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgIGNhbl9maWx0ZXI9VHJ1ZSwKLSAgICAgICAgICAg ICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD01Ci0gICAgICAgICAgICAgICAgICkKLSAg ICAgICAgICAgICApLAotICAgICAgICAgICAgIGV4cGVjdF9pbnRlcm5hbF9zZXJ2ZXJfZXJyb3Jf Y2FsbGVkX3dpdGg9Tm9uZSwKLSAgICAgICAgICAgICBleHBlY3RlZF9sb2dnZXJfZXJyb3I9Tm9u ZSwKLSAgICAgICAgICAgICBleHBlY3RfZXhlY3V0ZV92b2lkX2NhbGxlZF93aXRoPSdzb21lIHNx bCcsCi0gICAgICAgICApKSwKLSAgICAgICAgKCdXaGVuIHNlcnZlciBpcyBjb25uZWN0ZWQgYW5k IHN0YXJ0IHF1ZXJ5IGFzeW5jIHJlcXVlc3QgYW5kICcKLSAgICAgICAgICdyb2xsYmFjayBpcyBy ZXF1aXJlZCwgJwotICAgICAgICAgJ2l0IHJldHVybnMgYW4gc3VjY2VzcyBtZXNzYWdlJywKLSAg ICAgICAgIGRpY3QoCi0gICAgICAgICAgICAgZnVuY3Rpb25fcGFyYW1ldGVycz1kaWN0KAotICAg ICAgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUp LAotICAgICAgICAgICAgICAgICB0cmFuc19pZD0xMjMsCi0gICAgICAgICAgICAgICAgIGh0dHBf c2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29iaj0nJyl9KQotICAg ICAgICAgICAgICksCi0gICAgICAgICAgICAgcGlja2xlX2xvYWRfcmV0dXJuPU1hZ2ljTW9jaygK LSAgICAgICAgICAgICAgICAgY29ubl9pZD0xLAotICAgICAgICAgICAgICAgICB1cGRhdGVfZmV0 Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpLAotICAgICAgICAgICAgICAgICBzZXRfY29ubmVjdGlv bl9pZD1NYWdpY01vY2soKSwKLSAgICAgICAgICAgICAgICAgYXV0b19jb21taXQ9VHJ1ZSwKLSAg ICAgICAgICAgICAgICAgYXV0b19yb2xsYmFjaz1GYWxzZSwKLSAgICAgICAgICAgICAgICAgY2Fu X2VkaXQ9bGFtYmRhOiBUcnVlLAotICAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPWxhbWJkYTog VHJ1ZQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZ2V0X2RyaXZlcl9leGNlcHRpb249 RmFsc2UsCi0gICAgICAgICAgICAgZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb249RmFsc2Us Ci0gICAgICAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbj1Ob25lLAotCi0gICAg ICAgICAgICAgaXNfY29ubmVjdGVkX3RvX3NlcnZlcj1UcnVlLAotICAgICAgICAgICAgIGNvbm5l Y3Rpb25fY29ubmVjdF9yZXR1cm49Tm9uZSwKLSAgICAgICAgICAgICBleGVjdXRlX2FzeW5jX3Jl dHVybl92YWx1ZT1bVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnXSwKLSAgICAgICAgICAgICBpc19iZWdp bl9yZXF1aXJlZD1GYWxzZSwKLSAgICAgICAgICAgICBpc19yb2xsYmFja19yZXF1aXJlZD1UcnVl LAotICAgICAgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1 cm5fdmFsdWU9J3NvbWUgc3FsJywKLQotICAgICAgICAgICAgIGV4cGVjdF9tYWtlX2pzb25fcmVz cG9uc2VfdG9faGF2ZV9iZWVuX2NhbGxlZF93aXRoPWRpY3QoCi0gICAgICAgICAgICAgICAgIGRh dGE9ZGljdCgKLSAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz1UcnVlLAotICAgICAgICAgICAg ICAgICAgICAgcmVzdWx0PSdhc3luYyBmdW5jdGlvbiByZXN1bHQgb3V0cHV0JywKLSAgICAgICAg ICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCi0gICAgICAgICAgICAgICAgICAgICBjYW5fZmls dGVyPVRydWUsCi0gICAgICAgICAgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9NQot ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBleHBlY3Rf aW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoPU5vbmUsCi0gICAgICAgICAgICAgZXhw ZWN0ZWRfbG9nZ2VyX2Vycm9yPU5vbmUsCi0gICAgICAgICAgICAgZXhwZWN0X2V4ZWN1dGVfdm9p ZF9jYWxsZWRfd2l0aD0nc29tZSBzcWwnLAotICAgICAgICAgKSksCi0gICAgICAgICgnV2hlbiBz ZXJ2ZXIgaXMgY29ubmVjdGVkIGFuZCBzdGFydCBxdWVyeSBhc3luYyByZXF1ZXN0IHdpdGggJwot ICAgICAgICAgJ2V4cGxhaW4gcGxhbiB3cmFwcGVyLCAnCi0gICAgICAgICAnaXQgcmV0dXJucyBh biBzdWNjZXNzIG1lc3NhZ2UnLAotICAgICAgICAgZGljdCgKLSAgICAgICAgICAgICBmdW5jdGlv bl9wYXJhbWV0ZXJzPWRpY3QoCi0gICAgICAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0nc29tZSBz cWwnLCBleHBsYWluX3BsYW49Tm9uZSksCi0gICAgICAgICAgICAgICAgIHRyYW5zX2lkPTEyMywK LSAgICAgICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0 KGNvbW1hbmRfb2JqPScnKX0pCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAgICBwaWNrbGVf bG9hZF9yZXR1cm49TWFnaWNNb2NrKAotICAgICAgICAgICAgICAgICBjb25uX2lkPTEsCi0gICAg ICAgICAgICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCksCi0gICAgICAg ICAgICAgICAgIHNldF9jb25uZWN0aW9uX2lkPU1hZ2ljTW9jaygpLAotICAgICAgICAgICAgICAg ICBhdXRvX2NvbW1pdD1UcnVlLAotICAgICAgICAgICAgICAgICBhdXRvX3JvbGxiYWNrPUZhbHNl LAotICAgICAgICAgICAgICAgICBjYW5fZWRpdD1sYW1iZGE6IFRydWUsCi0gICAgICAgICAgICAg ICAgIGNhbl9maWx0ZXI9bGFtYmRhOiBUcnVlCi0gICAgICAgICAgICAgKSwKLSAgICAgICAgICAg ICBnZXRfZHJpdmVyX2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBnZXRfY29ubmVjdGlv bl9sb3N0X2V4Y2VwdGlvbj1GYWxzZSwKLSAgICAgICAgICAgICBtYW5hZ2VyX2Nvbm5lY3Rpb25f ZXhjZXB0aW9uPU5vbmUsCi0KLSAgICAgICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyPVRy dWUsCi0gICAgICAgICAgICAgY29ubmVjdGlvbl9jb25uZWN0X3JldHVybj1Ob25lLAotICAgICAg ICAgICAgIGV4ZWN1dGVfYXN5bmNfcmV0dXJuX3ZhbHVlPVtUcnVlLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnYXN5bmMgZnVuY3Rpb24gcmVzdWx0IG91dHB1dCdd LAotICAgICAgICAgICAgIGlzX2JlZ2luX3JlcXVpcmVkPUZhbHNlLAotICAgICAgICAgICAgIGlz X3JvbGxiYWNrX3JlcXVpcmVkPVRydWUsCi0gICAgICAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFu X3dyYXBwZXJfaWZfbmVlZGVkX3JldHVybl92YWx1ZT0nRVhQTEFJTiAnCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUExBTiBz b21lIHNxbCcsCi0KLSAgICAgICAgICAgICBleHBlY3RfbWFrZV9qc29uX3Jlc3BvbnNlX3RvX2hh dmVfYmVlbl9jYWxsZWRfd2l0aD1kaWN0KAotICAgICAgICAgICAgICAgICBkYXRhPWRpY3QoCi0g ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgIHJl c3VsdD0nYXN5bmMgZnVuY3Rpb24gcmVzdWx0IG91dHB1dCcsCi0gICAgICAgICAgICAgICAgICAg ICBjYW5fZWRpdD1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1UcnVlLAot ICAgICAgICAgICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PTUKLSAgICAgICAgICAg ICAgICAgKQotICAgICAgICAgICAgICksCi0gICAgICAgICAgICAgZXhwZWN0X2ludGVybmFsX3Nl cnZlcl9lcnJvcl9jYWxsZWRfd2l0aD1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdGVkX2xvZ2dl cl9lcnJvcj1Ob25lLAotICAgICAgICAgICAgIGV4cGVjdF9leGVjdXRlX3ZvaWRfY2FsbGVkX3dp dGg9J0VYUExBSU4gUExBTiBzb21lIHNxbCcsCi0gICAgICAgICApKSwKLSAgICBdCitjbGFzcyBU ZXN0U3RhcnRSdW5uaW5nUXVlcnk6CisKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRp dG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdw Z2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAg ICAgICAnLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCcpCisgICAgQHBhdGNo KCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAg ICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRv b2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLm1h a2VfanNvbl9yZXNwb25zZScpCisgICAgZGVmIHRlc3Rfc3RhcnRfcXVlcnlfbm9fZ3JpZGRhdGEo CisgICAgICAgIHNlbGYsCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAorICAgICAg ICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFu X3dyYXBwZXJfaWZfbmVlZGVkX21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaywKKyAgICAg ICAgcmVxdWVzdAorICAgICk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIFN0YXJ0UnVubmlu Z1F1ZXJ5IGlzIGV4ZWN1dGVkCisgICAgICAgIEFuZCBncmlkRGF0YSBpcyBub3QgcHJlc2VudCBp biBzZXNzaW9uCisgICAgICAgIGl0IHJldHVybnMgYW4gZXJyb3IKKyAgICAgICAgIiIiCisKKyAg ICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICBleHBl Y3RlZF9yZXNwb25zZSA9IFwKKyAgICAgICAgICAgIFJlc3BvbnNlKHJlc3BvbnNlPWpzb24uZHVt cHMoeydlcnJvcm1zZyc6ICdzb21lIHZhbHVlJ30pKQorICAgICAgICBtYWtlX2pzb25fcmVzcG9u c2VfbW9jay5yZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9yZXNwb25zZQorICAgICAgICBTdGFydFJ1 bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5ID0gXAorICAgICAgICAg ICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVl cnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAorICAgICAgICAgICAgTWFnaWNN b2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBw ZXJfaWZfbmVlZGVkX21vY2sucmV0dXJuX3ZhbHVlID0gXAorICAgICAgICAgICAgJ3NvbWUgc3Fs JworCisgICAgICAgIG1hbmFnZXIgPSBzZWxmLl9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAg ICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAg ICAgTm9uZQorICAgICAgICApCisgICAgICAgIGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUg PSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uZWN0aW9uX21hbmFnZXI9bGFtYmRhIHNlc3Np b25faWQ6IG1hbmFnZXIpCisKKyAgICAgICAgYmx1ZXByaW50X21vY2sgPSBNYWdpY01vY2soCisg ICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9TWFnaWNNb2NrKGdldD1sYW1iZGE6IDUp CisgICAgICAgICkKKyAgICAgICAgbG9nZ2VyTW9jayA9IE1hZ2ljTW9jayhlcnJvcj1NYWdpY01v Y2soKSkKKworICAgICAgICByZXN1bHQgPSBTdGFydFJ1bm5pbmdRdWVyeSgKKyAgICAgICAgICAg IGJsdWVwcmludF9tb2NrLAorICAgICAgICAgICAgbG9nZ2VyTW9jaworICAgICAgICApLmV4ZWN1 dGUoCisgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5v bmUpLAorICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAorICAgICAgICAgICAgaHR0cF9zZXNzaW9u PWRpY3QoKQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmVxdWFsKGV4cGVj dGVkX3Jlc3BvbnNlKQorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRfY2Fs bGVkX3dpdGgoCisgICAgICAgICAgICBzdWNjZXNzPTAsCisgICAgICAgICAgICBlcnJvcm1zZz0n VHJhbnNhY3Rpb24gSUQgbm90IGZvdW5kIGluIHRoZSBzZXNzaW9uLicsCisgICAgICAgICAgICBp bmZvPSdEQVRBR1JJRF9UUkFOU0FDVElPTl9SRVFVSVJFRCcsCisgICAgICAgICAgICBzdGF0dXM9 NDA0CisgICAgICAgICkKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0 X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV9hc3luYy5hc3Nl cnRfbm90X2NhbGxlZCgpCisgICAgICAgIGxvZ2dlck1vY2suZXJyb3IuYXNzZXJ0X25vdF9jYWxs ZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFzc2VydF9ub3RfY2Fs bGVkKCkKKworICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRf cnVubmluZ19xdWVyeS5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuYXBwbHlfZXhw bGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMu c3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuaW50ZXJu YWxfc2VydmVyX2Vycm9yJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0 aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcubWFrZV9qc29uX3Jlc3BvbnNl JykKKyAgICBkZWYgdGVzdF9zdGFydF9xdWVyeV9ub190cmFuc2FjdGlvbl9pZCgKKyAgICAgICAg c2VsZiwKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgIGludGVybmFs X3NlcnZlcl9lcnJvcl9tb2NrLAorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9p Zl9uZWVkZWRfbW9jaywKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLAorICAgICAgICByZXF1ZXN0 CisgICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU3RhcnRSdW5uaW5nUXVlcnkgaXMg ZXhlY3V0ZWQKKyAgICAgICAgQW5kIHRoZSB0cmFuc2FjdGlvbklEIGlzIG5vdCBwcmVzZW50IGlu IHRoZSBncmlkRGF0YQorICAgICAgICBpdCByZXR1cm5zIGFuIGVycm9yCisgICAgICAgICIiIgor CisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAg ZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAgICAgICBSZXNwb25zZShyZXNwb25zZT1qc29u LmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1ZSd9KSkKKyAgICAgICAgbWFrZV9qc29uX3Jl c3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVzcG9uc2UKKyAgICAgICAgU3Rh cnRSdW5uaW5nUXVlcnkuaXNfYmVnaW5fcmVxdWlyZWRfZm9yX3NxbF9xdWVyeSA9IFwKKyAgICAg ICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisgICAgICAgIFN0YXJ0UnVubmlu Z1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJlZCA9IFwKKyAgICAgICAgICAgIE1h Z2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93 cmFwcGVyX2lmX25lZWRlZF9tb2NrLnJldHVybl92YWx1ZSA9IFwKKyAgICAgICAgICAgICdzb21l IHNxbCcKKworICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKAorICAgICAg ICAgICAgRmFsc2UsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAg ICAgICAgIE5vbmUKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3Zh bHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPWxhbWJkYSBz ZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAgICAgIGJsdWVwcmludF9tb2NrID0gTWFnaWNNb2Nr KAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFtYmRh OiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9TWFn aWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAgICAg ICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAgKS5l eGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxh bj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBfc2Vz c2lvbj1kaWN0KGdyaWREYXRhPWRpY3QoKSkKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8 IHNob3VsZC5lcXVhbChleHBlY3RlZF9yZXNwb25zZSkKKyAgICAgICAgbWFrZV9qc29uX3Jlc3Bv bnNlX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAg ICAgICAgICAgZXJyb3Jtc2c9J1RyYW5zYWN0aW9uIElEIG5vdCBmb3VuZCBpbiB0aGUgc2Vzc2lv bi4nLAorICAgICAgICAgICAgaW5mbz0nREFUQUdSSURfVFJBTlNBQ1RJT05fUkVRVUlSRUQnLAor ICAgICAgICAgICAgc3RhdHVzPTQwNAorICAgICAgICApCisgICAgICAgIGludGVybmFsX3NlcnZl cl9lcnJvcl9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9u LmV4ZWN1dGVfYXN5bmMuYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBsb2dnZXJNb2NrLmVy cm9yLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVf dm9pZC5hc3NlcnRfbm90X2NhbGxlZCgpCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkucGlja2xlJykKKyAgICBAcGF0Y2goJ3Bn YWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkuZ2V0X2RyaXZl cicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5u aW5nX3F1ZXJ5JworICAgICAgICAgICAnLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25l ZWRlZCcpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9y dW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAg QHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5 JworICAgICAgICAgICAnLm1ha2VfanNvbl9yZXNwb25zZScpCisgICAgZGVmIHRlc3Rfc3RhcnRf cXVlcnlfbm9fY29tbWFuZF9pbmZvKAorICAgICAgICBzZWxmLAorICAgICAgICBtYWtlX2pzb25f cmVzcG9uc2VfbW9jaywKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2ssCisgICAg ICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLAorICAgICAgICBn ZXRfZHJpdmVyX21vY2ssCisgICAgICAgIHBpY2tsZV9tb2NrLAorICAgICAgICByZXF1ZXN0Cisg ICAgKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gU3RhcnRSdW5uaW5nUXVlcnkgaXMgZXhl Y3V0ZWQKKyAgICAgICAgQW5kIHRoZSBjb21tYW5kIGluZm9ybWF0aW9uIGNhbm5vdCBiZSByZXRy aWV2ZWQKKyAgICAgICAgaXQgcmV0dXJucyBhbiBlcnJvcgorICAgICAgICAiIiIKKworICAgICAg ICByZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIGV4cGVjdGVk X3Jlc3BvbnNlID0gXAorICAgICAgICAgICAgUmVzcG9uc2UocmVzcG9uc2U9anNvbi5kdW1wcyh7 J2Vycm9ybXNnJzogJ3NvbWUgdmFsdWUnfSkpCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9t b2NrLnJldHVybl92YWx1ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCisgICAgICAgIFN0YXJ0UnVubmlu Z1F1ZXJ5LmlzX2JlZ2luX3JlcXVpcmVkX2Zvcl9zcWxfcXVlcnkgPSBcCisgICAgICAgICAgICBN YWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5p c19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBcCisgICAgICAgICAgICBNYWdpY01vY2so cmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9p Zl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBcCisgICAgICAgICAgICAnc29tZSBzcWwnCisg ICAgICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVybl92YWx1ZSA9IE5vbmUKKworICAgICAgICBt YW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKAorICAgICAgICAgICAgRmFsc2UsCisgICAg ICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIE5vbmUKKyAgICAg ICAgKQorICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAor ICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPWxhbWJkYSBzZXNzaW9uX2lkOiBtYW5hZ2Vy KQorCisgICAgICAgIGJsdWVwcmludF9tb2NrID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgaW5m b19ub3RpZmllcl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFtYmRhOiA1KQorICAgICAgICApCisg ICAgICAgIGxvZ2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9TWFnaWNNb2NrKCkpCisKKyAgICAg ICAgcmVzdWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAgICAgICAgICBibHVlcHJpbnRfbW9j aywKKyAgICAgICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAgKS5leGVjdXRlKAorICAgICAgICAg ICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKKyAgICAgICAg ICAgIHRyYW5zX2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRh PXsnMTIzJzogZGljdChjb21tYW5kX29iaj0nJyl9KQorICAgICAgICApCisKKyAgICAgICAgcmVz dWx0IHwgc2hvdWxkLmVxdWFsKGV4cGVjdGVkX3Jlc3BvbnNlKQorICAgICAgICBtYWtlX2pzb25f cmVzcG9uc2VfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBkYXRhPWRpY3Qo CisgICAgICAgICAgICAgICAgc3RhdHVzPUZhbHNlLAorICAgICAgICAgICAgICAgIHJlc3VsdD0n RWl0aGVyIHRyYW5zYWN0aW9uIG9iamVjdCBvciBzZXNzaW9uIG9iamVjdCAnCisgICAgICAgICAg ICAgICAgICAgICAgICdub3QgZm91bmQuJywKKyAgICAgICAgICAgICAgICBjYW5fZWRpdD1GYWxz ZSwKKyAgICAgICAgICAgICAgICBjYW5fZmlsdGVyPUZhbHNlLAorICAgICAgICAgICAgICAgIGlu Zm9fbm90aWZpZXJfdGltZW91dD01CisgICAgICAgICAgICApCisgICAgICAgICkKKyAgICAgICAg aW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBz ZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV9hc3luYy5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAg IGxvZ2dlck1vY2suZXJyb3IuYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5l Y3Rpb24uZXhlY3V0ZV92b2lkLmFzc2VydF9ub3RfY2FsbGVkKCkKKworICAgIEBwYXRjaCgncGdh ZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeS5waWNrbGUnKQor ICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19x dWVyeS5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0 aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuYXBwbHlfZXhwbGFpbl9wbGFu X3dyYXBwZXJfaWZfbmVlZGVkJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9y LnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuaW50ZXJuYWxfc2VydmVy X2Vycm9yJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0 X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcubWFrZV9qc29uX3Jlc3BvbnNlJykKKyAgICBk ZWYgdGVzdF9zdGFydF9xdWVyeV9kYl9leGNlcHRpb24oCisgICAgICAgIHNlbGYsCisgICAgICAg IG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAorICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Jf bW9jaywKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2ss CisgICAgICAgIGdldF9kcml2ZXJfbW9jaywKKyAgICAgICAgcGlja2xlX21vY2ssCisgICAgICAg IHJlcXVlc3QKKyAgICApOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBTdGFydFJ1bm5pbmdR dWVyeSBpcyBleGVjdXRlZAorICAgICAgICBBbmQgZXhjZXB0aW9uIGhhcHBlbnMgd2hpbGUgcmV0 cmlldmluZyB0aGUgZGF0YWJhc2UgZHJpdmVyCisgICAgICAgIGl0IHJldHVybnMgYW4gZXJyb3IK KyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5hbGl6ZXIoc2VsZi50ZWFyRG93 bikKKworICAgICAgICBleHBlY3RlZF9yZXNwb25zZSA9IFwKKyAgICAgICAgICAgIFJlc3BvbnNl KHJlc3BvbnNlPWpzb24uZHVtcHMoeydlcnJvcm1zZyc6ICdzb21lIHZhbHVlJ30pKQorICAgICAg ICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5yZXR1cm5fdmFsdWUgPSBleHBlY3RlZF9yZXNwb25z ZQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1 ZXJ5ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAg ICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAor ICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgYXBwbHlf ZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2sucmV0dXJuX3ZhbHVlID0gXAorICAg ICAgICAgICAgJ3NvbWUgc3FsJworICAgICAgICBwaWNrbGVfbW9jay5sb2Fkcy5yZXR1cm5fdmFs dWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uX2lkPTEsCisgICAgICAgICAgICB1cGRh dGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpCisgICAgICAgICkKKworICAgICAgICBzZWxm Ll9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUs CisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZQorICAgICAgICApCisgICAgICAg IGdldF9kcml2ZXJfbW9jay5zaWRlX2VmZmVjdCA9IGdldF9kcml2ZXJfZXhjZXB0aW9uCisKKyAg ICAgICAgYmx1ZXByaW50X21vY2sgPSBNYWdpY01vY2soCisgICAgICAgICAgICBpbmZvX25vdGlm aWVyX3RpbWVvdXQ9TWFnaWNNb2NrKGdldD1sYW1iZGE6IDUpCisgICAgICAgICkKKyAgICAgICAg bG9nZ2VyTW9jayA9IE1hZ2ljTW9jayhlcnJvcj1NYWdpY01vY2soKSkKKworICAgICAgICByZXN1 bHQgPSBTdGFydFJ1bm5pbmdRdWVyeSgKKyAgICAgICAgICAgIGJsdWVwcmludF9tb2NrLAorICAg ICAgICAgICAgbG9nZ2VyTW9jaworICAgICAgICApLmV4ZWN1dGUoCisgICAgICAgICAgICBzcWw9 ZGljdChzcWw9J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUpLAorICAgICAgICAgICAgdHJh bnNfaWQ9MTIzLAorICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMn OiBkaWN0KGNvbW1hbmRfb2JqPScnKX0pCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBz aG91bGQuZXF1YWwoZXhwZWN0ZWRfcmVzcG9uc2UpCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25z ZV9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9y X21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgZXJyb3Jtc2c9J2dldF9kcml2 ZXIgZXhjZXB0aW9uJworICAgICAgICApCisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRl X2FzeW5jLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgbG9nZ2VyTW9jay5lcnJvci5hc3Nl cnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICBnZXRfZHJpdmVyX2V4Y2VwdGlvbgorICAgICAg ICApCisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX3ZvaWQuYXNzZXJ0X25vdF9jYWxs ZWQoKQorCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9y dW5uaW5nX3F1ZXJ5LnBpY2tsZScpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdh ZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAg ICAgJy5hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQnKQorICAgIEBwYXRjaCgn cGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAg ICAgICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29s cy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5tYWtl X2pzb25fcmVzcG9uc2UnKQorICAgIGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5X2Nvbm5fbG9zdCgKKyAg ICAgICAgc2VsZiwKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2ssCisgICAgICAgIGlu dGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3Jh cHBlcl9pZl9uZWVkZWRfbW9jaywKKyAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLAorICAgICAgICBw aWNrbGVfbW9jaywKKyAgICAgICAgcmVxdWVzdAorICAgICk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIFN0YXJ0UnVubmluZ1F1ZXJ5IGlzIGV4ZWN1dGVkCisgICAgICAgIEFuZCBDb25uZWN0 aW9uIGlzIGxvc3Qgd2hlbiByZXRyaWV2aW5nIHRoZSBkYiBjb25uZWN0aW9uCisgICAgICAgIGl0 IHJldHVybnMgYW4gZXJyb3IKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWVzdC5hZGRmaW5h bGl6ZXIoc2VsZi50ZWFyRG93bikKKworICAgICAgICBleHBlY3RlZF9yZXNwb25zZSA9IFwKKyAg ICAgICAgICAgIFJlc3BvbnNlKHJlc3BvbnNlPWpzb24uZHVtcHMoeydlcnJvcm1zZyc6ICdzb21l IHZhbHVlJ30pKQorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5yZXR1cm5fdmFsdWUg PSBleHBlY3RlZF9yZXNwb25zZQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9y ZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92 YWx1ZT1GYWxzZSkKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVt ZW50X3JlcXVpcmVkID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxz ZSkKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2sucmV0 dXJuX3ZhbHVlID0gXAorICAgICAgICAgICAgJ3NvbWUgc3FsJworICAgICAgICBwaWNrbGVfbW9j ay5sb2Fkcy5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uX2lkPTEs CisgICAgICAgICAgICB1cGRhdGVfZmV0Y2hlZF9yb3dfY250PU1hZ2ljTW9jaygpCisgICAgICAg ICkKKworICAgICAgICBtYW5hZ2VyID0gc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKAorICAgICAgICAg ICAgRmFsc2UsCisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAg ICAgIENvbm5lY3Rpb25Mb3N0KCcxJywgJzInLCAnMycpCisgICAgICAgICkKKyAgICAgICAgZ2V0 X2RyaXZlcl9tb2NrLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5l Y3Rpb25fbWFuYWdlcj1sYW1iZGEgc2Vzc2lvbl9pZDogbWFuYWdlcikKKworICAgICAgICBibHVl cHJpbnRfbW9jayA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91 dD1NYWdpY01vY2soZ2V0PWxhbWJkYTogNSkKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2Nr ID0gTWFnaWNNb2NrKGVycm9yPU1hZ2ljTW9jaygpKQorCisgICAgICAgIChsYW1iZGE6IFN0YXJ0 UnVubmluZ1F1ZXJ5KAorICAgICAgICAgICAgYmx1ZXByaW50X21vY2ssCisgICAgICAgICAgICBs b2dnZXJNb2NrCisgICAgICAgICkuZXhlY3V0ZSgKKyAgICAgICAgICAgIHNxbD1kaWN0KHNxbD0n c29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCisgICAgICAgICAgICB0cmFuc19pZD0xMjMs CisgICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6IGRpY3QoY29t bWFuZF9vYmo9JycpfSkKKyAgICAgICAgKSkgfCBzaG91bGQucmFpc2VzKENvbm5lY3Rpb25Mb3N0 KQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkK KyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQor ICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV9hc3luYy5hc3NlcnRfbm90X2NhbGxlZCgp CisgICAgICAgIGxvZ2dlck1vY2suZXJyb3IuYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBz ZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFzc2VydF9ub3RfY2FsbGVkKCkKIAorICAgIEBw YXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeS5w aWNrbGUnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRf cnVubmluZ19xdWVyeS5nZXRfZHJpdmVyJykKICAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3Fs ZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCiAgICAgICAgICAgICcuYXBwbHlfZXhw bGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMu c3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcuaW50ZXJu YWxfc2VydmVyX2Vycm9yJykKICAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0 aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCiAgICAgICAgICAgICcubWFrZV9qc29uX3Jlc3BvbnNl JykKKyAgICBkZWYgdGVzdF9zdGFydF9xdWVyeV9zc2hjb25uX2xvc3QoCisgICAgICAgIHNlbGYs CisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAorICAgICAgICBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3JfbW9jaywKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVl ZGVkX21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaywKKyAgICAgICAgcGlja2xlX21vY2ss CisgICAgICAgIHJlcXVlc3QKKyAgICApOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBTdGFy dFJ1bm5pbmdRdWVyeSBpcyBleGVjdXRlZAorICAgICAgICBBbmQgU1NIVHVubmVsQ29ubmVjdGlv bkxvc3QgaXMgbG9zdCB3aGVuIHJldHJpZXZpbmcgdGhlIGRiIGNvbm5lY3Rpb24KKyAgICAgICAg aXQgcmV0dXJucyBhbiBlcnJvcgorICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlID0gXAor ICAgICAgICAgICAgUmVzcG9uc2UocmVzcG9uc2U9anNvbi5kdW1wcyh7J2Vycm9ybXNnJzogJ3Nv bWUgdmFsdWUnfSkpCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLnJldHVybl92YWx1 ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCisgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2lu X3JlcXVpcmVkX2Zvcl9zcWxfcXVlcnkgPSBcCisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJu X3ZhbHVlPUZhbHNlKQorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0 ZW1lbnRfcmVxdWlyZWQgPSBcCisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZh bHNlKQorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5y ZXR1cm5fdmFsdWUgPSBcCisgICAgICAgICAgICAnc29tZSBzcWwnCisgICAgICAgIHBpY2tsZV9t b2NrLmxvYWRzLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5faWQ9 MSwKKyAgICAgICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCkKKyAgICAg ICAgKQorCisgICAgICAgIG1hbmFnZXIgPSBzZWxmLl9fY3JlYXRlX21hbmFnZXIoCisgICAgICAg ICAgICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBOb25lLAorICAgICAg ICAgICAgU1NIVHVubmVsQ29ubmVjdGlvbkxvc3QoJzEuMS4xLjEnKQorICAgICAgICApCisgICAg ICAgIGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAg ICBjb25uZWN0aW9uX21hbmFnZXI9bGFtYmRhIHNlc3Npb25faWQ6IG1hbmFnZXIpCisKKyAgICAg ICAgYmx1ZXByaW50X21vY2sgPSBNYWdpY01vY2soCisgICAgICAgICAgICBpbmZvX25vdGlmaWVy X3RpbWVvdXQ9TWFnaWNNb2NrKGdldD1sYW1iZGE6IDUpCisgICAgICAgICkKKyAgICAgICAgbG9n Z2VyTW9jayA9IE1hZ2ljTW9jayhlcnJvcj1NYWdpY01vY2soKSkKKworICAgICAgICAobGFtYmRh OiBTdGFydFJ1bm5pbmdRdWVyeSgKKyAgICAgICAgICAgIGJsdWVwcmludF9tb2NrLAorICAgICAg ICAgICAgbG9nZ2VyTW9jaworICAgICAgICApLmV4ZWN1dGUoCisgICAgICAgICAgICBzcWw9ZGlj dChzcWw9J3NvbWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUpLAorICAgICAgICAgICAgdHJhbnNf aWQ9MTIzLAorICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBk aWN0KGNvbW1hbmRfb2JqPScnKX0pCisgICAgICAgICkpIHwgc2hvdWxkLnJhaXNlcyhTU0hUdW5u ZWxDb25uZWN0aW9uTG9zdCkKKworICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3Nl cnRfbm90X2NhbGxlZCgpCisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLmFzc2Vy dF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfYXN5bmMuYXNz ZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBsb2dnZXJNb2NrLmVycm9yLmFzc2VydF9ub3RfY2Fs bGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfdm9pZC5hc3NlcnRfbm90X2Nh bGxlZCgpCisKICAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0 X3J1bm5pbmdfcXVlcnkucGlja2xlJykKICAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRp dG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnkuZ2V0X2RyaXZlcicpCisgICAgQHBhdGNoKCdw Z2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAg ICAgICAnLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZCcpCiAgICAgQHBhdGNo KCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JwogICAg ICAgICAgICAnLmludGVybmFsX3NlcnZlcl9lcnJvcicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRv b2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5JworICAgICAgICAgICAnLm1h a2VfanNvbl9yZXNwb25zZScpCisgICAgZGVmIHRlc3Rfc3RhcnRfcXVlcnlfZmFpbF90b19jb25u ZWN0KAorICAgICAgICBzZWxmLAorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAg ICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2ssCisgICAgICAgIGFwcGx5X2V4cGxhaW5f cGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLAorICAgICAgICBnZXRfZHJpdmVyX21vY2ssCisg ICAgICAgIHBpY2tsZV9tb2NrLAorICAgICAgICByZXF1ZXN0CisgICAgKToKKyAgICAgICAgIiIi CisgICAgICAgIFdoZW4gU3RhcnRSdW5uaW5nUXVlcnkgaXMgZXhlY3V0ZWQKKyAgICAgICAgQW5k IGZhaWx1cmUgdG8gY29ubmVjdCB0byB0aGUgc2VydmVyIG9jY3VycworICAgICAgICBpdCByZXR1 cm5zIGFuIGVycm9yCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVy KHNlbGYudGVhckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAg ICAgICBSZXNwb25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1 ZSd9KSkKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhw ZWN0ZWRfcmVzcG9uc2UKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfYmVnaW5fcmVxdWly ZWRfZm9yX3NxbF9xdWVyeSA9IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9 RmFsc2UpCisgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9y ZXF1aXJlZCA9IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisg ICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLnJldHVybl92 YWx1ZSA9IFwKKyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgcGlja2xlX21vY2subG9h ZHMucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubl9pZD0xLAorICAg ICAgICAgICAgdXBkYXRlX2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2soKQorICAgICAgICApCisK KyAgICAgICAgc2VsZi5fX2NyZWF0ZV9tYW5hZ2VyKAorICAgICAgICAgICAgRmFsc2UsCisgICAg ICAgICAgICBbRmFsc2UsICdVbmFibGUgdG8gY29ubmVjdCB0byBzZXJ2ZXInXSwKKyAgICAgICAg ICAgIE5vbmUsCisgICAgICAgICAgICBOb25lCisgICAgICAgICkKKyAgICAgICAgZ2V0X2RyaXZl cl9tb2NrLnNpZGVfZWZmZWN0ID0gZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb24KKworICAg ICAgICBibHVlcHJpbnRfbW9jayA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGluZm9fbm90aWZp ZXJfdGltZW91dD1NYWdpY01vY2soZ2V0PWxhbWJkYTogNSkKKyAgICAgICAgKQorICAgICAgICBs b2dnZXJNb2NrID0gTWFnaWNNb2NrKGVycm9yPU1hZ2ljTW9jaygpKQorCisgICAgICAgIHJlc3Vs dCA9IFN0YXJ0UnVubmluZ1F1ZXJ5KAorICAgICAgICAgICAgYmx1ZXByaW50X21vY2ssCisgICAg ICAgICAgICBsb2dnZXJNb2NrCisgICAgICAgICkuZXhlY3V0ZSgKKyAgICAgICAgICAgIHNxbD1k aWN0KHNxbD0nc29tZSBzcWwnLCBleHBsYWluX3BsYW49Tm9uZSksCisgICAgICAgICAgICB0cmFu c19pZD0xMjMsCisgICAgICAgICAgICBodHRwX3Nlc3Npb249ZGljdChncmlkRGF0YT17JzEyMyc6 IGRpY3QoY29tbWFuZF9vYmo9JycpfSkKKyAgICAgICAgKQorCisgICAgICAgIHJlc3VsdCB8IHNo b3VsZC5lcXVhbChleHBlY3RlZF9yZXNwb25zZSkKKworICAgICAgICBtYWtlX2pzb25fcmVzcG9u c2VfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisgICAgICAgIGludGVybmFsX3NlcnZlcl9lcnJv cl9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIGVycm9ybXNnPSdVbmFibGUg dG8gY29ubmVjdCB0byBzZXJ2ZXInCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9u LmV4ZWN1dGVfYXN5bmMuYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBsb2dnZXJNb2NrLmVy cm9yLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIGdldF9jb25uZWN0aW9uX2xvc3Rf ZXhjZXB0aW9uCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfdm9p ZC5hc3NlcnRfbm90X2NhbGxlZCgpCisKICAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRp dG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCiAgICAgICAgICAgICcudXBkYXRlX3Nlc3Np b25fZ3JpZF90cmFuc2FjdGlvbicpCi0gICAgZGVmIHJ1blRlc3Qoc2VsZiwgdXBkYXRlX3Nlc3Np b25fZ3JpZF90cmFuc2FjdGlvbl9tb2NrLAotICAgICAgICAgICAgICAgIGludGVybmFsX3NlcnZl cl9lcnJvcl9tb2NrLCBnZXRfZHJpdmVyX21vY2ssIHBpY2tsZV9tb2NrLAotICAgICAgICAgICAg ICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAotICAgICAgICAgICAgICAgIGFwcGx5X2V4cGxh aW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrKToKLSAgICAgICAgIiIiQ2hlY2sgY29ycmVj dCBmdW5jdGlvbiBpcyBjYWxsZWQgdG8gaGFuZGxlIHRvIHJ1biBxdWVyeS4iIiIKLSAgICAgICAg c2VsZi5jb25uZWN0aW9uID0gTm9uZQotCi0gICAgICAgIHNlbGYubG9nZ2VyTW9jayA9IE1hZ2lj TW9jayhlcnJvcj1NYWdpY01vY2soKSkKLSAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBSZXNw b25zZSgKLSAgICAgICAgICAgIHJlc3BvbnNlPWpzb24uZHVtcHMoeydlcnJvcm1zZyc6ICdzb21l IHZhbHVlJ30pKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3Rh cnRfcnVubmluZ19xdWVyeS5waWNrbGUnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxl ZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeS5nZXRfZHJpdmVyJykKKyAgICBAcGF0Y2go J3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAg ICAgICAgICcuYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkJykKKyAgICBAcGF0 Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisg ICAgICAgICAgICcuaW50ZXJuYWxfc2VydmVyX2Vycm9yJykKKyAgICBAcGF0Y2goJ3BnYWRtaW4u dG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcu bWFrZV9qc29uX3Jlc3BvbnNlJykKKyAgICBkZWYgdGVzdF9zdGFydF9xdWVyeV9mYWlsX3RvX2Nv bm5lY3QoCisgICAgICAgIHNlbGYsCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLAor ICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKKyAgICAgICAgYXBwbHlfZXhwbGFp bl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2ssCisgICAgICAgIGdldF9kcml2ZXJfbW9jaywK KyAgICAgICAgcGlja2xlX21vY2ssCisgICAgICAgIHVwZGF0ZV9zZXNzaW9uX2dyaWRfdHJhbnNh Y3Rpb25fbW9jaywKKyAgICAgICAgcmVxdWVzdAorICAgICk6CisgICAgICAgICIiIgorICAgICAg ICBXaGVuIFN0YXJ0UnVubmluZ1F1ZXJ5IGlzIGV4ZWN1dGVkCisgICAgICAgIEFuZCB0aGUgc2Vy dmVyIGlzIGNvbm5lY3RlZCBhbmQgc3RhcnQgcXVlcnkgYXN5bmMKKyAgICAgICAgaXQgcmV0dXJu cyBhIHN1Y2Nlc3MgbWVzc2FnZQorICAgICAgICAiIiIKKworICAgICAgICByZXF1ZXN0LmFkZGZp bmFsaXplcihzZWxmLnRlYXJEb3duKQorCisgICAgICAgIGV4cGVjdGVkX3Jlc3BvbnNlID0gXAor ICAgICAgICAgICAgUmVzcG9uc2UocmVzcG9uc2U9anNvbi5kdW1wcyh7J2Vycm9ybXNnJzogJ3Nv bWUgdmFsdWUnfSkpCiAgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLnJldHVybl92YWx1 ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCi0gICAgICAgIGlmIHNlbGYuZXhwZWN0X2ludGVybmFsX3Nl cnZlcl9lcnJvcl9jYWxsZWRfd2l0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGludGVybmFs X3NlcnZlcl9lcnJvcl9tb2NrLnJldHVybl92YWx1ZSA9IGV4cGVjdGVkX3Jlc3BvbnNlCi0gICAg ICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVybl92YWx1ZSA9IHNlbGYucGlja2xlX2xvYWRfcmV0 dXJuCisKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfYmVnaW5fcmVxdWlyZWRfZm9yX3Nx bF9xdWVyeSA9IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisg ICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9yZXF1aXJlZCA9 IFwKKyAgICAgICAgICAgIE1hZ2ljTW9jayhyZXR1cm5fdmFsdWU9RmFsc2UpCisgICAgICAgIGFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLnJldHVybl92YWx1ZSA9IFwK KyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgcGlja2xlX21vY2subG9hZHMucmV0dXJu X3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubl9pZD0xLAorICAgICAgICAgICAg dXBkYXRlX2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2soKSwKKyAgICAgICAgICAgIHNldF9jb25u ZWN0aW9uX2lkPU1hZ2ljTW9jaygpLAorICAgICAgICAgICAgYXV0b19jb21taXQ9VHJ1ZSwKKyAg ICAgICAgICAgIGF1dG9fcm9sbGJhY2s9RmFsc2UsCisgICAgICAgICAgICBjYW5fZWRpdD1sYW1i ZGE6IFRydWUsCisgICAgICAgICAgICBjYW5fZmlsdGVyPWxhbWJkYTogVHJ1ZQorICAgICAgICAp CisKKyAgICAgICAgbWFuYWdlciA9IHNlbGYuX19jcmVhdGVfbWFuYWdlcigKKyAgICAgICAgICAg IEZhbHNlLAorICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIFtUcnVlLCAnYXN5bmMgZnVu Y3Rpb24gcmVzdWx0IG91dHB1dCddLAorICAgICAgICAgICAgTm9uZQorICAgICAgICApCisgICAg ICAgIGdldF9kcml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAg ICBjb25uZWN0aW9uX21hbmFnZXI9bGFtYmRhIHNlc3Npb25faWQ6IG1hbmFnZXIpCisKICAgICAg ICAgYmx1ZXByaW50X21vY2sgPSBNYWdpY01vY2soCi0gICAgICAgICAgICBpbmZvX25vdGlmaWVy X3RpbWVvdXQ9TWFnaWNNb2NrKGdldD1sYW1iZGE6IDUpKQorICAgICAgICAgICAgaW5mb19ub3Rp Zmllcl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFtYmRhOiA1KQorICAgICAgICApCisgICAgICAg IGxvZ2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9TWFnaWNNb2NrKCkpCisKKyAgICAgICAgcmVz dWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAgICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAg ICAgICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAgKS5leGVjdXRlKAorICAgICAgICAgICAgc3Fs PWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRy YW5zX2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIz JzogZGljdChjb21tYW5kX29iaj0nJyl9KQorICAgICAgICApCiAKLSAgICAgICAgIyBTYXZlIHZh bHVlIGZvciB0aGUgbGF0ZXIgdXNlCi0gICAgICAgIHNlbGYuaXNfYmVnaW5fcmVxdWlyZWRfZm9y X3NxbF9xdWVyeSA9IFwKLSAgICAgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX2JlZ2luX3Jl cXVpcmVkX2Zvcl9zcWxfcXVlcnkKLSAgICAgICAgc2VsZi5pc19yb2xsYmFja19zdGF0ZW1lbnRf cmVxdWlyZWQgPSBcCi0gICAgICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19z dGF0ZW1lbnRfcmVxdWlyZWQKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmVxdWFsKGV4cGVjdGVk X3Jlc3BvbnNlKQogCi0gICAgICAgIGlmIHNlbGYuaXNfYmVnaW5fcmVxdWlyZWQ6Ci0gICAgICAg ICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5ID0g TWFnaWNNb2NrKAotICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1UcnVlCi0gICAgICAgICAg ICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdp bl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5ID0gTWFnaWNNb2NrKAotICAgICAgICAgICAgICAgIHJl dHVybl92YWx1ZT1GYWxzZQorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jay5hc3NlcnRf Y2FsbGVkX3dpdGgoCisgICAgICAgICAgICBkYXRhPWRpY3QoCisgICAgICAgICAgICAgICAgc3Rh dHVzPVRydWUsCisgICAgICAgICAgICAgICAgcmVzdWx0PSdhc3luYyBmdW5jdGlvbiByZXN1bHQg b3V0cHV0JywKKyAgICAgICAgICAgICAgICBjYW5fZWRpdD1UcnVlLAorICAgICAgICAgICAgICAg IGNhbl9maWx0ZXI9VHJ1ZSwKKyAgICAgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9 NQogICAgICAgICAgICAgKQotICAgICAgICBpZiBzZWxmLmlzX3JvbGxiYWNrX3JlcXVpcmVkOgot ICAgICAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVp cmVkID0gTWFnaWNNb2NrKAotICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1UcnVlCisgICAg ICAgICkKKworICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2Nh bGxlZCgpCisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5jLmFzc2VydF9jYWxs ZWRfd2l0aCgKKyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgKQorICAgICAgICBsb2dn ZXJNb2NrLmVycm9yLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9u LmV4ZWN1dGVfdm9pZC5hc3NlcnRfbm90X2NhbGxlZCgpCisKKyAgICAgICAgYXBwbHlfZXhwbGFp bl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAg ICAgICAgbWFuYWdlciwKKyAgICAgICAgICAgIGRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5f cGxhbj1Ob25lKQorICAgICAgICApCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRp dG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcudXBkYXRlX3Nlc3Np b25fZ3JpZF90cmFuc2FjdGlvbicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRv ci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LnBpY2tsZScpCisgICAgQHBhdGNoKCdwZ2FkbWlu LnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LmdldF9kcml2ZXInKQor ICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19x dWVyeScKKyAgICAgICAgICAgJy5hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQn KQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmlu Z19xdWVyeScKKyAgICAgICAgICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQorICAgIEBwYXRj aCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAg ICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQorICAgIGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5 X2JlZ2luX3JlcXVpcmVkKAorICAgICAgICBzZWxmLAorICAgICAgICBtYWtlX2pzb25fcmVzcG9u c2VfbW9jaywKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2ssCisgICAgICAgIGFw cGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLAorICAgICAgICBnZXRfZHJp dmVyX21vY2ssCisgICAgICAgIHBpY2tsZV9tb2NrLAorICAgICAgICB1cGRhdGVfc2Vzc2lvbl9n cmlkX3RyYW5zYWN0aW9uX21vY2ssCisgICAgICAgIHJlcXVlc3QKKyAgICApOgorICAgICAgICAi IiIKKyAgICAgICAgV2hlbiBTdGFydFJ1bm5pbmdRdWVyeSBpcyBleGVjdXRlZAorICAgICAgICBB bmQgdGhlIHNlcnZlciBpcyBjb25uZWN0ZWQgYW5kIHN0YXJ0IHF1ZXJ5IGFzeW5jCisgICAgICAg IEFuZCBiZWdpbiBpcyByZXF1aXJlZAorICAgICAgICBpdCByZXR1cm5zIGEgc3VjY2VzcyBtZXNz YWdlCisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVh ckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAgICAgICBSZXNw b25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1ZSd9KSkKKyAg ICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVz cG9uc2UKKworICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jf c3FsX3F1ZXJ5ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1UcnVlKQor ICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQg PSBcCisgICAgICAgICAgICBNYWdpY01vY2socmV0dXJuX3ZhbHVlPUZhbHNlKQorICAgICAgICBh cHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBc CisgICAgICAgICAgICAnc29tZSBzcWwnCisgICAgICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVy bl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAgICAgICAgIGNvbm5faWQ9MSwKKyAgICAgICAgICAg IHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFnaWNNb2NrKCksCisgICAgICAgICAgICBzZXRfY29u bmVjdGlvbl9pZD1NYWdpY01vY2soKSwKKyAgICAgICAgICAgIGF1dG9fY29tbWl0PVRydWUsCisg ICAgICAgICAgICBhdXRvX3JvbGxiYWNrPUZhbHNlLAorICAgICAgICAgICAgY2FuX2VkaXQ9bGFt YmRhOiBUcnVlLAorICAgICAgICAgICAgY2FuX2ZpbHRlcj1sYW1iZGE6IFRydWUKKyAgICAgICAg KQorCisgICAgICAgIG1hbmFnZXIgPSBzZWxmLl9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAg ICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUsCisgICAgICAgICAgICBbVHJ1ZSwgJ2FzeW5jIGZ1 bmN0aW9uIHJlc3VsdCBvdXRwdXQnXSwKKyAgICAgICAgICAgIE5vbmUKKyAgICAgICAgKQorICAg ICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAg ICAgY29ubmVjdGlvbl9tYW5hZ2VyPWxhbWJkYSBzZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAg ICAgIGJsdWVwcmludF9tb2NrID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgaW5mb19ub3RpZmll cl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFtYmRhOiA1KQorICAgICAgICApCisgICAgICAgIGxv Z2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9TWFnaWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0 ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAgICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAg ICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAgKS5leGVjdXRlKAorICAgICAgICAgICAgc3FsPWRp Y3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5z X2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBfc2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzog ZGljdChjb21tYW5kX29iaj0nJyl9KQorICAgICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hv dWxkLmVxdWFsKGV4cGVjdGVkX3Jlc3BvbnNlKQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25z ZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAg ICAgICAgICAgICBzdGF0dXM9VHJ1ZSwKKyAgICAgICAgICAgICAgICByZXN1bHQ9J2FzeW5jIGZ1 bmN0aW9uIHJlc3VsdCBvdXRwdXQnLAorICAgICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCisg ICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1UcnVlLAorICAgICAgICAgICAgICAgIGluZm9fbm90 aWZpZXJfdGltZW91dD01CiAgICAgICAgICAgICApCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg ICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBNYWdp Y01vY2soCi0gICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPUZhbHNlCisgICAgICAgICkKKwor ICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3NlcnRfbm90X2NhbGxlZCgpCisg ICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5jLmFzc2VydF9jYWxsZWRfd2l0aCgK KyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgKQorICAgICAgICBsb2dnZXJNb2NrLmVy cm9yLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVf dm9pZC5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnQkVHSU47JworICAgICAgICAp CisKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBwZXJfaWZfbmVlZGVkX21vY2suYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgbWFuYWdlciwKKyAgICAgICAgICAgIGRpY3Qo c3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKQorICAgICAgICApCisKKyAgICBAcGF0 Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0YXJ0X3J1bm5pbmdfcXVlcnknCisg ICAgICAgICAgICcudXBkYXRlX3Nlc3Npb25fZ3JpZF90cmFuc2FjdGlvbicpCisgICAgQHBhdGNo KCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LnBpY2ts ZScpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFydF9ydW5u aW5nX3F1ZXJ5LmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0 b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5hcHBseV9leHBsYWlu X3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQnKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxl ZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5pbnRlcm5hbF9z ZXJ2ZXJfZXJyb3InKQorICAgIEBwYXRjaCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMu c3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5tYWtlX2pzb25fcmVzcG9uc2UnKQor ICAgIGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5X3JvbGxiYWNrX3JlcXVpcmVkKAorICAgICAgICBzZWxm LAorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywKKyAgICAgICAgaW50ZXJuYWxfc2Vy dmVyX2Vycm9yX21vY2ssCisgICAgICAgIGFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25l ZWRlZF9tb2NrLAorICAgICAgICBnZXRfZHJpdmVyX21vY2ssCisgICAgICAgIHBpY2tsZV9tb2Nr LAorICAgICAgICB1cGRhdGVfc2Vzc2lvbl9ncmlkX3RyYW5zYWN0aW9uX21vY2ssCisgICAgICAg IHJlcXVlc3QKKyAgICApOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBTdGFydFJ1bm5pbmdR dWVyeSBpcyBleGVjdXRlZAorICAgICAgICBBbmQgdGhlIHNlcnZlciBpcyBjb25uZWN0ZWQgYW5k IHN0YXJ0IHF1ZXJ5IGFzeW5jCisgICAgICAgIEFuZCByb2xsYmFjayBpcyByZXF1aXJlZAorICAg ICAgICBpdCByZXR1cm5zIGEgc3VjY2VzcyBtZXNzYWdlCisgICAgICAgICIiIgorCisgICAgICAg IHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRvd24pCisKKyAgICAgICAgZXhwZWN0ZWRf cmVzcG9uc2UgPSBcCisgICAgICAgICAgICBSZXNwb25zZShyZXNwb25zZT1qc29uLmR1bXBzKHsn ZXJyb3Jtc2cnOiAnc29tZSB2YWx1ZSd9KSkKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21v Y2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVzcG9uc2UKKworICAgICAgICBTdGFydFJ1bm5p bmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3FsX3F1ZXJ5ID0gXAorICAgICAgICAgICAg TWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAgICAgICAgU3RhcnRSdW5uaW5nUXVlcnku aXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAorICAgICAgICAgICAgTWFnaWNNb2Nr KHJldHVybl92YWx1ZT1UcnVlKQorICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9p Zl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBcCisgICAgICAgICAgICAnc29tZSBzcWwnCisg ICAgICAgIHBpY2tsZV9tb2NrLmxvYWRzLnJldHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKKyAgICAg ICAgICAgIGNvbm5faWQ9MSwKKyAgICAgICAgICAgIHVwZGF0ZV9mZXRjaGVkX3Jvd19jbnQ9TWFn aWNNb2NrKCksCisgICAgICAgICAgICBzZXRfY29ubmVjdGlvbl9pZD1NYWdpY01vY2soKSwKKyAg ICAgICAgICAgIGF1dG9fY29tbWl0PVRydWUsCisgICAgICAgICAgICBhdXRvX3JvbGxiYWNrPUZh bHNlLAorICAgICAgICAgICAgY2FuX2VkaXQ9bGFtYmRhOiBUcnVlLAorICAgICAgICAgICAgY2Fu X2ZpbHRlcj1sYW1iZGE6IFRydWUKKyAgICAgICAgKQorCisgICAgICAgIG1hbmFnZXIgPSBzZWxm Ll9fY3JlYXRlX21hbmFnZXIoCisgICAgICAgICAgICBGYWxzZSwKKyAgICAgICAgICAgIE5vbmUs CisgICAgICAgICAgICBbVHJ1ZSwgJ2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnXSwKKyAg ICAgICAgICAgIE5vbmUKKyAgICAgICAgKQorICAgICAgICBnZXRfZHJpdmVyX21vY2sucmV0dXJu X3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAgY29ubmVjdGlvbl9tYW5hZ2VyPWxhbWJk YSBzZXNzaW9uX2lkOiBtYW5hZ2VyKQorCisgICAgICAgIGJsdWVwcmludF9tb2NrID0gTWFnaWNN b2NrKAorICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1lb3V0PU1hZ2ljTW9jayhnZXQ9bGFt YmRhOiA1KQorICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2sgPSBNYWdpY01vY2soZXJyb3I9 TWFnaWNNb2NrKCkpCisKKyAgICAgICAgcmVzdWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCisgICAg ICAgICAgICBibHVlcHJpbnRfbW9jaywKKyAgICAgICAgICAgIGxvZ2dlck1vY2sKKyAgICAgICAg KS5leGVjdXRlKAorICAgICAgICAgICAgc3FsPWRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5f cGxhbj1Ob25lKSwKKyAgICAgICAgICAgIHRyYW5zX2lkPTEyMywKKyAgICAgICAgICAgIGh0dHBf c2Vzc2lvbj1kaWN0KGdyaWREYXRhPXsnMTIzJzogZGljdChjb21tYW5kX29iaj0nJyl9KQorICAg ICAgICApCisKKyAgICAgICAgcmVzdWx0IHwgc2hvdWxkLmVxdWFsKGV4cGVjdGVkX3Jlc3BvbnNl KQorCisgICAgICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9jYWxsZWRfd2l0aCgK KyAgICAgICAgICAgIGRhdGE9ZGljdCgKKyAgICAgICAgICAgICAgICBzdGF0dXM9VHJ1ZSwKKyAg ICAgICAgICAgICAgICByZXN1bHQ9J2FzeW5jIGZ1bmN0aW9uIHJlc3VsdCBvdXRwdXQnLAorICAg ICAgICAgICAgICAgIGNhbl9lZGl0PVRydWUsCisgICAgICAgICAgICAgICAgY2FuX2ZpbHRlcj1U cnVlLAorICAgICAgICAgICAgICAgIGluZm9fbm90aWZpZXJfdGltZW91dD01CiAgICAgICAgICAg ICApCisgICAgICAgICkKKworICAgICAgICBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jay5hc3Nl cnRfbm90X2NhbGxlZCgpCisgICAgICAgIHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5jLmFz c2VydF9jYWxsZWRfd2l0aCgKKyAgICAgICAgICAgICdzb21lIHNxbCcKKyAgICAgICAgKQorICAg ICAgICBsb2dnZXJNb2NrLmVycm9yLmFzc2VydF9ub3RfY2FsbGVkKCkKKyAgICAgICAgc2VsZi5j b25uZWN0aW9uLmV4ZWN1dGVfdm9pZC5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAn Uk9MTEJBQ0s7JworICAgICAgICApCisKKyAgICAgICAgYXBwbHlfZXhwbGFpbl9wbGFuX3dyYXBw ZXJfaWZfbmVlZGVkX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgbWFuYWdl ciwKKyAgICAgICAgICAgIGRpY3Qoc3FsPSdzb21lIHNxbCcsIGV4cGxhaW5fcGxhbj1Ob25lKQor ICAgICAgICApCisKKyAgICBAcGF0Y2goJ3BnYWRtaW4udG9vbHMuc3FsZWRpdG9yLnV0aWxzLnN0 YXJ0X3J1bm5pbmdfcXVlcnknCisgICAgICAgICAgICcudXBkYXRlX3Nlc3Npb25fZ3JpZF90cmFu c2FjdGlvbicpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5zdGFy dF9ydW5uaW5nX3F1ZXJ5LnBpY2tsZScpCisgICAgQHBhdGNoKCdwZ2FkbWluLnRvb2xzLnNxbGVk aXRvci51dGlscy5zdGFydF9ydW5uaW5nX3F1ZXJ5LmdldF9kcml2ZXInKQorICAgIEBwYXRjaCgn cGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAg ICAgICAgJy5hcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWQnKQorICAgIEBwYXRj aCgncGdhZG1pbi50b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAg ICAgICAgICAgJy5pbnRlcm5hbF9zZXJ2ZXJfZXJyb3InKQorICAgIEBwYXRjaCgncGdhZG1pbi50 b29scy5zcWxlZGl0b3IudXRpbHMuc3RhcnRfcnVubmluZ19xdWVyeScKKyAgICAgICAgICAgJy5t YWtlX2pzb25fcmVzcG9uc2UnKQorICAgIGRlZiB0ZXN0X3N0YXJ0X3F1ZXJ5X3dpdGhfcGxhbl93 cmFwcGVyKAorICAgICAgICBzZWxmLAorICAgICAgICBtYWtlX2pzb25fcmVzcG9uc2VfbW9jaywK KyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2ssCisgICAgICAgIGFwcGx5X2V4cGxh aW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9tb2NrLAorICAgICAgICBnZXRfZHJpdmVyX21vY2ss CisgICAgICAgIHBpY2tsZV9tb2NrLAorICAgICAgICB1cGRhdGVfc2Vzc2lvbl9ncmlkX3RyYW5z YWN0aW9uX21vY2ssCisgICAgICAgIHJlcXVlc3QKKyAgICApOgorICAgICAgICAiIiIKKyAgICAg ICAgV2hlbiBTdGFydFJ1bm5pbmdRdWVyeSBpcyBleGVjdXRlZAorICAgICAgICBBbmQgdGhlIHNl cnZlciBpcyBjb25uZWN0ZWQgYW5kIHN0YXJ0IHF1ZXJ5IGFzeW5jCisgICAgICAgIEFuZCBhbiBl eHBsYWluIHBsYW4gd3JhcHBlcgorICAgICAgICBpdCByZXR1cm5zIGEgc3VjY2VzcyBtZXNzYWdl CisgICAgICAgICIiIgorCisgICAgICAgIHJlcXVlc3QuYWRkZmluYWxpemVyKHNlbGYudGVhckRv d24pCisKKyAgICAgICAgZXhwZWN0ZWRfcmVzcG9uc2UgPSBcCisgICAgICAgICAgICBSZXNwb25z ZShyZXNwb25zZT1qc29uLmR1bXBzKHsnZXJyb3Jtc2cnOiAnc29tZSB2YWx1ZSd9KSkKKyAgICAg ICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2sucmV0dXJuX3ZhbHVlID0gZXhwZWN0ZWRfcmVzcG9u c2UKIAorICAgICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19iZWdpbl9yZXF1aXJlZF9mb3Jfc3Fs X3F1ZXJ5ID0gXAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1GYWxzZSkKKyAg ICAgICAgU3RhcnRSdW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0g XAorICAgICAgICAgICAgTWFnaWNNb2NrKHJldHVybl92YWx1ZT1UcnVlKQogICAgICAgICBhcHBs eV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5yZXR1cm5fdmFsdWUgPSBcCi0g ICAgICAgICAgICBzZWxmLmFwcGx5X2V4cGxhaW5fcGxhbl93cmFwcGVyX2lmX25lZWRlZF9yZXR1 cm5fdmFsdWUKKyAgICAgICAgICAgICdFWFBMQUlOIFBMQU4gc29tZSBzcWwnCisKKyAgICAgICAg cGlja2xlX21vY2subG9hZHMucmV0dXJuX3ZhbHVlID0gTWFnaWNNb2NrKAorICAgICAgICAgICAg Y29ubl9pZD0xLAorICAgICAgICAgICAgdXBkYXRlX2ZldGNoZWRfcm93X2NudD1NYWdpY01vY2so KSwKKyAgICAgICAgICAgIHNldF9jb25uZWN0aW9uX2lkPU1hZ2ljTW9jaygpLAorICAgICAgICAg ICAgYXV0b19jb21taXQ9VHJ1ZSwKKyAgICAgICAgICAgIGF1dG9fcm9sbGJhY2s9RmFsc2UsCisg ICAgICAgICAgICBjYW5fZWRpdD1sYW1iZGE6IFRydWUsCisgICAgICAgICAgICBjYW5fZmlsdGVy PWxhbWJkYTogVHJ1ZQorICAgICAgICApCiAKLSAgICAgICAgbWFuYWdlciA9IHNlbGYuX19jcmVh dGVfbWFuYWdlcigpCi0gICAgICAgIGlmIHNlbGYuZ2V0X2RyaXZlcl9leGNlcHRpb246Ci0gICAg ICAgICAgICBnZXRfZHJpdmVyX21vY2suc2lkZV9lZmZlY3QgPSBnZXRfZHJpdmVyX2V4Y2VwdGlv bgotICAgICAgICBlbGlmIHNlbGYuZ2V0X2Nvbm5lY3Rpb25fbG9zdF9leGNlcHRpb246Ci0gICAg ICAgICAgICBnZXRfZHJpdmVyX21vY2suc2lkZV9lZmZlY3QgPSBnZXRfY29ubmVjdGlvbl9sb3N0 X2V4Y2VwdGlvbgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZ2V0X2RyaXZlcl9tb2NrLnJl dHVybl92YWx1ZSA9IE1hZ2ljTW9jaygKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uX21hbmFn ZXI9bGFtYmRhIHNlc3Npb25faWQ6IG1hbmFnZXIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAg ICAgcmVzdWx0ID0gU3RhcnRSdW5uaW5nUXVlcnkoCi0gICAgICAgICAgICAgICAgYmx1ZXByaW50 X21vY2ssCi0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXJNb2NrCi0gICAgICAgICAgICApLmV4 ZWN1dGUoCi0gICAgICAgICAgICAgICAgKipzZWxmLmZ1bmN0aW9uX3BhcmFtZXRlcnMKKyAgICAg ICAgbWFuYWdlciA9IHNlbGYuX19jcmVhdGVfbWFuYWdlcigKKyAgICAgICAgICAgIEZhbHNlLAor ICAgICAgICAgICAgTm9uZSwKKyAgICAgICAgICAgIFtUcnVlLCAnYXN5bmMgZnVuY3Rpb24gcmVz dWx0IG91dHB1dCddLAorICAgICAgICAgICAgTm9uZQorICAgICAgICApCisgICAgICAgIGdldF9k cml2ZXJfbW9jay5yZXR1cm5fdmFsdWUgPSBNYWdpY01vY2soCisgICAgICAgICAgICBjb25uZWN0 aW9uX21hbmFnZXI9bGFtYmRhIHNlc3Npb25faWQ6IG1hbmFnZXIpCisKKyAgICAgICAgYmx1ZXBy aW50X21vY2sgPSBNYWdpY01vY2soCisgICAgICAgICAgICBpbmZvX25vdGlmaWVyX3RpbWVvdXQ9 TWFnaWNNb2NrKGdldD1sYW1iZGE6IDUpCisgICAgICAgICkKKyAgICAgICAgbG9nZ2VyTW9jayA9 IE1hZ2ljTW9jayhlcnJvcj1NYWdpY01vY2soKSkKKworICAgICAgICByZXN1bHQgPSBTdGFydFJ1 bm5pbmdRdWVyeSgKKyAgICAgICAgICAgIGJsdWVwcmludF9tb2NrLAorICAgICAgICAgICAgbG9n Z2VyTW9jaworICAgICAgICApLmV4ZWN1dGUoCisgICAgICAgICAgICBzcWw9ZGljdChzcWw9J3Nv bWUgc3FsJywgZXhwbGFpbl9wbGFuPU5vbmUpLAorICAgICAgICAgICAgdHJhbnNfaWQ9MTIzLAor ICAgICAgICAgICAgaHR0cF9zZXNzaW9uPWRpY3QoZ3JpZERhdGE9eycxMjMnOiBkaWN0KGNvbW1h bmRfb2JqPScnKX0pCisgICAgICAgICkKKworICAgICAgICByZXN1bHQgfCBzaG91bGQuZXF1YWwo ZXhwZWN0ZWRfcmVzcG9uc2UpCisKKyAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNz ZXJ0X2NhbGxlZF93aXRoKAorICAgICAgICAgICAgZGF0YT1kaWN0KAorICAgICAgICAgICAgICAg IHN0YXR1cz1UcnVlLAorICAgICAgICAgICAgICAgIHJlc3VsdD0nYXN5bmMgZnVuY3Rpb24gcmVz dWx0IG91dHB1dCcsCisgICAgICAgICAgICAgICAgY2FuX2VkaXQ9VHJ1ZSwKKyAgICAgICAgICAg ICAgICBjYW5fZmlsdGVyPVRydWUsCisgICAgICAgICAgICAgICAgaW5mb19ub3RpZmllcl90aW1l b3V0PTUKICAgICAgICAgICAgICkKLSAgICAgICAgICAgIGlmIHNlbGYubWFuYWdlcl9jb25uZWN0 aW9uX2V4Y2VwdGlvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoCi0g ICAgICAgICAgICAgICAgICAgICdFeGNlcHRpb246ICInICsgc3RyKAotICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5tYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uCi0gICAgICAgICAgICAg ICAgICAgICkgKwotICAgICAgICAgICAgICAgICAgICAnIiBleGNlcHRlZCBidXQgbm90IHJhaXNl ZCcKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJl c3VsdCwgZXhwZWN0ZWRfcmVzcG9uc2UpCi0KLSAgICAgICAgZXhjZXB0IEFzc2VydGlvbkVycm9y OgotICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRp b246Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZWxmLm1hbmFnZXJfY29ubmVjdGlv bl9leGNlcHRpb24sIGV4Y2VwdGlvbikKLQotICAgICAgICBzZWxmLl9fbW9ja19hc3NlcnRpb25z KGludGVybmFsX3NlcnZlcl9lcnJvcl9tb2NrLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIG1ha2VfanNvbl9yZXNwb25zZV9tb2NrKQotICAgICAgICBpZiBzZWxmLmlzX2Nvbm5lY3Rl ZF90b19zZXJ2ZXI6Ci0gICAgICAgICAgICBhcHBseV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9u ZWVkZWRfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAgICAgICAgbWFuYWdlciwg c2VsZi5mdW5jdGlvbl9wYXJhbWV0ZXJzWydzcWwnXSkKLQotICAgIGRlZiBfX2NyZWF0ZV9tYW5h Z2VyKHNlbGYpOgorICAgICAgICApCisKKyAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21v Y2suYXNzZXJ0X25vdF9jYWxsZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV9h c3luYy5hc3NlcnRfY2FsbGVkX3dpdGgoCisgICAgICAgICAgICAnRVhQTEFJTiBQTEFOIHNvbWUg c3FsJworICAgICAgICApCisgICAgICAgIGxvZ2dlck1vY2suZXJyb3IuYXNzZXJ0X25vdF9jYWxs ZWQoKQorICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92b2lkLmFzc2VydF9jYWxsZWRf d2l0aCgKKyAgICAgICAgICAgICdST0xMQkFDSzsnCisgICAgICAgICkKKworICAgICAgICBhcHBs eV9leHBsYWluX3BsYW5fd3JhcHBlcl9pZl9uZWVkZWRfbW9jay5hc3NlcnRfY2FsbGVkX3dpdGgo CisgICAgICAgICAgICBtYW5hZ2VyLAorICAgICAgICAgICAgZGljdChzcWw9J3NvbWUgc3FsJywg ZXhwbGFpbl9wbGFuPU5vbmUpCisgICAgICAgICkKKworICAgIGRlZiBfX2NyZWF0ZV9tYW5hZ2Vy KAorICAgICAgICBzZWxmLAorICAgICAgICBpc19jb25uZWN0ZWRfdG9fc2VydmVyLAorICAgICAg ICBjb25uZWN0aW9uX2Nvbm5lY3RfcmV0dXJuLAorICAgICAgICBleGVjdXRlX2FzeW5jX3JldHVy bl92YWx1ZSwKKyAgICAgICAgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbgorICAgICk6CiAg ICAgICAgIHNlbGYuY29ubmVjdGlvbiA9IE1hZ2ljTW9jaygKLSAgICAgICAgICAgIGNvbm5lY3Rl ZD1sYW1iZGE6IHNlbGYuaXNfY29ubmVjdGVkX3RvX3NlcnZlciwKKyAgICAgICAgICAgIGNvbm5l Y3RlZD1sYW1iZGE6IGlzX2Nvbm5lY3RlZF90b19zZXJ2ZXIsCiAgICAgICAgICAgICBjb25uZWN0 PU1hZ2ljTW9jaygpLAogICAgICAgICAgICAgZXhlY3V0ZV9hc3luYz1NYWdpY01vY2soKSwKICAg ICAgICAgICAgIGV4ZWN1dGVfdm9pZD1NYWdpY01vY2soKSwKICAgICAgICAgKQotICAgICAgICBz ZWxmLmNvbm5lY3Rpb24uY29ubmVjdC5yZXR1cm5fdmFsdWUgPSBzZWxmLmNvbm5lY3Rpb25fY29u bmVjdF9yZXR1cm4KKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLmNvbm5lY3QucmV0dXJuX3ZhbHVl ID0gY29ubmVjdGlvbl9jb25uZWN0X3JldHVybgogICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhl Y3V0ZV9hc3luYy5yZXR1cm5fdmFsdWUgPSBcCi0gICAgICAgICAgICBzZWxmLmV4ZWN1dGVfYXN5 bmNfcmV0dXJuX3ZhbHVlCi0gICAgICAgIGlmIHNlbGYubWFuYWdlcl9jb25uZWN0aW9uX2V4Y2Vw dGlvbiBpcyBOb25lOgorICAgICAgICAgICAgZXhlY3V0ZV9hc3luY19yZXR1cm5fdmFsdWUKKyAg ICAgICAgaWYgbWFuYWdlcl9jb25uZWN0aW9uX2V4Y2VwdGlvbiBpcyBOb25lOgogICAgICAgICAg ICAgZGVmIGNvbm5lY3Rpb25fZnVuY3Rpb24oCiAgICAgICAgICAgICAgICAgZGlkLAogICAgICAg ICAgICAgICAgIGNvbm5faWQsCkBAIC01MzEsNDYgKzk0MSw5IEBAIGNsYXNzIFN0YXJ0UnVubmlu Z1F1ZXJ5VGVzdChCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICAgICAgZWxzZToKICAgICAgICAg ICAgIG1hbmFnZXIgPSBNYWdpY01vY2soKQotICAgICAgICAgICAgbWFuYWdlci5jb25uZWN0aW9u LnNpZGVfZWZmZWN0ID0gc2VsZi5tYW5hZ2VyX2Nvbm5lY3Rpb25fZXhjZXB0aW9uCisgICAgICAg ICAgICBtYW5hZ2VyLmNvbm5lY3Rpb24uc2lkZV9lZmZlY3QgPSBtYW5hZ2VyX2Nvbm5lY3Rpb25f ZXhjZXB0aW9uCiAKICAgICAgICAgcmV0dXJuIG1hbmFnZXIKIAotICAgIGRlZiBfX21vY2tfYXNz ZXJ0aW9ucyhzZWxmLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3JfbW9jaywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2spOgotICAgICAgICBpZiBzZWxmLmV4 cGVjdF9tYWtlX2pzb25fcmVzcG9uc2VfdG9faGF2ZV9iZWVuX2NhbGxlZF93aXRoIGlzIG5vdCBO b25lOgotICAgICAgICAgICAgbWFrZV9qc29uX3Jlc3BvbnNlX21vY2suYXNzZXJ0X2NhbGxlZF93 aXRoKAotICAgICAgICAgICAgICAgICoqc2VsZi5leHBlY3RfbWFrZV9qc29uX3Jlc3BvbnNlX3Rv X2hhdmVfYmVlbl9jYWxsZWRfd2l0aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG1ha2Vf anNvbl9yZXNwb25zZV9tb2NrLmFzc2VydF9ub3RfY2FsbGVkKCkKLSAgICAgICAgaWYgc2VsZi5l eHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxlZF93aXRoIGlzIG5vdCBOb25lOgotICAg ICAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yX21vY2suYXNzZXJ0X2NhbGxlZF93aXRoKAot ICAgICAgICAgICAgICAgICoqc2VsZi5leHBlY3RfaW50ZXJuYWxfc2VydmVyX2Vycm9yX2NhbGxl ZF93aXRoKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9y X21vY2suYXNzZXJ0X25vdF9jYWxsZWQoKQotICAgICAgICBpZiBzZWxmLmV4ZWN1dGVfYXN5bmNf cmV0dXJuX3ZhbHVlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4 ZWN1dGVfYXN5bmMuYXNzZXJ0X2NhbGxlZF93aXRoKAotICAgICAgICAgICAgICAgIHNlbGYuZXhw ZWN0X2V4ZWN1dGVfdm9pZF9jYWxsZWRfd2l0aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg IHNlbGYuY29ubmVjdGlvbi5leGVjdXRlX2FzeW5jLmFzc2VydF9ub3RfY2FsbGVkKCkKLQotICAg ICAgICBpZiBzZWxmLmV4cGVjdGVkX2xvZ2dlcl9lcnJvciBpcyBub3QgTm9uZToKLSAgICAgICAg ICAgIHNlbGYubG9nZ2VyTW9jay5lcnJvci5hc3NlcnRfY2FsbGVkX3dpdGgoCi0gICAgICAgICAg ICAgICAgc2VsZi5leHBlY3RlZF9sb2dnZXJfZXJyb3IpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICBzZWxmLmxvZ2dlck1vY2suZXJyb3IuYXNzZXJ0X25vdF9jYWxsZWQoKQotCi0gICAgICAg IGlmIHNlbGYuaXNfYmVnaW5fcmVxdWlyZWQ6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24u ZXhlY3V0ZV92b2lkLmFzc2VydF9jYWxsZWRfd2l0aCgnQkVHSU47JykKLSAgICAgICAgZWxpZiBu b3Qgc2VsZi5pc19yb2xsYmFja19yZXF1aXJlZDoKLSAgICAgICAgICAgIHNlbGYuY29ubmVjdGlv bi5leGVjdXRlX3ZvaWQuYXNzZXJ0X25vdF9jYWxsZWQoKQotICAgICAgICBpZiBzZWxmLmlzX3Jv bGxiYWNrX3JlcXVpcmVkOgotICAgICAgICAgICAgc2VsZi5jb25uZWN0aW9uLmV4ZWN1dGVfdm9p ZC5hc3NlcnRfY2FsbGVkX3dpdGgoJ1JPTExCQUNLOycpCi0gICAgICAgIGVsaWYgbm90IHNlbGYu aXNfYmVnaW5fcmVxdWlyZWQ6Ci0gICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb24uZXhlY3V0ZV92 b2lkLmFzc2VydF9ub3RfY2FsbGVkKCkKLQogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKLSAgICAg ICAgIyAgUmVzZXQgbWV0aG9kcyB0byB0aGUgb3JpZ2luYWwgc3RhdGUKLSAgICAgICAgU3RhcnRS dW5uaW5nUXVlcnkuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkID0gXAotICAgICAgICAg ICAgc3RhdGljbWV0aG9kKHNlbGYuaXNfcm9sbGJhY2tfc3RhdGVtZW50X3JlcXVpcmVkKQotICAg ICAgICBTdGFydFJ1bm5pbmdRdWVyeS5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVxdWlyZWQgPSBc Ci0gICAgICAgICAgICBzdGF0aWNtZXRob2Qoc2VsZi5pc19yb2xsYmFja19zdGF0ZW1lbnRfcmVx dWlyZWQpCisgICAgICAgIFN0YXJ0UnVubmluZ1F1ZXJ5LmlzX3JvbGxiYWNrX3N0YXRlbWVudF9y ZXF1aXJlZCA9IEZhbHNlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy9iYXNlX3Rlc3Rf Z2VuZXJhdG9yLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvYmFzZV90ZXN0X2dlbmVyYXRvci5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uMjZjYjRkYmMKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi91dGlscy9iYXNlX3Rlc3RfZ2VuZXJhdG9yLnB5CkBAIC0wLDAg KzEsNzYgQEAKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzaXgKKworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBUZXN0c0dlbmVyYXRvclJlZ2lzdHJ5CisKK2Zyb20gZW51bSBpbXBvcnQg RW51bQorCisKK2NsYXNzIFBvc3RncmVzVmVyc2lvbihFbnVtKToKKyAgICB2MTAgPSAxMDAwMDAK KyAgICB2OTYgPSA5MDYwMAorICAgIHY5NSA9IDkwNTAwCisgICAgdjk0ID0gOTA0MDAKKyAgICB2 OTMgPSA5MDMwMAorICAgIHY5MiA9IDkwMjAwCisgICAgdjkxID0gOTAxMDAKKyAgICB2OTAgPSA5 MDAwMAorICAgIHY4MyA9IDgwMzIzCisKKyAgICBkZWYgX19ndF9fKHNlbGYsIG90aGVyKToKKyAg ICAgICAgaWYgc2VsZi5fX2NsYXNzX18gaXMgb3RoZXIuX19jbGFzc19fOgorICAgICAgICAgICAg cmV0dXJuIHNlbGYudmFsdWUgPiBvdGhlci52YWx1ZQorICAgICAgICBpZiB0eXBlKG90aGVyKSA9 PSBpbnQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1ZSA+IG90aGVyCisgICAgICAgIHJl dHVybiBOb3RJbXBsZW1lbnRlZAorCisgICAgZGVmIF9fbHRfXyhzZWxmLCBvdGhlcik6CisgICAg ICAgIGlmIHNlbGYuX19jbGFzc19fIGlzIG90aGVyLl9fY2xhc3NfXzoKKyAgICAgICAgICAgIHJl dHVybiBzZWxmLnZhbHVlIDwgb3RoZXIudmFsdWUKKyAgICAgICAgaWYgdHlwZShvdGhlcikgPT0g aW50OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYudmFsdWUgPCBvdGhlcgorICAgICAgICByZXR1 cm4gTm90SW1wbGVtZW50ZWQKKworCitAc2l4LmFkZF9tZXRhY2xhc3MoVGVzdHNHZW5lcmF0b3JS ZWdpc3RyeSkKK2NsYXNzIEJhc2VUZXN0R2VuZXJhdG9yKG9iamVjdCk6CisgICAgQHB5dGVzdC5m aXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYgY2hlY2tfaWZfdGVzdF9zaG91bGRfYmVfc2tp cHBlZChzZWxmLCByZXF1ZXN0LCBnZXRfc2VydmVyX3R5cGUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2V0X3NlcnZlcl92ZXJzaW9uKToKKyAgICAgICAgc2VsZi5f X3NraXBfaWZfZGF0YWJhc2UoZ2V0X3NlcnZlcl90eXBlLCByZXF1ZXN0KQorICAgICAgICBzZWxm Ll9fc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uKGdldF9zZXJ2ZXJfdmVyc2lvbiwgcmVxdWVzdCkK KworICAgIEBweXRlc3QuZml4dHVyZShhdXRvdXNlPVRydWUpCisgICAgZGVmIHRoZV9yZWFsX3Nl dHVwKHNlbGYsIGNvbnRleHRfb2ZfdGVzdHMpOgorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxm LCAnc2V0dXBfbm90X25lZWRlZCcpOgorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaW5mb3JtYXRp b24gPSBjb250ZXh0X29mX3Rlc3RzWydzZXJ2ZXJfaW5mb3JtYXRpb24nXQorICAgICAgICAgICAg c2VsZi50ZXN0ZXIgPSBjb250ZXh0X29mX3Rlc3RzWyd0ZXN0X2NsaWVudCddCisgICAgICAgICAg ICBzZWxmLnNlcnZlciA9IGNvbnRleHRfb2ZfdGVzdHNbJ3NlcnZlciddCisKKyAgICAgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfaW5mb3JtYXRpb25bInNlcnZlcl9pZCJdCisK KyAgICAgICAgeWllbGQgY29udGV4dF9vZl90ZXN0cworICAgICAgICBzZWxmLnRlYXJEb3duKCkK KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIF9leHBh bmRfdGVzdF9vYmplY3Qoc2VsZiwga3dhcmdzKToKKyAgICAgICAgZm9yIGtleSBpbiBrd2FyZ3Mu a2V5cygpOgorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBrZXksIGt3YXJnc1trZXldKQorCisg ICAgZGVmIF9fc2tpcF9pZl9kYXRhYmFzZShzZWxmLCBnZXRfc2VydmVyX3R5cGUsIHJlcXVlc3Qp OgorICAgICAgICBpZiByZXF1ZXN0Lm5vZGUuZ2V0X21hcmtlcignc2tpcF9kYXRhYmFzZXMnKToK KyAgICAgICAgICAgIGlmIGdldF9zZXJ2ZXJfdHlwZSBpbiBcCisgICAgICAgICAgICAgICByZXF1 ZXN0Lm5vZGUuZ2V0X21hcmtlcignc2tpcF9kYXRhYmFzZXMnKS5hcmdzWzBdOgorICAgICAgICAg ICAgICAgIHB5dGVzdC5za2lwKCdjYW5ub3QgcnVuIGluOiAlcycgJQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGdldF9zZXJ2ZXJfdHlwZSkKKworICAgIGRlZiBfX3NraXBfaWZfcG9zdGdy ZXNfdmVyc2lvbihzZWxmLCBnZXRfc2VydmVyX3ZlcnNpb24sIHJlcXVlc3QpOgorICAgICAgICBp ZiByZXF1ZXN0Lm5vZGUuZ2V0X21hcmtlcignc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uJyk6Cisg ICAgICAgICAgICB2ZXJzaW9ucyA9IFwKKyAgICAgICAgICAgICAgICByZXF1ZXN0Lm5vZGUuZ2V0 X21hcmtlcignc2tpcF9pZl9wb3N0Z3Jlc192ZXJzaW9uJykuYXJnc1swXQorICAgICAgICAgICAg c2tpcF9tZXNzYWdlID0gXAorICAgICAgICAgICAgICAgIHJlcXVlc3Qubm9kZS5nZXRfbWFya2Vy KCdza2lwX2lmX3Bvc3RncmVzX3ZlcnNpb24nKS5hcmdzWzFdCisgICAgICAgICAgICBpZiB2ZXJz aW9uc1snYmVsb3dfdmVyc2lvbiddID4gZ2V0X3NlcnZlcl92ZXJzaW9uOgorICAgICAgICAgICAg ICAgIHB5dGVzdC5za2lwKHNraXBfbWVzc2FnZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0 aWxzL2phdmFzY3JpcHQvdGVzdHMvdGVzdF9qYXZhc2NyaXB0X2J1bmRsZXIucHkgYi93ZWIvcGdh ZG1pbi91dGlscy9qYXZhc2NyaXB0L3Rlc3RzL3Rlc3RfamF2YXNjcmlwdF9idW5kbGVyLnB5Cmlu ZGV4IDcwMzA3MDNmLi5iN2ZiZjY3MCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvamF2 YXNjcmlwdC90ZXN0cy90ZXN0X2phdmFzY3JpcHRfYnVuZGxlci5weQorKysgYi93ZWIvcGdhZG1p bi91dGlscy9qYXZhc2NyaXB0L3Rlc3RzL3Rlc3RfamF2YXNjcmlwdF9idW5kbGVyLnB5CkBAIC05 LDcgKzksOSBAQAogCiAKIGltcG9ydCBzeXMKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKKworZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCiBmcm9t IHBnYWRtaW4udXRpbHMuamF2YXNjcmlwdC5qYXZhc2NyaXB0X2J1bmRsZXIgaW1wb3J0IEphdmFz Y3JpcHRCdW5kbGVyCiBmcm9tIHBnYWRtaW4udXRpbHMuamF2YXNjcmlwdC5qYXZhc2NyaXB0X2J1 bmRsZXIgaW1wb3J0IEpzU3RhdGUKIApAQCAtMTksMjAgKzIxLDE1IEBAIGVsc2U6CiAgICAgZnJv bSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAogCiAKLWNsYXNzIEphdmFzY3JpcHRCdW5kbGVy VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgotICAgICIiIlRoaXMgdGVzdHMgdGhhdCB0aGUg amF2YXNjcmlwdCBidW5kbGVyIHRvb2wgY2F1c2VzIHRoZSBhcHBsaWNhdGlvbiB0bwotICAgIGJ1 bmRsZSxhbmQgY2FuIGJlIGludm9rZWQgYmVmb3JlIGFuZCBhZnRlciBhcHAgc3RhcnQgY29ycmVj dGx5IiIiCi0KLSAgICBzY2VuYXJpb3MgPSBbKCdzY2VuYXJpbyBuYW1lOiBKYXZhc2NyaXB0QnVu ZGxlclRlc3RDYXNlJywgZGljdCgpKV0KLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2RO YW1lPSdydW5UZXN0Jyk6Ci0gICAgICAgIHN1cGVyKEJhc2VUZXN0R2VuZXJhdG9yLCBzZWxmKS5f X2luaXRfXyhtZXRob2ROYW1lKQotICAgICAgICBzZWxmLm1vY2tPcyA9IE5vbmUKLSAgICAgICAg c2VsZi5tb2NrU3VicHJvY2Vzc0NhbGwgPSBOb25lCitjbGFzcyBUZXN0SmF2YXNjcmlwdEJ1bmRs ZXI6CiAKICAgICBAcGF0Y2goJ3BnYWRtaW4udXRpbHMuamF2YXNjcmlwdC5qYXZhc2NyaXB0X2J1 bmRsZXIub3MnKQogICAgIEBwYXRjaCgncGdhZG1pbi51dGlscy5qYXZhc2NyaXB0LmphdmFzY3Jp cHRfYnVuZGxlci5jYWxsJykKLSAgICBkZWYgcnVuVGVzdChzZWxmLCBzdWJwcm9jZXNzTW9jaywg b3NNb2NrKToKKyAgICBkZWYgdGVzdF9qYXZhc2NyaXB0X2J1bmRsZXIoc2VsZiwgc3VicHJvY2Vz c01vY2ssIG9zTW9jayk6CisgICAgICAgICIiIgorICAgICAgICBXaGVuIHRoZSBqYXZhc2NyaXB0 IGJ1bmRsZXIgdG9vbCBpcyBydW4KKyAgICAgICAgSXQgY2F1c2VzIHRoZSBhcHBsaWNhdGlvbiB0 byBidW5kbGUKKyAgICAgICAgIiIiCiAgICAgICAgIHNlbGYubW9ja09zID0gb3NNb2NrCiAgICAg ICAgIHNlbGYubW9ja1N1YnByb2Nlc3NDYWxsID0gc3VicHJvY2Vzc01vY2sKIApAQCAtNTYsNyAr NTMsOCBAQCBjbGFzcyBKYXZhc2NyaXB0QnVuZGxlclRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9y KToKIAogICAgIGRlZiBfYnVuZGxpbmdfc3VjY2VlZHMoc2VsZik6CiAgICAgICAgIGphdmFzY3Jp cHRfYnVuZGxlciA9IEphdmFzY3JpcHRCdW5kbGVyKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh bChsZW4oc2VsZi5tb2NrU3VicHJvY2Vzc0NhbGwubWV0aG9kX2NhbGxzKSwgMCkKKyAgICAgICAg c2VsZi5tb2NrU3VicHJvY2Vzc0NhbGwubWV0aG9kX2NhbGxzIHwgXAorICAgICAgICAgICAgc2hv dWxkLmhhdmUubGVuZ3RoLm9mKDApCiAgICAgICAgIHNlbGYubW9ja1N1YnByb2Nlc3NDYWxsLnJl dHVybl92YWx1ZSA9IDAKIAogICAgICAgICBzZWxmLm1vY2tPcy5saXN0ZGlyLnJldHVybl92YWx1 ZSA9IFsKQEAgLTcwLDcgKzY4LDggQEAgY2xhc3MgSmF2YXNjcmlwdEJ1bmRsZXJUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICBkZWYgX2J1bmRsaW5nX2ZhaWxzX3doZW5fYnVuZGxp bmdfcmV0dXJuc19ub256ZXJvKHNlbGYpOgogICAgICAgICBqYXZhc2NyaXB0X2J1bmRsZXIgPSBK YXZhc2NyaXB0QnVuZGxlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHNlbGYubW9j a1N1YnByb2Nlc3NDYWxsLm1ldGhvZF9jYWxscyksIDApCisgICAgICAgIHNlbGYubW9ja1N1YnBy b2Nlc3NDYWxsLm1ldGhvZF9jYWxscyB8IFwKKyAgICAgICAgICAgIHNob3VsZC5oYXZlLmxlbmd0 aC5vZigwKQogICAgICAgICBzZWxmLm1vY2tPcy5saXN0ZGlyLnJldHVybl92YWx1ZSA9IFtdCiAg ICAgICAgIHNlbGYubW9ja1N1YnByb2Nlc3NDYWxsLnJldHVybl92YWx1ZSA9IDk5CiAKQEAgLTEx NSw1ICsxMTQsNCBAQCBjbGFzcyBKYXZhc2NyaXB0QnVuZGxlclRlc3RDYXNlKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgc2VsZi5fX2Fzc2VydFN0YXRlKGphdmFzY3JpcHRfYnVuZGxlciwg SnNTdGF0ZS5PTEQpCiAKICAgICBkZWYgX19hc3NlcnRTdGF0ZShzZWxmLCBqYXZhc2NyaXB0X2J1 bmRsZXIsIGV4cGVjdGVkX3N0YXRlKToKLSAgICAgICAgcmVwb3J0ZWRfc3RhdGUgPSBqYXZhc2Ny aXB0X2J1bmRsZXIucmVwb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXBvcnRlZF9z dGF0ZSwgZXhwZWN0ZWRfc3RhdGUpCisgICAgICAgIGphdmFzY3JpcHRfYnVuZGxlci5yZXBvcnQo KSB8IHNob3VsZC5lcXVhbChleHBlY3RlZF9zdGF0ZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3V0aWxzL3JvdXRlLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvcm91dGUucHkKaW5kZXggZjc4NGU1 MzQuLjFjY2Q4MjExIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQorKysg Yi93ZWIvcGdhZG1pbi91dGlscy9yb3V0ZS5weQpAQCAtOSwxNyArOSwxMCBAQAogCiBpbXBvcnQg c3lzCiBpbXBvcnQgdHJhY2ViYWNrCi1mcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3Rt ZXRob2QKK2Zyb20gYWJjIGltcG9ydCBBQkNNZXRhCiBmcm9tIGltcG9ydGxpYiBpbXBvcnQgaW1w b3J0X21vZHVsZQogCi1pbXBvcnQgc2l4CiBmcm9tIHdlcmt6ZXVnLnV0aWxzIGltcG9ydCBmaW5k X21vZHVsZXMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzCi0KLWlmIHN5 cy52ZXJzaW9uX2luZm8gPCAoMiwgNyk6Ci0gICAgaW1wb3J0IHVuaXR0ZXN0MiBhcyB1bml0dGVz dAotZWxzZToKLSAgICBpbXBvcnQgdW5pdHRlc3QKIAogCiBjbGFzcyBUZXN0c0dlbmVyYXRvclJl Z2lzdHJ5KEFCQ01ldGEpOgpAQCAtNzUsNDMgKzY4LDMgQEAgY2xhc3MgVGVzdHNHZW5lcmF0b3JS ZWdpc3RyeShBQkNNZXRhKToKICAgICAgICAgICAgICAgICAgICAgaW1wb3J0X21vZHVsZShtb2R1 bGVfbmFtZSkKICAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgICAgICAg ICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKLQotCi1Ac2l4LmFkZF9tZXRh Y2xhc3MoVGVzdHNHZW5lcmF0b3JSZWdpc3RyeSkKLWNsYXNzIEJhc2VUZXN0R2VuZXJhdG9yKHVu aXR0ZXN0LlRlc3RDYXNlKToKLSAgICAjIERlZmluaW5nIGFic3RyYWN0IG1ldGhvZCB3aGljaCB3 aWxsIG92ZXJyaWRlIGJ5IGluZGl2aWR1YWwgdGVzdGNhc2UuCi0KLSAgICBkZWYgc2V0VXAoc2Vs Zik6Ci0gICAgICAgIHN1cGVyKEJhc2VUZXN0R2VuZXJhdG9yLCBzZWxmKS5zZXRVcCgpCi0gICAg ICAgIHNlbGYuc2VydmVyX2lkID0gc2VsZi5zZXJ2ZXJfaW5mb3JtYXRpb25bInNlcnZlcl9pZCJd Ci0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwg c2VsZi5zZXJ2ZXJfaWQpCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ3NraXBfb25fZGF0YWJh c2UnKToKLSAgICAgICAgICAgIGlmICdkYXRhJyBpbiBzZXJ2ZXJfY29uIGFuZCAndHlwZScgaW4g c2VydmVyX2NvblsnZGF0YSddOgotICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bJ2RhdGEn XVsndHlwZSddIGluIHNlbGYuc2tpcF9vbl9kYXRhYmFzZToKLSAgICAgICAgICAgICAgICAgICAg c2VsZi5za2lwVGVzdCgnY2Fubm90IHJ1biBpbjogJXMnICUKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfY29uWydkYXRhJ11bJ3R5cGUnXSkKLQotICAgIEBjbGFzc21l dGhvZAotICAgIGRlZiBzZXRUZXN0U2VydmVyKGNscywgc2VydmVyKToKLSAgICAgICAgY2xzLnNl cnZlciA9IHNlcnZlcgotCi0gICAgQGFic3RyYWN0bWV0aG9kCi0gICAgZGVmIHJ1blRlc3Qoc2Vs Zik6Ci0gICAgICAgIHBhc3MKLQotICAgICMgSW5pdGlhbGl6aW5nIGFwcC4KLSAgICBkZWYgc2V0 QXBwKHNlbGYsIGFwcCk6Ci0gICAgICAgIHNlbGYuYXBwID0gYXBwCi0KLSAgICAjIEluaXRpYWxp emluZyB0ZXN0X2NsaWVudC4KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VGVzdENsaWVu dChjbHMsIHRlc3RfY2xpZW50KToKLSAgICAgICAgY2xzLnRlc3RlciA9IHRlc3RfY2xpZW50Ci0K LSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0RHJpdmVyKGNscywgZHJpdmVyKToKLSAgICAg ICAgY2xzLmRyaXZlciA9IGRyaXZlcgotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFNl cnZlckluZm9ybWF0aW9uKGNscywgc2VydmVyX2luZm9ybWF0aW9uKToKLSAgICAgICAgY2xzLnNl cnZlcl9pbmZvcm1hdGlvbiA9IHNlcnZlcl9pbmZvcm1hdGlvbgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vdXRpbHMvc2VydmVyX3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvc2VydmVyX3V0 aWxzLnB5CmluZGV4IGZhNjU3ODc4Li41MTA2NGZiYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v dXRpbHMvc2VydmVyX3V0aWxzLnB5CisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL3NlcnZlcl91dGls cy5weQpAQCAtMjQsMTAgKzI0LDIyIEBAIGRlZiBjb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJf aWQpOgogICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBpZAogICAgIDp0eXBlIHNlcnZlcl9p ZDogc3RyCiAgICAgIiIiCi0gICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KFNFUlZFUl9D T05ORUNUX1VSTCArIHN0cihEVU1NWV9TRVJWRVJfR1JPVVApICsKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJy8nICsgc3RyKHNlcnZlcl9pZCksCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9ZGljdChwYXNzd29yZD1zZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQn XSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1 ZSkKKyAgICByZXR1cm4gY2xpZW50X2Nvbm5lY3Rfc2VydmVyKHNlbGYudGVzdGVyLCBzZXJ2ZXJf aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFz c3dvcmQnXSkKKworCitkZWYgY2xpZW50X2Nvbm5lY3Rfc2VydmVyKGNsaWVudCwgc2VydmVyX2lk LCBwYXNzd29yZCk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGNvbm5lY3Qg YWRkZWQgc2VydmVyCisgICAgOnBhcmFtIGNsaWVudDogRmxhc2sgVGVzdCBjbGllbnQKKyAgICA6 cGFyYW0gc2VydmVyX2lkOiBzZXJ2ZXIgaWQKKyAgICA6cGFyYW0gcGFzc3dvcmQ6IHBhc3N3b3Jk IHRvIHRoZSBkYXRhYmFzZQorICAgIDp0eXBlIHNlcnZlcl9pZDogc3RyCisgICAgIiIiCisgICAg cmVzcG9uc2UgPSBjbGllbnQucG9zdChTRVJWRVJfQ09OTkVDVF9VUkwgKyBzdHIoRFVNTVlfU0VS VkVSX0dST1VQKSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VydmVy X2lkKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGljdChwYXNzd29yZD1wYXNz d29yZCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CiAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09IDIwMAogICAgIHJlc3BvbnNlX2Rh dGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQogICAgIHJldHVy biByZXNwb25zZV9kYXRhCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGlscy90ZXN0cy90ZXN0 X2NvbXBpbGVfdGVtcGxhdGVfbmFtZS5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL3Rlc3RzL3Rlc3Rf Y29tcGlsZV90ZW1wbGF0ZV9uYW1lLnB5CmluZGV4IGQ2ZWUxMjg4Li42OGI1Y2M3YSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvdGVzdHMvdGVzdF9jb21waWxlX3RlbXBsYXRlX25hbWUu cHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvdGVzdHMvdGVzdF9jb21waWxlX3RlbXBsYXRlX25h bWUucHkKQEAgLTYsOCArNiwxMSBAQAogIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVy IHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKICMKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gZ3Jh cHBhIGltcG9ydCBzaG91bGQKKwogZnJvbSBwZ2FkbWluLnV0aWxzLmNvbXBpbGVfdGVtcGxhdGVf bmFtZSBpbXBvcnQgY29tcGlsZV90ZW1wbGF0ZV9uYW1lCi1mcm9tIHBnYWRtaW4udXRpbHMucm91 dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuYmFzZV90ZXN0 X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIAogCiBjbGFzcyBUZXN0Q29tcGls ZVRlbXBsYXRlTmFtZShCYXNlVGVzdEdlbmVyYXRvcik6CkBAIC0zMiw4ICszNSw5IEBAIGNsYXNz IFRlc3RDb21waWxlVGVtcGxhdGVOYW1lKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgKSwK ICAgICBdCiAKLSAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICBkZWYgdGVzdF9hbGwoc2VsZiwg YXJncywga3dhcmdzKToKKyAgICAgICAgc2VsZi5fZXhwYW5kX3Rlc3Rfb2JqZWN0KGt3YXJncykK ICAgICAgICAgcmVzdWx0ID0gY29tcGlsZV90ZW1wbGF0ZV9uYW1lKAogICAgICAgICAgICAgJ3Nv bWUvcHJlZml4JywgJ3NvbWVfZmlsZS5zcWwnLCBzZWxmLnNlcnZlcl90eXBlLCBzZWxmLnZlcnNp b24KICAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXN1bHQsIHNlbGYuZXhw ZWN0ZWRfcmV0dXJuX3ZhbHVlKQorICAgICAgICByZXN1bHQgfCBzaG91bGQuYmUuZXF1YWwudG8o c2VsZi5leHBlY3RlZF9yZXR1cm5fdmFsdWUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi91dGls cy90ZXN0cy90ZXN0X3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkgYi93ZWIvcGdhZG1pbi91 dGlscy90ZXN0cy90ZXN0X3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKaW5kZXggNDZmZWZl Y2EuLmE0NzM5YTg1IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi91dGlscy90ZXN0cy90ZXN0X3Zl cnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvdGVzdHMv dGVzdF92ZXJzaW9uZWRfdGVtcGxhdGVfbG9hZGVyLnB5CkBAIC05LDg2ICs5LDI2IEBACiAKIGlt cG9ydCBvcwogCitpbXBvcnQgcHl0ZXN0CiBmcm9tIGZsYXNrIGltcG9ydCBGbGFzaworZnJvbSBn cmFwcGEgaW1wb3J0IHNob3VsZAogZnJvbSBqaW5qYTIgaW1wb3J0IEZpbGVTeXN0ZW1Mb2FkZXIK IGZyb20gamluamEyIGltcG9ydCBUZW1wbGF0ZU5vdEZvdW5kCiAKIGZyb20gcGdhZG1pbiBpbXBv cnQgVmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIKLWZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBv cnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcGdhZG1pbi51dGlscy5iYXNlX3Rlc3RfZ2VuZXJh dG9yIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgogCiAKIGNsYXNzIFRlc3RWZXJzaW9uZWRUZW1w bGF0ZUxvYWRlcihCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAg ICAoCi0gICAgICAgICAgICAiUmVuZGVyIGEgdGVtcGxhdGUgd2hlbiBjYWxsZWQiLAotICAgICAg ICAgICAgZGljdChzY2VuYXJpbz0xKQotICAgICAgICApLAotICAgICAgICAoCi0gICAgICAgICAg ICAiUmVuZGVyIGEgdmVyc2lvbiA5LjEgdGVtcGxhdGUgd2hlbiBpdCBpcyBwcmVzZW50IiwKLSAg ICAgICAgICAgIGRpY3Qoc2NlbmFyaW89MikKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAg ICAgICAgIlJlbmRlciBhIHZlcnNpb24gOS4yIHRlbXBsYXRlIHdoZW4gcmVxdWVzdCBmb3IgYSBo aWdoZXIgdmVyc2lvbiIsCi0gICAgICAgICAgICBkaWN0KHNjZW5hcmlvPTMpCi0gICAgICAgICks Ci0gICAgICAgICgKLSAgICAgICAgICAgICJSZW5kZXIgZGVmYXVsdCB2ZXJzaW9uIHdoZW4gdmVy c2lvbiA5LjAgd2FzIHJlcXVlc3RlZCBhbmQgb25seSAiCi0gICAgICAgICAgICAiOS4xIGFuZCA5 LjIgYXJlIHByZXNlbnQiLAotICAgICAgICAgICAgZGljdChzY2VuYXJpbz00KQotICAgICAgICAp LAotICAgICAgICAoCi0gICAgICAgICAgICAiUmFpc2UgZXJyb3Igd2hlbiB2ZXJzaW9uIGlzIHNt YWxsZXIgdGhhbiBhdmFpbGFibGUgdGVtcGxhdGVzIiwKLSAgICAgICAgICAgIGRpY3Qoc2NlbmFy aW89NSkKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgIlJlbmRlciBhIHZlcnNp b24gR1BEQiA1LjAgdGVtcGxhdGUgd2hlbiBpdCBpcyBwcmVzZW50IiwKLSAgICAgICAgICAgIGRp Y3Qoc2NlbmFyaW89NikKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAgICAgICAgIlJlbmRl ciBhIHZlcnNpb24gR1BEQiA1LjAgdGVtcGxhdGUgd2hlbiBpdCBpcyBpbiBkZWZhdWx0IiwKLSAg ICAgICAgICAgIGRpY3Qoc2NlbmFyaW89NykKLSAgICAgICAgKSwKLSAgICAgICAgKAotICAgICAg ICAgICAgIlJhaXNlIGVycm9yIHdoZW4gdmVyc2lvbiBpcyBncGRiIGJ1dCB0ZW1wbGF0ZSBkb2Vz IG5vdCBleGlzdCIsCi0gICAgICAgICAgICBkaWN0KHNjZW5hcmlvPTgpCi0gICAgICAgICkKLSAg ICBdCisgICAgIiIiVGVzdCBWZXJzaW9uZWQgdGVtcGxhdGUgbG9hZGVyIiIiCiAKLSAgICBkZWYg c2V0VXAoc2VsZik6CisgICAgQHB5dGVzdC5maXh0dXJlKGF1dG91c2U9VHJ1ZSkKKyAgICBkZWYg c2V0dXBfdGVzdHMoc2VsZik6CisgICAgICAgIHNldGF0dHIoc2VsZiwgJ3NldHVwX25vdF9uZWVk ZWQnLCBUcnVlKQogICAgICAgICBzZWxmLmxvYWRlciA9IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVy KEZha2VBcHAoKSkKIAotICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICBpZiBzZWxmLnNj ZW5hcmlvID09IDE6Ci0gICAgICAgICAgICBzZWxmLnRlc3RfZ2V0X3NvdXJjZV9yZXR1cm5zX2Ff dGVtcGxhdGUoKQotICAgICAgICBpZiBzZWxmLnNjZW5hcmlvID09IDI6Ci0gICAgICAgICAgICAj IHRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzXzlfMV9yZXR1cm5zXzlfMV90ZW1w bGF0ZQotICAgICAgICAgICAgc2VsZi50ZXN0X2dldF9zb3VyY2Vfd2hlbl90aGVfdmVyc2lvbl9p c185XzEoKQotICAgICAgICBpZiBzZWxmLnNjZW5hcmlvID09IDM6Ci0gICAgICAgICAgICAjIHRl c3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzXzlfM19hbmRfdGhlcmVfYXJlX3RlbXBs YXRlc18KLSAgICAgICAgICAgICMgZm9yXzlfMl9hbmRfOV8xX3JldHVybnNfOV8yX3RlbXBsYXRl Ci0gICAgICAgICAgICBzZWxmLnRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzXzlf MygpCi0gICAgICAgIGlmIHNlbGYuc2NlbmFyaW8gPT0gNDoKLSAgICAgICAgICAgICMgdGVzdF9n ZXRfc291cmNlX3doZW5fdGhlX3ZlcnNpb25faXNfOV8wX2FuZF90aGVyZV9hcmVfdGVtcGxhdGVz XwotICAgICAgICAgICAgIyBmb3JfOV8xX2FuZF85XzJfcmV0dXJuc19kZWZhdWx0X3RlbXBsYXRl Ci0gICAgICAgICAgICBzZWxmLnRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzXzlf MCgpCi0gICAgICAgIGlmIHNlbGYuc2NlbmFyaW8gPT0gNToKLSAgICAgICAgICAgICMgdGVzdF9y YWlzZV9ub3RfZm91bmRfZXhjZXB0aW9uX3doZW5fcG9zdGdyZXNfdmVyc2lvbl9sZXNzX3RoYW5f Ci0gICAgICAgICAgICAjIGFsbF9hdmFpbGFibGVfc3FsX3RlbXBsYXRlcwotICAgICAgICAgICAg c2VsZi50ZXN0X3JhaXNlX25vdF9mb3VuZF9leGNlcHRpb24oKQotICAgICAgICBpZiBzZWxmLnNj ZW5hcmlvID09IDY6Ci0gICAgICAgICAgICAjIHRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJz aW9uX2lzX2dwZGJfNV8wX3JldHVybnNfZ3BkYl81XzBfCi0gICAgICAgICAgICAjIHRlbXBsYXRl Ci0gICAgICAgICAgICBzZWxmLnRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzX2dw ZGJfNV8wKCkKLSAgICAgICAgaWYgc2VsZi5zY2VuYXJpbyA9PSA3OgotICAgICAgICAgICAgIyB0 ZXN0X2dldF9zb3VyY2Vfd2hlbl90aGVfdmVyc2lvbl9pc19ncGRiXzVfMF9yZXR1cm5zX2RlZmF1 bHRfCi0gICAgICAgICAgICAjIHRlbXBsYXRlCi0gICAgICAgICAgICBzZWxmLnRlc3RfZ2V0X3Nv dXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzX2dwZGJfNV8wX3JldHVybnNfZGVmYXVsdCgpCi0gICAg ICAgIGlmIHNlbGYuc2NlbmFyaW8gPT0gODoKLSAgICAgICAgICAgICMgdGVzdF9yYWlzZV9ub3Rf Zm91bmRfZXhjZXB0aW9uX3doZW5fdGhlX3ZlcnNpb25faXNfZ3BkYl90ZW1wbGF0ZQotICAgICAg ICAgICAgIyBfbm90X2V4aXN0Ci0gICAgICAgICAgICBzZWxmLnRlc3RfcmFpc2Vfbm90X2ZvdW5k X2V4Y2VwdGlvbl93aGVuX3RoZV92ZXJzaW9uX2lzX2dwZGIoKQotCiAgICAgZGVmIHRlc3RfZ2V0 X3NvdXJjZV9yZXR1cm5zX2FfdGVtcGxhdGUoc2VsZik6CisgICAgICAgICIiIlJlbmRlciBhIHRl bXBsYXRlIHdoZW4gY2FsbGVkIiIiCiAgICAgICAgIGV4cGVjdGVkX2NvbnRlbnQgPSAiU29tZSBT UUwiIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcbnNvbWUgbW9yZSBzdHVmZiBvbiBh IG5ldyBsaW5lXG4iCiAgICAgICAgICMgRm9yIGNyb3NzIHBsYXRmb3JtIHdlIGpvaW4gdGhlIFNR TCBwYXRoCkBAIC05OSwxMCArMzksOSBAQCBjbGFzcyBUZXN0VmVyc2lvbmVkVGVtcGxhdGVMb2Fk ZXIoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICBjb250ZW50LCBmaWxlbmFtZSwgdXBfdG9f ZGF0ZW5lc3MgPSBzZWxmLmxvYWRlci5nZXRfc291cmNlKAogICAgICAgICAgICAgTm9uZSwgInNv bWVfZmVhdHVyZS9zcWwvOS4xX3BsdXMvc29tZV9hY3Rpb24uc3FsIgogICAgICAgICApCi0gICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBleHBlY3RlZF9jb250ZW50LCBzdHIo Y29udGVudCkucmVwbGFjZSgiXHIiLCAiIikKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2Vy dEluKHNxbF9wYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgZXhwZWN0ZWRfY29udGVudCB8IHNob3Vs ZC5iZS5lcXVhbC50byhzdHIoY29udGVudCkucmVwbGFjZSgiXHIiLCAiIikpCisKKyAgICAgICAg ZmlsZW5hbWUgfCBzaG91bGQuY29udGFpbi5pdGVtKHNxbF9wYXRoKQogCiAgICAgZGVmIHRlc3Rf Z2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzXzlfMShzZWxmKToKICAgICAgICAgIiIiUmVu ZGVyIGEgdmVyc2lvbiA5LjEgdGVtcGxhdGUgd2hlbiBpdCBpcyBwcmVzZW50IiIiCkBAIC0xMTcs MTAgKzU2LDkgQEAgY2xhc3MgVGVzdFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEJhc2VUZXN0R2Vu ZXJhdG9yKToKICAgICAgICAgICAgIE5vbmUsICJzb21lX2ZlYXR1cmUvc3FsLyM5MDEwMCMvc29t ZV9hY3Rpb24uc3FsIgogICAgICAgICApCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg ICAgICAgICAgIGV4cGVjdGVkX2NvbnRlbnQsIHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIi KQotICAgICAgICApCi0gICAgICAgIHNlbGYuYXNzZXJ0SW4oc3FsX3BhdGgsIGZpbGVuYW1lKQor ICAgICAgICBleHBlY3RlZF9jb250ZW50IHwgc2hvdWxkLmJlLmVxdWFsLnRvKHN0cihjb250ZW50 KS5yZXBsYWNlKCJcciIsICIiKSkKKworICAgICAgICBmaWxlbmFtZSB8IHNob3VsZC5jb250YWlu Lml0ZW0oc3FsX3BhdGgpCiAKICAgICBkZWYgdGVzdF9nZXRfc291cmNlX3doZW5fdGhlX3ZlcnNp b25faXNfOV8zKHNlbGYpOgogICAgICAgICAiIiJSZW5kZXIgYSB2ZXJzaW9uIDkuMiB0ZW1wbGF0 ZSB3aGVuIHJlcXVlc3QgZm9yIGEgaGlnaGVyIHZlcnNpb24iIiIKQEAgLTEzMywxMCArNzEsOSBA QCBjbGFzcyBUZXN0VmVyc2lvbmVkVGVtcGxhdGVMb2FkZXIoQmFzZVRlc3RHZW5lcmF0b3IpOgog ICAgICAgICAgICAgTm9uZSwgInNvbWVfZmVhdHVyZS9zcWwvIzkwMzAwIy9zb21lX2FjdGlvbi5z cWwiCiAgICAgICAgICkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAg IlNvbWUgOS4yIFNRTCIsIHN0cihjb250ZW50KS5yZXBsYWNlKCJcciIsICIiKQotICAgICAgICAp Ci0gICAgICAgIHNlbGYuYXNzZXJ0SW4oc3FsX3BhdGgsIGZpbGVuYW1lKQorICAgICAgICAiU29t ZSA5LjIgU1FMIiB8IHNob3VsZC5iZS5lcXVhbC50byhzdHIoY29udGVudCkucmVwbGFjZSgiXHIi LCAiIikpCisKKyAgICAgICAgZmlsZW5hbWUgfCBzaG91bGQuY29udGFpbi5pdGVtKHNxbF9wYXRo KQogCiAgICAgZGVmIHRlc3RfZ2V0X3NvdXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzXzlfMChzZWxm KToKICAgICAgICAgIiIiUmVuZGVyIGRlZmF1bHQgdmVyc2lvbiB3aGVuIHZlcnNpb24gOS4wIHdh cyByZXF1ZXN0ZWQgYW5kIG9ubHkKQEAgLTE1MCwxOCArODcsMTUgQEAgY2xhc3MgVGVzdFZlcnNp b25lZFRlbXBsYXRlTG9hZGVyKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgIE5vbmUs CiAgICAgICAgICAgICAic29tZV9mZWF0dXJlL3NxbC8jOTAwMDAjL3NvbWVfYWN0aW9uX3dpdGhf ZGVmYXVsdC5zcWwiKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlNvbWUgZGVmYXVsdCBT UUwiLCBzdHIoY29udGVudCkucmVwbGFjZSgiXHIiLCAiIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0 SW4oc3FsX3BhdGgsIGZpbGVuYW1lKQorICAgICAgICAiU29tZSBkZWZhdWx0IFNRTCIgfCBzaG91 bGQuYmUuZXF1YWwudG8oc3RyKGNvbnRlbnQpLnJlcGxhY2UoIlxyIiwgIiIpKQorCisgICAgICAg IGZpbGVuYW1lIHwgc2hvdWxkLmNvbnRhaW4uaXRlbShzcWxfcGF0aCkKIAogICAgIGRlZiB0ZXN0 X3JhaXNlX25vdF9mb3VuZF9leGNlcHRpb24oc2VsZik6CiAgICAgICAgICIiIlJhaXNlIGVycm9y IHdoZW4gdmVyc2lvbiBpcyBzbWFsbGVyIHRoYW4gYXZhaWxhYmxlIHRlbXBsYXRlcyIiIgotICAg ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmxvYWRlci5nZXRfc291cmNlKAotICAgICAgICAg ICAgICAgIE5vbmUsICJzb21lX2ZlYXR1cmUvc3FsLyMxMDEwMCMvc29tZV9hY3Rpb24uc3FsIgot ICAgICAgICAgICAgKQotICAgICAgICAgICAgc2VsZi5mYWlsKCJObyBleGNlcHRpb24gcmFpc2Vk IikKLSAgICAgICAgZXhjZXB0IFRlbXBsYXRlTm90Rm91bmQ6Ci0gICAgICAgICAgICByZXR1cm4K KyAgICAgICAgKGxhbWJkYTogc2VsZi5sb2FkZXIuZ2V0X3NvdXJjZSgKKyAgICAgICAgICAgIE5v bmUsICJzb21lX2ZlYXR1cmUvc3FsLyMxMDEwMCMvc29tZV9hY3Rpb24uc3FsIgorICAgICAgICAp KSB8IHNob3VsZC5yYWlzZXMoVGVtcGxhdGVOb3RGb3VuZCkKIAogICAgIGRlZiB0ZXN0X2dldF9z b3VyY2Vfd2hlbl90aGVfdmVyc2lvbl9pc19ncGRiXzVfMChzZWxmKToKICAgICAgICAgIiIiUmVu ZGVyIGEgdmVyc2lvbiBHUERCIDUuMCB0ZW1wbGF0ZSB3aGVuIGl0IGlzIHByZXNlbnQiIiIKQEAg LTE3NywxMCArMTExLDkgQEAgY2xhc3MgVGVzdFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyKEJhc2VU ZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICJzb21lX2ZlYXR1cmUvc3FsLyNncGRiIzgwMzIz Iy9zb21lX2FjdGlvbl93aXRoX2dwZGJfNV8wLnNxbCIKICAgICAgICAgKQogCi0gICAgICAgIHNl bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBleHBlY3RlZF9jb250ZW50LCBzdHIoY29udGVu dCkucmVwbGFjZSgiXHIiLCAiIikKLSAgICAgICAgKQotICAgICAgICBzZWxmLmFzc2VydEluKHNx bF9wYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgZXhwZWN0ZWRfY29udGVudCB8IHNob3VsZC5iZS5l cXVhbC50byhzdHIoY29udGVudCkucmVwbGFjZSgiXHIiLCAiIikpCisKKyAgICAgICAgZmlsZW5h bWUgfCBzaG91bGQuY29udGFpbi5pdGVtKHNxbF9wYXRoKQogCiAgICAgZGVmIHRlc3RfZ2V0X3Nv dXJjZV93aGVuX3RoZV92ZXJzaW9uX2lzX2dwZGJfNV8wX3JldHVybnNfZGVmYXVsdChzZWxmKToK ICAgICAgICAgIiIiUmVuZGVyIGEgdmVyc2lvbiBHUERCIDUuMCB0ZW1wbGF0ZSB3aGVuIGl0IGlz IGluIGRlZmF1bHQiIiIKQEAgLTE5NCwyMCArMTI3LDE1IEBAIGNsYXNzIFRlc3RWZXJzaW9uZWRU ZW1wbGF0ZUxvYWRlcihCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICBOb25lLCAic29t ZV9mZWF0dXJlL3NxbC8jZ3BkYiM4MDMyMyMvc29tZV9hY3Rpb25fd2l0aF9kZWZhdWx0LnNxbCIK ICAgICAgICAgKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBleHBl Y3RlZF9jb250ZW50LCBzdHIoY29udGVudCkucmVwbGFjZSgiXHIiLCAiIikKLSAgICAgICAgKQot ICAgICAgICBzZWxmLmFzc2VydEluKHNxbF9wYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgZXhwZWN0 ZWRfY29udGVudCB8IHNob3VsZC5iZS5lcXVhbC50byhzdHIoY29udGVudCkucmVwbGFjZSgiXHIi LCAiIikpCisKKyAgICAgICAgZmlsZW5hbWUgfCBzaG91bGQuY29udGFpbi5pdGVtKHNxbF9wYXRo KQogCiAgICAgZGVmIHRlc3RfcmFpc2Vfbm90X2ZvdW5kX2V4Y2VwdGlvbl93aGVuX3RoZV92ZXJz aW9uX2lzX2dwZGIoc2VsZik6CiAgICAgICAgICIiIiJSYWlzZSBlcnJvciB3aGVuIHZlcnNpb24g aXMgZ3BkYiBidXQgdGVtcGxhdGUgZG9lcyBub3QgZXhpc3QiIiIKLSAgICAgICAgdHJ5OgotICAg ICAgICAgICAgc2VsZi5sb2FkZXIuZ2V0X3NvdXJjZSgKLSAgICAgICAgICAgICAgICBOb25lLCAi c29tZV9mZWF0dXJlL3NxbC8jZ3BkYiM1MDEwMCMvc29tZV9hY3Rpb24uc3FsIgotICAgICAgICAg ICAgKQotICAgICAgICAgICAgc2VsZi5mYWlsKCJObyBleGNlcHRpb24gcmFpc2VkIikKLSAgICAg ICAgZXhjZXB0IFRlbXBsYXRlTm90Rm91bmQ6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICAgICAg KGxhbWJkYTogc2VsZi5sb2FkZXIuZ2V0X3NvdXJjZSgKKyAgICAgICAgICAgIE5vbmUsICJzb21l X2ZlYXR1cmUvc3FsLyNncGRiIzUwMTAwIy9zb21lX2FjdGlvbi5zcWwiCisgICAgICAgICkpIHwg c2hvdWxkLnJhaXNlcyhUZW1wbGF0ZU5vdEZvdW5kKQogCiAKIGNsYXNzIEZha2VBcHAoRmxhc2sp OgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdXRpbHMvdGVzdHNfaGVscGVyLnB5IGIvd2ViL3Bn YWRtaW4vdXRpbHMvdGVzdHNfaGVscGVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwLi5iM2RkMDNmNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3V0aWxzL3Rl c3RzX2hlbHBlci5weQpAQCAtMCwwICsxLDc2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor aW1wb3J0IGpzb24KKworZnJvbSBncmFwcGEgaW1wb3J0IHNob3VsZAorCitmcm9tIHBnYWRtaW4u dXRpbHMuYmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitj bGFzcyBDbGllbnRUZXN0QmFzZUNsYXNzKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICBkZWYgcmVz cG9uc2VfdG9fanNvbihzZWxmLCByZXNwb25zZSk6CisgICAgICAgIHJldHVybiBqc29uLmxvYWRz KAorICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X2RhdGEoYXNfdGV4dD1UcnVlKS5yZXBsYWNlKCdc bicsICcnKSkKKworICAgIGRlZiBhc3NlcnRfbm9kZV9qc29uKHNlbGYsIGpzb25fcmVzcG9uc2Us CisgICAgICAgICAgICAgICAgICAgICAgICAgX3R5cGUsIG1vZHVsZV9uYW1lLCBpbm9kZSwgaWNv bl9jbGFzcywgbGFiZWwpOgorICAgICAgICBhc3NlcnRfanNvbl92YWx1ZXNfZnJvbV9yZXNwb25z ZSgKKyAgICAgICAgICAgIGpzb25fcmVzcG9uc2UsCisgICAgICAgICAgICBfdHlwZSwgbW9kdWxl X25hbWUsIGlub2RlLCBpY29uX2NsYXNzLCBsYWJlbCkKKworCitkZWYgY29udmVydF9yZXNwb25z ZV90b19qc29uKHJlc3BvbnNlKToKKyAgICByZXR1cm4ganNvbi5sb2FkcygKKyAgICAgICAgcmVz cG9uc2UuZGF0YS5kZWNvZGUoJ3V0Zi04JykucmVwbGFjZSgnXG4nLCAnJykpCisKKworZGVmIGFz c2VydF9qc29uX3ZhbHVlc19mcm9tX3Jlc3BvbnNlKGpzb25fcmVzcG9uc2UsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgX3R5cGUsIG1vZHVsZV9uYW1lLCBpbm9kZSwgaWNv bl9jbGFzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbCk6Cisg ICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiBvbmx5IHdvcmtzIGZvciBKU09OIG9iamVjdHMgdGhh dCBsb29rIGxpa2U6CisgICAgICAgIHsgbm9kZToKKyAgICAgICAgICB7CisgICAgICAgICAgICBt b2R1bGU6ICcnLAorICAgICAgICAgICAgaW5vZGU6ICcnLAorICAgICAgICAgICAgaWNvbjogJycs CisgICAgICAgICAgICBsYWJlbDogJycsCisgICAgICAgICAgICBpZDogJycKKyAgICAgICAgICB9 CisgICAgICAgIH0KKyAgICAiIiIKKyAgICAoanNvbl9yZXNwb25zZSB8IHNob3VsZC5oYXZlLmtl eSgnbm9kZScpID4gc2hvdWxkLmhhdmUua2V5KCdfdHlwZScpID4KKyAgICAgc2hvdWxkLmJlLmVx dWFsLnRvKF90eXBlKQorICAgICApCisgICAgKGpzb25fcmVzcG9uc2UgfAorICAgICBzaG91bGQu aGF2ZS5rZXkoJ25vZGUnKSA+CisgICAgIHNob3VsZC5oYXZlLmtleSgnbW9kdWxlJykgPgorICAg ICBzaG91bGQuYmUuZXF1YWwudG8obW9kdWxlX25hbWUpCisgICAgICkKKyAgICAoanNvbl9yZXNw b25zZSB8CisgICAgIHNob3VsZC5oYXZlLmtleSgnbm9kZScpID4KKyAgICAgc2hvdWxkLmhhdmUu a2V5KCdpbm9kZScpID4KKyAgICAgc2hvdWxkLmJlLmVxdWFsLnRvKGlub2RlKQorICAgICApCisg ICAgKGpzb25fcmVzcG9uc2UgfAorICAgICBzaG91bGQuaGF2ZS5rZXkoJ25vZGUnKSA+CisgICAg IHNob3VsZC5oYXZlLmtleSgnaWNvbicpID4KKyAgICAgc2hvdWxkLm1hdGNoKGljb25fY2xhc3Mp CisgICAgICkKKyAgICBqc29uX3Jlc3BvbnNlIHwgc2hvdWxkLmhhdmUua2V5KCdub2RlJykgPiBz aG91bGQuaGF2ZS5rZXkoJ19waWQnKQorICAgIChqc29uX3Jlc3BvbnNlIHwKKyAgICAgc2hvdWxk LmhhdmUua2V5KCdub2RlJykgPgorICAgICBzaG91bGQuaGF2ZS5rZXkoJ2xhYmVsJykgPgorICAg ICBzaG91bGQuYmUuZXF1YWwudG8obGFiZWwpCisgICAgICkKKyAgICBqc29uX3Jlc3BvbnNlIHwg c2hvdWxkLmhhdmUua2V5KCdub2RlJykgPiBzaG91bGQuaGF2ZS5rZXkoJ19pZCcpCisgICAgKGpz b25fcmVzcG9uc2UgfAorICAgICBzaG91bGQuaGF2ZS5rZXkoJ25vZGUnKSA+CisgICAgIHNob3Vs ZC5oYXZlLmtleSgnaWQnKSA+CisgICAgIHNob3VsZC5iZS5lcXVhbC50byhfdHlwZSArICcvJyAr IHN0cihqc29uX3Jlc3BvbnNlWydub2RlJ11bJ19pZCddKSkpCmRpZmYgLS1naXQgYS93ZWIvcmVn cmVzc2lvbi9jb25mdGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2NvbmZ0ZXN0LnB5Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwLi4xZjY2YjQ2NQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9yZWdyZXNzaW9uL2NvbmZ0ZXN0LnB5CkBAIC0wLDAgKzEsMzUgQEAKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworCisjIGRlZiBweXRlc3RfZ2VuZXJhdGVf dGVzdHMobWV0YWZ1bmMpOgorIyAgICAgcHJpbnQoJ1xuXG5cbnB5dGVzdF9nZW5lcmF0ZV90ZXN0 c1xuXG5cbicpCisjICAgICBpZGxpc3QgPSBbXQorIyAgICAgYXJndmFsdWVzID0gW10KKyMgICAg IGZvciBzY2VuYXJpbyBpbiBtZXRhZnVuYy5jbHMuc2NlbmFyaW9zOgorIyAgICAgICAgIGlkbGlz dC5hcHBlbmQoc2NlbmFyaW9bMF0pCisjICAgICAgICAgaXRlbXMgPSBzY2VuYXJpb1sxXS5pdGVt cygpCisjICAgICAgICAgYXJnbmFtZXMgPSBbeFswXSBmb3IgeCBpbiBpdGVtc10KKyMgICAgICAg ICBhcmd2YWx1ZXMuYXBwZW5kKChbeFsxXSBmb3IgeCBpbiBpdGVtc10pKQorIyAgICAgbWV0YWZ1 bmMucGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcywgaWRzPWlkbGlzdCwgc2NvcGU9ImNs YXNzIikKK2ltcG9ydCBzeXMKKworCitkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5j KToKKyAgICBwcmludCgnR2VuZXJhdGlvbiBuZXh0JykKKyAgICBpZGxpc3QgPSBbXQorICAgIGFy Z3ZhbHVlcyA9IFtdCisgICAgYXJnbmFtZXMgPSBbXQorICAgIHByaW50KCdvdXRwdXQnLCBmaWxl PXN5cy5zdGRlcnIpCisgICAgZm9yIHNjZW5hcmlvIGluIG1ldGFmdW5jLmNscy5zY2VuYXJpb3M6 CisgICAgICAgIGlkbGlzdC5hcHBlbmQoc2NlbmFyaW9bMF0pCisgICAgICAgIGl0ZW1zID0gc2Nl bmFyaW9bMV0uaXRlbXMoKQorICAgICAgICBhcmduYW1lcyA9IFt4WzBdIGZvciB4IGluIGl0ZW1z XQorICAgICAgICBhcmd2YWx1ZXMuYXBwZW5kKChbeFsxXSBmb3IgeCBpbiBpdGVtc10pKQorICAg ICAgICBwcmludCgnYmFtbScsIGZpbGU9c3lzLnN0ZGVycikKKyAgICBwcmludCgnc2hlYmFuZycs IGZpbGU9c3lzLnN0ZGVycikKKyAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZShhcmduYW1lcywgYXJn dmFsdWVzLCBpZHM9aWRsaXN0LCBzY29wZT0iY2xhc3MiLAorICAgICAgICAgICAgICAgICAgICAg ICAgIGluZGlyZWN0PUZhbHNlKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vZmVhdHVyZV91 dGlscy9iYXNlX2ZlYXR1cmVfdGVzdC5weSBiL3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMv YmFzZV9mZWF0dXJlX3Rlc3QucHkKaW5kZXggNTY4ZmMyZTkuLjNmY2I5NGJmIDEwMDY0NAotLS0g YS93ZWIvcmVncmVzc2lvbi9mZWF0dXJlX3V0aWxzL2Jhc2VfZmVhdHVyZV90ZXN0LnB5CisrKyBi L3dlYi9yZWdyZXNzaW9uL2ZlYXR1cmVfdXRpbHMvYmFzZV9mZWF0dXJlX3Rlc3QucHkKQEAgLTE2 LDcgKzE2LDcgQEAgZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUKIGZyb20gY29weSBpbXBv cnQgZGVlcGNvcHkKIAogaW1wb3J0IGNvbmZpZyBhcyBhcHBfY29uZmlnCi1mcm9tIHBnYWRtaW4u dXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMu YmFzZV90ZXN0X2dlbmVyYXRvciBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVz c2lvbi5mZWF0dXJlX3V0aWxzLnBnYWRtaW5fcGFnZSBpbXBvcnQgUGdhZG1pblBhZ2UKIAogCmRp ZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy9zcWxfdGVtcGxhdGVf dGVzdF9iYXNlLnB5IGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvc3FsX3RlbXBs YXRlX3Rlc3RfYmFzZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTA1MjE3ODYu LjAwMDAwMDAwCi0tLSBhL3dlYi9yZWdyZXNzaW9uL3B5dGhvbl90ZXN0X3V0aWxzL3NxbF90ZW1w bGF0ZV90ZXN0X2Jhc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0jIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIwotIwotIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCi0jCi0jIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KLSMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCi0jCi0j IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwotCi1mcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IERyaXZlclJlZ2lzdHJ5 Ci0KLURyaXZlclJlZ2lzdHJ5LmxvYWRfZHJpdmVycygpCi0KLQotY2xhc3MgU1FMVGVtcGxhdGVU ZXN0QmFzZShCYXNlVGVzdEdlbmVyYXRvcik6Ci0gICAgc2NlbmFyaW9zID0gWwotICAgICAgICAo InBhcmVudCB0ZXN0IGNsYXNzIiwgZGljdChpZ25vcmVfdGVzdD1UcnVlKSkKLSAgICBdCi0KLSAg ICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFNRTFRlbXBsYXRlVGVzdEJhc2Us IHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi5kYXRhYmFzZV9uYW1lID0gLTEKLSAgICAg ICAgc2VsZi52ZXJzaW9uc190b190ZXN0ID0gLTEKLQotICAgIGRlZiB0ZXN0X3NldHVwKHNlbGYs IGNvbm5lY3Rpb24sIGN1cnNvcik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBnZW5lcmF0ZV9z cWwoc2VsZiwgdmVyc2lvbik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBhc3NlcnRpb25zKHNl bGYsIGZldGNoX3Jlc3VsdCwgZGVzY3JpcHRpb25zKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVm IHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImlnbm9yZV90ZXN0Iik6 Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICB3aXRoIHRlc3RfdXRpbHMuRGF0YWJhc2Uo c2VsZi5zZXJ2ZXIpIGFzIChjb25uZWN0aW9uLCBkYXRhYmFzZV9uYW1lKToKLSAgICAgICAgICAg IHRlc3RfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBkYXRhYmFzZV9uYW1lLCAidGVz dF90YWJsZSIpCi0gICAgICAgICAgICBzZWxmLmRhdGFiYXNlX25hbWUgPSBkYXRhYmFzZV9uYW1l Ci0KLSAgICAgICAgICAgIGlmIGNvbm5lY3Rpb24uc2VydmVyX3ZlcnNpb24gPCA5MDEwMDoKLSAg ICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJ2RlZmF1bHQnXQotICAgICAg ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnZlcnNpb25zX3RvX3Rlc3QgPSBbJzku MV9wbHVzJ10KLQotICAgICAgICAgICAgY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQotICAg ICAgICAgICAgc2VsZi50ZXN0X3NldHVwKGNvbm5lY3Rpb24sIGN1cnNvcikKLQotICAgICAgICAg ICAgZm9yIHZlcnNpb24gaW4gc2VsZi52ZXJzaW9uc190b190ZXN0OgotICAgICAgICAgICAgICAg IHNxbCA9IHNlbGYuZ2VuZXJhdGVfc3FsKHZlcnNpb24pCi0KLSAgICAgICAgICAgICAgICBjdXJz b3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgICAgICAgICAgY3Vyc29yLmV4ZWN1dGUo c3FsKQotICAgICAgICAgICAgICAgIGZldGNoX3Jlc3VsdCA9IGN1cnNvci5mZXRjaGFsbCgpCi0K LSAgICAgICAgICAgICAgICBzZWxmLmFzc2VydGlvbnMoZmV0Y2hfcmVzdWx0LCBjdXJzb3IuZGVz Y3JpcHRpb24pCmRpZmYgLS1naXQgYS93ZWIvcmVncmVzc2lvbi9weXRob25fdGVzdF91dGlscy90 ZXN0X3V0aWxzLnB5IGIvd2ViL3JlZ3Jlc3Npb24vcHl0aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGls cy5weQppbmRleCAzZTUxN2I2MS4uOWVlMjgzNDYgMTAwNjQ0Ci0tLSBhL3dlYi9yZWdyZXNzaW9u L3B5dGhvbl90ZXN0X3V0aWxzL3Rlc3RfdXRpbHMucHkKKysrIGIvd2ViL3JlZ3Jlc3Npb24vcHl0 aG9uX3Rlc3RfdXRpbHMvdGVzdF91dGlscy5weQpAQCAtNDU4LDEyICs0NTgsMjAgQEAgZGVmIGFk ZF9kYl90b19wYXJlbnRfbm9kZV9kaWN0KHNydl9pZCwgZGJfaWQsIHRlc3RfZGJfbmFtZSk6CiAg ICAgfSkKIAogCi1kZWYgYWRkX3NjaGVtYV90b19wYXJlbnRfbm9kZV9kaWN0KHNydl9pZCwgZGJf aWQsIHNjaGVtYV9pZCwgc2NoZW1hX25hbWUpOgorZGVmIGFkZF9zY2hlbWFfdG9fcGFyZW50X25v ZGVfZGljdChzcnZfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRiX3Bh c3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYl9pZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2hlbWFfbmFtZSk6CiAgICAgIiIiIFRoaXMgZnVuY3Rpb24gc3RvcmVzIHRoZSBz Y2hlbWEgZGV0YWlscyBpbnRvIHBhcmVudCBkaWN0ICIiIgotICAgIHNlcnZlcl9pbmZvcm1hdGlv biA9IHsic2VydmVyX2lkIjogc3J2X2lkLCAiZGJfaWQiOiBkYl9pZCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgInNjaGVtYV9pZCI6IHNjaGVtYV9pZCwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgInNjaGVtYV9uYW1lIjogc2NoZW1hX25hbWV9Ci0gICAgcmVncmVzc2lvbi5wYXJlbnRf bm9kZV9kaWN0WyJzY2hlbWEiXS5hcHBlbmQoc2VydmVyX2luZm9ybWF0aW9uKQorICAgIHNlcnZl cl9pbmZvcm1hdGlvbiA9IHsnc2VydmVyX2lkJzogc3J2X2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAnZGJfbmFtZSc6IGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdk Yl9pZCc6IGRiX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NoZW1hX2lkJzogc2No ZW1hX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NoZW1hX25hbWUnOiBzY2hlbWFf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RiX3Bhc3N3b3JkJzogZGJfcGFzc3dv cmR9CisgICAgcmVncmVzc2lvbi5wYXJlbnRfbm9kZV9kaWN0WydzY2hlbWEnXS5hcHBlbmQoc2Vy dmVyX2luZm9ybWF0aW9uKQogICAgIHJldHVybiBzZXJ2ZXJfaW5mb3JtYXRpb24KIAogCkBAIC00 NzcsMTEgKzQ4NSwxMSBAQCBkZWYgY3JlYXRlX3BhcmVudF9zZXJ2ZXJfbm9kZShzZXJ2ZXJfaW5m byk6CiAgICAgIiIiCiAgICAgc3J2X2lkID0gY3JlYXRlX3NlcnZlcihzZXJ2ZXJfaW5mbykKICAg ICAjIENyZWF0ZSBkYXRhYmFzZQotICAgIHRlc3RfZGJfbmFtZSA9ICJ0ZXN0X2RiXyVzIiAlIHN0 cih1dWlkLnV1aWQ0KCkpWzE6Nl0KKyAgICB0ZXN0X2RiX25hbWUgPSAndGVzdF9kYl8lcycgJSBz dHIodXVpZC51dWlkNCgpKVsxOjZdCiAgICAgZGJfaWQgPSBjcmVhdGVfZGF0YWJhc2Uoc2VydmVy X2luZm8sIHRlc3RfZGJfbmFtZSkKICAgICBhZGRfZGJfdG9fcGFyZW50X25vZGVfZGljdChzcnZf aWQsIGRiX2lkLCB0ZXN0X2RiX25hbWUpCiAgICAgIyBDcmVhdGUgc2NoZW1hCi0gICAgc2NoZW1h X25hbWUgPSAidGVzdF9zY2hlbWFfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo2XQorICAgIHNj aGVtYV9uYW1lID0gJ3Rlc3Rfc2NoZW1hXyVzJyAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0KICAg ICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24oCiAgICAgICAgIHRlc3RfZGJfbmFtZSwK ICAgICAgICAgc2VydmVyX2luZm9bJ3VzZXJuYW1lJ10sCkBAIC00OTMsNyArNTAxLDEyIEBAIGRl ZiBjcmVhdGVfcGFyZW50X3NlcnZlcl9ub2RlKHNlcnZlcl9pbmZvKToKIAogICAgIHNjaGVtYSA9 IHJlZ3Jlc3Npb24uc2NoZW1hX3V0aWxzLmNyZWF0ZV9zY2hlbWEoY29ubmVjdGlvbiwgc2NoZW1h X25hbWUpCiAgICAgcmV0dXJuIGFkZF9zY2hlbWFfdG9fcGFyZW50X25vZGVfZGljdCgKLSAgICAg ICAgc3J2X2lkLCBkYl9pZCwgc2NoZW1hWzBdLCBzY2hlbWFbMV0KKyAgICAgICAgc3J2X2lkLAor ICAgICAgICBzZXJ2ZXJfaW5mb1snZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgdGVzdF9kYl9uYW1l LAorICAgICAgICBkYl9pZCwKKyAgICAgICAgc2NoZW1hWzBdLAorICAgICAgICBzY2hlbWFbMV0K ICAgICApCiAKIApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vcmVxdWlyZW1lbnRzLnR4dCBi L3dlYi9yZWdyZXNzaW9uL3JlcXVpcmVtZW50cy50eHQKaW5kZXggZmZjM2VmMTEuLjAwY2Q4MWFm IDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9yZXF1aXJlbWVudHMudHh0CisrKyBiL3dlYi9y ZWdyZXNzaW9uL3JlcXVpcmVtZW50cy50eHQKQEAgLTgsMTAgKzgsMTMgQEAKICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIHB5Y29kZXN0eWxlPT0yLjMuMQogcHlw ZXJjbGlwfj0xLjYuMAorcHl0ZXN0PT0zLjUuMQogdGVzdHNjZW5hcmlvcz09MC41LjAKIHRlc3R0 b29scz09Mi4zLjAKIHRyYWNlYmFjazI9PTEuNC4wCiB1bml0dGVzdDI9PTEuMS4wCitncmFwcGE9 PTAuMS44CitweXRlc3QtanNvbj09MC40LjAKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBNb2R1bGVzIHNwZWNpZmlj YWxseSByZXF1aXJlcyBmb3IgUHl0aG9uMi43IG9yIGdyZWF0ZXIgdmVyc2lvbgpkaWZmIC0tZ2l0 IGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMuc2ggYi93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5z aApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMC4uYjQ3MDFkM2IKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcmVncmVzc2lvbi9ydW50ZXN0cy5zaApAQCAtMCwwICsxLDUgQEAKKyMh L2Jpbi9zaAorCit3ZWJfZGlyPSQoY2QgYGRpcm5hbWUgJDBgICYmIGNkIC4uICYmIHB3ZCApCitl eHBvcnQgUFlUSE9OUEFUSD0kd2ViX2RpcgorcHl0ZXN0ICR3ZWJfZGlyL3BnYWRtaW4gLS1qc29u PXRlc3RfcmVzdWx0Lmpzb24gLS1yZXN1bHRsb2c9cmVncmVzc2lvbi5sb2cK --000000000000f20347056ce681a5--