Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ag5bO-00023n-Ni for pgadmin-hackers@arkaria.postgresql.org; Wed, 16 Mar 2016 07:10:43 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1ag5bO-0003d5-98 for pgadmin-hackers@arkaria.postgresql.org; Wed, 16 Mar 2016 07:10:42 +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 1ag5b6-00032s-CS for pgadmin-hackers@postgresql.org; Wed, 16 Mar 2016 07:10:24 +0000 Received: from mail-yw0-x22b.google.com ([2607:f8b0:4002:c05::22b]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1ag5b0-0003wT-1B for pgadmin-hackers@postgresql.org; Wed, 16 Mar 2016 07:10:23 +0000 Received: by mail-yw0-x22b.google.com with SMTP id g127so51176464ywf.2 for ; Wed, 16 Mar 2016 00:10:17 -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=xS7bWKtC4+DqLGjVqpSBKD02V8p/REUViw/x5AbHSME=; b=Z3rZGZUCh8CyQ4qtu7wrIq9JkHfc9g7j7XzJnVYXubTUf3Trg3vZb92PqZdVBppQjq Gqs4KIFL8dS+uoXC6bEe1T5Hl2Qly9w9SroSRiZ+TQQOTu5GR8XN3/W33zvx9wrYq1X8 ydeMQcY2lc4o1jt4ELFGJlFX7iDQyLR1A1+PCVKfL1/95KWf5Hqy/YXHIYS6W+DIIh4e kDYlE1tT+GsG2wPPnTf2L/2uQla/hgbkBeuHB8EjxZaMImLaLgaBLGwsTO/MgELw8UXw jHy7+FGR5J87eLuW/+zn5xj6hoj/4G1tYtbZCIWWoUV8/WaY4r6JLLzTlPc04/nihea9 1+bA== 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=xS7bWKtC4+DqLGjVqpSBKD02V8p/REUViw/x5AbHSME=; b=D8Xbxhn32w2aS0xIYva58PmCVwgn5dHySS1NuYfYqMi0Gljb9yySpmcewdQIpBJkdc ey1E6VG63iqmF+OJdcJW8J3+kDBvg+FgYLljTevcpcm+AtcCbgjB2I5KeY/u7aweWGXC 6XmDJu9yw3uAfrvwo94FSN5PCL1nAEDLg/0trAv8BHCf8yc6co+t589f6EXuCmEuZHig 8h1NUe+88BSD9hxrkyDlWOKRVThPCmRGXQ4h6fxP5fciQSbijylN9HTfJtwnYGHjgrLp dOO1VBh4VnIquSrvhosxRlaWBfh9OxeBCDssQax79pQrUuMfsTYLcgIny+WzjF9qqR3f pFrA== X-Gm-Message-State: AD7BkJJCx8+Gf4SkpQj3eWkns9wa6Ah667owi7bzMMvUyf130BMiM+SFCAQFkIk/PBRCi/7s4JZ590PnOYDKBmRV MIME-Version: 1.0 X-Received: by 10.129.72.78 with SMTP id v75mr1077058ywa.78.1458112216180; Wed, 16 Mar 2016 00:10:16 -0700 (PDT) Received: by 10.13.207.199 with HTTP; Wed, 16 Mar 2016 00:10:16 -0700 (PDT) In-Reply-To: References: Date: Wed, 16 Mar 2016 12:40:16 +0530 Message-ID: Subject: Re: PATCH: PGADMIN 4 - FTS templates node From: Sanket Mehta To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a114dcb02b07e37052e2534f4 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 --001a114dcb02b07e37052e2534f4 Content-Type: multipart/alternative; boundary=001a114dcb02b07e32052e2534f2 --001a114dcb02b07e32052e2534f2 Content-Type: text/plain; charset=UTF-8 Hi, Sorry its misunderstanding from my side. That node refresh on tree issue has been resolved. Patch is attached with this mail. Please do review it. Regards, Sanket Mehta Sr Software engineer Enterprisedb On Mon, Mar 14, 2016 at 7:27 PM, Dave Page wrote: > On Mon, Mar 14, 2016 at 1:52 PM, Sanket Mehta > wrote: > > Hi Dave, > > > > I have incorporated your changes. > > I have also tried to reproduce the Issues that you have mentioned. > > find the response inline. > > > > Also find revised patch having your suggested changes attached with this > > mail. > > Please do review it and let me know in case anything is missing. > > > > > > Regards, > > Sanket Mehta > > Sr Software engineer > > Enterprisedb > > > > On Fri, Mar 11, 2016 at 6:41 PM, Dave Page wrote: > >> > >> Hi > >> > >> On Thu, Mar 10, 2016 at 6:28 AM, Sanket Mehta > >> wrote: > >> > Hi, > >> > > >> > PFA the patch for fts template after replacing collectionNodeModule > with > >> > SchemaChildModule in __init__.py > >> > > >> > Apart from that, there was an error while updating the name of fts > >> > template > >> > which I have resolved in the same. > >> > > >> > Please do review it and let me know in case of any changes. > >> > >> I've updated the patch for consistency with others. Please find > >> attached. Aside from those changes, there are two issues: > >> > >> - When creating or editing a template the SQL pane just says > >> "--modified SQL" even when all required options are specified. The > >> template is created correctly though. > > > > I have tried to reproduce this issue on my system but could not reproduce > > it. PFA screen shorts explaining sql I got while creating and editing a > > template. > > > >> > >> - If a template is renamed, the treeview node is not updated. > > > > This is generic issue and needed to be resolved at higher level. > > No, I tested other nodes (database and sequence for example) and they > were properly updated. It's possible *some* are broken, but it's > certainly not a general issue. > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a114dcb02b07e32052e2534f2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Sorry its misundersta= nding from my side.
That node refresh on tree issue has been resol= ved.

Patch is attached with this mail.

Please do = review it.

Regards,
Sanket Mehta
<= div>Sr Software engineer
Enterprisedb

On Mon, Mar 14, 2016 at 7:27 PM, Dave Page <= span dir=3D"ltr"><dpage@pgadmin.org> wrote:
=
On Mon, Mar 14, 2016 at 1:52 PM, Sa= nket Mehta
<sanket.mehta@enterpris= edb.com> wrote:
> Hi Dave,
>
> I have incorporated your changes.
> I have also tried to reproduce the Issues that you have mentioned.
> find the response inline.
>
> Also find revised patch having your suggested changes attached with th= is
> mail.
> Please do review it and let me know in case anything is missing.
>
>
> Regards,
> Sanket Mehta
> Sr Software engineer
> Enterprisedb
>
> On Fri, Mar 11, 2016 at 6:41 PM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> Hi
>>
>> On Thu, Mar 10, 2016 at 6:28 AM, Sanket Mehta
>> <sanket.mehta@= enterprisedb.com> wrote:
>> > Hi,
>> >
>> > PFA the patch for fts template after replacing collectionNode= Module with
>> > SchemaChildModule in __init__.py
>> >
>> > Apart from that, there was an error while updating the name o= f fts
>> > template
>> > which I have resolved in the same.
>> >
>> > Please do review it and let me know in case of any changes. >>
>> I've updated the patch for consistency with others. Please fin= d
>> attached. Aside from those changes, there are two issues:
>>
>> - When creating or editing a template the SQL pane just says
>> "--modified SQL" even when all required options are spec= ified. The
>> template is created correctly though.
>
> I have tried to reproduce this issue on my system but could not reprod= uce
> it. PFA screen shorts explaining sql I got while creating and editing = a
> template.
>
>>
>> - If a template is renamed, the treeview node is not updated.
>
> This is generic issue and needed to be resolved at higher level.

No, I tested other nodes (database and sequence for example) an= d they
were properly updated. It's possible *some* are broken, but it's
certainly not a general issue.


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

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

--001a114dcb02b07e32052e2534f2-- --001a114dcb02b07e37052e2534f4 Content-Type: text/x-patch; charset=US-ASCII; name="fts_templatev6.patch" Content-Disposition: attachment; filename="fts_templatev6.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iluid3k50 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvX19p bml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBh MDVjYWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNf dGVtcGxhdGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsNzIzIEBACisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQ b3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxNiwgVGhl IHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyIiIkRlZmluZXMgdmll d3MgZm9yIG1hbmFnZW1lbnQgb2YgRnRzIFRlbXBsYXRlIG5vZGUiIiIKKwor aW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJlbmRlcl90ZW1wbGF0 ZSwgbWFrZV9yZXNwb25zZSwgY3VycmVudF9hcHAsIHJlcXVlc3QsIGpzb25p ZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0ZXh0Citmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNl LCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5icm93c2VyLnV0aWxz IGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy51dGls cyBpbXBvcnQgU2NoZW1hQ2hpbGRNb2R1bGUKK2ltcG9ydCBwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFz IGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBw cmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2 ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19E RUZBVUxUX0RSSVZFUgorZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCisK KworY2xhc3MgRnRzVGVtcGxhdGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUp OgorICAgICIiIgorICAgICBjbGFzcyBGdHNUZW1wbGF0ZU1vZHVsZShTY2hl bWFDaGlsZE1vZHVsZSkKKworICAgICAgICBBIG1vZHVsZSBjbGFzcyBmb3Ig RlRTIFRlbXBsYXRlIG5vZGUgZGVyaXZlZCBmcm9tIFNjaGVtYUNoaWxkTW9k dWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2lu aXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2Vk IHRvIGluaXRpYWxpemUgdGhlIEZ0c1RlbXBsYXRlTW9kdWxlIGFuZCBpdCdz IGJhc2UgbW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRp ZCwgc2NpZCkKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUg dGhlIGJyb3dzZXIgY29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lu b2RlKCkKKyAgICAgIC0gTWV0aG9kIGlzIG92ZXJyaWRkZW4gZnJvbSBpdHMg YmFzZSBjbGFzcyB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZS4KKwor ICAgICogc2NyaXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUg c2NyaXB0IGZvciBGVFMgVGVtcGxhdGUsIHdoZW4gYW55IG9mIHRoZSBzY2hl bWEgbm9kZSBpcworICAgICAgICBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAg ICBOT0RFX1RZUEUgPSAnZnRzX3RlbXBsYXRlJworICAgIENPTExFQ1RJT05f TEFCRUwgPSBnZXR0ZXh0KCdGVFMgVGVtcGxhdGVzJykKKworICAgIGRlZiBf X2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzZWxm Lm1pbl92ZXIgPSBOb25lCisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUK KyAgICAgICAgc3VwZXIoRnRzVGVtcGxhdGVNb2R1bGUsIHNlbGYpLl9faW5p dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRfbm9kZXMoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAg ICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisgICAgICAgIDpwYXJh bSBnaWQ6IGdyb3VwIGlkCisgICAgICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBp ZAorICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAorICAgICAgICA6 cGFyYW0gc2NpZDogc2NoZW1hIGlkCisgICAgICAgICIiIgorICAgICAgICB5 aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNj aWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIE92ZXJyaWRlIHRoZSBwcm9wZXJ0 eSB0byBtYWtlIHRoZSBub2RlIGFzIGxlYWYgbm9kZQorICAgICAgICAiIiIK KyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBM b2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBmdHMgdGVtcGxhdGUsIHdoZW4g YW55IG9mIHRoZSBzY2hlbWEgbm9kZSBpcworICAgICAgICBpbml0aWFsaXpl ZC4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVt YU1vZHVsZS5OT0RFX1RZUEUKKworCitibHVlcHJpbnQgPSBGdHNUZW1wbGF0 ZU1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBGdHNUZW1wbGF0ZVZpZXco UEdDaGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBjbGFzcyBGdHNUZW1w bGF0ZVZpZXcoUEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBj bGFzcyBmb3IgRlRTIFRlbXBhbHRlIG5vZGUgZGVyaXZlZCBmcm9tIFBHQ2hp bGROb2RlVmlldy4gVGhpcyBjbGFzcyBpcworICAgICAgICByZXNwb25zaWJs ZSBmb3IgYWxsIHRoZSBzdHVmZiByZWxhdGVkIHRvIHZpZXcgbGlrZSBjcmVh dGUvdXBkYXRlL2RlbGV0ZQorICAgICAgICByZXNwb25zaWJsZSBmb3IgYWxs IHRoZSBzdHVmZiByZWxhdGVkIHRvIHZpZXcgbGlrZSBjcmVhdGUvdXBkYXRl L2RlbGV0ZQorICAgICAgICBGVFMgdGVtcGxhdGUsIHNob3dpbmcgcHJvcGVy dGllcyBvZiBub2RlLCBzaG93aW5nIHNxbCBpbiBzcWwgcGFuZS4KKworICAg IE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKiprd2Fy Z3MpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxpemUgdGhl IEZ0c1RlbXBsYXRlVmlldyBhbmQgaXQncyBiYXNlIHZpZXcuCisKKyAgICAq IG1vZHVsZV9qcygpCisgICAgICAtIFRoaXMgcHJvcGVydHkgZGVmaW5lcyAo aWYgamF2YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAg IE92ZXJyaWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3duIGxvZ2ljCisK KyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBj aGVja3MKKyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVu bmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFu YWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYK KworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNl ZCB0byBsaXN0IGFsbCB0aGUgIG5vZGVzIHdpdGhpbiB0aGF0IGNvbGxlY3Rp b24uCisKKyAgICAqIG5vZGVzKCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3 aWxsIHVzZWQgdG8gY3JlYXRlIGFsbCB0aGUgY2hpbGQgbm9kZSB3aXRoaW4g dGhhdCBjb2xsZWN0aW9uLgorICAgICAgICBIZXJlIGl0IHdpbGwgY3JlYXRl IGFsbCB0aGUgRlRTIFRlbXBsYXRlIG5vZGVzLgorCisgICAgKiBwcm9wZXJ0 aWVzKGdpZCwgc2lkLCBkaWQsIHJnX2lkKQorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUgc2VsZWN0ZWQg RlRTIFRlbXBsYXRlIG5vZGUKKworICAgICogY3JlYXRlKGdpZCwgc2lkLCBk aWQsIHJnX2lkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgY3JlYXRl IHRoZSBuZXcgRlRTIFRlbXBsYXRlIG9iamVjdAorCisgICAgKiB1cGRhdGUo Z2lkLCBzaWQsIGRpZCwgcmdfaWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24g d2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCBGVFMgVGVt cGxhdGUgbm9kZQorCisgICAgKiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQsIHJn X2lkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIEZU UyBUZW1wbGF0ZSBvYmplY3QKKworICAgICogbXNxbChnaWQsIHNpZCwgZGlk LCByZ19pZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJl dHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZCBGVFMgVGVtcGxh dGUgbm9kZQorCisgICAgKiBnZXRfc3FsKGRhdGEsIHJnX2lkKQorICAgICAg LSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIGZyb20gbW9kZWwg ZGF0YQorCisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwgcmdfaWQpOgorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHNob3cg aXQgaW4gc3FsIHBhbmUgZm9yIHRoZSBzZWxlY3RlZCBGVFMgVGVtcGxhdGUg bm9kZS4KKworICAgICogZ2V0X3R5cGUoKToKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGZldGNoIGFsbCB0aGUgdHlwZXMgZm9yIHNvdXJjZSBhbmQg dGFyZ2V0IHR5cGVzIHNlbGVjdCBjb250cm9sLgorCisgICAgKiBnZXRfZnVu Y3Rpb25zKCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBmZXRjaCBh c3NvY2lhdGVkIGZ1bmN0aW9ucyBsaXN0IGRlcGVuZGluZyBvbiBzZWxlY3Rl ZCBzb3VyY2UKKyAgICAgICAgYW5kIHRhcmdldCB0eXBlcyB3aGlsZSBjcmVh dGluZyBhIG5ldyBGVFMgVGVtcGxhdGUgbm9kZS4KKworICAgICogZGVwZW5k ZW50cyhnaWQsIHNpZCwgZGlkLCBsaWQpOgorICAgICAgLSBUaGlzIGZ1bmN0 aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9u c2UgZm9yIHRoZSBGdHMgVGVtcGFsdGUgbm9kZS4KKworICAgICogZGVwZW5k ZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIGxpZCk6CisgICAgICAtIFRo aXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBh amF4IHJlc3BvbnNlIGZvciB0aGUgRlRTIFRlbXBhbHRlIG5vZGUuCisKKyAg ICAiIiIKKworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5cGUK KworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQn LCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQn OiAnc2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlk J30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9Cisg ICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICd0aWQnfQorICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBkaWN0KHsK KyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0JzogJ3Byb3Bl cnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAndXBkYXRlJ30s CisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAnY3JlYXRl J30KKyAgICAgICAgXSwKKyAgICAgICAgJ2NoaWxkcmVuJzogW3sKKyAgICAg ICAgICAgICdnZXQnOiAnY2hpbGRyZW4nCisgICAgICAgIH1dLAorICAgICAg ICAnZGVsZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwKKyAgICAgICAg J25vZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0s CisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAn bXNxbCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisg ICAgICAgICdzdGF0cyc6IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAg ICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0s CisgICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9 XSwKKyAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21v ZHVsZV9qcyd9XSwKKyAgICAgICAgJ2dldF9sZXhpemUnOiBbeydnZXQnOiAn Z2V0X2xleGl6ZSd9LCB7J2dldCc6ICdnZXRfbGV4aXplJ31dLAorICAgICAg ICAnZ2V0X2luaXQnOiBbeydnZXQnOiAnZ2V0X2luaXQnfSwgeydnZXQnOiAn Z2V0X2luaXQnfV0sCisgICAgfSkKKworICAgIGRlZiBfaW5pdF8oc2VsZiwg Kiprd2FyZ3MpOgorICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9IE5vbmUKKyAgICAgICAgc2VsZi5tYW5h Z2VyID0gTm9uZQorICAgICAgICBzdXBlcihGdHNUZW1wbGF0ZVZpZXcsIHNl bGYpLl9faW5pdF9fKCoqa3dhcmdzKQorCisgICAgZGVmIG1vZHVsZV9qcyhz ZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgcHJvcGVydHkgZGVm aW5lcyB3aGV0aGVyIGphdmFzY3JpcHQgZXhpc3RzIGZvciB0aGlzIG5vZGUu CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgK KyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAiZnRzX3RlbXBsYXRlL2pzL2Z0c190ZW1wbGF0ZXMuanMiLAorICAgICAg ICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwKKyAgICAgICAg ICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZh c2NyaXB0J30KKyAgICAgICAgKQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRp dGlvbihmKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MK KyAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2 aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixj b25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAg ICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFw KCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICAjIEhlcmUgYXJnc1sw XSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxk aWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBz ZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5j b25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICAgICAga3dhcmdzWydz aWQnXSkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5j b25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICAgICAgIyBJ ZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dz ZXIKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6 CisgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAg ICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJl ZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBh dGggZm9yIHNxbCBzY3JpcHRzIGRlcGVuZGluZyB1cG9uIHNlcnZlciB2ZXJz aW9uCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgor ICAgICAgICAgICAgaWYgdmVyID49IDkwMTAwOgorICAgICAgICAgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICdmdHNfdGVtcGxhdGUvc3FsLzkuMV9w bHVzJworICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQor CisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNx bCddKSwKKyAgICAgICAgICAgIHNjaWQ9c2NpZAorICAgICAgICApCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9u c2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAg ICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9k ZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAgIHJlcyA9 IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdub2Rlcy5zcWwn XSksCisgICAgICAgICAgICBzY2lkPXNjaWQKKyAgICAgICAgKQorICAgICAg ICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNx bCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAg ICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJl cy5hcHBlbmQoCisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2Vu ZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3db J29pZCddLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAg ICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICBp Y29uPSJpY29uLWZ0c190ZW1wbGF0ZSIKKyAgICAgICAgICAgICAgICApKQor CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2Rl KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgIHJl cyA9IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdub2Rlcy5z cWwnXSksCisgICAgICAgICAgICB0aWQ9dGlkCisgICAgICAgICkKKyAgICAg ICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShz cWwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAg ICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRh dGE9c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAg ICAgICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJv d1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNv bi1mdHNfdGVtcGxhdGUiCisgICAgICAgICAgICAgICAgICAgICksCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAgIHNxbCA9IHJl bmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAg IHNjaWQ9c2NpZCwKKyAgICAgICAgICAgIHRpZD10aWQKKyAgICAgICAgKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo c3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKwor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJl c3BvbnNlPXJlc1sncm93cyddWzBdLAorICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGVzIG5l dyB0aGUgZnRzX3RlbXBsYXRlIG9iamVjdAorICAgICAgICA6cGFyYW0gZ2lk OiBncm91cCBpZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAg ICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFt IHNjaWQ6IHNjaGVtYSBpZAorICAgICAgICAiIiIKKworICAgICAgICAjIE1h bmRhdG9yeSBmaWVsZHMgdG8gY3JlYXRlIGEgbmV3IGZ0cyB0ZW1wbGF0ZQor ICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ3RtcGxs ZXhpemUnLAorICAgICAgICAgICAgJ3NjaGVtYScsCisgICAgICAgICAgICAn bmFtZScKKyAgICAgICAgXQorCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZv cm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAgICAg ICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgZm9yIGFyZyBp biByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBk YXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz00MTAsCisgICAgICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAg ZXJyb3Jtc2c9Z2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAgICAgICJD b3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKCVzKS4iICUg YXJnCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAp CisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgRmV0Y2ggc2NoZW1hIG5h bWUgZnJvbSBzY2hlbWEgb2lkCisgICAgICAgICAgICBzcWwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NjaGVt YS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YT1kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm49c2VsZi5jb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICkKKworICAgICAgICAgICAgc3RhdHVzLCBzY2hlbWEgPSBzZWxm LmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXNjaGVtYSkKKworICAgICAgICAgICAgIyBy ZXBsYWNlIHNjaGVtYSBvaWQgd2l0aCBzY2hlbWEgbmFtZSBiZWZvcmUgcGFz c2luZyB0byBjcmVhdGUuc3FsCisgICAgICAgICAgICAjIHRvIGdlbmVyYXRl IHByb3BlciBzcWwgcXVlcnkKKyAgICAgICAgICAgIG5ld19kYXRhID0gZGF0 YS5jb3B5KCkKKyAgICAgICAgICAgIG5ld19kYXRhWydzY2hlbWEnXSA9IHNj aGVtYQorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdjcmVhdGUuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9bmV3X2RhdGEs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ubj1zZWxm LmNvbm4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9z Y2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKworICAgICAgICAgICAgIyB3ZSBuZWVkIGZ0c190ZW1wbGF0 ZSBpZCB0byB0byBhZGQgb2JqZWN0IGluIHRyZWUgYXQgYnJvd3NlciwKKyAg ICAgICAgICAgICMgYmVsb3cgc3FsIHdpbGwgZ2l2ZSB0aGUgc2FtZQorICAg ICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVz LnNxbCddKSwKKyAgICAgICAgICAgICAgICBuYW1lPWRhdGFbJ25hbWUnXQor ICAgICAgICAgICAgKQorICAgICAgICAgICAgc3RhdHVzLCB0aWQgPSBzZWxm LmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXRpZCkKKworICAgICAgICAgICAgcmV0dXJu IGpzb25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmlu dC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAg IHRpZCwKKyAgICAgICAgICAgICAgICAgICAgZGlkLAorICAgICAgICAgICAg ICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGlj b249Imljb24tZnRzX3RlbXBsYXRlIgorICAgICAgICAgICAgICAgICkKKyAg ICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor ICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJv cm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0 ZSB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZSBvYmplY3QKKyAgICAgICAgOnBhcmFt IGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVyIGlk CisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAgIDpw YXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHRpZDogZnRz IHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1 ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAg ICAgICAgICAgIHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICAj IEZldGNoIHNxbCBxdWVyeSB0byB1cGRhdGUgZnRzIHRlbXBsYXRlCisgICAg ICAgIHNxbCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBk YXRhLCB0aWQpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIHNxbCBh bmQgc3FsLnN0cmlwKCdcbicpIGFuZCBzcWwuc3RyaXAoJyAnKToKKyAgICAg ICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNz PTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89IkZUUyBUZW1wbGF0ZSB1 cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAg ICAgICAgICAgICAgICAgICAnaWQnOiB0aWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg J2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBk aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQKKyAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAor ICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3RoaW5nIHRvIHVwZGF0ZSIs CisgICAgICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAg ICAgICAgICAgJ2lkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAg J3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBn aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkCisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIGRyb3AgdGhlIGZ0c190ZW1wbGF0ZSBvYmplY3QK KyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFt IHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNl IGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAg OnBhcmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAg ICAgICMgQmVsb3cgd2lsbCBkZWNpZGUgaWYgaXQncyBzaW1wbGUgZHJvcCBv ciBkcm9wIHdpdGggY2FzY2FkZSBjYWxsCisgICAgICAgIGlmIHNlbGYuY21k ID09ICdkZWxldGUnOgorICAgICAgICAgICAgIyBUaGlzIGlzIGEgY2FzY2Fk ZSBvcGVyYXRpb24KKyAgICAgICAgICAgIGNhc2NhZGUgPSBUcnVlCisgICAg ICAgIGVsc2U6CisgICAgICAgICAgICBjYXNjYWRlID0gRmFsc2UKKworICAg ICAgICB0cnk6CisgICAgICAgICAgICAjIEdldCBuYW1lIGZvciB0ZW1wbGF0 ZSBmcm9tIHRpZAorICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRl KCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdkZWxldGUuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpZD10aWQp CisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKworICAgICAgICAgICAgIyBEcm9wIGZ0cyB0ZW1wbGF0ZQor ICAgICAgICAgICAgcmVzdWx0ID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAg ICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBuYW1lPXJlc3VsdFsnbmFtZSddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYT1yZXN1bHRbJ3Nj aGVtYSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh c2NhZGU9Y2FzY2FkZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICkKKworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisg ICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJGVFMgdGVtcGxhdGUgZHJv cHBlZCIpLAorICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAg ICAgICAgICAnaWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAgICdzaWQn OiBzaWQsCisgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAg ICAgICAgICAgICAgICAgICdkaWQnOiBkaWQsCisgICAgICAgICAgICAgICAg ICAgICdzY2lkJzogc2NpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYg bXNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQ9Tm9uZSk6Cisg ICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgbW9k aWZpZWQgU1FMCisgICAgICAgIDpwYXJhbSBnaWQ6IGdyb3VwIGlkCisgICAg ICAgIDpwYXJhbSBzaWQ6IHNlcnZlciBpZAorICAgICAgICA6cGFyYW0gZGlk OiBkYXRhYmFzZSBpZAorICAgICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlk CisgICAgICAgIDpwYXJhbSB0aWQ6IGZ0cyB0ZW1wYXRlIGlkCisgICAgICAg ICIiIgorICAgICAgICBkYXRhID0gcmVxdWVzdC5hcmdzCisKKyAgICAgICAg IyBGZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEKKyAgICAgICAg c3FsID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEs IHRpZCkKKworICAgICAgICBpZiBpc2luc3RhbmNlKHNxbCwgc3RyKSBhbmQg c3FsIGFuZCBzcWwuc3RyaXAoJ1xuJykgYW5kIHNxbC5zdHJpcCgnICcpOgor ICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICBkYXRhPXNxbCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IGRhdGE9Ii0tbW9kaWZpZWQgU1FMIiwKKyAgICAgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICAgICApCisKKyAgICBkZWYgZ2V0X3NxbChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBkYXRhLCB0aWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgcmV0dXJuIFNR TCBmb3IgbW9kZWwgZGF0YQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBp ZAorICAgICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBh cmFtIGRpZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNj aGVtYSBpZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAor ICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBGZXRj aCBzcWwgZm9yIHVwZGF0ZQorICAgICAgICAgICAgaWYgdGlkIGlzIG5vdCBO b25lOgorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgK KyAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICB0aWQ9dGlkLAorICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQKKyAg ICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgICAgICAgICAgb2xkX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAg ICAgICAgICAgICAgIyBJZiB1c2VyIGhhcyBjaGFuZ2VkIHRoZSBzY2hlbWEg dGhlbiBmZXRjaCBuZXcgc2NoZW1hIGRpcmVjdGx5CisgICAgICAgICAgICAg ICAgIyB1c2luZyBpdHMgb2lkIG90aGVyd2lzZSBmZXRjaCBvbGQgc2NoZW1h IG5hbWUgdXNpbmcgZnRzIHRlbXBsYXRlIG9pZAorICAgICAgICAgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAg Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NjaGVtYS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKworICAgICAgICAg ICAgICAgIHN0YXR1cywgbmV3X3NjaGVtYSA9IHNlbGYuY29ubi5leGVjdXRl X3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1uZXdfc2NoZW1hKQorCisgICAgICAgICAgICAgICAg IyBSZXBsYWNlIHNjaGVtYSBvaWQgd2l0aCBzY2hlbWEgbmFtZQorICAgICAg ICAgICAgICAgIG5ld19kYXRhID0gZGF0YS5jb3B5KCkKKyAgICAgICAgICAg ICAgICBpZiAnc2NoZW1hJyBpbiBuZXdfZGF0YToKKyAgICAgICAgICAgICAg ICAgICAgbmV3X2RhdGFbJ3NjaGVtYSddID0gbmV3X3NjaGVtYQorCisgICAg ICAgICAgICAgICAgIyBGZXRjaCBvbGQgc2NoZW1hIG5hbWUgdXNpbmcgb2xk IHNjaGVtYSBvaWQKKyAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsICdzY2hlbWEuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgICBkYXRhPW9sZF9kYXRhKQorCisgICAgICAgICAgICAgICAgc3RhdHVz LCBvbGRfc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNxbCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PW9sZF9zY2hlbWEpCisKKyAgICAgICAgICAgICAgICAjIFJlcGxhY2Ugb2xk IHNjaGVtYSBvaWQgd2l0aCBvbGQgc2NoZW1hIG5hbWUKKyAgICAgICAgICAg ICAgICBvbGRfZGF0YVsnc2NoZW1hJ10gPSBvbGRfc2NoZW1hCisKKyAgICAg ICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAg ICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRh dGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPW5ld19kYXRh LCBvX2RhdGE9b2xkX2RhdGEKKyAgICAgICAgICAgICAgICApCisgICAgICAg ICAgICAgICAgIyBGZXRjaCBzcWwgcXVlcnkgZm9yIG1vZGlmaWVkIGRhdGEK KyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBGZXRjaCBz Y2hlbWEgbmFtZSBmcm9tIHNjaGVtYSBvaWQKKyAgICAgICAgICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwgJ3NjaGVtYS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSkKKworICAgICAgICAgICAgICAg IHN0YXR1cywgc2NoZW1hID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKHNx bCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXNjaGVtYSkKKworICAgICAgICAgICAgICAgICMgUmVwbGFjZSBzY2hl bWEgb2lkIHdpdGggc2NoZW1hIG5hbWUKKyAgICAgICAgICAgICAgICBuZXdf ZGF0YSA9IGRhdGEuY29weSgpCisgICAgICAgICAgICAgICAgbmV3X2RhdGFb J3NjaGVtYSddID0gc2NoZW1hCisKKyAgICAgICAgICAgICAgICBpZiAndG1w bGxleGl6ZScgaW4gbmV3X2RhdGEgYW5kIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ25hbWUnIGluIG5ld19kYXRhIGFuZCBcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY2hlbWEnIGluIG5ld19k YXRhOgorICAgICAgICAgICAgICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3Jl YXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGE9bmV3X2RhdGEsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNxbCA9ICIt LSBpbmNvbXBsZXRlIGRlZmluaXRpb24iCisgICAgICAgICAgICByZXR1cm4g c3FsLnN0cmlwKCdcbicpCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh cyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIGdldF9sZXhpemUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgdGlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIHJldHVybiBsZXhpemUgZnVuY3Rpb25zIGxpc3QgZm9yIGZ0 cyB0ZW1wbGF0ZQorICAgICAgICA6cGFyYW0gZ2lkOiBncm91cCBpZAorICAg ICAgICA6cGFyYW0gc2lkOiBzZXJ2ZXIgaWQKKyAgICAgICAgOnBhcmFtIGRp ZDogZGF0YWJhc2UgaWQKKyAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBp ZAorICAgICAgICA6cGFyYW0gdGlkOiBmdHMgdGVtcGF0ZSBpZAorICAgICAg ICAiIiIKKyAgICAgICAgZGF0YSA9IHJlcXVlc3QuYXJncworICAgICAgICBz cWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVf cGF0aCwgJ2Z1bmN0aW9ucy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsZXhpemU9VHJ1ZSkKKyAgICAgICAgc3RhdHVzLCByc2V0 ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICAjIEVtcHR5IHNl dCBpcyBhZGRlZCBiZWZvcmUgYWN0dWFsIGxpc3QgYXMgaW5pdGlhbGx5IGl0 IHdpbGwgYmUgdmlzaWJsZQorICAgICAgICAjIGF0IGxleGl6ZSBzZWxlY3Qg Y29udHJvbCB3aGlsZSBjcmVhdGluZyBhIG5ldyBmdHMgdGVtcGxhdGUKKyAg ICAgICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAg ICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJl cy5hcHBlbmQoeydsYWJlbCc6IHJvd1sncHJvbmFtZSddLAorICAgICAgICAg ICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wydwcm9uYW1lJ119KQorICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2luaXQo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkPU5vbmUpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBpbml0 IGZ1bmN0aW9ucyBsaXN0IGZvciBmdHMgdGVtcGxhdGUKKyAgICAgICAgOnBh cmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAgOnBhcmFtIHNpZDogc2VydmVy IGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNlIGlkCisgICAgICAg IDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAgICAgICAgOnBhcmFtIHRpZDog ZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSBy ZXF1ZXN0LmFyZ3MKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdmdW5jdGlvbnMuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdD1UcnVlKQor ICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQor CisgICAgICAgICMgV2UgaGF2ZSBhZGRlZCB0aGlzIHRvIG1hcCBhZ2FpbnN0 ICctJyB3aGljaCBpcyBjb21pbmcgZnJvbSBzZXJ2ZXIKKyAgICAgICAgcmVz ID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJy0nfV0KKyAgICAgICAgZm9y IHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5k KHsnbGFiZWwnOiByb3dbJ3Byb25hbWUnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICd2YWx1ZSc6IHJvd1sncHJvbmFtZSddfSkKKyAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVz LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiB3aWxsIHJldmVyc2UgZ2VuZXJhdGUgc3FsIGZvciBzcWwg cGFuZWwKKyAgICAgICAgOnBhcmFtIGdpZDogZ3JvdXAgaWQKKyAgICAgICAg OnBhcmFtIHNpZDogc2VydmVyIGlkCisgICAgICAgIDpwYXJhbSBkaWQ6IGRh dGFiYXNlIGlkCisgICAgICAgIDpwYXJhbSBzY2lkOiBzY2hlbWEgaWQKKyAg ICAgICAgOnBhcmFtIHRpZDogZnRzIHRlbXBhdGUgaWQKKyAgICAgICAgIiIi CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1w bGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnc3FsLnNxbCddKSwKKyAgICAgICAgICAgICAgICB0aWQ9dGlk LAorICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwKKyAgICAgICAgICAgICAg ICBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgKQorICAgICAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKAorICAgICAgICAgICAgICAg ICAgICBfKAorICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SOiBDb3Vs ZG4ndCBnZW5lcmF0ZSByZXZlcnNlZCBlbmdpbmVlcmVkIFF1ZXJ5IGZvciB0 aGUgRlRTIHRlbXBsYXRlIVxuezB9IikuZm9ybWF0KAorICAgICAgICAgICAg ICAgICAgICAgICAgcmVzCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgICAgIGlmIHJlcyBpcyBOb25lOgor ICAgICAgICAgICAgICAgIHJldHVybiBnb25lKAorICAgICAgICAgICAgICAg ICAgICBfKAorICAgICAgICAgICAgICAgICAgICAgICAgIkVSUk9SOiBDb3Vs ZG4ndCBnZW5lcmF0ZSByZXZlcnNlZCBlbmdpbmVlcmVkIFF1ZXJ5IGZvciBG VFMgdGVtcGxhdGUgbm9kZSEiKQorICAgICAgICAgICAgICAgICkKKworICAg ICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9cmVzKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRl bnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50 cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBG VFMgVGVtcGxhdGUgbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogRlRTIFRl bXBsYXRlIElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbnRzX3Jl c3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5jb25uLCB0aWQpCisg ICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IHJlc3BvbnNlPWRlcGVuZGVudHNfcmVzdWx0LAorICAgICAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCB0aWQpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJu IGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGVFMgVGVtcGxhdGUg bm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2 ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzY2lkOiBT Y2hlbWEgSUQKKyAgICAgICAgICAgIHRpZDogRlRTIFRlbXBhbHRlIElECisg ICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbmNpZXNfcmVzdWx0ID0gc2Vs Zi5nZXRfZGVwZW5kZW5jaWVzKHNlbGYuY29ubiwgdGlkKQorICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNwb25z ZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAgICAgIHN0YXR1 cz0yMDAKKyAgICAgICAgICAgICAgICApCisKK0Z0c1RlbXBsYXRlVmlldy5y ZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9zdGF0aWMvaW1nL2NvbGwtZnRz X3RlbXBsYXRlLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv c3RhdGljL2ltZy9jb2xsLWZ0c190ZW1wbGF0ZS5wbmcKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMC4uZmFiZDQ3ZGE3YWUyN2IwNGIwYmZkMzhhN2IxZWU5ZjZj MWE3NGQyYwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNjAxCnpjbVkrOVll LVc4NnZ5dWohITU/N3pEUz03Zj9RbkpFWnY4aXdYSUVaKm1qRXclSDc9dUlM cGlwTDg3YiRtT2FvWQp6R141OUlDT1M7Kkt8Jjhodn1xRXtBJiF1Y0dCQXA4 Y2xXalhVTmA7Smh5VkdWMUxwX2x2e2t6Zz15aldRMDA4SisKelBNYiQlO2xD OERRfG1VUCFLO0Y9Sl95LVdDYTBQY0A1Knp6UjR6QkNENkArNE50VU4yWDtQ Qmo9V19HV1prd1ZjCnpXY2g8QXpVS0wtSTFWWXdYQjxCeSVUcE5VbVpVS2h0 clViODkyYiUwOENpfT8oenF6VDZ+JDNPYytUXks5TXtMUAp6dz10fHI2eUoj QUQ/dTNIYDU0RE5LQGNtO2NHR21MQWlOWldWVilvMHhNKCl9Zk12VEY8YCU9 O0srKmppKk9TZk8KelhXMzRNPjdlT3JldCMpTndQZHNSU29STFh3OXxBT01P figtM25iWmAkJU9wPUdNY151ISlBJik1NXIoNDZaSDl0CnozOElkb0V8S0lw bDVFT2s4VlJERkFPaCgkbz0mMytMUU96QFVLOEBUeT99TjMzJDZ+QDJJc00k TzZPYEVBTTV0MAp6T18kNDcwVHM8NUp+WFV4dE90RjU5TEhle2BTfWVFPmwp NVJXQUlYaWNWaEItVXUmRDhPMjI4Wl5YQTEhJEg+K0cKenlKYiNtVWEhTWJk RTladGVOd1h9UXM5YTk0KSg8UWg4fUEtJmdLbXlRXzE8Yy1KbSY3MmJ8REIk U0hwU3VaTF4lCnpwQjQ0VDd2aWJKOyZAVjk0MHdNMFNeQi1hXjhIdFNhSUFC KmVmVXZ9KW1JMXM2STBVd0tyYjMxVWxTWGUpRHlSYwp6Pl88Wj05S3RMfUJj PWl7ZmhDfV4jQUYwWkFRTmFZQDNmZHB3fVloPzVQWjBAQmxlJGdgVjNsJkg/ SWpgYEtxOTkKWW49Um4zSERSWGZAU3JMSEYxeTx7dzlnbSozI2M3NWRqSjNj CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3N0YXRpYy9pbWcvZnRzX3RlbXBsYXRl LnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvc3RhdGljL2lt Zy9mdHNfdGVtcGxhdGUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVi NzgwYmYwYmIwZjVkNzc3ZThhNzI3MjBiNWVkMGUyYWQ0OGJjNDUKR0lUIGJp bmFyeSBwYXRjaApsaXRlcmFsIDY5Ngp6Y21ZK0NTND5qQDZvemtjcT53UTUh R0xrI0NMelUzUylvUSFZciRlRlU8LXQkY0hLcS1oKGJkXlEyfmgtTUlqTW8K ekJPKVJKMVQ9MCU+V0dYZVZNJTxeXysmSXVkaVREIVVnNjF5fE5RNHEmaUNA PylUQVVHQGJ5e20wfDA8O3FFMmcmCnpKbTg8P0UySjVzQEhZYTA+YDtuNkhD fkR7VmBXbiN1XiFLWSQxXlhBdiFYYUhpa30yd1FWXzs/ez1NQ3Y9SkN3Zwp6 P002fFlmfXEyS0ZiK1k8SnBUclFeYz9wPjZsWDs3cWFhS08hVXZ2eiVrIWZn X21ibkR2Z3srNDlwP0ZXSm4hUFQKelJ+K3xAV2dvTmIxQlNWOHZ1U0Mlbzk5 UDM/bTVkb1ZjQ1phR3NyTX5HPH16KlomT3F8TmpCU1RJK2goYG4wfWg+Cnpx M0pHKT5ZJTY9bER1aUxzMGlYSiF3ZkxZSih8OGxRTVZ8bmxfVlFVQDtYNlch fH1eRmVpNmZ9WHU4dkNqVSZrPgp6bDU4TXxJKWI9QDxDayMhMCl8elglfU53 NENDTThFUUJNJUhJUFMjcFk3REV5dShLI3loTjJ9MVFqOCNsSTlfQTEKek00 eyt1dmwlcCo2ZmooMUdLSXFNYVNTXztxR3U0cWZncTw0PE9CQG8hRW1uSVpG anFFWm50JCt4d2wzdFJPVD13Cno4M0ZaPUZMbygtcFZWYSpPUmlmfCFiRCEy dn4ocUVfb1c4VFN4cWpXUnhmd1MqUDFNPXoxRjJpbS1yPXg/UXtZJAp6ezx9 QWlSJj5ANiVlQ3I7V1BPZ3RhNDsoJi1FWFVGT1VPYFhafSZoflV5dDlLZlo2 SCEqQGM8VWIxYDdHZF58OXkKendXKn4hSjBtTXx8SH1PUUtmZ0NfWG0yfWBe RUtGT2FafF85WippfkJpTCVPbyVGZ2ZnKTVFWkh5IVU2SVE9UStJCnp0dUVJ JUVRVFQ8WkUlelYrYEJDemJrREFzSWA5NXRhdjR6aURgO1dCeGMlUDs/UXEw cklCYUdJcV9QJTRrXnhGRQp6OThgb1c2PH5PKDU+IVAtczNOMDYhNiszN2J9 V1lWe1JiMmorSCZuPiVLI1g9MVc0REJEbG1FKG1+MmNOa05fWXQKTEsxbjtN RjspRXEwNDh5TgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRz X3RlbXBsYXRlL2pzL2Z0c190ZW1wbGF0ZXMuanMgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvanMvZnRz X3RlbXBsYXRlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi43OTYxZWRmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL2pzL2Z0 c190ZW1wbGF0ZXMuanMKQEAgLTAsMCArMSwxMzMgQEAKK2RlZmluZSgKKyAg ICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0 cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsICdhbGVydGlm eScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbiddLAorZnVuY3Rpb24o JCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgeworCisg IC8vIEV4dGVuZCB0aGUgY29sbGVjdGlvbiBjbGFzcyBmb3IgZnRzIHRlbXBs YXRlCisgIGlmICghcGdCcm93c2VyLk5vZGVzWydjb2xsLWZ0c190ZW1wbGF0 ZSddKSB7CisgICAgdmFyIGZ0c190ZW1wbGF0ZXMgPSBwZ0FkbWluLkJyb3dz ZXIuTm9kZXNbJ2NvbGwtZnRzX3RlbXBsYXRlJ10gPQorICAgICAgcGdBZG1p bi5Ccm93c2VyLkNvbGxlY3Rpb24uZXh0ZW5kKHsKKyAgICAgICAgbm9kZTog J2Z0c190ZW1wbGF0ZScsCisgICAgICAgIGxhYmVsOiAne3sgXygnRlRTIFRl bXBsYXRlcycpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtZnRzX3RlbXBs YXRlJywKKyAgICAgICAgY29sdW1uczogWyduYW1lJywgJ2Rlc2NyaXB0aW9u J10KKyAgICAgIH0pOworICB9OworCisgIC8vIEV4dGVuZCB0aGUgbm9kZSBj bGFzcyBmb3IgZnRzIHRlbXBsYXRlCisgIGlmICghcGdCcm93c2VyLk5vZGVz WydmdHNfdGVtcGxhdGUnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2Rl c1snZnRzX3RlbXBsYXRlJ10gPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5leHRl bmQoeworICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJywgJ2NhdGFsb2cn XSwKKyAgICAgIHR5cGU6ICdmdHNfdGVtcGxhdGUnLAorICAgICAgY2FuRHJv cDogdHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAg bGFiZWw6ICd7eyBfKCdGVFMgVGVtcGxhdGVzJykgfX0nLAorICAgICAgaGFz U1FMOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIElu aXQ6IGZ1bmN0aW9uKCkgeworCisgICAgICAgIC8vIEF2b2lkIG11bHRpcGxl IHJlZ2lzdHJhdGlvbiBvZiBtZW51cworICAgICAgICBpZiAodGhpcy5pbml0 aWFsaXplZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5p bml0aWFsaXplZCA9IHRydWU7CisKKyAgICAgICAgLy8gQWRkIGNvbnRleHQg bWVudXMgZm9yIGZ0cyB0ZW1wbGF0ZQorICAgICAgICBwZ0Jyb3dzZXIuYWRk X21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9mdHNfdGVtcGxh dGVfb25fc2NoZW1hJywgbm9kZTogJ3NjaGVtYScsIG1vZHVsZTogdGhpcywK KyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0 ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdG VFMgVGVtcGxhdGUuLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFi SWNvbiBpY29uLWZ0c190ZW1wbGF0ZScsIGRhdGE6IHthY3Rpb246ICdjcmVh dGUnfQorICAgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVf ZnRzX3RlbXBsYXRlX29uX2NvbGwnLCBub2RlOiAnY29sbC1mdHNfdGVtcGxh dGUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmpl Y3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRp ZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6 IDQsIGxhYmVsOiAne3sgXygnRlRTIFRlbXBsYXRlLi4uJykgfX0nLAorICAg ICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1mdHNfdGVtcGxhdGUnLCBk YXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30KKyAgICAgICAgICB9LHsKKyAgICAg ICAgICBuYW1lOiAnY3JlYXRlX2Z0c190ZW1wbGF0ZScsIG5vZGU6ICdmdHNf dGVtcGxhdGUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczog WydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3By b3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJp b3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRlRTIFRlbXBsYXRlLi4uJykgfX0n LAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1mdHNfdGVtcGxh dGUnLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJ30KKyAgICAgICAgICB9XSk7 CisKKyAgICAgIH0sCisKKyAgICAgIC8vIERlZmluaW5nIGJhY2tmb3JtIG1v ZGVsIGZvciBmdHMgdGVtcGxhdGUgbm9kZQorICAgICAgbW9kZWw6IHBnQWRt aW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGRlZmF1 bHRzOiB7CisgICAgICAgICAgbmFtZTogdW5kZWZpbmVkLCAgICAgIC8vIEZ0 cyB0ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVm aW5lZCwgICAvLyBDb21tZW50IG9uIHRlbXBsYXRlCisgICAgICAgICAgc2No ZW1hOiB1bmRlZmluZWQsICAgICAgICAvLyBTY2hlbWEgbmFtZSB0byB3aGlj aCB0ZW1wbGF0ZSBiZWxvbmdzCisgICAgICAgICAgdG1wbGluaXQ6IHVuZGVm aW5lZCwgICAgICAvLyBJbml0IGZ1bmN0aW9uIGZvciBmdHMgdGVtcGxhdGUK KyAgICAgICAgICB0bXBsbGV4aXplOiB1bmRlZmluZWQgICAgIC8vIExleGl6 ZSBmdW5jdGlvbiBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIH0sCisgICAg ICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgcGdB ZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRpYWxpemUu YXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGlmIChfLmlz VW5kZWZpbmVkKHRoaXMuZ2V0KCdzY2hlbWEnKSkpIHsKKyAgICAgICAgICAg ICAgICB0aGlzLnNldCgnc2NoZW1hJywgdGhpcy5ub2RlX2luZm8uc2NoZW1h Ll9pZCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIC8v IERlZmluaW5nIHNjaGVtYSBmb3IgZnRzIHRlbXBsYXRlCisgICAgICAgIHNj aGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8o J05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgY2VsbEhlYWRlckNsYXNzZXM6ICd3aWR0aF9wZXJjZW50XzUw JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcsIGxhYmVsOid7 eyBfKCdPSUQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIGVk aXRhYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnLCBkaXNhYmxlZDogdHJ1ZSwg bW9kZTpbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3NjaGVtYScsIGxhYmVsOiAne3sgXygnU2NoZW1hJyl9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydj cmVhdGUnLCdlZGl0J10sIG5vZGU6ICdzY2hlbWEnLAorICAgICAgICAgIGNv bnRyb2w6ICdub2RlLWxpc3QtYnktaWQnCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAnZGVzY3JpcHRpb24nLCBsYWJlbDone3sgXygnQ29tbWVudCcp IH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRp bGluZScsIGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF81MCcK KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd0bXBsaW5pdCcsIGxhYmVs OiAne3sgXygnSW5pdCBGdW5jdGlvbicpfX0nLCBncm91cDogJ3t7IF8oJ0Rl ZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBkaXNh YmxlZDogZnVuY3Rpb24obSkgeyByZXR1cm4gIW0uaXNOZXcoKTsgfSwKKyAg ICAgICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB1cmw6ICdn ZXRfaW5pdCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd0bXBsbGV4 aXplJywgbGFiZWw6ICd7eyBfKCdMZXhpemUgRnVuY3Rpb24nKX19JywgZ3Jv dXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlz TmV3KCk7IH0sCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRp b25zJywgdXJsOiAnZ2V0X2xleGl6ZScKKyAgICAgICAgfV0sCisKKyAgICAg ICAgLyoKKyAgICAgICAgICogVHJpZ2dlcnMgY29udHJvbCBzcGVjaWZpYyBl cnJvciBtZXNzYWdlcyBmb3IgdGVtcGxhdGUgbmFtZSwKKyAgICAgICAgICog bGV4aXplIGZ1bmN0aW9uIGFuZCBzY2hlbWEsIGlmIGFueSBvbmUgb2YgdGhl bSBpcyBub3Qgc3BlY2lmaWVkCisgICAgICAgICAqIHdoaWxlIGNyZWF0aW5n IG5ldyBmdHMgdGVtcGxhdGUKKyAgICAgICAgICovCisgICAgICAgIHZhbGlk YXRlOiBmdW5jdGlvbihrZXlzKXsKKyAgICAgICAgICB2YXIgbmFtZSA9IHRo aXMuZ2V0KCduYW1lJyk7CisgICAgICAgICAgdmFyIGxleGl6ZSA9IHRoaXMu Z2V0KCd0bXBsbGV4aXplJyk7CisgICAgICAgICAgdmFyIHNjaGVtYSA9IHRo aXMuZ2V0KCdzY2hlbWEnKTsKKworICAgICAgICAgIC8vIFZhbGlkYXRlIGZ0 cyB0ZW1wbGF0ZSBuYW1lCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo bmFtZSkgfHwgXy5pc051bGwobmFtZSkgfHwgU3RyaW5nKG5hbWUpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIHZh ciBtc2cgPSAne3sgXygnTmFtZSBtdXN0IGJlIHNwZWNpZmllZCEnKSB9fSc7 CisgICAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuc2V0KCduYW1lJywgbXNn KTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAgfQorCisg ICAgICAgICAgLy8gVmFsaWRhdGUgbGV4aXplIGZ1bmN0aW9uIGNvbnRyb2wK KyAgICAgICAgICBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKGxleGl6ZSkgfHwg Xy5pc051bGwobGV4aXplKSB8fCBTdHJpbmcobGV4aXplKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICB2YXIgbXNn ID0gJ3t7IF8oJ0xleGl6ZSBmdW5jdGlvbiBtdXN0IGJlIHNlbGVjdGVkIScp IH19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5zZXQoJ3RtcGxs ZXhpemUnLCBtc2cpOworICAgICAgICAgICAgcmV0dXJuIG1zZzsKKyAgICAg ICAgICB9CisKKyAgICAgICAgICAvLyBWYWxpZGF0ZSBzY2hlbWEgZm9yIGZ0 cyB0ZW1wbGF0ZQorICAgICAgICAgIGVsc2UgaWYgKF8uaXNVbmRlZmluZWQo c2NoZW1hKSB8fCBfLmlzTnVsbChzY2hlbWEpIHx8IFN0cmluZyhzY2hlbWEp LnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAg ICAgIHZhciBtc2cgPSAne3sgXygnU2NoZW1hIG11c3QgYmUgc2VsZWN0ZWQh JykgfX0nOworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnc2No ZW1hJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAg ICAgfQorICAgICAgICAgIGVsc2UgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCk7 CisKKyAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cy1jbGVhcicp OworICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICB9 KQorICAgIH0pOworICB9CisKK3JldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2Nv bGwtZnRzX3RlbXBsYXRlJ107Cit9KTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxh dGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2NyZWF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2EyOTBiMwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVt cGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApA QCAtMCwwICsxLDExIEBACit7IyBDUkVBVEUgVEVYVCBTRUFSQ0ggVEVNUExB VEUgU3RhdGVtZW50ICN9Cit7JSBpZiBkYXRhIGFuZCBkYXRhLnNjaGVtYSBh bmQgZGF0YS5uYW1lIGFuZCBkYXRhLnRtcGxsZXhpemUgJX0KK0NSRUFURSBU RVhUIFNFQVJDSCBURU1QTEFURSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hl bWEsIGRhdGEubmFtZSkgfX0gKAoreyUgaWYgZGF0YS50bXBsaW5pdCBhbmQg ZGF0YS50bXBsaW5pdCAhPSAnLSclfSAgICBJTklUID0ge3tkYXRhLnRtcGxp bml0fX0seyUgZW5kaWYgJX0KKyAgICBMRVhJWkUgPSB7e2RhdGEudG1wbGxl eGl6ZX19CispOworeyMgRGVzY3JpcHRpb24gZm9yIFRFWFQgU0VBUkNIIFRF TVBMQVRFICN9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CitDT01NRU5U IE9OIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7IGNvbm58cXRJZGVudChkYXRh LnNjaGVtYSwgZGF0YS5uYW1lKSB9fQorICAgICAgSVMge3sgZGF0YS5kZXNj cmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAlfXslIGVuZGlmICV9 ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBs YXRlL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFf cGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmNjYThkYzQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3Fs LzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMyBAQAoreyMgRkVU Q0ggVEVYVCBTRUFSQ0ggVEVNUExBVEUgTkFNRSBTdGF0ZW1lbnQgI30KK3sl IGlmIHRpZCAlfQorU0VMRUNUCisgICAgdC50bXBsbmFtZSBBUyBuYW1lLAor ICAgICgKKyAgICBTRUxFQ1QKKyAgICAgICAgbnNwbmFtZQorICAgIEZST00K KyAgICAgICAgcGdfbmFtZXNwYWNlCisgICAgV0hFUkUKKyAgICAgICAgb2lk ID0gdC50bXBsbmFtZXNwYWNlCisgICAgKSBhcyBzY2hlbWEKK0ZST00KKyAg ICBwZ190c190ZW1wbGF0ZSB0IExFRlQgSk9JTiBwZ19kZXNjcmlwdGlvbiBk CisgICAgT04gZC5vYmpvaWQ9dC5vaWQgQU5EIGQuY2xhc3NvaWQ9J3BnX3Rz X3RlbXBsYXRlJzo6cmVnY2xhc3MKK1dIRVJFCisgICAgdC5vaWQgPSB7e3Rp ZH19OjpPSUQ7Cit7JSBlbmRpZiAlfQorCit7IyBEUk9QIFRFWFQgU0VBUkNI IFRFTVBMQVRFIFN0YXRlbWVudCAjfQoreyUgaWYgc2NoZW1hIGFuZCBuYW1l ICV9CitEUk9QIFRFWFQgU0VBUkNIIFRFTVBMQVRFIHt7Y29ubnxxdElkZW50 KHNjaGVtYSl9fS57e2Nvbm58cXRJZGVudChuYW1lKX19IHslIGlmIGNhc2Nh ZGUgJX1DQVNDQURFeyVlbmRpZiV9OworeyUgZW5kaWYgJX0KXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzku MV9wbHVzL2Z1bmN0aW9ucy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVt cGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL2Z1 bmN0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMmZlOWUwMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4x X3BsdXMvZnVuY3Rpb25zLnNxbApAQCAtMCwwICsxLDIzIEBACit7IyBGRVRD SCBsZXhpemUgZnVuY3Rpb25zIGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAj fQoreyUgaWYgbGV4aXplICV9CitTRUxFQ1QKKyAgICBwcm9uYW1lLCBuc3Bu YW1lCitGUk9NCisgICAgcGdfcHJvYyBKT0lOIHBnX25hbWVzcGFjZSBuIE9O IG4ub2lkPXByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9yZXR0eXBlPTIy ODEKKyAgICBBTkQgcHJvYXJndHlwZXM9JzIyODEgMjI4MSAyMjgxIDIyODEn CitPUkRFUiBCWSBwcm9uYW1lOworeyUgZW5kaWYgJX0KKworeyMgRkVUQ0gg aW5pdCBmdW5jdGlvbnMgZm9yIFRFWFQgU0VBUkNIIFRFTVBMQVRFICN9Cit7 JSBpZiBpbml0ICV9CitTRUxFQ1QKKyAgICBwcm9uYW1lLCBuc3BuYW1lCitG Uk9NCisgICAgcGdfcHJvYyBKT0lOIHBnX25hbWVzcGFjZSBuIE9OIG4ub2lk PXByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9yZXR0eXBlPTIyODEgYW5k IHByb2FyZ3R5cGVzPScyMjgxJworT1JERVIgQlkKKyAgICBwcm9uYW1lOwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190 ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMv bm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1w bGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODUwMjQ3ZQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMv dGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvbm9kZXMuc3Fs CkBAIC0wLDAgKzEsMTIgQEAKK1NFTEVDVAorICAgIG9pZCwgdG1wbG5hbWUg YXMgbmFtZQorRlJPTQorICAgIHBnX3RzX3RlbXBsYXRlIHRtcGwKK1dIRVJF Cit7JSBpZiBzY2lkICV9CisgICAgdG1wbC50bXBsbmFtZXNwYWNlID0ge3tz Y2lkfX06Ok9JRAoreyUgZWxpZiB0aWQgJX0KKyAgICB0bXBsLm9pZCA9IHt7 dGlkfX06Ok9JRAoreyUgZW5kaWYgJX0KKworT1JERVIgQlkgbmFtZQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0ZS9z cWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9w bHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjJiNWE5NWYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUv c3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMjcgQEAK K3sjIEdldCBwcm9wZXJ0aWVzIGZvciBGVFMgVEVNUExBVEUgI30KK1NFTEVD VAorICAgIHRtcGwub2lkLAorICAgIHRtcGwudG1wbG5hbWUgYXMgbmFtZSwK KyAgICB0bXBsLnRtcGxpbml0LAorICAgIHRtcGwudG1wbGxleGl6ZSwKKyAg ICBkZXNjcmlwdGlvbiwKKyAgICB0bXBsLnRtcGxuYW1lc3BhY2UgQVMgc2No ZW1hCitGUk9NCisgICAgcGdfdHNfdGVtcGxhdGUgdG1wbAorICAgIExFRlQg T1VURVIgSk9JTiBwZ19kZXNjcmlwdGlvbiBkZXMKK09OCisgICAgKAorICAg IGRlcy5vYmpvaWQ9dG1wbC5vaWQKKyAgICBBTkQgZGVzLmNsYXNzb2lkPSdw Z190c190ZW1wbGF0ZSc6OnJlZ2NsYXNzCisgICAgKQorV0hFUkUKK3slIGlm IHNjaWQgJX0KKyAgICB0bXBsLnRtcGxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6 T0lECit7JSBlbGlmIG5hbWUgJX0KKyAgICB0bXBsLnRtcGxuYW1lID0ge3tu YW1lfHF0TGl0ZXJhbH19Cit7JSBlbmRpZiAlfQoreyUgaWYgdGlkICV9Cisg ICAgQU5EIHRtcGwub2lkID0ge3t0aWR9fTo6T0lECit7JSBlbmRpZiAlfQor T1JERVIgQlkKKyAgICBuYW1lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls ZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90 ZW1wbGF0ZXMvZnRzX3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy90ZW1wbGF0ZXMvZnRz X3RlbXBsYXRlL3NxbC85LjFfcGx1cy9zY2hlbWEuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJmN2RkYjMKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NjaGVtYS5zcWwKQEAgLTAs MCArMSwxOSBAQAoreyMgU0NIRU1BIG5hbWUgRkVUQ0ggc3RhdGVtZW50ICN9 Cit7JSBpZiBkYXRhLnNjaGVtYSAlfQorU0VMRUNUCisgICAgbnNwbmFtZQor RlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7e2Rh dGEuc2NoZW1hfX06Ok9JRAorCit7JSBlbGlmIGRhdGEuaWQgJX0KK1NFTEVD VAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UgbnNwCisg ICAgTEVGVCBKT0lOIHBnX3RzX3RlbXBsYXRlIHRzCisgICAgT04gdHMudG1w bG5hbWVzcGFjZSA9IG5zcC5vaWQKK1dIRVJFCisgICAgdHMub2lkID0ge3tk YXRhLmlkfX06Ok9JRAoreyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0IGVu ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVt cGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3Nx bC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRl cy9mdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzL3NxbC5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY2MTA3OAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxh dGVzL2Z0c190ZW1wbGF0ZS9zcWwvOS4xX3BsdXMvc3FsLnNxbApAQCAtMCww ICsxLDQxIEBACit7IyBSZXZlcnNlIGVuZ2luZWVyZWQgc3FsIGZvciBGVFMg VEVNUExBVEUgI30KK1NFTEVDVAorICAgIGFycmF5X3RvX3N0cmluZyhhcnJh eV9hZ2coc3FsKSwgRSdcblxuJykgYXMgc3FsCitGUk9NCisgICAgKAorICAg IFNFTEVDVAorICAgICAgICBFJy0tIFRleHQgU2VhcmNoIFRlbXBsYXRlOiAn IHx8IG5zcG5hbWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1lIHx8CisgICAg ICAgIEUnXG5cbi0tIERST1AgVEVYVCBTRUFSQ0ggVEVNUExBVEUgJyB8fCBu c3BuYW1lIHx8IEUnLicgfHwgdG1wbC50bXBsbmFtZSB8fAorICAgICAgICBF J1xuXG5DUkVBVEUgVEVYVCBTRUFSQ0ggVEVNUExBVEUgJyB8fCBuc3BuYW1l IHx8IEUnLicgfHwgIHRtcGwudG1wbG5hbWUgfHwgRScgKFxuJyB8fAorICAg ICAgICBDQVNFCisgICAgICAgICAgICBXSEVOIHRtcGwudG1wbGluaXQgIT0g Jy0nOjpyZWdjbGFzcyBUSEVOIEUnICAgIElOSVQgPSAnIHx8IHRtcGwudG1w bGluaXQgfHwgRScsXG4nCisgICAgICAgICAgICBFTFNFICcnIEVORCB8fAor ICAgICAgICBFJyAgICBMRVhJWkUgPSAnIHx8IHRtcGwudG1wbGxleGl6ZSB8 fCBFJ1xuKTsnIHx8CisgICAgICAgIENBU0UKKyAgICAgICAgICAgIFdIRU4g YS5kZXNjcmlwdGlvbiBJUyBOT1QgTlVMTCBUSEVOCisgICAgICAgICAgICAg ICAgRSdcblxuQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSAnIHx8 IG5zcG5hbWUgfHwgRScuJyB8fCB0bXBsLnRtcGxuYW1lIHx8CisgICAgICAg ICAgICAgICAgRScgSVMgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwo ZGVzY3JpcHRpb24pIHx8IEUnOycKKyAgICAgICAgICAgIEVMU0UgJycgIEVO RCBhcyBzcWwKK0ZST00KKyAgICBwZ190c190ZW1wbGF0ZSB0bXBsCisgICAg TEVGVCBKT0lOICgKKyAgICAgICAgU0VMRUNUCisgICAgICAgICAgICBkZXMu ZGVzY3JpcHRpb24gYXMgZGVzY3JpcHRpb24sCisgICAgICAgICAgICBkZXMu b2Jqb2lkIGFzIGRlc2NvaWQKKyAgICAgICAgRlJPTQorICAgICAgICAgICAg cGdfZGVzY3JpcHRpb24gZGVzCisgICAgICAgIFdIRVJFCisgICAgICAgICAg ICBkZXMub2Jqb2lkPXt7dGlkfX06Ok9JRCBBTkQgZGVzLmNsYXNzb2lkPSdw Z190c190ZW1wbGF0ZSc6OnJlZ2NsYXNzCisgICAgKSBhIE9OIChhLmRlc2Nv aWQgPSB0bXBsLm9pZCkKKyAgICBMRUZUIEpPSU4gKAorICAgICAgICBTRUxF Q1QKKyAgICAgICAgICAgIG5zcG5hbWUsCisgICAgICAgICAgICBuc3Aub2lk IGFzIG5vaWQKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgcGdfbmFtZXNw YWNlIG5zcAorICAgICAgICBXSEVSRQorICAgICAgICAgICAgb2lkID0ge3tz Y2lkfX06Ok9JRAorICAgICkgYiBPTiAoYi5ub2lkID0gdG1wbC50bXBsbmFt ZXNwYWNlKQorV0hFUkUKKyAgICB0bXBsLm9pZD17e3RpZH19OjpPSUQKKykg YXMgYzsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNf dGVtcGxhdGUvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdHNfdGVtcGxhdGVzL3RlbXBsYXRlcy9mdHNfdGVtcGxhdGUvc3Fs LzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZTY0M2QyOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z0c190ZW1wbGF0ZXMvdGVtcGxhdGVzL2Z0c190ZW1wbGF0 ZS9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDIyIEBACit7 IyBVUERBVEUgc3RhdGVtZW50IGZvciBURVhUIFNFQVJDSCBURU1QTEFURSAj fQoreyUgaWYgZGF0YSAlfQoreyUgaWYgZGF0YS5uYW1lIGFuZCBkYXRhLm5h bWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIFRFWFQgU0VBUkNIIFRFTVBM QVRFIHt7Y29ubnxxdElkZW50KG9fZGF0YS5zY2hlbWEpfX0ue3tjb25ufHF0 SWRlbnQob19kYXRhLm5hbWUpfX0KKyAgICBSRU5BTUUgVE8ge3tkYXRhLm5h bWV9fTsKK3slIGVuZGlmICV9CisKK3sjaW4gY2FzZSBvZiByZW5hbWUsIHVz ZSBuZXcgZnRzIHRlbXBsYXRlIG5hbWUgI30KK3slIGlmIGRhdGEubmFtZSBh bmQgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9Cit7JSBzZXQgbmFtZSA9 IGRhdGEubmFtZSAlfQoreyUgZWxzZSAlfQoreyUgc2V0IG5hbWUgPSBvX2Rh dGEubmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc2NoZW1hIGFu ZCBkYXRhLnNjaGVtYSAhPSBvX2RhdGEuc2NoZW1hICV9CitBTFRFUiBURVhU IFNFQVJDSCBURU1QTEFURSB7e2Nvbm58cXRJZGVudChvX2RhdGEuc2NoZW1h KX19Lnt7Y29ubnxxdElkZW50KG5hbWUpfX0KKyAgICBTRVQgU0NIRU1BIHt7 ZGF0YS5zY2hlbWF9fTsKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRlc2Ny aXB0aW9uIGFuZCBkYXRhLmRlc2NyaXB0aW9uICE9IG9fZGF0YS5kZXNjcmlw dGlvbiAlfQorQ09NTUVOVCBPTiBURVhUIFNFQVJDSCBURU1QTEFURSB7e2Nv bm58cXRJZGVudChvX2RhdGEuc2NoZW1hKX19Lnt7Y29ubnxxdElkZW50KG5h bWUpfX0KKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9 fTsKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUK --001a114dcb02b07e37052e2534f4 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 --001a114dcb02b07e37052e2534f4--