Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aLr0j-0002uV-0Q for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 11:33:13 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aLr0i-0006SL-JP for pgadmin-hackers@arkaria.postgresql.org; Wed, 20 Jan 2016 11:33:12 +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) (envelope-from ) id 1aLr0g-0006SF-N9 for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 11:33:11 +0000 Received: from mail-yk0-x234.google.com ([2607:f8b0:4002:c07::234]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aLr0c-0000oV-TZ for pgadmin-hackers@postgresql.org; Wed, 20 Jan 2016 11:33:09 +0000 Received: by mail-yk0-x234.google.com with SMTP id k129so6001976yke.0 for ; Wed, 20 Jan 2016 03:33:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=ANAoA+LfDm/4I1eQCW2/GKmhN4L7mBJtgDuACnSTnoo=; b=o/WE9WSDJ2ax2w/6fVCfR5YKBtml4nY+QJ9yN+mmPH+U2zhuv47FbMDyTnL3r8lsKi Rzr7lB2E+l6/NEZ3xifdZ5nbAyIzsztMNP4nsrgRBazXBh1PZnnhCGgtP1auqIZDylpG t6fYgO17po0eVO/D/NaW0c/IV3gqxz7FfpSrAz0Nz13JuAJPBHsHzjNio5vkB/y1WYW2 zeNuS3asckwyRGoEwiH+smNZ3gA2hkhff+7aOuHmz8O3+yW1nu4HC760PCLHh6MZh4vZ Z29omX9xytRZsFsaMweQKDhpkLbhrp9o7qBF3GtPgBetfkM08LSI2JCRJ0DZukIZBGEq XR4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ANAoA+LfDm/4I1eQCW2/GKmhN4L7mBJtgDuACnSTnoo=; b=ALvIC+JDEcgFWmeaOdWKnQlAtvA/aevaOzyOkhl+iJQsDiDPZ8Lhpxz+XIOR10QJHn Rt/luzK1ee3kcbLrowKsGOeok5AP5+XBW8Luh1ZLhkBcb3vSyFQCzGMBTjlX0qTk6VtM OrKuwMi2B9wX5UiYNT6QPUVnFsw10h1M5d+lBwiTFU8s1msAEbZUtbMN5btXc0VWiMxH 9BZdhwomxYThV9VvSQ2CpAxtiVdB7vYhZuAzR0DXgXoKkhkLB2Hq9OLFfy4/3xVCHDQs GlCAXdyYVzYWsiK65oD21SnVipBa8ZivCqX5TjnVa1CHxQe+k13D0fvFxyDVkZ30dWtH IrLA== X-Gm-Message-State: ALoCoQk9k4rpl3KvrV1dWHFuFBXPU8doEH+5B6CQ+wQmsdHQ90OuvNAGtGiKFgJuqz+Y5UVwNat1u7lQVd6XC6pzGs67HiJL8SDJzaBTU4pY6Jvg+kMB3d8= MIME-Version: 1.0 X-Received: by 10.37.44.129 with SMTP id s123mr10714467ybs.55.1453289586117; Wed, 20 Jan 2016 03:33:06 -0800 (PST) Received: by 10.129.84.198 with HTTP; Wed, 20 Jan 2016 03:33:05 -0800 (PST) In-Reply-To: References: Date: Wed, 20 Jan 2016 17:03:05 +0530 Message-ID: Subject: Re: patch for cast module From: Sanket Mehta To: Neel Patel Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11431b4e89ce2f0529c25941 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 --001a11431b4e89ce2f0529c25941 Content-Type: multipart/alternative; boundary=001a11431b4e89ce2a0529c2593f --001a11431b4e89ce2a0529c2593f Content-Type: text/plain; charset=UTF-8 Hi Neel. PFA the revised patch which has changed according to your comments. Please do review it and let me know in case anything is missing. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Wed, Jan 20, 2016 at 10:20 AM, Neel Patel wrote: > Hi Sanket, > > Below are the review comments. > > - When we edit any existing cast node then it gives error "*Response > object has no attribute strip*". This error is coming because generated > SQL is > wrong. > - Unnecessary debug logs are coming on console. Please remove unnecessary > debug logs. > - In some of the sql file, 'qtIdent' and 'qtLiteral' is not used. Please > check all the SQL files. > - "Delete" cast functionality is not working. Error is getting displayed > saying *"syntax error at or near "castsource"*. > - "Delete cascade" functionality is not working - error is getting > displayed saying *"The requested URL not found".* > - Do the proper comments, in some of the function like "script_load" , > comments are wrong. > - Is "configs" really required in __init__.py file ? We have not seen any > usage for this. Please remove it if it is not required. > - Remove commented code from the source file. > > Please check all the generated SQL statements . Test the basic > functionality of "create", "Edit" and "Delete" node before sending patch > file. > > Do let us know for any comments/issues. > > Thanks, > Neel Patel > > On Tue, Jan 19, 2016 at 8:06 PM, Sanket Mehta < > sanket.mehta@enterprisedb.com> wrote: > >> Hi, >> >> PFA updated patch for cast module as per check list provided by Neel. >> Please do review it and let me know in case of anything is missing. >> >> >> >> Regards, >> Sanket Mehta >> Sr Software engineer >> Enterprisedb >> >> On Mon, Jan 18, 2016 at 7:16 PM, Sanket Mehta < >> sanket.mehta@enterprisedb.com> wrote: >> >>> Hi, >>> >>> PFA patch for cast module. >>> Please do review it and let me know in case of any issue. >>> >>> >>> Regards, >>> Sanket Mehta >>> Sr Software engineer >>> Enterprisedb >>> >> >> >> >> -- >> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >> To make changes to your subscription: >> http://www.postgresql.org/mailpref/pgadmin-hackers >> >> > --001a11431b4e89ce2a0529c2593f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Neel.

PFA the revised patch which ha= s changed according to your comments.
Please do review it and let= me know in case anything is missing.



Regards,
Sanket Mehta
Sr Software = engineer
Enterprisedb

On Wed, Jan 20, 2016 at 10:20 AM, Neel Patel= <neel.patel@enterprisedb.com> wrote:
Hi Sanket,

=
Below are the review comments.

- When we edit any = existing cast node then it gives error "Response object has no attr= ibute strip". This error is coming because generated SQL is=C2=A0<= div>=C2=A0 wrong.
- Unnecessary debug logs are coming on console. Pleas= e remove unnecessary debug logs.
- In some of the sql file, '= qtIdent' and 'qtLiteral' is not used. Please check all the SQL = files.
- "Delete" cast functionality is not worki= ng. Error is getting displayed saying "syntax error at or near &quo= t;castsource".=C2=A0
-=C2=A0"Delete cascade" f= unctionality is not working=C2=A0- error is getting displayed saying &qu= ot;The requested URL not found".
- Do the proper comment= s, in some of the function like "script_load" , comments are wron= g.
- Is "configs" really required in __init__.py file ?= We have not seen any usage for this. Please remove it if it is not require= d.
- Remove commented code from the source file.

Please check all the generated SQL statements . Test the basic fun= ctionality of "create", "Edit" and "Delete" n= ode before sending patch file.

Do let us know for = any comments/issues.

Thanks,
Neel Patel<= /div>

On Tue, Jan 19, 2016 at 8:06 PM, Sanket Mehta = <sank= et.mehta@enterprisedb.com> wrote:
Hi,

PFA = updated patch for cast module as per check list provided by Neel.
Please do review it and let me know in case of anything is missing.
<= div>


Regards,
Sanket Mehta
S= r Software engineer
Enterprisedb

On Mon, Jan 18, 2016 at 7:1= 6 PM, Sanket Mehta <sanket.mehta@enterprisedb.com> wrote:
Hi,

PFA patch for cast module.
Please do review it and let m= e know in case of any issue.


Regards,
Sanket Mehta
Sr Software eng= ineer
Enterprisedb



--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers=



--001a11431b4e89ce2a0529c2593f-- --001a11431b4e89ce2f0529c25941 Content-Type: text/x-patch; charset=US-ASCII; name="castv3.patch" Content-Disposition: attachment; filename="castv3.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijmr3eii0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9fX2luaXRfXy5weSBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9jYXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi4zNzgwMmIwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2Nhc3RzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNDAyIEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0 Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhlIHBn QWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJl bGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitpbXBvcnQganNvbgorZnJvbSBm bGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCBj dXJyZW50X2FwcCwgcmVxdWVzdCwganNvbmlmeQorZnJvbSBmbGFzay5leHQu YmFiZWwgaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4 IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAgICBtYWtlX3Jlc3Bv bnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcgor ZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0IE5vZGVWaWV3Citm cm9tIHBnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0 aW9uTm9kZU1vZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlcworZnJvbSBw Z2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IHByZWNvbmRpdGlvbl9yZXF1aXJl ZAorZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZl cgorZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCitmcm9t IGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworCitjbGFzcyBDYXN0TW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKKyAgICBOT0RFX1RZUEUgPSAnY2Fz dCcKKyAgICBDT0xMRUNUSU9OX0xBQkVMID0gJ0Nhc3RzJworCisgICAgZGVm IF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1 cGVyKENhc3RNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJn cykKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6 CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlv biBub2RlCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVy YXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGRpZCkKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIi CisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIGNhc3QsIHdo ZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAgICAgIGluaXRp YWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNl cy5EYXRhYmFzZU1vZHVsZS5OT0RFX1RZUEUKKworCitibHVlcHJpbnQgPSBD YXN0TW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIENhc3RWaWV3KE5vZGVW aWV3KToKKyAgICBub2RlX3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisK KyAgICBwYXJlbnRfaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2lu dCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQn LCAnaWQnOiAnc2lkJ30sCisgICAgICAgICAgICB7J3R5cGUnOiAnaW50Jywg J2lkJzogJ2RpZCd9CisgICAgICAgICAgICBdCisgICAgaWRzID0gWworICAg ICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdjaWQnfQorICAgICAg ICAgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3QoeworICAgICAgICAn b2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdk ZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAg ICAgIHsnZ2V0JzogJ2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAg ICBdLAorICAgICAgICAnY2hpbGRyZW4nOiBbeworICAgICAgICAgICAgJ2dl dCc6ICdjaGlsZHJlbicKKyAgICAgICAgfV0sCisgICAgICAgICdkZWxldGUn OiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAnbm9kZXMnOiBb eydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9XSwKKyAgICAgICAg J3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAgICdtc3FsJzogW3sn Z2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwKKyAgICAgICAgJ3N0 YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisgICAgICAgICdkZXBl bmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKKyAgICAgICAg J2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dLAorICAgICAg ICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9kdWxlX2pzJ31d LAorICAgICAgICAnZ2V0X3R5cGUnOiBbeydnZXQnOiAnZ2V0X3NvdXJjZVRh cmdldF90eXBlJ30sIHsnZ2V0JzogJ2dldF9zb3VyY2VUYXJnZXRfdHlwZSd9 XSwKKyAgICAgICAgJ2dldGZ1bmN0aW9ucyc6IFt7J3Bvc3QnOiAnZ2V0X2Z1 bmN0aW9ucyd9LCB7J3Bvc3QnOiAnZ2V0X2Z1bmN0aW9ucyd9XQorICAgIH0p CisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBwcm9wZXJ0eSBkZWZpbmVzIChpZiBqYXZhc2NyaXB0KSBl eGlzdHMgZm9yIHRoaXMgbm9kZS4KKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBw cm9wZXJ0eSBmb3IgeW91ciBvd24gbG9naWMuCisgICAgICAgICIiIgorICAg ICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBy ZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICJjYXN0L2pz L2Nhc3RzLmpzIiwKKyAgICAgICAgICAgICAgICAgICAgXz1nZXR0ZXh0Cisg ICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgMjAwLCB7 J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQnfQor ICAgICAgICAgICAgICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRp b24oZik6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisg ICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmll dywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgICAg ICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFy Z3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdp bGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAor ICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAgIHNlbGYu bWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5l Y3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2Vs Zi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1sn ZGlkJ10pCisgICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhl biByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICAgICAgaWYgbm90 IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1 cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgICAg ICBnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJDb25u ZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICAgICAgIyB3 ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cworICAg ICAgICAgICAgaWYgdmVyID49IDkwMDAwOgorICAgICAgICAgICAgICAgIHNl bGYudGVtcGxhdGVfcGF0aCA9ICdjYXN0L3NxbC85LjBfcGx1cycKKworICAg ICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAg IHJldHVybiB3cmFwCisKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAg ICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5mb1tkaWRd WydkYXRsYXN0c3lzb2lkJ10KKyAgICAgICAgICAgICkKKyAgICAgICAgc3Rh dHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVy biBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJl c1sncm93cyddLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQpOgorICAgICAgICByZXMg PSBbXQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGll cy5zcWwnXSksCisgICAgICAgICAgICBkYXRsYXN0c3lzb2lkPXNlbGYubWFu YWdlci5kYl9pbmZvW2RpZF1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAgICAg ICAgKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0 ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cnNldCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAg ICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgIHNl bGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAg ICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAg ICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg IGljb249Imljb24tY2FzdCIKKyAgICAgICAgICAgICAgICAgICAgKSkKKwor ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgY2lk KToKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAg ICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMu c3FsJ10pLAorICAgICAgICAgICAgY2lkPWNpZCwKKyAgICAgICAgICAgIGRh dGxhc3RzeXNvaWQ9c2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFz dHN5c29pZCddCisgICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93 cyddWzBdLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAg ICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGVzIG5ldyB0aGUgY2Fz dCBvYmplY3QKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVxdWlyZWRfYXJn cyA9IFsKKyAgICAgICAgICAgICdzcmN0eXAnLAorICAgICAgICAgICAgJ3Ry Z3R5cCcKKyAgICAgICAgXQorCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZv cm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRh dGEuZGVjb2RlKCkpCisgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfYXJn czoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAg ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgICAgICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICBz dWNjZXNzPTAsCisgICAgICAgICAgICAgICAgICAgIGVycm9ybXNnPWdldHRl eHQoCisgICAgICAgICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCB0 aGUgcmVxdWlyZWQgcGFyYW1ldGVyICglcykuIiAlIGFyZworICAgICAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICB0cnk6 CisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ2NyZWF0ZS5zcWwnXSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAg ICAgICAgICMgd2UgbmVlZCBvaWQgdG8gdG8gYWRkIG9iamVjdCBpbiB0cmVl IGF0IGJyb3dzZXIsIGJlbG93IHNxbCB3aWxsIGdpdmVzIHRoZSBzYW1lCisg ICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyY3R5cD1kYXRhWydzcmN0 eXAnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmd0 eXA9ZGF0YVsndHJndHlwJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGF0bGFzdHN5c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5mb1tk aWRdWydkYXRsYXN0c3lzb2lkJ10KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCBjaWQgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPWNpZCkKKworICAgICAgICAgICAgcmV0dXJuIGpz b25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5n ZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIGNp ZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICBpY29uPSJwZy1pY29uLWNhc3QiCisgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0 aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg Y2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2ls bCB1cGRhdGUgY2FzdCBvYmplY3QKKyAgICAgICAgIiIiCisgICAgICAgIGRh dGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5s b2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2RlKCkpCisgICAgICAgIFNRTCA9IHNl bGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQsIGRhdGEsIGNpZCkKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykg YW5kIFNRTC5zdHJpcCgnICcpOgorICAgICAgICAgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAg ICAgICAgaW5mbz0iQ2FzdCB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBjaWQs CisgICAgICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAg ICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBp bmZvPSJOb3RoaW5nIHRvIHVwZGF0ZSIsCisgICAgICAgICAgICAgICAgICAg IGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogY2lkLAor ICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBjaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3Ag dGhlIGNhc3Qgb2JqZWN0CisgICAgICAgICIiIgorICAgICAgICAjIEJlbG93 IHdpbGwgZGVjaWRlIGlmIGl0J3Mgc2ltcGxlIGRyb3Agb3IgZHJvcCB3aXRo IGNhc2NhZGUgY2FsbAorICAgICAgICBpZiBzZWxmLmNtZCA9PSAnZGVsZXRl JzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2NhZGUgb3BlcmF0aW9u CisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAgICAgICBlbHNlOgor ICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgIyBHZXQgbmFtZSBmb3IgY2FzdCBmcm9tIGNpZAorICAg ICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGNpZD1jaWQpCisgICAgICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICAgICAgIyBkcm9wIGNhc3QKKyAgICAgICAgICAgIHJlc3VsdCA9IHJl c1sncm93cyddWzBdCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2RlbGV0ZS5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzdHNv dXJjZT1yZXN1bHRbJ2Nhc3Rzb3VyY2UnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYXN0dGFyZ2V0PXJlc3VsdFsnY2FzdHRhcmdl dCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Nh ZGU9Y2FzY2FkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAg ICAgICAgICAgIGluZm89Z2V0dGV4dCgiQ2FzdCBkcm9wcGVkIiksCisgICAg ICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6 IGNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAg ICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAg ICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbXNx bChzZWxmLCBnaWQsIHNpZCwgZGlkLCBjaWQ9Tm9uZSk6CisgICAgICAgICIi IgorICAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIG1vZGlmaWVkIFNR TAorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncwor ICAgICAgICBTUUwgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGlkLCBkYXRh LCBjaWQpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoU1FMLCBzdHIpIGFuZCBT UUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcgJyk6Cisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgICAgICBkYXRhPSItLW1vZGlmaWVkIFNRTCIsCisg ICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAg ICAgICAgKQorCisgICAgZGVmIGdldFNRTChzZWxmLCBnaWQsIHNpZCwgZGlk LCBkYXRhLCBjaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFNRTCBmb3IgbW9kZWwgZGF0YQorICAg ICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgY2lkIGlz IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGll cy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNpZD1jaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRhdGxhc3RzeXNvaWQ9c2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlk XVsnZGF0bGFzdHN5c29pZCddKQorICAgICAgICAgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAg ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICAgICAgICAgIG9sZF9kYXRhID0gcmVzWydyb3dzJ11bMF0KKyAg ICAgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAg ICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1 cGRhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEs IG9fZGF0YT1vbGRfZGF0YQorICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmICdzcmN0eXAnIGlu IGRhdGEgYW5kICd0cmd0eXAnIGluIGRhdGE6CisgICAgICAgICAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCddKSwgZGF0YT1kYXRhKQorICAgICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIFNRTCA9ICIt LSBpbmNvbXBsZXRlIGRlZmluaXRpb24iCisgICAgICAgICAgICByZXR1cm4g U1FMCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1z dHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGdl dF9mdW5jdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgY2lkPU5vbmUpOgor ICAgICAgICByZXM9W10KKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuZm9ybSBp ZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5k ZWNvZGUoKSkKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdmdW5jdGlvbnMuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmN0eXA9 ZGF0YVsnc3JjdHlwJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRyZ3R5cD1kYXRhWyd0cmd0eXAnXSkKKyAgICAgICAgc3Rh dHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICAj IFRPRE86IGFkZCBzY2hlbWFwcmVmaXggdG8gcHJvbmFtZSBiZWZvcmUgYWRk aW5nIGl0IHRvIHZhbHVlIGluIHJlcworICAgICAgICBmb3Igcm93IGluIHJz ZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoeydsYWJlbCc6 IHJvd1sncHJvbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAndmFs dWUnOiByb3dbJ3Byb25hbWUnXX0pCisgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIGRhdGE9cmVzLAor ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAgICAg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg Z2V0X3NvdXJjZVRhcmdldF90eXBlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIGNp ZD1Ob25lKToKKyAgICAgICAgcmVzID0gW10KKyAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ2dldHNyY2FuZHRyZ3R0eXBlLnNxbCddKSwKKyAgICAg ICAgICAgIGNpZD1jaWQKKyAgICAgICAgICAgICkKKyAgICAgICAgc3RhdHVz LCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICByZXMg PSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgIyBUT0RPOiBGb2xs b3cgZGxnVHlwZVByb3BlcnR5OjpGaWxsRGF0YVR5cGUoKSBmdW5jdGlvbiBi ZWZvcmUgYWRkaW5nIHR5cGVuYW1lIHRvIHJlcworICAgICAgICAgICAgcmVz LmFwcGVuZCh7J2xhYmVsJzogcm93Wyd0eXBuYW1lJ10sCisgICAgICAgICAg ICAgICAgICAgICAgICAndmFsdWUnOiByb3dbJ3R5cG5hbWUnXX0pCisKKyAg ICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg IGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAg ICAgKQorCitDYXN0Vmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50 KQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9jYXN0cy9zdGF0aWMvaW1nL2Nhc3QucG5nIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3Rz L3N0YXRpYy9pbWcvY2FzdC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u MmJlN2YzNzQyYTc2MGZhYTc3MDkwNTI2NjlmNDQ0YmE4OTQ5YzMzMApHSVQg YmluYXJ5IHBhdGNoCmxpdGVyYWwgNDI2CnpjbWVBU0BOPyhvbEh5YHVWQnEh aWEwdnBeMHdCITYzP3d5bGBHYkt9YSkze1dFMEE4PVhMSVl+YGJocz5iRWpY cwp6ZHRjKDwjKV9We15HbGNoS2VlfiMtVUdRNkVCQGJxc0loTHt8QSZ1X0gq ZnlgPGY7OXhVSF9qd19jP2cqfEJJSlYKekNyPG8te1d7fnFoNXY4Z21SYEh8 fE5aLT5kLXdpLXtNaF5XQCZDYENyb0RMYWY2dztFKFF7KHNmen5qVjFvO0lz CnpJNlMrTjJJTyFTY3RqUWhYJThAVkpERl88V1lsQE9JRUZ9RSZPTHV5c0w0 UXBgTkZaUXl3akRHSXlgcCVfI2RCbgp6UTAoYEVPN0NVSFhRZSpOYD8pPXRe UTdEOHc4fTlWKk0mT1htWWNTUU1UVHhYYTVlWl5zWWJ6VmpvSHRsQU02WD4K encpVnQ3O1hVaHU/YUNnOC1xKVQjZGpzcD8xdlFuMCgjSFp7JmF2Sz5HOzdN fEtlemkqMUp8OUB3TUBBOEdJdTVhCno3a0BTdktBJWxMZmk2KWthZzhXUk5p MGRWTi1qelRRVmQyMGg2Y0taTSFFKXVBd352UENkTzdLQ2ZXdzNSdDUkWgpz R2dha0tIMDApfFdUc1VARyNGVGRIR291RzhKSXlkb1NHaUcyQj85LSk3OCZx b2xgOyswNnpAM2h5VlpwCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvY2FzdHMvc3RhdGljL2ltZy9jb2xsLWNhc3QucG5n IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL2Nhc3RzL3N0YXRpYy9pbWcvY29sbC1jYXN0LnBuZwpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwLi4wOWViNjVhZjAyYzY2YmQ2NGFiMzQwNWM1 OTJlZmU0ZDkwZDQxYzk4CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MDIK emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiS31SRGUm MkUwOHw1d2BYYWVPPGxxNE5kSH1QCnpyKGU1IVUhcCMqZGc7PnRfWn0hdFo0 QXAjb2NpI1F7PVNYb1BvQ1FFLSg8VUwpJkdxZnxMQHhNfExGRkY9UHY+ZQp6 QU84UjBlY1AqN0RRRDBBfE1ZM3srcWIzSHVLbUElfE5wYVJ8MVpoUmowYyp8 U1E2d0glOzUwc01qRFhBUz5PPl8KejQ1VTU0KnpJSnQ5Z3ZhbD5FYWs3YWs9 I1RaTjZwJjBoU0E/eUdwJjVYNlElaGUqMGVeVG9aWldOVHNyK2IpdClsCnpq OSU0THE0cVpPd2ZGRGN6Y3tPcTw2KXJta3NFSiZuRWlPRndAeTNEVnoqWk89 OCtUQVo9SlFDJkNoPUlsSiVxMAp6biNhJWQkT241fWVRIV97YE8wPDFQa1dz XmBnKU8hIUpBbS11eztYZzR6eWFlIzVKTk1DOXgjY0QhQ3tYTkhHezAKejcj aXByOHRFRHNoOFApR25IWER7bX1uY0FTe1dFdiV2NjtfKFU2OztsOV5UcyhP X1QrKSZOcCVXbmMhO2FCNnohClE4bFZPU1BnZyZlYnhzTFEwOVhmfmZkQnZp CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv Y2FzdHMvdGVtcGxhdGVzL2Nhc3QvanMvY2FzdHMuanMgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2Fz dHMvdGVtcGxhdGVzL2Nhc3QvanMvY2FzdHMuanMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uODFmMzc0NwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9qcy9jYXN0cy5qcwpA QCAtMCwwICsxLDIwMyBAQAorZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScs ICd1bmRlcnNjb3JlJywgJ3VuZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4n LCAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYnJv d3Nlci5jb2xsZWN0aW9uJ10sCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWlu LCBwZ0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CisKKyAgICBpZiAoIXBnQnJvd3Nl ci5Ob2Rlc1snY29sbC1jYXN0J10pIHsKKyAgICAgIHZhciBjYXN0cyA9IHBn QWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1jYXN0J10gPQorICAgICAgICBw Z0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICAg IG5vZGU6ICdjYXN0JywKKyAgICAgICAgICBsYWJlbDogJ3t7IF8oJ0Nhc3Rz JykgfX0nLAorICAgICAgICAgIHR5cGU6ICdjb2xsLWNhc3QnCisgICAgICAg IH0pOworICAgIH07CisKKyAgICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY2Fz dCddKSB7CisgICAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ2Nhc3QnXSA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICAgIHBhcmVu dF90eXBlOiAnZGF0YWJhc2UnLAorICAgICAgICB0eXBlOiAnY2FzdCcsCisg ICAgICAgIGNhbkRyb3A6IHRydWUsCisgICAgICAgIGNhbkRyb3BDYXNjYWRl OiB0cnVlLAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0Nhc3QnKSB9fScsCisg ICAgICAgIGhhc1NRTDogdHJ1ZSwKKyAgICAgICAgSW5pdDogZnVuY3Rpb24o KSB7CisgICAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9u IG9mIG1lbnVzICovCisgICAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQp CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICB0aGlzLmluaXRp YWxpemVkID0gdHJ1ZTsKKworICAgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVu dXMoW3sKKyAgICAgICAgICAgIG5hbWU6ICdjcmVhdGVfY2FzdF9vbl9kYXRh YmFzZScsIG5vZGU6ICdkYXRhYmFzZScsIG1vZHVsZTogdGhpcywKKyAgICAg ICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJh Y2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICAgIGNhdGVn b3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnQ2Fz dC4uLicpIH19JywKKyAgICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi1jYXN0JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9CisgICAgICAgICAg fSx7CisgICAgICAgICAgICBuYW1lOiAnY3JlYXRlX2Nhc3Rfb25fY29sbCcs IG5vZGU6ICdjb2xsLWNhc3QnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAn c2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgICBjYXRlZ29yeTog J2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0Nhc3QuLi4n KSB9fScsCisgICAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tY2Fz dCcsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfQorICAgICAgICAgIH0sewor ICAgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9jYXN0Jywgbm9kZTogJ2Nhc3Qn LCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgICBhcHBsaWVzOiBbJ29iamVj dCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGll cycsCisgICAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5 OiA0LCBsYWJlbDogJ3t7IF8oJ0Nhc3QuLi4nKSB9fScsCisgICAgICAgICAg ICBpY29uOiAnd2NUYWJJY29uIGljb24tY2FzdCcsIGRhdGE6IHthY3Rpb246 ICdjcmVhdGUnfQorICAgICAgICAgIH1dKTsKKworICAgICAgICB9LAorICAg ICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5k KHsKKyAgICAgICAgICBkZWZhdWx0czogeworICAgICAgICAgICAgbmFtZTog dW5kZWZpbmVkLAorICAgICAgICAgICAgY29tbWVudDogdW5kZWZpbmVkLAor ICAgICAgICAgICAgZW5jb2Rpbmc6ICdVVEY4JywKKyAgICAgICAgICAgIHNy Y3R5cDogdW5kZWZpbmVkLAorICAgICAgICAgICAgdHJndHlwOiB1bmRlZmlu ZWQsCisgICAgICAgICAgICBwcm9uYW1lOiB1bmRlZmluZWQsCisgICAgICAg ICAgICBjYXN0Y29udGV4dDogdW5kZWZpbmVkLAorICAgICAgICAgICAgc3lz Y2FzdDogdW5kZWZpbmVkLAorICAgICAgICAgICAgZGVzY3JpcHRpb246IHVu ZGVmaW5lZAorICAgICAgICAgIH0sCisgICAgICAgICAgc2NoZW1hOiBbewor ICAgICAgICAgICAgaWQ6ICduYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1lJykg fX0nLCBjZWxsOiAnc3RyaW5nJywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9u JykgfX0nLAorICAgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAn dGV4dCcsIGRpc2FibGVkOiB0cnVlCisgICAgICAgICAgfSx7CisgICAgICAg ICAgICBpZDogJ29pZCcsIGxhYmVsOid7eyBfKCdPaWQnKSB9fScsIGNlbGw6 ICdzdHJpbmcnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisg ICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICd0ZXh0JywgZGlz YWJsZWQ6IHRydWUsCisgICAgICAgICAgfSx7CisgICAgICAgICAgICBpZDog J3NyY3R5cCcsIGxhYmVsOid7eyBfKCdTb3VyY2UgdHlwZScpIH19JywgdXJs OiAnZ2V0X3R5cGUnLAorICAgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91 cDogJ0RlZmluaXRpb24nLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAg ICAgICAgICAgcmV0dXJuICFtLmlzTmV3KCkKKyAgICAgICAgICB9LAorICAg ICAgICAgIHRyYW5zZm9ybTogZnVuY3Rpb24ocm93cykgeworICAgICAgICAg ICAgXy5lYWNoKHJvd3MsIGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICAgICAg clsnaW1hZ2UnXSA9ICdpY29uLWNhc3QnOworICAgICAgICAgICAgfSk7Cisg ICAgICAgICAgICByZXR1cm4gcm93czsKKyAgICAgICAgICB9LAorICAgICAg ICAgIC8qICBBcyBuYW1lIGlzIGJlaW5nIGdlbmVyYXRlZCBmcm9tIHNyY3R5 cCBhbmQgdHJndHlwLCBhIGNoZWNrIGhhcyBiZWVuIHB1dCBpbgorICAgICAg ICAgICAqICBjb250cm9sIGZpZWxkIGlmIGJvdGggYXJlIGNoYW5nZWQgb3Ig bm90IGFuZCBkZXBlbmRpbmcgdXBvbiBpdCwgbmFtZSBoYXMgYmVlbiBzZXQu CisgICAgICAgICAgKi8KKyAgICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3Jt Lk5vZGVBamF4T3B0aW9uc0NvbnRyb2wuZXh0ZW5kKHsKKyAgICAgICAgICAg ICAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg QmFja2Zvcm0uTm9kZUFqYXhPcHRpb25zQ29udHJvbC5wcm90b3R5cGUub25D aGFuZ2UuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgICAg ICB2YXIgc3JjVHlwZSA9IHRoaXMubW9kZWwuZ2V0KCdzcmN0eXAnKTsKKyAg ICAgICAgICAgICAgICB2YXIgdHJndHlwZSA9IHRoaXMubW9kZWwuZ2V0KCd0 cmd0eXAnKTsKKyAgICAgICAgICAgICAgICBpZihzcmNUeXBlICE9IHVuZGVm aW5lZCAmJiBzcmNUeXBlICE9ICcnICYmIHRyZ3R5cGUgIT0gdW5kZWZpbmVk ICYmIHRyZ3R5cGUgIT0gJycpCisgICAgICAgICAgICAgICAgICAgdGhpcy5t b2RlbC5zZXQoIm5hbWUiLCBzcmNUeXBlKyItPiIrdHJndHlwZSk7CisgICAg ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgIHRoaXMubW9k ZWwudW5zZXQoIm5hbWUiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9 KQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3RyZ3R5cCcsIGxhYmVs Oid7eyBfKCdUYXJnZXQgdHlwZScpIH19JywgdXJsOiAnZ2V0X3R5cGUnLAor ICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICdEZWZpbml0aW9uJywg ZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIHJldHVybiAh bS5pc05ldygpCisgICAgICAgICAgICB9LAorICAgICAgICAgIHRyYW5zZm9y bTogZnVuY3Rpb24ocm93cykgeworICAgICAgICAgICAgXy5lYWNoKHJvd3Ms IGZ1bmN0aW9uKHIpIHsKKyAgICAgICAgICAgICAgclsnaW1hZ2UnXSA9ICdp Y29uLWNhc3QnOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1 cm4gcm93czsKKyAgICAgICAgICB9LAorICAgICAgICAgIC8qICBBcyBuYW1l IGlzIGJlaW5nIGdlbmVyYXRlZCBmcm9tIHNyY3R5cCBhbmQgdHJndHlwLCBh IGNoZWNrIGhhcyBiZWVuIHB1dCBpbgorICAgICAgICAgICAqICBjb250cm9s IGZpZWxkIGlmIGJvdGggYXJlIGNoYW5nZWQgb3Igbm90IGFuZCBkZXBlbmRp bmcgdXBvbiBpdCwgbmFtZSBoYXMgYmVlbiBzZXQuCisgICAgICAgICAgKi8K KyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5Ob2RlQWpheE9wdGlvbnND b250cm9sLmV4dGVuZCh7CisgICAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5j dGlvbigpIHsKKyAgICAgICAgICAgICAgQmFja2Zvcm0uTm9kZUFqYXhPcHRp b25zQ29udHJvbC5wcm90b3R5cGUub25DaGFuZ2UuYXBwbHkodGhpcywgYXJn dW1lbnRzKTsKKyAgICAgICAgICAgICAgdmFyIHNyY1R5cGUgPSB0aGlzLm1v ZGVsLmdldCgnc3JjdHlwJyk7CisgICAgICAgICAgICAgIHZhciB0cmd0eXBl ID0gdGhpcy5tb2RlbC5nZXQoJ3RyZ3R5cCcpOworICAgICAgICAgICAgICBp ZihzcmNUeXBlICE9IHVuZGVmaW5lZCAmJiBzcmNUeXBlICE9ICcnICYmIHRy Z3R5cGUgIT0gdW5kZWZpbmVkICYmIHRyZ3R5cGUgIT0gJycpCisgICAgICAg ICAgICAgICAgICB0aGlzLm1vZGVsLnNldCgibmFtZSIsIHNyY1R5cGUrIi0+ Iit0cmd0eXBlKTsKKyAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg ICAgICAgdGhpcy5tb2RlbC51bnNldCgibmFtZSIpOworICAgICAgICAgIH0K KyAgICAgICAgICB9KQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3By b25hbWUnLCBsYWJlbDone3sgXygnRnVuY3Rpb24nKSB9fScsIGRlcHM6Wydz cmN0eXAnLCAndHJndHlwJ10sCisgICAgICAgICAgZWRpdGFibGU6IGZhbHNl LCB0eXBlOiAndGV4dCcsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVy biAhbS5pc05ldygpOyB9LAorICAgICAgICAgIGdyb3VwOiAnRGVmaW5pdGlv bicsCisgICAgICAgICAgY29udHJvbDogJ3NlbGVjdCcsIG9wdGlvbnM6IGZ1 bmN0aW9uKCkgeworCisgICAgICAgICAgICAgdmFyIHNyY1R5cCA9IHRoaXMu bW9kZWwuZ2V0KCdzcmN0eXAnKTsKKyAgICAgICAgICAgICB2YXIgdHJndHlw ID0gdGhpcy5tb2RlbC5nZXQoJ3RyZ3R5cCcpOworICAgICAgICAgICAgIHZh ciByZXMgPSBbXTsKKyAgICAgICAgICAgICAvKiAgT24gc3JjdHlwIGFuZCB0 cmd0eXAgc3RhdGUgY2hhbmdlIGV2ZW50IGFuIGFqYXggY2FsbCBpcyBtYWRl IHRvCisgICAgICAgICAgICAgKiAgIGZldGNoIGxpc3Qgb2YgcmVsYXRlZCBm dW5jdGlvbnMKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgIGlmKHNy Y1R5cCAhPSB1bmRlZmluZWQgJiYgc3JjVHlwICE9ICcnICYmIHRyZ3R5cCAh PSB1bmRlZmluZWQgJiYgdHJndHlwICE9ICcnKQorICAgICAgICAgICAgIHsK KyAgICAgICAgICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLmZpZWxkLmdl dCgnc2NoZW1hX25vZGUnKSwKKyAgICAgICAgICAgICAgICAgICAgX3VybCA9 IG5vZGUuZ2VuZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAgICAgICAgICAg ICBub2RlLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwg J2dldGZ1bmN0aW9ucycsIHRoaXMuZmllbGQuZ2V0KCdub2RlX2RhdGEnKSwg ZmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVs ZC5nZXQoJ25vZGVfaW5mbycpCisgICAgICAgICAgICAgICAgICAgIF0pOwor ICAgICAgICAgICAgICAgICAgJC5hamF4KHsKKyAgICAgICAgICAgICAgICAg IHR5cGU6ICdQT1NUJywKKyAgICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDMw MDAwLAorICAgICAgICAgICAgICAgICAgdXJsOiBfdXJsLAorICAgICAgICAg ICAgICAgICAgY2FjaGU6IGZhbHNlLAorICAgICAgICAgICAgICAgICAgZGF0 YTogeyJzcmN0eXAiIDogc3JjVHlwLCAidHJndHlwIiA6IHRyZ3R5cH0sCisg ICAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihyZXMpIHsKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlcy5kYXRhOworICAgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlv bih4aHIsIHN0YXR1cywgZXJyb3IpIHsKKyAgICAgICAgICAgICAgICAgICAg ICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGVy ciA9ICQucGFyc2VKU09OKHhoci5yZXNwb25zZVRleHQpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIChlcnIuc3VjY2VzcyA9PSAwKSB7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zZyA9IFMoJ3t7IF8o JyArIGVyci5lcnJvcm1zZyArICcpfX0nKS52YWx1ZSgpOworICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBhbGVydGlmeS5lcnJvcigie3sgXygn IiArIGVyci5lcnJvcm1zZyArICInKSB9fSIpOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfSBjYXRjaCAoZSkge30KKyAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIHJldHVybiByZXM7CisgICAgICAgICAgfQorICAgICAgICB9LHsKKyAg ICAgICAgICBpZDogJ2Nhc3Rjb250ZXh0JywgbGFiZWw6J3t7IF8oJ0NvbnRl eHQnKSB9fScsIG9wdGlvbnM6eydvblRleHQnOidJbXBsaWNpdCcsJ29mZlRl eHQnOidFeHBsaWNpdCd9LAorICAgICAgICAgIGVkaXRhYmxlOiBmYWxzZSwg dHlwZTogJ3N3aXRjaCcsIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVy biAhbS5pc05ldygpOyB9LAorICAgICAgICAgIGdyb3VwOiAnRGVmaW5pdGlv bicKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdzeXNjYXN0JywgbGFi ZWw6J3t7IF8oJ1N5c3RlbSBDYXN0PycpIH19JywgbW9kZTogWydwcm9wZXJ0 aWVzJ10sCisgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAndGV4 dCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdkZXNjcmlwdGlvbics IGxhYmVsOid7eyBfKCdDb21tZW50JykgfX0nLCBncm91cDogJ3t7IF8oJ0Rl ZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91 cDogJ1Byb3BlcnRpZXMnCisgICAgICAgIH0KKyAgICAgICAgXSwKKyAgICAg ICAgdmFsaWRhdGU6IGZ1bmN0aW9uKGtleXMpeworICAgICAgICAvKgorICAg ICAgICAgICAgKiBUcmlnZ2VycyBzcGVjaWZpYyBlcnJvciBtZXNzYWdlcyBm b3Igc3JjdHlwIGFuZAorICAgICAgICAgICAgKiB0cmd0eXAgaWYgYW55IG9u ZSBvZiB0aGVtIGlzIG5vdCBzZWxlY3RlZAorICAgICAgICAqLworICAgICAg ICAgIHZhciBzcmN0eXBlID0gdGhpcy5nZXQoJ3NyY3R5cCcpOworICAgICAg ICAgIHZhciB0cmd0eXBlID0gdGhpcy5nZXQoJ3RyZ3R5cCcpOworICAgICAg ICAgIGlmIChfLmlzVW5kZWZpbmVkKHNyY3R5cGUpIHx8IF8uaXNOdWxsKHNy Y3R5cGUpIHx8IFN0cmluZyhzcmN0eXBlKS5yZXBsYWNlKC9eXHMrfFxzKyQv ZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7IF8o J1NvdXJjZSB0eXBlIG11c3QgYmUgc2VsZWN0ZWQhJykgfX0nOworICAgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnc3JjdHlwJywgbXNnKTsKKyAg ICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorICAgICAgICAg IGVsc2UKKyAgICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9k ZWwudW5zZXQoJ3NyY3R5cCcpOworICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKHRyZ3R5cGUpIHx8IF8uaXNOdWxsKHRyZ3R5 cGUpIHx8IFN0cmluZyh0cmd0eXBlKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNnID0gJ3t7IF8oJ1Rh cmdldCB0eXBlIG11c3QgYmUgc2VsZWN0ZWQhJykgfX0nOworICAgICAgICAg ICAgdGhpcy5lcnJvck1vZGVsLnNldCgndHJndHlwJywgbXNnKTsKKyAgICAg ICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorICAgICAgICAgIGVs c2UKKyAgICAgICAgICB7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwu dW5zZXQoJ3RyZ3R5cCcpOworICAgICAgICAgIH0KKyAgICAgICAgICB0aGlz LnRyaWdnZXIoJ29uLXN0YXR1cy1jbGVhcicpOworICAgICAgICAgIHJldHVy biBudWxsOworICAgICAgICB9CisgICAgICB9KQorICB9KTsKKworICB9Cisg ICAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snY29sbC1jYXN0J107Cit9KTsK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2NyZWF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVz L2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uY2VlNDZiMwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90 ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvY3JlYXRlLnNxbApAQCAtMCww ICsxLDE5IEBACit7IyA9PT09PT09PT09IEJlbG93IFNRTCB3aWxsIGNyZWF0 ZSBjYXN0ID09PT09PT09PT09ICN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnNy Y3R5cCBhbmQgZGF0YS50cmd0eXAgJX0KKyAgQ1JFQVRFIENBU1QgKHt7ZGF0 YS5zcmN0eXB9fSBBUyB7e2RhdGEudHJndHlwfX0pCisgIHslIGlmIGRhdGEu cHJvbmFtZSAlfQorICAgIFdJVEggRlVOQ1RJT04ge3tkYXRhLnByb25hbWV9 fQorICB7JSBlbHNlICV9CisgICAgV0lUSE9VVCBGVU5DVElPTgorICB7JSBl bmRpZiAlfQorICB7JSBpZiBkYXRhLmNhc3Rjb250ZXh0ID09ICd0cnVlJyAl fQorICAgIEFTIElNUExJQ0lUCisgIHslIGVuZGlmICV9OworCit7IyA9PT09 PT09PT09IEJlbG93IGNyZWF0ZXMgZGVzY3JpcHRpb24gZm9yIGNhc3QgPT09 PT09PT09PT0gI30KKyAgeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorICAg IENPTU1FTlQgT04gQ0FTVCAoe3sgZGF0YS5zcmN0eXAgfX0gQVMge3sgZGF0 YS50cmd0eXAgfX0pCisgICAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0 TGl0ZXJhbCB9fTsKKyAgeyUgZW5kaWYgJX0KKworeyUgZW5kaWYgJX0KXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv Y2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2RlbGV0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2Rl bGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u Y2I1Njg2ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1w bGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsx LDEyIEBACit7JSBpZiBjaWQgJX0KKyAgU0VMRUNUCisgICAgZm9ybWF0X3R5 cGUoY2EuY2FzdHNvdXJjZSwgbnVsbCkgYXMgY2FzdHNvdXJjZSwKKyAgICBm b3JtYXRfdHlwZShjYS5jYXN0dGFyZ2V0LCBudWxsKSBhcyBjYXN0dGFyZ2V0 CisgIEZST00KKyAgICBwZ19jYXN0IGNhCisgIFdIRVJFCisgICAgY2Eub2lk ID0ge3tjaWR9fTo6T0lEOworeyUgZW5kaWYgJX0KK3slIGlmIGNhc3Rzb3Vy Y2UgYW5kIGNhc3R0YXJnZXQgJX0KK0RST1AgQ0FTVCAoe3tjYXN0c291cmNl fX0gQVMge3tjYXN0dGFyZ2V0fX0pIHslIGlmIGNhc2NhZGUgJX1DQVNDQURF eyVlbmRpZiV9OworeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nh c3Qvc3FsLzkuMF9wbHVzL2Z1bmN0aW9ucy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMv dGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2Z1bmN0aW9ucy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODRhMWIxNQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2FzdC9z cWwvOS4wX3BsdXMvZnVuY3Rpb25zLnNxbApAQCAtMCwwICsxLDE3IEBACitT RUxFQ1QKKyAgcHJvbmFtZSwKKyAgbnNwbmFtZSwKKyAgcHJvYXJndHlwZXMK K0ZST00KKyAgcGdfcHJvYyBwIEpPSU4gcGdfbmFtZXNwYWNlIG4gT04gbi5v aWQ9cC5wcm9uYW1lc3BhY2UKK1dIRVJFCisgIHByb2FyZ3R5cGVzWzBdID0g KFNFTEVDVCB0Lm9pZCBGUk9NIHBnX3R5cGUgdCBXSEVSRSBmb3JtYXRfdHlw ZSh0Lm9pZCwgTlVMTCkgPSB7e3NyY3R5cHxxdExpdGVyYWx9fSkKKyAgQU5E IHByb3JldHR5cGUgPSAoU0VMRUNUIHQub2lkIEZST00gcGdfdHlwZSB0IFdI RVJFIGZvcm1hdF90eXBlKHQub2lkLCBOVUxMKSA9IHt7dHJndHlwfHF0TGl0 ZXJhbH19KQorICBBTkQKKyAgICBDQVNFCisgICAgV0hFTiBhcnJheV9sZW5n dGgocHJvYXJndHlwZXMsMSkgID0gMiBUSEVOCisgICAgICBwcm9hcmd0eXBl c1sxXSA9IDIzCisgICAgV0hFTiBhcnJheV9sZW5ndGgocHJvYXJndHlwZXMs MSkgID49IDMgVEhFTgorICAgICAgcHJvYXJndHlwZXNbMV0gPSAyMyBBTkQg cHJvYXJndHlwZXNbMl0gPSAxNgorICAgIEVMU0UgVFJVRQorICAgIEVORApk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85 LjBfcGx1cy9nZXRzcmNhbmR0cmd0dHlwZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMv dGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL2dldHNyY2FuZHRyZ3R0eXBl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZTA1 Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRl cy9jYXN0L3NxbC85LjBfcGx1cy9nZXRzcmNhbmR0cmd0dHlwZS5zcWwKQEAg LTAsMCArMSw0MyBAQAorU0VMRUNUCisgICAgKgorRlJPTSAoCisJICAgIFNF TEVDVCBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorCQlD QVNFCisJCSAgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0KKwkgICAg ICBFTFNFIHQub2lkCisJCUVORCBhcyBlbGVtb2lkLAorCQkgIHR5cGxlbiwK KwkJICB0eXB0eXBlLAorCQkgIHQub2lkLAorCSAgICAgIG5zcG5hbWUsCisJ CSAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIu dHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisJICAgIEZST00K KwkgICAgICBwZ190eXBlIHQKKwkgICAgICBKT0lOIHBnX25hbWVzcGFjZSBu c3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKwkJV0hFUkUKKwkJICAoTk9U ICh0eXBuYW1lID0gJ3Vua25vd24nCisJCSAgIEFORCBuc3BuYW1lID0gJ3Bn X2NhdGFsb2cnKSkKKwkJICAgQU5EIHR5cGlzZGVmaW5lZAorCQkgICBBTkQg dHlwdHlwZSBJTiAoJ2InLCAnYycsICdlJywgJ3InKQorCQkgICBBTkQgTk9U IEVYSVNUUyAoCisJCSAgICAgICAgICAgICAgICAgICAgIFNFTEVDVAorCQkg ICAgICAgICAgICAgICAgICAgICAgIDEKKwkJICAgICAgICAgICAgICAgICAg ICAgRlJPTQorCQkgICAgICAgICAgICAgICAgICAgICAgIHBnX2NsYXNzCisJ CSAgICAgICAgICAgICAgICAgICAgIFdIRVJFCisJCSAgICAgICAgICAgICAg ICAgICAgICAgcmVsbmFtZXNwYWNlID0gdHlwbmFtZXNwYWNlCisJCSAgICAg ICAgICAgICAgICAgICAgICAgQU5EIHJlbG5hbWUgPSB0eXBuYW1lCisJCSAg ICAgICAgICAgICAgICAgICAgICAgQU5EIHJlbGtpbmQgIT0gJ2MnKQorCQkg ICAgICAgICAgICAgICAgICAgICAgIEFORCAodHlwbmFtZSBOT1QgTElLRSAn XyUnCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICBPUiBOT1QgRVhJ U1RTICgKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgU0VMRUNUCisJCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMQorCQkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NCisJCSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfY2xhc3MK KwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgV0hFUkUKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWxuYW1lc3BhY2UgPSB0eXBuYW1lc3BhY2UKKwkJ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBTkQgcmVsbmFtZSA9IFNVQlNUUklORyh0eXBuYW1lIEZST00gMik6Om5h bWUKKwkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBBTkQgcmVsa2luZCAhPSAnYycpKQorCQkgICBBTkQgbnNwLm5z cG5hbWUgIT0gJ2luZm9ybWF0aW9uX3NjaGVtYScgKSBBUyBkdW1teQorT1JE RVIgQlkKKyAgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4g J3B1YmxpYycsIG5zcG5hbWUsIDEKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0 cy90ZW1wbGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvcHJvcGVydGllcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvY2FzdHMvdGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL3By b3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjI0NDVlMmEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2FzdHMv dGVtcGxhdGVzL2Nhc3Qvc3FsLzkuMF9wbHVzL3Byb3BlcnRpZXMuc3FsCkBA IC0wLDAgKzEsNTkgQEAKK3sjID09PT09PT09IEJlbG93IFNRTCB3aWxsIGZl dGNoIGlkIGZvciBnaXZlbiBjYXN0ID09PT09PT09ICN9Cit7JSBpZiBzcmN0 eXAgYW5kIHRyZ3R5cCAlfQorICBTRUxFQ1QKKyAgICBjYS5vaWQKKyAgRlJP TSBwZ19jYXN0IGNhCisgIFdIRVJFIGNhLmNhc3Rzb3VyY2UgPSAoU0VMRUNU IHQub2lkIEZST00gcGdfdHlwZSB0IFdIRVJFIGZvcm1hdF90eXBlKHQub2lk LCBOVUxMKSA9IHt7c3JjdHlwfHF0TGl0ZXJhbH19KQorICBBTkQgY2EuY2Fz dHRhcmdldCA9IChTRUxFQ1QgdC5vaWQgRlJPTSBwZ190eXBlIHQgV0hFUkUg Zm9ybWF0X3R5cGUodC5vaWQsIE5VTEwpID0ge3t0cmd0eXB8cXRMaXRlcmFs fX0pCisgIHslIGlmIGRhdGxhc3RzeXNvaWQgJX0KKyAgIEFORCBjYS5vaWQg PiB7e2RhdGxhc3RzeXNvaWR9fTo6T0lECisgIHslIGVuZGlmICV9CisKK3sj ID09PT09IEJlbG93IFNRTCB3aWxsIGZldGNoIHByb3BlcnRpZXMgZm9yIHBh cnRpY3VsYXIgY2FzdCBpZiBvaWQgaXMgcHJvdmlkZWQgb3IgYWxsIHVzZXIg Y2FzdHMgaWYgbm90IHByb3ZpZGVkID09PT0gI30KK3slIGVsc2UgJX0KKyAg U0VMRUNUCisgICAgY2Eub2lkLAorICBDQVNFCisgICAgV0hFTiB7e2RhdGxh c3RzeXNvaWR9fTo6T0lEID4gY2Eub2lkIHRoZW4gJ1lFUycgRUxTRSAnTk8n CisgIEVORCBBUyBzeXNjYXN0LAorICBDQVNFCisgICAgV0hFTiBjYS5jYXN0 Y29udGV4dCA9ICdhJyBUSEVOICdBU1NJR05NRU5UJworICAgIFdIRU4gY2Eu Y2FzdGNvbnRleHQgPSAnaScgVEhFTiAnSU1QTElDSVQnCisgICAgV0hFTiBj YS5jYXN0Y29udGV4dCA9ICdlJyBUSEVOICdFWFBMSUNJVCcKKyAgRU5EIEFT IGNhc3Rjb250ZXh0LAorICBDQVNFCisgICAgV0hFTiBwcm9uYW1lIElTIE5V TEwgVEhFTiAnYmluYXJ5IGNvbXBhdGlibGUnCisgIEVORCBBUyBwcm9uYW1l LAorICAgIGNhLmNhc3RmdW5jLAorICAgIGZvcm1hdF90eXBlKHN0Lm9pZCxO VUxMKSBBUyBzcmN0eXAsCisgICAgZm9ybWF0X3R5cGUodHQub2lkLHR0LnR5 cHR5cG1vZCkgQVMgdHJndHlwLAorICAgIG5zLm5zcG5hbWUgQVMgc3JjbnNw bmFtZSwKKyAgICBudC5uc3BuYW1lIEFTIHRyZ25zcG5hbWUsCisgICAgbnAu bnNwbmFtZSBBUyBwcm9uc3BuYW1lLAorICAgIGRlc2NyaXB0aW9uLAorICAg IGNvbmNhdChmb3JtYXRfdHlwZShzdC5vaWQsTlVMTCksJy0+Jyxmb3JtYXRf dHlwZSh0dC5vaWQsdHQudHlwdHlwbW9kKSkgYXMgbmFtZQorICBGUk9NIHBn X2Nhc3QgY2EKKyAgSk9JTiBwZ190eXBlIHN0IE9OIHN0Lm9pZD1jYXN0c291 cmNlCisgIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIG5zLm9pZD1zdC50eXBu YW1lc3BhY2UKKyAgSk9JTiBwZ190eXBlIHR0IE9OIHR0Lm9pZD1jYXN0dGFy Z2V0CisgIEpPSU4gcGdfbmFtZXNwYWNlIG50IE9OIG50Lm9pZD10dC50eXBu YW1lc3BhY2UKKyAgTEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gcHIub2lkPWNh c3RmdW5jCisgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnAgT04gbnAub2lk PXByLnByb25hbWVzcGFjZQorICBMRUZUIE9VVEVSIEpPSU4gcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWNhLm9pZCBBTkQgZGVzLm9ianN1 YmlkPTAgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2FzdCc6OnJlZ2NsYXNzKQor CisgIHslIGlmIGNpZCAlfQorICAgIFdIRVJFIGNhLm9pZD17e2NpZH19Ojpp bnQKKyAgeyUgZW5kaWYgJX0KKworLS1UT0RPOiBhZGQgY2hlY2sgZm9yIHNo b3dTeXN0ZW1PYmplY3QoKS4gY3VycmVudGx5IGFzc3VtZWQgYXMgZmFsc2UK KyAgeyUgaWYgZGF0bGFzdHN5c29pZCAlfQorICAgIHslIGlmIGNpZCAlfQor ICAgICAgQU5ECisgICAgeyUgZWxzZSAlfQorICAgICAgV0hFUkUKKyAgICB7 JSBlbmRpZiAlfQorICAgIGNhLm9pZCA+IHt7ZGF0bGFzdHN5c29pZH19OjpP SUQKKyAgeyUgZW5kaWYgJX0KKworICBPUkRFUiBCWSBzdC50eXBuYW1lLCB0 dC50eXBuYW1lCit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1wbGF0ZXMvY2Fz dC9zcWwvOS4wX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy90ZW1w bGF0ZXMvY2FzdC9zcWwvOS4wX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMTdiMWU2Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3RlbXBsYXRlcy9jYXN0L3NxbC85LjBf cGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsNiBAQAoreyMgPT09PT09PT09 PT1CZWxvdyBTUUwgd2lsbCB1cGRhdGUgY2FzdCBjb21tZW50cz09PT09PT09 PT09PT09PT09PT0gI30KKworeyUgIGlmIGRhdGEgYW5kIGRhdGEuZGVzY3Jp cHRpb24gYW5kIGRhdGEuZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0 aW9uICV9CisgIENPTU1FTlQgT04gQ0FTVCAoe3tvX2RhdGEuc3JjdHlwfX0g QVMge3tvX2RhdGEudHJndHlwfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlw dGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUK --001a11431b4e89ce2f0529c25941 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 --001a11431b4e89ce2f0529c25941--