Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1boVHI-0004g4-V4 for pgadmin-hackers@arkaria.postgresql.org; Mon, 26 Sep 2016 12:45:01 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1boVHI-0005j6-Hh for pgadmin-hackers@arkaria.postgresql.org; Mon, 26 Sep 2016 12:45:00 +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.84_2) (envelope-from ) id 1boVHF-0005iG-IV for pgadmin-hackers@postgresql.org; Mon, 26 Sep 2016 12:44:58 +0000 Received: from mail-qt0-x230.google.com ([2607:f8b0:400d:c0d::230]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1boVHC-00083V-Sj for pgadmin-hackers@postgresql.org; Mon, 26 Sep 2016 12:44:56 +0000 Received: by mail-qt0-x230.google.com with SMTP id 38so80092194qte.1 for ; Mon, 26 Sep 2016 05:44:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:cc; bh=CWSBh2rF95X1c2I53+7DMLRTB7LPG54YSV6LguVIdhQ=; b=VuUAMPD9/rNdCxJbwVSVPrGELGgeiLQORMh7jbKF4lY1mE46Kbajo81sIYrS6x0X/Y LacpIx9NvFNH4Axj3rWd7VdBSLMH9QzFTeKcUGi3XqOQaHferkX8YBLBu/MkrXB46r4p MkCR/XZWh2GZtjJlLUe09TCyqKRGdv3k6ByegvwfY7b9ZyBkbf8ZYUsTZM7OLyuISOo/ BzIIoSjbswmGOZYVcKohNdWKwFFAIdyo5sDsmPjKh1O4F2Ij12KOs03iH+nzJjApFzUv MPxt/0BZ1+PnG4R0m6ZrheX7o66oj5YcMbN5hM1s45SizXOgIDDb9PsXoxogWGKNxF9f BLUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=CWSBh2rF95X1c2I53+7DMLRTB7LPG54YSV6LguVIdhQ=; b=dH5OUj4euLEyF+0Bt2Ezx20Wwy/sUvmsGPAAqrEk7keHMXZOa+JH+BBu7TBAxS3FFW yuMtmGQ5+I6itay5kgmE3FIAiCGLvjUQoYtqil3EF4ii8SP+Yaw3u4/cmI6lkOJ10B+E CrpI+sksilaaGZQ7lUz+x/9IboyjCPU5cHFzq9LrMenWvV9/x1XfwoyDS4FacP9KyXYN JUvcWgpJ/qYfGEE8bMHPJJvSTFjWbm+yEZupgCDi/b05v9QDnOubgC7ne6x1OfFEcyAR 0xokaoHepLpVgtoAxXSnfMOtFdcWhqLenUN0HDnz5b0+b7pbsovX5IvLMX6P9jnM8BWe 8NFA== X-Gm-Message-State: AA6/9Rn7W2fPtJodDCilk6kgeL5VfjGnDXNAEgFt3pCdIFkEcZXD+dn/wc+QZcGa6OY3rZ6Np8XSmCcAFEYEA4rZ X-Received: by 10.200.35.219 with SMTP id r27mr21661425qtr.63.1474893893801; Mon, 26 Sep 2016 05:44:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.41.114 with HTTP; Mon, 26 Sep 2016 05:44:53 -0700 (PDT) From: Navnath Gadakh Date: Mon, 26 Sep 2016 18:14:53 +0530 Message-ID: Subject: pgAdmin IV: Code changes in roles and tablespaces test cases To: Dave Page Cc: pgadmin-hackers , Kanchan Mohitey Content-Type: multipart/mixed; boundary=001a1140377e9fdc2e053d687e35 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1140377e9fdc2e053d687e35 Content-Type: multipart/alternative; boundary=001a1140377e9fdc29053d687e33 --001a1140377e9fdc29053d687e33 Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find the attached patch for the role and table spaces(Changes required due to drop objects functionality). Also, I have added the code in test result summary to show skipped test cases for tablespace if path not mentioned. To run testsuite: python regression/runtests.py --pkg browser.server_groups.servers.tablespaces python regression/runtests.py --pkg browser.server_groups.servers.roles -- Regards, Navnath --001a1140377e9fdc29053d687e33 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,
=C2=A0 Please find the attached patch for the= role and table spaces(Changes required due to dro= p objects functionality).
Also, I have a= dded the=C2=A0code in test result summary to=C2=A0show skipped test cases f= or tablespace if path not mentioned.

To run testsuite:

python regression/runtests.py --pkg browser.server_groups.servers.t= ablespaces

=

python regression/runtests.py --pkg browser.serve= r_groups.servers.roles




--
<= div dir=3D"ltr">
Regards,
Navnath
=

<= /div>
--001a1140377e9fdc29053d687e33-- --001a1140377e9fdc2e053d687e35 Content-Type: application/octet-stream; name="tablespaces_roles.patch" Content-Disposition: attachment; filename="tablespaces_roles.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_itk1oy4m0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9hZGQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90 ZXN0cy90ZXN0X3JvbGVfYWRkLnB5CmluZGV4IDlkOGY5NDkuLjExYjlmYTcg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9hZGQucHkKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVzdHMvdGVzdF9yb2xlX2FkZC5weQpAQCAtNiw5ICs2LDExIEBACiAj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQogIwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9y dCBqc29uCiAKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3Nl cnZlcl9kaWN0CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscwog ZnJvbSAuIGltcG9ydCB1dGlscyBhcyByb2xlc191dGlscwogCkBAIC0yMSwz NSArMjMsMzMgQEAgY2xhc3MgTG9naW5Sb2xlQWRkVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgogICAgICAgICAoJ0NoZWNrIFJvbGUgTm9kZScsIGRp Y3QodXJsPScvYnJvd3Nlci9yb2xlL29iai8nKSkKICAgICBdCiAKLSAgICBA Y2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAg ICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGFkZCB0aGUg c2V2ZXIKLQotICAgICAgICA6cmV0dXJuOiBOb25lCi0gICAgICAgICIiIgot Ci0gICAgICAgICMgQWRkIHRoZSBzZXJ2ZXIKLSAgICAgICAgc2VydmVyX3V0 aWxzLmFkZF9zZXJ2ZXIoY2xzLnRlc3RlcikKLQotICAgICAgICAjIENvbm5l Y3QgdG8gc2VydmVyCi0gICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNw b25zZSwgY2xzLnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCi0g ICAgICAgICAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRl c3RlcikKLQotICAgICAgICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jl c3BvbnNlKSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJO byBTZXJ2ZXIocykgY29ubmVjdGVkIHRvIGFkZCB0aGUgcm9sZXMhISEiKQor ICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgcGFzcwogCiAgICAgZGVm IHJ1blRlc3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVz dCB0aGUgYWRkIHJvbGUgc2NlbmFyaW8iIiIKLQotICAgICAgICByb2xlc191 dGlscy5hZGRfcm9sZShzZWxmLnRlc3Rlciwgc2VsZi5zZXJ2ZXJfY29ubmVj dF9yZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJfZ3JvdXAsIHNlbGYuc2VydmVyX2lkcykKLQotICAgIEBjbGFz c21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6Ci0gICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgcm9sZSxzZXJ2ZXIgYW5k IHBhcmVudCBpZCBmaWxlIiIiCi0KLSAgICAgICAgcm9sZXNfdXRpbHMuZGVs ZXRlX3JvbGUoY2xzLnRlc3RlcikKLSAgICAgICAgc2VydmVyX3V0aWxzLmRl bGV0ZV9zZXJ2ZXIoY2xzLnRlc3RlcikKLSAgICAgICAgdXRpbHMuZGVsZXRl X3BhcmVudF9pZF9maWxlKCkKLQorICAgICAgICBzZXJ2ZXJfaWQgPSB0ZXN0 X3NlcnZlcl9kaWN0WyJzZXJ2ZXIiXVswXVsic2VydmVyX2lkIl0KKyAgICAg ICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2Vy dmVyKHNlbGYsIHNlcnZlcl9pZCkKKyAgICAgICAgaWYgbm90IHNlcnZlcl9y ZXNwb25zZVsnZGF0YSddWydjb25uZWN0ZWQnXToKKyAgICAgICAgICAgIHJh aXNlIEV4Y2VwdGlvbigiU2VydmVyIG5vdCBmb3VuZCB0byBhZGQgdGhlIHJv bGUuIikKKworICAgICAgICBkYXRhID0gcm9sZXNfdXRpbHMuZ2V0X3JvbGVf ZGF0YShzZWxmLnNlcnZlclsnZGJfcGFzc3dvcmQnXSkKKyAgICAgICAgc2Vs Zi5yb2xlX25hbWUgPSBkYXRhWydyb2xuYW1lJ10KKyAgICAgICAgcmVzcG9u c2UgPSBzZWxmLnRlc3Rlci5wb3N0KHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICsgc3RyKHNlcnZlcl9pZCkgKyAnLycsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0 YSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgIHJlc3Bv bnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1 dGYtOCcpKQorICAgICAgICByb2xlX2lkID0gcmVzcG9uc2VfZGF0YVsnbm9k ZSddWydfaWQnXQorICAgICAgICByb2xlX2RpY3QgPSB7InNlcnZlcl9pZCI6 IHNlcnZlcl9pZCwgInJvbGVfaWQiOiByb2xlX2lkfQorICAgICAgICB1dGls cy53cml0ZV9ub2RlX2luZm8ocm9sZV9pZCwgImxyaWQiLCByb2xlX2RpY3Qp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMg ZnVuY3Rpb24gZGVsZXRlIHRoZSByb2xlIGZyb20gYWRkZWQgc2VydmVyIiIi CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn aG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcm9sZXNf dXRpbHMuZGVsZXRlX3JvbGUoY29ubmVjdGlvbiwgc2VsZi5yb2xlX25hbWUp CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRlLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVzdHMvdGVzdF9yb2xlX2RlbGV0ZS5weQppbmRleCBmMzIwNGNkLi45 YTQ5NWZmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfZGVsZXRl LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9kZWxldGUucHkKQEAgLTYs NTMgKzYsNDAgQEAKICMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotCitpbXBvcnQgdXVpZAogCiBmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgc2VydmVyX3V0aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3Rfc2VydmVyX2RpY3QKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgcm9sZXNf dXRpbHMKIAogCiBjbGFzcyBMb2dpblJvbGVEZWxldGVUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CiAgICAgIiIiVGhpcyBjbGFzcyBoYXMgZGVsZXRl IHJvbGUgc2NlbmFyaW8iIiIKLQogICAgIHNjZW5hcmlvcyA9IFsKICAgICAg ICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KICAg ICAgICAgKCdDaGVjayBSb2xlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIv cm9sZS9vYmovJykpCiAgICAgXQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAg ZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRo aXMgZnVuY3Rpb24gdXNlZCB0byBhZGQgdGhlIHNldmVyIGFuZCByb2xlcwot Ci0gICAgICAgIDpyZXR1cm46IE5vbmUKLSAgICAgICAgIiIiCi0KLSAgICAg ICAgIyBBZGQgdGhlIHNlcnZlcgotICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRk X3NlcnZlcihjbHMudGVzdGVyKQotCi0gICAgICAgICMgQ29ubmVjdCB0byBz ZXJ2ZXIKLSAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBj bHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcyA9IFwKLSAgICAgICAg ICAgIHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQot Ci0gICAgICAgIGlmIGxlbihjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2Up ID09IDA6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZl cihzKSBjb25uZWN0ZWQgdG8gYWRkIHRoZSByb2xlcyEhISIpCi0KLSAgICAg ICAgIyBBZGQgdGhlIHJvbGUKLSAgICAgICAgcm9sZXNfdXRpbHMuYWRkX3Jv bGUoY2xzLnRlc3RlciwgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2dyb3Vw LCBjbHMuc2VydmVyX2lkcykKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAg ICAgIHNlbGYucm9sZV9uYW1lID0gInJvbGVfZGVsZXRlXyVzIiAlIHN0cih1 dWlkLnV1aWQ0KCkpWzE6Nl0KKyAgICAgICAgc2VsZi5yb2xlX2lkID0gcm9s ZXNfdXRpbHMuY3JlYXRlX3JvbGUoc2VsZi5zZXJ2ZXIsIHNlbGYucm9sZV9u YW1lKQogCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6Ci0gICAgICAgICIiIlRo aXMgZnVuY3Rpb24gdGVzdHMgdGhlIGRlbGV0ZSByb2xlIHNjZW5hcmlvIiIi Ci0KLSAgICAgICAgcm9sZXNfdXRpbHMuZGVsZXRlX3JvbGUoc2VsZi50ZXN0 ZXIpCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFz cyhzZWxmKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRo ZSByb2xlLHNlcnZlciBhbmQgcGFyZW50IGlkIGZpbGUiIiIKLQotICAgICAg ICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihzZWxmLnRlc3RlcikKLSAg ICAgICAgdXRpbHMuZGVsZXRlX3BhcmVudF9pZF9maWxlKCkKKyAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiB0ZXN0IHRoZSBkZWxldGUgcm9sZSBzY2VuYXJp byIiIgorICAgICAgICBzZXJ2ZXJfaWQgPSB0ZXN0X3NlcnZlcl9kaWN0WyJz ZXJ2ZXIiXVswXVsic2VydmVyX2lkIl0KKyAgICAgICAgcmVzcG9uc2UgPSBz ZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0 cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYucm9sZV9pZCksCisgICAg ICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAgICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisKKyAg ICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRoaXMgZnVuY3Rp b24gZGVsZXRlIHRoZSByb2xlIGZyb20gYWRkZWQgc2VydmVyIiIiCisgICAg ICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihzZWxm LnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9zdCdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcm9sZXNfdXRpbHMu ZGVsZXRlX3JvbGUoY29ubmVjdGlvbiwgc2VsZi5yb2xlX25hbWUpCiAKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9nZXQucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZXN0 cy90ZXN0X3JvbGVfZ2V0LnB5CmluZGV4IDQxODdmY2EuLjczNmFlM2MgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9nZXQucHkKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMv dGVzdHMvdGVzdF9yb2xlX2dldC5weQpAQCAtNiw2MiArNiwzOSBAQAogIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FM IExpY2VuY2UKICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQg dXVpZAogCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VU ZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRp bHMgYXMgdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91 cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxz Citmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rfc2VydmVyX2RpY3QKIGZy b20gLiBpbXBvcnQgdXRpbHMgYXMgcm9sZXNfdXRpbHMKIAogCiBjbGFzcyBM b2dpblJvbGVHZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg IiIiVGhpcyBjbGFzcyB0ZXN0cyB0aGUgZ2V0IHJvbGUgc2NlbmFyaW8iIiIK LQogICAgIHNjZW5hcmlvcyA9IFsKICAgICAgICAgIyBGZXRjaGluZyBkZWZh dWx0IFVSTCBmb3Igcm9sZXMgbm9kZS4KICAgICAgICAgKCdDaGVjayBSb2xl IE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dzZXIvcm9sZS9vYmovJykpCiAgICAg XQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldFVwQ2xhc3MoY2xz KToKLSAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0 byBhZGQgdGhlIHNldmVyIGFuZCByb2xlcwotCi0gICAgICAgIDpyZXR1cm46 IE5vbmUKLSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBBZGQgdGhlIHNlcnZl cgotICAgICAgICBzZXJ2ZXJfdXRpbHMuYWRkX3NlcnZlcihjbHMudGVzdGVy KQotCi0gICAgICAgICMgQ29ubmVjdCB0byBzZXJ2ZXIKLSAgICAgICAgY2xz LnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBjbHMuc2VydmVyX2dyb3VwLCBj bHMuc2VydmVyX2lkcyA9IFwKLSAgICAgICAgICAgIHNlcnZlcl91dGlscy5j b25uZWN0X3NlcnZlcihjbHMudGVzdGVyKQotCi0gICAgICAgIGlmIGxlbihj bHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UpID09IDA6Ci0gICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIk5vIFNlcnZlcihzKSBjb25uZWN0ZWQgdG8g Z2V0IHRoZSByb2xlcyEhISIpCi0KLSAgICAgICAgIyBBZGQgdGhlIHJvbGUK LSAgICAgICAgcm9sZXNfdXRpbHMuYWRkX3JvbGUoY2xzLnRlc3RlciwgY2xz LnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcykK KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYucm9sZV9uYW1l ID0gInJvbGVfZ2V0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0KKyAg ICAgICAgc2VsZi5yb2xlX2lkID0gcm9sZXNfdXRpbHMuY3JlYXRlX3JvbGUo c2VsZi5zZXJ2ZXIsIHNlbGYucm9sZV9uYW1lKQogCiAgICAgZGVmIHJ1blRl c3Qoc2VsZik6CiAgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gdGVzdCB0aGUg Z2V0IHJvbGUgc2NlbmFyaW8iIiIKLQotICAgICAgICBhbGxfaWQgPSB1dGls cy5nZXRfaWRzKCkKLSAgICAgICAgc2VydmVyX2lkcyA9IGFsbF9pZFsic2lk Il0KLSAgICAgICAgcm9sZV9pZHNfZGljdCA9IGFsbF9pZFsibHJpZCJdWzBd Ci0KLSAgICAgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJfaWRzOgotICAg ICAgICAgICAgcm9sZV9pZCA9IHJvbGVfaWRzX2RpY3RbaW50KHNlcnZlcl9p ZCldCi0gICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgK LSAgICAgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJf R1JPVVApICsgJy8nICsKLSAgICAgICAgICAgICAgICBzdHIoc2VydmVyX2lk KSArICcvJyArIHN0cihyb2xlX2lkKSwKLSAgICAgICAgICAgICAgICBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx dWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgQGNsYXNz bWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSByb2xlLHNlcnZlciBhbmQg cGFyZW50IGlkIGZpbGUiIiIKLQotICAgICAgICByb2xlc191dGlscy5kZWxl dGVfcm9sZShjbHMudGVzdGVyKQotICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVs ZXRlX3NlcnZlcihjbHMudGVzdGVyKQotICAgICAgICB1dGlscy5kZWxldGVf cGFyZW50X2lkX2ZpbGUoKQorICAgICAgICBzZXJ2ZXJfaWQgPSB0ZXN0X3Nl cnZlcl9kaWN0WyJzZXJ2ZXIiXVswXVsic2VydmVyX2lkIl0KKyAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAg ICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYucm9sZV9p ZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICIiIlRo aXMgZnVuY3Rpb24gZGVsZXRlIHRoZSByb2xlIGZyb20gYWRkZWQgc2VydmVy IiIiCisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVj dGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZl clsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcm9s ZXNfdXRpbHMuZGVsZXRlX3JvbGUoY29ubmVjdGlvbiwgc2VsZi5yb2xlX25h bWUpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfcHV0LnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVzdHMvdGVzdF9yb2xlX3B1dC5weQppbmRleCBmOGMzNTNlLi44YjZh NmFhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy90ZXN0X3JvbGVfcHV0LnB5Cisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3JvbGVzL3Rlc3RzL3Rlc3Rfcm9sZV9wdXQucHkKQEAgLTgsNzcgKzgsNDgg QEAKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGltcG9ydCBqc29uCitp bXBvcnQgdXVpZAogCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0 IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2VydmVy X3V0aWxzCi1mcm9tIHJlZ3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgYWR2 YW5jZWRfY29uZmlnX2RhdGEKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVz dF9zZXJ2ZXJfZGljdAogZnJvbSAuIGltcG9ydCB1dGlscyBhcyByb2xlc191 dGlscwogCiAKIGNsYXNzIExvZ2luUm9sZVB1dFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICAiIiJUaGlzIGNsYXNzIGhhcyB1cGRhdGUgcm9s ZSBzY2VuYXJpbyIiIgotCiAgICAgc2NlbmFyaW9zID0gWwogICAgICAgICAj IEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciByb2xlcyBub2RlLgogICAgICAg ICAoJ0NoZWNrIFJvbGUgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci9yb2xl L29iai8nKSkKICAgICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg c2V0VXBDbGFzcyhjbHMpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBm dW5jdGlvbiB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIgYW5kIHJvbGVzCi0KLSAg ICAgICAgOnJldHVybjogTm9uZQotICAgICAgICAiIiIKLQotICAgICAgICAj IEFkZCB0aGUgc2VydmVyCi0gICAgICAgIHNlcnZlcl91dGlscy5hZGRfc2Vy dmVyKGNscy50ZXN0ZXIpCi0KLSAgICAgICAgIyBDb25uZWN0IHRvIHNlcnZl cgotICAgICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNscy5z ZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2ZXJfaWRzID0gXAotICAgICAgICAgICAg c2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCi0KLSAg ICAgICAgaWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkgPT0g MDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVyKHMp IGNvbm5lY3RlZCB0byBnZXQgdGhlIHJvbGVzISEhIikKLQotICAgICAgICAj IEFkZCB0aGUgcm9sZQotICAgICAgICByb2xlc191dGlscy5hZGRfcm9sZShj bHMudGVzdGVyLCBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNscy5zZXJ2ZXJfZ3JvdXAsIGNs cy5zZXJ2ZXJfaWRzKQorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAg c2VsZi5yb2xlX25hbWUgPSAicm9sZV9wdXRfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo2XQorICAgICAgICBzZWxmLnJvbGVfaWQgPSByb2xlc191dGls cy5jcmVhdGVfcm9sZShzZWxmLnNlcnZlciwgc2VsZi5yb2xlX25hbWUpCiAK ICAgICBkZWYgcnVuVGVzdChzZWxmKToKICAgICAgICAgIiIiVGhpcyBmdW5j dGlvbiB0ZXN0cyB0aGUgdXBkYXRlIHJvbGUgZGF0YSBzY2VuYXJpbyIiIgor ICAgICAgICBzZXJ2ZXJfaWQgPSB0ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2ZXIi XVswXVsic2VydmVyX2lkIl0KKyAgICAgICAgcm9sZV9yZXNwb25zZSA9IHJv bGVzX3V0aWxzLnZlcmlmeV9yb2xlKHNlbGYuc2VydmVyLCBzZWxmLnJvbGVf bmFtZSkKKyAgICAgICAgaWYgbGVuKHJvbGVfcmVzcG9uc2UpID09IDA6Cisg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHJvbGVzKHMpIHRvIHVw ZGF0ZSEhISIpCisgICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICAiZGVz Y3JpcHRpb24iOiAiVGhpcyBpcyB0aGUgdGVzdCBkZXNjcmlwdGlvbiBmb3Ig Y2FzdCIsCisgICAgICAgICAgICAibHJpZCI6IHNlbGYucm9sZV9pZAorICAg ICAgICB9CisgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1 dCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9H Uk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlcnZlcl9pZCkgKyAn LycgKyBzdHIoc2VsZi5yb2xlX2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNv bi5kdW1wcyhkYXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9 VHJ1ZSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHV0X3Jlc3BvbnNl LnN0YXR1c19jb2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6 CisgICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSByb2xlIGZy b20gYWRkZWQgc2VydmVyIiIiCisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGls cy5nZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3Jk J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQn XSkKKyAgICAgICAgcm9sZXNfdXRpbHMuZGVsZXRlX3JvbGUoY29ubmVjdGlv biwgc2VsZi5yb2xlX25hbWUpCiAKLSAgICAgICAgYWxsX2lkID0gdXRpbHMu Z2V0X2lkcygpCi0gICAgICAgIHNlcnZlcl9pZHMgPSBhbGxfaWRbInNpZCJd Ci0gICAgICAgIHJvbGVfaWRzX2RpY3QgPSBhbGxfaWRbImxyaWQiXVswXQot Ci0gICAgICAgIGZvciBzZXJ2ZXJfaWQgaW4gc2VydmVyX2lkczoKLSAgICAg ICAgICAgIHJvbGVfaWQgPSByb2xlX2lkc19kaWN0W2ludChzZXJ2ZXJfaWQp XQotICAgICAgICAgICAgcm9sZV9yZXNwb25zZSA9IHJvbGVzX3V0aWxzLnZl cmlmeV9yb2xlKHNlbGYudGVzdGVyLAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWxzLlNFUlZFUl9H Uk9VUCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZV9pZCkKLSAg ICAgICAgICAgIGlmIGxlbihyb2xlX3Jlc3BvbnNlKSA9PSAwOgotICAgICAg ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gcm9sZXMocykgdG8gdXBk YXRlISEhIikKLQotICAgICAgICAgICAgZGF0YSA9IHsKLSAgICAgICAgICAg ICAgICAiZGVzY3JpcHRpb24iOiBhZHZhbmNlZF9jb25maWdfZGF0YVsibHJf dXBkYXRlX2RhdGEiXQotICAgICAgICAgICAgICAgIFsiY29tbWVudCJdLAot ICAgICAgICAgICAgICAgICJscmlkIjogcm9sZV9pZAotICAgICAgICAgICAg fQotICAgICAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0 KAotICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJf aWQpICsgJy8nICsgc3RyKHJvbGVfaWQpLAotICAgICAgICAgICAgICAgIGRh dGE9anNvbi5kdW1wcyhkYXRhKSwKLSAgICAgICAgICAgICAgICBmb2xsb3df cmVkaXJlY3RzPVRydWUpCi0KLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQotCi0gICAgQGNs YXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3MoY2xzKToKLSAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSByb2xlLHNlcnZlciBh bmQgcGFyZW50IGlkIGZpbGUiIiIKLQotICAgICAgICByb2xlc191dGlscy5k ZWxldGVfcm9sZShjbHMudGVzdGVyKQotICAgICAgICBzZXJ2ZXJfdXRpbHMu ZGVsZXRlX3NlcnZlcihjbHMudGVzdGVyKQotICAgICAgICB1dGlscy5kZWxl dGVfcGFyZW50X2lkX2ZpbGUoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVzdHMvdXRp bHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9yb2xlcy90ZXN0cy91dGlscy5weQppbmRleCA4NWUwOTkwLi40OTFi YTJlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZXN0cy91dGlscy5weQorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90 ZXN0cy91dGlscy5weQpAQCAtNiw0NSArNiw1MSBAQAogIyBUaGlzIHNvZnR3 YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UK ICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitmcm9tIF9fZnV0dXJlX18g aW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIGltcG9ydCBqc29uCiBpbXBvcnQg b3MKIGltcG9ydCBwaWNrbGUKIGltcG9ydCB1dWlkCitpbXBvcnQgc3lzCiAK LWZyb20gcmVncmVzc2lvbi50ZXN0X3NldHVwIGltcG9ydCBwaWNrbGVfcGF0 aCwgY29uZmlnX2RhdGEsIGFkdmFuY2VkX2NvbmZpZ19kYXRhCitmcm9tIHJl Z3Jlc3Npb24udGVzdF9zZXR1cCBpbXBvcnQgY29uZmlnX2RhdGEKIGZyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBp bXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0aWxzCiBmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKIAogCiBST0xFX1VSTCA9ICcv YnJvd3Nlci9yb2xlL29iai8nCitmaWxlX25hbWUgPSBvcy5wYXRoLmJhc2Vu YW1lKF9fZmlsZV9fKQogCiAKLWRlZiB2ZXJpZnlfcm9sZSh0ZXN0ZXIsIHNl cnZlcl9ncm91cCwgc2VydmVyX2lkLCByb2xlX2lkKToKK2RlZiB2ZXJpZnlf cm9sZShzZXJ2ZXIsIHJvbGVfbmFtZSk6CiAgICAgIiIiCiAgICAgVGhpcyBm dW5jdGlvbiBjYWxscyB0aGUgR0VUIEFQSSBmb3Igcm9sZSB0byB2ZXJpZnkK LQotICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50Ci0gICAgOnR5cGUg dGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmplY3QKLSAgICA6cGFyYW0g c2VydmVyX2dyb3VwOiBzZXJ2ZXIgZ3JvdXAgaWQKLSAgICA6dHlwZSBzZXJ2 ZXJfZ3JvdXA6IGludAotICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNlcnZlciBp ZAotICAgIDp0eXBlIHNlcnZlcl9pZDogc3RyCi0gICAgOnBhcmFtIHJvbGVf aWQ6IHJvbGUgaWQKLSAgICA6dHlwZSByb2xlX2lkOiBpbnQKLSAgICA6cmV0 dXJuOiBkaWN0L05vbmUKKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgZGV0 YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSByb2xl X25hbWU6IHJvbGUgbmFtZQorICAgIDp0eXBlIHJvbGVfbmFtZTogc3RyCisg ICAgOnJldHVybiByb2xlOiByb2xlIHJlY29yZCBmcm9tIGRiCisgICAgOnJ0 eXBlIHJvbGU6IGRpY3QKICAgICAiIiIKLQotICAgIHNydl9jb25uZWN0ID0g c2VydmVyX3V0aWxzLnZlcmlmeV9zZXJ2ZXIodGVzdGVyLCBzZXJ2ZXJfZ3Jv dXAsIHNlcnZlcl9pZCkKLSAgICBpZiBzcnZfY29ubmVjdFsnZGF0YSddWydj b25uZWN0ZWQnXToKLSAgICAgICAgcmVzcG9uc2UgPSB0ZXN0ZXIuZ2V0KAot ICAgICAgICAgICAgJ3swfXsxfS97Mn0vezN9Jy5mb3JtYXQoUk9MRV9VUkws IHNlcnZlcl9ncm91cCwgc2VydmVyX2lkLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcm9sZV9pZCksCi0gICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicpCi0gICAgICAgIHRlbXBfcmVzcG9uc2Ug PSBqc29uLmxvYWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQot ICAgICAgICByZXR1cm4gdGVtcF9yZXNwb25zZQotICAgIGVsc2U6Ci0gICAg ICAgIHJldHVybiBOb25lCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9u ID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VydmVyWydkYiddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcGdfY3Vy c29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3Iu ZXhlY3V0ZSgKKyAgICAgICAgICAgICJTRUxFQ1QgKiBmcm9tIHBnX2NhdGFs b2cucGdfcm9sZXMgcHIgV0hFUkUgcHIucm9sbmFtZT0nJXMnIiAlCisgICAg ICAgICAgICByb2xlX25hbWUpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0 KCkKKyAgICAgICAgcm9sZSA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAg ICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gcm9sZQor ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICBl eGNlcHRpb24gPSAiRXJyb3Igd2hpbGUgZ2V0dGluZyByb2xlOiAlczogbGlu ZTolcyAlcyIgJSAoCisgICAgICAgICAgICBmaWxlX25hbWUsIHN5cy5leGNf dHJhY2ViYWNrLnRiX2xpbmVubywgZXhjZXB0aW9uKQorICAgICAgICBwcmlu dChleGNlcHRpb24sIGZpbGU9c3lzLnN0ZGVycikKIAogCiBkZWYgdGVzdF9n ZXRyb2xlKHRlc3Rlcik6CkBAIC02NSw1OCArNzEsNTUgQEAgZGVmIHRlc3Rf Z2V0cm9sZSh0ZXN0ZXIpOgogICAgIHJldHVybiByb2xlX3Jlc3BvbnNlX2Rh dGEKIAogCi1kZWYgZ2V0X3JvbGVfZGF0YSgpOgotICAgICIiIlRoaXMgZnVu Y3Rpb24gcmV0dXJucyB0aGUgcm9sZSBkYXRhIGZyb20gY29uZmlnIGZpbGUi IiIKLQorZGVmIGdldF9yb2xlX2RhdGEobHJfcHdkKToKKyAgICAiIiJUaGlz IGZ1bmN0aW9uIHJldHVybnMgdGhlIHJvbGUgZGF0YSIiIgogICAgIGRhdGEg PSB7Ci0gICAgICAgICJyb2xjYW5sb2dpbiI6IGFkdmFuY2VkX2NvbmZpZ19k YXRhWydscl9jcmVkZW50aWFscyddCi0gICAgICAgIFsnY2FuX2xvZ2luJ10s Ci0gICAgICAgICJyb2xjb25ubGltaXQiOiBhZHZhbmNlZF9jb25maWdfZGF0 YVsnbHJfY3JlZGVudGlhbHMnXQotICAgICAgICBbJ2Nvbm5fbGltaXQnXSwK LSAgICAgICAgInJvbGNyZWF0ZXJvbGUiOiBhZHZhbmNlZF9jb25maWdfZGF0 YVsnbHJfY3JlZGVudGlhbHMnXQotICAgICAgICBbJ2NyZWF0ZV9yb2xlJ10s Ci0gICAgICAgICJyb2xpbmhlcml0IjogYWR2YW5jZWRfY29uZmlnX2RhdGFb J2xyX2NyZWRlbnRpYWxzJ10KLSAgICAgICAgWydyb2xlX2luaGVyaXQnXSwK LSAgICAgICAgInJvbG1lbWJlcnNoaXAiOiBhZHZhbmNlZF9jb25maWdfZGF0 YVsnbHJfY3JlZGVudGlhbHMnXQotICAgICAgICBbJ3JvbGVfbWVtYmVyc2hp cCddLAotICAgICAgICAicm9sbmFtZSI6IHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0sCi0gICAgICAgICJyb2xwYXNzd29yZCI6IGFkdmFuY2VkX2NvbmZpZ19k YXRhWydscl9jcmVkZW50aWFscyddCi0gICAgICAgIFsnbHJfcGFzc3dvcmQn XSwKLSAgICAgICAgInJvbHZhbGlkdW50aWwiOiBhZHZhbmNlZF9jb25maWdf ZGF0YVsnbHJfY3JlZGVudGlhbHMnXQotICAgICAgICBbJ2xyX3ZhbGlkaXR5 J10sCi0gICAgICAgICJzZWNsYWJlbHMiOiBhZHZhbmNlZF9jb25maWdfZGF0 YVsnbHJfY3JlZGVudGlhbHMnXQotICAgICAgICBbJ3NlY19sYWJsZSddLAot ICAgICAgICAidmFyaWFibGVzIjogYWR2YW5jZWRfY29uZmlnX2RhdGFbJ2xy X2NyZWRlbnRpYWxzJ10KLSAgICAgICAgWyd2YXJpYWJsZSddCisgICAgICAg ICJyb2xjYW5sb2dpbiI6ICJ0cnVlIiwKKyAgICAgICAgInJvbGNvbm5saW1p dCI6IC0xLAorICAgICAgICAicm9sY3JlYXRlcm9sZSI6ICJ0cnVlIiwKKyAg ICAgICAgInJvbGluaGVyaXQiOiAidHJ1ZSIsCisgICAgICAgICJyb2xtZW1i ZXJzaGlwIjogW10sCisgICAgICAgICJyb2xuYW1lIjogInRlc3Rfcm9sZV8l cyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjZdLAorICAgICAgICAicm9scGFz c3dvcmQiOiBscl9wd2QsCisgICAgICAgICJyb2x2YWxpZHVudGlsIjogIjEy LzI3LzIwMTYiLAorICAgICAgICAic2VjbGFiZWxzIjogW10sCisgICAgICAg ICJ2YXJpYWJsZXMiOiBbeyJuYW1lIjogIndvcmtfbWVtIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgImRhdGFiYXNlIjogInBvc3RncmVzIiwKKyAgICAg ICAgICAgICAgICAgICAgICAgInZhbHVlIjogNjV9XQogICAgIH0KICAgICBy ZXR1cm4gZGF0YQogCiAKLWRlZiBhZGRfcm9sZSh0ZXN0ZXIsIHNlcnZlcl9j b25uZWN0X3Jlc3BvbnNlLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZHMpOgor ZGVmIGNyZWF0ZV9yb2xlKHNlcnZlciwgcm9sZV9uYW1lKToKICAgICAiIiIK LSAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gYWRkIHRoZSByb2xlcyB0 byBzZXJ2ZXIKLQotICAgIDpwYXJhbSB0ZXN0ZXI6IGZsYXNrIHRlc3QgY2xp ZW50Ci0gICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmpl Y3QKLSAgICA6cGFyYW0gc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2U6IHNlcnZl ciBjb25uZWN0IEFQSSByZXNwb25zZQotICAgIDp0eXBlIHNlcnZlcl9jb25u ZWN0X3Jlc3BvbnNlOiBkaWN0Ci0gICAgOnBhcmFtIHNlcnZlcl9ncm91cDog c2VydmVyIGdyb3VwCi0gICAgOnR5cGUgc2VydmVyX2dyb3VwOiBpbnQKLSAg ICA6cGFyYW0gc2VydmVyX2lkczogbGlzdCBvZiBzZXJ2ZXIgaWQKLSAgICA6 dHlwZSBzZXJ2ZXJfaWRzOiBsaXN0Ci0gICAgOnJldHVybjogTm9uZQorICAg IFRoaXMgZnVuY3Rpb24gY3JlYXRlIHRoZSByb2xlLgorICAgIDpwYXJhbSBz ZXJ2ZXI6CisgICAgOnBhcmFtIHJvbGVfbmFtZToKKyAgICA6cmV0dXJuOgog ICAgICIiIgotCi0gICAgZm9yIHNlcnZlcl9jb25uZWN0LCBzZXJ2ZXJfaWQg aW4gemlwKHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaWRzKToKLSAg ICAgICAgaWYgc2VydmVyX2Nvbm5lY3RbJ2RhdGEnXVsnY29ubmVjdGVkJ106 Ci0gICAgICAgICAgICBkYXRhID0gZ2V0X3JvbGVfZGF0YSgpCi0gICAgICAg ICAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0KFJPTEVfVVJMICsgc3RyKHNl cnZlcl9ncm91cCkgKyAnLycKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKyBzZXJ2ZXJfaWQgKyAnLycsIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u dGVudF90eXBlPSdodG1sL2pzb24nKQotICAgICAgICAgICAgYXNzZXJ0IHJl c3BvbnNlLnN0YXR1c19jb2RlID09IDIwMAotICAgICAgICAgICAgcmVzcG9u c2VfZGF0YSA9IGpzb24ubG9hZHMocmVzcG9uc2UuZGF0YS5kZWNvZGUoJ3V0 Zi04JykpCi0gICAgICAgICAgICB3cml0ZV9yb2xlX2lkKHJlc3BvbnNlX2Rh dGEpCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0 X2RiX2Nvbm5lY3Rpb24oc2VydmVyWydkYiddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydob3N0J10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVj dGlvbi5jdXJzb3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiQ1JF QVRFIFJPTEUgJXMgTE9HSU4iICUgcm9sZV9uYW1lKQorICAgICAgICBjb25u ZWN0aW9uLmNvbW1pdCgpCisgICAgICAgICMgR2V0ICdvaWQnIGZyb20gbmV3 bHkgY3JlYXRlZCB0YWJsZXNwYWNlCisgICAgICAgIHBnX2N1cnNvci5leGVj dXRlKAorICAgICAgICAgICAgIlNFTEVDVCBwci5vaWQgZnJvbSBwZ19jYXRh bG9nLnBnX3JvbGVzIHByIFdIRVJFIHByLnJvbG5hbWU9JyVzJyIgJQorICAg ICAgICAgICAgcm9sZV9uYW1lKQorICAgICAgICBvaWQgPSBwZ19jdXJzb3Iu ZmV0Y2hvbmUoKQorICAgICAgICByb2xlX2lkID0gJycKKyAgICAgICAgaWYg b2lkOgorICAgICAgICAgICAgcm9sZV9pZCA9IG9pZFswXQorICAgICAgICBj b25uZWN0aW9uLmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIHJvbGVfaWQKKyAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKKyAgICAgICAgZXhj ZXB0aW9uID0gIkVycm9yIHdoaWxlIGRlbGV0aW5nIHJvbGU6ICVzOiBsaW5l OiVzICVzIiAlICgKKyAgICAgICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190 cmFjZWJhY2sudGJfbGluZW5vLCBleGNlcHRpb24pCisgICAgICAgIHByaW50 KGV4Y2VwdGlvbiwgZmlsZT1zeXMuc3RkZXJyKQogCiAKIGRlZiB3cml0ZV9y b2xlX2lkKHJlc3BvbnNlX2RhdGEpOgpAQCAtMTQ3LDQxICsxNTAsMzAgQEAg ZGVmIHdyaXRlX3JvbGVfaWQocmVzcG9uc2VfZGF0YSk6CiAgICAgZGJfb3V0 cHV0LmNsb3NlKCkKIAogCi1kZWYgZGVsZXRlX3JvbGUodGVzdGVyKToKK2Rl ZiBkZWxldGVfcm9sZShjb25uZWN0aW9uLCByb2xlX25hbWUpOgogICAgICIi IgogICAgIFRoaXMgZnVuY3Rpb24gdXNlIHRvIGRlbGV0ZSB0aGUgZXhpc3Rp bmcgcm9sZXMgaW4gdGhlIHNlcnZlcnMKIAotICAgIDpwYXJhbSB0ZXN0ZXI6 IGZsYXNrIHRlc3QgY2xpZW50Ci0gICAgOnR5cGUgdGVzdGVyOiBmbGFzayB0 ZXN0IG9iamVjdAorICAgIDpwYXJhbSBjb25uZWN0aW9uOiBkYiBjb25uZWN0 aW9uCisgICAgOnR5cGUgY29ubmVjdGlvbjogY29ubmVjdGlvbiBvYmplY3QK KyAgICA6cGFyYW0gcm9sZV9uYW1lOiByb2xlIG5hbWUKKyAgICA6dHlwZSBy b2xlX25hbWU6IHN0cgogICAgIDpyZXR1cm46IE5vbmUKICAgICAiIiIKLQot ICAgIHNlcnZlcl9pZHMgPSBOb25lCi0gICAgcm9sZV9pZHNfZGljdCA9IE5v bmUKLQotICAgIGFsbF9pZCA9IHV0aWxzLmdldF9pZHMoKQotICAgIGlmICJz aWQiIGFuZCAibHJpZCIgaW4gYWxsX2lkLmtleXMoKToKLSAgICAgICAgc2Vy dmVyX2lkcyA9IGFsbF9pZFsic2lkIl0KLSAgICAgICAgaWYgYWxsX2lkWyds cmlkJ106Ci0gICAgICAgICAgICByb2xlX2lkc19kaWN0ID0gYWxsX2lkWyds cmlkJ11bMF0KLSAgICBlbHNlOgotICAgICAgICByYWlzZSBFeGNlcHRpb24o IktleXMgYXJlIG5vdCBmb3VuZDoge30iLmZvcm1hdChbInNpZCIsICJscmlk Il0pKQotCi0gICAgaWYgc2VydmVyX2lkcyBhbmQgcm9sZV9pZHNfZGljdCBp cyBub3QgTm9uZToKLSAgICAgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJf aWRzOgotICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0gc2VydmVyX3V0 aWxzLnZlcmlmeV9zZXJ2ZXIodGVzdGVyLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpbHMu U0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkKQotICAgICAg ICAgICAgaWYgc2VydmVyX3Jlc3BvbnNlWyJkYXRhIl1bImNvbm5lY3RlZCJd OgotICAgICAgICAgICAgICAgIHJvbGVfaWQgPSByb2xlX2lkc19kaWN0W2lu dChzZXJ2ZXJfaWQpXQotICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gdGVz dGVyLmRlbGV0ZSgKLSAgICAgICAgICAgICAgICAgICAgUk9MRV9VUkwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAg ICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHJvbGVfaWQpLAot ICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0g ICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09 IDIwMAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxv YWRzKHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICAg ICAgICAgIGFzc2VydCByZXNwb25zZV9kYXRhWydzdWNjZXNzJ10gPT0gMQot ICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gc2VydmVy cy9yb2xlcyBmb3VuZC4iKQotCi0KKyAgICB0cnk6CisgICAgICAgIHBnX2N1 cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29y LmV4ZWN1dGUoCisgICAgICAgICAgICAiU0VMRUNUICogRlJPTSBwZ19jYXRh bG9nLnBnX3JvbGVzIFdIRVJFIHJvbG5hbWU9JyVzJyIgJSByb2xlX25hbWUp CisgICAgICAgIHJvbGVfY291bnQgPSBwZ19jdXJzb3IuZmV0Y2hvbmUoKQor ICAgICAgICBpZiByb2xlX2NvdW50OgorICAgICAgICAgICAgb2xkX2lzb2xh dGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCisgICAg ICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKKyAg ICAgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAg ICAgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJEUk9QIFJPTEUgJXMiICUg cm9sZV9uYW1lKQorICAgICAgICAgICAgY29ubmVjdGlvbi5zZXRfaXNvbGF0 aW9uX2xldmVsKG9sZF9pc29sYXRpb25fbGV2ZWwpCisgICAgICAgICAgICBj b25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2Uo KQorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAg ICBleGNlcHRpb24gPSAiRXJyb3Igd2hpbGUgZGVsZXRpbmcgcm9sZTogJXM6 IGxpbmU6JXMgJXMiICUgKAorICAgICAgICAgICAgZmlsZV9uYW1lLCBzeXMu ZXhjX3RyYWNlYmFjay50Yl9saW5lbm8sIGV4Y2VwdGlvbikKKyAgICAgICAg cHJpbnQoZXhjZXB0aW9uLCBmaWxlPXN5cy5zdGRlcnIpCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2FkZC5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2Vz L3Rlc3RzL3Rlc3RfdGJzcGNfYWRkLnB5CmluZGV4IGNhYTY5NjYuLjA5ZTll MGUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfYWRk LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfYWRkLnB5CkBA IC02LDUwICs2LDY4IEBACiAjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQogIwogIyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu Y3Rpb24KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQganNvbgog CiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2Vu ZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3RfdXRpbHMgYXMg dXRpbHMKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF9zZXJ2ZXJfZGlj dAogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LnRlc3RzIGltcG9ydCB1dGlscyBhcyBzZXJ2ZXJfdXRpbHMKIGZyb20gLiBp bXBvcnQgdXRpbHMgYXMgdGFibGVzcGFjZV91dGlscwogCiAKIGNsYXNzIFRh YmxlU3BhY2VBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAg IiIiVGhpcyBjbGFzcyB3aWxsIGFkZCB0YWJsZXNwYWNlIG5vZGUgdW5kZXIg c2VydmVyIiIiCi0KICAgICBzY2VuYXJpb3MgPSBbCiAgICAgICAgICMgRmV0 Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHRhYmxlc3BhY2Ugbm9kZS4KICAgICAg ICAgKCdDaGVjayBUYWJsZXNwYWNlIE5vZGUnLCBkaWN0KHVybD0nL2Jyb3dz ZXIvdGFibGVzcGFjZS9vYmovJykpCiAgICAgXQogCi0gICAgQGNsYXNzbWV0 aG9kCi0gICAgZGVmIHNldFVwQ2xhc3MoY2xzKToKLSAgICAgICAgIiIiCi0g ICAgICAgIFRoaXMgZnVuY3Rpb24gdXNlZCB0byBhZGQgdGhlIHNldmVyCi0K LSAgICAgICAgOnJldHVybjogTm9uZQotICAgICAgICAiIiIKLQotICAgICAg ICAjIEFkZCB0aGUgc2VydmVyCi0gICAgICAgIHNlcnZlcl91dGlscy5hZGRf c2VydmVyKGNscy50ZXN0ZXIpCi0KLSAgICAgICAgIyBDb25uZWN0IHRvIHNl cnZlcgotICAgICAgICBjbHMuc2VydmVyX2Nvbm5lY3RfcmVzcG9uc2UsIGNs cy5zZXJ2ZXJfZ3JvdXAsIGNscy5zZXJ2ZXJfaWRzID0gXAotICAgICAgICAg ICAgc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKGNscy50ZXN0ZXIpCi0K LSAgICAgICAgaWYgbGVuKGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSkg PT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiTm8gU2VydmVy KHMpIGNvbm5lY3RlZCB0byBhZGQgdGhlIHJvbGVzISEhIikKKyAgICBkZWYg c2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lID0g JycKKyAgICAgICAgaWYgbm90IHNlbGYuc2VydmVyWyd0YWJsZXNwYWNlX3Bh dGgnXVwKKyAgICAgICAgICAgICAgICBvciBzZWxmLnNlcnZlclsndGFibGVz cGFjZV9wYXRoJ10gaXMgTm9uZToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAi U2tpcHBlZCB0YWJsZXNwYWNlIGFkZCB0ZXN0IGNhc2UuIFRhYmxlc3BhY2Ug cGF0aCIgXAorICAgICAgICAgICAgICAgICAgICAgICIgbm90IGNvbmZpZ3Vy ZWQgZm9yIHNlcnZlcjogJXMiICUgc2VsZi5zZXJ2ZXJbJ25hbWUnXQorICAg ICAgICAgICAgIyBTa2lwIHRoZSB0ZXN0IGNhc2UgaWYgdGFibGVzcGFjZV9w YXRoIG5vdCBmb3VuZC4KKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVz c2FnZSkKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgotICAgICAgICAiIiJU aGlzIGZ1bmN0aW9uIHRlc3QgdGhlIGFkZCB0YWJsZXNwYWNlIHNjZW5hcmlv IiIiCi0KLSAgICAgICAgdGFibGVzcGFjZV9zdGF0dXMgPSB0YWJsZXNwYWNl X3V0aWxzLmFkZF90YWJsZV9zcGFjZSgKLSAgICAgICAgICAgIHNlbGYudGVz dGVyLCBzZWxmLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLCBzZWxmLnNlcnZl cl9ncm91cCwKLSAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkcykKKyAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiB0ZXN0IHRoZSBhZGQgdGFibGVzcGFjZSBB UEkiIiIKKyAgICAgICAgc2VydmVyX2lkID0gdGVzdF9zZXJ2ZXJfZGljdFsi c2VydmVyIl1bMF1bInNlcnZlcl9pZCJdCisgICAgICAgIHNlcnZlcl9yZXNw b25zZSA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2 ZXJfaWQpCisgICAgICAgIGlmIG5vdCBzZXJ2ZXJfcmVzcG9uc2VbJ2RhdGEn XVsnY29ubmVjdGVkJ106CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IlVuYWJsZSB0byBjb25uZWN0IHNlcnZlciB0byBnZXQgdGFibGVzcGFjZS4i KQogCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHRlYXJEb3duQ2xhc3Mo Y2xzKToKLSAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSB0 YWJsZXNwYWNlcyxzZXJ2ZXIgYW5kIHBhcmVudF9pZCBmaWxlIiIiCisgICAg ICAgIGRiX293bmVyID0gc2VydmVyX3Jlc3BvbnNlWydkYXRhJ11bJ3VzZXIn XVsnbmFtZSddCisgICAgICAgIHRhYmxlX3NwYWNlX3BhdGggPSBzZWxmLnNl cnZlclsndGFibGVzcGFjZV9wYXRoJ10KKyAgICAgICAgZGF0YSA9IHRhYmxl c3BhY2VfdXRpbHMuZ2V0X3RhYmxlc3BhY2VfZGF0YSgKKyAgICAgICAgICAg IHRhYmxlX3NwYWNlX3BhdGgsIGRiX293bmVyKQorICAgICAgICBzZWxmLnRh Ymxlc3BhY2VfbmFtZSA9IGRhdGFbJ25hbWUnXQorICAgICAgICByZXNwb25z ZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBzZWxmLnVybCAr IHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nCisgICAgICAgICAgICAr IHN0cihzZXJ2ZXJfaWQpICsgJy8nLAorICAgICAgICAgICAgZGF0YT1qc29u LmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5z dGF0dXNfY29kZSwgMjAwKQorICAgICAgICByZXNwb25zZV9kYXRhID0ganNv bi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAg ICAgdGFibGVzcGFjZV9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lk J10KKyAgICAgICAgdGFibGVzcGFjZV9kaWN0ID0geyJ0YWJsZXNwYWNlX2lk IjogdGFibGVzcGFjZV9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICJ0YWJsZXNwYWNlX25hbWUiOiBzZWxmLnRhYmxlc3BhY2VfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICJzZXJ2ZXJfaWQiOiBzZXJ2ZXJf aWR9CisgICAgICAgIHV0aWxzLndyaXRlX25vZGVfaW5mbyh0YWJsZXNwYWNl X2lkLCAidHNpZCIsIHRhYmxlc3BhY2VfZGljdCkKIAotICAgICAgICB0YWJs ZXNwYWNlX3V0aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShjbHMudGVzdGVyKQot ICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVy KQotICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorICAg IGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRo aXMgZnVuY3Rpb24gZGVsZXRlIHRoZSB0YWJsZXNwYWNlIGZyb20gc2VydmVy IGFkZGVkIGluIFNRTGl0ZSBhbmQKKyAgICAgICAgY2xlYXJzIHRoZSBub2Rl X2luZm9fZGljdAorICAgICAgICAiIiIKKyAgICAgICAgY29ubmVjdGlvbiA9 IHV0aWxzLmdldF9kYl9jb25uZWN0aW9uKHNlbGYuc2VydmVyWydkYiddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ3VzZXJuYW1lJ10sCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnZGJfcGFz c3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn cG9ydCddKQorICAgICAgICB0YWJsZXNwYWNlX3V0aWxzLmRlbGV0ZV90YWJs ZXNwYWNlKGNvbm5lY3Rpb24sIHNlbGYudGFibGVzcGFjZV9uYW1lKQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19kZWxldGUucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2RlbGV0ZS5weQppbmRleCBm MjgwZWU2Li42MDViNmFmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90 ZXN0X3Ric3BjX2RlbGV0ZS5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0 X3Ric3BjX2RlbGV0ZS5weQpAQCAtNiwxMSArNiwxMyBAQAogIyBUaGlzIHNv ZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2Vu Y2UKICMKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KK2Zyb20gX19mdXR1 cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB1dWlkCitpbXBv cnQganNvbgogCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJh c2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rf dXRpbHMgYXMgdXRpbHMKLWZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgc2VydmVyX3V0 aWxzCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRlc3Rfc2VydmVyX2RpY3QK IGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdGFibGVzcGFjZV91dGlscwogCiAK QEAgLTIyLDM3ICsyNCwzOSBAQCBjbGFzcyBUYWJsZVNwYWNlRGVsZXRlVGVz dENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAoJ0NoZWNrIFRh Ymxlc3BhY2UgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNl L29iai8nKSkKICAgICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYg c2V0VXBDbGFzcyhjbHMpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBm dW5jdGlvbiB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIKLQotICAgICAgICA6cmV0 dXJuOiBOb25lCi0gICAgICAgICIiIgotCi0gICAgICAgICMgQWRkIHRoZSBz ZXJ2ZXIKLSAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIoY2xzLnRl c3RlcikKLQotICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCi0gICAgICAg IGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xzLnNlcnZlcl9ncm91 cCwgY2xzLnNlcnZlcl9pZHMgPSBcCi0gICAgICAgICAgICBzZXJ2ZXJfdXRp bHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKLQotICAgICAgICBpZiBs ZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgotICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29ubmVjdGVk IHRvIGFkZCB0aGUgcm9sZXMhISEiKQotCi0gICAgICAgICMgQWRkIHRhYmxl c3BhY2UKLSAgICAgICAgdGFibGVzcGFjZV91dGlscy5hZGRfdGFibGVfc3Bh Y2UoY2xzLnRlc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2Vy dmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcykKKyAgICBkZWYgc2V0VXAoc2Vs Zik6CisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9w YXRoJ11cCisgICAgICAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxl c3BhY2VfcGF0aCddIGlzIE5vbmU6CisgICAgICAgICAgICBtZXNzYWdlID0g IlNraXBwZWQgdGFibGVzcGFjZSBkZWxldGUgdGVzdCBjYXNlLiBUYWJsZXNw YWNlIHBhdGgiIFwKKyAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBjb25m aWd1cmVkIGZvciBzZXJ2ZXI6ICVzIiAlIHNlbGYuc2VydmVyWyduYW1lJ10K KyAgICAgICAgICAgICMgU2tpcCB0aGUgdGVzdCBjYXNlIGlmIHRhYmxlc3Bh Y2VfcGF0aCBub3QgZm91bmQuCisgICAgICAgICAgICBzZWxmLnNraXBUZXN0 KG1lc3NhZ2UpCisgICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lID0gInRh Ymxlc3BhY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0K KyAgICAgICAgc2VsZi50YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV91dGls cy5jcmVhdGVfdGFibGVzcGFjZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVy LCBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKIAogICAgIGRlZiBydW5UZXN0KHNl bGYpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRlc3RzIHRoZSBkZWxl dGUgdGFibGUgc3BhY2Ugc2NlbmFyaW8iIiIKLQotICAgICAgICB0YWJsZXNw YWNlX3V0aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShzZWxmLnRlc3RlcikKLQot ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiB0ZWFyRG93bkNsYXNzKGNscyk6 Ci0gICAgICAgICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgc2VydmVy IGFuZCBwYXJlbnQgaWQgZmlsZSIiIgorICAgICAgICAiIiJUaGlzIGZ1bmN0 aW9uIHRlc3RzIHRoZSBkZWxldGUgdGFibGUgc3BhY2UgYXBpIiIiCisgICAg ICAgIHNlcnZlcl9pZCA9IHRlc3Rfc2VydmVyX2RpY3RbInNlcnZlciJdWzBd WyJzZXJ2ZXJfaWQiXQorICAgICAgICB0YWJsZXNwYWNlX2NvdW50ID0gdGFi bGVzcGFjZV91dGlscy52ZXJpZnlfdGFibGVfc3BhY2UoCisgICAgICAgICAg ICBzZWxmLnNlcnZlciwgc2VsZi50YWJsZXNwYWNlX25hbWUpCisgICAgICAg IGlmIHRhYmxlc3BhY2VfY291bnQgPT0gMDoKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiTm8gdGFibGVzcGFjZShzKSB0byBkZWxldGUhISEiKQor CisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZGVsZXRlKHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKyAnLycgKyBzdHIoc2VydmVyX2lk KSArICcvJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICArIHN0cihzZWxmLnRhYmxlc3BhY2VfaWQpLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisgICAgICAgIGRlbGV0ZV9yZXNwb25zZV9kYXRhID0ganNv bi5sb2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMoZGVsZXRlX3Jlc3BvbnNlX2RhdGFbJ3N1 Y2Nlc3MnXSwgMSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAg ICAgIiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSB0YWJsZXNwYWNlIiIi CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsn aG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgdGFibGVz cGFjZV91dGlscy5kZWxldGVfdGFibGVzcGFjZShjb25uZWN0aW9uLCBzZWxm LnRhYmxlc3BhY2VfbmFtZSkKIAotICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVs ZXRlX3NlcnZlcihjbHMudGVzdGVyKQotICAgICAgICB1dGlscy5kZWxldGVf cGFyZW50X2lkX2ZpbGUoKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMv dGVzdF90YnNwY19nZXQucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3Bj X2dldC5weQppbmRleCBiMjZkNzFkLi40ZjMwZWQ2IDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJs ZXNwYWNlcy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weQorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNl cy90ZXN0cy90ZXN0X3Ric3BjX2dldC5weQpAQCAtNiw5ICs2LDExIEBACiAj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVT UUwgTGljZW5jZQogIwogIyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKK2ltcG9y dCB1dWlkCiAKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgdGVzdF91 dGlscyBhcyB1dGlscworZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0X3Nl cnZlcl9kaWN0CiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIHNlcnZlcl91dGlscwog ZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0YWJsZXNwYWNlX3V0aWxzCiAKQEAg LTIxLDU4ICsyMywzOSBAQCBjbGFzcyBUYWJsZXNwYWNlR2V0VGVzdENhc2Uo QmFzZVRlc3RHZW5lcmF0b3IpOgogICAgICAgICAoJ0NoZWNrIFRhYmxlc3Bh Y2UgTm9kZScsIGRpY3QodXJsPScvYnJvd3Nlci90YWJsZXNwYWNlL29iai8n KSkKICAgICBdCiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgc2V0VXBD bGFzcyhjbHMpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlv biB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIKLQotICAgICAgICA6cmV0dXJuOiBO b25lCi0gICAgICAgICIiIgotCi0gICAgICAgICMgQWRkIHRoZSBzZXJ2ZXIK LSAgICAgICAgc2VydmVyX3V0aWxzLmFkZF9zZXJ2ZXIoY2xzLnRlc3RlcikK LQotICAgICAgICAjIENvbm5lY3QgdG8gc2VydmVyCi0gICAgICAgIGNscy5z ZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwgY2xzLnNlcnZlcl9ncm91cCwgY2xz LnNlcnZlcl9pZHMgPSBcCi0gICAgICAgICAgICBzZXJ2ZXJfdXRpbHMuY29u bmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikKLQotICAgICAgICBpZiBsZW4oY2xz LnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlKSA9PSAwOgotICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2ZXIocykgY29ubmVjdGVkIHRvIGFk ZCB0aGUgcm9sZXMhISEiKQotCi0gICAgICAgICMgQWRkIHRhYmxlc3BhY2UK LSAgICAgICAgdGFibGVzcGFjZV91dGlscy5hZGRfdGFibGVfc3BhY2UoY2xz LnRlc3RlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlLAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHMuc2VydmVyX2dy b3VwLCBjbHMuc2VydmVyX2lkcykKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIGlmIG5vdCBzZWxmLnNlcnZlclsndGFibGVzcGFjZV9wYXRoJ11c CisgICAgICAgICAgICAgICAgb3Igc2VsZi5zZXJ2ZXJbJ3RhYmxlc3BhY2Vf cGF0aCddIGlzIE5vbmU6CisgICAgICAgICAgICBtZXNzYWdlID0gIlNraXBw ZWQgdGFibGVzcGFjZSBnZXQgdGVzdCBjYXNlLiBUYWJsZXNwYWNlIHBhdGgi IFwKKyAgICAgICAgICAgICAgICAgICAgICAiIG5vdCBjb25maWd1cmVkIGZv ciBzZXJ2ZXI6ICVzIiAlIHNlbGYuc2VydmVyWyduYW1lJ10KKyAgICAgICAg ICAgICMgU2tpcCB0aGUgdGVzdCBjYXNlIGlmIHRhYmxlc3BhY2VfcGF0aCBu b3QgZm91bmQuCisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3NhZ2Up CisgICAgICAgIHNlbGYudGFibGVzcGFjZV9uYW1lID0gInRhYmxlc3BhY2Vf ZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6Nl0KKyAgICAgICAg c2VsZi50YWJsZXNwYWNlX2lkID0gdGFibGVzcGFjZV91dGlscy5jcmVhdGVf dGFibGVzcGFjZSgKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLnRh Ymxlc3BhY2VfbmFtZSkKIAogICAgIGRlZiBydW5UZXN0KHNlbGYpOgogICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHRlc3QgdGhlIGdldCB0YWJsZSBzcGFj ZSBzY2VuYXJpbyIiIgotCi0gICAgICAgIHRhYmxlc3BhY2VfaWRzX2RpY3Qg PSBOb25lCi0gICAgICAgIGFsbF9pZCA9IHV0aWxzLmdldF9pZHMoKQotICAg ICAgICBzZXJ2ZXJfaWRzID0gYWxsX2lkWyJzaWQiXQotICAgICAgICBpZiAi dHNpZCIgaW4gYWxsX2lkIGFuZCBhbGxfaWRbInRzaWQiXToKLSAgICAgICAg ICAgIHRhYmxlc3BhY2VfaWRzX2RpY3QgPSBhbGxfaWRbInRzaWQiXVswXQot Ci0gICAgICAgIGlmIHRhYmxlc3BhY2VfaWRzX2RpY3Q6Ci0gICAgICAgICAg ICBmb3Igc2VydmVyX2lkIGluIHNlcnZlcl9pZHM6Ci0gICAgICAgICAgICAg ICAgdGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2VfaWRzX2RpY3RbaW50KHNl cnZlcl9pZCldCi0gICAgICAgICAgICAgICAgc2VydmVyX3Jlc3BvbnNlID0g c2VydmVyX3V0aWxzLnZlcmlmeV9zZXJ2ZXIoc2VsZi50ZXN0ZXIsCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlcnZlcl9pZCkKLSAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfcmVz cG9uc2VbJ2RhdGEnXVsnY29ubmVjdGVkJ106Ci0gICAgICAgICAgICAgICAg ICAgIHRhYmxlc3BhY2VfdXRpbHMudmVyaWZ5X3RhYmxlX3NwYWNlKAotICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0ZXIsIHV0aWxzLlNFUlZF Ul9HUk9VUCwgc2VydmVyX2lkLCB0YWJsZXNwYWNlX2lkKQotICAgICAgICAg ICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKLSAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgICAgICAgICAgICAgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGFibGVzcGFjZV9pZCksCi0gICAgICAgICAgICAgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCi0gICAgICAgICAgICAgICAg ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAy MDApCi0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFz cyhjbHMpOgotICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhl IHRhYmxlc3BhY2VzLHNlcnZlciBhbmQgcGFyZW50IGlkIGZpbGUiIiIKLQot ICAgICAgICB0YWJsZXNwYWNlX3V0aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShj bHMudGVzdGVyKQotICAgICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZl cihjbHMudGVzdGVyKQotICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lk X2ZpbGUoKQorICAgICAgICBzZXJ2ZXJfaWQgPSB0ZXN0X3NlcnZlcl9kaWN0 WyJzZXJ2ZXIiXVswXVsic2VydmVyX2lkIl0KKyAgICAgICAgc2VydmVyX3Jl c3BvbnNlID0gc2VydmVyX3V0aWxzLmNvbm5lY3Rfc2VydmVyKHNlbGYsIHNl cnZlcl9pZCkKKyAgICAgICAgaWYgbm90IHNlcnZlcl9yZXNwb25zZVsnZGF0 YSddWydjb25uZWN0ZWQnXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv bigiVW5hYmxlIHRvIGNvbm5lY3Qgc2VydmVyIHRvIGdldCB0YWJsZXNwYWNl LiIpCisKKyAgICAgICAgdGFibGVzcGFjZV9jb3VudCA9IHRhYmxlc3BhY2Vf dXRpbHMudmVyaWZ5X3RhYmxlX3NwYWNlKAorICAgICAgICAgICAgc2VsZi5z ZXJ2ZXIsIHNlbGYudGFibGVzcGFjZV9uYW1lKQorICAgICAgICBpZiB0YWJs ZXNwYWNlX2NvdW50ID09IDA6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIk5vIHRhYmxlc3BhY2UocykgdG8gdXBkYXRlISEhIikKKyAgICAgICAg cmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5nZXQoCisgICAgICAgICAgICBzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAg ICAgICAgIHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYudGFibGVz cGFjZV9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19j b2RlLCAyMDApCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAg ICIiIlRoaXMgZnVuY3Rpb24gZGVsZXRlIHRoZSB0YWJsZXNwYWNlIGZyb20g YWRkZWQgc2VydmVyIiIiCisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5n ZXRfZGJfY29ubmVjdGlvbihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkK KyAgICAgICAgdGFibGVzcGFjZV91dGlscy5kZWxldGVfdGFibGVzcGFjZShj b25uZWN0aW9uLCBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Rh Ymxlc3BhY2VzL3Rlc3RzL3Rlc3RfdGJzcGNfcHV0LnB5IGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMv dGVzdHMvdGVzdF90YnNwY19wdXQucHkKaW5kZXggMjIyNTdmOS4uYjVlMTk4 NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19wdXQu cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdGVzdF90YnNwY19wdXQucHkKQEAg LTgsMTEgKzgsMTEgQEAKICMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKIGlt cG9ydCBqc29uCitpbXBvcnQgdXVpZAogCiBmcm9tIHBnYWRtaW4udXRpbHMu cm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCiBmcm9tIHJlZ3Jlc3Np b24gaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKLWZyb20gcGdhZG1pbi5i cm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50ZXN0cyBpbXBvcnQgdXRp bHMgYXMgc2VydmVyX3V0aWxzCi1mcm9tIHRlc3Rfc2V0dXAgaW1wb3J0IGFk dmFuY2VkX2NvbmZpZ19kYXRhCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHRl c3Rfc2VydmVyX2RpY3QKIGZyb20gLiBpbXBvcnQgdXRpbHMgYXMgdGFibGVz cGFjZV91dGlscwogCiAKQEAgLTI0LDY3ICsyNCw0MCBAQCBjbGFzcyBUYWJs ZVNwYWNlVXBkYXRlVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICAoJ0NoZWNrIFRhYmxlc3BhY2UgTm9kZScsIGRpY3QodXJsPScvYnJv d3Nlci90YWJsZXNwYWNlL29iai8nKSkKICAgICBdCiAKLSAgICBAY2xhc3Nt ZXRob2QKLSAgICBkZWYgc2V0VXBDbGFzcyhjbHMpOgotICAgICAgICAiIiIK LSAgICAgICAgVGhpcyBmdW5jdGlvbiB1c2VkIHRvIGFkZCB0aGUgc2V2ZXIK LQotICAgICAgICA6cmV0dXJuOiBOb25lCi0gICAgICAgICIiIgotCi0gICAg ICAgICMgQWRkIHRoZSBzZXJ2ZXIKLSAgICAgICAgc2VydmVyX3V0aWxzLmFk ZF9zZXJ2ZXIoY2xzLnRlc3RlcikKLQotICAgICAgICAjIENvbm5lY3QgdG8g c2VydmVyCi0gICAgICAgIGNscy5zZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwg Y2xzLnNlcnZlcl9ncm91cCwgY2xzLnNlcnZlcl9pZHMgPSBcCi0gICAgICAg ICAgICBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoY2xzLnRlc3RlcikK LQotICAgICAgICBpZiBsZW4oY2xzLnNlcnZlcl9jb25uZWN0X3Jlc3BvbnNl KSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJObyBTZXJ2 ZXIocykgY29ubmVjdGVkIHRvIGFkZCB0aGUgcm9sZXMhISEiKQotCi0gICAg ICAgICMgQWRkIHRhYmxlc3BhY2UKLSAgICAgICAgdGFibGVzcGFjZV91dGls cy5hZGRfdGFibGVfc3BhY2UoY2xzLnRlc3RlciwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xzLnNlcnZlcl9jb25uZWN0 X3Jlc3BvbnNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjbHMuc2VydmVyX2dyb3VwLCBjbHMuc2VydmVyX2lkcykKKyAg ICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIGlmIG5vdCBzZWxmLnNlcnZl clsndGFibGVzcGFjZV9wYXRoJ11cCisgICAgICAgICAgICAgICAgb3Igc2Vs Zi5zZXJ2ZXJbJ3RhYmxlc3BhY2VfcGF0aCddIGlzIE5vbmU6CisgICAgICAg ICAgICBtZXNzYWdlID0gIlNraXBwZWQgdGFibGVzcGFjZSBkZWxldGUgdGVz dCBjYXNlLiBUYWJsZXNwYWNlIHBhdGgiIFwKKyAgICAgICAgICAgICAgICAg ICAgICAiIG5vdCBjb25maWd1cmVkIGZvciBzZXJ2ZXI6ICVzIiAlIHNlbGYu c2VydmVyWyduYW1lJ10KKyAgICAgICAgICAgICMgU2tpcCB0aGUgdGVzdCBj YXNlIGlmIHRhYmxlc3BhY2VfcGF0aCBub3QgZm91bmQuCisgICAgICAgICAg ICBzZWxmLnNraXBUZXN0KG1lc3NhZ2UpCisgICAgICAgIHNlbGYudGFibGVz cGFjZV9uYW1lID0gInRhYmxlc3BhY2VfZGVsZXRlXyVzIiAlIHN0cih1dWlk LnV1aWQ0KCkpWzE6Nl0KKyAgICAgICAgc2VsZi50YWJsZXNwYWNlX2lkID0g dGFibGVzcGFjZV91dGlscy5jcmVhdGVfdGFibGVzcGFjZSgKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyLCBzZWxmLnRhYmxlc3BhY2VfbmFtZSkKIAogICAg IGRlZiBydW5UZXN0KHNlbGYpOgogICAgICAgICAiIiJUaGlzIGZ1bmN0aW9u IHRlc3RzIHRoZSB1cGRhdGUgdGFibGVzcGFjZSBkYXRhIHNjZW5hcmlvIiIi Ci0KLSAgICAgICAgdGFibGVzcGFjZV9pZHNfZGljdCA9IE5vbmUKLSAgICAg ICAgYWxsX2lkID0gdXRpbHMuZ2V0X2lkcygpCi0gICAgICAgIHNlcnZlcl9p ZHMgPSBhbGxfaWRbInNpZCJdCi0gICAgICAgIGlmICJ0c2lkIiBpbiBhbGxf aWQgYW5kIGFsbF9pZFsidHNpZCJdOgotICAgICAgICAgICAgdGFibGVzcGFj ZV9pZHNfZGljdCA9IGFsbF9pZFsidHNpZCJdWzBdCi0KLSAgICAgICAgaWYg dGFibGVzcGFjZV9pZHNfZGljdDoKLSAgICAgICAgICAgIGZvciBzZXJ2ZXJf aWQgaW4gc2VydmVyX2lkczoKLSAgICAgICAgICAgICAgICB0YWJsZXNwYWNl X2lkID0gdGFibGVzcGFjZV9pZHNfZGljdFtpbnQoc2VydmVyX2lkKV0KLSAg ICAgICAgICAgICAgICB0YWJsZXNwYWNlX3Jlc3BvbnNlID0gdGFibGVzcGFj ZV91dGlscy52ZXJpZnlfdGFibGVfc3BhY2UoCi0gICAgICAgICAgICAgICAg ICAgIHNlbGYudGVzdGVyLAotICAgICAgICAgICAgICAgICAgICB1dGlscy5T RVJWRVJfR1JPVVAsIHNlcnZlcl9pZCwKLSAgICAgICAgICAgICAgICAgICAg dGFibGVzcGFjZV9pZCkKLSAgICAgICAgICAgICAgICBpZiBsZW4odGFibGVz cGFjZV9yZXNwb25zZSkgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKCJObyB0YWJsZXNwYWNlKHMpIHRvIHVwZGF0ZSEhISIp Ci0KLSAgICAgICAgICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgICAg ICAgICAiZGVzY3JpcHRpb24iOiBhZHZhbmNlZF9jb25maWdfZGF0YVsidGJz cGNfdXBkYXRlX2RhdGEiXQotICAgICAgICAgICAgICAgICAgICBbImNvbW1l bnQiXSwKLSAgICAgICAgICAgICAgICAgICAgInRhYmxlX3NwYWNlX2lkIjog dGFibGVzcGFjZV9pZAotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg ICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKLSAgICAg ICAgICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCi0gICAgICAgICAgICAgICAgICAgIHN0cihzZXJ2ZXJf aWQpICsgJy8nICsgc3RyKAotICAgICAgICAgICAgICAgICAgICAgICAgdGFi bGVzcGFjZV9pZCksCi0gICAgICAgICAgICAgICAgICAgIGRhdGE9anNvbi5k dW1wcyhkYXRhKSwKLSAgICAgICAgICAgICAgICAgICAgZm9sbG93X3JlZGly ZWN0cz1UcnVlKQotCi0gICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh bHMocHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCi0KLSAgICBAY2xh c3NtZXRob2QKLSAgICBkZWYgdGVhckRvd25DbGFzcyhjbHMpOgotICAgICAg ICAiIiJUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIHRhYmxlc3BhY2VzLHNl cnZlciBhbmQgcGFyZW50IGlkIGZpbGUiIiIKLQotICAgICAgICB0YWJsZXNw YWNlX3V0aWxzLmRlbGV0ZV90YWJsZV9zcGFjZShjbHMudGVzdGVyKQotICAg ICAgICBzZXJ2ZXJfdXRpbHMuZGVsZXRlX3NlcnZlcihjbHMudGVzdGVyKQot ICAgICAgICB1dGlscy5kZWxldGVfcGFyZW50X2lkX2ZpbGUoKQorICAgICAg ICBzZXJ2ZXJfaWQgPSB0ZXN0X3NlcnZlcl9kaWN0WyJzZXJ2ZXIiXVswXVsi c2VydmVyX2lkIl0KKyAgICAgICAgdGFibGVzcGFjZV9jb3VudCA9IHRhYmxl c3BhY2VfdXRpbHMudmVyaWZ5X3RhYmxlX3NwYWNlKAorICAgICAgICAgICAg c2VsZi5zZXJ2ZXIsIHNlbGYudGFibGVzcGFjZV9uYW1lKQorICAgICAgICBp ZiB0YWJsZXNwYWNlX2NvdW50ID09IDA6CisgICAgICAgICAgICByYWlzZSBF eGNlcHRpb24oIk5vIHRhYmxlc3BhY2UocykgdG8gdXBkYXRlISEhIikKKwor ICAgICAgICBkYXRhID0geworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog IlRoaXMgaXMgdGVzdCBkZXNjcmlwdGlvbi4iLAorICAgICAgICAgICAgInRh YmxlX3NwYWNlX2lkIjogc2VsZi50YWJsZXNwYWNlX2lkCisgICAgICAgICAg ICB9CisgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgK KyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9V UCkgKyAnLycgKyBzdHIoc2VydmVyX2lkKSArICcvJworICAgICAgICAgICAg KyBzdHIoc2VsZi50YWJsZXNwYWNlX2lkKSwgZGF0YT1qc29uLmR1bXBzKGRh dGEpLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQorICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAg IiIiVGhpcyBmdW5jdGlvbiBkZWxldGVzIHRoZSB0YWJsZXNwYWNlIiIiCisg ICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihz ZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9z dCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5zZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAgdGFibGVzcGFj ZV91dGlscy5kZWxldGVfdGFibGVzcGFjZShjb25uZWN0aW9uLCBzZWxmLnRh Ymxlc3BhY2VfbmFtZSkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3Rlc3RzL3V0 aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdXRpbHMucHkKaW5kZXggNGZkMjFi ZC4uYzliNmE4YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdXRpbHMu cHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVzdHMvdXRpbHMucHkKQEAgLTksMTg3ICs5 LDExNCBAQAogCiBmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0 aW9uCiAKLWltcG9ydCBqc29uCiBpbXBvcnQgb3MKLWltcG9ydCBwaWNrbGUK IGltcG9ydCB1dWlkCiBpbXBvcnQgc3lzCiAKLWZyb20gcmVncmVzc2lvbi50 ZXN0X3NldHVwIGltcG9ydCBwaWNrbGVfcGF0aCwgY29uZmlnX2RhdGEsIFwK LSAgICBhZHZhbmNlZF9jb25maWdfZGF0YQotZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnRlc3RzIGltcG9ydCB1dGlscyBh cyBzZXJ2ZXJfdXRpbHMKKwogZnJvbSByZWdyZXNzaW9uIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCiAKIFRBQkxFX1NQQUNFX1VSTCA9ICcvYnJvd3Nl ci90YWJsZXNwYWNlL29iai8nCi0KLQotIyBUYWJsZXNwYWNlIHV0aWxpdHkK LWRlZiBnZXRfdGFibGVzcGFjZV9kYXRhKHNlcnZlcl9jb25uZWN0KToKLSAg ICAiIiJUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHRhYmxlc3BhY2UgZGF0 YSBmcm9tIGNvbmZpZyBmaWxlIiIiCi0KLSAgICBhZHZfY29uZmlnX2RhdGEg PSBOb25lCi0gICAgZGF0YSA9IE5vbmUKLSAgICBkYl91c2VyID0gc2VydmVy X2Nvbm5lY3RbJ2RhdGEnXVsndXNlciddWyduYW1lJ10KLSAgICBzZXJ2ZXJf Y29uZmlnX2RhdGEgPSBjb25maWdfZGF0YVsnc2VydmVyX2NyZWRlbnRpYWxz J10KLQotICAgICMgR2V0IHRoZSBjb25maWcgZGF0YSBvZiBhcHByb3ByaWF0 ZSBkYiB1c2VyCi0gICAgZm9yIGNvbmZpZ190ZXN0X2RhdGEgaW4gYWR2YW5j ZWRfY29uZmlnX2RhdGFbJ3RhYmxlc3BjX2NyZWRlbnRpYWxzJ106Ci0gICAg ICAgIGlmIGRiX3VzZXIgPT0gY29uZmlnX3Rlc3RfZGF0YVsnc3BjX3VzZXIn XToKLSAgICAgICAgICAgICMgQWRkIHRoZSB0YWJsZXNwYWNlIHBhdGggZnJv bSBzZXJ2ZXIgY29uZmlnCi0gICAgICAgICAgICBzZXJ2ZXJfY29uZmlnID0g KGl0ZW0gZm9yIGl0ZW0gaW4gc2VydmVyX2NvbmZpZ19kYXRhIGlmCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1bImRiX3VzZXJuYW1lIl0g PT0gZGJfdXNlcikubmV4dCgpCi0gICAgICAgICAgICBpZiAidGFibGVzcGFj ZV9wYXRoIiBpbiBzZXJ2ZXJfY29uZmlnOgotICAgICAgICAgICAgICAgIGNv bmZpZ190ZXN0X2RhdGFbJ3NwY19sb2NhdGlvbiddID0gc2VydmVyX2NvbmZp Z1sndGFibGVzcGFjZV9wYXRoJ10KLSAgICAgICAgICAgICAgICBhZHZfY29u ZmlnX2RhdGEgPSBjb25maWdfdGVzdF9kYXRhCi0gICAgICAgICAgICBlbHNl OgotICAgICAgICAgICAgICAgIGNvbmZpZ190ZXN0X2RhdGFbJ3NwY19sb2Nh dGlvbiddID0gTm9uZQotCi0gICAgaWYgYWR2X2NvbmZpZ19kYXRhIGlzIG5v dCBOb25lOgotICAgICAgICBkYXRhID0gewotICAgICAgICAgICAgIm5hbWUi OiBzdHIodXVpZC51dWlkNCgpKVsxOjhdLAotICAgICAgICAgICAgInNlY2xh YmVscyI6IGFkdl9jb25maWdfZGF0YVsic3BjX3NlY2xhYmxlIl0sCi0gICAg ICAgICAgICAic3BjYWNsIjogYWR2X2NvbmZpZ19kYXRhWyJzcGNfYWNsIl0s Ci0gICAgICAgICAgICAic3BjbG9jYXRpb24iOiBhZHZfY29uZmlnX2RhdGFb InNwY19sb2NhdGlvbiJdLAotICAgICAgICAgICAgInNwY29wdGlvbnMiOiBh ZHZfY29uZmlnX2RhdGFbInNwY19vcHRzIl0sCi0gICAgICAgICAgICAic3Bj dXNlciI6IGFkdl9jb25maWdfZGF0YVsic3BjX3VzZXIiXQotICAgICAgICB9 CitmaWxlX25hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKF9fZmlsZV9fKQorCisK K2RlZiBnZXRfdGFibGVzcGFjZV9kYXRhKHRhYmxlc3BhY2VfcGF0aCwgZGJf b3duZXIpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGFi bGVzcGFjZSBkYXRhIiIiCisgICAgZGF0YSA9IHsKKyAgICAgICAgIm5hbWUi OiAidGVzdF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdLAorICAgICAg ICAic2VjbGFiZWxzIjogW10sCisgICAgICAgICJzcGNhY2wiOiBbCisgICAg ICAgICAgICB7CisgICAgICAgICAgICAgICAgImdyYW50ZWUiOiBkYl9vd25l ciwKKyAgICAgICAgICAgICAgICAiZ3JhbnRvciI6IGRiX293bmVyLAorICAg ICAgICAgICAgICAgICJwcml2aWxlZ2VzIjogWworICAgICAgICAgICAgICAg ICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlX3R5 cGUiOiAiQyIsCisgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdl IjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoX2dyYW50 IjogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICAgIF0KKyAgICAgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAgICAgInNw Y2xvY2F0aW9uIjogdGFibGVzcGFjZV9wYXRoLAorICAgICAgICAic3Bjb3B0 aW9ucyI6IFtdLAorICAgICAgICAic3BjdXNlciI6IGRiX293bmVyCisgICAg fQogICAgIHJldHVybiBkYXRhCiAKIAotZGVmIHdyaXRlX3RhYmxlc3BhY2Vf aWQocmVzcG9uc2VfZGF0YSk6Ci0gICAgIiIiCi0gICAgVGhpcyBmdW5jdGlv biB3cml0ZSB0aGUgdGFibGUgc3BhY2UgaWQgdG8gcGFyZW50X2lkLnBrbAot Ci0gICAgOnBhcmFtIHJlc3BvbnNlX2RhdGE6IGNyZWF0ZSB0YWJsZSBzcGFj ZSBBUEkgcmVzcG9uc2UgZGF0YQotICAgIDp0eXBlIHJlc3BvbnNlX2RhdGE6 IGRpY3QKLSAgICA6cmV0dXJuOiBOb25lCi0gICAgIiIiCi0KLSAgICB0YWJs ZV9zcGFjZV9pZCA9IHJlc3BvbnNlX2RhdGFbJ25vZGUnXVsnX2lkJ10KLSAg ICBzZXJ2ZXJfaWQgPSByZXNwb25zZV9kYXRhWydub2RlJ11bJ19waWQnXQot ICAgIHBpY2tsZV9pZF9kaWN0ID0gdXRpbHMuZ2V0X3BpY2tsZV9pZF9kaWN0 KCkKLSAgICBpZiBvcy5wYXRoLmlzZmlsZShwaWNrbGVfcGF0aCk6Ci0gICAg ICAgIGV4aXN0aW5nX3NlcnZlcl9pZCA9IG9wZW4ocGlja2xlX3BhdGgsICdy YicpCi0gICAgICAgIHRvbF9zZXJ2ZXJfaWQgPSBwaWNrbGUubG9hZChleGlz dGluZ19zZXJ2ZXJfaWQpCi0gICAgICAgIHBpY2tsZV9pZF9kaWN0ID0gdG9s X3NlcnZlcl9pZAotICAgIGlmICd0c2lkJyBpbiBwaWNrbGVfaWRfZGljdDoK LSAgICAgICAgaWYgcGlja2xlX2lkX2RpY3RbJ3RzaWQnXToKLSAgICAgICAg ICAgICMgQWRkIHRoZSBkYl9pZCBhcyB2YWx1ZSBpbiBkaWN0Ci0gICAgICAg ICAgICBwaWNrbGVfaWRfZGljdFsidHNpZCJdWzBdLnVwZGF0ZSgKLSAgICAg ICAgICAgICAgICB7c2VydmVyX2lkOiB0YWJsZV9zcGFjZV9pZH0pCi0gICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICAjIENyZWF0ZSBuZXcgZGljdCB3aXRo IHNlcnZlcl9pZCBhbmQgZGJfaWQKLSAgICAgICAgICAgIHBpY2tsZV9pZF9k aWN0WyJ0c2lkIl0uYXBwZW5kKAotICAgICAgICAgICAgICAgIHtzZXJ2ZXJf aWQ6IHRhYmxlX3NwYWNlX2lkfSkKLSAgICBkYl9vdXRwdXQgPSBvcGVuKHBp Y2tsZV9wYXRoLCAnd2InKQotICAgIHBpY2tsZS5kdW1wKHBpY2tsZV9pZF9k aWN0LCBkYl9vdXRwdXQpCi0gICAgZGJfb3V0cHV0LmNsb3NlKCkKLQotCi1k ZWYgYWRkX3RhYmxlX3NwYWNlKHRlc3Rlciwgc2VydmVyX2Nvbm5lY3RfcmVz cG9uc2UsIHNlcnZlcl9ncm91cCwgc2VydmVyX2lkcyk6Ci0gICAgIiIiCi0g ICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGFkZCB0aGUgcm9sZXMgdG8g c2VydmVyCi0KLSAgICA6cGFyYW0gdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVu dAotICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBjbGllbnQgb2JqZWN0 Ci0gICAgOnBhcmFtIHNlcnZlcl9jb25uZWN0X3Jlc3BvbnNlOiBzZXJ2ZXIg Y29ubmVjdCBBUEkgcmVzcG9uc2UKLSAgICA6dHlwZSBzZXJ2ZXJfY29ubmVj dF9yZXNwb25zZTogZGljdAotICAgIDpwYXJhbSBzZXJ2ZXJfZ3JvdXA6IHNl cnZlciBncm91cAotICAgIDp0eXBlIHNlcnZlcl9ncm91cDogaW50Ci0gICAg OnBhcmFtIHNlcnZlcl9pZHM6IGxpc3Qgb2Ygc2VydmVyIGlkCi0gICAgOnR5 cGUgc2VydmVyX2lkczogbGlzdAotICAgIDpyZXR1cm46IE5vbmUKLSAgICAi IiIKLQotICAgIHRvdGFsX3NlcnZlcnNfY291bnQgPSBsZW4oc2VydmVyX2lk cykKLSAgICBzZXJ2ZXJzX3dpdGhvdXRfdGFibGVzcGFjZV9wYXRoID0gW10K LQotICAgIGZvciBzZXJ2ZXJfY29ubmVjdCwgc2VydmVyX2lkIGluIHppcChz ZXJ2ZXJfY29ubmVjdF9yZXNwb25zZSwKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2lkcyk6Ci0gICAgICAgIHRh Ymxlc3BhY2VfcGF0aCA9IHNlcnZlcl9jb25uZWN0Wyd0YWJsZXNwYWNlX3Bh dGgnXQotICAgICAgICAjIFNraXAgdGhlIHRlc3QgY2FzZSBpZiB0YWJsZXNw YWNlX3BhdGggZG9lcyBub3QgZXhpc3QKLSAgICAgICAgaWYgbm90IHRhYmxl c3BhY2VfcGF0aCBvciB0YWJsZXNwYWNlX3BhdGggaXMgTm9uZToKLSAgICAg ICAgICAgIGZpbGVfbmFtZSA9IG9zLnBhdGguYmFzZW5hbWUoCi0gICAgICAg ICAgICAgICAgc3lzLl9nZXRmcmFtZSgpLmZfYmFjay5mX2NvZGUuY29fZmls ZW5hbWUpCi0gICAgICAgICAgICBzZXJ2ZXJzX3dpdGhvdXRfdGFibGVzcGFj ZV9wYXRoLmFwcGVuZChzZXJ2ZXJfaWQpCi0gICAgICAgICAgICBpZiB0b3Rh bF9zZXJ2ZXJzX2NvdW50ID09IGxlbihzZXJ2ZXJzX3dpdGhvdXRfdGFibGVz cGFjZV9wYXRoKToKLSAgICAgICAgICAgICAgICBwcmludCgiU2tpcHBpbmcg dGFibGVzcGFjZXMgdGVzdCBjYXNlcyBmb3IgdGhlICBmaWxlIDx7MH0+LCAi Ci0gICAgICAgICAgICAgICAgICAgICAgIlRhYmxlc3BhY2UgcGF0aCBub3Qg Y29uZmlndXJlZCBmb3IgdGhlIHNlcnZlcnM6ICIKLSAgICAgICAgICAgICAg ICAgICAgICAiezF9Ii5mb3JtYXQoZmlsZV9uYW1lLCBzZXJ2ZXJfaWRzKSwg ZmlsZT1zeXMuc3RkZXJyKQotICAgICAgICAgICAgICAgIHJldHVybgotICAg ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCgiU2tpcHBp bmcgdGFibGVzcGFjZXMgdGVzdCBjYXNlIGZvciB0aGUgZmlsZSA8ezB9Pjog IgotICAgICAgICAgICAgICAgICAgICAgICJUYWJsZXNwYWNlIHBhdGggbm90 IGNvbmZpZ3VyZWQgZm9yIHNlcnZlcjogezF9Ii5mb3JtYXQoCi0gICAgICAg ICAgICAgICAgICAgICAgICBmaWxlX25hbWUsIHNlcnZlcl9pZCksIGZpbGU9 c3lzLnN0ZGVycikKLSAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAg ICAgIGlmIHNlcnZlcl9jb25uZWN0WydkYXRhJ11bJ2Nvbm5lY3RlZCddOgot ICAgICAgICAgICAgZGF0YSA9IGdldF90YWJsZXNwYWNlX2RhdGEoc2VydmVy X2Nvbm5lY3QpCi0gICAgICAgICAgICByZXNwb25zZSA9IHRlc3Rlci5wb3N0 KFRBQkxFX1NQQUNFX1VSTCArIHN0cihzZXJ2ZXJfZ3JvdXApICsgJy8nCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgc2VydmVyX2lk ICsgJy8nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKLSAgICAg ICAgICAgIGFzc2VydCByZXNwb25zZS5zdGF0dXNfY29kZSA9PSAyMDAKLSAg ICAgICAgICAgIHJlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRzKHJlc3BvbnNl LmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICAgICAgd3JpdGVfdGFi bGVzcGFjZV9pZChyZXNwb25zZV9kYXRhKQotCi0KLWRlZiB2ZXJpZnlfdGFi bGVfc3BhY2UodGVzdGVyLCBzZXJ2ZXJfZ3JvdXAsIHNlcnZlcl9pZCwgdGFi bGVzcGFjZV9pZCk6CitkZWYgY3JlYXRlX3RhYmxlc3BhY2Uoc2VydmVyLCB0 ZXN0X3RhYmxlc3BhY2VfbmFtZSk6CisgICAgdHJ5OgorICAgICAgICBjb25u ZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oc2VydmVyWydkYidd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCdd LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKKyAgICAgICAg b2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xl dmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgw KQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisg ICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJDUkVBVEUgVEFCTEVTUEFDRSAl cyBMT0NBVElPTiAnJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAg ICh0ZXN0X3RhYmxlc3BhY2VfbmFtZSwgc2VydmVyWyd0YWJsZXNwYWNlX3Bh dGgnXSkpCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZl bChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICBjb25uZWN0aW9uLmNv bW1pdCgpCisKKyAgICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVh dGVkIHRhYmxlc3BhY2UKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCisg ICAgICAgICAgICAiU0VMRUNUIHRzLm9pZCBmcm9tIHBnX3RhYmxlc3BhY2Ug dHMgV0hFUkUgdHMuc3BjbmFtZT0nJXMnIiAlCisgICAgICAgICAgICB0ZXN0 X3RhYmxlc3BhY2VfbmFtZSkKKyAgICAgICAgb2lkID0gcGdfY3Vyc29yLmZl dGNob25lKCkKKyAgICAgICAgdHNwY19pZCA9ICcnCisgICAgICAgIGlmIG9p ZDoKKyAgICAgICAgICAgIHRzcGNfaWQgPSBvaWRbMF0KKyAgICAgICAgY29u bmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiB0c3BjX2lkCisgICAg ZXhjZXB0IEV4Y2VwdGlvbiBhcyBleGNlcHRpb246CisgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiRXJyb3Igd2hpbGUgY3JlYXRpbmcgdGFibGVzcGFjZS4g JXMiICUgZXhjZXB0aW9uKQorCisKK2RlZiB2ZXJpZnlfdGFibGVfc3BhY2Uo c2VydmVyLCB0ZXN0X3RhYmxlc3BhY2VfbmFtZSk6CiAgICAgIiIiCiAgICAg VGhpcyBmdW5jdGlvbiBjYWxscyB0aGUgR0VUIEFQSSBmb3Igcm9sZSB0byB2 ZXJpZnkKLQotICAgIDpwYXJhbSB0ZXN0ZXI6IHRlc3QgY2xpZW50Ci0gICAg OnR5cGUgdGVzdGVyOiBmbGFzayB0ZXN0IGNsaWVudCBvYmplY3QKLSAgICA6 cGFyYW0gc2VydmVyX2dyb3VwOiBzZXJ2ZXIgZ3JvdXAgaWQKLSAgICA6dHlw ZSBzZXJ2ZXJfZ3JvdXA6IGludAotICAgIDpwYXJhbSBzZXJ2ZXJfaWQ6IHNl cnZlciBpZAotICAgIDp0eXBlIHNlcnZlcl9pZDogc3RyCi0gICAgOnBhcmFt IHRhYmxlc3BhY2VfaWQ6IHRhYmxlIHNwYWNlIGlkCi0gICAgOnR5cGUgdGFi bGVzcGFjZV9pZDogaW50Ci0gICAgOnJldHVybjogZGljdC9Ob25lCi0gICAg IiIiCi0KLSAgICBzcnZfY29ubmVjdCA9IHNlcnZlcl91dGlscy52ZXJpZnlf c2VydmVyKHRlc3Rlciwgc2VydmVyX2dyb3VwLCBzZXJ2ZXJfaWQpCi0gICAg aWYgc3J2X2Nvbm5lY3RbJ2RhdGEnXVsnY29ubmVjdGVkJ106Ci0gICAgICAg IHJlc3BvbnNlID0gdGVzdGVyLmdldCgKLSAgICAgICAgICAgICd7MH17MX0v ezJ9L3szfScuZm9ybWF0KFRBQkxFX1NQQUNFX1VSTCwgc2VydmVyX2dyb3Vw LCBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0YWJsZXNwYWNlX2lkKSwKLSAgICAgICAgICAgIGNvbnRlbnRfdHlw ZT0naHRtbC9qc29uJykKLSAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1 c19jb2RlID09IDIwMAotICAgICAgICB0ZW1wX3Jlc3BvbnNlID0ganNvbi5s b2FkcyhyZXNwb25zZS5kYXRhLmRlY29kZSgndXRmLTgnKSkKLSAgICAgICAg cmV0dXJuIHRlbXBfcmVzcG9uc2UKLSAgICBlbHNlOgotICAgICAgICByZXR1 cm4gTm9uZQotCi0KLWRlZiBkZWxldGVfdGFibGVfc3BhY2UodGVzdGVyKToK KyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIgaW5mbworICAgIDp0eXBlIHNl cnZlcjogZGljdAorICAgIDpwYXJhbSB0ZXN0X3RhYmxlc3BhY2VfbmFtZTog dGFibGVzcGFjZSBuYW1lCisgICAgOnR5cGUgdGVzdF90YWJsZXNwYWNlX25h bWU6IHN0cgorICAgIDpyZXR1cm4gdGFibGVzcGFjZV9jb3VudDogdGFibGVz cGFjZSBjb3VudAorICAgIDpydHlwZTogaW50CiAgICAgIiIiCi0gICAgVGhp cyBmdW5jdGlvbiB1c2UgdG8gZGVsZXRlIHRoZSBleGlzdGluZyB0YWJsZXNw YWNlIGluIHRoZSBzZXJ2ZXJzCi0KLSAgICA6cGFyYW0gdGVzdGVyOiBmbGFz ayB0ZXN0IGNsaWVudAotICAgIDp0eXBlIHRlc3RlcjogZmxhc2sgdGVzdCBv YmplY3QKLSAgICA6cmV0dXJuOiBOb25lCi0gICAgIiIiCi0KLSAgICBhbGxf aWQgPSB1dGlscy5nZXRfaWRzKCkKLSAgICBzZXJ2ZXJfaWRzID0gYWxsX2lk WyJzaWQiXQotICAgIGlmICJ0c2lkIiBpbiBhbGxfaWQgYW5kIGFsbF9pZFsi dHNpZCJdOgotICAgICAgICB0YWJsZXNwYWNlX2lkc19kaWN0ID0gYWxsX2lk WyJ0c2lkIl1bMF0KLSAgICBlbHNlOgotICAgICAgICB0YWJsZXNwYWNlX2lk c19kaWN0ID0gTm9uZQotCi0gICAgaWYgdGFibGVzcGFjZV9pZHNfZGljdCBp cyBub3QgTm9uZToKLSAgICAgICAgZm9yIHNlcnZlcl9pZCBpbiBzZXJ2ZXJf aWRzOgotICAgICAgICAgICAgdGFibGVzcGFjZV9pZCA9IHRhYmxlc3BhY2Vf aWRzX2RpY3RbaW50KHNlcnZlcl9pZCldCi0gICAgICAgICAgICByb2xlX3Jl c3BvbnNlID0gdmVyaWZ5X3RhYmxlX3NwYWNlKHRlc3RlciwgdXRpbHMuU0VS VkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZXJ2ZXJfaWQsCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlc3BhY2VfaWQpCi0g ICAgICAgICAgICBpZiBsZW4ocm9sZV9yZXNwb25zZSkgPT0gMDoKLSAgICAg ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIk5vIHRhYmxlc3BhY2Uocykg dG8gZGVsZXRlISEhIikKLSAgICAgICAgICAgIHJlc3BvbnNlID0gdGVzdGVy LmRlbGV0ZSgKLSAgICAgICAgICAgICAgICBUQUJMRV9TUEFDRV9VUkwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCi0gICAgICAgICAgICAg ICAgc3RyKHNlcnZlcl9pZCkgKyAnLycgKyBzdHIodGFibGVzcGFjZV9pZCks Ci0gICAgICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlKQotICAg ICAgICAgICAgYXNzZXJ0IHJlc3BvbnNlLnN0YXR1c19jb2RlID09IDIwMAot ICAgICAgICAgICAgZGVsZXRlX3Jlc3BvbnNlX2RhdGEgPSBqc29uLmxvYWRz KHJlc3BvbnNlLmRhdGEuZGVjb2RlKCd1dGYtOCcpKQotICAgICAgICAgICAg YXNzZXJ0IGRlbGV0ZV9yZXNwb25zZV9kYXRhWydzdWNjZXNzJ10gPT0gMQor ICAgIHRyeToKKyAgICAgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdldF9kYl9j b25uZWN0aW9uKHNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydwb3J0J10pCisgICAgICAgIHBnX2N1cnNvciA9IGNvbm5lY3Rpb24u Y3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoIlNFTEVDVCAq IEZST00gcGdfdGFibGVzcGFjZSB0cyBXSEVSRSIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIiB0cy5zcGNuYW1lPSclcyciICUgdGVzdF90YWJsZXNw YWNlX25hbWUpCisgICAgICAgIHRhYmxlc3BhY2VfY291bnQgPSBsZW4ocGdf Y3Vyc29yLmZldGNoYWxsKCkpCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2Uo KQorICAgICAgICByZXR1cm4gdGFibGVzcGFjZV9jb3VudAorICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZXhjZXB0aW9uOgorICAgICAgICBleGNlcHRpb24g PSAiJXM6IGxpbmU6JXMgJXMiICUgKAorICAgICAgICAgICAgZmlsZV9uYW1l LCBzeXMuZXhjX3RyYWNlYmFjay50Yl9saW5lbm8sIGV4Y2VwdGlvbikKKyAg ICAgICAgcHJpbnQoZXhjZXB0aW9uLCBmaWxlPXN5cy5zdGRlcnIpCisKKwor ZGVmIGRlbGV0ZV90YWJsZXNwYWNlKGNvbm5lY3Rpb24sIHRlc3RfdGFibGVz cGFjZV9uYW1lKToKKyAgICB0cnk6CisgICAgICAgIHBnX2N1cnNvciA9IGNv bm5lY3Rpb24uY3Vyc29yKCkKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUo IlNFTEVDVCAqIEZST00gcGdfdGFibGVzcGFjZSB0cyBXSEVSRSIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIiB0cy5zcGNuYW1lPSclcyciICUgdGVz dF90YWJsZXNwYWNlX25hbWUpCisgICAgICAgIHRhYmxlc3BhY2VfY291bnQg PSBsZW4ocGdfY3Vyc29yLmZldGNoYWxsKCkpCisgICAgICAgIGlmIHRhYmxl c3BhY2VfY291bnQ6CisgICAgICAgICAgICBvbGRfaXNvbGF0aW9uX2xldmVs ID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAgIGNv bm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUoIkRST1AgVEFCTEVTUEFDRSAlcyIgJSB0ZXN0 X3RhYmxlc3BhY2VfbmFtZSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0 X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAg ICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICBjb25uZWN0aW9u LmNsb3NlKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoK KyAgICAgICAgZXhjZXB0aW9uID0gIiVzOiBsaW5lOiVzICVzIiAlICgKKyAg ICAgICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGlu ZW5vLCBleGNlcHRpb24pCisgICAgICAgIHByaW50KGV4Y2VwdGlvbiwgZmls ZT1zeXMuc3RkZXJyKQorICAgICAgICByYWlzZSBFeGNlcHRpb24oZXhjZXB0 aW9uKQpkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vX19pbml0X18ucHkg Yi93ZWIvcmVncmVzc2lvbi9fX2luaXRfXy5weQppbmRleCBjMDAxYmU2Li42 YjdjYjJmIDEwMDY0NAotLS0gYS93ZWIvcmVncmVzc2lvbi9fX2luaXRfXy5w eQorKysgYi93ZWIvcmVncmVzc2lvbi9fX2luaXRfXy5weQpAQCAtNiwyOSAr NiwzMiBAQAogIyAjVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCiAjCiAjICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9n cm91cHMuc2VydmVycy5yb2xlcy50ZXN0cy51dGlscyBhcyByb2xlc191dGls cworaW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMudGFibGVzcGFjZXMudGVzdHMudXRpbHMgYXMgXAorICAgIHRhYmxlc3Bh Y2VfdXRpbHMKIAogZ2xvYmFsIG5vZGVfaW5mb19kaWN0CiBub2RlX2luZm9f ZGljdCA9IHsKLSAgICAgICAgInNpZCI6IFtdLCAgIyBzZXJ2ZXIKLSAgICAg ICAgImRpZCI6IFtdLCAgIyBkYXRhYmFzZQotICAgICAgICAibHJpZCI6IFtd LCAgIyByb2xlCi0gICAgICAgICJ0c2lkIjogW10sICAjIHRhYmxlc3BhY2UK LSAgICAgICAgInNjaWQiOiBbXSwgICMgc2NoZW1hCi0gICAgICAgICJ0Zm5p ZCI6IFtdLCAgIyB0cmlnZ2VyIGZ1bmN0aW9ucwotICAgICAgICAiY29pZCI6 IFtdLCAgIyBjb2xsYXRpb24KLSAgICAgICAgImNpZCI6IFtdLCAgIyBjYXN0 cwotICAgICAgICAiZXRpZCI6IFtdLCAjIGV2ZW50X3RyaWdnZXIKLSAgICAg ICAgImVpZCI6IFtdLCAgIyBleHRlbnNpb24KLSAgICAgICAgImZpZCI6IFtd LCAgIyBGRFcKLSAgICAgICAgImZzaWQiOiBbXSwgICMgRlJTCi0gICAgICAg ICJ1bWlkIjogW10sICAjIHVzZXJfbWFwcGluZwotICAgICAgICAic2VpZCI6 IFtdICAjIHNlcXVlbmNlCisgICAgInNpZCI6IFtdLCAgIyBzZXJ2ZXIKKyAg ICAiZGlkIjogW10sICAjIGRhdGFiYXNlCisgICAgImxyaWQiOiBbXSwgICMg cm9sZQorICAgICJ0c2lkIjogW10sICAjIHRhYmxlc3BhY2UKKyAgICAic2Np ZCI6IFtdLCAgIyBzY2hlbWEKKyAgICAidGZuaWQiOiBbXSwgICMgdHJpZ2dl ciBmdW5jdGlvbnMKKyAgICAiY29pZCI6IFtdLCAgIyBjb2xsYXRpb24KKyAg ICAiY2lkIjogW10sICAjIGNhc3RzCisgICAgImV0aWQiOiBbXSwgICMgZXZl bnRfdHJpZ2dlcgorICAgICJlaWQiOiBbXSwgICMgZXh0ZW5zaW9uCisgICAg ImZpZCI6IFtdLCAgIyBGRFcKKyAgICAiZnNpZCI6IFtdLCAgIyBGUlMKKyAg ICAidW1pZCI6IFtdLCAgIyB1c2VyX21hcHBpbmcKKyAgICAic2VpZCI6IFtd ICAjIHNlcXVlbmNlCiB9CiAKIGdsb2JhbCB0ZXN0X3NlcnZlcl9kaWN0CiB0 ZXN0X3NlcnZlcl9kaWN0ID0gewotICAgICAgICAic2VydmVyIjogW10sCi0g ICAgICAgICJkYXRhYmFzZSI6IFtdLAotICAgICAgICAidGFibGVzcGFjZSI6 IFtdLAotICAgICAgICAicm9sZSI6IFtdCi19ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQorICAgICJzZXJ2ZXIiOiBbXSwKKyAgICAiZGF0YWJhc2Ui OiBbXSwKKyAgICAidGFibGVzcGFjZSI6IFtdLAorICAgICJyb2xlIjogW10K K30KZGlmZiAtLWdpdCBhL3dlYi9yZWdyZXNzaW9uL3J1bnRlc3RzLnB5IGIv d2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKaW5kZXggNjc4YWRjOC4uODY1 NWJhMCAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkK KysrIGIvd2ViL3JlZ3Jlc3Npb24vcnVudGVzdHMucHkKQEAgLTE4MiwxNCAr MTgyLDEyIEBAIGRlZiBnZXRfdGVzdHNfcmVzdWx0KHRlc3Rfc3VpdGUpOgog ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY2FzZVswXSkuc3BsaXQo Jy4nKVstMV0uc3BsaXQoKVswXS5zdHJpcCgnKScpCiAgICAgICAgICAgICAg ICAgICAgIGlmIGNsYXNzX25hbWUgbm90IGluIGZhaWxlZF9jYXNlc19yZXN1 bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWRfY2FzZXNfcmVz dWx0LmFwcGVuZChjbGFzc19uYW1lKQotICAgICAgICAgICAgICAgICAgICAg ICAgIyBUT0RPOiBDb2RlIHJlbWFpbmluZyB0byBjb3VudCB0aGUgc2tpcHBl ZCB0ZXN0IGNhc2VzCi0gICAgICAgICAgICAgICAgICAgICAgICAjIGlmIHRl c3Rfc3VpdGUuc2tpcHBlZDoKLSAgICAgICAgICAgICAgICAgICAgICAgICMg ICAgIGZvciBza2lwX3Rlc3QgaW4gdGVzdF9zdWl0ZS5za2lwcGVkOgotICAg ICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIGNsYXNzX25hbWUgPSBz dHIoCi0gICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICBza2lw X3Rlc3RbMF0pLnNwbGl0KCcuJylbLTFdLnNwbGl0KClbMF0uc3RyaXAoJykn KQotICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgIGlmIGNsYXNz X25hbWUgbm90IGluIGZhaWxlZF9jYXNlc19yZXN1bHQ6Ci0gICAgICAgICAg ICAgICAgICAgICAgICAjICAgICAgICAgICAgIHNraXBwZWRfY2FzZXNfcmVz dWx0LmFwcGVuZChjbGFzc19uYW1lKQotICAgICAgICAgICAgICAgICAgICAg ICAgIyAgICAgICAgIHByaW50KGNsYXNzX25hbWUpCisgICAgICAgICAgICBp ZiB0ZXN0X3N1aXRlLnNraXBwZWQ6CisgICAgICAgICAgICAgICAgZm9yIHNr aXBfdGVzdCBpbiB0ZXN0X3N1aXRlLnNraXBwZWQ6CisgICAgICAgICAgICAg ICAgICAgIGNsYXNzX25hbWUgPSBzdHIoCisgICAgICAgICAgICAgICAgICAg ICAgICBza2lwX3Rlc3RbMF0pLnNwbGl0KCcuJylbLTFdLnNwbGl0KClbMF0u c3RyaXAoJyknKQorICAgICAgICAgICAgICAgICAgICBpZiBjbGFzc19uYW1l IG5vdCBpbiBmYWlsZWRfY2FzZXNfcmVzdWx0OgorICAgICAgICAgICAgICAg ICAgICAgICAgc2tpcHBlZF9jYXNlc19yZXN1bHQuYXBwZW5kKGNsYXNzX25h bWUpCiAgICAgICAgIHJldHVybiB0b3RhbF9yYW4sIGZhaWxlZF9jYXNlc19y ZXN1bHQsIHNraXBwZWRfY2FzZXNfcmVzdWx0CiAgICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBleGNlcHRpb246CiAgICAgICAgIGV4Y2VwdGlvbiA9ICJFeGNl cHRpb246ICVzOiBsaW5lOiVzICVzIiAlICgKQEAgLTI3NSwxNSArMjczLDIy IEBAIGlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CiAgICAgcHJpbnQoIj09 PT09PT09PT09PT09PT09PT09PT09PT09PT0iLCBmaWxlPXN5cy5zdGRlcnIp CiAgICAgZm9yIHNlcnZlcl9yZXMgaW4gdGVzdF9yZXN1bHQ6CiAgICAgICAg IGZhaWxlZF9jYXNlcyA9ICJcblx0Ii5qb2luKHRlc3RfcmVzdWx0W3NlcnZl cl9yZXNdWzFdKQorICAgICAgICBza2lwcGVkX2Nhc2VzID0gIlxuXHQiLmpv aW4odGVzdF9yZXN1bHRbc2VydmVyX3Jlc11bMl0pCiAgICAgICAgIHRvdGFs X2ZhaWxlZCA9IGxlbih0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcmVzXVsxXSkKLSAg ICAgICAgIyBUT0RPIDogY29kZSByZW1haW5pbmcgdG8gaGFuZGxlICctMScg Y29uZGl0aW9uCi0gICAgICAgIHRvdGFsX3Bhc3NlZCA9IGludCh0ZXN0X3Jl c3VsdFtzZXJ2ZXJfcmVzXVswXSkgLSB0b3RhbF9mYWlsZWQKLQotICAgICAg ICBwcmludCgiJXM6ICVzIHRlc3QlcyBwYXNzZWQsICVzIHRlc3QlcyBmYWls ZWQgJXMlcyIgJQotICAgICAgICAgICAgICAoc2VydmVyX3JlcywgdG90YWxf cGFzc2VkLCAodG90YWxfcGFzc2VkICE9IDEgYW5kICJzIiBvciAiIiksCi0g ICAgICAgICAgICAgICB0b3RhbF9mYWlsZWQsICh0b3RhbF9mYWlsZWQgIT0g MSBhbmQgInMiIG9yICIiKSwKLSAgICAgICAgICAgICAgICh0b3RhbF9mYWls ZWQgIT0gMCBhbmQgIjpcblx0IiBvciAiIiksIGZhaWxlZF9jYXNlcyksCi0g ICAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgdG90YWxf c2tpcHBlZCA9IGxlbih0ZXN0X3Jlc3VsdFtzZXJ2ZXJfcmVzXVsyXSkKKyAg ICAgICAgdG90YWxfcGFzc2VkX2Nhc2VzID0gaW50KAorICAgICAgICAgICAg dGVzdF9yZXN1bHRbc2VydmVyX3Jlc11bMF0pIC0gdG90YWxfZmFpbGVkIC0g dG90YWxfc2tpcHBlZAorCisgICAgICAgIHByaW50KAorICAgICAgICAgICAg IiVzOiAlcyB0ZXN0JXMgcGFzc2VkLCAlcyB0ZXN0JXMgZmFpbGVkICVzJXMs IgorICAgICAgICAgICAgIiAlcyB0ZXN0JXMgc2tpcHBlZCAlcyVzIiAlCisg ICAgICAgICAgICAoc2VydmVyX3JlcywgdG90YWxfcGFzc2VkX2Nhc2VzLAor ICAgICAgICAgICAgICh0b3RhbF9wYXNzZWRfY2FzZXMgIT0gMSBhbmQgInMi IG9yICIiKSwKKyAgICAgICAgICAgICB0b3RhbF9mYWlsZWQsICh0b3RhbF9m YWlsZWQgIT0gMSBhbmQgInMiIG9yICIiKSwKKyAgICAgICAgICAgICAodG90 YWxfZmFpbGVkICE9IDAgYW5kICI6XG5cdCIgb3IgIiIpLCBmYWlsZWRfY2Fz ZXMsCisgICAgICAgICAgICAgdG90YWxfc2tpcHBlZCwgKHRvdGFsX3NraXBw ZWQgIT0gMSBhbmQgInMiIG9yICIiKSwKKyAgICAgICAgICAgICAodG90YWxf c2tpcHBlZCAhPSAwIGFuZCAiOlxuXHQiIG9yICIiKSwgc2tpcHBlZF9jYXNl cyksCisgICAgICAgICAgICBmaWxlPXN5cy5zdGRlcnIpCiAKICAgICBwcmlu dCgiPT09PT09PT09PT09PT09PT09PT09PT09PT09PSIsIGZpbGU9c3lzLnN0 ZGVycikKIApkaWZmIC0tZ2l0IGEvd2ViL3JlZ3Jlc3Npb24vdGVzdF91dGls cy5weSBiL3dlYi9yZWdyZXNzaW9uL3Rlc3RfdXRpbHMucHkKaW5kZXggNzNj NDVhNi4uNzMxZjFiNiAxMDA2NDQKLS0tIGEvd2ViL3JlZ3Jlc3Npb24vdGVz dF91dGlscy5weQorKysgYi93ZWIvcmVncmVzc2lvbi90ZXN0X3V0aWxzLnB5 CkBAIC0xMywxMSArMTMsMTEgQEAgaW1wb3J0IHN5cwogaW1wb3J0IHV1aWQK IGltcG9ydCBwc3ljb3BnMgogaW1wb3J0IHNxbGl0ZTMKK2Zyb20gZnVuY3Rv b2xzIGltcG9ydCBwYXJ0aWFsCiAKIGltcG9ydCBjb25maWcKIGltcG9ydCB0 ZXN0X3NldHVwCiBpbXBvcnQgcmVncmVzc2lvbgotZnJvbSBmdW5jdG9vbHMg aW1wb3J0IHBhcnRpYWwKIAogU0VSVkVSX0dST1VQID0gdGVzdF9zZXR1cC5j b25maWdfZGF0YVsnc2VydmVyX2dyb3VwJ10KIGZpbGVfbmFtZSA9IG9zLnBh dGguYmFzZW5hbWUoX19maWxlX18pCkBAIC03OCw3ICs3OCw3IEBAIGRlZiBn ZXRfY29uZmlnX2RhdGEoKToKICAgICAgICAgICAgICAgICAiZGJfcGFzc3dv cmQiOiBzcnZbJ2RiX3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICAgICAgInJv bGUiOiAiIiwKICAgICAgICAgICAgICAgICAic3NsbW9kZSI6IHNydlsnc3Ns bW9kZSddLAotICAgICAgICAgICAgICAgICJ0YWJsZXNwYWNlX3BhdGgiOiBz cnZbJ3RhYmxlc3BhY2VfcGF0aCddfQorICAgICAgICAgICAgICAgICJ0YWJs ZXNwYWNlX3BhdGgiOiBzcnYuZ2V0KCd0YWJsZXNwYWNlX3BhdGgnLCBOb25l KX0KICAgICAgICAgc2VydmVyX2RhdGEuYXBwZW5kKGRhdGEpCiAgICAgcmV0 dXJuIHNlcnZlcl9kYXRhCiAKQEAgLTEzOCw3ICsxMzgsOSBAQCBkZWYgY3Jl YXRlX2RhdGFiYXNlKHNlcnZlciwgZGJfbmFtZSk6CiAgICAgICAgIGNvbm5l Y3Rpb24uY2xvc2UoKQogICAgICAgICByZXR1cm4gZGJfaWQKICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGV4Y2VwdGlvbjoKLSAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJFcnJvciB3aGlsZSBjcmVhdGluZyBkYXRhYmFzZS4gJXMiICUg ZXhjZXB0aW9uKQorICAgICAgICBleGNlcHRpb24gPSAiRXJyb3Igd2hpbGUg Y3JlYXRpbmcgZGF0YWJhc2U6ICVzOiBsaW5lOiVzICVzIiAlICgKKyAgICAg ICAgICAgIGZpbGVfbmFtZSwgc3lzLmV4Y190cmFjZWJhY2sudGJfbGluZW5v LCBleGNlcHRpb24pCisgICAgICAgIHByaW50KGV4Y2VwdGlvbiwgZmlsZT1z eXMuc3RkZXJyKQogCiAKIGRlZiBkcm9wX2RhdGFiYXNlKGNvbm5lY3Rpb24s IGRhdGFiYXNlX25hbWUpOgpAQCAtMjE3LDU0ICsyMTksNiBAQCBkZWYgZGVs ZXRlX3NlcnZlcl9mcm9tX3NxbGl0ZShzaWQpOgogICAgICAgICBwcmludChl eGNlcHRpb24sIGZpbGU9c3lzLnN0ZGVycikKIAogCi1kZWYgY3JlYXRlX3Rh Ymxlc3BhY2Uoc2VydmVyLCB0ZXN0X3RhYmxlc3BhY2VfbmFtZSk6Ci0gICAg dHJ5OgotICAgICAgICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24o c2VydmVyWydkYiddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCdd LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydob3N0J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSkKLSAgICAgICAgb2xkX2lzb2xhdGlv bl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCi0gICAgICAg IGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQotICAgICAgICBw Z19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgIHBnX2N1 cnNvci5leGVjdXRlKCJDUkVBVEUgVEFCTEVTUEFDRSAlcyBMT0NBVElPTiAn JXMnIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICh0ZXN0X3RhYmxl c3BhY2VfbmFtZSwgc2VydmVyWyd0YWJsZXNwYWNlX3BhdGgnXSkpCi0gICAg ICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0 aW9uX2xldmVsKQotICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgpCi0KLSAg ICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIHRhYmxlc3Bh Y2UKLSAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoCi0gICAgICAgICAgICAi U0VMRUNUIHRzLm9pZCBmcm9tIHBnX3RhYmxlc3BhY2UgdHMgV0hFUkUgdHMu c3BjbmFtZT0nJXMnIiAlCi0gICAgICAgICAgICB0ZXN0X3RhYmxlc3BhY2Vf bmFtZSkKLSAgICAgICAgb2lkID0gcGdfY3Vyc29yLmZldGNob25lKCkKLSAg ICAgICAgdHNwY19pZCA9ICcnCi0gICAgICAgIGlmIG9pZDoKLSAgICAgICAg ICAgIHRzcGNfaWQgPSBvaWRbMF0KLSAgICAgICAgY29ubmVjdGlvbi5jbG9z ZSgpCi0gICAgICAgIHJldHVybiB0c3BjX2lkCi0gICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBleGNlcHRpb246Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi RXJyb3Igd2hpbGUgY3JlYXRpbmcgdGFibGVzcGFjZS4gJXMiICUgZXhjZXB0 aW9uKQotCi0KLWRlZiBkZWxldGVfdGFibGVzcGFjZShjb25uZWN0aW9uLCB0 ZXN0X3RhYmxlc3BhY2VfbmFtZSk6Ci0gICAgdHJ5OgotICAgICAgICBwZ19j dXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCi0gICAgICAgIHBnX2N1cnNv ci5leGVjdXRlKCJTRUxFQ1QgKiBGUk9NIHBnX3RhYmxlc3BhY2UgdHMgV0hF UkUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICIgdHMuc3BjbmFtZT0n JXMnIiAlIHRlc3RfdGFibGVzcGFjZV9uYW1lKQotICAgICAgICB0YWJsZXNw YWNlX2NvdW50ID0gbGVuKHBnX2N1cnNvci5mZXRjaGFsbCgpKQotICAgICAg ICBpZiB0YWJsZXNwYWNlX2NvdW50OgotICAgICAgICAgICAgb2xkX2lzb2xh dGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xldmVsCi0gICAg ICAgICAgICBjb25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwoMCkKLSAg ICAgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJEUk9QIFRBQkxFU1BBQ0Ug JXMiICUgdGVzdF90YWJsZXNwYWNlX25hbWUpCi0gICAgICAgICAgICBjb25u ZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZl bCkKLSAgICAgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKLSAgICAgICAg Y29ubmVjdGlvbi5jbG9zZSgpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl eGNlcHRpb246Ci0gICAgICAgIGV4Y2VwdGlvbiA9ICIlczogbGluZTolcyAl cyIgJSAoCi0gICAgICAgICAgICBmaWxlX25hbWUsIHN5cy5leGNfdHJhY2Vi YWNrLnRiX2xpbmVubywgZXhjZXB0aW9uKQotICAgICAgICBwcmludChleGNl cHRpb24sIGZpbGU9c3lzLnN0ZGVycikKLQotCiBkZWYgY3JlYXRlX3Rlc3Rf c2VydmVyKHNlcnZlcl9pbmZvKToKICAgICAiIiIKICAgICBUaGlzIGZ1bmN0 aW9uIGNyZWF0ZSB0aGUgdGVzdCBzZXJ2ZXIgd2hpY2ggd2lsbCBhY3QgYXMg cGFyZW50IHNlcnZlciwKQEAgLTI4MCwxMSArMjM0LDYgQEAgZGVmIGNyZWF0 ZV90ZXN0X3NlcnZlcihzZXJ2ZXJfaW5mbyk6CiAgICAgdGVzdF9kYl9uYW1l ID0gInRlc3RfZGJfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQogICAg IGRiX2lkID0gY3JlYXRlX2RhdGFiYXNlKHNlcnZlcl9pbmZvLCB0ZXN0X2Ri X25hbWUpCiAKLSAgICAjIFRPRE86IE5lZWQgdG8gZGVjaWRlIGFib3V0IHRl c3QgdGFibGVzcGFjZSBjcmVhdGlvbgotICAgICMgQ3JlYXRlIHRhYmxlc3Bh Y2UKLSAgICAjIHRlc3RfdGFibGVzcGFjZV9uYW1lID0gInRlc3RfdGFibGVz cGFjZSIKLSAgICAjIHRhYmxlc3BhY2VfaWQgPSBjcmVhdGVfdGFibGVzcGFj ZShzZXJ2ZXIsIHRlc3RfdGFibGVzcGFjZV9uYW1lKQotCiAgICAgIyBBZGQg c2VydmVyIGluZm8gdG8gdGVzdF9zZXJ2ZXJfZGljdAogICAgIHJlZ3Jlc3Np b24udGVzdF9zZXJ2ZXJfZGljdFsic2VydmVyIl0uYXBwZW5kKHsic2VydmVy X2lkIjogc3J2X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAic2VydmVyIjogc2VydmVyX2luZm99KQpA QCAtMzkwLDcgKzMzOSwzMiBAQCBkZWYgX2Ryb3Bfb2JqZWN0cyh0ZXN0ZXIp OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAicGdfZ2xvYmFsIl06CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRhYmxlc3BhY2VfbmFtZSA9IHRhYmxlc3BhY2VbMF0K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEZWxldGUgdGFi bGVzcGFjZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxl dGVfdGFibGVzcGFjZShjb25uZWN0aW9uLCB0YWJsZXNwYWNlX25hbWUpCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gPSBn ZXRfZGJfY29ubmVjdGlvbihzZXJ2ZXJfaW5mb1szXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlcl9pbmZvWzRdLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGJf cGFzc3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaW5mb1sxXSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pbmZvWzJdKQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZWdyZXNzaW9uLnRhYmxlc3BhY2Vf dXRpbHMuZGVsZXRlX3RhYmxlc3BhY2UoCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLCB0YWJsZXNwYWNlX25hbWUp CisKKyAgICAgICAgICAgICAgICAgICAgIyBEZWxldGUgcm9sZQorICAgICAg ICAgICAgICAgICAgICBjb25uZWN0aW9uID0gZ2V0X2RiX2Nvbm5lY3Rpb24o c2VydmVyX2luZm9bM10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfaW5mb1s0XSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGRiX3Bhc3N3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2VydmVyX2luZm9bMV0sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZXJ2ZXJfaW5mb1syXSkKKyAgICAgICAgICAgICAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgICAgICAgICBw Z19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUICogRlJPTSBwZ19jYXRhbG9nLnBn X3JvbGVzIikKKyAgICAgICAgICAgICAgICAgICAgcm9sZXMgPSBwZ19jdXJz b3IuZmV0Y2hhbGwoKQorICAgICAgICAgICAgICAgICAgICBpZiByb2xlczoK KyAgICAgICAgICAgICAgICAgICAgICAgIGZvciByb2xlX25hbWUgaW4gcm9s ZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBEbyBub3QgZGVs ZXRlIGRlZmF1bHQgdGFibGUgc3BhY2VzCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgcm9sZV9uYW1lWzBdIG5vdCBpbiBbInBvc3RncmVzIiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZW50ZXJwcmlzZWRiIl06CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJvbGVfbmFtZSA9IHJvbGVfbmFtZVswXQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIERlbGV0ZSByb2xlCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZ3Jlc3Npb24ucm9sZXNf dXRpbHMuZGVsZXRlX3JvbGUoY29ubmVjdGlvbiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByb2xlX25hbWUpCiAKICAgICAgICAgICAgIGZvciBzZXJ2ZXJf aW5mbyBpbiBhbGxfc2VydmVyczoKICAgICAgICAgICAgICAgICBzZXJ2ZXJf aWQgPSBzZXJ2ZXJfaW5mb1s1XQo= --001a1140377e9fdc2e053d687e35 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a1140377e9fdc2e053d687e35--