Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l4dYa-0000Cq-B7 for pgadmin-hackers@arkaria.postgresql.org; Wed, 27 Jan 2021 05:39:57 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1l4dYZ-0000gF-6l for pgadmin-hackers@arkaria.postgresql.org; Wed, 27 Jan 2021 05:39:55 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l4dYY-0000g7-ND for pgadmin-hackers@lists.postgresql.org; Wed, 27 Jan 2021 05:39:54 +0000 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1l4dYU-00055f-KS for pgadmin-hackers@postgresql.org; Wed, 27 Jan 2021 05:39:54 +0000 Received: by mail-pg1-x52f.google.com with SMTP id r38so802039pgk.13 for ; Tue, 26 Jan 2021 21:39:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4vO3+fVgnifdakZ/4qSghnUJfpHLGhI3RerNXNSIES4=; b=h2TTSzOJ4xKCbYL6No5vgSAMKNzR6jVU+ratB6pOhBv53DHSU+8Ft41d7vvDsj1RSy +YIFKRnUIJpdseQm1MmGnPxP1FOxW3Sg8dqyU1OpY5zeIBMu/bY/WAkU/xYUUawYYMgl bJNnRvwu5q10zTcowDLRMZrq+aVZQhMq61OiriVOfEwss6+/n3bhNqw+HA3rSsyyEU91 Chjmgh3rO8jSIJr6fagJKTcO6ACigJV9zm2vyfTn/Kud8PmQgJXoTv3P/0lsPMYZdZIV D2Ot9ujNCIXvsAMqHyvGrkCYs48yGVH6G7BVebv1p415GyLpgJykTzvaaV5EoQa8UVic KmTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=4vO3+fVgnifdakZ/4qSghnUJfpHLGhI3RerNXNSIES4=; b=c/G5FkRB72e7PrPPit/VGvS8kH9OdcXQN+oHTJcJp5GXOa7LaK01y+vM8azVbtG6O7 ZB5Gnm10dQdYj3bM2ql+zwPmaHERkrLaa4t2QsV4+fdzwZXMpCvG+SnA20sxcPPhZSqD O8oeiyPmY7Low/JBS0rWOnLNZwmxc1oEEQOX1p4UKfqeS0U6A+DtuGrGI6ESPgIx0Uav w1cR/dmtcj3+ID3kTV13Xvkjawvvxv4DcGVxgtUPkVveSz5qhX7iSAqlPEfBz73S0tTk uKWn6RB2ZGZeh1emujKUnvGNxy79sh++n0uZWgbYPJcCwFJkHH41Q36w+WOrv1SJ77Bt L8jQ== X-Gm-Message-State: AOAM530ZlgarBAyvb/hirSKcCtPzV7uqU/ZA6fHv2IYWOJQCEvXDCkJw Qtxa2aLR6FtVU9GomeRrR9mLsbmKg8b/n73DxlwVQ1Vwx9+uNidyQxJMSNEl6uc52g2CurT0258 mYqUMbrQYXYXVbwK2FV7rxg8tZwJ0Y5fjjOylJdNmD1v8US1r7YrUqvWQTwqisViH+lpNDTLED7 GwBVoWLSCtcK1jIuVBRu9fR8ZkJFi5CQBUYJ1CRea8ch7gYF1nxZ8FBKpIAg== X-Google-Smtp-Source: ABdhPJyrbznTyo6Cxr0cAdmKKEZNSMK3K1+qQ0JXQLjIHNwkw5rBi4tZkKdruzFTIHpSGnAvp7uuTZdhSNDaiMkK6z4= X-Received: by 2002:a63:5fcf:: with SMTP id t198mr9329190pgb.226.1611725988315; Tue, 26 Jan 2021 21:39:48 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Pradip Parkale Date: Wed, 27 Jan 2021 11:09:37 +0530 Message-ID: Subject: Re: [pgAdmin][RM5912]: Added support for Logical Replication. To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="00000000000002dee205b9db33c0" X-CLOUD-SEC-AV-Info: enterprisedb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000002dee205b9db33c0 Content-Type: multipart/alternative; boundary="00000000000002dedf05b9db33be" --00000000000002dedf05b9db33be Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find the updated patch. I have fixed almost all issues, some are not possible. On Sat, Jan 16, 2021 at 4:29 PM Akshay Joshi wrote: > Hi Pradip > > Following are the GUI related review comments: > > *Publication:* > > 1. The truncate option is not visible for PG 10 but the SQL query > showing it. > > Fixed, > > 1. "All table?" should be "All tables?" and "Table" should be renamed > to "Tables". > > Fixed. > > 1. "-- Publication : test; > -- DROP PUBLICATION test;" Follow the syntax(Spacing, no space between > colon) as we did for other nodes. Check the SQL tab for any other node. > > Fixed. > > 1. Select any publication and open the properties dialog, Save button > is enabled by default which should not. > > Fixed. > > 1. Create publication with (insert, update, delete, and truncate). > Open the properties dialog and Set the value of Insert, Update and Delete > to "No" check the SQL tab no ALTER query is there. ALTER query should be > there. > > Fixed. > > 1. 'Only Table' is not visible in the Properties panel. > > There is no entry of 'Only Table?' in the pg_publication table, so it is not possible to get the value of this. > > 1. On the collection node 'Publications' we should add Tables in the > properties panel. > > Fixed. > > 1. Create a publication using one table and set 'Only Table' to No. > Select a newly created publication and set 'Only Table' to Yes, no SQL > query is generated. > > I have disabled this control. This control will be enabled only when the user has changed the table data. > > 1. Adding a table in the publication should generate 'ALTER > PUBLICATION .. ADD TABLE ..' syntax instead of 'ALTER PUBLICATION .. SET > TABLE..' > > Fixed. > > 1. Create a publication with more than one table. Remove one table > from publication it is creating two ALTER statements one for DROP Table and > another one is to SET TABLE which I think not required. > > Fixed. > *Subscription:* > > 1. Reduce the width of the subscription dialog. > > Fixed. I reduced the width to '501px' > > 1. *With *tab, alignment is not proper. Switch control should be > aligned with others. > > Fixed. > > 1. Help messages required for every control in *With* tab. > > Fixed. > > 1. Open Create subscription dialog, specify the name, on the > connection tab click the button to get the publication without specifying > any details. One popup comes with msg 'host'. I would suggest to > *disabled* that button until all the required fields will be populated > or entered by the user. > > Fixed.' Publication' control will only be enabled when the user entered the required connection details. > > 1. Publication list from the same database server should be listed by > default. > > This won't be a good idea to display the default publication because if the user entered the connection details of some other server and select the default publication without clicking on the 'get_publication' button then it will be a wrong mapping between connection details and publication. Logical replication won't happen then. > > 1. Specify all the required connection details on the connection tab > and click on the 'get publication' button. It fetches the publication but > no message for the user that action is successfully completed. For the > user, it seems nothing is happening and the user will click on that button > continuously. *Suggestion: *Show some message 'Publications fetched > successfully.' or something similar. > > Fixed. Added information message at the right bottom of the page. > > 1. "-- Subscription : my_sub; -- DROP SUBSCRIPTION my_sub;" Follow the > syntax(Spacing, no space between colon) as we did for other nodes. Check > the SQL tab for any other node. > > Done. > > 1. Remove the unnecessary spaces from the following SQL: > - CONNECTION ' host=127.0.0.1 port=5436 user=postgres > dbname=postgres ' > - with (enabled = False, slot_name = my_sub1, synchronous_commit = > 'off'); > - (connect = True, enabled = True, copy_data = True, create_slot = > True, synchronous_commit = 'off'); Use small true/false instead of > True/False. > > Fixed. > > 1. Create a subscription. Open the properties dialog and click on the > "get publication" button. It throws an error message with the string > 'password', please provide a valid error message. Check for all such error > messages. > > Fixed. > > 1. Consider the above(Point 9) scenario and provide a password and > then click on the "get publication" button it throws an error "*could > not translate host name "127.0.0.1 " to address: nodename nor servname > provided, or not known*". There is a space after the IP address, even > if we remove that space or provide a different IP address the same error > occurs. > > Fixed. > > 1. The "Refresh publication" option should be disabled if the > subscription is disabled, as it should not work with the disabled > subscription. > > Fixed. > > 1. No SQL query created when we remove the Slot name for the existing > subscription. How to handle: > - If the subscription is enabled then add validation "Slot name can > not be empty". > - If the subscription is disabled then on removing the slot name > should create "ALTER SUBSCRIPTION SET (slot_name = NONE);" > > Fixed. On removing the slot name I'm adding setting the slot name as 'None'. > > 1. Provide a space after comma in the current publication list. > > Fixed. > Please explain how the service file parameter will work with the "CREATE > SUBSCRIPTION .." syntax as per documentation we have to provide the > connection info string. Not able to test it. > Removed the service parameter as it is not useful in the connection string. I have also fixed the review comments given in the demo. Subscription doesn't maintain any 'dependency' and 'dependent'. So I have not added that. > > Created #6153 to add > publication and subscription in Schema Diff. > > On Thu, Jan 14, 2021 at 6:58 PM Pradip Parkale < > pradip.parkale@enterprisedb.com> wrote: > >> Hi Akshay, >> Please find the latest patch. I missed some files in my previous patch. >> >> On Thu, Jan 14, 2021 at 5:49 PM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Pradip >>> >>> The patch is applied, but not working. Please check and send the patch >>> again. >>> >>> On Wed, Jan 13, 2021 at 9:08 AM Pradip Parkale < >>> pradip.parkale@enterprisedb.com> wrote: >>> >>>> Hi Akshay, >>>> >>>> Please ignore my previous patch. Please find my updated patch. >>>> >>>> >>>> On Mon, Jan 11, 2021 at 5:07 PM Pradip Parkale < >>>> pradip.parkale@enterprisedb.com> wrote: >>>> >>>>> Hi Hackers, >>>>> >>>>> Please find the attached patch for logical replication support. >>>>> >>>>> -- >>>>> Thanks & Regards, >>>>> Pradip Parkale >>>>> Software Engineer | EnterpriseDB Corporation >>>>> >>>> >>>> >>>> -- >>>> Thanks & Regards, >>>> Pradip Parkale >>>> Software Engineer | EnterpriseDB Corporation >>>> >>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> *pgAdmin Hacker | Principal Software Architect* >>> *EDB Postgres * >>> >>> *Mobile: +91 976-788-8246* >>> >> >> >> -- >> Thanks & Regards, >> Pradip Parkale >> Software Engineer | EnterpriseDB Corporation >> > > > -- > *Thanks & Regards* > *Akshay Joshi* > *pgAdmin Hacker | Principal Software Architect* > *EDB Postgres * > > *Mobile: +91 976-788-8246* > -- Thanks & Regards, Pradip Parkale Software Engineer | EnterpriseDB Corporation --00000000000002dedf05b9db33be Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,
Please find the updated pa= tch. I have fixed almost all issues, some are not possible.

=
On Sat, Ja= n 16, 2021 at 4:29 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:=
Hi Pradip

Fo= llowing are the GUI related review comments:

Publication:
  1. The truncate option is not visible = for PG 10 but the SQL query showing it.
<= div>Fixed,=C2=A0
  1. "= All table?" should be "All tables?" and "Table" sh= ould be renamed to "Tables".
Fixed.=C2=A0
  1. "-= - Publication : test;
    -- DROP PUBLICATION test;" Follow the syntax(= Spacing, no space between colon) as we did for other nodes. Check the SQL t= ab for any other node.
Fixed.=C2= =A0
  1. Select any publicat= ion and open the properties dialog, Save button is enabled by default which= should not.
Fixed.=C2=A0
  1. Create publication with (insert, = update, delete, and truncate). Open the properties dialog and Set the value= of Insert, Update and Delete to "No" check the SQL tab no ALTER = query is there. ALTER query should be there.
Fixed.=C2=A0
  1. &= #39;Only Table' is not visible in the Properties panel.
=
There is no entry of 'Only Table?' in the p= g_publication table, so it is not possible to get the value of this.=C2=A0<= /div>
  1. On the collection node = 'Publications' we should add Tables in the properties panel.
Fixed.=C2=A0
  1. Create a publication using one table and set 'On= ly Table' to No. Select a newly created publication and set 'Only T= able' to Yes, no SQL query is generated.
I have disabled this control. This control will be enabled only wh= en the user has changed the table data.=C2=A0
  1. Adding a table in the publication should generate &#= 39;ALTER PUBLICATION .. ADD TABLE ..' syntax instead of 'ALTER PUBL= ICATION .. SET TABLE..'
Fixed.= =C2=A0
  1. Create a publica= tion with more than one table. Remove one table from publication it is crea= ting=C2=A0two ALTER statements one for DROP Table and another one is to SET= TABLE which I think not required.
Fixed.=C2=A0
Subscription= :
  1. Reduce the width of the subscription dialog.
Fixed. I reduced the width to '501px&#= 39;=C2=A0
  1. With t= ab, alignment is not proper. Switch control should be aligned with others.<= /li>
Fixed.=C2=A0
=
  1. Help messages required for every control in <= b>With=C2=A0tab.
Fixed.=C2=A0
  1. Open Create subscription = dialog, specify the name, on the connection tab click the button to get the= publication without specifying any details. One popup comes with msg '= host'. I would suggest to disabled that button until all the req= uired fields will be populated or entered by the user.
Fixed.' Publication' control will only be enable= d when the user entered=C2=A0the required connection details.=C2=A0
  1. Publication list from the same= database server should be listed by default.
This won't be a good idea to display the default publication = because if the user entered the connection details of some other server and= select the default publication without clicking on the 'get_publicatio= n' button then it will be a wrong mapping between connection details an= d publication. Logical replication won't happen then.
  1. Specify all the required connection deta= ils on the connection tab and click on the 'get publication' button= . It fetches the publication but no message for the user that action is suc= cessfully completed. For the user, it seems nothing is happening and the us= er will click on that button continuously. Suggestion: Show some mes= sage 'Publications fetched successfully.' or something similar.
Fixed. Added information message at the= right bottom of the page.
    =
  1. "-- Subscription : my_sub; -- DROP SUBSCRIPTION my_sub;"=C2= =A0Follow the syntax(Spacing, no space between colon) as we did for other n= odes. Check the SQL tab for any other node.
Done.=C2=A0
  1. Rem= ove the unnecessary=C2=A0spaces from the following SQL:
    • CONNECT= ION ' host=3D127.0.0.1 =C2=A0port=3D5436 user=3Dpostgres dbname=3Dpostg= res '
    • with (enabled =3D False, =C2=A0slot_name =3D my_sub1, syn= chronous_commit =3D 'off');
    • (connect =3D True, enabled =3D = True, copy_data =3D True, create_slot =3D True, synchronous_commit =3D '= ;off');=C2=A0 Use small true/false instead of True/False.
Fixed.=C2=A0
  1. Create a subscription. Open the properties dialog and= click on the "get publication" button. It throws an error messag= e with the string 'password', please provide a valid error message.= Check for all such error messages.
= Fixed.=C2=A0
  1. Consider t= he above(Point 9) scenario and provide a password and then click on the &qu= ot;get publication" button it throws an error "could not translate host name "127.0.0.1 " to addres= s: nodename nor servname provided, or not known". There is a space= after the IP address, even if we remove that space or provide a different = IP address the same error occurs.
=
Fixed.=C2=A0
  1. The "Refresh publication" option should be= disabled if the subscription is disabled, as it should not work with the d= isabled subscription.
Fixed.= =C2=A0
  1. No SQL query created when we remove the Slot name for the exist= ing subscription. How to handle:
    • If the subscription is enabled then add validation "Slot name can= not be empty".
    • If the subs= cription is disabled then on removing the slot name should create "ALTER SUBSCRIPTION <name> SET (slot_name =3D NONE);"
Fixed. On removing the slot name I'= ;m adding setting the slot name as 'None'.=C2=A0
  1. Provide a space after comma in the curren= t publication list.
Fixed.=C2=A0
Please explain how the servic= e file parameter will work=C2=A0with the "CREATE SUBSCRIPTION .= ." syntax as per documentation we have to provide the connection info = string. Not able to test it.
Removed= the service parameter as it is not useful in the connection string.=C2=A0<= /div>

I have also fixed the review comments given in the= demo. Subscription doesn't maintain any 'dependency' and '= dependent'. So I have not added that.

Created=C2=A0#6153=C2=A0to= add publication and subscription in Schema Diff.
On Thu, = Jan 14, 2021 at 6:58 PM Pradip Parkale <pradip.parkale@enterprisedb.com>= ; wrote:
Hi=C2=A0Akshay,
Ple= ase find the latest patch. I missed some files in my previous patch.
<= /div>
O= n Thu, Jan 14, 2021 at 5:49 PM Akshay Joshi <akshay.joshi@enterprisedb.com&g= t; wrote:
Hi=C2=A0Pradip
The patch is applied, but not working. Please check and send th= e patch again.

On Wed, Jan 13, 2021 at 9:08 AM Pradip Parkale <pradip.par= kale@enterprisedb.com> wrote:
Hi Akshay,

Please ignore=C2=A0my=C2=A0previous patc= h. Please find my updated patch.


On Mon, Jan 11, 20= 21 at 5:07 PM Pradip Parkale <pradip.parkale@enterprisedb.com> wrote:
Hi Hackers,

Pl= ease find the attached patch for logical replication support.

--
Thanks & Regards,
Pradip Parkale
Software Engineer | EnterpriseDB Corporation


--
Thanks & Regards,
=
Pradip Parkale
Software Engineer |= EnterpriseDB Corporation


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



--
Thanks & Regards,
=
Pradip Parkale
Software Engineer |= EnterpriseDB Corporation


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



--
Thanks & Regards,
=
Pradip Parkale
Software Engineer |= EnterpriseDB Corporation
--00000000000002dedf05b9db33be-- --00000000000002dee205b9db33c0 Content-Type: application/octet-stream; name="RM5912_v4.patch" Content-Disposition: attachment; filename="RM5912_v4.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkezxz0y0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL19faW5pdF9fLnB5Cm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uOTU4MzEwOTJjCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy9fX2luaXRfXy5weQpAQCAtMCwwICsxLDg1OCBAQAorIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmln aHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMg c29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBQdWJsaWNhdGlvbiBOb2RlIiIiCitpbXBv cnQgc2ltcGxlanNvbiBhcyBqc29uCitmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworaW1w b3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRh dGFiYXNlcworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29u aWZ5Citmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi5icm93 c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9tIHBnYWRtaW4u YnJvd3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4udXRpbHMu YWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwK KyAgICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi51 dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZB VUxUX0RSSVZFUgorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0 IFNjaGVtYURpZmZPYmplY3RDb21wYXJlCisKKworY2xhc3MgUHVibGljYXRpb25Nb2R1bGUoQ29s bGVjdGlvbk5vZGVNb2R1bGUpOgorICAgICIiIgorICAgIGNsYXNzIFB1YmxpY2F0aW9uTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZvciBQdWJs aWNhdGlvbiBub2RlIGRlcml2ZWQgZnJvbSBDb2xsZWN0aW9uTm9kZU1vZHVsZS4KKworICAgIE1l dGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAg ICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBQdWJsaWNhdGlvbk1vZHVsZSBh bmQgaXQncworICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwg ZGlkKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBjb2xs ZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKQorICAgICAgLSBNZXRob2QgaXMgb3Zl cnJpZGRlbiBmcm9tIGl0cyBiYXNlIGNsYXNzIHRvIG1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2Rl LgorCisgICAgKiBzY3JpcHRfbG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQg Zm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0YWJhc2Ugbm9kZQorICAgICAgaXMg aW5pdGlhbGl6ZWQuCisgICAgIiIiCisKKyAgICBfTk9ERV9UWVBFID0gJ3B1YmxpY2F0aW9uJwor ICAgIF9DT0xMRUNUSU9OX0xBQkVMID0gZ2V0dGV4dCgiUHVibGljYXRpb25zIikKKworICAgIGRl ZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAg TWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25Nb2R1bGUgYW5kIGl0 J3MKKyAgICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgICph cmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzdXBlcihQ dWJsaWNhdGlvbk1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAg ICBzZWxmLm1pbl92ZXIgPSAxMDAwMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQorCisg ICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAgIiIiCisgICAg ICAgIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9k ZQorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAg ICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAg ICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9u X25vZGUoZGlkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6Cisg ICAgICAgICIiIgorICAgICAgICBPdmVycmlkZSB0aGlzIHByb3BlcnR5IHRvIG1ha2UgdGhlIG5v ZGUgYSBsZWFmIG5vZGUuCisKKyAgICAgICAgUmV0dXJuczogRmFsc2UgYXMgdGhpcyBpcyB0aGUg bGVhZiBub2RlCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIExv YWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIHB1YmxpY2F0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0 YWJhc2Ugbm9kZXMKKyAgICAgICAgYXJlIGluaXRpYWxpemVkLgorCisgICAgICAgIFJldHVybnM6 IG5vZGUgdHlwZSBvZiB0aGUgc2VydmVyIG1vZHVsZS4KKyAgICAgICAgIiIiCisgICAgICAgIHJl dHVybiBkYXRhYmFzZXMuRGF0YWJhc2VNb2R1bGUubm9kZV90eXBlCisKKyAgICBAcHJvcGVydHkK KyAgICBkZWYgbW9kdWxlX3VzZV90ZW1wbGF0ZV9qYXZhc2NyaXB0KHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyB3aGV0aGVyIEppbmphMiB0ZW1wbGF0ZSBpcyB1c2VkIGZvciBn ZW5lcmF0aW5nIHRoZSBqYXZhc2NyaXB0CisgICAgICAgIG1vZHVsZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHJldHVybiBGYWxzZQorCisKK2JsdWVwcmludCA9IFB1YmxpY2F0aW9uTW9kdWxlKF9f bmFtZV9fKQorCisKK2NsYXNzIFB1YmxpY2F0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIFNjaGVt YURpZmZPYmplY3RDb21wYXJlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQdWJsaWNhdGlvblZpZXco UEdDaGlsZE5vZGVWaWV3KQorCisgICAgICAgIEEgdmlldyBjbGFzcyBmb3IgUHVibGljYXRpb24g bm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LgorICAgICAgICBUaGlzIGNsYXNzIGlz IHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQgdG8gdmlldyBsaWtlCisgICAg ICAgIHVwZGF0aW5nIHB1YmxpY2F0aW9uIG5vZGUsIHNob3dpbmcgcHJvcGVydGllcywgc2hvd2lu ZyBzcWwgaW4gc3FsIHBhbmUuCisKKyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9f aW5pdF9fKCoqa3dhcmdzKQorICAgICAgLSBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRo ZSBQdWJsaWNhdGlvblZpZXcgYW5kIGl0J3MgYmFzZSB2aWV3LgorCisgICAgKiBjaGVja19wcmVj b25kaXRpb24oKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3Jh dG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3Jl IHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisKKyAgICAqIGxpc3QoKQorICAg ICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9uIG5v ZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xsZWN0aW9uLgorCisgICAgKiBub2RlcygpCisgICAg ICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2VkIHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUg d2l0aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rpb24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRo ZSBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBwcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHBi aWQpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBzaG93IHRoZSBwcm9wZXJ0aWVzIG9mIHRo ZSBzZWxlY3RlZCBwdWJsaWNhdGlvbiBub2RlCisKKyAgICAqIHVwZGF0ZShnaWQsIHNpZCwgZGlk LCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBkYXRhIGZvciB0 aGUgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRp ZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IHB1YmxpY2F0aW9u IG5vZGUKKworICAgICogZGVsZXRlKGdpZCwgc2lkLCBkaWQsIHBiaWQpCisgICAgICAtIFRoaXMg ZnVuY3Rpb24gd2lsbCBkZWxldGUgdGhlIHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUKKworICAg ICogbXNxbChnaWQsIHNpZCwgZGlkLCBwYmlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIGlzIHVz ZWQgdG8gcmV0dXJuIG1vZGlmaWVkIFNRTCBmb3IgdGhlIHNlbGVjdGVkCisgICAgICBwdWJsaWNh dGlvbiBub2RlCisKKyAgICAqIGdldF9zcWwoZGF0YSwgcGJpZCkKKyAgICAgIC0gVGhpcyBmdW5j dGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogZ2V0X3RhYmxl cyhnaWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGhhbmRs ZXIgYW5kIGlubGluZSBmdW5jdGlvbnMgZm9yIHRoZQorICAgICAgc2VsZWN0ZWQgcHVibGljYXRp b24gbm9kZQorCisgICAgKiBnZXRfdGVtcGxhdGVzKGdpZCwgc2lkLCBkaWQpCisgICAgICAtIFRo aXMgZnVuY3Rpb24gcmV0dXJucyBwdWJsaWNhdGlvbiB0ZW1wbGF0ZXMuCisKKyAgICAqIHNxbChn aWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCB0byBzaG93IGl0IGluIHNxbCBwYW5lIGZvciB0aGUKKyAgICAgIHNlbGVjdGVkIHB1Ymxp Y2F0aW9uIG5vZGUuCisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgcGJpZCk6Cisg ICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4gYWpheCBy ZXNwb25zZSBmb3IgdGhlCisgICAgICBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgKiBkZXBlbmRl bmNpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24g Z2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlIGZvciB0aGUKKyAg ICAgIHB1YmxpY2F0aW9uIG5vZGUuCisgICAgIiIiCisKKyAgICBfTk9UX0ZPVU5EX1BVQl9JTkZP Uk1BVElPTiA9IFwKKyAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhlIHB1YmxpY2F0 aW9uIGluZm9ybWF0aW9uLiIpCisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5vZGVfdHlwZQor CisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdnaWQn fSwKKyAgICAgICAgeyd0eXBlJzogJ2ludCcsICdpZCc6ICdzaWQnfSwKKyAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsndHlw ZSc6ICdpbnQnLCAnaWQnOiAncGJpZCd9CisgICAgXQorCisgICAgb3BlcmF0aW9ucyA9IGRpY3Qo eworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQnOiAncHJvcGVydGllcycsICdk ZWxldGUnOiAnZGVsZXRlJywgJ3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0Jzog J2xpc3QnLCAncG9zdCc6ICdjcmVhdGUnLCAnZGVsZXRlJzogJ2RlbGV0ZSd9CisgICAgICAgIF0s CisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQn OiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQnOiAn c3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5j aWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisg ICAgICAgICdnZXRfdGFibGVzJzogW3t9LCB7J2dldCc6ICdnZXRfdGFibGVzJ31dLAorICAgICAg ICAnZ2V0X3RlbXBsYXRlcyc6IFt7fSwgeydnZXQnOiAnZ2V0X3RlbXBsYXRlcyd9XSwKKyAgICAg ICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6ICdkZWxldGUnfSwgeydkZWxldGUnOiAnZGVsZXRlJ31d CisgICAgfSkKKworICAgIGRlZiBfaW5pdF8oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICAiIiIK KyAgICAgICAgTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgUHVibGljYXRpb25WaWV3 IGFuZCBpdHMgYmFzZSB2aWV3LgorICAgICAgICBJbml0aWFsaXplIGFsbCB0aGUgdmFyaWFibGVz IGNyZWF0ZS91c2VkIGR5bmFtaWNhbGx5IGxpa2UgY29ubiwKKyAgICAgICAgdGVtcGxhdGVfcGF0 aC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgor ICAgICAgICBzZWxmLmNvbm4gPSBOb25lCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IE5v bmUKKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQorCisgICAgICAgIHN1cGVyKFB1YmxpY2F0 aW9uVmlldywgc2VsZikuX19pbml0X18oKiprd2FyZ3MpCisKKyAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2 ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrIHRoZQorICAgICAgICBkYXRhYmFzZSBj b25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0dGFjaGVzCisgICAg ICAgIG1hbmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dh cmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgICAgIHNlbGYuZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAg ICAgICAgICAgIHNlbGYubWFuYWdlciA9IHNlbGYuZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihr d2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICBzZWxmLmRhdGxhc3RzeXNvaWQg PSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsKKyAgICAgICAgICAgICAgICAn ZGF0bGFzdHN5c29pZCddIGlmIHNlbGYubWFuYWdlci5kYl9pbmZvIGlzIG5vdCBOb25lIFwKKyAg ICAgICAgICAgICAgICBhbmQga3dhcmdzWydkaWQnXSBpbiBzZWxmLm1hbmFnZXIuZGJfaW5mbyBl bHNlIDAKKworICAgICAgICAgICAgIyBTZXQgdGhlIHRlbXBsYXRlIHBhdGggZm9yIHRoZSBTUUwg c2NyaXB0cworICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gKAorICAgICAgICAgICAg ICAgICJwdWJsaWNhdGlvbnMvc3FsLyNncGRiI3swfSMiLmZvcm1hdChzZWxmLm1hbmFnZXIudmVy c2lvbikgaWYKKyAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ2dw ZGInIGVsc2UKKyAgICAgICAgICAgICAgICAicHVibGljYXRpb25zL3NxbC8jezB9IyIuZm9ybWF0 KHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKworICAgIEBzdGF0 aWNtZXRob2QKKyAgICBkZWYgX3BhcnNlcl9kYXRhX2lucHV0X2Zyb21fY2xpZW50KGRhdGEpOgor ICAgICAgICAiIiIKKworICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjogZGF0 YQorICAgICAgICAiIiIKKworICAgICAgICBpZiAncHVidGFibGUnIGluIGRhdGEgYW5kIGRhdGFb J3B1YnRhYmxlJ10gIT0gJyc6CisgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddID0ganNvbi5s b2FkcygKKyAgICAgICAgICAgICAgICBkYXRhWydwdWJ0YWJsZSddLCBlbmNvZGluZz0ndXRmLTgn CisgICAgICAgICAgICApCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgor ICAgICAgICBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gbGlzdCBhbGwgdGhlIHB1YmxpY2F0aW9u IG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICAgIGNvbGxlY3Rpb24uCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAgICAg c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVSVElFU19TUUxd KSkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKwor ICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisgICAgICAgIGZvciByb3dzIGluIHJlc1sncm93cyddOgor ICAgICAgICAgICAgaWYgbm90IHJvd3NbJ2FsbF90YWJsZSddOgorICAgICAgICAgICAgICAgIGdl dF9uYW1lX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAgICAg ICAgICAgICBwYmlkPXJvd3NbJ29pZCddLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHBuYW1lID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKGdldF9uYW1lX3NxbCkKKyAgICAgICAgICAgICAgICB0YWJsZV9zcWwgPSByZW5kZXJfdGVt cGxhdGUoCisgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdnZXRfdGFibGVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgcG5hbWU9cG5hbWUKKyAg ICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBwdWJfdGFibGUgPSBbXQorICAgICAg ICAgICAgICAgIHN0YXR1cywgdGFibGVfcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdCh0YWJs ZV9zcWwpCisKKyAgICAgICAgICAgICAgICBmb3IgdGFibGUgaW4gdGFibGVfcmVzWydyb3dzJ106 CisgICAgICAgICAgICAgICAgICAgIHB1Yl90YWJsZS5hcHBlbmQodGFibGVbJ3B1YnRhYmxlJ10p CisKKyAgICAgICAgICAgICAgICBwdWJfdGFibGUgPSAiLCAiLmpvaW4oc3RyKGVsZW0pIGZvciBl bGVtIGluIHB1Yl90YWJsZSkKKworICAgICAgICAgICAgICAgIHJvd3NbJ3B1YnRhYmxlJ10gPSBw dWJfdGFibGUKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJl c3BvbnNlPXJlc1sncm93cyddLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBk aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIGNyZWF0 ZSBhbGwgdGhlIGNoaWxkIG5vZGVzIHdpdGhpbiB0aGUKKyAgICAgICAgY29sbGVjdGlvbi4gSGVy ZSBpdCB3aWxsIGNyZWF0ZSBhbGwgdGhlIHB1YmxpY2F0aW9uIG5vZGVzLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBT ZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgIiIiCisgICAg ICAgIHJlcyA9IFtdCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdub2Rlcy5zcWwnXSkpCisgICAgICAgIHN0YXR1cywgcmVzdWx0ID0gc2VsZi5jb25uLmV4ZWN1 dGVfMmRhcnJheShzcWwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlc3VsdCkKKworICAgICAgICBmb3Ig cm93IGluIHJlc3VsdFsncm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAg ICAgICAgICBzZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAg ICAgICAgICAgIHJvd1snb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAg ICAgICAgICAgICAgcm93WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24t cHVibGljYXRpb24iCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1cm4gbWFrZV9q c29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICBzdGF0dXM9 MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbm9kZShz ZWxmLCBnaWQsIHNpZCwgZGlkLCBwYmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBmZXRjaCBwcm9wZXJ0aWVzIG9mIHRoZSBwdWJsaWNhdGlvbiBub2Rlcy4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAg ICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgc3FsID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fUFJPUEVSVElFU19TUUxdKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBiaWQ9cGJpZCkKKyAgICAgICAgc3RhdHVzLCByZXN1 bHQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz dWx0KQorCisgICAgICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIGRhdGE9c2VsZi5ibHVl cHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29p ZCddLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAgIHJvd1sn bmFtZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLXB1YmxpY2F0aW9uIgorICAg ICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAg KQorCisgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIkNvdWxkIG5vdCBmaW5kIHRoZSBzcGVj aWZpZWQgcHVibGljYXRpb24uIikpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVm IHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAgICIiIgorICAg ICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVydGllcyBvZiB0aGUKKyAgICAg ICAgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBwYmlkOiBQdWJsaWNhdGlvbiBJ RAorICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0 aWVzKGRpZCwgcGJpZCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0 dXJuIHJlcworCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVz cG9uc2U9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBkZWYg X2ZldGNoX3Byb3BlcnRpZXMoc2VsZiwgZGlkLCBwYmlkKToKKyAgICAgICAgIiIiCisgICAgICAg IFRoaXMgZnVuY3Rpb24gZmV0Y2ggdGhlIHByb3BlcnRpZXMgb2YgdGhlIGV4dGVuc2lvbi4KKyAg ICAgICAgOnBhcmFtIGRpZDoKKyAgICAgICAgOnBhcmFtIHBiaWQ6CisgICAgICAgIDpyZXR1cm46 CisgICAgICAgICIiIgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAor ICAgICAgICAgICAgcGJpZD1wYmlkCisgICAgICAgICkKKworICAgICAgICBzdGF0dXMsIHJlcyA9 IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgorICAgICAgICAgICAgcmV0 dXJuIEZhbHNlLCBnb25lKHNlbGYuX05PVF9GT1VORF9QVUJfSU5GT1JNQVRJT04pCisKKyAgICAg ICAgaWYgbm90IHJlc1sncm93cyddWzBdWydhbGxfdGFibGUnXToKKyAgICAgICAgICAgIGdldF9u YW1lX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxFVEVfU1FMXSksCisgICAgICAgICAgICAgICAgcGJp ZD1wYmlkLCBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgKQorICAgICAgICAgICAgc3RhdHVz LCBwbmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihnZXRfbmFtZV9zcWwpCisgICAgICAg ICAgICB0YWJsZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF90YWJsZXMuc3FsJ10pLAorICAgICAgICAgICAg ICAgIHBuYW1lPXBuYW1lCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHB1Yl90YWJsZSA9 IFtdCisgICAgICAgICAgICBzdGF0dXMsIHRhYmxlX3JlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QodGFibGVfc3FsKQorCisgICAgICAgICAgICBmb3IgdGFibGUgaW4gdGFibGVfcmVzWydyb3dz J106CisgICAgICAgICAgICAgICAgcHViX3RhYmxlLmFwcGVuZCh0YWJsZVsncHVidGFibGUnXSkK KworICAgICAgICAgICAgcmVzWydyb3dzJ11bMF1bJ3B1YnRhYmxlJ10gPSBwdWJfdGFibGUKKwor ICAgICAgICByZXR1cm4gVHJ1ZSwgcmVzWydyb3dzJ11bMF0KKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHBiaWQpOgorICAgICAg ICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBmb3IgdGhl IHNlbGVjdGVkIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAg ICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQK KyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5mb3Jt IGVsc2UganNvbi5sb2FkcygKKyAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5jb2Rpbmc9J3V0 Zi04JworICAgICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGF0YSA9IHNlbGYu X3BhcnNlcl9kYXRhX2lucHV0X2Zyb21fY2xpZW50KGRhdGEpCisKKyAgICAgICAgICAgIHNxbCwg bmFtZSA9IHNlbGYuZ2V0X3NxbChkYXRhLCBwYmlkKQorCisgICAgICAgICAgICAjIE1vc3QgcHJv YmFibHkgdGhpcyBpcyBkdWUgdG8gZXJyb3IKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNl KHNxbCwgc3RyKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3FsCisgICAgICAgICAgICBzcWwg PSBzcWwuc3RyaXAoJ1xuJykuc3RyaXAoJyAnKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9c2Vs Zi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICBw YmlkLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAgICAgICAgICAgIG5hbWUs CisgICAgICAgICAgICAgICAgICAgIGljb249Imljb24tJXMiICUgc2VsZi5ub2RlX3R5cGUKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBjcmVhdGUoc2VsZiwg Z2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwg Y3JlYXRlIHRoZSBwdWJsaWNhdGlvbiBvYmplY3QKKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICIiIgorICAgICAgICByZXF1aXJlZF9h cmdzID0gWworICAgICAgICAgICAgJ25hbWUnCisgICAgICAgIF0KKworICAgICAgICBkYXRhID0g cmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAg ICByZXF1ZXN0LmRhdGEsIGVuY29kaW5nPSd1dGYtOCcKKyAgICAgICAgKQorICAgICAgICBmb3Ig YXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6Cisg ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICAgICAgc3RhdHVzPTQxMCwKKyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAg ICAgICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAg IkNvdWxkIG5vdCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIgKHt9KS4iCisgICAgICAgICAg ICAgICAgICAgICkuZm9ybWF0KGFyZykKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgZGF0YSA9IHNlbGYuX3BhcnNlcl9kYXRhX2lucHV0X2Zyb21fY2xpZW50 KGRhdGEpCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YT1kYXRhLCBjb25uPXNlbGYuY29ubikKKworICAgICAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y ZXMpCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ2V0X3Bvc2l0aW9uLnNxbCddKSwKKyAg ICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubiwgcHVibmFtZT1kYXRhWyduYW1lJ10KKyAgICAg ICAgICAgICkKKworICAgICAgICAgICAgc3RhdHVzLCByX3NldCA9IHNlbGYuY29ubi5leGVjdXRl X2RpY3Qoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJfc2V0KQorCisgICAgICAgICAg ICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50Lmdl bmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgcl9zZXRbJ3Jvd3MnXVsw XVsnb2lkJ10sCisgICAgICAgICAgICAgICAgICAgIGRpZCwKKyAgICAgICAgICAgICAgICAgICAg cl9zZXRbJ3Jvd3MnXVswXVsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPSdpY29u LXB1YmxpY2F0aW9uJworICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAg ICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHBiaWQ9Tm9uZSk6CisgICAgICAgICIi IgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgZHJvcCB0aGUgcHVibGljYXRpb24gb2JqZWN0 CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICAgcGJpZDogUHVibGljYXRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHBi aWQgaXMgTm9uZToKKyAgICAgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVxdWVzdC5m b3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmRhdGEsIGVuY29k aW5nPSd1dGYtOCcKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRh dGEgPSB7J2lkcyc6IFtwYmlkXX0KKworICAgICAgICBjYXNjYWRlID0gc2VsZi5fY2hlY2tfY2Fz Y2FkZV9vcGVyYXRpb24oKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBwYmlkIGlu IGRhdGFbJ2lkcyddOgorICAgICAgICAgICAgICAgICMgR2V0IG5hbWUgZm9yIHB1YmxpY2F0aW9u IGZyb20gcGJpZAorICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRF X1NRTF0pLAorICAgICAgICAgICAgICAgICAgICBwYmlkPXBiaWQsIGNvbm49c2VsZi5jb25uCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgIHN0YXR1cywgcG5hbWUgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1wbmFtZSkKKworICAgICAgICAgICAgICAgICMgZHJvcCBwdWJsaWNhdGlvbgorICAgICAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAgICAg ICAgICAgICBwbmFtZT1wbmFtZSwgY2FzY2FkZT1jYXNjYWRlLCBjb25uPXNlbGYuY29ubgorICAg ICAgICAgICAgICAgICkKKworICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfc2NhbGFyKHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJl cykKKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAg ICAgICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJQdWJsaWNhdGlv biBkcm9wcGVkIikKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFz IGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbXNxbChzZWxmLCBnaWQs IHNpZCwgZGlkLCBwYmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlv biBpcyB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZAorICAgICAg ICBwdWJsaWNhdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAg ICIiIgorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgZm9yIGssIHYgaW4gcmVxdWVzdC5hcmdz Lml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBjb21tZW50cyBz aG91bGQgYmUgdGFrZW4gYXMgaXMgYmVjYXVzZSBpZiB1c2VyIGVudGVycyBhCisgICAgICAgICAg ICAgICAgIyBqc29uIGNvbW1lbnQgaXQgaXMgcGFyc2VkIGJ5IGxvYWRzIHdoaWNoIHNob3VsZCBu b3QgaGFwcGVuCisgICAgICAgICAgICAgICAgaWYgayBpbiAoJ2Rlc2NyaXB0aW9uJywpOgorICAg ICAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgorICAgICAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYsIGVuY29kaW5nPSd1dGYtOCcp CisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICBkYXRhW2td ID0gdgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzcWwsIG5hbWUgPSBzZWxmLmdldF9zcWwo ZGF0YSwgcGJpZCkKKyAgICAgICAgICAgICMgTW9zdCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBl cnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uoc3FsLCBzdHIpOgorICAgICAgICAg ICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgICAgIGlmIHNxbCA9PSAnJzoKKyAgICAgICAgICAg ICAgICBzcWwgPSAiLS1tb2RpZmllZCBTUUwiCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pz b25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1zcWwsCisgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihl KSkKKworICAgIGRlZiBfZ2V0X29wdGlvbl9kZXRhaWxzKHNlbGYsIG9sZF9kYXRhLCBkYXRhKToK KyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgb3B0aW9uIGRldGFpbHMKKyAgICAgICAg OnBhcmFtIG9sZF9kYXRhOgorICAgICAgICA6cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjog ZGF0YQorICAgICAgICAiIiIKKworICAgICAgICBpZiAnZXZudF9pbnNlcnQnIGluIGRhdGEgb3Ig J2V2bnRfZGVsZXRlJyBpbiBkYXRhIG9yIFwKKyAgICAgICAgICAgICAgICAnZXZudF91cGRhdGUn IGluIGRhdGEgb3IgJ2V2bnRfdHJ1bmNhdGUnIGluIGRhdGE6CisKKyAgICAgICAgICAgIGlmICdl dm50X2luc2VydCcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgZGF0YVsnZXZudF9pbnNl cnQnXSA9IG9sZF9kYXRhWydldm50X2luc2VydCddCisKKyAgICAgICAgICAgIGlmICdldm50X2Rl bGV0ZScgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgZGF0YVsnZXZudF9kZWxldGUnXSA9 IG9sZF9kYXRhWydldm50X2RlbGV0ZSddCisKKyAgICAgICAgICAgIGlmICdldm50X3VwZGF0ZScg bm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgZGF0YVsnZXZudF91cGRhdGUnXSA9IG9sZF9k YXRhWydldm50X3VwZGF0ZSddCisKKyAgICAgICAgICAgIGlmICdldm50X3RydW5jYXRlJyBub3Qg aW4gZGF0YSBhbmQgJ2V2bnRfdHJ1bmNhdGUnIGluIG9sZF9kYXRhOgorICAgICAgICAgICAgICAg IGRhdGFbJ2V2bnRfdHJ1bmNhdGUnXSA9IG9sZF9kYXRhWydldm50X3RydW5jYXRlJ10KKworICAg ICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwgZGF0YSwgcGJpZD1Ob25l KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwg ZnJvbSBtb2RlbCBkYXRhLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBkYXRhOiBDb250 YWlucyB0aGUgZGF0YSBvZiB0aGUgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKyAgICAgICAg ICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICIiIgorICAgICAgICByZXF1aXJlZF9h cmdzID0gWworICAgICAgICAgICAgJ25hbWUnCisgICAgICAgIF0KKyAgICAgICAgZHJvcF90YWJs ZSA9IEZhbHNlCisgICAgICAgIGFkZF90YWJsZSA9IEZhbHNlCisKKyAgICAgICAgaWYgcGJpZCBp cyBub3QgTm9uZToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVTX1NR TF0pLCBwYmlkPXBiaWQKKyAgICAgICAgICAgICkKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0g c2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09IDA6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGdvbmUoc2VsZi5fTk9UX0ZPVU5EX1BVQl9JTkZPUk1BVElPTikKKworICAgICAg ICAgICAgb2xkX2RhdGEgPSBzZWxmLl9nZXRfb2xkX3RhYmxlX2RhdGEocmVzWydyb3dzJ11bMF1b J25hbWUnXSwgcmVzKQorCisgICAgICAgICAgICBkcm9wX3RhYmxlX2RhdGEgPSBbXQorCisgICAg ICAgICAgICBhZGRfdGFibGVfZGF0YSA9IFtdCisKKyAgICAgICAgICAgIGZvciB0YWJsZSBpbiBv bGRfZGF0YVsncHVidGFibGUnXToKKyAgICAgICAgICAgICAgICBpZiAncHVidGFibGUnIGluIGRh dGEgYW5kIHRhYmxlIG5vdCBpbiBkYXRhWydwdWJ0YWJsZSddOgorICAgICAgICAgICAgICAgICAg ICBkcm9wX3RhYmxlX2RhdGEuYXBwZW5kKHRhYmxlKQorICAgICAgICAgICAgICAgICAgICBkcm9w X3RhYmxlID0gVHJ1ZQorCisgICAgICAgICAgICBpZiAncHVidGFibGUnIGluIGRhdGE6CisgICAg ICAgICAgICAgICAgZm9yIHRhYmxlIGluIGRhdGFbJ3B1YnRhYmxlJ106CisgICAgICAgICAgICAg ICAgICAgIGlmIHRhYmxlIG5vdCBpbiBvbGRfZGF0YVsncHVidGFibGUnXToKKyAgICAgICAgICAg ICAgICAgICAgICAgIGFkZF90YWJsZV9kYXRhLmFwcGVuZCh0YWJsZSkKKyAgICAgICAgICAgICAg ICAgICAgICAgIGFkZF90YWJsZSA9IFRydWUKKworICAgICAgICAgICAgZm9yIGFyZyBpbiByZXF1 aXJlZF9hcmdzOgorICAgICAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YToKKyAgICAgICAg ICAgICAgICAgICAgZGF0YVthcmddID0gb2xkX2RhdGFbYXJnXQorCisgICAgICAgICAgICAjIEFk ZCBvbGQgZXZlbnQgc2V0dGluZyBmb3IgZnV0dXJlIHJlZmVyZW5jZQorICAgICAgICAgICAgZGF0 YSA9IHNlbGYuX2dldF9vcHRpb25fZGV0YWlscyhvbGRfZGF0YSwgZGF0YSkKKworICAgICAgICAg ICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsIHNlbGYuX1VQREFURV9TUUxdKSwKKyAgICAgICAgICAgICAgICBkYXRh PWRhdGEsIG9fZGF0YT1vbGRfZGF0YSwgY29ubj1zZWxmLmNvbm4sCisgICAgICAgICAgICAgICAg ZHJvcF90YWJsZT1kcm9wX3RhYmxlLCBkcm9wX3RhYmxlX2RhdGE9ZHJvcF90YWJsZV9kYXRhLAor ICAgICAgICAgICAgICAgIGFkZF90YWJsZT1hZGRfdGFibGUsIGFkZF90YWJsZV9kYXRhPWFkZF90 YWJsZV9kYXRhCisgICAgICAgICAgICApCisgICAgICAgICAgICByZXR1cm4gc3FsLnN0cmlwKCdc bicpLCBkYXRhWyduYW1lJ10gaWYgJ25hbWUnIGluIGRhdGEgXAorICAgICAgICAgICAgICAgIGVs c2Ugb2xkX2RhdGFbJ25hbWUnXQorICAgICAgICBlbHNlOgorCisgICAgICAgICAgICBzcWwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fQ1JFQVRFX1NRTF0pLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgY29ubj1zZWxmLmNvbm4p CisgICAgICAgICAgICByZXR1cm4gc3FsLnN0cmlwKCdcbicpLCBkYXRhWyduYW1lJ10KKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3RhYmxlcyhzZWxmLCBnaWQsIHNpZCwg ZGlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgdGFi bGVzIGxpc3QuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3Vw IElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFz ZSBJRAorICAgICAgICAiIiIKKyAgICAgICAgcmVzID0gW3snbGFiZWwnOiAnJywgJ3ZhbHVlJzog Jyd9XQorCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRf YWxsX3RhYmxlcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93X3N5 c19vYmplY3RzPXNlbGYuYmx1ZXByaW50LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2hvd19zeXN0ZW1fb2JqZWN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZl cl90eXBlPXNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQorICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5 KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICBmb3Igcm93IGluIHJzZXRbJ3Jv d3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAnbGFiZWwnOiByb3dbJ3RhYmxlJ10sCisgICAgICAgICAgICAgICAgICAg ICd2YWx1ZSc6IHJvd1sndGFibGUnXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkK KyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVz LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBkZWYgX2dldF9vbGRf dGFibGVfZGF0YShzZWxmLCBwbmFtZSwgcmVzKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gcmV0dXJuIHRhYmxlIGRldGFpbHMgYmVmb3JlIHVwZGF0ZQorICAgICAgICA6cGFy YW0gcG5hbWU6CisgICAgICAgIDpwYXJhbSByZXM6CisgICAgICAgIDpyZXR1cm46b2xkX2RhdGEK KyAgICAgICAgIiIiCisKKyAgICAgICAgdGFibGVfc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ2dldF90YWJsZXMuc3FsJ10p LAorICAgICAgICAgICAgcG5hbWU9cG5hbWUKKyAgICAgICAgKQorCisgICAgICAgIHB1Yl90YWJs ZSA9IFtdCisgICAgICAgIHN0YXR1cywgdGFibGVfcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGlj dCh0YWJsZV9zcWwpCisKKyAgICAgICAgZm9yIHRhYmxlIGluIHRhYmxlX3Jlc1sncm93cyddOgor ICAgICAgICAgICAgcHViX3RhYmxlLmFwcGVuZCh0YWJsZVsncHVidGFibGUnXSkKKworICAgICAg ICByZXNbJ3Jvd3MnXVswXVsncHVidGFibGUnXSA9IHB1Yl90YWJsZQorCisgICAgICAgICMgTWFr aW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCisgICAgICAgIG9sZF9kYXRhID0gZGlj dChyZXNbJ3Jvd3MnXVswXSkKKworICAgICAgICBpZiAnYWxsX3RhYmxlJyBpbiBvbGRfZGF0YSBh bmQgb2xkX2RhdGFbJ2FsbF90YWJsZSddOgorICAgICAgICAgICAgb2xkX2RhdGFbJ3B1YnRhYmxl J10gPSAnJworCisgICAgICAgIHJldHVybiBvbGRfZGF0YQorCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgorICAgIGRlZiBzcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCwganNvbl9yZXNwPVRy dWUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNx bCB0byBzaG93IGluIHRoZSBzcWwgcGFuZWwgZm9yIHRoZQorICAgICAgICBzZWxlY3RlZCBwdWJs aWNhdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0 YWJhc2UgSUQKKyAgICAgICAgICAgIHBiaWQ6IFB1YmxpY2F0aW9uIElECisgICAgICAgICAgICBq c29uX3Jlc3A6CisgICAgICAgICIiIgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCisg ICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVT X1NRTF0pLAorICAgICAgICAgICAgcGJpZD1wYmlkCisgICAgICAgICkKKyAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVz KQorCisgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVy biBnb25lKHNlbGYuX05PVF9GT1VORF9QVUJfSU5GT1JNQVRJT04pCisKKyAgICAgICAgZ2V0X25h bWVfc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAgICAgcGJpZD1wYmlkLCBj b25uPXNlbGYuY29ubgorICAgICAgICApCisgICAgICAgIHN0YXR1cywgcG5hbWUgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoZ2V0X25hbWVfc3FsKQorCisgICAgICAgICMgR2V0IG9sZCB0YWJs ZSBkZXRhaWxzCisgICAgICAgIG9sZF9kYXRhID0gc2VsZi5fZ2V0X29sZF90YWJsZV9kYXRhKHBu YW1lLCByZXMpCisKKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5fQ1JFQVRFX1NRTF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1v bGRfZGF0YSwgY29ubj1zZWxmLmNvbm4pCisKKyAgICAgICAgc3FsX2hlYWRlciA9ICItLSBQdWJs aWNhdGlvbjoge30iLmZvcm1hdChvbGRfZGF0YVsnbmFtZSddKQorICAgICAgICBzcWxfaGVhZGVy ICs9ICJcblxuIgorCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIi0tICIKKworICAgICAgICBzcWxf aGVhZGVyICs9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRl bXBsYXRlX3BhdGgsIHNlbGYuX0RFTEVURV9TUUxdKSwKKyAgICAgICAgICAgIHBuYW1lPW9sZF9k YXRhWyduYW1lJ10sICkKKworICAgICAgICBzcWxfaGVhZGVyICs9ICJcbiIKKworICAgICAgICBz cWwgPSBzcWxfaGVhZGVyICsgc3FsCisKKyAgICAgICAgaWYgbm90IGpzb25fcmVzcDoKKyAgICAg ICAgICAgIHJldHVybiBzcWwKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZShyZXNwb25z ZT1zcWwpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGRlcGVuZGVudHMoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgcGJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIGdldHMgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAg ICAgICBmb3IgdGhlIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAg ICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJpZDogUHVibGljYXRpb24g SUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVw ZW5kZW50cyhzZWxmLmNvbm4sIHBiaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAor ICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisgICAgICAgICAgICBzdGF0 dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVw ZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHBiaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiBnZXRzIHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybnMgYW4gYWph eCByZXNwb25zZQorICAgICAgICBmb3IgdGhlIHB1YmxpY2F0aW9uIG5vZGUuCisKKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6 IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAgcGJp ZDogUHVibGljYXRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1 bHQgPSBzZWxmLmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCBwYmlkKQorICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVuY2llc19yZXN1 bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworCitQdWJsaWNhdGlvblZp ZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3Rh dGljL2ltZy9jb2xsLXB1YmxpY2F0aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1 YmxpY2F0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmNjOTQ2 OTE5YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0 aW9uLnN2ZwpAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1 dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDI0LjAuMSwgU1ZHIEV4 cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJz aW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci IHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBw eCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAg MCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K Kwkuc3Qwe2ZpbGw6I0RERTFGMDtzdHJva2U6IzRCNUZBRDtzdHJva2Utd2lkdGg6MC42NTtzdHJv a2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6 MTA7fQorCS5zdDF7ZmlsbDojNEI1RkFEO30KKwkuc3Qye2ZpbGw6bm9uZTtzdHJva2U6IzRCNUZB RDtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46 cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorPC9zdHlsZT4KKzxnPgorCTxwYXRoIGNsYXNz PSJzdDAiIGQ9Ik0xMCwxM2MtMiwyLTUuMSwyLTcuMSwwcy0yLTUuMSwwLTcuMUM0LjUsNy41LDgu NSwxMS41LDEwLDEzeiIvPgorPC9nPgorPGc+CisJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLjgs MTEuM2MtMiwyLTUuMSwyLTcuMSwwcy0yLTUuMSwwLTcuMUM2LjIsNS43LDEwLjIsOS44LDExLjgs MTEuM3oiLz4KKzwvZz4KKzxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04LjcsNy44bDAuOC0wLjdjMC4x LDAuMSwwLjMsMC4xLDAuNCwwLjFjMC42LDAsMS0wLjQsMS0xcy0wLjQtMS0xLTFzLTEsMC40LTEs MWMwLDAuMSwwLDAuMywwLjEsMC40TDguMiw3LjMKKwlMOC43LDcuOHoiLz4KKzxnPgorCTxwYXRo IGNsYXNzPSJzdDIiIGQ9Ik0xMC41LDEuNmMyLjIsMCw0LDEuOCw0LDQiLz4KKwk8cGF0aCBjbGFz cz0ic3QyIiBkPSJNMTAuNiwzLjZjMS4xLDAsMiwwLjksMiwyIi8+Cis8L2c+Cis8L3N2Zz4KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5zdmcgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3N0YXRpYy9pbWcvY29sbC1zdWJzY3JpcHRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uZDE0YWRmZDM5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9z dGF0aWMvaW1nL2NvbGwtc3Vic2NyaXB0aW9uLnN2ZwpAQCAtMCwwICsxLDMwIEBACis8P3htbCB2 ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIEls bHVzdHJhdG9yIDI0LjAuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAg QnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0 cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8x OTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0i ZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgor PHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6I0ZCRUVERjtzdHJva2U6I0U1OEUy NjtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46 cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorCS5zdDF7ZmlsbDojRTU4RTI2O30KKwkuc3Qy e2ZpbGw6bm9uZTtzdHJva2U6I0U1OEUyNjtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNh cDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorPC9z dHlsZT4KKzxnPgorCTxnPgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0xMi45LDUu N2MyLDIsMiw1LjEsMCw3LjFzLTUuMSwyLTcuMSwwQzcuMywxMS4zLDExLjQsNy4yLDEyLjksNS43 eiIvPgorCQk8L2c+CisJPC9nPgorCTxnPgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDAiIGQ9 Ik0xMS40LDQuMmMyLDIsMiw1LjEsMCw3LjFzLTUuMSwyLTcuMSwwQzUuOCw5LjgsOS45LDUuNywx MS40LDQuMnoiLz4KKwkJPC9nPgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03Ljgs Ny4zTDcuMSw2LjZjMC4xLTAuMSwwLjEtMC4zLDAuMS0wLjRjMC0wLjYtMC40LTEtMS0xcy0xLDAu NC0xLDFzMC40LDEsMSwxYzAuMSwwLDAuMywwLDAuNC0wLjEKKwkJCQlsMC43LDAuNyIvPgorCQkJ PGc+CisJCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTUuNiwxLjdjMCwyLjItMS44LDQtNCw0Ii8+ CisJCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTMuNywxLjhjMCwxLjEtMC45LDItMiwyIi8+CisJ CQk8L2c+CisJCTwvZz4KKwk8L2c+Cis8L2c+Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMv c3RhdGljL2ltZy9wdWJsaWNhdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9pbWcvcHVibGljYXRp b24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uM2I1ODJjZjUxCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZwpAQCAt MCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEt LSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDIzLjAuNiwgU1ZHIEV4cG9ydCBQbHVnLUlu IC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlk PSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5r PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0Jv eD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHht bDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6 I0RERTFGMDtzdHJva2U6IzRCNUZBRDtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpy b3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorCS5zdDF7 ZmlsbDojNEI1RkFEO30KKwkuc3Qye2ZpbGw6bm9uZTtzdHJva2U6IzRCNUZBRDtzdHJva2Utd2lk dGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tl LW1pdGVybGltaXQ6MTA7fQorPC9zdHlsZT4KKzxnPgorCTxnPgorCQk8cGF0aCBjbGFzcz0ic3Qw IiBkPSJNMTEsMTJjLTIsMi01LjEsMi03LjEsMHMtMi01LjEsMC03LjFDNS40LDYuNCw5LjUsMTAu NSwxMSwxMnoiLz4KKwk8L2c+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik03LjksOC42 bDAuNy0wLjdDOC43LDgsOC45LDgsOSw4YzAuNiwwLDEtMC40LDEtMVM5LjYsNiw5LDZTOCw2LjQs OCw3YzAsMC4xLDAsMC4zLDAuMSwwLjRMNy40LDguMSIvPgorCQk8Zz4KKwkJCTxwYXRoIGNsYXNz PSJzdDIiIGQ9Ik05LjYsMi41YzIuMiwwLDQsMS44LDQsNCIvPgorCQkJPHBhdGggY2xhc3M9InN0 MiIgZD0iTTkuNyw0LjRjMS4xLDAsMiwwLjksMiwyIi8+CisJCTwvZz4KKwk8L2c+Cis8L2c+Cis8 L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2ltZy9zdWJzY3JpcHRpb24uc3ZnIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1Ymxp Y2F0aW9ucy9zdGF0aWMvaW1nL3N1YnNjcmlwdGlvbi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi42M2ExNTNjNmQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0 YXRpYy9pbWcvc3Vic2NyaXB0aW9uLnN2ZwpAQCAtMCwwICsxLDIyIEBACis8P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PgorPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJh dG9yIDIzLjAuNiwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQg MCkgIC0tPgorPHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hs aW5rIiB4PSIwcHgiIHk9IjBweCIKKwkgdmlld0JveD0iMCAwIDE2IDE2IiBzdHlsZT0iZW5hYmxl LWJhY2tncm91bmQ6bmV3IDAgMCAxNiAxNjsiIHhtbDpzcGFjZT0icHJlc2VydmUiPgorPHN0eWxl IHR5cGU9InRleHQvY3NzIj4KKwkuc3Qwe2ZpbGw6I0ZCRUVERjtzdHJva2U6I0U1OEUyNjtzdHJv a2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3VuZDtzdHJva2UtbGluZWpvaW46cm91bmQ7 c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorCS5zdDF7ZmlsbDojRTU4RTI2O30KKwkuc3Qye2ZpbGw6 bm9uZTtzdHJva2U6I0U1OEUyNjtzdHJva2Utd2lkdGg6MC42NTtzdHJva2UtbGluZWNhcDpyb3Vu ZDtzdHJva2UtbGluZWpvaW46cm91bmQ7c3Ryb2tlLW1pdGVybGltaXQ6MTA7fQorPC9zdHlsZT4K KzxnPgorCTxnPgorCQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTIuMiw1YzIsMiwyLDUuMSwwLDcu MXMtNS4xLDItNy4xLDBDNi42LDEwLjYsMTAuNyw2LjUsMTIuMiw1eiIvPgorCTwvZz4KKwk8Zz4K KwkJPHBhdGggY2xhc3M9InN0MSIgZD0iTTguNiw4LjFMNy45LDcuNEM4LDcuMyw4LDcuMSw4LDdj MC0wLjYtMC40LTEtMS0xUzYsNi40LDYsN3MwLjQsMSwxLDFjMC4xLDAsMC4zLDAsMC40LTAuMWww LjcsMC43Ii8+CisJCTxnPgorCQkJPHBhdGggY2xhc3M9InN0MiIgZD0iTTYuNCwyLjVjMCwyLjIt MS44LDQtNCw0Ii8+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNNC41LDIuNmMwLDEuMS0wLjks Mi0yLDIiLz4KKwkJPC9nPgorCTwvZz4KKzwvZz4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy9zdGF0aWMvanMvcHVibGljYXRpb24uanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3N0YXRpYy9qcy9wdWJsaWNhdGlv bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjJjZDI4ZTUzZgotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvc3RhdGljL2pzL3B1YmxpY2F0aW9uLmpzCkBAIC0wLDAg KzEsMjQ3IEBACisvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCisvLworLy8gcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworLy8K Ky8vIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRl YW0KKy8vIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGlj ZW5jZQorLy8KKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCisKK2RlZmluZSgncGdhZG1pbi5ub2RlLnB1YmxpY2F0aW9uJywgWwor ICAnc291cmNlcy9nZXR0ZXh0JywgJ3NvdXJjZXMvdXJsX2ZvcicsICdqcXVlcnknLCAndW5kZXJz Y29yZScsCisgICdzb3VyY2VzL3BnYWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ3BnYWRtaW4u YmFja2Zvcm0nLAorICAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLCAncGdhZG1pbi5icm93 c2VyLnNlcnZlci5wcml2aWxlZ2UnLAorXSwgZnVuY3Rpb24oZ2V0dGV4dCwgdXJsX2ZvciwgJCwg XywgcGdBZG1pbiwgcGdCcm93c2VyLCBCYWNrZm9ybSkgeworCisgIC8vIEV4dGVuZCB0aGUgYnJv d3NlcidzIGNvbGxlY3Rpb24gY2xhc3MgZm9yIHB1YmxpY2F0aW9ucyBjb2xsZWN0aW9uCisgIGlm ICghcGdCcm93c2VyLk5vZGVzWydjb2xsLXB1YmxpY2F0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIu Tm9kZXNbJ2NvbGwtcHVibGljYXRpb24nXSA9CisgICAgICBwZ0Jyb3dzZXIuQ29sbGVjdGlvbi5l eHRlbmQoeworICAgICAgICBub2RlOiAncHVibGljYXRpb24nLAorICAgICAgICBsYWJlbDogZ2V0 dGV4dCgnUHVibGljYXRpb25zJyksCisgICAgICAgIHR5cGU6ICdjb2xsLXB1YmxpY2F0aW9uJywK KyAgICAgICAgY29sdW1uczogWyduYW1lJywgJ3B1Ym93bmVyJywgJ3B1YnRhYmxlJywgJ2FsbF90 YWJsZSddLAorCisgICAgICB9KTsKKyAgfQorCisgIC8vIEV4dGVuZCB0aGUgYnJvd3NlcidzIG5v ZGUgY2xhc3MgZm9yIHB1YmxpY2F0aW9uIG5vZGUKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ3B1 YmxpY2F0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNbJ3B1YmxpY2F0aW9uJ10gPSBwZ0Jy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgcGFyZW50X3R5cGU6ICdkYXRhYmFzZScsCisgICAg ICB0eXBlOiAncHVibGljYXRpb24nLAorICAgICAgc3FsQWx0ZXJIZWxwOiAnc3FsLWFsdGVycHVi bGljYXRpb24uaHRtbCcsCisgICAgICBzcWxDcmVhdGVIZWxwOiAnc3FsLWNyZWF0ZXB1YmxpY2F0 aW9uLmh0bWwnLAorICAgICAgZGlhbG9nSGVscDogdXJsX2ZvcignaGVscC5zdGF0aWMnLCB7J2Zp bGVuYW1lJzogJ3B1YmxpY2F0aW9uX2RpYWxvZy5odG1sJ30pLAorICAgICAgbGFiZWw6IGdldHRl eHQoJ1B1YmxpY2F0aW9uJyksCisgICAgICBoYXNTUUw6ICB0cnVlLAorICAgICAgY2FuRHJvcDog dHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1 ZSwKKworICAgICAgSW5pdDogZnVuY3Rpb24oKSB7CisKKyAgICAgICAgLy8gQXZvaWQgbXVsdGlw bGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQor ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTsKKwor CisgICAgICAgIC8vIEFkZCBjb250ZXh0IG1lbnVzIGZvciBwdWJsaWNhdGlvbgorICAgICAgICBw Z0Jyb3dzZXIuYWRkX21lbnVzKFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9wdWJsaWNhdGlv bl9vbl9kYXRhYmFzZScsIG5vZGU6ICdkYXRhYmFzZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAg ICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJv cGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFi ZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uLi4uJyksCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNv biBpY29uLXB1YmxpY2F0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9LAorICAgICAgICAg IGVuYWJsZTogcGdCcm93c2VyLk5vZGVzWydkYXRhYmFzZSddLmNhbkNyZWF0ZSwKKyAgICAgICAg fSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9wdWJsaWNhdGlvbl9vbl9jb2xsJywgbm9kZTog J2NvbGwtcHVibGljYXRpb24nLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydv YmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAg ICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdQ dWJsaWNhdGlvbi4uLicpLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1wdWJsaWNh dGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfSwKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9wdWJsaWNhdGlvbicsIG5vZGU6ICdwdWJsaWNhdGlvbicsIG1vZHVsZTog dGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNr OiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6IGdldHRleHQoJ1B1YmxpY2F0aW9uLi4uJyksCisgICAgICAgICAg aWNvbjogJ3djVGFiSWNvbiBpY29uLXB1YmxpY2F0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0 ZSd9LAorICAgICAgICB9XSk7CisgICAgICB9LAorICAgICAgLy8gRGVmaW5lIHRoZSBtb2RlbCBm b3IgcHVibGljYXRpb24gbm9kZQorICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLk1vZGVsLmV4 dGVuZCh7CisgICAgICAgIGlkQXR0cmlidXRlOiAnb2lkJywKKyAgICAgICAgZGVmYXVsdHM6IHsK KyAgICAgICAgICBuYW1lOiB1bmRlZmluZWQsCisgICAgICAgICAgcHVib3duZXI6IHVuZGVmaW5l ZCwKKyAgICAgICAgICBwdWJ0YWJsZTogdW5kZWZpbmVkLAorICAgICAgICAgIGFsbF90YWJsZTog dW5kZWZpbmVkLAorICAgICAgICAgIGV2bnRfaW5zZXJ0OnRydWUsCisgICAgICAgICAgZXZudF9k ZWxldGU6dHJ1ZSwKKyAgICAgICAgICBldm50X3VwZGF0ZTp0cnVlLAorICAgICAgICAgIGV2bnRf dHJ1bmNhdGU6dHJ1ZSwKKyAgICAgICAgICBvbmx5X3RhYmxlOiB1bmRlZmluZWQsCisgICAgICAg IH0sCisKKyAgICAgICAgLy8gRGVmYXVsdCB2YWx1ZXMhCisgICAgICAgIGluaXRpYWxpemU6IGZ1 bmN0aW9uKGF0dHJzLCBhcmdzKSB7CisgICAgICAgICAgdmFyIGlzTmV3ID0gKF8uc2l6ZShhdHRy cykgPT09IDApOworICAgICAgICAgIGlmIChpc05ldykgeworICAgICAgICAgICAgdmFyIHVzZXJJ bmZvID0gcGdCcm93c2VyLnNlcnZlckluZm9bYXJncy5ub2RlX2luZm8uc2VydmVyLl9pZF0udXNl cjsKKworICAgICAgICAgICAgdGhpcy5zZXQoeydwdWJvd25lcic6IHVzZXJJbmZvLm5hbWV9LCB7 c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgfQorICAgICAgICAgIHBnQnJvd3Nlci5Ob2RlLk1v ZGVsLnByb3RvdHlwZS5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAg IH0sCisKKyAgICAgICAgLy8gRGVmaW5lIHRoZSBzY2hlbWEgZm9yIHRoZSBwdWJsaWNhdGlvbiBu b2RlCisgICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogZ2V0 dGV4dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsCisgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVz JywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgICBpZighXy5pc1VuZGVmaW5lZCh0aGlzLm5vZGVfaW5mbykgJiYgIV8uaXNVbmRl ZmluZWQodGhpcy5ub2RlX2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAmJiAhXy5pc1VuZGVm aW5lZCh0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAgICAgICAgICAgICB0 aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA+PSAxMDAwMDApIHsKKyAgICAgICAgICAgICAg cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgfSwKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDogZ2V0 dGV4dCgnT0lEJyksIGNlbGw6ICdzdHJpbmcnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHVib3duZXIn LCBsYWJlbDogZ2V0dGV4dCgnT3duZXInKSwgdHlwZTogJ3RleHQnLAorICAgICAgICAgIGNvbnRy b2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29udHJvbCwgbm9kZTogJ3JvbGUnLAorICAgICAg ICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICAgIGlmKG0uaXNOZXcoKSkKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgfSwKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAncHJvcGVydGllcycsICdjcmVhdGUn XSwgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxzZX0sCisgICAgICAgIH0seworICAgICAgICAg IGlkOiAnYWxsX3RhYmxlJywgbGFiZWw6IGdldHRleHQoJ0FsbCB0YWJsZXM/JyksIHR5cGU6ICdz d2l0Y2gnLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIG1vZGU6IFsn ZWRpdCcsICdwcm9wZXJ0aWVzJywgJ2NyZWF0ZSddLCBkZXBzOiBbJ25hbWUnXSwKKyAgICAgICAg ICByZWFkb25seTogZnVuY3Rpb24obSkge3JldHVybiAhbS5pc05ldygpO30sCisgICAgICAgIH0s CisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ29ubHlfdGFibGUnLCBsYWJlbDogZ2V0dGV4dCgn T25seSB0YWJsZT8nKSwgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQo J0RlZmluaXRpb24nKSwgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIGRlcHM6 IFsnbmFtZScsICdwdWJ0YWJsZScsICdhbGxfdGFibGUnXSwgcmVhZG9ubHk6ICdpc1RhYmxlJywK KyAgICAgICAgICBoZWxwTWVzc2FnZTogZ2V0dGV4dCgnSWYgT05MWSBpcyBzcGVjaWZpZWQgYmVm b3JlIHRoZSB0YWJsZSBuYW1lLCBvbmx5IHRoYXQgdGFibGUgaXMgYWRkZWQgdG8gdGhlIHB1Ymxp Y2F0aW9uLiBJZiBPTkxZIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSB0YWJsZSBhbmQgYWxsIGl0cyBk ZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55KSBhcmUgYWRkZWQuJyksCisgICAgICAgIH0sCisgICAg ICAgIHsKKyAgICAgICAgICBpZDogJ3B1YnRhYmxlJywgbGFiZWw6IGdldHRleHQoJ1RhYmxlcycp LCB0eXBlOiAndGV4dCcsc2VsZWN0MjogeyBhbGxvd0NsZWFyOiB0cnVlLCBtdWx0aXBsZTogdHJ1 ZSB9LAorICAgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDonZ2V0X3Rh YmxlcycsCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ0RlZmluaXRpb24nKSwgbW9kZTogWydl ZGl0JywgJ2NyZWF0ZScsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgZGVwczogWydhbGxfdGFi bGUnXSwgZGlzYWJsZWQ6ICdpc0FsbFRhYmxlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAg ICAgICAgIHR5cGU6ICduZXN0ZWQnLCBjb250cm9sOiAnZmllbGRzZXQnLCBtb2RlOiBbJ2NyZWF0 ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGxhYmVsOiBnZXR0ZXh0KCdXaXRo JyksIGdyb3VwOiBnZXR0ZXh0KCdEZWZpbml0aW9uJyksIGNvbnRlbnRDbGFzczogJ3JvdycsCisg ICAgICAgICAgc2NoZW1hOlt7CisgICAgICAgICAgICBpZDogJ2V2bnRfaW5zZXJ0JywgbGFiZWw6 IGdldHRleHQoJ0lOU0VSVCcpLAorICAgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsn Y3JlYXRlJywnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgICAgICBncm91cDogZ2V0dGV4 dCgnV2l0aCcpLAorICAgICAgICAgICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNics CisgICAgICAgICAgICBjb250cm9sTGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVs LXNtLTUgcGctZWwtMTInLAorICAgICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWlu LWNvbnRyb2xzIHBnLWVsLXNtLTcgcGctZWwtMTInLAorICAgICAgICAgIH0seworICAgICAgICAg ICAgaWQ6ICdldm50X3VwZGF0ZScsIGxhYmVsOiBnZXR0ZXh0KCdVUERBVEUnKSwKKyAgICAgICAg ICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcydd LAorICAgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICAgIGV4dHJh VG9nZ2xlQ2xhc3NlczogJ3BnLWVsLXNtLTYnLAorICAgICAgICAgICAgY29udHJvbExhYmVsQ2xh c3NOYW1lOiAnY29udHJvbC1sYWJlbCBwZy1lbC1zbS01IHBnLWVsLTEyJywKKyAgICAgICAgICAg IGNvbnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1zbS03IHBnLWVsLTEy JywKKyAgICAgICAgICB9LHsKKyAgICAgICAgICAgIGlkOiAnZXZudF9kZWxldGUnLCBsYWJlbDog Z2V0dGV4dCgnREVMRVRFJyksCisgICAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydj cmVhdGUnLCdlZGl0JywgJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0 KCdXaXRoJyksCisgICAgICAgICAgICBleHRyYVRvZ2dsZUNsYXNzZXM6ICdwZy1lbC1zbS02JywK KyAgICAgICAgICAgIGNvbnRyb2xMYWJlbENsYXNzTmFtZTogJ2NvbnRyb2wtbGFiZWwgcGctZWwt c20tNSBwZy1lbC0xMicsCisgICAgICAgICAgICBjb250cm9sc0NsYXNzTmFtZTogJ3BnYWRtaW4t Y29udHJvbHMgcGctZWwtc20tNyBwZy1lbC0xMicsCisgICAgICAgICAgfSx7CisgICAgICAgICAg ICBpZDogJ2V2bnRfdHJ1bmNhdGUnLCBsYWJlbDogZ2V0dGV4dCgnVFJVTkNBVEUnKSwKKyAgICAg ICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAgICAg ICAgZXh0cmFUb2dnbGVDbGFzc2VzOiAncGctZWwtc20tNicsCisgICAgICAgICAgICBjb250cm9s TGFiZWxDbGFzc05hbWU6ICdjb250cm9sLWxhYmVsIHBnLWVsLXNtLTUgcGctZWwtMTInLAorICAg ICAgICAgICAgY29udHJvbHNDbGFzc05hbWU6ICdwZ2FkbWluLWNvbnRyb2xzIHBnLWVsLXNtLTcg cGctZWwtMTInLAorICAgICAgICAgICAgdmlzaWJsZTogZnVuY3Rpb24obSkgeworICAgICAgICAg ICAgICBpZighXy5pc1VuZGVmaW5lZChtLm5vZGVfaW5mbykgJiYgIV8uaXNVbmRlZmluZWQobS5u b2RlX2luZm8uc2VydmVyKQorICAgICAgICAgICAgICAmJiAhXy5pc1VuZGVmaW5lZChtLm5vZGVf aW5mby5zZXJ2ZXIudmVyc2lvbikgJiYKKyAgICAgICAgICAgICAgICBtLm5vZGVfaW5mby5zZXJ2 ZXIudmVyc2lvbiA+PSAxMTAwMDApCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgICB9XSwK KyAgICAgICAgfSwKKyAgICAgICAgXSwKKworICAgICAgICBpc0FsbFRhYmxlOiAgZnVuY3Rpb24o bSl7CisgICAgICAgICAgdmFyIGFsbF90YWJsZSA9IG0uZ2V0KCdhbGxfdGFibGUnKTsKKyAgICAg ICAgICBpZihhbGxfdGFibGUpeworICAgICAgICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKSB7 CisgICAgICAgICAgICAgIG0uc2V0KCdwdWJ0YWJsZScsICcnKTsKKyAgICAgICAgICAgIH0sIDEw KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgIH0KKyAgICAgICAgICByZXR1 cm4gZmFsc2U7CisgICAgICAgIH0sCisgICAgICAgIGlzVGFibGU6ICBmdW5jdGlvbihtKXsKKyAg ICAgICAgICB2YXIgYWxsX3RhYmxlID0gbS5nZXQoJ2FsbF90YWJsZScpLAorICAgICAgICAgICAg dGFibGUgPSBtLmdldCgncHVidGFibGUnKTsKKyAgICAgICAgICBpZihhbGxfdGFibGUpeworICAg ICAgICAgICAgc2V0VGltZW91dCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgIG0uc2V0KCdv bmx5X3RhYmxlJywgZmFsc2UpOworICAgICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0 dXJuIHRydWU7CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRh YmxlKSAmJiB0YWJsZS5sZW5ndGggPiAwICYmIG0uX2NoYW5naW5nICYmICFfLmlzRXF1YWwobS5v cmlnU2Vzc0F0dHJzWydwdWJ0YWJsZSddLCBtLmNoYW5nZWRbJ3B1YnRhYmxlJ10pICYmICdwdWJ0 YWJsZScgaW4gbS5jaGFuZ2VkKXsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICB9CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0sCisKKyAgICAgICAgLyogdmFs aWRhdGUgZnVuY3Rpb24gaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgZ2l2ZW4gYnkKKyAg ICAgICAgICogdGhlIHVzZXIuIEluIGNhc2Ugb2YgZXJyb3IsIG1lc3NhZ2Ugd2lsbCBiZSBkaXNw bGF5ZWQgb24KKyAgICAgICAgICogdGhlIEdVSSBmb3IgdGhlIHJlc3BlY3RpdmUgY29udHJvbC4K KyAgICAgICAgICovCisKKyAgICAgICAgc2Vzc0NoYW5nZWQ6IGZ1bmN0aW9uKCkgeworICAgICAg ICAgIGlmICh0aGlzLnNlc3NBdHRyc1sncHVidGFibGUnXSA9PSAnJyAmJiB0aGlzLm9yaWdTZXNz QXR0cnNbJ3B1YnRhYmxlJ10gPT0gJycpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg ICAgICAgcmV0dXJuIHBnQnJvd3Nlci5EYXRhTW9kZWwucHJvdG90eXBlLnNlc3NDaGFuZ2VkLmFw cGx5KHRoaXMpOworICAgICAgICB9LAorCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsK KyAgICAgICAgICB2YXIgbmFtZSA9IHRoaXMuZ2V0KCduYW1lJyksCisgICAgICAgICAgICBtc2c7 CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZChuYW1lKSB8fCBfLmlzTnVsbChuYW1lKSB8 fAorICAgICAgICAgICAgU3RyaW5nKG5hbWUpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0g JycpIHsKKyAgICAgICAgICAgIG1zZyA9IGdldHRleHQoJ05hbWUgY2Fubm90IGJlIGVtcHR5Licp OworICAgICAgICAgICAgdGhpcy5lcnJvck1vZGVsLnNldCgnbmFtZScsIG1zZyk7CisgICAgICAg ICAgICByZXR1cm4gbXNnOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB0aGlzLmVy cm9yTW9kZWwudW5zZXQoJ25hbWUnKTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIG51 bGw7CisgICAgICAgIH0sCisgICAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEsIGl0 ZW0pIHsKKworICAgICAgICAgIHZhciB0cmVlRGF0YSA9IHRoaXMuZ2V0VHJlZU5vZGVIaWVyYXJj aHkoaXRlbSksCisgICAgICAgICAgICBzZXJ2ZXIgPSB0cmVlRGF0YVsnc2VydmVyJ107CisKKyAg ICAgICAgICAvLyBJZiBzZXJ2ZXIgaXMgbGVzcyB0aGFuIDEwIHRoZW4gZG8gbm90IGFsbG93ICdj cmVhdGUnIG1lbnUKKyAgICAgICAgICBpZiAoc2VydmVyICYmIHNlcnZlci52ZXJzaW9uIDwgMTAw MDAwKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgLy8gYnkgZGVmYXVs dCB3ZSB3YW50IHRvIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgIH0sCisKKyAgICAgIH0pLAorICAgIH0pOworICB9CisgIHJldHVybiBwZ0Jyb3dzZXIu Tm9kZXNbJ2NvbGwtcHVibGljYXRpb24nXTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1w bGF0ZXMvcHVibGljYXRpb25zL3NxbC8xMV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBs YXRlcy9wdWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAuLmQwOWNhYmMyOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlv bnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvMTFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAg KzEsMjAgQEAKK3slIGlmIGRhdGEuZXZudF9kZWxldGUgb3IgZGF0YS5ldm50X3VwZGF0ZSBvciBk YXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0ID0gJ2lu c2VydCcgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNl dCBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID0gJ2RlbGV0ZScgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiBkYXRhLmV2bnRfZGVsZXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSV9Cit7JSBzZXQgYWRkX2Nv bW1hX2FmdGVyX3VwZGF0ZSA9ICd1cGRhdGUnICV9Cit7JSBlbmRpZiAlfQoreyMjIyAgQ3JlYXRl IFBVQkxJQ0FUSU9OICMjI30KK0NSRUFURSBQVUJMSUNBVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0 YS5uYW1lKSB9fQoreyUgaWYgZGF0YS5hbGxfdGFibGUgJX0KKyAgICBGT1IgQUxMIFRBQkxFUwor eyUgZWxpZiBkYXRhLnB1YnRhYmxlICV9CisgICAgRk9SIFRBQkxFIHslIGlmIGRhdGEub25seV90 YWJsZSV9T05MWSB7JSBlbmRpZiAlfXslIGZvciB0YWJsZSBpbiBkYXRhLnB1YnRhYmxlICV9eyUg aWYgbG9vcC5pbmRleCAhPSAxICV9LCB7JSBlbmRpZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9 CisKK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfaW5zZXJ0IG9yIGRhdGEuZXZudF91cGRh dGUgb3IgZGF0YS5ldm50X2RlbGV0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KKyAgICBXSVRI IChwdWJsaXNoID0gJ3slIGlmIGRhdGEuZXZudF9pbnNlcnQgJX1pbnNlcnR7JSBpZiBhZGRfY29t bWFfYWZ0ZXJfaW5zZXJ0ID09ICdpbnNlcnQnICV9LCB7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUg aWYgZGF0YS5ldm50X3VwZGF0ZSAlfXVwZGF0ZXslIGlmIGFkZF9jb21tYV9hZnRlcl91cGRhdGUg PT0gJ3VwZGF0ZScgJX0sIHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfZGVs ZXRlICV9ZGVsZXRleyUgaWYgYWRkX2NvbW1hX2FmdGVyX2RlbGV0ZSA9PSAnZGVsZXRlJyAlfSwg eyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZXZudF90cnVuY2F0ZSAlfXRydW5jYXRl eyUgZW5kaWYgJX0nKTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRl cy9wdWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBs YXRlcy9wdWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi40MmY1MzcyMzgKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsLzExX3BsdXMvcHJvcGVydGllcy5zcWwK QEAgLTAsMCArMSw4IEBACitzZWxlY3QgYy5vaWQgYXMgb2lkLCBjLnB1Ym5hbWUgYXMgbmFtZSwK K3B1Ymluc2VydCBhcyBldm50X2luc2VydCwgcHVidXBkYXRlIGFzIGV2bnRfdXBkYXRlLCBwdWJk ZWxldGUgYXMgZXZudF9kZWxldGUsIHB1YnRydW5jYXRlIGFzIGV2bnRfdHJ1bmNhdGUsCitwdWJh bGx0YWJsZXMgYXMgYWxsX3RhYmxlLAorcGdhLnJvbG5hbWUgYXMgcHVib3duZXIgZnJvbSBwZ19w dWJsaWNhdGlvbiBjCitqb2luIHBnX2F1dGhpZCBwZ2Egb24gYy5wdWJvd25lcj0gcGdhLm9pZAor eyUgIGlmIHBiaWQgJX0KKyAgICB3aGVyZSBjLm9pZCA9IHt7IHBiaWQgfX0KK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQv Y3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9j cmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNWQ1NTUyZjI2 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9k ZWZhdWx0L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwxNyBAQAoreyUgaWYgZGF0YS5ldm50X2RlbGV0 ZSBvciBkYXRhLmV2bnRfdXBkYXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSAlfQoreyUgc2V0IGFk ZF9jb21tYV9hZnRlcl9pbnNlcnQgPSAnaW5zZXJ0JyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRh dGEuZXZudF9kZWxldGUgb3IgZGF0YS5ldm50X3RydW5jYXRlJX0KK3slIHNldCBhZGRfY29tbWFf YWZ0ZXJfdXBkYXRlID0gJ3VwZGF0ZScgJX0KK3slIGVuZGlmICV9CisKK0NSRUFURSBQVUJMSUNB VElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fQoreyUgaWYgZGF0YS5hbGxfdGFibGUg JX0KKyAgICBGT1IgQUxMIFRBQkxFUworeyUgZWxpZiBkYXRhLnB1YnRhYmxlICV9CisgICAgRk9S IFRBQkxFIHslIGlmIGRhdGEub25seV90YWJsZSV9T05MWSB7JSBlbmRpZiAlfXslIGZvciB0YWJs ZSBpbiBkYXRhLnB1YnRhYmxlICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LCB7JSBlbmRpZiAl fXt7IGNvbm58cXRJZGVudCh0YWJsZSkgfX17JSBlbmRmb3IgJX0KKworeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuZXZudF9pbnNlcnQgb3IgZGF0YS5ldm50X3VwZGF0ZSBvciBkYXRhLmV2bnRfZGVs ZXRlIG9yIGRhdGEuZXZudF90cnVuY2F0ZSAlfQorICAgIFdJVEggKHB1Ymxpc2ggPSAneyUgaWYg ZGF0YS5ldm50X2luc2VydCAlfWluc2VydHslIGlmIGFkZF9jb21tYV9hZnRlcl9pbnNlcnQgPT0g J2luc2VydCcgJX0sIHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfdXBkYXRl ICV9dXBkYXRleyUgaWYgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9PSAndXBkYXRlJyAlfSwgeyUg ZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZXZudF9kZWxldGUgJX1kZWxldGV7JSBlbmRp ZiAlfScpOworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1Ymxp Y2F0aW9ucy9zcWwvZGVmYXVsdC9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGlj YXRpb25zL3NxbC9kZWZhdWx0L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi45OGNiNWQwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRl cy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvZGVsZXRlLnNxbApAQCAtMCwwICsxLDggQEAKK3sj ID09PT09PT09PT09PT0gR2V0IHRoZSBwdWJsaWNhdGlvbiBuYW1lIHVzaW5nIG9pZCA9PT09PT09 PT09PT09ICN9Cit7JSBpZiBwYmlkICV9CisgICAgU0VMRUNUIHB1Ym5hbWUgRlJPTSBwZ19wdWJs aWNhdGlvbiBXSEVSRSBvaWQgPSB7e3BiaWR9fTo6b2lkOworeyUgZW5kaWYgJX0KK3sjID09PT09 PT09PT09PT0gRHJvcCB0aGUgcHVibGljYXRpb24gPT09PT09PT09PT09PSAjfQoreyUgaWYgcG5h bWUgJX0KK0RST1AgUFVCTElDQVRJT04ge3sgY29ubnxxdElkZW50KHBuYW1lKSB9fXslIGlmIGNh c2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L2dldF9hbGxfdGFibGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9w dWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfYWxsX3Rh Ymxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5iNDkzYWJjN2IK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2Rl ZmF1bHQvZ2V0X2FsbF90YWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUIHF1b3RlX2lk ZW50KGMudGFibGVfc2NoZW1hKXx8Jy4nfHxxdW90ZV9pZGVudChjLnRhYmxlX25hbWUpIEFTIHRh YmxlCitmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgYword2hlcmUgYy50YWJsZV90eXBl ID0gJ0JBU0UgVEFCTEUnCisgICAgICBBTkQgYy50YWJsZV9zY2hlbWEgTk9UIExJS0UgJ3BnXF8l JworICAgICAgQU5EIGMudGFibGVfc2NoZW1hIE5PVCBMSUtFICdwZ2FnZW50JworICAgICAgQU5E IGMudGFibGVfc2NoZW1hIE5PVCBJTiAoJ2luZm9ybWF0aW9uX3NjaGVtYScpIE9SREVSIEJZIDE7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQv Z2V0X3Bvc2l0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVm YXVsdC9nZXRfcG9zaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uMjkzZjRmNjkyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGlj YXRpb25zL3NxbC9kZWZhdWx0L2dldF9wb3NpdGlvbi5zcWwKQEAgLTAsMCArMSBAQAorc2VsZWN0 IG9pZCwgcHVibmFtZSBhcyBuYW1lIGZyb20gcGdfcHVibGljYXRpb24gd2hlcmUgcHVibmFtZSA9 ICd7eyBwdWJuYW1lIH19JzsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0 aW9ucy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1Ymxp Y2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAuLjdmNTFjNzJkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVt cGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9nZXRfdGFibGVzLnNxbApAQCAtMCwwICsx IEBACitzZWxlY3QgcXVvdGVfaWRlbnQocGdiX3RhYmxlLnNjaGVtYW5hbWUpfHwnLid8fHF1b3Rl X2lkZW50KHBnYl90YWJsZS50YWJsZW5hbWUpICBhcyBwdWJ0YWJsZSAgZnJvbSBwZ19wdWJsaWNh dGlvbl90YWJsZXMgcGdiX3RhYmxlIHdoZXJlIHB1Ym5hbWUgPSAne3sgcG5hbWUgfX0nIGFuZCBw Z2JfdGFibGUuc2NoZW1hbmFtZSBOT1QgTElLRSAncGdhZ2VudCc7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1bHQvbm9kZXMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZhdWx0L25vZGVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmM4MTU3ZjE4MAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJs aWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAg LTAsMCArMSBAQAorc2VsZWN0IG9pZCAsIHB1Ym5hbWUgYXMgbmFtZSBmcm9tIHBnX3B1YmxpY2F0 aW9uOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZh dWx0L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9k ZWZhdWx0L3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uNzViYTA3NWU0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGlj YXRpb25zL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsOCBAQAorc2VsZWN0 IGMub2lkIGFzIG9pZCwgYy5wdWJuYW1lIGFzIG5hbWUsCitwdWJpbnNlcnQgYXMgZXZudF9pbnNl cnQsIHB1YnVwZGF0ZSBhcyBldm50X3VwZGF0ZSwgcHViZGVsZXRlIGFzIGV2bnRfZGVsZXRlLAor cHViYWxsdGFibGVzIGFzIGFsbF90YWJsZSwKK3BnYS5yb2xuYW1lIGFzIHB1Ym93bmVyIGZyb20g cGdfcHVibGljYXRpb24gYworam9pbiBwZ19hdXRoaWQgcGdhIG9uIGMucHVib3duZXI9IHBnYS5v aWQKK3slICBpZiBwYmlkICV9CisgICAgd2hlcmUgYy5vaWQgPSB7eyBwYmlkIH19Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZW1wbGF0ZXMvcHVibGljYXRpb25zL3NxbC9kZWZh dWx0L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3RlbXBsYXRlcy9wdWJsaWNhdGlvbnMvc3FsL2RlZmF1 bHQvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmRhY2Y4 ZWI5ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVtcGxhdGVzL3B1YmxpY2F0aW9ucy9z cWwvZGVmYXVsdC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsNDIgQEAKK3slIGlmIGRhdGEuZXZudF9k ZWxldGUgb3IgZGF0YS5ldm50X3VwZGF0ZSBvciBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNl dCBhZGRfY29tbWFfYWZ0ZXJfaW5zZXJ0ID0gJ2luc2VydCcgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiBkYXRhLmV2bnRfdHJ1bmNhdGUgJX0KK3slIHNldCBhZGRfY29tbWFfYWZ0ZXJfZGVsZXRlID0g J2RlbGV0ZScgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmV2bnRfZGVsZXRlIG9yIGRhdGEu ZXZudF90cnVuY2F0ZSV9Cit7JSBzZXQgYWRkX2NvbW1hX2FmdGVyX3VwZGF0ZSA9ICd1cGRhdGUn ICV9Cit7JSBlbmRpZiAlfQoreyMjIyAgQWx0ZXIgcHVibGljYXRpb24gb3duZXIgIyMjfQoreyUg aWYgZGF0YS5wdWJvd25lciAlfQorQUxURVIgUFVCTElDQVRJT04ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5uYW1lKSB9fQorICAgIE9XTkVSIFRPIHt7IGRhdGEucHVib3duZXIgfX07CisKK3slIGVu ZGlmICV9Cit7IyMjICBBbHRlciBwdWJsaWNhdGlvbiBldmVudCAjIyN9Cit7JSBpZiAoZGF0YS5l dm50X2luc2VydCBpcyBkZWZpbmVkIGFuZCBkYXRhLmV2bnRfaW5zZXJ0ICE9IG9fZGF0YS5ldm50 X2luc2VydCkgb3IgKGRhdGEuZXZudF91cGRhdGUgaXMgZGVmaW5lZCBhbmQgZGF0YS5ldm50X3Vw ZGF0ZSAhPSBvX2RhdGEuZXZudF91cGRhdGUpIG9yIChkYXRhLmV2bnRfZGVsZXRlIGlzIGRlZmlu ZWQgYW5kIGRhdGEuZXZudF9kZWxldGUgIT0gb19kYXRhLmV2bnRfZGVsZXRlKSBvciAoZGF0YS5l dm50X3RydW5jYXRlIGlzIGRlZmluZWQgYW5kIGRhdGEuZXZudF90cnVuY2F0ZSAhPSBvX2RhdGEu ZXZudF90cnVuY2F0ZSkgJX0KK0FMVEVSIFBVQkxJQ0FUSU9OIHt7IGNvbm58cXRJZGVudChvX2Rh dGEubmFtZSkgfX0gU0VUCisgICAgKHB1Ymxpc2ggPSAneyUgaWYgZGF0YS5ldm50X2luc2VydCAl fWluc2VydHslIGlmIGFkZF9jb21tYV9hZnRlcl9pbnNlcnQgPT0gJ2luc2VydCcgJX0sIHslIGVu ZGlmICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmV2bnRfdXBkYXRlICV9dXBkYXRleyUgaWYgYWRk X2NvbW1hX2FmdGVyX3VwZGF0ZSA9PSAndXBkYXRlJyAlfSwgeyUgZW5kaWYgJX17JSBlbmRpZiAl fXslIGlmIGRhdGEuZXZudF9kZWxldGUgJX1kZWxldGV7JSBpZiBhZGRfY29tbWFfYWZ0ZXJfZGVs ZXRlID09ICdkZWxldGUnICV9LCB7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgZGF0YS5ldm50 X3RydW5jYXRlICV9dHJ1bmNhdGV7JSBlbmRpZiAlfScpOworCit7JSBlbmRpZiAlfQoreyMjIyAg QWx0ZXIgZHJvcCBwdWJsaWNhdGlvbiB0YWJsZSAjIyN9Cit7JSBpZiBkcm9wX3RhYmxlICV9CitB TFRFUiBQVUJMSUNBVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19CisgICAgRFJP UCBUQUJMRSB7JSBpZiBkYXRhLm9ubHlfdGFibGUlfU9OTFkgeyUgZW5kaWYgJX17JSBmb3IgdGFi bGUgaW4gZHJvcF90YWJsZV9kYXRhICV9eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LCB7JSBlbmRp ZiAlfXt7IHRhYmxlIH19eyUgZW5kZm9yICV9OworCit7JSBlbmRpZiAlfQoreyMjIyAgQWx0ZXIg cHVibGljYXRpb24gdGFibGUgIyMjfQoreyUgaWYgYWRkX3RhYmxlICV9CitBTFRFUiBQVUJMSUNB VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19CisgICAgQUREIFRBQkxFIHslIGlm IGRhdGEub25seV90YWJsZSV9T05MWSB7JSBlbmRpZiAlfXslIGZvciB0YWJsZSBpbiBhZGRfdGFi bGVfZGF0YSAlfXslIGlmIGxvb3AuaW5kZXggIT0gMSAlfSwgeyUgZW5kaWYgJX17eyB0YWJsZSB9 fXslIGVuZGZvciAlfTsKKworeyUgZW5kaWYgJX0KK3sjIyMgIEFsdGVyIHB1YmxpY2F0aW9uIG5h bWUgIyMjfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQVUJMSUNB VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KKworCisKKwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMv dGVzdHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi5mN2UxMDAzM2YKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rl c3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb24uc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gUHVi bGljYXRpb246IGFsdGVyZF9wdWJsaWNhdGlvbgorCistLSBEUk9QIFBVQkxJQ0FUSU9OIGFsdGVy ZF9wdWJsaWNhdGlvbjsKKworQ1JFQVRFIFBVQkxJQ0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbgor ICAgIEZPUiBBTEwgVEFCTEVTCisgICAgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScp OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX2V2 ZW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9wdWJsaWNhdGlvbl9ldmVudC5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kYzkwMTZjMDMKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZl bnQuc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gUHVibGljYXRpb246IGFsdGVyZF9wdWJsaWNhdGlv bgorCistLSBEUk9QIFBVQkxJQ0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbjsKKworQ1JFQVRFIFBV QkxJQ0FUSU9OIGFsdGVyZF9wdWJsaWNhdGlvbgorICAgIEZPUiBBTEwgVEFCTEVTCisgICAgV0lU SCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlJyk7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5mMDE1OTRkYTIKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfcHVibGljYXRpb25fZXZlbnRfbXNxbC5z cWwKQEAgLTAsMCArMSwyIEBACitBTFRFUiBQVUJMSUNBVElPTiBhbHRlcmRfcHVibGljYXRpb25f ZXZlbnQgU0VUCisocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uMzA4NjlkMmE4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZXN0cy8xMF9wbHVzL2FsdGVyX3B1YmxpY2F0aW9uX21zcWwuc3FsCkBAIC0wLDAgKzEgQEAK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RfcHVibGljYXRpb25fdG9fYWx0ZXIgUkVOQU1FIFRPIGFs dGVyZF9wdWJsaWNhdGlvbjsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVh dGVfcHVibGljYXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNh dGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lYTQ3Yzg2N2MK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0 aW9uLnNxbApAQCAtMCwwICsxLDcgQEAKKy0tIFB1YmxpY2F0aW9uOiB0ZXN0X3B1YmxpY2F0aW9u X2NyZWF0ZQorCistLSBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RfcHVibGljYXRpb25fY3JlYXRlOwor CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGUKKyAgICBGT1IgQUxM IFRBQkxFUworICAgIFdJVEggKHB1Ymxpc2ggPSAnaW5zZXJ0LCB1cGRhdGUnKTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9w dWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25fbXNxbC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRlX3B1YmxpY2F0aW9uX21zcWwuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZGNlMWIwNzRjCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1 YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl9tc3FsLnNxbApAQCAt MCwwICsxLDMgQEAKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZQor ICAgIEZPUiBBTEwgVEFCTEVTCisgICAgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZScp OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91 cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlvbl91cGRh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNzY2NWI2YjY5Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlv bl91cGRhdGUuc3FsCkBAIC0wLDAgKzEsNyBAQAorLS0gUHVibGljYXRpb246IHRlc3RfcHVibGlj YXRpb25fd2l0aF91cGRhdGUKKworLS0gRFJPUCBQVUJMSUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9u X3dpdGhfdXBkYXRlOworCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdF9wdWJsaWNhdGlvbl93aXRo X3VwZGF0ZQorICAgIEZPUiBBTEwgVEFCTEVTCisgICAgV0lUSCAocHVibGlzaCA9ICd1cGRhdGUn KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfcHVibGljYXRpb25f dXBkYXRlX21zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy8xMF9wbHVzL2NyZWF0ZV9wdWJsaWNhdGlv bl91cGRhdGVfbXNxbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4z ODcwNTczOTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvY3JlYXRl X3B1YmxpY2F0aW9uX3VwZGF0ZV9tc3FsLnNxbApAQCAtMCwwICsxLDMgQEAKK0NSRUFURSBQVUJM SUNBVElPTiB0ZXN0X3B1YmxpY2F0aW9uX3dpdGhfdXBkYXRlCisgICAgRk9SIEFMTCBUQUJMRVMK KyAgICBXSVRIIChwdWJsaXNoID0gJ3VwZGF0ZScpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0 cy8xMF9wbHVzL3Rlc3QuanNvbiBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvMTBfcGx1cy90ZXN0Lmpzb24KbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi40NTkxMTljNWQKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvcHVibGljYXRpb25zL3Rlc3RzLzEwX3BsdXMvdGVzdC5qc29uCkBAIC0wLDAgKzEsNzkgQEAK K3sKKyAgInNjZW5hcmlvcyI6IFsKKyAgICB7CisgICAgICAidHlwZSI6ICJjcmVhdGUiLAorICAg ICAgIm5hbWUiOiAiQ3JlYXRlIFRhYmxlIEZvciBwdWJsaWNhdGlvbiIsCisgICAgICAiZW5kcG9p bnQiOiAiTk9ERS10YWJsZS5vYmoiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJOT0RFLXRhYmxl LnNxbF9pZCIsCisgICAgICAiZGF0YSI6IHsKKyAgICAgICAgIm5hbWUiOiAidGVzdF9wdWJsaWNh dGlvbiIsCisgICAgICAgICJjb2x1bW5zIjogWworICAgICAgICAgIHsKKyAgICAgICAgICAgICJu YW1lIjogImVtcF9pZCIsCisgICAgICAgICAgICAiY2x0eXBlIjogImludGVnZXIiLAorICAgICAg ICAgICAgImlzX3ByaW1hcnlfa2V5IjogdHJ1ZQorICAgICAgICAgIH0sCisgICAgICAgICAgewor ICAgICAgICAgICAgIm5hbWUiOiAibmFtZSIsCisgICAgICAgICAgICAiY2x0eXBlIjogInRleHQi CisgICAgICAgICAgfSwKKyAgICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzYWxhcnki LAorICAgICAgICAgICAgImNsdHlwZSI6ICJiaWdpbnQiCisgICAgICAgICAgfQorICAgICAgICBd LAorICAgICAgICAiaXNfcGFydGl0aW9uZWQiOiBmYWxzZSwKKyAgICAgICAgInNjaGVtYSI6ICJw dWJsaWMiLAorICAgICAgICAic3BjbmFtZSI6ICJwZ19kZWZhdWx0IgorICAgICAgfSwKKyAgICAg ICJzdG9yZV9vYmplY3RfaWQiOiB0cnVlCisgICAgfSwKKyAgICB7CisgICAgICAidHlwZSI6ICJj cmVhdGUiLAorICAgICAgIm5hbWUiOiAiQ3JlYXRlICBQdWJsaWNhdGlvbiIsCisgICAgICAiZW5k cG9pbnQiOiAiTk9ERS1wdWJsaWNhdGlvbi5vYmoiLAorICAgICAgInNxbF9lbmRwb2ludCI6ICJO T0RFLXB1YmxpY2F0aW9uLnNxbF9pZCIsCisgICAgICAibXNxbF9lbmRwb2ludCI6ICJOT0RFLXB1 YmxpY2F0aW9uLm1zcWwiLAorICAgICAgImRhdGEiOiB7CisgICAgICAgICJuYW1lIjogInRlc3Rf cHVibGljYXRpb25fY3JlYXRlIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0IjogdHJ1ZSwKKyAgICAg ICAgImV2bnRfdXBkYXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRfZGVsZXRlIjogZmFsc2UsCisg ICAgICAgICJldm50X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAgICJwdWJvd25lciI6ICJwb3N0 Z3JlcyIsCisgICAgICAgICJhbGxfdGFibGUiOiB0cnVlLAorICAgICAgICAicHVidGFibGUiOiAi IgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9zcWxfZmlsZSI6ICJjcmVhdGVfcHVibGljYXRp b24uc3FsIiwKKyAgICAgICJleHBlY3RlZF9tc3FsX2ZpbGUiOiAiY3JlYXRlX3B1YmxpY2F0aW9u X21zcWwuc3FsIgorICAgIH0sCisgICAgeworICAgICAgInR5cGUiOiAiYWx0ZXIiLAorICAgICAg Im5hbWUiOiAiQWx0ZXIgIFB1YmxpY2F0aW9uIG5hbWUiLAorICAgICAgImVuZHBvaW50IjogIk5P REUtcHVibGljYXRpb24ub2JqX2lkIiwKKyAgICAgICJzcWxfZW5kcG9pbnQiOiAiTk9ERS1wdWJs aWNhdGlvbi5zcWxfaWQiLAorICAgICAgImRhdGEiOiB7CisgICAgICAgICJuYW1lIjogImFsdGVy ZF9wdWJsaWNhdGlvbiIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfc3FsX2ZpbGUiOiAiYWx0 ZXJfcHVibGljYXRpb24uc3FsIgorICAgIH0sCisgICAgeworICAgICAgInR5cGUiOiAiYWx0ZXIi LAorICAgICAgIm5hbWUiOiAiQWx0ZXIgIFB1YmxpY2F0aW9uIGV2ZW50IiwKKyAgICAgICJlbmRw b2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLm9ial9pZCIsCisgICAgICAic3FsX2VuZHBvaW50Ijog Ik5PREUtcHVibGljYXRpb24uc3FsX2lkIiwKKyAgICAgICJkYXRhIjogeworICAgICAgICAiZXZu dF9kZWxldGUiOiB0cnVlCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFs dGVyX3B1YmxpY2F0aW9uX2V2ZW50LnNxbCIKKyAgICB9LAorICAgIHsKKyAgICAgICJ0eXBlIjog ImRlbGV0ZSIsCisgICAgICAibmFtZSI6ICJEcm9wIHB1YmxpY2F0aW9uIiwKKyAgICAgICJlbmRw b2ludCI6ICJOT0RFLXB1YmxpY2F0aW9uLmRlbGV0ZV9pZCIsCisgICAgICAiZGF0YSI6IHsKKyAg ICAgICAgIm5hbWUiOiAiYWx0ZXJkX3B1YmxpY2F0aW9uX2V2ZW50IgorICAgICAgfQorICAgIH0K KyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMv dGVzdHMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4y N2NkODkwNjcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL19faW5pdF9fLnB5CkBA IC0wLDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3Rn cmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4g RGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQ b3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBSdWxlc1Rlc3RH ZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6Cisg ICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy9wdWJsaWNhdGlvbl90 ZXN0X2RhdGEuanNvbiBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvcHVibGljYXRpb25fdGVzdF9kYXRhLmpzb24K bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kYTA4NDA4ZGIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3B1YmxpY2F0aW9uX3Rlc3RfZGF0YS5qc29uCkBAIC0w LDAgKzEsMzk3IEBACit7CisgICJhZGRfcHVibGljYXRpb24iOiBbCisgICAgeworICAgICAgIm5h bWUiOiAiQ3JlYXRlIHB1YmxpY2F0aW9uIHdpdGggaW5zZXJ0IGFuZCB1cGRhdGUiLAorICAgICAg InVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNF SE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5zZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBk YXRlIjogdHJ1ZSwKKyAgICAgICAgImV2bnRfZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50 X3RydW5jYXRlIjogZmFsc2UsCisgICAgICAgICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAg ICAgICJhbGxfdGFibGUiOiB0cnVlLAorICAgICAgICAicHVidGFibGUiOiAiIgorICAgICAgfSwK KyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30s CisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisg ICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJDcmVhdGUgcHVibGljYXRpb24g Zm9yIGZldyB0YWJsZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmov IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJmZXdfdGFibGVzIjog dHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFSE9MREVS IiwKKyAgICAgICAgImV2bnRfaW5zZXJ0IjogdHJ1ZSwKKyAgICAgICAgImV2bnRfdXBkYXRlIjog dHJ1ZSwKKyAgICAgICAgImV2bnRfZGVsZXRlIjogZmFsc2UsCisgICAgICAgICJldm50X3RydW5j YXRlIjogZmFsc2UsCisgICAgICAgICJwdWJvd25lciI6ICJwb3N0Z3JlcyIsCisgICAgICAgICJh bGxfdGFibGUiOiBmYWxzZSwKKyAgICAgICAgInB1YnRhYmxlIjogIlBMQUNFX0hPTERFUiIKKyAg ICAgIH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0 YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6 IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiQ3JlYXRlIGEgcHVi bGljYXRpb24gd2l0aG91dCBuYW1lIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRp b24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIndpdGhv dXRfbmFtZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQ TEFDRUhPTERFUiIsCisgICAgICAgICJldm50X2luc2VydCI6IHRydWUsCisgICAgICAgICJldm50 X3VwZGF0ZSI6IHRydWUsCisgICAgICAgICJldm50X2RlbGV0ZSI6IGZhbHNlLAorICAgICAgICAi ZXZudF90cnVuY2F0ZSI6IGZhbHNlLAorICAgICAgICAicHVib3duZXIiOiAicG9zdGdyZXMiLAor ICAgICAgICAiYWxsX3RhYmxlIjogdHJ1ZSwKKyAgICAgICAgInB1YnRhYmxlIjogIiIKKyAgICAg IH0sCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6 IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDQx MAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgYWRk aW5nIGEgcHVibGljYXRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9v YmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAiZXJyb3JfY3Jl YXRpbmdfcHVibGljYXRpb24iOiB0cnVlLAorICAgICAgInRlc3RfZGF0YSI6IHsKKyAgICAgICAg Im5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAiZXZudF9pbnNlcnQiOiB0cnVlLAorICAg ICAgICAiZXZudF91cGRhdGUiOiB0cnVlLAorICAgICAgICAiZXZudF9kZWxldGUiOiBmYWxzZSwK KyAgICAgICAgImV2bnRfdHJ1bmNhdGUiOiBmYWxzZSwKKyAgICAgICAgInB1Ym93bmVyIjogInBv c3RncmVzIiwKKyAgICAgICAgImFsbF90YWJsZSI6IHRydWUsCisgICAgICAgICJwdWJ0YWJsZSI6 ICIiCisgICAgICB9LAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1v Y2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2 ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAg ICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvciAn KSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19j b2RlIjogNTAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFeGNlcHRp b24gd2hpbGUgYWRkaW5nIGEgcHVibGljYXRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9w dWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAg ICAidGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAg ICJldm50X2luc2VydCI6IHRydWUsCisgICAgICAgICJldm50X3VwZGF0ZSI6IHRydWUsCisgICAg ICAgICJldm50X2RlbGV0ZSI6IGZhbHNlLAorICAgICAgICAiZXZudF90cnVuY2F0ZSI6IGZhbHNl LAorICAgICAgICAicHVib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAiYWxsX3RhYmxlIjog dHJ1ZSwKKyAgICAgICAgInB1YnRhYmxlIjogIiIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19y ZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25f bmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rp b24uZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoVHJ1ZSwgVHJ1ZSko RmFsc2UsICdNb2NrZWQgSW50ZXJuYWwgU2VydmVyIEVycm9yICcpIgorICAgICAgfSwKKyAgICAg ICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0K KyAgICB9CisgIF0sCisgICJnZXRfcHVibGljYXRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUi OiAiR2V0IGEgcHVibGljYXRpb24gVVJMIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGlj YXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9j a2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4 cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAg IH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBwdWJsaWNh dGlvbiBwcm9wZXJ0aWVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2Jq LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVx dWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25h bWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9u LmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2Vk IEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRh IjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsK KyAgICAgICJuYW1lIjogIkdldCBhIHB1YmxpY2F0aW9uIHByb3BlcnRpZXMgdW5kZXIgZGF0YWJh c2Ugbm9kZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRy dWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6 IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIw MAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0 Y2hpbmcgYSBwdWJsaWNhdGlvbiBwcm9wZXJ0aWVzIHVuZGVyIGRhdGFiYXNlIG5vZGVzIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJm dW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24u Q29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxz ZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBOb2RlIiwKKyAgICAg ICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vbm9kZXMvIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi bW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1 c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQg YSBwdWJsaWNhdGlvbiBOb2RlIGRlcGVuZGFudHMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9w dWJsaWNhdGlvbi9kZXBlbmRlbnQvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwK KyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30s CisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisg ICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBwdWJsaWNhdGlvbiBO b2RlIGRlcGVuZGVuY3kiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9kZXBl bmRlbmN5LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2lu Z19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVj dGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0s CisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgdGhlIHB1YmxpY2F0 aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3cm9uZyBkYXRhYmFzZSBpZCIsCisg ICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9z aXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAg ICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGls cy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheSIs CisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZl ciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAi c3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjog IkdldCBhbGwgdGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyIsCisgICAg ICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg ImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJl eHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAg ICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhbGwgdGhlIHB1YmxpY2F0aW9uIHVuZGVy IHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJs IjogIi9icm93c2VyL3B1YmxpY2F0aW9uL25vZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IHRydWUsCisgICAgICAiaW5jb3JyZWN0X2RhdGFiYXNlX2lkIjogdHJ1ZSwKKyAgICAgICJk YXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAor ICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAg ICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUi OiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYWxsIHRoZSBwdWJsaWNhdGlvbiB1bmRlciB0aGUgZGF0 YWJhc2Ugbm9kZXMgdXNpbmcgd3JvbmcgZGF0YWJhc2UgaWQiLAorICAgICAgInVybCI6ICIvYnJv d3Nlci9wdWJsaWNhdGlvbi9ub2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxz ZSwKKyAgICAgICJkYXRhYmFzZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6 ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhl Y3V0ZV8yZGFycmF5IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQg SW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAg ImRlbGV0ZV9wdWJsaWNhdGlvbiI6IFsKKyAgICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgYSBw dWJsaWNhdGlvbiBVUkwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmov IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0 YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7 CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBkZWxldGluZyB0aGUgcHVibGljYXRpb24iLAor ICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAg ICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxz LmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAor ICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIg RXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfQorICBdLAorICAidXBkYXRlX3B1YmxpY2F0 aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogInVwZGF0ZSBhIHB1YmxpY2F0aW9uIG5hbWUi LAorICAgICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19w b3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ1cGRhdGVfbmFtZSI6IHRydWUsCisgICAgICAi dGVzdF9kYXRhIjogeworICAgICAgICAibmFtZSI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAi aWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJ1cGRhdGUgYSBwdWJsaWNhdGlvbiBldmVudCBpbnNlcnQiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJvd25lcl9wdWJsaWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9k YXRhIjogeworICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImV2bnRfaW5z ZXJ0IjogIlBMQUNFSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJ1cGRhdGUgYSBwdWJsaWNhdGlvbiBldmVudCBkZWxldGUiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0 IjogdHJ1ZSwKKyAgICAgICJvd25lcl9wdWJsaWNhdGlvbiI6IHRydWUsCisgICAgICAidGVzdF9k YXRhIjogeworICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAgImV2bnRfZGVs ZXRlIjogIlBMQUNFSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhIHB1YmxpY2F0aW9uIHRvIHVwZGF0ZSIs CisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL29iai8iLAorICAgICAgImlzX3Bv c2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAg ICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFX0hPTERFUiIsCisgICAg ICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHsK KyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIu Y29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFs dWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwK KyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAg ICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdoaWxlIGZldGNoaW5n IGEgcHVibGljYXRpb24gdG8gdXBkYXRlIHVzaW5nIHdyb25nIHB1YmxpY2F0aW9uIGlkIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvcHVibGljYXRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRp dmVfdGVzdCI6IHRydWUsCisgICAgICAid3JvbmdfcHVibGljYXRpb25faWQiOiB0cnVlLAorICAg ICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAg ICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tfZGF0YSI6IHt9 LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAor ICAgICAgfQorICAgIH0KKyAgXSwKKyAgImRlbGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbiI6IFsK KyAgICB7CisgICAgICAibmFtZSI6ICJEZWxldGUgbXVsdGlwbGUgcHVibGljYXRpb24iLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi bW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1 c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfQorICBdLAorICAic3FsX3B1YmxpY2F0aW9uIjog WworICAgIHsKKyAgICAgICJuYW1lIjogIkZldGNoIHRoZSBwdWJsaWNhdGlvbiBTUUwiLAorICAg ICAgInVybCI6ICIvYnJvd3Nlci9wdWJsaWNhdGlvbi9zcWwvIiwKKyAgICAgICJpc19wb3NpdGl2 ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi bW9ja19kYXRhIjogeworICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAg ICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l IjogIkVycm9yIHdoaWxlIGZldGNoaW5nIGEgcHVibGljYXRpb24gU1FMIiwKKyAgICAgICJ1cmwi OiAiL2Jyb3dzZXIvcHVibGljYXRpb24vc3FsLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0 YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5 Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1 cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAg ICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1 MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkZldGNoaW5nIGEgcHVi bGljYXRpb24gbVNRTCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3B1YmxpY2F0aW9uL21zcWwv IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVp cmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAgICAiZnVuY3Rpb25fbmFt ZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0aW9uLkNvbm5lY3Rpb24u ZXhlY3V0ZV9kaWN0IiwKKyAgICAgICAgInJldHVybl92YWx1ZSI6ICIoRmFsc2UsICdNb2NrZWQg SW50ZXJuYWwgU2VydmVyIEVycm9yJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0KKyAgXQorfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2NyZWF0ZS5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNh dGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9jcmVhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwLi5hYWQzYjMzZDIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25z L3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fY3JlYXRlLnB5CkBAIC0wLDAgKzEsOTUgQEAKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29w eXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBU aGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0 dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3Jv dXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQg dXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2Vf dXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25zQWRk VGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQg bmV3IHB1YmxpY2F0aW9uIiIiCisgICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFy aW9zKCdhZGRfcHVibGljYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwdWJsaWNhdGlvbl91dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNl bGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZl cl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAg ICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKworICAgICAg ICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAg ICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5z a2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3Vw cG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAx MCIKKworICAgICAgICAgICAgKQorCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZSB0byBhZGQgYSBwdWJsaWNhdGlvbi4iKQorCisgICAgICAgIGlmIHNlbGYu aXNfcG9zaXRpdmVfdGVzdCBhbmQgaGFzYXR0cihzZWxmLCAnZmV3X3RhYmxlcycpOgorICAgICAg ICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVp ZDQoKSlbMTo4XSkKKyAgICAgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuIFwK KyAgICAgICAgICAgICAgICBjcmVhdGVfdGFibGUoc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwg c2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJs ZV9uYW1lKQorCisgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsncHVidGFibGUnXSA9IHB1Ymxp Y2F0aW9uX3V0aWxzLmdldF90YWJsZXMoc2VsZikKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgor ICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgcHVibGljYXRpb24uIiIiCisgICAgICAgIHNl bGYudGVzdF9kYXRhWyduYW1lJ10gPSBcCisgICAgICAgICAgICAidGVzdF9wdWJsaWNhdGlvbl9h ZGRfJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAgICAgICAgZGF0YSA9IHNlbGYu dGVzdF9kYXRhCisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAg IHJlc3BvbnNlID0gc2VsZi5jcmVhdGVfcHVibGljYXRpb24oKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnd2l0aG91dF9uYW1lJyk6CisgICAgICAgICAgICAg ICAgZGVsIGRhdGFbIm5hbWUiXQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5jcmVh dGVfcHVibGljYXRpb24oKQorICAgICAgICAgICAgZWxpZiBoYXNhdHRyKHNlbGYsICdlcnJvcl9j cmVhdGluZ19wdWJsaWNhdGlvbicpOgorICAgICAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5t b2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl dHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuY3JlYXRlX3B1YmxpY2F0aW9uKCkKKyAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsi ZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgc2lkZV9lZmZlY3Q9 c2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKToKKyAgICAgICAgICAgICAgICAgICAgcmVz cG9uc2UgPSBzZWxmLmNyZWF0ZV9wdWJsaWNhdGlvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5l eHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIGNyZWF0ZV9wdWJsaWNhdGlv bihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAgICBz ZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5kYl9p ZCkgKyAnLycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoc2VsZi50ZXN0X2RhdGEpLAor ICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorCisgICAgZGVmIHRlYXJEb3du KHNlbGYpOgorICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnd2l0aG91dF9uYW1lJyk6Cisg ICAgICAgICAgICBwdWJsaWNhdGlvbl91dGlscy5kZWxldGVfcHVibGljYXRpb24oc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSddKQorCisgICAgICAgICMgRGlzY29ubmVj dCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFz ZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMv dGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxldGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVi bGljYXRpb25fZGVsZXRlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4u ODgzOWJkMjNmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0 aW9uX2RlbGV0ZS5weQpAQCAtMCwwICsxLDk0IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3Rz IGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBc CisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFz ZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAor ZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0 aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3Mg UHVibGljYXRpb25EZWxldGVUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhp cyBjbGFzcyB3aWxsIGRlbGV0ZSBwdWJsaWNhdGlvbi4iIiIKKyAgICBzY2VuYXJpb3MgPSB1dGls cy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2RlbGV0ZV9wdWJsaWNhdGlvbicsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMp CisKKyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9u b2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8g PSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQg PSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9p bmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1si c2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6 CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJl cGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVy IHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9 IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNv bm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAg ICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgcHVibGljYXRpb24uIikK KyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAg ICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisKKyAgICAg ICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2Vy dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9y ZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhl IHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlv bl9uYW1lID0gInRlc3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0 cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9IFwK KyAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNl cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorCisgICAgZGVmIGRlbGV0ZV9wdWJsaWNhdGlv bihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAg IHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAg c3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cihzZWxmLmRiX2lkKSArCisgICAgICAgICAg ICAnLycgKyBzdHIoc2VsZi5wdWJsaWNhdGlvbl9pZCksCisgICAgICAgICAgICBmb2xsb3dfcmVk aXJlY3RzPVRydWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiB3aWxsIGRlbGV0ZSBwdWJsaWNhdGlvbiIiIgorICAgICAgICBwdWJsaWNhdGlvbl9y ZXNwb25zZSA9IHB1YmxpY2F0aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2ZXJpZnlfcHVibGlj YXRpb24oc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5k Yl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25f bmFtZSkKKyAgICAgICAgaWYgbm90IHB1YmxpY2F0aW9uX3Jlc3BvbnNlOgorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcHVibGljYXRpb24gdG8gZGVsZXRl LiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYg aGFzYXR0cihzZWxmLCAiaW52YWxpZF9wdWJsaWNhdGlvbl9pZCIpOgorICAgICAgICAgICAgICAg IHNlbGYucHVibGljYXRpb25faWQgPSA5OTk5CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu ZGVsZXRlX3B1YmxpY2F0aW9uKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0 Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6Cisg ICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmRlbGV0ZV9wdWJsaWNhdGlvbigpCisKKyAg ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBk ZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAg ICAgICAgaWYgbm90IHNlbGYuaXNfcG9zaXRpdmVfdGVzdCBvciBoYXNhdHRyKHNlbGYsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52YWxpZF9wdWJs aWNhdGlvbl9pZCcpOgorICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMuZGVsZXRlX3B1Ymxp Y2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorICAgICAg ICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lk LCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9u X2RlbGV0ZV9tdWx0aXBsZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9kZWxl dGVfbXVsdGlwbGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hOTY4 MTJiMjQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25f ZGVsZXRlX211bHRpcGxlLnB5CkBAIC0wLDAgKzEsMTAzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAx MyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBp cyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIworCitpbXBvcnQgdXVpZAoraW1wb3J0IGpzb24KKworZnJvbSBwZ2FkbWluLmJyb3dzZXIu c2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisg ICAgaW1wb3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2Vy dmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAg dXRpbHMgYXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2Vf dXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK K2Zyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1w b3J0IHV0aWxzIGFzIHB1YmxpY2F0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxl dGVUZXN0Q2FzZXMoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBk ZWxldGUgcHVibGljYXRpb24uIiIiCisKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9z Y2VuYXJpb3MoJ2RlbGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbicsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisK KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAg ICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFz ZSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hl bWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9p bmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFf aW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwg OTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dp Y2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Ig c2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIHNj aGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9u c2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hl bWEgdG8gZGVsZXRlIHB1YmxpY2F0aW9uLiIpCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0 YWJsZV9jb2x1bW5fJXMiICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYu dGFibGVfaWQgPSB0YWJsZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNlbGYuc2NoZW1hX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9u YW1lID0gInRlc3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZV8xID0gInRl c3RfcHVibGljYXRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0 KCkpWzE6OF0pCisgICAgICAgIHNlbGYucHVibGljYXRpb25faWRzID0gWworICAgICAgICAgICAg cHVibGljYXRpb25fdXRpbHMuY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRi X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5wdWJsaWNhdGlvbl9uYW1lKSwKKyAgICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLmNy ZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFt ZV8xKSwKKyAgICAgICAgXQorCisgICAgZGVmIGRlbGV0ZV9tdWx0aXBsZV9wdWJsaWNhdGlvbihz ZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAg ICAgICJ7MH17MX0vezJ9L3szfS8iLmZvcm1hdChzZWxmLnVybCwgdXRpbHMuU0VSVkVSX0dST1VQ LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBz ZWxmLmRiX2lkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1w cyhkYXRhKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICAp CisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxs IGRlbGV0ZSBwdWJsaWNhdGlvbi4iIiIKKyAgICAgICAgcnVsZV9yZXNwb25zZSA9IHB1YmxpY2F0 aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2ZXJpZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYg bm90IHJ1bGVfcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5v dCBmaW5kIHRoZSBwdWJsaWNhdGlvbiB0byBkZWxldGUuIikKKworICAgICAgICBydWxlX3Jlc3Bv bnNlID0gcHVibGljYXRpb25fdXRpbHMuIFwKKyAgICAgICAgICAgIHZlcmlmeV9wdWJsaWNhdGlv bihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1l XzEpCisgICAgICAgIGlmIG5vdCBydWxlX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2UgRXhj ZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcHVibGljYXRpb24gdG8gZGVsZXRlLiIpCisKKyAg ICAgICAgZGF0YSA9IHsnaWRzJzogc2VsZi5wdWJsaWNhdGlvbl9pZHN9CisgICAgICAgIHJlc3Bv bnNlID0gc2VsZi5kZWxldGVfbXVsdGlwbGVfcHVibGljYXRpb24oZGF0YSkKKyAgICAgICAgc2Vs Zi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRv d24oc2VsZik6CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0 YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2Vs Zi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9nZXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv cHVibGljYXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fZ2V0LnB5Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uY2JhODc5NGNmCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0 aW9ucy90ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX2dldC5weQpAQCAtMCwwICsxLDEwMCBAQAorIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBD b3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisj IFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQor IworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1aWQKK2Zyb20gdW5pdHRlc3QubW9jayBp bXBvcnQgcGF0Y2gKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJz LmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1wb3J0IHV0aWxzIGFzIHRh Ymxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxz Citmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRl c3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51 dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbiBpbXBv cnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGlt cG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIHB1YmxpY2F0 aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVy YXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIHRoZSBwdWJsaWNhdGlvbiB1bmRl ciB0YWJsZSBub2RlLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlv cygnZ2V0X3B1YmxpY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHVibGljYXRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxm KToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVst MV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNj aGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJf aWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAg c2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAg ICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tp cFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBv cnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAi CisKKyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVj dF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp CisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRv IGRhdGFiYXNlIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9p ZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0g c2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2No ZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hl bWFfbmFtZSkKKworICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvIGRlbGV0ZSBwdWJs aWNhdGlvbi4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAl IChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVz X3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm LnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYucHVibGljYXRpb25fbmFtZSA9ICJ0ZXN0X3B1Ymxp Y2F0aW9uX2dldF8lcyIgJSAoCisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQor ICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gcHVibGljYXRpb25fdXRpbHMuIFwKKyAgICAg ICAgICAgIGNyZWF0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorCisgICAgZGVmIGdldF9wdWJsaWNhdGlvbihzZWxm KToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJs ICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAg c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcv JyArIHN0cihzZWxmLnB1YmxpY2F0aW9uX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0n aHRtbC9qc29uJykKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1 bmN0aW9uIHdpbGwgZmV0Y2ggdGhlIHB1YmxpY2F0aW9uLiIiIgorCisgICAgICAgIGlmIHNlbGYu aXNfcG9zaXRpdmVfdGVzdDoKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImRhdGFiYXNl X25vZGVzIik6CisgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9ICcnCisgICAg ICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9wdWJsaWNhdGlvbigpCisgICAgICAgICAg ICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5nZXRfcHVibGljYXRpb24o KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vf bm9kZXMiKToKKyAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gJycKKyAgICAg ICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0 YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxm LmdldF9wdWJsaWNhdGlvbigpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHdp dGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFsKHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFs dWUiXSkpOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3B1YmxpY2F0 aW9uKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNlLnN0YXR1c19jb2RlLAor ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0YVsic3RhdHVzX2NvZGUi XSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMu ZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX25hbWUp CisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRp bHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9wdXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRp b25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMC4uYmMzMTYwMmFiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90ZXN0 cy90ZXN0X3B1YmxpY2F0aW9uX3B1dC5weQpAQCAtMCwwICsxLDEyNyBAQAorIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQg KEMpIDIwMTMgLSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29m dHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1v Y2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBh cyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwdWJs aWNhdGlvbl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uVXBkYXRlVGVzdENhc2UoQmFzZVRl c3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCB1cGRhdGUgdGhlIHB1YmxpY2F0 aW9uLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygndXBkYXRl X3B1YmxpY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cHVibGljYXRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJd Wy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQor ICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5z ZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlm IHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3Qo CisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAi CisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAg ICAgICAgICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRh YmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAg ICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlz ZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFi YXNlIHRvIGRlbGV0ZSBwdWJsaWNhdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHNj aGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2NoZW1h X2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0 aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4 Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgcHVibGljYXRpb24u IikKKyAgICAgICAgc2VsZi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1 aWQudXVpZDQoKSlbMTo4XSkKKworICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1h X2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8 IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5za2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9n aWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3VwcG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9y IHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAxMCIKKworICAgICAgICAgICAgKQorICAgICAgICBz ZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2Vs Zi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYucHVibGljYXRp b25fbmFtZSA9ICJ0ZXN0X3B1YmxpY2F0aW9uX3VwZGF0ZV8lcyIgJSAoCisgICAgICAgICAgICBz dHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gXAor ICAgICAgICAgICAgcHVibGljYXRpb25fdXRpbHMuY3JlYXRlX3B1YmxpY2F0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lKQorCisgICAgZGVmIHVwZGF0ZV9wdWJs aWNhdGlvbihzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJuIHNlbGYudGVzdGVyLnB1dCgKKyAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAg ICAgICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArIHN0cigKKyAgICAgICAgICAgICAg ICBzZWxmLmRiX2lkKSArCisgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5wdWJsaWNhdGlvbl9p ZCksCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xs b3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIi VGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgcHVibGljYXRpb24uIiIiCisKKyAgICAgICAg cHVibGljYXRpb25fbmFtZSA9IHB1YmxpY2F0aW9uX3V0aWxzLiBcCisgICAgICAgICAgICB2ZXJp ZnlfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHVi bGljYXRpb25fbmFtZSkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAidXBkYXRlX25hbWUiKToK KyAgICAgICAgICAgIHNlbGYudGVzdF9kYXRhWyduYW1lJ10gPSAidGVzdF9wdWJsaWNhdGlvbl91 cGRhdGVfJXMiICUgKAorICAgICAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSddID0gc2VsZi5w dWJsaWNhdGlvbl9uYW1lCisgICAgICAgIHNlbGYudGVzdF9kYXRhWydpZCddID0gc2VsZi5wdWJs aWNhdGlvbl9pZAorCisgICAgICAgIGlmIG5vdCBwdWJsaWNhdGlvbl9uYW1lOgorICAgICAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgcHVibGljYXRpb24gdG8gdXBk YXRlLiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAg aWYgaGFzYXR0cihzZWxmLCAid3JvbmdfcHVibGljYXRpb25faWQiKToKKyAgICAgICAgICAgICAg ICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gOTk5OQorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxm LCAicGxpZF9ub25lIik6CisgICAgICAgICAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9pZCA9ICcn CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYudXBkYXRlX3B1YmxpY2F0aW9uKHNlbGYudGVz dF9kYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tf ZGF0YVsiZnVuY3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFs dWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAg ICBpZiBoYXNhdHRyKHNlbGYsICJ3cm9uZ19wdWJsaWNhdGlvbl9pZCIpOgorICAgICAgICAgICAg ICAgICAgICBzZWxmLnB1YmxpY2F0aW9uX2lkID0gOTk5OQorICAgICAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi51cGRhdGVfcHVibGljYXRpb24oc2VsZi50ZXN0X2RhdGEpCisKKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5zdGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFbInN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVh ckRvd24oc2VsZik6CisgICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlv bihzZWxmLnNlcnZlclsnZGInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc2VydmVyWyd1c2VybmFtZSddLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJbJ2RiX3Bhc3N3b3JkJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclsnaG9z dCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z ZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc2VydmVyWydzc2xtb2RlJ10pCisKKyAgICAgICAgcHVibGljYXRpb25fdXRpbHMu ZGVsZXRlX3B1YmxpY2F0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfZGF0YVsnbmFtZSdd KQorCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2Vf dXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdGVzdF9wdWJsaWNhdGlvbl9zcWwucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGlj YXRpb25zL3Rlc3RzL3Rlc3RfcHVibGljYXRpb25fc3FsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uYjFhY2I3ODc0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9ucy90 ZXN0cy90ZXN0X3B1YmxpY2F0aW9uX3NxbC5weQpAQCAtMCwwICsxLDg4IEBACisjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdo dCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBz b2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBw YXRjaAoraW1wb3J0IGpzb24KK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuc2NoZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBh cyB0YWJsZXNfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVy cy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAorICAgIHV0aWxzIGFzIHNjaGVtYV91 dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24g aW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGls cyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBwdWJs aWNhdGlvbl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uR2V0VGVzdENhc2UoQmFzZVRlc3RH ZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCB0aGUgcHVibGljYXRpb24g dW5kZXIgdGFibGUgbm9kZS4iIiIKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2Vu YXJpb3MoJ3NxbF9wdWJsaWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHB1YmxpY2F0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAo c2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNl Il1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2Vy dmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAg ICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQor ICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxm LnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBz dXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFu IDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRi X2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAg ICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVj dCB0byBkYXRhYmFzZSB0byBkZWxldGUgcHVibGljYXRpb24uIikKKyAgICAgICAgc2VsZi5zY2hl bWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2VsZi5zY2hlbWFfbmFt ZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVtYV9yZXNwb25zZSA9 IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu c2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgICAg ICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEgdG8gZGVsZXRlIHB1 YmxpY2F0aW9uLiIpCisgICAgICAgIHNlbGYudGFibGVfbmFtZSA9ICJ0YWJsZV9jb2x1bW5fJXMi ICUgKHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYudGFibGVfaWQgPSB0YWJs ZXNfdXRpbHMuY3JlYXRlX3RhYmxlKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2NoZW1hX25h bWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYudGFibGVfbmFtZSkKKyAgICAgICAgc2VsZi5wdWJsaWNhdGlvbl9uYW1lID0gInRlc3RfcHVi bGljYXRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6 OF0pCisgICAgICAgIHNlbGYucHVibGljYXRpb25faWQgPSBcCisgICAgICAgICAgICBwdWJsaWNh dGlvbl91dGlscy5jcmVhdGVfcHVibGljYXRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnB1 YmxpY2F0aW9uX25hbWUpCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmKToKKyAgICAgICAgcmV0dXJu IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLnB1Ymxp Y2F0aW9uX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAg IGRlZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2gg dGhlIHB1YmxpY2F0aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisKKyAgICAgICAgaWYgc2VsZi5p c19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zcWwoKQor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgd2l0aCBwYXRjaChzZWxmLm1vY2tfZGF0YVsiZnVu Y3Rpb25fbmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChz ZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICByZXNwb25z ZSA9IHNlbGYuZ2V0X3NxbCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwb25zZS5z dGF0dXNfY29kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX2RhdGFb InN0YXR1c19jb2RlIl0pCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHB1Ymxp Y2F0aW9uX3V0aWxzLmRlbGV0ZV9wdWJsaWNhdGlvbihzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1l LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wdWJs aWNhdGlvbl9uYW1lKQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAg IGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQs IHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvcHVibGljYXRpb25zL3Rlc3RzL3V0aWxzLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3B1YmxpY2F0aW9u cy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmJl Mzk5YTRjNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9wdWJsaWNhdGlvbnMvdGVzdHMvdXRpbHMucHkKQEAgLTAs MCArMSwxNTIgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVT UUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2 ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0 Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKworaW1wb3J0IHN5cworaW1w b3J0IG9zCitpbXBvcnQganNvbgoraW1wb3J0IHRyYWNlYmFjaworCitmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKKworQ1VSUkVOVF9Q QVRIID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGgucmVhbHBhdGgoX19maWxlX18pKQord2l0aCBv cGVuKENVUlJFTlRfUEFUSCArICIvcHVibGljYXRpb25fdGVzdF9kYXRhLmpzb24iKSBhcyBkYXRh X2ZpbGU6CisgICAgdGVzdF9jYXNlcyA9IGpzb24ubG9hZChkYXRhX2ZpbGUpCisKKworZGVmIGdl dF90YWJsZXMoc2VsZik6CisgICAgdGFibGVzID0gc2VsZi50ZXN0ZXIuZ2V0KAorICAgICAgICAn L2Jyb3dzZXIvcHVibGljYXRpb24vZ2V0X3RhYmxlcy8nICsgc3RyKAorICAgICAgICAgICAgdXRp bHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX2lk KSArICcvJyArCisgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgY29udGVu dF90eXBlPSdodG1sL2pzb24nKQorICAgIHJldHVybiBqc29uLmR1bXBzKFt0YWJsZXMuanNvblsn ZGF0YSddWzFdWyd2YWx1ZSddXSkKKworCitkZWYgY3JlYXRlX3B1YmxpY2F0aW9uX2FwaShzZWxm KToKKyAgICByZXR1cm4gc2VsZi50ZXN0ZXIucG9zdCgKKyAgICAgICAgc2VsZi51cmwgKyBzdHIo dXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkg KyAnLycgKyBzdHIoCisgICAgICAgICAgICBzZWxmLmRiX2lkKSArICcvJywKKyAgICAgICAgZGF0 YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgY29udGVudF90eXBlPSdodG1s L2pzb24nKQorCisKK2RlZiBjcmVhdGVfcHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBwdWJs aWNhdGlvbl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBwdWJs aWNhdGlvbiB1bmRlciBwcm92aWRlZCB0YWJsZS4KKyAgICA6cGFyYW0gc2VydmVyOiBzZXJ2ZXIg ZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1lOiBkYXRh YmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHB1YmxpY2F0aW9u X25hbWU6IHB1YmxpY2F0aW9uIG5hbWUKKyAgICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1lOiBzdHIK KyAgICA6cmV0dXJuIHB1YmxpY2F0aW9uX2lkOiBwdWJsaWNhdGlvbiBpZAorICAgIDpydHlwZTog aW50CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUn XSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xl dmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBw Z19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBw dWJsaWNhdGlvbiAlcyBGT1IgQUxMIFRBQkxFUyIgJSBcCisgICAgICAgICAgICAgICAgKHB1Ymxp Y2F0aW9uX25hbWUpCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAgICBj b25uZWN0aW9uLnNldF9pc29sYXRpb25fbGV2ZWwob2xkX2lzb2xhdGlvbl9sZXZlbCkKKyAgICAg ICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICAjIEdldCByb2xlIG9pZCBvZiBuZXdseSBh ZGRlZCBwdWJsaWNhdGlvbgorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBm cm9tIHBnX3B1YmxpY2F0aW9uIHB1YiB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICJwdWIucHVibmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0 aW9uX25hbWUpCisgICAgICAgIHB1YmxpY2F0aW9uID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAg ICAgICAgcHVibGljYXRpb25faWQgPSAnJworICAgICAgICBpZiBwdWJsaWNhdGlvbjoKKyAgICAg ICAgICAgIHB1YmxpY2F0aW9uX2lkID0gcHVibGljYXRpb25bMF0KKyAgICAgICAgY29ubmVjdGlv bi5jbG9zZSgpCisgICAgICAgIHJldHVybiBwdWJsaWNhdGlvbl9pZAorICAgIGV4Y2VwdCBFeGNl cHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQorICAg ICAgICByYWlzZQorCisKK2RlZiB2ZXJpZnlfcHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1lLCBw dWJsaWNhdGlvbl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHZlcmlmaWVzIHB1 YmxpY2F0aW9uIGV4aXN0IGluIGRhdGFiYXNlIG9yIG5vdC4KKyAgICA6cGFyYW0gc2VydmVyOiBz ZXJ2ZXIgZGV0YWlscworICAgIDp0eXBlIHNlcnZlcjogZGljdAorICAgIDpwYXJhbSBkYl9uYW1l OiBkYXRhYmFzZSBuYW1lCisgICAgOnR5cGUgZGJfbmFtZTogc3RyCisgICAgOnBhcmFtIHB1Ymxp Y2F0aW9uX25hbWU6IHB1YmxpY2F0aW9uIG5hbWUKKyAgICA6dHlwZSBwdWJsaWNhdGlvbl9uYW1l OiBzdHIKKyAgICA6cmV0dXJuIHB1YmxpY2F0aW9uOiBwdWJsaWNhdGlvbiByZWNvcmQgZnJvbSBk YXRhYmFzZQorICAgIDpydHlwZTogdHVwbGUKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIGNv bm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFtZSddLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNz d29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBwZ19jdXJzb3IgPSBjb25uZWN0aW9u LmN1cnNvcigpCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxlY3QgKiBmcm9tIHBnX3B1 YmxpY2F0aW9uIHB1YiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aGVyZSBwdWIucHVi bmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1YmxpY2F0aW9uX25hbWUp CisgICAgICAgIHB1YmxpY2F0aW9uID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29u bmVjdGlvbi5jbG9zZSgpCisgICAgICAgIHJldHVybiBwdWJsaWNhdGlvbgorICAgIGV4Y2VwdCBF eGNlcHRpb246CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoZmlsZT1zeXMuc3RkZXJyKQor ICAgICAgICByYWlzZQorCisKK2RlZiBkZWxldGVfcHVibGljYXRpb24oc2VydmVyLCBkYl9uYW1l LCBwdWJsaWNhdGlvbl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHVzZSB0byBk ZWxldGUgdGhlIGV4aXN0aW5nIHJvbGVzIGluIHRoZSBzZXJ2ZXJzCisKKyAgICA6cGFyYW0gZGJf bmFtZTogIGRiX25hbWUKKyAgICA6dHlwZSBkYl9uYW1lOiBkYl9uYW1lIG9iamVjdAorICAgIDpw YXJhbSBzZXJ2ZXI6IHNlcnZlcgorICAgIDp0eXBlIHNlcnZlcjogc2VydmVyIG9iamVjdAorICAg IDpwYXJhbSBwdWJsaWNhdGlvbl9uYW1lOiBwdWJsaWNhdGlvbiBuYW1lCisgICAgOnR5cGUgcHVi bGljYXRpb25fbmFtZTogc3RyCisgICAgOnJldHVybjogTm9uZQorICAgICIiIgorCisgICAgdHJ5 OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNl cm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKCJzZWxl Y3QgKiBmcm9tIHBnX3B1YmxpY2F0aW9uIHB1YiB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICJwdWIucHVibmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHB1 YmxpY2F0aW9uX25hbWUpCisgICAgICAgIHB1YmxpY2F0aW9uX2NvdW50ID0gcGdfY3Vyc29yLmZl dGNob25lKCkKKyAgICAgICAgaWYgcHVibGljYXRpb25fY291bnQ6CisgICAgICAgICAgICBvbGRf aXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAg IGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgcXVlcnkgPSAiRFJPUCBwdWJsaWNh dGlvbiAlcyIgJSBwdWJsaWNhdGlvbl9uYW1lCisgICAgICAgICAgICBwZ19jdXJzb3IuZXhlY3V0 ZShxdWVyeSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRf aXNvbGF0aW9uX2xldmVsKQorICAgICAgICAgICAgY29ubmVjdGlvbi5jb21taXQoKQorICAgICAg ICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFj ZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9zdGF0aWMvanMvdGFibGUuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvc3RhdGljL2pzL3Rh YmxlLmpzCmluZGV4IGZmZWI2OWY2Ni4uYjRhMjNjNGVlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv c3RhdGljL2pzL3RhYmxlLmpzCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9zdGF0aWMvanMvdGFibGUuanMKQEAg LTUxNyw2ICs1MTcsMTEgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUudGFibGUnLCBbCiAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICB9LAogICAgICAgICB9LAorICAgICAgICB7Cisg ICAgICAgICAgaWQ6ICdyZXBsaWNhX2lkZW50aXR5JywgbGFiZWw6IGdldHRleHQoJ1JlcGxpY2Eg SWRlbnRpdHknKSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnYWR2YW5jZWQnKSwgdHlwZTog J3RleHQnLG1vZGU6IFsnZWRpdCcsICdwcm9wZXJ0aWVzJ10sCisgICAgICAgIH0sCisKICAgICAg ICAgewogICAgICAgICAgIGlkOiAnYWR2YW5jZWQnLCBsYWJlbDogZ2V0dGV4dCgnQWR2YW5jZWQn KSwgdHlwZTogJ2dyb3VwJywKICAgICAgICAgICB2aXNpYmxlOiBTaG93QWR2YW5jZWRUYWIuc2hv d19hZHZhbmNlZF90YWIsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9z cWwvMTBfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3Nx bC8xMF9wbHVzL3Byb3BlcnRpZXMuc3FsCmluZGV4IGQ1MmVjMmE2My4uY2I0ZDQ3Yzk0IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0aWVz LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTBfcGx1cy9wcm9wZXJ0 aWVzLnNxbApAQCAtNCw2ICs0LDEyIEBAIFNFTEVDVCByZWwub2lkLCByZWwucmVsbmFtZSBBUyBu YW1lLCByZWwucmVsdGFibGVzcGFjZSBBUyBzcGNvaWQscmVsLnJlbGFjbCBBUyByCiAgICAgSk9J TiBwZ190YWJsZXNwYWNlIHNwIE9OIGR0Yi5kYXR0YWJsZXNwYWNlPXNwLm9pZAogICAgIFdIRVJF IGR0Yi5vaWQgPSB7eyBkaWQgfX06Om9pZCkKICAgRU5EKSBhcyBzcGNuYW1lLAorICAoQ0FTRSBy ZWwucmVscmVwbGlkZW50CisgICAgICAgICAgV0hFTiAnZCcgVEhFTiAnZGVmYXVsdCcKKyAgICAg ICAgICBXSEVOICduJyBUSEVOICdub3RoaW5nJworICAgICAgICAgIFdIRU4gJ2YnIFRIRU4gJ2Z1 bGwnCisgICAgICAgICAgV0hFTiAnaScgVEhFTiAnaW5kZXgnCisgIEVORCkgYXMgcmVwbGljYV9p ZGVudGl0eSwKICAgKHNlbGVjdCBuc3BuYW1lIEZST00gcGdfbmFtZXNwYWNlIFdIRVJFIG9pZCA9 IHt7c2NpZH19OjpvaWQgKSBhcyBzY2hlbWEsCiAgIHBnX2dldF91c2VyYnlpZChyZWwucmVsb3du ZXIpIEFTIHJlbG93bmVyLCByZWwucmVsaGFzb2lkcywgcmVsLnJlbGtpbmQsCiAgIChDQVNFIFdI RU4gcmVsLnJlbGtpbmQgPSAncCcgVEhFTiB0cnVlIEVMU0UgZmFsc2UgRU5EKSBBUyBpc19wYXJ0 aXRpb25lZCwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzExX3Bs dXMvcHJvcGVydGllcy5zcWwKaW5kZXggODJmOWE0MzU4Li5mZWEzMTYyODkgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3Fs CkBAIC00LDYgKzQsMTIgQEAgU0VMRUNUIHJlbC5vaWQsIHJlbC5yZWxuYW1lIEFTIG5hbWUsIHJl bC5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCxyZWwucmVsYWNsIEFTIHIKICAgICBKT0lOIHBnX3Rh Ymxlc3BhY2Ugc3AgT04gZHRiLmRhdHRhYmxlc3BhY2U9c3Aub2lkCiAgICAgV0hFUkUgZHRiLm9p ZCA9IHt7IGRpZCB9fTo6b2lkKQogICBFTkQpIGFzIHNwY25hbWUsCisgIChDQVNFIHJlbC5yZWxy ZXBsaWRlbnQKKyAgICAgICAgICBXSEVOICdkJyBUSEVOICdkZWZhdWx0JworICAgICAgICAgIFdI RU4gJ24nIFRIRU4gJ25vdGhpbmcnCisgICAgICAgICAgV0hFTiAnZicgVEhFTiAnZnVsbCcKKyAg ICAgICAgICBXSEVOICdpJyBUSEVOICdpbmRleCcKKyAgRU5EKSBhcyByZXBsaWNhX2lkZW50aXR5 LAogICAoc2VsZWN0IG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2UgV0hFUkUgb2lkID0ge3tzY2lk fX06Om9pZCApIGFzIHNjaGVtYSwKICAgcGdfZ2V0X3VzZXJieWlkKHJlbC5yZWxvd25lcikgQVMg cmVsb3duZXIsIHJlbC5yZWxoYXNvaWRzLCByZWwucmVsa2luZCwKICAgKENBU0UgV0hFTiByZWwu cmVsa2luZCA9ICdwJyBUSEVOIHRydWUgRUxTRSBmYWxzZSBFTkQpIEFTIGlzX3BhcnRpdGlvbmVk LApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzExX3BsdXMvdXBk YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3VwZGF0ZS5z cWwKaW5kZXggNDhlYzAzNDk0Li4zNWQ3NjkyNjkgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdGFibGVzL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZXMvc3FsLzExX3BsdXMvdXBkYXRlLnNxbApAQCAtMjc5LDMgKzI3OSwxNSBAQCBB TFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19CiB7JSBl bmRpZiAlfQogCiB7JSBlbmRpZiAlfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSByZXBsaWNhIGlkZW50aXR5ICMjfQor eyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQor eyUgaWYgZGF0YS5yZXBsaWNhX2lkZW50aXR5IGFuZCBkYXRhLnJlcGxpY2FfaWRlbnRpdHkgIT0g b19kYXRhLnJlcGxpY2FfaWRlbnRpdHkgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRh dGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0gUkVQTElDQSBJREVOVElUWSB7e2RhdGEucmVwbGljYV9p ZGVudGl0eSB9fTsKK3slIGVuZGlmICV9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7IyMgQ2hhbmdlIHJlcGxpY2EgaWRlbnRpdHkgIyN9 Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9 Cit7JSBpZiBkYXRhLnJlcGxpY2FfaWRlbnRpdHkgYW5kIGRhdGEucmVwbGljYV9pZGVudGl0eSAh PSBvX2RhdGEucmVwbGljYV9pZGVudGl0eSAlfQorQUxURVIgVEFCTEUge3tjb25ufHF0SWRlbnQo ZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fSBSRVBMSUNBIElERU5USVRZIHt7ZGF0YS5yZXBsaWNh X2lkZW50aXR5IH19OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvdGFibGVzL3NxbC8xMl9wbHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl cy90YWJsZXMvc3FsLzEyX3BsdXMvcHJvcGVydGllcy5zcWwKaW5kZXggNWEyZGJiNGE4Li4yYzcy NWI2YmYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9wbHVz L3Byb3BlcnRpZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGVzL3NxbC8xMl9w bHVzL3Byb3BlcnRpZXMuc3FsCkBAIC00LDYgKzQsMTIgQEAgU0VMRUNUIHJlbC5vaWQsIHJlbC5y ZWxuYW1lIEFTIG5hbWUsIHJlbC5yZWx0YWJsZXNwYWNlIEFTIHNwY29pZCxyZWwucmVsYWNsIEFT IHIKICAgICBKT0lOIHBnX3RhYmxlc3BhY2Ugc3AgT04gZHRiLmRhdHRhYmxlc3BhY2U9c3Aub2lk CiAgICAgV0hFUkUgZHRiLm9pZCA9IHt7IGRpZCB9fTo6b2lkKQogICBFTkQpIGFzIHNwY25hbWUs CisgIChDQVNFIHJlbC5yZWxyZXBsaWRlbnQKKyAgICAgICAgICBXSEVOICdkJyBUSEVOICdkZWZh dWx0JworICAgICAgICAgIFdIRU4gJ24nIFRIRU4gJ25vdGhpbmcnCisgICAgICAgICAgV0hFTiAn ZicgVEhFTiAnZnVsbCcKKyAgICAgICAgICBXSEVOICdpJyBUSEVOICdpbmRleCcKKyAgRU5EKSBh cyByZXBsaWNhX2lkZW50aXR5LAogICAoc2VsZWN0IG5zcG5hbWUgRlJPTSBwZ19uYW1lc3BhY2Ug V0hFUkUgb2lkID0ge3tzY2lkfX06Om9pZCApIGFzIHNjaGVtYSwKICAgcGdfZ2V0X3VzZXJieWlk KHJlbC5yZWxvd25lcikgQVMgcmVsb3duZXIsIHJlbC5yZWxraW5kLAogICAoQ0FTRSBXSEVOIHJl bC5yZWxraW5kID0gJ3AnIFRIRU4gdHJ1ZSBFTFNFIGZhbHNlIEVORCkgQVMgaXNfcGFydGl0aW9u ZWQsCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy91 cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvdXBkYXRl LnNxbAppbmRleCAyNWUxYjYyOTUuLmMyZTYxNTM1ZiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3Rl bXBsYXRlcy90YWJsZXMvc3FsLzEyX3BsdXMvdXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVt cGxhdGVzL3RhYmxlcy9zcWwvMTJfcGx1cy91cGRhdGUuc3FsCkBAIC0yNzIsMyArMjcyLDE1IEBA IENPTU1FTlQgT04gVEFCTEUge3tjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9 fQogeyUgZW5kaWYgJX0KIAogeyUgZW5kaWYgJX0KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3sjIyBDaGFuZ2UgcmVwbGljYSBpZGVudGl0 eSAjI30KK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjI30KK3slIGlmIGRhdGEucmVwbGljYV9pZGVudGl0eSBhbmQgZGF0YS5yZXBsaWNhX2lkZW50 aXR5ICE9IG9fZGF0YS5yZXBsaWNhX2lkZW50aXR5ICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJ ZGVudChkYXRhLnNjaGVtYSwgZGF0YS5uYW1lKX19IFJFUExJQ0EgSURFTlRJVFkge3tkYXRhLnJl cGxpY2FfaWRlbnRpdHkgfX07Cit7JSBlbmRpZiAlfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSByZXBsaWNhIGlkZW50 aXR5ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjfQoreyUgaWYgZGF0YS5yZXBsaWNhX2lkZW50aXR5IGFuZCBkYXRhLnJlcGxpY2FfaWRl bnRpdHkgIT0gb19kYXRhLnJlcGxpY2FfaWRlbnRpdHkgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxx dElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5hbWUpfX0gUkVQTElDQSBJREVOVElUWSB7e2RhdGEu cmVwbGljYV9pZGVudGl0eSB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv dGVtcGxhdGVzL3RhYmxlcy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZXMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbAppbmRleCA0ZDg0YmFiY2UuLmVmMGVj NGUyMyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZXMvc3FsL2RlZmF1bHQv dXBkYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlcy9zcWwvZGVmYXVsdC91 cGRhdGUuc3FsCkBAIC0yNTYsMyArMjU2LDE3IEBAIENPTU1FTlQgT04gVEFCTEUge3tjb25ufHF0 SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEubmFtZSl9fQogeyUgZW5kaWYgJX0KIAogeyUgZW5kaWYg JX0KKworeyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjfQoreyMjIENoYW5nZSByZXBsaWNhIGlkZW50aXR5ICMjfQoreyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyUgaWYgZGF0YS5yZXBsaWNh X2lkZW50aXR5IGFuZCBkYXRhLnJlcGxpY2FfaWRlbnRpdHkgIT0gb19kYXRhLnJlcGxpY2FfaWRl bnRpdHkgJX0KK0FMVEVSIFRBQkxFIHt7Y29ubnxxdElkZW50KGRhdGEuc2NoZW1hLCBkYXRhLm5h bWUpfX0gUkVQTElDQSBJREVOVElUWSB7e2RhdGEucmVwbGljYV9pZGVudGl0eSB9fTsKK3slIGVu ZGlmICV9CisKK3sjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjI30KK3sjIyBDaGFuZ2UgcmVwbGljYSBpZGVudGl0eSAjI30KK3sjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI30KK3slIGlmIGRhdGEucmVw bGljYV9pZGVudGl0eSBhbmQgZGF0YS5yZXBsaWNhX2lkZW50aXR5ICE9IG9fZGF0YS5yZXBsaWNh X2lkZW50aXR5ICV9CitBTFRFUiBUQUJMRSB7e2Nvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0 YS5uYW1lKX19IFJFUExJQ0EgSURFTlRJVFkge3tkYXRhLnJlcGxpY2FfaWRlbnRpdHkgfX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2Uu anMKaW5kZXggZjMyMmQwODg4Li5lYWI3NzRkZWQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2Uu anMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcwpAQCAtOTksNiArOTksMTggQEAgZGVmaW5lKCdwZ2Fk bWluLm5vZGUuZGF0YWJhc2UnLCBbCiAKICAgICAgICAgcmV0dXJuIHNlcnZlci5jb25uZWN0ZWQg JiYgc2VydmVyLnVzZXIuY2FuX2NyZWF0ZV9kYjsKICAgICAgIH0sCisgICAgICBjYW5DcmVhdGU6 IGZ1bmN0aW9uKGl0ZW1EYXRhLCBpdGVtKSB7CisgICAgICAgIHZhciB0cmVlRGF0YSA9IHRoaXMu Z2V0VHJlZU5vZGVIaWVyYXJjaHkoaXRlbSksCisgICAgICAgICAgc2VydmVyID0gdHJlZURhdGFb J3NlcnZlciddOworCisgICAgICAgIC8vIElmIHNlcnZlciBpcyBsZXNzIHRoYW4gMTAgdGhlbiBk byBub3QgYWxsb3cgJ2NyZWF0ZScgbWVudQorICAgICAgICBpZiAoc2VydmVyICYmIHNlcnZlci52 ZXJzaW9uIDwgMTAwMDAwKQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBi eSBkZWZhdWx0IHdlIHdhbnQgdG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICB9LAorCiAgICAgICBpc19ub3RfY29ubmVjdGVkOiBmdW5jdGlvbihub2RlKSB7 CiAgICAgICAgIHJldHVybiAobm9kZSAmJiBub2RlLmNvbm5lY3RlZCAhPSB0cnVlICYmIG5vZGUu YWxsb3dDb25uID09IHRydWUpOwogICAgICAgfSwKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3N1YnNjcmlwdGlvbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi4wZmZjY2ViZDUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9fX2luaXRf Xy5weQpAQCAtMCwwICsxLDg2MSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0 IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBUaGUg cGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5k ZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiSW1w bGVtZW50cyBTdWJzY3JpcHRpb24gTm9kZSIiIgorCitpbXBvcnQgc2ltcGxlanNvbiBhcyBqc29u Citmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKKworaW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzIGFzIGRhdGFiYXNlcworZnJvbSBmbGFzayBp bXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9tIGZsYXNrX2JhYmVs ZXggaW1wb3J0IGdldHRleHQKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0 IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQg UEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29u X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIFwKKyAgICBtYWtlX3Jlc3BvbnNlIGFz IGFqYXhfcmVzcG9uc2UsIGdvbmUKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdl dF9kcml2ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJvbSBwZ2Fk bWluLnRvb2xzLnNjaGVtYV9kaWZmLm5vZGVfcmVnaXN0cnkgaW1wb3J0IFNjaGVtYURpZmZSZWdp c3RyeQorZnJvbSBwZ2FkbWluLnRvb2xzLnNjaGVtYV9kaWZmLmNvbXBhcmUgaW1wb3J0IFNjaGVt YURpZmZPYmplY3RDb21wYXJlCitpbXBvcnQgcHN5Y29wZzIKK2Zyb20gcGdhZG1pbi51dGlscyBp bXBvcnQgZ2V0X2NvbXBsZXRlX2ZpbGVfcGF0aAorCisKK2NsYXNzIFN1YnNjcmlwdGlvbk1vZHVs ZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CisgICAgIiIiCisgICAgY2xhc3MgU3Vic2NyaXB0aW9u TW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKQorCisgICAgICAgIEEgbW9kdWxlIGNsYXNzIGZv ciBTdWJzY3JpcHRpb24gbm9kZSBkZXJpdmVkIGZyb20gQ29sbGVjdGlvbk5vZGVNb2R1bGUuCisK KyAgICBNZXRob2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCphcmdzLCAqKmt3YXJn cykKKyAgICAgIC0gTWV0aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgU3Vic2NyaXB0aW9u TW9kdWxlIGFuZCBpdCdzCisgICAgICBiYXNlIG1vZHVsZS4KKworICAgICogZ2V0X25vZGVzKGdp ZCwgc2lkLCBkaWQpCisgICAgICAtIE1ldGhvZCBpcyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93 c2VyIGNvbGxlY3Rpb24gbm9kZS4KKworICAgICogbm9kZV9pbm9kZSgpCisgICAgICAtIE1ldGhv ZCBpcyBvdmVycmlkZGVuIGZyb20gaXRzIGJhc2UgY2xhc3MgdG8gbWFrZSB0aGUgbm9kZSBhcyBs ZWFmIG5vZGUuCisKKyAgICAqIHNjcmlwdF9sb2FkKCkKKyAgICAgIC0gTG9hZCB0aGUgbW9kdWxl IHNjcmlwdCBmb3Igc3Vic2NyaXB0aW9uLCB3aGVuIGFueSBvZiB0aGUgZGF0YWJhc2Ugbm9kZQor ICAgICAgaXMgaW5pdGlhbGl6ZWQuCisgICAgIiIiCisKKyAgICBfTk9ERV9UWVBFID0gJ3N1YnNj cmlwdGlvbicKKyAgICBfQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlN1YnNjcmlwdGlvbnMi KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICIi IgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBpbml0aWFsaXplIHRoZSBTdWJzY3JpcHRpb25N b2R1bGUgYW5kIGl0J3MKKyAgICAgICAgYmFzZSBtb2R1bGUuCisKKyAgICAgICAgQXJnczoKKyAg ICAgICAgICAgICphcmdzOgorICAgICAgICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAg ICAgICBzdXBlcihTdWJzY3JpcHRpb25Nb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3 YXJncykKKyAgICAgICAgc2VsZi5taW5fdmVyID0gMTAwMDAwCisgICAgICAgIHNlbGYubWF4X3Zl ciA9IE5vbmUKKworICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAg ICAgICIiIgorICAgICAgICBNZXRob2QgaXMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgYnJvd3NlciBj b2xsZWN0aW9uIG5vZGUKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERh dGFiYXNlIElkCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dz ZXJfY29sbGVjdGlvbl9ub2RlKGRpZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lu b2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgT3ZlcnJpZGUgdGhpcyBwcm9wZXJ0eSB0 byBtYWtlIHRoZSBub2RlIGEgbGVhZiBub2RlLgorCisgICAgICAgIFJldHVybnM6IEZhbHNlIGFz IHRoaXMgaXMgdGhlIGxlYWYgbm9kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNl CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIi IgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBzdWJzY3JpcHRpb24sIHdoZW4g YW55IG9mIHRoZSBkYXRhYmFzZSBub2RlcworICAgICAgICBhcmUgaW5pdGlhbGl6ZWQuCisKKyAg ICAgICAgUmV0dXJuczogbm9kZSB0eXBlIG9mIHRoZSBzZXJ2ZXIgbW9kdWxlLgorICAgICAgICAi IiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNlcy5EYXRhYmFzZU1vZHVsZS5ub2RlX3R5cGUKKwor ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtb2R1bGVfdXNlX3RlbXBsYXRlX2phdmFzY3JpcHQoc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHdoZXRoZXIgSmluamEyIHRlbXBsYXRl IGlzIHVzZWQgZm9yIGdlbmVyYXRpbmcgdGhlIGphdmFzY3JpcHQKKyAgICAgICAgbW9kdWxlLgor ICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworYmx1ZXByaW50ID0gU3Vic2Ny aXB0aW9uTW9kdWxlKF9fbmFtZV9fKQorCisKK2NsYXNzIFN1YnNjcmlwdGlvblZpZXcoUEdDaGls ZE5vZGVWaWV3LCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CisgICAgIiIiCisgICAgY2xhc3Mg U3Vic2NyaXB0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpCisKKyAgICAgICAgQSB2aWV3IGNsYXNz IGZvciBTdWJzY3JpcHRpb24gbm9kZSBkZXJpdmVkIGZyb20gUEdDaGlsZE5vZGVWaWV3LgorICAg ICAgICBUaGlzIGNsYXNzIGlzIHJlc3BvbnNpYmxlIGZvciBhbGwgdGhlIHN0dWZmIHJlbGF0ZWQg dG8gdmlldyBsaWtlCisgICAgICAgIHVwZGF0aW5nIHN1YnNjcmlwdGlvbiBub2RlLCBzaG93aW5n IHByb3BlcnRpZXMsIHNob3dpbmcgc3FsCisgICAgICAgIGluIHNxbCBwYW5lLgorCisgICAgTWV0 aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygqKmt3YXJncykKKyAgICAgIC0gTWV0 aG9kIGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgU3Vic2NyaXB0aW9uVmlldyBhbmQgaXQncyBi YXNlIHZpZXcuCisKKyAgICAqIGNoZWNrX3ByZWNvbmRpdGlvbigpCisgICAgICAtIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICAg ICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28g YXR0YWNoZXMKKyAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVz IHRvIHNlbGYKKworICAgICogbGlzdCgpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0 byBsaXN0IGFsbCB0aGUgc3Vic2NyaXB0aW9uIG5vZGVzIHdpdGhpbiB0aGF0CisgICAgICBjb2xs ZWN0aW9uLgorCisgICAgKiBub2RlcygpCisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCB1c2Vk IHRvIGNyZWF0ZSBhbGwgdGhlIGNoaWxkIG5vZGUgd2l0aGluIHRoYXQKKyAgICAgIGNvbGxlY3Rp b24uIEhlcmUgaXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBzdWJzY3JpcHRpb24gbm9kZS4KKworICAg ICogcHJvcGVydGllcyhnaWQsIHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlv biB3aWxsIHNob3cgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHNlbGVjdGVkCisgICAgICBzdWJzY3Jp cHRpb24gbm9kZQorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc3ViaWQpCisgICAgICAt IFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGRhdGEgZm9yIHRoZSBzZWxlY3RlZCBzdWJz Y3JpcHRpb24gbm9kZQorCisgICAgKiBjcmVhdGUoZ2lkLCBzaWQsIGRpZCkKKyAgICAgIC0gVGhp cyBmdW5jdGlvbiB3aWxsIGNyZWF0ZSB0aGUgbmV3IHN1YnNjcmlwdGlvbiBub2RlCisKKyAgICAq IGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxs IGRlbGV0ZSB0aGUgc2VsZWN0ZWQgc3Vic2NyaXB0aW9uIG5vZGUKKworICAgICogbXNxbChnaWQs IHNpZCwgZGlkLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJldHVy biBtb2RpZmllZCBTUUwgZm9yIHRoZSBzZWxlY3RlZAorICAgICAgc3Vic2NyaXB0aW9uIG5vZGUK KworICAgICogZ2V0X3NxbChkYXRhLCBzdWJpZCkKKyAgICAgIC0gVGhpcyBmdW5jdGlvbiB3aWxs IGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRhdGEKKworICAgICogZ2V0X3B1YmxpY2F0aW9ucyhn aWQsIHNpZCwgZGlkKQorICAgICAgLSBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHB1YmxpY2F0 aW9ucyBsaXN0CisKKyAgICAqIGdldF90ZW1wbGF0ZXMoZ2lkLCBzaWQsIGRpZCkKKyAgICAgIC0g VGhpcyBmdW5jdGlvbiByZXR1cm5zIHN1YnNjcmlwdGlvbiB0ZW1wbGF0ZXMuCisKKyAgICAqIHNx bChnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5l cmF0ZSBzcWwgdG8gc2hvdyBpdCBpbiBzcWwgcGFuZSBmb3IgdGhlCisgICAgICBzZWxlY3RlZCBz dWJzY3JpcHRpb24gbm9kZS4KKworICAgICogZGVwZW5kZW50cyhnaWQsIHNpZCwgZGlkLCBzdWJp ZCk6CisgICAgICAtIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbnRzIGFuZCByZXR1cm4g YWpheCByZXNwb25zZSBmb3IgdGhlCisgICAgICBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICog ZGVwZW5kZW5jaWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkKToKKyAgICAgIC0gVGhpcyBm dW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0dXJuIGFqYXggcmVzcG9uc2UgZm9y IHRoZQorICAgICAgc3Vic2NyaXB0aW9uIG5vZGUuCisgICAgIiIiCisKKyAgICBfTk9UX0ZPVU5E X1BVQl9JTkZPUk1BVElPTiA9IFwKKyAgICAgICAgZ2V0dGV4dCgiQ291bGQgbm90IGZpbmQgdGhl IHN1YnNjcmlwdGlvbiBpbmZvcm1hdGlvbi4iKQorICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5u b2RlX3R5cGUKKworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2lkJ30sCisgICAg ICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZGlkJ30KKyAgICBdCisgICAgaWRzID0gWworICAg ICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3N1YmlkJ30KKyAgICBdCisKKyAgICBvcGVyYXRp b25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdwcm9w ZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAg ICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2NyZWF0ZScsICdkZWxldGUnOiAnZGVsZXRlJ30K KyAgICAgICAgXSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0JzogJ25vZGUnfSwgeydnZXQnOiAn bm9kZXMnfV0sCisgICAgICAgICdzcWwnOiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNx bCc6IFt7J2dldCc6ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdzdGF0cyc6 IFt7J2dldCc6ICdzdGF0aXN0aWNzJ31dLAorICAgICAgICAnZGVwZW5kZW5jeSc6IFt7J2dldCc6 ICdkZXBlbmRlbmNpZXMnfV0sCisgICAgICAgICdkZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5k ZW50cyd9XSwKKyAgICAgICAgJ2dldF9wdWJsaWNhdGlvbnMnOiBbe30sIHsnZ2V0JzogJ2dldF9w dWJsaWNhdGlvbnMnfV0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ30s IHsnZGVsZXRlJzogJ2RlbGV0ZSd9XQorICAgIH0pCisKKyAgICBkZWYgX2luaXRfKHNlbGYsICoq a3dhcmdzKToKKyAgICAgICAgIiIiCisgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRvIGluaXRpYWxp emUgdGhlIFN1YnNjcmlwdGlvblZpZXcgYW5kIGl0cyBiYXNlIHZpZXcuCisgICAgICAgIEluaXRp YWxpemUgYWxsIHRoZSB2YXJpYWJsZXMgY3JlYXRlL3VzZWQgZHluYW1pY2FsbHkgbGlrZSBjb25u LAorICAgICAgICB0ZW1wbGF0ZV9wYXRoLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAq Kmt3YXJnczoKKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuY29ubiA9IE5vbmUKKyAgICAgICAg c2VsZi50ZW1wbGF0ZV9wYXRoID0gTm9uZQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBOb25lCisK KyAgICAgICAgc3VwZXIoU3Vic2NyaXB0aW9uVmlldywgc2VsZikuX19pbml0X18oKiprd2FyZ3Mp CisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNr IHRoZQorICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB2aWV3 LiBJdCBhbHNvIGF0dGFjaGVzCisgICAgICAgIG1hbmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRo IHByb3BlcnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAg ICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgICMgSGVyZSBhcmdz WzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAg ICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgICAgIHNlbGYuZHJpdmVyID0gZ2V0X2RyaXZl cihQR19ERUZBVUxUX0RSSVZFUikKKyAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IHNlbGYuZHJp dmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgc2VsZi5j b25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAg ICAgICBzZWxmLmRhdGxhc3RzeXNvaWQgPSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2Rp ZCddXVsKKyAgICAgICAgICAgICAgICAnZGF0bGFzdHN5c29pZCddIGlmIHNlbGYubWFuYWdlci5k Yl9pbmZvIGlzIG5vdCBOb25lIFwKKyAgICAgICAgICAgICAgICBhbmQga3dhcmdzWydkaWQnXSBp biBzZWxmLm1hbmFnZXIuZGJfaW5mbyBlbHNlIDAKKworICAgICAgICAgICAgIyBTZXQgdGhlIHRl bXBsYXRlIHBhdGggZm9yIHRoZSBTUUwgc2NyaXB0cworICAgICAgICAgICAgc2VsZi50ZW1wbGF0 ZV9wYXRoID0gKAorICAgICAgICAgICAgICAgICJzdWJzY3JpcHRpb25zL3NxbC8jZ3BkYiN7MH0j Ii5mb3JtYXQoc2VsZi5tYW5hZ2VyLnZlcnNpb24pIGlmCisgICAgICAgICAgICAgICAgc2VsZi5t YW5hZ2VyLnNlcnZlcl90eXBlID09ICdncGRiJyBlbHNlCisgICAgICAgICAgICAgICAgInN1YnNj cmlwdGlvbnMvc3FsLyN7MH0jIi5mb3JtYXQoc2VsZi5tYW5hZ2VyLnZlcnNpb24pCisgICAgICAg ICAgICApCisKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgICAg ICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNl bGYsIGdpZCwgc2lkLCBkaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBp cyB1c2VkIHRvIGxpc3QgYWxsIHRoZSBzdWJzY3JpcHRpb24gbm9kZXMgd2l0aGluIHRoYXQKKyAg ICAgICAgY29sbGVjdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2 ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElECisgICAgICAgICIiIgorICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLl9QUk9QRVJUSUVTX1NRTF0pLCBkaWQ9ZGlkKQorICAgICAgICBz dGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorCisgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNw b25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlk KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBjcmVhdGUg YWxsIHRoZSBjaGlsZCBub2RlcyB3aXRoaW4gdGhlCisgICAgICAgIGNvbGxlY3Rpb24uIEhlcmUg aXQgd2lsbCBjcmVhdGUgYWxsIHRoZSBzdWJzY3JpcHRpb24gbm9kZXMuCisKKyAgICAgICAgQXJn czoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBzaWQ6IFNl cnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAiIiIKKyAgICAg ICAgcmVzID0gW10KKyAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J25vZGVzLnNxbCddKSwgZGlkPWRpZCkKKyAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBzZWxmLmNv bm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzdWx0KQorCisgICAg ICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106CisgICAgICAgICAgICByZXMuYXBwZW5kKAor ICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKKyAg ICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgZGlkLAor ICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNv bj0iaWNvbi1zdWJzY3JpcHRpb24iCisgICAgICAgICAgICAgICAgKSkKKworICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBk ZWYgbm9kZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAgICIiIgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgZmV0Y2ggcHJvcGVydGllcyBvZiB0aGUgc3Vic2NyaXB0aW9u IG5vZGVzLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ RAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisgICAg ICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX1BST1BFUlRJRVNf U1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJpZD1zdWJpZCkKKyAgICAg ICAgc3RhdHVzLCByZXN1bHQgPSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KHNxbCkKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cmVzdWx0KQorCisgICAgICAgIGZvciByb3cgaW4gcmVzdWx0Wydyb3dzJ106 CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IGRhdGE9c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAg ICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAgICAgICAgICBkaWQsCisgICAgICAgICAg ICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICBpY29uPSJpY29uLXN1 YnNjcmlwdGlvbiIKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHN0YXR1cz0y MDAKKyAgICAgICAgICAgICkKKworICAgICAgICByZXR1cm4gZ29uZShnZXR0ZXh0KCJDb3VsZCBu b3QgZmluZCB0aGUgc3BlY2lmaWVkIHN1YnNjcmlwdGlvbi4iKSkKKworICAgIEBjaGVja19wcmVj b25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6 CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgc2hvdyB0aGUgcHJvcGVy dGllcyBvZiB0aGUgc2VsZWN0ZWQgc3Vic2NyaXB0aW9uCisgICAgICAgIG5vZGUuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgICBz aWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAgICAgICAgICAg c3ViaWQ6IFN1YnNjcmlwdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgc3RhdHVzLCByZXMg PSBzZWxmLl9mZXRjaF9wcm9wZXJ0aWVzKGRpZCwgc3ViaWQpCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiByZXMKKworICAgICAgICByZXR1cm4gYWpheF9yZXNw b25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAgICAgICAgIHN0YXR1cz0yMDAK KyAgICAgICAgKQorCisgICAgZGVmIF9mZXRjaF9wcm9wZXJ0aWVzKHNlbGYsIGRpZCwgc3ViaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBmZXRjaCB0aGUgcHJvcGVydGll cyBvZiB0aGUgZXh0ZW5zaW9uLgorICAgICAgICA6cGFyYW0gZGlkOgorICAgICAgICA6cGFyYW0g c3ViaWQ6CisgICAgICAgIDpyZXR1cm46CisgICAgICAgICIiIgorICAgICAgICBzcWwgPSByZW5k ZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBz ZWxmLl9QUk9QRVJUSUVTX1NRTF0pLAorICAgICAgICAgICAgc3ViaWQ9c3ViaWQsIGRpZD1kaWQs CisgICAgICAgICkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KHNxbCkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl LCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGlmIGxlbihy ZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZSwgZ29uZShzZWxmLl9O T1RfRk9VTkRfUFVCX0lORk9STUFUSU9OKQorICAgICAgICBpZiAnY3VyX3B1YicgaW4gcmVzWydy b3dzJ11bMF06CisgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnY3VyX3B1YiddID0gIiwgIi5q b2luKHN0cihlbGVtKSBmb3IgZWxlbSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXNbJ3Jvd3MnXVswXVsnY3VyX3B1YiddKQorICAgICAgICAg ICAgcmVzWydyb3dzJ11bMF1bJ3B1YiddID0gIiwgIi5qb2luKHN0cihlbGVtKSBmb3IgZWxlbSBp bgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc1sncm93 cyddWzBdWydwdWInXSkKKworICAgICAgICByZXR1cm4gVHJ1ZSwgcmVzWydyb3dzJ11bMF0KKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzdWJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMg dGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3Ig dGhlIHZpZXcgbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERh dGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogVmlldyBJRAorICAgICAgICAiIiIKKyAgICAg ICAgZGVwZW5kZW50c19yZXN1bHQgPSBzZWxmLmdldF9kZXBlbmRlbnRzKHNlbGYuY29ubiwgc3Vi aWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9 ZGVwZW5kZW50c19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3RhdGlzdGljcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzdWJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMg dGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25zZQorICAgICAgICBmb3Ig dGhlIHZpZXcgbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIg R3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERh dGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogVmlldyBJRAorICAgICAgICAiIiIKKyAgICAg ICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRzLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YmlkPXN1YmlkLCBjb25uPXNlbGYuY29ubikK KyAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cmVzLAorICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAg ICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVuY2llcyBhbmQg cmV0dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgdmlldyBub2RlLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAg ICAgIHN1YmlkOiBWaWV3IElECisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbmNpZXNfcmVz dWx0ID0gc2VsZi5nZXRfZGVwZW5kZW5jaWVzKHNlbGYuY29ubiwgc3ViaWQpCisgICAgICAgIHJl dHVybiBhamF4X3Jlc3BvbnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW5jaWVzX3Jl c3VsdCwKKyAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAgICAgKQorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc3ViaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHVwZGF0ZSB0aGUgZGF0YSBm b3IgdGhlIHNlbGVjdGVkIHN1YnNjcmlwdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAg ICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSUQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJzY3Jp cHRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVx dWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcygKKyAgICAgICAgICAgIHJlcXVlc3QuZGF0YSwgZW5j b2Rpbmc9J3V0Zi04JworICAgICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYg J3B1YicgaW4gZGF0YToKKyAgICAgICAgICAgICAgICBkYXRhWydwdWInXSA9IGpzb24ubG9hZHMo CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3B1YiddLCBlbmNvZGluZz0ndXRmLTgnCisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgc3FsLCBuYW1lID0gc2VsZi5nZXRfc3FsKGRhdGEs IHN1YmlkKQorICAgICAgICAgICAgIyBNb3N0IHByb2JhYmx5IHRoaXMgaXMgZHVlIHRvIGVycm9y CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShzcWwsIHN0cik6CisgICAgICAgICAgICAg ICAgcmV0dXJuIHNxbAorICAgICAgICAgICAgc3FsID0gc3FsLnN0cmlwKCdcbicpLnN0cmlwKCcg JykKKyAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXR1cm4ganNv bmlmeSgKKyAgICAgICAgICAgICAgICBub2RlPXNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgc3ViaWQsCisgICAgICAgICAgICAgICAgICAg IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgaWNv bj0iaWNvbi0lcyIgJSBzZWxmLm5vZGVfdHlwZQorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkKToKKyAgICAgICAg IiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbiBv YmplY3QKKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQK KyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICIiIgorICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ25h bWUnCisgICAgICAgIF0KKworICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3Qu Zm9ybSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICByZXF1ZXN0LmRhdGEsIGVuY29kaW5n PSd1dGYtOCcKKyAgICAgICAgKQorICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6Cisg ICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwKKyAgICAg ICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAgICAgICAgICBlcnJvcm1zZz1n ZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgIkNvdWxkIG5vdCBmaW5kIHRoZSByZXF1 aXJlZCBwYXJhbWV0ZXIgKHt9KS4iCisgICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KGFyZykK KyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGF0YVsncHVi J10gPSBqc29uLmxvYWRzKAorICAgICAgICAgICAgICAgIGRhdGFbJ3B1YiddLCBlbmNvZGluZz0n dXRmLTgnCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzZWxmLl9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBkdW1teT1GYWxzZSwgY29ubj1zZWxmLmNvbm4p CisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQor ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgc3FsID0gcmVuZGVy X3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdnZXRfcG9zaXRpb24uc3FsJ10pLAorICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25uLCBz dWJuYW1lPWRhdGFbJ25hbWUnXQorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBzdGF0dXMs IHJfc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAgICAgICAgICBpZiBub3Qg c3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cl9zZXQpCisKKyAgICAgICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAg ICAgIG5vZGU9c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAg ICAgICAgICAgICByX3NldFsncm93cyddWzBdWydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAg ZGlkLAorICAgICAgICAgICAgICAgICAgICByX3NldFsncm93cyddWzBdWyduYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgIGljb249J2ljb24tc3Vic2NyaXB0aW9uJworICAgICAgICAgICAgICAg ICkKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lkLCBk aWQsIHN1YmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IGRyb3AgdGhlIHN1YnNjcmlwdGlvbiBvYmplY3QKKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisgICAg ICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2NyaXB0aW9u IElECisgICAgICAgICAgICBvbmx5X3NxbDoKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHN1Ymlk IGlzIE5vbmU6CisgICAgICAgICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9y bSBlbHNlIGpzb24ubG9hZHMoCisgICAgICAgICAgICAgICAgcmVxdWVzdC5kYXRhLCBlbmNvZGlu Zz0ndXRmLTgnCisgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRh ID0geydpZHMnOiBbc3ViaWRdfQorCisgICAgICAgIGNhc2NhZGUgPSBzZWxmLl9jaGVja19jYXNj YWRlX29wZXJhdGlvbigpCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIHN1YmlkIGlu IGRhdGFbJ2lkcyddOgorICAgICAgICAgICAgICAgICMgR2V0IG5hbWUgZm9yIHN1YnNjcmlwdGlv biBmcm9tIHN1YmlkCisgICAgICAgICAgICAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9ERUxF VEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgIHN1YmlkPXN1YmlkLCBjb25uPXNlbGYuY29u bgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHN1Ym5hbWUgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoc3FsKQorCisgICAgICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdWJuYW1lKQorCisgICAgICAgICAgICAgICAgIyBkcm9wIHN1YnNjcmlwdGlvbgor ICAgICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAg ICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAg ICAgICAgICAgICAgICAgICBzdWJuYW1lPXN1Ym5hbWUsIGNhc2NhZGU9Y2FzY2FkZSwgY29ubj1z ZWxmLmNvbm4KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgIGluZm89Z2V0dGV4 dCgiU3Vic2NyaXB0aW9uIGRyb3BwZWQiKQorICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2Vw dCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBt c3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHN1YmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgVGhpcyBmdW5jdGlvbiBpcyB1c2VkIHRvIHJldHVybiBtb2RpZmllZCBTUUwgZm9yIHRoZSBz ZWxlY3RlZAorICAgICAgICBzdWJzY3JpcHRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAg ICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElE CisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogU3Vic2Ny aXB0aW9uIElECisgICAgICAgICIiIgorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgZm9yIGss IHYgaW4gcmVxdWVzdC5hcmdzLml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg ICAgICAgIyBjb21tZW50cyBzaG91bGQgYmUgdGFrZW4gYXMgaXMgYmVjYXVzZSBpZiB1c2VyIGVu dGVycyBhCisgICAgICAgICAgICAgICAgIyBqc29uIGNvbW1lbnQgaXQgaXMgcGFyc2VkIGJ5IGxv YWRzIHdoaWNoIHNob3VsZCBub3QgaGFwcGVuCisgICAgICAgICAgICAgICAgaWYgayBpbiAoJ2Rl c2NyaXB0aW9uJywpOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgorICAgICAgICAg ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRhdGFba10gPSBqc29uLmxvYWRzKHYs IGVuY29kaW5nPSd1dGYtOCcpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAg ICAgICAgICAgICBkYXRhW2tdID0gdgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzcWwsIG5h bWUgPSBzZWxmLmdldF9zcWwoZGF0YSwgc3ViaWQsICdtc3FsJykKKyAgICAgICAgICAgICMgTW9z dCBwcm9iYWJseSB0aGlzIGlzIGR1ZSB0byBlcnJvcgorICAgICAgICAgICAgaWYgbm90IGlzaW5z dGFuY2Uoc3FsLCBzdHIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzcWwKKyAgICAgICAgICAg IGlmIHNxbCA9PSAnJzoKKyAgICAgICAgICAgICAgICBzcWwgPSAiLS1tb2RpZmllZCBTUUwiCisK KyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAg ZGF0YT1zcWwsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgKQorICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIGRlZiBnZXRfZGV0YWlscyhzZWxm LCBkYXRhLCBvbGRfZGF0YSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJl dHVybnMgdGhlIHJlcXVpcmVkIGRhdGEgdG8gY3JlYXRlIHN1YnNjcmlwdGlvbgorICAgICAgICA6 cGFyYW0gZGF0YToKKyAgICAgICAgOnJldHVybjoKKworICAgICAgICAiIiIKKyAgICAgICAgcmVx dWlyZWRfYXJncyA9IFsnbmFtZSddCisKKyAgICAgICAgcmVxdWlyZWRfY29ubmVjdGlvbl9hcmdz ID0gWydob3N0JywgJ3BvcnQnLCAndXNlcm5hbWUnLCAnZGInLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3RfdGltZW91dCcsICdwYXNzZmlsZSddCisgICAgICAg IGZvciBhcmcgaW4gcmVxdWlyZWRfYXJnczoKKyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0 YSBhbmQgYXJnIGluIG9sZF9kYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbYXJnXSA9IG9sZF9k YXRhW2FyZ10KKworICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2Nvbm5lY3Rpb25fYXJnczoK KyAgICAgICAgICAgIGlmIGFyZyBub3QgaW4gZGF0YSBhbmQgYXJnIGluIG9sZF9kYXRhOgorICAg ICAgICAgICAgICAgIGRhdGFbYXJnXSA9IG9sZF9kYXRhW2FyZ10KKworICAgICAgICByZXR1cm4g ZGF0YQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwgZGF0YSwgc3ViaWQ9Tm9uZSwgb3BlcmF0aW9u PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRl IHNxbCBmcm9tIG1vZGVsIGRhdGEuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGRhdGE6 IENvbnRhaW5zIHRoZSBkYXRhIG9mIHRoZSBzZWxlY3RlZCBzdWJzY3JpcHRpb24gbm9kZS4KKyAg ICAgICAgICAgIHN1YmlkOiBTdWJzY3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisKKyAgICAgICAg cmVxdWlyZWRfYXJncyA9IFsnbmFtZSddCisKKyAgICAgICAgcmVxdWlyZWRfY29ubmVjdGlvbl9h cmdzID0gWydob3N0JywgJ3BvcnQnLCAndXNlcm5hbWUnLCAnZGInLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3RfdGltZW91dCcsICdwYXNzZmlsZSddCisgICAg ICAgIGlmIG9wZXJhdGlvbiA9PSAnbXNxbCc6CisgICAgICAgICAgICBkdW1teSA9IFRydWUKKyAg ICAgICAgZWxzZToKKyAgICAgICAgICAgIGR1bW15ID0gRmFsc2UKKworICAgICAgICBpZiBzdWJp ZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9QUk9QRVJUSUVT X1NRTF0pLAorICAgICAgICAgICAgICAgIHN1YmlkPXN1YmlkLAorICAgICAgICAgICAgKQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KHNxbCkKKyAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGlmIGxlbihyZXNbJ3Jvd3Mn XSkgPT0gMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gZ29uZShzZWxmLl9OT1RfRk9VTkRfUFVC X0lORk9STUFUSU9OKQorCisgICAgICAgICAgICBvbGRfZGF0YSA9IHJlc1sncm93cyddWzBdCisg ICAgICAgICAgICBmb3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYg YXJnIG5vdCBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2FyZ10gPSBvbGRfZGF0 YVthcmddCisKKyAgICAgICAgICAgIGZvciBhcmcgaW4gcmVxdWlyZWRfY29ubmVjdGlvbl9hcmdz OgorICAgICAgICAgICAgICAgIGlmIGFyZyBpbiBkYXRhOgorICAgICAgICAgICAgICAgICAgICBv bGRfZGF0YVthcmddID0gZGF0YVthcmddCisKKyAgICAgICAgICAgIGlmICdzbG90X25hbWUnIGlu IGRhdGEgYW5kIGRhdGFbJ3Nsb3RfbmFtZSddID09ICcnOgorICAgICAgICAgICAgICAgIGRhdGFb J3Nsb3RfbmFtZSddID0gJ05vbmUnCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0 ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCBzZWxmLl9V UERBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEs IGNvbm49c2VsZi5jb25uLCBkdW1teT1kdW1teSwKKyAgICAgICAgICAgICkKKyAgICAgICAgICAg IHJldHVybiBzcWwuc3RyaXAoJ1xuJyksIGRhdGFbJ25hbWUnXSBpZiAnbmFtZScgaW4gZGF0YSBc CisgICAgICAgICAgICAgICAgZWxzZSBvbGRfZGF0YVsnbmFtZSddCisgICAgICAgIGVsc2U6CisK KyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm Ll9DUkVBVEVfU1FMXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1k YXRhLCBkdW1teT1kdW1teSwgY29ubj1zZWxmLmNvbm4pCisgICAgICAgICAgICByZXR1cm4gc3Fs LnN0cmlwKCdcbicpLCBkYXRhWyduYW1lJ10KKworICAgIGRlZiBnZXRfY29ubmVjdGlvbihzZWxm LCBjb25uZWN0aW9uX2RldGFpbHMpOgorCisgICAgICAgIHBhc3NmaWxlID0gXAorICAgICAgICAg ICAgY29ubmVjdGlvbl9kZXRhaWxzWydwYXNzZmlsZSddIGlmICdwYXNzZmlsZScgXAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGNvbm5lY3Rpb25fZGV0 YWlscyBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbm5lY3Rpb25fZGV0YWlsc1sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3Bhc3NmaWxlJ10gIT0gJycgZWxzZSBOb25lCisKKyAgICAgICAgY29u biA9IHBzeWNvcGcyLmNvbm5lY3QoCisgICAgICAgICAgICBob3N0PWNvbm5lY3Rpb25fZGV0YWls c1snaG9zdCddLAorICAgICAgICAgICAgZGF0YWJhc2U9Y29ubmVjdGlvbl9kZXRhaWxzWydkYidd LAorICAgICAgICAgICAgdXNlcj1jb25uZWN0aW9uX2RldGFpbHNbJ3VzZXJuYW1lJ10sCisgICAg ICAgICAgICBwYXNzd29yZD1jb25uZWN0aW9uX2RldGFpbHNbJ3Bhc3N3b3JkJ10gaWYKKyAgICAg ICAgICAgIGNvbm5lY3Rpb25fZGV0YWlsc1sncGFzc3dvcmQnXSBlbHNlIE5vbmUsCisgICAgICAg ICAgICBwb3J0PWNvbm5lY3Rpb25fZGV0YWlsc1sncG9ydCddIGlmCisgICAgICAgICAgICBjb25u ZWN0aW9uX2RldGFpbHNbJ3BvcnQnXSBlbHNlIE5vbmUsCisgICAgICAgICAgICBwYXNzZmlsZT1n ZXRfY29tcGxldGVfZmlsZV9wYXRoKHBhc3NmaWxlKSwKKyAgICAgICAgICAgIGNvbm5lY3RfdGlt ZW91dD1jb25uZWN0aW9uX2RldGFpbHNbJ2Nvbm5lY3RfdGltZW91dCddIGlmCisgICAgICAgICAg ICBjb25uZWN0aW9uX2RldGFpbHNbJ2Nvbm5lY3RfdGltZW91dCddIGVsc2UgMAorICAgICAgICAp CisgICAgICAgICMgY3JlYXRlIGEgY3Vyc29yCisgICAgICAgIGN1ciA9IGNvbm4uY3Vyc29yKCkK KyAgICAgICAgY3VyLmV4ZWN1dGUoJ1NFTEVDVCBwdWJuYW1lIGZyb20gcGdfcHVibGljYXRpb24n KQorCisgICAgICAgIHB1YmxpY2F0aW9ucyA9IGN1ci5mZXRjaGFsbCgpCisgICAgICAgICMgQ2xv c2UgdGhlIGNvbm5lY3Rpb24KKyAgICAgICAgY29ubi5jbG9zZSgpCisKKyAgICAgICAgcmV0dXJu IHB1YmxpY2F0aW9ucworCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRfcHVi bGljYXRpb25zKHNlbGYsIGdpZCwgc2lkLCBkaWQsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIHB1YmxpY2F0aW9uIGxpc3QK KworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAg ICAgICAgIHNpZDogU2VydmVyIElECisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICIiIgorCisgICAgICAgIHVybF9wYXJhbXMgPSBOb25lCisgICAgICAgIGlmIHJlcXVlc3Qu YXJnczoKKyAgICAgICAgICAgIHVybF9wYXJhbXMgPSB7azogdiBmb3IgaywgdiBpbiByZXF1ZXN0 LmFyZ3MuaXRlbXMoKX0KKworICAgICAgICByZXF1aXJlZF9jb25uZWN0aW9uX2FyZ3MgPSBbJ2hv c3QnLCAncG9ydCcsICd1c2VybmFtZScsICdkYicsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAnY29ubmVjdF90aW1lb3V0JywgJ3Bhc3NmaWxlJ10KKworICAgICAgICBpZiAn b2lkJyBpbiB1cmxfcGFyYW1zOgorICAgICAgICAgICAgc3RhdHVzLCBwYXJhbXMgPSBzZWxmLl9m ZXRjaF9wcm9wZXJ0aWVzKGRpZCwgdXJsX3BhcmFtc1snb2lkJ10pCisgICAgICAgICAgICBmb3Ig YXJnIGluIHJlcXVpcmVkX2Nvbm5lY3Rpb25fYXJnczoKKyAgICAgICAgICAgICAgICBpZiBhcmcg bm90IGluIHVybF9wYXJhbXMgYW5kIGFyZyBpbiBwYXJhbXM6CisgICAgICAgICAgICAgICAgICAg IHVybF9wYXJhbXNbYXJnXSA9IHBhcmFtc1thcmddCisKKyAgICAgICAgcmVzID0gc2VsZi5nZXRf Y29ubmVjdGlvbih1cmxfcGFyYW1zKQorCisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgICAgIGZv ciBwdWIgaW4gcmVzOgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7CisgICAgICAgICAgICAg ICAgInZhbHVlIjogcHViWzBdLAorICAgICAgICAgICAgICAgICJsYWJlbCI6IHB1YlswXQorICAg ICAgICAgICAgfSkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgZGF0YT1yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHN1YmlkLCBqc29uX3Jlc3A9VHJ1ZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgZ2VuZXJhdGUgc3FsIHRvIHNob3cgaW4gdGhlIHNxbCBwYW5lIGZvciB0aGUKKyAg ICAgICAgc2VsZWN0ZWQgcHVibGljYXRpb24gbm9kZS4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSUQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElECisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAgICAgICAgICBzdWJpZDogUHVibGljYXRp b24gSUQKKyAgICAgICAgICAgIGpzb25fcmVzcDoKKyAgICAgICAgIiIiCisgICAgICAgIHNxbCA9 IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsIHNlbGYuX1BST1BFUlRJRVNfU1FMXSksCisgICAgICAgICAgICBzdWJpZD1zdWJpZAorICAg ICAgICApCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwp CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBpZiBsZW4ocmVzWydyb3dzJ10pID09 IDA6CisgICAgICAgICAgICByZXR1cm4gZ29uZShzZWxmLl9OT1RfRk9VTkRfUFVCX0lORk9STUFU SU9OKQorCisgICAgICAgICMgTWFraW5nIGNvcHkgb2Ygb3V0cHV0IGZvciBmdXR1cmUgdXNlCisg ICAgICAgIG9sZF9kYXRhID0gZGljdChyZXNbJ3Jvd3MnXVswXSkKKyAgICAgICAgaWYgb2xkX2Rh dGFbJ3Nsb3RfbmFtZSddIGlzIE5vbmUgYW5kICdjcmVhdGVfc2xvdCcgbm90IGluIG9sZF9kYXRh OgorICAgICAgICAgICAgb2xkX2RhdGFbJ2NyZWF0ZV9zbG90J10gPSBGYWxzZQorCisgICAgICAg IHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX0NSRUFURV9TUUxdKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9b2xkX2RhdGEsIGNvbm49c2VsZi5j b25uLCBkdW1teT1UcnVlKQorICAgICAgICBzcWwgKz0gIlxuXG4iCisKKyAgICAgICAgc3FsX2hl YWRlciA9ICItLSBTdWJzY3JpcHRpb246IHt9Ii5mb3JtYXQob2xkX2RhdGFbJ25hbWUnXSkKKyAg ICAgICAgc3FsX2hlYWRlciArPSAiXG5cbiIKKworICAgICAgICBzcWxfaGVhZGVyICs9ICItLSBE Uk9QIFNVQlNDUklQVElPTiB7fTsiLmZvcm1hdChvbGRfZGF0YVsnbmFtZSddKQorCisgICAgICAg IHNxbF9oZWFkZXIgKz0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgc2VsZi5fREVMRVRFX1NRTF0pLAorICAgICAgICAgICAgc25hbWU9 b2xkX2RhdGFbJ25hbWUnXSwgKQorCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIlxuIgorCisgICAg ICAgIHNxbCA9IHNxbF9oZWFkZXIgKyBzcWwKKworICAgICAgICBpZiBub3QganNvbl9yZXNwOgor ICAgICAgICAgICAgcmV0dXJuIHNxbAorCisgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJl c3BvbnNlPXNxbCkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW50 cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybnMgYW4gYWpheCByZXNwb25z ZQorICAgICAgICBmb3IgdGhlIHN1YnNjcmlwdGlvbiBub2RlLgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJRAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIg SUQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSUQKKyAgICAgICAgICAgIHN1YmlkOiBTdWJz Y3JpcHRpb24gSUQKKyAgICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2Vs Zi5nZXRfZGVwZW5kZW50cyhzZWxmLmNvbm4sIHN1YmlkKQorICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRlcGVuZGVudHNfcmVzdWx0LAorICAgICAg ICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzdWJpZCk6CisgICAgICAg ICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9uIGdldHMgdGhlIGRlcGVuZGVuY2llcyBhbmQgcmV0 dXJucyBhbiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgc3Vic2NyaXB0aW9uIG5vZGUu CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAg ICAgICAgICBzaWQ6IFNlcnZlciBJRAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJRAorICAg ICAgICAgICAgc3ViaWQ6IFN1YnNjcmlwdGlvbiBJRAorICAgICAgICAiIiIKKyAgICAgICAgZGVw ZW5kZW5jaWVzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVuY2llcyhzZWxmLmNvbm4sIHN1Ymlk KQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRl cGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwor CitTdWJzY3JpcHRpb25WaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL2NvbGwtcHVibGljYXRpb24uc3ZnIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv c3RhdGljL2ltZy9jb2xsLXB1YmxpY2F0aW9uLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmNjOTQ2OTE5YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRp Yy9pbWcvY29sbC1wdWJsaWNhdGlvbi5zdmcKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lv bj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3Ry YXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxk IDApICAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93 d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94 bGluayIgeD0iMHB4IiB5PSIwcHgiCisJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJs ZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHls ZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxsOiNEREUxRjA7c3Ryb2tlOiM0QjVGQUQ7c3Ry b2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5k O3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKwkuc3Qxe2ZpbGw6IzRCNUZBRDt9CisJLnN0MntmaWxs Om5vbmU7c3Ryb2tlOiM0QjVGQUQ7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91 bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+ Cis8Zz4KKwk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTAsMTNjLTIsMi01LjEsMi03LjEsMHMtMi01 LjEsMC03LjFDNC41LDcuNSw4LjUsMTEuNSwxMCwxM3oiLz4KKzwvZz4KKzxnPgorCTxwYXRoIGNs YXNzPSJzdDAiIGQ9Ik0xMS44LDExLjNjLTIsMi01LjEsMi03LjEsMHMtMi01LjEsMC03LjFDNi4y LDUuNywxMC4yLDkuOCwxMS44LDExLjN6Ii8+Cis8L2c+Cis8cGF0aCBjbGFzcz0ic3QxIiBkPSJN OC43LDcuOGwwLjgtMC43YzAuMSwwLjEsMC4zLDAuMSwwLjQsMC4xYzAuNiwwLDEtMC40LDEtMXMt MC40LTEtMS0xcy0xLDAuNC0xLDFjMCwwLjEsMCwwLjMsMC4xLDAuNEw4LjIsNy4zCisJTDguNyw3 Ljh6Ii8+Cis8Zz4KKwk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNMTAuNSwxLjZjMi4yLDAsNCwxLjgs NCw0Ii8+CisJPHBhdGggY2xhc3M9InN0MiIgZD0iTTEwLjYsMy42YzEuMSwwLDIsMC45LDIsMiIv PgorPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL2NvbGwtc3Vi c2NyaXB0aW9uLnN2ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRpYy9pbWcvY29sbC1zdWJzY3JpcHRpb24uc3Zn Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uZDE0YWRmZDM5Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2ltZy9jb2xsLXN1YnNjcmlwdGlvbi5zdmcKQEAg LTAsMCArMSwzMCBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwh LS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyNC4wLjEsIFNWRyBFeHBvcnQgUGx1Zy1J biAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBp ZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGlu az0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCisJIHZpZXdC b3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4 bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxs OiNGQkVFREY7c3Ryb2tlOiNFNThFMjY7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6 cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKwkuc3Qx e2ZpbGw6I0U1OEUyNjt9CisJLnN0MntmaWxsOm5vbmU7c3Ryb2tlOiNFNThFMjY7c3Ryb2tlLXdp ZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9r ZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+Cis8Zz4KKwk8Zz4KKwkJPGc+CisJCQk8cGF0aCBj bGFzcz0ic3QwIiBkPSJNMTIuOSw1LjdjMiwyLDIsNS4xLDAsNy4xcy01LjEsMi03LjEsMEM3LjMs MTEuMywxMS40LDcuMiwxMi45LDUuN3oiLz4KKwkJPC9nPgorCTwvZz4KKwk8Zz4KKwkJPGc+CisJ CQk8cGF0aCBjbGFzcz0ic3QwIiBkPSJNMTEuNCw0LjJjMiwyLDIsNS4xLDAsNy4xcy01LjEsMi03 LjEsMEM1LjgsOS44LDkuOSw1LjcsMTEuNCw0LjJ6Ii8+CisJCTwvZz4KKwkJPGc+CisJCQk8cGF0 aCBjbGFzcz0ic3QxIiBkPSJNNy44LDcuM0w3LjEsNi42YzAuMS0wLjEsMC4xLTAuMywwLjEtMC40 YzAtMC42LTAuNC0xLTEtMXMtMSwwLjQtMSwxczAuNCwxLDEsMWMwLjEsMCwwLjMsMCwwLjQtMC4x CisJCQkJbDAuNywwLjciLz4KKwkJCTxnPgorCQkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik01LjYs MS43YzAsMi4yLTEuOCw0LTQsNCIvPgorCQkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0zLjcsMS44 YzAsMS4xLTAuOSwyLTIsMiIvPgorCQkJPC9nPgorCQk8L2c+CisJPC9nPgorPC9nPgorPC9zdmc+ CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3B1YmxpY2F0aW9uLnN2ZyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRp b25zL3N0YXRpYy9pbWcvcHVibGljYXRpb24uc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMC4uM2I1ODJjZjUxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGlj L2ltZy9wdWJsaWNhdGlvbi5zdmcKQEAgLTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4w IiBlbmNvZGluZz0idXRmLTgiPz4KKzwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAy My4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAt LT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMu b3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIg eD0iMHB4IiB5PSIwcHgiCisJIHZpZXdCb3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNr Z3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHlsZSB0eXBl PSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxsOiNEREUxRjA7c3Ryb2tlOiM0QjVGQUQ7c3Ryb2tlLXdp ZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9r ZS1taXRlcmxpbWl0OjEwO30KKwkuc3Qxe2ZpbGw6IzRCNUZBRDt9CisJLnN0MntmaWxsOm5vbmU7 c3Ryb2tlOiM0QjVGQUQ7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ry b2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+Cis8Zz4K Kwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0MCIgZD0iTTExLDEyYy0yLDItNS4xLDItNy4xLDBzLTIt NS4xLDAtNy4xQzUuNCw2LjQsOS41LDEwLjUsMTEsMTJ6Ii8+CisJPC9nPgorCTxnPgorCQk8cGF0 aCBjbGFzcz0ic3QxIiBkPSJNNy45LDguNmwwLjctMC43QzguNyw4LDguOSw4LDksOGMwLjYsMCwx LTAuNCwxLTFTOS42LDYsOSw2UzgsNi40LDgsN2MwLDAuMSwwLDAuMywwLjEsMC40TDcuNCw4LjEi Lz4KKwkJPGc+CisJCQk8cGF0aCBjbGFzcz0ic3QyIiBkPSJNOS42LDIuNWMyLjIsMCw0LDEuOCw0 LDQiLz4KKwkJCTxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik05LjcsNC40YzEuMSwwLDIsMC45LDIsMiIv PgorCQk8L2c+CisJPC9nPgorPC9nPgorPC9zdmc+CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0 aWMvaW1nL3N1YnNjcmlwdGlvbi5zdmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3N1YnNjcmlwdGlv bi5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi42M2ExNTNjNmQKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy9zdGF0aWMvaW1nL3N1YnNjcmlwdGlvbi5zdmcKQEAg LTAsMCArMSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KKzwh LS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAyMy4wLjYsIFNWRyBFeHBvcnQgUGx1Zy1J biAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4KKzxzdmcgdmVyc2lvbj0iMS4xIiBp ZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGlu az0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeD0iMHB4IiB5PSIwcHgiCisJIHZpZXdC b3g9IjAgMCAxNiAxNiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTYgMTY7IiB4 bWw6c3BhY2U9InByZXNlcnZlIj4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisJLnN0MHtmaWxs OiNGQkVFREY7c3Ryb2tlOiNFNThFMjY7c3Ryb2tlLXdpZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6 cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjEwO30KKwkuc3Qx e2ZpbGw6I0U1OEUyNjt9CisJLnN0MntmaWxsOm5vbmU7c3Ryb2tlOiNFNThFMjY7c3Ryb2tlLXdp ZHRoOjAuNjU7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9r ZS1taXRlcmxpbWl0OjEwO30KKzwvc3R5bGU+Cis8Zz4KKwk8Zz4KKwkJPHBhdGggY2xhc3M9InN0 MCIgZD0iTTEyLjIsNWMyLDIsMiw1LjEsMCw3LjFzLTUuMSwyLTcuMSwwQzYuNiwxMC42LDEwLjcs Ni41LDEyLjIsNXoiLz4KKwk8L2c+CisJPGc+CisJCTxwYXRoIGNsYXNzPSJzdDEiIGQ9Ik04LjYs OC4xTDcuOSw3LjRDOCw3LjMsOCw3LjEsOCw3YzAtMC42LTAuNC0xLTEtMVM2LDYuNCw2LDdzMC40 LDEsMSwxYzAuMSwwLDAuMywwLDAuNC0wLjFsMC43LDAuNyIvPgorCQk8Zz4KKwkJCTxwYXRoIGNs YXNzPSJzdDIiIGQ9Ik02LjQsMi41YzAsMi4yLTEuOCw0LTQsNCIvPgorCQkJPHBhdGggY2xhc3M9 InN0MiIgZD0iTTQuNSwyLjZjMCwxLjEtMC45LDItMiwyIi8+CisJCTwvZz4KKwk8L2c+Cis8L2c+ Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3N0YXRpYy9qcy9zdWJzY3JpcHRpb24uanMg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vi c2NyaXB0aW9ucy9zdGF0aWMvanMvc3Vic2NyaXB0aW9uLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uYTVkZTc0ZmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv c3RhdGljL2pzL3N1YnNjcmlwdGlvbi5qcwpAQCAtMCwwICsxLDQzMCBAQAorLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworLy8KKy8v IHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKy8vCisvLyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDIwLCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisvLyBUaGlzIHNvZnR3YXJlIGlz IHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKy8vCisvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworCitkZWZp bmUoJ3BnYWRtaW4ubm9kZS5zdWJzY3JpcHRpb24nLCBbCisgICdzb3VyY2VzL2dldHRleHQnLCAn c291cmNlcy91cmxfZm9yJywgJ2pxdWVyeScsICd1bmRlcnNjb3JlJywKKyAgJ3NvdXJjZXMvcGdh ZG1pbicsICdwZ2FkbWluLmJyb3dzZXInLCAncGdhZG1pbi5iYWNrZm9ybScsCisgICdzb3VyY2Vz L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL21vZGVsX3ZhbGlkYXRpb24nLCAncGdhZG1p bi5hbGVydGlmeWpzJywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJywKK10sIGZ1bmN0aW9u KGdldHRleHQsIHVybF9mb3IsICQsIF8sIHBnQWRtaW4sIHBnQnJvd3NlciwgQmFja2Zvcm0sIG1v ZGVsVmFsaWRhdGlvbiwgQWxlcnRpZnkpIHsKKworICAvLyBFeHRlbmQgdGhlIGJyb3dzZXIncyBj b2xsZWN0aW9uIGNsYXNzIGZvciBzdWJzY3JpcHRpb25zIGNvbGxlY3Rpb24KKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2NvbGwtc3Vic2NyaXB0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNb J2NvbGwtc3Vic2NyaXB0aW9uJ10gPQorICAgICAgcGdCcm93c2VyLkNvbGxlY3Rpb24uZXh0ZW5k KHsKKyAgICAgICAgbm9kZTogJ3N1YnNjcmlwdGlvbicsCisgICAgICAgIGxhYmVsOiBnZXR0ZXh0 KCdTdWJzY3JpcHRpb25zJyksCisgICAgICAgIHR5cGU6ICdjb2xsLXN1YnNjcmlwdGlvbicsCisg ICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdzdWJvd25lcicsICdwdWInLCAnZW5hYmxlZCddLAor ICAgICAgICBoYXNTdGF0aXN0aWNzOiB0cnVlLAorICAgICAgfSk7CisgIH0KKworICAvLyBFeHRl bmQgdGhlIGJyb3dzZXIncyBub2RlIGNsYXNzIGZvciBzdWJzY3JpcHRpb24gbm9kZQorICBpZiAo IXBnQnJvd3Nlci5Ob2Rlc1snc3Vic2NyaXB0aW9uJ10pIHsKKyAgICBwZ0Jyb3dzZXIuTm9kZXNb J3N1YnNjcmlwdGlvbiddID0gcGdCcm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAgIHBhcmVudF90 eXBlOiAnZGF0YWJhc2UnLAorICAgICAgdHlwZTogJ3N1YnNjcmlwdGlvbicsCisgICAgICBzcWxB bHRlckhlbHA6ICdzcWwtYWx0ZXJzdWJzY3JpcHRpb24uaHRtbCcsCisgICAgICBzcWxDcmVhdGVI ZWxwOiAnc3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi5odG1sJywKKyAgICAgIGRpYWxvZ0hlbHA6IHVy bF9mb3IoJ2hlbHAuc3RhdGljJywgeydmaWxlbmFtZSc6ICdzdWJzY3JpcHRpb25fZGlhbG9nLmh0 bWwnfSksCisgICAgICBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaXB0aW9uJyksCisgICAgICBoYXNT UUw6ICB0cnVlLAorICAgICAgY2FuRHJvcDogdHJ1ZSwKKyAgICAgIGNhbkRyb3BDYXNjYWRlOiB0 cnVlLAorICAgICAgaGFzRGVwZW5kczogdHJ1ZSwKKyAgICAgIGhhc1N0YXRpc3RpY3M6IHRydWUs CisgICAgICB3aWR0aDogJzUwMXB4JywKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCkgeworCisgICAg ICAgIC8vIEF2b2lkIG11bHRpcGxlIHJlZ2lzdHJhdGlvbiBvZiBtZW51cworICAgICAgICBpZiAo dGhpcy5pbml0aWFsaXplZCkKKyAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0 aWFsaXplZCA9IHRydWU7CisKKworICAgICAgICAvLyBBZGQgY29udGV4dCBtZW51cyBmb3Igc3Vi c2NyaXB0aW9uCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1l OiAnY3JlYXRlX3N1YnNjcmlwdGlvbl9vbl9kYXRhYmFzZScsIG5vZGU6ICdkYXRhYmFzZScsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNh bGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVh dGUnLCBwcmlvcml0eTogNCwgbGFiZWw6IGdldHRleHQoJ1N1YnNjcmlwdGlvbi4uLicpLAorICAg ICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1zdWJzY3JpcHRpb24nLCBkYXRhOiB7YWN0aW9u OiAnY3JlYXRlJ30sCisgICAgICAgICAgZW5hYmxlOiBwZ0Jyb3dzZXIuTm9kZXNbJ2RhdGFiYXNl J10uY2FuQ3JlYXRlLAorICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3N1YnNj cmlwdGlvbl9vbl9jb2xsJywgbm9kZTogJ2NvbGwtc3Vic2NyaXB0aW9uJywgbW9kdWxlOiB0aGlz LAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2FsbGJhY2s6ICdz aG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9y aXR5OiA0LCBsYWJlbDogZ2V0dGV4dCgnU3Vic2NyaXB0aW9uLi4uJyksCisgICAgICAgICAgaWNv bjogJ3djVGFiSWNvbiBpY29uLXN1YnNjcmlwdGlvbicsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUn fSwKKyAgICAgICAgICBlbmFibGU6ICdjYW5DcmVhdGUnLAorICAgICAgICB9LHsKKyAgICAgICAg ICBuYW1lOiAnY3JlYXRlX3N1YnNjcmlwdGlvbicsIG5vZGU6ICdzdWJzY3JpcHRpb24nLCBtb2R1 bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxs YmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRl JywgcHJpb3JpdHk6IDQsIGxhYmVsOiBnZXR0ZXh0KCdTdWJzY3JpcHRpb24uLi4nKSwKKyAgICAg ICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tc3Vic2NyaXB0aW9uJywgZGF0YToge2FjdGlvbjog J2NyZWF0ZSd9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNyZWF0ZScsCisgICAgICAgIH1dKTsK KyAgICAgIH0sCisgICAgICAvLyBEZWZpbmUgdGhlIG1vZGVsIGZvciBzdWJzY3JpcHRpb24gbm9k ZQorICAgICAgbW9kZWw6IHBnQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGlk QXR0cmlidXRlOiAnb2lkJywKKyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1lOiB1 bmRlZmluZWQsCisgICAgICAgICAgc3Vib3duZXI6IHVuZGVmaW5lZCwKKyAgICAgICAgICBwdWJ0 YWJsZTogdW5kZWZpbmVkLAorICAgICAgICAgIHB1YjpbXSwKKyAgICAgICAgICBlbmFibGVkOnRy dWUsCisgICAgICAgICAgY3JlYXRlX3Nsb3Q6IHRydWUsCisgICAgICAgICAgY29weV9kYXRhOnRy dWUsCisgICAgICAgICAgY29ubmVjdDp0cnVlLAorICAgICAgICAgIGNvcHlfZGF0YV9hZnRlcl9y ZWZyZXNoOmZhbHNlLAorICAgICAgICAgIHN5bmM6J29mZicsCisgICAgICAgICAgcmVmcmVzaF9w dWI6IHVuZGVmaW5lZCwKKyAgICAgICAgfSwKKworICAgICAgICAvLyBEZWZhdWx0IHZhbHVlcyEK KyAgICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rpb24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2 YXIgaXNOZXcgPSAoXy5zaXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7 CisgICAgICAgICAgICB2YXIgdXNlckluZm8gPSBwZ0Jyb3dzZXIuc2VydmVySW5mb1thcmdzLm5v ZGVfaW5mby5zZXJ2ZXIuX2lkXS51c2VyOworCisgICAgICAgICAgICB0aGlzLnNldCh7J3N1Ym93 bmVyJzogdXNlckluZm8ubmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAg ICAgICAgcGdCcm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhp cywgYXJndW1lbnRzKTsKKyAgICAgICAgfSwKKworICAgICAgICAvLyBEZWZpbmUgdGhlIHNjaGVt YSBmb3IgdGhlIHN1YnNjcmlwdGlvbiBub2RlCisgICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAg ICBpZDogJ25hbWUnLCBsYWJlbDogZ2V0dGV4dCgnTmFtZScpLCB0eXBlOiAndGV4dCcsCisgICAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAg dmlzaWJsZTogZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpZighXy5pc1VuZGVmaW5lZCh0aGlz Lm5vZGVfaW5mbykgJiYgIV8uaXNVbmRlZmluZWQodGhpcy5ub2RlX2luZm8uc2VydmVyKQorICAg ICAgICAgICAgICAmJiAhXy5pc1VuZGVmaW5lZCh0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lv bikgJiYKKyAgICAgICAgICAgICAgICB0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA+PSAx MDAwMDApIHsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAg ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgfSwKKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdvaWQnLCBsYWJlbDogZ2V0dGV4dCgnT0lEJyksIGNlbGw6ICdzdHJpbmcnLCBtb2Rl OiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICB0eXBlOiAndGV4dCcsCisgICAgICAgIH0sCisg ICAgICAgIHsKKyAgICAgICAgICBpZDogJ3N1Ym93bmVyJywgbGFiZWw6IGdldHRleHQoJ093bmVy JyksIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5Ob2RlTGlzdEJ5 TmFtZUNvbnRyb2wsIG5vZGU6ICdyb2xlJywKKyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAncHJv cGVydGllcycsICdjcmVhdGUnXSwgc2VsZWN0MjogeyBhbGxvd0NsZWFyOiBmYWxzZX0sCisgICAg ICAgICAgZGlzYWJsZWQ6IGZ1bmN0aW9uKG0peworICAgICAgICAgICAgaWYobS5pc05ldygpKQor ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdob3N0Jywg bGFiZWw6IGdldHRleHQoJ0hvc3QgbmFtZS9hZGRyZXNzJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6 IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAn ZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBjb250cm9sOiBCYWNrZm9ybS5JbnB1dENvbnRy b2wuZXh0ZW5kKHsKKyAgICAgICAgICAgIG9uQ2hhbmdlOiBmdW5jdGlvbigpIHsKKyAgICAgICAg ICAgICAgQmFja2Zvcm0uSW5wdXRDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlz LCBhcmd1bWVudHMpOworICAgICAgICAgICAgICBpZiAoIXRoaXMubW9kZWwgfHwgIXRoaXMubW9k ZWwuY2hhbmdlZCkgeworICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuaW5mb3JtX3RleHQgPSB1 bmRlZmluZWQ7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICB9CisgICAg ICAgICAgICB9LAorICAgICAgICAgIH0pLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Bv cnQnLCBsYWJlbDogZ2V0dGV4dCgnUG9ydCcpLCB0eXBlOiAnaW50JywgZ3JvdXA6IGdldHRleHQo J0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdj cmVhdGUnXSwgbWluOiAxLCBtYXg6IDY1NTM1LAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3Jt LklucHV0Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkg eworICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdl LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbCB8 fCAhdGhpcy5tb2RlbC5jaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbmZv cm1fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAndXNlcm5hbWUnLCBsYWJlbDogZ2V0dGV4dCgnVXNlcm5hbWUnKSwgdHlwZTogJ3Rl eHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICAgIG1vZGU6IFsncHJv cGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3Jt LklucHV0Q29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uKCkg eworICAgICAgICAgICAgICBCYWNrZm9ybS5JbnB1dENvbnRyb2wucHJvdG90eXBlLm9uQ2hhbmdl LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbCB8 fCAhdGhpcy5tb2RlbC5jaGFuZ2VkKSB7CisgICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5pbmZv cm1fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAncGFzc3dvcmQnLCBsYWJlbDogZ2V0dGV4dCgnUGFzc3dvcmQnKSwgdHlwZTogJ3Bh c3N3b3JkJywgbWF4bGVuZ3RoOiBudWxsLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdDb25u ZWN0aW9uJyksIGNvbnRyb2w6ICdpbnB1dCcsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwgZGVw czogWydjb25uZWN0X25vdyddLAorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2RiJywgbGFi ZWw6IGdldHRleHQoJ0RhdGFiYXNlJyksIHR5cGU6ICd0ZXh0JywgZ3JvdXA6IGdldHRleHQoJ0Nv bm5lY3Rpb24nKSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCcsICdjcmVh dGUnXSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnY29ubmVjdF90aW1l b3V0JywgbGFiZWw6IGdldHRleHQoJ0Nvbm5lY3Rpb24gdGltZW91dCcpLCB0eXBlOiAndGV4dCcs CisgICAgICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAg ICAgICAgZ3JvdXA6IGdldHRleHQoJ0Nvbm5lY3Rpb24nKSwKKyAgICAgICAgfSwKKyAgICAgICAg eworICAgICAgICAgIGlkOiAncGFzc2ZpbGUnLCBsYWJlbDogZ2V0dGV4dCgnUGFzc2ZpbGUnKSwg dHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICAgIG1v ZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICB9LAorICAgICAg ICB7CisgICAgICAgICAgaWQ6ICdwdWInLCBsYWJlbDogZ2V0dGV4dCgnUHVibGljYXRpb24nKSwg dHlwZTogJ3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICAgIG1v ZGU6IFsncHJvcGVydGllcyddLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6 ICdjdXJfcHViJywgbGFiZWw6IGdldHRleHQoJ0N1cnJlbnQgcHVibGljYXRpb24nKSwgdHlwZTog J3RleHQnLCBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLAorICAgICAgICAgIG1vZGU6IFsn ZWRpdCddLCBkaXNhYmxlZDp0cnVlLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg aWQ6ICdwdWInLCBsYWJlbDogZ2V0dGV4dCgnUHVibGljYXRpb24nKSwgdHlwZTogJ2FycmF5Jywg c2VsZWN0MjogeyBhbGxvd0NsZWFyOiB0cnVlLCBtdWx0aXBsZTogdHJ1ZSwgd2lkdGg6ICc5MiUn fSwKKyAgICAgICAgICBncm91cDogZ2V0dGV4dCgnQ29ubmVjdGlvbicpLCBtb2RlOiBbJ2NyZWF0 ZScsICdlZGl0J10sIGNvbnRyb2xzQ2xhc3NOYW1lOiAncGdhZG1pbi1jb250cm9scyBwZy1lbC1z bS0xMSBwZy1lbC0xMicsCisgICAgICAgICAgZGVwczogWydhbGxfdGFibGUnLCAnaG9zdCcsICdw b3J0JywgJ3VzZXJuYW1lJywgJ2RiJywgJ3Bhc3N3b3JkJ10sIGRpc2FibGVkOiAnaXNBbGxDb25u ZWN0aW9uRGF0YUVudGVyJywKKyAgICAgICAgICBoZWxwTWVzc2FnZTogZ2V0dGV4dCgnQ2xpY2sg dGhlIHJlZnJlc2ggYnV0dG9uIHRvIGdldCB0aGUgcHVibGljYXRpb25zIicpLAorICAgICAgICAg IGNvbnRyb2w6IEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLmV4dGVuZCh7CisgICAgICAgICAgICBk ZWZhdWx0czogXy5leHRlbmQoQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJvdG90eXBlLmRlZmF1 bHRzLCB7CisgICAgICAgICAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgICAgICAgICBhbGxvd0Ns ZWFyOiB0cnVlLAorICAgICAgICAgICAgICAgIHNlbGVjdE9uQmx1cjogdHJ1ZSwKKyAgICAgICAg ICAgICAgICB0YWdzOiB0cnVlLAorICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBnZXR0ZXh0 KCdTZWxlY3QgYW4gaXRlbS4uLicpLAorICAgICAgICAgICAgICAgIHdpZHRoOiAnc3R5bGUnLAor ICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSksCisgICAgICAgICAgICB0ZW1wbGF0ZTog Xy50ZW1wbGF0ZShbCisgICAgICAgICAgICAgICc8bGFiZWwgY2xhc3M9IjwlPUJhY2tmb3JtLmNv bnRyb2xMYWJlbENsYXNzTmFtZSU+IiBmb3I9IjwlPWNJZCU+Ij48JT1sYWJlbCU+PC9sYWJlbD4n LAorICAgICAgICAgICAgICAnPGRpdiBjbGFzcz0iPCU9QmFja2Zvcm0uY29udHJvbHNDbGFzc05h bWUlPiI+JywKKyAgICAgICAgICAgICAgJzxkaXYgY2xhc3M9ImlucHV0LWdyb3VwIj4nLAorICAg ICAgICAgICAgICAnIDxzZWxlY3QgdGl0bGU9IjwlPW5hbWUlPiIgaWQ9IjwlPWNJZCU+IiBjbGFz cz0iPCU9QmFja2Zvcm0uY29udHJvbENsYXNzTmFtZSU+IDwlPWV4dHJhQ2xhc3Nlcy5qb2luKFwn IFwnKSU+IicsCisgICAgICAgICAgICAgICcgIG5hbWU9IjwlPW5hbWUlPiIgdmFsdWU9IjwlLXZh bHVlJT4iIDwlPWRpc2FibGVkID8gImRpc2FibGVkIiA6ICIiJT4gPCU9cmVhZG9ubHkgPyAiZGlz YWJsZWQiIDogIiIlPicsCisgICAgICAgICAgICAgICcgIDwlPXJlcXVpcmVkID8gInJlcXVpcmVk IiA6ICIiJT48JT0gc2VsZWN0Mi5tdWx0aXBsZSA/ICIgbXVsdGlwbGU+IiA6ICI+IiAlPicsCisg ICAgICAgICAgICAgICcgIDwlPXNlbGVjdDIuZmlyc3RfZW1wdHkgPyAiIDxvcHRpb24+PC9vcHRp b24+IiA6ICIiJT4nLAorICAgICAgICAgICAgICAnICA8JSBmb3IgKHZhciBpPTA7IGkgPCBvcHRp b25zLmxlbmd0aDsgaSsrKSB7JT4nLAorICAgICAgICAgICAgICAnICAgPCUgdmFyIG9wdGlvbiA9 IG9wdGlvbnNbaV07ICU+JywKKyAgICAgICAgICAgICAgJyAgIDxvcHRpb24gJywKKyAgICAgICAg ICAgICAgJyAgICA8JSBpZiAob3B0aW9uLmltYWdlKSB7ICU+IGRhdGEtaW1hZ2U9PCU9b3B0aW9u LmltYWdlJT4gPCV9JT4nLAorICAgICAgICAgICAgICAnICAgIHZhbHVlPTwlLSBmb3JtYXR0ZXIu ZnJvbVJhdyhvcHRpb24udmFsdWUpICU+JywKKyAgICAgICAgICAgICAgJyAgICA8JSBpZiAob3B0 aW9uLnNlbGVjdGVkKSB7JT5zZWxlY3RlZD0ic2VsZWN0ZWQiPCV9IGVsc2UgeyU+JywKKyAgICAg ICAgICAgICAgJyAgICA8JSBpZiAoIXNlbGVjdDIubXVsdGlwbGUgJiYgb3B0aW9uLnZhbHVlID09 PSByYXdWYWx1ZSkgeyU+c2VsZWN0ZWQ9InNlbGVjdGVkIjwlfSU+JywKKyAgICAgICAgICAgICAg JyAgICA8JSBpZiAoc2VsZWN0Mi5tdWx0aXBsZSAmJiByYXdWYWx1ZSAmJiByYXdWYWx1ZS5pbmRl eE9mKG9wdGlvbi52YWx1ZSkgIT0gLTEpeyU+c2VsZWN0ZWQ9InNlbGVjdGVkIiBkYXRhLWluZGV4 PSJyYXdWYWx1ZS5pbmRleE9mKG9wdGlvbi52YWx1ZSkiPCV9JT4nLAorICAgICAgICAgICAgICAn ICAgIDwlfSU+JywKKyAgICAgICAgICAgICAgJyAgICA8JT0gZGlzYWJsZWQgPyAiZGlzYWJsZWQi IDogIiIlPiA8JT1yZWFkb25seSA/ICJkaXNhYmxlZCIgOiAiIiU+PjwlLW9wdGlvbi5sYWJlbCU+ PC9vcHRpb24+JywKKyAgICAgICAgICAgICAgJyAgPCV9JT4nLAorICAgICAgICAgICAgICAnIDwv c2VsZWN0PicsCisgICAgICAgICAgICAgICc8ZGl2IGNsYXNzPSJpbnB1dC1ncm91cC1hcHBlbmQi PicsCisgICAgICAgICAgICAgICc8YnV0dG9uIGNsYXNzPSJidG4gYnRuLXByaW1hcnktaWNvbiBm YSBmYS1zeW5jIGdldF9wdWJsaWNhdGlvbiIgPCU9ZGlzYWJsZWQgPyAiZGlzYWJsZWQiIDogIiIl PiA8JT1yZWFkb25seSA/ICJkaXNhYmxlZCIgOiAiIiU+IGFyaWEtaGlkZGVuPSJ0cnVlIiBhcmlh LWxhYmVsPSInICsgZ2V0dGV4dCgnR2V0IFB1YmxpY2F0aW9uJykgKyAnIiB0aXRsZT0iJyArIGdl dHRleHQoJ0dldCBQdWJsaWNhdGlvbicpICsgJyI+PC9idXR0b24+JywKKyAgICAgICAgICAgICAg JzwvZGl2PicsCisgICAgICAgICAgICAgICc8L2Rpdj4nLAorICAgICAgICAgICAgICAnPCUgaWYg KGhlbHBNZXNzYWdlICYmIGhlbHBNZXNzYWdlLmxlbmd0aCkgeyAlPicsCisgICAgICAgICAgICAg ICc8c3BhbiBjbGFzcz0iPCU9QmFja2Zvcm0uaGVscE1lc3NhZ2VDbGFzc05hbWUlPiI+PCU9aGVs cE1lc3NhZ2UlPjwvc3Bhbj4nLAorICAgICAgICAgICAgICAnPCUgfSAlPicsCisgICAgICAgICAg ICAgICc8L2Rpdj4nLAorICAgICAgICAgICAgXS5qb2luKCdcbicpKSwKKworICAgICAgICAgICAg ZXZlbnRzOiAgXy5leHRlbmQoe30sIEJhY2tmb3JtLlNlbGVjdDJDb250cm9sLnByb3RvdHlwZS5l dmVudHMoKSwgeworICAgICAgICAgICAgICAnY2xpY2sgLmdldF9wdWJsaWNhdGlvbic6ICdnZXRQ dWJsaWNhdGlvbicsCisgICAgICAgICAgICB9KSwKKworICAgICAgICAgICAgcmVuZGVyOiBmdW5j dGlvbigpeworICAgICAgICAgICAgICByZXR1cm4gQmFja2Zvcm0uU2VsZWN0MkNvbnRyb2wucHJv dG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAgICAgfSwKKwor ICAgICAgICAgICAgZ2V0UHVibGljYXRpb246IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICB2 YXIgc2VsZiA9IHRoaXM7CisgICAgICAgICAgICAgIHZhciBwdWJsaWNhdGlvbl91cmwgPSBwZ0Jy b3dzZXIuTm9kZXNbJ2RhdGFiYXNlJ10uZ2VuZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAgICAg ICAgIHBnQnJvd3Nlci5Ob2Rlc1snc3Vic2NyaXB0aW9uJ10sIFsKKyAgICAgICAgICAgICAgICAg IG51bGwsICdnZXRfcHVibGljYXRpb25zJywgdGhpcy5maWVsZC5nZXQoJ25vZGVfZGF0YScpLCBu dWxsLAorICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ25vZGVfaW5mbycpLCBwZ0Jy b3dzZXIuTm9kZXNbJ2RhdGFiYXNlJ10udXJsX2p1bXBfYWZ0ZXJfbm9kZSwKKyAgICAgICAgICAg ICAgICBdKTsKKyAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9ICcnOworCisgICAgICAgICAgICAg ICQuYWpheCh7CisgICAgICAgICAgICAgICAgdXJsOiBwdWJsaWNhdGlvbl91cmwsCisgICAgICAg ICAgICAgICAgdHlwZTogJ0dFVCcsCisgICAgICAgICAgICAgICAgZGF0YTogc2VsZi5tb2RlbC50 b0pTT04odHJ1ZSwgJ0dFVCcpLAorICAgICAgICAgICAgICAgIGRhdGFUeXBlOiAnanNvbicsCisg ICAgICAgICAgICAgICAgY29udGVudFR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJywKKyAgICAgICAg ICAgICAgfSkKKyAgICAgICAgICAgICAgICAuZG9uZShmdW5jdGlvbihyZXMpIHsKKyAgICAgICAg ICAgICAgICAgIHJlc3VsdCA9IHJlcy5kYXRhOworICAgICAgICAgICAgICAgICAgc2VsZi5maWVs ZC5zZXQoJ29wdGlvbnMnLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgQmFja2Zvcm0uU2Vs ZWN0MkNvbnRyb2wucHJvdG90eXBlLnJlbmRlci5hcHBseShzZWxmLCBhcmd1bWVudHMpOworCisg ICAgICAgICAgICAgICAgICB2YXIgdHJhbnNmb3JtID0gc2VsZi5maWVsZC5nZXQoJ3RyYW5zZm9y bScpIHx8IHNlbGYuZGVmYXVsdHMudHJhbnNmb3JtOworICAgICAgICAgICAgICAgICAgaWYgKHRy YW5zZm9ybSAmJiBfLmlzRnVuY3Rpb24odHJhbnNmb3JtKSkgeworICAgICAgICAgICAgICAgICAg ICBzZWxmLmZpZWxkLnNldCgnb3B0aW9ucycsIHRyYW5zZm9ybS5iaW5kKHNlbGYsIHJlc3VsdCkp OworICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5m aWVsZC5zZXQoJ29wdGlvbnMnLCByZXN1bHQpOworICAgICAgICAgICAgICAgICAgfQorICAgICAg ICAgICAgICAgICAgQWxlcnRpZnkuaW5mbygKKyAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgn UHVibGljYXRpb24gZmV0Y2hlZCBzdWNjZXNzZnVsbHkuJykKKyAgICAgICAgICAgICAgICAgICk7 CisKKworICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgLmZhaWwoZnVuY3Rpb24o cmVzKSB7CisgICAgICAgICAgICAgICAgICBBbGVydGlmeS5hbGVydCgKKyAgICAgICAgICAgICAg ICAgICAgZ2V0dGV4dCgnQ2hlY2sgY29ubmVjdGlvbj8nKSwKKyAgICAgICAgICAgICAgICAgICAg Z2V0dGV4dChyZXMucmVzcG9uc2VKU09OLmVycm9ybXNnKQorICAgICAgICAgICAgICAgICAgKTsK KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgfSksCisgICAg ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ2NvcHlfZGF0YV9hZnRlcl9yZWZyZXNo JywgbGFiZWw6IGdldHRleHQoJ0NvcHkgZGF0YT8nKSwKKyAgICAgICAgICB0eXBlOiAnc3dpdGNo JywgbW9kZTogWydlZGl0J10sCisgICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgnKSwKKyAg ICAgICAgICByZWFkb25seTogJ2lzUmVmcmVzaCcsIGRlcHMgOlsncmVmcmVzaF9wdWInXSwKKyAg ICAgICAgICBoZWxwTWVzc2FnZTogZ2V0dGV4dCgnU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGV4aXN0 aW5nIGRhdGEgaW4gdGhlIHB1YmxpY2F0aW9ucyB0aGF0IGFyZSBiZWluZyBzdWJzY3JpYmVkIHRv IHNob3VsZCBiZSBjb3BpZWQgb25jZSB0aGUgcmVwbGljYXRpb24gc3RhcnRzLicpLAorICAgICAg ICB9LAorICAgICAgICB7CisgICAgICAgICAgaWQ6ICdjb3B5X2RhdGEnLCBsYWJlbDogZ2V0dGV4 dCgnQ29weSBkYXRhPycpLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2RlOiBbJ2NyZWF0 ZSddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisgICAgICAgICAgcmVhZG9u bHk6ICdpc0Nvbm5lY3QnLCBkZXBzIDpbJ2Nvbm5lY3QnXSwKKyAgICAgICAgICBoZWxwTWVzc2Fn ZTogZ2V0dGV4dCgnU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGV4aXN0aW5nIGRhdGEgaW4gdGhlIHB1 YmxpY2F0aW9ucyB0aGF0IGFyZSBiZWluZyBzdWJzY3JpYmVkIHRvIHNob3VsZCBiZSBjb3BpZWQg b25jZSB0aGUgcmVwbGljYXRpb24gc3RhcnRzLicpLAorICAgICAgICB9LAorICAgICAgICB7Cisg ICAgICAgICAgaWQ6ICdjcmVhdGVfc2xvdCcsIGxhYmVsOiBnZXR0ZXh0KCdDcmVhdGUgc2xvdD8n KSwKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydjcmVhdGUnXSwKKyAgICAgICAg ICBncm91cDogZ2V0dGV4dCgnV2l0aCcpLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNhYmxl JywKKyAgICAgICAgICByZWFkb25seTogJ2lzQ29ubmVjdCcsIGRlcHMgOlsnY29ubmVjdCddLAor ICAgICAgICAgIGhlbHBNZXNzYWdlOiBnZXR0ZXh0KCdTcGVjaWZpZXMgd2hldGhlciB0aGUgY29t bWFuZCBzaG91bGQgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90IG9uIHRoZSBwdWJsaXNoZXIu JyksCisKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgIGlkOiAnZW5hYmxlZCcsIGxh YmVsOiBnZXR0ZXh0KCdFbmFibGVkPycpLAorICAgICAgICAgIHR5cGU6ICdzd2l0Y2gnLCBtb2Rl OiBbJ2NyZWF0ZScsJ2VkaXQnLCAncHJvcGVydGllcyddLAorICAgICAgICAgIGdyb3VwOiBnZXR0 ZXh0KCdXaXRoJyksCisgICAgICAgICAgcmVhZG9ubHk6ICdpc0Nvbm5lY3QnLCBkZXBzIDpbJ2Nv bm5lY3QnXSwKKyAgICAgICAgICBoZWxwTWVzc2FnZTogZ2V0dGV4dCgnU3BlY2lmaWVzIHdoZXRo ZXIgdGhlIHN1YnNjcmlwdGlvbiBzaG91bGQgYmUgYWN0aXZlbHkgcmVwbGljYXRpbmcsIG9yIHdo ZXRoZXIgaXQgc2hvdWxkIGJlIGp1c3Qgc2V0dXAgYnV0IG5vdCBzdGFydGVkIHlldC4gJyksCisg ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3JlZnJlc2hfcHViJywgbGFiZWw6 IGdldHRleHQoJ1JlZnJlc2ggcHVibGljYXRpb24/JyksCisgICAgICAgICAgdHlwZTogJ3N3aXRj aCcsIG1vZGU6IFsnZWRpdCddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisg ICAgICAgICAgaGVscE1lc3NhZ2U6IGdldHRleHQoJ0ZldGNoIG1pc3NpbmcgdGFibGUgaW5mb3Jt YXRpb24gZnJvbSBwdWJsaXNoZXIuICcpLAorICAgICAgICAgIGRlcHM6WydlbmFibGVkJ10sIGRp c2FibGVkOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICAgIGlmIChtLmdldCgnZW5hYmxlZCcpKQor ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBzZXRUaW1lb3V0KCBmdW5j dGlvbigpIHsKKyAgICAgICAgICAgICAgbS5zZXQoJ3JlZnJlc2hfcHViJywgZmFsc2UpOworICAg ICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfSwK KyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdjb25uZWN0JywgbGFiZWw6IGdldHRleHQoJ0Nv bm5lY3Q/JyksCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcsIG1vZGU6IFsnY3JlYXRlJ10sCisg ICAgICAgICAgZ3JvdXA6IGdldHRleHQoJ1dpdGgnKSwKKyAgICAgICAgICBkaXNhYmxlZDogJ2lz RGlzYWJsZScsIGRlcHM6WydlbmFibGVkJywgJ2NyZWF0ZV9zbG90JywgJ2NvcHlfZGF0YSddLAor ICAgICAgICAgIGhlbHBNZXNzYWdlOiBnZXR0ZXh0KCdTcGVjaWZpZXMgd2hldGhlciB0aGUgQ1JF QVRFIFNVQlNDUklQVElPTiBzaG91bGQgY29ubmVjdCB0byB0aGUgcHVibGlzaGVyIGF0IGFsbC4g U2V0dGluZyB0aGlzIHRvIGZhbHNlIHdpbGwgY2hhbmdlIGRlZmF1bHQgdmFsdWVzIG9mIGVuYWJs ZWQsIGNyZWF0ZV9zbG90IGFuZCBjb3B5X2RhdGEgdG8gZmFsc2UuJyksCisgICAgICAgIH0sCisg ICAgICAgIHsKKyAgICAgICAgICBpZDogJ3Nsb3RfbmFtZScsIGxhYmVsOiBnZXR0ZXh0KCdTbG90 IG5hbWU/JyksCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ2NyZWF0ZScsJ2VkaXQn LCAncHJvcGVydGllcyddLAorICAgICAgICAgIGdyb3VwOiBnZXR0ZXh0KCdXaXRoJyksCisgICAg ICAgICAgaGVscE1lc3NhZ2U6IGdldHRleHQoJ05hbWUgb2YgdGhlIHJlcGxpY2F0aW9uIHNsb3Qg dG8gdXNlLiBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byB1c2UgdGhlIG5hbWUgb2YgdGhlIHN1 YnNjcmlwdGlvbiBmb3IgdGhlIHNsb3QgbmFtZS4nKSwKKyAgICAgICAgfSwKKyAgICAgICAgewor ICAgICAgICAgIGlkOiAnc3luYycsIGxhYmVsOiBnZXR0ZXh0KCdTeW5jaHJvbm91cyBjb21taXQ/ JyksIGNvbnRyb2w6ICdzZWxlY3QyJywgZGVwczpbJ2V2ZW50J10sCisgICAgICAgICAgZ3JvdXA6 IGdldHRleHQoJ1dpdGgnKSwgdHlwZTogJ3RleHQnLAorICAgICAgICAgIGhlbHBNZXNzYWdlOiBn ZXR0ZXh0KCdUaGUgdmFsdWUgb2YgdGhpcyBwYXJhbWV0ZXIgb3ZlcnJpZGVzIHRoZSBzeW5jaHJv bm91c19jb21taXQgc2V0dGluZy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgb2ZmLicpLAorICAgICAg ICAgIHNlbGVjdDI6IHsKKyAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsCisgICAgICAgICAgICBh bGxvd0NsZWFyOiBmYWxzZSwKKyAgICAgICAgICB9LAorICAgICAgICAgIG9wdGlvbnM6WworICAg ICAgICAgICAge2xhYmVsOiAnbG9jYWwnLCB2YWx1ZTogJ2xvY2FsJ30sCisgICAgICAgICAgICB7 bGFiZWw6ICdyZW1vdGVfd3JpdGUnLCB2YWx1ZTogJ3JlbW90ZV93cml0ZSd9LAorICAgICAgICAg ICAge2xhYmVsOiAncmVtb3RlX2FwcGx5JywgdmFsdWU6ICdyZW1vdGVfYXBwbHknfSwKKyAgICAg ICAgICAgIHtsYWJlbDogJ29uJywgdmFsdWU6ICdvbid9LAorICAgICAgICAgICAge2xhYmVsOiAn b2ZmJywgdmFsdWU6ICdvZmYnfSwKKyAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICBd LAorICAgICAgICBpc0Rpc2FibGU6ZnVuY3Rpb24obSl7CisgICAgICAgICAgaWYgKG0uaXNOZXco KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgfSwKKyAgICAgICAgaXNBbGxDb25uZWN0aW9uRGF0YUVudGVyOiBmdW5jdGlvbihtKXsK KyAgICAgICAgICBsZXQgaG9zdCA9IG0uZ2V0KCdob3N0JyksCisgICAgICAgICAgICBkYiAgID0g bS5nZXQoJ2RiJyksCisgICAgICAgICAgICBwb3J0ID0gbS5nZXQoJ3BvcnQnKSwKKyAgICAgICAg ICAgIHVzZXJuYW1lID0gbS5nZXQoJ3VzZXJuYW1lJyksCisgICAgICAgICAgICBwYXNzd29yZCA9 IG0uZ2V0KCdwYXNzd29yZCcpOworICAgICAgICAgIGlmICgoIV8uaXNVbmRlZmluZWQoaG9zdCkg JiYgaG9zdCkgJiYgKCFfLmlzVW5kZWZpbmVkKGRiKSAmJiBkYikgJiYgKCFfLmlzVW5kZWZpbmVk KHBvcnQpICYmIHBvcnQpICYmICghXy5pc1VuZGVmaW5lZCh1c2VybmFtZSkgJiYgdXNlcm5hbWUp ICYmICghXy5pc1VuZGVmaW5lZChwYXNzd29yZCkgJiYgcGFzc3dvcmQpKQorICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9LAorICAgICAg ICBpc0Nvbm5lY3Q6IGZ1bmN0aW9uKG0peworICAgICAgICAgIGlmKCFtLmdldCgnY29ubmVjdCcp KXsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBt LnNldCgnY29weV9kYXRhJywgZmFsc2UpOworICAgICAgICAgICAgICBtLnNldCgnY3JlYXRlX3Ns b3QnLCBmYWxzZSk7CisgICAgICAgICAgICAgIG0uc2V0KCdlbmFibGVkJywgZmFsc2UpOworICAg ICAgICAgICAgfSwgMTApOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQor ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfSwKKyAgICAgICAgaXNSZWZyZXNoOiBm dW5jdGlvbihtKXsKKyAgICAgICAgICBpZiAoIW0uZ2V0KCdyZWZyZXNoX3B1YicpIHx8IF8uaXNV bmRlZmluZWQobS5nZXQoJ3JlZnJlc2hfcHViJykpKXsKKyAgICAgICAgICAgIHNldFRpbWVvdXQo IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBtLnNldCgnY29weV9kYXRhX2FmdGVyX3JlZnJl c2gnLCBmYWxzZSk7CisgICAgICAgICAgICB9LCAxMCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1 ZTsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorICAg ICAgICBzZXNzQ2hhbmdlZDogZnVuY3Rpb24oKSB7CisgICAgICAgICAgaWYgKF8uaXNFcXVhbChf Lm9taXQodGhpcy5hdHRyaWJ1dGVzLCBbJ3JlZnJlc2hfcHViJ10pLCBfLm9taXQodGhpcy5vcmln U2Vzc0F0dHJzLCBbJ3JlZnJlc2hfcHViJ10pKSAmJiAhdGhpcy5pc05ldygpKQorICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgIHJldHVybiBwZ0Jyb3dzZXIuRGF0YU1vZGVsLnBy b3RvdHlwZS5zZXNzQ2hhbmdlZC5hcHBseSh0aGlzKTsKKyAgICAgICAgfSwKKyAgICAgICAgLyog dmFsaWRhdGUgZnVuY3Rpb24gaXMgdXNlZCB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgZ2l2ZW4gYnkK KyAgICAgICAgICogdGhlIHVzZXIuIEluIGNhc2Ugb2YgZXJyb3IsIG1lc3NhZ2Ugd2lsbCBiZSBk aXNwbGF5ZWQgb24KKyAgICAgICAgICogdGhlIEdVSSBmb3IgdGhlIHJlc3BlY3RpdmUgY29udHJv bC4KKyAgICAgICAgICovCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgICAg ICB2YXIgbXNnOworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpOworICAgICAgICAg IHZhciBuYW1lID0gdGhpcy5nZXQoJ25hbWUnKTsKKworICAgICAgICAgIGlmIChfLmlzVW5kZWZp bmVkKG5hbWUpIHx8IF8uaXNOdWxsKG5hbWUpIHx8CisgICAgICAgICAgICBTdHJpbmcobmFtZSku cmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgbXNnID0gZ2V0 dGV4dCgnTmFtZSBjYW5ub3QgYmUgZW1wdHkuJyk7CisgICAgICAgICAgICB0aGlzLmVycm9yTW9k ZWwuc2V0KCduYW1lJywgbXNnKTsKKyAgICAgICAgICAgIHJldHVybiBtc2c7CisgICAgICAgICAg fQorCisgICAgICAgICAgY29uc3QgdmFsaWRhdGVNb2RlbCA9IG5ldyBtb2RlbFZhbGlkYXRpb24u TW9kZWxWYWxpZGF0aW9uKHRoaXMpOworICAgICAgICAgIHJldHVybiB2YWxpZGF0ZU1vZGVsLnZh bGlkYXRlKCk7CisgICAgICAgIH0sCisgICAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURh dGEsIGl0ZW0pIHsKKyAgICAgICAgICB2YXIgdHJlZURhdGEgPSB0aGlzLmdldFRyZWVOb2RlSGll cmFyY2h5KGl0ZW0pLAorICAgICAgICAgICAgc2VydmVyID0gdHJlZURhdGFbJ3NlcnZlciddOwor CisgICAgICAgICAgLy8gSWYgc2VydmVyIGlzIGxlc3MgdGhhbiAxMCB0aGVuIGRvIG5vdCBhbGxv dyAnY3JlYXRlJyBtZW51CisgICAgICAgICAgaWYgKHNlcnZlciAmJiBzZXJ2ZXIudmVyc2lvbiA8 IDEwMDAwMCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAgIC8vIGJ5IGRl ZmF1bHQgd2Ugd2FudCB0byBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICAgIHJldHVybiB0cnVl OworICAgICAgICB9LAorCisgICAgICB9KSwKKyAgICB9KTsKKyAgfQorICByZXR1cm4gcGdCcm93 c2VyLk5vZGVzWydjb2xsLXN1YnNjcmlwdGlvbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9jcmVhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvY3JlYXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjA4YzI4YTFiNgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z dWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L2NyZWF0ZS5z cWwKQEAgLTAsMCArMSwyNCBAQAoreyUgaWYgZGF0YS5jb3B5X2RhdGEgaXMgZGVmaW5lZCBvciBk YXRhLmNyZWF0ZV9zbG90IGlzIGRlZmluZWQgb3IgZGF0YS5zbG90X25hbWUgaXMgZGVmaW5lZCBv ciBkYXRhLnN5bmMgaXMgZGVmaW5lZCAlfQoreyUgc2V0IGFkZF9zZW1pY29sb25fYWZ0ZXJfZW5h YmxlZCA9ICdlbmFibGVkJyAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuY3JlYXRlX3Nsb3Qg aXMgZGVmaW5lZCBvciBkYXRhLnNsb3RfbmFtZSBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRkX3Nl bWljb2xvbl9hZnRlcl9jb3B5X2RhdGEgPSAnY29weV9kYXRhJyAlfQoreyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuc2xvdF9uYW1lIGlzIGRlZmluZWQgb3IgZGF0YS5zeW5jIGlzIGRlZmluZWQgJX0K K3slIHNldCBhZGRfc2VtaWNvbG9uX2FmdGVyX2NyZWF0ZV9zbG90ID0gJ2NyZWF0ZV9zbG90JyAl fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuc3luYyBpcyBkZWZpbmVkICV9Cit7JSBzZXQgYWRk X3NlbWljb2xvbl9hZnRlcl9zbG90X25hbWUgPSAnc2xvdF9uYW1lJyAlfQoreyUgZW5kaWYgJX0K KworQ1JFQVRFIFNVQlNDUklQVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fQoreyUg aWYgZGF0YS5ob3N0IG9yIGRhdGEucG9ydCBvciBkYXRhLnVzZXJuYW1lIG9yIGRhdGEucGFzc3dv cmQgIG9yIGRhdGEuZGIgJX0KKyAgICBDT05ORUNUSU9OICd7JSBpZiBkYXRhLmhvc3QgJX1ob3N0 PXt7ZGF0YS5ob3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucG9ydCAlfSBwb3J0PXt7IGRhdGEu cG9ydCB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS51c2VybmFtZSAlfSB1c2VyPXt7IGRhdGEudXNl cm5hbWUgfX17JSBlbmRpZiAlfXslIGlmIGRhdGEuZGIgJX0gZGJuYW1lPXt7IGRhdGEuZGIgfX17 JSBlbmRpZiAlfXslIGlmIGRhdGEuY29ubmVjdF90aW1lb3V0ICV9IGNvbm5lY3RfdGltZW91dD17 eyBkYXRhLmNvbm5lY3RfdGltZW91dCB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wYXNzZmlsZSAl fSBwYXNzZmlsZT17eyBkYXRhLnBhc3NmaWxlIH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnBhc3N3 b3JkICV9IHslIGlmIGR1bW15ICV9cGFzc3dvcmQ9eHh4eHh4eyUgZWxzZSAlfXBhc3N3b3JkPXt7 IGRhdGEucGFzc3dvcmR9fXslIGVuZGlmICV9eyUgZW5kaWYgJX0nCit7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5wdWIgJX0KKyAgICBQVUJMSUNBVElPTiB7JSBmb3IgcHViIGluIGRhdGEucHViICV9 eyUgaWYgbG9vcC5pbmRleCAhPSAxICV9LHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50KHB1Yikg fX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CisKKyAgICBXSVRIICh7JSBpZiBkYXRhLmNvbm5l Y3QgaXMgZGVmaW5lZCAlfWNvbm5lY3QgPSB7eyBkYXRhLmNvbm5lY3R8bG93ZXJ9fSwgeyUgZW5k aWYgJX1lbmFibGVkID0ge3sgZGF0YS5lbmFibGVkfGxvd2VyfX0sIHslIGlmIGRhdGEuY29weV9k YXRhICV9Y29weV9kYXRhID0ge3sgZGF0YS5jb3B5X2RhdGF8bG93ZXJ9fXslIGlmIGFkZF9zZW1p Y29sb25fYWZ0ZXJfY29weV9kYXRhID09ICdjb3B5X2RhdGEnICV9LCB7JSBlbmRpZiAlfXslIGVu ZGlmICV9Cit7JSBpZiBkYXRhLmNyZWF0ZV9zbG90IGlzIGRlZmluZWQgJX1jcmVhdGVfc2xvdCA9 IHt7IGRhdGEuY3JlYXRlX3Nsb3R8bG93ZXIgfX17JSBpZiBhZGRfc2VtaWNvbG9uX2FmdGVyX2Ny ZWF0ZV9zbG90ID09ICdjcmVhdGVfc2xvdCcgJX0sIHslIGVuZGlmICV9eyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEuc2xvdF9uYW1lIGlzIGRlZmluZWQgIGFuZCBkYXRhLnNsb3RfbmFtZSAhPSAnJyV9 c2xvdF9uYW1lID0ge3sgZGF0YS5zbG90X25hbWUgfX17JSBpZiBhZGRfc2VtaWNvbG9uX2FmdGVy X3Nsb3RfbmFtZSA9PSAnc2xvdF9uYW1lJyAlfSwgeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlm IGRhdGEuc3luYyAlfXN5bmNocm9ub3VzX2NvbW1pdCA9ICd7eyBkYXRhLnN5bmMgfX0neyUgZW5k aWYgJX0pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3Fs L2RlZmF1bHQvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3Nx bC9kZWZhdWx0L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw Li4zMzk0MmZhOTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2Ny aXB0aW9ucy9zcWwvZGVmYXVsdC9kZWxldGUuc3FsCkBAIC0wLDAgKzEsOCBAQAoreyMgPT09PT09 PT09PT09PSBHZXQgdGhlIHN1YnNjcmlwdGlvbiBuYW1lIHVzaW5nIG9pZCA9PT09PT09PT09PT09 ICN9Cit7JSBpZiBzdWJpZCAlfQorICAgIFNFTEVDVCBzdWJuYW1lIEZST00gcGdfc3Vic2NyaXB0 aW9uIFdIRVJFIG9pZCA9IHt7c3ViaWR9fTo6b2lkOworeyUgZW5kaWYgJX0KK3sjID09PT09PT09 PT09PT0gRHJvcCB0aGUgbGFuZ3VhZ2UgPT09PT09PT09PT09PSAjfQoreyUgaWYgc3VibmFtZSAl fQorRFJPUCBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KHN1Ym5hbWUpIH19eyUgaWYgY2Fz Y2FkZSAlfSBDQVNDQURFeyUgZW5kaWYlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0 aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9nZXRfcG9zaXRpb24uc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1 YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQvZ2V0X3Bvc2l0 aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjQ2YWFjMTE4MQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9k ZWZhdWx0L2dldF9wb3NpdGlvbi5zcWwKQEAgLTAsMCArMSBAQAorc2VsZWN0IG9pZCwgc3VibmFt ZSBhcyBuYW1lIGZyb20gcGdfc3Vic2NyaXB0aW9uIHdoZXJlIHN1Ym5hbWUgPSAne3sgc3VibmFt ZSB9fSc7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwv ZGVmYXVsdC9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwv ZGVmYXVsdC9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi4x MGY4NDE3NDMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0 aW9ucy9zcWwvZGVmYXVsdC9ub2Rlcy5zcWwKQEAgLTAsMCArMSw3IEBACitzZWxlY3Qgb2lkLCBz dWIuc3VibmFtZSBhcyBuYW1lIGZyb20gcGdfc3Vic2NyaXB0aW9uIHN1YgorV0hFUkUKK3slIGlm IHN1YmlkICV9CisgICAgc3ViLm9pZCA9IHt7IHN1YmlkIH19OworeyUgZWxzZSAlfQorICAgIHN1 Yi5zdWJkYmlkID0ge3sgZGlkIH19OworeyUgZW5kaWYgJX07CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3Jp cHRpb25zL3RlbXBsYXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L3Byb3BlcnRpZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uODFmNjI5MDJmCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNjcmlwdGlvbnMvc3FsL2RlZmF1bHQv cHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwyMSBAQAorU0VMRUNUICBzdWIub2lkIGFzIG9pZCwK KyAgICAgICAgc3VibmFtZSBhcyBuYW1lLAorICAgICAgICBzdWJwdWJsaWNhdGlvbnMgYXMgcHVi LAorICAgICAgICBzdWIuc3Vic3luY2NvbW1pdCBhcyBzeW5jLAorICAgICAgICBzdWJwdWJsaWNh dGlvbnMgYXMgY3VyX3B1YiwKKyAgICAgICAgcGdhLnJvbG5hbWUgYXMgc3Vib3duZXIsCisgICAg ICAgIHN1YnNsb3RuYW1lIGFzIHNsb3RfbmFtZSwKKyAgICAgICAgc3ViZW5hYmxlZCBhcyBlbmFi bGVkLAorCQlTUExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29ubmluZm8sJyBwb3J0JywxKSwgJz0n LDIpIGFzIGhvc3QsCisJCVNQTElUX1BBUlQoU1BMSVRfUEFSVChzdWJjb25uaW5mbywncG9ydD0n LDIpLCAnICcsMSkgYXMgcG9ydCwKKwkJU1BMSVRfUEFSVChTUExJVF9QQVJUKHN1YmNvbm5pbmZv LCd1c2VyPScsMiksICcgJywxKSBhcyB1c2VybmFtZSwKKwkJU1BMSVRfUEFSVChTUExJVF9QQVJU KHN1YmNvbm5pbmZvLCdkYm5hbWU9JywyKSwgJyAnLDEpIGFzIGRiLAorCQlTUExJVF9QQVJUKFNQ TElUX1BBUlQoc3ViY29ubmluZm8sJ2Nvbm5lY3RfdGltZW91dD0nLDIpLCAnICcsMSkgYXMgY29u bmVjdF90aW1lb3V0LAorCQlTUExJVF9QQVJUKFNQTElUX1BBUlQoc3ViY29ubmluZm8sJ3Bhc3Nm aWxlPScsMiksICcgJywxKSBhcyBwYXNzZmlsZQorRlJPTSBwZ19zdWJzY3JpcHRpb24gc3ViIGpv aW4gcGdfYXV0aGlkIHBnYSBvbiBzdWIuc3Vib3duZXI9IHBnYS5vaWQKK1dIRVJFCit7JSBpZiBz dWJpZCAlfQorICAgIHN1Yi5vaWQgPSB7eyBzdWJpZCB9fTsKK3slIGVsc2UgJX0KKyAgICBzdWIu c3ViZGJpZCA9IHt7IGRpZCB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9zdGF0cy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kNzk1YjcyZjMKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2Ny aXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2NyaXB0aW9ucy9zcWwvZGVmYXVsdC9zdGF0cy5zcWwKQEAg LTAsMCArMSw4IEBACitTRUxFQ1QKKyAgICBzdWJuYW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdT dWJzY3JpcHRpb24gbmFtZScpKSB9fSwKKyAgICBsYXRlc3RfZW5kX3RpbWUgQVMge3sgY29ubnxx dElkZW50KF8oJ0xhdGVzdCBlbmQgdGltZScpKSB9fSwKKyAgICBsYXRlc3RfZW5kX2xzbiBBUyB7 eyBjb25ufHF0SWRlbnQoXygnTGF0ZXN0IGVuZCBsc24nKSkgfX0sCisgICAgbGFzdF9tc2dfcmVj ZWlwdF90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdMYXN0IG1lc3NhZ2UgcmVjZWlwdCcpKSB9 fSwKKyAgICBsYXN0X21zZ19zZW5kX3RpbWUgQVMge3sgY29ubnxxdElkZW50KF8oJ0xhc3QgbWVz c2FnZSBzZW5kIHRpbWUnKSl9fQorRlJPTSBwZ19zdGF0X3N1YnNjcmlwdGlvbiB3aGVyZSBzdWJp ZCA9IHt7IHN1YmlkIH19OworCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZW1wbGF0ZXMvc3Vic2Ny aXB0aW9ucy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVtcGxhdGVzL3N1YnNj cmlwdGlvbnMvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAuLmYwNGEwMDQ2NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3RlbXBs YXRlcy9zdWJzY3JpcHRpb25zL3NxbC9kZWZhdWx0L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSw2NSBA QAoreyUgaWYgZGF0YS5zeW5jIGlzIGRlZmluZWQgJX0KK3slIHNldCBhZGRfc2VtaWNvbG9uX2Fm dGVyX3Nsb3RfbmFtZSA9ICdzbG90X25hbWUnICV9Cit7JSBlbmRpZiAlfQoreyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjfQoreyMjIENoYW5nZSBv d25lciBvZiBzdWJzY3JpcHRpb24gIyN9Cit7IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyN9Cit7JSBpZiBkYXRhLnN1Ym93bmVyIGFuZCBkYXRhLnN1 Ym93bmVyICE9IG9fZGF0YS5zdWJvd25lciAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEubmFtZSkgfX0KKyAgICBPV05FUiBUTyB7eyBkYXRhLnN1Ym93bmVyIH19 OworCit7JSBlbmRpZiAlfQoreyMjIyAgRGlzYWJsZSBzdWJzY3JpcHRpb24gIyMjfQoreyUgaWYg ZGF0YS5lbmFibGVkIGlzIGRlZmluZWQgYW5kIGRhdGEuZW5hYmxlZCAhPSBvX2RhdGEuZW5hYmxl ZCAlfQoreyUgaWYgbm90IGRhdGEuZW5hYmxlZCAlfQorQUxURVIgU1VCU0NSSVBUSU9OIHt7IGNv bm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gRElTQUJMRTsKK3slIGVuZGlmICV9CisKK3slIGVu ZGlmICV9Cit7IyMjICBBbHRlciBzbG90IG5hbWUgb2Ygc3Vic2NyaXB0aW9uICMjI30KK3slIGlm IGRhdGEuc2xvdF9uYW1lIGlzIGRlZmluZWQgb3IgZGF0YS5zeW5jICV9CitBTFRFUiBTVUJTQ1JJ UFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fQorICAgIFNFVCAoeyUgaWYgZGF0 YS5zbG90X25hbWUgaXMgZGVmaW5lZCBhbmQgZGF0YS5zbG90X25hbWUgIT0gb19kYXRhLnNsb3Rf bmFtZSAlfXNsb3RfbmFtZSA9IHt7IGRhdGEuc2xvdF9uYW1lIH19eyUgaWYgYWRkX3NlbWljb2xv bl9hZnRlcl9zbG90X25hbWUgPT0gJ3Nsb3RfbmFtZScgJX0sIHslIGVuZGlmICV9eyUgZW5kaWYg JX17JSBpZiBkYXRhLnN5bmMgJX1zeW5jaHJvbm91c19jb21taXQgPSAne3sgZGF0YS5zeW5jIH19 J3slIGVuZGlmICV9KTsKKworeyUgZW5kaWYgJX0KK3sjIyMgIEVuYWJsZSBzdWJzY3JpcHRpb24g IyMjfQoreyUgaWYgZGF0YS5lbmFibGVkIGlzIGRlZmluZWQgYW5kIGRhdGEuZW5hYmxlZCAhPSBv X2RhdGEuZW5hYmxlZCAlfQoreyUgaWYgZGF0YS5lbmFibGVkICV9CitBTFRFUiBTVUJTQ1JJUFRJ T04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBFTkFCTEU7Cit7JSBlbmRpZiAlfQor Cit7JSBlbmRpZiAlfQoreyMjIyAgUmVmcmVzaCBwdWJsaWNhdGlvbiAjIyN9Cit7JSBpZiBkYXRh LnJlZnJlc2hfcHViICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5uYW1lKSB9fQorICAgIFJFRlJFU0ggUFVCTElDQVRJT057JSBpZiBub3QgZGF0YS5jb3B5X2Rh dGFfYWZ0ZXJfcmVmcmVzaCAlfSBXSVRIIChjb3B5X2RhdGEgPSBmYWxzZSl7JSBlbHNlICV9IFdJ VEggKGNvcHlfZGF0YSA9IHRydWUpeyUgZW5kaWYgJX07CisKK3slIGVuZGlmICV9Cit7IyMjICBB bHRlciBwdWJsaWNhdGlvbiBvZiBzdWJzY3JpcHRpb24gIyMjfQoreyUgaWYgZGF0YS5wdWIlfQor eyUgaWYgZGF0YS5wdWIgYW5kIG5vdCBkYXRhLnJlZnJlc2hfcHViIGFuZCBub3QgZGF0YS5lbmFi bGVkICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9 fQorICAgIFNFVCBQVUJMSUNBVElPTiB7JSBmb3IgcHViIGluIGRhdGEucHViICV9eyUgaWYgbG9v cC5pbmRleCAhPSAxICV9LHslIGVuZGlmICV9e3sgY29ubnxxdElkZW50KHB1YikgfX17JSBlbmRm b3IgJX0gV0lUSCAocmVmcmVzaCA9IGZhbHNlKTsKK3slIGVsc2UgJX0KK0FMVEVSIFNVQlNDUklQ VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5hbWUpIH19CisgICAgU0VUIFBVQkxJQ0FUSU9O IHslIGZvciBwdWIgaW4gZGF0YS5wdWIgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0seyUgZW5k aWYgJX17eyBjb25ufHF0SWRlbnQocHViKSB9fXslIGVuZGZvciAlfTsKK3slIGVuZGlmICV9CisK K3slIGVuZGlmICV9Cit7IyMjICBBbHRlciBzdWJzY3JpcHRpb24gY29ubmVjdGlvbiBpbmZvICMj I30KK3slIGlmIGRhdGEuaG9zdCBvciBkYXRhLnBvcnQgb3IgZGF0YS51c2VybmFtZSBvciBkYXRh LnBhc3N3b3JkICBvciBkYXRhLmRiIG9yICBkYXRhLmNvbm5lY3RfdGltZW91dCBvciBkYXRhLnBh c3NmaWxlICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1l KSB9fQorICAgIENPTk5FQ1RJT04gJ2hvc3Q9e3sgb19kYXRhLmhvc3R9fSBwb3J0PXt7IG9fZGF0 YS5wb3J0IH19IHVzZXI9e3sgb19kYXRhLnVzZXJuYW1lIH19IGRibmFtZT17eyBvX2RhdGEuZGIg fX17JSBpZiBkYXRhLmNvbm5lY3RfdGltZW91dCAlfSBjb25uZWN0X3RpbWVvdXQ9e3sgb19kYXRh LmNvbm5lY3RfdGltZW91dCB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wYXNzZmlsZSAlfSBwYXNz ZmlsZT17eyBvX2RhdGEucGFzc2ZpbGUgfX17JSBlbmRpZiAlfXslIGlmIGRhdGEucGFzc3dvcmQg JX0geyUgaWYgZHVtbXkgJX1wYXNzd29yZD14eHh4eHh7JSBlbHNlICV9IHBhc3N3b3JkPXt7IGRh dGEucGFzc3dvcmR9fXslIGVuZGlmICV9eyUgZW5kaWYgJX0nOworeyUgZW5kaWYgJX0KK3sjIyMg IEFsdGVyIHN1YnNjcmlwdGlvbiBuYW1lICMjI30KK3slIGlmIGRhdGEubmFtZSBhbmQgZGF0YS5u YW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBTVUJTQ1JJUFRJT04ge3sgY29ubnxxdElkZW50 KG9fZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1l KSB9fTsKKworeyUgZW5kaWYgJX0KKworCisKKworCisKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rl c3RzLzEwX3BsdXMvYWx0ZXJfbWFpbnRlbmFuY2VfZGIuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBf cGx1cy9hbHRlcl9tYWludGVuYW5jZV9kYi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi5iMzQxYjA5MzUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8x MF9wbHVzL2FsdGVyX21haW50ZW5hbmNlX2RiLnNxbApAQCAtMCwwICsxLDggQEAKKy0tIFN1YnNj cmlwdGlvbjogdGVzdF9hbHRlcl9zdWJzY3JpcHRpb24KKworLS0gRFJPUCBTVUJTQ1JJUFRJT04g dGVzdF9hbHRlcl9zdWJzY3JpcHRpb247CisKK0NSRUFURSBTVUJTQ1JJUFRJT04gdGVzdF9hbHRl cl9zdWJzY3JpcHRpb24KKyAgICBDT05ORUNUSU9OICdob3N0PWxvY2FsaG9zdCBwb3J0PTU0MzIg dXNlcj1wb3N0Z3JlcyBkYm5hbWU9ZWRiJworICAgIFBVQkxJQ0FUSU9OIHNhbXBsZV9fMQorICAg IFdJVEggKGVuYWJsZWQgPSBmYWxzZSwgY3JlYXRlX3Nsb3QgPSBmYWxzZSwgc2xvdF9uYW1lID0g Tm9uZSwgc3luY2hyb25vdXNfY29tbWl0ID0gJ3JlbW90ZV9hcHBseScpOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNj cmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv dGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMC4uODAxMGE0OTU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv dGVzdHMvMTBfcGx1cy9hbHRlcl9zdWJzY3JpcHRpb24uc3FsCkBAIC0wLDAgKzEsOCBAQAorLS0g U3Vic2NyaXB0aW9uOiB0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbgorCistLSBEUk9QIFNVQlNDUklQ VElPTiB0ZXN0X2FsdGVyX3N1YnNjcmlwdGlvbjsKKworQ1JFQVRFIFNVQlNDUklQVElPTiB0ZXN0 X2FsdGVyX3N1YnNjcmlwdGlvbgorICAgIENPTk5FQ1RJT04gJ2hvc3Q9bG9jYWxob3N0IHBvcnQ9 NTQzMiB1c2VyPXBvc3RncmVzIGRibmFtZT1wb3N0Z3JlcycKKyAgICBQVUJMSUNBVElPTiBzYW1w bGVfXzEKKyAgICBXSVRIIChlbmFibGVkID0gZmFsc2UsIGNyZWF0ZV9zbG90ID0gZmFsc2UsIHNs b3RfbmFtZSA9IE5vbmUsIHN5bmNocm9ub3VzX2NvbW1pdCA9ICdvZmYnKTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJz Y3JpcHRpb25zL3Rlc3RzLzEwX3BsdXMvYWx0ZXJfc3luYy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8x MF9wbHVzL2FsdGVyX3N5bmMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uNTRlNjc4MjczCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy9h bHRlcl9zeW5jLnNxbApAQCAtMCwwICsxLDggQEAKKy0tIFN1YnNjcmlwdGlvbjogdGVzdF9hbHRl cl9zdWJzY3JpcHRpb24KKworLS0gRFJPUCBTVUJTQ1JJUFRJT04gdGVzdF9hbHRlcl9zdWJzY3Jp cHRpb247CisKK0NSRUFURSBTVUJTQ1JJUFRJT04gdGVzdF9hbHRlcl9zdWJzY3JpcHRpb24KKyAg ICBDT05ORUNUSU9OICdob3N0PWxvY2FsaG9zdCBwb3J0PTU0MzIgdXNlcj1wb3N0Z3JlcyBkYm5h bWU9cG9zdGdyZXMnCisgICAgUFVCTElDQVRJT04gc2FtcGxlX18xCisgICAgV0lUSCAoZW5hYmxl ZCA9IGZhbHNlLCBjcmVhdGVfc2xvdCA9IGZhbHNlLCBzbG90X25hbWUgPSBOb25lLCBzeW5jaHJv bm91c19jb21taXQgPSAncmVtb3RlX2FwcGx5Jyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0 cy8xMF9wbHVzL2NyZWF0ZV9zdWJzY3JpcHRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1 cy9jcmVhdGVfc3Vic2NyaXB0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLmE3ODE5ZjE5NgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzLzEwX3Bs dXMvY3JlYXRlX3N1YnNjcmlwdGlvbi5zcWwKQEAgLTAsMCArMSw4IEBACistLSBTdWJzY3JpcHRp b246IHRlc3RfY3JlYXRlX3N1YnNjcmlwdGlvbgorCistLSBEUk9QIFNVQlNDUklQVElPTiB0ZXN0 X2NyZWF0ZV9zdWJzY3JpcHRpb247CisKK0NSRUFURSBTVUJTQ1JJUFRJT04gdGVzdF9jcmVhdGVf c3Vic2NyaXB0aW9uCisgICAgQ09OTkVDVElPTiAnaG9zdD1sb2NhbGhvc3QgcG9ydD01NDMyIHVz ZXI9cG9zdGdyZXMgZGJuYW1lPXBvc3RncmVzJworICAgIFBVQkxJQ0FUSU9OIHNhbXBsZV9fMQor ICAgIFdJVEggKGVuYWJsZWQgPSBmYWxzZSwgY3JlYXRlX3Nsb3QgPSBmYWxzZSwgc2xvdF9uYW1l ID0gTm9uZSwgc3luY2hyb25vdXNfY29tbWl0ID0gJ29mZicpOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlv bnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2NyaXB0aW9uX21zcWwuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMv dGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2NyaXB0aW9uX21zcWwuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uYTY3YTI4ODA3Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlw dGlvbnMvdGVzdHMvMTBfcGx1cy9jcmVhdGVfc3Vic2NyaXB0aW9uX21zcWwuc3FsCkBAIC0wLDAg KzEsNCBAQAorQ1JFQVRFIFNVQlNDUklQVElPTiB0ZXN0X2NyZWF0ZV9zdWJzY3JpcHRpb24KKyAg ICBDT05ORUNUSU9OICdob3N0PWxvY2FsaG9zdCBwb3J0PTU0MzIgdXNlcj1wb3N0Z3JlcyBkYm5h bWU9cG9zdGdyZXMgcGFzc3dvcmQ9eHh4eHh4JworICAgIFBVQkxJQ0FUSU9OIHNhbXBsZV9fMQor ICAgIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgZW5hYmxlZCA9IGZhbHNlLCBjcmVhdGVfc2xvdCA9 IGZhbHNlLCBzbG90X25hbWUgPSBOb25lLCBzeW5jaHJvbm91c19jb21taXQgPSAnb2ZmJyk7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy8xMF9wbHVzL3Rlc3QuanNvbiBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rl c3RzLzEwX3BsdXMvdGVzdC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MC4uZDljZjQ1YmRkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvMTBfcGx1cy90 ZXN0Lmpzb24KQEAgLTAsMCArMSw3MCBAQAoreworICAic2NlbmFyaW9zIjogWworICAgIHsKKyAg ICAgICJ0eXBlIjogImNyZWF0ZSIsCisgICAgICAibmFtZSI6ICJDcmVhdGUgIFN1YnNjcmlwdGlv biIsCisgICAgICAiZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24ub2JqIiwKKyAgICAgICJz cWxfZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24uc3FsX2lkIiwKKyAgICAgICJtc3FsX2Vu ZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLm1zcWwiLAorICAgICAgImRhdGEiOiB7CisgICAg ICAgICAgInVzZXJuYW1lIjogInBvc3RncmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJ0ZXN0X2Ny ZWF0ZV9zdWJzY3JpcHRpb24iLAorICAgICAgICAgICJjb25uZWN0IjogZmFsc2UsCisgICAgICAg ICAgImNvcHlfZGF0YSI6IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xvdCI6IGZhbHNlLAor ICAgICAgICAgICJkYiI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93bmVyIjogInBvc3Rn cmVzIiwKKyAgICAgICAgICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAgICJob3N0IjogImxv Y2FsaG9zdCIsCisgICAgICAgICAgInNsb3RfbmFtZSI6ICJOb25lIiwKKyAgICAgICAgICAic2Vy dmljZSI6ICIiLAorICAgICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAgICAicGFzc3dvcmQi OiAiZWRiIiwKKyAgICAgICAgICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJwdWIiOiAiW1wi c2FtcGxlX18xXCJdIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9zcWxfZmlsZSI6ICJjcmVh dGVfc3Vic2NyaXB0aW9uLnNxbCIsCisgICAgICAiZXhwZWN0ZWRfbXNxbF9maWxlIjogImNyZWF0 ZV9zdWJzY3JpcHRpb25fbXNxbC5zcWwiCisgICAgfSwKKyAgICB7CisgICAgICAidHlwZSI6ICJh bHRlciIsCisgICAgICAibmFtZSI6ICJBbHRlciAgU3Vic2NyaXB0aW9uIiwKKyAgICAgICJlbmRw b2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5vYmpfaWQiLAorICAgICAgInNxbF9lbmRwb2ludCI6 ICJOT0RFLXN1YnNjcmlwdGlvbi5zcWxfaWQiLAorICAgICAgImRhdGEiOiB7CisgICAgICAgICAg Im5hbWUiOiAidGVzdF9hbHRlcl9zdWJzY3JpcHRpb24iCisgICAgICB9LAorICAgICAgImV4cGVj dGVkX3NxbF9maWxlIjogImFsdGVyX3N1YnNjcmlwdGlvbi5zcWwiCisgICAgfSwKKyAgICB7Cisg ICAgICAidHlwZSI6ICJhbHRlciIsCisgICAgICAibmFtZSI6ICJBbHRlciAgc3luYyBvZiBzdWJz Y3JpcHRpb24iLAorICAgICAgImVuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLm9ial9pZCIs CisgICAgICAic3FsX2VuZHBvaW50IjogIk5PREUtc3Vic2NyaXB0aW9uLnNxbF9pZCIsCisgICAg ICAiZGF0YSI6IHsKKyAgICAgICAgICAic3luYyI6ICJyZW1vdGVfYXBwbHkiCisgICAgICB9LAor ICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFsdGVyX3N5bmMuc3FsIgorICAgIH0sCisKKyAg ICB7CisgICAgICAidHlwZSI6ICJhbHRlciIsCisgICAgICAibmFtZSI6ICJBbHRlciAgbWFpbnRh aW5hbmNlIERCIGluIGNvbm5lY3Rpb24gc3RyaW5nIG9mIHN1YnNjcmlwdGlvbiIsCisgICAgICAi ZW5kcG9pbnQiOiAiTk9ERS1zdWJzY3JpcHRpb24ub2JqX2lkIiwKKyAgICAgICJzcWxfZW5kcG9p bnQiOiAiTk9ERS1zdWJzY3JpcHRpb24uc3FsX2lkIiwKKyAgICAgICJkYXRhIjogeworICAgICAg ICAgICJkYiI6ICJlZGIiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX3NxbF9maWxlIjogImFs dGVyX21haW50ZW5hbmNlX2RiLnNxbCIKKyAgICB9LAorCisgICAgeworICAgICAgInR5cGUiOiAi ZGVsZXRlIiwKKyAgICAgICJuYW1lIjogIkRyb3Agc3Vic2NyaXB0aW9uIiwKKyAgICAgICJlbmRw b2ludCI6ICJOT0RFLXN1YnNjcmlwdGlvbi5kZWxldGVfaWQiLAorICAgICAgImRhdGEiOiB7Cisg ICAgICAgICJuYW1lIjogInRlc3RfYWx0ZXJfc3Vic2NyaXB0aW9uIgorICAgICAgfQorICAgIH0K KyAgXQorfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvX19pbml0X18ucHkgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZXN0cy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LjI3Y2Q4OTA2NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL19faW5pdF9fLnB5 CkBAIC0wLDAgKzEsMTYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2Zyb20gcGdhZG1p bi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKKworCitjbGFzcyBSdWxlc1Rl c3RHZW5lcmF0b3IoQmFzZVRlc3RHZW5lcmF0b3IpOgorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CisgICAgICAgIHJldHVybiBbXQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvc3Vic2NyaXB0 aW9uX3Rlc3RfZGF0YS5qc29uIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvc3Vic2NyaXB0aW9uX3Rlc3RfZGF0 YS5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uNDc3MzU1N2ZlCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvc3Vic2NyaXB0aW9uX3Rlc3RfZGF0YS5q c29uCkBAIC0wLDAgKzEsNDMyIEBACit7CisgICJhZGRfc3Vic2NyaXB0aW9uIjogWworICAgIHsK KyAgICAgICJuYW1lIjogIkNyZWF0ZSBzdWJzY3JpcHRpb24gd2l0aCBpbnNlcnQgYW5kIHVwZGF0 ZSIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJp c19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICAg InVzZXJuYW1lIjogInBvc3RncmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIs CisgICAgICAgICAgImNvbm5lY3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFs c2UsCisgICAgICAgICAgImNyZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBv c3RncmVzIiwKKyAgICAgICAgICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJl bmFibGVkIjogZmFsc2UsCisgICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAg ICAic2xvdF9uYW1lIjogIk5PTkUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAg ICAgInBvcnQiOiA1NDMyLAorICAgICAgICAgICJwYXNzd29yZCI6ICIiLAorICAgICAgICAgICJz eW5jIjogIm9mZiIsCisgICAgICAgICAgInB1YiI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAor ICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwK KyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAg ICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNyZWF0ZSBzdWJzY3JpcHRpb24g Zm9yIGZldyB0YWJsZXMiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2Jq LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAiZ2V0X3B1YmxpY2F0 aW9uIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICAgInVzZXJuYW1lIjog InBvc3RncmVzIiwKKyAgICAgICAgICAibmFtZSI6ICJQTEFDRUhPTERFUiIsCisgICAgICAgICAg ImNvbm5lY3QiOiBmYWxzZSwKKyAgICAgICAgICAiY29weV9kYXRhIjogZmFsc2UsCisgICAgICAg ICAgImNyZWF0ZV9zbG90IjogZmFsc2UsCisgICAgICAgICAgImRiIjogInBvc3RncmVzIiwKKyAg ICAgICAgICAic3Vib3duZXIiOiAicG9zdGdyZXMiLAorICAgICAgICAgICJlbmFibGVkIjogZmFs c2UsCisgICAgICAgICAgImhvc3QiOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAic2xvdF9uYW1l IjogIk5PTkUiLAorICAgICAgICAgICJzZXJ2aWNlIjogIiIsCisgICAgICAgICAgInBvcnQiOiA1 NDMyLAorICAgICAgICAgICJwYXNzd29yZCI6ICIiLAorICAgICAgICAgICJzeW5jIjogIm9mZiIs CisgICAgICAgICAgInB1YiI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1vY2tp bmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBl Y3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9 LAorICAgIHsKKyAgICAgICJuYW1lIjogIkNyZWF0ZSBhIHN1YnNjcmlwdGlvbiB3aXRob3V0IG5h bWUiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAi aXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIndpdGhvdXRfbmFtZSI6IHRydWUsCisg ICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisg ICAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAgICJjb25uZWN0IjogZmFs c2UsCisgICAgICAgICAgImNvcHlfZGF0YSI6IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xv dCI6IGZhbHNlLAorICAgICAgICAgICJkYiI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93 bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAg ICJob3N0IjogImxvY2FsaG9zdCIsCisgICAgICAgICAgInNsb3RfbmFtZSI6ICJOT05FIiwKKyAg ICAgICAgICAic2VydmljZSI6ICIiLAorICAgICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAg ICAicGFzc3dvcmQiOiAiIiwKKyAgICAgICAgICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJw dWIiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog ZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsK KyAgICAgICAgInN0YXR1c19jb2RlIjogNDEwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAg ICAibmFtZSI6ICJFcnJvciB3aGlsZSBhZGRpbmcgYSBzdWJzY3JpcHRpb24iLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IGZhbHNlLAorICAgICAgImVycm9yX2NyZWF0aW5nX3N1YnNjcmlwdGlvbiI6IHRydWUsCisg ICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAgICJ1c2VybmFtZSI6ICJwb3N0Z3JlcyIsCisg ICAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAgICJjb25uZWN0IjogZmFs c2UsCisgICAgICAgICAgImNvcHlfZGF0YSI6IGZhbHNlLAorICAgICAgICAgICJjcmVhdGVfc2xv dCI6IGZhbHNlLAorICAgICAgICAgICJkYiI6ICJwb3N0Z3JlcyIsCisgICAgICAgICAgInN1Ym93 bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgICAiZW5hYmxlZCI6IGZhbHNlLAorICAgICAgICAg ICJob3N0IjogImxvY2FsaG9zdCIsCisgICAgICAgICAgInNsb3RfbmFtZSI6ICJOT05FIiwKKyAg ICAgICAgICAic2VydmljZSI6ICIiLAorICAgICAgICAgICJwb3J0IjogNTQzMiwKKyAgICAgICAg ICAicGFzc3dvcmQiOiAiIiwKKyAgICAgICAgICAic3luYyI6ICJvZmYiLAorICAgICAgICAgICJw dWIiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjog dHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBn YWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRl X2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5h bCBTZXJ2ZXIgRXJyb3IgJykiCisgICAgICB9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7Cisg ICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAg Im5hbWUiOiAiRXhjZXB0aW9uIHdoaWxlIGFkZGluZyBhIHN1YnNjcmlwdGlvbiIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90 ZXN0IjogZmFsc2UsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAgICAgICJ1c2VybmFtZSI6 ICJwb3N0Z3JlcyIsCisgICAgICAgICAgIm5hbWUiOiAiUExBQ0VIT0xERVIiLAorICAgICAgICAg ICJjb25uZWN0IjogZmFsc2UsCisgICAgICAgICAgImNvcHlfZGF0YSI6IGZhbHNlLAorICAgICAg ICAgICJjcmVhdGVfc2xvdCI6IGZhbHNlLAorICAgICAgICAgICJkYiI6ICJwb3N0Z3JlcyIsCisg ICAgICAgICAgInN1Ym93bmVyIjogInBvc3RncmVzIiwKKyAgICAgICAgICAiZW5hYmxlZCI6IGZh bHNlLAorICAgICAgICAgICJob3N0IjogImxvY2FsaG9zdCIsCisgICAgICAgICAgInNsb3RfbmFt ZSI6ICJOT05FIiwKKyAgICAgICAgICAic2VydmljZSI6ICIiLAorICAgICAgICAgICJwb3J0Ijog NTQzMiwKKyAgICAgICAgICAicGFzc3dvcmQiOiAiIiwKKyAgICAgICAgICAic3luYyI6ICJvZmYi LAorICAgICAgICAgICJwdWIiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAgICJtb2Nr aW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5j dGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29u bmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihUcnVlLCBU cnVlKShGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3IgJykiCisgICAgICB9LAor ICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDUwMAorICAg ICAgfQorICAgIH0KKyAgXSwKKyAgImdldF9zdWJzY3JpcHRpb24iOiBbCisgICAgeworICAgICAg Im5hbWUiOiAiR2V0IGEgc3Vic2NyaXB0aW9uIFVSTCIsCisgICAgICAidXJsIjogIi9icm93c2Vy L3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAg ICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisg ICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAg ICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBh IHN1YnNjcmlwdGlvbiBwcm9wZXJ0aWVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2Ny aXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJm dW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24u Q29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxz ZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYSBzdWJzY3JpcHRpb24gcHJvcGVydGllcyB1 bmRlciBkYXRhYmFzZSBub2RlcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlv bi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJkYXRhYmFz ZV9ub2RlcyI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAg Im1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0 dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJy b3Igd2hpbGUgZmV0Y2hpbmcgYSBzdWJzY3JpcHRpb24gcHJvcGVydGllcyB1bmRlciBkYXRhYmFz ZSBub2RlcyIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0 cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6 IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29w ZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5f dmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAgICAg fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAK KyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBhIHN1YnNjcmlwdGlv biBOb2RlIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL25vZGVzLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6 IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7 CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAg ICAgIm5hbWUiOiAiR2V0IGEgc3Vic2NyaXB0aW9uIE5vZGUgZGVwZW5kYW50cyIsCisgICAgICAi dXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9kZXBlbmRlbnQvIiwKKyAgICAgICJpc19wb3Np dGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAg ICAibW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0 YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJH ZXQgYSBzdWJzY3JpcHRpb24gTm9kZSBkZXBlbmRlbmN5IiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dz ZXIvc3Vic2NyaXB0aW9uL2RlcGVuZGVuY3kvIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0Ijog dHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRh Ijoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjog MjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBm ZXRjaGluZyB0aGUgc3Vic2NyaXB0aW9uIHVuZGVyIHRoZSBkYXRhYmFzZSBub2RlcyB1c2luZyB3 cm9uZyBkYXRhYmFzZSBpZCIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1YnNjcmlwdGlvbi9u b2Rlcy8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5n X3JlcXVpcmVkIjogdHJ1ZSwKKyAgICAgICJtb2NrX2RhdGEiOiB7CisgICAgICAgICJmdW5jdGlv bl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNvcGcyLmNvbm5lY3Rpb24uQ29ubmVj dGlvbi5leGVjdXRlXzJkYXJyYXkiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjogIihGYWxzZSwg J01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAgICAiZXhwZWN0 ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9CisgICAgfSwK KyAgICB7CisgICAgICAibmFtZSI6ICJHZXQgYWxsIHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGhl IGRhdGFiYXNlIG5vZGVzIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL25v ZGVzLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19y ZXF1aXJlZCI6IGZhbHNlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJt b2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVz X2NvZGUiOiAyMDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkdldCBh bGwgdGhlIHN1YnNjcmlwdGlvbiB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNpbmcgd3Jvbmcg ZGF0YWJhc2UgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vbm9kZXMv IiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwKKyAgICAgICJpbmNvcnJlY3RfZGF0 YWJhc2VfaWQiOiB0cnVlLAorICAgICAgImRhdGFiYXNlX25vZGVzIjogdHJ1ZSwKKyAgICAgICJt b2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19kYXRhIjoge30sCisgICAgICAi ZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9Cisg ICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhbGwgdGhl IHN1YnNjcmlwdGlvbiB1bmRlciB0aGUgZGF0YWJhc2Ugbm9kZXMgdXNpbmcgd3JvbmcgZGF0YWJh c2UgaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vbm9kZXMvIiwKKyAg ICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAgICAiZGF0YWJhc2Vfbm9kZXMiOiB0 cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6 IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29w ZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfMmRhcnJheSIsCisgICAgICAgICJyZXR1 cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicpIgorICAg ICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2NvZGUiOiA1 MDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJkZWxldGVfc3Vic2NyaXB0aW9uIjogWworICAg IHsKKyAgICAgICJuYW1lIjogIkRlbGV0ZSBhIHN1YnNjcmlwdGlvbiBVUkwiLAorICAgICAgInVy bCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVz dCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tf ZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29k ZSI6IDIwMAorICAgICAgfQorICAgIH0sCisgICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hp bGUgZGVsZXRpbmcgdGhlIHN1YnNjcmlwdGlvbiIsCisgICAgICAidXJsIjogIi9icm93c2VyL3N1 YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogZmFsc2UsCisgICAg ICAibW9ja2luZ19yZXF1aXJlZCI6IHRydWUsCisgICAgICAibW9ja19kYXRhIjogeworICAgICAg ICAiZnVuY3Rpb25fbmFtZSI6ICJwZ2FkbWluLnV0aWxzLmRyaXZlci5wc3ljb3BnMi5jb25uZWN0 aW9uLkNvbm5lY3Rpb24uZXhlY3V0ZV9zY2FsYXIiLAorICAgICAgICAicmV0dXJuX3ZhbHVlIjog IihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAgIH0sCisgICAg ICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogNTAwCisgICAgICB9 CisgICAgfQorICBdLAorICAidXBkYXRlX3N1YnNjcmlwdGlvbiI6IFsKKyAgICB7CisgICAgICAi bmFtZSI6ICJ1cGRhdGUgYSBzdWJzY3JpcHRpb24gbmFtZSIsCisgICAgICAidXJsIjogIi9icm93 c2VyL3N1YnNjcmlwdGlvbi9vYmovIiwKKyAgICAgICJpc19wb3NpdGl2ZV90ZXN0IjogdHJ1ZSwK KyAgICAgICJ1cGRhdGVfbmFtZSI6IHRydWUsCisgICAgICAidGVzdF9kYXRhIjogeworICAgICAg ICAibmFtZSI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgor ICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAibW9ja19k YXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2Rl IjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRhdGUgYSBw b3J0IGluIGNvbm5lY3Rpb24gZGV0YWlscyBvZiBzdWJzY3JpcHRpb24iLAorICAgICAgInVybCI6 ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6 IHRydWUsCisgICAgICAib3duZXJfc3Vic2NyaXB0aW9uIjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2Rh dGEiOiB7CisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiLAorICAgICAgICAicG9ydCI6ICI1 NDQ0IgorICAgICAgfSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAi bW9ja19kYXRhIjoge30sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1 c19jb2RlIjogMjAwCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZSI6ICJ1cGRh dGUgYSB1c2VybmFtZSBpbiBjb25uZWN0aW9uIGRldGFpbHMgb2Ygc3Vic2NyaXB0aW9uIiwKKyAg ICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAorICAgICAgImlzX3Bvc2l0 aXZlX3Rlc3QiOiB0cnVlLAorICAgICAgIm93bmVyX3N1YnNjcmlwdGlvbiI6IHRydWUsCisgICAg ICAidGVzdF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIiwKKyAgICAgICAg InVzZXJuYW1lIjogInNhbXBsZV91c2VybmFtZSIKKyAgICAgIH0sCisgICAgICAibW9ja2luZ19y ZXF1aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVk X2RhdGEiOiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0sCisg ICAgeworICAgICAgIm5hbWUiOiAiRXJyb3Igd2hpbGUgZmV0Y2hpbmcgYSBzdWJzY3JpcHRpb24g dG8gdXBkYXRlIiwKKyAgICAgICJ1cmwiOiAiL2Jyb3dzZXIvc3Vic2NyaXB0aW9uL29iai8iLAor ICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiBmYWxzZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVk IjogdHJ1ZSwKKyAgICAgICJ0ZXN0X2RhdGEiOiB7CisgICAgICAgICJuYW1lIjogIlBMQUNFX0hP TERFUiIsCisgICAgICAgICJpZCI6ICJQTEFDRV9IT0xERVIiCisgICAgICB9LAorICAgICAgIm1v Y2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAicGdhZG1pbi51dGlscy5kcml2 ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1dGVfZGljdCIsCisgICAgICAg ICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVybmFsIFNlcnZlciBFcnJvcicp IgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3RhdHVzX2Nv ZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lIjogIkVycm9yIHdo aWxlIGZldGNoaW5nIGEgc3Vic2NyaXB0aW9uIHRvIHVwZGF0ZSB1c2luZyB3cm9uZyBzdWJzY3Jp cHRpb24gaWQiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAid3Jvbmdfc3Vic2NyaXB0aW9u X2lkIjogdHJ1ZSwKKyAgICAgICJtb2NraW5nX3JlcXVpcmVkIjogZmFsc2UsCisgICAgICAidGVz dF9kYXRhIjogeworICAgICAgICAiaWQiOiAiUExBQ0VfSE9MREVSIgorICAgICAgfSwKKyAgICAg ICJtb2NrX2RhdGEiOiB7fSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogeworICAgICAgICAic3Rh dHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9CisgIF0sCisgICJkZWxldGVfbXVsdGlwbGVf c3Vic2NyaXB0aW9uIjogWworICAgIHsKKyAgICAgICJuYW1lIjogIkRlbGV0ZSBtdWx0aXBsZSBz dWJzY3JpcHRpb24iLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vb2JqLyIs CisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1aXJl ZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHt9LAorICAgICAgImV4cGVjdGVkX2RhdGEi OiB7CisgICAgICAgICJzdGF0dXNfY29kZSI6IDIwMAorICAgICAgfQorICAgIH0KKyAgXSwKKyAg InNxbF9zdWJzY3JpcHRpb24iOiBbCisgICAgeworICAgICAgIm5hbWUiOiAiRmV0Y2ggdGhlIHN1 YnNjcmlwdGlvbiBTUUwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vc3Fs LyIsCisgICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IHRydWUsCisgICAgICAibW9ja2luZ19yZXF1 aXJlZCI6IGZhbHNlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgIH0sCisgICAgICAiZXhw ZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAwCisgICAgICB9CisgICAg fSwKKyAgICB7CisgICAgICAibmFtZSI6ICJFcnJvciB3aGlsZSBmZXRjaGluZyBhIHN1YnNjcmlw dGlvbiBTUUwiLAorICAgICAgInVybCI6ICIvYnJvd3Nlci9zdWJzY3JpcHRpb24vc3FsLyIsCisg ICAgICAiaXNfcG9zaXRpdmVfdGVzdCI6IGZhbHNlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQi OiB0cnVlLAorICAgICAgIm1vY2tfZGF0YSI6IHsKKyAgICAgICAgImZ1bmN0aW9uX25hbWUiOiAi cGdhZG1pbi51dGlscy5kcml2ZXIucHN5Y29wZzIuY29ubmVjdGlvbi5Db25uZWN0aW9uLmV4ZWN1 dGVfZGljdCIsCisgICAgICAgICJyZXR1cm5fdmFsdWUiOiAiKEZhbHNlLCAnTW9ja2VkIEludGVy bmFsIFNlcnZlciBFcnJvcicpIgorICAgICAgfSwKKyAgICAgICJleHBlY3RlZF9kYXRhIjogewor ICAgICAgICAic3RhdHVzX2NvZGUiOiA1MDAKKyAgICAgIH0KKyAgICB9LAorICAgIHsKKyAgICAg ICJuYW1lIjogIkZldGNoaW5nIGEgc3Vic2NyaXB0aW9uIG1TUUwiLAorICAgICAgInVybCI6ICIv YnJvd3Nlci9zdWJzY3JpcHRpb24vbXNxbC8iLAorICAgICAgImlzX3Bvc2l0aXZlX3Rlc3QiOiB0 cnVlLAorICAgICAgIm1vY2tpbmdfcmVxdWlyZWQiOiBmYWxzZSwKKyAgICAgICJtb2NrX2RhdGEi OiB7CisgICAgICAgICJmdW5jdGlvbl9uYW1lIjogInBnYWRtaW4udXRpbHMuZHJpdmVyLnBzeWNv cGcyLmNvbm5lY3Rpb24uQ29ubmVjdGlvbi5leGVjdXRlX2RpY3QiLAorICAgICAgICAicmV0dXJu X3ZhbHVlIjogIihGYWxzZSwgJ01vY2tlZCBJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InKSIKKyAgICAg IH0sCisgICAgICAiZXhwZWN0ZWRfZGF0YSI6IHsKKyAgICAgICAgInN0YXR1c19jb2RlIjogMjAw CisgICAgICB9CisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0 X3N1YnNjcmlwdGlvbl9jcmVhdGUucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlv bl9jcmVhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi43M2JkMzUz YjgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9j cmVhdGUucHkKQEAgLTAsMCArMSw5NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1p biA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDIwLCBU aGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQg dW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1w b3J0IGpzb24KK2ltcG9ydCB1dWlkCitmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisK K2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2No ZW1hcy50YWJsZXMudGVzdHMgXAorICAgIGltcG9ydCB1dGlscyBhcyB0YWJsZXNfdXRpbHMKK2Zy b20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMg aW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxz LnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBw YXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgc3Vic2NyaXB0aW9u X3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25zQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHN1YnNjcmlwdGlvbiIiIgorICAg IHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygnYWRkX3N1YnNjcmlwdGlvbics CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91 dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzZWxmLmRi X25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAg ICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCisgICAgICAg IHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9pZCJdCisgICAgICAgIHNlbGYu ZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0g c2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9 IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3Zl cnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAg ICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAg ICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKwor ICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25uZWN0X2RhdGFiYXNlKHNlbGYsIHV0 aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKyAgICAgICAgaWYgbm90IGRi X2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK KyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGEg c3Vic2NyaXB0aW9uLiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0IGFuZCBo YXNhdHRyKHNlbGYsICdmZXdfdGFibGVzXzExJyk6CisgICAgICAgICAgICBzZWxmLnRhYmxlX25h bWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAg ICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2 ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorCisgICAgICAg ICAgICBzZWxmLnRlc3RfZGF0YVsncHVidGFibGUnXSA9IHN1YnNjcmlwdGlvbl91dGlscy5nZXRf dGFibGVzKHNlbGYpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBm dW5jdGlvbiB3aWxsIHN1YnNjcmlwdGlvbi4iIiIKKyAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ25h bWUnXSA9IFwKKyAgICAgICAgICAgICJ0ZXN0X3N1YnNjcmlwdGlvbl9hZGRfJXMiICUgKHN0cih1 dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ3B1YiddID0gIiIi WyJzYW1wbGVfXzEiXSIiIgorCisgICAgICAgIGRhdGEgPSBzZWxmLnRlc3RfZGF0YQorICAgICAg ICBpZiBzZWxmLmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu Y3JlYXRlX3N1YnNjcmlwdGlvbigpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBoYXNh dHRyKHNlbGYsICd3aXRob3V0X25hbWUnKToKKyAgICAgICAgICAgICAgICBkZWwgZGF0YVsibmFt ZSJdCisgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9zdWJzY3JpcHRpb24o KQorICAgICAgICAgICAgZWxpZiBoYXNhdHRyKHNlbGYsICdlcnJvcl9jcmVhdGluZ19zdWJzY3Jp cHRpb24nKToKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5j dGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZh bChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLmNyZWF0ZV9zdWJzY3JpcHRpb24oKQorICAgICAgICAgICAgZWxzZToK KyAgICAgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1l Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWRlX2VmZmVjdD1zZWxmLm1vY2tfZGF0 YVsicmV0dXJuX3ZhbHVlIl0pOgorICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu Y3JlYXRlX3N1YnNjcmlwdGlvbigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uu c3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRh WyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIGNyZWF0ZV9zdWJzY3JpcHRpb24oc2VsZik6Cisg ICAgICAgIHJldHVybiBzZWxmLnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBz dHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2 ZXJfaWQpICsgJy8nICsgc3RyKAorICAgICAgICAgICAgICAgIHNlbGYuZGJfaWQpICsgJy8nLAor ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKHNlbGYudGVzdF9kYXRhKSwKKyAgICAgICAgICAg IGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAg ICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgc3Vic2NyaXB0aW9u X3V0aWxzLmRlbGV0ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVz dF9kYXRhWyduYW1lJ10pCisKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3Jp cHRpb25fZGVsZXRlLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZGVsZXRl LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMC4uN2NkMmFhZmNlCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdGVzdF9zdWJzY3JpcHRpb25fZGVsZXRlLnB5 CkBAIC0wLDAgKzEsOTMgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlk Citmcm9tIHVuaXR0ZXN0Lm1vY2sgaW1wb3J0IHBhdGNoCisKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAor ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFi YXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJh dG9yCitmcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKK2Zyb20gcmVncmVz c2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscworZnJvbSAu IGltcG9ydCB1dGlscyBhcyBzdWJzY3JpcHRpb25fdXRpbHMKKworCitjbGFzcyBQdWJsaWNhdGlv bkRlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiJUaGlzIGNsYXNzIHdp bGwgZGVsZXRlIHN1YnNjcmlwdGlvbi4iIiIKKyAgICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0 ZV9zY2VuYXJpb3MoJ2RlbGV0ZV9zdWJzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fdXRpbHMudGVzdF9jYXNlcykKKworICAg IGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGlj dFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAgICAgICBzY2hlbWFfaW5mbyA9IHBhcmVu dF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAgICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVt YV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxmLmRiX2lkID0gc2NoZW1hX2luZm9bImRi X2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJf dmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVyX3ZlcnNpb24gPCA5OTk5OToKKyAgICAg ICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAgICAgICAgIkxvZ2ljYWwgcmVwbGljYXRp b24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAgICAgICAgImZvciBzZXJ2ZXIgdmVyc2lv biBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkKKyAgICAgICAgZGJfY29uID0gZGF0YWJh c2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJf aWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVk Il06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCisgICAgICAgICAgICAgICAgIkNvdWxk IG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGRlbGV0ZSBzdWJzY3JpcHRpb24uIikKKyAgICAg ICAgc2VsZi5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICAgICAgc2Vs Zi5zY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCisgICAgICAgIHNjaGVt YV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxmLnNlcnZlciwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlbGYuc2NoZW1hX25hbWUpCisgICAgICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6 CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSBzY2hlbWEg dG8gZGVsZXRlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vic2NyaXB0aW9uLiIp CisgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUgPSAidGVzdF9zdWJzY3JpcHRpb25fZGVs ZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisKKyAgICAg ICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSBzdWJzY3JpcHRpb25fdXRpbHMuY3JlYXRlX3N1YnNj cmlwdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLAorICAgICAgICAgICAgc2VsZi5kYl9u YW1lLAorICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkKKworICAgIGRlZiBkZWxl dGVfc3Vic2NyaXB0aW9uKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZXN0ZXIuZGVsZXRl KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQp ICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnN1YnNjcmlwdGlvbl9pZCksCisgICAgICAg ICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBzdWJzY3JpcHRpb24iIiIKKyAgICAg ICAgc3Vic2NyaXB0aW9uX3Jlc3BvbnNlID0gc3Vic2NyaXB0aW9uX3V0aWxzLnZlcmlmeV9zdWJz Y3JpcHRpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKKyAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIGlmIG5v dCBzdWJzY3JpcHRpb25fcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzdWJzY3JpcHRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgaWYg c2VsZi5pc19wb3NpdGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiaW52 YWxpZF9zdWJzY3JpcHRpb25faWQiKToKKyAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlv bl9pZCA9IDk5OTkKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfc3Vic2NyaXB0 aW9uKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2Rh dGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVl PWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVybl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLmRlbGV0ZV9zdWJzY3JpcHRpb24oKQorCisgICAgICAgIHNlbGYuYXNz ZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg c2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIHRlYXJEb3duKHNl bGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIHN1YnNjcmlw dGlvbl91dGlscy5kZWxldGVfc3Vic2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vi c2NyaXB0aW9uX25hbWUpCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJh c2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9u cy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfbXVsdGlwbGUucHkgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfbXVsdGlwbGUucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwLi5lYTkzYzA2ZjIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0 aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfbXVsdGlwbGUucHkKQEAgLTAsMCAr MSwxMDYgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwg VG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxv cG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3Jl U1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlkCitpbXBvcnQg anNvbgorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJh c2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0 aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2Vz LnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20g cGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1w b3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJv dXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJl bnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRl c3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgc3Vic2NyaXB0aW9uX3V0 aWxzCisKKworY2xhc3MgUHVibGljYXRpb25EZWxldGVUZXN0Q2FzZXMoQmFzZVRlc3RHZW5lcmF0 b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBkZWxldGUgc3Vic2NyaXB0aW9uLiIiIgorCisg ICAgc2NlbmFyaW9zID0gdXRpbHMuZ2VuZXJhdGVfc2NlbmFyaW9zKCdkZWxldGVfbXVsdGlwbGVf c3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisKKyAgICBkZWYgc2V0VXAoc2VsZik6Cisg ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEi XVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBzY2hlbWFfaW5mb1sic2VydmVyX2lkIl0K KyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisgICAgICAgIHNlbGYu c2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2VydmVyX3ZlcnNpb24iXQorICAgICAgICBp ZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0 KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxpY2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg IgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZlcnNpb24gbGVzcyB0aGFuIDEwIgorCisg ICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorICAg ICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5lY3RlZCJdOgorICAgICAgICAgICAgcmFp c2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRh YmFzZSB0byBkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisgICAgICAgIHNlbGYuc2NoZW1hX2lkID0g c2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAgIHNlbGYuc2NoZW1hX25hbWUgPSBzY2hl bWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBzY2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFf dXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRiX25hbWUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9u YW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3BvbnNlOgorICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2NoZW1hIHRvICIKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiZGVsZXRlIHN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxmLnRhYmxl X25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAg ICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxzLmNyZWF0ZV90YWJsZShzZWxmLnNlcnZl ciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX25hbWUpCisgICAgICAgIHNlbGYuc3Vi c2NyaXB0aW9uX25hbWUgPSAidGVzdF9zdWJzY3JpcHRpb25fZGVsZXRlXyVzIiAlICgKKyAgICAg ICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9u X25hbWVfMSA9ICJ0ZXN0X3N1YnNjcmlwdGlvbl9kZWxldGVfJXMiICUgKAorICAgICAgICAgICAg c3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWRzID0g WworICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLmNyZWF0ZV9zdWJzY3JpcHRpb24oc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpLAorICAgICAgICAgICAg c3Vic2NyaXB0aW9uX3V0aWxzLmNyZWF0ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWVfMSksCisgICAgICAgIF0KKworICAgIGRlZiBkZWxl dGVfbXVsdGlwbGVfc3Vic2NyaXB0aW9uKHNlbGYsIGRhdGEpOgorICAgICAgICByZXR1cm4gc2Vs Zi50ZXN0ZXIuZGVsZXRlKAorICAgICAgICAgICAgInswfXsxfS97Mn0vezN9LyIuZm9ybWF0KHNl bGYudXJsLCB1dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgZm9sbG93X3JlZGlyZWN0cz1UcnVlLAor ICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgY29udGVudF90 eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKworICAgIGRlZiBydW5UZXN0KHNlbGYpOgorICAg ICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHN1YnNjcmlwdGlvbi4iIiIKKyAgICAg ICAgc3Vic2NyaXB0aW9uX3Jlc3BvbnNlID0gc3Vic2NyaXB0aW9uX3V0aWxzLnZlcmlmeV9zdWJz Y3JpcHRpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJf bmFtZSwKKyAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIGlmIG5v dCBzdWJzY3JpcHRpb25fcmVzcG9uc2U6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNv dWxkIG5vdCBmaW5kIHRoZSBzdWJzY3JpcHRpb24gdG8gZGVsZXRlLiIpCisKKyAgICAgICAgc3Vi c2NyaXB0aW9uX3Jlc3BvbnNlID0gc3Vic2NyaXB0aW9uX3V0aWxzLnZlcmlmeV9zdWJzY3JpcHRp b24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwKKyAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwK KyAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWVfMSkKKyAgICAgICAgaWYgbm90IHN1 YnNjcmlwdGlvbl9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQg bm90IGZpbmQgdGhlIHN1YnNjcmlwdGlvbiB0byBkZWxldGUuIikKKworICAgICAgICBkYXRhID0g eydpZHMnOiBzZWxmLnN1YnNjcmlwdGlvbl9pZHN9CisgICAgICAgIGlmIHNlbGYuaXNfcG9zaXRp dmVfdGVzdDoKKyAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi5kZWxldGVfbXVsdGlwbGVfc3Vi c2NyaXB0aW9uKGRhdGEpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVz X2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0 dXNfY29kZSJdKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5l Y3QgdGhlIGRhdGFiYXNlCisKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRh YmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRp b25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rf c3Vic2NyaXB0aW9uX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LmI2MDdjMzM5OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2Ny aXB0aW9uX2dldC5weQpAQCAtMCwwICsxLDk5IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIw MjAsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxl YXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor CitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBn YWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFi bGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRpbHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRt aW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMg aW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwK KyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNl VGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgc3Vic2NyaXB0aW9uX3V0aWxzCisKKworY2xhc3Mg UHVibGljYXRpb25HZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBj bGFzcyB3aWxsIGZldGNoIHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGFibGUgbm9kZS4iIiIKKyAg ICBzY2VuYXJpb3MgPSB1dGlscy5nZW5lcmF0ZV9zY2VuYXJpb3MoJ2dldF9zdWJzY3JpcHRpb24n LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25f dXRpbHMudGVzdF9jYXNlcykKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5k Yl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUiXQorICAg ICAgICBzY2hlbWFfaW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQorICAgICAg ICBzZWxmLnNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfaWQiXQorICAgICAgICBzZWxm LmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lv biA9IHNjaGVtYV9pbmZvWyJzZXJ2ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmIHNlbGYuc2VydmVy X3ZlcnNpb24gPCA5OTk5OToKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QoCisgICAgICAgICAg ICAgICAgIkxvZ2ljYWwgcmVwbGljYXRpb24gaXMgbm90IHN1cHBvcnRlZCAiCisgICAgICAgICAg ICAgICAgImZvciBzZXJ2ZXIgdmVyc2lvbiBsZXNzIHRoYW4gMTAiCisKKyAgICAgICAgICAgICkK KyAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShzZWxmLCB1 dGlscy5TRVJWRVJfR1JPVVAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisgICAgICAgIGlmIG5vdCBk Yl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvICIKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiZGVsZXRlIHN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVtYV9pZCA9 IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gc2No ZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1h X3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFf bmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAgIHJhaXNl IEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgIgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICJzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2VsZi50YWJs ZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4XSkKKyAg ICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2VsZi5zZXJ2 ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICBzZWxmLnN1 YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2NyaXB0aW9uX2RlbGV0ZV8lcyIgJSAoCisgICAg ICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnN1YnNjcmlwdGlv bl9pZCA9IHN1YnNjcmlwdGlvbl91dGlscy5jcmVhdGVfc3Vic2NyaXB0aW9uKAorICAgICAgICAg ICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0 aW9uX25hbWUpCisKKyAgICBkZWYgZ2V0X3N1YnNjcmlwdGlvbihzZWxmKToKKyAgICAgICAgcmV0 dXJuIHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNF UlZFUl9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQp ICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLnN1 YnNjcmlwdGlvbl9pZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZl dGNoIHRoZSBzdWJzY3JpcHRpb24uIiIiCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3NpdGl2ZV90 ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAiZGF0YWJhc2Vfbm9kZXMiKToKKyAg ICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9ICcnCisgICAgICAgICAgICAgICAg cmVzcG9uc2UgPSBzZWxmLmdldF9zdWJzY3JpcHRpb24oKQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3N1YnNjcmlwdGlvbigpCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJkYXRhYmFzZV9ub2RlcyIpOgor ICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gJycKKyAgICAgICAgICAgICAg ICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJu X3ZhbHVlIl0pKToKKyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zdWJz Y3JpcHRpb24oKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB3aXRoIHBhdGNo KHNlbGYubW9ja19kYXRhWyJmdW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXR1cm5fdmFsdWU9ZXZhbChzZWxmLm1vY2tfZGF0YVsicmV0dXJuX3ZhbHVlIl0pKToK KyAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLmdldF9zdWJzY3JpcHRpb24oKQor CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uuc3RhdHVzX2NvZGUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRhWyJzdGF0dXNfY29kZSJdKQorCisg ICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNl CisgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5kZWxldGVfc3Vic2NyaXB0aW9uKHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIGRhdGFiYXNlX3V0aWxz LmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc3Vic2NyaXB0aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9wdXQucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0 aW9ucy90ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9wdXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwLi4yZDQ3OWIxYTMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vic2NyaXB0aW9ucy90 ZXN0cy90ZXN0X3N1YnNjcmlwdGlvbl9wdXQucHkKQEAgLTAsMCArMSwxMTIgQEAKKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJp Z2h0IChDKSAyMDEzIC0gMjAyMCwgVGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlz IHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCBqc29uCitpbXBvcnQgdXVpZAorZnJvbSB1bml0dGVz dC5tb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBz LnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzLnRlc3RzIFwKKyAgICBpbXBvcnQgdXRp bHMgYXMgdGFibGVzX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1wb3J0IFwKKyAgICB1dGlscyBhcyBzY2hl bWFfdXRpbHMKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRh YmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBw Z2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNz aW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0Citmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3Rf dXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMg c3Vic2NyaXB0aW9uX3V0aWxzCisKKworY2xhc3MgUHVibGljYXRpb25VcGRhdGVUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIHVwZGF0ZSB0aGUgc3Vi c2NyaXB0aW9uLiIiIgorICAgIHNjZW5hcmlvcyA9IHV0aWxzLmdlbmVyYXRlX3NjZW5hcmlvcygn dXBkYXRlX3N1YnNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy50ZXN0X2Nhc2VzKQorCisgICAgZGVmIHNldFVwKHNl bGYpOgorICAgICAgICBzZWxmLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRhYmFzZSJd Wy0xXVsiZGJfbmFtZSJdCisgICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25vZGVfZGljdFsi c2NoZW1hIl1bLTFdCisgICAgICAgIHNlbGYuc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZl cl9pZCJdCisgICAgICAgIHNlbGYuZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQorICAgICAg ICBzZWxmLnNlcnZlcl92ZXJzaW9uID0gc2NoZW1hX2luZm9bInNlcnZlcl92ZXJzaW9uIl0KKyAg ICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA8IDk5OTk5OgorICAgICAgICAgICAgc2VsZi5z a2lwVGVzdCgKKyAgICAgICAgICAgICAgICAiTG9naWNhbCByZXBsaWNhdGlvbiBpcyBub3Qgc3Vw cG9ydGVkICIKKyAgICAgICAgICAgICAgICAiZm9yIHNlcnZlciB2ZXJzaW9uIGxlc3MgdGhhbiAx MCIKKworICAgICAgICAgICAgKQorICAgICAgICBkYl9jb24gPSBkYXRhYmFzZV91dGlscy5jb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHV0aWxzLlNFUlZFUl9HUk9VUCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9p ZCkKKyAgICAgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAiQ291bGQgbm90IGNvbm5lY3Qg dG8gZGF0YWJhc2UgdG8gZGVsZXRlIHN1YnNjcmlwdGlvbi4iKQorICAgICAgICBzZWxmLnNjaGVt YV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfaWQiXQorICAgICAgICBzZWxmLnNjaGVtYV9uYW1l ID0gc2NoZW1hX2luZm9bInNjaGVtYV9uYW1lIl0KKyAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0g c2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5z Y2hlbWFfbmFtZSkKKyAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKKyAgICAgICAgICAg IHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBkZWxldGUgIgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJzY3JpcHRpb24uIikKKyAgICAgICAgc2Vs Zi50YWJsZV9uYW1lID0gInRhYmxlX2NvbHVtbl8lcyIgJSAoc3RyKHV1aWQudXVpZDQoKSlbMTo4 XSkKKyAgICAgICAgc2VsZi50YWJsZV9pZCA9IHRhYmxlc191dGlscy5jcmVhdGVfdGFibGUoc2Vs Zi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9uYW1lKQorICAgICAgICBz ZWxmLnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rfc3Vic2NyaXB0aW9uX3VwZGF0ZV8lcyIgJSAo CisgICAgICAgICAgICBzdHIodXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnN1YnNj cmlwdGlvbl9pZCA9IFwKKyAgICAgICAgICAgIHN1YnNjcmlwdGlvbl91dGlscy5jcmVhdGVfc3Vi c2NyaXB0aW9uKHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lKQor CisgICAgZGVmIHVwZGF0ZV9zdWJzY3JpcHRpb24oc2VsZiwgZGF0YSk6CisgICAgICAgIHJldHVy biBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJW RVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycg KyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkgKworICAgICAgICAgICAgJy8nICsg c3RyKHNlbGYuc3Vic2NyaXB0aW9uX2lkKSwKKyAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhk YXRhKSwKKyAgICAgICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiJUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRoZSBzdWJz Y3JpcHRpb24uIiIiCisgICAgICAgIHN1YnNjcmlwdGlvbl9uYW1lID0gXAorICAgICAgICAgICAg c3Vic2NyaXB0aW9uX3V0aWxzLnZlcmlmeV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYu ZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUpCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgInVw ZGF0ZV9uYW1lIik6CisgICAgICAgICAgICBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lID0gInRlc3Rf c3Vic2NyaXB0aW9uX3VwZGF0ZV8yXyVzIiAlICgKKyAgICAgICAgICAgICAgICBzdHIodXVpZC51 dWlkNCgpKVsxOjhdKQorICAgICAgICAgICAgc2VsZi50ZXN0X2RhdGFbJ25hbWUnXSA9IHNlbGYu c3Vic2NyaXB0aW9uX25hbWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYudGVzdF9k YXRhWyduYW1lJ10gPSBzZWxmLnN1YnNjcmlwdGlvbl9uYW1lCisgICAgICAgIHNlbGYudGVzdF9k YXRhWydpZCddID0gc2VsZi5zdWJzY3JpcHRpb25faWQKKworICAgICAgICBpZiBub3Qgc3Vic2Ny aXB0aW9uX25hbWU6CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5k IHRoZSBzdWJzY3JpcHRpb24gdG8gdXBkYXRlLiIpCisKKyAgICAgICAgaWYgc2VsZi5pc19wb3Np dGl2ZV90ZXN0OgorICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAid3Jvbmdfc3Vic2NyaXB0 aW9uX2lkIik6CisgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25faWQgPSA5OTk5Cisg ICAgICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJwbGlkX25vbmUiKToKKyAgICAgICAgICAgICAg ICBzZWxmLnN1YnNjcmlwdGlvbl9pZCA9ICcnCisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYu dXBkYXRlX3N1YnNjcmlwdGlvbihzZWxmLnRlc3RfZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIHdpdGggcGF0Y2goc2VsZi5tb2NrX2RhdGFbImZ1bmN0aW9uX25hbWUiXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWV2YWwoc2VsZi5tb2NrX2RhdGFbInJldHVy bl92YWx1ZSJdKSk6CisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAid3Jvbmdfc3Vi c2NyaXB0aW9uX2lkIik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lk ID0gOTk5OQorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gc2VsZi51cGRhdGVfc3Vic2NyaXB0 aW9uKHNlbGYudGVzdF9kYXRhKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcG9uc2Uu c3RhdHVzX2NvZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHBlY3RlZF9kYXRh WyJzdGF0dXNfY29kZSJdKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorCisgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLmRlbGV0 ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdWJzY3JpcHRpb25fbmFtZSkK KyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vi c2NyaXB0aW9uX3NxbC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX3NxbC5w eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjc5N2RmMzMyMwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3Rlc3Rfc3Vic2NyaXB0aW9uX3NxbC5weQpAQCAt MCwwICsxLDg4IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3Jl U1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBwZ0FkbWluIERl dmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9z dGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorZnJv bSB1bml0dGVzdC5tb2NrIGltcG9ydCBwYXRjaAorZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVy X2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRhYmxlcy50ZXN0cyBcCisgICAgaW1w b3J0IHV0aWxzIGFzIHRhYmxlc191dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMg YXMgc2NoZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZl cnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMK K2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IKK2Zyb20g cmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAorZnJvbSByZWdyZXNzaW9uLnB5dGhv bl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0 aWxzIGFzIHN1YnNjcmlwdGlvbl91dGlscworCisKK2NsYXNzIFB1YmxpY2F0aW9uR2V0VGVzdENh c2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIlRoaXMgY2xhc3Mgd2lsbCBmZXRjaCB0aGUg c3Vic2NyaXB0aW9uIHVuZGVyIHRhYmxlIG5vZGUuIiIiCisgICAgc2NlbmFyaW9zID0gdXRpbHMu Z2VuZXJhdGVfc2NlbmFyaW9zKCdzcWxfc3Vic2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX3V0aWxzLnRlc3RfY2FzZXMpCisK KyAgICBkZWYgc2V0VXAoc2VsZik6CisgICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2Rl X2RpY3RbImRhdGFiYXNlIl1bLTFdWyJkYl9uYW1lIl0KKyAgICAgICAgc2NoZW1hX2luZm8gPSBw YXJlbnRfbm9kZV9kaWN0WyJzY2hlbWEiXVstMV0KKyAgICAgICAgc2VsZi5zZXJ2ZXJfaWQgPSBz Y2hlbWFfaW5mb1sic2VydmVyX2lkIl0KKyAgICAgICAgc2VsZi5kYl9pZCA9IHNjaGVtYV9pbmZv WyJkYl9pZCJdCisgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNpb24gPSBzY2hlbWFfaW5mb1sic2Vy dmVyX3ZlcnNpb24iXQorICAgICAgICBpZiBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgOTk5OTk6Cisg ICAgICAgICAgICBzZWxmLnNraXBUZXN0KAorICAgICAgICAgICAgICAgICJMb2dpY2FsIHJlcGxp Y2F0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgIgorICAgICAgICAgICAgICAgICJmb3Igc2VydmVyIHZl cnNpb24gbGVzcyB0aGFuIDEwIgorCisgICAgICAgICAgICApCisgICAgICAgIGRiX2NvbiA9IGRh dGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkKQorICAgICAgICBpZiBub3QgZGJfY29uWydkYXRhJ11bImNvbm5l Y3RlZCJdOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICJD b3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZSB0byBkZWxldGUgc3Vic2NyaXB0aW9uLiIpCisg ICAgICAgIHNlbGYuc2NoZW1hX2lkID0gc2NoZW1hX2luZm9bInNjaGVtYV9pZCJdCisgICAgICAg IHNlbGYuc2NoZW1hX25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQorICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGRlbGV0ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnNjcmlwdGlv bi4iKQorICAgICAgICBzZWxmLnRhYmxlX25hbWUgPSAidGFibGVfY29sdW1uXyVzIiAlIChzdHIo dXVpZC51dWlkNCgpKVsxOjhdKQorICAgICAgICBzZWxmLnRhYmxlX2lkID0gdGFibGVzX3V0aWxz LmNyZWF0ZV90YWJsZShzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxl X25hbWUpCisgICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX25hbWUgPSAidGVzdF9zdWJzY3JpcHRp b25fZGVsZXRlXyVzIiAlICgKKyAgICAgICAgICAgIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0pCisg ICAgICAgIHNlbGYuc3Vic2NyaXB0aW9uX2lkID0gXAorICAgICAgICAgICAgc3Vic2NyaXB0aW9u X3V0aWxzLmNyZWF0ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3Vi c2NyaXB0aW9uX25hbWUpCisKKyAgICBkZWYgZ2V0X3NxbChzZWxmKToKKyAgICAgICAgcmV0dXJu IHNlbGYudGVzdGVyLmdldCgKKyAgICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZF Ul9HUk9VUCkgKyAnLycgKyBzdHIoCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQpICsg Jy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJyArIHN0cihzZWxmLnN1YnNj cmlwdGlvbl9pZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCisKKyAg ICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiVGhpcyBmdW5jdGlvbiB3aWxsIGZldGNo IHRoZSBzdWJzY3JpcHRpb24gdW5kZXIgdGFibGUgbm9kZS4iIiIKKworICAgICAgICBpZiBzZWxm LmlzX3Bvc2l0aXZlX3Rlc3Q6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuZ2V0X3NxbCgp CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3aXRoIHBhdGNoKHNlbGYubW9ja19kYXRhWyJm dW5jdGlvbl9uYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ldmFs KHNlbGYubW9ja19kYXRhWyJyZXR1cm5fdmFsdWUiXSkpOgorICAgICAgICAgICAgICAgIHJlc3Bv bnNlID0gc2VsZi5nZXRfc3FsKCkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3BvbnNl LnN0YXR1c19jb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWRfZGF0 YVsic3RhdHVzX2NvZGUiXSkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgc3Vi c2NyaXB0aW9uX3V0aWxzLmRlbGV0ZV9zdWJzY3JpcHRpb24oc2VsZi5zZXJ2ZXIsIHNlbGYuZGJf bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zdWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQor ICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2Vy dmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvdGVzdHMvdXRpbHMucHkg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc3Vi c2NyaXB0aW9ucy90ZXN0cy91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAuLjM4NWQ3YzczZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdWJzY3JpcHRpb25zL3Rlc3RzL3V0aWxz LnB5CkBAIC0wLDAgKzEsMTU3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMjAsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisKK2ltcG9y dCBzeXMKK2ltcG9ydCBvcworaW1wb3J0IGpzb24KK2ltcG9ydCB0cmFjZWJhY2sKKworZnJvbSBy ZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCisK K0NVUlJFTlRfUEFUSCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9f KSkKK3dpdGggb3BlbihDVVJSRU5UX1BBVEggKyAiL3N1YnNjcmlwdGlvbl90ZXN0X2RhdGEuanNv biIpIGFzIGRhdGFfZmlsZToKKyAgICB0ZXN0X2Nhc2VzID0ganNvbi5sb2FkKGRhdGFfZmlsZSkK KworCitkZWYgZ2V0X3RhYmxlcyhzZWxmKToKKyAgICB0YWJsZXMgPSBzZWxmLnRlc3Rlci5nZXQo CisgICAgICAgICcvYnJvd3Nlci9zdWJzY3JpcHRpb24vZ2V0X3RhYmxlcy8nICsgc3RyKAorICAg ICAgICAgICAgdXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cigKKyAgICAgICAgICAgIHNl bGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcvJywKKyAg ICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nKQorICAgIHJldHVybiBqc29uLmR1bXBzKFt0 YWJsZXMuanNvblsnZGF0YSddWzFdWyd2YWx1ZSddXSkKKworCitkZWYgY3JlYXRlX3N1YnNjcmlw dGlvbl9hcGkoc2VsZik6CisgICAgcmV0dXJuIHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICBzdHIoc2Vs Zi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKAorICAgICAgICAgICAgc2VsZi5kYl9pZCkgKyAnLycs CisgICAgICAgIGRhdGE9anNvbi5kdW1wcyhzZWxmLnRlc3RfZGF0YSksCisgICAgICAgIGNvbnRl bnRfdHlwZT0naHRtbC9qc29uJykKKworCitkZWYgY3JlYXRlX3N1YnNjcmlwdGlvbihzZXJ2ZXIs IGRiX25hbWUsIHN1YnNjcmlwdGlvbl9uYW1lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9u IGNyZWF0ZXMgYSBzdWJzY3JpcHRpb24uCisgICAgOnBhcmFtIHNlcnZlcjogc2VydmVyIGRldGFp bHMKKyAgICA6dHlwZSBzZXJ2ZXI6IGRpY3QKKyAgICA6cGFyYW0gZGJfbmFtZTogZGF0YWJhc2Ug bmFtZQorICAgIDp0eXBlIGRiX25hbWU6IHN0cgorICAgIDpwYXJhbSBzdWJzY3JpcHRpb25fbmFt ZTogc3Vic2NyaXB0aW9uIG5hbWUKKyAgICA6dHlwZSBzdWJzY3JpcHRpb25fbmFtZTogc3RyCisg ICAgOnJldHVybiBzdWJzY3JpcHRpb25faWQ6IHN1YnNjcmlwdGlvbiBpZAorICAgIDpydHlwZTog aW50CisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2Ri X2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUn XSkKKyAgICAgICAgb2xkX2lzb2xhdGlvbl9sZXZlbCA9IGNvbm5lY3Rpb24uaXNvbGF0aW9uX2xl dmVsCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICBw Z19jdXJzb3IgPSBjb25uZWN0aW9uLmN1cnNvcigpCisgICAgICAgIHF1ZXJ5ID0gIiIiQ1JFQVRF IFNVQlNDUklQVElPTiAiJXMiICIiIiBcCisgICAgICAgICAgICAgICAgIiIiQ09OTkVDVElPTiAn aG9zdD0xOTIuMTY4LjEuNTAgcG9ydD01NDMyIHVzZXI9Zm9vICIiIiBcCisgICAgICAgICAgICAg ICAgIiIiZGJuYW1lPWZvb2RiJyAiIiIgXAorICAgICAgICAgICAgICAgICIiIlBVQkxJQ0FUSU9O IGluc2VydF9vbmx5IFdJVEggKGNyZWF0ZV9zbG90ID0gZmFsc2UsICIiIiBcCisgICAgICAgICAg ICAgICAgIiIiZW5hYmxlZCA9IGZhbHNlLCBzbG90X25hbWU9Tk9ORSwgY29ubmVjdD1mYWxzZSk7 IiIiICUgKAorICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlv bl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICBjb25uZWN0aW9uLmNvbW1pdCgp CisgICAgICAgICMgR2V0IHJvbGUgb2lkIG9mIG5ld2x5IGFkZGVkIHN1YnNjcmlwdGlvbgorICAg ICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0IG9pZCBmcm9tIHBnX3N1YnNjcmlwdGlvbiBz dWIgd2hlcmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAic3ViLnN1Ym5hbWU9JyVzJyIg JQorICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb25fbmFtZSkKKyAgICAgICAg c3Vic2NyaXB0aW9uID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgc3Vic2NyaXB0aW9u X2lkID0gJycKKyAgICAgICAgaWYgc3Vic2NyaXB0aW9uOgorICAgICAgICAgICAgc3Vic2NyaXB0 aW9uX2lkID0gc3Vic2NyaXB0aW9uWzBdCisgICAgICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAg ICAgICByZXR1cm4gc3Vic2NyaXB0aW9uX2lkCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg ICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisgICAgICAgIHJhaXNlCisK KworZGVmIHZlcmlmeV9zdWJzY3JpcHRpb24oc2VydmVyLCBkYl9uYW1lLCBzdWJzY3JpcHRpb25f bmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB2ZXJpZmllcyBzdWJzY3JpcHRpb24g ZXhpc3QgaW4gZGF0YWJhc2Ugb3Igbm90LgorICAgIDpwYXJhbSBzZXJ2ZXI6IHNlcnZlciBkZXRh aWxzCisgICAgOnR5cGUgc2VydmVyOiBkaWN0CisgICAgOnBhcmFtIGRiX25hbWU6IGRhdGFiYXNl IG5hbWUKKyAgICA6dHlwZSBkYl9uYW1lOiBzdHIKKyAgICA6cGFyYW0gc3Vic2NyaXB0aW9uX25h bWU6IHN1YnNjcmlwdGlvbiBuYW1lCisgICAgOnR5cGUgc3Vic2NyaXB0aW9uX25hbWU6IHN0cgor ICAgIDpyZXR1cm4gc3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb24gcmVjb3JkIGZyb20gZGF0YWJh c2UKKyAgICA6cnR5cGU6IHR1cGxlCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0 aW9uID0gdXRpbHMuZ2V0X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQn XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsn aG9zdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy dmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzZXJ2ZXJbJ3NzbG1vZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJz b3IoKQorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgic2VsZWN0ICogZnJvbSBwZ19zdWJzY3Jp cHRpb24gc3ViICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIndoZXJlIHN1Yi5zdWJuYW1l PSclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uX25hbWUpCisg ICAgICAgIHN1YnNjcmlwdGlvbiA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAgICAgIGNvbm5l Y3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gc3Vic2NyaXB0aW9uCisgICAgZXhjZXB0IEV4 Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRlcnIpCisg ICAgICAgIHJhaXNlCisKKworZGVmIGRlbGV0ZV9zdWJzY3JpcHRpb24oc2VydmVyLCBkYl9uYW1l LCBzdWJzY3JpcHRpb25fbmFtZSk6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB1c2UgdG8g ZGVsZXRlIHRoZSBleGlzdGluZyBzdWJzY3JpcHRpb24KKworICAgIDpwYXJhbSBkYl9uYW1lOiAg ZGJfbmFtZQorICAgIDp0eXBlIGRiX25hbWU6IGRiX25hbWUgb2JqZWN0CisgICAgOnBhcmFtIHNl cnZlcjogc2VydmVyCisgICAgOnR5cGUgc2VydmVyOiBzZXJ2ZXIgb2JqZWN0CisgICAgOnBhcmFt IHN1YnNjcmlwdGlvbl9uYW1lOiBzdWJzY3JpcHRpb24gbmFtZQorICAgIDp0eXBlIHN1YnNjcmlw dGlvbl9uYW1lOiBzdHIKKyAgICA6cmV0dXJuOiBOb25lCisgICAgIiIiCisKKyAgICB0cnk6Cisg ICAgICAgIGNvbm5lY3Rpb24gPSB1dGlscy5nZXRfZGJfY29ubmVjdGlvbihkYl9uYW1lLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWyd1c2VybmFt ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVy WydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VydmVyWydob3N0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZXJ2ZXJbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgICAgICBwZ19jdXJzb3IgPSBj b25uZWN0aW9uLmN1cnNvcigpCisKKyAgICAgICAgcGdfY3Vyc29yLmV4ZWN1dGUoInNlbGVjdCAq IGZyb20gcGdfc3Vic2NyaXB0aW9uIHN1YiB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAg ICAgICJzdWIuc3VibmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnNj cmlwdGlvbl9uYW1lKQorICAgICAgICBzdWJzY3JpcHRpb25fY291bnQgPSBwZ19jdXJzb3IuZmV0 Y2hvbmUoKQorICAgICAgICBpZiBzdWJzY3JpcHRpb25fY291bnQ6CisgICAgICAgICAgICBvbGRf aXNvbGF0aW9uX2xldmVsID0gY29ubmVjdGlvbi5pc29sYXRpb25fbGV2ZWwKKyAgICAgICAgICAg IGNvbm5lY3Rpb24uc2V0X2lzb2xhdGlvbl9sZXZlbCgwKQorICAgICAgICAgICAgcGdfY3Vyc29y ID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICAgICAgcXVlcnkgPSAiRFJPUCBzdWJzY3Jp cHRpb24gJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAoc3Vic2NyaXB0aW9uX25hbWUpCisg ICAgICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZShxdWVyeSkKKyAgICAgICAgICAgIGNvbm5lY3Rp b24uc2V0X2lzb2xhdGlvbl9sZXZlbChvbGRfaXNvbGF0aW9uX2xldmVsKQorICAgICAgICAgICAg Y29ubmVjdGlvbi5jb21taXQoKQorICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCkKKyAgICBleGNl cHQgRXhjZXB0aW9uOgorICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVy cikKKyAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3BnLzEwX3BsdXMvZGVwZW5kZW5jaWVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRl cy9kZXBlbmRzL3BnLzEwX3BsdXMvZGVwZW5kZW5jaWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAuLjY1NTJmMGM5NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3BnLzEw X3BsdXMvZGVwZW5kZW5jaWVzLnNxbApAQCAtMCwwICsxLDg5IEBACitTRUxFQ1QgRElTVElOQ1Qg ZGVwLmRlcHR5cGUsIGRlcC5yZWZjbGFzc2lkLCBkZXAucmVmb2JqaWQsIGNsLnJlbGtpbmQsIGFk LmFkYmluLCBhZC5hZHNyYywKKyAgICBDQVNFIFdIRU4gY2wucmVsa2luZCBJUyBOT1QgTlVMTCBU SEVOIENBU0UgV0hFTiBjbC5yZWxraW5kID0gJ3InIFRIRU4gY2wucmVsa2luZCB8fCBDT0FMRVND RShkZXAucmVmb2Jqc3ViaWQ6OnRleHQsICcnKSBFTFNFIGNsLnJlbGtpbmQgRU5ECisgICAgICAg IFdIRU4gdGcub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1RyJzo6dGV4dAorICAgICAgICBXSEVOIHR5 Lm9pZCBJUyBOT1QgTlVMTCBUSEVOIENBU0UgV0hFTiB0eS50eXB0eXBlID0gJ2QnIFRIRU4gJ2Qn Ojp0ZXh0IEVMU0UgJ1R5Jzo6dGV4dCBFTkQKKyAgICAgICAgV0hFTiBucy5vaWQgSVMgTk9UIE5V TEwgVEhFTiAnbic6OnRleHQKKyAgICAgICAgV0hFTiBwci5vaWQgSVMgTk9UIE5VTEwgQU5EIChw cnR5cC50eXBuYW1lID0gJ3RyaWdnZXInIE9SIHBydHlwLnR5cG5hbWUgPSAnZXZlbnRfdHJpZ2dl cicpIFRIRU4gJ1B0Jzo6dGV4dAorICAgICAgICBXSEVOIHByLm9pZCBJUyBOT1QgTlVMTCBUSEVO ICdQZic6OnRleHQKKyAgICAgICAgV0hFTiBsYS5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnbCc6OnRl eHQKKyAgICAgICAgV0hFTiBydy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnUmwnOjp0ZXh0CisgICAg ICAgIFdIRU4gY28ub2lkIElTIE5PVCBOVUxMIFRIRU4gQ0FTRSBXSEVOIGNvLmNvbnR5cGlkID4g MCBUSEVOICdDZCcgRUxTRSAnQyc6OnRleHQgfHwgY29udHlwZSBFTkQKKyAgICAgICAgV0hFTiBh ZC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnQSc6OnRleHQKKyAgICAgICAgV0hFTiBmcy5vaWQgSVMg Tk9UIE5VTEwgVEhFTiAnRnMnOjp0ZXh0CisgICAgICAgIFdIRU4gZmR3Lm9pZCBJUyBOT1QgTlVM TCBUSEVOICdGdyc6OnRleHQKKyAgICAgICAgV0hFTiBldnQub2lkIElTIE5PVCBOVUxMIFRIRU4g J0V0Jzo6dGV4dAorICAgICAgICBXSEVOIGNvbC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnQ28nOjp0 ZXh0CisgICAgICAgIFdIRU4gZnRzYy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRmMnOjp0ZXh0Cisg ICAgICAgIFdIRU4gZnRzcC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRnAnOjp0ZXh0CisgICAgICAg IFdIRU4gZnRzZC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRmQnOjp0ZXh0CisgICAgICAgIFdIRU4g ZnRzdC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRnQnOjp0ZXh0CisgICAgICAgIFdIRU4gZXh0Lm9p ZCBJUyBOT1QgTlVMTCBUSEVOICdFeCc6OnRleHQKKyAgICAgICAgV0hFTiBwbC5vaWQgSVMgTk9U IE5VTEwgVEhFTiAnUnMnOjp0ZXh0CisgICAgRUxTRSAnJworICAgIEVORCBBUyB0eXBlLAorICAg IENPQUxFU0NFKGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFTIG93bmVydGFibGUsCisgICAg Q0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9UIE5VTEwgT1IgYXR0LmF0dG5hbWUgSVMgTk9UIE5V TEwgVEhFTiBjbC5yZWxuYW1lIHx8IENPQUxFU0NFKCcuJyB8fCBhdHQuYXR0bmFtZSwgJycpCisg ICAgRUxTRSBDT0FMRVNDRShjbC5yZWxuYW1lLCBjby5jb25uYW1lLCBwci5wcm9uYW1lLCB0Zy50 Z25hbWUsIHR5LnR5cG5hbWUsIGxhLmxhbm5hbWUsIHJ3LnJ1bGVuYW1lLCBucy5uc3BuYW1lLAor ICAgICAgICAgICAgICAgICAgZnMuc3J2bmFtZSwgZmR3LmZkd25hbWUsIGV2dC5ldnRuYW1lLCBj b2wuY29sbG5hbWUsIGZ0c2MuY2ZnbmFtZSwgZnRzZC5kaWN0bmFtZSwgZnRzcC5wcnNuYW1lLAor ICAgICAgICAgICAgICAgICAgZnRzdC50bXBsbmFtZSwgZXh0LmV4dG5hbWUsIHBsLnBvbG5hbWUp CisgICAgRU5EIEFTIHJlZm5hbWUsCisgICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5zby5uc3Bu YW1lLCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFtZSwgY29sbnMubnNwbmFt ZSwgZnRzY25zLm5zcG5hbWUsCisgICAgICAgIGZ0c2Rucy5uc3BuYW1lLCBmdHNwbnMubnNwbmFt ZSwgZnRzdG5zLm5zcG5hbWUpIEFTIG5zcG5hbWUsCisgICAgQ0FTRSBXSEVOIGluaGl0cy5pbmhw YXJlbnQgSVMgTk9UIE5VTEwgVEhFTiAnMScgRUxTRSAnMCcgRU5EIEFTIGlzX2luaGVyaXRzLAor ICAgIENBU0UgV0hFTiBpbmhlZC5pbmhwYXJlbnQgSVMgTk9UIE5VTEwgVEhFTiAnMScgRUxTRSAn MCcgRU5EIEFTIGlzX2luaGVyaXRlZAorRlJPTSBwZ19kZXBlbmQgZGVwCitMRUZUIEpPSU4gcGdf Y2xhc3MgY2wgT04gZGVwLnJlZm9iamlkPWNsLm9pZAorTEVGVCBKT0lOIHBnX2F0dHJpYnV0ZSBh dHQgT04gZGVwLnJlZm9iamlkPWF0dC5hdHRyZWxpZCBBTkQgZGVwLnJlZm9ianN1YmlkPWF0dC5h dHRudW0KK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNjIE9OIGNsLnJlbG5hbWVzcGFjZT1uc2Mu b2lkCitMRUZUIEpPSU4gcGdfcHJvYyBwciBPTiBkZXAucmVmb2JqaWQ9cHIub2lkCitMRUZUIEpP SU4gcGdfbmFtZXNwYWNlIG5zcCBPTiBwci5wcm9uYW1lc3BhY2U9bnNwLm9pZAorTEVGVCBKT0lO IHBnX3RyaWdnZXIgdGcgT04gZGVwLnJlZm9iamlkPXRnLm9pZAorTEVGVCBKT0lOIHBnX3R5cGUg dHkgT04gZGVwLnJlZm9iamlkPXR5Lm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3QgT04g dHkudHlwbmFtZXNwYWNlPW5zdC5vaWQKK0xFRlQgSk9JTiBwZ19jb25zdHJhaW50IGNvIE9OIGRl cC5yZWZvYmppZD1jby5vaWQKK0xFRlQgSk9JTiBwZ19jbGFzcyBjb2MgT04gY28uY29ucmVsaWQ9 Y29jLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc28gT04gY28uY29ubmFtZXNwYWNlPW5z by5vaWQKK0xFRlQgSk9JTiBwZ19yZXdyaXRlIHJ3IE9OIGRlcC5yZWZvYmppZD1ydy5vaWQKK0xF RlQgSk9JTiBwZ19jbGFzcyBjbHJ3IE9OIGNscncub2lkPXJ3LmV2X2NsYXNzCitMRUZUIEpPSU4g cGdfbmFtZXNwYWNlIG5zcncgT04gY2xydy5yZWxuYW1lc3BhY2U9bnNydy5vaWQKK0xFRlQgSk9J TiBwZ19sYW5ndWFnZSBsYSBPTiBkZXAucmVmb2JqaWQ9bGEub2lkCitMRUZUIEpPSU4gcGdfbmFt ZXNwYWNlIG5zIE9OIGRlcC5yZWZvYmppZD1ucy5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyZGVmIGFk IE9OIGFkLmFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBhZC5hZG51bT1hdHQuYXR0bnVtCitMRUZU IEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIgZnMgT04gZnMub2lkPWRlcC5yZWZvYmppZAorTEVGVCBK T0lOIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIGZkdyBPTiBmZHcub2lkPWRlcC5yZWZvYmppZAor TEVGVCBKT0lOIHBnX3R5cGUgcHJ0eXAgT04gcHJ0eXAub2lkID0gcHIucHJvcmV0dHlwZQorTEVG VCBKT0lOIHBnX2luaGVyaXRzIGluaGl0cyBPTiAoaW5oaXRzLmluaHJlbGlkPWRlcC5yZWZvYmpp ZCkKK0xFRlQgSk9JTiBwZ19pbmhlcml0cyBpbmhlZCBPTiAoaW5oZWQuaW5ocGFyZW50PWRlcC5y ZWZvYmppZCkKK0xFRlQgSk9JTiBwZ19ldmVudF90cmlnZ2VyIGV2dCBPTiBldnQub2lkPWRlcC5y ZWZvYmppZAorTEVGVCBKT0lOIHBnX2NvbGxhdGlvbiBjb2wgT04gY29sLm9pZD1kZXAucmVmb2Jq aWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgY29sbnMgT04gY29sLmNvbGxuYW1lc3BhY2U9Y29s bnMub2lkCitMRUZUIEpPSU4gcGdfdHNfY29uZmlnIGZ0c2MgT04gZnRzYy5vaWQ9ZGVwLnJlZm9i amlkCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIGZ0c2NucyBPTiBmdHNjLmNmZ25hbWVzcGFjZT1m dHNjbnMub2lkCitMRUZUIEpPSU4gcGdfdHNfZGljdCBmdHNkIE9OIGZ0c2Qub2lkPWRlcC5yZWZv YmppZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBmdHNkbnMgT04gZnRzZC5kaWN0bmFtZXNwYWNl PWZ0c2Rucy5vaWQKK0xFRlQgSk9JTiBwZ190c19wYXJzZXIgZnRzcCBPTiBmdHNwLm9pZD1kZXAu cmVmb2JqaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgZnRzcG5zIE9OIGZ0c3AucHJzbmFtZXNw YWNlPWZ0c3Bucy5vaWQKK0xFRlQgSk9JTiBwZ190c190ZW1wbGF0ZSBmdHN0IE9OIGZ0c3Qub2lk PWRlcC5yZWZvYmppZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBmdHN0bnMgT04gZnRzdC50bXBs bmFtZXNwYWNlPWZ0c3Rucy5vaWQKK0xFRlQgSk9JTiBwZ19leHRlbnNpb24gZXh0IE9OIGV4dC5v aWQ9ZGVwLnJlZm9iamlkCitMRUZUIEpPSU4gcGdfcG9saWN5IHBsIE9OIHBsLm9pZD1kZXAucmVm b2JqaWQKK3t7d2hlcmVfY2xhdXNlfX0gQU5ECityZWZjbGFzc2lkIElOICggU0VMRUNUIG9pZCBG Uk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUgSU4KKyAgICgncGdfY2xhc3MnLCAncGdfY29uc3Ry YWludCcsICdwZ19jb252ZXJzaW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3 cml0ZScsICdwZ19uYW1lc3BhY2UnLAorICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdwZ19h dHRyZGVmJywgJ3BnX2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9y ZWlnbl9kYXRhX3dyYXBwZXInLAorICAgJ3BnX2NvbGxhdGlvbicsICdwZ190c19jb25maWcnLCAn cGdfdHNfZGljdCcsICdwZ190c19wYXJzZXInLCAncGdfdHNfdGVtcGxhdGUnLCAncGdfZXh0ZW5z aW9uJywgJ3BnX3BvbGljeScpKQorVU5JT04KK1NFTEVDVCBESVNUSU5DVCBkZXAuZGVwdHlwZSwg ZGVwLnJlZmNsYXNzaWQsIGRlcC5yZWZvYmppZCwgY2wucmVsa2luZCwgYWQuYWRiaW4sIGFkLmFk c3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxraW5kIElTIE5PVCBOVUxMIFRIRU4gQ0FTRSBXSEVO IGNsLnJlbGtpbmQgPSAncicgVEhFTiBjbC5yZWxraW5kIHx8IENPQUxFU0NFKGRlcC5yZWZvYmpz dWJpZDo6dGV4dCwgJycpIEVMU0UgY2wucmVsa2luZCBFTkQKKyAgICBFTFNFICcnIEVORCBBUyB0 eXBlLAorCU5VTEwgQVMgb3duZXJ0YWJsZSwKKwlDQVNFIFdIRU4gY2wucmVsbmFtZSBJUyBOT1Qg TlVMTCBPUiBhdHQuYXR0bmFtZSBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbG5hbWUgfHwgQ09BTEVT Q0UoJy4nIHx8IGF0dC5hdHRuYW1lLCAnJykKKyAgICBFTFNFIGNsLnJlbG5hbWUgRU5EIEFTIHJl Zm5hbWUsCisgICAgbnNjLm5zcG5hbWUgQVMgbnNwbmFtZSwgJzAnIEFTIGlzX2luaGVyaXRzLCAn MCcgQVMgaXNfaW5oZXJpdGVkCitGUk9NIHBnX2RlcGVuZCBkZXAKK0xFRlQgSk9JTiBwZ19jbGFz cyBjbCBPTiBkZXAucmVmb2JqaWQ9Y2wub2lkCitMRUZUIEpPSU4gcGdfYXR0cmlidXRlIGF0dCBP TiBkZXAucmVmb2JqaWQ9YXR0LmF0dHJlbGlkIEFORCBkZXAucmVmb2Jqc3ViaWQ9YXR0LmF0dG51 bQorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc2MgT04gY2wucmVsbmFtZXNwYWNlPW5zYy5vaWQK K0xFRlQgSk9JTiBwZ19hdHRyZGVmIGFkIE9OIGFkLmFkcmVsaWQ9YXR0LmF0dHJlbGlkIEFORCBh ZC5hZG51bT1hdHQuYXR0bnVtCitXSEVSRSBkZXAub2JqaWQgSU4gKFNFTEVDVCBvaWQgRlJPTSBw Z19yZXdyaXRlIFdIRVJFIGV2X2NsYXNzPXt7b2JqZWN0X2lkfX0pIEFORCBjbC5yZWxraW5kIG5v dCBpbiAoJ3YnLCAnbScpCitPUkRFUiBCWSByZWZjbGFzc2lkLCByZWxraW5kCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVw ZW5kcy9wZy8xMF9wbHVzL2RlcGVuZGVudHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvcGcvMTBfcGx1cy9kZXBlbmRlbnRz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLjhjYTBiOGE2MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3RlbXBsYXRlcy9kZXBlbmRzL3BnLzEwX3BsdXMvZGVwZW5kZW50cy5zcWwKQEAgLTAsMCArMSw3 OSBAQAorU0VMRUNUIERJU1RJTkNUIGRlcC5kZXB0eXBlLCBkZXAuY2xhc3NpZCwgY2wucmVsa2lu ZCwgYWQuYWRiaW4sIGFkLmFkc3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxraW5kIElTIE5PVCBO VUxMIFRIRU4gQ0FTRSBXSEVOIGNsLnJlbGtpbmQgPSAncicgVEhFTiBjbC5yZWxraW5kIHx8IENP QUxFU0NFKGRlcC5vYmpzdWJpZDo6dGV4dCwgJycpIEVMU0UgY2wucmVsa2luZCBFTkQKKyAgICAg ICAgV0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnVHInOjp0ZXh0CisgICAgICAgIFdIRU4g dHkub2lkIElTIE5PVCBOVUxMIFRIRU4gQ0FTRSBXSEVOIHR5LnR5cHR5cGUgPSAnZCcgVEhFTiAn ZCc6OnRleHQgRUxTRSAnVHknOjp0ZXh0IEVORAorICAgICAgICBXSEVOIG5zLm9pZCBJUyBOT1Qg TlVMTCBUSEVOICduJzo6dGV4dAorICAgICAgICBXSEVOIHByLm9pZCBJUyBOT1QgTlVMTCBBTkQg KHBydHlwLnR5cG5hbWUgPSAndHJpZ2dlcicgT1IgcHJ0eXAudHlwbmFtZSA9ICdldmVudF90cmln Z2VyJykgVEhFTiAnUHQnOjp0ZXh0CisgICAgICAgIFdIRU4gcHIub2lkIElTIE5PVCBOVUxMIFRI RU4gJ1BmJzo6dGV4dAorICAgICAgICBXSEVOIGxhLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdsJzo6 dGV4dAorICAgICAgICBXSEVOIHJ3Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdSbCc6OnRleHQKKyAg ICAgICAgV0hFTiBjby5vaWQgSVMgTk9UIE5VTEwgVEhFTiBDQVNFIFdIRU4gY28uY29udHlwaWQg PiAwIFRIRU4gJ0NkJyBFTFNFICdDJzo6dGV4dCB8fCBjb250eXBlIEVORAorICAgICAgICBXSEVO IGFkLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdBJzo6dGV4dAorICAgICAgICBXSEVOIGZzLm9pZCBJ UyBOT1QgTlVMTCBUSEVOICdGcyc6OnRleHQKKyAgICAgICAgV0hFTiBmZHcub2lkIElTIE5PVCBO VUxMIFRIRU4gJ0Z3Jzo6dGV4dAorICAgICAgICBXSEVOIGV2dC5vaWQgSVMgTk9UIE5VTEwgVEhF TiAnRXQnOjp0ZXh0CisgICAgICAgIFdIRU4gY29sLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdDbyc6 OnRleHQKKyAgICAgICAgV0hFTiBmdHNjLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdGYyc6OnRleHQK KyAgICAgICAgV0hFTiBmdHNwLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdGcCc6OnRleHQKKyAgICAg ICAgV0hFTiBmdHNkLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdGZCc6OnRleHQKKyAgICAgICAgV0hF TiBmdHN0Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdGdCc6OnRleHQKKyAgICAgICAgV0hFTiBleHQu b2lkIElTIE5PVCBOVUxMIFRIRU4gJ0V4Jzo6dGV4dAorICAgICAgICBXSEVOIHBsLm9pZCBJUyBO T1QgTlVMTCBUSEVOICdScyc6OnRleHQKKyAgICAgICAgV0hFTiBwdWJfcmVsLm9pZCBJUyBOT1Qg TlVMTCBUSEVOICdyJzo6dGV4dAorICAgIEVMU0UgJycKKyAgICBFTkQgQVMgdHlwZSwKKyAgICBD T0FMRVNDRShjb2MucmVsbmFtZSwgY2xydy5yZWxuYW1lKSBBUyBvd25lcnRhYmxlLAorICAgIENB U0UgV0hFTiBjbC5yZWxuYW1lIElTIE5PVCBOVUxMIEFORCBhdHQuYXR0bmFtZSBJUyBOT1QgTlVM TCBUSEVOIGNsLnJlbG5hbWUgfHwgQ09BTEVTQ0UoJy4nIHx8IGF0dC5hdHRuYW1lLCAnJykKKyAg ICBFTFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNvLmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRn bmFtZSwgdHkudHlwbmFtZSwgbGEubGFubmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsCisg ICAgICAgICAgICAgICAgICBmcy5zcnZuYW1lLCBmZHcuZmR3bmFtZSwgZXZ0LmV2dG5hbWUsIGNv bC5jb2xsbmFtZSwgZnRzYy5jZmduYW1lLCBmdHNkLmRpY3RuYW1lLCBmdHNwLnByc25hbWUsCisg ICAgICAgICAgICAgICAgICBmdHN0LnRtcGxuYW1lLCBleHQuZXh0bmFtZSwgcGwucG9sbmFtZSwg cXVvdGVfaWRlbnQocHVibnMubnNwbmFtZSl8fCcuJ3x8cXVvdGVfaWRlbnQocHViY2wucmVsbmFt ZSkpCisgICAgRU5EIEFTIHJlZm5hbWUsCisgICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5zby5u c3BuYW1lLCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFtZSwgY29sbnMubnNw bmFtZSwgZnRzY25zLm5zcG5hbWUsCisgICAgICAgIGZ0c2Rucy5uc3BuYW1lLCBmdHNwbnMubnNw bmFtZSwgZnRzdG5zLm5zcG5hbWUpIEFTIG5zcG5hbWUsCisgICAgQ0FTRSBXSEVOIGluaGl0cy5p bmhwYXJlbnQgSVMgTk9UIE5VTEwgVEhFTiAnMScgRUxTRSAnMCcgRU5EIEFTIGlzX2luaGVyaXRz LAorICAgIENBU0UgV0hFTiBpbmhlZC5pbmhwYXJlbnQgSVMgTk9UIE5VTEwgVEhFTiAnMScgRUxT RSAnMCcgRU5EIEFTIGlzX2luaGVyaXRlZAorRlJPTSBwZ19kZXBlbmQgZGVwCitMRUZUIEpPSU4g cGdfY2xhc3MgY2wgT04gZGVwLm9iamlkPWNsLm9pZAorTEVGVCBKT0lOIHBnX2F0dHJpYnV0ZSBh dHQgT04gZGVwLm9iamlkPWF0dC5hdHRyZWxpZCBBTkQgZGVwLm9ianN1YmlkPWF0dC5hdHRudW0K K0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNjIE9OIGNsLnJlbG5hbWVzcGFjZT1uc2Mub2lkCitM RUZUIEpPSU4gcGdfcHJvYyBwciBPTiBkZXAub2JqaWQ9cHIub2lkCitMRUZUIEpPSU4gcGdfbmFt ZXNwYWNlIG5zcCBPTiBwci5wcm9uYW1lc3BhY2U9bnNwLm9pZAorTEVGVCBKT0lOIHBnX3RyaWdn ZXIgdGcgT04gZGVwLm9iamlkPXRnLm9pZAorTEVGVCBKT0lOIHBnX3R5cGUgdHkgT04gZGVwLm9i amlkPXR5Lm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3QgT04gdHkudHlwbmFtZXNwYWNl PW5zdC5vaWQKK0xFRlQgSk9JTiBwZ19jb25zdHJhaW50IGNvIE9OIGRlcC5vYmppZD1jby5vaWQK K0xFRlQgSk9JTiBwZ19jbGFzcyBjb2MgT04gY28uY29ucmVsaWQ9Y29jLm9pZAorTEVGVCBKT0lO IHBnX25hbWVzcGFjZSBuc28gT04gY28uY29ubmFtZXNwYWNlPW5zby5vaWQKK0xFRlQgSk9JTiBw Z19yZXdyaXRlIHJ3IE9OIGRlcC5vYmppZD1ydy5vaWQKK0xFRlQgSk9JTiBwZ19jbGFzcyBjbHJ3 IE9OIGNscncub2lkPXJ3LmV2X2NsYXNzCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zcncgT04g Y2xydy5yZWxuYW1lc3BhY2U9bnNydy5vaWQKK0xFRlQgSk9JTiBwZ19sYW5ndWFnZSBsYSBPTiBk ZXAub2JqaWQ9bGEub2lkCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zIE9OIGRlcC5vYmppZD1u cy5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyZGVmIGFkIE9OIGFkLm9pZD1kZXAub2JqaWQKK0xFRlQg Sk9JTiBwZ19mb3JlaWduX3NlcnZlciBmcyBPTiBmcy5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4g cGdfZm9yZWlnbl9kYXRhX3dyYXBwZXIgZmR3IE9OIGZkdy5vaWQ9ZGVwLm9iamlkCitMRUZUIEpP SU4gcGdfdHlwZSBwcnR5cCBPTiBwcnR5cC5vaWQgPSBwci5wcm9yZXR0eXBlCitMRUZUIEpPSU4g cGdfaW5oZXJpdHMgaW5oaXRzIE9OIChpbmhpdHMuaW5ocmVsaWQ9ZGVwLm9iamlkKQorTEVGVCBK T0lOIHBnX2luaGVyaXRzIGluaGVkIE9OIChpbmhlZC5pbmhwYXJlbnQ9ZGVwLm9iamlkKQorTEVG VCBKT0lOIHBnX2V2ZW50X3RyaWdnZXIgZXZ0IE9OIGV2dC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpP SU4gcGdfY29sbGF0aW9uIGNvbCBPTiBjb2wub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX25h bWVzcGFjZSBjb2xucyBPTiBjb2wuY29sbG5hbWVzcGFjZT1jb2xucy5vaWQKK0xFRlQgSk9JTiBw Z190c19jb25maWcgZnRzYyBPTiBmdHNjLm9pZD1kZXAub2JqaWQKK0xFRlQgSk9JTiBwZ19uYW1l c3BhY2UgZnRzY25zIE9OIGZ0c2MuY2ZnbmFtZXNwYWNlPWZ0c2Nucy5vaWQKK0xFRlQgSk9JTiBw Z190c19kaWN0IGZ0c2QgT04gZnRzZC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfbmFtZXNw YWNlIGZ0c2RucyBPTiBmdHNkLmRpY3RuYW1lc3BhY2U9ZnRzZG5zLm9pZAorTEVGVCBKT0lOIHBn X3RzX3BhcnNlciBmdHNwIE9OIGZ0c3Aub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX25hbWVz cGFjZSBmdHNwbnMgT04gZnRzcC5wcnNuYW1lc3BhY2U9ZnRzcG5zLm9pZAorTEVGVCBKT0lOIHBn X3RzX3RlbXBsYXRlIGZ0c3QgT04gZnRzdC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfbmFt ZXNwYWNlIGZ0c3RucyBPTiBmdHN0LnRtcGxuYW1lc3BhY2U9ZnRzdG5zLm9pZAorTEVGVCBKT0lO IHBnX2V4dGVuc2lvbiBleHQgT04gZXh0Lm9pZD1kZXAub2JqaWQKK0xFRlQgSk9JTiBwZ19wb2xp Y3kgcGwgT04gcGwub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX3B1YmxpY2F0aW9uX3JlbCBw dWJfcmVsIE9OIHB1Yl9yZWwub2lkID0gZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfY2xhc3MgcHVi Y2wgT04gcHViY2wub2lkID0gcHViX3JlbC5wcnJlbGlkCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNl IHB1Ym5zIE9OIHB1Ym5zLm9pZD1wdWJjbC5yZWxuYW1lc3BhY2UKK3t7d2hlcmVfY2xhdXNlfX0g QU5ECitjbGFzc2lkIElOICggU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNzIFdIRVJFIHJlbG5hbWUg SU4KKyAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcsICdwZ19jb252ZXJzaW9uJywgJ3Bn X2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScsICdwZ19uYW1lc3BhY2UnLAorICAg J3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdwZ19hdHRyZGVmJywgJ3BnX2V2ZW50X3RyaWdnZXIn LCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dyYXBwZXInLAorICAgJ3Bn X2NvbGxhdGlvbicsICdwZ190c19jb25maWcnLCAncGdfdHNfZGljdCcsICdwZ190c19wYXJzZXIn LCAncGdfdHNfdGVtcGxhdGUnLCAncGdfZXh0ZW5zaW9uJywgJ3BnX3BvbGljeScsICdwZ19zdWJz Y3JpcHRpb24nLCAncGdfcHVibGljYXRpb25fcmVsJykpCitPUkRFUiBCWSBjbGFzc2lkLCBjbC5y ZWxraW5kCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wZy8xMV9wbHVzL2RlcGVuZGVudHMuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvcGcv MTFfcGx1cy9kZXBlbmRlbnRzLnNxbAppbmRleCA2ZjJlNDgyODguLjg1Mzg0N2Y1YSAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVz L2RlcGVuZHMvcGcvMTFfcGx1cy9kZXBlbmRlbnRzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wZy8xMV9wbHVzL2Rl cGVuZGVudHMuc3FsCkBAIC0xOSwxMyArMTksMTQgQEAgU0VMRUNUIERJU1RJTkNUIGRlcC5kZXB0 eXBlLCBkZXAuY2xhc3NpZCwgY2wucmVsa2luZCwgYWQuYWRiaW4sIGFkLmFkc3JjLAogICAgICAg ICBXSEVOIGZ0c3Qub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0Z0Jzo6dGV4dAogICAgICAgICBXSEVO IGV4dC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRXgnOjp0ZXh0CiAgICAgICAgIFdIRU4gcGwub2lk IElTIE5PVCBOVUxMIFRIRU4gJ1JzJzo6dGV4dAorICAgICAgICBXSEVOIHB1Yl9yZWwub2lkIElT IE5PVCBOVUxMIFRIRU4gJ3InOjp0ZXh0CiAgICAgRUxTRSAnJwogICAgIEVORCBBUyB0eXBlLAog ICAgIENPQUxFU0NFKGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUpIEFTIG93bmVydGFibGUsCiAg ICAgQ0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9UIE5VTEwgQU5EIGF0dC5hdHRuYW1lIElTIE5P VCBOVUxMIFRIRU4gY2wucmVsbmFtZSB8fCBDT0FMRVNDRSgnLicgfHwgYXR0LmF0dG5hbWUsICcn KQogICAgIEVMU0UgQ09BTEVTQ0UoY2wucmVsbmFtZSwgY28uY29ubmFtZSwgcHIucHJvbmFtZSwg dGcudGduYW1lLCB0eS50eXBuYW1lLCBsYS5sYW5uYW1lLCBydy5ydWxlbmFtZSwgbnMubnNwbmFt ZSwKICAgICAgICAgICAgICAgICAgIGZzLnNydm5hbWUsIGZkdy5mZHduYW1lLCBldnQuZXZ0bmFt ZSwgY29sLmNvbGxuYW1lLCBmdHNjLmNmZ25hbWUsIGZ0c2QuZGljdG5hbWUsIGZ0c3AucHJzbmFt ZSwKLSAgICAgICAgICAgICAgICAgIGZ0c3QudG1wbG5hbWUsIGV4dC5leHRuYW1lLCBwbC5wb2xu YW1lKQorICAgICAgICAgICAgICAgICAgZnRzdC50bXBsbmFtZSwgZXh0LmV4dG5hbWUsIHBsLnBv bG5hbWUsIHF1b3RlX2lkZW50KHB1Ym5zLm5zcG5hbWUpfHwnLid8fHF1b3RlX2lkZW50KHB1YmNs LnJlbG5hbWUpKQogICAgIEVORCBBUyByZWZuYW1lLAogICAgIENPQUxFU0NFKG5zYy5uc3BuYW1l LCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5uc3BuYW1lLCBuc3J3Lm5zcG5hbWUsIGNv bG5zLm5zcG5hbWUsIGZ0c2Nucy5uc3BuYW1lLAogICAgICAgICBmdHNkbnMubnNwbmFtZSwgZnRz cG5zLm5zcG5hbWUsIGZ0c3Rucy5uc3BuYW1lKSBBUyBuc3BuYW1lLApAQCAtNjcsOSArNjgsMTIg QEAgTEVGVCBKT0lOIHBnX3RzX3RlbXBsYXRlIGZ0c3QgT04gZnRzdC5vaWQ9ZGVwLm9iamlkCiBM RUZUIEpPSU4gcGdfbmFtZXNwYWNlIGZ0c3RucyBPTiBmdHN0LnRtcGxuYW1lc3BhY2U9ZnRzdG5z Lm9pZAogTEVGVCBKT0lOIHBnX2V4dGVuc2lvbiBleHQgT04gZXh0Lm9pZD1kZXAub2JqaWQKIExF RlQgSk9JTiBwZ19wb2xpY3kgcGwgT04gcGwub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX3B1 YmxpY2F0aW9uX3JlbCBwdWJfcmVsIE9OIHB1Yl9yZWwub2lkID0gZGVwLm9iamlkCitMRUZUIEpP SU4gcGdfY2xhc3MgcHViY2wgT04gcHViY2wub2lkID0gcHViX3JlbC5wcnJlbGlkCitMRUZUIEpP SU4gcGdfbmFtZXNwYWNlIHB1Ym5zIE9OIHB1Ym5zLm9pZD1wdWJjbC5yZWxuYW1lc3BhY2UKIHt7 d2hlcmVfY2xhdXNlfX0gQU5ECiBjbGFzc2lkIElOICggU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNz IFdIRVJFIHJlbG5hbWUgSU4KICAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcsICdwZ19j b252ZXJzaW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScsICdwZ19u YW1lc3BhY2UnLAogICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdwZ19hdHRyZGVmJywgJ3Bn X2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dy YXBwZXInLAotICAgJ3BnX2NvbGxhdGlvbicsICdwZ190c19jb25maWcnLCAncGdfdHNfZGljdCcs ICdwZ190c19wYXJzZXInLCAncGdfdHNfdGVtcGxhdGUnLCAncGdfZXh0ZW5zaW9uJywgJ3BnX3Bv bGljeScpKQorICAgJ3BnX2NvbGxhdGlvbicsICdwZ190c19jb25maWcnLCAncGdfdHNfZGljdCcs ICdwZ190c19wYXJzZXInLCAncGdfdHNfdGVtcGxhdGUnLCAncGdfZXh0ZW5zaW9uJywgJ3BnX3Bv bGljeScsICdwZ19zdWJzY3JpcHRpb24nLCAncGdfcHVibGljYXRpb25fcmVsJykpCiBPUkRFUiBC WSBjbGFzc2lkLCBjbC5yZWxraW5kCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wZy8xMl9wbHVzL2RlcGVuZGVu dHMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxh dGVzL2RlcGVuZHMvcGcvMTJfcGx1cy9kZXBlbmRlbnRzLnNxbAppbmRleCBlZjc2Yzg4NWQuLjVi YWM1MDhhZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvcGcvMTJfcGx1cy9kZXBlbmRlbnRzLnNxbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5k cy9wZy8xMl9wbHVzL2RlcGVuZGVudHMuc3FsCkBAIC0xOSwxMyArMTksMTQgQEAgU0VMRUNUIERJ U1RJTkNUIGRlcC5kZXB0eXBlLCBkZXAuY2xhc3NpZCwgY2wucmVsa2luZCwgYWQuYWRiaW4sIHBn X2dldF9leHByKGFkLmEKICAgICAgICAgV0hFTiBmdHN0Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdG dCc6OnRleHQKICAgICAgICAgV0hFTiBleHQub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0V4Jzo6dGV4 dAogICAgICAgICBXSEVOIHBsLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdScyc6OnRleHQKKyAgICAg ICAgV0hFTiBwdWJfcmVsLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdyJzo6dGV4dAogICAgIEVMU0Ug JycKICAgICBFTkQgQVMgdHlwZSwKICAgICBDT0FMRVNDRShjb2MucmVsbmFtZSwgY2xydy5yZWxu YW1lKSBBUyBvd25lcnRhYmxlLAogICAgIENBU0UgV0hFTiBjbC5yZWxuYW1lIElTIE5PVCBOVUxM IEFORCBhdHQuYXR0bmFtZSBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbG5hbWUgfHwgQ09BTEVTQ0Uo Jy4nIHx8IGF0dC5hdHRuYW1lLCAnJykKICAgICBFTFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNv LmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFtZSwgdHkudHlwbmFtZSwgbGEubGFubmFtZSwg cncucnVsZW5hbWUsIG5zLm5zcG5hbWUsCiAgICAgICAgICAgICAgICAgICBmcy5zcnZuYW1lLCBm ZHcuZmR3bmFtZSwgZXZ0LmV2dG5hbWUsIGNvbC5jb2xsbmFtZSwgZnRzYy5jZmduYW1lLCBmdHNk LmRpY3RuYW1lLCBmdHNwLnByc25hbWUsCi0gICAgICAgICAgICAgICAgICBmdHN0LnRtcGxuYW1l LCBleHQuZXh0bmFtZSwgcGwucG9sbmFtZSkKKyAgICAgICAgICAgICAgICAgIGZ0c3QudG1wbG5h bWUsIGV4dC5leHRuYW1lLCBwbC5wb2xuYW1lLCBxdW90ZV9pZGVudChwdWJucy5uc3BuYW1lKXx8 Jy4nfHxxdW90ZV9pZGVudChwdWJjbC5yZWxuYW1lKSkKICAgICBFTkQgQVMgcmVmbmFtZSwKICAg ICBDT0FMRVNDRShuc2MubnNwbmFtZSwgbnNvLm5zcG5hbWUsIG5zcC5uc3BuYW1lLCBuc3QubnNw bmFtZSwgbnNydy5uc3BuYW1lLCBjb2xucy5uc3BuYW1lLCBmdHNjbnMubnNwbmFtZSwKICAgICAg ICAgZnRzZG5zLm5zcG5hbWUsIGZ0c3Bucy5uc3BuYW1lLCBmdHN0bnMubnNwbmFtZSkgQVMgbnNw bmFtZSwKQEAgLTY3LDkgKzY4LDEyIEBAIExFRlQgSk9JTiBwZ190c190ZW1wbGF0ZSBmdHN0IE9O IGZ0c3Qub2lkPWRlcC5vYmppZAogTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBmdHN0bnMgT04gZnRz dC50bXBsbmFtZXNwYWNlPWZ0c3Rucy5vaWQKIExFRlQgSk9JTiBwZ19leHRlbnNpb24gZXh0IE9O IGV4dC5vaWQ9ZGVwLm9iamlkCiBMRUZUIEpPSU4gcGdfcG9saWN5IHBsIE9OIHBsLm9pZD1kZXAu b2JqaWQKK0xFRlQgSk9JTiBwZ19wdWJsaWNhdGlvbl9yZWwgcHViX3JlbCBPTiBwdWJfcmVsLm9p ZCA9IGRlcC5vYmppZAorTEVGVCBKT0lOIHBnX2NsYXNzIHB1YmNsIE9OIHB1YmNsLm9pZCA9IHB1 Yl9yZWwucHJyZWxpZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBwdWJucyBPTiBwdWJucy5vaWQ9 cHViY2wucmVsbmFtZXNwYWNlCiB7e3doZXJlX2NsYXVzZX19IEFORAogY2xhc3NpZCBJTiAoIFNF TEVDVCBvaWQgRlJPTSBwZ19jbGFzcyBXSEVSRSByZWxuYW1lIElOCiAgICAoJ3BnX2NsYXNzJywg J3BnX2NvbnN0cmFpbnQnLCAncGdfY29udmVyc2lvbicsICdwZ19sYW5ndWFnZScsICdwZ19wcm9j JywgJ3BnX3Jld3JpdGUnLCAncGdfbmFtZXNwYWNlJywKICAgICdwZ190cmlnZ2VyJywgJ3BnX3R5 cGUnLCAncGdfYXR0cmRlZicsICdwZ19ldmVudF90cmlnZ2VyJywgJ3BnX2ZvcmVpZ25fc2VydmVy JywgJ3BnX2ZvcmVpZ25fZGF0YV93cmFwcGVyJywKLSAgICdwZ19jb2xsYXRpb24nLCAncGdfdHNf Y29uZmlnJywgJ3BnX3RzX2RpY3QnLCAncGdfdHNfcGFyc2VyJywgJ3BnX3RzX3RlbXBsYXRlJywg J3BnX2V4dGVuc2lvbicsICdwZ19wb2xpY3knKSkKKyAgICdwZ19jb2xsYXRpb24nLCAncGdfdHNf Y29uZmlnJywgJ3BnX3RzX2RpY3QnLCAncGdfdHNfcGFyc2VyJywgJ3BnX3RzX3RlbXBsYXRlJywg J3BnX2V4dGVuc2lvbicsICdwZ19wb2xpY3knLCAncGdfc3Vic2NyaXB0aW9uJywgJ3BnX3B1Ymxp Y2F0aW9uX3JlbCcpKQogT1JERVIgQlkgY2xhc3NpZCwgY2wucmVsa2luZApkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVu ZHMvcHBhcy8xMF9wbHVzL2RlcGVuZGVuY2llcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wcGFzLzEwX3BsdXMvZGVwZW5k ZW5jaWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmUzMjkxMjE4 YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3BwYXMvMTBfcGx1cy9kZXBlbmRlbmNpZXMuc3FsCkBA IC0wLDAgKzEsOTMgQEAKK1NFTEVDVCBESVNUSU5DVCBkZXAuZGVwdHlwZSwgZGVwLnJlZmNsYXNz aWQsIGRlcC5yZWZvYmppZCwgY2wucmVsa2luZCwgYWQuYWRiaW4sIGFkLmFkc3JjLAorICAgIENB U0UgV0hFTiBjbC5yZWxraW5kIElTIE5PVCBOVUxMIFRIRU4gQ0FTRSBXSEVOIGNsLnJlbGtpbmQg PSAncicgVEhFTiBjbC5yZWxraW5kIHx8IENPQUxFU0NFKGRlcC5yZWZvYmpzdWJpZDo6dGV4dCwg JycpIEVMU0UgY2wucmVsa2luZCBFTkQKKyAgICAgICAgV0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwg VEhFTiAnVHInOjp0ZXh0CisgICAgICAgIFdIRU4gdHkub2lkIElTIE5PVCBOVUxMIFRIRU4gQ0FT RSBXSEVOIHR5LnR5cHR5cGUgPSAnZCcgVEhFTiAnZCc6OnRleHQgRUxTRSAnVHknOjp0ZXh0IEVO RAorICAgICAgICBXSEVOIG5zLm9pZCBJUyBOT1QgTlVMTCBUSEVOIENBU0UgV0hFTiBucy5uc3Bw YXJlbnQgIT0gMCBUSEVOICdQYSc6OnRleHQgRUxTRSAnbic6OnRleHQgRU5ECisgICAgICAgIFdI RU4gcHIub2lkIElTIE5PVCBOVUxMIEFORCAocHJ0eXAudHlwbmFtZSA9ICd0cmlnZ2VyJyBPUiBw cnR5cC50eXBuYW1lID0gJ2V2ZW50X3RyaWdnZXInKSBUSEVOICdQdCc6OnRleHQKKyAgICAgICAg V0hFTiBwci5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnUGYnOjp0ZXh0CisgICAgICAgIFdIRU4gbGEu b2lkIElTIE5PVCBOVUxMIFRIRU4gJ2wnOjp0ZXh0CisgICAgICAgIFdIRU4gcncub2lkIElTIE5P VCBOVUxMIFRIRU4gJ1JsJzo6dGV4dAorICAgICAgICBXSEVOIGNvLm9pZCBJUyBOT1QgTlVMTCBU SEVOIENBU0UgV0hFTiBjby5jb250eXBpZCA+IDAgVEhFTiAnQ2QnIEVMU0UgJ0MnOjp0ZXh0IHx8 IGNvbnR5cGUgRU5ECisgICAgICAgIFdIRU4gYWQub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0EnOjp0 ZXh0CisgICAgICAgIFdIRU4gZnMub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0ZzJzo6dGV4dAorICAg ICAgICBXSEVOIGZkdy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRncnOjp0ZXh0CisgICAgICAgIFdI RU4gZXZ0Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdFdCc6OnRleHQKKyAgICAgICAgV0hFTiBjb2wu b2lkIElTIE5PVCBOVUxMIFRIRU4gJ0NvJzo6dGV4dAorICAgICAgICBXSEVOIGZ0c2Mub2lkIElT IE5PVCBOVUxMIFRIRU4gJ0ZjJzo6dGV4dAorICAgICAgICBXSEVOIGZ0c3Aub2lkIElTIE5PVCBO VUxMIFRIRU4gJ0ZwJzo6dGV4dAorICAgICAgICBXSEVOIGZ0c2Qub2lkIElTIE5PVCBOVUxMIFRI RU4gJ0ZkJzo6dGV4dAorICAgICAgICBXSEVOIGZ0c3Qub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0Z0 Jzo6dGV4dAorICAgICAgICBXSEVOIGV4dC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRXgnOjp0ZXh0 CisgICAgICAgIFdIRU4gc3luLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdTeSc6OnRleHQKKyAgICAg ICAgV0hFTiBwbC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnUnMnOjp0ZXh0CisgICAgRUxTRSAnJwor ICAgIEVORCBBUyB0eXBlLAorICAgIENPQUxFU0NFKGNvYy5yZWxuYW1lLCBjbHJ3LnJlbG5hbWUp IEFTIG93bmVydGFibGUsCisgICAgQ0FTRSBXSEVOIGNsLnJlbG5hbWUgSVMgTk9UIE5VTEwgT1Ig YXR0LmF0dG5hbWUgSVMgTk9UIE5VTEwgVEhFTiBjbC5yZWxuYW1lIHx8IENPQUxFU0NFKCcuJyB8 fCBhdHQuYXR0bmFtZSwgJycpCisgICAgRUxTRSBDT0FMRVNDRShjbC5yZWxuYW1lLCBjby5jb25u YW1lLCBwci5wcm9uYW1lLCB0Zy50Z25hbWUsIHR5LnR5cG5hbWUsIGxhLmxhbm5hbWUsIHJ3LnJ1 bGVuYW1lLCBucy5uc3BuYW1lLAorICAgICAgICAgICAgICAgICAgZnMuc3J2bmFtZSwgZmR3LmZk d25hbWUsIGV2dC5ldnRuYW1lLCBjb2wuY29sbG5hbWUsIGZ0c2MuY2ZnbmFtZSwgZnRzZC5kaWN0 bmFtZSwgZnRzcC5wcnNuYW1lLAorICAgICAgICAgICAgICAgICAgZnRzdC50bXBsbmFtZSwgZXh0 LmV4dG5hbWUsIHN5bi5zeW5uYW1lLCBwbC5wb2xuYW1lKQorICAgIEVORCBBUyByZWZuYW1lLAor ICAgIENPQUxFU0NFKG5zYy5uc3BuYW1lLCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5u c3BuYW1lLCBuc3J3Lm5zcG5hbWUsIGNvbG5zLm5zcG5hbWUsIGZ0c2Nucy5uc3BuYW1lLAorICAg ICAgICBmdHNkbnMubnNwbmFtZSwgZnRzcG5zLm5zcG5hbWUsIGZ0c3Rucy5uc3BuYW1lLCBzeW5u cy5uc3BuYW1lKSBBUyBuc3BuYW1lLAorICAgIENBU0UgV0hFTiBpbmhpdHMuaW5ocGFyZW50IElT IE5PVCBOVUxMIFRIRU4gJzEnIEVMU0UgJzAnIEVORCBBUyBpc19pbmhlcml0cywKKyAgICBDQVNF IFdIRU4gaW5oZWQuaW5ocGFyZW50IElTIE5PVCBOVUxMIFRIRU4gJzEnIEVMU0UgJzAnIEVORCBB UyBpc19pbmhlcml0ZWQKK0ZST00gcGdfZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX2NsYXNzIGNs IE9OIGRlcC5yZWZvYmppZD1jbC5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OIGRl cC5yZWZvYmppZD1hdHQuYXR0cmVsaWQgQU5EIGRlcC5yZWZvYmpzdWJpZD1hdHQuYXR0bnVtCitM RUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zYyBPTiBjbC5yZWxuYW1lc3BhY2U9bnNjLm9pZAorTEVG VCBKT0lOIHBnX3Byb2MgcHIgT04gZGVwLnJlZm9iamlkPXByLm9pZAorTEVGVCBKT0lOIHBnX25h bWVzcGFjZSBuc3AgT04gcHIucHJvbmFtZXNwYWNlPW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190cmln Z2VyIHRnIE9OIGRlcC5yZWZvYmppZD10Zy5vaWQKK0xFRlQgSk9JTiBwZ190eXBlIHR5IE9OIGRl cC5yZWZvYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnN0IE9OIHR5LnR5cG5h bWVzcGFjZT1uc3Qub2lkCitMRUZUIEpPSU4gcGdfY29uc3RyYWludCBjbyBPTiBkZXAucmVmb2Jq aWQ9Y28ub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY29jIE9OIGNvLmNvbnJlbGlkPWNvYy5vaWQK K0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNvIE9OIGNvLmNvbm5hbWVzcGFjZT1uc28ub2lkCitM RUZUIEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAucmVmb2JqaWQ9cncub2lkCitMRUZUIEpPSU4g cGdfY2xhc3MgY2xydyBPTiBjbHJ3Lm9pZD1ydy5ldl9jbGFzcworTEVGVCBKT0lOIHBnX25hbWVz cGFjZSBuc3J3IE9OIGNscncucmVsbmFtZXNwYWNlPW5zcncub2lkCitMRUZUIEpPSU4gcGdfbGFu Z3VhZ2UgbGEgT04gZGVwLnJlZm9iamlkPWxhLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBu cyBPTiBkZXAucmVmb2JqaWQ9bnMub2lkCitMRUZUIEpPSU4gcGdfYXR0cmRlZiBhZCBPTiBhZC5h ZHJlbGlkPWF0dC5hdHRyZWxpZCBBTkQgYWQuYWRudW09YXR0LmF0dG51bQorTEVGVCBKT0lOIHBn X2ZvcmVpZ25fc2VydmVyIGZzIE9OIGZzLm9pZD1kZXAucmVmb2JqaWQKK0xFRlQgSk9JTiBwZ19m b3JlaWduX2RhdGFfd3JhcHBlciBmZHcgT04gZmR3Lm9pZD1kZXAucmVmb2JqaWQKK0xFRlQgSk9J TiBwZ190eXBlIHBydHlwIE9OIHBydHlwLm9pZCA9IHByLnByb3JldHR5cGUKK0xFRlQgSk9JTiBw Z19pbmhlcml0cyBpbmhpdHMgT04gKGluaGl0cy5pbmhyZWxpZD1kZXAucmVmb2JqaWQpCitMRUZU IEpPSU4gcGdfaW5oZXJpdHMgaW5oZWQgT04gKGluaGVkLmluaHBhcmVudD1kZXAucmVmb2JqaWQp CitMRUZUIEpPSU4gcGdfZXZlbnRfdHJpZ2dlciBldnQgT04gZXZ0Lm9pZD1kZXAucmVmb2JqaWQK K0xFRlQgSk9JTiBwZ19jb2xsYXRpb24gY29sIE9OIGNvbC5vaWQ9ZGVwLnJlZm9iamlkCitMRUZU IEpPSU4gcGdfbmFtZXNwYWNlIGNvbG5zIE9OIGNvbC5jb2xsbmFtZXNwYWNlPWNvbG5zLm9pZAor TEVGVCBKT0lOIHBnX3RzX2NvbmZpZyBmdHNjIE9OIGZ0c2Mub2lkPWRlcC5yZWZvYmppZAorTEVG VCBKT0lOIHBnX25hbWVzcGFjZSBmdHNjbnMgT04gZnRzYy5jZmduYW1lc3BhY2U9ZnRzY25zLm9p ZAorTEVGVCBKT0lOIHBnX3RzX2RpY3QgZnRzZCBPTiBmdHNkLm9pZD1kZXAucmVmb2JqaWQKK0xF RlQgSk9JTiBwZ19uYW1lc3BhY2UgZnRzZG5zIE9OIGZ0c2QuZGljdG5hbWVzcGFjZT1mdHNkbnMu b2lkCitMRUZUIEpPSU4gcGdfdHNfcGFyc2VyIGZ0c3AgT04gZnRzcC5vaWQ9ZGVwLnJlZm9iamlk CitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIGZ0c3BucyBPTiBmdHNwLnByc25hbWVzcGFjZT1mdHNw bnMub2lkCitMRUZUIEpPSU4gcGdfdHNfdGVtcGxhdGUgZnRzdCBPTiBmdHN0Lm9pZD1kZXAucmVm b2JqaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgZnRzdG5zIE9OIGZ0c3QudG1wbG5hbWVzcGFj ZT1mdHN0bnMub2lkCitMRUZUIEpPSU4gcGdfZXh0ZW5zaW9uIGV4dCBPTiBleHQub2lkPWRlcC5y ZWZvYmppZAorTEVGVCBKT0lOIHBnX3N5bm9ueW0gc3luIE9OIHN5bi5vaWQ9ZGVwLnJlZm9iamlk CitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIHN5bm5zIE9OIHN5bi5zeW5uYW1lc3BhY2U9c3lubnMu b2lkCitMRUZUIEpPSU4gcGdfcG9saWN5IHBsIE9OIHBsLm9pZD1kZXAucmVmb2JqaWQKK3t7d2hl cmVfY2xhdXNlfX0gQU5ECityZWZjbGFzc2lkIElOICggU0VMRUNUIG9pZCBGUk9NIHBnX2NsYXNz IFdIRVJFIHJlbG5hbWUgSU4KKyAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcsICdwZ19j b252ZXJzaW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScsICdwZ19u YW1lc3BhY2UnLAorICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdwZ19hdHRyZGVmJywgJ3Bn X2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9kYXRhX3dy YXBwZXInLAorICAgJ3BnX2NvbGxhdGlvbicsICdwZ190c19jb25maWcnLCAncGdfdHNfZGljdCcs ICdwZ190c19wYXJzZXInLCAncGdfdHNfdGVtcGxhdGUnLCAncGdfZXh0ZW5zaW9uJywKKyAgICdw Z19zeW5vbnltJywgJ3BnX3BvbGljeScpKQorVU5JT04KK1NFTEVDVCBESVNUSU5DVCBkZXAuZGVw dHlwZSwgZGVwLnJlZmNsYXNzaWQsIGRlcC5yZWZvYmppZCwgY2wucmVsa2luZCwgYWQuYWRiaW4s IGFkLmFkc3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxraW5kIElTIE5PVCBOVUxMIFRIRU4gQ0FT RSBXSEVOIGNsLnJlbGtpbmQgPSAncicgVEhFTiBjbC5yZWxraW5kIHx8IENPQUxFU0NFKGRlcC5y ZWZvYmpzdWJpZDo6dGV4dCwgJycpIEVMU0UgY2wucmVsa2luZCBFTkQKKyAgICBFTFNFICcnIEVO RCBBUyB0eXBlLAorCU5VTEwgQVMgb3duZXJ0YWJsZSwKKwlDQVNFIFdIRU4gY2wucmVsbmFtZSBJ UyBOT1QgTlVMTCBPUiBhdHQuYXR0bmFtZSBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbG5hbWUgfHwg Q09BTEVTQ0UoJy4nIHx8IGF0dC5hdHRuYW1lLCAnJykKKyAgICBFTFNFIGNsLnJlbG5hbWUgRU5E IEFTIHJlZm5hbWUsCisgICAgbnNjLm5zcG5hbWUgQVMgbnNwbmFtZSwgJzAnIEFTIGlzX2luaGVy aXRzLCAnMCcgQVMgaXNfaW5oZXJpdGVkCitGUk9NIHBnX2RlcGVuZCBkZXAKK0xFRlQgSk9JTiBw Z19jbGFzcyBjbCBPTiBkZXAucmVmb2JqaWQ9Y2wub2lkCitMRUZUIEpPSU4gcGdfYXR0cmlidXRl IGF0dCBPTiBkZXAucmVmb2JqaWQ9YXR0LmF0dHJlbGlkIEFORCBkZXAucmVmb2Jqc3ViaWQ9YXR0 LmF0dG51bQorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc2MgT04gY2wucmVsbmFtZXNwYWNlPW5z Yy5vaWQKK0xFRlQgSk9JTiBwZ19hdHRyZGVmIGFkIE9OIGFkLmFkcmVsaWQ9YXR0LmF0dHJlbGlk IEFORCBhZC5hZG51bT1hdHQuYXR0bnVtCitXSEVSRSBkZXAub2JqaWQgSU4gKFNFTEVDVCBvaWQg RlJPTSBwZ19yZXdyaXRlIFdIRVJFIGV2X2NsYXNzPXt7b2JqZWN0X2lkfX0pIEFORCBjbC5yZWxr aW5kIG5vdCBpbiAoJ3YnLCAnbScpCitPUkRFUiBCWSByZWZjbGFzc2lkLCByZWxraW5kCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0 ZXMvZGVwZW5kcy9wcGFzLzEwX3BsdXMvZGVwZW5kZW50cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wcGFzLzEwX3BsdXMv ZGVwZW5kZW50cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5hODhj OWU3NTUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wcGFzLzEwX3BsdXMvZGVwZW5kZW50cy5zcWwK QEAgLTAsMCArMSw4MiBAQAorU0VMRUNUIERJU1RJTkNUIGRlcC5kZXB0eXBlLCBkZXAuY2xhc3Np ZCwgY2wucmVsa2luZCwgYWQuYWRiaW4sIGFkLmFkc3JjLAorICAgIENBU0UgV0hFTiBjbC5yZWxr aW5kIElTIE5PVCBOVUxMIFRIRU4gQ0FTRSBXSEVOIGNsLnJlbGtpbmQgPSAncicgVEhFTiBjbC5y ZWxraW5kIHx8IENPQUxFU0NFKGRlcC5vYmpzdWJpZDo6dGV4dCwgJycpIEVMU0UgY2wucmVsa2lu ZCBFTkQKKyAgICAgICAgV0hFTiB0Zy5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnVHInOjp0ZXh0Cisg ICAgICAgIFdIRU4gdHkub2lkIElTIE5PVCBOVUxMIFRIRU4gQ0FTRSBXSEVOIHR5LnR5cHR5cGUg PSAnZCcgVEhFTiAnZCc6OnRleHQgRUxTRSAnVHknOjp0ZXh0IEVORAorICAgICAgICBXSEVOIG5z Lm9pZCBJUyBOT1QgTlVMTCBUSEVOIENBU0UgV0hFTiBucy5uc3BwYXJlbnQgIT0gMCBUSEVOICdQ YSc6OnRleHQgRUxTRSAnbic6OnRleHQgRU5ECisgICAgICAgIFdIRU4gcHIub2lkIElTIE5PVCBO VUxMIEFORCAocHJ0eXAudHlwbmFtZSA9ICd0cmlnZ2VyJyBPUiBwcnR5cC50eXBuYW1lID0gJ2V2 ZW50X3RyaWdnZXInKSBUSEVOICdQdCc6OnRleHQKKyAgICAgICAgV0hFTiBwci5vaWQgSVMgTk9U IE5VTEwgVEhFTiAnUGYnOjp0ZXh0CisgICAgICAgIFdIRU4gbGEub2lkIElTIE5PVCBOVUxMIFRI RU4gJ2wnOjp0ZXh0CisgICAgICAgIFdIRU4gcncub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1JsJzo6 dGV4dAorICAgICAgICBXSEVOIGNvLm9pZCBJUyBOT1QgTlVMTCBUSEVOIENBU0UgV0hFTiBjby5j b250eXBpZCA+IDAgVEhFTiAnQ2QnIEVMU0UgJ0MnOjp0ZXh0IHx8IGNvbnR5cGUgRU5ECisgICAg ICAgIFdIRU4gYWQub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0EnOjp0ZXh0CisgICAgICAgIFdIRU4g ZnMub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0ZzJzo6dGV4dAorICAgICAgICBXSEVOIGZkdy5vaWQg SVMgTk9UIE5VTEwgVEhFTiAnRncnOjp0ZXh0CisgICAgICAgIFdIRU4gZXZ0Lm9pZCBJUyBOT1Qg TlVMTCBUSEVOICdFdCc6OnRleHQKKyAgICAgICAgV0hFTiBjb2wub2lkIElTIE5PVCBOVUxMIFRI RU4gJ0NvJzo6dGV4dAorICAgICAgICBXSEVOIGZ0c2Mub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0Zj Jzo6dGV4dAorICAgICAgICBXSEVOIGZ0c3Aub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0ZwJzo6dGV4 dAorICAgICAgICBXSEVOIGZ0c2Qub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0ZkJzo6dGV4dAorICAg ICAgICBXSEVOIGZ0c3Qub2lkIElTIE5PVCBOVUxMIFRIRU4gJ0Z0Jzo6dGV4dAorICAgICAgICBX SEVOIGV4dC5vaWQgSVMgTk9UIE5VTEwgVEhFTiAnRXgnOjp0ZXh0CisgICAgICAgIFdIRU4gc3lu Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdTeSc6OnRleHQKKyAgICAgICAgV0hFTiBwbC5vaWQgSVMg Tk9UIE5VTEwgVEhFTiAnUnMnOjp0ZXh0CisgICAgICAgIFdIRU4gcHViX3JlbC5vaWQgSVMgTk9U IE5VTEwgVEhFTiAncic6OnRleHQKKyAgICBFTFNFICcnCisgICAgRU5EIEFTIHR5cGUsCisgICAg Q09BTEVTQ0UoY29jLnJlbG5hbWUsIGNscncucmVsbmFtZSkgQVMgb3duZXJ0YWJsZSwKKyAgICBD QVNFIFdIRU4gY2wucmVsbmFtZSBJUyBOT1QgTlVMTCBBTkQgYXR0LmF0dG5hbWUgSVMgTk9UIE5V TEwgVEhFTiBjbC5yZWxuYW1lIHx8IENPQUxFU0NFKCcuJyB8fCBhdHQuYXR0bmFtZSwgJycpCisg ICAgRUxTRSBDT0FMRVNDRShjbC5yZWxuYW1lLCBjby5jb25uYW1lLCBwci5wcm9uYW1lLCB0Zy50 Z25hbWUsIHR5LnR5cG5hbWUsIGxhLmxhbm5hbWUsIHJ3LnJ1bGVuYW1lLCBucy5uc3BuYW1lLAor ICAgICAgICAgICAgICAgICAgZnMuc3J2bmFtZSwgZmR3LmZkd25hbWUsIGV2dC5ldnRuYW1lLCBj b2wuY29sbG5hbWUsIGZ0c2MuY2ZnbmFtZSwgZnRzZC5kaWN0bmFtZSwgZnRzcC5wcnNuYW1lLAor ICAgICAgICAgICAgICAgICAgZnRzdC50bXBsbmFtZSwgZXh0LmV4dG5hbWUsIHN5bi5zeW5uYW1l LCBwbC5wb2xuYW1lLCBxdW90ZV9pZGVudChwdWJucy5uc3BuYW1lKXx8Jy4nfHxxdW90ZV9pZGVu dChwdWJjbC5yZWxuYW1lKQorICAgIEVORCBBUyByZWZuYW1lLAorICAgIENPQUxFU0NFKG5zYy5u c3BuYW1lLCBuc28ubnNwbmFtZSwgbnNwLm5zcG5hbWUsIG5zdC5uc3BuYW1lLCBuc3J3Lm5zcG5h bWUsIGNvbG5zLm5zcG5hbWUsIGZ0c2Nucy5uc3BuYW1lLAorICAgICAgICBmdHNkbnMubnNwbmFt ZSwgZnRzcG5zLm5zcG5hbWUsIGZ0c3Rucy5uc3BuYW1lLCBzeW5ucy5uc3BuYW1lKSBBUyBuc3Bu YW1lLAorICAgIENBU0UgV0hFTiBpbmhpdHMuaW5ocGFyZW50IElTIE5PVCBOVUxMIFRIRU4gJzEn IEVMU0UgJzAnIEVORCBBUyBpc19pbmhlcml0cywKKyAgICBDQVNFIFdIRU4gaW5oZWQuaW5ocGFy ZW50IElTIE5PVCBOVUxMIFRIRU4gJzEnIEVMU0UgJzAnIEVORCBBUyBpc19pbmhlcml0ZWQKK0ZS T00gcGdfZGVwZW5kIGRlcAorTEVGVCBKT0lOIHBnX2NsYXNzIGNsIE9OIGRlcC5vYmppZD1jbC5v aWQKK0xFRlQgSk9JTiBwZ19hdHRyaWJ1dGUgYXR0IE9OIGRlcC5vYmppZD1hdHQuYXR0cmVsaWQg QU5EIGRlcC5vYmpzdWJpZD1hdHQuYXR0bnVtCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIG5zYyBP TiBjbC5yZWxuYW1lc3BhY2U9bnNjLm9pZAorTEVGVCBKT0lOIHBnX3Byb2MgcHIgT04gZGVwLm9i amlkPXByLm9pZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBuc3AgT04gcHIucHJvbmFtZXNwYWNl PW5zcC5vaWQKK0xFRlQgSk9JTiBwZ190cmlnZ2VyIHRnIE9OIGRlcC5vYmppZD10Zy5vaWQKK0xF RlQgSk9JTiBwZ190eXBlIHR5IE9OIGRlcC5vYmppZD10eS5vaWQKK0xFRlQgSk9JTiBwZ19uYW1l c3BhY2UgbnN0IE9OIHR5LnR5cG5hbWVzcGFjZT1uc3Qub2lkCitMRUZUIEpPSU4gcGdfY29uc3Ry YWludCBjbyBPTiBkZXAub2JqaWQ9Y28ub2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY29jIE9OIGNv LmNvbnJlbGlkPWNvYy5vaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbnNvIE9OIGNvLmNvbm5h bWVzcGFjZT1uc28ub2lkCitMRUZUIEpPSU4gcGdfcmV3cml0ZSBydyBPTiBkZXAub2JqaWQ9cncu b2lkCitMRUZUIEpPSU4gcGdfY2xhc3MgY2xydyBPTiBjbHJ3Lm9pZD1ydy5ldl9jbGFzcworTEVG VCBKT0lOIHBnX25hbWVzcGFjZSBuc3J3IE9OIGNscncucmVsbmFtZXNwYWNlPW5zcncub2lkCitM RUZUIEpPSU4gcGdfbGFuZ3VhZ2UgbGEgT04gZGVwLm9iamlkPWxhLm9pZAorTEVGVCBKT0lOIHBn X25hbWVzcGFjZSBucyBPTiBkZXAub2JqaWQ9bnMub2lkCitMRUZUIEpPSU4gcGdfYXR0cmRlZiBh ZCBPTiBhZC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfZm9yZWlnbl9zZXJ2ZXIgZnMgT04g ZnMub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX2ZvcmVpZ25fZGF0YV93cmFwcGVyIGZkdyBP TiBmZHcub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX3R5cGUgcHJ0eXAgT04gcHJ0eXAub2lk ID0gcHIucHJvcmV0dHlwZQorTEVGVCBKT0lOIHBnX2luaGVyaXRzIGluaGl0cyBPTiAoaW5oaXRz LmluaHJlbGlkPWRlcC5vYmppZCkKK0xFRlQgSk9JTiBwZ19pbmhlcml0cyBpbmhlZCBPTiAoaW5o ZWQuaW5ocGFyZW50PWRlcC5vYmppZCkKK0xFRlQgSk9JTiBwZ19ldmVudF90cmlnZ2VyIGV2dCBP TiBldnQub2lkPWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX2NvbGxhdGlvbiBjb2wgT04gY29sLm9p ZD1kZXAub2JqaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgY29sbnMgT04gY29sLmNvbGxuYW1l c3BhY2U9Y29sbnMub2lkCitMRUZUIEpPSU4gcGdfdHNfY29uZmlnIGZ0c2MgT04gZnRzYy5vaWQ9 ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfbmFtZXNwYWNlIGZ0c2NucyBPTiBmdHNjLmNmZ25hbWVz cGFjZT1mdHNjbnMub2lkCitMRUZUIEpPSU4gcGdfdHNfZGljdCBmdHNkIE9OIGZ0c2Qub2lkPWRl cC5vYmppZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBmdHNkbnMgT04gZnRzZC5kaWN0bmFtZXNw YWNlPWZ0c2Rucy5vaWQKK0xFRlQgSk9JTiBwZ190c19wYXJzZXIgZnRzcCBPTiBmdHNwLm9pZD1k ZXAub2JqaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgZnRzcG5zIE9OIGZ0c3AucHJzbmFtZXNw YWNlPWZ0c3Bucy5vaWQKK0xFRlQgSk9JTiBwZ190c190ZW1wbGF0ZSBmdHN0IE9OIGZ0c3Qub2lk PWRlcC5vYmppZAorTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBmdHN0bnMgT04gZnRzdC50bXBsbmFt ZXNwYWNlPWZ0c3Rucy5vaWQKK0xFRlQgSk9JTiBwZ19leHRlbnNpb24gZXh0IE9OIGV4dC5vaWQ9 ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdfc3lub255bSBzeW4gT04gc3luLm9pZD1kZXAub2JqaWQK K0xFRlQgSk9JTiBwZ19uYW1lc3BhY2Ugc3lubnMgT04gc3luLnN5bm5hbWVzcGFjZT1zeW5ucy5v aWQKK0xFRlQgSk9JTiBwZ19wb2xpY3kgcGwgT04gcGwub2lkPWRlcC5vYmppZAorTEVGVCBKT0lO IHBnX3B1YmxpY2F0aW9uX3JlbCBwdWJfcmVsIE9OIHB1Yl9yZWwub2lkID0gZGVwLm9iamlkCitM RUZUIEpPSU4gcGdfY2xhc3MgcHViY2wgT04gcHViY2wub2lkID0gcHViX3JlbC5wcnJlbGlkCitM RUZUIEpPSU4gcGdfbmFtZXNwYWNlIHB1Ym5zIE9OIHB1Ym5zLm9pZD1wdWJjbC5yZWxuYW1lc3Bh Y2UKK3t7d2hlcmVfY2xhdXNlfX0gQU5ECitjbGFzc2lkIElOICggU0VMRUNUIG9pZCBGUk9NIHBn X2NsYXNzIFdIRVJFIHJlbG5hbWUgSU4KKyAgICgncGdfY2xhc3MnLCAncGdfY29uc3RyYWludCcs ICdwZ19jb252ZXJzaW9uJywgJ3BnX2xhbmd1YWdlJywgJ3BnX3Byb2MnLCAncGdfcmV3cml0ZScs ICdwZ19uYW1lc3BhY2UnLAorICAgJ3BnX3RyaWdnZXInLCAncGdfdHlwZScsICdwZ19hdHRyZGVm JywgJ3BnX2V2ZW50X3RyaWdnZXInLCAncGdfZm9yZWlnbl9zZXJ2ZXInLCAncGdfZm9yZWlnbl9k YXRhX3dyYXBwZXInLAorICAgJ3BnX2NvbGxhdGlvbicsICdwZ190c19jb25maWcnLCAncGdfdHNf ZGljdCcsICdwZ190c19wYXJzZXInLCAncGdfdHNfdGVtcGxhdGUnLCAncGdfZXh0ZW5zaW9uJywg J3BnX3BvbGljeScsICdwZ19zdWJzY3JpcHRpb24nLCAncGdfcHVibGljYXRpb25fcmVsJykpCitP UkRFUiBCWSBjbGFzc2lkLCBjbC5yZWxraW5kCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1wbGF0ZXMvZGVwZW5kcy9wcGFzLzExX3BsdXMv ZGVwZW5kZW50cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy90ZW1wbGF0ZXMvZGVwZW5kcy9wcGFzLzExX3BsdXMvZGVwZW5kZW50cy5zcWwKaW5kZXggYjZl MzY4NzMxLi5hOGVhMWM1M2EgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3BwYXMvMTFfcGx1cy9kZXBlbmRlbnRz LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90ZW1w bGF0ZXMvZGVwZW5kcy9wcGFzLzExX3BsdXMvZGVwZW5kZW50cy5zcWwKQEAgLTIwLDEzICsyMCwx NCBAQCBTRUxFQ1QgRElTVElOQ1QgZGVwLmRlcHR5cGUsIGRlcC5jbGFzc2lkLCBjbC5yZWxraW5k LCBhZC5hZGJpbiwgYWQuYWRzcmMsCiAgICAgICAgIFdIRU4gZXh0Lm9pZCBJUyBOT1QgTlVMTCBU SEVOICdFeCc6OnRleHQKICAgICAgICAgV0hFTiBzeW4ub2lkIElTIE5PVCBOVUxMIFRIRU4gJ1N5 Jzo6dGV4dAogICAgICAgICBXSEVOIHBsLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdScyc6OnRleHQK KyAgICAgICAgV0hFTiBwdWJfcmVsLm9pZCBJUyBOT1QgTlVMTCBUSEVOICdyJzo6dGV4dAogICAg IEVMU0UgJycKICAgICBFTkQgQVMgdHlwZSwKICAgICBDT0FMRVNDRShjb2MucmVsbmFtZSwgY2xy dy5yZWxuYW1lKSBBUyBvd25lcnRhYmxlLAogICAgIENBU0UgV0hFTiBjbC5yZWxuYW1lIElTIE5P VCBOVUxMIEFORCBhdHQuYXR0bmFtZSBJUyBOT1QgTlVMTCBUSEVOIGNsLnJlbG5hbWUgfHwgQ09B TEVTQ0UoJy4nIHx8IGF0dC5hdHRuYW1lLCAnJykKICAgICBFTFNFIENPQUxFU0NFKGNsLnJlbG5h bWUsIGNvLmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFtZSwgdHkudHlwbmFtZSwgbGEubGFu bmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsCiAgICAgICAgICAgICAgICAgICBmcy5zcnZu YW1lLCBmZHcuZmR3bmFtZSwgZXZ0LmV2dG5hbWUsIGNvbC5jb2xsbmFtZSwgZnRzYy5jZmduYW1l LCBmdHNkLmRpY3RuYW1lLCBmdHNwLnByc25hbWUsCi0gICAgICAgICAgICAgICAgICBmdHN0LnRt cGxuYW1lLCBleHQuZXh0bmFtZSwgc3luLnN5bm5hbWUsIHBsLnBvbG5hbWUpCisgICAgICAgICAg ICAgICAgICBmdHN0LnRtcGxuYW1lLCBleHQuZXh0bmFtZSwgc3luLnN5bm5hbWUsIHBsLnBvbG5h bWUsIHF1b3RlX2lkZW50KHB1Ym5zLm5zcG5hbWUpfHwnLid8fHF1b3RlX2lkZW50KHB1YmNsLnJl bG5hbWUpCiAgICAgRU5EIEFTIHJlZm5hbWUsCiAgICAgQ09BTEVTQ0UobnNjLm5zcG5hbWUsIG5z by5uc3BuYW1lLCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUsIG5zcncubnNwbmFtZSwgY29sbnMu bnNwbmFtZSwgZnRzY25zLm5zcG5hbWUsCiAgICAgICAgIGZ0c2Rucy5uc3BuYW1lLCBmdHNwbnMu bnNwbmFtZSwgZnRzdG5zLm5zcG5hbWUsIHN5bm5zLm5zcG5hbWUpIEFTIG5zcG5hbWUsCkBAIC03 MCwxMCArNzEsMTIgQEAgTEVGVCBKT0lOIHBnX2V4dGVuc2lvbiBleHQgT04gZXh0Lm9pZD1kZXAu b2JqaWQKIExFRlQgSk9JTiBwZ19zeW5vbnltIHN5biBPTiBzeW4ub2lkPWRlcC5vYmppZAogTEVG VCBKT0lOIHBnX25hbWVzcGFjZSBzeW5ucyBPTiBzeW4uc3lubmFtZXNwYWNlPXN5bm5zLm9pZAog TEVGVCBKT0lOIHBnX3BvbGljeSBwbCBPTiBwbC5vaWQ9ZGVwLm9iamlkCitMRUZUIEpPSU4gcGdf cHVibGljYXRpb25fcmVsIHB1Yl9yZWwgT04gcHViX3JlbC5vaWQgPSBkZXAub2JqaWQKK0xFRlQg Sk9JTiBwZ19jbGFzcyBwdWJjbCBPTiBwdWJjbC5vaWQgPSBwdWJfcmVsLnBycmVsaWQKK0xFRlQg Sk9JTiBwZ19uYW1lc3BhY2UgcHVibnMgT04gcHVibnMub2lkPXB1YmNsLnJlbG5hbWVzcGFjZQog e3t3aGVyZV9jbGF1c2V9fSBBTkQKIGNsYXNzaWQgSU4gKCBTRUxFQ1Qgb2lkIEZST00gcGdfY2xh c3MgV0hFUkUgcmVsbmFtZSBJTgogICAgKCdwZ19jbGFzcycsICdwZ19jb25zdHJhaW50JywgJ3Bn X2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2UnLCAncGdfcHJvYycsICdwZ19yZXdyaXRlJywgJ3Bn X25hbWVzcGFjZScsCiAgICAncGdfdHJpZ2dlcicsICdwZ190eXBlJywgJ3BnX2F0dHJkZWYnLCAn cGdfZXZlbnRfdHJpZ2dlcicsICdwZ19mb3JlaWduX3NlcnZlcicsICdwZ19mb3JlaWduX2RhdGFf d3JhcHBlcicsCi0gICAncGdfY29sbGF0aW9uJywgJ3BnX3RzX2NvbmZpZycsICdwZ190c19kaWN0 JywgJ3BnX3RzX3BhcnNlcicsICdwZ190c190ZW1wbGF0ZScsICdwZ19leHRlbnNpb24nLAotICAg J3BnX3N5bm9ueW0nLCAncGdfcG9saWN5JykpCisgICAncGdfY29sbGF0aW9uJywgJ3BnX3RzX2Nv bmZpZycsICdwZ190c19kaWN0JywgJ3BnX3RzX3BhcnNlcicsICdwZ190c190ZW1wbGF0ZScsICdw Z19leHRlbnNpb24nLCAncGdfcG9saWN5JywgJ3BnX3N1YnNjcmlwdGlvbicsICdwZ19wdWJsaWNh dGlvbl9yZWwnKSkKIE9SREVSIEJZIGNsYXNzaWQsIGNsLnJlbGtpbmQKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRz L3BwYXMvMTJfcGx1cy9kZXBlbmRlbnRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3BwYXMvMTJfcGx1cy9kZXBlbmRlbnRz LnNxbAppbmRleCBjNjc4MTgyN2YuLmNmOGE3YWI4OCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGVtcGxhdGVzL2RlcGVuZHMvcHBhcy8xMl9w bHVzL2RlcGVuZGVudHMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RlbXBsYXRlcy9kZXBlbmRzL3BwYXMvMTJfcGx1cy9kZXBlbmRlbnRzLnNxbApA QCAtMjAsMTMgKzIwLDE0IEBAIFNFTEVDVCBESVNUSU5DVCBkZXAuZGVwdHlwZSwgZGVwLmNsYXNz aWQsIGNsLnJlbGtpbmQsIGFkLmFkYmluLCBwZ19nZXRfZXhwcihhZC5hCiAgICAgICAgIFdIRU4g ZXh0Lm9pZCBJUyBOT1QgTlVMTCBUSEVOICdFeCc6OnRleHQKICAgICAgICAgV0hFTiBzeW4ub2lk IElTIE5PVCBOVUxMIFRIRU4gJ1N5Jzo6dGV4dAogICAgICAgICBXSEVOIHBsLm9pZCBJUyBOT1Qg TlVMTCBUSEVOICdScyc6OnRleHQKKyAgICAgICAgV0hFTiBwdWJfcmVsLm9pZCBJUyBOT1QgTlVM TCBUSEVOICdyJzo6dGV4dAogICAgIEVMU0UgJycKICAgICBFTkQgQVMgdHlwZSwKICAgICBDT0FM RVNDRShjb2MucmVsbmFtZSwgY2xydy5yZWxuYW1lKSBBUyBvd25lcnRhYmxlLAogICAgIENBU0Ug V0hFTiBjbC5yZWxuYW1lIElTIE5PVCBOVUxMIEFORCBhdHQuYXR0bmFtZSBJUyBOT1QgTlVMTCBU SEVOIGNsLnJlbG5hbWUgfHwgQ09BTEVTQ0UoJy4nIHx8IGF0dC5hdHRuYW1lLCAnJykKICAgICBF TFNFIENPQUxFU0NFKGNsLnJlbG5hbWUsIGNvLmNvbm5hbWUsIHByLnByb25hbWUsIHRnLnRnbmFt ZSwgdHkudHlwbmFtZSwgbGEubGFubmFtZSwgcncucnVsZW5hbWUsIG5zLm5zcG5hbWUsCiAgICAg ICAgICAgICAgICAgICBmcy5zcnZuYW1lLCBmZHcuZmR3bmFtZSwgZXZ0LmV2dG5hbWUsIGNvbC5j b2xsbmFtZSwgZnRzYy5jZmduYW1lLCBmdHNkLmRpY3RuYW1lLCBmdHNwLnByc25hbWUsCi0gICAg ICAgICAgICAgICAgICBmdHN0LnRtcGxuYW1lLCBleHQuZXh0bmFtZSwgc3luLnN5bm5hbWUsIHBs LnBvbG5hbWUpCisgICAgICAgICAgICAgICAgICBmdHN0LnRtcGxuYW1lLCBleHQuZXh0bmFtZSwg c3luLnN5bm5hbWUsIHBsLnBvbG5hbWUsIHF1b3RlX2lkZW50KHB1Ym5zLm5zcG5hbWUpfHwnLid8 fHF1b3RlX2lkZW50KHB1YmNsLnJlbG5hbWUpCiAgICAgRU5EIEFTIHJlZm5hbWUsCiAgICAgQ09B TEVTQ0UobnNjLm5zcG5hbWUsIG5zby5uc3BuYW1lLCBuc3AubnNwbmFtZSwgbnN0Lm5zcG5hbWUs IG5zcncubnNwbmFtZSwgY29sbnMubnNwbmFtZSwgZnRzY25zLm5zcG5hbWUsCiAgICAgICAgIGZ0 c2Rucy5uc3BuYW1lLCBmdHNwbnMubnNwbmFtZSwgZnRzdG5zLm5zcG5hbWUsIHN5bm5zLm5zcG5h bWUpIEFTIG5zcG5hbWUsCkBAIC03MCwxMCArNzEsMTMgQEAgTEVGVCBKT0lOIHBnX2V4dGVuc2lv biBleHQgT04gZXh0Lm9pZD1kZXAub2JqaWQKIExFRlQgSk9JTiBwZ19zeW5vbnltIHN5biBPTiBz eW4ub2lkPWRlcC5vYmppZAogTEVGVCBKT0lOIHBnX25hbWVzcGFjZSBzeW5ucyBPTiBzeW4uc3lu bmFtZXNwYWNlPXN5bm5zLm9pZAogTEVGVCBKT0lOIHBnX3BvbGljeSBwbCBPTiBwbC5vaWQ9ZGVw Lm9iamlkCitMRUZUIEpPSU4gcGdfcHVibGljYXRpb25fcmVsIHB1Yl9yZWwgT04gcHViX3JlbC5v aWQgPSBkZXAub2JqaWQKK0xFRlQgSk9JTiBwZ19jbGFzcyBwdWJjbCBPTiBwdWJjbC5vaWQgPSBw dWJfcmVsLnBycmVsaWQKK0xFRlQgSk9JTiBwZ19uYW1lc3BhY2UgcHVibnMgT04gcHVibnMub2lk PXB1YmNsLnJlbG5hbWVzcGFjZQoge3t3aGVyZV9jbGF1c2V9fSBBTkQKIGNsYXNzaWQgSU4gKCBT RUxFQ1Qgb2lkIEZST00gcGdfY2xhc3MgV0hFUkUgcmVsbmFtZSBJTgogICAgKCdwZ19jbGFzcycs ICdwZ19jb25zdHJhaW50JywgJ3BnX2NvbnZlcnNpb24nLCAncGdfbGFuZ3VhZ2UnLCAncGdfcHJv YycsICdwZ19yZXdyaXRlJywgJ3BnX25hbWVzcGFjZScsCiAgICAncGdfdHJpZ2dlcicsICdwZ190 eXBlJywgJ3BnX2F0dHJkZWYnLCAncGdfZXZlbnRfdHJpZ2dlcicsICdwZ19mb3JlaWduX3NlcnZl cicsICdwZ19mb3JlaWduX2RhdGFfd3JhcHBlcicsCiAgICAncGdfY29sbGF0aW9uJywgJ3BnX3Rz X2NvbmZpZycsICdwZ190c19kaWN0JywgJ3BnX3RzX3BhcnNlcicsICdwZ190c190ZW1wbGF0ZScs ICdwZ19leHRlbnNpb24nLAotICAgJ3BnX3N5bm9ueW0nLCAncGdfcG9saWN5JykpCisgICAncGdf c3lub255bScsICdwZ19wb2xpY3knLCAncGdfc3Vic2NyaXB0aW9uJywgJ3BnX3B1YmxpY2F0aW9u X3JlbCcpKQogT1JERVIgQlkgY2xhc3NpZCwgY2wucmVsa2luZApkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkKaW5k ZXggMjBmNDkxNWI0Li5kNjFmOGNlOWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv dXRpbHMucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weQpAQCAtNjM4LDcgKzYz OCw5IEBAIGNsYXNzIFBHQ2hpbGROb2RlVmlldyhOb2RlVmlldyk6CiAgICAgICAgICAgICAgICAg IyBpZiB0eXBlIGlzIHByZXNlbnQgaW4gdGhlIHR5cGVzIGRpY3Rpb25hcnksIGJ1dCBpdCdzCiAg ICAgICAgICAgICAgICAgIyB2YWx1ZSBpcyBOb25lIHRoZW4gaXQgcmVxdWlyZXMgc3BlY2lhbCBo YW5kbGluZy4KICAgICAgICAgICAgICAgICBpZiB0eXBlX3N0clswXSA9PSAncic6Ci0gICAgICAg ICAgICAgICAgICAgIGlmICh0eXBlX3N0clsxXS5pc2RpZ2l0KCkgYW5kIGludCh0eXBlX3N0clsx XSkgPiAwKSBvciBcCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbih0eXBlX3N0cikgPT0gMToK KyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfbmFtZSA9ICd0YWJsZScKKyAgICAgICAgICAg ICAgICAgICAgZWxpZiAodHlwZV9zdHJbMV0uaXNkaWdpdCgpIGFuZCBpbnQodHlwZV9zdHJbMV0p ID4gMCkgb3IgXAogICAgICAgICAgICAgICAgICAgICAgICAgKGxlbih0eXBlX3N0cikgPiAyIGFu ZCB0eXBlX3N0clsyXS5pc2RpZ2l0KCkgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW50 KHR5cGVfc3RyWzJdKSA+IDApOgogICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lID0g J2NvbHVtbicKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9tb2RlbF92YWxpZGF0aW9uLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGlj L2pzL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL21vZGVsX3ZhbGlkYXRpb24uanMKaW5k ZXggNTFiMTEwODQ3Li5kNTQyYWEwNzIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9tb2RlbF92YWxpZGF0aW9uLmpzCisrKyBi L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9tb2Rl bF92YWxpZGF0aW9uLmpzCkBAIC0xOSw3ICsxOSw4IEBAIGV4cG9ydCBjbGFzcyBNb2RlbFZhbGlk YXRpb24gewogICB9CiAKICAgdmFsaWRhdGUoKSB7Ci0gICAgY29uc3Qgc2VydmljZUlkID0gdGhp cy5tb2RlbC5nZXQoJ3NlcnZpY2UnKTsKKyAgICBjb25zdCBzZXJ2aWNlSWQgPSB0aGlzLm1vZGVs LmdldCgnc2VydmljZScpLAorICAgICAgcHViID0gdGhpcy5tb2RlbC5nZXQoJ3B1YicpOwogCiAg ICAgaWYgKCF0aGlzLm1vZGVsLmlzTmV3KCkgJiYgJ2lkJyBpbiB0aGlzLm1vZGVsLnNlc3NBdHRy cykgewogICAgICAgdGhpcy5lcnJbJ2lkJ10gPSBnZXR0ZXh0KCdUaGUgSUQgY2Fubm90IGJlIGNo YW5nZWQuJyk7CkBAIC0zOCw4ICszOSwxNCBAQCBleHBvcnQgY2xhc3MgTW9kZWxWYWxpZGF0aW9u IHsKICAgICAgIHRoaXMuY2hlY2tGb3JFbXB0eSgnZGInLCBnZXR0ZXh0KCdNYWludGVuYW5jZSBk YXRhYmFzZSBtdXN0IGJlIHNwZWNpZmllZC4nKSk7CiAgICAgICB0aGlzLmNoZWNrRm9yRW1wdHko J3VzZXJuYW1lJywgZ2V0dGV4dCgnVXNlcm5hbWUgbXVzdCBiZSBzcGVjaWZpZWQuJykpOwogICAg ICAgdGhpcy5jaGVja0ZvckVtcHR5KCdwb3J0JywgZ2V0dGV4dCgnUG9ydCBtdXN0IGJlIHNwZWNp ZmllZC4nKSk7CisgICAgICBpZighXy5pc1VuZGVmaW5lZChwdWIpICYmIHB1Yi5sZW5ndGggPT0g MCl7CisgICAgICAgIHRoaXMuY2hlY2tGb3JFbXB0eSgncHViJywgZ2V0dGV4dCgnUHVibGljYXRp b24gbXVzdCBiZSBzcGVjaWZpZWQuJykpOworICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICB0 aGlzLmNoZWNrRm9yRW1wdHkoJ2RiJywgZ2V0dGV4dCgnTWFpbnRlbmFuY2UgZGF0YWJhc2UgbXVz dCBiZSBzcGVjaWZpZWQuJykpOworICAgICAgaWYoIV8uaXNVbmRlZmluZWQocHViKSAmJiBwdWIu bGVuZ3RoID09IDApeworICAgICAgICB0aGlzLmNoZWNrRm9yRW1wdHkoJ3B1YicsIGdldHRleHQo J1B1YmxpY2F0aW9uIG11c3QgYmUgc3BlY2lmaWVkLicpKTsKKyAgICAgIH0KICAgICAgIHRoaXMu Y2xlYXJIb3N0QWRkcmVzc0FuZERiRXJyb3JzKCk7CiAgICAgfQogCkBAIC04MCw4ICs4NywxNyBA QCBleHBvcnQgY2xhc3MgTW9kZWxWYWxpZGF0aW9uIHsKICAgfQogCiAgIGNoZWNrSG9zdEFuZEhv c3RBZGRyZXNzKCkgewotICAgIGNvbnN0IHRyYW5zbGF0ZWRTdHIgPSBnZXR0ZXh0KCdFaXRoZXIg SG9zdCBuYW1lLCBBZGRyZXNzIG9yIFNlcnZpY2UgbXVzdCAnICsKKworICAgIGxldCBwdWIgPSB0 aGlzLm1vZGVsLmdldCgncHViJyksCisgICAgICBlcnJtc2c7CisgICAgaWYoIV8uaXNVbmRlZmlu ZWQocHViKSAmJiBwdWIubGVuZ3RoID09IDApeworICAgICAgZXJybXNnID0gZ2V0dGV4dCgnSG9z dCBuYW1lLCBBZGRyZXNzIG11c3QgJyArCiAgICAgICAnYmUgc3BlY2lmaWVkLicpOworICAgIH1l bHNleworICAgICAgZXJybXNnID0gZ2V0dGV4dCgnRWl0aGVyIEhvc3QgbmFtZSwgQWRkcmVzcyBv ciBTZXJ2aWNlIG11c3QgJyArCisgICAgICAnYmUgc3BlY2lmaWVkLicpOworICAgIH0KKyAgICBj b25zdCB0cmFuc2xhdGVkU3RyID0gZXJybXNnOwogICAgIGlmICh0aGlzLmNoZWNrRm9yRW1wdHko J2hvc3QnLCB0cmFuc2xhdGVkU3RyKSAmJgogICAgICAgdGhpcy5jaGVja0ZvckVtcHR5KCdob3N0 YWRkcicsIHRyYW5zbGF0ZWRTdHIpKSB7CiAgICAgICB0aGlzLmVycm1zZyA9IHRoaXMuZXJybXNn IHx8IHRyYW5zbGF0ZWRTdHI7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hf b2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzEwX3BsdXMvc2VhcmNoLnNx bCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2Jq ZWN0cy9zcWwvcGcvMTBfcGx1cy9zZWFyY2guc3FsCmluZGV4IGFjMjE1ZWVmZC4uMzgyOGQ5MDY4 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMv c2VhcmNoX29iamVjdHMvc3FsL3BnLzEwX3BsdXMvc2VhcmNoLnNxbAorKysgYi93ZWIvcGdhZG1p bi90b29scy9zZWFyY2hfb2JqZWN0cy90ZW1wbGF0ZXMvc2VhcmNoX29iamVjdHMvc3FsL3BnLzEw X3BsdXMvc2VhcmNoLnNxbApAQCAtMzIwLDYgKzMyMCwyNCBAQCBGUk9NICgKIHslIGlmIGFsbF9v YmogJX0KICAgICBVTklPTgogeyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlw ZSBpbiBbJ3B1YmxpY2F0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3B1YmxpY2F0aW9uJzo6dGV4dCBB UyBvYmpfdHlwZSwgcHVibmFtZSBBUyBvYmpfbmFtZSwgJzpwdWJsaWNhdGlvbi4nfHxwdWIub2lk fHwnOi8nIHx8IHB1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAor ICAgIHt7IHNob3dfbm9kZV9wcmVmc1sncHVibGljYXRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5V TEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfcHVibGljYXRpb24gcHViCit7JSBlbmRpZiAl fQoreyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxf b2JqIG9yIG9ial90eXBlIGluIFsnc3Vic2NyaXB0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3N1YnNj cmlwdGlvbic6OnRleHQgQVMgb2JqX3R5cGUsIHN1Ym5hbWUgQVMgb2JqX25hbWUsICc6c3Vic2Ny aXB0aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgc3VibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQg QVMgc2NoZW1hX25hbWUsCisgICAge3sgc2hvd19ub2RlX3ByZWZzWydzdWJzY3JpcHRpb24nXSB9 fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfc3Vic2NyaXB0 aW9uIHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5k aWYgJX0KIHslIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydsYW5ndWFnZSddICV9CiAgICAg U0VMRUNUICdsYW5ndWFnZSc6OnRleHQgQVMgb2JqX3R5cGUsIGxhbm5hbWUgQVMgb2JqX25hbWUs ICc6bGFuZ3VhZ2UuJ3x8bGFuLm9pZHx8JzovJyB8fCBsYW5uYW1lIEFTIG9ial9wYXRoLCAnJzo6 dGV4dCBBUyBzY2hlbWFfbmFtZSwKICAgICB7eyBzaG93X25vZGVfcHJlZnNbJ2xhbmd1YWdlJ10g fX0gQVMgc2hvd19ub2RlLCBOVUxMIEFTIG90aGVyX2luZm8KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcv MTFfcGx1cy9zZWFyY2guc3FsIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVt cGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wZy8xMV9wbHVzL3NlYXJjaC5zcWwKaW5kZXggNGUw N2ZmMDc5Li5lODYzMWYxMzYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9v YmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcGcvMTFfcGx1cy9zZWFyY2guc3Fs CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hf b2JqZWN0cy9zcWwvcGcvMTFfcGx1cy9zZWFyY2guc3FsCkBAIC0zMzcsNiArMzM3LDI0IEBAIEZS T00gKAogeyUgaWYgYWxsX29iaiAlfQogICAgIFVOSU9OCiB7JSBlbmRpZiAlfQorCit7JSBpZiBh bGxfb2JqIG9yIG9ial90eXBlIGluIFsncHVibGljYXRpb24nXSAlfQorICAgIFNFTEVDVCAncHVi bGljYXRpb24nOjp0ZXh0IEFTIG9ial90eXBlLCBwdWJuYW1lIEFTIG9ial9uYW1lLCAnOnB1Ymxp Y2F0aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgcHVibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQg QVMgc2NoZW1hX25hbWUsCisgICAge3sgc2hvd19ub2RlX3ByZWZzWydwdWJsaWNhdGlvbiddIH19 IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCisgICAgRlJPTSBwZ19wdWJsaWNhdGlv biBwdWIKK3slIGVuZGlmICV9Cit7JSBpZiBhbGxfb2JqICV9CisgICAgVU5JT04KK3slIGVuZGlm ICV9CisKK3slIGlmIGFsbF9vYmogb3Igb2JqX3R5cGUgaW4gWydzdWJzY3JpcHRpb24nXSAlfQor ICAgIFNFTEVDVCAnc3Vic2NyaXB0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgc3VibmFtZSBBUyBv YmpfbmFtZSwgJzpzdWJzY3JpcHRpb24uJ3x8cHViLm9pZHx8JzovJyB8fCBzdWJuYW1lIEFTIG9i al9wYXRoLCAnJzo6dGV4dCBBUyBzY2hlbWFfbmFtZSwKKyAgICB7eyBzaG93X25vZGVfcHJlZnNb J3N1YnNjcmlwdGlvbiddIH19IEFTIHNob3dfbm9kZSwgTlVMTCBBUyBvdGhlcl9pbmZvCisgICAg RlJPTSBwZ19zdWJzY3JpcHRpb24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29iaiAlfQor ICAgIFVOSU9OCit7JSBlbmRpZiAlfQogeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ2xh bmd1YWdlJ10gJX0KICAgICBTRUxFQ1QgJ2xhbmd1YWdlJzo6dGV4dCBBUyBvYmpfdHlwZSwgbGFu bmFtZSBBUyBvYmpfbmFtZSwgJzpsYW5ndWFnZS4nfHxsYW4ub2lkfHwnOi8nIHx8IGxhbm5hbWUg QVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAogICAgIHt7IHNob3dfbm9kZV9w cmVmc1snbGFuZ3VhZ2UnXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJj aF9vYmplY3RzL3NxbC9wcGFzLzEwX3BsdXMvc2VhcmNoLnNxbCBiL3dlYi9wZ2FkbWluL3Rvb2xz L3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMF9wbHVz L3NlYXJjaC5zcWwKaW5kZXggYTQxYTM3NWViLi40ZWQ3MTU0NjMgMTAwNjQ0Ci0tLSBhL3dlYi9w Z2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwv cHBhcy8xMF9wbHVzL3NlYXJjaC5zcWwKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29i amVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEwX3BsdXMvc2VhcmNoLnNx bApAQCAtMzYxLDYgKzM2MSwyNSBAQCBGUk9NICgKIHslIGlmIGFsbF9vYmogJX0KICAgICBVTklP TgogeyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ3B1YmxpY2F0 aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3B1YmxpY2F0aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgcHVi bmFtZSBBUyBvYmpfbmFtZSwgJzpwdWJsaWNhdGlvbi4nfHxwdWIub2lkfHwnOi8nIHx8IHB1Ym5h bWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAorICAgIHt7IHNob3dfbm9k ZV9wcmVmc1sncHVibGljYXRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5m bworICAgIEZST00gcGdfcHVibGljYXRpb24gcHViCit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29i aiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQorCit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBl IGluIFsnc3Vic2NyaXB0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3N1YnNjcmlwdGlvbic6OnRleHQg QVMgb2JqX3R5cGUsIHN1Ym5hbWUgQVMgb2JqX25hbWUsICc6c3Vic2NyaXB0aW9uLid8fHB1Yi5v aWR8fCc6LycgfHwgc3VibmFtZSBBUyBvYmpfcGF0aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUs CisgICAge3sgc2hvd19ub2RlX3ByZWZzWydzdWJzY3JpcHRpb24nXSB9fSBBUyBzaG93X25vZGUs IE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIHB1YgoreyUgZW5k aWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBVTklPTgoreyUgZW5kaWYgJX0KKwogeyUgaWYg YWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ2xhbmd1YWdlJ10gJX0KICAgICBTRUxFQ1QgJ2xhbmd1 YWdlJzo6dGV4dCBBUyBvYmpfdHlwZSwgbGFubmFtZSBBUyBvYmpfbmFtZSwgJzpsYW5ndWFnZS4n fHxsYW4ub2lkfHwnOi8nIHx8IGxhbm5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVt YV9uYW1lLAogICAgIHt7IHNob3dfbm9kZV9wcmVmc1snbGFuZ3VhZ2UnXSB9fSBBUyBzaG93X25v ZGUsIE5VTEwgQVMgb3RoZXJfaW5mbwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2Vh cmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3RzL3NxbC9wcGFzLzEyX3BsdXMvc2Vh cmNoLnNxbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3RlbXBsYXRlcy9zZWFy Y2hfb2JqZWN0cy9zcWwvcHBhcy8xMl9wbHVzL3NlYXJjaC5zcWwKaW5kZXggNzk2ZmMzMGI4Li4z NjMzOTc0ZWMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NlYXJjaF9vYmplY3RzL3Rl bXBsYXRlcy9zZWFyY2hfb2JqZWN0cy9zcWwvcHBhcy8xMl9wbHVzL3NlYXJjaC5zcWwKKysrIGIv d2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdGVtcGxhdGVzL3NlYXJjaF9vYmplY3Rz L3NxbC9wcGFzLzEyX3BsdXMvc2VhcmNoLnNxbApAQCAtMzY4LDYgKzM2OCwyNSBAQCBGUk9NICgK IHslIGlmIGFsbF9vYmogJX0KICAgICBVTklPTgogeyUgZW5kaWYgJX0KKworeyUgaWYgYWxsX29i aiBvciBvYmpfdHlwZSBpbiBbJ3B1YmxpY2F0aW9uJ10gJX0KKyAgICBTRUxFQ1QgJ3B1YmxpY2F0 aW9uJzo6dGV4dCBBUyBvYmpfdHlwZSwgcHVibmFtZSBBUyBvYmpfbmFtZSwgJzpwdWJsaWNhdGlv bi4nfHxwdWIub2lkfHwnOi8nIHx8IHB1Ym5hbWUgQVMgb2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNj aGVtYV9uYW1lLAorICAgIHt7IHNob3dfbm9kZV9wcmVmc1sncHVibGljYXRpb24nXSB9fSBBUyBz aG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00gcGdfcHVibGljYXRpb24gcHVi Cit7JSBlbmRpZiAlfQoreyUgaWYgYWxsX29iaiAlfQorICAgIFVOSU9OCit7JSBlbmRpZiAlfQor Cit7JSBpZiBhbGxfb2JqIG9yIG9ial90eXBlIGluIFsnc3Vic2NyaXB0aW9uJ10gJX0KKyAgICBT RUxFQ1QgJ3N1YnNjcmlwdGlvbic6OnRleHQgQVMgb2JqX3R5cGUsIHN1Ym5hbWUgQVMgb2JqX25h bWUsICc6c3Vic2NyaXB0aW9uLid8fHB1Yi5vaWR8fCc6LycgfHwgc3VibmFtZSBBUyBvYmpfcGF0 aCwgJyc6OnRleHQgQVMgc2NoZW1hX25hbWUsCisgICAge3sgc2hvd19ub2RlX3ByZWZzWydzdWJz Y3JpcHRpb24nXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbworICAgIEZST00g cGdfc3Vic2NyaXB0aW9uIHB1YgoreyUgZW5kaWYgJX0KK3slIGlmIGFsbF9vYmogJX0KKyAgICBV TklPTgoreyUgZW5kaWYgJX0KKwogeyUgaWYgYWxsX29iaiBvciBvYmpfdHlwZSBpbiBbJ2xhbmd1 YWdlJ10gJX0KICAgICBTRUxFQ1QgJ2xhbmd1YWdlJzo6dGV4dCBBUyBvYmpfdHlwZSwgbGFubmFt ZSBBUyBvYmpfbmFtZSwgJzpsYW5ndWFnZS4nfHxsYW4ub2lkfHwnOi8nIHx8IGxhbm5hbWUgQVMg b2JqX3BhdGgsICcnOjp0ZXh0IEFTIHNjaGVtYV9uYW1lLAogICAgIHt7IHNob3dfbm9kZV9wcmVm c1snbGFuZ3VhZ2UnXSB9fSBBUyBzaG93X25vZGUsIE5VTEwgQVMgb3RoZXJfaW5mbwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdXRpbHMucHkgYi93ZWIvcGdh ZG1pbi90b29scy9zZWFyY2hfb2JqZWN0cy91dGlscy5weQppbmRleCBjZTVlY2UyOGQuLmE3ZDU1 Njg1MyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdXRpbHMu cHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc2VhcmNoX29iamVjdHMvdXRpbHMucHkKQEAgLTQz LDcgKzQzLDggQEAgY2xhc3MgU2VhcmNoT2JqZWN0c0hlbHBlcjoKICAgICAgICAgICAgICd0cmln Z2VyX2Z1bmN0aW9uJywgJ2Z0c190ZW1wbGF0ZScsICdjb2xsYXRpb24nLCAndmlldycsICdtdmll dycsCiAgICAgICAgICAgICAnZnRzX2NvbmZpZ3VyYXRpb24nLCAnZXh0ZW5zaW9uJywgJ2xhbmd1 YWdlJywKICAgICAgICAgICAgICdldmVudF90cmlnZ2VyJywgJ2ZvcmVpZ25fc2VydmVyJywgJ3Vz ZXJfbWFwcGluZycsCi0gICAgICAgICAgICAnZm9yZWlnbl9kYXRhX3dyYXBwZXInLCAncm93X3Nl Y3VyaXR5X3BvbGljeScKKyAgICAgICAgICAgICdmb3JlaWduX2RhdGFfd3JhcHBlcicsICdyb3df c2VjdXJpdHlfcG9saWN5JywKKyAgICAgICAgICAgICdwdWJsaWNhdGlvbicsICdzdWJzY3JpcHRp b24nCiAgICAgICAgIF0gaWYgbm9kZV90eXBlcyBpcyBOb25lIGVsc2Ugbm9kZV90eXBlcwogCiAg ICAgQHByb3BlcnR5CmRpZmYgLS1naXQgYS93ZWIvd2VicGFjay5jb25maWcuanMgYi93ZWIvd2Vi cGFjay5jb25maWcuanMKaW5kZXggYzIyNWIzMWI4Li45NTdhODBkNGMgMTAwNjQ0Ci0tLSBhL3dl Yi93ZWJwYWNrLmNvbmZpZy5qcworKysgYi93ZWIvd2VicGFjay5jb25maWcuanMKQEAgLTQzMyw2 ICs0MzMsOCBAQCBtb2R1bGUuZXhwb3J0cyA9IFt7CiAgICAgICAgICcscGdhZG1pbi5ub2RlLmRh dGFiYXNlJyArCiAgICAgICAgICcscGdhZG1pbi5ub2RlLnJvbGUnICsKICAgICAgICAgJyxwZ2Fk bWluLm5vZGUuY2FzdCcgKworICAgICAgICAnLHBnYWRtaW4ubm9kZS5wdWJsaWNhdGlvbicgKwor ICAgICAgICAnLHBnYWRtaW4ubm9kZS5zdWJzY3JpcHRpb24nICsKICAgICAgICAgJyxwZ2FkbWlu Lm5vZGUudGFibGVzcGFjZScgKwogICAgICAgICAnLHBnYWRtaW4ubm9kZS5yZXNvdXJjZV9ncm91 cCcgKwogICAgICAgICAnLHBnYWRtaW4ubm9kZS5ldmVudF90cmlnZ2VyJyArCmRpZmYgLS1naXQg YS93ZWIvd2VicGFjay5zaGltLmpzIGIvd2ViL3dlYnBhY2suc2hpbS5qcwppbmRleCA3ZDI1YTJk NTYuLjVjZWY2ZDJkYyAxMDA2NDQKLS0tIGEvd2ViL3dlYnBhY2suc2hpbS5qcworKysgYi93ZWIv d2VicGFjay5zaGltLmpzCkBAIC0yMDYsNiArMjA2LDggQEAgdmFyIHdlYnBhY2tTaGltQ29uZmln ID0gewogICAgICdwZ2FkbWluLmhlbHAnOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWlu L2hlbHAvc3RhdGljL2pzL2hlbHAnKSwKICAgICAncGdhZG1pbi5taXNjLmV4cGxhaW4nOiBwYXRo LmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL21pc2Mvc3RhdGljL2V4cGxhaW4vanMvZXhwbGFp bicpLAogICAgICdwZ2FkbWluLm5vZGUuY2FzdCc6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL3N0YXRp Yy9qcy9jYXN0JyksCisgICAgJ3BnYWRtaW4ubm9kZS5wdWJsaWNhdGlvbic6IHBhdGguam9pbihf X2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3B1YmxpY2F0aW9ucy9zdGF0aWMvanMvcHVibGljYXRpb24nKSwKKyAgICAncGdhZG1pbi5u b2RlLnN1YnNjcmlwdGlvbic6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N1YnNjcmlwdGlvbnMvc3RhdGljL2pz L3N1YnNjcmlwdGlvbicpLAogICAgICdwZ2FkbWluLm5vZGUuY2F0YWxvZyc6IHBhdGguam9pbihf X2Rpcm5hbWUsICcuL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvc3RhdGljL2pzL2NhdGFsb2cnKSwKICAgICAncGdhZG1pbi5ub2RlLmNhdGFs b2dfb2JqZWN0JzogcGF0aC5qb2luKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9nX29iamVjdHMvc3RhdGlj L2pzL2NhdGFsb2dfb2JqZWN0JyksCiAgICAgJ3BnYWRtaW4ubm9kZS5jYXRhbG9nX29iamVjdF9j b2x1bW4nOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dfb2JqZWN0cy9jb2x1bW5zL3N0 YXRpYy9qcy9jYXRhbG9nX29iamVjdF9jb2x1bW4nKSwK --00000000000002dee205b9db33c0--