Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aid3i-0005k9-DU for pgadmin-hackers@arkaria.postgresql.org; Wed, 23 Mar 2016 07:18:26 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aid3h-0004D7-S9 for pgadmin-hackers@arkaria.postgresql.org; Wed, 23 Mar 2016 07:18:25 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1aid3c-00045O-7F for pgadmin-hackers@postgresql.org; Wed, 23 Mar 2016 07:18:20 +0000 Received: from mail-lb0-x235.google.com ([2a00:1450:4010:c04::235]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aid3W-0001Ex-7J for pgadmin-hackers@postgresql.org; Wed, 23 Mar 2016 07:18:19 +0000 Received: by mail-lb0-x235.google.com with SMTP id bc4so4068838lbc.2 for ; Wed, 23 Mar 2016 00:18:13 -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=4rG6FoLav+ams0Z3wZyqeaoRAHfpck/Uxqfd5alwQY8=; b=OMx9aoIf54ohcjXR/ALGox8dDdxuKR1OiQwidGTcl8o+Kbkm6XIUU/Mhk2hYOtVuQX 0kaf3JJ06/OmtIhyg9lPVRm3+8fFn1amffqCxzChtKvrDFC9FG6LJlCUpfP3WKIlAEH3 p+RcySQGXE0g5y6sUq59Y6kak4pv7xRXUMhW5ARgFA7R9m9/6NpdZE+O80TcASRBLe4E ovF6H11BDBJEF26sbzIg2T8ZJrGF97QtYbe6d5uSLEhbM+304SzavPLZGYucy7MbRCQl Z3+TLSzaR78elg2/MjEsfVX/OdjPhzsAcYODABn+nlfN5uQM3RH/inYTsyR27Wb8g1Cl wO6g== 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=4rG6FoLav+ams0Z3wZyqeaoRAHfpck/Uxqfd5alwQY8=; b=fhrUeNoucKZYOc7RPFMuAsqgVI2PoP2Vz74W1AEOxogeFpszpNGlmUSv078yCkqavA vLWRwrqcyEaO5d3a+k/Gs+ZDAzphwq35JCO0byzekPj7zAxKK4dY5JH+CxdRkE6GjrF+ fb4FzJhXYXwltG0ww+tmxwUnPyxtw9JU/wRWp1Z8r7y+jFP2gvpCniX3GA/f1xJ8tcg3 VlXUetiabESvd6KdQo8VCiaSFgksbbGfYnIfPYIX5fqwpS9a2jznlEyjaZrJQCvX797X U8mKuO44FrbLZ4Ds3PtpAMXjT0HUGCeg7IurRH06takcG+dMFj7X1HOeh5gKs73QDyB7 NRZw== X-Gm-Message-State: AD7BkJKd1NKhQUG81+W8eNVFzSaTpd7OELJsoaBbfCy7XOy4ukQymZku5dC1FAajFKk+51M5M592OBOXysI1NQjP MIME-Version: 1.0 X-Received: by 10.112.72.135 with SMTP id d7mr546884lbv.126.1458717492378; Wed, 23 Mar 2016 00:18:12 -0700 (PDT) Received: by 10.25.159.85 with HTTP; Wed, 23 Mar 2016 00:18:12 -0700 (PDT) In-Reply-To: References: Date: Wed, 23 Mar 2016 12:48:12 +0530 Message-ID: Subject: Re: pgAdmin4 PATCH: Domain Module From: Khushboo Vashi To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c22a56f6a598052eb221d5 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 --001a11c22a56f6a598052eb221d5 Content-Type: multipart/alternative; boundary=001a11c22a56f6a592052eb221d3 --001a11c22a56f6a592052eb221d3 Content-Type: text/plain; charset=UTF-8 Hi, Please find attached updated patch for the Domains module. On Wed, Mar 16, 2016 at 9:40 PM, Dave Page wrote: > Hi > > On Wed, Mar 16, 2016 at 2:03 PM, Khushboo Vashi > wrote: > > Hi, > > > > Please find the updated Domain Module Patch. > > > > To test this patch, please apply Backgrid Textarea Cell Patch before > this. > > Thanks. I believe with the following fixes, we'll be done :-) > > - Default values should be auto-quoted when necessary (ie. strings, on > a text-based domain). > As per our discussion, this should leave unquoted. > - "System Domain?" should be in the General section, between owner and > comment. > Done > - The switches should use the same colouring/styling as other objects, e.g. > > options: { > 'onText': 'Yes', 'offText': 'No', > 'onColor': 'success', 'offColor': 'primary', > 'size': 'small' > } > Done > - Please remove the Schema property from the main properties tab (not > the properties dialogue). > Done > - No icon is show for Checks on the Dependents tab for a domain. > Done > - The add button on the Security Labels tab is spelt "Add". Why is > that? Other instances of this grid use "ADD" which is the default in > backform.pgadmin.js. > Done > - Dependencies on domain check constraints are listed as being on a > "Type" not a "Domain". > Done > - If adding a domain constraint using the grid on the Domain dialogue, > I cannot specify "NOT VALID". We need a checkbox for that in a narrow > columns at the end. Unchecking it for an existing constraint should be > the equivalent of doing "ALTER DOMAIN ... VALIDATE CONSTRAINT" > Done > - If I switch the "Don't Validate" switch on a constraint, there are > leading blank lines in the generated SQL. The same occurs when adding > a comment to a constraint. > Done > - I think we need to reverse the meaning of "Don't Validate" and > rename to match the "Valid?" field that's on the properties list. > Otherwise it's not clear they're the same thing. > Done > - s/Not Null/Not Null?/ > Done > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a11c22a56f6a592052eb221d3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find attached updated patch f= or the Domains module.

On Wed, Mar 16, 2016 at 9:40 PM, Dave Page <<= a href=3D"mailto:dpage@pgadmin.org" target=3D"_blank">dpage@pgadmin.org= > wrote:
Hi<= br>
On Wed, Mar 16, 2016 at 2:03 PM, Khushboo Vashi
<khushboo.vashi@enter= prisedb.com> wrote:
> Hi,
>
> Please find the updated Domain Module Patch.
>
> To test this patch, please apply Backgrid Textarea Cell Patch before t= his.

Thanks. I believe with the following fixes, we'll be done :-)

- Default values should be auto-quoted when necessary (ie. strings, on
a text-based domain).
As per our discussion, this should leave unquoted.
- "System Domain?" should be in the General section, between owne= r and comment.
Do= ne
- The switches should use the same colouring/styling as other objects, e.g.=

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 options: {
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'onText': 'Yes', = 'offText': 'No',
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'onColor': 'success&#= 39;, 'offColor': 'primary',
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'size': 'small' =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
Done=C2=A0
- Please remove the Schema property from the main properties tab (not
the properties dialogue).
Done=C2=A0
- No icon is show for Checks on the Dependents tab for a domain.
Done=C2=A0
- The add button on the Security Labels tab is spelt "Add". Why i= s
that? Other instances of this grid use "ADD" which is the default= in
backform.pgadmin.js.
Done
- Dependencies on domain check constraints are listed as being on a
"Type" not a "Domain".
Done
- If adding a domain constraint using the grid on the Domain dialogue,
I cannot specify "NOT VALID". We need a checkbox for that in a na= rrow
columns at the end. Unchecking it for an existing constraint should be
the equivalent of doing "ALTER DOMAIN ... VALIDATE CONSTRAINT"
Done
- If I switch the "Don't Validate" switch on a constraint, th= ere are
leading blank lines in the generated SQL. The same occurs when adding
a comment to a constraint.
Done
- I think we need to reverse the meaning of "Don't Validate" = and
rename to match the "Valid?" field that's on the properties l= ist.
Otherwise it's not clear they're the same thing.
Done
- s/Not Null/Not Null?/
Done


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

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

--001a11c22a56f6a592052eb221d3-- --001a11c22a56f6a598052eb221d5 Content-Type: text/x-patch; charset=US-ASCII; name="Domains_ver_6.patch" Content-Disposition: attachment; filename="Domains_ver_6.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_im4iprsv0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvX19pbml0X18u cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5pdF9fLnB5Cm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJkZjYwMGYKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL19faW5pdF9f LnB5CkBAIC0wLDAgKzEsODEwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCisiIiJJbXBsZW1lbnRzIHRoZSBEb21haW4g Tm9kZS4iIiIKKworaW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1wb3J0IHJl bmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwgcmVxdWVzdCwganNvbmlm eQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRleHQKK2Zyb20g cGdhZG1pbi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2Us IFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVy bmFsX3NlcnZlcl9lcnJvciwgZ29uZQorZnJvbSBwZ2FkbWluLmJyb3dzZXIu dXRpbHMgaW1wb3J0IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJy b3dzZXIuY29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUK K2ltcG9ydCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51 dGlscy5hamF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20g cGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20g Y29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hl bWFzLnV0aWxzIGltcG9ydCBcCisgICAgU2NoZW1hQ2hpbGRNb2R1bGUsIERh dGFUeXBlUmVhZGVyCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnV0aWxzIGltcG9ydCBcCisgICAgcGFy c2Vfc2VjX2xhYmVsc19mcm9tX2RiCitmcm9tIGZ1bmN0b29scyBpbXBvcnQg d3JhcHMKKworCitjbGFzcyBEb21haW5Nb2R1bGUoU2NoZW1hQ2hpbGRNb2R1 bGUpOgorICAgICIiIgorICAgIGNsYXNzIERvbWFpbk1vZHVsZShTY2hlbWFD aGlsZE1vZHVsZSk6CisKKyAgICAgICAgVGhpcyBjbGFzcyByZXByZXNlbnRz IFRoZSBEb21haW4gTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0t LS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAgICAt IEluaXRpYWxpemUgdGhlIERvbWFpbiBNb2R1bGUuCisKKyAgICAqIGdldF9u b2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAgICAgLSBHZW5lcmF0ZSB0 aGUgZG9tYWluIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICogc2NyaXB0X2xv YWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBkb21h aW4sIHdoZW4gc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQu CisgICAgIiIiCisKKyAgICBOT0RFX1RZUEUgPSAnZG9tYWluJworICAgIENP TExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJEb21haW5zIikKKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBz dXBlcihEb21haW5Nb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3 YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQorICAgICAgICBz ZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAg R2VuZXJhdGUgdGhlIGRvbWFpbiBjb2xsZWN0aW9uIG5vZGUuCisgICAgICAg ICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29s bGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg c2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2Fk IHRoZSBtb2R1bGUgc2NyaXB0IGZvciBkb21haW4sIHdoZW4gc2NoZW1hIG5v ZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAg ICAgICByZXR1cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisK KworYmx1ZXByaW50ID0gRG9tYWluTW9kdWxlKF9fbmFtZV9fKQorCisKK2Ns YXNzIERvbWFpblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRl cik6CisgICAgIiIiCisgICAgY2xhc3MgRG9tYWluVmlldworCisgICAgVGhp cyBjbGFzcyBpbmhlcml0cyBQR0NoaWxkTm9kZVZpZXcgdG8gZ2V0IHRoZSBk aWZmZXJlbnQgcm91dGVzIGZvcgorICAgIHRoZSBtb2R1bGUuIEFsc28sIGlu aGVyaXRzIERhdGFUeXBlUmVhZGVyIHRvIGdldCBkYXRhIHR5cGVzLgorCisg ICAgVGhlIGNsYXNzIGlzIHJlc3BvbnNpYmxlIHRvIENyZWF0ZSwgUmVhZCwg VXBkYXRlIGFuZCBEZWxldGUgb3BlcmF0aW9ucyBmb3IKKyAgICB0aGUgRG9t YWluLgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiB2YWxp ZGF0ZV9yZXF1ZXN0KGYpOgorICAgICAgLSBXb3JrcyBhcyBhIGRlY29yYXRv ci4KKyAgICAgICAgVmFsaWRhdGluZyByZXF1ZXN0IG9uIHRoZSByZXF1ZXN0 IG9mIGNyZWF0ZSwgdXBkYXRlIGFuZCBtb2RpZmllZCBTUUwuCisKKyAgICAq IG1vZHVsZV9qcygpOgorICAgICAgLSBMb2FkIEpTIGZpbGUgKGRvbWFpbnMu anMpIGZvciB0aGlzIG1vZHVsZS4KKworICAgICogY2hlY2tfcHJlY29uZGl0 aW9uKGYpOgorICAgICAgLSBXb3JrcyBhcyBhIGRlY29yYXRvci4KKyAgICAg IC0gIENoZWNrcyBkYXRhYmFzZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAgICAg IC0gIEF0dGFjaCBjb25uZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxhdGUgcGF0 aC4KKworICAgICogbGlzdChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkKToK KyAgICAgIC0gTGlzdCB0aGUgRG9tYWlucy4KKworICAgICogbm9kZXMoZ2lk LCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAtIFJldHVybnMgYWxsIHRoZSBE b21haW5zIHRvIGdlbmVyYXRlIE5vZGVzIGluIHRoZSBicm93c2VyLgorCisg ICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQpOgor ICAgICAgLSBSZXR1cm5zIHRoZSBEb21haW4gcHJvcGVydGllcy4KKworICAg ICogZ2V0X2NvbGxhdGlvbnMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZD1O b25lKToKKyAgICAgIC0gUmV0dXJucyBDb2xsYXRpb25zLgorCisgICAgKiBj cmVhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAtIENyZWF0ZXMg YSBuZXcgRG9tYWluIG9iamVjdC4KKworICAgICogdXBkYXRlKGdpZCwgc2lk LCBkaWQsIHNjaWQsIGRvaWQpOgorICAgICAgLSBVcGRhdGVzIHRoZSBEb21h aW4gb2JqZWN0LgorCisgICAgKiBkZWxldGUoZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgZG9pZCk6CisgICAgICAtIERyb3BzIHRoZSBEb21haW4gb2JqZWN0Lgor CisgICAgKiBzcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZD1Ob25lKToK KyAgICAgIC0gUmV0dXJucyB0aGUgU1FMIGZvciB0aGUgRG9tYWluIG9iamVj dC4KKworICAgICogbXNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkPU5v bmUpOgorICAgICAgLSBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAg ICAqIGdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIGRvaWQ9Tm9uZSk6 CisgICAgICAtIEdlbmVyYXRlcyB0aGUgU1FMIHN0YXRlbWVudHMgdG8gY3Jl YXRlL3VwZGF0ZSB0aGUgRG9tYWluIG9iamVjdC4KKworICAgICogZGVwZW5k ZW50cyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKKyAgICAgIC0gUmV0 dXJucyB0aGUgZGVwZW5kZW50cyBmb3IgdGhlIERvbWFpbiBvYmplY3QuCisK KyAgICAqIGRlcGVuZGVuY2llcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lk KToKKyAgICAgIC0gUmV0dXJucyB0aGUgZGVwZW5kZW5jaWVzIGZvciB0aGUg RG9tYWluIG9iamVjdC4KKworICAgICogdHlwZXMoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm5pZD1Ob25lKToKKyAgICAgIC0gUmV0dXJucyBEYXRhIFR5cGVz LgorICAgICIiIgorCisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVf dHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICdnaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6 ICdkaWQnfSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzY2lk J30KKyAgICBdCisgICAgaWRzID0gWworICAgICAgICB7J3R5cGUnOiAnaW50 JywgJ2lkJzogJ2RvaWQnfQorICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBk aWN0KHsKKyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0Jzog J3Byb3BlcnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAndXBk YXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAn Y3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7J2Rl bGV0ZSc6ICdkZWxldGUnfV0sCisgICAgICAgICdjaGlsZHJlbic6IFt7J2dl dCc6ICdjaGlsZHJlbid9XSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0Jzog J25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBb eydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6ICdt c3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6IFt7 J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6 IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRl bnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKKyAgICAgICAgJ21vZHVs ZS5qcyc6IFt7fSwge30sIHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwKKyAgICAg ICAgJ2dldF90eXBlcyc6IFt7J2dldCc6ICd0eXBlcyd9LCB7J2dldCc6ICd0 eXBlcyd9XSwKKyAgICAgICAgJ2dldF9jb2xsYXRpb25zJzogWworICAgICAg ICAgICAgeydnZXQnOiAnZ2V0X2NvbGxhdGlvbnMnfSwKKyAgICAgICAgICAg IHsnZ2V0JzogJ2dldF9jb2xsYXRpb25zJ30KKyAgICAgICAgXQorICAgIH0p CisKKyAgICBkZWYgdmFsaWRhdGVfcmVxdWVzdChmKToKKyAgICAgICAgIiIi CisgICAgICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAgICAgICBWYWxp ZGF0aW5nIHJlcXVlc3Qgb24gdGhlIHJlcXVlc3Qgb2YgY3JlYXRlLCB1cGRh dGUgYW5kIG1vZGlmaWVkIFNRTC4KKworICAgICAgICBSZXF1aXJlZCBBcmdz OgorICAgICAgICAgICAgICAgICAgICBuYW1lOiBOYW1lIG9mIHRoZSBEb21h aW4KKyAgICAgICAgICAgICAgICAgICAgb3duZXI6IERvbWFpbiBPd25lcgor ICAgICAgICAgICAgICAgICAgICBiYXNlbnNwOiBTY2hlbWEgTmFtZQorICAg ICAgICAgICAgICAgICAgICBiYXNldHlwZTogRGF0YSBUeXBlIG9mIHRoZSBE b21haW4KKworICAgICAgICBBYm92ZSBib3RoIHRoZSBhcmd1bWVudHMgd2ls bCBub3QgYmUgdmFsaWRhdGVkIGluIHRoZSB1cGRhdGUgYWN0aW9uLgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdy YXAoc2VsZiwgKiprd2FyZ3MpOgorCisgICAgICAgICAgICBkYXRhID0ge30K KyAgICAgICAgICAgIGlmIHJlcXVlc3QuZGF0YToKKyAgICAgICAgICAgICAg ICByZXEgPSBqc29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAg ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVxID0gcmVxdWVz dC5hcmdzIG9yIHJlcXVlc3QuZm9ybQorCisgICAgICAgICAgICBpZiAnZG9p ZCcgbm90IGluIGt3YXJnczoKKyAgICAgICAgICAgICAgICByZXF1aXJlZF9h cmdzID0gWworICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAg ICAgICAgICAgICAgICdiYXNldHlwZScKKyAgICAgICAgICAgICAgICBdCisK KyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6Cisg ICAgICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gcmVxIG9yIHJlcVth cmddID09ICcnOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1 Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcm1z Zz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi Q291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCVzKS4iICUgYXJnCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg bGlzdF9wYXJhbXMgPSBbXQorICAgICAgICAgICAgICAgIGlmIHJlcXVlc3Qu bWV0aG9kID09ICdHRVQnOgorICAgICAgICAgICAgICAgICAgICBsaXN0X3Bh cmFtcyA9IFsnY29uc3RyYWludHMnLCAnc2VjbGFiZWxzJ10KKworICAgICAg ICAgICAgICAgIGZvciBrZXkgaW4gcmVxOgorICAgICAgICAgICAgICAgICAg ICBpZiBrZXkgaW4gbGlzdF9wYXJhbXMgYW5kIHJlcVtrZXldICE9ICcnIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgcmVxW2tleV0gaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICAjIENvdmVydHMg c3RyaW5nIGludG8gcHl0aG9uIGxpc3QgYXMgZXhwZWN0ZWQuCisgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBqc29uLmxvYWRzKHJlcVtr ZXldKQorICAgICAgICAgICAgICAgICAgICBlbGlmIGtleSA9PSAndHlwbm90 bnVsbCc6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBU cnVlIGlmIHJlcVtrZXldID09ICd0cnVlJyBvciByZXFba2V5XSBpc1wKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRydWUgZWxzZVwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoRmFsc2UgaWYgcmVxW2tleV0gPT0gJ2ZhbHNlJyBv ciByZXFba2V5XSBpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlIGVsc2UgJycp CisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhW2tleV0gPSByZXFba2V5XQorCisgICAgICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAg ICAgICAgICAgIHNlbGYucmVxdWVzdCA9IGRhdGEKKyAgICAgICAgICAgIHJl dHVybiBmKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFw CisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAgICAiIiIKKyAg ICAgICAgTG9hZCBKUyBmaWxlIChkb21haW5zLmpzKSBmb3IgdGhpcyBtb2R1 bGUuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25z ZSgKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICAgICAiZG9tYWlucy9qcy9kb21haW5zLmpzIiwKKyAgICAgICAgICAgICAg ICBfPWdldHRleHQKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAyMDAs IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9 CisgICAgICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6 CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4K KyAgICAgICAgQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVzLgor ICAgICAgICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRl IHBhdGguCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMoZikKKyAgICAg ICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHNl bGYgPSBhcmdzWzBdCisgICAgICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVy KFBHX0RFRkFVTFRfRFJJVkVSKQorICAgICAgICAgICAgc2VsZi5tYW5hZ2Vy ID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQor ICAgICAgICAgICAgIyBHZXQgZGF0YWJhc2UgY29ubmVjdGlvbgorICAgICAg ICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlk PWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICBzZWxmLnF0SWRlbnQgPSBk cml2ZXIucXRJZGVudAorCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25u LmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25k aXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdldHRleHQo IkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIpCisg ICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1h bmFnZXIudmVyc2lvbgorICAgICAgICAgICAgc2VydmVyX3R5cGUgPSBzZWxm Lm1hbmFnZXIuc2VydmVyX3R5cGUKKworICAgICAgICAgICAgIyB3ZSB3aWxs IHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cworICAgICAgICAg ICAgaWYgdmVyID49IDkwMjAwOgorICAgICAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICdkb21haW5zL3NxbC85LjJfcGx1cycKKyAgICAgICAg ICAgIGVsaWYgdmVyID49IDkwMTAwOgorICAgICAgICAgICAgICAgIHNlbGYu dGVtcGxhdGVfcGF0aCA9ICdkb21haW5zL3NxbC85LjFfcGx1cycKKworICAg ICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAg IHJldHVybiB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAg ZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CisgICAgICAg ICIiIgorICAgICAgICBMaXN0IHRoZSBEb21haW5zLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAi IiIKKworICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ25vZGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkKQorICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAgcmV0dXJu IGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNbJ3Jv d3MnXSwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJl dHVybnMgYWxsIHRoZSBEb21haW5zIHRvIGdlbmVyYXRlIE5vZGVzIGluIHRo ZSBicm93c2VyLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJZAorICAgICAgICAiIiIKKworICAgICAgICByZXMgPSBb XQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ25vZGUuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkKQorICAgICAgICBzdGF0dXMs IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Ig cm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQo CisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJv d3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAor ICAgICAgICAgICAgICAgICAgICBzY2lkLAorICAgICAgICAgICAgICAgICAg ICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNv bi1kb21haW4iCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMs CisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKKyAgICAgICAgIiIiCisgICAg ICAgIFJldHVybnMgdGhlIERvbWFpbiBwcm9wZXJ0aWVzLgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAg ICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICIiIgorCisgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2lkPXNjaWQsIGRvaWQ9ZG9pZCkKKyAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAg ICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGlm IGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBn b25lKGdldHRleHQoIiIiCitDb3VsZCBub3QgZmluZCB0aGUgZG9tYWluIGlu IHRoZSBkYXRhYmFzZS4KK0l0IG1heSBoYXZlIGJlZW4gcmVtb3ZlZCBieSBh bm90aGVyIHVzZXIgb3IKK3NoaWZ0ZWQgdG8gdGhlIGFub3RoZXIgc2NoZW1h LgorIiIiKSkKKworICAgICAgICBkYXRhID0gcmVzWydyb3dzJ11bMF0KKwor ICAgICAgICAjIEdldCBUeXBlIExlbmd0aCBhbmQgUHJlY2lzaW9uCisgICAg ICAgIGRhdGEudXBkYXRlKHNlbGYuX3BhcnNlX3R5cGUoZGF0YVsnZnVsbHR5 cGUnXSkpCisKKyAgICAgICAgIyBHZXQgRG9tYWluIENvbnN0cmFpbnRzCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdnZXRfY29uc3RyYWludHMuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9pZD1kb2lkKQorICAgICAgICBzdGF0 dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZGF0YVsn Y29uc3RyYWludHMnXSA9IHJlc1sncm93cyddCisKKyAgICAgICAgIyBHZXQg Zm9ybWF0dGVkIFNlY3VyaXR5IExhYmVscworICAgICAgICBpZiAnc2VjbGFi ZWxzJyBpbiBkYXRhOgorICAgICAgICAgICAgZGF0YS51cGRhdGUocGFyc2Vf c2VjX2xhYmVsc19mcm9tX2RiKGRhdGFbJ3NlY2xhYmVscyddKSkKKworICAg ICAgICAjIFNldCBTeXN0ZW0gRG9tYWluIFN0YXR1cworICAgICAgICBkYXRh WydzeXNkb21haW4nXSA9IEZhbHNlCisgICAgICAgIGlmIGRvaWQgPD0gc2Vs Zi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFzdHN5c29pZCddOgorICAg ICAgICAgICAgZGF0YVsnc3lzZG9tYWluJ10gPSBUcnVlCisKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1k YXRhLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAg ICBkZWYgX3BhcnNlX3R5cGUoc2VsZiwgYmFzZXR5cGUpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyBUeXBlIGFuZCBEYXRhIFR5cGUgZnJvbSB0 aGUgYmFzZXR5cGUuCisgICAgICAgICIiIgorICAgICAgICB0eXBfbGVuID0g JycKKyAgICAgICAgdHlwX3ByZWNpc2lvbiA9ICcnCisKKyAgICAgICAgIyBU aGUgTGVuZ3RoIGFuZCB0aGUgcHJlY2lzaW9uIG9mIHRoZSBEYXRhdHlwZSBz aG91bGQgYmUgc2VwYXJhdGUuCisgICAgICAgICMgVGhlIEZvcm1hdCB3ZSBn ZXR0aW5nIGZyb20gZGF0YWJhc2UgaXM6IG51bWVyaWMoMSwxKQorICAgICAg ICAjIFNvLCB3ZSBuZWVkIHRvIHNlcGFyYXRlIExlbmd0aDogMSwgUHJlY2lz aW9uOiAxCisKKyAgICAgICAgaWYgYmFzZXR5cGUgIT0gJycgYW5kIGJhc2V0 eXBlLmZpbmQoIigiKSA+IDA6CisgICAgICAgICAgICBzdWJzdHIgPSBiYXNl dHlwZVtiYXNldHlwZS5maW5kKCIoIikgKyAxOmxlbigKKyAgICAgICAgICAg ICAgIGJhc2V0eXBlKSAtIDFdCisgICAgICAgICAgICB0eXBsZW4gPSBzdWJz dHIuc3BsaXQoIiwiKQorICAgICAgICAgICAgaWYgbGVuKHR5cGxlbikgPiAx OgorICAgICAgICAgICAgICAgIHR5cF9sZW4gPSB0eXBsZW5bMF0KKyAgICAg ICAgICAgICAgICB0eXBfcHJlY2lzaW9uID0gdHlwbGVuWzFdCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHR5cF9sZW4gPSB0eXBsZW4K KyAgICAgICAgICAgICAgICB0eXBfcHJlY2lzaW9uID0gJycKKworICAgICAg ICByZXR1cm4geyd0eXBsZW4nOiB0eXBfbGVuLCAncHJlY2lzaW9uJzogdHlw X3ByZWNpc2lvbn0KKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgZ2V0X2NvbGxhdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg ZG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgQ29s bGF0aW9ucy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lk OiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRvaWQ6IERvbWFpbiBJZAorICAg ICAgICAiIiIKKworICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFs dWUnOiAnJ31dCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn Z2V0X2NvbGxhdGlvbnMuc3FsJ10pKQorICAgICAgICAgICAgc3RhdHVzLCBy c2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAg ICAgICBmb3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgICAg ICByZXMuYXBwZW5kKHsnbGFiZWwnOiByb3dbJ2NvcHlfY29sbGF0aW9uJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogcm93Wydj b3B5X2NvbGxhdGlvbiddfQorICAgICAgICAgICAgICAgICAgICAgICAgICAg KQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhj ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgdHlwZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy bnMgdGhlIERhdGEgVHlwZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5j dGlvbiBJZAorICAgICAgICAiIiIKKworICAgICAgICBjb25kaXRpb24gPSAi IiJ0eXBpc2RlZmluZWQgQU5EIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcs ICdlJywgJ3InKQorQU5EIE5PVCBFWElTVFMgKFNFTEVDVCAxIEZST00gcGdf Y2xhc3MgV0hFUkUgcmVsbmFtZXNwYWNlPXR5cG5hbWVzcGFjZQorQU5EIHJl bG5hbWUgPSB0eXBuYW1lIEFORCByZWxraW5kICE9ICdjJykgQU5ECisodHlw bmFtZSBOT1QgTElLRSAnXyUnIE9SIE5PVCBFWElTVFMgKFNFTEVDVCAxIEZS T00gcGdfY2xhc3MgV0hFUkUKK3JlbG5hbWVzcGFjZT10eXBuYW1lc3BhY2Ug QU5EIHJlbG5hbWUgPSBzdWJzdHJpbmcodHlwbmFtZSBGUk9NIDIpOjpuYW1l CitBTkQgcmVsa2luZCAhPSAnYycpKSIiIgorCisgICAgICAgIGlmIHNlbGYu Ymx1ZXByaW50LnNob3dfc3lzdGVtX29iamVjdHM6CisgICAgICAgICAgICBj b25kaXRpb24gKz0gIiBBTkQgbnNwLm5zcG5hbWUgIT0gJ2luZm9ybWF0aW9u X3NjaGVtYSciCisKKyAgICAgICAgIyBHZXQgVHlwZXMKKyAgICAgICAgc3Rh dHVzLCB0eXBlcyA9IHNlbGYuZ2V0X3R5cGVzKHNlbGYuY29ubiwgY29uZGl0 aW9uKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXR5cGVzKQor CisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICBkYXRhPXR5cGVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgQHZhbGlk YXRlX3JlcXVlc3QKKyAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBk aWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlcyBhIG5l dyBEb21haW4gb2JqZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2 ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAg ICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZG9pZDogRG9tYWlu IElkCisKKyAgICAgICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAgICAgIG5h bWU6IERvbWFpbiBOYW1lCisgICAgICAgICAgICBvd25lcjogT3duZXIgTmFt ZQorICAgICAgICAgICAgYmFzZW5zcDogU2NoZW1hIE5hbWUKKyAgICAgICAg ICAgIGJhc2V0eXBlOiBEb21haW4gQmFzZSBUeXBlCisKKyAgICAgICAgUmV0 dXJuczoKKyAgICAgICAgICAgIERvbWFpbiBvYmplY3QgaW4ganNvbiBmb3Jt YXQuCisgICAgICAgICIiIgorCisgICAgICAgIGRhdGEgPSBzZWxmLnJlcXVl c3QKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3RhdHVzLCBTUUwgPSBz ZWxmLmdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQpCisKKyAgICAgICAg ICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisKKyAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNR TCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgICAgICMgV2UgbmVlZCBvaWQgdG8gdG8gYWRkIG9iamVj dCBpbiB0cmVlIGF0IGJyb3dzZXIsIGJlbG93IHNxbCB3aWxsCisgICAgICAg ICAgICAjIGdpdmVzIHRoZSBzYW1lCisgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dl dF9vaWQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJhc2Vuc3A9ZGF0YVsnYmFzZW5zcCddLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIG5hbWU9ZGF0YVsnbmFtZSddKQorICAgICAg ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5 KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgICAgIGRvaWQsIHNjaWQgPSByZXNbJ3Jvd3MnXVsw XQorCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAg ICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9k ZSgKKyAgICAgICAgICAgICAgICAgICAgZG9pZCwKKyAgICAgICAgICAgICAg ICAgICAgc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmFtZSdd LAorICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLWRvbWFpbiIKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAgICBEcm9w cyB0aGUgRG9tYWluIG9iamVjdC4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRvaWQ6IERv bWFpbiBJZAorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLmNtZCA9 PSAnZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2NhZGUg b3BlcmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAgICAg ICBlbHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAgICAg ICAgdHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUuc3FsJ10pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwg ZG9pZD1kb2lkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIG5hbWUsIGJh c2Vuc3AgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2RlbGV0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmFtZT1uYW1lLCBiYXNlbnNwPWJhc2Vuc3AsIGNhc2NhZGU9Y2Fz Y2FkZSkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAg ICAgICAgICAgICAgIGluZm89Z2V0dGV4dCgiRG9tYWluIGRyb3BwZWQiKSwK KyAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAgICAgICAgICAgICAg J2lkJzogZG9pZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lk LAorICAgICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAg ICAgICAgICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAn ZGlkJzogZGlkCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQor CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUp KQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIEB2YWxpZGF0ZV9y ZXF1ZXN0CisgICAgZGVmIHVwZGF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCBkb2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIFVwZGF0ZXMgdGhl IERvbWFpbiBvYmplY3QuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBkb2lkOiBEb21haW4g SWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgc3RhdHVzLCBTUUwgPSBzZWxm LmdldF9zcWwoZ2lkLCBzaWQsIHNlbGYucmVxdWVzdCwgc2NpZCwgZG9pZCkK KworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisKKyAgICAg ICAgdHJ5OgorICAgICAgICAgICAgaWYgU1FMOgorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgICAgICMgR2V0IFNjaGVtYSBJZAorICAg ICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2lkPWRvaWQp CisgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIHNj aWQgPSByZXNbJ3Jvd3MnXVswXVsnc2NpZCddCisKKyAgICAgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg ICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89IkRv bWFpbiB1cGRhdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17Cisg ICAgICAgICAgICAgICAgICAgICAgICAnaWQnOiBkb2lkLAorICAgICAgICAg ICAgICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICdnaWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzog ZGlkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAp CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nl c3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1 cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgICAgICdpZCc6IGRvaWQsCisgICAgICAgICAgICAgICAg ICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAgICAgICAgICAg ICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2dpZCc6 IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQKKyAg ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICkKKworICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9uZSk6CisgICAgICAgICIiIgor ICAgICAgICBSZXR1cm5zIHRoZSBTUUwgZm9yIHRoZSBEb21haW4gb2JqZWN0 LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAg ICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJZAorICAgICAgICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICIi IgorCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCwgZG9pZD1kb2lkKQor ICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qo U1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorICAgICAgICBkYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAj IEdldCBUeXBlIExlbmd0aCBhbmQgUHJlY2lzaW9uCisgICAgICAgIGRhdGEu dXBkYXRlKHNlbGYuX3BhcnNlX3R5cGUoZGF0YVsnZnVsbHR5cGUnXSkpCisK KyAgICAgICAgIyBHZXQgRG9tYWluIENvbnN0cmFpbnRzCisgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdnZXRfY29uc3RyYWludHMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZG9pZD1kb2lkKQorICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgZGF0YVsnY29uc3RyYWlu dHMnXSA9IHJlc1sncm93cyddCisKKyAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyZWF0ZS5zcWwn XSksIGRhdGE9ZGF0YSkKKworICAgICAgICBzcWxfaGVhZGVyID0gIiIiLS0g RE9NQUlOOiB7MH0KKworLS0gRFJPUCBET01BSU4gezB9OworCisiIiIuZm9y bWF0KGRhdGFbJ2Jhc2Vuc3AnXSArICcuJyArIGRhdGFbJ25hbWUnXSkKKwor ICAgICAgICBTUUwgPSBzcWxfaGVhZGVyICsgU1FMCisKKyAgICAgICAgcmV0 dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMLnN0cmlwKCdcbicpKQor CisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIEB2YWxpZGF0ZV9yZXF1 ZXN0CisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwg ZG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhl IG1vZGlmaWVkIFNRTC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRvaWQ6IERvbWFpbiBJ ZAorCisgICAgICAgIFJlcXVpcmVkIEFyZ3M6CisgICAgICAgICAgICBuYW1l OiBEb21haW4gTmFtZQorICAgICAgICAgICAgb3duZXI6IE93bmVyIE5hbWUK KyAgICAgICAgICAgIGJhc2Vuc3A6IFNjaGVtYSBOYW1lCisgICAgICAgICAg ICBiYXNldHlwZTogRG9tYWluIEJhc2UgVHlwZQorCisgICAgICAgIFJldHVy bnM6CisgICAgICAgICAgICBTUUwgc3RhdGVtZW50cyB0byBjcmVhdGUvdXBk YXRlIHRoZSBEb21haW4uCisgICAgICAgICIiIgorCisgICAgICAgIHN0YXR1 cywgU1FMID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBzZWxmLnJlcXVlc3Qs IHNjaWQsIGRvaWQpCisKKyAgICAgICAgaWYgU1FMOgorICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBk YXRhPVNRTCwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gU1FM CisKKyAgICBkZWYgZ2V0X3NxbChzZWxmLCBnaWQsIHNpZCwgZGF0YSwgc2Np ZCwgZG9pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRl cyB0aGUgU1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0ZSB0aGUgRG9t YWluLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNj aGVtYSBJZAorICAgICAgICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAg ICIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGRvaWQgaXMg bm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVy dGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNjaWQ9c2NpZCwgZG9pZD1kb2lkKQorICAgICAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisK KyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICBvbGRfZGF0YSA9IHJl c1sncm93cyddWzBdCisKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0YSkKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBs YXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JlYXRl LnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YT1kYXRhKQorICAgICAgICAgICAgcmV0dXJuIFRydWUsIFNRTC5z dHJpcCgnXG4nKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK KyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGRvaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp cyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4 IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRG9tYWluIG5vZGUuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICAgICBkb2lkOiBEb21haW4gSWQKKyAgICAgICAgIiIiCisgICAg ICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhz ZWxmLmNvbm4sIGRvaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVudHNfcmVzdWx0 LAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAg ICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVu ZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBl bmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZv ciB0aGUgRG9tYWluIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAg ICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBkb2lkOiBEb21h aW4gSWQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1 bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCBkb2lkKQor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKK0RvbWFpblZp ZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL19f aW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29u c3RyYWludHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZDIxN2U2OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL19faW5pdF9f LnB5CkBAIC0wLDAgKzEsNjg3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisj CisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1 bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCisiIiJJbXBsZW1lbnRzIHRoZSBEb21haW4g Q29uc3RyYWludCBNb2R1bGUuIiIiCisKK2ltcG9ydCBqc29uCitmcm9tIGZs YXNrIGltcG9ydCByZW5kZXJfdGVtcGxhdGUsIG1ha2VfcmVzcG9uc2UsIHJl cXVlc3QsIGpzb25pZnkKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBn ZXR0ZXh0Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9q c29uX3Jlc3BvbnNlLCBcCisgICAgbWFrZV9yZXNwb25zZSBhcyBhamF4X3Jl c3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IKK2Zyb20gcGdhZG1pbi5i cm93c2VyLnV0aWxzIGltcG9ydCBQR0NoaWxkTm9kZVZpZXcKK2Zyb20gcGdh ZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2Rl TW9kdWxlCitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMu c2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy5kb21haW5zIFwKKyAgICBhcyBk b21haW5zCitmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29u ZGl0aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGlt cG9ydCBnZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVM VF9EUklWRVIKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworCisKK2Ns YXNzIERvbWFpbkNvbnN0cmFpbnRNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1 bGUpOgorICAgICIiIgorICAgIGNsYXNzIERvbWFpbkNvbnN0cmFpbnRNb2R1 bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgorCisgICAgICAgIFRoaXMgY2xh c3MgcmVwcmVzZW50cyBUaGUgRG9tYWluIENvbnN0cmFpbnQgTW9kdWxlLgor CisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygq YXJncywgKiprd2FyZ3MpCisgICAgICAtIEluaXRpYWxpemUgdGhlIERvbWFp biBDb25zdHJhaW50IE1vZHVsZS4KKworICAgICogZ2V0X25vZGVzKGdpZCwg c2lkLCBkaWQsIHNjaWQpCisgICAgICAtIEdlbmVyYXRlIHRoZSBEb21haW4g Q29uc3RyYWludCBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5v ZGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gUmV0dXJucyBEb21h aW4gQ29uc3RyYWludCBub2RlIGFzIGxlYWYgbm9kZS4KKworICAgICogc2Ny aXB0X2xvYWQoKQorICAgICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZv ciB0aGUgRG9tYWluIENvbnN0cmFpbnQsIHdoZW4gYW55IG9mIHRoZQorICAg ICAgICBEb21haW4gbm9kZSBpcyBpbml0aWFsaXplZC4KKyAgICAiIiIKKyAg ICBOT0RFX1RZUEUgPSAnZG9tYWluLWNvbnN0cmFpbnRzJworICAgIENPTExF Q1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJEb21haW4gQ29uc3RyYWludHMiKQor CisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Cisg ICAgICAgIHN1cGVyKERvbWFpbkNvbnN0cmFpbnRNb2R1bGUsIHNlbGYpLl9f aW5pdF9fKCphcmdzLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVy ID0gTm9uZQorICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICBk ZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIERvbWFpbiBD b25zdHJhaW50IGNvbGxlY3Rpb24gbm9kZS4KKyAgICAgICAgIiIiCisgICAg ICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25v ZGUoZG9pZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lub2Rl KHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBEb21haW4g Q29uc3RyYWludCBub2RlIGFzIGxlYWYgbm9kZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVm IHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9h ZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3IgdGhlIERvbWFpbiBDb25zdHJhaW50 LCB3aGVuIGFueSBvZiB0aGUKKyAgICAgICAgRG9tYWluIG5vZGUgaXMgaW5p dGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gZG9tYWlu cy5Eb21haW5Nb2R1bGUuTk9ERV9UWVBFCisKKyAgICBAcHJvcGVydHkKKyAg ICBkZWYgY3Nzc25pcHBldHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAg ICBSZXR1cm5zIGEgc25pcHBldCBvZiBjc3MgdG8gaW5jbHVkZSBpbiB0aGUg cGFnZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAg ICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAg ICJkb21haW4tY29uc3RyYWludHMvY3NzL2RvbWFpbi1jb25zdHJhaW50cy5j c3MiLAorICAgICAgICAgICAgICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2Rl X3R5cGUKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAg IF0KKworCisKK2JsdWVwcmludCA9IERvbWFpbkNvbnN0cmFpbnRNb2R1bGUo X19uYW1lX18pCisKKworY2xhc3MgRG9tYWluQ29uc3RyYWludFZpZXcoUEdD aGlsZE5vZGVWaWV3KToKKyAgICAiIiIKKyAgICBjbGFzcyBEb21haW5Db25z dHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgorCisgICAgVGhpcyBjbGFz cyBpbmhlcml0cyBQR0NoaWxkTm9kZVZpZXcgdG8gZ2V0IHRoZSBkaWZmZXJl bnQgcm91dGVzIGZvcgorICAgIHRoZSBtb2R1bGUuCisKKyAgICBUaGUgY2xh c3MgaXMgcmVzcG9uc2libGUgdG8gQ3JlYXRlLCBSZWFkLCBVcGRhdGUgYW5k IERlbGV0ZSBvcGVyYXRpb25zIGZvcgorICAgIHRoZSBEb21haW4gQ29uc3Ry YWludC4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorCisgICAgKiBt b2R1bGVfanMoKToKKyAgICAgIC0gTG9hZCBKUyBmaWxlIChkb21haW4tY29u c3RyYWludHMuanMpIGZvciB0aGlzIG1vZHVsZS4KKworICAgICogY2hlY2tf cHJlY29uZGl0aW9uKGYpOgorICAgICAgLSBXb3JrcyBhcyBhIGRlY29yYXRv ci4KKyAgICAgIC0gIENoZWNrcyBkYXRhYmFzZSBjb25uZWN0aW9uIHN0YXR1 cy4KKyAgICAgIC0gIEF0dGFjaCBjb25uZWN0aW9uIG9iamVjdCBhbmQgdGVt cGxhdGUgcGF0aC4KKworICAgICogbGlzdChnaWQsIHNpZCwgZGlkLCBzY2lk LCBkb2lkKToKKyAgICAgIC0gTGlzdCB0aGUgRG9tYWluIENvbnN0cmFpbnRz LgorCisgICAgKiBub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAg IC0gUmV0dXJucyBhbGwgdGhlIERvbWFpbiBDb25zdHJhaW50cyB0byBnZW5l cmF0ZSBOb2RlcyBpbiB0aGUgYnJvd3Nlci4KKworICAgICogcHJvcGVydGll cyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKKyAgICAgIC0gUmV0dXJu cyB0aGUgRG9tYWluIENvbnN0cmFpbnQgcHJvcGVydGllcy4KKworICAgICog Y3JlYXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgLSBDcmVhdGVz IGEgbmV3IERvbWFpbiBDb25zdHJhaW50IG9iamVjdC4KKworICAgICogdXBk YXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQpOgorICAgICAgLSBVcGRh dGVzIHRoZSBEb21haW4gQ29uc3RyYWludCBvYmplY3QuCisKKyAgICAqIGRl bGV0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKKyAgICAgIC0gRHJv cHMgdGhlIERvbWFpbiBDb25zdHJhaW50IG9iamVjdC4KKworICAgICogc3Fs KGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQ9Tm9uZSk6CisgICAgICAtIFJl dHVybnMgdGhlIFNRTCBmb3IgdGhlIERvbWFpbiBDb25zdHJhaW50IG9iamVj dC4KKworICAgICogbXNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkPU5v bmUpOgorICAgICAgLSBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAg ICAqIGdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIGRvaWQ9Tm9uZSk6 CisgICAgICAtIEdlbmVyYXRlcyB0aGUgU1FMIHN0YXRlbWVudHMgdG8gY3Jl YXRlL3VwZGF0ZSB0aGUgRG9tYWluIENvbnN0cmFpbnQuCisgICAgICAgIG9i amVjdC4KKworICAgICogZGVwZW5kZW50cyhnaWQsIHNpZCwgZGlkLCBzY2lk LCBkb2lkLCBjb2lkKToKKyAgICAgIC0gUmV0dXJucyB0aGUgZGVwZW5kZW50 cyBmb3IgdGhlIERvbWFpbiBDb25zdHJhaW50IG9iamVjdC4KKworICAgICog ZGVwZW5kZW5jaWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQsIGNvaWQp OgorICAgICAgLSBSZXR1cm5zIHRoZSBkZXBlbmRlbmNpZXMgZm9yIHRoZSBE b21haW4gQ29uc3RyYWludCBvYmplY3QuCisgICAgIiIiCisgICAgbm9kZV90 eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9 IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQnfSwKKyAg ICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAg eyd0eXBlJzogJ2ludCcsICdpZCc6ICdkaWQnfSwKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdzY2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnZG9pZCd9CisgICAgXQorICAgIGlkcyA9IFsKKyAgICAg ICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdjb2lkJ30KKyAgICBdCisKKyAg ICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAg ICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxl dGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAn bGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAg ICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAn Y2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0sCisgICAgICAgICdu b2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21z cWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAg ICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAor ICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0s CisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1 bGVfanMnfV0KKyAgICB9KQorCisgICAgZGVmIHZhbGlkYXRlX3JlcXVlc3Qo Zik6CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRv ci4KKyAgICAgICAgVmFsaWRhdGluZyByZXF1ZXN0IG9uIHRoZSByZXF1ZXN0 IG9mIGNyZWF0ZSwgdXBkYXRlIGFuZCBtb2RpZmllZCBTUUwuCisKKyAgICAg ICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAgICAgICAgICAgICAgbmFtZTog TmFtZSBvZiB0aGUgRG9tYWluIENvbnN0cmFpbnQKKyAgICAgICAgICAgICAg ICAgICAgY29uc3JjOiBDaGVjayBDb25zdHJhaW50IERlZmluaXRpb24KKwor ICAgICAgICBBYm92ZSBib3RoIHRoZSBhcmd1bWVudHMgd2lsbCBub3QgYmUg dmFsaWRhdGVkIGluIHRoZSB1cGRhdGUgYWN0aW9uLgorICAgICAgICAiIiIK KworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoc2VsZiwg Kiprd2FyZ3MpOgorCisgICAgICAgICAgICBkYXRhID0ge30KKyAgICAgICAg ICAgIGlmIHJlcXVlc3QuZGF0YToKKyAgICAgICAgICAgICAgICByZXEgPSBq c29uLmxvYWRzKHJlcXVlc3QuZGF0YS5kZWNvZGUoKSkKKyAgICAgICAgICAg IGVsc2U6CisgICAgICAgICAgICAgICAgcmVxID0gcmVxdWVzdC5hcmdzIG9y IHJlcXVlc3QuZm9ybQorCisgICAgICAgICAgICBpZiAnY29pZCcgbm90IGlu IGt3YXJnczoKKyAgICAgICAgICAgICAgICByZXF1aXJlZF9hcmdzID0gWwor ICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAg ICAgICdjb25zcmMnCisgICAgICAgICAgICAgICAgXQorCisgICAgICAgICAg ICAgICAgZm9yIGFyZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAg ICAgICAgICBpZiBhcmcgbm90IGluIHJlcSBvciByZXFbYXJnXSA9PSAnJzoK KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQx MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTAsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jtc2c9Z2V0dGV4dCgK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkbid0IGZp bmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciBcCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICglcykuIiAlIGFyZworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKwor ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZvciBrZXkgaW4g cmVxOgorICAgICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gJ2NvbnZhbGlk YXRlZCc6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBU cnVlIGlmIChyZXFba2V5XSA9PSAndHJ1ZScgb3IgcmVxW2tleV0gaXMKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRy dWUpIGVsc2UgRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFba2V5XSA9IHJlcVtrZXldCisK KyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworICAgICAgICAgICAgc2VsZi5yZXF1ZXN0ID0gZGF0YQor ICAgICAgICAgICAgcmV0dXJuIGYoc2VsZiwgKiprd2FyZ3MpCisKKyAgICAg ICAgcmV0dXJuIHdyYXAKKworICAgIGRlZiBtb2R1bGVfanMoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBMb2FkIEpTIGZpbGUgKGRvbWFpbi1jb25z dHJhaW50cy5qcykgZm9yIHRoaXMgbW9kdWxlLgorICAgICAgICAiIiIKKyAg ICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgImRvbWFpbi1jb25zdHJh aW50cy9qcy9kb21haW4tY29uc3RyYWludHMuanMiLAorICAgICAgICAgICAg ICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIDIw MCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0 J30KKyAgICAgICAgKQorCisgICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihm KToKKyAgICAgICAgIiIiCisgICAgICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9y LgorICAgICAgICBDaGVja3MgZGF0YWJhc2UgY29ubmVjdGlvbiBzdGF0dXMu CisgICAgICAgIEF0dGFjaCBjb25uZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxh dGUgcGF0aC4KKyAgICAgICAgIiIiCisgICAgICAgIEB3cmFwcyhmKQorICAg ICAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAg c2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAgIGRyaXZlciA9IGdldF9kcml2 ZXIoUEdfREVGQVVMVF9EUklWRVIpCisgICAgICAgICAgICBzZWxmLm1hbmFn ZXIgPSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10p CisgICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVj dGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKyAgICAgICAgICAgIHNlbGYucXRJ ZGVudCA9IGRyaXZlci5xdElkZW50CisKKyAgICAgICAgICAgICMgSWYgREIg bm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisg ICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAg ICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisg ICAgICAgICAgICAgICAgICAgIGdldHRleHQoIkNvbm5lY3Rpb24gdG8gdGhl IHNlcnZlciBoYXMgYmVlbiBsb3N0ISIpCisgICAgICAgICAgICAgICAgKQor CisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorCisg ICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNx bCBzY3JpcHRzCisgICAgICAgICAgICBpZiB2ZXIgPj0gOTAyMDA6CisgICAg ICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2RvbWFpbi1jb25z dHJhaW50cy9zcWwvOS4yX3BsdXMnCisgICAgICAgICAgICBlbGlmIHZlciA+ PSA5MDEwMDoKKyAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cycKKworICAgICAg ICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgICAgIHJl dHVybiB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAg ICAgICIiIgorICAgICAgICBMaXN0IHRoZSBEb21haW4gQ29uc3RyYWludHMu CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElkCisgICAgICAgICAgICBkb2lkOiBEb21haW4gSWQKKyAgICAgICAgIiIi CisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGRvaWQ9ZG9pZCkKKyAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKworICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIHJldHVybiBh amF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dz J10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZXMoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAg ICBSZXR1cm5zIGFsbCB0aGUgRG9tYWluIENvbnN0cmFpbnRzLgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAor ICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDog RGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAg ICAgICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICIiIgorICAgICAg ICByZXMgPSBbXQorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2lkPWRvaWQpCisgICAg ICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXko U1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisK KyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAgICAg ICBpZiByb3dbJ2NvbnZhbGlkYXRlZCddOgorICAgICAgICAgICAgICAgIGlj b24gPSAnaWNvbi1kb21haW4tY29uc3RyYWludHMnCisgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgIGljb24gPSAnaWNvbi1kb21haW4tY29u c3RyYWludHMtYmFkJworICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAg ICAgICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25v ZGUoCisgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgIGRvaWQsCisgICAgICAgICAgICAgICAgICAgIHJvd1sn bmFtZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPWljb24KKyAgICAg ICAgICAgICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgIHN0 YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNj aWQsIGRvaWQsIGNvaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJu cyB0aGUgRG9tYWluIENvbnN0cmFpbnRzIHByb3BlcnR5LgorCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAg ICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICAgICBjb2lkOiBEb21h aW4gQ29uc3RyYWludCBJZAorICAgICAgICAiIiIKKworICAgICAgICBTUUwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn cHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkb2lkPWRvaWQsIGNvaWQ9Y29pZCkKKyAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGRhdGEgPSByZXNb J3Jvd3MnXVswXQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg ICAgICAgICAgIHJlc3BvbnNlPWRhdGEsCisgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZCk6CisgICAgICAgICIiIgorICAgICAg ICBDcmVhdGVzIGEgbmV3IERvbWFpbiBDb25zdHJhaW50IG9iamVjdC4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQK KyAgICAgICAgICAgIGRvaWQ6IERvbWFpbiBJZAorCisgICAgICAgIFJldHVy bnM6CisgICAgICAgICAgICBEb21haW4gQ29uc3RyYWludCBvYmplY3QgaW4g anNvbiBmb3JtYXQuCisgICAgICAgICIiIgorICAgICAgICBkYXRhID0gc2Vs Zi5yZXF1ZXN0CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN0YXR1cywg U1FMID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkYXRhLCBzY2lkLCBkb2lk KQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPVNRTCkK KworICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9zY2FsYXIoU1FMKQorCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICAjIEdldCB0aGUgcmVjZW50 bHkgYWRkZWQgY29uc3RyYWludHMgb2lkCisgICAgICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2dldF9vaWQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRvaWQ9ZG9pZCwgbmFtZT1kYXRhWyduYW1lJ10pCisgICAgICAg ICAgICBzdGF0dXMsIGNvaWQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIo U1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPWNv aWQpCisKKyAgICAgICAgICAgIGlmICdjb252YWxpZGF0ZWQnIGluIGRhdGEg YW5kIGRhdGFbJ2NvbnZhbGlkYXRlZCddOgorICAgICAgICAgICAgICAgIGlj b24gPSAnaWNvbi1kb21haW4tY29uc3RyYWludHMnCisgICAgICAgICAgICBl bHNlOgorICAgICAgICAgICAgICAgIGljb24gPSAnaWNvbi1kb21haW4tY29u c3RyYWludHMtYmFkJworCisgICAgICAgICAgICByZXR1cm4ganNvbmlmeSgK KyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRl X2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgY29pZCwKKyAg ICAgICAgICAgICAgICAgICAgZG9pZCwKKyAgICAgICAgICAgICAgICAgICAg ZGF0YVsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPWljb24K KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4 Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBkZWxldGUoc2VsZiwgZ2lkLCBz aWQsIGRpZCwgc2NpZCwgZG9pZCwgY29pZCk6CisgICAgICAgICIiIgorICAg ICAgICBEcm9wcyB0aGUgRG9tYWluIENvbnN0cmFpbnQgb2JqZWN0LgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ ZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICAgICBjb2lk OiBEb21haW4gQ29uc3RyYWludCBJZAorICAgICAgICAiIiIKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2lkPWRvaWQs IGNvaWQ9Y29pZCkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGRhdGEgPSBy ZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbGV0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YT1kYXRhKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2Vf anNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisg ICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJEb21haW4gQ29uc3RyYWlu dCBkcm9wcGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAg ICAgICAgICAgICAgICdpZCc6IGRvaWQsCisgICAgICAgICAgICAgICAgICAg ICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNp ZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAg ICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZG9pZCwgY29pZCk6CisgICAgICAgICIiIgor ICAgICAgICBVcGRhdGVzIHRoZSBEb21haW4gQ29uc3RyYWludCBvYmplY3Qu CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElkCisgICAgICAgICAgICBkb2lkOiBEb21haW4gSWQKKyAgICAgICAgICAg IGNvaWQ6IERvbWFpbiBDb25zdHJhaW50IElkCisgICAgICAgICIiIgorICAg ICAgICBkYXRhID0gc2VsZi5yZXF1ZXN0CisgICAgICAgIHN0YXR1cywgU1FM ID0gc2VsZi5nZXRfc3FsKGdpZCwgc2lkLCBkYXRhLCBzY2lkLCBkb2lkLCBj b2lkKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIFNRTCBhbmQg c3RhdHVzOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBu b3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAg ICAgIGlmICdjb252YWxpZGF0ZWQnIGluIGRhdGEgYW5kIGRhdGFbJ2NvbnZh bGlkYXRlZCddOgorICAgICAgICAgICAgICAgICAgICBpY29uID0gJ2ljb24t ZG9tYWluLWNvbnN0cmFpbnRzJworICAgICAgICAgICAgICAgIGVsaWYgJ2Nv bnZhbGlkYXRlZCcgaW4gZGF0YSBhbmQgbm90IGRhdGFbJ2NvbnZhbGlkYXRl ZCddOgorICAgICAgICAgICAgICAgICAgICBpY29uID0gJ2ljb24tZG9tYWlu LWNvbnN0cmFpbnRzLWJhZCcKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgICAgICBpY29uID0gJycKKworICAgICAgICAgICAgICAg IHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iRG9t YWluIENvbnN0cmFpbnQgdXBkYXRlZCIsCisgICAgICAgICAgICAgICAgICAg IGRhdGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogY29pZCwK KyAgICAgICAgICAgICAgICAgICAgICAgICdkb2lkJzogZG9pZCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnZ2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Rp ZCc6IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogaWNv bgorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNz PTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89Ik5vdGhpbmcgdG8gdXBk YXRlIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICAgICAnaWQnOiBjb2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgJ2RvaWQnOiBkb2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg J3NjaWQnOiBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6 IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAg ICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhj ZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCBkb2lkLCBjb2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgUmV0dXJucyB0aGUgU1FMIGZvciB0aGUgRG9tYWluIENvbnN0cmFp bnQgb2JqZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZG9pZDogRG9tYWluIElkCisg ICAgICAgICAgICBjb2lkOiBEb21haW4gQ29uc3RyYWludCBJZAorICAgICAg ICAiIiIKKworICAgICAgICAjIEdldCBTY2hlbWEgYW5kIERvbWFpbi4KKyAg ICAgICAgZG9tYWluLCBzY2hlbWEgPSBzZWxmLl9nZXRfZG9tYWluKGRvaWQp CisKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZG9pZD1kb2lkLCBjb2lkPWNvaWQpCisg ICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChT UUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAg ICAgICBkYXRhID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3Jl YXRlLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh dGE9ZGF0YSwgZG9tYWluPWRvbWFpbiwgc2NoZW1hPXNjaGVtYSkKKworICAg ICAgICBzcWxfaGVhZGVyID0gIiIiLS0gQ0hFQ0s6IHswfQorCistLSBBTFRF UiBET01BSU4gezF9IERST1AgQ09OU1RSQUlOVCB7MH07CisKKyIiIi5mb3Jt YXQoZGF0YVsnbmFtZSddLHNjaGVtYSArICcuJyArIGRvbWFpbikKKworICAg ICAgICBTUUwgPSBzcWxfaGVhZGVyICsgU1FMCisKKyAgICAgICAgcmV0dXJu IGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIEB2YWxpZGF0ZV9yZXF1ZXN0CisgICAgZGVmIG1z cWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCwgY29pZD1Ob25l KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIG1vZGlmaWVk IFNRTC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2 ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBT Y2hlbWEgSWQKKyAgICAgICAgICAgIGRvaWQ6IERvbWFpbiBJZAorICAgICAg ICAgICAgY29pZDogRG9tYWluIENvbnN0cmFpbnQgSWQKKworICAgICAgICBS ZXR1cm5zOgorICAgICAgICAgICAgRG9tYWluIENvbnN0cmFpbnQgb2JqZWN0 IGluIGpzb24gZm9ybWF0LgorICAgICAgICAiIiIKKyAgICAgICAgZGF0YSA9 IHNlbGYucmVxdWVzdAorCisgICAgICAgIHN0YXR1cywgU1FMID0gc2VsZi5n ZXRfc3FsKGdpZCwgc2lkLCBkYXRhLCBzY2lkLCBkb2lkLCBjb2lkKQorICAg ICAgICBpZiBzdGF0dXMgYW5kIFNRTDoKKyAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1TUUws CisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIFNRTAorCisgICAg ZGVmIGdldF9zcWwoc2VsZiwgZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIGRvaWQs IGNvaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBHZW5lcmF0ZXMg dGhlIFNRTCBzdGF0ZW1lbnRzIHRvIGNyZWF0ZS91cGRhdGUgdGhlIERvbWFp biBDb25zdHJhaW50LgorCisgICAgICAgICBBcmdzOgorICAgICAgICAgICAg Z2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVy IElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAg ICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRvaWQ6IERvbWFpbiBJ ZAorICAgICAgICAgICAgY29pZDogRG9tYWluIENvbnN0cmFpbnQgSWQKKyAg ICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGNvaWQg aXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJv cGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRvaWQ9ZG9pZCwgY29pZD1jb2lkKQorICAgICAgICAgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICBvbGRfZGF0YSA9 IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgICAgICAgICBTUUwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1vbGRfZGF0YSwgY29ubj1z ZWxmLmNvbm4KKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg ZWxzZToKKyAgICAgICAgICAgICAgICBkb21haW4sIHNjaGVtYSA9IHNlbGYu X2dldF9kb21haW4oZG9pZCkKKworICAgICAgICAgICAgICAgIFNRTCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGE9ZGF0YSwgZG9tYWluPWRvbWFpbiwgc2NoZW1h PXNjaGVtYSkKKyAgICAgICAgICAgIHJldHVybiBUcnVlLCBTUUwuc3RyaXAo J1xuJykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAg ICAgICAgcmV0dXJuIEZhbHNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9c3RyKGUpKQorCisgICAgZGVmIF9nZXRfZG9tYWluKHNlbGYsIGRv aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBEb21haW4gYW5k IFNjaGVtYSBuYW1lLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBk b2lkOiBEb21haW4gSWQKKworICAgICAgICAiIiIKKyAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dl dF9kb21haW4uc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZG9pZD1kb2lkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlXzJkYXJyYXkoU1FMKQorCisgICAgICAgIGlmIG5vdCBzdGF0 dXM6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgcmV0dXJuIHJlc1sn cm93cyddWzBdCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZG9pZCwg Y29pZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdl dCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UKKyAg ICAgICAgZm9yIHRoZSBEb21haW4gQ29uc3RyYWludCBub2RlLgorCisgICAg ICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6ICBTZXJ2ZXIgR3JvdXAgSWQK KyAgICAgICAgICAgIHNpZDogIFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiAgRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICAgICBjb2lk OiBEb21haW4gQ29uc3RyYWludCBJZAorICAgICAgICAiIiIKKyAgICAgICAg ZGVwZW5kZW50c19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYu Y29ubiwgY29pZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5j aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQsIGNvaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRl cGVuZGVuY2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAgICAg Zm9yIHRoZSBEb21haW4gQ29uc3RyYWludCBub2RlLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAg ICAgZG9pZDogRG9tYWluIElkCisgICAgICAgICAgICBjb2lkOiBEb21haW4g Q29uc3RyYWludCBJZAorICAgICAgICAiIiIKKyAgICAgICAgZGVwZW5kZW5j aWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4s IGNvaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1bHQsCisgICAg ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKwor RG9tYWluQ29uc3RyYWludFZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVw cmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9t YWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvY29sbC1kb21haW4tY29uc3Ry YWludHMucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29u c3RyYWludHMvc3RhdGljL2ltZy9jb2xsLWRvbWFpbi1jb25zdHJhaW50cy5w bmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYyZTEzNzA1YzUwZTZjMGNm OGYxOWQ2ODAwNTNlODY0M2UyODc1MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVy YWwgMzE0CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITczPyQjKWVG UEZ2M0dmTVYxPTJUck84NDd7SmxgfHRgUXBhcwp6bjxoUytsPXJNWT5SR1Bx dmx5ZGl6UkomPkJgT20jVn1SLXlPTT83QDg2Mk03TkNSPj4zcF5yPWZ3VHUw eVBlRm8KejEyVEwpVF52ST10fHVvUFV8fFpGPHRnYUhHKlFzUSE/bSZUcT0/ M21DdX1KI0R4M3hAbU19fV5pRT01TklXWG5rCnprcG5DNGFpJWE+QDtHZzc9 dXVtcz05YklLPUVnZH4odXMtM2dASXYwMmdmc0teSlBeKWdIPW1oQlQ3O2RP SCE/cAp6aSZCOVVnT1AhdWZ2JXlFdTdQMlFrJTUob3Y2WUY1d3Q9YVlmcX0o TFJYRyQ1eCVueFhYX1hLUzI5e3RBQWt8Z3wKWFcpS2FocmlaUXBZR0NrbV4+ YlAwbCtYa0t5eVJVfQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWlu dHMvc3RhdGljL2ltZy9kb21haW4tY29uc3RyYWludHMtYmFkLnBuZyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRp Yy9pbWcvZG9tYWluLWNvbnN0cmFpbnRzLWJhZC5wbmcKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMC4uMzJhMDQ1YjhmYWZkYzA4NjQwZDUzYjJhODZiMWRjYWJj YjBmZTBmZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTc5CnpjbVYtSjA9 KWYrUCk8aDszS3xMazAwMGUxTkpMVHEwMDBtRzAwMG1PMHt7UjNDQGx8RDAw MDAxYjVjaF8wSXRwKQp6PT5QeCRBVyUkSE1SMVo5I1EqQFJFSG1kSEFtPDw7 PXBgbFREbDYkTEUxNSR8bk02eXhKMyM2JkZ9XilReDxwM24KekgjaDR6SUsp T3UjNzlmVE1AI0hKS2tZKDg/TCRRRUxgQ2pKTWVhc00/bmcoO1FCPnxvTmJY MlU/bitBVU9IMSFlCnpPeiV4aT9AZG5jUEVYS1JTP15DeiNhbXRRUUJtK3hR dChxI0BLYVJxUjg7VSlScTw5PEBtRSpZVnEoYH5WKTB2Qgp6K0dTPClWUFcl UFYlPSRKYWchSkhYbFY2cVpTYCgkX0h1SDNwZDxFbmNKX0M3ZjFAWFdxYkd1 PkR1PTh1aHBqSikKenZONGFnSDxpM1VyTVlnV3lLPGV5TjFWcStwMnRiQSFH NUMzUE8hbSRxfEh2ViNEJH5KT3N2O2Z0a19xdi1DZVFYCnpUKmNDJSRKMzs+ PDZfTCR0PEtyOCkhd3xyQG8+Y1BhbTRYKit+bWlgXkt7R2xjfHhoPE5kTiE8 MGQhSk1Rdmc4Ygp6KmslOSMwMENsNE0/P1VLMXN6QkwwMDBTYU5MaDBMMDFG Y1UwMUZjVjBHZ1pfMDAwMDdiVipHYDJpcGYzNDxST2cKeihwNzJ6MDA1NmtM X3QmLSkxezJaM2NecVQxbURFb2R5NkladUNXJnMxViFgXjR9JGdvZT8oMThA YjJEYipqKncxCnolNE0ocDsmWnc/OVphS0F4byp4O0NPWH08OGZ6anFLUnZe MmtGMXNweW1ZSE1qRTJtN0hsfGF+ZW1DTndHOChpPwp6OEkjYGAoa2lCckVi aH0oUW44VEwyKyR9YjNIbl43cGBLNlIjXzZ6UTIkP3V4O2xYQllCPmhrTkBD JWc/NHZWQk0KUiRiYkw8MDAyb3ZQREhMa1YxbWluME9TQXcKCmxpdGVyYWwg MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvZG9tYWluLWNv bnN0cmFpbnRzLnBuZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWlu LWNvbnN0cmFpbnRzL3N0YXRpYy9pbWcvZG9tYWluLWNvbnN0cmFpbnRzLnBu ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZDFkMmEwNjFjNzk0ODE2OGQ3 YjFjMjQ3NGQ3NjliMzE3MDlmMWNmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh bCA0MDYKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdi S31YQEYwTkUwOHtWWTJuaEhjXmVNYVUlamBkCnphSSQjK0h1RUtDe3BLRVpL WW4+aCgrYUlNSF5NakdqY3MzfWY5Q3F5dCZmdng3QVQqKXh2XmBMO2hme0hp X2lQNAp6eGdLJSZWP3E2NV80Yyo7OH1HJTtKTU1ZPFNMTV9fX000Qmk5e0Ve ITxZVXBYJm4xZ2FgN1BnRndFa2RTISgjUDwKek5uJkBOOU9xaUsoaSYoblZA WiUtRm9WT2g4KS1sZVhNc20jRl84OEVXNER2cGMwZmppcjtCNVYjTzM2SzFz biFPCnpoUlZmfTVqU3NHUEg/Zjx4dWRjfHZCb1k8JjVjYj11VEdCOXYxODdK NElJK2l0NT9qaG44RntUc0NaSVdSYWQkRAp6ZzEqSzlXJWN1Mk5zRChoRWZW VCMqd20jcFl3O0QwNCswRSh1UUU/c2BaNipaWG9xVHZZZVkjKFZvOW8xYSMx UmYKelZsWGw9R3wpOVAobHN5KUYqMnwrRn01LT4oS2F4KEdCQnsxc1Zhd31B dlpySUdwIVAkIU4zeCUwaUBjPnp6bXx7ClQpYiE5YktuKUNAdTZ7MS1vRCFN PD00T15rCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1w bGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL2Nzcy9kb21haW4tY29uc3RyYWlu dHMuY3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3Ry YWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9jc3MvZG9tYWlu LWNvbnN0cmFpbnRzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40NjkxYzYwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2Rv bWFpbi1jb25zdHJhaW50cy9jc3MvZG9tYWluLWNvbnN0cmFpbnRzLmNzcwpA QCAtMCwwICsxLDIzIEBACisuaWNvbi1jb2xsLWRvbWFpbi1jb25zdHJhaW50 cyB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgne3sgdXJsX2ZvcignTk9E RS0lcy5zdGF0aWMnICUgbm9kZV90eXBlLCBmaWxlbmFtZT0naW1nL2NvbGwt ZG9tYWluLWNvbnN0cmFpbnRzLnBuZycgKX19JykgIWltcG9ydGFudDsKKyAg YmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYWxpZ24tY29udGVu dDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICBoZWln aHQ6IDEuM2VtOworfQorCisuaWNvbi1jaGVjay1iYWQsIC5pY29uLWRvbWFp bi1jb25zdHJhaW50cy1iYWQgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwo J3t7IHVybF9mb3IoJ05PREUtJXMuc3RhdGljJyAlIG5vZGVfdHlwZSwgZmls ZW5hbWU9J2ltZy9kb21haW4tY29uc3RyYWludHMtYmFkLnBuZycgKX19Jykg IWltcG9ydGFudDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsK KyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGlnbjog bWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOworfQorCisuaWNvbi1jaGVjaywg Lmljb24tZG9tYWluLWNvbnN0cmFpbnRzIHsKKyAgYmFja2dyb3VuZC1pbWFn ZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RFLSVzLnN0YXRpYycgJSBub2RlX3R5 cGUsIGZpbGVuYW1lPSdpbWcvZG9tYWluLWNvbnN0cmFpbnRzLnBuZycgKX19 JykgIWltcG9ydGFudDsKKyAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh dDsKKyAgYWxpZ24tY29udGVudDogY2VudGVyOworICB2ZXJ0aWNhbC1hbGln bjogbWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOworfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29u c3RyYWludHMvanMvZG9tYWluLWNvbnN0cmFpbnRzLmpzIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2Rv bWFpbi1jb25zdHJhaW50cy9qcy9kb21haW4tY29uc3RyYWludHMuanMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzlmMWE5NwotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWlu LWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvanMv ZG9tYWluLWNvbnN0cmFpbnRzLmpzCkBAIC0wLDAgKzEsMTUwIEBACisvLyBE b21haW4gQ29uc3RyYWludCBNb2R1bGU6IENvbGxlY3Rpb24gYW5kIE5vZGUK K2RlZmluZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1 bmRlcnNjb3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3Nl cicsICdhbGVydGlmeScsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbidd LAorZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBhbGVy dGlmeSkgeworCisgIC8vIERlZmluZSBEb21haW4gQ29uc3RyYWludCBDb2xs ZWN0aW9uIE5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtZG9t YWluLWNvbnN0cmFpbnRzJ10pIHsKKyAgICB2YXIgZG9tYWluX2NvbnN0cmFp bnRzID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLWRvbWFpbi1jb25z dHJhaW50cyddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9u LmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdkb21haW4tY29uc3RyYWludHMn LAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0RvbWFpbiBDb25zdHJhaW50cycp IH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtZG9tYWluLWNvbnN0cmFpbnRz JywKKyAgICAgICAgY29sdW1uczogWyduYW1lJywgJ2Rlc2NyaXB0aW9uJ10K KyAgICAgIH0pOworICB9OworCisgIC8vIERvbWFpbiBDb25zdHJhaW50IE5v ZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2RvbWFpbi1jb25zdHJhaW50 cyddKSB7CisgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydkb21haW4tY29u c3RyYWludHMnXSA9IHBnQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICB0 eXBlOiAnZG9tYWluLWNvbnN0cmFpbnRzJywKKyAgICAgIGxhYmVsOiAne3sg XygnRG9tYWluIENvbnN0cmFpbnRzJykgfX0nLAorICAgICAgY29sbGVjdGlv bl90eXBlOiAnY29sbC1kb21haW4tY29uc3RyYWludHMnLAorICAgICAgaGFz U1FMOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIHBh cmVudF90eXBlOiBbJ2RvbWFpbiddLAorICAgICAgSW5pdDogZnVuY3Rpb24o KSB7CisgICAgICAgIC8vIEF2b2lkIG11bGl0cGxlIHJlZ2lzdHJhdGlvbiBv ZiBtZW51cworICAgICAgICBpZiAodGhpcy5pbml0aWFsaXplZCkKKyAgICAg ICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0g dHJ1ZTsKKworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAg ICAgICAgbmFtZTogJ2NyZWF0ZV9kb21haW5fb25fY29sbCcsIG5vZGU6ICdj b2xsLWRvbWFpbi1jb25zdHJhaW50cycsIG1vZHVsZTogdGhpcywKKyAgICAg ICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNr OiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6 ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdEb21haW4g Q29uc3RyYWludC4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJ Y29uIGljb24tZG9tYWluLWNvbnN0cmFpbnRzJywgZGF0YToge2FjdGlvbjog J2NyZWF0ZScsIGNoZWNrOiB0cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdj YW5DcmVhdGUnCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVh dGVfZG9tYWluLWNvbnN0cmFpbnRzJywgbm9kZTogJ2RvbWFpbi1jb25zdHJh aW50cycsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdEb21haW4gQ29uc3RyYWludC4uLicpIH19 JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZG9tYWluLWNv bnN0cmFpbnRzJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0 cnVlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAg IH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZG9tYWluLWNvbnN0cmFp bnRzJywgbm9kZTogJ2RvbWFpbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAn c2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdj cmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdEb21haW4gQ29u c3RyYWludC4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29u IGljb24tZG9tYWluLWNvbnN0cmFpbnRzJywgZGF0YToge2FjdGlvbjogJ2Ny ZWF0ZScsIGNoZWNrOiBmYWxzZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2Fu Q3JlYXRlJworICAgICAgICB9CisgICAgICAgIF0pOworCisgICAgICB9LAor ICAgICAgY2FuRHJvcDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5D aGlsZERyb3AsCisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUu TW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAg ICBuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgb2lkOiB1bmRlZmluZWQs CisgICAgICAgICAgZGVzY3JpcHRpb246IHVuZGVmaW5lZCwKKyAgICAgICAg ICBjb25zcmM6IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb25ub2luaGVyaXQ6 IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb252YWxpZGF0ZWQ6IHVuZGVmaW5l ZAorICAgICAgICB9LAorICAgICAgICAvLyBEb21haW4gQ29uc3RyYWludCBT Y2hlbWEKKyAgICAgICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFt ZScsIGxhYmVsOiAne3sgXygnTmFtZScpIH19JywgdHlwZTondGV4dCcsIGNl bGw6J3N0cmluZycsCisgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGVk JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcsIGxhYmVsOid7 eyBfKCdPSUQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5 cGU6ICd0ZXh0JyAsIG1vZGU6IFsncHJvcGVydGllcyddCisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAnZGVzY3JpcHRpb24nLCBsYWJlbDogJ3t7IF8o J0NvbW1lbnQnKSB9fScsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxsOgorICAg ICAgICAgICdzdHJpbmcnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRl JywgJ2VkaXQnXSwgbWluX3ZlcnNpb246IDkwNTAwLAorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ2NvbnNyYycsIGxhYmVsOiAne3sgXygnQ2hlY2sn KSB9fScsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWw6CisgICAgICAgICAgJ3N0 cmluZycsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywgbW9kZTog Wydwcm9wZXJ0aWVzJywKKyAgICAgICAgICAnY3JlYXRlJywgJ2VkaXQnXSwg ZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsgcmV0dXJuICFtLmlzTmV3KCk7IH0K KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdjb25ub2luaGVyaXQnLCBs YWJlbDogJ3t7IF8oJ05vIEluaGVyaXQnKSB9fScsIHR5cGU6CisgICAgICAg ICAgJ3N3aXRjaCcsIGNlbGw6ICdib29sZWFuJywgZ3JvdXA6ICd7eyBfKCdE ZWZpbml0aW9uJykgfX0nLCBtb2RlOgorICAgICAgICAgIFsncHJvcGVydGll cycsICdjcmVhdGUnLCAnZWRpdCddLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQn LAorICAgICAgICAgIHZpc2libGU6IGZhbHNlCisgICAgICAgIH0seworICAg ICAgICAgIGlkOiAnY29udmFsaWRhdGVkJywgbGFiZWw6ICJ7eyBfKCJWYWxp ZGF0ZT8iKSB9fSIsIHR5cGU6ICdzd2l0Y2gnLCBjZWxsOgorICAgICAgICAg ICdib29sZWFuJywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAor ICAgICAgICAgIG9wdGlvbnM6IHsKKyAgICAgICAgICAgICdvblRleHQnOiAn WWVzJywgJ29mZlRleHQnOiAnTm8nLAorICAgICAgICAgICAgJ29uQ29sb3In OiAnc3VjY2VzcycsICdvZmZDb2xvcic6ICdwcmltYXJ5JywKKyAgICAgICAg ICAgICdzaXplJzogJ3NtYWxsJworICAgICAgICAgIH0sCisgICAgICAgICAg ZGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICBpZiAoIW0uaXNO ZXcoKSkgeworICAgICAgICAgICAgdmFyIHNlcnZlciA9IHRoaXMubm9kZV9p bmZvLnNlcnZlcjsKKyAgICAgICAgICAgIGlmIChzZXJ2ZXIudmVyc2lvbiA8 IDkwMjAwKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYobS5n ZXQoJ2NvbnZhbGlkYXRlZCcpKQorICAgICAgICAgICAgeworICAgICAgICAg ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgICAgfSwKKyAgICAgICAgICBtb2RlOiBbJ3By b3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXQorICAgICAgICB9XSwKKyAg ICAgICAgLy8gQ2xpZW50IFNpZGUgVmFsaWRhdGlvbgorICAgICAgICB2YWxp ZGF0ZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGVyciA9IHt9LAor ICAgICAgICAgICAgICBlcnJtc2c7CisKKyAgICAgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZCh0aGlzLmdldCgnbmFtZScpKSB8fCBTdHJpbmcodGhpcy5nZXQo J25hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgewor ICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygnTmFtZSBjYW4gbm90 IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1z ZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnY29uc3JjJykpIHx8IFN0cmlu Zyh0aGlzLmdldCgnY29uc3JjJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAn JykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsnY29uc3JjJ10gPSAne3sg XygnQ2hlY2sgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAg ICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydjb25zcmMnXTsKKyAgICAgICAg ICB9CisKKyAgICAgICAgICB0aGlzLmVycm9yTW9kZWwuY2xlYXIoKS5zZXQo ZXJyKTsKKworICAgICAgICAgIGlmIChfLnNpemUoZXJyKSkgeworICAgICAg ICAgICAgdGhpcy50cmlnZ2VyKCdvbi1zdGF0dXMnLCB7bXNnOiBlcnJtc2d9 KTsKKyAgICAgICAgICAgIHJldHVybiBlcnJtc2c7CisgICAgICAgICAgfQor CisgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAgICAgICAgfSwKKyAgICAg ICAgaXNEaXNhYmxlZDogZnVuY3Rpb24obSl7CisgICAgICAgICAgaWYgKCFt LmlzTmV3KCkpIHsKKyAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSB0aGlzLm5v ZGVfaW5mby5zZXJ2ZXI7CisgICAgICAgICAgICBpZiAoc2VydmVyLnZlcnNp b24gPCA5MDIwMCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorICAgICAgfSksCisgIH0p OworCisgIH0KKworICByZXR1cm4gcGdCcm93c2VyLk5vZGVzWydkb21haW4n XTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9k b21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50 cy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29u c3RyYWludHMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU5NDNkMgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFp bnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMV9wbHVz L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwzIEBACit7JSBpZiBkYXRhIGFuZCBz Y2hlbWEgYW5kIGRvbWFpbiAlfQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJ ZGVudChzY2hlbWEsIGRvbWFpbikgfX0KKyAgICBBREQgQ09OU1RSQUlOVCB7 eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fSBDSEVDSyAoe3sgZGF0YS5j b25zcmMgfX0pO3slIGVuZGlmIC0lfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2Rv bWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBs YXRlcy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjYwYzNj MAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv ZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWlu dHMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSw0IEBACit7 JSBpZiBkYXRhICV9CitBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KGRh dGEubnNwbmFtZSwgZGF0YS5yZWxuYW1lKSB9fQorICAgIERST1AgQ09OU1RS QUlOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFp bi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3Nx bC85LjFfcGx1cy9nZXRfZG9tYWluLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Rv bWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29u c3RyYWludHMvc3FsLzkuMV9wbHVzL2dldF9kb21haW4uc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwNDBjMGUKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25z dHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFf cGx1cy9nZXRfZG9tYWluLnNxbApAQCAtMCwwICsxLDggQEAKK1NFTEVDVAor ICAgIGQudHlwbmFtZSBhcyBkb21haW4sIGJuLm5zcG5hbWUgYXMgc2NoZW1h CitGUk9NCisgICAgcGdfdHlwZSBkCitKT0lOCisgICAgcGdfbmFtZXNwYWNl IGJuIE9OIGJuLm9pZD1kLnR5cG5hbWVzcGFjZQorV0hFUkUKKyAgICBkLm9p ZCA9IHt7ZG9pZH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25z dHJhaW50cy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9t YWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNTllMDhjCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4t Y29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwv OS4xX3BsdXMvZ2V0X29pZC5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxFQ1QK KyAgICBvaWQsIGNvbm5hbWUgYXMgbmFtZQorRlJPTQorICAgIHBnX2NvbnN0 cmFpbnQKK1dIRVJFCisgICAgY29udHlwaWQgPSB7e2RvaWR9fTo6b2lkCisg ICAgQU5EIGNvbm5hbWU9e3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50 cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9w cm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWlu LWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3Fs LzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjA0M2YwMTEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1w bGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApAQCAtMCwwICsxLDE0IEBACitTRUxFQ1QKKyAgICBjLm9pZCwg Y29ubmFtZSBBUyBuYW1lLCB0eXBuYW1lIEFTIHJlbG5hbWUsIG5zcG5hbWUs CisgICAgcmVnZXhwX3JlcGxhY2UocGdfZ2V0X2NvbnN0cmFpbnRkZWYoYy5v aWQsIHRydWUpLCBFJ0NIRUNLIFxcKCguKilcXCkuKicsIEUnXFwxJykgQVMg Y29uc3JjCitGUk9NCisgICAgcGdfY29uc3RyYWludCBjCitKT0lOCisgICAg cGdfdHlwZSB0IE9OIHQub2lkPWNvbnR5cGlkCitKT0lOCisgICAgcGdfbmFt ZXNwYWNlIG5sIE9OIG5sLm9pZD10eXBuYW1lc3BhY2UKK1dIRVJFCisgICAg Y29udHlwZSA9ICdjJyBBTkQgY29udHlwaWQgPSAge3tkb2lkfX06Om9pZAor eyUgaWYgY29pZCAlfQorICAgIEFORCBjLm9pZCA9IHt7IGNvaWQgfX0KK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5z L2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFp bnRzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1j b25zdHJhaW50cy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTliYTZiCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3Ry YWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4xX3Bs dXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDMgQEAKK3slIGlmIGRhdGEubmFt ZSAlfQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChvX2RhdGEubnNw bmFtZSwgb19kYXRhLnJlbG5hbWUpIH19CisgICAgUkVOQU1FIENPTlNUUkFJ TlQge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBUTyB7eyBjb25u fHF0SWRlbnQoZGF0YS5uYW1lKSB9fTt7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMv dGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4yX3BsdXMvY3Jl YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0 cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMl9w bHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYWQ5OTNmNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21h aW4tY29uc3RyYWludHMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAs MCArMSwxMCBAQAoreyUgaWYgZGF0YSBhbmQgc2NoZW1hIGFuZCBkb21haW4g JX0KK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQoc2NoZW1hLCBkb21h aW4pIH19CisgICAgQUREIENPTlNUUkFJTlQge3sgY29ubnxxdElkZW50KGRh dGEubmFtZSkgfX0gQ0hFQ0sgKHt7IGRhdGEuY29uc3JjIH19KXslIGlmIG5v dCBkYXRhLmNvbnZhbGlkYXRlZCAlfQorCisgICAgTk9UIFZBTElEeyUgZW5k aWYgJX07eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCisKK0NPTU1FTlQg T04gQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fSBP TiBET01BSU4ge3sgY29ubnxxdElkZW50KHNjaGVtYSwgZG9tYWluKSB9fQor ICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19Jzt7JSBlbmRpZiAlfQor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3Ry YWludHMvc3FsLzkuMl9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWlu LWNvbnN0cmFpbnRzL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI2MGMzYzAKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25z dHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjJf cGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsNCBAQAoreyUgaWYgZGF0YSAl fQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChkYXRhLm5zcG5hbWUs IGRhdGEucmVsbmFtZSkgfX0KKyAgICBEUk9QIENPTlNUUkFJTlQge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWlu dHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4yX3BsdXMv Z2V0X2RvbWFpbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFp bi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3Nx bC85LjJfcGx1cy9nZXRfZG9tYWluLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4xMDQwYzBlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVt cGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4yX3BsdXMvZ2V0X2Rv bWFpbi5zcWwKQEAgLTAsMCArMSw4IEBACitTRUxFQ1QKKyAgICBkLnR5cG5h bWUgYXMgZG9tYWluLCBibi5uc3BuYW1lIGFzIHNjaGVtYQorRlJPTQorICAg IHBnX3R5cGUgZAorSk9JTgorICAgIHBnX25hbWVzcGFjZSBibiBPTiBibi5v aWQ9ZC50eXBuYW1lc3BhY2UKK1dIRVJFCisgICAgZC5vaWQgPSB7e2RvaWR9 fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWlu LWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3Fs LzkuMl9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJh aW50cy9zcWwvOS4yX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZjU5ZTA4YwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRz L3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMl9wbHVzL2dl dF9vaWQuc3FsCkBAIC0wLDAgKzEsNyBAQAorU0VMRUNUCisgICAgb2lkLCBj b25uYW1lIGFzIG5hbWUKK0ZST00KKyAgICBwZ19jb25zdHJhaW50CitXSEVS RQorICAgIGNvbnR5cGlkID0ge3tkb2lkfX06Om9pZAorICAgIEFORCBjb25u YW1lPXt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3RyYWludHMvdGVtcGxhdGVz L2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVfY2F0 ZWdvcnkuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29u c3RyYWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4y X3BsdXMvZ2V0X3R5cGVfY2F0ZWdvcnkuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjNlM2IyNDQKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90 ZW1wbGF0ZXMvZG9tYWluLWNvbnN0cmFpbnRzL3NxbC85LjJfcGx1cy9nZXRf dHlwZV9jYXRlZ29yeS5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxFQ1QKKyAg ICB0eXBjYXRlZ29yeQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJFIHR5cG5h bWUgPSB7e2RhdGF0eXBlfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWlu LWNvbnN0cmFpbnRzL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBs YXRlcy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMl9wbHVzL3Byb3BlcnRp ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM0 ZDhiMzQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL2RvbWFpbi1jb25zdHJhaW50cy90ZW1wbGF0ZXMvZG9tYWluLWNvbnN0 cmFpbnRzL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsx LDE3IEBACitTRUxFQ1QKKyAgICBjLm9pZCwgY29ubmFtZSBBUyBuYW1lLCB0 eXBuYW1lIEFTIHJlbG5hbWUsIG5zcG5hbWUsIGRlc2NyaXB0aW9uLAorICAg IHJlZ2V4cF9yZXBsYWNlKHBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkLCB0 cnVlKSwgRSdDSEVDSyBcXCgoLiopXFwpLionLCBFJ1xcMScpIEFTIGNvbnNy YywKKyAgICBjb25ub2luaGVyaXQsIGNvbnZhbGlkYXRlZCwgY29udmFsaWRh dGVkIEFTIGNvbnZhbGlkYXRlZF9wCitGUk9NCisgICAgcGdfY29uc3RyYWlu dCBjCitKT0lOCisgICAgcGdfdHlwZSB0IE9OIHQub2lkPWNvbnR5cGlkCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5sIE9OIG5sLm9pZD10eXBuYW1lc3Bh Y2UKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBP TiAoZGVzLm9iam9pZD1jLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jb25z dHJhaW50Jzo6cmVnY2xhc3MpCitXSEVSRQorICAgIGNvbnR5cGUgPSAnYycg QU5EIGNvbnR5cGlkID0gIHt7ZG9pZH19OjpvaWQKK3slIGlmIGNvaWQgJX0K KyAgICBBTkQgYy5vaWQgPSB7eyBjb2lkIH19Cit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9kb21haW4tY29uc3Ry YWludHMvdGVtcGxhdGVzL2RvbWFpbi1jb25zdHJhaW50cy9zcWwvOS4yX3Bs dXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9tYWlu LWNvbnN0cmFpbnRzL3RlbXBsYXRlcy9kb21haW4tY29uc3RyYWludHMvc3Fs LzkuMl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNjI4ZWI2ZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2RvbWFpbnMvZG9tYWluLWNvbnN0cmFpbnRzL3RlbXBsYXRl cy9kb21haW4tY29uc3RyYWludHMvc3FsLzkuMl9wbHVzL3VwZGF0ZS5zcWwK QEAgLTAsMCArMSwxMyBAQAoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAl fQoreyUgaWYgZGF0YS5uYW1lICV9Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFt ZSAlfQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChvX2RhdGEubnNw bmFtZSwgb19kYXRhLnJlbG5hbWUpIH19CisgICAgUkVOQU1FIENPTlNUUkFJ TlQge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBUTyB7eyBjb25u fHF0SWRlbnQoZGF0YS5uYW1lKSB9fTt7JSBlbmRpZiAtJX17JSBpZiBkYXRh LmNvbnZhbGlkYXRlZCAlfQorCisKK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLm5zcG5hbWUsIG9fZGF0YS5yZWxuYW1lKSB9fQorICAg IFZBTElEQVRFIENPTlNUUkFJTlQge3sgY29ubnxxdElkZW50KG5hbWUpIH19 O3slIGVuZGlmIC0lfXslIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworCitD T01NRU5UIE9OIENPTlNUUkFJTlQge3sgY29ubnxxdElkZW50KG5hbWUpIH19 IE9OIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5zcG5hbWUsIG9f ZGF0YS5yZWxuYW1lKSB9fQorICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9u IH19Jzt7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy9zdGF0aWMvaW1nL2NvbGwtZG9tYWluLnBuZyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2RvbWFpbnMvc3RhdGljL2ltZy9jb2xsLWRvbWFpbi5wbmcKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMC4uNTU2MjE1MjhhMWRiYTQ5Mjg1MzhmZTU1 NTdiOWI5ODhlZDc4ZDZhYgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDYy CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBHYkt9VTRU IUJFMEJKZW9xZlc9O2dGezBQRDhfbwp6aSZwTl8oSylCN2BGUGklMml4YEB2 OUxVKHROVVEqIUsxY3pYT3h1Z2dvR1RfKCNwQHpmNEp3ISF6SFYpYDNGN1QK emQtVW19SH1gaVJJaWpjY0BXcSM+JnB0a1JgU3N6RzU0VXo2elc0bWc/TUxz Z1o5amJiPkV+eSF6VFNCOWBSZTEoCnpqUzFTOTkoXzloQFlDNGBBNVkpXl9e PkBKMytNdklrfDRpZTI4VS1pKHRzUyEwKn1hSUFuZ0loWllRKHRmUSl1ZQp6 N3NuOFolYnxVQCNoTWdFU1V2czR3S29TeE8+fntPPS1ZcSQ4XyFyKS1eZSU0 LWw2Zi1Kb3gxJTh9RklWeD5GQ1cKelBNVndsdVFHYmtQMWJjU3dWVjBkXz9Q WmJaVmlzJUhlWVRXeVUqJE92WXAkdVRjM1FMYkQ/MnRyT25EdWhaYT5mCno9 M2Rfeyh6RVI5eHQoPG4zVXNCSTRTTkM/WSFyQlc8bTJgbj55RFJ5ZyR1b0U4 UXh9Ym8xRDBxdzt0I3UpZV9mOwp6bDlhQGZSSUI4b1IzT0QqV01GOFpZaU9p dlU+SVUjVX1hKSNXbiFYalV9fE14VUA9b3c0bjskNWVvQUlxQn05WFAKZUMw R01Vd1V2UHhNOG0xK3A9KkV8Nyg4QTVULUdAeUd5d29SQ0MyTGoKCmxpdGVy YWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvc3RhdGljL2ltZy9kb21haW4tc20ucG5nIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9zdGF0aWMvaW1nL2RvbWFpbi1zbS5wbmcKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMC4uNzUyMWNkZGVhYWFmMGVlNGUzYzYwZTk0ODA3 OGQ3MGUxN2UwNjg5MwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDAxCnpj bWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBHYkt9VDdYWjhF MERldTlldSpWO2dGezBLYHBJZwp6YzZLYHI0SWVJQWN9UTNIeFZgPTN5K0B4 dWRVSnBHa3QyRn5Qb0k1IV43OEEkQ20oTEBKYmNZUj07NGJtX252PmIKentw a0kqP1Q3RCNneWlTdktZUjd7X1M0VGRvX3hPZ187WGB8X043T2smT2lLZ19R QSl+X2RsTG84NXt3JGlMb1RlCnpGUE9wTSpeTStIaHFKJlZ2S1VCdmZVKD1q WSYjJCQkPHhJI01CO01xYElBQnAyMFJUOXdVWGthTCgxUihwT24/Ywp6PjM4 PCtlPkthTjJ7JTBKZEBzTWJZJCsxM1omJVo8JSFQKypTTnUrIyh7UnI9e19L eFVoc3dIZElEMFFXVENCdkQKeilea3k7QGd1YEUjUkFDI2xgSmNuZWxTMHJ4 a0tON2IxQj5INTZnWCkwJlA8KmFnOFdSTmkwZFZOLWp6VFFWZDIwCnpoNmNL Wk0hRSl1QXd+dlBDZE83S0NmV3czUnQ1JFpHZ2FrS0gwMCl8V1RzVUBHI0ZU ZEhHb3VHOEpJeWRvU0dpRwpRMkI/OS0pNzgmcW9sYDsrMDNfcTNnYTd+bAoK bGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy9zdGF0aWMvaW1nL2RvbWFpbi5wbmcgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9kb21haW5zL3N0YXRpYy9pbWcvZG9tYWluLnBuZwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwLi40MmNhOTI5MzI1ODU0YjhmMzQ3ODc0MjVlODA5 NGQwOGM3NTk4M2JjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MjQKemNt ZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiS31QSm1Ce0Uw Qkplb3FmVz07Z0Z7MFBEOF43CnppJnM2YGJMOG94SH1gaVJkSFU/KmxiMnJ+ Sl42VGg9aXheJHpUU1dTPD9mPm9IK0NIVWFefXBWZmBhV3ZNdDdmbQp6eCY4 Rj5qZmR+QVkoSEZgbVVpUkc9Vzk8c1V3UUJAS1I+QFFMSG8rJVBadUEzSXsp eX4qJDFEX0pvdEYoe3p2SHQKem8ldWxmNyl5ZnVmKkJtMS1BRHMrSTE0LT9p LUVLVTdgdlUhd2dXUFhKelgzX0JyY2JwZT1YRmNBbVNGTmVDM3EmCnpsIVor KFJzWU4xMiYtTld7UCpeIzxyeDgyXzItK2lpJlNxZkdnT2BKY2pAOzAxQEhU SHsmJjcjdj9qfUkpPUo2bQp6ZWB+aHBwWm43P1dBfCV6IX1UNnBmPnowSWpi WnJTNUlDRCoyNzUqX2JBbylyOHQjVmc0QSpMeik7eGM0SktxMDMKelhYQ316 ZClZd2lSWkNuV04+VU9fUW12QVVRaF5rTWslNklzdUF6fnhmbmtWfGZ0ODd8 bTVHVkFmdkpeJmZ5R1EhCnFJVFFgS2A2LSFjbEBKWEVtUzdEYSltOD4oNURs bE1ocHF1P1ZETlBIYjZNdzwmOyRWT1I9RnF1CgpsaXRlcmFsIDAKSGNtVj9k MDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rl bXBsYXRlcy9kb21haW5zL2pzL2RvbWFpbnMuanMgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL2pzL2RvbWFpbnMuanMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWM2ZGEyYQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvanMvZG9tYWlucy5qcwpAQCAtMCwwICsxLDM0NSBAQAor Ly8gRG9tYWluIE1vZHVsZTogQ29sbGVjdGlvbiBhbmQgTm9kZS4KK2RlZmlu ZSgKKyAgICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNj b3JlLnN0cmluZycsICdwZ2FkbWluJywKKyAgICAgICAgICdwZ2FkbWluLmJy b3dzZXInLCAnYWxlcnRpZnknLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rp b24nXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3Nlciwg YWxlcnRpZnkpIHsKKworICAvLyBEZWZpbmUgRG9tYWluIENvbGxlY3Rpb24g Tm9kZQorICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1kb21haW4nXSkg eworICAgIHZhciBkb21haW5zID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydj b2xsLWRvbWFpbiddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0 aW9uLmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdkb21haW4nLAorICAgICAg ICBsYWJlbDogJ3t7IF8oJ0RvbWFpbnMnKSB9fScsCisgICAgICAgIHR5cGU6 ICdjb2xsLWRvbWFpbicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdv d25lcicsICdkZXNjcmlwdGlvbiddCisgICAgICB9KTsKKyAgfTsKKworICAv LyBTZWN1cml0eSBNb2RlbAorICB2YXIgU2VjdXJpdHlNb2RlbCA9IEJhY2tm b3JtLlNlY3VyaXR5TW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2Rl bC5leHRlbmQoeworICAgIGRlZmF1bHRzOiB7CisgICAgICBwcm92aWRlcjog bnVsbCwKKyAgICAgIHNlY3VyaXR5X2xhYmVsOiBudWxsCisgICAgfSwKKyAg ICBzY2hlbWE6IFt7CisgICAgICBpZDogJ3Byb3ZpZGVyJywgbGFiZWw6ICd7 eyBfKCdQcm92aWRlcicpIH19JywKKyAgICAgIHR5cGU6ICd0ZXh0JywgZWRp dGFibGU6IHRydWUsIGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50 XzUwJworICAgIH0seworICAgICAgaWQ6ICdzZWN1cml0eV9sYWJlbCcsIGxh YmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWwnKSB9fScsCisgICAgICB0eXBl OiAndGV4dCcsIGVkaXRhYmxlOiB0cnVlLCBjZWxsSGVhZGVyQ2xhc3Nlczon d2lkdGhfcGVyY2VudF81MCcKKyAgICB9XSwKKyAgICB2YWxpZGF0ZTogZnVu Y3Rpb24oKSB7CisgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgZXJy bXNnID0gbnVsbDsKKworICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5n ZXQoJ3NlY3VyaXR5X2xhYmVsJykpIHx8CisgICAgICAgIF8uaXNOdWxsKHRo aXMuZ2V0KCdzZWN1cml0eV9sYWJlbCcpKSB8fAorICAgICAgICBTdHJpbmco dGhpcy5nZXQoJ3NlY3VyaXR5X2xhYmVsJykpLnJlcGxhY2UoL15ccyt8XHMr JC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVycm1zZyA9ICAne3sg XygnUGxlYXNlIHNwZWNpZnkgdGhlIHZhbHVlIGZvciBhbGwgdGhlIHNlY3Vy aXR5IHByb3ZpZGVycy4nKX19JzsKKyAgICAgICAgICAgIHRoaXMuZXJyb3JN b2RlbC5zZXQoJ3NlY3VyaXR5X2xhYmVsJywgZXJybXNnKTsKKyAgICAgICAg ICAgIHJldHVybiBlcnJtc2c7CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC51bnNldCgnc2VjdXJpdHlfbGFiZWwn KTsKKyAgICAgICAgICB9CisgICAgICByZXR1cm4gbnVsbDsKKyAgICB9Cisg IH0pOworCisgIC8vIENvbnN0cmFpbnQgTW9kZWwKKyAgdmFyIENvbnN0cmFp bnRNb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7 CisgICAgaWRBdHRyaWJ1dGU6ICdjb25vaWQnLAorICAgIGRlZmF1bHRzOiB7 CisgICAgICBjb25vaWQ6IHVuZGVmaW5lZCwKKyAgICAgIGNvbm5hbWU6IHVu ZGVmaW5lZCwKKyAgICAgIGNvbnNyYzogdW5kZWZpbmVkLAorICAgICAgY29u dmFsaWRhdGVkOiB1bmRlZmluZWQKKyAgICB9LAorICAgIHNjaGVtYTogW3sK KyAgICAgIGlkOiAnY29ubmFtZScsIGxhYmVsOiAne3sgXygnTmFtZScpIH19 JywgdHlwZTogJ3RleHQnLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgIGNlbGxI ZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF80MCcsIGVkaXRhYmxlOiAn aXNFZGl0YWJsZScKKyAgICB9LHsKKyAgICAgIGlkOiAnY29uc3JjJywgbGFi ZWw6ICd7eyBfKCdDaGVjaycpIH19JywgdHlwZTogJ211bHRpbGluZScsCisg ICAgICBjZWxsOiBCYWNrZ3JpZC5FeHRlbnNpb24uVGV4dGFyZWFDZWxsLCBn cm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICBjZWxsSGVh ZGVyQ2xhc3NlczogJ3dpZHRoX3BlcmNlbnRfNjAnLCBlZGl0YWJsZTogJ2lz RWRpdGFibGUnCisgICAgfSx7CisgICAgICBpZDogJ2NvbnZhbGlkYXRlZCcs IGxhYmVsOiAne3sgXygnVmFsaWRhdGU/JykgfX0nLCB0eXBlOiAnc3dpdGNo JywgY2VsbDoKKyAgICAgICdib29sZWFuJywgZ3JvdXA6ICd7eyBfKCdEZWZp bml0aW9uJykgfX0nLCBtaW5fdmVyc2lvbjogOTAyMDAsCisgICAgICBlZGl0 YWJsZTogJ2lzRWRpdGFibGUnLAorICAgICAgb3B0aW9uczogeworICAgICAg ICAnb25UZXh0JzogJ1llcycsICdvZmZUZXh0JzogJ05vJywKKyAgICAgICAg J29uQ29sb3InOiAnc3VjY2VzcycsICdvZmZDb2xvcic6ICdwcmltYXJ5JywK KyAgICAgICAgICdzaXplJzogJ3NtYWxsJworICAgICAgfQorICAgIH1dLAor ICAgIGlzRWRpdGFibGU6IGZ1bmN0aW9uKG0pIHsKKyAgICAgIHJldHVybiBf LmlzVW5kZWZpbmVkKG0uaXNOZXcpID8gdHJ1ZSA6IG0uaXNOZXcoKTsKKyAg ICB9LAorICAgIHRvSlNPTjogQmFja2JvbmUuTW9kZWwucHJvdG90eXBlLnRv SlNPTgorICB9KTsKKworICAvLyBEb21haW4gTm9kZQorICBpZiAoIXBnQnJv d3Nlci5Ob2Rlc1snZG9tYWluJ10pIHsKKyAgICBwZ0FkbWluLkJyb3dzZXIu Tm9kZXNbJ2RvbWFpbiddID0gcGdCcm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAg ICAgIHR5cGU6ICdkb21haW4nLAorICAgICAgbGFiZWw6ICd7eyBfKCdEb21h aW4nKSB9fScsCisgICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLWRvbWFp bicsCisgICAgICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0 cnVlLAorICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJ10sCisgICAgICBJ bml0OiBmdW5jdGlvbigpIHsKKyAgICAgICAgLy8gQXZvaWQgbXVsaXRwbGUg cmVnaXN0cmF0aW9uIG9mIG1lbnVzCisgICAgICAgIGlmICh0aGlzLmluaXRp YWxpemVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMu aW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAgIHBnQnJvd3Nlci5hZGRf bWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX2RvbWFpbl9vbl9j b2xsJywgbm9kZTogJ2NvbGwtZG9tYWluJywgbW9kdWxlOiB0aGlzLAorICAg ICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJh Y2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29y eTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJlbDogJ3t7IF8oJ0RvbWFp bi4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24t ZG9tYWluJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiB0cnVl fSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAgICAgIH0s eworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfZG9tYWluJywgbm9kZTogJ2Rv bWFpbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdEb21haW4uLi4nKSB9fScsCisgICAgICAg ICAgaWNvbjogJ3djVGFiSWNvbiBpY29uLWRvbWFpbicsIGRhdGE6IHthY3Rp b246ICdjcmVhdGUnLCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxl OiAnY2FuQ3JlYXRlJworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAn Y3JlYXRlX2RvbWFpbicsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMs CisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBj YWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNh dGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygn RG9tYWluLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24g aWNvbi1kb21haW4nLCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6 IGZhbHNlfSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnCisgICAg ICAgIH0KKyAgICAgICAgXSk7CisKKyAgICAgIH0sCisgICAgICBjYW5Ecm9w OiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNhbkNoaWxkRHJvcCwKKyAg ICAgIGNhbkRyb3BDYXNjYWRlOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSdd LmNhbkNoaWxkRHJvcCwKKyAgICAgIC8vIERvbWFpbiBOb2RlIE1vZGVsCisg ICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwuZXh0ZW5k KHsKKyAgICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oYXR0cnMsIGFyZ3Mp IHsKKyAgICAgICAgICB2YXIgaXNOZXcgPSAoXy5zaXplKGF0dHJzKSA9PT0g MCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7CisgICAgICAgICAgICAvLyBT ZXQgU2VsZWN0ZWQgU2NoZW1hCisgICAgICAgICAgICBzY2hlbWEgPSBhcmdz Lm5vZGVfaW5mby5zY2hlbWEubGFiZWwKKyAgICAgICAgICAgIHRoaXMuc2V0 KHsnYmFzZW5zcCc6IHNjaGVtYX0sIHtzaWxlbnQ6IHRydWV9KTsKKworICAg ICAgICAgICAgLy8gU2V0IEN1cnJlbnQgVXNlcgorICAgICAgICAgICAgdmFy IHVzZXJJbmZvID0gcGdCcm93c2VyLnNlcnZlckluZm9bYXJncy5ub2RlX2lu Zm8uc2VydmVyLl9pZF0udXNlcjsKKyAgICAgICAgICAgIHRoaXMuc2V0KHsn b3duZXInOiB1c2VySW5mby5uYW1lfSwge3NpbGVudDogdHJ1ZX0pOworICAg ICAgICAgIH0KKyAgICAgICAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2Rl bC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMp OworICAgICAgICB9LAorICAgICAgICBkZWZhdWx0czogeworICAgICAgICAg IG5hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBvaWQ6IHVuZGVmaW5lZCwK KyAgICAgICAgICBvd25lcjogdW5kZWZpbmVkLAorICAgICAgICAgIGJhc2Vu c3A6IHVuZGVmaW5lZCwKKyAgICAgICAgICBkZXNjcmlwdGlvbjogdW5kZWZp bmVkLAorICAgICAgICAgIGJhc2V0eXBlOiB1bmRlZmluZWQsCisgICAgICAg ICAgdHlwbGVuOiB1bmRlZmluZWQsCisgICAgICAgICAgcHJlY2lzaW9uOiB1 bmRlZmluZWQsCisgICAgICAgICAgdHlwZGVmYXVsdDogdW5kZWZpbmVkLAor ICAgICAgICAgIHR5cG5vdG51bGw6IHVuZGVmaW5lZCwKKyAgICAgICAgICBz eXNkb21haW46IHVuZGVmaW5lZCwKKyAgICAgICAgICBjb2xsbmFtZTogdW5k ZWZpbmVkLAorICAgICAgICAgIGNvbnN0cmFpbnRzOiBbXSwKKyAgICAgICAg ICBzZWNsYWJlbHM6IFtdCisgICAgICAgIH0sCisgICAgICAgIHR5cGVfb3B0 aW9uczogdW5kZWZpbmVkLAorICAgICAgICAvLyBEb21haW4gU2NoZW1hCisg ICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJl bDogJ3t7IF8oJ05hbWUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0 ZScsICdlZGl0J10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQn LCBsYWJlbDone3sgXygnT0lEJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAg ICAgICAgICB0eXBlOiAndGV4dCcgLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6J3t7 IF8oJ093bmVyJykgfX0nLCBjZWxsOiAnc3RyaW5nJywgY29udHJvbDogQmFj a2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250cm9sLAorICAgICAgICAgIG5vZGU6 ICdyb2xlJywgIHR5cGU6ICd0ZXh0JywgbW9kZTogWydlZGl0JywgJ2NyZWF0 ZScsICdwcm9wZXJ0aWVzJ10KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdiYXNlbnNwJywgbGFiZWw6J3t7IF8oJ1NjaGVtYScpIH19JywgY2VsbDog J25vZGUtbGlzdC1ieS1uYW1lJywKKyAgICAgICAgICAgY29udHJvbDogJ25v ZGUtbGlzdC1ieS1uYW1lJywgY2FjaGVfbGV2ZWw6ICdkYXRhYmFzZScsIHR5 cGU6ICd0ZXh0JywKKyAgICAgICAgICAgbm9kZTogJ3NjaGVtYScsIG1vZGU6 IFsnY3JlYXRlJywgJ2VkaXQnXQorICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3N5c2RvbWFpbicsIGxhYmVsOid7eyBfKCdTeXN0ZW0gRG9tYWluPycp IH19JywgY2VsbDogJ2Jvb2xlYW4nLAorICAgICAgICAgIHR5cGU6ICdzd2l0 Y2gnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICBvcHRpb25z OiB7CisgICAgICAgICAgICAnb25UZXh0JzogJ1llcycsICdvZmZUZXh0Jzog J05vJywKKyAgICAgICAgICAgICdvbkNvbG9yJzogJ3N1Y2Nlc3MnLCAnb2Zm Q29sb3InOiAncHJpbWFyeScsCisgICAgICAgICAgICAnc2l6ZSc6ICdzbWFs bCcKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn ZGVzY3JpcHRpb24nLCBsYWJlbDone3sgXygnQ29tbWVudCcpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ211bHRpbGluZScKKyAg ICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdiYXNldHlwZScsIGxhYmVsOid7 eyBfKCdCYXNlIFR5cGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLCBjb250cm9s OiAnbm9kZS1hamF4LW9wdGlvbnMnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0 JywgbW9kZTpbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgZ3Jv dXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLCB1cmw6ICdnZXRfdHlwZXMn LAorICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAh bS5pc05ldygpOyB9LCBmaXJzdF9lbXB0eTogdHJ1ZSwKKyAgICAgICAgICB0 cmFuc2Zvcm06IGZ1bmN0aW9uKGQpeworICAgICAgICAgICAgdGhpcy5tb2Rl bC50eXBlX29wdGlvbnMgPSAgZDsKKyAgICAgICAgICAgIHJldHVybiBkOwor ICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICd0eXBs ZW4nLCBsYWJlbDone3sgXygnTGVuZ3RoJykgfX0nLCBjZWxsOiAnc3RyaW5n JywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVm aW5pdGlvbicpIH19JywgZGVwczogWydiYXNldHlwZSddLAorICAgICAgICAg IGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAvLyBXZSB3 aWxsIHN0b3JlIHR5cGUgZnJvbSBzZWxlY3RlZCBmcm9tIGNvbWJvYm94Cisg ICAgICAgICAgICBpZiAoIW0uaXNOZXcoKSkgeworICAgICAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBv Zl90eXBlID0gbS5nZXQoJ2Jhc2V0eXBlJyk7CisgICAgICAgICAgICBpZiht LnR5cGVfb3B0aW9ucykgeworICAgICAgICAgICAgICAvLyBpdGVyYXRpbmcg b3ZlciBhbGwgdGhlIHR5cGVzCisgICAgICAgICAgICAgIF8uZWFjaChtLnR5 cGVfb3B0aW9ucywgZnVuY3Rpb24obykgeworICAgICAgICAgICAgICAgIC8v IGlmIHR5cGUgZnJvbSBzZWxlY3RlZCBmcm9tIGNvbWJvYm94IG1hdGNoZXMg aW4gb3B0aW9ucworICAgICAgICAgICAgICAgIGlmICggb2ZfdHlwZSA9PSBv LnZhbHVlICkgeworICAgICAgICAgICAgICAgICAgICAvLyBpZiBsZW5ndGgg aXMgYWxsb3dlZCBmb3Igc2VsZWN0ZWQgdHlwZQorICAgICAgICAgICAgICAg ICAgICBpZihvLmxlbmd0aCkKKyAgICAgICAgICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgICAgICAgIC8vIHNldCB0aGUgdmFsdWVzIGluIG1vZGVs CisgICAgICAgICAgICAgICAgICAgICAgbS5zZXQoJ2lzX3RsZW5ndGgnLCB0 cnVlLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICAgICAg bS5zZXQoJ21pbl92YWwnLCBvLm1pbl92YWwsIHtzaWxlbnQ6IHRydWV9KTsK KyAgICAgICAgICAgICAgICAgICAgICBtLnNldCgnbWF4X3ZhbCcsIG8ubWF4 X3ZhbCwge3NpbGVudDogdHJ1ZX0pOworICAgICAgICAgICAgICAgICAgICB9 CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICB9KTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAhbS5nZXQoJ2lzX3RsZW5n dGgnKTsKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAgICAgIGlk OiAncHJlY2lzaW9uJywgbGFiZWw6J3t7IF8oJ1ByZWNpc2lvbicpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91 cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsIGRlcHM6IFsnYmFzZXR5cGUn XSwKKyAgICAgICAgICBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAg ICAgICAgLy8gV2Ugd2lsbCBzdG9yZSB0eXBlIGZyb20gc2VsZWN0ZWQgZnJv bSBjb21ib2JveAorICAgICAgICAgICAgaWYgKCFtLmlzTmV3KCkpIHsKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICB2YXIgb2ZfdHlwZSA9IG0uZ2V0KCdiYXNldHlwZScpOworICAg ICAgICAgICAgaWYobS50eXBlX29wdGlvbnMpIHsKKyAgICAgICAgICAgICAg Ly8gaXRlcmF0aW5nIG92ZXIgYWxsIHRoZSB0eXBlcworICAgICAgICAgICAg ICBfLmVhY2gobS50eXBlX29wdGlvbnMsIGZ1bmN0aW9uKG8pIHsKKyAgICAg ICAgICAgICAgICAvLyBpZiB0eXBlIGZyb20gc2VsZWN0ZWQgZnJvbSBjb21i b2JveCBtYXRjaGVzIGluIG9wdGlvbnMKKyAgICAgICAgICAgICAgICBpZiAo IG9mX3R5cGUgPT0gby52YWx1ZSApIHsKKyAgICAgICAgICAgICAgICAgICAg Ly8gaWYgcHJlY2Vzc2lvbiBpcyBhbGxvd2VkIGZvciBzZWxlY3RlZCB0eXBl CisgICAgICAgICAgICAgICAgICAgIGlmKG8ucHJlY2lzaW9uKQorICAgICAg ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgLy8gc2V0 IHRoZSB2YWx1ZXMgaW4gbW9kZWwKKyAgICAgICAgICAgICAgICAgICAgICBt LnNldCgnaXNfcHJlY2lzaW9uJywgdHJ1ZSwge3NpbGVudDogdHJ1ZX0pOwor ICAgICAgICAgICAgICAgICAgICAgIG0uc2V0KCdtaW5fdmFsJywgby5taW5f dmFsLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgICAgICAgICAgICAg bS5zZXQoJ21heF92YWwnLCBvLm1heF92YWwsIHtzaWxlbnQ6IHRydWV9KTsK KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBy ZXR1cm4gIW0uZ2V0KCdpc19wcmVjaXNpb24nKTsKKyAgICAgICAgICB9Cisg ICAgICAgIH0seworICAgICAgICAgIGlkOiAndHlwZGVmYXVsdCcsIGxhYmVs Oid7eyBfKCdEZWZhdWx0JykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicp IH19JywKKyAgICAgICAgICBoZWxwTWVzc2FnZTogIkVudGVyIGFuIGV4cHJl c3Npb24gb3IgYSB2YWx1ZS4iCisgICAgICAgIH0seworICAgICAgICAgIGlk OiAndHlwbm90bnVsbCcsIGxhYmVsOid7eyBfKCdOb3QgTnVsbD8nKSB9fScs IGNlbGw6ICdib29sZWFuJywKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywg Z3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIG9w dGlvbnM6IHsKKyAgICAgICAgICAgICdvblRleHQnOiAnWWVzJywgJ29mZlRl eHQnOiAnTm8nLAorICAgICAgICAgICAgJ29uQ29sb3InOiAnc3VjY2Vzcycs ICdvZmZDb2xvcic6ICdwcmltYXJ5JywKKyAgICAgICAgICAgICdzaXplJzog J3NtYWxsJworICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdjb2xsbmFtZScsIGxhYmVsOid7eyBfKCdDb2xsYXRpb24nKSB9fScs IGNlbGw6ICdzdHJpbmcnLCBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMn LAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZp bml0aW9uJykgfX0nLCB1cmw6ICdnZXRfY29sbGF0aW9ucycsIGRpc2FibGVk OiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICByZXR1cm4gIW0uaXNOZXco KTsKKyAgICAgICAgICB9CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn Y29uc3RyYWludHMnLCBsYWJlbDone3sgXygnQ29uc3RyYWludHMnKSB9fScs IGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICdjb2xsZWN0aW9u JywgZ3JvdXA6ICd7eyBfKCdDb25zdHJhaW50cycpIH19JywgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIG1vZGVsOiBDb25zdHJhaW50 TW9kZWwsIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLAorICAgICAg ICAgIGNhbkVkaXQ6IGZhbHNlCisgICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3NlY2xhYmVscycsIGxhYmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWxz JykgfX0nLAorICAgICAgICAgIG1vZGVsOiBTZWN1cml0eU1vZGVsLCB0eXBl OiAnY29sbGVjdGlvbicsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1 cml0eScpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAg ICAgIG1pbl92ZXJzaW9uOiA5MDEwMCwgY2FuQWRkOiB0cnVlLAorICAgICAg ICAgIGNhbkVkaXQ6IGZhbHNlLCBjYW5EZWxldGU6IHRydWUsCisgICAgICAg ICAgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsIHVuaXF1ZUNv bCA6IFsncHJvdmlkZXInXQorICAgICAgICB9CisgICAgICAgIF0sCisgICAg ICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIC8vIENsaWVudCBTaWRlIFZhbGlk YXRpb24KKyAgICAgICAgeworICAgICAgICAgIHZhciBlcnIgPSB7fSwKKyAg ICAgICAgICAgICAgZXJybXNnLAorICAgICAgICAgICAgICBzZWNsYWJlbHMg PSB0aGlzLmdldCgnc2VjbGFiZWxzJyk7CisKKyAgICAgICAgICBpZiAoXy5p c1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScpKSB8fCBTdHJpbmcodGhpcy5n ZXQoJ25hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykg eworICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygnTmFtZSBjYW4g bm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVy cm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAg ICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnYmFzZXR5cGUnKSkgfHwg U3RyaW5nKHRoaXMuZ2V0KCdiYXNldHlwZScpKS5yZXBsYWNlKC9eXHMrfFxz KyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2Jhc2V0eXBl J10gPSAne3sgXygnQmFzZSBUeXBlIGNhbiBub3QgYmUgZW1wdHkhJykgfX0n OworICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsnYmFzZXR5 cGUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoc2VjbGFiZWxz KSB7CisgICAgICAgICAgICB2YXIgc2VjTGFiZWxzRXJyOworICAgICAgICAg ICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWNsYWJlbHMubW9kZWxzLmxlbmd0 aCAmJiAhc2VjTGFiZWxzRXJyOyBpKyspIHsKKyAgICAgICAgICAgICAgc2Vj TGFiZWxzRXJyID0gKHNlY2xhYmVscy5tb2RlbHNbaV0pLnZhbGlkYXRlLmFw cGx5KHNlY2xhYmVscy5tb2RlbHNbaV0pOworICAgICAgICAgICAgICBpZiAo c2VjTGFiZWxzRXJyKSB7CisgICAgICAgICAgICAgICAgZXJyWydzZWNsYWJl bHMnXSA9IHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgICAgICBlcnJtc2cg PSBlcnJtc2cgfHwgc2VjTGFiZWxzRXJyOworICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgdGhpcy5l cnJvck1vZGVsLmNsZWFyKCkuc2V0KGVycik7CisKKyAgICAgICAgICByZXR1 cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgfSksCisgICAgICBjYW5DcmVh dGU6IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtLCBkYXRhKSB7CisgICAgICAg IC8vSWYgY2hlY2sgaXMgZmFsc2UgdGhlbiAsIHdlIHdpbGwgYWxsb3cgY3Jl YXRlIG1lbnUKKyAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jaGVjayA9PSBm YWxzZSkKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICB2YXIg dCA9IHBnQnJvd3Nlci50cmVlLCBpID0gaXRlbSwgZCA9IGl0ZW1EYXRhOwor ICAgICAgICAvLyBUbyBpdGVyYXRlIG92ZXIgdHJlZSB0byBjaGVjayBwYXJl bnQgbm9kZQorICAgICAgICB3aGlsZSAoaSkgeworICAgICAgICAgIC8vIElm IGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gY3JlYXRlIGRvbWFp bgorICAgICAgICAgIGlmIChfLmluZGV4T2YoWydzY2hlbWEnXSwgZC5fdHlw ZSkgPiAtMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg ICAgaWYgKCdjb2xsLWRvbWFpbicgPT0gZC5fdHlwZSkgeworICAgICAgICAg ICAgLy9DaGVjayBpZiB3ZSBhcmUgbm90IGNoaWxkIG9mIGNhdGFsb2cKKyAg ICAgICAgICAgIHByZXZfaSA9IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQo aSkgOiBudWxsOworICAgICAgICAgICAgcHJldl9kID0gcHJldl9pID8gdC5p dGVtRGF0YShwcmV2X2kpIDogbnVsbDsKKyAgICAgICAgICAgIGlmKCBwcmV2 X2QuX3R5cGUgPT0gJ2NhdGFsb2cnKSB7CisgICAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAg IHJldHVybiB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg ICAgICAgICBpID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51 bGw7CisgICAgICAgICAgZCA9IGkgPyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsK KyAgICAgICAgfQorICAgICAgICAvLyBieSBkZWZhdWx0IHdlIGRvIG5vdCB3 YW50IHRvIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgIHJldHVybiB0cnVl OworICAgICAgfSwKKyAgICAgIGlzRGlzYWJsZWQ6IGZ1bmN0aW9uKG0pewor ICAgICAgICAgIGlmICghbS5pc05ldygpKSB7CisgICAgICAgICAgICB2YXIg c2VydmVyID0gdGhpcy5ub2RlX2luZm8uc2VydmVyOworICAgICAgICAgICAg aWYgKHNlcnZlci52ZXJzaW9uIDwgOTAyMDApCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAg ICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K KyAgfSk7CisKKyAgfQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ2Rv bWFpbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9jcmVhdGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9z cWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mOGIwYjc1Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4x X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDMwIEBACit7JSBpbXBvcnQg J21hY3Jvcy9zY2hlbWFzL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUg JX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBET01BSU4ge3sgY29ubnxxdElk ZW50KGRhdGEuYmFzZW5zcCwgZGF0YS5uYW1lKSB9fQorICAgIEFTIHt7IGNv bm58cXRUeXBlSWRlbnQoZGF0YS5iYXNldHlwZSkgfX17JSBpZiBkYXRhLnR5 cGxlbiAlfSh7e2RhdGEudHlwbGVufX17JSBpZiBkYXRhLnByZWNpc2lvbiAl fSx7e2RhdGEucHJlY2lzaW9ufX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfXsl IGlmIGRhdGEuY29sbG5hbWUgJX0KKworICAgIENPTExBVEUge3sgZGF0YS5j b2xsbmFtZSB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS50eXBkZWZhdWx0ICV9 CisKKyAgICBERUZBVUxUIHt7IGRhdGEudHlwZGVmYXVsdCB9fXslIGVuZGlm ICV9eyUgaWYgZGF0YS50eXBub3RudWxsICV9CisKKyAgICBOT1QgTlVMTHsl IGVuZGlmICV9eyUgaWYgZGF0YS5jb25zdHJhaW50cyAlfXslIGZvciBjIGlu IGRhdGEuY29uc3RyYWludHMgJX17JSBpZiBjLmNvbm5hbWUgYW5kIGMuY29u c3JjICV9CisKKyAgICBDT05TVFJBSU5UIHt7IGNvbm58cXRJZGVudChjLmNv bm5hbWUpIH19IENIRUNLICh7eyBjLmNvbnNyYyB9fSl7JSBlbmRpZiAtJX0K K3slIGVuZGZvciAtJX0KK3slIGVuZGlmIC0lfTsKKworeyUgaWYgZGF0YS5v d25lciAlfQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChkYXRhLmJh c2Vuc3AsIGRhdGEubmFtZSkgfX0gT1dORVIgVE8ge3sgY29ubnxxdElkZW50 KGRhdGEub3duZXIpIH19O3slIGVuZGlmICV9eyUgaWYgZGF0YS5kZXNjcmlw dGlvbiAlfQorCisKK0NPTU1FTlQgT04gRE9NQUlOIHt7IGNvbm58cXRJZGVu dChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0KKyAgICBJUyAne3sgZGF0 YS5kZXNjcmlwdGlvbiB9fSc7eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5zZWNs YWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBp ZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKKwore3sg U0VDTEFCTEUuU0VUKGNvbm4sICdET01BSU4nLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEuYmFzZW5zcCkgfX17JSBl bmRpZiAtJX0KK3slIGVuZGZvciAtJX0KK3slIGVuZGlmIC0lfQorCit7JSBl bmRpZiAtJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv dGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85 LjFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjdhMTJiNTAKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1 cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMTYgQEAKK3slIGlmIHNjaWQgYW5k IGRvaWQgJX0KK1NFTEVDVAorICAgIGQudHlwbmFtZSBhcyBuYW1lLCBibi5u c3BuYW1lIGFzIGJhc2Vuc3AKK0ZST00KKyAgICBwZ190eXBlIGQKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgYm4gT04gYm4ub2lkPWQudHlwbmFtZXNwYWNl CitXSEVSRQorICAgIGQudHlwbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAor QU5ECisgICAgZC5vaWQ9e3tkb2lkfX06OmludDsKK3slIGVuZGlmICV9CisK K3slIGlmIG5hbWUgJX0KK0RST1AgRE9NQUlOIHt7IGNvbm58cXRJZGVudChi YXNlbnNwLCBuYW1lKSB9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVu ZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dl dF9jb2xsYXRpb25zLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVt cGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9jb2xsYXRpb25zLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MTlmZGJi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90 ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0X2NvbGxhdGlvbnMu c3FsCkBAIC0wLDAgKzEsMTAgQEAKK1NFTEVDVCAtLW5zcG5hbWUsIGNvbGxu YW1lLAorICAgIENBU0UgV0hFTiBsZW5ndGgobnNwbmFtZSkgPiAwIEFORCBs ZW5ndGgoY29sbG5hbWUpID4gMCBUSEVOCisgICAgY29uY2F0KG5zcG5hbWUs ICcuIicsIGNvbGxuYW1lLCciJykKKyAgICBFTFNFICcnIEVORCBBUyBjb3B5 X2NvbGxhdGlvbgorRlJPTQorICAgIHBnX2NvbGxhdGlvbiBjLCBwZ19uYW1l c3BhY2UgbgorV0hFUkUKKyAgICBjLmNvbGxuYW1lc3BhY2U9bi5vaWQKK09S REVSIEJZCisgICAgbnNwbmFtZSwgY29sbG5hbWU7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85 LjFfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0X2Nv bnN0cmFpbnRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi44OTdmYjI0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvZ2V0 X2NvbnN0cmFpbnRzLnNxbApAQCAtMCwwICsxLDE1IEBACitTRUxFQ1QKKyAg ICAnRE9NQUlOJyBBUyBvYmplY3RraW5kLCBjLm9pZCBhcyBjb25vaWQsIGNv bm5hbWUsIHR5cG5hbWUgYXMgcmVsbmFtZSwgbnNwbmFtZSwgZGVzY3JpcHRp b24sCisgICAgcmVnZXhwX3JlcGxhY2UocGdfZ2V0X2NvbnN0cmFpbnRkZWYo Yy5vaWQsIHRydWUpLCBFJ0NIRUNLIFxcKCguKilcXCkuKicsIEUnXFwxJykg YXMgY29ucworRlJPTQorICAgIHBnX2NvbnN0cmFpbnQgYworSk9JTgorICAg IHBnX3R5cGUgdCBPTiB0Lm9pZD1jb250eXBpZAorSk9JTgorICAgIHBnX25h bWVzcGFjZSBubCBPTiBubC5vaWQ9dHlwbmFtZXNwYWNlCitMRUZUIE9VVEVS IEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9 dC5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY29uc3RyYWludCc6OnJlZ2Ns YXNzKQorV0hFUkUKKyAgICBjb250eXBlID0gJ2MnCisgICAgQU5EIGNvbnR5 cGlkID0gIHt7ZG9pZH19OjpvaWQKK09SREVSIEJZIGNvbm5hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21h aW5zL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL2dldF9v aWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhi NWM4OTEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNx bApAQCAtMCwwICsxLDE4IEBACit7JSBpZiBkb2lkICV9CitTRUxFQ1QKKyAg ICBkLnR5cG5hbWVzcGFjZSBhcyBzY2lkCitGUk9NCisgICAgcGdfdHlwZSBk CitXSEVSRQorICAgIGQub2lkPXt7IGRvaWQgfX06Om9pZDsKK3slIGVsc2Ug JX0KK1NFTEVDVAorICAgIGQub2lkLCBkLnR5cG5hbWVzcGFjZQorRlJPTQor ICAgIHBnX3R5cGUgZAorSk9JTgorICAgIHBnX25hbWVzcGFjZSBibiBPTiBi bi5vaWQ9ZC50eXBuYW1lc3BhY2UKK1dIRVJFCisgICAgYm4ubnNwbmFtZSA9 IHt7IGJhc2Vuc3B8cXRMaXRlcmFsIH19CisgICAgQU5EIGQudHlwbmFtZT17 eyBuYW1lfHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMv dGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL25vZGUuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiZDNlNWIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRl cy9kb21haW5zL3NxbC85LjFfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDEz IEBACitTRUxFQ1QKKyAgICBkLm9pZCwgZC50eXBuYW1lIGFzIG5hbWUsIHBn X2dldF91c2VyYnlpZChkLnR5cG93bmVyKSBhcyBvd25lciwKKyAgICBibi5u c3BuYW1lIGFzIGJhc2Vuc3AKK0ZST00KKyAgICBwZ190eXBlIGQKK0pPSU4K KyAgICBwZ190eXBlIGIgT04gYi5vaWQgPSBkLnR5cGJhc2V0eXBlCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIGJuIE9OIGJuLm9pZD1kLnR5cG5hbWVzcGFj ZQorV0hFUkUKKyAgICBkLnR5cG5hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK K09SREVSIEJZCisgICAgZC50eXBuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4xX3Bs dXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3Rl bXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MmFmMzlkCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w bGF0ZXMvZG9tYWlucy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAg LTAsMCArMSwzNSBAQAorU0VMRUNUCisgICAgZC5vaWQsIGQudHlwbmFtZSBh cyBuYW1lLCBkLnR5cGJhc2V0eXBlLCBmb3JtYXRfdHlwZShiLm9pZCxOVUxM KSBhcyBiYXNldHlwZSwKKyAgICBwZ19nZXRfdXNlcmJ5aWQoZC50eXBvd25l cikgYXMgb3duZXIsCisgICAgYy5vaWQgQVMgY29sbG9pZCwgZm9ybWF0X3R5 cGUoYi5vaWQsIGQudHlwdHlwbW9kKSBBUyBmdWxsdHlwZSwKKyAgICBDQVNF IFdIRU4gbGVuZ3RoKGNuLm5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGMuY29s bG5hbWUpID4gMCBUSEVOCisgICAgY29uY2F0KGNuLm5zcG5hbWUsICcuIics IGMuY29sbG5hbWUsJyInKQorICAgIEVMU0UgJycgRU5EIEFTIGNvbGxuYW1l LAorICAgIGQudHlwdHlwbW9kLCBkLnR5cG5vdG51bGwsIGQudHlwZGVmYXVs dCwgZC50eXBuZGltcywgZC50eXBkZWxpbSwgYm4ubnNwbmFtZSBhcyBiYXNl bnNwLAorICAgIGRlc2NyaXB0aW9uLCAoU0VMRUNUIENPVU5UKDEpIEZST00g cGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lPWQudHlwbmFtZSkgPiAxIEFT IGRvbWlzZHVwLAorICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBl IHQzIFdIRVJFIHQzLnR5cG5hbWU9Yi50eXBuYW1lKSA+IDEgQVMgYmFzZWlz ZHVwLAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVy IHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3NlY2xh YmVsIHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9ZC5vaWQp IEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3R5cGUgZAorSk9JTgorICAg IHBnX3R5cGUgYiBPTiBiLm9pZCA9IGQudHlwYmFzZXR5cGUKK0pPSU4KKyAg ICBwZ19uYW1lc3BhY2UgYm4gT04gYm4ub2lkPWQudHlwbmFtZXNwYWNlCitM RUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl cy5vYmpvaWQ9ZC5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfdHlwZSc6OnJl Z2NsYXNzKQorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfY29sbGF0aW9uIGMg T04gZC50eXBjb2xsYXRpb249Yy5vaWQKK0xFRlQgT1VURVIgSk9JTgorICAg IHBnX25hbWVzcGFjZSBjbiBPTiBjLmNvbGxuYW1lc3BhY2U9Y24ub2lkCitX SEVSRQorICAgIGQudHlwbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAg IHslIGlmIGRvaWQgJX0KKyAgICBBTkQgZC5vaWQ9e3tkb2lkfX06OmludAor ICAgIHslIGVuZGlmICV9CitPUkRFUiBCWQorICAgIGQudHlwbmFtZTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2Rv bWFpbnMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy91cGRh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZm ZjQwNTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21h aW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjFfcGx1cy91cGRhdGUuc3Fs CkBAIC0wLDAgKzEsNjQgQEAKK3slIGltcG9ydCAnbWFjcm9zL3NjaGVtYXMv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaWYgZGF0YSAl fQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5u YW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FM VEVSIFRZUEUge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBvX2Rh dGEubmFtZSkgfX0KKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRh dGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUg ZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnR5cG5vdG51 bGwgYW5kIG5vdCBvX2RhdGEudHlwbm90bnVsbCAlfQorQUxURVIgRE9NQUlO IHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KKyAg ICBTRVQgTk9UIE5VTEw7Cit7JSBlbGlmICd0eXBub3RudWxsJyBpbiBkYXRh IGFuZCBub3QgZGF0YS50eXBub3RudWxsIGFuZCBvX2RhdGEudHlwbm90bnVs bCV9CitBTFRFUiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNl bnNwLCBuYW1lKSB9fQorICAgIERST1AgTk9UIE5VTEw7Cit7JSBlbmRpZiAt JX17JSBpZiBkYXRhLnR5cGRlZmF1bHQgJX0KK0FMVEVSIERPTUFJTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAgU0VU IERFRkFVTFQge3sgZGF0YS50eXBkZWZhdWx0IH19OworeyUgZWxpZiBub3Qg ZGF0YS50eXBkZWZhdWx0IGFuZCBvX2RhdGEudHlwZGVmYXVsdCAlfQorQUxU RVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFt ZSkgfX0KKyAgICBEUk9QIERFRkFVTFQ7Cit7JSBlbmRpZiAtJX17JSBpZiBk YXRhLm93bmVyICV9CisKK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29u bnxxdElkZW50KGRhdGEub3duZXIpIH19O3slIGVuZGlmICV9eyUgaWYgZGF0 YS5jb25zdHJhaW50cyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50 cy5kZWxldGVkICV9CisKK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAgRFJPUCBDT05TVFJBSU5U IHt7IGNvbm58cXRJZGVudChjLmNvbm5hbWUpIH19OworeyUgZW5kZm9yIC0l fQoreyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50cy5hZGRlZCAlfQoreyUg aWYgYy5jb25uYW1lIGFuZCBjLmNvbnNyYyAlfQorCitBTFRFUiBET01BSU4g e3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorICAg IEFERCBDT05TVFJBSU5UIHt7IGNvbm58cXRJZGVudChjLmNvbm5hbWUpIH19 IENIRUNLICh7eyBjLmNvbnNyYyB9fSApO3slIGVuZGlmIC0lfQoreyUgZW5k Zm9yIC0lfXslIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEu c2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sgU0VDTEFCTEUuVU5TRVQoY29u biwgJ0RPTUFJTicsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5iYXNlbnNw KSB9fQorCit7JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2Fk ZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KK3t7IFNF Q0xBQkxFLlNFVChjb25uLCAnRE9NQUlOJywgbmFtZSwgci5wcm92aWRlciwg ci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLmJhc2Vuc3ApIH19CisKK3slIGVu ZGZvciAtJX0KK3slIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQore3sgU0VDTEFCTEUu U0VUKGNvbm4sICdET01BSU4nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3Vy aXR5X2xhYmVsLCBvX2RhdGEuYmFzZW5zcCkgfX0KKworeyUgZW5kZm9yIC0l fQoreyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorQ09N TUVOVCBPTiBET01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNw LCBuYW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRl cmFsIH19O3slIGVuZGlmICV9eyUgaWYgZGF0YS5iYXNlbnNwICV9CisKKwor QUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwg bmFtZSkgfX0KKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRh LmJhc2Vuc3ApIH19O3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21h aW5zL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvY3JlYXRl LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzFl NWEzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApA QCAtMCwwICsxLDM2IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3Nl Y3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGlmIGRhdGEgJX0K K0NSRUFURSBET01BSU4ge3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCwg ZGF0YS5uYW1lKSB9fQorICAgIEFTIHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0 YS5iYXNldHlwZSkgfX17JSBpZiBkYXRhLnR5cGxlbiAlfSh7e2RhdGEudHlw bGVufX17JSBpZiBkYXRhLnByZWNpc2lvbiAlfSx7e2RhdGEucHJlY2lzaW9u fX17JSBlbmRpZiAlfSl7JSBlbmRpZiAlfXslIGlmIGRhdGEuY29sbG5hbWUg YW5kIGRhdGEuY29sbG5hbWUgIT0gInBnX2NhdGFsb2cuXCJkZWZhdWx0XCIi ICV9CisKKyAgICBDT0xMQVRFIHt7IGRhdGEuY29sbG5hbWUgfX17JSBlbmRp ZiAlfXslIGlmIGRhdGEudHlwZGVmYXVsdCAlfQorCisgICAgREVGQVVMVCB7 eyBkYXRhLnR5cGRlZmF1bHQgfX17JSBlbmRpZiAlfXslIGlmIGRhdGEudHlw bm90bnVsbCAlfQorCisgICAgTk9UIE5VTEx7JSBlbmRpZiAlfTsKKworeyUg aWYgZGF0YS5vd25lciAlfQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJZGVu dChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0gT1dORVIgVE8ge3sgY29u bnxxdElkZW50KGRhdGEub3duZXIpIH19O3slIGVuZGlmICV9CisKK3slIGlm IGRhdGEuY29uc3RyYWludHMgJX0KK3slIGZvciBjIGluIGRhdGEuY29uc3Ry YWludHMgJX17JSBpZiBjLmNvbm5hbWUgYW5kIGMuY29uc3JjICV9CisKK0FM VEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5iYXNlbnNwLCBkYXRh Lm5hbWUpIH19CisgICAgQUREIENPTlNUUkFJTlQge3sgY29ubnxxdElkZW50 KGMuY29ubmFtZSkgfX0gQ0hFQ0sgKHt7IGMuY29uc3JjIH19KXslIGlmIG5v dCBjLmNvbnZhbGlkYXRlZCAlfSBOT1QgVkFMSUR7JSBlbmRpZiAlfXslIGVu ZGlmIC0lfTsKK3slIGVuZGZvciAtJX0KK3slIGVuZGlmICV9CisKK3slIGlm IGRhdGEuZGVzY3JpcHRpb24gJX0KK0NPTU1FTlQgT04gRE9NQUlOIHt7IGNv bm58cXRJZGVudChkYXRhLmJhc2Vuc3AsIGRhdGEubmFtZSkgfX0KKyAgICBJ UyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7eyUgZW5kaWYgLSV9CisKK3sl IGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xh YmVscyAlfQoreyUgaWYgci5zZWN1cml0eV9sYWJlbCBhbmQgci5wcm92aWRl ciAlfQorCisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRE9NQUlOJywgZGF0 YS5uYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLmJh c2Vuc3ApIH19eyUgZW5kaWYgLSV9Cit7JSBlbmRmb3IgLSV9Cit7JSBlbmRp ZiAtJX0KKworeyUgZW5kaWYgLSV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjJfcGx1cy9k ZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMv ZG9tYWlucy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi43YTEyYjUwCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlu cy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDE2IEBACit7 JSBpZiBzY2lkIGFuZCBkb2lkICV9CitTRUxFQ1QKKyAgICBkLnR5cG5hbWUg YXMgbmFtZSwgYm4ubnNwbmFtZSBhcyBiYXNlbnNwCitGUk9NCisgICAgcGdf dHlwZSBkCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIGJuIE9OIGJuLm9pZD1k LnR5cG5hbWVzcGFjZQorV0hFUkUKKyAgICBkLnR5cG5hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKK0FORAorICAgIGQub2lkPXt7ZG9pZH19OjppbnQ7Cit7 JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9CitEUk9QIERPTUFJTiB7eyBj b25ufHF0SWRlbnQoYmFzZW5zcCwgbmFtZSkgfX17JSBpZiBjYXNjYWRlICV9 IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjJfcGx1cy9nZXRfY29sbGF0aW9ucy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjJfcGx1cy9nZXRf Y29sbGF0aW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTU5YzE3ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMl9wbHVzL2dl dF9jb2xsYXRpb25zLnNxbApAQCAtMCwwICsxLDEwIEBACitTRUxFQ1QgLS1u c3BuYW1lLCBjb2xsbmFtZSwKKyAgICBDQVNFIFdIRU4gbGVuZ3RoKG5zcG5h bWUpID4gMCBBTkQgbGVuZ3RoKGNvbGxuYW1lKSA+IDAgIFRIRU4KKyAgICBj b25jYXQobnNwbmFtZSwgJy4iJywgY29sbG5hbWUsJyInKQorICAgIEVMU0Ug JycgRU5EIEFTIGNvcHlfY29sbGF0aW9uCitGUk9NCisgICAgcGdfY29sbGF0 aW9uIGMsIHBnX25hbWVzcGFjZSBuCitXSEVSRQorICAgIGMuY29sbG5hbWVz cGFjZT1uLm9pZAorT1JERVIgQlkKKyAgICBuc3BuYW1lLCBjb2xsbmFtZTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz L2RvbWFpbnMvc3FsLzkuMl9wbHVzL2dldF9jb25zdHJhaW50cy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85 LjJfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmRmOTU2YmYKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3Nx bC85LjJfcGx1cy9nZXRfY29uc3RyYWludHMuc3FsCkBAIC0wLDAgKzEsMTUg QEAKK1NFTEVDVAorICAgICdET01BSU4nIEFTIG9iamVjdGtpbmQsIGMub2lk IGFzIGNvbm9pZCwgY29ubmFtZSwgdHlwbmFtZSBhcyByZWxuYW1lLCBuc3Bu YW1lLCBkZXNjcmlwdGlvbiwKKyAgICByZWdleHBfcmVwbGFjZShwZ19nZXRf Y29uc3RyYWludGRlZihjLm9pZCwgdHJ1ZSksIEUnQ0hFQ0sgXFwoKC4qKVxc KS4qJywgRSdcXDEnKSBhcyBjb25zcmMsIGNvbm5vaW5oZXJpdCwgY29udmFs aWRhdGVkCitGUk9NCisgICAgcGdfY29uc3RyYWludCBjCitKT0lOCisgICAg cGdfdHlwZSB0IE9OIHQub2lkPWNvbnR5cGlkCitKT0lOCisgICAgcGdfbmFt ZXNwYWNlIG5sIE9OIG5sLm9pZD10eXBuYW1lc3BhY2UKK0xFRlQgT1VURVIg Sk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD10 Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJhaW50Jzo6cmVnY2xh c3MpCitXSEVSRQorICAgIGNvbnR5cGUgPSAnYycgQU5EIGNvbnR5cGlkID0g IHt7ZG9pZH19OjpvaWQKK09SREVSIEJZCisgICAgY29ubmFtZTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFp bnMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvZ2V0X29p ZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI1 Yzg5MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3Fs CkBAIC0wLDAgKzEsMTggQEAKK3slIGlmIGRvaWQgJX0KK1NFTEVDVAorICAg IGQudHlwbmFtZXNwYWNlIGFzIHNjaWQKK0ZST00KKyAgICBwZ190eXBlIGQK K1dIRVJFCisgICAgZC5vaWQ9e3sgZG9pZCB9fTo6b2lkOworeyUgZWxzZSAl fQorU0VMRUNUCisgICAgZC5vaWQsIGQudHlwbmFtZXNwYWNlCitGUk9NCisg ICAgcGdfdHlwZSBkCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIGJuIE9OIGJu Lm9pZD1kLnR5cG5hbWVzcGFjZQorV0hFUkUKKyAgICBibi5uc3BuYW1lID0g e3sgYmFzZW5zcHxxdExpdGVyYWwgfX0KKyAgICBBTkQgZC50eXBuYW1lPXt7 IG5hbWV8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3Fs LzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90 ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2JkM2U1YgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz L2RvbWFpbnMvc3FsLzkuMl9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTMg QEAKK1NFTEVDVAorICAgIGQub2lkLCBkLnR5cG5hbWUgYXMgbmFtZSwgcGdf Z2V0X3VzZXJieWlkKGQudHlwb3duZXIpIGFzIG93bmVyLAorICAgIGJuLm5z cG5hbWUgYXMgYmFzZW5zcAorRlJPTQorICAgIHBnX3R5cGUgZAorSk9JTgor ICAgIHBnX3R5cGUgYiBPTiBiLm9pZCA9IGQudHlwYmFzZXR5cGUKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgYm4gT04gYm4ub2lkPWQudHlwbmFtZXNwYWNl CitXSEVSRQorICAgIGQudHlwbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAor T1JERVIgQlkKKyAgICBkLnR5cG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjJfcGx1 cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVt cGxhdGVzL2RvbWFpbnMvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4OTI5ODgKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBs YXRlcy9kb21haW5zL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAt MCwwICsxLDM0IEBACitTRUxFQ1QKKyAgICBkLm9pZCwgZC50eXBuYW1lIGFz IG5hbWUsIGQudHlwYmFzZXR5cGUsIGZvcm1hdF90eXBlKGIub2lkLE5VTEwp IGFzIGJhc2V0eXBlLCBwZ19nZXRfdXNlcmJ5aWQoZC50eXBvd25lcikgYXMg b3duZXIsCisgICAgYy5vaWQgQVMgY29sbG9pZCwgZm9ybWF0X3R5cGUoYi5v aWQsIGQudHlwdHlwbW9kKSBBUyBmdWxsdHlwZSwKKyAgICBDQVNFIFdIRU4g bGVuZ3RoKGNuLm5zcG5hbWUpID4gMCBBTkQgbGVuZ3RoKGMuY29sbG5hbWUp ID4gMCBUSEVOCisgICAgY29uY2F0KGNuLm5zcG5hbWUsICcuIicsIGMuY29s bG5hbWUsJyInKQorICAgIEVMU0UgJycgRU5EIEFTIGNvbGxuYW1lLAorICAg IGQudHlwdHlwbW9kLCBkLnR5cG5vdG51bGwsIGQudHlwZGVmYXVsdCwgZC50 eXBuZGltcywgZC50eXBkZWxpbSwgYm4ubnNwbmFtZSBhcyBiYXNlbnNwLAor ICAgIGRlc2NyaXB0aW9uLCAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlw ZSB0MiBXSEVSRSB0Mi50eXBuYW1lPWQudHlwbmFtZSkgPiAxIEFTIGRvbWlz ZHVwLAorICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQzIFdI RVJFIHQzLnR5cG5hbWU9Yi50eXBuYW1lKSA+IDEgQVMgYmFzZWlzZHVwLAor ICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9 JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3Noc2VjbGFiZWwg c2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9iam9pZD1kLm9pZCkgQVMg c2VjbGFiZWxzCitGUk9NCisgICAgcGdfdHlwZSBkCitKT0lOCisgICAgcGdf dHlwZSBiIE9OIGIub2lkID0gZC50eXBiYXNldHlwZQorSk9JTgorICAgIHBn X25hbWVzcGFjZSBibiBPTiBibi5vaWQ9ZC50eXBuYW1lc3BhY2UKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1kLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ190eXBlJzo6cmVnY2xh c3MpCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19jb2xsYXRpb24gYyBPTiBk LnR5cGNvbGxhdGlvbj1jLm9pZAorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdf bmFtZXNwYWNlIGNuIE9OIGMuY29sbG5hbWVzcGFjZT1jbi5vaWQKK1dIRVJF CisgICAgZC50eXBuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7JSBpZiBk b2lkICV9CisgIEFORCBkLm9pZD17e2RvaWR9fTo6aW50Cit7JSBlbmRpZiAl fQorT1JERVIgQlkKKyAgICBkLnR5cG5hbWU7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5zL3NxbC85LjJf cGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1w bGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lY2M3ZTlhCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMv ZG9tYWlucy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDY0 IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zY2hlbWFzL3NlY3VyaXR5Lm1hY3Jv cycgYXMgU0VDTEFCTEUgJX0KK3slIGlmIGRhdGEgJX0KK3slIHNldCBuYW1l ID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBET01BSU4ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBvX2RhdGEubmFtZSkgfX0K KyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07 Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KKwor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnR5cG5vdG51bGwgYW5kIG5vdCBv X2RhdGEudHlwbm90bnVsbCAlfQorQUxURVIgRE9NQUlOIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KKyAgICBTRVQgTk9UIE5V TEw7Cit7JSBlbGlmICd0eXBub3RudWxsJyBpbiBkYXRhIGFuZCBub3QgZGF0 YS50eXBub3RudWxsIGFuZCBvX2RhdGEudHlwbm90bnVsbCV9CitBTFRFUiBE T01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9 fQorICAgIERST1AgTk9UIE5VTEw7Cit7JSBlbmRpZiAtJX17JSBpZiBkYXRh LnR5cGRlZmF1bHQgJX0KK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLmJhc2Vuc3AsIG5hbWUpIH19CisgICAgU0VUIERFRkFVTFQge3sg ZGF0YS50eXBkZWZhdWx0IH19OworeyUgZWxpZiBub3QgZGF0YS50eXBkZWZh dWx0IGFuZCBvX2RhdGEudHlwZGVmYXVsdCAlfQorQUxURVIgRE9NQUlOIHt7 IGNvbm58cXRJZGVudChvX2RhdGEuYmFzZW5zcCwgbmFtZSkgfX0KKyAgICBE Uk9QIERFRkFVTFQ7Cit7JSBlbmRpZiAtJX17JSBpZiBkYXRhLm93bmVyICV9 CisKK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vu c3AsIG5hbWUpIH19CisgICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRh dGEub3duZXIpIH19O3slIGVuZGlmICV9eyUgaWYgZGF0YS5jb25zdHJhaW50 cyAlfQoreyUgZm9yIGMgaW4gZGF0YS5jb25zdHJhaW50cy5kZWxldGVkICV9 CisKK0FMVEVSIERPTUFJTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLmJhc2Vu c3AsIG5hbWUpIH19CisgICAgRFJPUCBDT05TVFJBSU5UIHt7IGNvbm58cXRJ ZGVudChjLmNvbm5hbWUpIH19OworeyUgZW5kZm9yIC0lfQoreyUgZm9yIGMg aW4gZGF0YS5jb25zdHJhaW50cy5hZGRlZCAlfQoreyUgaWYgYy5jb25uYW1l IGFuZCBjLmNvbnNyYyAlfQorCitBTFRFUiBET01BSU4ge3sgY29ubnxxdElk ZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQorICAgIEFERCBDT05TVFJB SU5UIHt7IGNvbm58cXRJZGVudChjLmNvbm5hbWUpIH19IENIRUNLICh7eyBj LmNvbnNyYyB9fSl7JSBpZiBjLmNvbnZhbGlkYXRlZCAlfQorICAgIE5PVCBW QUxJRHslIGVuZGlmICV9eyUgaWYgYy5jb25ub2luaGVyaXQgJX0gTk8gSU5I RVJJVHslIGVuZGlmIC0lfTt7JSBlbmRpZiAtJX0KK3slIGVuZGZvciAtJX17 JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmRlbGV0ZWQgJX0KK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdET01B SU4nLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEuYmFzZW5zcCkgfX0KKwor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxF LlNFVChjb25uLCAnRE9NQUlOJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCwgb19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfXslIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25u LCAnRE9NQUlOJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgb19kYXRhLmJhc2Vuc3ApIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfXslIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBE T01BSU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9 fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19O3sl IGVuZGlmIC0lfXslIGlmIGRhdGEuYmFzZW5zcCAlfQorCitBTFRFUiBET01B SU4ge3sgY29ubnxxdElkZW50KG9fZGF0YS5iYXNlbnNwLCBuYW1lKSB9fQor ICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEuYmFzZW5zcCkg fX07eyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0K --001a11c22a56f6a598052eb221d5 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 --001a11c22a56f6a598052eb221d5--