Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kFZwB-0002V0-Qi for pgadmin-hackers@arkaria.postgresql.org; Tue, 08 Sep 2020 09:29:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kFZwA-0001yy-PB for pgadmin-hackers@arkaria.postgresql.org; Tue, 08 Sep 2020 09:29:14 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1kFZwA-0001yp-50 for pgadmin-hackers@lists.postgresql.org; Tue, 08 Sep 2020 09:29:14 +0000 Received: from mail-yb1-xb33.google.com ([2607:f8b0:4864:20::b33]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1kFZw7-0005Pz-Bt for pgadmin-hackers@postgresql.org; Tue, 08 Sep 2020 09:29:12 +0000 Received: by mail-yb1-xb33.google.com with SMTP id h20so10854906ybj.8 for ; Tue, 08 Sep 2020 02:29:10 -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; bh=gFT/Cv1U2m9BHP1/wcD/rYUqaNpdAFwLIeDucVYQM+A=; b=dA2nWdLEWVuEydBAjWw8tLLZnu/DUUpl/FT8ini2IIoCARgDfum31f/yDIegKeVKeI wrDxP7nt5FSwsBXu9eSgo/7uaxYhqzlaYKvBA32BWaCPgf6axIYkzuZ7NqwloQBPtUY8 U8hCoFY3yq5FEXBfDJE0b/+r0mF/Yqvs50V1Dy9CoQLSESdGHmjp2NzDeRGOi2pbj7TC sFfh75bpJB8CNTsL/JmSIevRf3ddRoeywmBNHihcxmCaY6UqkaW3jcMqDW1IHluRgatr qgROHS8cwWzqQjyUYnY+aowS6JIin9BM192IBGeL+dBb3wDEwnBPu5fdwHjjp94wkrDW /5iw== 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=gFT/Cv1U2m9BHP1/wcD/rYUqaNpdAFwLIeDucVYQM+A=; b=e1+wtf11FZmtOzfk1Gd9K7nTLvCvIwH7DufuHQGGrbZKjmqcSE0eET7qb9dQepGjbm nUPLezxfFr6gr5ga3JDMsBtW6Nn9NHxFdNMd0KJLgyZaGANHfOhdPx25U2IlvidJUjVS KGS6wMLB7aqzE81Kk5wh9UMFESSYazhTAOQpqbgW+dKsnyJF1qp7BKPvUdSMwPF0YUEG 0MwXAFsWgeRod2JNJtWMMdVQwDyR1UTbREf872WvBYwMgmrJ06GMyp4Hh3KkCm/lVr1u mMiNU+8SmStpC73pGN09gzteAsSglY8oQTlkiUl5sGlAl3b/AhK86hAnGOZsbveX4szO DbsA== X-Gm-Message-State: AOAM531+WuA3tWMS3Hf0bjR/QbxQX+JaN9RbVsEzDueXnuonxyPOXMuL VWTpk2B+OSDhuW41S2rf0iLESVSY6fgQBnIALxW8HVHd97yr/+PULPgEpe+h7qJ2GBVX1dJs+1Q 8uhbchhaw8NYft4RPQcf9a/WJ0eHtPSlbMY2mWmXjL1ISz5Eq7COzp1S/WBumw9f6pfsfEZ0gie 5LICQtGB3maRnmjirB2WcLqEwB0uUQwXeI1s1pzq7YRJ39jZ8uT6VboWndZBZwXYnTViHL X-Google-Smtp-Source: ABdhPJy2o7czBSyDEPWFwHHuKIOzN8FWcxWqPpq4nPNl8DvxQ0muEq8GAJnR1RMACXTA9TbcMoP2Lu4ThpNApfiNPUc= X-Received: by 2002:a25:db49:: with SMTP id g70mr29187408ybf.155.1599557349760; Tue, 08 Sep 2020 02:29:09 -0700 (PDT) MIME-Version: 1.0 From: Nikhil Mohite Date: Tue, 8 Sep 2020 14:58:58 +0530 Message-ID: Subject: Patch for SonarQube code scan fixes. To: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000a19d7c05aec9f74e" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000a19d7c05aec9f74e Content-Type: multipart/alternative; boundary="000000000000a19d7905aec9f74c" --000000000000a19d7905aec9f74c Content-Type: text/plain; charset="UTF-8" Hi Team, I have fixed some code smell issues in the SonarQube scan, PFA patch. Details as follows: 1. psycopg2/connection: - Refactor this function to reduce its Cognitive Complexity from 32 to the 15 allowed. - Refactor this function to reduce its Cognitive Complexity from 17 to the 15 allowed. 2. psycopg2/server_manager: - Refactor this function to reduce its Cognitive Complexity from 20 to the 15 allowed. - Refactor this function to reduce its Cognitive Complexity from 33 to the 15 allowed. - Refactor this function to reduce its Cognitive Complexity from 26 to the 15 allowed. 3. sqlautocomplete/parseutils: - Refactor this function to reduce its Cognitive Complexity from 23 to the 15 allowed. -- *Thanks & Regards,* *Nikhil Mohite* *Software Engineer.* *EDB Postgres* *Mob.No: +91-7798364578.* --000000000000a19d7905aec9f74c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Team,

I have fixed some code sm= ell issues in the SonarQube scan, PFA patch.
Details as=C2=A0foll= ows:

1.=C2=A0psycopg2/connection:
  • Ref= actor this function to reduce its Cognitive Complexity from 32 to the 15 al= lowed.
  • Refactor this function to reduce its Cognitive Complexity fr= om 17 to the 15 allowed.
2. psycopg2/server_manager:
  • = Refactor this function to reduce its Cognitive Complexity from 20 to the 15= allowed.
  • Refactor this function to reduce its Cognitive Complexity= from 33 to the 15 allowed.
  • Refactor this function to reduce its Co= gnitive Complexity from 26 to the 15 allowed.
3. sqlautocomplete/p= arseutils:
  • Refactor this function to reduce its Cognitive Compl= exity from 23 to the 15 allowed.


--
Thanks &= amp; Regards,
Nikhil M= ohite
Software E= ngineer.
Mob.No: +91-779836457= 8.
--000000000000a19d7905aec9f74c-- --000000000000a19d7c05aec9f74e Content-Type: application/octet-stream; name="sonarQubeCodeSmell.patch" Content-Disposition: attachment; filename="sonarQubeCodeSmell.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ketqvjix0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3BnMi9jb25uZWN0aW9u LnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL2Nvbm5lY3Rpb24ucHkKaW5k ZXggOWU5OTkyNS4uOWNiNjViYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVy L3BzeWNvcGcyL2Nvbm5lY3Rpb24ucHkKKysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3Bz eWNvcGcyL2Nvbm5lY3Rpb24ucHkKQEAgLTM0Niw2ICszNDYsNTcgQEAgY2xhc3MgQ29ubmVjdGlv bihCYXNlQ29ubmVjdGlvbik6CiAKICAgICAgICAgcmV0dXJuIHN0YXR1cywgbXNnCiAKKyAgICBk ZWYgX3NldF9hdXRvX2NvbW1pdChzZWxmLCBrd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAg YXV0b2NvbW1pdCBmbGFnIGRvZXMgbm90IHdvcmsgd2l0aCBhc3luY2hyb25vdXMgY29ubmVjdGlv bnMuCisgICAgICAgIEJ5IGRlZmF1bHQgYXN5bmNocm9ub3VzIGNvbm5lY3Rpb24gcnVucyBpbiBh dXRvY29tbWl0IG1vZGUuCisgICAgICAgIDpwYXJhbSBrd2FyZ3M6CisgICAgICAgIDpyZXR1cm46 CisgICAgICAgICIiIgorICAgICAgICBpZiBzZWxmLmFzeW5jXyA9PSAwOgorICAgICAgICAgICAg aWYgJ2F1dG9jb21taXQnIGluIGt3YXJncyBhbmQga3dhcmdzWydhdXRvY29tbWl0J10gaXMgRmFs c2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb25uLmF1dG9jb21taXQgPSBGYWxzZQorICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbm4uYXV0b2NvbW1pdCA9IFRydWUK KworICAgIGRlZiBfc2V0X3JvbGUoc2VsZiwgbWFuYWdlciwgY3VyLCBjb25uX2lkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFNldCByb2xlCisgICAgICAgIDpwYXJhbSBtYW5hZ2VyOgorICAgICAg ICA6cGFyYW0gY3VyOgorICAgICAgICA6cGFyYW0gY29ubl9pZDoKKyAgICAgICAgOnJldHVybjoK KyAgICAgICAgIiIiCisgICAgICAgIGlmIG1hbmFnZXIucm9sZToKKyAgICAgICAgICAgIHN0YXR1 cyA9IHNlbGYuX2V4ZWN1dGUoY3VyLCAiU0VUIFJPTEUgVE8gJXMiLCBbbWFuYWdlci5yb2xlXSkK KworICAgICAgICAgICAgaWYgc3RhdHVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHNl bGYuY29ubi5jbG9zZSgpCisgICAgICAgICAgICAgICAgc2VsZi5jb25uID0gTm9uZQorICAgICAg ICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJvcigKKyAgICAgICAgICAgICAgICAgICAg IkNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciAoI3tzZXJ2ZXJfaWR9KSBmb3IgIgorICAg ICAgICAgICAgICAgICAgICAiY29ubmVjdGlvbiAoe2Nvbm5faWR9KSwgYnV0IC0gZmFpbGVkIHRv IHNldHVwIHRoZSByb2xlICIKKyAgICAgICAgICAgICAgICAgICAgIndpdGggZXJyb3IgbWVzc2Fn ZSBhcyBiZWxvdzp7bXNnfSIuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy X2lkPXNlbGYubWFuYWdlci5zaWQsCisgICAgICAgICAgICAgICAgICAgICAgICBjb25uX2lkPWNv bm5faWQsCisgICAgICAgICAgICAgICAgICAgICAgICBtc2c9c3RhdHVzCisgICAgICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNl LCBcCisgICAgICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAiRmFp bGVkIHRvIHNldHVwIHRoZSByb2xlIHdpdGggZXJyb3IgbWVzc2FnZTpcbnswfSIKKyAgICAgICAg ICAgICAgICAgICAgKS5mb3JtYXQoc3RhdHVzKQorICAgICAgICByZXR1cm4gRmFsc2UsICcnCisK KyAgICBkZWYgX2V4ZWN1dGUoc2VsZiwgY3VyLCBxdWVyeSwgcGFyYW1zPU5vbmUpOgorICAgICAg ICBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZyA9IHNlbGYuX2Zvcm1hdHRlZF9leGNlcHRpb25fbXNn CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuX19pbnRlcm5hbF9ibG9ja2luZ19leGVj dXRlKGN1ciwgcXVlcnksIHBhcmFtcykKKyAgICAgICAgZXhjZXB0IHBzeWNvcGcyLkVycm9yIGFz IHBlOgorICAgICAgICAgICAgY3VyLmNsb3NlKCkKKyAgICAgICAgICAgIHJldHVybiBmb3JtYXR0 ZWRfZXhjZXB0aW9uX21zZyhwZSwgRmFsc2UpCisgICAgICAgIHJldHVybiBOb25lCisKICAgICBk ZWYgX2luaXRpYWxpemUoc2VsZiwgY29ubl9pZCwgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLmV4 ZWN1dGlvbl9hYm9ydGVkID0gRmFsc2UKICAgICAgICAgc2VsZi5fX2JhY2tlbmRfcGlkID0gc2Vs Zi5jb25uLmdldF9iYWNrZW5kX3BpZCgpCkBAIC0zNTYsMjQgKzQwNywxMiBAQCBjbGFzcyBDb25u ZWN0aW9uKEJhc2VDb25uZWN0aW9uKToKICAgICAgICAgKSwgTm9uZSkKIAogICAgICAgICBzdGF0 dXMsIGN1ciA9IHNlbGYuX19jdXJzb3IoKQotICAgICAgICBmb3JtYXR0ZWRfZXhjZXB0aW9uX21z ZyA9IHNlbGYuX2Zvcm1hdHRlZF9leGNlcHRpb25fbXNnCi0gICAgICAgIG1hbmFnZXIgPSBzZWxm Lm1hbmFnZXIKIAotICAgICAgICBkZWYgX2V4ZWN1dGUoY3VyLCBxdWVyeSwgcGFyYW1zPU5vbmUp OgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX19pbnRlcm5hbF9ibG9j a2luZ19leGVjdXRlKGN1ciwgcXVlcnksIHBhcmFtcykKLSAgICAgICAgICAgIGV4Y2VwdCBwc3lj b3BnMi5FcnJvciBhcyBwZToKLSAgICAgICAgICAgICAgICBjdXIuY2xvc2UoKQotICAgICAgICAg ICAgICAgIHJldHVybiBmb3JtYXR0ZWRfZXhjZXB0aW9uX21zZyhwZSwgRmFsc2UpCi0gICAgICAg ICAgICByZXR1cm4gTm9uZQorICAgICAgICBtYW5hZ2VyID0gc2VsZi5tYW5hZ2VyCiAKICAgICAg ICAgIyBhdXRvY29tbWl0IGZsYWcgZG9lcyBub3Qgd29yayB3aXRoIGFzeW5jaHJvbm91cyBjb25u ZWN0aW9ucy4KICAgICAgICAgIyBCeSBkZWZhdWx0IGFzeW5jaHJvbm91cyBjb25uZWN0aW9uIHJ1 bnMgaW4gYXV0b2NvbW1pdCBtb2RlLgotICAgICAgICBpZiBzZWxmLmFzeW5jXyA9PSAwOgotICAg ICAgICAgICAgaWYgJ2F1dG9jb21taXQnIGluIGt3YXJncyBhbmQga3dhcmdzWydhdXRvY29tbWl0 J10gaXMgRmFsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb25uLmF1dG9jb21taXQgPSBGYWxz ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLmNvbm4uYXV0b2NvbW1p dCA9IFRydWUKKyAgICAgICAgc2VsZi5fc2V0X2F1dG9fY29tbWl0KGt3YXJncykKIAogICAgICAg ICByZWdpc3Rlcl9zdHJpbmdfdHlwZWNhc3RlcnMoc2VsZi5jb25uKQogCkBAIC0zOTEsNyArNDMw LDcgQEAgY2xhc3MgQ29ubmVjdGlvbihCYXNlQ29ubmVjdGlvbik6CiAgICAgICAgICMgTm90ZSB0 aGF0IHdlIHVzZSAnVVBEQVRFIHBnX3NldHRpbmdzJyBmb3Igc2V0dGluZyBieXRlYV9vdXRwdXQg YXMgYQogICAgICAgICAjIGNvbnZlbmllbmNlIGhhY2sgZm9yIHRob3NlIHJ1bm5pbmcgb24gb2xk LCB1bnN1cHBvcnRlZCB2ZXJzaW9ucyBvZgogICAgICAgICAjIFBvc3RncmVTUUwgJ2NvcyB3ZSdy ZSBuaWNlIGxpa2UgdGhhdC4KLSAgICAgICAgc3RhdHVzID0gX2V4ZWN1dGUoCisgICAgICAgIHN0 YXR1cyA9IHNlbGYuX2V4ZWN1dGUoCiAgICAgICAgICAgICBjdXIsCiAgICAgICAgICAgICAiU0VU IERhdGVTdHlsZT1JU087ICIKICAgICAgICAgICAgICJTRVQgY2xpZW50X21pbl9tZXNzYWdlcz1u b3RpY2U7ICIKQEAgLTQwNiwyOCArNDQ1LDEyIEBAIGNsYXNzIENvbm5lY3Rpb24oQmFzZUNvbm5l Y3Rpb24pOgogCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIHN0YXR1cwogCi0gICAgICAgIGlm IG1hbmFnZXIucm9sZToKLSAgICAgICAgICAgIHN0YXR1cyA9IF9leGVjdXRlKGN1ciwgIlNFVCBS T0xFIFRPICVzIiwgW21hbmFnZXIucm9sZV0pCi0KLSAgICAgICAgICAgIGlmIHN0YXR1cyBpcyBu b3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLmNvbm4uY2xvc2UoKQotICAgICAgICAgICAg ICAgIHNlbGYuY29ubiA9IE5vbmUKLSAgICAgICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIu ZXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICJDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzZXJ2 ZXIgKCN7c2VydmVyX2lkfSkgZm9yICIKLSAgICAgICAgICAgICAgICAgICAgImNvbm5lY3Rpb24g KHtjb25uX2lkfSksIGJ1dCAtIGZhaWxlZCB0byBzZXR1cCB0aGUgcm9sZSAiCi0gICAgICAgICAg ICAgICAgICAgICJ3aXRoIGVycm9yIG1lc3NhZ2UgYXMgYmVsb3c6e21zZ30iLmZvcm1hdCgKLSAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZD1zZWxmLm1hbmFnZXIuc2lkLAotICAgICAg ICAgICAgICAgICAgICAgICAgY29ubl9pZD1jb25uX2lkLAotICAgICAgICAgICAgICAgICAgICAg ICAgbXNnPXN0YXR1cwotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQot ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZSwgXAotICAgICAgICAgICAgICAgICAgICBfKAot ICAgICAgICAgICAgICAgICAgICAgICAgIkZhaWxlZCB0byBzZXR1cCB0aGUgcm9sZSB3aXRoIGVy cm9yIG1lc3NhZ2U6XG57MH0iCi0gICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KHN0YXR1cykK KyAgICAgICAgaXNfZXJyb3IsIGVycm1zZyA9IHNlbGYuX3NldF9yb2xlKG1hbmFnZXIsIGN1ciwg Y29ubl9pZCkKKyAgICAgICAgaWYgaXNfZXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2Us IGVycm1zZwogCiAgICAgICAgICMgQ2hlY2sgZGF0YWJhc2UgdmVyc2lvbiBldmVyeSB0aW1lIG9u IHJlY29ubmVjdGlvbgotICAgICAgICBzdGF0dXMgPSBfZXhlY3V0ZShjdXIsICJTRUxFQ1QgdmVy c2lvbigpIikKKyAgICAgICAgc3RhdHVzID0gc2VsZi5fZXhlY3V0ZShjdXIsICJTRUxFQ1QgdmVy c2lvbigpIikKIAogICAgICAgICBpZiBzdGF0dXMgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBz ZWxmLmNvbm4uY2xvc2UoKQpAQCAtNDQ5LDcgKzQ3Miw3IEBAIGNsYXNzIENvbm5lY3Rpb24oQmFz ZUNvbm5lY3Rpb24pOgogICAgICAgICAgICAgbWFuYWdlci52ZXIgPSByb3dbJ3ZlcnNpb24nXQog ICAgICAgICAgICAgbWFuYWdlci5zdmVyc2lvbiA9IHNlbGYuY29ubi5zZXJ2ZXJfdmVyc2lvbgog Ci0gICAgICAgIHN0YXR1cyA9IF9leGVjdXRlKGN1ciwgIiIiCisgICAgICAgIHN0YXR1cyA9IHNl bGYuX2V4ZWN1dGUoY3VyLCAiIiIKIFNFTEVDVAogICAgIGRiLm9pZCBhcyBkaWQsIGRiLmRhdG5h bWUsIGRiLmRhdGFsbG93Y29ubiwKICAgICBwZ19lbmNvZGluZ190b19jaGFyKGRiLmVuY29kaW5n KSBBUyBzZXJ2ZXJlbmNvZGluZywKQEAgLTQ2OCwyMSArNDkxLDQ0IEBAIFdIRVJFIGRiLmRhdG5h bWUgPSBjdXJyZW50X2RhdGFiYXNlKCkiIiIpCiAgICAgICAgICAgICAgICAgaWYgbGVuKG1hbmFn ZXIuZGJfaW5mbykgPT0gMToKICAgICAgICAgICAgICAgICAgICAgbWFuYWdlci5kaWQgPSByZXNb J2RpZCddCiAKLSAgICAgICAgc3RhdHVzID0gX2V4ZWN1dGUoY3VyLCAiIiIKLVNFTEVDVAotICAg IG9pZCBhcyBpZCwgcm9sbmFtZSBhcyBuYW1lLCByb2xzdXBlciBhcyBpc19zdXBlcnVzZXIsCi0g ICAgQ0FTRSBXSEVOIHJvbHN1cGVyIFRIRU4gdHJ1ZSBFTFNFIHJvbGNyZWF0ZXJvbGUgRU5EIGFz IGNhbl9jcmVhdGVfcm9sZSwKLSAgICBDQVNFIFdIRU4gcm9sc3VwZXIgVEhFTiB0cnVlIEVMU0Ug cm9sY3JlYXRlZGIgRU5EIGFzIGNhbl9jcmVhdGVfZGIKLUZST00KLSAgICBwZ19jYXRhbG9nLnBn X3JvbGVzCi1XSEVSRQotICAgIHJvbG5hbWUgPSBjdXJyZW50X3VzZXIiIiIpCisgICAgICAgIHNl bGYuX3NldF91c2VyX2luZm8oY3VyLCBtYW5hZ2VyKQorCisgICAgICAgIHNlbGYuX3NldF9zZXJ2 ZXJfdHlwZV9hbmRfcGFzc3dvcmQoa3dhcmdzLCBtYW5hZ2VyKQorCisgICAgICAgIG1hbmFnZXIu dXBkYXRlX3Nlc3Npb24oKQorCisgICAgICAgIHJldHVybiBUcnVlLCBOb25lCisKKyAgICBkZWYg X3NldF91c2VyX2luZm8oc2VsZiwgY3VyLCBtYW5hZ2VyKToKKyAgICAgICAgIiIiCisgICAgICAg IFNldCB1c2VyIGluZm8uCisgICAgICAgIDpwYXJhbSBjdXI6CisgICAgICAgIDpwYXJhbSBtYW5h Z2VyOgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVzID0gc2Vs Zi5fZXhlY3V0ZShjdXIsICIiIgorICAgICAgICBTRUxFQ1QKKyAgICAgICAgICAgIG9pZCBhcyBp ZCwgcm9sbmFtZSBhcyBuYW1lLCByb2xzdXBlciBhcyBpc19zdXBlcnVzZXIsCisgICAgICAgICAg ICBDQVNFIFdIRU4gcm9sc3VwZXIgVEhFTiB0cnVlIEVMU0Ugcm9sY3JlYXRlcm9sZSBFTkQgYXMK KyAgICAgICAgICAgIGNhbl9jcmVhdGVfcm9sZSwKKyAgICAgICAgICAgIENBU0UgV0hFTiByb2xz dXBlciBUSEVOIHRydWUgRUxTRSByb2xjcmVhdGVkYiBFTkQgYXMgY2FuX2NyZWF0ZV9kYgorICAg ICAgICBGUk9NCisgICAgICAgICAgICBwZ19jYXRhbG9nLnBnX3JvbGVzCisgICAgICAgIFdIRVJF CisgICAgICAgICAgICByb2xuYW1lID0gY3VycmVudF91c2VyIiIiKQogCiAgICAgICAgIGlmIHN0 YXR1cyBpcyBOb25lOgogICAgICAgICAgICAgbWFuYWdlci51c2VyX2luZm8gPSBkaWN0KCkKICAg ICAgICAgICAgIGlmIGN1ci5yb3djb3VudCA+IDA6CiAgICAgICAgICAgICAgICAgbWFuYWdlci51 c2VyX2luZm8gPSBjdXIuZmV0Y2htYW55KDEpWzBdCiAKKyAgICBkZWYgX3NldF9zZXJ2ZXJfdHlw ZV9hbmRfcGFzc3dvcmQoc2VsZiwga3dhcmdzLCBtYW5hZ2VyKToKKyAgICAgICAgIiIiCisgICAg ICAgIFNldCBzZXJ2ZXIgdHlwZQorICAgICAgICA6cGFyYW0ga3dhcmdzOgorICAgICAgICA6cGFy YW0gbWFuYWdlcjoKKyAgICAgICAgOnJldHVybjoKKyAgICAgICAgIiIiCiAgICAgICAgIGlmICdw YXNzd29yZCcgaW4ga3dhcmdzOgogICAgICAgICAgICAgbWFuYWdlci5wYXNzd29yZCA9IGt3YXJn c1sncGFzc3dvcmQnXQogCkBAIC01MDEsMTAgKzU0Nyw2IEBAIFdIRVJFCiAgICAgICAgICAgICAg ICAgbWFuYWdlci5zZXJ2ZXJfY2xzID0gc3QKICAgICAgICAgICAgICAgICBicmVhawogCi0gICAg ICAgIG1hbmFnZXIudXBkYXRlX3Nlc3Npb24oKQotCi0gICAgICAgIHJldHVybiBUcnVlLCBOb25l Ci0KICAgICBkZWYgX19jdXJzb3Ioc2VsZiwgc2VydmVyX2N1cnNvcj1GYWxzZSk6CiAKICAgICAg ICAgaWYgbm90IGdldF9jcnlwdF9rZXkoKVswXToKQEAgLTExODgsMjYgKzEyMzAsMzYgQEAgV0hF UkUKICAgICAgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKICAgICAgICAgcmV0dXJuIEZhbHNlCiAK LSAgICBkZWYgcmVzZXQoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY29ubiBhbmQgc2VsZi5jb25u LmNsb3NlZDoKLSAgICAgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKLSAgICAgICAgcGdfY29ubiA9 IE5vbmUKLSAgICAgICAgbWFuYWdlciA9IHNlbGYubWFuYWdlcgotCisgICAgZGVmIF9kZWNyeXB0 X3Bhc3N3b3JkKHNlbGYsIG1hbmFnZXIpOgorICAgICAgICAiIiIKKyAgICAgICAgRGVjcnlwdCBw YXNzd29yZAorICAgICAgICA6cGFyYW0gbWFuYWdlcjogTWFuYWdlciBmb3IgZ2V0IHBhc3N3b3Jk LgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKICAgICAgICAgcGFzc3dvcmQgPSBnZXRh dHRyKG1hbmFnZXIsICdwYXNzd29yZCcsIE5vbmUpCi0KICAgICAgICAgaWYgcGFzc3dvcmQ6CiAg ICAgICAgICAgICAjIEZldGNoIExvZ2dlZCBpbiBVc2VyIERldGFpbHMuCiAgICAgICAgICAgICB1 c2VyID0gVXNlci5xdWVyeS5maWx0ZXJfYnkoaWQ9Y3VycmVudF91c2VyLmlkKS5maXJzdCgpCiAK ICAgICAgICAgICAgIGlmIHVzZXIgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFs c2UsIGdldHRleHQoIlVuYXV0aG9yaXplZCByZXF1ZXN0LiIpCisgICAgICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBnZXR0ZXh0KCJVbmF1dGhvcml6ZWQgcmVxdWVzdC4iKSwgcGFzc3dvcmQKIAog ICAgICAgICAgICAgY3J5cHRfa2V5X3ByZXNlbnQsIGNyeXB0X2tleSA9IGdldF9jcnlwdF9rZXko KQogICAgICAgICAgICAgaWYgbm90IGNyeXB0X2tleV9wcmVzZW50OgotICAgICAgICAgICAgICAg IHJldHVybiBGYWxzZSwgY3J5cHRfa2V5CisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBj cnlwdF9rZXksIHBhc3N3b3JkCiAKICAgICAgICAgICAgIHBhc3N3b3JkID0gZGVjcnlwdChwYXNz d29yZCwgY3J5cHRfa2V5KS5kZWNvZGUoKQorICAgICAgICByZXR1cm4gVHJ1ZSwgJycsIHBhc3N3 b3JkCisKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY29ubiBhbmQgc2Vs Zi5jb25uLmNsb3NlZDoKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKKyAgICAgICAgcGdf Y29ubiA9IE5vbmUKKyAgICAgICAgbWFuYWdlciA9IHNlbGYubWFuYWdlcgorCisgICAgICAgIGlz X3JldHVybiwgcmV0dXJuX3ZhbHVlLCBwYXNzd29yZCA9IHNlbGYuX2RlY3J5cHRfcGFzc3dvcmQo bWFuYWdlcikKKyAgICAgICAgaWYgaXNfcmV0dXJuOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl LCByZXR1cm5fdmFsdWUKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBwZ19jb25uID0gcHN5 Y29wZzIuY29ubmVjdCgKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3lj b3BnMi9zZXJ2ZXJfbWFuYWdlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxzL2RyaXZlci9wc3ljb3Bn Mi9zZXJ2ZXJfbWFuYWdlci5weQppbmRleCA2ZDNjZTI1Li5iYTI2NDMzIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi91dGlscy9kcml2ZXIvcHN5Y29wZzIvc2VydmVyX21hbmFnZXIucHkKKysrIGIv d2ViL3BnYWRtaW4vdXRpbHMvZHJpdmVyL3BzeWNvcGcyL3NlcnZlcl9tYW5hZ2VyLnB5CkBAIC0x MTIsNiArMTEyLDIwIEBAIGNsYXNzIFNlcnZlck1hbmFnZXIob2JqZWN0KToKIAogICAgICAgICBz ZWxmLmNvbm5lY3Rpb25zID0gZGljdCgpCiAKKyAgICBkZWYgX3NldF9wYXNzd29yZChzZWxmLCBy ZXMpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0IHBhc3N3b3JkIGZvciBzZXJ2ZXIgbWFuYWdl ciBvYmplY3QuCisgICAgICAgIDpwYXJhbSByZXM6IHJlc3BvbnNlIGRpY3QuCisgICAgICAgIDpy ZXR1cm46CisgICAgICAgICIiIgorICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdwYXNzd29yZCcp IGFuZCBzZWxmLnBhc3N3b3JkOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLnBhc3N3b3Jk LCAnZGVjb2RlJyk6CisgICAgICAgICAgICAgICAgcmVzWydwYXNzd29yZCddID0gc2VsZi5wYXNz d29yZC5kZWNvZGUoJ3V0Zi04JykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg cmVzWydwYXNzd29yZCddID0gc3RyKHNlbGYucGFzc3dvcmQpCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICByZXNbJ3Bhc3N3b3JkJ10gPSBzZWxmLnBhc3N3b3JkCisKICAgICBkZWYgYXNfZGlj dChzZWxmKToKICAgICAgICAgIiIiCiAgICAgICAgIFJldHVybnMgYSBkaWN0aW9uYXJ5IG9iamVj dCByZXByZXNlbnRpbmcgdGhlIHNlcnZlciBtYW5hZ2VyLgpAQCAtMTIzLDEzICsxMzcsOCBAQCBj bGFzcyBTZXJ2ZXJNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJlc1snc2lkJ10gPSBzZWxmLnNp ZAogICAgICAgICByZXNbJ3ZlciddID0gc2VsZi52ZXIKICAgICAgICAgcmVzWydzdmVyc2lvbidd ID0gc2VsZi5zdmVyc2lvbgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdwYXNzd29yZCcpIGFu ZCBzZWxmLnBhc3N3b3JkOgotICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLnBhc3N3b3JkLCAn ZGVjb2RlJyk6Ci0gICAgICAgICAgICAgICAgcmVzWydwYXNzd29yZCddID0gc2VsZi5wYXNzd29y ZC5kZWNvZGUoJ3V0Zi04JykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmVz WydwYXNzd29yZCddID0gc3RyKHNlbGYucGFzc3dvcmQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICByZXNbJ3Bhc3N3b3JkJ10gPSBzZWxmLnBhc3N3b3JkCisKKyAgICAgICAgc2VsZi5fc2V0 X3Bhc3N3b3JkKHJlcykKIAogICAgICAgICBpZiBzZWxmLnVzZV9zc2hfdHVubmVsOgogICAgICAg ICAgICAgaWYgaGFzYXR0cihzZWxmLCAndHVubmVsX3Bhc3N3b3JkJykgYW5kIHNlbGYudHVubmVs X3Bhc3N3b3JkOgpAQCAtMjQ0LDE1ICsyNTMsMTQgQEAgV0hFUkUgZGIub2lkID0gezB9IiIiLmZv cm1hdChkaWQpKQogCiAgICAgICAgICAgICByZXR1cm4gc2VsZi5jb25uZWN0aW9uc1tteV9pZF0K IAotICAgIGRlZiBfcmVzdG9yZShzZWxmLCBkYXRhKToKKyAgICBAc3RhdGljbWV0aG9kCisgICAg ZGVmIF9nZXRfcGFzc3dvcmRfdG9fY29ubihkYXRhLCBtYXN0ZXJwYXNzX3Byb2Nlc3NlZCk6CiAg ICAgICAgICIiIgotICAgICAgICBIZWxwcyByZXN0b3JpbmcgdG8gcmVjb25uZWN0IHRoZSBhdXRv LWNvbm5lY3QgY29ubmVjdGlvbnMgc21vb3RobHkgb24KLSAgICAgICAgcmVsb2FkL3Jlc3RhcnQg b2YgdGhlIGFwcCBzZXJ2ZXIuLgorICAgICAgICBHZXQgcGFzc3dvcmQgZm9yIGNvbm5lY3QgdG8g c2VydmVyIHdpdGggc2ltcGxlIGFuZCBzc2ggY29ubmVjdGlvbi4KKyAgICAgICAgOnBhcmFtIGRh dGE6IERhdGEuCisgICAgICAgIDpwYXJhbSBtYXN0ZXJwYXNzX3Byb2Nlc3NlZDoKKyAgICAgICAg OnJldHVybjoKICAgICAgICAgIiIiCi0gICAgICAgICMgcmVzdG9yZSBzZXJ2ZXIgdmVyc2lvbiBm cm9tIGZsYXNrIHNlc3Npb24gaWYgZmxhc2sgc2VydmVyIHdhcwotICAgICAgICAjIHJlc3RhcnRl ZC4gQXMgd2UgbmVlZCBzZXJ2ZXIgdmVyc2lvbiB0byByZXNvbHZlIHNxbCB0ZW1wbGF0ZSBwYXRo cy4KLSAgICAgICAgbWFzdGVycGFzc19wcm9jZXNzZWQgPSBwcm9jZXNzX21hc3RlcnBhc3NfZGlz YWJsZWQoKQotCiAgICAgICAgICMgVGhlIGRhdGEgdmFyaWFibGUgaXMgYSBjb3B5IHNvIGlzIG5v dCBhdXRvbWF0aWNhbGx5IHN5bmNlZAogICAgICAgICAjIHVwZGF0ZSBoZXJlCiAgICAgICAgIGlm IG1hc3RlcnBhc3NfcHJvY2Vzc2VkIGFuZCAncGFzc3dvcmQnIGluIGRhdGE6CkBAIC0yNjAsNiAr MjY4LDExIEBAIFdIRVJFIGRiLm9pZCA9IHswfSIiIi5mb3JtYXQoZGlkKSkKICAgICAgICAgaWYg bWFzdGVycGFzc19wcm9jZXNzZWQgYW5kICd0dW5uZWxfcGFzc3dvcmQnIGluIGRhdGE6CiAgICAg ICAgICAgICBkYXRhWyd0dW5uZWxfcGFzc3dvcmQnXSA9IE5vbmUKIAorICAgIGRlZiBfZ2V0X3Nl cnZlcl90eXBlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgR2V0IHNlcnZlciB0eXBlIGFu ZCBzZXJ2ZXIgY2xzLgorICAgICAgICA6cmV0dXJuOgorICAgICAgICAiIiIKICAgICAgICAgZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLnR5cGVzIGltcG9ydCBTZXJ2 ZXJUeXBlCiAKICAgICAgICAgaWYgc2VsZi52ZXIgYW5kIG5vdCBzZWxmLnNlcnZlcl90eXBlOgpA QCAtMjY5LDYgKzI4Miw2MCBAQCBXSEVSRSBkYi5vaWQgPSB7MH0iIiIuZm9ybWF0KGRpZCkpCiAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NscyA9IHN0CiAgICAgICAgICAgICAgICAg ICAgIGJyZWFrCiAKKyAgICBkZWYgX2NoZWNrX2FuZF9yZWNvbm5lY3Rfc2VydmVyKHNlbGYsIGNv bm4sIGNvbm5faW5mbywgZGF0YSk6CisgICAgICAgICIiIgorICAgICAgICBDaGVjayBhbmQgdHJ5 IHRvIHJlY29ubmVjdCB0aGUgc2VydmVyIGlmIHNlcnZlciBwcmV2aW91c2x5IGNvbm5lY3RlZAor ICAgICAgICBhbmQgYXV0b19yZWNvbm5lY3QgaXMgdHJ1ZS4KKyAgICAgICAgOnBhcmFtIGNvbm46 CisgICAgICAgIDp0eXBlIGNvbm46CisgICAgICAgIDpwYXJhbSBjb25uX2luZm86CisgICAgICAg IDp0eXBlIGNvbm5faW5mbzoKKyAgICAgICAgOnBhcmFtIGRhdGE6CisgICAgICAgIDp0eXBlIGRh dGE6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgIDpydHlwZToKKyAgICAgICAgIiIiCisgICAg ICAgIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy50eXBlcyBpbXBv cnQgU2VydmVyVHlwZQorICAgICAgICBpZiBjb25uX2luZm9bJ3dhc0Nvbm5lY3RlZCddIGFuZCBj b25uX2luZm9bJ2F1dG9fcmVjb25uZWN0J106CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg ICAgICAgIyBDaGVjayBTU0ggVHVubmVsIG5lZWRzIHRvIGJlIGNyZWF0ZWQKKyAgICAgICAgICAg ICAgICBpZiBzZWxmLnVzZV9zc2hfdHVubmVsID09IDEgYW5kIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgIG5vdCBzZWxmLnR1bm5lbF9jcmVhdGVkOgorICAgICAgICAgICAgICAgICAgICBzdGF0 dXMsIGVycm9yID0gc2VsZi5jcmVhdGVfc3NoX3R1bm5lbCgKKyAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFbJ3R1bm5lbF9wYXNzd29yZCddKQorCisgICAgICAgICAgICAgICAgICAgICMgQ2hl Y2sgU1NIIFR1bm5lbCBpcyBhbGl2ZSBvciBub3QuCisgICAgICAgICAgICAgICAgICAgIHNlbGYu Y2hlY2tfc3NoX3R1bm5lbF9hbGl2ZSgpCisKKyAgICAgICAgICAgICAgICBjb25uLmNvbm5lY3Qo CisgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkPWRhdGFbJ3Bhc3N3b3JkJ10sCisgICAgICAg ICAgICAgICAgICAgIHNlcnZlcl90eXBlcz1TZXJ2ZXJUeXBlLnR5cGVzKCkKKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgIyBUaGlzIHdpbGwgYWxzbyB1cGRhdGUgd2FzQ29ubmVj dGVkIGZsYWcgaW4KKyAgICAgICAgICAgICAgICAjIGNvbm5lY3Rpb24gc28gbm8gbmVlZCB0byB1 cGRhdGUgdGhlIGZsYWcgbWFudWFsbHkuCisgICAgICAgICAgICBleGNlcHQgQ3J5cHRLZXlNaXNz aW5nOgorICAgICAgICAgICAgICAgICMgbWFpbnRhaW4gdGhlIHN0YXR1cyBhcyB0aGlzIHdpbGwg aGVscCB0byByZXN0b3JlIG9uY2UKKyAgICAgICAgICAgICAgICAjIHRoZSBrZXkgaXMgYXZhaWxh YmxlCisgICAgICAgICAgICAgICAgY29ubi53YXNDb25uZWN0ZWQgPSBjb25uX2luZm9bJ3dhc0Nv bm5lY3RlZCddCisgICAgICAgICAgICAgICAgY29ubi5hdXRvX3JlY29ubmVjdCA9IGNvbm5faW5m b1snYXV0b19yZWNvbm5lY3QnXQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkKKyAgICAgICAg ICAgICAgICBzZWxmLmNvbm5lY3Rpb25zLnBvcChjb25uX2luZm9bJ2Nvbm5faWQnXSkKKyAgICAg ICAgICAgICAgICByYWlzZQorCisgICAgZGVmIF9yZXN0b3JlKHNlbGYsIGRhdGEpOgorICAgICAg ICAiIiIKKyAgICAgICAgSGVscHMgcmVzdG9yaW5nIHRvIHJlY29ubmVjdCB0aGUgYXV0by1jb25u ZWN0IGNvbm5lY3Rpb25zIHNtb290aGx5IG9uCisgICAgICAgIHJlbG9hZC9yZXN0YXJ0IG9mIHRo ZSBhcHAgc2VydmVyLi4KKyAgICAgICAgIiIiCisgICAgICAgICMgcmVzdG9yZSBzZXJ2ZXIgdmVy c2lvbiBmcm9tIGZsYXNrIHNlc3Npb24gaWYgZmxhc2sgc2VydmVyIHdhcworICAgICAgICAjIHJl c3RhcnRlZC4gQXMgd2UgbmVlZCBzZXJ2ZXIgdmVyc2lvbiB0byByZXNvbHZlIHNxbCB0ZW1wbGF0 ZSBwYXRocy4KKyAgICAgICAgbWFzdGVycGFzc19wcm9jZXNzZWQgPSBwcm9jZXNzX21hc3RlcnBh c3NfZGlzYWJsZWQoKQorCisgICAgICAgIFNlcnZlck1hbmFnZXIuX2dldF9wYXNzd29yZF90b19j b25uKGRhdGEsIG1hc3RlcnBhc3NfcHJvY2Vzc2VkKQorICAgICAgICAjIEdldCBzZXJ2ZXIgdHlw ZS4KKyAgICAgICAgc2VsZi5fZ2V0X3NlcnZlcl90eXBlKCkKKwogICAgICAgICAjIFdlIG5lZWQg dG8ga25vdyBhYm91dCB0aGUgZXhpc3Rpbmcgc2VydmVyIHZhcmlhbnQgc3VwcG9ydHMgZHVyaW5n CiAgICAgICAgICMgZmlyc3QgY29ubmVjdGlvbiBmb3IgaWRlbnRpZmljYXRpb25zLgogICAgICAg ICBzZWxmLnBpbmdlZCA9IGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpCkBAIC0yOTcsMzQgKzM2NCw4 IEBAIFdIRVJFIGRiLm9pZCA9IHswfSIiIi5mb3JtYXQoZGlkKSkKICAgICAgICAgICAgICAgICAg ICAgYXJyYXlfdG9fc3RyaW5nPWNvbm5faW5mb1snYXJyYXlfdG9fc3RyaW5nJ10KICAgICAgICAg ICAgICAgICApCiAKLSAgICAgICAgICAgICMgb25seSB0cnkgdG8gcmVjb25uZWN0IGlmIGNvbm5l Y3Rpb24gd2FzIGNvbm5lY3RlZCBwcmV2aW91c2x5Ci0gICAgICAgICAgICAjIGFuZCBhdXRvX3Jl Y29ubmVjdCBpcyB0cnVlLgotICAgICAgICAgICAgaWYgY29ubl9pbmZvWyd3YXNDb25uZWN0ZWQn XSBhbmQgY29ubl9pbmZvWydhdXRvX3JlY29ubmVjdCddOgotICAgICAgICAgICAgICAgIHRyeToK LSAgICAgICAgICAgICAgICAgICAgIyBDaGVjayBTU0ggVHVubmVsIG5lZWRzIHRvIGJlIGNyZWF0 ZWQKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi51c2Vfc3NoX3R1bm5lbCA9PSAxIGFuZCBc Ci0gICAgICAgICAgICAgICAgICAgICAgIG5vdCBzZWxmLnR1bm5lbF9jcmVhdGVkOgotICAgICAg ICAgICAgICAgICAgICAgICAgc3RhdHVzLCBlcnJvciA9IHNlbGYuY3JlYXRlX3NzaF90dW5uZWwo Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsndHVubmVsX3Bhc3N3b3JkJ10pCi0K LSAgICAgICAgICAgICAgICAgICAgICAgICMgQ2hlY2sgU1NIIFR1bm5lbCBpcyBhbGl2ZSBvciBu b3QuCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX3NzaF90dW5uZWxfYWxpdmUo KQotCi0gICAgICAgICAgICAgICAgICAgIGNvbm4uY29ubmVjdCgKLSAgICAgICAgICAgICAgICAg ICAgICAgIHBhc3N3b3JkPWRhdGFbJ3Bhc3N3b3JkJ10sCi0gICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJfdHlwZXM9U2VydmVyVHlwZS50eXBlcygpCi0gICAgICAgICAgICAgICAgICAgICkK LSAgICAgICAgICAgICAgICAgICAgIyBUaGlzIHdpbGwgYWxzbyB1cGRhdGUgd2FzQ29ubmVjdGVk IGZsYWcgaW4KLSAgICAgICAgICAgICAgICAgICAgIyBjb25uZWN0aW9uIHNvIG5vIG5lZWQgdG8g dXBkYXRlIHRoZSBmbGFnIG1hbnVhbGx5LgotICAgICAgICAgICAgICAgIGV4Y2VwdCBDcnlwdEtl eU1pc3Npbmc6Ci0gICAgICAgICAgICAgICAgICAgICMgbWFpbnRhaW4gdGhlIHN0YXR1cyBhcyB0 aGlzIHdpbGwgaGVscCB0byByZXN0b3JlIG9uY2UKLSAgICAgICAgICAgICAgICAgICAgIyB0aGUg a2V5IGlzIGF2YWlsYWJsZQotICAgICAgICAgICAgICAgICAgICBjb25uLndhc0Nvbm5lY3RlZCA9 IGNvbm5faW5mb1snd2FzQ29ubmVjdGVkJ10KLSAgICAgICAgICAgICAgICAgICAgY29ubi5hdXRv X3JlY29ubmVjdCA9IGNvbm5faW5mb1snYXV0b19yZWNvbm5lY3QnXQotICAgICAgICAgICAgICAg IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgICAgICAgICAgICAgY3VycmVudF9hcHAu bG9nZ2VyLmV4Y2VwdGlvbihlKQotICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbm5lY3Rpb25z LnBvcChjb25uX2luZm9bJ2Nvbm5faWQnXSkKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAg ICAgICAgICAgICMgb25seSB0cnkgdG8gcmVjb25uZWN0CisgICAgICAgICAgICBzZWxmLl9jaGVj a19hbmRfcmVjb25uZWN0X3NlcnZlcihjb25uLCBjb25uX2luZm8sIGRhdGEpCiAKICAgICBkZWYg X3Jlc3RvcmVfY29ubmVjdGlvbnMoc2VsZik6CiAgICAgICAgIGZvciBjb25uX2lkIGluIHNlbGYu Y29ubmVjdGlvbnM6CkBAIC0zNTgsMjYgKzM5OSw1MSBAQCBXSEVSRSBkYi5vaWQgPSB7MH0iIiIu Zm9ybWF0KGRpZCkpCiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNl cHRpb24oZSkKICAgICAgICAgICAgICAgICAgICAgcmFpc2UKIAotICAgIGRlZiByZWxlYXNlKHNl bGYsIGRhdGFiYXNlPU5vbmUsIGNvbm5faWQ9Tm9uZSwgZGlkPU5vbmUpOgotICAgICAgICAjIFN0 b3AgdGhlIFNTSCB0dW5uZWwgaWYgcmVsZWFzZSgpIGZ1bmN0aW9uIGNhbGxzIHdpdGhvdXQKLSAg ICAgICAgIyBhbnkgcGFyYW1ldGVyLgorICAgIGRlZiBfc3RvcF9zc2hfdHVubmVsKHNlbGYsIGRp ZCwgZGF0YWJhc2UsIGNvbm5faWQpOgorICAgICAgICAiIiIKKyAgICAgICAgU3RvcCBzc2ggdHVu bmVsIGNvbm5lY3Rpb24gaWYgZnVuY3Rpb24gY2FsbCB3aXRob3V0IGFueSBwYXJhbWV0ZXIuCisg ICAgICAgIDpwYXJhbSBkaWQ6IERhdGFiYXNlIElkLgorICAgICAgICA6cGFyYW0gZGF0YWJhc2U6 IERhdGFiYXNlLgorICAgICAgICA6cGFyYW0gY29ubl9pZDogQ09ubmVjdGlvbiBJZC4KKyAgICAg ICAgOnJldHVybjoKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGRhdGFiYXNlIGlzIE5vbmUgYW5k IGNvbm5faWQgaXMgTm9uZSBhbmQgZGlkIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLnN0b3Bf c3NoX3R1bm5lbCgpCisKKyAgICBkZWYgX2NoZWNrX2RiX2luZm8oc2VsZiwgZGlkLCBjb25uX2lk LCBkYXRhYmFzZSk6CisgICAgICAgICIiIgorICAgICAgICBDaGVjayBkaWQgaXMgbm90IG5vbmUg YW5kIGl0IGlzIHJlc2VudCBpbiBkYl9pbmZvLgorICAgICAgICA6cGFyYW0gZGlkOiBEYXRhYmFz ZSBJZC4KKyAgICAgICAgOnBhcmFtIGNvbm5faWQ6IENvbm5lY3Rpb24gSWQuCisgICAgICAgIDpy ZXR1cm46CisgICAgICAgICIiIgogICAgICAgICBpZiBkYXRhYmFzZSBpcyBOb25lIGFuZCBjb25u X2lkIGlzIE5vbmUgYW5kIGRpZCBpcyBOb25lOgogICAgICAgICAgICAgc2VsZi5zdG9wX3NzaF90 dW5uZWwoKQogCisgICAgICAgIG15X2lkID0gTm9uZQogICAgICAgICBpZiBkaWQgaXMgbm90IE5v bmU6CiAgICAgICAgICAgICBpZiBkaWQgaW4gc2VsZi5kYl9pbmZvIGFuZCAnZGF0bmFtZScgaW4g c2VsZi5kYl9pbmZvW2RpZF06CiAgICAgICAgICAgICAgICAgZGF0YWJhc2UgPSBzZWxmLmRiX2lu Zm9bZGlkXVsnZGF0bmFtZSddCiAgICAgICAgICAgICAgICAgaWYgZGF0YWJhc2UgaXMgTm9uZToK LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgICAgIHJl dHVybiBUcnVlLCBGYWxzZSwgbXlfaWQKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg ICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUsIEZhbHNlLCBteV9p ZAogCi0gICAgICAgIG15X2lkID0gTm9uZQogICAgICAgICBpZiBjb25uX2lkIGlzIG5vdCBOb25l OgogICAgICAgICAgICAgbXlfaWQgPSAnQ09OTjp7MH0nLmZvcm1hdChjb25uX2lkKQogICAgICAg ICBlbGlmIGRhdGFiYXNlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgbXlfaWQgPSAnREI6ezB9 Jy5mb3JtYXQoZGF0YWJhc2UpCiAKKyAgICAgICAgcmV0dXJuIEZhbHNlLCBUcnVlLCBteV9pZAor CisgICAgZGVmIHJlbGVhc2Uoc2VsZiwgZGF0YWJhc2U9Tm9uZSwgY29ubl9pZD1Ob25lLCBkaWQ9 Tm9uZSk6CisgICAgICAgICMgU3RvcCB0aGUgU1NIIHR1bm5lbCBpZiByZWxlYXNlKCkgZnVuY3Rp b24gY2FsbHMgd2l0aG91dAorICAgICAgICAjIGFueSBwYXJhbWV0ZXIuCisgICAgICAgIGlzX3Jl dHVybiwgcmV0dXJuX3ZhbHVlLCBteV9pZCA9IHNlbGYuX2NoZWNrX2RiX2luZm8oZGlkLCBjb25u X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGFiYXNlKQorICAgICAgICBpZiBpc19yZXR1cm46CisgICAgICAgICAgICBy ZXR1cm4gcmV0dXJuX3ZhbHVlCisKICAgICAgICAgaWYgbXlfaWQgaXMgbm90IE5vbmU6CiAgICAg ICAgICAgICBpZiBteV9pZCBpbiBzZWxmLmNvbm5lY3Rpb25zOgogICAgICAgICAgICAgICAgIHNl bGYuY29ubmVjdGlvbnNbbXlfaWRdLl9yZWxlYXNlKCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L3V0aWxzL3NxbGF1dG9jb21wbGV0ZS9wYXJzZXV0aWxzLnB5IGIvd2ViL3BnYWRtaW4vdXRpbHMv c3FsYXV0b2NvbXBsZXRlL3BhcnNldXRpbHMucHkKaW5kZXggODUyNTdiMC4uOWYyYjVkYyAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvc3FsYXV0b2NvbXBsZXRlL3BhcnNldXRpbHMucHkK KysrIGIvd2ViL3BnYWRtaW4vdXRpbHMvc3FsYXV0b2NvbXBsZXRlL3BhcnNldXRpbHMucHkKQEAg LTEyNCwyNiArMTI0LDM3IEBAIGRlZiBleHRyYWN0X2Zyb21fcGFydChwYXJzZWQsIHN0b3BfYXRf cHVuY3R1YXRpb249VHJ1ZSk6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKIAorZGVmIF9n ZXRfaWRlbnRpZmllcnMoaXRlbSwgYWxsb3dfZnVuY3Rpb25zKToKKyAgICAiIiIKKyAgICBnZXQg aWRlbnRpZmllcnMgYWxpYXMuCisgICAgOnBhcmFtIGl0ZW06CisgICAgOnBhcmFtIGFsbG93X2Z1 bmN0aW9uczoKKyAgICA6cmV0dXJuOgorICAgIDpydHlwZToKKyAgICAiIiIKKyAgICBmb3IgaWRl bnRpZmllciBpbiBpdGVtLmdldF9pZGVudGlmaWVycygpOgorICAgICAgICAjIFNvbWV0aW1lcyBL ZXl3b3JkcyAoc3VjaCBhcyBGUk9NICkgYXJlIGNsYXNzaWZpZWQgYXMKKyAgICAgICAgIyBpZGVu dGlmaWVycyB3aGljaCBkb24ndCBoYXZlIHRoZSBnZXRfcmVhbF9uYW1lKCkgbWV0aG9kLgorICAg ICAgICB0cnk6CisgICAgICAgICAgICBzY2hlbWFfbmFtZSA9IGlkZW50aWZpZXIuZ2V0X3BhcmVu dF9uYW1lKCkKKyAgICAgICAgICAgIHJlYWxfbmFtZSA9IGlkZW50aWZpZXIuZ2V0X3JlYWxfbmFt ZSgpCisgICAgICAgICAgICBpc19mdW5jdGlvbiA9IChhbGxvd19mdW5jdGlvbnMgYW5kCisgICAg ICAgICAgICAgICAgICAgICAgICAgICBfaWRlbnRpZmllcl9pc19mdW5jdGlvbihpZGVudGlmaWVy KSkKKyAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorICAgICAgICAgICAgY29udGludWUK KyAgICAgICAgaWYgcmVhbF9uYW1lOgorICAgICAgICAgICAgeWllbGQgVGFibGVSZWZlcmVuY2Uo CisgICAgICAgICAgICAgICAgc2NoZW1hX25hbWUsIHJlYWxfbmFtZSwgaWRlbnRpZmllci5nZXRf YWxpYXMoKSwKKyAgICAgICAgICAgICAgICBpc19mdW5jdGlvbgorICAgICAgICAgICAgKQorCisK IGRlZiBleHRyYWN0X3RhYmxlX2lkZW50aWZpZXJzKHRva2VuX3N0cmVhbSwgYWxsb3dfZnVuY3Rp b25zPVRydWUpOgogICAgICIiInlpZWxkcyB0dXBsZXMgb2YgVGFibGVSZWZlcmVuY2UgbmFtZWR0 dXBsZXMiIiIKIAogICAgIGZvciBpdGVtIGluIHRva2VuX3N0cmVhbToKICAgICAgICAgaWYgaXNp bnN0YW5jZShpdGVtLCBJZGVudGlmaWVyTGlzdCk6Ci0gICAgICAgICAgICBmb3IgaWRlbnRpZmll ciBpbiBpdGVtLmdldF9pZGVudGlmaWVycygpOgotICAgICAgICAgICAgICAgICMgU29tZXRpbWVz IEtleXdvcmRzIChzdWNoIGFzIEZST00gKSBhcmUgY2xhc3NpZmllZCBhcwotICAgICAgICAgICAg ICAgICMgaWRlbnRpZmllcnMgd2hpY2ggZG9uJ3QgaGF2ZSB0aGUgZ2V0X3JlYWxfbmFtZSgpIG1l dGhvZC4KLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNjaGVtYV9u YW1lID0gaWRlbnRpZmllci5nZXRfcGFyZW50X25hbWUoKQotICAgICAgICAgICAgICAgICAgICBy ZWFsX25hbWUgPSBpZGVudGlmaWVyLmdldF9yZWFsX25hbWUoKQotICAgICAgICAgICAgICAgICAg ICBpc19mdW5jdGlvbiA9IChhbGxvd19mdW5jdGlvbnMgYW5kCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF9pZGVudGlmaWVyX2lzX2Z1bmN0aW9uKGlkZW50aWZpZXIpKQotICAg ICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAg Y29udGludWUKLSAgICAgICAgICAgICAgICBpZiByZWFsX25hbWU6Ci0gICAgICAgICAgICAgICAg ICAgIHlpZWxkIFRhYmxlUmVmZXJlbmNlKAotICAgICAgICAgICAgICAgICAgICAgICAgc2NoZW1h X25hbWUsIHJlYWxfbmFtZSwgaWRlbnRpZmllci5nZXRfYWxpYXMoKSwKLSAgICAgICAgICAgICAg ICAgICAgICAgIGlzX2Z1bmN0aW9uCi0gICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg IF9nZXRfaWRlbnRpZmllcnMoaXRlbSwgYWxsb3dfZnVuY3Rpb25zKQogICAgICAgICBlbGlmIGlz aW5zdGFuY2UoaXRlbSwgSWRlbnRpZmllcik6CiAgICAgICAgICAgICByZWFsX25hbWUgPSBpdGVt LmdldF9yZWFsX25hbWUoKQogICAgICAgICAgICAgc2NoZW1hX25hbWUgPSBpdGVtLmdldF9wYXJl bnRfbmFtZSgpCg== --000000000000a19d7c05aec9f74e--