Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fT4C4-0000c3-Pw for pgadmin-hackers@arkaria.postgresql.org; Wed, 13 Jun 2018 11:44:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1fT4C3-0006Pb-4T for pgadmin-hackers@arkaria.postgresql.org; Wed, 13 Jun 2018 11:44:03 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1fT4C2-0006PQ-Lq for pgadmin-hackers@lists.postgresql.org; Wed, 13 Jun 2018 11:44:02 +0000 Received: from mail-ot0-x243.google.com ([2607:f8b0:4003:c0f::243]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1fT4Bs-0004LV-Ba for pgadmin-hackers@postgresql.org; Wed, 13 Jun 2018 11:44:01 +0000 Received: by mail-ot0-x243.google.com with SMTP id d19-v6so2569060oti.8 for ; Wed, 13 Jun 2018 04:43:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vBeKP2pVpF5SCvWcz3DIpZ3uKoNOxx6vakZBATGNYTE=; b=EUcrrd+7fVZ/GWUGD7OSMUB7yGhaKCImiXoy4tObUdx50c0WFDOAbulgh5KvnzkQKo 7qcQ6jUoUTf2lFkaCkzoKpeDGE9yCZl99ssvP0xCtwzZqyVWcgAZLooDP/8jIKSotW6R dfIFQ6cvNL+4muQoZi8+WHrf5qUJ2hPwcl7utbYjJaE62wgw8V2grwynZ/w7K96Z4sb6 QeO2e6SjwGANl6FinOt/r4XByvk1zA/CWgB0500el74N8oLbD3RK938f7tNvAS4IBvWt I0woSuLP1ONmDiO087Rxh0J9ceMQmeKHuyczMoX2wUAKAzUwgduk9fViY+VfItMmzFFT FgJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vBeKP2pVpF5SCvWcz3DIpZ3uKoNOxx6vakZBATGNYTE=; b=bDC/sF6Te1HJ4JUNvmZJZLGxKwj4cKZOluOygThBFmrJba1UmtVqNIuDdUiHH3Tlbu MAQXA67E248enyu6As8gbL1rf5AeVSJivTnqdcwRHFPsS0+8bzmg4M2oKaJEhay2iG3i 2svVHOHJN5Tje+GIhiQbBSyug+/zDHyV5uy9OzsBxNs5fGkv68dHaYg7mQaksEZHT0zn IBIOpZUB9IMFggpcdjSsTCHRBH6PeCnYasvU3zlVqiticy8fvGNgVrGH+WNt7w++gSM2 pE/XmT7vXxsGJ8YBsy96PkD7iBoP/zrL04iY70poQLtOmZsViON2B3g/2WkiQ9DoFTeJ rkMw== X-Gm-Message-State: APt69E1gtayRQub1LbDmHIsSj1FcijXtNqVbwcENh9fidFGQp0s4h2By 3YAOIuwesxFYBqSWPnp0fW8lkPl/toH6YW9pfTpA+A== X-Google-Smtp-Source: ADUXVKKuHxwPrUV/s9uifSLOJVkD48qJHtCGozBld33AgzHvBO9m2k7qPG7U3VTt9VluhUvNCjhasyxv6xCTBwsOuWY= X-Received: by 2002:a9d:2010:: with SMTP id n16-v6mr2638419ota.275.1528890229331; Wed, 13 Jun 2018 04:43:49 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:a4a:4081:0:0:0:0:0 with HTTP; Wed, 13 Jun 2018 04:43:48 -0700 (PDT) In-Reply-To: References: From: Khushboo Vashi Date: Wed, 13 Jun 2018 17:13:48 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 3362 - Fix the functions for PG v11, and add support procedure for PG v11 To: Victoria Henry Cc: Dave Page , pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000055a52056e847f6a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000055a52056e847f6a Content-Type: multipart/alternative; boundary="000000000000055a4e056e847f68" --000000000000055a4e056e847f68 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Please ignore my previous patch. Find the attached updated patch. On Wed, Jun 13, 2018 at 9:32 AM, Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > Hi Victoria, > > The updated patch is attached. > > On Tue, Jun 12, 2018 at 9:36 PM, Victoria Henry wrote= : > >> Hi Khushboo, >> >> The following change is allowing the creation of procedures in postgresq= l >> versions less then 11 and also GreenPlum >> >> --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/functi= ons/static/js/procedure.js >> +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/functi= ons/static/js/procedure.js >> @@ -71,11 +71,7 @@ define('pgadmin.node.procedure', [ >> if ('catalog' in node_hierarchy) >> return false; >> >> - // Procedures supported only in PPAS >> - return ( >> - 'server' in node_hierarchy && >> - node_hierarchy['server'].server_type =3D=3D 'ppas' >> - ); >> + return true; >> >> Fixed. > >> Now that the Procedures are a thing in Postgresql maybe they should live >> in their own module. >> > The main functionalities of the functions and procedures are almost same > and we have inherited most of the things from function itself. > So, as per me they should live in one module. > >> In the tests for trigger functions we are not consistent on the naming o= f >> the utils , in some places we call it funcs_utils in others >> trigger_funcs_utils. >> > Fixed. > >> Thanks >> =E2=80=8B >> Victoria & Joao >> >> Thanks, > Khushboo > >> On Tue, Jun 12, 2018 at 3:10 AM Khushboo Vashi < >> khushboo.vashi@enterprisedb.com> wrote: >> >>> Hi, >>> >>> Please find the attached updated patch. >>> >>> On Fri, Jun 8, 2018 at 2:21 PM, Dave Page wrote: >>> >>>> Hi >>>> >>>> On Thu, Jun 7, 2018 at 11:27 AM, Khushboo Vashi < >>>> khushboo.vashi@enterprisedb.com> wrote: >>>> >>>>> Hi, >>>>> >>>>> Please ignore my previous patch, find the attached updated one. >>>>> >>>> >>>> I found a couple of issues with this: >>>> >>>> - Clicking the + button on the Parameters tab does nothing in either >>>> Create or Edit modes >>>> >>>> Fixed >>> >>>> - The debugger fails to start (though, perhaps that's because the >>>> plugin doesn't have Ashesh's latest patches in it). >>>> >>>> FYI, I was trying to test the debugger with: >>>> >>>> -- PROCEDURE: public.dummy_proc(integer) >>>> >>>> -- DROP PROCEDURE public.dummy_proc(integer); >>>> >>>> CREATE OR REPLACE PROCEDURE public.dummy_proc( >>>> id integer) >>>> LANGUAGE 'plpgsql' >>>> >>>> AS $BODY$BEGIN >>>> raise notice 'id is %', id; >>>> END;$BODY$; >>>> >>>> Fixed. Tested with the latest code of the plugin. >>> >>>> Thanks! >>>> >>>> Thanks, >>> Khushboo >>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> > --000000000000055a4e056e847f68 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Please ignore my previous patch. Find the attached updated= patch.

On W= ed, Jun 13, 2018 at 9:32 AM, Khushboo Vashi <khushboo.vash= i@enterprisedb.com> wrote:
=
Hi Victoria,

The updated patch is attac= hed.

On Tue, Jun 12, 2018 at 9:36 PM, Victoria Henry <vhenry@pivot= al.io> wrote:

Hi Khushboo= ,

The following change is allowin= g the creation of procedures in postgresql versions less then 11 and also G= reenPlum

--- a/web/pgadmin/br=
owser/server_groups/servers/databases/schemas/functions/static/js=
/procedure.js
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas=
/functions/static/js/procedure.js
@@ -71,11 +71,7 @@ define('pgadmin.node.procedure', [
         if ('catalog' in node_hierarchy)
           return false;

-        // Procedures supported only in PPAS
-        return (
-          'server' in node_hierarchy &&
-            node_hierarchy['server'].server_type =3D=3D '=
ppas'
-        );
+        return true;

Fixed.=C2=A0

Now that the Procedures are a thing in Postgresql maybe they should li= ve in their own module.=C2=A0

The m= ain functionalities of the functions and procedures are almost same and we = have inherited most of the things from function itself.=C2=A0
So,= as per me they should live in one module.

In the tests for trigger functions we are not consistent on the= naming of the utils , in some places we call it funcs_uti= ls in others trigger_funcs_utils.

<= /div>
Fixed.=C2=A0

Thanks

=E2=80=8B
Victori= a & Joao

Thanks,<= /div>
Khushboo=C2=A0
On Tue, Jun 1= 2, 2018 at 3:10 AM Khushboo Vashi <khushboo.vashi@enterprisedb.com>= ; wrote:
Hi,<= /div>

Please find the attached updated patch.

On Fri, Jun 8, 2018 at 2= :21 PM, Dave Page <dpage@pgadmin.org> wrote:
Hi

On Thu, Jun 7, 2018 at 11:27 AM, Khushboo Va= shi <khushboo.vashi@enterprisedb.com> wro= te:
Hi,

Please ignore my previous patch, find th= e attached updated one.

= I found a couple of issues with this:

- Clicking t= he + button on the Parameters tab does nothing in either Create or Edit mod= es

Fixed=C2=A0
- The debugger fails to start (= though, perhaps that's because the plugin doesn't have Ashesh's= latest patches in it).

FYI, I was trying to test = the debugger with:

-- PROCEDURE: public.dummy= _proc(integer)

-- DROP PROCEDURE public.dummy_proc= (integer);

CREATE OR REPLACE=C2=A0 PROCEDURE publi= c.dummy_proc(
id int= eger)
LANGUAGE 'plpgsql'

AS $BOD= Y$BEGIN
=C2=A0 raise notice 'id is %', id;
END;= $BODY$;

Fixed= . Tested with the latest code of the plugin.
Thanks!
<= div>
Thanks,
Khushboo=C2=A0



--000000000000055a4e056e847f68-- --000000000000055a52056e847f6a Content-Type: text/x-patch; charset="US-ASCII"; name="RM_3362_ver4.patch" Content-Disposition: attachment; filename="RM_3362_ver4.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jid1rhuz1 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvcHJvY2VkdXJlX2RpYWxvZy5yc3QgYi9kb2NzL2VuX1VT L3Byb2NlZHVyZV9kaWFsb2cucnN0CmluZGV4IGRhNWYzNGYuLjgyYzIyMjcgMTAwNjQ0Ci0tLSBh L2RvY3MvZW5fVVMvcHJvY2VkdXJlX2RpYWxvZy5yc3QKKysrIGIvZG9jcy9lbl9VUy9wcm9jZWR1 cmVfZGlhbG9nLnJzdApAQCAtNCw3ICs0LDcgQEAKIFRoZSBQcm9jZWR1cmUgRGlhbG9nCiAqKioq KioqKioqKioqKioqKioqKgogCi1Vc2UgdGhlICpQcm9jZWR1cmUqIGRpYWxvZyB0byBjcmVhdGUg YSBwcm9jZWR1cmU7IHByb2NlZHVyZXMgYXJlIHN1cHBvcnRlZCBieSBFREIgUG9zdGdyZXMgQWR2 YW5jZWQgU2VydmVyLiBUaGUgKlByb2NlZHVyZSogZGlhbG9nIGFsbG93cyB5b3UgdG8gaW1wbGVt ZW50IG9wdGlvbnMgb2YgdGhlIENSRUFURSBQUk9DRURVUkUgY29tbWFuZDsgZm9yIG1vcmUgaW5m b3JtYXRpb24gYWJvdXQgdGhlIENSRUFURSBQUk9DRURVUkUgU1FMIGNvbW1hbmQsIHBsZWFzZSBz ZWUgdGhlIERhdGFiYXNlIENvbXBhdGliaWxpdHkgZm9yIE9yYWNsZSBEZXZlbG9wZXIncywgYXZh aWxhYmxlIGF0OgorVXNlIHRoZSAqUHJvY2VkdXJlKiBkaWFsb2cgdG8gY3JlYXRlIGEgcHJvY2Vk dXJlOyBwcm9jZWR1cmVzIGFyZSBzdXBwb3J0ZWQgYnkgUG9zdGdyZVNRTCB2MTEgYW5kIEVEQiBQ b3N0Z3JlcyBBZHZhbmNlZCBTZXJ2ZXIuIFRoZSAqUHJvY2VkdXJlKiBkaWFsb2cgYWxsb3dzIHlv dSB0byBpbXBsZW1lbnQgb3B0aW9ucyBvZiB0aGUgQ1JFQVRFIFBST0NFRFVSRSBjb21tYW5kOyBm b3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgQ1JFQVRFIFBST0NFRFVSRSBTUUwgY29tbWFu ZCwgcGxlYXNlIHNlZSB0aGUgRGF0YWJhc2UgQ29tcGF0aWJpbGl0eSBmb3IgT3JhY2xlIERldmVs b3BlcidzLCBhdmFpbGFibGUgYXQ6CiAKICAgICAgaHR0cDovL3d3dy5lbnRlcnByaXNlZGIuY29t CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9f X2luaXRfXy5weQppbmRleCBkOGU3YTY4Li43YjJiYTJkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC0xNTAyLDcg KzE1MDIsMTAgQEAgY2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVS ZWFkZXIpOgogICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZShhcmcsIGZvcm1hdHRlZF9h cmcpCiAKICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZSgnKScsICdcbiknKQotICAgICAgICBz cWwgPSAiRVhFQyB7MH0iLmZvcm1hdChuYW1lKQorICAgICAgICBpZiBzZWxmLm1hbmFnZXIuc2Vy dmVyX3R5cGUgPT0gJ3BnJzoKKyAgICAgICAgICAgIHNxbCA9ICJDQUxMIHswfSIuZm9ybWF0KG5h bWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzcWwgPSAiRVhFQyB7MH0iLmZvcm1hdChu YW1lKQogCiAgICAgICAgIHJldHVybiBhamF4X3Jlc3BvbnNlKHJlc3BvbnNlPXNxbCkKIApAQCAt MTU5MiwxMCArMTU5NSwxMSBAQCBjbGFzcyBQcm9jZWR1cmVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1 bGUpOgogICAgICAgICAiIiIKICAgICAgICAgc3VwZXIoUHJvY2VkdXJlTW9kdWxlLCBzZWxmKS5f X2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAKLSAgICAgICAgc2VsZi5taW5fdmVyID0gOTAxMDAK KyAgICAgICAgc2VsZi5taW5fdmVyID0gMTEwMDAwCiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5v bmUKKyAgICAgICAgc2VsZi5taW5fcHBhc3ZlciA9IDkwMTAwCiAgICAgICAgIHNlbGYubWluX2dw ZGJ2ZXIgPSAxMDAwMDAwMDAwCi0gICAgICAgIHNlbGYuc2VydmVyX3R5cGUgPSBbJ3BwYXMnXQor ICAgICAgICBzZWxmLnNlcnZlcl90eXBlID0gWydwZycsICdwcGFzJ10KIAogICAgIGRlZiBnZXRf bm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9qcy9wcm9jZWR1cmUuanMgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3Rh dGljL2pzL3Byb2NlZHVyZS5qcwppbmRleCAwNDFiNTA5Li43NjVkNmUyIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvc3RhdGljL2pzL3Byb2NlZHVyZS5qcworKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3Rh dGljL2pzL3Byb2NlZHVyZS5qcwpAQCAtNzEsMTAgKzcxLDEzIEBAIGRlZmluZSgncGdhZG1pbi5u b2RlLnByb2NlZHVyZScsIFsKICAgICAgICAgaWYgKCdjYXRhbG9nJyBpbiBub2RlX2hpZXJhcmNo eSkKICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgLy8gUHJvY2VkdXJlcyBzdXBw b3J0ZWQgb25seSBpbiBQUEFTCisgICAgICAgIC8vIFByb2NlZHVyZXMgc3VwcG9ydGVkIG9ubHkg aW4gUFBBUyBhbmQgUEcgPj0gMTEKICAgICAgICAgcmV0dXJuICgKLSAgICAgICAgICAnc2VydmVy JyBpbiBub2RlX2hpZXJhcmNoeSAmJgotICAgICAgICAgICAgbm9kZV9oaWVyYXJjaHlbJ3NlcnZl ciddLnNlcnZlcl90eXBlID09ICdwcGFzJworICAgICAgICAgICdzZXJ2ZXInIGluIG5vZGVfaGll cmFyY2h5ICYmICgKKyAgICAgICAgICBub2RlX2hpZXJhcmNoeVsnc2VydmVyJ10uc2VydmVyX3R5 cGUgPT0gJ3BwYXMnIHx8CisgICAgICAgICAgICAobm9kZV9oaWVyYXJjaHlbJ3NlcnZlciddLnNl cnZlcl90eXBlID09ICdwZycgJiYKKyAgICAgICAgICAgICBub2RlX2hpZXJhcmNoeVsnc2VydmVy J10udmVyc2lvbiA+PSAxMTAwMDApCisgICAgICAgICAgKQogICAgICAgICApOwogICAgICAgfSwK ICAgICAgIG1vZGVsOiBGdW5jdGlvbi5tb2RlbC5leHRlbmQoewpAQCAtMTAzLDIwICsxMDYsMjQg QEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUucHJvY2VkdXJlJywgWwogICAgICAgICAgICAgcmV0dXJu IHRydWU7CiAgICAgICAgICAgfQogICAgICAgICAgIHN3aXRjaCh0aGlzLm5hbWUpewotICAgICAg ICAgIGNhc2UgJ3Byb3ZvbGF0aWxpdHknOgorICAgICAgICAgIGNhc2UgJ3Byb3ZvbGF0aWxlJzoK ICAgICAgICAgICBjYXNlICdwcm9pc3N0cmljdCc6Ci0gICAgICAgICAgY2FzZSAncHJvc2VjZGVm JzoKICAgICAgICAgICBjYXNlICdwcm9jb3N0JzoKICAgICAgICAgICBjYXNlICdwcm9sZWFrcHJv b2YnOgorICAgICAgICAgICAgcmV0dXJuICh0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA8 IDkwNTAwIHx8IHRoaXMubm9kZV9pbmZvLnNlcnZlci5zZXJ2ZXJfdHlwZSAhPSAncHBhcycpOwog ICAgICAgICAgIGNhc2UgJ3ZhcmlhYmxlcyc6CisgICAgICAgICAgY2FzZSAncHJvc2VjZGVmJzoK ICAgICAgICAgICAgIHJldHVybiB0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVyc2lvbiA8IDkwNTAw OwogICAgICAgICAgIGNhc2UgJ3Byb3Jvd3MnOgogICAgICAgICAgICAgdmFyIHNlcnZlciA9IHRo aXMubm9kZV9pbmZvLnNlcnZlcjsKICAgICAgICAgICAgIHJldHVybiAhKHNlcnZlci52ZXJzaW9u ID49IDkwNTAwICYmIG0uZ2V0KCdwcm9yZXRzZXQnKSA9PSB0cnVlKTsKICAgICAgICAgICBjYXNl ICdmdW5jb3duZXInOgotICAgICAgICAgIGNhc2UgJ2xhbm5hbWUnOgogICAgICAgICAgIGNhc2Ug J3Byb2FyZ3MnOgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgY2FzZSAncHJv cGFyYWxsZWwnOgorICAgICAgICAgICAgcmV0dXJuICh0aGlzLm5vZGVfaW5mby5zZXJ2ZXIudmVy c2lvbiA8IDkwNjAwIHx8IHRoaXMubm9kZV9pbmZvLnNlcnZlci5zZXJ2ZXJfdHlwZSAhPSAncHBh cycpOworICAgICAgICAgIGNhc2UgJ2xhbm5hbWUnOgorICAgICAgICAgICAgcmV0dXJuIHRoaXMu bm9kZV9pbmZvLnNlcnZlci52ZXJzaW9uIDwgMTEwMDAwOwogICAgICAgICAgIGRlZmF1bHQ6CiAg ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jb2xsX3N0YXRzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY29sbF9zdGF0 cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M0ZjczNAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3Bs dXMvY29sbF9zdGF0cy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgZnVuY25hbWUg QVMge3sgY29ubnxxdElkZW50KF8oJ05hbWUnKSkgfX0sCisgICAgY2FsbHMgQVMge3sgY29ubnxx dElkZW50KF8oJ051bWJlciBvZiBjYWxscycpKSB9fSwKKyAgICB0b3RhbF90aW1lIEFTIHt7IGNv bm58cXRJZGVudChfKCdUb3RhbCB0aW1lJykpIH19LAorICAgIHNlbGZfdGltZSBBUyB7eyBjb25u fHF0SWRlbnQoXygnU2VsZiB0aW1lJykpIH19CitGUk9NCisgICAgcGdfc3RhdF91c2VyX2Z1bmN0 aW9ucworV0hFUkUKKyAgICBzY2hlbWFuYW1lID0ge3tzY2hlbWFfbmFtZXxxdExpdGVyYWx9fQor ICAgIEFORCBmdW5jaWQgSU4gKAorICAgICAgICBTRUxFQ1QgcC5vaWQKKyAgICAgICAgRlJPTQor ICAgICAgICAgICAgcGdfcHJvYyBwCisgICAgICAgIEpPSU4KKyAgICAgICAgICAgIHBnX3R5cGUg dHlwIE9OIHR5cC5vaWQ9cC5wcm9yZXR0eXBlCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBw LnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgn dHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICApCitPUkRFUiBCWSBmdW5jbmFtZTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMv Y3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3Bs dXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMWNkZjUx Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvMTFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNzAgQEAKK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUg c2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQoreyUgaWYgcXVlcnlfZm9yID09 ICdzcWxfcGFuZWwnIGFuZCBmdW5jX2RlZiBpcyBkZWZpbmVkICV9CitDUkVBVEV7JSBpZiBxdWVy eV90eXBlIGlzIGRlZmluZWQgJX17eycgT1IgUkVQTEFDRSd9fXslIGVuZGlmICV9IEZVTkNUSU9O IHt7ZnVuY19kZWZ9fQoreyUgZWxzZSAlfQorQ1JFQVRFeyUgaWYgcXVlcnlfdHlwZSBpcyBkZWZp bmVkICV9e3snIE9SIFJFUExBQ0UnfX17JSBlbmRpZiAlfSBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMg JX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFy Z21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFy Z25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3sgY29ubnxxdFR5cGVJZGVu dChwLmFyZ3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7 cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRp ZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKK3slIGVuZGlmICV9CisgICAgUkVU VVJOU3slIGlmIGRhdGEucHJvcmV0c2V0IGFuZCAoZGF0YS5wcm9yZXR0eXBlbmFtZS5zdGFydHN3 aXRoKCdTRVRPRiAnKSBvciBkYXRhLnByb3JldHR5cGVuYW1lLnN0YXJ0c3dpdGgoJ1RBQkxFJykp ICV9IHt7IGRhdGEucHJvcmV0dHlwZW5hbWUgfX0geyUgZWxpZiBkYXRhLnByb3JldHNldCAlfSBT RVRPRiB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZWxzZSAl fSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZW5kaWYgJX0K KworICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KK3slIGlmIGRhdGEu cHJvY29zdCAlfQorCisgICAgQ09TVCB7e2RhdGEucHJvY29zdH19Cit7JSBlbmRpZiAlfQorICAg IHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRhLnByb3ZvbGF0aWxlID09ICdpJyAl fUlNTVVUQUJMRXslIGVsaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAncycgJX1TVEFCTEV7JSBlbHNl ICV9Vk9MQVRJTEV7JSBlbmRpZiAlfSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29m ICV9TEVBS1BST09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNU IHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5kb3cgJX1XSU5ET1cgeyUgZW5kaWYgJX0KK3sl IGlmIGRhdGEucHJvcGFyYWxsZWwgYW5kIChkYXRhLnByb3BhcmFsbGVsID09ICdyJyBvciBkYXRh LnByb3BhcmFsbGVsID09ICdzJykgJX0KK3slIGlmIGRhdGEucHJvcGFyYWxsZWwgPT0gJ3InICV9 UEFSQUxMRUwgUkVTVFJJQ1RFRHslIGVsaWYgZGF0YS5wcm9wYXJhbGxlbCA9PSAncycgJX1QQVJB TExFTCBTQUZFeyUgZW5kaWYgJX17JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEucHJvcm93cyBhbmQg KGRhdGEucHJvcm93cyB8IGludCkgPiAwICV9CisKKyAgICBST1dTIHt7ZGF0YS5wcm9yb3dzfX17 JSBlbmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEudmFyaWFi bGVzICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxx dExpdGVyYWwgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CisKK0FTIHslIGlmIGRhdGEubGFu bmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9z cmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJAore3sgZGF0YS5wcm9zcmMgfX0K KyRCT0RZJHslIGVuZGlmIC0lfTsKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7 e2RhdGEuZnVuY19hcmdzX3dpdGhvdXR9fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5mdW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUg Zm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04i LCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJnc193aXRob3V0KX19Cit7JSBlbmRmb3IgJX17 JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5yZXZva2VfYWxsICV9CisKK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAiRlVOQ1RJT04iLCAiUFVCTElDIiwgZGF0YS5uYW1lLCBkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCl9fQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGEu ZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0 YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc193aXRob3V0fX0p CisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgIH19OworeyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0K K3slIGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4s ICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZGVsZXRlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NDAwNDRjCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9kZWxldGUuc3Fs CkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHBy LnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNf YXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5 cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2Yn LCAndycpCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlw bmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5vaWQg PSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2Nh ZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0X2RlZmluaXRpb24u c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRf ZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWIyNWRi ZgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzExX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTUgQEAKK1NFTEVDVAor ICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBD T0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIu b2lkKSwgJycpIGFzCisgICAgZnVuY193aXRoX2lkZW50aXR5X2FyZ3VtZW50cywKKyAgICBuc3Bu YW1lLAorICAgIHByLnByb25hbWUgYXMgcHJvbmFtZSwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9n LnBnX2dldF9mdW5jdGlvbl9hcmd1bWVudHMocHIub2lkKSwgJycpIGFzIGZ1bmNfYXJncworRlJP TQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9 cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByLnByb2tpbmQgSU4gKCdmJywgJ3cnKQorICAg IEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC8xMV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi45M2EyMTA3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitT RUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFs b2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykg fHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBh cyBmdW5jb3duZXIsIHByLnByb25hbWVzcGFjZSBhcyBuc3AKK0ZST00KKyAgICBwZ19wcm9jIHBy CitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFj ZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sg bnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycp CisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAg ICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9ub2RlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvbm9kZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWRhZThkMQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvbm9kZS5z cWwKQEAgLTAsMCArMSwyMiBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICco JyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2Vy YnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3By b2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4K KyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xh c3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICBwci5wcm9raW5kIElOICgnZics ICd3JykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lkID0ge3sgZm5pZHxxdExpdGVyYWwg fX0KK3slIGVuZGlmICV9Cit7JSBpZiBzY2lkICV9CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKK3slIGVuZGlmICV9CisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dl cicsICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvcHJvcGVydGll cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3By b3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUwYzJjYTAK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzMgQEAKK1NFTEVDVAorICAgIHBy Lm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25h bWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVu YW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywg b2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19n ZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykg QVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBn X2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICBD QVNFIFdIRU4gcHIucHJva2luZCA9ICd3JyBUSEVOIFRSVUUgRUxTRSBGQUxTRSBFTkQgQVMgcHJv aXN3aW5kb3csCisgICAgKFNFTEVDVAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0n IHx8IGxhYmVsKQorICAgIEZST00KKyAgICAgICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUK KyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3By b2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pP SU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpP SU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAo J2YnLCAndycpCit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQK K3slIGVsc2UgJX0KKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAoreyUgZW5k aWYgJX0KKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXIn KQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkyYmQyNGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAs MCArMSwxMTYgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFi bGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19k YXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0 YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAg IFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0g ZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3sl IGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9 fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUp IH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3sgY29ubnxxdFR5cGVJZGVudChwLmFy Z3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdk ZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7 JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQorICAgIFJFVFVSTlMge3sgb19kYXRhLnByb3Jl dHR5cGVuYW1lIH19Cit7JSBpZiAnbGFubmFtZScgaW4gZGF0YSAlfQorICAgIExBTkdVQUdFIHt7 IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9f ZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0 aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9 fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGls ZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtw cm9vZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBu b3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX0gTEVBS1BST09GeyUgZWxpZiAn cHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTk9UIExF QUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRh LnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnBy b2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRh dGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9f ZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdw cm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRv dycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYg JX0KKworICAgIHslIGlmICdwcm9wYXJhbGxlbCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9wYXJhbGxl bCAlfVBBUkFMTEVMIHt7IGRhdGEucHJvcGFyYWxsZWwgfX17JSBlbGlmICdwcm9wYXJhbGxlbCcg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9wYXJhbGxlbCAlfVBBUkFMTEVMIHt7IG9fZGF0YS5w cm9wYXJhbGxlbCB9fXslIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1DT1NU IHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5w cm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2Rh dGEucHJvcm93c319eyUgZWxpZiBkYXRhLnByb3Jvd3MgaXMgbm90IGRlZmluZWQgYW5kIG9fZGF0 YS5wcm9yb3dzIGFuZCBvX2RhdGEucHJvcm93cyAhPSAnMCcgJX0gICAgUk9XUyB7e29fZGF0YS5w cm9yb3dzfX0geyVlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX17JSBmb3Ig diBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQo di5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBl bmRpZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNfYycgaW4gZGF0 YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9 fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBp ZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVs c2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbGlmICdw cm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkeyUgZWxpZiBv X2RhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7 eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJEJPRFkke3sgb19kYXRh LnByb3NyYyB9fSRCT0RZJHslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5m dW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9u YW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBPV05F UiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5mdW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9Cit7 IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUg aWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwg J0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hh bmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5n cmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwg bmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1l c3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5h Y2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2Lmdy YW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUg ZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2Ug JX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJp YWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJ QUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVk LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRf dmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBl bmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQoY29u biwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBp ZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwg J0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJF TC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5kIGRhdGEu ZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uJX0KKworQ09NTUVOVCBPTiBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEu cHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFs IH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7 e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRl bnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9w bHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMl9wbHVzL2NyZWF0ZS5zcWwKaW5kZXggMjEzNjUyYy4uMTZjMDg4ZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUu c3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvY3JlYXRlLnNxbApAQCAtMTMsNyArMTMsNyBAQCBDUkVBVEV7JSBpZiBxdWVyeV90eXBlIGlz IGRlZmluZWQgJX17eycgT1IgUkVQTEFDRSd9fXslIGVuZGlmICV9IEZVTkNUSU9OIHt7IGNvbgog eyUgZW5kaWYgLSV9CiApCiB7JSBlbmRpZiAtJX0KLSAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9y ZXRzZXQgKGRhdGEucHJvcmV0dHlwZW5hbWUuc3RhcnRzd2l0aCgnU0VUT0YgJykgb3IgZGF0YS5w cm9yZXR0eXBlbmFtZS5zdGFydHN3aXRoKCdUQUJMRScpKSAlfSB7eyBkYXRhLnByb3JldHR5cGVu YW1lIH19IHslIGVsaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Yge3sgY29ubnxxdFR5cGVJZGVu dChkYXRhLnByb3JldHR5cGVuYW1lKSB9fXslIGVsc2UgJX0ge3sgY29ubnxxdFR5cGVJZGVudChk YXRhLnByb3JldHR5cGVuYW1lKSB9fXslIGVuZGlmICV9CisgICAgUkVUVVJOU3slIGlmIGRhdGEu cHJvcmV0c2V0IGFuZCAoZGF0YS5wcm9yZXR0eXBlbmFtZS5zdGFydHN3aXRoKCdTRVRPRiAnKSBv ciBkYXRhLnByb3JldHR5cGVuYW1lLnN0YXJ0c3dpdGgoJ1RBQkxFJykpICV9IHt7IGRhdGEucHJv cmV0dHlwZW5hbWUgfX0geyUgZWxpZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRiB7eyBjb25ufHF0 VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZWxzZSAlfSB7eyBjb25ufHF0VHlw ZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZW5kaWYgJX0KIAogICAgIExBTkdVQUdF IHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KIHslIGlmIGRhdGEucHJvY29zdCAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv YWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0 L2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmU3YWFlNQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9k ZWZhdWx0L2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNUCisgICAgQ09BTEVTQ0UoZ3Qu cm9sbmFtZSwgJ1BVQkxJQycpIEFTIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3Is IGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2co aXNfZ3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQu Z3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZp bGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4g J0NSRUFURScgVEhFTiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAg ICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2En CisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVD VCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBX SEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcK KyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVOICdVU0FHRScgVEhF TiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90 eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBB UyBncmFudGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQpLmlzX2dy YW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCkucHJpdmlsZWdlX3R5cGUg QVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xl eHBsb2RlKGRiLnByb2FjbCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJF IGRiLm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBkCisgICAgTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQpCisgICAg TEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkK K0dST1VQIEJZIGcucm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2NvbGxfc3RhdHMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY29sbF9zdGF0cy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTkyNDY3OQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0 L2NvbGxfc3RhdHMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgIGZ1bmNuYW1lIEFT IHt7IGNvbm58cXRJZGVudChfKCdOYW1lJykpIH19LAorICAgIGNhbGxzIEFTIHt7IGNvbm58cXRJ ZGVudChfKCdOdW1iZXIgb2YgY2FsbHMnKSkgfX0sCisgICAgdG90YWxfdGltZSBBUyB7eyBjb25u fHF0SWRlbnQoXygnVG90YWwgdGltZScpKSB9fSwKKyAgICBzZWxmX3RpbWUgQVMge3sgY29ubnxx dElkZW50KF8oJ1NlbGYgdGltZScpKSB9fQorRlJPTQorICAgIHBnX3N0YXRfdXNlcl9mdW5jdGlv bnMKK1dIRVJFCisgICAgc2NoZW1hbmFtZSA9IHt7c2NoZW1hX25hbWV8cXRMaXRlcmFsfX0KKyAg ICBBTkQgZnVuY2lkIElOICgKKyAgICAgICAgU0VMRUNUIHAub2lkCisgICAgICAgIEZST00KKyAg ICAgICAgICAgIHBnX3Byb2MgcAorICAgICAgICBKT0lOCisgICAgICAgICAgICBwZ190eXBlIHR5 cCBPTiB0eXAub2lkPXAucHJvcmV0dHlwZQorICAgICAgICBXSEVSRQorICAgICAgICAgICAgcC5w cm9raW5kID0gJ3AnOjpjaGFyCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmln Z2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgICkKK09SREVSIEJZIGZ1bmNuYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvY3Jl YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0 L2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2Y5MTUxZgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3Nx bC9kZWZhdWx0L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw1MCBAQAoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBz ZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9Cit7JSBpZiBxdWVyeV9mb3IgPT0g J3NxbF9wYW5lbCcgYW5kIGZ1bmNfZGVmIGlzIGRlZmluZWQgJX0KK0NSRUFURSBPUiBSRVBMQUNF ICBQUk9DRURVUkUge3tmdW5jX2RlZn19Cit7JSBlbHNlICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQ Uk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19 eyUgaWYgZGF0YS5hcmd1bWVudHMgaXMgZGVmaW5lZCAlfQorKHslIGZvciBwIGluIGRhdGEuYXJn dW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlm IHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX0geyUgZW5kaWYgJX17JSBp ZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0VHlwZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAl fXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0K K3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgLSV9Cit7JSBl bmRpZiAlfQorKQoreyUgZW5kaWYgJX0KK0xBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVy YWwgfX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQor CitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17 JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2Mn ICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRl cmFsIH19Cit7JSBlbHNlICV9CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRCT0RZJHslIGVuZGlm IC0lfTsKK3slIGlmIGRhdGEuYWNsIGFuZCBub3QgaXNfc3FsICV9Cit7JSBmb3IgcCBpbiBkYXRh LmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJQUk9DRURVUkUiLCBwLmdyYW50ZWUs IGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJnc193aXRob3V0KX19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQor eyUgaWYgZGF0YS5yZXZva2VfYWxsICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAi UFJPQ0VEVVJFIiwgIlBVQkxJQyIsIGRhdGEubmFtZSwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEu ZnVuY19hcmdzX3dpdGhvdXQpfX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9u ICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFs ICB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGlu IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7 IFNFQ0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCBy LmxhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCkgfX0KK3sl IGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv ZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZh dWx0L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjRmY2Rj MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bn L3NxbC9kZWZhdWx0L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2NpZCBhbmQg Zm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAnKCcgfHwgQ09BTEVTQ0Uo cGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9p ZCksICcnKSB8fCAnKScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUK KyAgICBwci5wcm9raW5kID0gJ3AnOjpjaGFyCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdn ZXInKQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5h bWUgJX0KK0RST1AgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1lKSB9fTsK K3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wZy9zcWwvZGVmYXVsdC9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGMyZTlkOQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9kZWZpbml0 aW9uLnNxbApAQCAtMCwwICsxLDE1IEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYo e3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19n ZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSBhcworICAgIGZ1bmNf d2l0aF9pZGVudGl0eV9hcmd1bWVudHMsCisgICAgbnNwbmFtZSwKKyAgICBwci5wcm9uYW1lIGFz IHByb25hbWUsCisgICAgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25fYXJndW1l bnRzKHByLm9pZCksICcnKSBhcyBmdW5jX2FyZ3MKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUK KyAgICBwci5wcm9raW5kID0gJ3AnOjpjaGFyCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dldF9sYW5ndWFn ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQv Z2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgx ZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BnL3NxbC9kZWZhdWx0L2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNU CisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQorRlJPTQorICAgIHBnX2xh bmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcv c3FsL2RlZmF1bHQvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wZy9zcWwvZGVmYXVsdC9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5iZTk4YjUzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAor U0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRh bG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg YXMgZnVuY293bmVyLCBwci5wcm9uYW1lc3BhY2UgQVMgbnNwCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAg IHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7 IG5zcG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByLnByb2tpbmQgPSAncCc6OmNoYXIK KyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAg IEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfb3V0X3R5cGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L2dl dF9vdXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTEx ODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w Zy9zcWwvZGVmYXVsdC9nZXRfb3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIGZvcm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdf dHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lkOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvZ2V0X3Nj aGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVs dC9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdk NGI5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cGcvc3FsL2RlZmF1bHQvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAg ICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNj aWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BnL3NxbC9kZWZhdWx0L2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9nZXRfdHlwZXMuc3FsCkBAIC0wLDAg KzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGZvcm1h dF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVt ID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0 eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5 cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJP TQorICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1l ID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBBTkQKKyAgICAg ICAgKAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncCcsICdy JykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywgJ2xh bmd1YWdlX2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1 bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGlj JywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BnL3NxbC9kZWZhdWx0L25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcGcvc3FsL2RlZmF1bHQvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uODlkYzc2OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BnL3NxbC9kZWZhdWx0L25vZGUuc3FsCkBAIC0wLDAgKzEsMjkgQEAKK1NF TEVDVAorICAgIHByLm9pZCwKKyAgICBDQVNFIFdIRU4KKyAgICAgICAgcGdfY2F0YWxvZy5wZ19n ZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCkgPD4gJycKKyAgICBUSEVOCisg ICAgICAgIHByLnByb25hbWUgfHwgJygnIHx8IHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpIHx8ICcpJworICAgIEVMU0UKKyAgICAgICAgcHIucHJv bmFtZQorICAgIEVORCBBUyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9v d25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19s YW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19k ZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3Bn X3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHIucHJva2luZCA9ICdwJzo6Y2hhcgoreyUg aWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQgPSB7eyBmbmlkfHF0TGl0ZXJhbCB9fQoreyUgZW5k aWYgJX0KK3slIGlmIHNjaWQgJX0KKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9p ZAoreyUgZW5kaWYgJX0KKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvcHJvcGVydGllcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC9wcm9wZXJ0aWVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWJlYTg2Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1 bHQvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwzOSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBw ci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBu YW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisg ICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0 b3J0eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHBy KHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9h cmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3Vz ZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChDQVNFIFdI RU4KKyAgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRz KHByLm9pZCkgPD4gJycKKyAgICBUSEVOCisgICAgICAgIHByLnByb25hbWUgfHwgJygnIHx8IHBn X2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpIHx8ICcp JworICAgIEVMU0UKKyAgICAgICAgcHIucHJvbmFtZQorICAgIEVORCkgQVMgbmFtZV93aXRoX2Fy Z3MsCisgICAgKFNFTEVDVAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxh YmVsKQorICAgIEZST00KKyAgICAgICAgcGdfc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAg ICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3Byb2MgcHIK K0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBw Z19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAg ICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAg ICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3Nv aWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHIucHJva2luZCA9ICdwJworICAg IEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBm bmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVsc2UgJX0KKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisg ICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BnL3NxbC9kZWZhdWx0L3N0YXRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BnL3NxbC9kZWZhdWx0L3N0YXRzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4yZTI3NmI2Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvc3RhdHMuc3FsCkBAIC0wLDAgKzEsOCBAQAorU0VM RUNUCisgICAgY2FsbHMgQVMge3sgY29ubnxxdElkZW50KF8oJ051bWJlciBvZiBjYWxscycpKSB9 fSwKKyAgICB0b3RhbF90aW1lIEFTIHt7IGNvbm58cXRJZGVudChfKCdUb3RhbCB0aW1lJykpIH19 LAorICAgIHNlbGZfdGltZSBBUyB7eyBjb25ufHF0SWRlbnQoXygnU2VsZiB0aW1lJykpIH19CitG Uk9NCisgICAgcGdfc3RhdF91c2VyX2Z1bmN0aW9ucworV0hFUkUKKyAgICBmdW5jaWQgPSB7e2Zu aWR9fTo6T0lECmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w Zy9zcWwvZGVmYXVsdC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcGcvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5lMTYyOWU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcGcvc3FsL2RlZmF1bHQvdXBkYXRlLnNxbApAQCAtMCwwICsxLDEwNiBAQAor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwg JX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBp ZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIg UFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFt ZSkgfX17JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMgfX0peyUgZW5kaWYgJX0KKworICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0 YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQorCit7 JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFD RSBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19 KHslIGlmIGRhdGEuYXJndW1lbnRzICV9eyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBp ZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9 e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUg JX17eyBjb25ufHF0VHlwZUlkZW50KHAuYXJndHlwZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJn ZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBs b29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CispCit7 JSBpZiAnbGFubmFtZScgaW4gZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxx dExpdGVyYWwgfX0geyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0 TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBh bmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRh LnByb3NlY2RlZikgJX1TRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEubWVy Z2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisg ICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19 eyUgZW5kZm9yIC0lfQorICAgIHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRh dGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRhICV9e3sg ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRMaXRl cmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJv c3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwg fX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJEJPRFkke3sgZGF0YS5w cm9zcmMgfX0kQk9EWSR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRh LnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBl bHNlICV9CiskQk9EWSR7eyBvX2RhdGEucHJvc3JjIH19JEJPRFkkeyUgZW5kaWYgLSV9OworeyUg ZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBQUk9DRURVUkUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19eyUgaWYgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlmICV9 CisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRo ZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBk YXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBp biBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnUFJP Q0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdl ZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBu YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu YWNsLmFkZGVkICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYu Z3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFs c2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52 YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBW QVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxl dGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJn ZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5D VElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7 JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQo Y29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQor eyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAw ICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNv bm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2Vk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNF Q0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5k IGRhdGEuZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uJX0KKworQ09NTUVOVCBPTiBQ Uk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19Cisg ICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3sl IGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58 cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BnL3NxbC9k ZWZhdWx0L3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w Zy9zcWwvZGVmYXVsdC92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wZy9zcWwvZGVmYXVsdC92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAor U0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZS T00KKyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBl cnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5j dGlvbi9wZy9zcWwvMTFfcGx1cy9jb2xsX3N0YXRzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jb2xsX3N0YXRzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZDhjZWNkCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL2Nv bGxfc3RhdHMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgIGZ1bmNuYW1lIEFTIHt7 IGNvbm58cXRJZGVudChfKCdOYW1lJykpIH19LAorICAgIGNhbGxzIEFTIHt7IGNvbm58cXRJZGVu dChfKCdOdW1iZXIgb2YgY2FsbHMnKSkgfX0sCisgICAgdG90YWxfdGltZSBBUyB7eyBjb25ufHF0 SWRlbnQoXygnVG90YWwgdGltZScpKSB9fSwKKyAgICBzZWxmX3RpbWUgQVMge3sgY29ubnxxdElk ZW50KF8oJ1NlbGYgdGltZScpKSB9fQorRlJPTQorICAgIHBnX3N0YXRfdXNlcl9mdW5jdGlvbnMK K1dIRVJFCisgICAgc2NoZW1hbmFtZSA9IHt7c2NoZW1hX25hbWV8cXRMaXRlcmFsfX0KKyAgICBB TkQgZnVuY2lkIElOICgKKyAgICAgICAgU0VMRUNUIHAub2lkCisgICAgICAgIEZST00KKyAgICAg ICAgICAgIHBnX3Byb2MgcAorICAgICAgICBKT0lOCisgICAgICAgICAgICBwZ190eXBlIHR5cCBP TiB0eXAub2lkPXAucHJvcmV0dHlwZQorICAgICAgICBXSEVSRQorICAgICAgICAgICAgcC5wcm9r aW5kIElOICgnZicsICd3JykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lID0gJ3RyaWdnZXInCisg ICAgKQorT1JERVIgQlkgZnVuY25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9jcmVhdGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIwNDk5YTkKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzEx X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDU3IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdt YWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBp c19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBGVU5DVElPTiB7eyBjb25u fHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YS5wcm9h cmduYW1lcyAlfXt7ZGF0YS5wcm9hcmduYW1lc319eyUgZW5kaWYgJX0pCisgICAgUkVUVVJOU3sl IGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVu dChkYXRhLnByb3JldHR5cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxx dExpdGVyYWwgfX0KK3slIGlmIGRhdGEucHJvY29zdCAlfQorICAgIENPU1Qge3tkYXRhLnByb2Nv c3R9fQoreyUgZW5kaWYgJX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9eyUgaWYgZGF0 YS5wcm92b2xhdGlsZSA9PSAnaScgJX1JTU1VVEFCTEV7JSBlbGlmIGRhdGEucHJvdm9sYXRpbGUg PT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAlfVZPTEFUSUxFeyUgZW5kaWYgJX0geyUgZW5kaWYgJX17 JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxFQUtQUk9PRiB7JSBlbHNlICV9Tk9UIExFQUtQUk9P RiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAl fQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHslIGVuZGlmICV9Cit7 JSBpZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9XeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJv cm93cyBhbmQgKGRhdGEucHJvcm93cyB8IGludCkgPiAwICV9CisKKyAgICBST1dTIHt7ZGF0YS5w cm9yb3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRh dGEudmFyaWFibGVzICV9CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sg di52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9CisKK0FTIHslIGlm IGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sg ZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJAore3sgZGF0YS5w cm9zcmMgfX0KKyRCT0RZJHslIGVuZGlmIC0lfTsKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisK K0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5u YW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50 KGRhdGEuZnVuY293bmVyKSB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5hY2wgJX0KK3sl IGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIkZVTkNUSU9O IiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91dF9ncmFudCwgcC53aXRoX2dyYW50LCBk YXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfXslIGVuZGlm ICV9Cit7JSBpZiBkYXRhLnJldm9rZV9hbGwgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICJGVU5DVElPTiIsICJQVUJMSUMiLCBkYXRhLm5hbWUsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJnc193aXRob3V0KX19Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlw dGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25h bWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgSVMge3sgZGF0 YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNl Y2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwg YW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIGRh dGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVu Y19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVu Y3Rpb24vcGcvc3FsLzExX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv dHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY3ZjkwNmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZGVsZXRlLnNx bApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBw ci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5j X2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190 eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNw IE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByLnByb2tpbmQgSU4gKCdm JywgJ3cnKQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5 cG5hbWUgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5vaWQgPSB7 e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUg JX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9nZXRfZGVmaW5p dGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3Fs LzExX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmFiMjVkYmYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0w LDAgKzEsMTUgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lk KSBBUyBmdW5jX2RlZiwKKyAgICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIGFzCisgICAgZnVuY193aXRoX2lkZW50aXR5 X2FyZ3VtZW50cywKKyAgICBuc3BuYW1lLAorICAgIHByLnByb25hbWUgYXMgcHJvbmFtZSwKKyAg ICBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9hcmd1bWVudHMocHIub2lkKSwg JycpIGFzIGZ1bmNfYXJncworRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1l c3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByLnByb2tp bmQgSU4gKCdmJywgJ3cnKQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisg ICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0X29pZC5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvZ2V0 X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDEzZGY5MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9w Zy9zcWwvMTFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdf Z2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5h bWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIs IHByLnByb25hbWVzcGFjZSBBUyBuc3AKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2Ug bG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNw Lm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExp dGVyYWwgfX0KK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCisgICAgQU5EIHR5 cG5hbWUgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBsYW5uYW1lIE5P VCBJTiAoJ2VkYnNwbCcsICdzcWwnLCAnaW50ZXJuYWwnKQorICAgIEFORCBwci5wcm9uYW1lID0g e3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzExX3BsdXMvbm9kZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTVkN2M1NAotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9u b2RlLnNxbApAQCAtMCwwICsxLDIzIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUg fHwgJygpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg YXMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAg ICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFn ZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlw dGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2Mn OjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHIucHJva2luZCBJTiAoJ2YnLCAndycpCit7JSBpZiBm bmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7IGZuaWR8cXRMaXRlcmFsIH19Cit7JSBlbmRpZiAl fQoreyUgaWYgc2NpZCAlfQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCit7 JSBlbmRpZiAlfQorICAgIEFORCB0eXBuYW1lIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2Vy JykKKyAgICBBTkQgbGFubmFtZSBOT1QgSU4gKCdlZGJzcGwnLCAnc3FsJywgJ2ludGVybmFsJykK K09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOWQ3ODY2Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3Bn L3NxbC8xMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzMgQEAKK1NFTEVDVAorICAg IHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnBy b25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5 cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1l cywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBw Z19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFz cykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcs IHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAg ICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisg ICAgRlJPTQorICAgICAgICBwZ19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEu b2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVz cGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xh bmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rl c2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdf cHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwci5wcm9raW5kIElOICgnZicsICd3JykKKyAg ICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIGxh bm5hbWUgTk9UIElOICgnZWRic3BsJywgJ3NxbCcsICdpbnRlcm5hbCcpCit7JSBpZiBmbmlkICV9 CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVsc2UgJX0KKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAgcHJv bmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlv bi9wZy9zcWwvMTFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmln Z2VyX2Z1bmN0aW9uL3BnL3NxbC8xMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNDEzYmU2MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvMTFfcGx1cy91cGRhdGUuc3FsCkBA IC0wLDAgKzEsMTA5IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFj cm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zh cmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9 IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBv X2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkK KyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFt ZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5j aGFuZ2VfZnVuYyAgJX0KKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04ge3sgY29ubnxxdElk ZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KCkKKyAgICBSRVRVUk5TIHt7IG9fZGF0 YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0KKyAgICBMQU5H VUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19IHslIGVsc2UgJX0KKyAgICBMQU5HVUFH RSB7eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAlfXslIGlmICdw cm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xhdGlsZSAlfXt7IGRhdGEucHJvdm9s YXRpbGUgfX0geyUgZWxpZiAncHJvdm9sYXRpbGUnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJv dm9sYXRpbGUgJX17eyBvX2RhdGEucHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdw cm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtw cm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2YpICV9IExFQUtQUk9PRnsl IGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQgbm90IGRhdGEucHJvbGVha3Byb29mICV9 IE5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBh bmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9f ZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVm JyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRh IGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJv aXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3sl IGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0 fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUg ZWxpZiBkYXRhLnByb3Jvd3MgaXMgbm90IGRlZmluZWQgYW5kIG9fZGF0YS5wcm9yb3dzIGFuZCBv X2RhdGEucHJvcm93cyAhPSAnMCcgJX0gICAgUk9XUyB7e29fZGF0YS5wcm9yb3dzfX0geyVlbmRp ZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdl ZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2 LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRpZiAlfQorCitBUyB7 JSBpZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNfYycgaW4gZGF0YSAlfQoreyUgaWYgJ3By b2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBv X2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGlu IGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEu cHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEg JX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkeyUgZWxpZiBvX2RhdGEubGFubmFtZSA9 PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBvX2RhdGEucHJvc3Jj X2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJEJPRFkke3sgb19kYXRhLnByb3NyYyB9fSRCT0RZ JHslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKwor QUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUp IH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0 SWRlbnQoZGF0YS5mdW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0K K3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wu ZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJp di5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBk YXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQ UklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRo b3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2Fk ZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHBy aXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEu dmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEu dmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAn bWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0 aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIHNl dCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xh YmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2Vj bGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywg bmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNl Y2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFt ZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7 JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuZGVzY3JpcHRpb24gIT0g b19kYXRhLmRlc2NyaXB0aW9uJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVz IH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYg LSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1l c3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdGVzdF9mdW5jdGlvbl9hZGQucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMv dGVzdF9mdW5jdGlvbl9hZGQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u NzFlZTI4NQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0 aW9uX2FkZC5weQpAQCAtMCwwICsxLDgwIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0Fk bWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgs IFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNl ZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitp bXBvcnQganNvbgoraW1wb3J0IHV1aWQKKworCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0 YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5l cmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGls cyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworCisKK2NsYXNz IEZ1bmN0aW9uQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgorICAgICIiIiBUaGlzIGNs YXNzIHdpbGwgYWRkIG5ldyBmdW5jdGlvbiB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgc2Nl bmFyaW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBmdW5jdGlvbiBu b2RlLgorICAgICAgICAoJ0ZldGNoIEZ1bmN0aW9uIE5vZGUgVVJMJywgZGljdCgKKyAgICAgICAg ICAgIHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBmdW5jdGlvbiB1 bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uQWRkVGVzdENhc2Us IHNlbGYpLnJ1blRlc3QoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYp CisgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQorICAgICAgICBkYXRh ID0geworICAgICAgICAgICAgImFjbCI6IFsKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAg ICAgICAgICAgICJncmFudGVlIjogZGJfdXNlciwKKyAgICAgICAgICAgICAgICAgICAgImdyYW50 b3IiOiBkYl91c2VyLAorICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlcyI6CisgICAgICAg ICAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpdmlsZWdlX3R5cGUiOiAiWCIsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICJwcml2aWxlZ2UiOiBUcnVlLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAid2l0aF9ncmFudCI6IFRydWUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAg fQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhcmd1bWVudHMiOiBbXSwKKyAgICAgICAg ICAgICJmdW5jb3duZXIiOiBkYl91c2VyLAorICAgICAgICAgICAgImxhbm5hbWUiOiAic3FsIiwK KyAgICAgICAgICAgICJuYW1lIjogInRlc3RfZnVuY3Rpb24iLAorICAgICAgICAgICAgIm9wdGlv bnMiOiBbXSwKKyAgICAgICAgICAgICJwcm9sZWFrcHJvb2YiOiBUcnVlLAorICAgICAgICAgICAg InByb25hbWVzcGFjZSI6IDIyMDAsCisgICAgICAgICAgICAicHJvcmV0dHlwZW5hbWUiOiAiaW50 ZWdlciIsCisgICAgICAgICAgICAicHJvc2VjZGVmIjogVHJ1ZSwKKyAgICAgICAgICAgICJwcm9z cmMiOiAiU0VMRUNUIDE7IiwKKyAgICAgICAgICAgICJwcm9iaW4iOiAiJGxpYmRpci8iLAorICAg ICAgICAgICAgInByb3ZvbGF0aWxlIjogInMiLAorICAgICAgICAgICAgInNlY2xhYmVscyI6IFtd LAorICAgICAgICAgICAgInZhcmlhYmxlcyI6IFtdCisgICAgICAgIH0KKworICAgICAgICBkYXRh WyJuYW1lIl0gPSAidGVzdF9mdW5jdGlvbl9hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4 XQorICAgICAgICBpZiBzZWxmLnNjaGVtYV9pZDoKKyAgICAgICAgICAgIGRhdGFbJ3Byb25hbWVz cGFjZSddID0gc2VsZi5zY2hlbWFfaWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYu c2NoZW1hX2lkID0gZGF0YVsncHJvbmFtZXNwYWNlJ10KKyAgICAgICAgcmVzcG9uc2UgPSBzZWxm LnRlc3Rlci5wb3N0KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dS T1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3Ry KHNlbGYuZGJfaWQpICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAn LycsCisgICAgICAgICAgICBkYXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBjb250 ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1 YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X2Z1bmN0aW9uX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1 bmN0aW9uX2RlbGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWE4 OWZhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25f ZGVsZXRlLnB5CkBAIC0wLDAgKzEsNDkgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRt aW4gNCAtIFBvc3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwg VGhlIHBnQWRtaW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2Vk IHVuZGVyIHRoZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2lt cG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5k YXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJv bSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdy ZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9t IC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKworY2xhc3MgRnVuY3Rpb25EZWxldGVU ZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBkZWxl dGUgdGhlIGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ1bmN0aW9uIG5vZGUuCisgICAg ICAgICgnRmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93 c2VyL2Z1bmN0aW9uL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAg ICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgZnVuY3Rpb24gdW5kZXIgZGF0YWJh c2Ugbm9kZS4gIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uRGVsZXRlVGVzdENhc2UsIHNlbGYp LnNldFVwKCkKKyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAg ICAgIGZ1bmNfbmFtZSA9ICJ0ZXN0X2Z1bmN0aW9uX2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlk NCgpKVsxOjhdCisgICAgICAgIGZ1bmN0aW9uX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfZnVu Y3Rpb24oCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVt YV9uYW1lLCBmdW5jX25hbWUpCisKKyAgICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0K KyAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5kZWxldGUoCisgICAgICAgICAgICBzZWxm LnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAgIHN0cihz ZWxmLnNlcnZlcl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuZGJfaWQpICsgJy8n ICsKKyAgICAgICAgICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKyBzdHIoZnVuY19pZCks CisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicKKyAgICAgICAgKQorICAgICAg ICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAgICAj IERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5l Y3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCisKKyAgICBkZWYg dGVhckRvd24oc2VsZik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X2Z1bmN0aW9uX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X2Z1bmN0 aW9uX2dldC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zMmE1NTg1Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fZ2V0LnB5 CkBAIC0wLDAgKzEsNDkgQEAKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjCisjIHBnQWRtaW4gNCAtIFBv c3RncmVTUUwgVG9vbHMKKyMKKyMgQ29weXJpZ2h0IChDKSAyMDEzIC0gMjAxOCwgVGhlIHBnQWRt aW4gRGV2ZWxvcG1lbnQgVGVhbQorIyBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIHRo ZSBQb3N0Z3JlU1FMIExpY2VuY2UKKyMKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKK2ltcG9ydCB1dWlk CisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMu dGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAgICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWlu LnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5 dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKworY2xhc3MgRnVuY3Rpb25HZXRUZXN0Q2FzZShCYXNl VGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIGZ1bmN0 aW9uIHVuZGVyIHNjaGVtYSBub2RlLiIiIgorICAgIHNraXBfb25fZGF0YWJhc2UgPSBbJ2dwZGIn XQorICAgIHNjZW5hcmlvcyA9IFsKKyAgICAgICAgIyBGZXRjaGluZyBkZWZhdWx0IFVSTCBmb3Ig ZnVuY3Rpb24gbm9kZS4KKyAgICAgICAgKCdGZXRjaCBGdW5jdGlvbiBOb2RlIFVSTCcsCisgICAg ICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvZnVuY3Rpb24vb2JqLycpKQorICAgIF0KKworICAgIGRl ZiBydW5UZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBm dW5jdGlvbiB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIKKyAgICAgICAgc3VwZXIoRnVuY3Rpb25H ZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0 X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfZnVuY3Rpb25fZ2V0XyVzIiAl IHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVuY3Rpb25faW5mbyA9IGZ1bmNzX3V0 aWxzLmNyZWF0ZV9mdW5jdGlvbigKKyAgICAgICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25h bWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSkKKworICAgICAgICB0cmlnZ2VyX2Z1bmNf aWQgPSBmdW5jdGlvbl9pbmZvWzBdCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0 KAorICAgICAgICAgICAgc2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyAr CisgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0 cihzZWxmLmRiX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsg Jy8nICsgc3RyKHRyaWdnZXJfZnVuY19pZCksCisgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0 bWwvanNvbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2Rl LCAyMDApCisgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJh c2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5k Yl9pZCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfZnVuY3Rpb25fcHV0LnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3Rlc3RzL3Rlc3RfZnVuY3Rpb25fcHV0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjg1NjU2ODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVz dF9mdW5jdGlvbl9wdXQucHkKQEAgLTAsMCArMSw1NyBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMK KyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMg LSAyMDE4LCBUaGUgcGdBZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMg cmVsZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKKworaW1wb3J0IGpzb24KK2ltcG9ydCB1dWlkCisKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKKyAg ICBkYXRhYmFzZV91dGlscworZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVz dEdlbmVyYXRvcgorZnJvbSByZWdyZXNzaW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0 X3V0aWxzIGFzIHV0aWxzCitmcm9tIC4gaW1wb3J0IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCisKKwor Y2xhc3MgRnVuY3Rpb25QdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRo aXMgY2xhc3Mgd2lsbCB1cGRhdGUgbmV3IGZ1bmN0aW9uIHVuZGVyIHNjaGVtYSBub2RlLiAiIiIK KyAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAg ICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIGZ1bmN0aW9uIG5vZGUuCisgICAgICAgICgn RmV0Y2ggRnVuY3Rpb24gTm9kZSBVUkwnLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL2Z1 bmN0aW9uL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAg IiIiIFRoaXMgZnVuY3Rpb24gd2lsbCB1cGRhdGUgZnVuY3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9k ZS4gIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkK KyAgICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAgICAgIGZ1bmNf bmFtZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCisg ICAgICAgIGZ1bmN0aW9uX2luZm8gPSBmdW5jc191dGlscy5jcmVhdGVfZnVuY3Rpb24oCisgICAg ICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5j X25hbWUpCisKKyAgICAgICAgZnVuY19pZCA9IGZ1bmN0aW9uX2luZm9bMF0KKworICAgICAgICBk YXRhID0geworICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRoaXMgaXMgYSBwcm9jZWR1cmUg dXBkYXRlIGNvbW1lbnQiLAorICAgICAgICAgICAgImlkIjogZnVuY19pZAorICAgICAgICB9CisK KyAgICAgICAgcHV0X3Jlc3BvbnNlID0gc2VsZi50ZXN0ZXIucHV0KAorICAgICAgICAgICAgc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArCisgICAgICAgICAgICAnLycgKyBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYuZGJfaWQpICsgJy8nICsKKyAgICAgICAg ICAgIHN0cihzZWxmLnNjaGVtYV9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKGZ1bmNfaWQp LAorICAgICAgICAgICAgZGF0YT1qc29uLmR1bXBzKGRhdGEpLAorICAgICAgICAgICAgZm9sbG93 X3JlZGlyZWN0cz1UcnVlKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhwdXRfcmVzcG9uc2Uu c3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAg ICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVy X2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNz CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfYWRkLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2FkZC5weQpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5iNWNkZjE3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2FkZC5weQpAQCAtMCwwICsxLDkwIEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQganNvbgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQg dXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUg aW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRp bHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVu Y3NfdXRpbHMKKworCitjbGFzcyBQcm9jZWR1cmVBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRv cik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2lsbCBhZGQgbmV3IHByb2NlZHVyZSB1bmRlciBzY2hl bWEgbm9kZS4gIiIiCisgICAgc2tpcF9vbl9kYXRhYmFzZSA9IFsnZ3BkYiddCisgICAgc2NlbmFy aW9zID0gWworICAgICAgICAjIEZldGNoaW5nIGRlZmF1bHQgVVJMIGZvciBwcm9jZWR1cmUgbm9k ZS4KKyAgICAgICAgKCdGZXRjaCBQcm9jZWR1cmUgTm9kZSBVUkwnLCBkaWN0KAorICAgICAgICAg ICAgdXJsPScvYnJvd3Nlci9wcm9jZWR1cmUvb2JqLycpKQorICAgIF0KKworICAgIGRlZiBydW5U ZXN0KHNlbGYpOgorICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCBwcm9jZWR1cmUg dW5kZXIgc2NoZW1hIG5vZGUuICIiIgorICAgICAgICBzdXBlcihQcm9jZWR1cmVBZGRUZXN0Q2Fz ZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYp CisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAicGciIGFuZFwKKyAgICAgICAgICAg ICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgMTEwMDAwOgorICAgICAgICAgICAgbWVzc2FnZSA9 ICJQcm9jZWR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHIDwgMTEwMDAwLiIKKyAgICAgICAg ICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKKworICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2 ZXJbInVzZXJuYW1lIl0KKyAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICJhY2wiOiBbCisg ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAiZ3JhbnRlZSI6IGRiX3VzZXIs CisgICAgICAgICAgICAgICAgICAgICJncmFudG9yIjogZGJfdXNlciwKKyAgICAgICAgICAgICAg ICAgICAgInByaXZpbGVnZXMiOgorICAgICAgICAgICAgICAgICAgICAgICAgWworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBy aXZpbGVnZV90eXBlIjogIlgiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJp dmlsZWdlIjogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpdGhfZ3Jh bnQiOiBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICAgICAgICAgXQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAg ICAiYXJndW1lbnRzIjogW10sCisgICAgICAgICAgICAiZnVuY293bmVyIjogZGJfdXNlciwKKyAg ICAgICAgICAgICJsYW5uYW1lIjogInNxbCIsCisgICAgICAgICAgICAibmFtZSI6ICJ0ZXN0X3Bn XzExX3Byb2MiLAorICAgICAgICAgICAgIm9wdGlvbnMiOiBbXSwKKyAgICAgICAgICAgICJwcm9s ZWFrcHJvb2YiOiBUcnVlLAorICAgICAgICAgICAgInByb25hbWVzcGFjZSI6IDIyMDAsCisgICAg ICAgICAgICAicHJvc2VjZGVmIjogVHJ1ZSwKKyAgICAgICAgICAgICJwcm9zcmMiOiAiQkVHSU4g UkFJU0UgRVhDRVBUSU9OICdjb21tYW5kICUgaXMgZGlzYWJsZWQnLCIKKyAgICAgICAgICAgICAg ICAgICAgICAiIHRnX3RhZzsgRU5EOyIsCisgICAgICAgICAgICAic2VjbGFiZWxzIjogW10sCisg ICAgICAgICAgICAidmFyaWFibGVzIjogWworICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg ICAgICAgICAgIm5hbWUiOiAiZW5hYmxlX3NvcnQiLAorICAgICAgICAgICAgICAgICAgICAidmFs dWUiOiBUcnVlCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisK KyAgICAgICAgZGF0YVsibmFtZSJdID0gInRlc3RfcHJvY19hZGRfJXMiICUgc3RyKHV1aWQudXVp ZDQoKSlbMTo4XQorICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBlID09ICdwZyc6CisgICAgICAg ICAgICBkYXRhWydwcm9zcmMnXSA9ICdTRUxFQ1QgMTsnCisgICAgICAgIGlmIHNlbGYuc2NoZW1h X2lkOgorICAgICAgICAgICAgZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzZWxmLnNjaGVtYV9pZAor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBkYXRhWydwcm9uYW1l c3BhY2UnXQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLnBvc3QoCisgICAgICAgICAg ICBzZWxmLnVybCArIHN0cih1dGlscy5TRVJWRVJfR1JPVVApICsgJy8nICsKKyAgICAgICAgICAg IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAg ICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJywgZGF0YT1qc29uLmR1bXBzKGRhdGEp LAorICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24nCisgICAgICAgICkKKworICAg ICAgICBzZWxmLmFzc2VydEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQorICAgICAg ICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nv bm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQpCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF9wcm9jZWR1cmVfZGVsZXRlLnB5IGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2RlbGV0ZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40NTU2YjlmCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX2RlbGV0ZS5weQpAQCAtMCwwICsxLDU2IEBACisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHly aWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhp cyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQgdXVpZAorCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5z ZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisg ICAgZGF0YWJhc2VfdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRl c3RHZW5lcmF0b3IKK2Zyb20gcmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVz dF91dGlscyBhcyB1dGlscworZnJvbSAuIGltcG9ydCB1dGlscyBhcyBmdW5jc191dGlscworCisK K2NsYXNzIHByb2NlZHVyZURlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAi IiIgVGhpcyBjbGFzcyB3aWxsIGRlbGV0ZSB0aGUgcHJvY2VkdXJlIHVuZGVyIHNjaGVtYSBub2Rl LiAiIiIKKyAgICBza2lwX29uX2RhdGFiYXNlID0gWydncGRiJ10KKyAgICBzY2VuYXJpb3MgPSBb CisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwgZm9yIHByb2NlZHVyZSBub2RlLgorICAg ICAgICAoJ0ZldGNoIFByb2NlZHVyZSBOb2RlIFVSTCcsCisgICAgICAgICBkaWN0KHVybD0nL2Jy b3dzZXIvcHJvY2VkdXJlL29iai8nKSkKKyAgICBdCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToK KyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBkZWxldGUgcHJvY2VkdXJlIHVuZGVyIGRh dGFiYXNlIG5vZGUuICIiIgorICAgICAgICBzdXBlcihwcm9jZWR1cmVEZWxldGVUZXN0Q2FzZSwg c2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisK KyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAicGciIGFuZFwKKyAgICAgICAgICAgICAg ICBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgMTEwMDAwOgorICAgICAgICAgICAgbWVzc2FnZSA9ICJQ cm9jZWR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHIDwgMTEwMDAwLiIKKyAgICAgICAgICAg IHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKKworICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9wcm9j ZWR1cmVfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgcHJvY19p bmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX3Byb2NlZHVyZSgKKyAgICAgICAgICAgIHNlbGYuc2Vy dmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNfbmFtZSwKKyAgICAgICAg ICAgIHNlbGYuc2VydmVyX3R5cGUpCisKKyAgICAgICAgcHJvY19pZCA9IHByb2NfaW5mb1swXQor ICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKKyAgICAgICAgICAgIHNlbGYu dXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNl bGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5kYl9pZCkgKyAnLycg KworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0cihwcm9jX2lkKSwK KyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJworICAgICAgICApCisgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCisgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKKyAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZWxmLnNlcnZlcl9pZCwgc2VsZi5kYl9pZCkKKworICAgIGRlZiB0 ZWFyRG93bihzZWxmKToKKyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl c3RzL3Rlc3RfcHJvY2VkdXJlX2dldC5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2Nl ZHVyZV9nZXQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmIxNTg3OAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3Byb2NlZHVyZV9nZXQu cHkKQEAgLTAsMCArMSw1NSBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0g UG9zdGdyZVNRTCBUb29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE4LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIg dGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworaW1wb3J0IHV1 aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0aWxzCitmcm9tIHBnYWRt aW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHJlZ3Jlc3Npb24u cHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gLiBpbXBv cnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBQcm9jZWR1cmVHZXRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiVGhpcyBjbGFzcyB3aWxsIGZldGNoIGFkZGVkIHBy b2NlZHVyZSB1bmRlciBzY2hlbWEgbm9kZS4iIiIKKyAgICBza2lwX29uX2RhdGFiYXNlID0gWydn cGRiJ10KKyAgICBzY2VuYXJpb3MgPSBbCisgICAgICAgICMgRmV0Y2hpbmcgZGVmYXVsdCBVUkwg Zm9yIHByb2NlZHVyZSBub2RlLgorICAgICAgICAoJ0ZldGNoIFByb2NlZHVyZSBOb2RlIFVSTCcs CisgICAgICAgICBkaWN0KHVybD0nL2Jyb3dzZXIvcHJvY2VkdXJlL29iai8nKSkKKyAgICBdCisK KyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgIiIiIFRoaXMgZnVuY3Rpb24gd2lsbCBn ZXQgcHJvY2VkdXJlIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgorICAgICAgICBzdXBlcihQcm9j ZWR1cmVHZXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRp bHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAicGciIGFu ZFwKKyAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl92ZXJzaW9uIDwgMTEwMDAwOgorICAgICAg ICAgICAgbWVzc2FnZSA9ICJQcm9jZWR1cmVzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFBHIDwgMTEw MDAwLiIKKyAgICAgICAgICAgIHNlbGYuc2tpcFRlc3QobWVzc2FnZSkKKworICAgICAgICBmdW5j X25hbWUgPSAidGVzdF9wcm9jZWR1cmVfZ2V0XyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0K KyAgICAgICAgcHJvY19pbmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX3Byb2NlZHVyZSgKKyAgICAg ICAgICAgIHNlbGYuc2VydmVyLCBzZWxmLmRiX25hbWUsIHNlbGYuc2NoZW1hX25hbWUsIGZ1bmNf bmFtZSwKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX3R5cGUpCisKKyAgICAgICAgcHJvY19pZCA9 IHByb2NfaW5mb1swXQorICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmdldCgKKyAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5k Yl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0 cihwcm9jX2lkKSwKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZT0naHRtbC9qc29uJykKKyAgICAg ICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2NvZGUsIDIwMCkKKyAgICAgICAg IyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25u ZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQorCisgICAgZGVm IHRlYXJEb3duKHNlbGYpOgorICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdGVzdF9wcm9jZWR1cmVfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJv Y2VkdXJlX3B1dC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43M2JhMWFl Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfcHJvY2VkdXJlX3B1 dC5weQpAQCAtMCwwICsxLDYyIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQg anNvbgoraW1wb3J0IHV1aWQKKworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAorICAgIGRhdGFiYXNlX3V0 aWxzCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0R2VuZXJhdG9yCitm cm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRp bHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKKworCitjbGFzcyBQcm9jZWR1 cmVQdXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CisgICAgIiIiIFRoaXMgY2xhc3Mgd2ls bCB1cGRhdGUgbmV3IHByb2NlZHVyZSB1bmRlciBzY2hlbWEgbm9kZS4gIiIiCisgICAgc2tpcF9v bl9kYXRhYmFzZSA9IFsnZ3BkYiddCisgICAgc2NlbmFyaW9zID0gWworICAgICAgICAjIEZldGNo aW5nIGRlZmF1bHQgVVJMIGZvciBwcm9jZWR1cmUgbm9kZS4KKyAgICAgICAgKCdGZXRjaCBQcm9j ZWR1cmUgTm9kZSBVUkwnLAorICAgICAgICAgZGljdCh1cmw9Jy9icm93c2VyL3Byb2NlZHVyZS9v YmovJykpCisgICAgXQorCisgICAgZGVmIHJ1blRlc3Qoc2VsZik6CisgICAgICAgICIiIiBUaGlz IGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHByb2NlZHVyZSB1bmRlciBkYXRhYmFzZSBub2RlLiAiIiIK KyAgICAgICAgc3VwZXIoUHJvY2VkdXJlUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAgICAg ICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCisgICAgICAgIGlmIHNlbGYuc2Vy dmVyX3R5cGUgPT0gInBnIiBhbmRcCisgICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lv biA8IDExMDAwMDoKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAiUHJvY2VkdXJlcyBhcmUgbm90IHN1 cHBvcnRlZCBieSBQRyA8IDExMDAwMC4iCisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KG1lc3Nh Z2UpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRlc3RfcHJvY2VkdXJlX3B1dF8lcyIgJSBzdHIo dXVpZC51dWlkNCgpKVsxOjhdCisgICAgICAgIHByb2NfaW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0 ZV9wcm9jZWR1cmUoCisgICAgICAgICAgICBzZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxm LnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCisgICAgICAgICAgICBzZWxmLnNlcnZlcl90eXBlKQor CisgICAgICAgIHByb2NfaWQgPSBwcm9jX2luZm9bMF0KKyAgICAgICAgZGF0YSA9IHsKKyAgICAg ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIHByb2NlZHVyZSB1cGRhdGUgY29tbWVudCIs CisgICAgICAgICAgICAiaWQiOiBwcm9jX2lkCisgICAgICAgIH0KKworICAgICAgICBwdXRfcmVz cG9uc2UgPSBzZWxmLnRlc3Rlci5wdXQoCisgICAgICAgICAgICBzZWxmLnVybCArIHN0cih1dGls cy5TRVJWRVJfR1JPVVApICsKKyAgICAgICAgICAgICcvJyArIHN0cihzZWxmLnNlcnZlcl9pZCkg KyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc3RyKHNlbGYuc2No ZW1hX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIocHJvY19pZCksCisgICAgICAgICAgICBk YXRhPWpzb24uZHVtcHMoZGF0YSksCisgICAgICAgICAgICBmb2xsb3dfcmVkaXJlY3RzPVRydWUp CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHB1dF9yZXNwb25zZS5zdGF0dXNfY29kZSwgMjAw KQorICAgICAgICAjIERpc2Nvbm5lY3QgdGhlIGRhdGFiYXNlCisgICAgICAgIGRhdGFiYXNlX3V0 aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2ZXJfaWQsIHNlbGYuZGJfaWQp CisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHBhc3MKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfYWRkLnB5CmluZGV4IGQyMzhiZjAuLmU5OWY3YzMgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19hZGQucHkKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2FkZC5weQpAQCAtMTAsMTQg KzEwLDExIEBACiBpbXBvcnQganNvbgogaW1wb3J0IHV1aWQKIAotZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBc Ci0gICAgdXRpbHMgYXMgc2NoZW1hX3V0aWxzCiBmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJf Z3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCiAgICAgZGF0 YWJhc2VfdXRpbHMKLWZyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0aWxzIGFzIHNl cnZlcl91dGlscwogZnJvbSBwZ2FkbWluLnV0aWxzLnJvdXRlIGltcG9ydCBCYXNlVGVzdEdlbmVy YXRvcgotZnJvbSByZWdyZXNzaW9uIGltcG9ydCBwYXJlbnRfbm9kZV9kaWN0CiBmcm9tIHJlZ3Jl c3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20g LiBpbXBvcnQgdXRpbHMgYXMgZnVuY3NfdXRpbHMKIAogCiBjbGFzcyBUcmlnZ2VyRnVuY0FkZFRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKQEAgLTMyLDMwICsyOSw3IEBAIGNsYXNzIFRyaWdn ZXJGdW5jQWRkVGVzdENhc2UoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAgIGRlZiBydW5UZXN0KHNl bGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGFkZCB0cmlnZ2VyIGZ1bmN0aW9u IHVuZGVyIHNjaGVtYSBub2RlLiAiIiIKICAgICAgICAgc3VwZXIoVHJpZ2dlckZ1bmNBZGRUZXN0 Q2FzZSwgc2VsZikucnVuVGVzdCgpCi0gICAgICAgIGRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0 WyJkYXRhYmFzZSJdWy0xXVsiZGJfbmFtZSJdCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZv WyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAg ICAgIHByb3JldHR5cGVuYW1lID0gImV2ZW50X3RyaWdnZXIvdHJpZ2dlciIKLSAgICAgICAgc2Vy dmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJfaWQpCi0g ICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0ZWQuIjoK LSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8gc2VydmVy IHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImdyb3Vwcy4i KQotICAgICAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgotICAgICAgICAgICAg aWYgc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0gPCA5MDMwMDoKLSAgICAgICAgICAgICAg ICBwcm9yZXR0eXBlbmFtZSA9ICJ0cmlnZ2VyIgotCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNl X3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJf aWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFk ZCBhIGZ1bmN0aW9uLiIpCi0gICAgICAgIHNjaGVtYV9pZCA9IHNjaGVtYV9pbmZvWyJzY2hlbWFf aWQiXQotICAgICAgICBzY2hlbWFfbmFtZSA9IHNjaGVtYV9pbmZvWyJzY2hlbWFfbmFtZSJdCi0g ICAgICAgIHNjaGVtYV9yZXNwb25zZSA9IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhzZWxm LnNlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25z ZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVt YSB0byBhZGQgYSBmdW5jdGlvbi4iKQorICAgICAgICBzZWxmID0gZnVuY3NfdXRpbHMuc2V0X3Vw KHNlbGYpCiAgICAgICAgIGRiX3VzZXIgPSBzZWxmLnNlcnZlclsidXNlcm5hbWUiXQogICAgICAg ICBkYXRhID0gewogICAgICAgICAgICAgImFjbCI6IFsKQEAgLTc5LDcgKzUzLDcgQEAgY2xhc3Mg VHJpZ2dlckZ1bmNBZGRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICAgICAi b3B0aW9ucyI6IFtdLAogICAgICAgICAgICAgInByb2xlYWtwcm9vZiI6IFRydWUsCiAgICAgICAg ICAgICAicHJvbmFtZXNwYWNlIjogMjIwMCwKLSAgICAgICAgICAgICJwcm9yZXR0eXBlbmFtZSI6 IHByb3JldHR5cGVuYW1lLAorICAgICAgICAgICAgInByb3JldHR5cGVuYW1lIjogc2VsZi5wcm9y ZXR0eXBlbmFtZSwKICAgICAgICAgICAgICJwcm9zZWNkZWYiOiBUcnVlLAogICAgICAgICAgICAg InByb3NyYyI6ICJCRUdJTiBSQUlTRSBFWENFUFRJT04gJ2NvbW1hbmQgJSBpcyBkaXNhYmxlZCcs IgogICAgICAgICAgICAgICAgICAgICAgICIgdGdfdGFnOyBFTkQ7IiwKQEAgLTk4LDE2ICs3Miwx NyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0FkZFRlc3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAg ICAgICAgZm9yIGZ1bmNfdHlwZSBpbiB0cmlnZ2VyX2Z1bmNfdHlwZXM6CiAgICAgICAgICAgICBk YXRhWydwcm9yZXR0eXBlbmFtZSddID0gZnVuY190eXBlCiAgICAgICAgICAgICBkYXRhWyJuYW1l Il0gPSAidGVzdF9ldmVudF9hZGRfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQotICAgICAg ICAgICAgaWYgc2NoZW1hX2lkOgotICAgICAgICAgICAgICAgIGRhdGFbJ3Byb25hbWVzcGFjZSdd ID0gc2NoZW1hX2lkCisgICAgICAgICAgICBpZiBzZWxmLnNjaGVtYV9pZDoKKyAgICAgICAgICAg ICAgICBkYXRhWydwcm9uYW1lc3BhY2UnXSA9IHNlbGYuc2NoZW1hX2lkCiAgICAgICAgICAgICBl bHNlOgotICAgICAgICAgICAgICAgIHNjaGVtYV9pZCA9IGRhdGFbJ3Byb25hbWVzcGFjZSddCisg ICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfaWQgPSBkYXRhWydwcm9uYW1lc3BhY2UnXQogICAg ICAgICAgICAgcmVzcG9uc2UgPSBzZWxmLnRlc3Rlci5wb3N0KAogICAgICAgICAgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKwotICAgICAgICAgICAgICAg IHN0cihzZXJ2ZXJfaWQpICsgJy8nICsgc3RyKGRiX2lkKSArICcvJyArIHN0cihzY2hlbWFfaWQp ICsKKyAgICAgICAgICAgICAgICBzdHIoc2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsgc3RyKHNlbGYu ZGJfaWQpICsKKyAgICAgICAgICAgICAgICAnLycgKyBzdHIoc2VsZi5zY2hlbWFfaWQpICsKICAg ICAgICAgICAgICAgICAnLycsIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwgY29udGVudF90eXBlPSdo dG1sL2pzb24nCiAgICAgICAgICAgICApCiAKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz KHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0 YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBz ZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFi YXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2RlbGV0ZS5weSBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19kZWxldGUucHkKaW5kZXggM2QxZmU5Zi4uZTJmYWE0YyAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX2RlbGV0ZS5w eQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZGVsZXRlLnB5CkBA IC05LDE1ICs5LDExIEBACiAKIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAotICAg IHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vw cy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFiYXNl X3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2ZXJf dXRpbHMKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0b3IK LWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNzaW9u LnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIC4gaW1w b3J0IHV0aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMgYXMg ZnVuY3NfdXRpbHMKIAogCiBjbGFzcyBUcmlnZ2VyRnVuY0RlbGV0ZVRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKQEAgLTI5LDQ5ICsyNSwyNyBAQCBjbGFzcyBUcmlnZ2VyRnVuY0RlbGV0ZVRl c3RDYXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90 cmlnZ2VyX2Z1bmN0aW9uL29iai8nKSkKICAgICBdCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0g ICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAg ICAgICAgc2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRi X25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2No ZW1hIl1bLTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50 X25vZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQotCiAgICAgZGVmIHJ1blRlc3Qo c2VsZik6CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgZGVsZXRlIHRyaWdnZXIgZnVu Y3Rpb24gdW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFy ZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9p bmZvWyJzZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCisg ICAgICAgIHN1cGVyKFRyaWdnZXJGdW5jRGVsZXRlVGVzdENhc2UsIHNlbGYpLnNldFVwKCkKKyAg ICAgICAgc2VsZiA9IGZ1bmNzX3V0aWxzLnNldF91cChzZWxmKQorCiAgICAgICAgIGZ1bmNfbmFt ZSA9ICJ0ZXN0X2V2ZW50X2RlbGV0ZV8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhdCi0gICAg ICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwgc2VydmVy X2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIgY29ubmVj dGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRv IHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJn cm91cHMuIikKLSAgICAgICAgc2VydmVyX3ZlcnNpb24gPSAwCi0gICAgICAgIGlmICJ0eXBlIiBp biBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJkYXRhIl1b InZlcnNpb24iXSA8IDkwMzAwOgotICAgICAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9uID0gc2Vy dmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0KLSAgICAgICAgc2VsZi5mdW5jdGlvbl9pbmZvID0g dHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKKyAgICAgICAgZnVu Y3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19u YW1lLAotICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24pCisgICAgICAgICAgICBzZWxmLnNlcnZl cl92ZXJzaW9uKQogCi0gICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0 YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwgZGJfaWQpCi0gICAgICAgIGlmIG5v dCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp b24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRvIGFkZCBjb2xsYXRpb24uIikKLSAg ICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxzLnZlcmlmeV9zY2hlbWFzKHNlbGYu c2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkKLSAgICAgICAgaWYgbm90IHNjaGVt YV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGZpbmQg dGhlIHNjaGVtYSB0byBhZGQgdGhlIGNvbGxhdGlvbi4iKQotICAgICAgICB0cmlnZ2VyX2Z1bmNf aWQgPSBzZWxmLmZ1bmN0aW9uX2luZm9bMF0KKyAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gZnVu Y3Rpb25faW5mb1swXQogICAgICAgICByZXNwb25zZSA9IHNlbGYudGVzdGVyLmRlbGV0ZSgKLSAg ICAgICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKyBzdHIo c2VydmVyX2lkKSArICcvJyArCi0gICAgICAgICAgICBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAg ICAgICAgIHNlbGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKyAnLycgKworICAgICAg ICAgICAgc3RyKHNlbGYuc2VydmVyX2lkKSArICcvJyArCisgICAgICAgICAgICBzdHIoc2VsZi5k Yl9pZCkgKyAnLycgKwogICAgICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArIHN0 cih0cmlnZ2VyX2Z1bmNfaWQpLAogICAgICAgICAgICAgY29udGVudF90eXBlPSdodG1sL2pzb24n CiAgICAgICAgICkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocmVzcG9uc2Uuc3RhdHVzX2Nv ZGUsIDIwMCkKICAgICAgICAgIyBEaXNjb25uZWN0IHRoZSBkYXRhYmFzZQotICAgICAgICBkYXRh YmFzZV91dGlscy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlcnZlcl9pZCwgZGJfaWQpCisg ICAgICAgIGRhdGFiYXNlX3V0aWxzLmRpc2Nvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgc2VsZi5zZXJ2 ZXJfaWQsIHNlbGYuZGJfaWQpCiAKICAgICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgIHBh c3MKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19nZXQu cHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfZ2V0LnB5CmluZGV4IDdl YjBkMmEuLjUzZmRiZWIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdn ZXJfZnVuY19nZXQucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3Rlc3RfdHJpZ2dlcl9mdW5j X2dldC5weQpAQCAtOSwxNSArOSwxMSBAQAogCiBpbXBvcnQgdXVpZAogCi1mcm9tIHBnYWRtaW4u YnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGVzdHMgaW1w b3J0IFwKLSAgICB1dGlscyBhcyBzY2hlbWFfdXRpbHMKIGZyb20gcGdhZG1pbi5icm93c2VyLnNl cnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudGVzdHMgaW1wb3J0IHV0aWxzIGFzIFwKICAg ICBkYXRhYmFzZV91dGlscwotZnJvbSBwZ2FkbWluLnV0aWxzIGltcG9ydCBzZXJ2ZXJfdXRpbHMg YXMgc2VydmVyX3V0aWxzCiBmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1wb3J0IEJhc2VUZXN0 R2VuZXJhdG9yCi1mcm9tIHJlZ3Jlc3Npb24gaW1wb3J0IHBhcmVudF9ub2RlX2RpY3QKIGZyb20g cmVncmVzc2lvbi5weXRob25fdGVzdF91dGlscyBpbXBvcnQgdGVzdF91dGlscyBhcyB1dGlscwot ZnJvbSAuIGltcG9ydCB1dGlscyBhcyB0cmlnZ2VyX2Z1bmNzX3V0aWxzCitmcm9tIC4gaW1wb3J0 IHV0aWxzIGFzIGZ1bmNzX3V0aWxzCiAKIAogY2xhc3MgVHJpZ2dlckZ1bmNHZXRUZXN0Q2FzZShC YXNlVGVzdEdlbmVyYXRvcik6CkBAIC0yOSw0OSArMjUsMjYgQEAgY2xhc3MgVHJpZ2dlckZ1bmNH ZXRUZXN0Q2FzZShCYXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgICBkaWN0KHVybD0nL2Jyb3dz ZXIvdHJpZ2dlcl9mdW5jdGlvbi9vYmovJykpCiAgICAgXQogCi0gICAgZGVmIHNldFVwKHNlbGYp OgotICAgICAgICBzdXBlcihUcmlnZ2VyRnVuY0dldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCi0g ICAgICAgIHNlbGYuZGJfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdWyJk Yl9uYW1lIl0KLSAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSA9IHBhcmVudF9ub2RlX2RpY3RbInNj aGVtYSJdWy0xXVsic2NoZW1hX25hbWUiXQotICAgICAgICBzZWxmLnNjaGVtYV9pZCA9IHBhcmVu dF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXVsic2NoZW1hX2lkIl0KLQogICAgIGRlZiBydW5UZXN0 KHNlbGYpOgogICAgICAgICAiIiIgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSB0cmlnZ2VyIGZ1 bmN0aW9uIHVuZGVyIGRhdGFiYXNlIG5vZGUuICIiIgotICAgICAgICBzY2hlbWFfaW5mbyA9IHBh cmVudF9ub2RlX2RpY3RbInNjaGVtYSJdWy0xXQotICAgICAgICBzZXJ2ZXJfaWQgPSBzY2hlbWFf aW5mb1sic2VydmVyX2lkIl0KLSAgICAgICAgZGJfaWQgPSBzY2hlbWFfaW5mb1siZGJfaWQiXQot ICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9ldmVudF9nZXRfJXMiICUgc3RyKHV1aWQudXVpZDQo KSlbMTo4XQotICAgICAgICBkYl91c2VyID0gc2VsZi5zZXJ2ZXJbInVzZXJuYW1lIl0KLSAgICAg ICAgc2VydmVyX2NvbiA9IHNlcnZlcl91dGlscy5jb25uZWN0X3NlcnZlcihzZWxmLCBzZXJ2ZXJf aWQpCi0gICAgICAgIGlmIG5vdCBzZXJ2ZXJfY29uWyJpbmZvIl0gPT0gIlNlcnZlciBjb25uZWN0 ZWQuIjoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291bGQgbm90IGNvbm5lY3QgdG8g c2VydmVyIHRvIGFkZCByZXNvdXJjZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImdy b3Vwcy4iKQotICAgICAgICBzZXJ2ZXJfdmVyc2lvbiA9IDAKLSAgICAgICAgaWYgInR5cGUiIGlu IHNlcnZlcl9jb25bImRhdGEiXToKLSAgICAgICAgICAgIGlmIHNlcnZlcl9jb25bImRhdGEiXVsi dmVyc2lvbiJdIDwgOTAzMDA6Ci0gICAgICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24gPSBzZXJ2 ZXJfY29uWyJkYXRhIl1bInZlcnNpb24iXQotICAgICAgICBzZWxmLmZ1bmN0aW9uX2luZm8gPSB0 cmlnZ2VyX2Z1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAorICAgICAgICBzdXBl cihUcmlnZ2VyRnVuY0dldFRlc3RDYXNlLCBzZWxmKS5zZXRVcCgpCisgICAgICAgIHNlbGYgPSBm dW5jc191dGlscy5zZXRfdXAoc2VsZikKKworICAgICAgICBmdW5jX25hbWUgPSAidGVzdF9ldmVu dF9kZWxldGVfJXMiICUgc3RyKHV1aWQudXVpZDQoKSlbMTo4XQorICAgICAgICBmdW5jdGlvbl9p bmZvID0gZnVuY3NfdXRpbHMuY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oCiAgICAgICAgICAgICBz ZWxmLnNlcnZlciwgc2VsZi5kYl9uYW1lLCBzZWxmLnNjaGVtYV9uYW1lLCBmdW5jX25hbWUsCi0g ICAgICAgICAgICBzZXJ2ZXJfdmVyc2lvbikKKyAgICAgICAgICAgIHNlbGYuc2VydmVyX3ZlcnNp b24pCiAKLSAgICAgICAgZGJfY29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShz ZWxmLCB1dGlscy5TRVJWRVJfR1JPVVAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2VydmVyX2lkLCBkYl9pZCkKLSAgICAgICAgaWYgbm90IGRiX2Nv blsnZGF0YSddWyJjb25uZWN0ZWQiXToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ291 bGQgbm90IGNvbm5lY3QgdG8gZGF0YWJhc2UgdG8gYWRkIGNvbGxhdGlvbi4iKQotICAgICAgICBz Y2hlbWFfcmVzcG9uc2UgPSBzY2hlbWFfdXRpbHMudmVyaWZ5X3NjaGVtYXMoc2VsZi5zZXJ2ZXIs Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz ZWxmLmRiX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzZWxmLnNjaGVtYV9uYW1lKQotICAgICAgICBpZiBub3Qgc2NoZW1hX3Jlc3Bv bnNlOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCB0aGUgc2No ZW1hIHRvIGFkZCB0aGUgY29sbGF0aW9uLiIpCi0gICAgICAgIHRyaWdnZXJfZnVuY19pZCA9IHNl bGYuZnVuY3Rpb25faW5mb1swXQorICAgICAgICB0cmlnZ2VyX2Z1bmNfaWQgPSBmdW5jdGlvbl9p bmZvWzBdCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50ZXN0ZXIuZ2V0KAotICAgICAgICAgICAg c2VsZi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArIHN0cihzZXJ2ZXJfaWQp ICsgJy8nICsKLSAgICAgICAgICAgIHN0cihkYl9pZCkgKyAnLycgKworICAgICAgICAgICAgc2Vs Zi51cmwgKyBzdHIodXRpbHMuU0VSVkVSX0dST1VQKSArICcvJyArCisgICAgICAgICAgICBzdHIo c2VsZi5zZXJ2ZXJfaWQpICsgJy8nICsKKyAgICAgICAgICAgIHN0cihzZWxmLmRiX2lkKSArICcv JyArCiAgICAgICAgICAgICBzdHIoc2VsZi5zY2hlbWFfaWQpICsgJy8nICsgc3RyKHRyaWdnZXJf ZnVuY19pZCksCiAgICAgICAgICAgICBjb250ZW50X3R5cGU9J2h0bWwvanNvbicpCiAgICAgICAg IHNlbGYuYXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAgICAgICAgICMg RGlzY29ubmVjdCB0aGUgZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVj dF9kYXRhYmFzZShzZWxmLCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGls cy5kaXNjb25uZWN0X2RhdGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQog CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl c3RzL3Rlc3RfdHJpZ2dlcl9mdW5jX3B1dC5weQppbmRleCA2M2Q0YzA4Li5mMTEzNmQ1IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdGVzdF90cmlnZ2VyX2Z1bmNfcHV0LnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZXN0cy90ZXN0X3RyaWdnZXJfZnVuY19wdXQucHkKQEAgLTEwLDE1ICsx MCwxMSBAQAogaW1wb3J0IGpzb24KIGltcG9ydCB1dWlkCiAKLWZyb20gcGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuc2NoZW1hcy50ZXN0cyBpbXBvcnQgXAot ICAgIHV0aWxzIGFzIHNjaGVtYV91dGlscwogZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dy b3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy50ZXN0cyBpbXBvcnQgdXRpbHMgYXMgXAogICAgIGRhdGFi YXNlX3V0aWxzCi1mcm9tIHBnYWRtaW4udXRpbHMgaW1wb3J0IHNlcnZlcl91dGlscyBhcyBzZXJ2 ZXJfdXRpbHMKIGZyb20gcGdhZG1pbi51dGlscy5yb3V0ZSBpbXBvcnQgQmFzZVRlc3RHZW5lcmF0 b3IKLWZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFyZW50X25vZGVfZGljdAogZnJvbSByZWdyZXNz aW9uLnB5dGhvbl90ZXN0X3V0aWxzIGltcG9ydCB0ZXN0X3V0aWxzIGFzIHV0aWxzCi1mcm9tIC4g aW1wb3J0IHV0aWxzIGFzIHRyaWdnZXJfZnVuY3NfdXRpbHMKK2Zyb20gLiBpbXBvcnQgdXRpbHMg YXMgZnVuY3NfdXRpbHMKIAogCiBjbGFzcyBUcmlnZ2VyRnVuY1B1dFRlc3RDYXNlKEJhc2VUZXN0 R2VuZXJhdG9yKToKQEAgLTMwLDYzICsyNiwzMyBAQCBjbGFzcyBUcmlnZ2VyRnVuY1B1dFRlc3RD YXNlKEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgIGRpY3QodXJsPScvYnJvd3Nlci90cmln Z2VyX2Z1bmN0aW9uL29iai8nKSkKICAgICBdCiAKLSAgICBkZWYgc2V0VXAoc2VsZik6Ci0gICAg ICAgIHN1cGVyKFRyaWdnZXJGdW5jUHV0VGVzdENhc2UsIHNlbGYpLnNldFVwKCkKLSAgICAgICAg c2VsZi5kYl9uYW1lID0gcGFyZW50X25vZGVfZGljdFsiZGF0YWJhc2UiXVstMV1bImRiX25hbWUi XQotICAgICAgICBzZWxmLnNjaGVtYV9uYW1lID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1b LTFdWyJzY2hlbWFfbmFtZSJdCi0gICAgICAgIHNlbGYuc2NoZW1hX2lkID0gcGFyZW50X25vZGVf ZGljdFsic2NoZW1hIl1bLTFdWyJzY2hlbWFfaWQiXQotCiAgICAgZGVmIHJ1blRlc3Qoc2VsZik6 CiAgICAgICAgICIiIiBUaGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIHRyaWdnZXIgZnVuY3Rpb24g dW5kZXIgZGF0YWJhc2Ugbm9kZS4gIiIiCi0gICAgICAgIHNjaGVtYV9pbmZvID0gcGFyZW50X25v ZGVfZGljdFsic2NoZW1hIl1bLTFdCi0gICAgICAgIHNlcnZlcl9pZCA9IHNjaGVtYV9pbmZvWyJz ZXJ2ZXJfaWQiXQotICAgICAgICBkYl9pZCA9IHNjaGVtYV9pbmZvWyJkYl9pZCJdCi0gICAgICAg IGZ1bmNfbmFtZSA9ICJ0ZXN0X2V2ZW50X3B1dF8lcyIgJSBzdHIodXVpZC51dWlkNCgpKVsxOjhd Ci0gICAgICAgIHNlcnZlcl9jb24gPSBzZXJ2ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIoc2VsZiwg c2VydmVyX2lkKQotICAgICAgICBpZiBub3Qgc2VydmVyX2NvblsiaW5mbyJdID09ICJTZXJ2ZXIg Y29ubmVjdGVkLiI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25u ZWN0IHRvIHNlcnZlciB0byBhZGQgcmVzb3VyY2UgIgotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICJncm91cHMuIikKLSAgICAgICAgc2VydmVyX3ZlcnNpb24gPSAwCi0gICAgICAgIGlmICJ0 eXBlIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfY29uWyJk YXRhIl1bInZlcnNpb24iXSA8IDkwMzAwOgotICAgICAgICAgICAgICAgIHNlcnZlcl92ZXJzaW9u ID0gc2VydmVyX2NvblsiZGF0YSJdWyJ2ZXJzaW9uIl0KLSAgICAgICAgc2VsZi5mdW5jdGlvbl9p bmZvID0gdHJpZ2dlcl9mdW5jc191dGlscy5jcmVhdGVfdHJpZ2dlcl9mdW5jdGlvbigKKyAgICAg ICAgc3VwZXIoVHJpZ2dlckZ1bmNQdXRUZXN0Q2FzZSwgc2VsZikuc2V0VXAoKQorICAgICAgICBz ZWxmID0gZnVuY3NfdXRpbHMuc2V0X3VwKHNlbGYpCisKKyAgICAgICAgZnVuY19uYW1lID0gInRl c3RfZXZlbnRfZGVsZXRlXyVzIiAlIHN0cih1dWlkLnV1aWQ0KCkpWzE6OF0KKyAgICAgICAgZnVu Y3Rpb25faW5mbyA9IGZ1bmNzX3V0aWxzLmNyZWF0ZV90cmlnZ2VyX2Z1bmN0aW9uKAogICAgICAg ICAgICAgc2VsZi5zZXJ2ZXIsIHNlbGYuZGJfbmFtZSwgc2VsZi5zY2hlbWFfbmFtZSwgZnVuY19u YW1lLAotICAgICAgICAgICAgc2VydmVyX3ZlcnNpb24pCi0gICAgICAgIGRiX2NvbiA9IGRhdGFi YXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJhc2Uoc2VsZiwgdXRpbHMuU0VSVkVSX0dST1VQLAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9pZCwg ZGJfaWQpCi0gICAgICAgIGlmIG5vdCBkYl9jb25bJ2RhdGEnXVsiY29ubmVjdGVkIl06Ci0gICAg ICAgICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIGRhdGFiYXNlIHRv IGFkZCBjb2xsYXRpb24uIikKLSAgICAgICAgc2NoZW1hX3Jlc3BvbnNlID0gc2NoZW1hX3V0aWxz LnZlcmlmeV9zY2hlbWFzKHNlbGYuc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9uYW1lLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zY2hlbWFfbmFtZSkK LSAgICAgICAgaWYgbm90IHNjaGVtYV9yZXNwb25zZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw dGlvbigiQ291bGQgbm90IGZpbmQgdGhlIHNjaGVtYSB0byBhZGQgdGhlIGNvbGxhdGlvbi4iKQot ICAgICAgICBmdW5jX25hbWUgPSBzZWxmLmZ1bmN0aW9uX2luZm9bMV0KLSAgICAgICAgZnVuY19y ZXNwb25zZSA9IHRyaWdnZXJfZnVuY3NfdXRpbHMudmVyaWZ5X3RyaWdnZXJfZnVuY3Rpb24oCi0g ICAgICAgICAgICBzZWxmLnNlcnZlciwKLSAgICAgICAgICAgIHNlbGYuZGJfbmFtZSwKLSAgICAg ICAgICAgIGZ1bmNfbmFtZSkKLSAgICAgICAgaWYgbm90IGZ1bmNfcmVzcG9uc2U6Ci0gICAgICAg ICAgICByYWlzZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBmaW5kIHRoZSB0cmlnZ2VyIGZ1bmN0aW9u IHRvIHVwZGF0ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGl0J3MgZGV0YWlscy4i KQorICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfdmVyc2lvbikKKworICAgICAgICB0cmlnZ2VyX2Z1 bmNfaWQgPSBmdW5jdGlvbl9pbmZvWzBdCiAKLSAgICAgICAgdHJpZ2dlcl9mdW5jX2lkID0gc2Vs Zi5mdW5jdGlvbl9pbmZvWzBdCiAgICAgICAgIGRhdGEgPSB7Ci0gICAgICAgICAgICAiZGVzY3Jp cHRpb24iOiAiVGhpcyBpcyB0cmlnZ2VyIGZ1bmN0aW9uIHVwZGF0ZSBjb21tZW50IiwKKyAgICAg ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGlzIGEgdHJpZ2dlciBmdW5jdGlvbiB1cGRhdGUg Y29tbWVudCIsCiAgICAgICAgICAgICAiaWQiOiB0cmlnZ2VyX2Z1bmNfaWQKICAgICAgICAgfQog CiAgICAgICAgIHB1dF9yZXNwb25zZSA9IHNlbGYudGVzdGVyLnB1dCgKICAgICAgICAgICAgIHNl bGYudXJsICsgc3RyKHV0aWxzLlNFUlZFUl9HUk9VUCkgKwotICAgICAgICAgICAgJy8nICsgc3Ry KHNlcnZlcl9pZCkgKyAnLycgKyBzdHIoZGJfaWQpICsgJy8nICsKKyAgICAgICAgICAgICcvJyAr IHN0cihzZWxmLnNlcnZlcl9pZCkgKyAnLycgKyBzdHIoc2VsZi5kYl9pZCkgKyAnLycgKwogICAg ICAgICAgICAgc3RyKHNlbGYuc2NoZW1hX2lkKSArICcvJyArCiAgICAgICAgICAgICBzdHIodHJp Z2dlcl9mdW5jX2lkKSwKICAgICAgICAgICAgIGRhdGE9anNvbi5kdW1wcyhkYXRhKSwKICAgICAg ICAgICAgIGZvbGxvd19yZWRpcmVjdHM9VHJ1ZSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo cHV0X3Jlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUg ZGF0YWJhc2UKLSAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxm LCBzZXJ2ZXJfaWQsIGRiX2lkKQorICAgICAgICBkYXRhYmFzZV91dGlscy5kaXNjb25uZWN0X2Rh dGFiYXNlKHNlbGYsIHNlbGYuc2VydmVyX2lkLCBzZWxmLmRiX2lkKQogCiAgICAgZGVmIHRlYXJE b3duKHNlbGYpOgogICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMv dXRpbHMucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVzdHMvdXRpbHMucHkKaW5kZXggNGZhY2Y2MC4uMjcw MzhlNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rlc3RzL3V0aWxzLnB5CisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZXN0cy91dGlscy5weQpAQCAtMTMsNiArMTMsMTEgQEAgaW1wb3J0IHN5cwogaW1w b3J0IHRyYWNlYmFjawogCiBmcm9tIHJlZ3Jlc3Npb24ucHl0aG9uX3Rlc3RfdXRpbHMgaW1wb3J0 IHRlc3RfdXRpbHMgYXMgdXRpbHMKK2Zyb20gcGdhZG1pbi51dGlscyBpbXBvcnQgc2VydmVyX3V0 aWxzIGFzIHNlcnZlcl91dGlscworZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRlc3RzIGltcG9ydCBcCisgICAgdXRpbHMgYXMgc2No ZW1hX3V0aWxzCitmcm9tIHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0 YWJhc2VzLnRlc3RzIGltcG9ydCB1dGlscyBhcyBcCisgICAgZGF0YWJhc2VfdXRpbHMKIAogCiBk ZWYgY3JlYXRlX3RyaWdnZXJfZnVuY3Rpb24oc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwg ZnVuY19uYW1lLApAQCAtOTIsMyArOTcsMTE4IEBAIGRlZiB2ZXJpZnlfdHJpZ2dlcl9mdW5jdGlv bihzZXJ2ZXIsIGRiX25hbWUsIGZ1bmNfbmFtZSk6CiAgICAgZnVuY3Rpb25zID0gcGdfY3Vyc29y LmZldGNob25lKCkKICAgICBjb25uZWN0aW9uLmNsb3NlKCkKICAgICByZXR1cm4gZnVuY3Rpb25z CisKKworZGVmIGNyZWF0ZV9wcm9jZWR1cmUoc2VydmVyLCBkYl9uYW1lLCBzY2hlbWFfbmFtZSwg ZnVuY19uYW1lLCBzX3R5cGUpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBwcm9jZWR1 cmUgdG8gc2NoZW1hIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0 X2RiX2Nvbm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1v ZGUnXSkKKyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBp ZiBzX3R5cGUgPT0gJ3BnJzoKKyAgICAgICAgICAgIHF1ZXJ5ID0gIkNSRUFURSBQUk9DRURVUkUg IiArIHNjaGVtYV9uYW1lICsgIi4iICsgZnVuY19uYW1lICsgXAorICAgICAgICAgICAgICAgICAg ICAiKCkiIFwKKyAgICAgICAgICAgICAgICAgICAgIiBMQU5HVUFHRSAnc3FsJyIgXAorICAgICAg ICAgICAgICAgICAgICAiIFNFQ1VSSVRZIERFRklORVIgQVMgJCQiIFwKKyAgICAgICAgICAgICAg ICAgICAgIiBTRUxFQ1QgMTsgJCQ7IgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcXVlcnkg PSAiQ1JFQVRFIFBST0NFRFVSRSAiICsgc2NoZW1hX25hbWUgKyAiLiIgKyBmdW5jX25hbWUgKyBc CisgICAgICAgICAgICAgICAgICAgICIoKSIgXAorICAgICAgICAgICAgICAgICAgICAiIFNFQ1VS SVRZIERFRklORVIgQVMgJEJPRFkkIEJFR0lOIiBcCisgICAgICAgICAgICAgICAgICAgICIgTlVM TDsgRU5EOyAkQk9EWSQiCisgICAgICAgIHBnX2N1cnNvci5leGVjdXRlKHF1ZXJ5KQorICAgICAg ICBjb25uZWN0aW9uLmNvbW1pdCgpCisgICAgICAgICMgR2V0ICdvaWQnIGZyb20gbmV3bHkgY3Jl YXRlZCBmdW5jdGlvbgorICAgICAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHByby5vaWQs IHByby5wcm9uYW1lIEZST00iCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgcGdfcHJvYyBw cm8gV0hFUkUgcHJvLnByb25hbWU9JyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICBm dW5jX25hbWUpCisgICAgICAgIGZ1bmN0aW9ucyA9IHBnX2N1cnNvci5mZXRjaG9uZSgpCisgICAg ICAgIGNvbm5lY3Rpb24uY2xvc2UoKQorICAgICAgICByZXR1cm4gZnVuY3Rpb25zCisgICAgZXhj ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YyhmaWxlPXN5cy5zdGRl cnIpCisKKworZGVmIGNyZWF0ZV9mdW5jdGlvbihzZXJ2ZXIsIGRiX25hbWUsIHNjaGVtYV9uYW1l LCBmdW5jX25hbWUpOgorICAgICIiIlRoaXMgZnVuY3Rpb24gYWRkIHRoZSBwcm9jZWR1cmUgdG8g c2NoZW1hIiIiCisgICAgdHJ5OgorICAgICAgICBjb25uZWN0aW9uID0gdXRpbHMuZ2V0X2RiX2Nv bm5lY3Rpb24oZGJfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNlcnZlclsnZGJfcGFzc3dvcmQnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnaG9zdCddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ3NzbG1vZGUnXSkK KyAgICAgICAgcGdfY3Vyc29yID0gY29ubmVjdGlvbi5jdXJzb3IoKQorICAgICAgICBxdWVyeSA9 ICJDUkVBVEUgRlVOQ1RJT04gIiArIHNjaGVtYV9uYW1lICsgIi4iICsgZnVuY19uYW1lICsgXAor ICAgICAgICAgICAgICAgICIoKSIgXAorICAgICAgICAgICAgICAgICIgUkVUVVJOUyBpbnRlZ2Vy IExBTkdVQUdFICdzcWwnIFNUQUJMRSIgXAorICAgICAgICAgICAgICAgICIgU0VDVVJJVFkgREVG SU5FUiBBUyAkJCIgXAorICAgICAgICAgICAgICAgICIgU0VMRUNUIDE7ICQkOyIKKyAgICAgICAg cGdfY3Vyc29yLmV4ZWN1dGUocXVlcnkpCisgICAgICAgIGNvbm5lY3Rpb24uY29tbWl0KCkKKyAg ICAgICAgIyBHZXQgJ29pZCcgZnJvbSBuZXdseSBjcmVhdGVkIGZ1bmN0aW9uCisgICAgICAgIHBn X2N1cnNvci5leGVjdXRlKCJTRUxFQ1QgcHJvLm9pZCwgcHJvLnByb25hbWUgRlJPTSIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgIiBwZ19wcm9jIHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMn IiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmNfbmFtZSkKKyAgICAgICAgZnVuY3Rp b25zID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICAgICAgY29ubmVjdGlvbi5jbG9zZSgpCisg ICAgICAgIHJldHVybiBmdW5jdGlvbnMKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICB0 cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9c3lzLnN0ZGVycikKKworCitkZWYgdmVyaWZ5X3Byb2Nl ZHVyZShzZXJ2ZXIsIGRiX25hbWUsIHByb2NfbmFtZSk6CisgICAgIiIiVGhpcyBmdW5jdGlvbiB2 ZXJpZmllcyB0aGUgcHJvY2VkdXJlIGluIGRiIiIiCisgICAgY29ubmVjdGlvbiA9IHV0aWxzLmdl dF9kYl9jb25uZWN0aW9uKGRiX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNlcnZlclsndXNlcm5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VydmVyWydkYl9wYXNzd29yZCddLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJbJ2hvc3QnXSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyWydwb3J0J10sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlclsnc3NsbW9kZSddKQorICAgIHBnX2N1cnNv ciA9IGNvbm5lY3Rpb24uY3Vyc29yKCkKKyAgICBwZ19jdXJzb3IuZXhlY3V0ZSgiU0VMRUNUIHBy by5vaWQsIHByby5wcm9uYW1lIEZST00iCisgICAgICAgICAgICAgICAgICAgICAgIiBwZ19wcm9j IHBybyBXSEVSRSBwcm8ucHJvbmFtZT0nJXMnIiAlCisgICAgICAgICAgICAgICAgICAgICAgcHJv Y19uYW1lKQorICAgIHByb2NzID0gcGdfY3Vyc29yLmZldGNob25lKCkKKyAgICBjb25uZWN0aW9u LmNsb3NlKCkKKyAgICByZXR1cm4gcHJvY3MKKworCitkZWYgc2V0X3VwKG9iaik6CisgICAgIiIi Q29tbW9uIHNldCB1cCBmdW5jdGlvbiIiIgorICAgIGZyb20gcmVncmVzc2lvbiBpbXBvcnQgcGFy ZW50X25vZGVfZGljdAorCisgICAgb2JqLmRiX25hbWUgPSBwYXJlbnRfbm9kZV9kaWN0WyJkYXRh YmFzZSJdWy0xXVsiZGJfbmFtZSJdCisgICAgc2NoZW1hX2luZm8gPSBwYXJlbnRfbm9kZV9kaWN0 WyJzY2hlbWEiXVstMV0KKyAgICBvYmouc2VydmVyX2lkID0gc2NoZW1hX2luZm9bInNlcnZlcl9p ZCJdCisgICAgb2JqLmRiX2lkID0gc2NoZW1hX2luZm9bImRiX2lkIl0KKyAgICBvYmoucHJvcmV0 dHlwZW5hbWUgPSAiZXZlbnRfdHJpZ2dlci90cmlnZ2VyIgorICAgIHNlcnZlcl9jb24gPSBzZXJ2 ZXJfdXRpbHMuY29ubmVjdF9zZXJ2ZXIob2JqLCBvYmouc2VydmVyX2lkKQorCisgICAgaWYgbm90 IHNlcnZlcl9jb25bImluZm8iXSA9PSAiU2VydmVyIGNvbm5lY3RlZC4iOgorICAgICAgICByYWlz ZSBFeGNlcHRpb24oIkNvdWxkIG5vdCBjb25uZWN0IHRvIHNlcnZlci4iKQorICAgIGlmICJ2ZXJz aW9uIiBpbiBzZXJ2ZXJfY29uWyJkYXRhIl06CisgICAgICAgIG9iai5zZXJ2ZXJfdmVyc2lvbiA9 IHNlcnZlcl9jb25bImRhdGEiXVsidmVyc2lvbiJdCisgICAgICAgIGlmIHNlcnZlcl9jb25bImRh dGEiXVsidmVyc2lvbiJdIDwgOTAzMDA6CisgICAgICAgICAgICBvYmoucHJvcmV0dHlwZW5hbWUg PSAidHJpZ2dlciIKKyAgICBpZiAidHlwZSIgaW4gc2VydmVyX2NvblsiZGF0YSJdOgorICAgICAg ICBvYmouc2VydmVyX3R5cGUgPSBzZXJ2ZXJfY29uWyJkYXRhIl1bInR5cGUiXQorCisgICAgZGJf Y29uID0gZGF0YWJhc2VfdXRpbHMuY29ubmVjdF9kYXRhYmFzZShvYmosIHV0aWxzLlNFUlZFUl9H Uk9VUCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9iai5z ZXJ2ZXJfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv YmouZGJfaWQpCisgICAgaWYgbm90IGRiX2NvblsnZGF0YSddWyJjb25uZWN0ZWQiXToKKyAgICAg ICAgcmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byBkYXRhYmFzZS4iKQorICAg IG9iai5zY2hlbWFfaWQgPSBzY2hlbWFfaW5mb1sic2NoZW1hX2lkIl0KKyAgICBvYmouc2NoZW1h X25hbWUgPSBzY2hlbWFfaW5mb1sic2NoZW1hX25hbWUiXQorICAgIHNjaGVtYV9yZXNwb25zZSA9 IHNjaGVtYV91dGlscy52ZXJpZnlfc2NoZW1hcyhvYmouc2VydmVyLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmouZGJfbmFtZSwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqLnNjaGVtYV9uYW1l KQorICAgIGlmIG5vdCBzY2hlbWFfcmVzcG9uc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigi Q291bGQgbm90IGZpbmQgdGhlIHNjaGVtYS4iKQorCisgICAgcmV0dXJuIG9iagpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRp bHMucHkKaW5kZXggMDBhNzJkZC4uN2Y2ZjE5YyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci91dGlscy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3V0aWxzLnB5CkBAIC01MSw3 ICs1MSw5IEBAIGNsYXNzIFBHQ2hpbGRNb2R1bGUob2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRf XyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBzZWxmLm1pbl92ZXIgPSAwCi0gICAg ICAgIHNlbGYubWF4X3ZlciA9IDEwMDAwMDAwMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0gMTEw MDAwMDAwMAorICAgICAgICBzZWxmLm1pbl9wcGFzdmVyID0gMAorICAgICAgICBzZWxmLm1heF9w cGFzdmVyID0gMTEwMDAwMDAwMAogICAgICAgICBzZWxmLnNlcnZlcl90eXBlID0gTm9uZQogICAg ICAgICBzZWxmLm1pbl9ncGRidmVyID0gODAzMjMKICAgICAgICAgc2VsZi5tYXhfZ3BkYnZlciA9 IDEwMDAwMDAwMDAKQEAgLTcyLDYgKzc0LDkgQEAgY2xhc3MgUEdDaGlsZE1vZHVsZShvYmplY3Qp OgogICAgICAgICBpZiBzZWxmLnNlcnZlcl90eXBlIGlzIE5vbmUgb3IgbWFuYWdlci5zZXJ2ZXJf dHlwZSBpbiBzZWxmLnNlcnZlcl90eXBlOgogICAgICAgICAgICAgbWluX3NlcnZlcl92ZXJzaW9u ID0gc2VsZi5taW5fdmVyCiAgICAgICAgICAgICBtYXhfc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1h eF92ZXIKKyAgICAgICAgICAgIGlmIG1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ3BwYXMnOgorICAg ICAgICAgICAgICAgIG1pbl9zZXJ2ZXJfdmVyc2lvbiA9IHNlbGYubWluX3BwYXN2ZXIKKyAgICAg ICAgICAgICAgICBtYXhfc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1heF9wcGFzdmVyCiAgICAgICAg ICAgICBpZiBtYW5hZ2VyLnNlcnZlcl90eXBlID09ICdncGRiJzoKICAgICAgICAgICAgICAgICBt aW5fc2VydmVyX3ZlcnNpb24gPSBzZWxmLm1pbl9ncGRidmVyCiAgICAgICAgICAgICAgICAgbWF4 X3NlcnZlcl92ZXJzaW9uID0gc2VsZi5tYXhfZ3BkYnZlcgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvZGVidWdnZXIvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi90b29scy9kZWJ1Z2dl ci9fX2luaXRfXy5weQppbmRleCBjMGU4OWY1Li4xYmY3OTdjIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi90b29scy9kZWJ1Z2dlci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9k ZWJ1Z2dlci9fX2luaXRfXy5weQpAQCAtMzY1LDggKzM2NSwxMSBAQCBkZWYgaW5pdF9mdW5jdGlv bihub2RlX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmaWQsIHRyaWQ9Tm9uZSk6CiAKICAgICAjIENo ZWNrIHNlcnZlciB0eXBlIGlzIHBwYXMgb3Igbm90CiAgICAgcHBhc19zZXJ2ZXIgPSBGYWxzZQor ICAgIGlzX3Byb2Nfc3VwcG9ydGVkID0gRmFsc2UKICAgICBpZiBzZXJ2ZXJfdHlwZSA9PSAncHBh cyc6CiAgICAgICAgIHBwYXNfc2VydmVyID0gVHJ1ZQorICAgIGVsc2U6CisgICAgICAgIGlzX3By b2Nfc3VwcG9ydGVkID0gVHJ1ZSBpZiBtYW5hZ2VyLnZlcnNpb24gPj0gMTEwMDAwIGVsc2UgRmFs c2UKIAogICAgICMgU2V0IHRoZSB0ZW1wbGF0ZSBwYXRoIHJlcXVpcmVkIHRvIHJlYWQgdGhlIHNx bCBmaWxlcwogICAgIHRlbXBsYXRlX3BhdGggPSAnZGVidWdnZXIvc3FsJwpAQCAtMzk1LDcgKzM5 OCwxMCBAQCBkZWYgaW5pdF9mdW5jdGlvbihub2RlX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmaWQs IHRyaWQ9Tm9uZSk6CiAgICAgc3FsID0gcmVuZGVyX3RlbXBsYXRlKAogICAgICAgICAiLyIuam9p bihbdGVtcGxhdGVfcGF0aCwgJ2dldF9mdW5jdGlvbl9kZWJ1Z19pbmZvLnNxbCddKSwKICAgICAg ICAgaXNfcHBhc19kYXRhYmFzZT1wcGFzX3NlcnZlciwKLSAgICAgICAgaGFzRmVhdHVyZUZ1bmN0 aW9uRGVmYXVsdHM9VHJ1ZSwgZmlkPWZpZAorICAgICAgICBoYXNGZWF0dXJlRnVuY3Rpb25EZWZh dWx0cz1UcnVlLAorICAgICAgICBmaWQ9ZmlkLAorICAgICAgICBpc19wcm9jX3N1cHBvcnRlZD1p c19wcm9jX3N1cHBvcnRlZAorCiAgICAgKQogICAgIHN0YXR1cywgcl9zZXQgPSBjb25uLmV4ZWN1 dGVfZGljdChzcWwpCiAgICAgaWYgbm90IHN0YXR1czoKQEAgLTUwOSw2ICs1MTUsNyBAQCBkZWYg aW5pdF9mdW5jdGlvbihub2RlX3R5cGUsIHNpZCwgZGlkLCBzY2lkLCBmaWQsIHRyaWQ9Tm9uZSk6 CiAgICAgICAgICdvaWQnOiBmaWQsCiAgICAgICAgICduYW1lJzogcl9zZXRbJ3Jvd3MnXVswXVsn bmFtZSddLAogICAgICAgICAnaXNfZnVuYyc6IHJfc2V0Wydyb3dzJ11bMF1bJ2lzZnVuYyddLAor ICAgICAgICAnaXNfcHBhc19kYXRhYmFzZSc6IHBwYXNfc2VydmVyLAogICAgICAgICAnaXNfY2Fs bGFibGUnOiBGYWxzZSwKICAgICAgICAgJ3NjaGVtYSc6IHJfc2V0Wydyb3dzJ11bMF1bJ3NjaGVt YW5hbWUnXSwKICAgICAgICAgJ2xhbmd1YWdlJzogcl9zZXRbJ3Jvd3MnXVswXVsnbGFubmFtZSdd LApAQCAtNzY1LDYgKzc3Miw3IEBAIGRlZiBpbml0aWFsaXplX3RhcmdldChkZWJ1Z190eXBlLCBz aWQsIGRpZCwgc2NpZCwgZnVuY19pZCwgdHJpX2lkPU5vbmUpOgogICAgICAgICAnb2lkJzogZnVu Y19kYXRhWydvaWQnXSwKICAgICAgICAgJ25hbWUnOiBmdW5jX2RhdGFbJ25hbWUnXSwKICAgICAg ICAgJ2lzX2Z1bmMnOiBmdW5jX2RhdGFbJ2lzX2Z1bmMnXSwKKyAgICAgICAgJ2lzX3BwYXNfZGF0 YWJhc2UnOiBmdW5jX2RhdGFbJ2lzX3BwYXNfZGF0YWJhc2UnXSwKICAgICAgICAgJ2lzX2NhbGxh YmxlJzogZnVuY19kYXRhWydpc19jYWxsYWJsZSddLAogICAgICAgICAnc2NoZW1hJzogZnVuY19k YXRhWydzY2hlbWEnXSwKICAgICAgICAgJ2xhbmd1YWdlJzogZnVuY19kYXRhWydsYW5ndWFnZSdd LApAQCAtMTA2Miw3ICsxMDcwLDggQEAgZGVmIHN0YXJ0X2RlYnVnZ2VyX2xpc3RlbmVyKHRyYW5z X2lkKToKICAgICAgICAgICAgICAgICAgICAgZnVuY19uYW1lPWZ1bmNfbmFtZSwKICAgICAgICAg ICAgICAgICAgICAgaXNfZnVuYz1zZXNzaW9uX2Z1bmN0aW9uX2RhdGFbJ2lzX2Z1bmMnXSwKICAg ICAgICAgICAgICAgICAgICAgcmV0X3R5cGU9c2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydyZXR1cm5f dHlwZSddLAotICAgICAgICAgICAgICAgICAgICBkYXRhPXNlc3Npb25fZnVuY3Rpb25fZGF0YVsn YXJnc192YWx1ZSddCisgICAgICAgICAgICAgICAgICAgIGRhdGE9c2Vzc2lvbl9mdW5jdGlvbl9k YXRhWydhcmdzX3ZhbHVlJ10sCisgICAgICAgICAgICAgICAgICAgIGlzX3BwYXNfZGF0YWJhc2U9 c2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydpc19wcGFzX2RhdGFiYXNlJ10KICAgICAgICAgICAgICAg ICApCiAKICAgICAgICAgICAgIHN0YXR1cywgcmVzdWx0ID0gY29ubi5leGVjdXRlX2FzeW5jKHN0 cl9xdWVyeSkKQEAgLTE5NDYsOCArMTk1NSw5IEBAIGRlZiBwb2xsX2VuZF9leGVjdXRpb25fcmVz dWx0KHRyYW5zX2lkKToKICAgICAgICAgc3RhdHVzLCByZXN1bHQgPSBjb25uLnBvbGwoKQogICAg ICAgICBzZXNzaW9uX2Z1bmN0aW9uX2RhdGEgPSBzZXNzaW9uWydmdW5jdGlvbkRhdGEnXVtzdHIo dHJhbnNfaWQpXQogICAgICAgICBpZiBzdGF0dXMgPT0gQVNZTkNfT0sgYW5kIFwKLSAgICAgICAg ICAgICAgICBub3Qgc2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydpc19mdW5jJ10gYW5kIFwKLSAgICAg ICAgICAgICAgICBzZXNzaW9uX2Z1bmN0aW9uX2RhdGFbJ2xhbmd1YWdlJ10gPT0gJ2VkYnNwbCc6 CisgICAgICAgICAgICBub3Qgc2Vzc2lvbl9mdW5jdGlvbl9kYXRhWydpc19mdW5jJ10gYW5kXAor ICAgICAgICAgICAgKHNlc3Npb25fZnVuY3Rpb25fZGF0YVsnbGFuZ3VhZ2UnXSA9PSAnZWRic3Bs JyBvcgorICAgICAgICAgICAgICAgIHNlc3Npb25fZnVuY3Rpb25fZGF0YVsnbGFuZ3VhZ2UnXSA9 PSAncGxwZ3NxbCcpOgogICAgICAgICAgICAgc3RhdHVzID0gJ1N1Y2Nlc3MnCiAgICAgICAgICAg ICBhZGRpdGlvbmFsX21zZ3MgPSBjb25uLm1lc3NhZ2VzKCkKICAgICAgICAgICAgIGlmIGxlbihh ZGRpdGlvbmFsX21zZ3MpID4gMDoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVn Z2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9zcWwvZXhlY3V0ZV9wbHBnc3FsLnNxbCBiL3dlYi9wZ2Fk bWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9zcWwvZXhlY3V0ZV9wbHBnc3Fs LnNxbAppbmRleCBiODI1NzhiLi4xMzRhMTdmIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi90b29s cy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvc3FsL2V4ZWN1dGVfcGxwZ3NxbC5zcWwKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGVidWdnZXIvdGVtcGxhdGVzL2RlYnVnZ2VyL3NxbC9leGVj dXRlX3BscGdzcWwuc3FsCkBAIC0xLDYgKzEsOCBAQAogeyMjIyBDcmVhdGUgZXhlY3V0ZXIgZnVu Y3Rpb24gZm9yIHBscGdzcWwgZnVuY3Rpb24gZGVidWdnaW5nICMjI30KLXslIGlmIG5vdCBpc19m dW5jICV9Cit7JSBpZiBpc19wcGFzX2RhdGFiYXNlIGFuZCBub3QgaXNfZnVuYyAlfQogICAgIEVY RUMge3sgZnVuY19uYW1lIH19ICgKK3slIGVsaWYgbm90IGlzX2Z1bmMgJX0KKyAgICBDQUxMIHt7 IGZ1bmNfbmFtZSB9fSAoCiB7JSBlbGlmIHJldF90eXBlID09ICdyZWNvcmQnICV9CiAgICAgU0VM RUNUIHt7IGZ1bmNfbmFtZSB9fSAoCiB7JSBlbHNlICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi90b29scy9kZWJ1Z2dlci90ZW1wbGF0ZXMvZGVidWdnZXIvc3FsL2dldF9mdW5jdGlvbl9kZWJ1 Z19pbmZvLnNxbCBiL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dl ci9zcWwvZ2V0X2Z1bmN0aW9uX2RlYnVnX2luZm8uc3FsCmluZGV4IDcwMWY1ZWUuLjI4MDdjYWQg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dl ci9zcWwvZ2V0X2Z1bmN0aW9uX2RlYnVnX2luZm8uc3FsCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xz L2RlYnVnZ2VyL3RlbXBsYXRlcy9kZWJ1Z2dlci9zcWwvZ2V0X2Z1bmN0aW9uX2RlYnVnX2luZm8u c3FsCkBAIC00MSw3ICs0MSwxMSBAQCBTRUxFQ1QKICAgICAgICAgMCBBUyBwa2djb25zb2lkLAog ICAgICAgICBuLm9pZCAgICAgQVMgc2NoZW1hLAogICAgICAgICBuLm5zcG5hbWUgQVMgc2NoZW1h bmFtZSwKLSAgICAgICAgdHJ1ZSBBUyBpc2Z1bmMsCisgICAgICAgIHslIGlmIGlzX3Byb2Nfc3Vw cG9ydGVkICV9CisgICAgICAgIENBU0UgV0hFTiBwLnByb2tpbmQgaW4gKCdmJywgJ3cnKSBUSEVO IFRSVUUgRUxTRSBGQUxTRSBFTkQgQVMgaXNmdW5jLAorICAgICAgICB7JSBlbHNlICV9CisgICAg ICAgIFRSVUUgQVMgaXNmdW5jLAorICAgICAgICB7JSBlbmRpZiAlfQogICAgIHslZW5kaWYlfQog ICAgIHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwLm9pZCkg QVMgc2lnbmF0dXJlLAogCkBAIC02MSw0ICs2NSw0IEBAIEZST00KIHslIGVuZGlmICV9CiB7JSBp ZiBmaWQgJX0KIFdIRVJFIHAub2lkID0ge3tmaWR9fTo6b2lkOwoteyUgZW5kaWYgJX0KXCBObyBu ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weSBiL3dlYi9wZ2FkbWluL3V0aWxz L3ZlcnNpb25lZF90ZW1wbGF0ZV9sb2FkZXIucHkKaW5kZXggMzQ4MTk3OC4uZGFkYWViYSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdXRpbHMvdmVyc2lvbmVkX3RlbXBsYXRlX2xvYWRlci5weQor KysgYi93ZWIvcGdhZG1pbi91dGlscy92ZXJzaW9uZWRfdGVtcGxhdGVfbG9hZGVyLnB5CkBAIC03 NSw3ICs3NSw4IEBAIGRlZiBnZXRfdmVyc2lvbl9tYXBwaW5nKHRlbXBsYXRlKToKICAgICAgICAg ICAgIHsnbmFtZSc6ICJkZWZhdWx0IiwgJ251bWJlcic6IDB9CiAgICAgICAgICkKIAotICAgIHJl dHVybiAoeyduYW1lJzogIjEwX3BsdXMiLCAnbnVtYmVyJzogMTAwMDAwfSwKKyAgICByZXR1cm4g KHsnbmFtZSc6ICIxMV9wbHVzIiwgJ251bWJlcic6IDExMDAwMH0sCisgICAgICAgICAgICB7J25h bWUnOiAiMTBfcGx1cyIsICdudW1iZXInOiAxMDAwMDB9LAogICAgICAgICAgICAgeyduYW1lJzog IjkuNl9wbHVzIiwgJ251bWJlcic6IDkwNjAwfSwKICAgICAgICAgICAgIHsnbmFtZSc6ICI5LjVf cGx1cyIsICdudW1iZXInOiA5MDUwMH0sCiAgICAgICAgICAgICB7J25hbWUnOiAiOS40X3BsdXMi LCAnbnVtYmVyJzogOTA0MDB9LAo= --000000000000055a52056e847f6a--