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 1l2YY1-0007ik-1n for pgadmin-hackers@arkaria.postgresql.org; Thu, 21 Jan 2021 11:54:45 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l2YXz-0004jw-Ve for pgadmin-hackers@arkaria.postgresql.org; Thu, 21 Jan 2021 11:54:43 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l2YXz-0004jo-Ia for pgadmin-hackers@lists.postgresql.org; Thu, 21 Jan 2021 11:54:43 +0000 Received: from mail-qv1-xf2c.google.com ([2607:f8b0:4864:20::f2c]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l2YXw-00043M-22 for pgadmin-hackers@postgresql.org; Thu, 21 Jan 2021 11:54:42 +0000 Received: by mail-qv1-xf2c.google.com with SMTP id cu2so719962qvb.12 for ; Thu, 21 Jan 2021 03:54:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=o03vsLtiFmCJk2rEbkrJ5/PMvQYojHvUYqK3uoGk0nM=; b=jejFxwwUsiIFKkTuzGAlikk5TZzVaIA1VJ+mEAY9/hWrgT38WG98/5mkdz6R7QwbQd UAa7MuvTA+/tF9WFFZZNDuIuQkQrarTOQI2Lo0P143kQv8w55rMEwTEiECJXlltAmX3S aqkYNVe668DeAupWYoCV2BVYM1VvlsPkBAmjA2UFfVZVEx/ADcS2RxwqpS9GAKFG/g+j trXh0uPW4A+3f1WxNymqV9uVBEKaZLL/DiHzl/91kV0EzekQtb6qX6Oxbod7n4VFTYWd ko9TYseD/YHXSZYgEJ4A5szOVn1abHKOnof409fVZr4/yuLNnsmrFb13GYKkUUpoM7Yi 6sVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=o03vsLtiFmCJk2rEbkrJ5/PMvQYojHvUYqK3uoGk0nM=; b=MQDT9cxWryNb2zdaJ2q4IIYOQrU+nS28iRFPpcfunXNeQpEGzhiNABD1lNkRaZyW04 MMxkTV1Frz+Hu7bCDLDj+99opp3DDOW2g0SUkSFi96PnS7eHRXdY0J17p19Uwb62Bvh9 StBzyWvGJZUrS38aDy1DUqQ+QT5W26hlhgRfQxAtW+klDwS1/W+McOPChlclX0PTGuWI PDr6q8oC9UNsr9ZLzBCHnyQjsQOfvTzQB4jhQfF5EwoULoAtImjQLyPzG2lPzUAak9U1 PW5Q6EUopR0/MmRA9VvGBaxsCyMu0si77YU0iVIYQNjJ76RNjpdYba0lxzcc7m+J7z8g j/ZA== X-Gm-Message-State: AOAM5311weiuI8dxjgqIBatdKG2PDsE8jfJQoiQz1D3GiKgyNZgQKuqU YvwMhYiIxMHvmMqh7FDusIdZiq0wMFyzofU+kzweUhdu0f51PaetBVN30Zm4Z+m8ftEyAwzeHzi HMgMxqX0oZFPchUft0X/sWZzCNqafAKCvcmCB9esefoaDd76onEv7NMvHV+Iqeq7k2qxtw9TE50 HSwcnHb4VYzpRDp8Tu191Ckhb05kbrx6ykfalY7tRX/Dg6Wh1c+AOFQ8xPHg== X-Google-Smtp-Source: ABdhPJymSeicC6GE+azXiK9l+Jt/59r4JqI+x1SSgYK7zf3/nS2QQnEp2KjjzwZ8MQOG3B3QsA8mG1QcQxpo1Z8JLnQ= X-Received: by 2002:a0c:b59a:: with SMTP id g26mr13868478qve.26.1611230077632; Thu, 21 Jan 2021 03:54:37 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Rahul Shirsat Date: Thu, 21 Jan 2021 17:24:01 +0530 Message-ID: Subject: Re: SonarQube Fixes #4 Database & Foreign Tables To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="0000000000006df8ae05b967bc51" 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 --0000000000006df8ae05b967bc51 Content-Type: multipart/alternative; boundary="0000000000006df8ac05b967bc4f" --0000000000006df8ac05b967bc4f Content-Type: text/plain; charset="UTF-8" On Thu, Jan 21, 2021 at 2:47 PM Akshay Joshi wrote: > Hi Rahul > > Following are the review comments: > > - Change the name of the function 'get_pg_db_properties'. The function > returns lastsysoid and datistemplate only and I assume it is applicable for > PG/EPAS both. > > *Done!* > > - Add comments for all the new functions introduce in the patch. > > *Added!* > > On Thu, Jan 21, 2021 at 2:36 PM Rahul Shirsat < > rahul.shirsat@enterprisedb.com> wrote: > >> Hi Hackers, >> >> Please find the attached patch which resolves the sonar qube issues >> relating: >> >> >> 1. *Foreign Tables* -*Refactor this function to reduce its Cognitive >> Complexity from 67 to the 15 allowed.* >> 2. *Database* -*Refactor this function to reduce its Cognitive >> Complexity from 17 to the 15 allowed.* >> >> >> -- >> *Rahul Shirsat* >> Senior Software Engineer | EnterpriseDB Corporation. >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Principal Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- *Rahul Shirsat* Senior Software Engineer | EnterpriseDB Corporation. --0000000000006df8ac05b967bc4f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


=
On Thu, Jan 21, 2021 at 2:47 PM Aksha= y Joshi <akshay.joshi@e= nterprisedb.com> wrote:
Hi=C2=A0Rahul

Following = are the review comments:
  • Change the name of the function = 'get_pg_db_properties'. The function returns lastsysoid=C2=A0and da= tistemplate only and I assume it is applicable for PG/EPAS both.
<= /div>
=C2=A0Done!
  • Add comments for = all the new functions introduce in the patch.
=C2=A0Added!

On Thu, Jan 21, 2021 at 2:36 PM Rahul Shirsat <rahul.shirsat@enterprisedb.= com> wrote:
Hi Hackers,

Please find the attached= patch which resolves the sonar qube issues relating:

<= div>
  1. Foreign Tables -Refactor this function to reduce its Cognitive Compl= exity from 67 to the 15 allowed.
  2. Database -Refactor th= is function to reduce its Cognitive Complexity from 17 to the 15 allowed.

--
Rahul Shirsat
Senior Software Engineer=C2= =A0|=C2=A0EnterpriseDB=C2=A0Corporation.


--
Thank= s & Regards
Akshay Joshi
pgAdmin Hacker | Principal Softw= are Architect
EDB Po= stgres
Mobile: +91 976-788-8246



--
Rahul Shirsat
Senior Software Engineer=C2=A0|=C2=A0EnterpriseDB=C2=A0Corporation.=
--0000000000006df8ac05b967bc4f-- --0000000000006df8ae05b967bc51 Content-Type: application/octet-stream; name="sonar_issues_database_foreign_tables_v2.patch" Content-Disposition: attachment; filename="sonar_issues_database_foreign_tables_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kk6srdlb0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9fX2luaXRfXy5weQppbmRleCBhZWRjODNlODYuLjg3MzIzYjM0MiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9fX2luaXRfXy5weQpAQCAtMjEsNyArMjEsOCBAQCBpbXBvcnQg cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycyBhcyBzZXJ2ZXJzCiBmcm9tIGNv bmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIGZyb20gcGdhZG1pbi5icm93c2VyLmNvbGxl Y3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnV0aWxzIGltcG9ydCBcCi0gICAgcGFyc2Vf c2VjX2xhYmVsc19mcm9tX2RiLCBwYXJzZV92YXJpYWJsZXNfZnJvbV9kYgorICAgIHBhcnNlX3Nl Y19sYWJlbHNfZnJvbV9kYiwgcGFyc2VfdmFyaWFibGVzX2Zyb21fZGIsIFwKKyAgICBnZXRfYXR0 cmlidXRlc19mcm9tX2RiX2luZm8KIGZyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy51dGlscyBpbXBvcnQgcGFyc2VfcHJpdl9mcm9tX2RiLCBcCiAgICAgcGFyc2VfcHJp dl90b19kYgogZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmll dwpAQCAtMTkxLDE2ICsxOTIsMTUgQEAgY2xhc3MgRGF0YWJhc2VWaWV3KFBHQ2hpbGROb2RlVmll dyk6CiAgICAgICAgICAgICAgICAgICAgICMgSWYgY29ubmVjdGlvbiB0byBkYXRhYmFzZSBpcyBu b3QgYWxsb3dlZCB0aGVuCiAgICAgICAgICAgICAgICAgICAgICMgcHJvdmlkZSBnZW5lcmljIGNv bm5lY3Rpb24KICAgICAgICAgICAgICAgICAgICAgaWYga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1h bmFnZXIuZGJfaW5mbzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RiID0gc2VsZi5t YW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQnXV0KLSAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGF0bGFzdHN5c29pZCA9IHNlbGYuX2RiWydkYXRsYXN0c3lzb2lkJ10KLSAgICAgICAgICAg ICAgICAgICAgICAgIGlmIHNlbGYuX2RiWydkYXRhbGxvd2Nvbm4nXSBpcyBGYWxzZToKKworICAg ICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkLCBzZWxmLmRhdGlzdGVtcGxh dGUsIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhbGxvd2Nvbm4gPSBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZ2V0X2F0dHJpYnV0ZXNfZnJvbV9kYl9pbmZvKHNlbGYu bWFuYWdlciwga3dhcmdzKQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkYXRhbGxvd2Nv bm4gaXMgRmFsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfYWxsb3dfY29ubmVjdGlvbiA9IEZhbHNlCiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGF0aXN0ZW1wbGF0ZSA9IFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1h bmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2RhdGlzdGVtcGxhdGUnXSBpZiAnZGF0aXN0ZW1wbGF0ZScgaW4gXAotICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYubWFuYWdlci5kYl9pbmZvW2t3YXJnc1snZGlkJ11dIGVs c2UgRmFsc2UKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBzZWxm LmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbigpCiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvX19pbml0X18ucHkKaW5k ZXggMTFkM2EzZGI1Li5iZDY3YWVhN2MgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL19f aW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL19faW5pdF9fLnB5CkBAIC0yMzcsODMg KzIzNywzMCBAQCBjbGFzcyBGb3JlaWduVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5 cGVSZWFkZXIsCiAgICAgICAgIEB3cmFwcyhmKQogICAgICAgICBkZWYgd3JhcChzZWxmLCAqKmt3 YXJncyk6CiAKLSAgICAgICAgICAgIGRhdGEgPSB7fQotCiAgICAgICAgICAgICBpZiByZXF1ZXN0 LmRhdGE6CiAgICAgICAgICAgICAgICAgcmVxID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEsIGVu Y29kaW5nPSd1dGYtOCcpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJlcSA9 IHJlcXVlc3QuYXJncyBvciByZXF1ZXN0LmZvcm0KIAotICAgICAgICAgICAgaWYgJ2ZvaWQnIG5v dCBpbiBrd2FyZ3M6Ci0gICAgICAgICAgICAgICAgcmVxdWlyZWRfYXJncyA9IFsKLSAgICAgICAg ICAgICAgICAgICAgJ25hbWUnLAotICAgICAgICAgICAgICAgICAgICAnZnRzcnZuYW1lJwotICAg ICAgICAgICAgICAgIF0KLQotICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJn czoKLSAgICAgICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiByZXEgb3IgcmVxW2FyZ10gPT0g Jyc6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3VjY2Vzcz0wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9y bXNnPWdldHRleHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb3VsZCBub3Qg ZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyICh7fSkuIgotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkuZm9ybWF0KGFyZykKLSAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIGludmFsaWQsIGFyZyA9IHNlbGYuX2NoZWNrX3ZhbGlkX2ZvaWRfaW5wdXQoa3dhcmdzLCBy ZXEpCisKKyAgICAgICAgICAgIGlmIGludmFsaWQ6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAgICAg ICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1n ZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5kIHRoZSByZXF1 aXJlZCBwYXJhbWV0ZXIgKHt9KS4iCisgICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KGFyZykK KyAgICAgICAgICAgICAgICApCiAKICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBs aXN0X3BhcmFtcyA9IFtdCiAgICAgICAgICAgICAgICAgaWYgcmVxdWVzdC5tZXRob2QgPT0gJ0dF VCc6CiAgICAgICAgICAgICAgICAgICAgIGxpc3RfcGFyYW1zID0gWydjb25zdHJhaW50cycsICdj b2x1bW5zJywgJ2Z0b3B0aW9ucycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdzZWNsYWJlbHMnLCAnaW5oZXJpdHMnLCAnYWNsJ10KICAgICAgICAgICAgICAgICBlbHNlOgog ICAgICAgICAgICAgICAgICAgICBsaXN0X3BhcmFtcyA9IFsnaW5oZXJpdHMnXQogCi0gICAgICAg ICAgICAgICAgZm9yIGtleSBpbiByZXE6Ci0gICAgICAgICAgICAgICAgICAgIGlmICgKLSAgICAg ICAgICAgICAgICAgICAgICAgIGtleSBpbiBsaXN0X3BhcmFtcyBhbmQgcmVxW2tleV0gIT0gJycg YW5kCi0gICAgICAgICAgICAgICAgICAgICAgICByZXFba2V5XSBpcyBub3QgTm9uZQotICAgICAg ICAgICAgICAgICAgICApOgotICAgICAgICAgICAgICAgICAgICAgICAgIyBDb3ZlcnRzIHN0cmlu ZyBpbnRvIHB5dGhvbiBsaXN0IGFzIGV4cGVjdGVkLgotICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YVtrZXldID0gW10KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNl KHJlcVtrZXldLCBsaXN0KSBhbmQgcmVxW2tleV06Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YVtrZXldID0ganNvbi5sb2FkcyhyZXFba2V5XSwgZW5jb2Rpbmc9J3V0Zi04JykKLQot ICAgICAgICAgICAgICAgICAgICAgICAgaWYga2V5ID09ICdpbmhlcml0cyc6Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgIyBDb252ZXJ0IFRhYmxlIGlkcyBmcm9tIHVuaWNvZGUvc3RyaW5n IHRvIGludAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgYW5kIG1ha2UgdHVwbGUgZm9y ICdJTicgcXVlcnkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdHMgPSB0dXBs ZShbaW50KHgpIGZvciB4IGluIGRhdGFba2V5XV0pCi0KLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBsZW4oaW5oZXJpdHMpID09IDE6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICMgUHl0aG9uIHR1cHBsZSBoYXMgLCBhZnRlciB0aGUgZmlyc3QgcGFyYW0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIyBpbiBjYXNlIG9mIHNpbmdsZSBwYXJhbWV0ZXIuCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU28sIHdlIG5lZWQgdG8gbWFrZSBpdCB0 dXBsZSBleHBsaWNpdGx5LgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0 cyA9ICIoIiArIHN0cihpbmhlcml0c1swXSkgKyAiKSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiBpbmhlcml0czoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBGZXRj aCBUYWJsZSBOYW1lcyBmcm9tIHRoZWlyIHJlc3BlY3RpdmUgSWRzLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAjIGFzIHdlIG5lZWQgVGFibGUgbmFtZXMgdG8gZ2VuZXJhdGUgdGhl IFNRTC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLl9HRVRfVEFCTEVTX1NRTF0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYXR0cmVsaWQ9aW5oZXJpdHMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCi0KLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cmVzKQotCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdpbmhlcml0cycgaW4g cmVzWydyb3dzJ11bMF06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRh W2tleV0gPSByZXNbJ3Jvd3MnXVswXVsnaW5oZXJpdHMnXQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldID0gW10KLQotICAgICAgICAgICAgICAgICAgICBlbGlmIGtleSA9PSAndHlwbm90bnVs bCc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiByZXFba2V5XSA9PSAndHJ1ZScgb3IgcmVx W2tleV0gaXMgVHJ1ZToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBU cnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHJlcVtrZXldID09ICdmYWxzZScgb3Ig cmVxW2tleV0gaXMgRmFsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXld ID0gRmFsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YVtrZXldID0gJycKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XSA9IHJlcVtrZXldCisgICAgICAgICAgICAg ICAgZGF0YSA9IHNlbGYuX3ZhbGlkYXRlX3JlcShyZXEsIGxpc3RfcGFyYW1zKQogCiAgICAgICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCkBAIC0zMjMsNiArMjcwLDEwMiBAQCBj bGFzcyBGb3JlaWduVGFibGVWaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIsCiAK ICAgICAgICAgcmV0dXJuIHdyYXAKIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX2NoZWNr X3ZhbGlkX2ZvaWRfaW5wdXQoa3dhcmdzLCByZXEpOgorCisgICAgICAgICIiIgorICAgICAgICBj aGVjayBmb3IgdmFsaWQgRm9yZWlnbiBUYWJsZSBpZAorICAgICAgICA6cGFyYW0ga3dhcmdzOiB1 c2VyIGlucHV0CisgICAgICAgIDpwYXJhbSByZXE6IHJlcXVlc3Qgb2JqZWN0CisgICAgICAgICIi IgorCisgICAgICAgIGlmICdmb2lkJyBub3QgaW4ga3dhcmdzOgorICAgICAgICAgICAgcmVxdWly ZWRfYXJncyA9IFsKKyAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAgJ2Z0 c3J2bmFtZScKKyAgICAgICAgICAgIF0KKworICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1aXJl ZF9hcmdzOgorICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gcmVxIG9yIHJlcVthcmddID09 ICcnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgYXJnCisgICAgICAgIHJldHVy biBGYWxzZSwgJycKKworICAgIGRlZiBfdmFsaWRhdGVfcmVxKHNlbGYsIHJlcSwgbGlzdF9wYXJh bXMpOgorCisgICAgICAgICIiIgorICAgICAgICBWYWxpZGF0ZSAmIGNvbnZlcnQgdGhlIHN0cmlu ZyB0byBkZXNpcmVkIG91dHB1dCBmb3JtYXQKKyAgICAgICAgOnBhcmFtIHJlcTogcmVxdWVzdCBk YXRhCisgICAgICAgIDpwYXJhbSBsaXN0X3BhcmFtczogcHJlcGFyZWQgbGlzdCBvZiBpbmhlcml0 LCBjb25zdHJhaW50cywgZXRjLgorICAgICAgICA6cmV0dXJuOiBkYXRhCisgICAgICAgICIiIgor CisgICAgICAgIGRhdGEgPSB7fQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBrZXkg aW4gcmVxOgorICAgICAgICAgICAgICAgIGlmICgKKyAgICAgICAgICAgICAgICAgICAga2V5IGlu IGxpc3RfcGFyYW1zIGFuZCByZXFba2V5XSAhPSAnJyBhbmQKKyAgICAgICAgICAgICAgICAgICAg cmVxW2tleV0gaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICApOgorICAgICAgICAgICAgICAg ICAgICAjIENvdmVydHMgc3RyaW5nIGludG8gcHl0aG9uIGxpc3QgYXMgZXhwZWN0ZWQuCisgICAg ICAgICAgICAgICAgICAgIGRhdGFba2V5XSA9IFtdCisgICAgICAgICAgICAgICAgICAgIHNlbGYu X2NvbnZlcnRfc3RyaW5nX3RvX2xpc3QocmVxLCBkYXRhLCBrZXkpCisKKyAgICAgICAgICAgICAg ICBlbGlmIGtleSA9PSAndHlwbm90bnVsbCc6CisgICAgICAgICAgICAgICAgICAgIGlmIHJlcVtr ZXldID09ICd0cnVlJyBvciByZXFba2V5XSBpcyBUcnVlOgorICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YVtrZXldID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBlbGlmIHJlcVtrZXldID09 ICdmYWxzZScgb3IgcmVxW2tleV0gaXMgRmFsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBk YXRhW2tleV0gPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YVtrZXldID0gJycKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg ICAgICAgICAgICAgICBkYXRhW2tleV0gPSByZXFba2V5XQorCisgICAgICAgIGV4Y2VwdCBFeGNl cHRpb24gYXMgZToKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5leGNlcHRpb24oZSkK KyAgICAgICAgICAgIHJhaXNlIGUKKworICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIF9j b252ZXJ0X3N0cmluZ190b19saXN0KHNlbGYsIHJlcSwgZGF0YSwga2V5KToKKworICAgICAgICAi IiIKKyAgICAgICAgQ29udmVydCB0aGUgc3RyaW5nIHdpdGggdXRmLTggYmFzZSB0byBsaXN0Cisg ICAgICAgIDpwYXJhbSByZXE6IHJlcXVlc3QgZGF0YQorICAgICAgICA6cGFyYW0gZGF0YTogb3V0 cHV0CisgICAgICAgIDpwYXJhbSBrZXk6IGluZGV4IGZvciBkYXRhCisgICAgICAgICIiIgorCisg ICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlcVtrZXldLCBsaXN0KSBhbmQgcmVxW2tleV06Cisg ICAgICAgICAgICBkYXRhW2tleV0gPSBqc29uLmxvYWRzKHJlcVtrZXldLCBlbmNvZGluZz0ndXRm LTgnKQorCisgICAgICAgIGlmIGtleSA9PSAnaW5oZXJpdHMnOgorICAgICAgICAgICAgIyBDb252 ZXJ0IFRhYmxlIGlkcyBmcm9tIHVuaWNvZGUvc3RyaW5nIHRvIGludAorICAgICAgICAgICAgIyBh bmQgbWFrZSB0dXBsZSBmb3IgJ0lOJyBxdWVyeS4KKyAgICAgICAgICAgIGluaGVyaXRzID0gdHVw bGUoW2ludCh4KSBmb3IgeCBpbiBkYXRhW2tleV1dKQorCisgICAgICAgICAgICBpZiBsZW4oaW5o ZXJpdHMpID09IDE6CisgICAgICAgICAgICAgICAgIyBQeXRob24gdHVwcGxlIGhhcyAsIGFmdGVy IHRoZSBmaXJzdCBwYXJhbQorICAgICAgICAgICAgICAgICMgaW4gY2FzZSBvZiBzaW5nbGUgcGFy YW1ldGVyLgorICAgICAgICAgICAgICAgICMgU28sIHdlIG5lZWQgdG8gbWFrZSBpdCB0dXBsZSBl eHBsaWNpdGx5LgorICAgICAgICAgICAgICAgIGluaGVyaXRzID0gIigiICsgc3RyKGluaGVyaXRz WzBdKSArICIpIgorICAgICAgICAgICAgaWYgaW5oZXJpdHM6CisgICAgICAgICAgICAgICAgIyBG ZXRjaCBUYWJsZSBOYW1lcyBmcm9tIHRoZWlyIHJlc3BlY3RpdmUgSWRzLAorICAgICAgICAgICAg ICAgICMgYXMgd2UgbmVlZCBUYWJsZSBuYW1lcyB0byBnZW5lcmF0ZSB0aGUgU1FMLgorICAgICAg ICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuX0dFVF9UQUJMRVNfU1FMXSksCisgICAgICAgICAgICAgICAgICAgIGF0dHJlbGlkPWlu aGVyaXRzKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChTUUwpCisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgICAgIGlmICdpbmhlcml0cycgaW4gcmVzWydyb3dzJ11bMF06CisgICAgICAgICAg ICAgICAgICAgIGRhdGFba2V5XSA9IHJlc1sncm93cyddWzBdWydpbmhlcml0cyddCisgICAgICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrZXldID0gW10KKwogICAg IGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6CiAgICAgICAgICIiIgogICAgICAgICBXb3JrcyBh cyBhIGRlY29yYXRvci4KQEAgLTM0NCwxNCArMzg3LDEwIEBAIGNsYXNzIEZvcmVpZ25UYWJsZVZp ZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlciwKICAgICAgICAgICAgICAgICBpZiBz ZWxmLm1hbmFnZXIuZGJfaW5mbyBpcyBub3QgTm9uZSBhbmQgXAogICAgICAgICAgICAgICAgIGt3 YXJnc1snZGlkJ10gaW4gc2VsZi5tYW5hZ2VyLmRiX2luZm8gZWxzZSAwCiAKLSAgICAgICAgICAg IHNlbGYuZGF0aXN0ZW1wbGF0ZSA9IEZhbHNlCi0gICAgICAgICAgICBpZiAoCi0gICAgICAgICAg ICAgICAgc2VsZi5tYW5hZ2VyLmRiX2luZm8gaXMgbm90IE5vbmUgYW5kCi0gICAgICAgICAgICAg ICAga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBhbmQKLSAgICAgICAgICAg ICAgICAnZGF0aXN0ZW1wbGF0ZScgaW4gc2VsZi5tYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQn XV0KLSAgICAgICAgICAgICk6Ci0gICAgICAgICAgICAgICAgc2VsZi5kYXRpc3RlbXBsYXRlID0g c2VsZi5tYW5hZ2VyLmRiX2luZm9bCi0gICAgICAgICAgICAgICAgICAgIGt3YXJnc1snZGlkJ11d WydkYXRpc3RlbXBsYXRlJ10KKyAgICAgICAgICAgIHNlbGYuZGF0aXN0ZW1wbGF0ZSA9IFwKKyAg ICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsnZGF0aXN0 ZW1wbGF0ZSddIFwKKyAgICAgICAgICAgICAgICBpZiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBpcyBu b3QgTm9uZSBhbmQgXAorICAgICAgICAgICAgICAgIGt3YXJnc1snZGlkJ10gaW4gc2VsZi5tYW5h Z2VyLmRiX2luZm8gZWxzZSBGYWxzZQogCiAgICAgICAgICAgICAjIFNldCB0ZW1wbGF0ZSBwYXRo IGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKICAgICAgICAgICAgICMgb24gdGhlIHNlcnZlciB2 ZXJzaW9uLgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3V0aWxzLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3V0aWxzLnB5CmluZGV4IDJlYjEyYjI2NS4uMzBmM2Q5ZTQy IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvdXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3V0aWxzLnB5CkBAIC0xMDUsMyArMTA1LDI2IEBAIGRlZiBfY2hl Y2tfdmFyX3R5cGUodmFyX3ZhbHVlLCB2YXJfbmFtZSwgcm93KToKICAgICAgICAgdmFyX2RpY3Rb J2RhdGFiYXNlJ10gPSByb3dbJ2RiX25hbWUnXQogCiAgICAgcmV0dXJuIHZhcl9kaWN0CisKKwor ZGVmIGdldF9hdHRyaWJ1dGVzX2Zyb21fZGJfaW5mbyhtYW5hZ2VyLCBrd2FyZ3MpOgorCisgICAg IiIiCisgICAgRnVuY3Rpb24gdG8gZ2V0IGF0dHJpYnV0ZXMgZnJvbSBkYl9pbmZvLCBzZW5kIGRl ZmF1bHQgdmFsdWVzIGlmIG5vdCBmb3VuZC4KKyAgICA6cGFyYW0gbWFuYWdlcjogREIgbWFuYWdl cgorICAgIDpwYXJhbSBrd2FyZ3M6IHVzZXIgaW5wdXQKKyAgICA6cmV0dXJuOiBkYl9pbmZvIGF0 dHJpYnV0ZXMKKyAgICAiIiIKKworICAgIGlmICdkaWQnIGluIGt3YXJncyBhbmQga3dhcmdzWydk aWQnXSBpbiBtYW5hZ2VyLmRiX2luZm86CisKKyAgICAgICAgZGF0bGFzdHN5c29pZCA9IG1hbmFn ZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsnZGF0bGFzdHN5c29pZCddIFwKKyAgICAgICAgICAg IGlmICdkYXRsYXN0c3lzb2lkJyBpbiBtYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQnXV0gZWxz ZSAwCisgICAgICAgIGRhdGlzdGVtcGxhdGUgPSBtYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQn XV1bJ2RhdGlzdGVtcGxhdGUnXSBcCisgICAgICAgICAgICBpZiAnZGF0aXN0ZW1wbGF0ZScgaW4g bWFuYWdlci5kYl9pbmZvW2t3YXJnc1snZGlkJ11dIGVsc2UgRmFsc2UKKyAgICAgICAgZGF0YWxs b3djb25uID0gbWFuYWdlci5kYl9pbmZvW2t3YXJnc1snZGlkJ11dWydkYXRhbGxvd2Nvbm4nXSBc CisgICAgICAgICAgICBpZiAnZGF0YWxsb3djb25uJyBpbiBtYW5hZ2VyLmRiX2luZm9ba3dhcmdz WydkaWQnXV0gZWxzZSBGYWxzZQorCisgICAgICAgIHJldHVybiBkYXRsYXN0c3lzb2lkLCBkYXRp c3RlbXBsYXRlLCBkYXRhbGxvd2Nvbm4KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gMCwgRmFs c2UsIFRydWUK --0000000000006df8ae05b967bc51--