Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1as4y5-0002jn-Iz for pgadmin-hackers@arkaria.postgresql.org; Mon, 18 Apr 2016 08:55:41 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1as4y4-0002Zc-Fg for pgadmin-hackers@arkaria.postgresql.org; Mon, 18 Apr 2016 08:55:40 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1as4xp-0002LB-UF for pgadmin-hackers@postgresql.org; Mon, 18 Apr 2016 08:55:26 +0000 Received: from mail-yw0-x22f.google.com ([2607:f8b0:4002:c05::22f]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1as4xl-0007iK-Cu for pgadmin-hackers@postgresql.org; Mon, 18 Apr 2016 08:55:25 +0000 Received: by mail-yw0-x22f.google.com with SMTP id j74so18414383ywg.1 for ; Mon, 18 Apr 2016 01:55:20 -0700 (PDT) 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; bh=22P1SiW6q3g6AFboCmxm43y9AwRS2X+ZUjSRyUedfLw=; b=2APS5AgvgsPG+QF3Qnl1PjJxWny5SWQI3Zw72Bu+/gUxOaivyDQl+fCMCJgBA4FJzj e55BsZVmcCOorbqN0ZYrQxY3GOeLkQed2DO5f7lvLZc7HwGDj8Us2GLmlz4taCBJ9U3l SLQOZHf48YfAoGw5xe2j4JQhHtRir7Z32nyYELzfKlS7UlFLhCmiubcAw2bcmPtIoLPI OI8XXnNp8j2EHr4z5GLZN46OIXCQipAKk61tjUterAXDUX2UYENkhb2U0g41A8LdtzH4 dKScIuI+D+hbq5a+0pdIdwzwb6AVqjkfnmD5u+8KHHNSe2xh4/iZIGaJy3k+c/bPf4nw kYmQ== 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; bh=22P1SiW6q3g6AFboCmxm43y9AwRS2X+ZUjSRyUedfLw=; b=N/fVRyFqeqALkx1pokLl9B0lGIHBTAc1iRXJZwFuFyu/CTpyiUTZOxYOc3KK+lM+49 co4oC/8TQye4AQgxxyqUlsUwiuIS0WWmC/Ry4bjXW/89ZHFzXa1znP3gaXC7LZ91yuS1 F+atPRNU7JaP6KljwjEbaEcryKT1gST+/zyVZvno/84uuvMX9Yiqa3OPhDOBVGzzvmLd S40xClbYwUket6hyCo2Pq31dESM+vQW3Cq1vOK/nu8pCsFWg7SiV6ECLXqlKrbsO8Gji KLq6SCkMH3A/7P9q8+w5lzNw0Oi+BPC5eWmO9bElGrOlGFDK3kSm61tvxZpesFVCRE2q A6bA== X-Gm-Message-State: AOPr4FURSYQfYQul4PHuOPtkjxKPepCuDbFA7SId1o5U9d/h+3jR/jnyYH3hSGIieQmCLac4g7obukQrb3lF4PEk MIME-Version: 1.0 X-Received: by 10.129.83.213 with SMTP id h204mr19284299ywb.276.1460969719350; Mon, 18 Apr 2016 01:55:19 -0700 (PDT) Received: by 10.37.203.134 with HTTP; Mon, 18 Apr 2016 01:55:19 -0700 (PDT) In-Reply-To: References: Date: Mon, 18 Apr 2016 14:25:19 +0530 Message-ID: Subject: Re: [pgAdmin4][Debugger]: Initial Patch From: Neel Patel To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114d8e16268cb00530be8566 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 --001a114d8e16268cb00530be8566 Content-Type: multipart/alternative; boundary=001a114d8e16268cad0530be8564 --001a114d8e16268cad0530be8564 Content-Type: text/plain; charset=UTF-8 Hi Dave, Please find inline comments with all the fixes. Attached is the updated patch file. Do review it and let me know for any comments. If you find any issues, let me know .Now, Working on the remaining TODOs as mentioned in below email. Thanks, Neel Patel On Fri, Apr 15, 2016 at 2:09 AM, Dave Page wrote: > Hi > > On Thu, Apr 14, 2016 at 1:52 PM, Neel Patel > wrote: > > Hi, > > > > Please find attached v2 patch file of the debugger which fixes the below > > issues which was not present in the first patch. > > In this patch, we have added new table in sqlite database to store the > > functions arguments value user has given during debugging. > > After applying this patch, user needs to execute "setup.py" to create the > > new table in pgadmin4.db file. > > > > In direct debugging, when user debug the function then arguments values > will > > be stored in the sqlite database so when user debug the same function > again > > then previous values will be filled in the user input dialog. > > Once the execution is completed then user will be able to do the debug of > > the same function again by pressing the "Continue/Restart" button. > > User can debug the "procedure" which is supported in PPAS database. > > Replaced the "Glyphicon" with the "font-awesome" icons. > > Very cool! Committed, understanding that there are still improvements > to be made. > > > Below are the TODOs > > > > Validate the input arguments values changed by user while depositing the > > value during debugging. > > Need to implement the code folding in the codemirror editor area. > > As per the Ashesh's suggestion, need to add debug logs information so > that > > we can get the state of the debug function. Also need to add "arrow" > next to > > breakpoint in the gutters as per the pgadmin3. > > Need to add "Debug package initializer" in the user input dialog for the > > direct debugging. > > Last but not least "Review comments" :) > > Here you go :-) > > - Ensure all messages are gettext enabled. > Fixed. > > - Constructs like the following won't work, because Jinja will > evaluate the string " + err.errormsg + " before it ever gets evaluated > as JS by the browser. > > Alertify.alert("{{ _('" + err.errormsg + "') }}"); > Fixed. > > - Please adjust the button bar to use the same styling as the button > bar on the Properties tab. > Fixed > > - Let's make the stack pane tab part of the tabset at the bottom of > the debugger, and ensure docking etc. works so tabs can be split off > and arranged around the main source window. > Fixed. Now stack pane will be displayed along with another panel at bottom and also docking has been introduced for all the panels so tabs will be arranged around main debugger panel. > > - Stepping is quite slow. What's causing that? I wonder if we really > need to have all the one line SQL templates - they're probably quite > expensive to process. > Fixed. This is due to polling timeout was high (1 second) and we are getting delay in getting the results. Now polling timeout has reduced to to 200ms. > > - Is backend_running.sql required? I've removed both versions as I > can't find any references to them. Are any other templates not > required? > Ok. No other templates. > > Will log any other issues that come up in further work. > > > Below functionalities are implemented but testing are pending. > > > > Trigger functions need to test with the debugger. > > Functions are tested with data types (like text, integer etc.) but it > needs > > to be tested with all the data types for direct debugging. > > Functions/Procedures need to test with PPAS 9.2 and earlier version where > > debugger version is different. > > Thanks! > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a114d8e16268cad0530be8564 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Dave,

Please find inline comments wi= th all the fixes.
Attached is the updated patch file. Do review i= t and let me know for any comments.

If you find an= y issues, let me know .Now, Working on the remaining TODOs as mentioned in = below email.

Thanks,
Neel Patel

On Fri, Apr 15, 2016= at 2:09 AM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Apr 14, 2016 at 1:52 PM, Neel Patel <neel.patel@enterprisedb.com> wrote:
> Hi,
>
> Please find attached v2 patch file of the debugger which fixes the bel= ow
> issues which was not present in the first patch.
> In this patch, we have added new table in sqlite database to store the=
> functions arguments value user has given during debugging.
> After applying this patch, user needs to execute "setup.py" = to create the
> new table in pgadmin4.db file.
>
> In direct debugging, when user debug the function then arguments value= s will
> be stored in the sqlite database so when user debug the same function = again
> then previous values will be filled in the user input dialog.
> Once the execution is completed then user will be able to do the debug= of
> the same function again by pressing the "Continue/Restart" b= utton.
> User can debug the "procedure" which is supported in PPAS da= tabase.
> Replaced the "Glyphicon" with the "font-awesome" i= cons.

Very cool! Committed, understanding that there are still improvement= s
to be made.

> Below are the TODOs
>
> Validate the input arguments values changed by user while depositing t= he
> value during debugging.
> Need to implement the code folding in the codemirror editor area.
> As per the Ashesh's suggestion, need to add debug logs information= so that
> we can get the state of the debug function. Also need to add "arr= ow" next to
> breakpoint in the gutters as per the pgadmin3.
> Need to add "Debug package initializer" in the user input di= alog for the
> direct debugging.
> Last but not least "Review comments" :)

Here you go :-)

- Ensure all messages are gettext enabled.
=C2=A0
Fixed.=C2=A0

- Constructs like the following won't work, because Jinja will
evaluate the string " + err.errormsg + " before it ever gets eval= uated
as JS by the browser.

Alertify.alert("{{ _('" + err.errormsg + "') }}"= ;);
=C2=A0
Fixed.
=C2=A0

- Please adjust the button bar to use the same styling as the button
bar on the Properties tab.
=C2=A0
Fixed=C2= =A0

- Let's make the stack pane tab part of the tabset at the bottom of
the debugger, and ensure docking etc. works so tabs can be split off
and arranged around the main source window.
=C2=A0
Fixed. Now stack pane will be displayed along with another panel at = bottom and also docking has been introduced for all the panels so tabs will= be arranged around main debugger panel.
=C2=A0

- Stepping is quite slow. What's causing that? I wonder if we really
need to have all the one line SQL templates - they're probably quite
expensive to process.
Fixed. This is due to polling ti= meout was high (1 second) and we are getting delay in getting the results. = Now polling timeout has reduced to to 200ms.

- Is backend_running.sql required? I've removed both versions as I
can't find any references to them. Are any other templates not
required?
Ok. No other templates.

Will log any other issues that come up in further work.

> Below functionalities are implemented but testing are pending.
>
> Trigger functions need to test with the debugger.
> Functions are tested with data types (like text, integer etc.)=C2=A0 b= ut it needs
> to be tested with all the data types for direct debugging.
> Functions/Procedures need to test with PPAS 9.2 and earlier version wh= ere
> debugger version is different.

Thanks!

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--001a114d8e16268cad0530be8564-- --001a114d8e16268cb00530be8566 Content-Type: application/octet-stream; name="debugger_18_April_Fixes.patch" Content-Disposition: attachment; filename="debugger_18_April_Fixes.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_in5renhw0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18u cHkKaW5kZXggODg4ZTlhMy4uMjY5MGE3NSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkKQEAgLTE3MSw3ICsx NzEsNyBAQCBkZWYgaW5pdF9mdW5jdGlvbihub2RlX3R5cGUsIHNpZCwgZGlk LCBzY2lkLCBmaWQpOgogICAgICAgICAgICAgaWYgdXNlclsnaXNfc3VwZXJ1 c2VyJ106CiAgICAgICAgICAgICAgICAgc3RhdHVzX2luLCByaWRfcHJlID0g Y29ubi5leGVjdXRlX3NjYWxhcigiU0hPVyBzaGFyZWRfcHJlbG9hZF9saWJy YXJpZXMiKQogICAgICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXNfaW46Ci0g ICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoIkVSUk9SOiBDb3VsZG4ndCBmZXRjaCBkZWJ1Z2dlciBwbHVnaW4gaW5m b3JtYXRpb24iKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGdldHRleHQoIkVSUk9SOiBDb3VsZG4ndCBmZXRj aCBkZWJ1Z2dlciBwbHVnaW4gaW5mb3JtYXRpb24iKSkKIAogICAgICAgICAg ICAgICAgICMgTmVlZCB0byBjaGVjayBpZiBwbHVnaW4gaXMgcmVhbGx5IGxv YWRlZCBvciBub3Qgd2l0aCAicGx1Z2luX2RlYnVnZ2VyIiBzdHJpbmcKICAg ICAgICAgICAgICAgICBpZiByaWRfcHJlOgpAQCAtMTgxLDcgKzE4MSw3IEBA IGRlZiBpbml0X2Z1bmN0aW9uKG5vZGVfdHlwZSwgc2lkLCBkaWQsIHNjaWQs IGZpZCk6CiAgICAgICAgICAgICBzdGF0dXNfaW4sIHJpZF90YXIgPSBjb25u LmV4ZWN1dGVfc2NhbGFyKCJTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19wcm9j IFdIRVJFIHByb25hbWUgPSAncGxkYmdfZ2V0X3RhcmdldF9pbmZvJyIpCiAg ICAgICAgICAgICBpZiBub3Qgc3RhdHVzX2luOgogICAgICAgICAgICAgICAg IGN1cnJlbnRfYXBwLmxvZ2dlci5kZWJ1ZygiRVJST1I6IENvdWxkbid0IGZl dGNoIGRlYnVnZ2VyIHRhcmdldCBpbmZvcm1hdGlvbiIpCi0gICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigiRVJST1I6IENv dWxkbid0IGZldGNoIGRlYnVnZ2VyIHRhcmdldCBpbmZvcm1hdGlvbiIpCisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihn ZXR0ZXh0KCJFUlJPUjogQ291bGRuJ3QgZmV0Y2ggZGVidWdnZXIgdGFyZ2V0 IGluZm9ybWF0aW9uIikpCiAKICAgICAgICAgICAgIGlmIHJpZF90YXIgPT0g MDoKICAgICAgICAgICAgICAgICByZXRfc3RhdHVzID0gRmFsc2UKQEAgLTE5 MSw3ICsxOTEsNyBAQCBkZWYgaW5pdF9mdW5jdGlvbihub2RlX3R5cGUsIHNp ZCwgZGlkLCBzY2lkLCBmaWQpOgogICAgICMgUmV0dXJuIHRoZSByZXNwb25z ZSB0aGF0IGZ1bmN0aW9uIGNhbiBub3QgYmUgZGVidWcuLi4KICAgICBpZiBu b3QgcmV0X3N0YXR1czoKICAgICAgICAgY3VycmVudF9hcHAubG9nZ2VyLmRl YnVnKCJFcnJvcjogRnVuY3Rpb24vUHJvY2VkdXJlIGNhbiBub3QgYmUgZGVi dWciKQotICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKCJF UlJPUjogRnVuY3Rpb24vUHJvY2VkdXJlIGNhbiBub3QgYmUgZGVidWcuIikK KyAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihnZXR0ZXh0 KCJFUlJPUjogRnVuY3Rpb24vUHJvY2VkdXJlIGNhbiBub3QgYmUgZGVidWcu IikpCiAKICAgICAjIFN0b3JlIHRoZSBmdW5jdGlvbiBpbmZvcm1hdGlvbiBp biBzZXNzaW9uIHZhcmlhYmxlCiAgICAgaWYgJ2Z1bmNEYXRhJyBub3QgaW4g c2Vzc2lvbjoKQEAgLTE5OSwyNSArMTk5LDYgQEAgZGVmIGluaXRfZnVuY3Rp b24obm9kZV90eXBlLCBzaWQsIGRpZCwgc2NpZCwgZmlkKToKICAgICBlbHNl OgogICAgICAgICBmdW5jdGlvbl9kYXRhID0gc2Vzc2lvblsnZnVuY0RhdGEn XQogCi0gICAgZnVuY3Rpb25fZGF0YSA9IHsKLSAgICAgICAgJ29pZCc6IGZp ZCwKLSAgICAgICAgJ25hbWUnOiByX3NldFsncm93cyddWzBdWyduYW1lJ10s Ci0gICAgICAgICdpc19mdW5jJzogcl9zZXRbJ3Jvd3MnXVswXVsnaXNmdW5j J10sCi0gICAgICAgICdpc19jYWxsYWJsZSc6IEZhbHNlLAotICAgICAgICAn c2NoZW1hJzogcl9zZXRbJ3Jvd3MnXVswXVsnc2NoZW1hbmFtZSddLAotICAg ICAgICAnbGFuZ3VhZ2UnOiByX3NldFsncm93cyddWzBdWydsYW5uYW1lJ10s Ci0gICAgICAgICdyZXR1cm5fdHlwZSc6IHJfc2V0Wydyb3dzJ11bMF1bJ3Jl dHR5cGUnXSwKLSAgICAgICAgJ2FyZ3NfdHlwZSc6IHJfc2V0Wydyb3dzJ11b MF1bJ3Byb2FyZ3R5cGVuYW1lcyddLAotICAgICAgICAnYXJnc19uYW1lJzog cl9zZXRbJ3Jvd3MnXVswXVsncHJvYXJnbmFtZXMnXSwKLSAgICAgICAgJ2Fy Z19tb2RlJzogcl9zZXRbJ3Jvd3MnXVswXVsncHJvYXJnbW9kZXMnXSwKLSAg ICAgICAgJ3VzZV9kZWZhdWx0Jzogcl9zZXRbJ3Jvd3MnXVswXVsncHJvbmFy Z2RlZmF1bHRzJ10sCi0gICAgICAgICdkZWZhdWx0X3ZhbHVlJzogcl9zZXRb J3Jvd3MnXVswXVsncHJvYXJnZGVmYXVsdHMnXSwKLSAgICAgICAgJ3BrZyc6 IHJfc2V0Wydyb3dzJ11bMF1bJ3BrZyddLAotICAgICAgICAnYXJnc192YWx1 ZSc6ICcnCi0gICAgfQotCi0gICAgc2Vzc2lvblsnZnVuY0RhdGEnXSA9IGZ1 bmN0aW9uX2RhdGE7Ci0KICAgICBkYXRhID0ge30KICAgICBkYXRhWyduYW1l J10gPSByX3NldFsncm93cyddWzBdWydwcm9hcmduYW1lcyddCiAgICAgZGF0 YVsndHlwZSddID0gcl9zZXRbJ3Jvd3MnXVswXVsncHJvYXJndHlwZW5hbWVz J10KQEAgLTI0NCw2ICsyMjUsMjYgQEAgZGVmIGluaXRfZnVuY3Rpb24obm9k ZV90eXBlLCBzaWQsIGRpZCwgc2NpZCwgZmlkKToKIAogICAgIHJfc2V0Wydy b3dzJ11bMF1bJ3JlcXVpcmVfaW5wdXQnXSA9IGRhdGFbJ3JlcXVpcmVfaW5w dXQnXQogCisgICAgZnVuY3Rpb25fZGF0YSA9IHsKKyAgICAgICAgJ29pZCc6 IGZpZCwKKyAgICAgICAgJ25hbWUnOiByX3NldFsncm93cyddWzBdWyduYW1l J10sCisgICAgICAgICdpc19mdW5jJzogcl9zZXRbJ3Jvd3MnXVswXVsnaXNm dW5jJ10sCisgICAgICAgICdpc19jYWxsYWJsZSc6IEZhbHNlLAorICAgICAg ICAnc2NoZW1hJzogcl9zZXRbJ3Jvd3MnXVswXVsnc2NoZW1hbmFtZSddLAor ICAgICAgICAnbGFuZ3VhZ2UnOiByX3NldFsncm93cyddWzBdWydsYW5uYW1l J10sCisgICAgICAgICdyZXR1cm5fdHlwZSc6IHJfc2V0Wydyb3dzJ11bMF1b J3JldHR5cGUnXSwKKyAgICAgICAgJ2FyZ3NfdHlwZSc6IHJfc2V0Wydyb3dz J11bMF1bJ3Byb2FyZ3R5cGVuYW1lcyddLAorICAgICAgICAnYXJnc19uYW1l Jzogcl9zZXRbJ3Jvd3MnXVswXVsncHJvYXJnbmFtZXMnXSwKKyAgICAgICAg J2FyZ19tb2RlJzogcl9zZXRbJ3Jvd3MnXVswXVsncHJvYXJnbW9kZXMnXSwK KyAgICAgICAgJ3VzZV9kZWZhdWx0Jzogcl9zZXRbJ3Jvd3MnXVswXVsncHJv bmFyZ2RlZmF1bHRzJ10sCisgICAgICAgICdkZWZhdWx0X3ZhbHVlJzogcl9z ZXRbJ3Jvd3MnXVswXVsncHJvYXJnZGVmYXVsdHMnXSwKKyAgICAgICAgJ3Br Zyc6IHJfc2V0Wydyb3dzJ11bMF1bJ3BrZyddLAorICAgICAgICAncmVxdWly ZV9pbnB1dCc6IGRhdGFbJ3JlcXVpcmVfaW5wdXQnXSwKKyAgICAgICAgJ2Fy Z3NfdmFsdWUnOiAnJworICAgIH0KKworICAgIHNlc3Npb25bJ2Z1bmNEYXRh J10gPSBmdW5jdGlvbl9kYXRhOworCiAgICAgcmV0dXJuIG1ha2VfanNvbl9y ZXNwb25zZSgKICAgICAgICAgICAgICAgICBkYXRhPXJfc2V0Wydyb3dzJ10s CiAgICAgICAgICAgICAgICAgc3RhdHVzPTIwMApAQCAtMzk1LDYgKzM5Niw3 IEBAIGRlZiBpbml0aWFsaXplX3RhcmdldChkZWJ1Z190eXBlLCBzaWQsIGRp ZCwgc2NpZCwgZnVuY19pZCk6CiAgICAgICAgICd1c2VfZGVmYXVsdCc6IGZ1 bmNfZGF0YVsndXNlX2RlZmF1bHQnXSwKICAgICAgICAgJ2RlZmF1bHRfdmFs dWUnOiBmdW5jX2RhdGFbJ2RlZmF1bHRfdmFsdWUnXSwKICAgICAgICAgJ3Br Zyc6IGZ1bmNfZGF0YVsncGtnJ10sCisgICAgICAgICdyZXF1aXJlX2lucHV0 JzogZnVuY19kYXRhWydyZXF1aXJlX2lucHV0J10sCiAgICAgICAgICdhcmdz X3ZhbHVlJzogZnVuY19kYXRhWydhcmdzX3ZhbHVlJ10KICAgICB9CiAKQEAg LTUxMSw3ICs1MTMsOCBAQCBkZWYgcmVzdGFydF9kZWJ1Z2dpbmcodHJhbnNf aWQpOgogICAgICAgICAgICAgICAgICdwcm9hcmd0eXBlbmFtZXMnOiBzZXNz aW9uWydmdW5jdGlvbkRhdGEnXVtzdHIodHJhbnNfaWQpXVsnYXJnc190eXBl J10sCiAgICAgICAgICAgICAgICAgJ3Byb25hcmdkZWZhdWx0cyc6IHNlc3Np b25bJ2Z1bmN0aW9uRGF0YSddW3N0cih0cmFuc19pZCldWyd1c2VfZGVmYXVs dCddLAogICAgICAgICAgICAgICAgICdwcm9hcmdkZWZhdWx0cyc6IHNlc3Np b25bJ2Z1bmN0aW9uRGF0YSddW3N0cih0cmFuc19pZCldWydkZWZhdWx0X3Zh bHVlJ10sCi0gICAgICAgICAgICAgICAgJ3Byb2FyZ25hbWVzJzogc2Vzc2lv blsnZnVuY3Rpb25EYXRhJ11bc3RyKHRyYW5zX2lkKV1bJ2FyZ3NfbmFtZSdd CisgICAgICAgICAgICAgICAgJ3Byb2FyZ25hbWVzJzogc2Vzc2lvblsnZnVu Y3Rpb25EYXRhJ11bc3RyKHRyYW5zX2lkKV1bJ2FyZ3NfbmFtZSddLAorICAg ICAgICAgICAgICAgICdyZXF1aXJlX2lucHV0Jzogc2Vzc2lvblsnZnVuY3Rp b25EYXRhJ11bc3RyKHRyYW5zX2lkKV1bJ3JlcXVpcmVfaW5wdXQnXQogICAg ICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoZGF0YT17J3N0YXR1cyc6IFRydWUsICdyZXN0YXJ0X2RlYnVnJzogVHJ1 ZSwgJ3Jlc3VsdCc6IGZ1bmN0aW9uX2RhdGF9KQpAQCAtNzYyLDcgKzc2NSw3 IEBAIGRlZiBleGVjdXRlX2RlYnVnZ2VyX3F1ZXJ5KHRyYW5zX2lkLCBxdWVy eV90eXBlKToKICAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CiAgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXN1bHQpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoaW5mbz0nVGFyZ2V0IEFib3J0 ZWQuJywgZGF0YT17J3N0YXR1cyc6IHN0YXR1cywgJ3Jlc3VsdCc6IHJlc3Vs dH0pCisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZShpbmZvPWdldHRleHQoJ1RhcmdldCBBYm9ydGVkLicpLCBkYXRhPXsnc3Rh dHVzJzogc3RhdHVzLCAncmVzdWx0JzogcmVzdWx0fSkKICAgICAgICAgZWxz ZToKICAgICAgICAgICAgIHN0YXR1cywgcmVzdWx0ID0gY29ubi5leGVjdXRl X2RpY3Qoc3FsKQogICAgICAgICBpZiBub3Qgc3RhdHVzOgpAQCAtMTI2Nywx NCArMTI3MCwxOSBAQCBkZWYgcG9sbF9lbmRfZXhlY3V0aW9uX3Jlc3VsdCh0 cmFuc19pZCk6CiAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKHN1Y2Nlc3M9MSwgaW5mbz1nZXR0ZXh0KCJFeGVjdXRpb24gQ29tcGxl dGVkLiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPXsnc3RhdHVzJzogc3RhdHVzLCAnc3RhdHVzX21lc3NhZ2UnOiBz dGF0dXNtc2d9KQogICAgICAgICBpZiByZXN1bHQ6Ci0gICAgICAgICAgICBz dGF0dXMgPSAnU3VjY2VzcycKLSAgICAgICAgICAgIGRhdGEgPSB7fQotICAg ICAgICAgICAgZm9yIGkgaW4gcmVzdWx0OgotICAgICAgICAgICAgICAgIGZv ciBrLCB2IGluIGkuaXRlbXMoKToKLSAgICAgICAgICAgICAgICAgICAgZGF0 YVsibmFtZSJdID0gawotICAgICAgICAgICAgICAgICAgICBkYXRhLnNldGRl ZmF1bHQoInZhbHVlIixbXSkuYXBwZW5kKHYpCisgICAgICAgICAgICBpZiAn RVJST1InIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICBzdGF0dXMgPSAn RVJST1InCisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNw b25zZShpbmZvPWdldHRleHQoIkV4ZWN1dGlvbiBjb21wbGV0ZWQgd2l0aCBl cnJvciIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXRhPXsnc3RhdHVzJzogc3RhdHVzLCAnc3RhdHVzX21lc3NhZ2UnOiBy ZXN1bHR9KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBz dGF0dXMgPSAnU3VjY2VzcycKKyAgICAgICAgICAgICAgICBkYXRhID0ge30K KyAgICAgICAgICAgICAgICBmb3IgaSBpbiByZXN1bHQ6CisgICAgICAgICAg ICAgICAgICAgIGZvciBrLCB2IGluIGkuaXRlbXMoKToKKyAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFbIm5hbWUiXSA9IGsKKyAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGEuc2V0ZGVmYXVsdCgidmFsdWUiLFtdKS5hcHBlbmQo dikKIAotICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZShz dWNjZXNzPTEsIGluZm89Z2V0dGV4dCgiRXhlY3V0aW9uIENvbXBsZXRlZC4i KSwKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNl KHN1Y2Nlc3M9MSwgaW5mbz1nZXR0ZXh0KCJFeGVjdXRpb24gQ29tcGxldGVk LiIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhPXsnc3RhdHVzJzogc3RhdHVzLCAncmVzdWx0JzogZGF0YSwgJ3N0YXR1 c19tZXNzYWdlJzogc3RhdHVzbXNnfSkKICAgICAgICAgZWxzZToKICAgICAg ICAgICAgIHN0YXR1cyA9ICdCdXN5JwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvZGVidWdnZXIvc3RhdGljL2Nzcy9kZWJ1Z2dlci5jc3MgYi93 ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvY3NzL2RlYnVnZ2Vy LmNzcwppbmRleCAyZGNlYjUzLi5kZmViMzMxIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvY3NzL2RlYnVnZ2VyLmNz cworKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci9zdGF0aWMvY3Nz L2RlYnVnZ2VyLmNzcwpAQCAtMSwxNyArMSwxNyBAQAotLm5hdmJhci1zdGF0 aWMtdG9wLCAubmF2YmFyLWZpeGVkLXRvcCwgLm5hdmJhci1maXhlZC1ib3R0 b20gewotICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8g Ym90dG9tLCAjQ0NDIDAlLCAjRDJEMkQyIDEwMCUpOwotfQotCi0uYnRuLWRl ZmF1bHQgeworLmJ0bi1zdGVwLWludG8sIC5idG4tc3RlcC1vdmVyLCAuYnRu LWNvbnRpbnVlLCAuYnRuLXRvZ2dsZS1icmVha3BvaW50LCAuYnRuLWNsZWFy LWJyZWFrcG9pbnQsIC5idG4tc3RvcCB7CiAgIGJhY2tncm91bmQtY29sb3I6 ICNEMkQyRDI7CiAgIGxlZnQ6IDBweDsKICAgcmlnaHQ6IDBweDsKICAgcGFk ZGluZzogN3B4OwogfQogCi0uYnRuLXRvb2xiYXIgewotICBwYWRkaW5nLXRv cDogM3B4OwotICBwYWRkaW5nLWJvdHRvbTogM3B4OworLmRlYnVnZ2VyLXRv b2xiYXIgeworICBiYWNrZ3JvdW5kLWNvbG9yOiAjRDJEMkQyOworICBib3Jk ZXI6IDJweCBzb2xpZCAjQTlBOUE5OworICBsZWZ0OiAwcHg7CisgIHJpZ2h0 OiAwcHg7CisgIHBhZGRpbmc6IDBweDsKKyAgcGFkZGluZy1sZWZ0OiAycHg7 CiB9CiAKICNjb250YWluZXIgewpAQCAtNjMsMTAgKzYzLDEwIEBACiAgIHRl eHQtYWxpZ246IGNlbnRlcjsKIH0KIAotLnRvcC1jb250YWluZXIgLmJyZWFr cG9pbnRzIHsKKy5wZy1kZWJ1Z2dlci1wYW5lbCAuYnJlYWtwb2ludHMgewog ICAgIHdpZHRoOiAwLjllbTsKIH0KIAotLnRvcC1jb250YWluZXIgLkNvZGVN aXJyb3ItYWN0aXZlbGluZS1iYWNrZ3JvdW5kIHsKKy5wZy1kZWJ1Z2dlci1w YW5lbCAuQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQgewogICAg IGJhY2tncm91bmQ6ICM1MEIwRjA7CiB9ClwgTm8gbmV3bGluZSBhdCBlbmQg b2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdn ZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2RpcmVjdC5odG1sIGIvd2ViL3BnYWRt aW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2RpcmVjdC5o dG1sCmluZGV4IDcxOGVmMmYuLmE3MmI5MGEgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9kaXJl Y3QuaHRtbAorKysgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci90ZW1w bGF0ZXMvZGVidWdnZXIvZGlyZWN0Lmh0bWwKQEAgLTE5LDcgKzE5LDcgQEAg dHJ5IHsKIHslIGJsb2NrIGJvZHkgJX0KIAogPG5hdiBjbGFzcz0ibmF2YmFy LWludmVyc2UgbmF2YmFyLWZpeGVkLXRvcCI+Ci0gIDxkaXYgY2xhc3M9ImNv bnRhaW5lci1mbHVpZCI+CisgIDxkaXYgY2xhc3M9ImNvbnRhaW5lci1mbHVp ZCBkZWJ1Z2dlci10b29sYmFyIj4KICAgICA8ZGl2IGNsYXNzPSJjb2xsYXBz ZSBuYXZiYXItY29sbGFwc2UiPgogICAgICAgPHVsIGNsYXNzPSJuYXYgbmF2 YmFyLW5hdiI+CiAgICAgICAgIDxkaXYgaWQ9ImJ0bi10b29sYmFyIiBjbGFz cz0iYnRuLXRvb2xiYXIiIHJvbGU9InRvb2xiYXIiIGFyaWEtbGFiZWw9IiI+ CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci90ZW1w bGF0ZXMvZGVidWdnZXIvanMvZGVidWdnZXIuanMgYi93ZWIvcGdhZG1pbi90 b29scy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvanMvZGVidWdnZXIu anMKaW5kZXggNmQyNDg0OC4uZjE2ZmE5MSAxMDA2NDQKLS0tIGEvd2ViL3Bn YWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2pzL2Rl YnVnZ2VyLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3Rl bXBsYXRlcy9kZWJ1Z2dlci9qcy9kZWJ1Z2dlci5qcwpAQCAtNTUsNiArNTUs NyBAQCBkZWZpbmUoCiAgICAgICAgICAgd2lkdGg6IDUwMCwKICAgICAgICAg ICBpc0Nsb3NlYWJsZTogdHJ1ZSwKICAgICAgICAgICBpc1ByaXZhdGU6IHRy dWUsCisgICAgICAgICAgaWNvbjogJ2ZhIGZhLWFycm93LWNpcmNsZS1yaWdo dCcsCiAgICAgICAgICAgdXJsOiAnYWJvdXQ6YmxhbmsnCiAgICAgICAgIH0p OwogCkBAIC0xNTMsOCArMTU0LDcgQEAgZGVmaW5lKAogICAgICAgICAgICAg dHJ5IHsKICAgICAgICAgICAgICAgdmFyIGVyciA9ICQucGFyc2VKU09OKHho ci5yZXNwb25zZVRleHQpOwogICAgICAgICAgICAgICBpZiAoZXJyLnN1Y2Nl c3MgPT0gMCkgewotICAgICAgICAgICAgICAgIG1zZyA9IFMoJ3t7IF8oJyAr IGVyci5lcnJvcm1zZyArICcpfX0nKS52YWx1ZSgpOwotICAgICAgICAgICAg ICAgIEFsZXJ0aWZ5LmFsZXJ0KCJ7eyBfKCciICsgZXJyLmVycm9ybXNnICsg IicpIH19Iik7CisgICAgICAgICAgICAgICAgQWxlcnRpZnkuYWxlcnQoZXJy LmVycm9ybXNnKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBj YXRjaCAoZSkge30KICAgICAgICAgICB9CkBAIC0zMTYsOCArMzE2LDcgQEAg ZGVmaW5lKAogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgdmFy IGVyciA9ICQucGFyc2VKU09OKHhoci5yZXNwb25zZVRleHQpOwogICAgICAg ICAgICAgICBpZiAoZXJyLnN1Y2Nlc3MgPT0gMCkgewotICAgICAgICAgICAg ICAgIG1zZyA9IFMoJ3t7IF8oJyArIGVyci5lcnJvcm1zZyArICcpfX0nKS52 YWx1ZSgpOwotICAgICAgICAgICAgICAgIEFsZXJ0aWZ5LmFsZXJ0KCJ7eyBf KCciICsgZXJyLmVycm9ybXNnICsgIicpIH19Iik7CisgICAgICAgICAgICAg ICAgQWxlcnRpZnkuYWxlcnQoZXJyLmVycm9ybXNnKTsKICAgICAgICAgICAg ICAgfQogICAgICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICAgICB9 CkBAIC0zMjYsNCArMzI1LDQgQEAgZGVmaW5lKAogICAgIH07CiAKICAgICBy ZXR1cm4gcGdBZG1pbi5Ub29scy5EZWJ1Z2dlcjsKLSAgfSk7ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQorICB9KTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9qcy9k ZWJ1Z2dlcl91aS5qcyBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3Rl bXBsYXRlcy9kZWJ1Z2dlci9qcy9kZWJ1Z2dlcl91aS5qcwppbmRleCA4YjU4 YmYzLi5mMzQ1ZGM5IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvanMvZGVidWdnZXJfdWkuanMK KysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2Rl YnVnZ2VyL2pzL2RlYnVnZ2VyX3VpLmpzCkBAIC01NTgsNyArNTU4LDYgQEAg ZGVmaW5lKAogICAgICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsCiAg ICAgICAgICAgICAgICAgICBkYXRhOnsnZGF0YSc6SlNPTi5zdHJpbmdpZnko YXJnc192YWx1ZV9saXN0KX0sCiAgICAgICAgICAgICAgICAgICBzdWNjZXNz OiBmdW5jdGlvbihyZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgLy9UT0RP OiBBbnl0aGluZyByZXF1aXJlZCA/IC4uLi4uCiAgICAgICAgICAgICAgICAg ICB9LAogICAgICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGUpIHsK ICAgICAgICAgICAgICAgICAgICAgQWxlcnRpZnkuYWxlcnQoCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVi dWdnZXIvanMvZGlyZWN0LmpzIGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdn ZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL2pzL2RpcmVjdC5qcwppbmRleCAwMTAy OWMyLi43NDQ5MTRhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvanMvZGlyZWN0LmpzCisrKyBi L3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dl ci9qcy9kaXJlY3QuanMKQEAgLTI0Nyw2ICsyNDcsMTggQEAgZGVmaW5lKAog ICAgICAgLy8gTWFrZSBhamF4IGNhbGwgdG8gbGlzdGVuIHRoZSBkYXRhYmFz ZSBtZXNzYWdlCiAgICAgICB2YXIgYmFzZVVybCA9ICJ7eyB1cmxfZm9yKCdk ZWJ1Z2dlci5pbmRleCcpIH19IiArICJwb2xsX3Jlc3VsdC8iICsgdHJhbnNf aWQ7CiAKKyAgICAgIC8qCisgICAgICAgIER1cmluZyB0aGUgZXhlY3V0aW9u IHdlIHNob3VsZCBwb2xsIHRoZSByZXN1bHQgaW4gbWluaW11bSBzZWNvbmRz IGJ1dCBvbmNlIHRoZSBleGVjdXRpb24gaXMgY29tcGxldGVkCisgICAgICAg IGFuZCB3YWl0IGZvciB0aGUgYW5vdGhlciBkZWJ1Z2dpbmcgc2Vzc2lvbiB0 aGVuIHdlIHNob3VsZCBkZWNyZWFzZSB0aGUgcG9sbGluZyBmcmVxdWVuY3ku CisgICAgICAqLworICAgICAgaWYgKHBnVG9vbHMuRGlyZWN0RGVidWcuZGly ZWN0X2V4ZWN1dGlvbl9jb21wbGV0ZWQpIHsKKyAgICAgICAgLy8gcG9sbCB0 aGUgcmVzdWx0IGFmdGVyIDEgc2Vjb25kCisgICAgICAgIHZhciAgcG9sbF90 aW1lb3V0ID0gMTAwMDsKKyAgICAgIH0KKyAgICAgIGVsc2UgeworICAgICAg ICAvLyBwb2xsIHRoZSByZXN1bHQgYWZ0ZXIgMjAwIG1zCisgICAgICAgIHZh ciAgcG9sbF90aW1lb3V0ID0gMjAwOworICAgICAgfQogCiAgICAgICBzZXRU aW1lb3V0KAogICAgICAgICBmdW5jdGlvbigpIHsKQEAgLTI1NywxMiArMjY5 LDExIEBAIGRlZmluZSgKICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5zdGF0 dXMgPT09ICdTdWNjZXNzJykgewogICAgICAgICAgICAgICAvLyBJZiBubyBy ZXN1bHQgdGhlbiBwb2xsIGFnYWluIHRvIHdhaXQgZm9yIHJlc3VsdHMuCiAg ICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5yZXN1bHQgPT0gbnVsbCB8fCBy ZXMuZGF0YS5yZXN1bHQubGVuZ3RoID09IDApIHsKLSAgICAgICAgICAgICAg ICAvLyBORUVMOiBUSElTIElTIENPTkRJVElPTiBJUyBBRERFRAogICAgICAg ICAgICAgICAgIHNlbGYucG9sbF9yZXN1bHQodHJhbnNfaWQpOwogICAgICAg ICAgICAgICB9CiAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg ICAgIGlmIChyZXMuZGF0YS5yZXN1bHRbMF0uc3JjICE9IHVuZGVmaW5lZCB8 fCByZXMuZGF0YS5yZXN1bHRbMF0uc3JjICE9IG51bGwpIHsKLSAgICAgICAg ICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVnLmRvY2tlci5maW5pc2hMb2Fk aW5nKDUwMCk7CisgICAgICAgICAgICAgICAgcGdUb29scy5EaXJlY3REZWJ1 Zy5kb2NrZXIuZmluaXNoTG9hZGluZyg1MCk7CiAgICAgICAgICAgICAgICAg cGdUb29scy5EaXJlY3REZWJ1Zy5lZGl0b3Iuc2V0VmFsdWUocmVzLmRhdGEu cmVzdWx0WzBdLnNyYyk7CiAgICAgICAgICAgICAgICAgc2VsZi5VcGRhdGVC cmVha3BvaW50KHRyYW5zX2lkKTsKICAgICAgICAgICAgICAgICBwZ1Rvb2xz LkRpcmVjdERlYnVnLmVkaXRvci5yZW1vdmVMaW5lQ2xhc3Moc2VsZi5hY3Rp dmVfbGluZV9ubywgJ3dyYXAnLCAnQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJh Y2tncm91bmQnKTsKQEAgLTI3Miw5ICsyODMsMTAgQEAgZGVmaW5lKAogICAg ICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgc3RhY2ssIGxvY2FsIHZhcmlh YmxlcyBhbmQgcGFyYW1ldGVycyBpbmZvcm1hdGlvbgogICAgICAgICAgICAg ICAgIHNlbGYuR2V0U3RhY2tJbmZvcm1hdGlvbih0cmFuc19pZCk7CiAgICAg ICAgICAgICAgICAgc2VsZi5HZXRMb2NhbFZhcmlhYmxlcyh0cmFuc19pZCk7 CisKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZWxzZSBp ZiAoIXBnVG9vbHMuRGlyZWN0RGVidWcuZGVidWdfdHlwZSAmJiAhcGdUb29s cy5EaXJlY3REZWJ1Zy5maXJzdF90aW1lX2luZGlyZWN0X2RlYnVnKSB7Ci0g ICAgICAgICAgICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVnLmRvY2tlci5m aW5pc2hMb2FkaW5nKDUwMCk7CisgICAgICAgICAgICAgICAgICBwZ1Rvb2xz LkRpcmVjdERlYnVnLmRvY2tlci5maW5pc2hMb2FkaW5nKDUwKTsKICAgICAg ICAgICAgICAgICAgIGlmIChzZWxmLmFjdGl2ZV9saW5lX25vICE9IHVuZGVm aW5lZCkgewogICAgICAgICAgICAgICAgICAgICBwZ1Rvb2xzLkRpcmVjdERl YnVnLmVkaXRvci5yZW1vdmVMaW5lQ2xhc3Moc2VsZi5hY3RpdmVfbGluZV9u bywgJ3dyYXAnLCAnQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQn KTsKICAgICAgICAgICAgICAgICAgIH0KQEAgLTI4Myw3ICsyOTUsNyBAQCBk ZWZpbmUoCiAgICAgICAgICAgICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVn LmZpcnN0X3RpbWVfaW5kaXJlY3RfZGVidWcgPSB0cnVlOwogICAgICAgICAg ICAgICAgIH0KICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg ICAgICAgIHBnVG9vbHMuRGlyZWN0RGVidWcuZG9ja2VyLmZpbmlzaExvYWRp bmcoNTAwKTsKKyAgICAgICAgICAgICAgICAgIHBnVG9vbHMuRGlyZWN0RGVi dWcuZG9ja2VyLmZpbmlzaExvYWRpbmcoNTApOwogICAgICAgICAgICAgICAg ICAgLy8gSWYgdGhlIHNvdXJjZSBpcyByZWFsbHkgY2hhbmdlZCB0aGVuIG9u bHkgdXBkYXRlIHRoZSBicmVha3BvaW50IGluZm9ybWF0aW9uCiAgICAgICAg ICAgICAgICAgICBpZiAocmVzLmRhdGEucmVzdWx0WzBdLnNyYyAhPSBwZ1Rv b2xzLkRpcmVjdERlYnVnLmVkaXRvci5nZXRWYWx1ZSgpKSB7CiAgICAgICAg ICAgICAgICAgICAgIHBnVG9vbHMuRGlyZWN0RGVidWcuZWRpdG9yLnNldFZh bHVlKHJlcy5kYXRhLnJlc3VsdFswXS5zcmMpOwpAQCAtMzIzLDcgKzMzNSw2 IEBAIGRlZmluZSgKICAgICAgICAgICAgICAgICBzZWxmLnBvbGxfcmVzdWx0 KHRyYW5zX2lkKTsKICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICBl bHNlIHsKLSAgICAgICAgICAgICAgICAvL1RPRE86IE5FRUwgQURERUQKICAg ICAgICAgICAgICAgICBzZWxmLnBvbGxfcmVzdWx0KHRyYW5zX2lkKTsKICAg ICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAtMzM5LDcgKzM1MCw3 IEBAIGRlZmluZSgKICAgICAgICAgICAgICk7CiAgICAgICAgICAgfQogICAg ICAgICB9KTsKLSAgICAgIH0sIDEwMDAgKTsKKyAgICAgIH0sIHBvbGxfdGlt ZW91dCApOwogCiAgICAgfSwKIApAQCAtMzUzLDYgKzM2NCwxOSBAQCBkZWZp bmUoCiAgICAgICAvLyBNYWtlIGFqYXggY2FsbCB0byBsaXN0ZW4gdGhlIGRh dGFiYXNlIG1lc3NhZ2UKICAgICAgIHZhciBiYXNlVXJsID0gInt7IHVybF9m b3IoJ2RlYnVnZ2VyLmluZGV4JykgfX0iICsgInBvbGxfZW5kX2V4ZWN1dGlv bl9yZXN1bHQvIiArIHRyYW5zX2lkOwogCisgICAgICAvKgorICAgICAgICBE dXJpbmcgdGhlIGV4ZWN1dGlvbiB3ZSBzaG91bGQgcG9sbCB0aGUgcmVzdWx0 IGluIG1pbmltdW0gc2Vjb25kcyBidXQgb25jZSB0aGUgZXhlY3V0aW9uIGlz IGNvbXBsZXRlZAorICAgICAgICBhbmQgd2FpdCBmb3IgdGhlIGFub3RoZXIg ZGVidWdnaW5nIHNlc3Npb24gdGhlbiB3ZSBzaG91bGQgZGVjcmVhc2UgdGhl IHBvbGxpbmcgZnJlcXVlbmN5LgorICAgICAgKi8KKyAgICAgIGlmIChwZ1Rv b2xzLkRpcmVjdERlYnVnLmRpcmVjdF9leGVjdXRpb25fY29tcGxldGVkKSB7 CisgICAgICAgIC8vIHBvbGwgdGhlIHJlc3VsdCB0byBjaGVjayB0aGF0IGV4 ZWN1dGlvbiBpcyBjb21wbGV0ZWQgb3Igbm90IGFmdGVyIDEyMDAgbXMKKyAg ICAgICAgdmFyICBwb2xsX2VuZF90aW1lb3V0ID0gMTIwMDsKKyAgICAgIH0K KyAgICAgIGVsc2UgeworICAgICAgICAvLyBwb2xsIHRoZSByZXN1bHQgdG8g Y2hlY2sgdGhhdCBleGVjdXRpb24gaXMgY29tcGxldGVkIG9yIG5vdCBhZnRl ciAzNTAgbXMKKyAgICAgICAgdmFyICBwb2xsX2VuZF90aW1lb3V0ID0gMjUw OworICAgICAgfQorCiAgICAgICBzZXRUaW1lb3V0KAogICAgICAgICBmdW5j dGlvbigpIHsKICAgICAgICAgICAkLmFqYXgoewpAQCAtMzkyLDcgKzQxNiw3 IEBAIGRlZmluZSgKICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEucmVz dWx0Lm5hbWUgIT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgcGdUb29s cy5EaXJlY3REZWJ1Zy5lZGl0b3IucmVtb3ZlTGluZUNsYXNzKHNlbGYuYWN0 aXZlX2xpbmVfbm8sICd3cmFwJywgJ0NvZGVNaXJyb3ItYWN0aXZlbGluZS1i YWNrZ3JvdW5kJyk7CiAgICAgICAgICAgICAgICAgICBzZWxmLkFkZFJlc3Vs dHMocmVzLmRhdGEucmVzdWx0KTsKLSAgICAgICAgICAgICAgICAgIHBnVG9v bHMuRGlyZWN0RGVidWcucGFyYW1zVGFiRnJhbWUudGFiKDMsdHJ1ZSk7Cisg ICAgICAgICAgICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVnLnJlc3VsdHNf cGFuZWwuZm9jdXMoKTsKICAgICAgICAgICAgICAgICAgIHBnVG9vbHMuRGly ZWN0RGVidWcuZGlyZWN0X2V4ZWN1dGlvbl9jb21wbGV0ZWQgPSB0cnVlOwog CiAgICAgICAgICAgICAgICAgICAvL1NldCB0aGUgYWxlcnRpZnkgbWVzc2Fn ZSB0byBpbmZvcm0gdGhlIHVzZXIgdGhhdCBleGVjdXRpb24gaXMgY29tcGxl dGVkLgpAQCAtNDA0LDcgKzQyOCw3IEBAIGRlZmluZSgKICAgICAgICAgICAg ICAgICAgICk7CiAKICAgICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUg bWVzc2FnZSB0YWIgb2YgdGhlIGRlYnVnZ2VyCi0gICAgICAgICAgICAgICAg ICBwZ1Rvb2xzLkRpcmVjdERlYnVnLmRibXNNZXNzYWdlcy4kZWxlbS50ZXh0 KHJlcy5kYXRhLnN0YXR1c19tZXNzYWdlKTsKKyAgICAgICAgICAgICAgICAg IHBnVG9vbHMuRGlyZWN0RGVidWcubWVzc2FnZXNfcGFuZWwuJGNvbnRhaW5l ci5maW5kKCcubWVzc2FnZXMnKS50ZXh0KHJlcy5kYXRhLnN0YXR1c19tZXNz YWdlKTsKIAogICAgICAgICAgICAgICAgICAgLy8gRXhlY3V0aW9uIGNvbXBs ZXRlZCBzbyBkaXNhYmxlIHRoZSBidXR0b25zIG90aGVyIHRoYW4gIkNvbnRp bnVlL1N0YXJ0IiBidXR0b24gYmVjYXVzZSB1c2VyIGNhbiBzdGlsbAogICAg ICAgICAgICAgICAgICAgLy8gc3RhcnQgdGhlIHNhbWUgZXhlY3V0aW9uIGFn YWluLgpAQCAtNDEzLDEyICs0MzcsNiBAQCBkZWZpbmUoCiAgICAgICAgICAg ICAgICAgICBzZWxmLmVuYWJsZSgnc3RlcF9pbnRvJywgZmFsc2UpOwogICAg ICAgICAgICAgICAgICAgc2VsZi5lbmFibGUoJ3RvZ2dsZV9icmVha3BvaW50 JywgZmFsc2UpOwogICAgICAgICAgICAgICAgICAgc2VsZi5lbmFibGUoJ2Ns ZWFyX2FsbF9icmVha3BvaW50cycsIGZhbHNlKTsKLQotICAgICAgICAgICAg ICAgICAgLy9UT0RPOiBDb250aW51ZSBidXR0b24gc2hvdWxkIGJlIGVuYWJs ZSBhbmQgdXNlciB3aWxsIGJlIGFibGUgdG8gZG8gbmV4dCBkZWJ1Z2dpbmcg d2l0aCBzYW1lIGZ1bmN0aW9uLgotICAgICAgICAgICAgICAgICAgLy9zZWxm LmVuYWJsZSgnY29udGludWUnLCBmYWxzZSk7Ci0KLSAgICAgICAgICAgICAg ICAgIC8vIE5FRUw6IFRPRE86IEFkZGVkIEV4ZWN1dGlvbiBpcyBjb21wbGV0 ZWQgc28gYWdhaW4gcG9sbCB0aGUgcmVzdWx0IHVudGlsIHVzZXIgc3RhcnQg dGhlIGFub3RoZXIgZGVidWdnaW5nCi0gICAgICAgICAgICAgICAgICAvL3Nl bGYucG9sbF9lbmRfZXhlY3V0aW9uX3Jlc3VsdChwZ1Rvb2xzLkRpcmVjdERl YnVnLnRyYW5zX2lkKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgIH0KQEAgLTQzMiw2ICs0NTAsMjkgQEAgZGVm aW5lKAogICAgICAgICAgICAgICAgIHJlcy5kYXRhLnJlc3VsdAogICAgICAg ICAgICAgICApOwogICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBp ZiAocmVzLmRhdGEuc3RhdHVzID09PSAnRVJST1InKSB7CisgICAgICAgICAg ICAgIHBnVG9vbHMuRGlyZWN0RGVidWcuZGlyZWN0X2V4ZWN1dGlvbl9jb21w bGV0ZWQgPSB0cnVlOworICAgICAgICAgICAgICBwZ1Rvb2xzLkRpcmVjdERl YnVnLmVkaXRvci5yZW1vdmVMaW5lQ2xhc3Moc2VsZi5hY3RpdmVfbGluZV9u bywgJ3dyYXAnLCAnQ29kZU1pcnJvci1hY3RpdmVsaW5lLWJhY2tncm91bmQn KTsKKworICAgICAgICAgICAgICAvL1NldCB0aGUgYWxlcnRpZnkgbWVzc2Fn ZSB0byBpbmZvcm0gdGhlIHVzZXIgdGhhdCBleGVjdXRpb24gaXMgY29tcGxl dGVkIHdpdGggZXJyb3IuCisgICAgICAgICAgICAgIEFsZXJ0aWZ5Lm5vdGlm eSgKKyAgICAgICAgICAgICAgICByZXMuaW5mbywKKyAgICAgICAgICAgICAg ICAnZXJyb3InLAorICAgICAgICAgICAgICAgIDMsCisgICAgICAgICAgICAg ICAgZnVuY3Rpb24oKSB7IH0KKyAgICAgICAgICAgICAgKTsKKworICAgICAg ICAgICAgICBwZ1Rvb2xzLkRpcmVjdERlYnVnLm1lc3NhZ2VzX3BhbmVsLiRj b250YWluZXIuZmluZCgnLm1lc3NhZ2VzJykudGV4dChyZXMuZGF0YS5zdGF0 dXNfbWVzc2FnZSk7CisgICAgICAgICAgICAgIHBnVG9vbHMuRGlyZWN0RGVi dWcubWVzc2FnZXNfcGFuZWwuZm9jdXMoKTsKKworICAgICAgICAgICAgICAv LyBFeGVjdXRpb24gY29tcGxldGVkIHNvIGRpc2FibGUgdGhlIGJ1dHRvbnMg b3RoZXIgdGhhbiAiQ29udGludWUvU3RhcnQiIGJ1dHRvbiBiZWNhdXNlIHVz ZXIgY2FuIHN0aWxsCisgICAgICAgICAgICAgIC8vIHN0YXJ0IHRoZSBzYW1l IGV4ZWN1dGlvbiBhZ2Fpbi4KKyAgICAgICAgICAgICAgc2VsZi5lbmFibGUo J3N0b3AnLCBmYWxzZSk7CisgICAgICAgICAgICAgIHNlbGYuZW5hYmxlKCdz dGVwX292ZXInLCBmYWxzZSk7CisgICAgICAgICAgICAgIHNlbGYuZW5hYmxl KCdzdGVwX2ludG8nLCBmYWxzZSk7CisgICAgICAgICAgICAgIHNlbGYuZW5h YmxlKCd0b2dnbGVfYnJlYWtwb2ludCcsIGZhbHNlKTsKKyAgICAgICAgICAg ICAgc2VsZi5lbmFibGUoJ2NsZWFyX2FsbF9icmVha3BvaW50cycsIGZhbHNl KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICB9LAogICAgICAgICAgIGVy cm9yOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICBBbGVydGlmeS5hbGVy dCgKQEAgLTQ0MCw3ICs0ODEsNyBAQCBkZWZpbmUoCiAgICAgICAgICAgICAp OwogICAgICAgICAgIH0KICAgICAgICAgfSk7Ci0gICAgICB9LCAxMjAwKTsK KyAgICAgIH0sIHBvbGxfZW5kX3RpbWVvdXQpOwogCiAgICAgfSwKIApAQCAt NDUzLDE0ICs0OTQsMzggQEAgZGVmaW5lKAogICAgICAgICBzdWNjZXNzOiBm dW5jdGlvbihyZXMpIHsKICAgICAgICAgICAvLyBSZXN0YXJ0IHRoZSBzYW1l IGZ1bmN0aW9uIGRlYnVnZ2luZyB3aXRoIHByZXZpb3VzIGFyZ3VtZW50cwog ICAgICAgICAgIHZhciByZXN0YXJ0X2RiZyA9IHJlcy5kYXRhLnJlc3RhcnRf ZGVidWcgPyAxIDogMDsKLSAgICAgICAgICBkZWJ1Z19mdW5jdGlvbl9hZ2Fp bihyZXMuZGF0YS5yZXN1bHQsIHJlc3RhcnRfZGJnKTsKKworICAgICAgICAg IC8qCisgICAgICAgICAgIE5lZWQgdG8gY2hlY2sgaWYgcmVzdGFydCBkZWJ1 Z2dpbmcgcmVhbGx5IHJlcXVpcmUgdG8gb3BlbiB0aGUgaW5wdXQgZGlhbG9n ID8KKyAgICAgICAgICAgSWYgeWVzIHRoZW4gd2Ugd2lsbCBnZXQgdGhlIHBy ZXZpb3VzIGFyZ3VtZW50cyBmcm9tIGRhdGFiYXNlIGFuZCBwb3B1bGF0ZSB0 aGUgaW5wdXQgZGlhbG9nCisgICAgICAgICAgIElmIG5vIHRoZW4gd2Ugc2hv dWxkIGRpcmVjdGx5IHN0YXJ0IHRoZSBsaXN0ZW5lci4KKyAgICAgICAgICAq LworICAgICAgICAgIGlmIChyZXMuZGF0YS5yZXN1bHQucmVxdWlyZV9pbnB1 dCkgeworICAgICAgICAgICAgdmFyIHJlc192YWwgPSBkZWJ1Z19mdW5jdGlv bl9hZ2FpbihyZXMuZGF0YS5yZXN1bHQsIHJlc3RhcnRfZGJnKTsKKyAgICAg ICAgICB9CisgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAvLyBEZWJ1 Z2dpbmcgb2Ygdm9pZCBmdW5jdGlvbiBpcyBzdGFydGVkIGFnYWluIHNvIHdl IG5lZWQgdG8gc3RhcnQgdGhlIGxpc3RlbmVyIGFnYWluCisgICAgICAgICAg ICB2YXIgYmFzZVVybCA9ICJ7eyB1cmxfZm9yKCdkZWJ1Z2dlci5pbmRleCcp IH19IiArICJzdGFydF9saXN0ZW5lci8iICsgdHJhbnNfaWQ7CisKKyAgICAg ICAgICAgICQuYWpheCh7CisgICAgICAgICAgICAgIHVybDogYmFzZVVybCwK KyAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJywKKyAgICAgICAgICAgICAg c3VjY2VzczogZnVuY3Rpb24ocmVzKSB7CisgICAgICAgICAgICAgIH0sCisg ICAgICAgICAgICAgIGVycm9yOiBmdW5jdGlvbihlKSB7CisgICAgICAgICAg ICAgICAgQWxlcnRpZnkuYWxlcnQoCisgICAgICAgICAgICAgICAgICAnRGVi dWdnZXIgbGlzdGVuZXIgc3RhcnRpbmcgZXJyb3InLAorICAgICAgICAgICAg ICAgICAgZS5yZXNwb25zZUpTT04uZXJyb3Jtc2cKKyAgICAgICAgICAgICAg ICApOworICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAg ICAgICB9CiAgICAgICAgIH0sCiAgICAgICAgIGVycm9yOiBmdW5jdGlvbih4 aHIsIHN0YXR1cywgZXJyb3IpIHsKICAgICAgICAgICB0cnkgewogICAgICAg ICAgICAgdmFyIGVyciA9ICQucGFyc2VKU09OKHhoci5yZXNwb25zZVRleHQp OwogICAgICAgICAgICAgaWYgKGVyci5zdWNjZXNzID09IDApIHsKLSAgICAg ICAgICAgICAgbXNnID0gUygne3sgXygnICsgZXJyLmVycm9ybXNnICsgJyl9 fScpLnZhbHVlKCk7Ci0gICAgICAgICAgICAgIEFsZXJ0aWZ5LmFsZXJ0KCJ7 eyBfKCciICsgZXJyLmVycm9ybXNnICsgIicpIH19Iik7CisgICAgICAgICAg ICAgIEFsZXJ0aWZ5LmFsZXJ0KGVyci5lcnJvcm1zZyk7CiAgICAgICAgICAg ICB9CiAgICAgICAgICAgfSBjYXRjaCAoZSkge30KICAgICAgICAgfQpAQCAt NDczLDkgKzUzOCw5IEBAIGRlZmluZSgKIAogICAgICAgLy9DaGVjayBmaXJz dCBpZiBwcmV2aW91cyBleGVjdXRpb24gd2FzIGNvbXBsZXRlZCBvciBub3QK ICAgICAgIGlmIChwZ1Rvb2xzLkRpcmVjdERlYnVnLmRpcmVjdF9leGVjdXRp b25fY29tcGxldGVkKSB7Ci0gICAgICAgIHBnVG9vbHMuRGlyZWN0RGVidWcu ZGlyZWN0X2V4ZWN1dGlvbl9jb21wbGV0ZWQgPSBmYWxzZTsKICAgICAgICAg Ly8gVE9ETzogV2UgbmVlZCB0byBnZXQgdGhlIGFyZ3VtZW50cyBnaXZlbiBi eSB0aGUgdXNlciBmcm9tIHNxbGl0ZSBkYXRhYmFzZQogICAgICAgICBzZWxm LlJlc3RhcnQodHJhbnNfaWQpOworICAgICAgICBwZ1Rvb2xzLkRpcmVjdERl YnVnLmRpcmVjdF9leGVjdXRpb25fY29tcGxldGVkID0gZmFsc2U7CiAgICAg ICB9CiAgICAgICBlbHNlIHsKICAgICAgICAgLy8gTWFrZSBhamF4IGNhbGwg dG8gbGlzdGVuIHRoZSBkYXRhYmFzZSBtZXNzYWdlCkBAIC00OTAsOCArNTU1 LDYgQEAgZGVmaW5lKAogICAgICAgICAgICAgICBpZiAocGdUb29scy5EaXJl Y3REZWJ1Zy5kZWJ1Z190eXBlKSB7CiAgICAgICAgICAgICAgICAgc2VsZi5w b2xsX2VuZF9leGVjdXRpb25fcmVzdWx0KHRyYW5zX2lkKTsKICAgICAgICAg ICAgICAgfQotICAgICAgICAgICAgICAvL05FRUw6IEFEREVECi0gICAgICAg ICAgICAgIC8vc2VsZi5wb2xsX2VuZF9leGVjdXRpb25fcmVzdWx0KHRyYW5z X2lkKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGVsc2UgewogICAg ICAgICAgICAgICBBbGVydGlmeS5hbGVydCgKQEAgLTcxNiw4ICs3NzksNiBA QCBkZWZpbmUoCiAgICAgICAgICAgICBzZWxmLnN0YWNrX2dyaWQgPSBudWxs OwogICAgICAgICB9CiAKLSAgICAgICAgcGdUb29scy5EaXJlY3REZWJ1Zy5z dGFja1RhYi4kZWxlbS5lbXB0eSgpOwotCiAgICAgICAgIHZhciBEZWJ1Z2dl clN0YWNrTW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewogICAgICAg ICAgIGRlZmF1bHRzOiB7CiAgICAgICAgICAgICBuYW1lOiB1bmRlZmluZWQs CkBAIC03NzYsNyArODM3LDEwIEBAIGRlZmluZSgKICAgICAgICAgfSk7CiAK ICAgICAgICAgc3RhY2tfZ3JpZC5yZW5kZXIoKTsKLSAgICAgICAgcGdUb29s cy5EaXJlY3REZWJ1Zy5zdGFja1RhYi4kZWxlbS5hcHBlbmQoc3RhY2tfZ3Jp ZC5lbCk7CisKKyAgICAgICAgLy8gUmVuZGVyIHRoZSBzdGFjayBncmlkIGlu dG8gc3RhY2sgcGFuZWwKKyAgICAgICAgcGdUb29scy5EaXJlY3REZWJ1Zy5z dGFja19wYW5lX3BhbmVsLiRjb250YWluZXIuZmluZCgnLnN0YWNrX3BhbmUn KS5hcHBlbmQoc3RhY2tfZ3JpZC5lbCk7CisKICAgICAgIH0sCiAKICAgICAg IEFkZFJlc3VsdHM6IGZ1bmN0aW9uKHJlc3VsdCkgewpAQCAtNzg4LDggKzg1 Miw2IEBAIGRlZmluZSgKICAgICAgICAgICAgIHNlbGYucmVzdWx0X2dyaWQg PSBudWxsOwogICAgICAgICB9CiAKLSAgICAgICAgcGdUb29scy5EaXJlY3RE ZWJ1Zy5yZXRSZXN1bHRzLiRlbGVtLmVtcHR5KCk7Ci0KICAgICAgICAgdmFy IERlYnVnZ2VyUmVzdWx0c01vZGVsID0gQmFja2JvbmUuTW9kZWwuZXh0ZW5k KHsKICAgICAgICAgICBkZWZhdWx0czogewogICAgICAgICAgICAgbmFtZTog dW5kZWZpbmVkCkBAIC04MjIsNyArODg0LDEwIEBAIGRlZmluZSgKICAgICAg ICAgfSk7CiAKICAgICAgICAgcmVzdWx0X2dyaWQucmVuZGVyKCk7Ci0gICAg ICAgIHBnVG9vbHMuRGlyZWN0RGVidWcucmV0UmVzdWx0cy4kZWxlbS5hcHBl bmQocmVzdWx0X2dyaWQuZWwpOworCisgICAgICAgIC8vIFJlbmRlciB0aGUg cmVzdWx0IGdyaWQgaW50byByZXN1bHQgcGFuZWwKKyAgICAgICAgcGdUb29s cy5EaXJlY3REZWJ1Zy5yZXN1bHRzX3BhbmVsLiRjb250YWluZXIuZmluZCgn LmRlYnVnX3Jlc3VsdHMnKS5hcHBlbmQocmVzdWx0X2dyaWQuZWwpOworCiAg ICAgICB9LAogCiAgICAgICBBZGRMb2NhbFZhcmlhYmxlczogZnVuY3Rpb24o cmVzdWx0KSB7CkBAIC04MzQsOCArODk5LDYgQEAgZGVmaW5lKAogICAgICAg ICAgICAgc2VsZi52YXJpYWJsZV9ncmlkID0gbnVsbDsKICAgICAgICAgfQog Ci0gICAgICAgIHBnVG9vbHMuRGlyZWN0RGVidWcubG9jYWxWYXJzLiRlbGVt LmVtcHR5KCk7Ci0KICAgICAgICAgdmFyIERlYnVnZ2VyVmFyaWFibGVzTW9k ZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewogICAgICAgICAgIGRlZmF1 bHRzOiB7CiAgICAgICAgICAgICBuYW1lOiB1bmRlZmluZWQsCkBAIC04NzMs NyArOTM2LDEwIEBAIGRlZmluZSgKICAgICAgICAgfSk7CiAKICAgICAgICAg dmFyaWFibGVfZ3JpZC5yZW5kZXIoKTsKLSAgICAgICAgcGdUb29scy5EaXJl Y3REZWJ1Zy5sb2NhbFZhcnMuJGVsZW0uYXBwZW5kKHZhcmlhYmxlX2dyaWQu ZWwpOworCisgICAgICAgIC8vIFJlbmRlciB0aGUgdmFyaWFibGVzIGdyaWQg aW50byBsb2NhbCB2YXJpYWJsZXMgcGFuZWwKKyAgICAgICAgcGdUb29scy5E aXJlY3REZWJ1Zy5sb2NhbF92YXJpYWJsZXNfcGFuZWwuJGNvbnRhaW5lci5m aW5kKCcubG9jYWxfdmFyaWFibGVzJykuYXBwZW5kKHZhcmlhYmxlX2dyaWQu ZWwpOworCiAgICAgICB9LAogCiAgICAgICBBZGRQYXJhbWV0ZXJzOiBmdW5j dGlvbihyZXN1bHQpIHsKQEAgLTg4NSw4ICs5NTEsNiBAQCBkZWZpbmUoCiAg ICAgICAgICAgICBzZWxmLnBhcmFtX2dyaWQgPSBudWxsOwogICAgICAgICB9 CiAKLSAgICAgICAgcGdUb29scy5EaXJlY3REZWJ1Zy5wYXJhbXNUYWIuJGVs ZW0uZW1wdHkoKTsKLQogICAgICAgICB2YXIgRGVidWdnZXJQYXJhbWV0ZXJz TW9kZWwgPSBCYWNrYm9uZS5Nb2RlbC5leHRlbmQoewogICAgICAgICAgIGRl ZmF1bHRzOiB7CiAgICAgICAgICAgICBuYW1lOiB1bmRlZmluZWQsCkBAIC05 MjYsNyArOTkwLDkgQEAgZGVmaW5lKAogICAgICAgICB9KTsKIAogICAgICAg ICBwYXJhbV9ncmlkLnJlbmRlcigpOwotICAgICAgICBwZ1Rvb2xzLkRpcmVj dERlYnVnLnBhcmFtc1RhYi4kZWxlbS5hcHBlbmQocGFyYW1fZ3JpZC5lbCk7 CisKKyAgICAgICAgLy8gUmVuZGVyIHRoZSBwYXJhbWV0ZXJzIGdyaWQgaW50 byBwYXJhbWV0ZXIgcGFuZWwKKyAgICAgICAgcGdUb29scy5EaXJlY3REZWJ1 Zy5wYXJhbWV0ZXJzX3BhbmVsLiRjb250YWluZXIuZmluZCgnLnBhcmFtZXRl cnMnKS5hcHBlbmQocGFyYW1fZ3JpZC5lbCk7CiAgICAgICB9LAogCiAgICAg ICBkZXBvc2l0X3BhcmFtZXRlcl92YWx1ZTogZnVuY3Rpb24obW9kZWwpIHsK QEAgLTEyNTAsNiArMTMxNiw3IEBAIGRlZmluZSgKICAgICAgIHRoaXMucmVn aXN0ZXJQYW5lbCgKICAgICAgICAgJ2NvZGUnLCBmYWxzZSwgJzEwMCUnLCAn MTAwJScsCiAgICAgICAgIGZ1bmN0aW9uKHBhbmVsKSB7CisKICAgICAgICAg ICAgIHZhciBjb250YWluZXIgPSBwYW5lbC5sYXlvdXQoKS5zY2VuZSgpLmZp bmQoJy5wZy1kZWJ1Z2dlci1wYW5lbCcpOwogCiAgICAgICAgICAgICAvLyBD cmVhdGUgdGhlIHdjU3BsaXR0ZXIgdXNlZCBieSB3Y0RvY2tlciB0byBzcGxp dCB0aGUgc2luZ2xlIHBhbmVsLgpAQCAtMTI2Nyw2NSArMTMzNCw5MSBAQCBk ZWZpbmUoCiAgICAgICAgICAgICAvLyBCeSBkZWZhdWx0LCB0aGUgc3BsaXR0 ZXIgc3BsaXRzIGRvd24gdGhlIG1pZGRsZSwgd2Ugc3BsaXQgdGhlIG1haW4g cGFuZWwgYnkgODAlLgogICAgICAgICAgICAgaFNwbGl0dGVyLnBvcygwLjY1 KTsKIAotICAgICAgICAgICAgdmFyICRwYXJhbXMgPSAkKCc8ZGl2IGNsYXNz PSJmdWxsLWNvbnRhaW5lciBwYXJhbXMiPjwvZGl2PicpOwotICAgICAgICAg ICAgaFNwbGl0dGVyLnJpZ2h0KCkuYWRkSXRlbSgkcGFyYW1zKTsKLQotICAg ICAgICAgICAgLy8gQWRkIExvY2FsIHBhcmFtZXRlcnMgdGFiIHRvIGRpc3Bs YXkgZnVuY3Rpb24gYXJndW1lbnRzIHZhbHVlCi0gICAgICAgICAgICB2YXIg cGFyYW1zVGFiRnJhbWUgPSBzZWxmLnBhcmFtc1RhYkZyYW1lID0gbmV3IHdj VGFiRnJhbWUoJHBhcmFtcywgcGFuZWwpOwotICAgICAgICAgICAgdmFyIHBh cmFtc1RhYiA9IHNlbGYucGFyYW1zVGFiID0gcGFyYW1zVGFiRnJhbWUuYWRk VGFiKAotICAgICAgICAgICAgICAne3tfKCdQYXJhbWV0ZXJzJyl9fScsIC0x LCB3Y0RvY2tlci5MQVlPVVQuU0lNUExFCi0gICAgICAgICAgICAgICk7Ci0g ICAgICAgICAgICBwYXJhbXNUYWIuYWRkSXRlbSgkKCc8ZGl2IGlkPXBhcmFt ZXRlcnMgY2xhc3M9ImluZm8iPjwvZGl2PicpKTsKLQotICAgICAgICAgICAg Ly8gQWRkIExvY2FsIHZhcmlhYmxlcyB0YWIKLSAgICAgICAgICAgIHZhciBs b2NhbFZhcnMgPSBzZWxmLmxvY2FsVmFycyA9IHBhcmFtc1RhYkZyYW1lLmFk ZFRhYigKLSAgICAgICAgICAgICAgJ3t7IF8oJ0xvY2FsIHZhcmlhYmxlcycp IH19JywgLTEsIHdjRG9ja2VyLkxBWU9VVC5TSU1QTEUKLSAgICAgICAgICAg ICAgKTsKLSAgICAgICAgICAgIGxvY2FsVmFycy5hZGRJdGVtKCQoJzxkaXYg aWQ9bG9jYWxfdmFyaWFibGVzIGNsYXNzPSJpbmZvIj48L2Rpdj4nKSk7Ci0K LSAgICAgICAgICAgIC8vIEFkZCBEQk1TIG1lc3NhZ2VzIHRhYgotICAgICAg ICAgICAgdmFyIGRibXNNZXNzYWdlcyA9IHNlbGYuZGJtc01lc3NhZ2VzID0g cGFyYW1zVGFiRnJhbWUuYWRkVGFiKAotICAgICAgICAgICAgICAne3sgXygn TWVzc2FnZXMnKSB9fScsIC0xLCB3Y0RvY2tlci5MQVlPVVQuU0lNUExFCi0g ICAgICAgICAgICAgICk7Ci0gICAgICAgICAgICBkYm1zTWVzc2FnZXMuYWRk SXRlbSgkKCc8ZGl2IGlkPWRibXNfbWVzc2FnZXMgY2xhc3M9ImluZm8iPjwv ZGl2PicpKTsKLQotICAgICAgICAgICAgLy8gQWRkIGZ1bmN0aW9uIHJldHVy biByZXN1bHRzIHRhYgotICAgICAgICAgICAgdmFyIHJldFJlc3VsdHMgPSBz ZWxmLnJldFJlc3VsdHMgPSBwYXJhbXNUYWJGcmFtZS5hZGRUYWIoCi0gICAg ICAgICAgICAgICd7eyBfKCdSZXN1bHRzJykgfX0nLCAtMSwgd2NEb2NrZXIu TEFZT1VULlNJTVBMRQotICAgICAgICAgICAgICApOwotICAgICAgICAgICAg cmV0UmVzdWx0cy5hZGRJdGVtKCQoJzxkaXYgaWQ9cmV0X3Jlc3VsdHMgY2xh c3M9ImluZm8iPjwvZGl2PicpKTsKLQotICAgICAgICAgICAgLy8gTm93IGNy ZWF0ZSBhIHNlY29uZCBzcGxpdHRlciB0byBnbyBpbnNpZGUgdGhlIGV4aXN0 aW5nIG9uZS4KLSAgICAgICAgICAgIHZhciAkdG9wQ29udGFpbmVyID0gJCgn PGRpdiBjbGFzcz0iZGVidWdnZXIgdG9wLWNvbnRhaW5lciI+PC9kaXY+Jyk7 Ci0gICAgICAgICAgICBoU3BsaXR0ZXIubGVmdCgpLmFkZEl0ZW0oJHRvcENv bnRhaW5lcik7Ci0KLSAgICAgICAgICAgIC8vIENyZWF0ZSB0aGUgd2NTcGxp dHRlciB1c2VkIGJ5IHdjRG9ja2VyIHRvIHNwbGl0IHRoZSBzaW5nbGUgcGFu ZWwuCi0gICAgICAgICAgICB2YXIgdlNwbGl0dGVyID0gbmV3IHdjU3BsaXR0 ZXIoCi0gICAgICAgICAgICAgICAgJHRvcENvbnRhaW5lciwgcGFuZWwsCi0g ICAgICAgICAgICAgICAgd2NEb2NrZXIuT1JJRU5UQVRJT04uSE9SSVpPTlRB TAotICAgICAgICAgICAgICAgICk7Ci0KLSAgICAgICAgICAgIC8vIEluaXRp YWxpemUgdGhpcyBzcGxpdHRlciB3aXRoIGEgbGF5b3V0IGluIGVhY2ggcGFu ZS4KLSAgICAgICAgICAgIHZTcGxpdHRlci5pbml0TGF5b3V0cyh3Y0RvY2tl ci5MQVlPVVQuU0lNUExFLCB3Y0RvY2tlci5MQVlPVVQuU0lNUExFKTsKLQot ICAgICAgICAgICAgLy8gTm93IGNyZWF0ZSBhIHRhYiB3aWRnZXQgYW5kIHB1 dCB0aGF0IGludG8gb25lIG9mIHRoZSBzdWIgc3BsaXRzLgotICAgICAgICAg ICAgdmFyICRzdGFjayA9ICQoJzxkaXYgY2xhc3M9ImZ1bGwtY29udGFpbmVy IHN0YWNrIj4nKTsKLSAgICAgICAgICAgIHZTcGxpdHRlci5ib3R0b20oKS5h ZGRJdGVtKCRzdGFjayk7Ci0KLSAgICAgICAgICAgIHZhciBzdGFja0ZyYW1l ID0gbmV3IHdjVGFiRnJhbWUoJHN0YWNrLCBwYW5lbCk7Ci0gICAgICAgICAg ICB2YXIgc3RhY2tUYWIgPSBzZWxmLnN0YWNrVGFiID0gc3RhY2tGcmFtZS5h ZGRUYWIoCi0gICAgICAgICAgICAgICAgJ3t7IF8oJ1N0YWNrIHBhbmUnKSB9 fScsIC0xLCB3Y0RvY2tlci5MQVlPVVQuU0lNUExFCi0gICAgICAgICAgICAg ICAgKTsKLSAgICAgICAgICAgIHN0YWNrVGFiLmFkZEl0ZW0oCi0gICAgICAg ICAgICAgICAgJCgnPGRpdiBpZD0ic3RhY2tfcGFuZSIgY2xhc3M9ImZ1bGwt Y29udGFpbmVyLXBhbmUgaW5mbyI+PC9kaXY+JykpOwotCi0gICAgICAgICAg ICAvLyBCeSBkZWZhdWx0LCB0aGUgc3BsaXR0ZXIgc3BsaXRzIGRvd24gdGhl IG1pZGRsZSwgd2Ugc3BsaXQgdGhlIG1haW4gcGFuZWwgYnkgODAlLgotICAg ICAgICAgICAgdlNwbGl0dGVyLnBvcygwLjc1KTsKKyAgICAgICAgICAgIHZh ciBwYXJhbXMgPSAkKCc8ZGl2IGNsYXNzPSJmdWxsLWNvbnRhaW5lciBwYXJh bXMiPjwvZGl2PicpOworICAgICAgICAgICAgaFNwbGl0dGVyLnJpZ2h0KCku YWRkSXRlbShwYXJhbXMpOworCisgICAgICAgICAgICAvLyBDcmVhdGUgd2NE b2NrZXIgZm9yIHRhYiBzZXQuCisgICAgICAgICAgICB2YXIgb3V0X2RvY2tl ciA9IG5ldyB3Y0RvY2tlcigKKyAgICAgICAgICAgICAgJy5mdWxsLWNvbnRh aW5lcicsIHsKKyAgICAgICAgICAgICAgYWxsb3dDb250ZXh0TWVudTogZmFs c2UsCisgICAgICAgICAgICAgIGFsbG93Q29sbGFwc2U6IGZhbHNlLAorICAg ICAgICAgICAgICB0aGVtZVBhdGg6ICd7eyB1cmxfZm9yKCdzdGF0aWMnLCBm aWxlbmFtZT0nY3NzL3djRG9ja2VyL1RoZW1lcycpIH19JywKKyAgICAgICAg ICAgICAgdGhlbWU6ICdwZ2FkbWluJworICAgICAgICAgICAgfSk7CisKKyAg ICAgICAgICAgIC8vIENyZWF0ZSB0aGUgcGFyYW1ldGVycyBwYW5lbCB0byBk aXNwbGF5IHRoZSBhcmd1bWVudHMgb2YgdGhlIGZ1bmN0aW9ucworICAgICAg ICAgICAgdmFyIHBhcmFtZXRlcnMgPSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBh bmVsKHsKKyAgICAgICAgICAgICAgbmFtZTogJ3BhcmFtZXRlcnMnLAorICAg ICAgICAgICAgICB0aXRsZTogJ3t7IF8oJ1BhcmFtZXRlcnMnKSB9fScsCisg ICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsCisgICAgICAgICAgICAgIGhl aWdodDonMTAwJScsCisgICAgICAgICAgICAgIGlzQ2xvc2VhYmxlOiBmYWxz ZSwKKyAgICAgICAgICAgICAgaXNQcml2YXRlOiB0cnVlLAorICAgICAgICAg ICAgICBjb250ZW50OiAnPGRpdiBpZCA9InBhcmFtZXRlcnMiIGNsYXNzPSJw YXJhbWV0ZXJzIj48L2Rpdj4nCisgICAgICAgICAgICB9KQorCisgICAgICAg ICAgICAvLyBDcmVhdGUgdGhlIExvY2FsIHZhcmlhYmxlcyBwYW5lbCB0byBk aXNwbGF5IHRoZSBsb2NhbCB2YXJpYWJsZXMgb2YgdGhlIGZ1bmN0aW9uLgor ICAgICAgICAgICAgdmFyIGxvY2FsX3ZhcmlhYmxlcyA9IG5ldyBwZ0FkbWlu LkJyb3dzZXIuUGFuZWwoeworICAgICAgICAgICAgICBuYW1lOiAnbG9jYWxf dmFyaWFibGVzJywKKyAgICAgICAgICAgICAgdGl0bGU6ICd7eyBfKCdMb2Nh bCB2YXJpYWJsZXMnKSB9fScsCisgICAgICAgICAgICAgIHdpZHRoOiAnMTAw JScsCisgICAgICAgICAgICAgIGhlaWdodDonMTAwJScsCisgICAgICAgICAg ICAgIGlzQ2xvc2VhYmxlOiBmYWxzZSwKKyAgICAgICAgICAgICAgaXNQcml2 YXRlOiB0cnVlLAorICAgICAgICAgICAgICBjb250ZW50OiAnPGRpdiBpZCA9 ImxvY2FsX3ZhcmlhYmxlcyIgY2xhc3M9ImxvY2FsX3ZhcmlhYmxlcyI+PC9k aXY+JworICAgICAgICAgICAgfSkKKworICAgICAgICAgICAgLy8gQ3JlYXRl IHRoZSBtZXNzYWdlcyBwYW5lbCB0byBkaXNwbGF5IHRoZSBtZXNzYWdlIHJl dHVybmVkIGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlcgorICAgICAgICAgICAg dmFyIG1lc3NhZ2VzID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7Cisg ICAgICAgICAgICAgIG5hbWU6ICdtZXNzYWdlcycsCisgICAgICAgICAgICAg IHRpdGxlOiAne3sgXygnTWVzc2FnZXMnKSB9fScsCisgICAgICAgICAgICAg IHdpZHRoOiAnMTAwJScsCisgICAgICAgICAgICAgIGhlaWdodDonMTAwJScs CisgICAgICAgICAgICAgIGlzQ2xvc2VhYmxlOiBmYWxzZSwKKyAgICAgICAg ICAgICAgaXNQcml2YXRlOiB0cnVlLAorICAgICAgICAgICAgICBjb250ZW50 OiAnPGRpdiBpZD0ibWVzc2FnZXMiIGNsYXNzPSJtZXNzYWdlcyI+PC9kaXY+ JworICAgICAgICAgICAgfSkKKworICAgICAgICAgICAgLy8gQ3JlYXRlIHRo ZSByZXN1bHQgcGFuZWwgdG8gZGlzcGxheSB0aGUgcmVzdWx0IGFmdGVyIGRl YnVnZ2luZyB0aGUgZnVuY3Rpb24KKyAgICAgICAgICAgIHZhciByZXN1bHRz ID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7CisgICAgICAgICAgICAg IG5hbWU6ICdyZXN1bHRzJywKKyAgICAgICAgICAgICAgdGl0bGU6ICd7eyBf KCdSZXN1bHRzJykgfX0nLAorICAgICAgICAgICAgICB3aWR0aDogJzEwMCUn LAorICAgICAgICAgICAgICBoZWlnaHQ6JzEwMCUnLAorICAgICAgICAgICAg ICBpc0Nsb3NlYWJsZTogZmFsc2UsCisgICAgICAgICAgICAgIGlzUHJpdmF0 ZTogdHJ1ZSwKKyAgICAgICAgICAgICAgY29udGVudDogJzxkaXYgaWQ9ImRl YnVnX3Jlc3VsdHMiIGNsYXNzPSJkZWJ1Z19yZXN1bHRzIj48L2Rpdj4nCisg ICAgICAgICAgICB9KQorCisgICAgICAgICAgICAvLyBDcmVhdGUgdGhlIHN0 YWNrIHBhbmUgcGFuZWwgdG8gZGlzcGxheSB0aGUgZGVidWdnaW5nIHN0YWNr IGluZm9ybWF0aW9uLgorICAgICAgICAgICAgdmFyIHN0YWNrX3BhbmUgPSBu ZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKKyAgICAgICAgICAgICAgbmFt ZTogJ3N0YWNrX3BhbmUnLAorICAgICAgICAgICAgICB0aXRsZTogJ3t7IF8o J1N0YWNrIFBhbmUnKSB9fScsCisgICAgICAgICAgICAgIHdpZHRoOiAnMTAw JScsCisgICAgICAgICAgICAgIGhlaWdodDonMTAwJScsCisgICAgICAgICAg ICAgIGlzQ2xvc2VhYmxlOiBmYWxzZSwKKyAgICAgICAgICAgICAgaXNQcml2 YXRlOiB0cnVlLAorICAgICAgICAgICAgICBjb250ZW50OiAnPGRpdiBpZD0i c3RhY2tfcGFuZSIgY2xhc3M9InN0YWNrX3BhbmUiPjwvZGl2PicKKyAgICAg ICAgICAgIH0pCisKKyAgICAgICAgICAgIC8vIExvYWQgYWxsIHRoZSBjcmVh dGVkIHBhbmVscworICAgICAgICAgICAgcGFyYW1ldGVycy5sb2FkKG91dF9k b2NrZXIpOworICAgICAgICAgICAgbG9jYWxfdmFyaWFibGVzLmxvYWQob3V0 X2RvY2tlcik7CisgICAgICAgICAgICBtZXNzYWdlcy5sb2FkKG91dF9kb2Nr ZXIpOworICAgICAgICAgICAgcmVzdWx0cy5sb2FkKG91dF9kb2NrZXIpOwor ICAgICAgICAgICAgc3RhY2tfcGFuZS5sb2FkKG91dF9kb2NrZXIpOworCisg ICAgICAgICAgICAvLyBBZGQgYWxsIHRoZSBwYW5lbHMgdG8gdGhlIGRvY2tl cgorICAgICAgICAgICAgc2VsZi5wYXJhbWV0ZXJzX3BhbmVsID0gb3V0X2Rv Y2tlci5hZGRQYW5lbCgncGFyYW1ldGVycycsIHdjRG9ja2VyLkRPQ0suTEVG VCk7CisgICAgICAgICAgICBzZWxmLmxvY2FsX3ZhcmlhYmxlc19wYW5lbCA9 IG91dF9kb2NrZXIuYWRkUGFuZWwoJ2xvY2FsX3ZhcmlhYmxlcycsIHdjRG9j a2VyLkRPQ0suU1RBQ0tFRCwgc2VsZi5wYXJhbWV0ZXJzX3BhbmVsKTsKKyAg ICAgICAgICAgIHNlbGYubWVzc2FnZXNfcGFuZWwgPSBvdXRfZG9ja2VyLmFk ZFBhbmVsKCdtZXNzYWdlcycsIHdjRG9ja2VyLkRPQ0suU1RBQ0tFRCwgc2Vs Zi5wYXJhbWV0ZXJzX3BhbmVsKTsKKyAgICAgICAgICAgIHNlbGYucmVzdWx0 c19wYW5lbCA9IG91dF9kb2NrZXIuYWRkUGFuZWwoJ3Jlc3VsdHMnLCB3Y0Rv Y2tlci5ET0NLLlNUQUNLRUQsIHNlbGYucGFyYW1ldGVyc19wYW5lbCk7Cisg ICAgICAgICAgICBzZWxmLnN0YWNrX3BhbmVfcGFuZWwgPSBvdXRfZG9ja2Vy LmFkZFBhbmVsKCdzdGFja19wYW5lJywgd2NEb2NrZXIuRE9DSy5TVEFDS0VE LCBzZWxmLnBhcmFtZXRlcnNfcGFuZWwpOwogCiAgICAgICAgICAgICAvLyBO b3cgY3JlYXRlIGEgdGFiIHdpZGdldCBhbmQgcHV0IHRoYXQgaW50byBvbmUg b2YgdGhlIHN1YiBzcGxpdHMuCi0gICAgICAgICAgICB2YXIgZWRpdG9yX3Bh bmUgPSAkKCc8ZGl2IGlkPSJzdGFja19wYW5lIiBjbGFzcz0iZnVsbC1jb250 YWluZXItcGFuZSBpbmZvIj48L2Rpdj4nKTsKKyAgICAgICAgICAgIHZhciBl ZGl0b3JfcGFuZSA9ICQoJzxkaXYgaWQ9InN0YWNrX2VkaXRvcl9wYW5lIiBj bGFzcz0iZnVsbC1jb250YWluZXItcGFuZSBpbmZvIj48L2Rpdj4nKTsKICAg ICAgICAgICAgIHZhciBjb2RlX2VkaXRvcl9hcmVhID0gJCgnPHRleHRhcmVh IGlkPSJkZWJ1Z2dlci1lZGl0b3ItdGV4dGFyZWEiPjwvdGV4dGFyZWE+Jyku YXBwZW5kKGVkaXRvcl9wYW5lKTsKLSAgICAgICAgICAgIHZTcGxpdHRlci50 b3AoKS5hZGRJdGVtKGNvZGVfZWRpdG9yX2FyZWEpOworICAgICAgICAgICAg aFNwbGl0dGVyLmxlZnQoKS5hZGRJdGVtKGNvZGVfZWRpdG9yX2FyZWEpOwog CiAgICAgICAgICAgICAvLyBUbyBzaG93IHRoZSBsaW5lLW51bWJlciBhbmQg c2V0IGJyZWFrcG9pbnQgbWFya2VyIGRldGFpbHMgYnkgdXNlci4KICAgICAg ICAgICAgIHZhciBlZGl0b3IgPSBzZWxmLmVkaXRvciA9IENvZGVNaXJyb3Iu ZnJvbVRleHRBcmVhKAo= --001a114d8e16268cb00530be8566 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 --001a114d8e16268cb00530be8566--