Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1an07M-0004TL-Rc for pgadmin-hackers@arkaria.postgresql.org; Mon, 04 Apr 2016 08:44:17 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1an07L-00038i-Uv for pgadmin-hackers@arkaria.postgresql.org; Mon, 04 Apr 2016 08:44:16 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1akRZR-0004QK-GY for pgadmin-hackers@postgresql.org; Mon, 28 Mar 2016 07:26:42 +0000 Received: from mail-lb0-x229.google.com ([2a00:1450:4010:c04::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1akRZH-0007RB-0a for pgadmin-hackers@postgresql.org; Mon, 28 Mar 2016 07:26:40 +0000 Received: by mail-lb0-x229.google.com with SMTP id bc4so76999950lbc.2 for ; Mon, 28 Mar 2016 00:26:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc; bh=pvYCX+pHMmgq3TC9b/YU9RVWbrjcA+YRxHLMYzo5AGI=; b=PyMt6/TWcM6hSDuVQZTYrYsTFCdpQw3vt/gD4ju0LLs4xnnnEFkrBCtBRfMU1Ad0/G UBaQcWqPEH8lX4usgY2dOmDWfdAJzih5YnOZF0NUqOk/3qajnaLxGISw0izvBQ7ACjai ONVevdyjRHs5gOuW4FpRmOJ1qFOcPE0Fjg3bC+99mXijPwA1hRTPrtEFLkaFqobr2dQW UJ4LmW6pAqg0cm3YfmlNCtK6TykhxXVkGByW1p0S/yxehLYq7nO8PL4JMq54niWk+wbJ pgI6BLjDdSjn1w5cyTWLJ3cRFaHwYXCqoZaWsviunhrEltOdcPz26k2XAgN+behpGEN8 WHNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=pvYCX+pHMmgq3TC9b/YU9RVWbrjcA+YRxHLMYzo5AGI=; b=CKsna9+GFttjQ7qYJEL2NoTB3UJqPjboN6Q/CCu/l1frcQEGWtsMcseOuVgur82CKM Okyb2iKXnfLpHpYFjxKZv6ulFHfOATH2O910HMfpVaRW5/tB34y4hSz8x42AxT3qBBfP GKMocHngKk35BXY/R8ubSXaNjHCr3eFt9uJ8ZhVsgksaYHyaHzitTgBlsIjigdYho8Lo K+oITsSkpt54rCxKjRieZLBbmAYSc/zUYmI3YPo2eIFMPmoUiqALYpVg6+Ysq8NrXxb/ 7EcvBi0F8zWS8AuE/6JwMZQXx+qu/10U6OsmY4fEBfC5RPy8Y/eq9VOJmhr009jtxeWs 4JPg== X-Gm-Message-State: AD7BkJJtf8YEHfE4Dm8716k239wktVMRoGOABJmXL/WFmpYx2REg0Oxf17JwsMUaKVzUTYGw+6LQ2fd0E0gvH3Bb MIME-Version: 1.0 X-Received: by 10.112.54.201 with SMTP id l9mr9612763lbp.105.1459149988321; Mon, 28 Mar 2016 00:26:28 -0700 (PDT) Received: by 10.25.159.85 with HTTP; Mon, 28 Mar 2016 00:26:28 -0700 (PDT) In-Reply-To: References: Date: Mon, 28 Mar 2016 12:56:28 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: Functions/Procedures Module From: Khushboo Vashi To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c3a754bb33c4052f16d4bd X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11c3a754bb33c4052f16d4bd Content-Type: multipart/alternative; boundary=001a11c3a754bb33bf052f16d4bb --001a11c3a754bb33bf052f16d4bb Content-Type: text/plain; charset=UTF-8 Hi, Please find updated patch for the functions/procedures module. Thanks, Khushboo On Wed, Mar 23, 2016 at 5:33 PM, Dave Page wrote: > On Tue, Mar 22, 2016 at 10:51 AM, Khushboo Vashi > wrote: > > Hi, > > > > Please find updated Patch for the Functions/Procedures Module. > > Hi > > Unfortunately I found more issues as I tested in-depth. I've attached > an updated patch in which I've done some cleanup - additional comments > below: > > - Some argument lists are shown with an extra space, e.g. > > character varying , integer > > (pem.create_agent(character varying , integer)) > Done > - A 404 error is seen when functions are selected under a Catalog node. > Done > - Procedures have a property of "System function?" - should be "System > procedure?" > > Done > - The Return Type, Returns a Set and Window fields should be hidden > for Procedures. > > Done > - When creating a procedure (below), I get the following error: > > ----- > -- PROCEDURE: foo > > -- DROP PROCEDURE foo; > > CREATE OR REPLACE PROCEDURE public.foo(IN a integer DEFAULT 10, INOUT > b integer DEFAULT -) > VOLATILE NOT LEAKPROOF SECURITY DEFINER > COST 100.0 > AS > > BEGIN > b:=a+b+1; > END; > > COMMENT ON PROCEDURE public.foo > IS 'Foo procedure'; > ----- > > ----- > 2016-03-23 11:22:02,186: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016 > 11:22:02] "GET /browser/procedure/obj/1/2/14844/13627/16387 HTTP/1.1" > 500 - > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1836, in __call__ > return self.wsgi_app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1820, in wsgi_app > response = self.make_response(self.handle_exception(e)) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1403, in handle_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1817, in wsgi_app > response = self.full_dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1477, in full_dispatch_request > rv = self.handle_user_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1381, in handle_user_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1475, in full_dispatch_request > rv = self.dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1461, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/views.py", > line 84, in view > return self.dispatch_request(*args, **kwargs) > File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line > 233, in dispatch_request > return method(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", > line 349, in wrap > return f(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", > line 425, in properties > resp_data = self._fetch_properties(gid, sid, did, scid, fnid) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", > line 1097, in _fetch_properties > resp_data = res['rows'][0] > IndexError: list index out of range > ----- > > - After a Python server reset, I get the following error when trying > to view SQL of a Procedure (seems like it thinks it's connected to > PG?): > > TemplateNotFound: procedure/pg/sql/9.5_plus/node.sql > 2016-03-23 11:28:52,852: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016 > 11:28:52] "GET /browser/procedure/nodes/1/2/14844/2200/ HTTP/1.1" 500 > - > Traceback (most recent call last): > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1836, in __call__ > return self.wsgi_app(environ, start_response) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1820, in wsgi_app > response = self.make_response(self.handle_exception(e)) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1403, in handle_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1817, in wsgi_app > response = self.full_dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1477, in full_dispatch_request > rv = self.handle_user_exception(e) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1381, in handle_user_exception > reraise(exc_type, exc_value, tb) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1475, in full_dispatch_request > rv = self.dispatch_request() > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/app.py", > line 1461, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/views.py", > line 84, in view > return self.dispatch_request(*args, **kwargs) > File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py", line > 233, in dispatch_request > return method(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", > line 349, in wrap > return f(*args, **kwargs) > File > "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/schemas/functions/__init__.py", > line 390, in nodes > 'node.sql']), scid=scid) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/templating.py", > line 127, in render_template > return > _render(ctx.app.jinja_env.get_or_select_template(template_name_or_list), > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/environment.py", > line 830, in get_or_select_template > return self.get_template(template_name_or_list, parent, globals) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/environment.py", > line 791, in get_template > return self._load_template(name, self.make_globals(globals)) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/environment.py", > line 765, in _load_template > template = self.loader.load(self, name, globals) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/jinja2/loaders.py", > line 113, in load > source, filename, uptodate = self.get_source(environment, name) > File > "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/flask/templating.py", > line 64, in get_source > raise TemplateNotFound(template) > TemplateNotFound: procedure/pg/sql/9.5_plus/node.sql > 2016-03-23 11:28:57,953: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016 > 11:28:57] "POST /ping HTTP/1.1" 200 - > > Done > - Procedures do not include the schema name in the headers of reverse > engineered SQL, e.g. > > Done > - What's the trailing - in the parameter list in this reverse engineered > SQL? > > -- PROCEDURE: foo > > -- DROP PROCEDURE foo; > > CREATE OR REPLACE PROCEDURE public.foo(IN a integer DEFAULT 10, INOUT > b integer DEFAULT -) > VOLATILE NOT LEAKPROOF SECURITY DEFINER > COST 100.0 > AS > > BEGIN > b:=a+b+1; > END; > > COMMENT ON PROCEDURE public.foo > IS 'Foo procedure'; > > Done > Thanks! > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a11c3a754bb33bf052f16d4bb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find updated patch = for the functions/procedures module.

Thanks,
Khushboo=

On Wed, Mar 2= 3, 2016 at 5:33 PM, Dave Page <dpage@pgadmin.org> wrote:
=
On Tue, Mar 22, 2016 at 1= 0:51 AM, Khushboo Vashi
<khushboo.vashi@enter= prisedb.com> wrote:
> Hi,
>
> Please find updated Patch for the Functions/Procedure= s Module.

Hi

Unfortunately I found more issues as I tested in-depth. I've attached an updated patch in which I've done some cleanup - additional comments<= br> below:

- Some argument lists are shown with an extra space, e.g.

character varying , integer

(pem.create_agent(character varying , integer))
Done
- A 404 error is seen when functions are selected under a Catalog node.
=
Done=C2=A0
- Procedures have a property of "System function?" - should be &q= uot;System
procedure?"

Done=C2=A0
- The Return Type, Returns a Set and Window fields should be hidden
for Procedures.

Done=C2=A0
- When creating a procedure (below), I get the following error:

-----
-- PROCEDURE: foo

-- DROP PROCEDURE foo;

CREATE OR REPLACE PROCEDURE public.foo(IN a integer DEFAULT 10, INOUT
b integer DEFAULT=C2=A0 -)
=C2=A0 =C2=A0 VOLATILE NOT LEAKPROOF SECURITY DEFINER
=C2=A0 =C2=A0 COST 100.0
AS

BEGIN
=C2=A0 =C2=A0b:=3Da+b+1;
END;

COMMENT ON PROCEDURE public.foo
=C2=A0 =C2=A0 IS 'Foo procedure';
-----

-----
2016-03-23 11:22:02,186: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016
11:22:02] "GET /browser/procedure/obj/1/2/14844/13627/16387 HTTP/1.1&q= uot;
500 -
Traceback (most recent call last):
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1836, in __call__
=C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1820, in wsgi_app
=C2=A0 =C2=A0 response =3D self.make_response(self.handle_exception(e))
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1403, in handle_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1817, in wsgi_app
=C2=A0 =C2=A0 response =3D self.full_dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1477, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1381, in handle_user_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1475, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1461, in dispatch_request
=C2=A0 =C2=A0 return self.view_functions[rule.endpoint](**req.view_args)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/views.py",
line 84, in view
=C2=A0 =C2=A0 return self.dispatch_request(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py&qu= ot;, line
233, in dispatch_request
=C2=A0 =C2=A0 return method(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/functions/__init__.py",
line 349, in wrap
=C2=A0 =C2=A0 return f(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/functions/__init__.py",
line 425, in properties
=C2=A0 =C2=A0 resp_data =3D self._fetch_properties(gid, sid, did, scid, fni= d)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/functions/__init__.py",
line 1097, in _fetch_properties
=C2=A0 =C2=A0 resp_data =3D res['rows'][0]
IndexError: list index out of range
-----

- After a Python server reset, I get the following error when trying
to view SQL of a Procedure (seems like it thinks it's connected to
PG?):

TemplateNotFound: procedure/pg/sql/9.5_plus/node.sql
2016-03-23 11:28:52,852: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016
11:28:52] "GET /browser/procedure/nodes/1/2/14844/2200/ HTTP/1.1"= 500
-
Traceback (most recent call last):
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1836, in __call__
=C2=A0 =C2=A0 return self.wsgi_app(environ, start_response)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1820, in wsgi_app
=C2=A0 =C2=A0 response =3D self.make_response(self.handle_exception(e))
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1403, in handle_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1817, in wsgi_app
=C2=A0 =C2=A0 response =3D self.full_dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1477, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.handle_user_exception(e)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1381, in handle_user_exception
=C2=A0 =C2=A0 reraise(exc_type, exc_value, tb)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1475, in full_dispatch_request
=C2=A0 =C2=A0 rv =3D self.dispatch_request()
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/app.py",
line 1461, in dispatch_request
=C2=A0 =C2=A0 return self.view_functions[rule.endpoint](**req.view_args)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/views.py",
line 84, in view
=C2=A0 =C2=A0 return self.dispatch_request(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/utils.py&qu= ot;, line
233, in dispatch_request
=C2=A0 =C2=A0 return method(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/functions/__init__.py",
line 349, in wrap
=C2=A0 =C2=A0 return f(*args, **kwargs)
=C2=A0 File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_grou= ps/servers/databases/schemas/functions/__init__.py",
line 390, in nodes
=C2=A0 =C2=A0 'node.sql']), scid=3Dscid)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/templating.py",
line 127, in render_template
=C2=A0 =C2=A0 return _render(ctx.app.jinja_env.get_or_select_template(templ= ate_name_or_list),
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/jinja2/environment.py",
line 830, in get_or_select_template
=C2=A0 =C2=A0 return self.get_template(template_name_or_list, parent, globa= ls)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/jinja2/environment.py",
line 791, in get_template
=C2=A0 =C2=A0 return self._load_template(name, self.make_globals(globals))<= br> =C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/jinja2/environment.py",
line 765, in _load_template
=C2=A0 =C2=A0 template =3D self.loader.load(self, name, globals)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/jinja2/loaders.py",
line 113, in load
=C2=A0 =C2=A0 source, filename, uptodate =3D self.get_source(environment, n= ame)
=C2=A0 File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-pac= kages/flask/templating.py",
line 64, in get_source
=C2=A0 =C2=A0 raise TemplateNotFound(template)
TemplateNotFound: procedure/pg/sql/9.5_plus/node.sql
2016-03-23 11:28:57,953: INFO werkzeug: 127.0.0.1 - - [23/Mar/2016
11:28:57] "POST /ping HTTP/1.1" 200 -

Done=C2=A0
- Procedures do not include the schema name in the headers of reverse
engineered SQL, e.g.

Done=C2=A0
- What's the trailing - in the parameter list in this reverse engineere= d SQL?

-- PROCEDURE: foo

-- DROP PROCEDURE foo;

CREATE OR REPLACE PROCEDURE public.foo(IN a integer DEFAULT 10, INOUT
b integer DEFAULT=C2=A0 -)
=C2=A0 =C2=A0 VOLATILE NOT LEAKPROOF SECURITY DEFINER
=C2=A0 =C2=A0 COST 100.0
AS

BEGIN
=C2=A0 =C2=A0b:=3Da+b+1;
END;

COMMENT ON PROCEDURE public.foo
=C2=A0 =C2=A0 IS 'Foo procedure';

Done=C2=A0
<= /span>
Thanks!

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

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

--001a11c3a754bb33bf052f16d4bb-- --001a11c3a754bb33c4052f16d4bd Content-Type: text/x-patch; charset=US-ASCII; name="pgAdmin4_function_ver2.patch" Content-Disposition: attachment; filename="pgAdmin4_function_ver2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_imbo7xdv0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZTY5NDdmCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTMxNCBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBGdW5j dGlvbnMvUHJvY2VkdXJlcyBOb2RlLiIiIgorCitpbXBvcnQganNvbgoraW1w b3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IGNvcHkKK2ltcG9y dCByZQorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtl X3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5LCBcCisgICAgY3VycmVudF9h cHAsIHVybF9mb3IKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0 ZXh0Citmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAg ICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3Nl cnZlcl9lcnJvciwgZ29uZQorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMg aW1wb3J0IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIu Y29sbGVjdGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9y dCBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy5zY2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5h amF4IGltcG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1p bi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQg cGFyc2VfcHJpdl9mcm9tX2RiLCBcCisgICAgcGFyc2VfcHJpdl90b19kYgor ZnJvbSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRh dGFiYXNlcy5zY2hlbWFzLnV0aWxzIGltcG9ydCBcCisgICAgU2NoZW1hQ2hp bGRNb2R1bGUsIERhdGFUeXBlUmVhZGVyCitmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKK2Zyb20gcGdhZG1pbi5icm93c2VyLnNlcnZl cl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMudXRpbHMgaW1wb3J0IFwKKyAg ICBwYXJzZV9zZWNfbGFiZWxzX2Zyb21fZGIsIHBhcnNlX3ZhcmlhYmxlc19m cm9tX2RiCisKK2NsYXNzIEZ1bmN0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9k dWxlKToKKyAgICAiIiIKKyAgICBjbGFzcyBGdW5jdGlvbk1vZHVsZShTY2hl bWFDaGlsZE1vZHVsZSk6CisKKyAgICAgICAgVGhpcyBjbGFzcyByZXByZXNl bnRzIFRoZSBGdW5jdGlvbnMgTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAg ICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisg ICAgICAtIEluaXRpYWxpemUgdGhlIEZ1bmN0aW9ucyBNb2R1bGUuCisKKyAg ICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQorICAgICAgLSBH ZW5lcmF0ZSB0aGUgRnVuY3Rpb25zIGNvbGxlY3Rpb24gbm9kZS4KKworICAg ICogbm9kZV9pbm9kZSgpOgorICAgICAgLSBSZXR1cm5zIEZ1bmN0aW9ucyBu b2RlIGFzIGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQorICAg ICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBGdW5jdGlvbnMsIHdo ZW4gc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlhbGl6ZWQuCisKKyAg ICAqIGNzc3NuaXBwZXRzKCkKKyAgICAgIC0gUmV0dXJucyBhIHNuaXBwZXQg b2YgY3NzLgorICAgICIiIgorCisgICAgTk9ERV9UWVBFID0gJ2Z1bmN0aW9u JworICAgIENPTExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJGdW5jdGlvbnMi KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6 CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBGdW5jdGlv biBNb2R1bGUuCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoK KyAgICAgICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAg c3VwZXIoRnVuY3Rpb25Nb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAq Kmt3YXJncykKKworICAgICAgICBzZWxmLm1pbl92ZXIgPSA5MDEwMAorICAg ICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAgIHNlbGYuc2VydmVy X3R5cGUgPSBOb25lCisKKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgR2VuZXJh dGUgRnVuY3Rpb25zIGNvbGxlY3Rpb24gbm9kZS4KKyAgICAgICAgIiIiCisg ICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9u X25vZGUoc2NpZCkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBub2RlX2lu b2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTWFrZSB0aGUgbm9k ZSBhcyBsZWFmIG5vZGUuCisgICAgICAgIFJldHVybnM6CisgICAgICAgICAg ICBGYWxzZSBhcyB0aGlzIG5vZGUgZG9lc24ndCBoYXZlIGNoaWxkIG5vZGVz LgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBA cHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAg ICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBGdW5j dGlvbnMsIHdoZW4gdGhlCisgICAgICAgIHNjaGVtYSBub2RlIGlzIGluaXRp YWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNjaGVtYXMu U2NoZW1hTW9kdWxlLk5PREVfVFlQRQorCisgICAgQHByb3BlcnR5CisgICAg ZGVmIGNzc3NuaXBwZXRzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAg UmV0dXJucyBhIHNuaXBwZXQgb2YgY3NzCisgICAgICAgICIiIgorICAgICAg ICBzbmlwcGV0cyA9IFsKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgi ZnVuY3Rpb24vY3NzL2Z1bmN0aW9uLmNzcyIpCisgICAgICAgIF0KKyAgICAg ICAgc25pcHBldHMuZXh0ZW5kKAorICAgICAgICAgICAgc3VwZXIoU2NoZW1h Q2hpbGRNb2R1bGUsIHNlbGYpLmNzc3NuaXBwZXRzCisgICAgICAgICkKKwor ICAgICAgICByZXR1cm4gc25pcHBldHMKKworYmx1ZXByaW50ID0gRnVuY3Rp b25Nb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgRnVuY3Rpb25WaWV3KFBH Q2hpbGROb2RlVmlldywgRGF0YVR5cGVSZWFkZXIpOgorICAgICIiIgorICAg IGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpCisKKyAgICBU aGlzIGNsYXNzIGluaGVyaXRzIFBHQ2hpbGROb2RlVmlldyB0byBnZXQgdGhl IGRpZmZlcmVudCByb3V0ZXMgZm9yCisgICAgdGhlIG1vZHVsZS4KKworICAg IFRoZSBjbGFzcyBpcyByZXNwb25zaWJsZSB0byBDcmVhdGUsIFJlYWQsIFVw ZGF0ZSBhbmQgRGVsZXRlIG9wZXJhdGlvbnMgZm9yCisgICAgdGhlIEZ1bmN0 aW9ucy4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogdmFs aWRhdGVfcmVxdWVzdChmKToKKyAgICAgIC0gV29ya3MgYXMgYSBkZWNvcmF0 b3IuCisgICAgICAgIFZhbGlkYXRpbmcgcmVxdWVzdCBvbiB0aGUgcmVxdWVz dCBvZiBjcmVhdGUsIHVwZGF0ZSBhbmQgbW9kaWZpZWQgU1FMLgorCisgICAg KiBtb2R1bGVfanMoKToKKyAgICAgIC0gT3ZlcnJpZGVzIHRoaXMgcHJvcGVy dHkgdG8gZGVmaW5lIGphdmFzY3JpcHQgZm9yIEZ1bmN0aW9ucyBub2RlLgor CisgICAgKiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgICAtIFdvcmtz IGFzIGEgZGVjb3JhdG9yLgorICAgICAgLSBDaGVja3MgZGF0YWJhc2UgY29u bmVjdGlvbiBzdGF0dXMuCisgICAgICAtIEF0dGFjaCBjb25uZWN0aW9uIG9i amVjdCBhbmQgdGVtcGxhdGUgcGF0aC4KKworICAgICogbGlzdChnaWQsIHNp ZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gTGlzdCB0aGUgRnVuY3Rpb25zLgor CisgICAgKiBub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0g UmV0dXJucyBhbGwgdGhlIEZ1bmN0aW9ucyB0byBnZW5lcmF0ZSBOb2RlcyBp biB0aGUgYnJvd3Nlci4KKworICAgICogcHJvcGVydGllcyhnaWQsIHNpZCwg ZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgIC0gUmV0dXJucyB0aGUgRnVuY3Rp b25zIHByb3BlcnRpZXMuCisKKyAgICAqIGNyZWF0ZShnaWQsIHNpZCwgZGlk LCBzY2lkKToKKyAgICAgIC0gQ3JlYXRlcyBhIG5ldyBGdW5jdGlvbnMgb2Jq ZWN0LgorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5p ZCk6CisgICAgICAtIFVwZGF0ZXMgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisK KyAgICAqIGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAg ICAgIC0gRHJvcHMgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisKKyAgICAqIHNx bChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgIC0gUmV0dXJu cyB0aGUgU1FMIGZvciB0aGUgRnVuY3Rpb25zIG9iamVjdC4KKworICAgICog bXNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAg LSBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAgICAqIGRlcGVuZGVu dHMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6CisgICAgICAtIFJldHVy bnMgdGhlIGRlcGVuZGVudHMgZm9yIHRoZSBGdW5jdGlvbnMgb2JqZWN0Lgor CisgICAgKiBkZXBlbmRlbmNpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5p ZCk6CisgICAgICAtIFJldHVybnMgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhl IEZ1bmN0aW9ucyBvYmplY3QuCisKKyAgICAqIGdldF9sYW5ndWFnZXMoZ2lk LCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgIC0gUmV0dXJu cyBsYW5ndWFnZXMuCisKKyAgICAqIHR5cGVzKGdpZCwgc2lkLCBkaWQsIHNj aWQsIGZuaWQ9Tm9uZSk6CisgICAgICAtIFJldHVybnMgRGF0YSBUeXBlcy4K KyAgICAiIiIKKworICAgIG5vZGVfdHlwZSA9IGJsdWVwcmludC5ub2RlX3R5 cGUKKworICAgIHBhcmVudF9pZHMgPSBbCisgICAgICAgIHsndHlwZSc6ICdp bnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAn aWQnOiAnc2lkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAn ZGlkJ30sCisgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnc2NpZCd9 CisgICAgXQorICAgIGlkcyA9IFsKKyAgICAgICAgeyd0eXBlJzogJ2ludCcs ICdpZCc6ICdmbmlkJ30KKyAgICBdCisKKyAgICBvcGVyYXRpb25zID0gZGlj dCh7CisgICAgICAgICdvYmonOiBbCisgICAgICAgICAgICB7J2dldCc6ICdw cm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxldGUnLCAncHV0JzogJ3VwZGF0 ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAnbGlzdCcsICdwb3N0JzogJ2Ny ZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAgICdkZWxldGUnOiBbeydkZWxl dGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAnY2hpbGRyZW4nOiBbeydnZXQn OiAnY2hpbGRyZW4nfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdu b2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzogW3sn Z2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNx bCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydn ZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBb eydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50 JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUu anMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAg ICdnZXRfdHlwZXMnOiBbeydnZXQnOiAndHlwZXMnfSwgeydnZXQnOiAndHlw ZXMnfV0sCisgICAgICAgICdnZXRfbGFuZ3VhZ2VzJzogW3snZ2V0JzogJ2dl dF9sYW5ndWFnZXMnfSwgeydnZXQnOiAnZ2V0X2xhbmd1YWdlcyd9XSwKKyAg ICAgICAgJ3ZvcHRzJzogW3t9LCB7J2dldCc6ICd2YXJpYWJsZV9vcHRpb25z J31dCisgICAgfSkKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByZXF1aXJl ZF9hcmdzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBS ZXF1aXJlZCBhcmd1bWVudHMgZm9yIGZ1bmN0aW9ucyBub2RlLgorICAgICAg ICBXaGVyZQorICAgICAgICAgICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAg ICAgICAgICBuYW1lOiAgICAgICAgICAgTmFtZSBvZiB0aGUgRnVuY3Rpb24K KyAgICAgICAgICAgICAgICBmdW5jb3duZXI6ICAgICAgRnVuY3Rpb24gT3du ZXIKKyAgICAgICAgICAgICAgICBwcm9uYW1lc3BhY2U6ICAgRnVuY3Rpb24g TmFtZXNwYWNlCisgICAgICAgICAgICAgICAgcHJvcmV0dHlwZW5hbWU6IEZ1 bmN0aW9uIFJldHVybiBUeXBlCisgICAgICAgICAgICAgICAgbGFubmFtZTog ICAgICAgIEZ1bmN0aW9uIExhbmd1YWdlIE5hbWUKKyAgICAgICAgICAgICAg ICBwcm9zcmM6ICAgICAgICAgRnVuY3Rpb24gQ29kZQorICAgICAgICAgICAg ICAgIHByb2JpbjogICAgICAgICBGdW5jdGlvbiBPYmplY3QgRmlsZQorICAg ICAgICAiIiIKKyAgICAgICAgcmV0dXJuIFsKKyAgICAgICAgICAgICduYW1l JywKKyAgICAgICAgICAgICdmdW5jb3duZXInLAorICAgICAgICAgICAgJ3By b25hbWVzcGFjZScsCisgICAgICAgICAgICAncHJvcmV0dHlwZW5hbWUnLAor ICAgICAgICAgICAgJ2xhbm5hbWUnLAorICAgICAgICAgICAgJ3Byb3NyYycs CisgICAgICAgICAgICAncHJvYmluJworICAgICAgICBdCisKKyAgICBkZWYg dmFsaWRhdGVfcmVxdWVzdChmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdv cmtzIGFzIGEgZGVjb3JhdG9yLgorICAgICAgICBWYWxpZGF0aW5nIHJlcXVl c3Qgb24gdGhlIHJlcXVlc3Qgb2YgY3JlYXRlLCB1cGRhdGUgYW5kIG1vZGlm aWVkIFNRTC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgQHdyYXBzKGYpCisg ICAgICAgIGRlZiB3cmFwKHNlbGYsICoqa3dhcmdzKToKKworICAgICAgICAg ICAgZGF0YSA9IHt9CisgICAgICAgICAgICBpZiByZXF1ZXN0LmRhdGE6Cisg ICAgICAgICAgICAgICAgcmVxID0ganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEu ZGVjb2RlKCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg IHJlcSA9IHJlcXVlc3QuYXJncyBvciByZXF1ZXN0LmZvcm0KKworICAgICAg ICAgICAgaWYgJ2ZuaWQnIG5vdCBpbiBrd2FyZ3M6CisKKyAgICAgICAgICAg ICAgICBmb3IgYXJnIGluIHNlbGYucmVxdWlyZWRfYXJnczoKKyAgICAgICAg ICAgICAgICAgICAgaWYgKGFyZyBub3QgaW4gcmVxIG9yIHJlcVthcmddID09 ICcnKSBvclwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXJnID09 ICdwcm9iaW4nIGFuZCByZXFbJ2xhbm5hbWUnXSA9PSAnYycKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIChhcmcgbm90IGluIHJlcSBvciBy ZXFbYXJnXSA9PSAnJykpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBl cnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQgcGFyYW1ldGVyIFwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCVzKS4iICUgYXJn CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg ICAgICAgbGlzdF9wYXJhbXMgPSBbXQorICAgICAgICAgICAgICAgIGlmIHJl cXVlc3QubWV0aG9kID09ICdHRVQnOgorICAgICAgICAgICAgICAgICAgICBs aXN0X3BhcmFtcyA9IFsnYXJndW1lbnRzJywgJ3ZhcmlhYmxlcycsICdwcm9h Y2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vj bGFiZWxzJywgJ2FjbCddCisKKyAgICAgICAgICAgICAgICBmb3Iga2V5IGlu IHJlcToKKyAgICAgICAgICAgICAgICAgICAgaWYga2V5IGluIGxpc3RfcGFy YW1zIGFuZCByZXFba2V5XSAhPSAnJyBcCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYW5kIHJlcVtrZXldIGlzIG5vdCBOb25lOgorICAgICAgICAg ICAgICAgICAgICAgICAgIyBDb3ZlcnRzIHN0cmluZyBpbnRvIHB5dGhvbiBs aXN0IGFzIGV4cGVjdGVkLgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVtrZXldID0ganNvbi5sb2FkcyhyZXFba2V5XSkKKyAgICAgICAgICAgICAg ICAgICAgZWxpZiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5 ID09ICdwcm9yZXRzZXQnIG9yIGtleSA9PSAncHJvaXNzdHJpY3QnIG9yCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID09ICdwcm9zZWNkZWYn IG9yIGtleSA9PSAncHJvaXN3aW5kb3cnIG9yCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAga2V5ID09ICdwcm9sZWFrcHJvb2YnCisgICAgICAgICAg ICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tl eV0gPSBUcnVlIGlmICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXFba2V5XSA9PSAndHJ1ZScgb3IgcmVxW2tleV0gaXMgVHJ1ZSlcCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBGYWxzZSBpZiAocmVxW2tl eV0gPT0gJ2ZhbHNlJyBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJlcVtrZXldIGlzIEZhbHNlKSBlbHNlICcnCisg ICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW2tleV0gPSByZXFba2V5XQorCisgICAgICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGlu dGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICAg ICAgICAgIHNlbGYucmVxdWVzdCA9IGRhdGEKKyAgICAgICAgICAgIHJldHVy biBmKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgIHJldHVybiB3cmFwCisK KyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgTG9hZCBKUyBmaWxlIChmdW5jdGlvbnMuanMpIGZvciB0aGlzIG1vZHVs ZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9u c2UoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAg ICAgICAgImZ1bmN0aW9uL2pzL2Z1bmN0aW9ucy5qcyIsCisgICAgICAgICAg ICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICApLAorICAgICAgICAgICAg MjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWphdmFzY3Jp cHQnfQorICAgICAgICApCisKKyAgICBkZWYgY2hlY2tfcHJlY29uZGl0aW9u KGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV29ya3MgYXMgYSBkZWNvcmF0 b3IuCisgICAgICAgIENoZWNrcyB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBz dGF0dXMuCisgICAgICAgIEF0dGFjaGVzIHRoZSBjb25uZWN0aW9uIG9iamVj dCBhbmQgdGVtcGxhdGUgcGF0aCB0byB0aGUgY2xhc3Mgb2JqZWN0LgorICAg ICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgZGVmIHdy YXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHNlbGYgPSBhcmdz WzBdCisgICAgICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFV TFRfRFJJVkVSKQorICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZHJpdmVy LmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorCisgICAgICAg ICAgICAjIEdldCBkYXRhYmFzZSBjb25uZWN0aW9uCisgICAgICAgICAgICBz ZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdz WydkaWQnXSkKKworICAgICAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVy LnF0SWRlbnQKKyAgICAgICAgICAgIHNlbGYucXRMaXRlcmFsID0gZHJpdmVy LnF0TGl0ZXJhbAorCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNv bm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRp b25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAgIGdldHRleHQoCisg ICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2Vy dmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB2ZXIgPSBzZWxmLm1h bmFnZXIudmVyc2lvbgorCisgICAgICAgICAgICAjIFNldCB0ZW1wbGF0ZSBw YXRoIGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKKyAgICAgICAgICAgICMg b24gdGhlIHNlcnZlciB2ZXJzaW9uLgorICAgICAgICAgICAgc2VsZi50ZW1w bGF0ZV9wYXRoID0gIi8iLmpvaW4oWworICAgICAgICAgICAgICAgIHNlbGYu bm9kZV90eXBlCisgICAgICAgICAgICBdKQorICAgICAgICAgICAgc2VsZi5z cWxfdGVtcGxhdGVfcGF0aCA9ICIvIi5qb2luKFsKKyAgICAgICAgICAgICAg ICBzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgc2VsZi5t YW5hZ2VyLnNlcnZlcl90eXBlLAorICAgICAgICAgICAgICAgICdzcWwnLAor ICAgICAgICAgICAgICAgICc5LjVfcGx1cycgaWYgdmVyID49IDkwNTAwIGVs c2UKKyAgICAgICAgICAgICAgICAnOS4yX3BsdXMnIGlmIHZlciA+PSA5MDIw MCBlbHNlCisgICAgICAgICAgICAgICAgJzkuMV9wbHVzJworICAgICAgICAg ICAgICAgIF0pCisKKyAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3 YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisgICAgQGNoZWNrX3By ZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlzdCBhbGwgdGhlIEZ1 bmN0aW9ucy4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lk OiBTY2hlbWEgSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgU1FMID0gcmVu ZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRo LCAnbm9kZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAg ICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAorICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBhbGwgdGhlIEZ1bmN0 aW9ucyB0byBnZW5lcmF0ZSB0aGUgTm9kZXMuCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAg ICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ ZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICIiIgor CisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9kZS5zcWwn XSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Igcm93IGluIHJzZXRb J3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAgICAgICAg ICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAor ICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAorICAgICAgICAgICAg ICAgICAgICBzY2lkLAorICAgICAgICAgICAgICAgICAgICByb3dbJ25hbWUn XSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNvbi0iICsgc2VsZi5u b2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIGZ1bmNvd25lcj1yb3db J2Z1bmNvd25lciddLAorICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZT1y b3dbJ2xhbm5hbWUnXQorICAgICAgICAgICAgICAgICkpCisKKyAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9 cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHByb3BlcnRpZXMoc2Vs ZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgICAg IiIiCisgICAgICAgIFJldHVybnMgdGhlIEZ1bmN0aW9uIHByb3BlcnRpZXMu CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICAi IiIKKworICAgICAgICByZXNwX2RhdGEgPSBzZWxmLl9mZXRjaF9wcm9wZXJ0 aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpCisKKyAgICAgICAgcmV0 dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1yZXNw X2RhdGEsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKwor ICAgIGRlZiBfZm9ybWF0X2FyZ3VtZW50c19mcm9tX2RiKHNlbGYsIGRhdGEp OgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIEFyZ3VtZW50IGxpc3Qg b2YgdGhlIEZ1bmN0aW9uLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAg ICBkYXRhOiBGdW5jdGlvbiBEYXRhCisKKyAgICAgICAgUmV0dXJuczoKKyAg ICAgICAgICAgIEZ1bmN0aW9uIEFyZ3VtZW50cyBpbiB0aGUgZm9sbG93aW5n IGZvcm1hdC4KKyAgICAgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAg eydwcm9hcmd0eXBlcyc6ICdpbnRlZ2VyJywgJ3Byb2FyZ21vZGVzOiAnSU4n LAorICAgICAgICAgICAgICAgICdwcm9hcmduYW1lcyc6ICdjb2x1bW4xJywg J3Byb2FyZ2RlZmF1bHR2YWxzJzogMX0sIHsuLi59CisgICAgICAgICAgICAg ICAgXQorICAgICAgICAgICAgV2hlcmUKKyAgICAgICAgICAgICAgICBBcmd1 bWVudHM6CisgICAgICAgICAgICAgICAgICAgIHByb2FyZ3R5cGVzOiBBcmd1 bWVudCBUeXBlcyAoRGF0YSBUeXBlKQorICAgICAgICAgICAgICAgICAgICBw cm9hcmdtb2RlczogQXJndW1lbnQgTW9kZXMgW0lOLCBPVVQsIElOT1VULCBW QVJJQURJQ10KKyAgICAgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXM6IEFy Z3VtZW50IE5hbWUKKyAgICAgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVs dHZhbHM6IERlZmF1bHQgVmFsdWUgb2YgdGhlIEFyZ3VtZW50CisgICAgICAg ICIiIgorICAgICAgICBwcm9hcmd0eXBlcyA9IFtwdHlwZSBmb3IgcHR5cGUg aW4gZGF0YVsncHJvYXJndHlwZW5hbWVzJ10uc3BsaXQoIiwiKV1cCisgICAg ICAgICAgICBpZiBkYXRhWydwcm9hcmd0eXBlbmFtZXMnXSBlbHNlIFtdCisg ICAgICAgIHByb2FyZ21vZGVzID0gZGF0YVsncHJvYXJnbW9kZXMnXSBpZiBk YXRhWydwcm9hcmdtb2RlcyddIGVsc2UgW10KKyAgICAgICAgcHJvYXJnbmFt ZXMgPSBkYXRhWydwcm9hcmduYW1lcyddIGlmIGRhdGFbJ3Byb2FyZ25hbWVz J10gZWxzZSBbXQorICAgICAgICBwcm9hcmdkZWZhdWx0dmFscyA9IFtwdHlw ZSBmb3IgcHR5cGUgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YVsncHJvYXJnZGVmYXVsdHZhbHMnXS5zcGxpdCgiLCIpXSBcCisgICAg ICAgICAgICBpZiBkYXRhWydwcm9hcmdkZWZhdWx0dmFscyddIGVsc2UgW10K KyAgICAgICAgcHJvYWxsYXJndHlwZXMgPSBkYXRhWydwcm9hbGxhcmd0eXBl cyddIFwKKyAgICAgICAgICAgIGlmIGRhdGFbJ3Byb2FsbGFyZ3R5cGVzJ10g ZWxzZSBbXQorCisgICAgICAgIHByb2FyZ291dCA9IFtdCisgICAgICAgIHBy b2FyZ2lkID0gW10KKyAgICAgICAgcHJvYXJnbW9kZW5hbWVzID0geydpJzog J0lOJywgJ28nOiAnT1VUJywgJ2InOiAnSU5PVVQnLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3YnOiAnVkFSSUFESUMnLCAndCc6ICdUQUJMRSd9 CisKKyAgICAgICAgIyBUaGUgcHJvYXJndHlwZXMgZG9lc24ndCBnaXZlIE9V VCBwYXJhbXMsIHNvIHdlIG5lZWQgdG8gZmV0Y2gKKyAgICAgICAgIyB0aG9z ZSBmcm9tIGRhdGFiYXNlIGV4cGxpY2l0bHksIGJlbG93IGNvZGUgaXMgd3Jp dHRlbiBmb3IgdGhpcworICAgICAgICAjIHB1cnBvc2UuCisgICAgICAgICMK KyAgICAgICAgIyBwcm9hbGxhcmd0eXBlcyBnaXZlcyBhbGwgdGhlIEZ1bmN0 aW9uJ3MgYXJndW1lbnQgaW5jbHVkaW5nIE9VVCwKKyAgICAgICAgIyBidXQg d2UgaGF2ZSBub3QgdXNlZCB0aGF0IGNvbHVtbjsgYXMgdGhlIGRhdGEgdHlw ZSBvZiB0aGlzCisgICAgICAgICMgY29sdW1uIChpLmUuIG9pZFtdKSBpcyBu b3Qgc3VwcG9ydGVkIGJ5IG9pZHZlY3RvcnR5cGVzKG9pZHZlY3RvcikKKyAg ICAgICAgIyBmdW5jdGlvbiB3aGljaCB3ZSBoYXZlIHVzZWQgdG8gZmV0Y2gg dGhlIGRhdGF0eXBlcworICAgICAgICAjIG9mIHRoZSBvdGhlciBwYXJhbWV0 ZXJzLgorCisgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJkID0gY29weS5kZWVw Y29weShwcm9hcmdtb2RlcykKKyAgICAgICAgcHJvYXJnbmFtZXNfZmx0cmQg PSBbXQorICAgICAgICBjbnQgPSAwCisgICAgICAgIGZvciBtIGluIHByb2Fy Z21vZGVzOgorICAgICAgICAgICAgaWYgbSA9PSAnbyc6ICAjIE91dCBNb2Rl CisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5q b2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9vdXRfdHlw ZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBvdXRfYXJnX29pZD1wcm9hbGxhcmd0eXBlc1tjbnRdKQorICAgICAg ICAgICAgICAgIHN0YXR1cywgb3V0X2FyZ190eXBlID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPW91dF9hcmdfdHlwZSkKKworICAgICAgICAg ICAgICAgICMgSW5zZXJ0IG91dCBwYXJhbWV0ZXIgZGF0YXR5cGUKKyAgICAg ICAgICAgICAgICBwcm9hcmd0eXBlcy5pbnNlcnQoY250LCBvdXRfYXJnX3R5 cGUpCisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVsdHZhbHMuaW5zZXJ0 KGNudCwgJycpCisgICAgICAgICAgICBlbGlmIG0gPT0gJ3YnOiAgIyBWYXJp YWRpYyBNb2RlCisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVsdHZhbHMu aW5zZXJ0KGNudCwgJycpCisgICAgICAgICAgICBlbGlmIG0gPT0gJ3QnOiAg IyBUYWJsZSBNb2RlCisgICAgICAgICAgICAgICAgcHJvYXJnbW9kZXNfZmx0 cmQucmVtb3ZlKG0pCisgICAgICAgICAgICAgICAgcHJvYXJnbmFtZXNfZmx0 cmQuYXBwZW5kKHByb2FyZ25hbWVzW2NudF0pCisKKyAgICAgICAgICAgIGNu dCArPSAxCisKKyAgICAgICAgY250ID0gMAorICAgICAgICAjIE1hcCBwYXJh bSdzIHNob3J0IGZvcm0gdG8gaXRzIGFjdHVhbCBuYW1lLiAoZXg6ICdpJyB0 byAnSU4nKQorICAgICAgICBmb3IgbSBpbiBwcm9hcmdtb2Rlc19mbHRyZDoK KyAgICAgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJkW2NudF0gPSBwcm9hcmdt b2RlbmFtZXNbbV0KKyAgICAgICAgICAgIGNudCArPSAxCisKKyAgICAgICAg IyBSZW1vdmVzIEFyZ3VtZW50IE5hbWVzIGZyb20gdGhlIGxpc3QgaWYgdGhh dCBhcmd1bWVudCBpcyByZW1vdmVkCisgICAgICAgICMgZnJvbSB0aGUgbGlz dAorICAgICAgICBmb3IgaSBpbiBwcm9hcmduYW1lc19mbHRyZDoKKyAgICAg ICAgICAgIHByb2FyZ25hbWVzLnJlbW92ZShpKQorCisgICAgICAgICMgSW5z ZXJ0IG51bGwgdmFsdWUgYWdhaW5zdCB0aGUgcGFyYW1ldGVycyB3aGljaCBk byBub3QgaGF2ZQorICAgICAgICAjIGRlZmF1bHQgdmFsdWVzLgorICAgICAg ICBpZiBsZW4ocHJvYXJnbW9kZXNfZmx0cmQpID4gbGVuKHByb2FyZ2RlZmF1 bHR2YWxzKToKKyAgICAgICAgICAgIGRpZiA9IGxlbihwcm9hcmdtb2Rlc19m bHRyZCkgLSBsZW4ocHJvYXJnZGVmYXVsdHZhbHMpCisgICAgICAgICAgICB3 aGlsZSAoZGlmID4gMCk6CisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVs dHZhbHMuaW5zZXJ0KDAsICcnKQorICAgICAgICAgICAgICAgIGRpZiA9IGRp ZiAtIDEKKworICAgICAgICAjIFByZXBhcmUgbGlzdCBvZiBBcmd1bWVudCBs aXN0IGRpY3QgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBEYXRhIEdyaWQuCisg ICAgICAgIHBhcmFtcyA9IHsiYXJndW1lbnRzIjogWworICAgICAgICAgICAg c2VsZi5fbWFwX2FyZ3VtZW50c19kaWN0KAorICAgICAgICAgICAgICAgIGks IHByb2FyZ21vZGVzX2ZsdHJkW2ldIGlmIGxlbihwcm9hcmdtb2Rlc19mbHRy ZCkgPiBpIGVsc2UgJycsCisgICAgICAgICAgICAgICAgcHJvYXJndHlwZXNb aV0gaWYgbGVuKHByb2FyZ3R5cGVzKSA+IGkgZWxzZSAnJywKKyAgICAgICAg ICAgICAgICBwcm9hcmduYW1lc1tpXSBpZiBsZW4ocHJvYXJnbmFtZXMpID4g aSBlbHNlICcnLAorICAgICAgICAgICAgICAgIHByb2FyZ2RlZmF1bHR2YWxz W2ldIGlmIGxlbihwcm9hcmdkZWZhdWx0dmFscykgPiBpIGVsc2UgJycKKyAg ICAgICAgICAgICkKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihw cm9hcmd0eXBlcykpXX0KKworICAgICAgICAjIFByZXBhcmUgc3RyaW5nIGZv cm1hdHRlZCBBcmd1bWVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIFByb3Bl cnRpZXMKKyAgICAgICAgIyBwYW5lbC4KKworICAgICAgICBwcm9hcmdzID0g W3NlbGYuX21hcF9hcmd1bWVudHNfbGlzdCgKKyAgICAgICAgICAgIHByb2Fy Z21vZGVzX2ZsdHJkW2ldIGlmIGxlbihwcm9hcmdtb2Rlc19mbHRyZCkgPiBp IGVsc2UgJycsCisgICAgICAgICAgICBwcm9hcmd0eXBlc1tpXSBpZiBsZW4o cHJvYXJndHlwZXMpID4gaSBlbHNlICcnLAorICAgICAgICAgICAgcHJvYXJn bmFtZXNbaV0gaWYgbGVuKHByb2FyZ25hbWVzKSA+IGkgZWxzZSAnJywKKyAg ICAgICAgICAgIHByb2FyZ2RlZmF1bHR2YWxzW2ldIGlmIGxlbihwcm9hcmdk ZWZhdWx0dmFscykgPiBpIGVsc2UgJycKKyAgICAgICAgKQorICAgICAgICBm b3IgaSBpbiByYW5nZShsZW4ocHJvYXJndHlwZXMpKV0KKworICAgICAgICBw cm9hcmdzID0geyJwcm9hcmdzIjogIiwgIi5qb2luKHByb2FyZ3MpfQorCisg ICAgICAgIHJldHVybiBwYXJhbXMsIHByb2FyZ3MKKworICAgIGRlZiBfbWFw X2FyZ3VtZW50c19kaWN0KHNlbGYsIGFyZ2lkLCBhcmdtb2RlLCBhcmd0eXBl LCBhcmduYW1lLCBhcmdkZWZ2YWwpOgorICAgICAgICAiIiIKKyAgICAgICAg UmV0dXJucyBEaWN0IG9mIGZvcm1hdHRlZCBBcmd1bWVudHMuCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBhcmdpZDogQXJndW1lbnQgU2VxdWVuY2Ug TnVtYmVyCisgICAgICAgICAgICBhcmdtb2RlOiBBcmd1bWVudCBNb2RlCisg ICAgICAgICAgICBhcmduYW1lOiBBcmd1bWVudCBOYW1lCisgICAgICAgICAg ICBhcmd0eXBlOiBBcmd1bWVudCBUeXBlCisgICAgICAgICAgICBhcmdkZWY6 IEFyZ3VtZW50IERlZmF1bHQgVmFsdWUKKyAgICAgICAgIiIiCisgICAgICAg ICMgVGhlIHBnX2dldF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxv Zy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBTUUwKKyAgICAgICAgIyBzdGF0ZW1l bnQgZ2l2ZXMgdXMgJy0nIGFzIGEgZGVmYXVsdCB2YWx1ZSBmb3IgSU5PVVQg bW9kZS4KKyAgICAgICAgIyBzbywgcmVwbGFjaW5nIGl0IHdpdGggZW1wdHkg c3RyaW5nLgorICAgICAgICBpZiBhcmdtb2RlID09ICdJTk9VVCcgYW5kIGFy Z2RlZnZhbC5zdHJpcCgpID09ICctJzoKKyAgICAgICAgICAgIGFyZ2RlZnZh bCA9ICcnCisKKyAgICAgICAgcmV0dXJuIHsiYXJnaWQiOiBhcmdpZCwKKyAg ICAgICAgICAgICAgICAiYXJndHlwZSI6IGFyZ3R5cGUuc3RyaXAoKSBpZiBh cmd0eXBlIGlzIG5vdCBOb25lIGVsc2UgJycsCisgICAgICAgICAgICAgICAg ImFyZ21vZGUiOiBhcmdtb2RlLAorICAgICAgICAgICAgICAgICJhcmduYW1l IjogYXJnbmFtZSwKKyAgICAgICAgICAgICAgICAiYXJnZGVmdmFsIjogYXJn ZGVmdmFsfQorCisgICAgZGVmIF9tYXBfYXJndW1lbnRzX2xpc3Qoc2VsZiwg YXJnbW9kZSwgYXJndHlwZSwgYXJnbmFtZSwgYXJnZGVmKToKKyAgICAgICAg IiIiCisgICAgICAgIFJldHVybnMgTGlzdCBvZiBmb3JtYXR0ZWQgQXJndW1l bnRzLgorICAgICAgICBBcmdzOgorICAgICAgICAgICAgYXJnbW9kZTogQXJn dW1lbnQgTW9kZQorICAgICAgICAgICAgYXJnbmFtZTogQXJndW1lbnQgTmFt ZQorICAgICAgICAgICAgYXJndHlwZTogQXJndW1lbnQgVHlwZQorICAgICAg ICAgICAgYXJnZGVmOiBBcmd1bWVudCBEZWZhdWx0IFZhbHVlCisgICAgICAg ICIiIgorICAgICAgICAjIFRoZSBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0 cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgU1FMCisgICAg ICAgICMgc3RhdGVtZW50IGdpdmVzIHVzICctJyBhcyBhIGRlZmF1bHQgdmFs dWUgZm9yIElOT1VUIG1vZGUuCisgICAgICAgICMgc28sIHJlcGxhY2luZyBp dCB3aXRoIGVtcHR5IHN0cmluZy4KKyAgICAgICAgaWYgYXJnbW9kZSA9PSAn SU5PVVQnIGFuZCBhcmdkZWYuc3RyaXAoKSA9PSAnLSc6CisgICAgICAgICAg ICBhcmdkZWYgPSAnJworCisgICAgICAgIGFyZyA9ICcnCisKKyAgICAgICAg aWYgYXJnbW9kZSBhbmQgYXJnbW9kZToKKyAgICAgICAgICAgIGFyZyArPSBh cmdtb2RlICsgIiAiCisgICAgICAgIGlmIGFyZ25hbWU6CisgICAgICAgICAg ICBhcmcgKz0gYXJnbmFtZSArICIgIgorICAgICAgICBpZiBhcmd0eXBlOgor ICAgICAgICAgICAgYXJnICs9IGFyZ3R5cGUgKyAiICIKKyAgICAgICAgaWYg YXJnZGVmOgorICAgICAgICAgICAgYXJnICs9ICIgREVGQVVMVCAiICsgYXJn ZGVmCisKKyAgICAgICAgcmV0dXJuIGFyZy5zdHJpcCgiICIpCisKKyAgICBk ZWYgX2Zvcm1hdF9wcm9hY2xfZnJvbV9kYihzZWxmLCBwcm9hY2wpOgorICAg ICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBwcml2aWxlZ2VzLgorICAgICAg ICBBcmdzOgorICAgICAgICAgICAgcHJvYWNsOiBQcml2aWxlZ2VzIERpY3QK KyAgICAgICAgIiIiCisgICAgICAgIHByaXZpbGVnZXMgPSBbXQorICAgICAg ICBmb3Igcm93IGluIHByb2FjbDoKKyAgICAgICAgICAgIHByaXYgPSBwYXJz ZV9wcml2X2Zyb21fZGIocm93KQorICAgICAgICAgICAgcHJpdmlsZWdlcy5h cHBlbmQocHJpdikKKworICAgICAgICByZXR1cm4geyJhY2wiOiBwcml2aWxl Z2VzfQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiB0eXBl cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAg ICAgICAiIiIKKyAgICAgICAgUmV0dXJucyB0aGUgRGF0YSBUeXBlcy4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQK KyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgor CisgICAgICAgIGNvbmRpdGlvbiA9ICIodHlwdHlwZSBJTiAoJ2InLCAnYycs ICdkJywgJ2UnLCAncCcsICdyJykgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55 JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmln Z2VyJykpIgorICAgICAgICBpZiBzZWxmLmJsdWVwcmludC5zaG93X3N5c3Rl bV9vYmplY3RzOgorICAgICAgICAgICAgY29uZGl0aW9uICs9ICIgQU5EIG5z cG5hbWUgTk9UIExJS0UgRSdwZ1xcXFxfdG9hc3QlJyBBTkQgbnNwbmFtZSBO T1QgTElLRSBFJ3BnXFxcXF90ZW1wJSciCisKKyAgICAgICAgIyBHZXQgVHlw ZXMKKyAgICAgICAgc3RhdHVzLCB0eXBlcyA9IHNlbGYuZ2V0X3R5cGVzKHNl bGYuY29ubiwgY29uZGl0aW9uKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXR5cGVzKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICBkYXRhPXR5cGVzLAorICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGdldF9sYW5ndWFnZXMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJl dHVybnMgdGhlIExhbmd1YWdlcyBsaXN0LgorCisgICAgICAgIEFyZ3M6Cisg ICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAg c2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQK KyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm5p ZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzID0g W3snbGFiZWwnOiAnJywgJ3ZhbHVlJzogJyd9XQorICAgICAgICB0cnk6Cisg ICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYuc3FsX3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdnZXRfbGFuZ3VhZ2VzLnNxbCddKQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgIHN0YXR1cywgcm93cyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FM KQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykK KworICAgICAgICAgICAgcmVzID0gcmVzICsgcm93c1sncm93cyddCisKKyAg ICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgc3RhdHVzPTIw MAorICAgICAgICAgICAgKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAg ICBleGNfdHlwZSwgZXhjX3ZhbHVlLCBleGNfdHJhY2ViYWNrID0gc3lzLmV4 Y19pbmZvKCkKKyAgICAgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5lcnJv cih0cmFjZWJhY2sucHJpbnRfZXhjZXB0aW9uKAorICAgICAgICAgICAgICAg IGV4Y190eXBlLAorICAgICAgICAgICAgICAgIGV4Y192YWx1ZSwKKyAgICAg ICAgICAgICAgICBleGNfdHJhY2ViYWNrLAorICAgICAgICAgICAgICAgIGxp bWl0PTIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jt c2c9c3RyKGV4Y192YWx1ZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIHZhcmlhYmxlX29wdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJl dHVybnMgdGhlIHZhcmlhYmxlcy4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZuaWQ6IEZ1 bmN0aW9uIElkCisKKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCByZXR1cm4gbGlzdCBvZiB2YXJpYWJsZXMgYXZh aWxhYmxlIGZvcgorICAgICAgICAgICAgdGFibGUgc3BhY2VzLgorICAgICAg ICAiIiIKKyAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAg ICAgICAgIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgsICd2YXJp YWJsZXMuc3FsJ10pCisgICAgICAgICAgICApCisgICAgICAgIHN0YXR1cywg cnNldCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgIGRhdGE9cnNldFsn cm93cyddLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgQHZhbGlkYXRlX3JlcXVl c3QKKyAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIGEgbmV3IEZ1bmN0aW9u IG9iamVjdC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lk OiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisK KyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAgIEZ1bmN0aW9uIG9iamVj dCBpbiBqc29uIGZvcm1hdC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgIyBHZXQgU1FMIHRvIGNyZWF0ZSBGdW5jdGlvbgor ICAgICAgICAgICAgc3RhdHVzLCBTUUwgPSBzZWxmLl9nZXRfc3FsKGdpZCwg c2lkLCBkaWQsIHNjaWQsIHNlbGYucmVxdWVzdCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisKKyAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAg ICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgJ2dldF9vaWQuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5zcG5hbWU9c2VsZi5yZXF1 ZXN0Wydwcm9uYW1lc3BhY2UnXSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBuYW1lPXNlbGYucmVxdWVzdFsnbmFtZSddKQorICAgICAg ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNR TCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgICAgIHJlcyA9IHJlc1sncm93cyddWzBdCisKKyAgICAg ICAgICAgIHJldHVybiBqc29uaWZ5KAorICAgICAgICAgICAgICAgIG5vZGU9 c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgICByZXNbJ29pZCddLAorICAgICAgICAgICAgICAgICAg ICBzZWxmLnJlcXVlc3RbJ3Byb25hbWVzcGFjZSddLAorICAgICAgICAgICAg ICAgICAgICByZXNbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNv bj0iaWNvbi0iICsgc2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAg ICAgIGxhbmd1YWdlPXJlc1snbGFubmFtZSddLAorICAgICAgICAgICAgICAg ICAgICBmdW5jb3duZXI9cmVzWydmdW5jb3duZXInXQorICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCBmbmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIERyb3AgdGhlIEZ1bmN0 aW9uLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNj aGVtYSBJZAorICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAg ICAgIiIiCisKKyAgICAgICAgaWYgc2VsZi5jbWQgPT0gJ2RlbGV0ZSc6Cisg ICAgICAgICAgICAjIFRoaXMgaXMgYSBjYXNjYWRlIG9wZXJhdGlvbgorICAg ICAgICAgICAgY2FzY2FkZSA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAg ICAgICAgIGNhc2NhZGUgPSBGYWxzZQorCisgICAgICAgIHRyeToKKyAgICAg ICAgICAgICMgRmV0Y2ggTmFtZSBhbmQgU2NoZW1hIE5hbWUgdG8gZGVsZXRl IHRoZSBGdW5jdGlvbi4KKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwg c2NpZD1zY2lkLCBmbmlkPWZuaWQpCisgICAgICAgICAgICBzdGF0dXMsIHJl cyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgbmFtZSwgZnVuY19hcmdzLCBuc3BuYW1lID0gcmVzWydyb3dzJ11bMF0K KworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPW5hbWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY19hcmdzPWZ1 bmNfYXJncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu c3BuYW1lPW5zcG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2FzY2FkZT1jYXNjYWRlKQorICAgICAgICAgICAgc3RhdHVzLCBy ZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorICAgICAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgaW5mbz1nZXR0ZXh0KCJG dW5jdGlvbiBEcm9wcGVkLiIpLAorICAgICAgICAgICAgICAgIGRhdGE9ewor ICAgICAgICAgICAgICAgICAgICAnaWQnOiBmbmlkLAorICAgICAgICAgICAg ICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAgICAgICAgICdz aWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisg ICAgICAgICAgICAgICAgICAgICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAg ICB9CisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv biBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCisgICAgQHZhbGlkYXRlX3JlcXVlc3QKKyAgICBkZWYgdXBkYXRlKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIK KyAgICAgICAgVXBkYXRlIHRoZSBGdW5jdGlvbi4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAg IGZuaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgorCisgICAgICAgIHN0 YXR1cywgU1FMID0gc2VsZi5fZ2V0X3NxbChnaWQsIHNpZCwgZGlkLCBzY2lk LCBzZWxmLnJlcXVlc3QsIGZuaWQpCisKKyAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io ZXJyb3Jtc2c9U1FMKQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlm IFNRTCBhbmQgU1FMLnN0cmlwKCdcbicpIGFuZCBTUUwuc3RyaXAoJyAnKToK KyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1 czoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgICAgICByZXR1 cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBz dWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89IkZ1bmN0aW9u IFVwZGF0ZWQuIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAg ICAgICAgICAgICAgICAgICAgICAnaWQnOiBmbmlkLAorICAgICAgICAgICAg ICAgICAgICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAgICAgICAgICAg ICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdn aWQnOiBnaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlk CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBtYWtl X2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9 MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iTm90aGluZyB0byB1cGRh dGUuIiwKKyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAg ICAgICAgICAgICAgICAnaWQnOiBmbmlkLAorICAgICAgICAgICAgICAgICAg ICAgICAgJ3NjaWQnOiBzY2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg J3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBn aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAg ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAg ICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJu IGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAg ICAgICAgUmV0dXJucyB0aGUgU1FMIGZvciB0aGUgRnVuY3Rpb24gb2JqZWN0 LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAg ICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJZAorICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAgICAg IiIiCisKKyAgICAgICAgaWYgc2VsZi5ub2RlX3R5cGUgPT0gJ3Byb2NlZHVy ZSc6CisgICAgICAgICAgICByZXNwX2RhdGEgPSBzZWxmLl9mZXRjaF9wcm9w ZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpCisKKyAgICAgICAg ICAgICMgR2V0IFNRTCB0byBjcmVhdGUgRnVuY3Rpb24KKyAgICAgICAgICAg IHN0YXR1cywgZnVuY19kZWYgPSBzZWxmLl9nZXRfc3FsKGdpZCwgc2lkLCBk aWQsIHNjaWQsIHJlc3BfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIE5vbmUsIFRydWUpCisgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRl cm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9ZnVuY19kZWYpCisKKyAgICAg ICAgICAgIG5hbWUgPSByZXNwX2RhdGFbJ3Byb25hbWVzcGFjZSddICsgIi4i ICsgcmVzcF9kYXRhWyduYW1lX3dpdGhfYXJncyddCisgICAgICAgIGVsc2U6 CisgICAgICAgICAgICAjIEZldGNoIHRoZSBmdW5jdGlvbiBkZWZpbml0aW9u LgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdnZXRfZGVmaW5pdGlvbi5zcWwnXSksIGZuaWQ9 Zm5pZCwgc2NpZD1zY2lkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZ1 bmNfZGVmLCBuYW1lID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICBzcWxf aGVhZGVyID0gIiIiLS0gezB9OiB7MX0KKworLS0gRFJPUCB7MH0gezF9Owor CisiIiIuZm9ybWF0KHNlbGYubm9kZV90eXBlLnVwcGVyKCksIG5hbWUpCisK KyAgICAgICAgU1FMID0gc3FsX2hlYWRlciArIGZ1bmNfZGVmCisKKyAgICAg ICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UocmVzcG9uc2U9U1FMKQorCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIEB2YWxpZGF0ZV9yZXF1ZXN0Cisg ICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1O b25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIG1vZGlm aWVkIFNRTC4KKworICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBT ZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisg ICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lk OiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisg ICAgICAgIFJldHVybnM6CisgICAgICAgICAgICBTUUwgc3RhdGVtZW50cyB0 byBjcmVhdGUvdXBkYXRlIHRoZSBEb21haW4uCisgICAgICAgICIiIgorCisg ICAgICAgIHN0YXR1cywgU1FMID0gc2VsZi5fZ2V0X3NxbChnaWQsIHNpZCwg ZGlkLCBzY2lkLCBzZWxmLnJlcXVlc3QsIGZuaWQpCisgICAgICAgIGlmIHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgZGF0YT1TUUwsCisgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAg ICAgICAgICAgcmV0dXJuIFNRTAorCisgICAgZGVmIF9nZXRfc3FsKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIGZuaWQ9Tm9uZSwgaXNfc3Fs PUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlcyB0aGUg U1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0ZSB0aGUgRnVuY3Rpb24u CisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElkCisgICAgICAgICAgICBkYXRhOiBGdW5jdGlvbiBkYXRhCisgICAgICAg ICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICAiIiIKKworICAgICAg ICB0cnk6CisgICAgICAgICAgICB2b2xfZGljdCA9IHsndic6ICdWT0xBVElM RScsICdzJzogJ1NUQUJMRScsICdpJzogJ0lNTVVUQUJMRSd9CisKKyAgICAg ICAgICAgICMgR2V0IFNjaGVtYSBOYW1lIGZyb20gaXRzIE9JRC4KKyAgICAg ICAgICAgIGlmICdwcm9uYW1lc3BhY2UnIGluIGRhdGE6CisgICAgICAgICAg ICAgICAgZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzZWxmLl9nZXRfc2NoZW1h KGRhdGFbCisgICAgICAgICAgICAgICAgICAgICdwcm9uYW1lc3BhY2UnXSkK KyAgICAgICAgICAgIGlmICdwcm92b2xhdGlsZScgaW4gZGF0YToKKyAgICAg ICAgICAgICAgICBkYXRhWydwcm92b2xhdGlsZSddID0gdm9sX2RpY3RbZGF0 YVsncHJvdm9sYXRpbGUnXV0KKworICAgICAgICAgICAgaWYgZm5pZCBpcyBu b3QgTm9uZToKKyAgICAgICAgICAgICAgICAjIEVkaXQgTW9kZQorCisgICAg ICAgICAgICAgICAgIyBGZXRjaCBPbGQgRGF0YSBmcm9tIGRhdGFiYXNlLgor ICAgICAgICAgICAgICAgIG9sZF9kYXRhID0gc2VsZi5fZmV0Y2hfcHJvcGVy dGllcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKQorCisgICAgICAgICAg ICAgICAgIyBHZXQgU2NoZW1hIE5hbWUKKyAgICAgICAgICAgICAgICBvbGRf ZGF0YVsncHJvbmFtZXNwYWNlJ10gPSBzZWxmLl9nZXRfc2NoZW1hKG9sZF9k YXRhWworICAgICAgICAgICAgICAgICAgICAncHJvbmFtZXNwYWNlJ10pCisK KyAgICAgICAgICAgICAgICBpZiAncHJvdm9sYXRpbGUnIGluIG9sZF9kYXRh OgorICAgICAgICAgICAgICAgICAgICBvbGRfZGF0YVsncHJvdm9sYXRpbGUn XSA9IHZvbF9kaWN0W29sZF9kYXRhWydwcm92b2xhdGlsZSddXQorCisgICAg ICAgICAgICAgICAgIyBJZiBhbnkgb2YgdGhlIGJlbG93IGFyZ3VtZW50IGlz IGNoYW5nZWQsCisgICAgICAgICAgICAgICAgIyB0aGVuIENSRUFURSBPUiBS RVBMQUNFIFNRTCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGNhbGxlZAorICAgICAg ICAgICAgICAgIGZ1bl9jaGFuZ2VfYXJncyA9IFsnbGFubmFtZScsICdwcm9z cmMnLCAncHJvYmluJywgJ3Byb3NyY19jJywKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ3Byb3ZvbGF0aWxlJywgJ3Byb2lzc3RyaWN0 JywgJ3Byb3NlY2RlZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdwcm9jb3N0JywgJ3Byb2xlYWtwcm9vZicsICdhcmd1bWVudHMn XQorCisgICAgICAgICAgICAgICAgZGF0YVsnY2hhbmdlX2Z1bmMnXSA9IEZh bHNlCisgICAgICAgICAgICAgICAgZm9yIGFyZyBpbiBmdW5fY2hhbmdlX2Fy Z3M6CisgICAgICAgICAgICAgICAgICAgIGlmIGFyZyA9PSAnYXJndW1lbnRz JyBhbmQgYXJnIGluIGRhdGEgYW5kIGxlbihkYXRhW2FyZ10pIFwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICA+IDA6CisgICAgICAgICAgICAgICAg ICAgICAgICBkYXRhWydjaGFuZ2VfZnVuYyddID0gVHJ1ZQorICAgICAgICAg ICAgICAgICAgICBlbGlmIGFyZyBpbiBkYXRhOgorICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVsnY2hhbmdlX2Z1bmMnXSA9IFRydWUKKworICAgICAg ICAgICAgICAgICMgSWYgRnVuY3Rpb24gRGVmaW5pdGlvbi9Bcmd1bWVudHMg YXJlIGNoYW5nZWQgdGhlbiBtZXJnZSBvbGQKKyAgICAgICAgICAgICAgICAj ICBBcmd1bWVudHMgd2l0aCBjaGFuZ2VkIG9uZXMgZm9yIENyZWF0ZS9SZXBs YWNlIEZ1bmN0aW9uCisgICAgICAgICAgICAgICAgIyBTUUwgc3RhdGVtZW50 CisgICAgICAgICAgICAgICAgaWYgJ2FyZ3VtZW50cycgaW4gZGF0YSBhbmQg bGVuKGRhdGFbJ2FyZ3VtZW50cyddKSA+IDA6CisgICAgICAgICAgICAgICAg ICAgIGZvciBhcmcgaW4gZGF0YVsnYXJndW1lbnRzJ11bJ2NoYW5nZWQnXToK KyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBvbGRfYXJnIGluIG9sZF9k YXRhWydhcmd1bWVudHMnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiBhcmdbJ2FyZ2lkJ10gPT0gb2xkX2FyZ1snYXJnaWQnXToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2xkX2FyZy51cGRhdGUoYXJn KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAg ICAgICAgICAgICAgICAgICBkYXRhWydhcmd1bWVudHMnXSA9IG9sZF9kYXRh Wydhcmd1bWVudHMnXQorICAgICAgICAgICAgICAgIGVsaWYgZGF0YVsnY2hh bmdlX2Z1bmMnXToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVsnYXJndW1l bnRzJ10gPSBvbGRfZGF0YVsnYXJndW1lbnRzJ10KKworICAgICAgICAgICAg ICAgICMgUGFyc2UgUHJpdmlsZWdlcworICAgICAgICAgICAgICAgIGlmICdh Y2wnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGZvciBrZXkgaW4g WydhZGRlZCcsICdkZWxldGVkJywgJ2NoYW5nZWQnXToKKyAgICAgICAgICAg ICAgICAgICAgICAgIGlmIGtleSBpbiBkYXRhWydhY2wnXToKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYXRhWydhY2wnXVtrZXldID0gcGFyc2Vf cHJpdl90b19kYigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGF0YVsnYWNsJ11ba2V5XSwgWyJYIl0pCisKKyAgICAgICAgICAgICAgICAj IFBhcnNlIFZhcmlhYmxlcworICAgICAgICAgICAgICAgIGNobmdkX3Zhcmlh YmxlcyA9IHt9CisgICAgICAgICAgICAgICAgZGF0YVsnbWVyZ2VkX3Zhcmlh YmxlcyddID0gW10KKyAgICAgICAgICAgICAgICBvbGRfZGF0YVsnY2huZ2Rf dmFyaWFibGVzJ10gPSB7fQorICAgICAgICAgICAgICAgIGRlbF92YXJpYWJs ZXMgPSB7fQorCisgICAgICAgICAgICAgICAgIyBJZiBGdW5jdGlvbiBEZWZp bml0aW9uL0FyZ3VtZW50cyBhcmUgY2hhbmdlZCB0aGVuLAorICAgICAgICAg ICAgICAgICMgTWVyZ2Ugb2xkLCBuZXcgKGFkZGVkLCBjaGFuZ2VkLCBkZWxl dGVkKSB2YXJpYWJsZXMsCisgICAgICAgICAgICAgICAgIyB3aGljaCB3aWxs IGJlIHVzZWQgaW4gdGhlIENSRUFURSBvciBSRVBMQUNFIEZ1bmN0aW9uIHNx bAorICAgICAgICAgICAgICAgICMgc3RhdGVtZW50CisKKyAgICAgICAgICAg ICAgICBpZiBkYXRhWydjaGFuZ2VfZnVuYyddOgorICAgICAgICAgICAgICAg ICAgICAjIFRvIGNvbXBhcmUgb2xkIGFuZCBuZXcgdmFyaWFibGVzLCBwcmVw YXJpbmcgbmFtZSA6CisgICAgICAgICAgICAgICAgICAgICMgdmFsdWUgZGlj dAorCisgICAgICAgICAgICAgICAgICAgICMgRGVsZXRlZCBWYXJpYWJsZXMK KyAgICAgICAgICAgICAgICAgICAgaWYgJ3ZhcmlhYmxlcycgaW4gZGF0YSBh bmQgJ2RlbGV0ZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11bJ2Rl bGV0ZWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxfdmFy aWFibGVzW3ZbJ25hbWUnXV0gPSB2Wyd2YWx1ZSddCisKKyAgICAgICAgICAg ICAgICAgICAgaWYgJ3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgJ2NoYW5nZWQn IGluIGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAg ICAgZm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11bJ2NoYW5nZWQnXToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjaG5nZF92YXJpYWJsZXNbdlsn bmFtZSddXSA9IHZbJ3ZhbHVlJ10KKworICAgICAgICAgICAgICAgICAgICBp ZiAndmFyaWFibGVzJyBpbiBkYXRhIGFuZCAnYWRkZWQnIGluIGRhdGFbJ3Zh cmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYgaW4g ZGF0YVsndmFyaWFibGVzJ11bJ2FkZGVkJ106CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2huZ2RfdmFyaWFibGVzW3ZbJ25hbWUnXV0gPSB2Wyd2 YWx1ZSddCisKKyAgICAgICAgICAgICAgICAgICAgZm9yIHYgaW4gb2xkX2Rh dGFbJ3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAgb2xk X2RhdGFbJ2NobmdkX3ZhcmlhYmxlcyddW3ZbJ25hbWUnXV0gPSB2Wyd2YWx1 ZSddCisKKyAgICAgICAgICAgICAgICAgICAgIyBQcmVwYXJlIGZpbmFsIGRp Y3Qgb2YgbmV3IGFuZCBvbGQgdmFyaWFibGVzCisgICAgICAgICAgICAgICAg ICAgIGZvciBuYW1lLCB2YWwgaW4gb2xkX2RhdGFbJ2NobmdkX3ZhcmlhYmxl cyddLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBuYW1l IG5vdCBpbiBjaG5nZF92YXJpYWJsZXMgYW5kIG5hbWUgbm90IGluIFwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsX3ZhcmlhYmxlczoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG5nZF92YXJpYWJsZXNb bmFtZV0gPSB2YWwKKworICAgICAgICAgICAgICAgICAgICAjIFByZXBhcmUg ZGljdCBpbiBbeyduYW1lJzogdmFyX25hbWUsICd2YWx1ZSc6IHZhcl92YWx9 LC4uXQorICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdAorICAgICAgICAg ICAgICAgICAgICBmb3IgbmFtZSwgdmFsIGluIGNobmdkX3ZhcmlhYmxlcy5p dGVtcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnbWVyZ2Vk X3ZhcmlhYmxlcyddLmFwcGVuZCh7J25hbWUnOiBuYW1lLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ3ZhbHVlJzogdmFsfSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgICAgICBpZiAndmFyaWFibGVzJyBpbiBkYXRhIGFuZCAn Y2hhbmdlZCcgaW4gZGF0YVsndmFyaWFibGVzJ106CisgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgdiBpbiBkYXRhWyd2YXJpYWJsZXMnXVsnY2hhbmdl ZCddOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ21lcmdl ZF92YXJpYWJsZXMnXS5hcHBlbmQodikKKworICAgICAgICAgICAgICAgICAg ICBpZiAndmFyaWFibGVzJyBpbiBkYXRhIGFuZCAnYWRkZWQnIGluIGRhdGFb J3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYg aW4gZGF0YVsndmFyaWFibGVzJ11bJ2FkZGVkJ106CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZGF0YVsnbWVyZ2VkX3ZhcmlhYmxlcyddLmFwcGVu ZCh2KQorCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRl KAorICAgICAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi5zcWxfdGVt cGxhdGVfcGF0aCwgJ3VwZGF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgIGRhdGE9ZGF0YSwgb19kYXRhPW9sZF9kYXRhCisgICAgICAgICAgICAg ICAgKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIFBh cnNlIFByaXZpbGVnZXMKKyAgICAgICAgICAgICAgICBpZiAnYWNsJyBpbiBk YXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhWydhY2wnXSA9IHBhcnNl X3ByaXZfdG9fZGIoZGF0YVsnYWNsJ10sIFsiWCJdKQorCisgICAgICAgICAg ICAgICAgYXJncyA9ICcnCisgICAgICAgICAgICAgICAgY250ID0gMQorICAg ICAgICAgICAgICAgIGlmICdhcmd1bWVudHMnIGluIGRhdGE6CisgICAgICAg ICAgICAgICAgICAgIGZvciBhIGluIGRhdGFbJ2FyZ3VtZW50cyddOgorICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKCgnYXJnbW9kZScgaW4gYSBhbmQg YVsnYXJnbW9kZSddICE9ICdPVVQnIGFuZAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFbJ2FyZ21vZGUnXSBpcyBub3QgTm9uZQorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICApIG9yICdhcmdub2RlJyBub3QgaW4gYSk6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2FyZ21vZGUnIGlu IGE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgKz0g YVsnYXJnbW9kZSddICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgJ2FyZ25hbWUnIGluIGEgYW5kIGFbJ2FyZ25hbWUnXSAhPSAnJ1wK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBhWydh cmduYW1lJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFyZ3MgKz0gc2VsZi5xdElkZW50KAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25uLCBhWydhcmduYW1l J10pICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2Fy Z3R5cGUnIGluIGE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFyZ3MgKz0gYVsnYXJndHlwZSddCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgY250IDwgbGVuKGRhdGFbJ2FyZ3VtZW50cyddKToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyArPSAnLCAnCisgICAg ICAgICAgICAgICAgICAgICAgICBjbnQgKz0gMQorCisgICAgICAgICAgICAg ICAgZGF0YVsnZnVuY19hcmdzJ10gPSBhcmdzLnN0cmlwKCcgJykKKyAgICAg ICAgICAgICAgICAjIENyZWF0ZSBtb2RlCisgICAgICAgICAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgaXNfc3FsPWlzX3Nx bCkKKyAgICAgICAgICAgIHJldHVybiBUcnVlLCBTUUwuc3RyaXAoJ1xuJykK KworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAg ICByZXR1cm4gRmFsc2UsIGUKKworICAgIGRlZiBfZmV0Y2hfcHJvcGVydGll cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAg ICAgICAiIiIKKyAgICAgICAgUmV0dXJuIEZ1bmN0aW9uIFByb3BlcnRpZXMg d2hpY2ggd2lsbCBiZSB1c2VkIGluIHByb3BlcnRpZXMsCisgICAgICAgIG1z cWwgZnVuY3Rpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdp ZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJ ZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJ ZAorICAgICAgICAiIiIKKworICAgICAgICByZXNwX2RhdGEgPSB7fQorCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5z cWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQsIGZuaWQ9Zm5pZCkKKyAg ICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNR TCkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAg ICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJl dHVybiBnb25lKGdldHRleHQoIiIiCitDb3VsZCBub3QgZmluZCB0aGUgZnVu Y3Rpb24gaW4gdGhlIGRhdGFiYXNlLgorSXQgbWF5IGhhdmUgYmVlbiByZW1v dmVkIGJ5IGFub3RoZXIgdXNlciBvcgorY3JlYXRlZC9zaGlmdGVkIHRvIHRo ZSBhbm90aGVyIHNjaGVtYS4KKyIiIikpCisKKyAgICAgICAgcmVzcF9kYXRh ID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAjIEdldCBmb3JtYXR0ZWQg QXJndW1lbnRzCisgICAgICAgIGZybXRkX3BhcmFtcywgZnJtdGRfcHJvYXJn cyA9IHNlbGYuX2Zvcm1hdF9hcmd1bWVudHNfZnJvbV9kYihyZXNwX2RhdGEp CisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUoZnJtdGRfcGFyYW1zKQorICAg ICAgICByZXNwX2RhdGEudXBkYXRlKGZybXRkX3Byb2FyZ3MpCisKKyAgICAg ICAgIyBGZXRjaCBwcml2aWxlZ2VzCisgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwgJ2Fj bC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbmlk PWZuaWQpCisgICAgICAgIHN0YXR1cywgcHJvYWNscmVzID0gc2VsZi5jb25u LmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlmIG5vdCBzdGF0dXM6Cisg ICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9y bXNnPXJlcykKKworICAgICAgICAjIEdldCBGb3JtYXR0ZWQgUHJpdmlsZWdl cworICAgICAgICByZXNwX2RhdGEudXBkYXRlKHNlbGYuX2Zvcm1hdF9wcm9h Y2xfZnJvbV9kYihwcm9hY2xyZXNbJ3Jvd3MnXSkpCisKKyAgICAgICAgIyBT ZXQgU3lzdGVtIEZ1bmN0aW9ucyBTdGF0dXMKKyAgICAgICAgcmVzcF9kYXRh WydzeXNmdW5jJ10gPSBGYWxzZQorICAgICAgICBpZiBmbmlkIDw9IHNlbGYu bWFuYWdlci5kYl9pbmZvW2RpZF1bJ2RhdGxhc3RzeXNvaWQnXToKKyAgICAg ICAgICAgIHJlc3BfZGF0YVsnc3lzZnVuYyddID0gVHJ1ZQorCisgICAgICAg ICMgR2V0IGZvcm1hdHRlZCBTZWN1cml0eSBMYWJlbHMKKyAgICAgICAgaWYg J3NlY2xhYmVscycgaW4gcmVzcF9kYXRhOgorICAgICAgICAgICAgcmVzcF9k YXRhLnVwZGF0ZShwYXJzZV9zZWNfbGFiZWxzX2Zyb21fZGIocmVzcF9kYXRh WydzZWNsYWJlbHMnXSkpCisKKyAgICAgICAgIyBHZXQgZm9ybWF0dGVkIFZh cmlhYmxlCisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUocGFyc2VfdmFyaWFi bGVzX2Zyb21fZGIoWworICAgICAgICAgICAgeyJzZXRjb25maWciOiByZXNw X2RhdGFbJ3Byb2NvbmZpZyddfV0pKQorCisgICAgICAgIHJldHVybiByZXNw X2RhdGEKKworICAgIGRlZiBfZ2V0X3NjaGVtYShzZWxmLCBzY2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFJldHVybnMgU2NoZW1hIE5hbWUgZnJvbSBp dHMgT0lELgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBzY2lkOiBT Y2hlbWEgSWQKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnZXRfc2NoZW1hLnNxbCdd KSwgc2NpZD1zY2lkKQorCisgICAgICAgIHN0YXR1cywgc2NoZW1hX25hbWUg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoU1FMKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXNjaGVtYV9uYW1lKQorCisgICAgICAgIHJl dHVybiBzY2hlbWFfbmFtZQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgor ICAgIGRlZiBkZXBlbmRlbnRzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IGZuaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBn ZXQgdGhlIGRlcGVuZGVudHMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisg ICAgICAgIGZvciB0aGUgRnVuY3Rpb24gbm9kZS4KKworICAgICAgICBBcmdz OgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAg ICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAg IGRvaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgorICAgICAgICBkZXBl bmRlbnRzX3Jlc3VsdCA9IHNlbGYuZ2V0X2RlcGVuZGVudHMoc2VsZi5jb25u LCBmbmlkKQorICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAg ICAgICAgIHJlc3BvbnNlPWRlcGVuZGVudHNfcmVzdWx0LAorICAgICAgICAg ICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwg ZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMg ZnVuY3Rpb24gZ2V0IHRoZSBkZXBlbmRlbmNpZXMgYW5kIHJldHVybiBhamF4 IHJlc3BvbnNlCisgICAgICAgIGZvciB0aGUgRnVuY3Rpb24gbm9kZS4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQK KyAgICAgICAgICAgIGRvaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgor ICAgICAgICBkZXBlbmRlbmNpZXNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5k ZW5jaWVzKHNlbGYuY29ubiwgZm5pZCkKKyAgICAgICAgcmV0dXJuIGFqYXhf cmVzcG9uc2UoCisgICAgICAgICAgICByZXNwb25zZT1kZXBlbmRlbmNpZXNf cmVzdWx0LAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisK K0Z1bmN0aW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQor CisKK2NsYXNzIFByb2NlZHVyZU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6 CisgICAgIiIiCisgICAgY2xhc3MgUHJvY2VkdXJlTW9kdWxlKFNjaGVtYUNo aWxkTW9kdWxlKToKKworICAgICAgICBUaGlzIGNsYXNzIHJlcHJlc2VudHMg VGhlIFByb2NlZHVyZXMgTW9kdWxlLgorCisgICAgTWV0aG9kczoKKyAgICAt LS0tLS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisgICAg ICAtIEluaXRpYWxpemUgdGhlIFByb2NlZHVyZXMgTW9kdWxlLgorCisgICAg KiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gR2Vu ZXJhdGUgdGhlIFByb2NlZHVyZXMgY29sbGVjdGlvbiBub2RlLgorCisgICAg KiBub2RlX2lub2RlKCk6CisgICAgICAtIFJldHVybnMgUHJvY2VkdXJlcyBu b2RlIGFzIGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQorICAg ICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBQcm9jZWR1cmVzLCB3 aGVuIHNjaGVtYSBub2RlIGlzCisgICAgICAgIGluaXRpYWxpemVkLgorCisg ICAgIiIiCisKKyAgICBOT0RFX1RZUEUgPSAncHJvY2VkdXJlJworICAgIENP TExFQ1RJT05fTEFCRUwgPSBnZXR0ZXh0KCJQcm9jZWR1cmVzIikKKworICAg IGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAg ICAiIiIKKyAgICAgICAgSW5pdGlhbGl6ZSB0aGUgUHJvY2VkdXJlIE1vZHVs ZS4KKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgICphcmdzOgorICAgICAg ICAgICAgKiprd2FyZ3M6CisgICAgICAgICIiIgorICAgICAgICBzdXBlcihQ cm9jZWR1cmVNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJn cykKKworICAgICAgICBzZWxmLm1pbl92ZXIgPSA5MDEwMAorICAgICAgICBz ZWxmLm1heF92ZXIgPSBOb25lCisgICAgICAgIHNlbGYuc2VydmVyX3R5cGUg PSBbJ3BwYXMnXQorCisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRl IFByb2NlZHVyZXMgY29sbGVjdGlvbiBub2RlLgorICAgICAgICAiIiIKKyAg ICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25f bm9kZShzY2lkKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5vZGVfaW5v ZGUoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBNYWtlIHRoZSBub2Rl IGFzIGxlYWYgbm9kZS4KKyAgICAgICAgUmV0dXJuczoKKyAgICAgICAgICAg IEZhbHNlIGFzIHRoaXMgbm9kZSBkb2Vzbid0IGhhdmUgY2hpbGQgbm9kZXMu CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIEBw cm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIFByb2Nl ZHVyZXMsIHdoZW4gdGhlCisgICAgICAgIHNjaGVtYSBub2RlIGlzIGluaXRp YWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIHNjaGVtYXMu U2NoZW1hTW9kdWxlLk5PREVfVFlQRQorCisKK3Byb2NlZHVyZV9ibHVlcHJp bnQgPSBQcm9jZWR1cmVNb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgUHJv Y2VkdXJlVmlldyhGdW5jdGlvblZpZXcpOgorCisgICAgbm9kZV90eXBlID0g cHJvY2VkdXJlX2JsdWVwcmludC5ub2RlX3R5cGUKKworICAgIGRlZiBfX2lu aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAg ICAgICAgSW5pdGlhbGl6ZSB0aGUgRnVuY3Rpb24gTW9kdWxlLgorICAgICAg ICBBcmdzOgorICAgICAgICAgICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3 YXJnczoKKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKFByb2NlZHVyZVZp ZXcsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgIEBw cm9wZXJ0eQorICAgIGRlZiByZXF1aXJlZF9hcmdzKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgUmV0dXJucyBSZXF1aXJlZCBhcmd1bWVudHMgZm9y IHByb2NlZHVyZXMgbm9kZS4KKyAgICAgICAgV2hlcmUKKyAgICAgICAgICAg IFJlcXVpcmVkIEFyZ3M6CisgICAgICAgICAgICAgICAgbmFtZTogICAgICAg ICAgIE5hbWUgb2YgdGhlIEZ1bmN0aW9uCisgICAgICAgICAgICAgICAgcHJv bmFtZXNwYWNlOiAgIEZ1bmN0aW9uIE5hbWVzcGFjZQorICAgICAgICAgICAg ICAgIGxhbm5hbWU6ICAgICAgICBGdW5jdGlvbiBMYW5ndWFnZSBOYW1lCisg ICAgICAgICAgICAgICAgcHJvc3JjOiAgICAgICAgIEZ1bmN0aW9uIENvZGUK KyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBbJ25hbWUnLAorICAgICAg ICAgICAgICAgICdwcm9uYW1lc3BhY2UnLAorICAgICAgICAgICAgICAgICds YW5uYW1lJywKKyAgICAgICAgICAgICAgICAncHJvc3JjJ10KKworICAgIGRl ZiBtb2R1bGVfanMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBMb2Fk IEpTIGZpbGUgKHByb2NlZHVyZXMuanMpIGZvciB0aGlzIG1vZHVsZS4KKyAg ICAgICAgIiIiCisKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisg ICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg InByb2NlZHVyZS9qcy9wcm9jZWR1cmVzLmpzIiwKKyAgICAgICAgICAgICAg ICBfPWdldHRleHQKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAyMDAs IHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9 CisgICAgICAgICkKKworUHJvY2VkdXJlVmlldy5yZWdpc3Rlcl9ub2RlX3Zp ZXcocHJvY2VkdXJlX2JsdWVwcmludCkKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMvaW1nL2NvbGwtZnVuY3Rpb24ucG5n IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1m dW5jdGlvbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzQ0ODc0ZTU1 NzRlNjI0YzI2ODc2ODlhYzc1ZjNiYTRlZDY5ZTgxMQpHSVQgYmluYXJ5IHBh dGNoCmxpdGVyYWwgMzQ5CnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdC ITYzP3d5bGBHYkwhYWV6O1ZFMENWTD04OyM/KmAtKGhec1JpOQp6Kj4mfmMp MzRQRj99cGMwb099RlQmZVlwZzMhbENKe3tRcHVLUGx9R2F3YjBOK1Z0WHJ5 JillXjgpSGUzVW9lQmkKenZtMHFaNHJoVCFXSEZIVDBBc2g0Kj4qcmlxTmpe dmh7V2FDZXN7aEQxe15GT3Q/cXZQenJJKH52RnpFZ0VFYUNUCnpLbjgmZkNj fFRAb0h5RHd8MzAhSW5YflZwPUREUUB8RX1TaVdORGYxZDVve3ZPUzlePGpI NkpRJSF7WEE2OH49VAp6VVZIVS0oV1IpX3paWloxX3h0KHhqaH5yWFcte31C YyQ7NGh2YG4/Y0hLSFVYdV9WPGh4aE5HI0YmRyZiOHROSnQKej5LZDdiN0BB cmNtfEdjYFk4I2tZODVsNURvX35tPEF2WnJJR3AhUCYhOWRyKjV+d0d7JGtA dW4jTEI9LStXQEgzClU7TURaY0g5IXB2cDAwaV8+em9wcjA2S1NxY21NeloK CmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMvaW1nL2NvbGwtcHJvY2VkdXJlLnBu ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMvaW1nL2NvbGwt cHJvY2VkdXJlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YzEzYTli YzczYTc4MmI1MTM5MDk1YWY1OTZlMTVkN2I2OGRkMjBjCkdJVCBiaW5hcnkg cGF0Y2gKbGl0ZXJhbCAzMzcKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4w d0IhNzM/JCMpZUZQRnY1QVg/YjE9OUVDJXNDYm1eblVOJmRzQylkCnolZyVt KD8lY0pPbVVCXjImKTJUS1IkVG81YH1iP3IpeDZleCZ3eHI5T00/N0A4NjJN N05DUj4+M3Becj1md1R1MAp6eVBlRm8xMlBnbFRedkk9dHx1b1hnYW9COUZz bWdpR2E1N3B4X1hNYmFCRkh4TzB6T1pXQFd6QUB7KTNCZCMxRXYKemY+blM9 d1J5bCkwZ3NJRFlLJDhNMVQ+bWood0dqYUVVPGpfKUx7WEtWZGhuKDJAaVhg dGtNOyg4U2I9aiV4JThPCnomJktkem1aKVJ3R3pNUndXdlY1djVoVz4hQzg8 YClNWDVsRiFOfGJTUH1qZ3YqVF4pKShBM0puK3spTlkrclo0cQp6eitqKTty VEhpdGFgUkklKDwodDQ0MEhgRmZxRnVXaklCJmV0UEZxfWZJMUNNTyVHaUkp V0cyQj5nVGV+RFdNNGYKREMmRnEhCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEK CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3RhdGlj L2ltZy9mdW5jdGlvbi5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv c3RhdGljL2ltZy9mdW5jdGlvbi5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MC4uNjU2ODU0YTAxOTFiNWRkNWQ0NjVmOTBjZmJjZWViZGMzOTEzZjFhMgpH SVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMzI1CnpjbWVBU0BOPyhvbEh5YHVW QnEhaWEwdnBeMHdCITczPyQjKWVGUEhGM2gpVlcxPTNVM0pufHwheVkkTVJo YWRtewp6e3J+VVk9YnV+ZGU0Y2dxWlM5aWg9eypscUl2JGtHZSR2MD1XeStv eCtrbVBXT00/N0A4NjJNN05DUj4+M3Becj0KemZ3VHUweVBlRm8xMlRkPFRe dkk9dHx1b3JGZ2JNeiVuSDJlIUVoI19zSVphNGE4KC17VzI/bH1ETmA8OFlI OyMtCnpzdH0tWjtKXzZ8SFpDMz9XNTxMXjM9d0JuZyhsP28rfWRzNCRlVXpV JSRDKm5QTChsYV9YUCVxaWx4R2JrN3NCIQp6MFptc2VhZzhXUk5pMGRWTi1q elRRVmQyMGg2Y0taTSFFKXVBd352UENkTzdLcnJITGtSdDUoMS1zIURFKFU2 OzsKbGw5XlRzKE9fVCspJk52KFZyNV9rKFFzO2Q9bys4fjIyV1ElbXZ2NEZP I3NHa2FBZzFoCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3RhdGljL2ltZy9wcm9jZWR1 cmUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcv cHJvY2VkdXJlLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjY1ZGZm OWViMmMzNzNkZjAzMTY2OWFkYmE3YTgyYzBhZTJhYWE2CkdJVCBiaW5hcnkg cGF0Y2gKbGl0ZXJhbCAzMjIKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB2cF4w d0IhNzM/JCMpZUZQRnY1QVg/YjE9OUNzJXttcW9ebTZDVUExX3x+Cnp8Tkht YnFlcmp5P1ImSXIrMEV8bU9KIXZqaTtKJX1IPHVMTXkkbj4hU1E2d0glOzUw c01qRFhBUz5PPl80NVU1NAp6KnpJSnQ5Z3E+Xj5FYWx8YVhtU35meXQ+JFV7 Pkh3NH44PWRNVEx6VmhPNjR4NytXUSNQTUxEKVFpR0d2US11SlAKejB8JX0h dlReYkY3Jnw2UlZ1KDFxRGx7UnQ9aGtsWE0mMlo9VnojV2xNSDNpUyNieil0 IzZLMUs/c3U8bzhxanByCno2NCF7NWwqRSEkdEtfMG9Bak0jMFV9JmdvVjVu PGs4ZShXX1duZ1kpWV5INXNXQFRXb1B3dnV1NmItcmdEVmJATgpwQVBvaygy OWBpUUF4NmVsQ01IJH1Lbip+aDJCKVRudF5zT2JATzFUYVM/ODN7MU9RaCNa RlQ/dgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9jc3Mv ZnVuY3Rpb24uY3NzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9jc3MvZnVuY3Rpb24uY3NzCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2YjJlNzEKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL2Nzcy9mdW5jdGlvbi5jc3MKQEAgLTAsMCArMSwzIEBACisuZnVuY3Rp b25zX2NvZGUgeworICAgIGhlaWdodDogMTMwcHggIWltcG9ydGFudDsKK30K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL2pzL2Z1 bmN0aW9ucy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vanMvZnVuY3Rpb25zLmpzCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmQ2Mjg4OWYKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L2pzL2Z1bmN0aW9ucy5qcwpAQCAtMCwwICsxLDQ4MiBAQAorLyogQ3JlYXRl IGFuZCBSZWdpc3RlciBGdW5jdGlvbiBDb2xsZWN0aW9uIGFuZCBOb2RlLiAq LworZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywg J3VuZGVyc2NvcmUuc3RyaW5nJywKKyAgICAgICAgICdwZ2FkbWluJywgJ3Bn YWRtaW4uYnJvd3NlcicsICdhbGVydGlmeScsCisgICAgICAgICAgJ3BnYWRt aW4uYnJvd3Nlci5jb2xsZWN0aW9uJywgJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2 ZXIucHJpdmlsZWdlJ10sCitmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWluLCBw Z0Jyb3dzZXIsIGFsZXJ0aWZ5KSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9k ZXNbJ2NvbGwtZnVuY3Rpb24nXSkgeworICAgIHZhciBmdW5jdGlvbnMgPSBw Z0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtZnVuY3Rpb24nXSA9CisgICAg ICBwZ0FkbWluLkJyb3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAg ICBub2RlOiAnZnVuY3Rpb24nLAorICAgICAgICBsYWJlbDogJ3t7IF8oJ0Z1 bmN0aW9ucycpIH19JywKKyAgICAgICAgdHlwZTogJ2NvbGwtZnVuY3Rpb24n LAorICAgICAgICBjb2x1bW5zOiBbJ25hbWUnLCAnZnVuY293bmVyJywgJ2Rl c2NyaXB0aW9uJ10KKyAgICAgIH0pOworICB9OworCisgIC8vIFNlY3VyaXR5 IE1vZGVsCisgIHZhciBTZWN1cml0eU1vZGVsID0gQmFja2Zvcm0uU2VjdXJp dHlNb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7 CisgICAgZGVmYXVsdHM6IHsKKyAgICAgIHByb3ZpZGVyOiBudWxsLAorICAg ICAgbGFiZWw6IG51bGwKKyAgICB9LAorICAgIHNjaGVtYTogW3sKKyAgICAg IGlkOiAncHJvdmlkZXInLCBsYWJlbDogJ3t7IF8oJ1Byb3ZpZGVyJykgfX0n LAorICAgICAgdHlwZTogJ3RleHQnLCBlZGl0YWJsZTogdHJ1ZSwgY2VsbEhl YWRlckNsYXNzZXM6J3dpZHRoX3BlcmNlbnRfNTAnCisgICAgfSx7CisgICAg ICBpZDogJ3NlY3VyaXR5X2xhYmVsJywgbGFiZWw6ICd7eyBfKCdTZWN1cml0 eSBMYWJlbCcpIH19JywKKyAgICAgIHR5cGU6ICd0ZXh0JywgZWRpdGFibGU6 IHRydWUsIGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50XzUwJwor ICAgIH1dLAorICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHZh ciBlcnIgPSB7fSwKKyAgICAgICAgICBlcnJtc2cgPSBudWxsLAorICAgICAg ICAgIGRhdGEgPSB0aGlzLnRvSlNPTigpOworCisgICAgICBpZiAoXy5pc1Vu ZGVmaW5lZChkYXRhLmxhYmVsKSB8fAorICAgICAgICBfLmlzTnVsbChkYXRh LmxhYmVsKSB8fAorICAgICAgICBTdHJpbmcoZGF0YS5sYWJlbCkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICByZXR1cm4g XygiUGxlYXNlIHNwZWNpZnkgdGhlIHZhbHVlIGZvciBhbGwgdGhlIHNlY3Vy aXR5IHByb3ZpZGVycy4iKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBudWxs OworICAgIH0KKyAgfSk7CisKKyAgLy8gQXJndW1lbnQgTW9kZWwKKyAgdmFy IEFyZ3VtZW50TW9kZWwgPSBwZ0FkbWluLkJyb3dzZXIuTm9kZS5Nb2RlbC5l eHRlbmQoeworICAgIGlkQXR0cmlidXRlOiAnYXJnaWQnLAorICAgIGRlZmF1 bHRzOiB7CisgICAgICBhcmdpZDogdW5kZWZpbmVkLAorICAgICAgYXJndHlw ZTogdW5kZWZpbmVkLAorICAgICAgYXJnbW9kZTogdW5kZWZpbmVkLAorICAg ICAgYXJnbmFtZTogdW5kZWZpbmVkLAorICAgICAgYXJnZGVmdmFsOiB1bmRl ZmluZWQKKyAgICB9LAorICAgIHNjaGVtYTogW3sKKyAgICAgIGlkOiAnYXJn aWQnLCB2aXNpYmxlOiBmYWxzZSwgdHlwZTogJ3RleHQnLAorICAgICAgbW9k ZTogWydwcm9wZXJ0aWVzJywgJ2VkaXQnLCdjcmVhdGUnXQorICAgICAgfSx7 CisgICAgICAgIGlkOiAnYXJndHlwZScsIGxhYmVsOid7eyBfKCdEYXRhIFR5 cGUnKSB9fScsIGNlbGw6CisgICAgICAgICdub2RlLWFqYXgtb3B0aW9ucycs IGNlbGxIZWFkZXJDbGFzc2VzOiAnd2lkdGhfcGVyY2VudF8zMCcsCisgICAg ICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHR5cGU6ICd0ZXh0 JywgdXJsOiAnZ2V0X3R5cGVzJywKKyAgICAgICAgZWRpdGFibGU6IGZ1bmN0 aW9uKG0pIHsKKyAgICAgICAgICBub2RlX2luZm8gPSB0aGlzLmdldCgnbm9k ZV9pbmZvJyk7CisgICAgICAgICAgaWYobm9kZV9pbmZvICYmICdjYXRhbG9n JyBpbiBub2RlX2luZm8pIHsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgICB9CisgICAgICAgICAgcmV0dXJuIF8uaXNVbmRlZmluZWQo bS5pc05ldykgPyB0cnVlIDogbS5pc05ldygpOworICAgICAgICB9LCBmaXJz dF9lbXB0eTogdHJ1ZQorICAgICAgfSx7CisgICAgICAgIGlkOiAnYXJnbW9k ZScsIGxhYmVsOid7eyBfKCdNb2RlJykgfX0nLCB0eXBlOiAnb3B0aW9ucycs CisgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIGNlbGxI ZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50XzIwJywKKyAgICAgICAgb3B0 aW9uczpbCisgICAgICAgICAgeydsYWJlbCc6ICdJTicsICd2YWx1ZSc6ICdJ Tid9LAorICAgICAgICAgIHsnbGFiZWwnOiAnT1VUJywgJ3ZhbHVlJzogJ09V VCd9LAorICAgICAgICAgIHsnbGFiZWwnOiAnSU5PVVQnLCAndmFsdWUnOiAn SU5PVVQnfSwKKyAgICAgICAgICB7J2xhYmVsJzogJ1ZBUklBRElDJywgJ3Zh bHVlJzogJ1ZBUklBRElDJ30KKyAgICAgICAgXSwgZWRpdGFibGU6IGZ1bmN0 aW9uKG0pIHsKKyAgICAgICAgICAgICBub2RlX2luZm8gPSB0aGlzLmdldCgn bm9kZV9pbmZvJyk7CisgICAgICAgICAgICAgaWYobm9kZV9pbmZvICYmICdj YXRhbG9nJyBpbiBub2RlX2luZm8pIHsKKyAgICAgICAgICAgICAgIHJldHVy biBmYWxzZTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgICAgcmV0dXJu IF8uaXNVbmRlZmluZWQobS5pc05ldykgPyB0cnVlIDogbS5pc05ldygpOwor ICAgICAgICAgICB9CisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdhcmduYW1l JywgbGFiZWw6J3t7IF8oJ0FyZ3VtZW50IE5hbWUnKSB9fScsIHR5cGU6ICd0 ZXh0JywKKyAgICAgICAgY2VsbDogJ3N0cmluZycsIGVkaXRhYmxlOiAnaXNJ bkNhdGFsb2cnLCBjZWxsSGVhZGVyQ2xhc3Nlczond2lkdGhfcGVyY2VudF8z MCcKKyAgICAgIH0seworICAgICAgICBpZDogJ2FyZ2RlZnZhbCcsIGxhYmVs Oid7eyBfKCdEZWZhdWx0IFZhbHVlJykgfX0nLCB0eXBlOiAndGV4dCcsCisg ICAgICAgIGNlbGw6ICdzdHJpbmcnLCBlZGl0YWJsZTogJ2lzSW5DYXRhbG9n JywgIGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50XzIwJworICAg ICAgfQorICAgIF0sCisgICAgdG9KU09OOiBCYWNrYm9uZS5Nb2RlbC5wcm90 b3R5cGUudG9KU09OLAorICAgIGlzSW5DYXRhbG9nOiBmdW5jdGlvbihtKXsK KyAgICAgIG5vZGVfaW5mbyA9IHRoaXMuZ2V0KCdub2RlX2luZm8nKTsKKyAg ICAgIGlmKG5vZGVfaW5mbyAmJiAnY2F0YWxvZycgaW4gbm9kZV9pbmZvKSB7 CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIHJldHVy biB0cnVlOworICAgIH0sCisgIH0pOworCisgIGlmICghcGdCcm93c2VyLk5v ZGVzWydmdW5jdGlvbiddKSB7CisgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGVz WydmdW5jdGlvbiddID0gcGdCcm93c2VyLk5vZGUuZXh0ZW5kKHsKKyAgICAg IHR5cGU6ICdmdW5jdGlvbicsCisgICAgICBsYWJlbDogJ3t7IF8oJ0Z1bmN0 aW9uJykgfX0nLAorICAgICAgY29sbGVjdGlvbl90eXBlOiAnY29sbC1mdW5j dGlvbicsCisgICAgICBoYXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRz OiB0cnVlLAorICAgICAgcGFyZW50X3R5cGU6IFsnc2NoZW1hJywgJ2NhdGFs b2cnXSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKGFyZ3MpIHsKKyAgICAgICAg LyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICovCisg ICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAgcmV0 dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOworCisg ICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1l OiAnY3JlYXRlX2Z1bmN0aW9uX29uX2NvbGwnLCBub2RlOiAnY29sbC1mdW5j dGlvbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29i amVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVy dGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0 eTogNCwgbGFiZWw6ICd7eyBfKCdGdW5jdGlvbi4uLicpIH19JywKKyAgICAg ICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZnVuY3Rpb24nLCBkYXRhOiB7 YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVu YWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFt ZTogJ2NyZWF0ZV9mdW5jdGlvbicsIG5vZGU6ICdmdW5jdGlvbicsIG1vZHVs ZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250 ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAg ICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6 ICd7eyBfKCdGdW5jdGlvbi4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAn d2NUYWJJY29uIGljb24tZnVuY3Rpb24nLCBkYXRhOiB7YWN0aW9uOiAnY3Jl YXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2NhbkNy ZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9m dW5jdGlvbicsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisgICAg ICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFj azogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5 OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRnVuY3Rp b24uLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBpY29u LWZ1bmN0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNrOiBm YWxzZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAgICAg ICB9CisgICAgICAgIF0pOworCisgICAgICB9LAorICAgICAgY2FuRHJvcDog cGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisgICAg ICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5j YW5DaGlsZERyb3AsCisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5v ZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgaW5pdGlhbGl6ZTogZnVuY3Rp b24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2YXIgaXNOZXcgPSAoXy5z aXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7Cisg ICAgICAgICAgICAvLyBTZXQgU2VsZWN0ZWQgU2NoZW1hCisgICAgICAgICAg ICBzY2hlbWFfaWQgPSBhcmdzLm5vZGVfaW5mby5zY2hlbWEuX2lkCisgICAg ICAgICAgICB0aGlzLnNldCh7J3Byb25hbWVzcGFjZSc6IHNjaGVtYV9pZH0s IHtzaWxlbnQ6IHRydWV9KTsKKworICAgICAgICAgICAgLy8gU2V0IEN1cnJl bnQgVXNlcgorICAgICAgICAgICAgdmFyIHVzZXJJbmZvID0gcGdCcm93c2Vy LnNlcnZlckluZm9bYXJncy5ub2RlX2luZm8uc2VydmVyLl9pZF0udXNlcjsK KyAgICAgICAgICAgIHRoaXMuc2V0KHsnZnVuY293bmVyJzogdXNlckluZm8u bmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAgICAg ICAgcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmluaXRp YWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgfSwKKyAg ICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1lOiB1bmRlZmluZWQs CisgICAgICAgICAgb2lkOiB1bmRlZmluZWQsCisgICAgICAgICAgeG1pbjog dW5kZWZpbmVkLAorICAgICAgICAgIGZ1bmNvd25lcjogdW5kZWZpbmVkLAor ICAgICAgICAgIHByb25hbWVzcGFjZTogdW5kZWZpbmVkLAorICAgICAgICAg IGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsCisgICAgICAgICAgcHJvbmFyZ3M6 IHVuZGVmaW5lZCwgLyogQXJndW1lbnQgQ291bnQgKi8KKyAgICAgICAgICBw cm9hcmdzOiB1bmRlZmluZWQsIC8qIEFyZ3VtZW50cyAqLworICAgICAgICAg IHByb2FyZ3R5cGVuYW1lczogdW5kZWZpbmVkLCAvKiBBcmd1bWVudCBTaWdu YXR1cmUgKi8KKyAgICAgICAgICBwcm9yZXR0eXBlbmFtZTogdW5kZWZpbmVk LCAvKiBSZXR1cm4gVHlwZSAqLworICAgICAgICAgIGxhbm5hbWU6ICdzcWwn LCAvKiBMYW5ndWFnZSBOYW1lIGluIHdoaWNoIGZ1bmN0aW9uIGlzIGJlaW5n IHdyaXR0ZW4gKi8KKyAgICAgICAgICBwcm92b2xhdGlsZTogdW5kZWZpbmVk LCAvKiBWb2xhdGlsaXR5ICovCisgICAgICAgICAgcHJvcmV0c2V0OiB1bmRl ZmluZWQsIC8qIFJldHVybiBTZXQgKi8KKyAgICAgICAgICBwcm9pc3N0cmlj dDogdW5kZWZpbmVkLAorICAgICAgICAgIHByb3NlY2RlZjogdW5kZWZpbmVk LCAvKiBTZWN1cml0eSBvZiBkZWZpbmVyICovCisgICAgICAgICAgcHJvaXN3 aW5kb3c6IHVuZGVmaW5lZCwgLyogV2luZG93IEZ1bmN0aW9uID8gKi8KKyAg ICAgICAgICBwcm9jb3N0OiB1bmRlZmluZWQsIC8qIEVzdGltYXRlZCBleGVj dXRpb24gQ29zdCAqLworICAgICAgICAgIHByb3Jvd3M6IHVuZGVmaW5lZCwg LyogRXN0aW1hdGVkIG51bWJlciBvZiByb3dzICovCisgICAgICAgICAgcHJv bGVha3Byb29mOiB1bmRlZmluZWQsCisgICAgICAgICAgYXJndW1lbnRzOiBb XSwKKyAgICAgICAgICBwcm9zcmM6IHVuZGVmaW5lZCwKKyAgICAgICAgICBw cm9zcmNfYzogdW5kZWZpbmVkLAorICAgICAgICAgIHByb2JpbjogJyRsaWJk aXIvJywKKyAgICAgICAgICBvcHRpb25zOiBbXSwKKyAgICAgICAgICB2YXJp YWJsZXM6IFtdLAorICAgICAgICAgIHByb2FjbDogdW5kZWZpbmVkLAorICAg ICAgICAgIHNlY2xhYmVsczogW10sCisgICAgICAgICAgYWNsOiBbXSwKKyAg ICAgICAgICBzeXNmdW5jOiB1bmRlZmluZWQsCisgICAgICAgICAgc3lzcHJv YzogdW5kZWZpbmVkCisgICAgICAgIH0sCisgICAgICAgIHNjaGVtYTogW3sK KyAgICAgICAgICBpZDogJ25hbWUnLCBsYWJlbDogJ3t7IF8oJ05hbWUnKSB9 fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0Jywg bW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAg ICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAg ICAgICAgICBpZDogJ29pZCcsIGxhYmVsOiAne3sgXygnT0lEJykgfX0nLCBj ZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcgLCBtb2Rl OiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J2Z1bmNvd25lcicsIGxhYmVsOiAne3sgXygnT3duZXInKSB9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVM aXN0QnlOYW1lQ29udHJvbCwgbm9kZTogJ3JvbGUnLCAgdHlwZToKKyAgICAg ICAgICAndGV4dCcsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdwcm9uYW1lc3BhY2UnLCBsYWJlbDogJ3t7 IF8oJ1NjaGVtYScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAg Y29udHJvbDogJ25vZGUtbGlzdC1ieS1pZCcsIHR5cGU6ICd0ZXh0JywgY2Fj aGVfbGV2ZWw6ICdkYXRhYmFzZScsCisgICAgICAgICAgbm9kZTogJ3NjaGVt YScsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcsIG1vZGU6IFsnY3JlYXRlJywg J2VkaXQnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3N5c2Z1bmMn LCBsYWJlbDogJ3t7IF8oJ1N5c3RlbSBmdW5jdGlvbj8nKSB9fScsCisgICAg ICAgICAgIGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywKKyAgICAg ICAgICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sIHZpc2libGU6ICdpc1Zpc2li bGUnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnc3lzcHJvYycsIGxh YmVsOiAne3sgXygnU3lzdGVtIHByb2NlZHVyZT8nKSB9fScsCisgICAgICAg ICAgIGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywKKyAgICAgICAg ICAgbW9kZTogWydwcm9wZXJ0aWVzJ10sIHZpc2libGU6ICdpc1Zpc2libGUn CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnZGVzY3JpcHRpb24nLCBs YWJlbDogJ3t7IF8oJ0NvbW1lbnQnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAor ICAgICAgICAgIHR5cGU6ICdtdWx0aWxpbmUnLCBkaXNhYmxlZDogJ2lzRGlz YWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvbmFyZ3Mn LCBsYWJlbDogJ3t7IF8oJ0FyZ3VtZW50IGNvdW50JykgfX0nLCBjZWxsOiAn c3RyaW5nJywKKyAgICAgICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sg XygnRGVmaW5pdGlvbicpIH19JywgbW9kZTogWydwcm9wZXJ0aWVzJ10KKyAg ICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9hcmdzJywgbGFiZWw6ICd7 eyBfKCdBcmd1bWVudHMnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykg fX0nLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnZWRpdCddLAorICAgICAgICAg IGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdwcm9hcmd0eXBlbmFtZXMnLCBsYWJlbDogJ3t7IF8oJ1NpZ25h dHVyZSBhcmd1bWVudHMnKSB9fScsIGNlbGw6CisgICAgICAgICAgJ3N0cmlu ZycsIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykg fX0nLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXSwKKyAgICAgICAgICBkaXNhYmxl ZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAn cHJvcmV0dHlwZW5hbWUnLCBsYWJlbDogJ3t7IF8oJ1JldHVybiB0eXBlJykg fX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICBjb250cm9sOiAnbm9k ZS1hamF4LW9wdGlvbnMnLCB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygn RGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICB1cmw6ICdnZXRfdHlwZXMn LCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnLCBmaXJzdF9lbXB0eTogdHJ1ZSwK KyAgICAgICAgICBtb2RlOiBbJ2NyZWF0ZSddLCB2aXNpYmxlOiAnaXNWaXNp YmxlJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3JldHR5cGVu YW1lJywgbGFiZWw6ICd7eyBfKCdSZXR1cm4gdHlwZScpIH19JywgY2VsbDog J3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7 IF8oJ0RlZmluaXRpb24nKSB9fScsIGRpc2FibGVkOiB0cnVlLAorICAgICAg ICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0J10sIGRpc2FibGVkOiAn aXNEaXNhYmxlZCcsIHZpc2libGU6ICdpc1Zpc2libGUnCisgICAgICAgIH0s ICB7CisgICAgICAgICAgaWQ6ICdsYW5uYW1lJywgbGFiZWw6ICd7eyBfKCdM YW5ndWFnZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY29u dHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCBncm91 cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsCisgICAgICAgICAgdXJsOiAn Z2V0X2xhbmd1YWdlcycsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9zcmMnLCBsYWJlbDogJ3t7IF8o J0NvZGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6 ICd0ZXh0JywgbW9kZTogWydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0 J10sCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0n LCBkZXBzOiBbJ2xhbm5hbWUnXSwKKyAgICAgICAgICBjb250cm9sOiBCYWNr Zm9ybS5TcWxGaWVsZENvbnRyb2wsCisgICAgICAgICAgZXh0cmFDbGFzc2Vz OlsnY3VzdG9tX2hlaWdodF9jc3NfY2xhc3MnXSwKKyAgICAgICAgICB2aXNp YmxlOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICBpZiAobS5nZXQoJ2xh bm5hbWUnKSA9PSAnYycpIHsKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl OworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICAgfSwgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ3Byb2JpbicsIGxhYmVsOiAne3sgXygnT2Jq ZWN0IGZpbGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5 cGU6ICd0ZXh0JywgZ3JvdXA6ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLCBk ZXBzOiBbJ2xhbm5hbWUnXSwgdmlzaWJsZToKKyAgICAgICAgICBmdW5jdGlv bihtKSB7CisgICAgICAgICAgICBpZiAobS5nZXQoJ2xhbm5hbWUnKSA9PSAn YycpIHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgICAgIHJldHVybiBmYWxz ZTsKKyAgICAgICAgICB9LCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAncHJvc3JjX2MnLCBsYWJlbDogJ3t7 IF8oJ0xpbmsgc3ltYm9sJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicp IH19JywgIGRlcHM6IFsnbGFubmFtZSddLCB2aXNpYmxlOgorICAgICAgICAg IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIGlmIChtLmdldCgnbGFubmFt ZScpID09ICdjJykgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICAgIH0sIGRpc2FibGVkOiAnaXNEaXNhYmxl ZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm92b2xhdGlsZScs IGxhYmVsOiAne3sgXygnVm9sYXRpbGl0eScpIH19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWpheC1vcHRpb25zJywg dHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ09wdGlvbnMnKSB9fScsCisg ICAgICAgICAgb3B0aW9uczpbCisgICAgICAgICAgICB7J2xhYmVsJzogJ1ZP TEFUSUxFJywgJ3ZhbHVlJzogJ3YnfSwKKyAgICAgICAgICAgIHsnbGFiZWwn OiAnU1RBQkxFJywgJ3ZhbHVlJzogJ3MnfSwKKyAgICAgICAgICAgIHsnbGFi ZWwnOiAnSU1NVVRBQkxFJywgJ3ZhbHVlJzogJ2knfSwKKyAgICAgICAgICBd LCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAncHJvcmV0c2V0JywgbGFiZWw6ICd7eyBfKCdSZXR1cm5zIGEg c2V0PycpIH19JywgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLAorICAg ICAgICAgIGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywgIGRpc2Fi bGVkOiAnaXNEaXNhYmxlZCcsCisgICAgICAgICAgdmlzaWJsZTogJ2lzVmlz aWJsZScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9pc3N0cmlj dCcsIGxhYmVsOiAne3sgXygnU3RyaWN0PycpIH19JywgZ3JvdXA6ICd7eyBf CisgICAgICAgICAgKCdPcHRpb25zJykgfX0nLAorICAgICAgICAgIGNlbGw6 J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6ICdpc0Rpc2Fi bGVkJywKKyAgICAgICAgICBvcHRpb25zOiB7CisgICAgICAgICAgICAnb25U ZXh0JzogJ1llcycsICdvZmZUZXh0JzogJ05vJywKKyAgICAgICAgICAgICdv bkNvbG9yJzogJ3N1Y2Nlc3MnLCAnb2ZmQ29sb3InOiAncHJpbWFyeScsCisg ICAgICAgICAgICAnc2l6ZSc6ICdzbWFsbCcKKyAgICAgICAgICAgfQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3NlY2RlZicsIGxhYmVsOiAn e3sgXygnU2VjdXJpdHkgb2YgZGVmaW5lcj8nKSB9fScsCisgICAgICAgICAg IGdyb3VwOiAne3sgXygnT3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbics IHR5cGU6ICdzd2l0Y2gnLAorICAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlz YWJsZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvaXN3aW5k b3cnLCBsYWJlbDogJ3t7IF8oJ1dpbmRvdz8nKSB9fScsCisgICAgICAgICAg IGdyb3VwOiAne3sgXygnT3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbics IHR5cGU6ICdzd2l0Y2gnLAorICAgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rp c2FibGVkJywgdmlzaWJsZTogJ2lzVmlzaWJsZScKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdwcm9jb3N0JywgbGFiZWw6ICd7eyBfKCdFc3RpbWF0 ZWQgY29zdCcpIH19JywgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLAor ICAgICAgICAgIGNlbGw6J3N0cmluZycsIHR5cGU6ICd0ZXh0JywgZGlzYWJs ZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J3Byb3Jvd3MnLCBsYWJlbDogJ3t7IF8oJ0VzdGltYXRlZCByb3dzJykgfX0n LCBncm91cDogJ3t7IF8KKyAgICAgICAgICAoJ09wdGlvbnMnKSB9fScsCisg ICAgICAgICAgY2VsbDonc3RyaW5nJywgdHlwZTogJ3RleHQnLCBkaXNhYmxl ZDogJ2lzRGlzYWJsZWQnLAorICAgICAgICAgIGRlcHM6IFsncHJvcmV0c2V0 J10sIHZpc2libGU6ICdpc1Zpc2libGUnCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAncHJvbGVha3Byb29mJywgbGFiZWw6ICd7eyBfKCdMZWFrIHBy b29mPycpIH19JywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ09wdGlvbnMn KSB9fScsIGNlbGw6J2Jvb2xlYW4nLCB0eXBlOiAnc3dpdGNoJywgbWluX3Zl cnNpb246IDkwMjAwLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNhYmxl ZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9hY2wnLCBsYWJl bDogJ3t7IF8oJ1ByaXZpbGVnZXMnKSB9fScsCisgICAgICAgICAgIGdyb3Vw OiAne3sgXygnU2VjdXJpdHknKSB9fScsIGNlbGw6J2Jvb2xlYW4nLCB0eXBl OiAndGV4dCcsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgICBtb2RlOiBb J3Byb3BlcnRpZXMnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Fy Z3VtZW50cycsIGxhYmVsOiAne3sgXygnUGFyYW1ldGVycycpIH19JywgY2Vs bDogJ3N0cmluZycsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdQYXJhbWV0 ZXJzJykgfX0nLCB0eXBlOiAnY29sbGVjdGlvbicsIGNhbkFkZDogZnVuY3Rp b24obSl7CisgICAgICAgICAgICByZXR1cm4gbS5pc05ldygpOworICAgICAg ICAgIH0sCisgICAgICAgICAgY2FuRGVsZXRlOiB0cnVlLCBtb2RlbDogQXJn dW1lbnRNb2RlbCwgbW9kZTogWydjcmVhdGUnLCAnZWRpdCddLAorICAgICAg ICAgIGNvbHVtbnM6IFsnYXJndHlwZScsICdhcmdtb2RlJywgJ2FyZ25hbWUn LCAnYXJnZGVmdmFsJ10sCisgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2Fi bGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3ZhcmlhYmxlcycs IGxhYmVsOiAne3sgXygnVmFyaWFibGVzJykgfX0nLCB0eXBlOiAnY29sbGVj dGlvbicsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdWYXJpYWJsZXMnKSB9 fScsIGNvbnRyb2w6ICd2YXJpYWJsZS1jb2xsZWN0aW9uJywKKyAgICAgICAg ICBtb2RlbDogcGdBZG1pbi5Ccm93c2VyLk5vZGUuVmFyaWFibGVNb2RlbCwK KyAgICAgICAgICBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sIGNhbkFkZDog J2NhblZhckFkZCcsIGNhbkVkaXQ6IGZhbHNlLAorICAgICAgICAgIGNhbkRl bGV0ZTogdHJ1ZSwgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICAg fSx7CisgICAgICAgICAgaWQ6ICdhY2wnLCBsYWJlbDogJ3t7IF8oJ1ByaXZp bGVnZXMnKSB9fScsIG1vZGVsOiBwZ0FkbWluCisgICAgICAgICAgLkJyb3dz ZXIuTm9kZS5Qcml2aWxlZ2VSb2xlTW9kZWwuZXh0ZW5kKAorICAgICAgICAg ICAge3ByaXZpbGVnZXM6IFsnWCddfSksIHVuaXF1ZUNvbCA6IFsnZ3JhbnRl ZScsICdncmFudG9yJ10sCisgICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0 eXBlOiAnY29sbGVjdGlvbicsIGdyb3VwOiAne3sgXygnU2VjdXJpdHknKSB9 fScsCisgICAgICAgICAgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAg ICAgICAgIGNhbkFkZDogdHJ1ZSwgY2FuRGVsZXRlOiB0cnVlLCBjb250cm9s OiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywKKyAgICAgICAgICBkaXNhYmxl ZDogJ2lzRGlzYWJsZWQnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg ICAgICBpZDogJ3NlY2xhYmVscycsIGxhYmVsOiAne3sgXygnU2VjdXJpdHkg TGFiZWxzJykgfX0nLAorICAgICAgICAgIG1vZGVsOiBTZWN1cml0eU1vZGVs LCB0eXBlOiAnY29sbGVjdGlvbicsCisgICAgICAgICAgZ3JvdXA6ICd7eyBf KCdTZWN1cml0eScpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAor ICAgICAgICAgIG1pbl92ZXJzaW9uOiA5MDEwMCwgY2FuQWRkOiB0cnVlLAor ICAgICAgICAgIGNhbkVkaXQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwKKyAg ICAgICAgICBjb250cm9sOiAndW5pcXVlLWNvbC1jb2xsZWN0aW9uJywgdW5p cXVlQ29sIDogWydwcm92aWRlciddLAorICAgICAgICAgIGRpc2FibGVkOiAn aXNEaXNhYmxlZCcKKyAgICAgICAgfQorICAgICAgICBdLAorICAgICAgICB2 YWxpZGF0ZTogZnVuY3Rpb24oKQorICAgICAgICB7CisgICAgICAgICAgdmFy IGVyciA9IHt9LAorICAgICAgICAgICAgICBlcnJtc2csCisgICAgICAgICAg ICAgIHNlY2xhYmVscyA9IHRoaXMuZ2V0KCdzZWNsYWJlbHMnKTsKKworICAg ICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCduYW1lJykpIHx8 IFN0cmluZyh0aGlzLmdldCgnbmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQv ZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ25hbWUnXSA9ICd7 eyBfKCdOYW1lIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAg ICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsnbmFtZSddOworICAgICAgICAg IH0KKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdm dW5jb3duZXInKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdmdW5jb3duZXInKSku cmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAg ICAgZXJyWydmdW5jb3duZXInXSA9ICd7eyBfKCdPd25lciBjYW4gbm90IGJl IGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8 fCBlcnJbJ2Z1bmNvd25lciddOworICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdwcm9uYW1lc3BhY2UnKSkg fHwgU3RyaW5nKHRoaXMuZ2V0KCdwcm9uYW1lc3BhY2UnKSkucmVwbGFjZSgv XlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgZXJyWydw cm9uYW1lc3BhY2UnXSA9ICd7eyBfKCdTY2hlbWEgY2FuIG5vdCBiZSBlbXB0 eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJy Wydwcm9uYW1lc3BhY2UnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgncHJvcmV0dHlwZW5hbWUnKSkg fHwgU3RyaW5nKHRoaXMuZ2V0KCdwcm9yZXR0eXBlbmFtZScpKS5yZXBsYWNl KC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJb J3Byb3JldHR5cGVuYW1lJ10gPSAne3sgXygnUmV0dXJuIFR5cGUgY2FuIG5v dCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJt c2cgfHwgZXJyWydwcm9yZXR0eXBlbmFtZSddOworICAgICAgICAgIH0KKwor ICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdsYW5uYW1l JykpIHx8IFN0cmluZyh0aGlzLmdldCgnbGFubmFtZScpKS5yZXBsYWNlKC9e XHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2xh bm5hbWUnXSA9ICd7eyBfKCdMYW5ndWFnZSBjYW4gbm90IGJlIGVtcHR5IScp IH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2xh bm5hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoU3RyaW5n KHRoaXMuZ2V0KCdsYW5uYW1lJykpID09ICdjJykgeworICAgICAgICAgICAg aWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb2JpbicpKSB8fCBTdHJp bmcodGhpcy5nZXQoJ3Byb2JpbicpKQorICAgICAgICAgICAgICAucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBl cnJbJ3Byb2JpbiddID0gJ3t7IF8oJ09iamVjdCBGaWxlIGNhbiBub3QgYmUg ZW1wdHkhJykgfX0nOworICAgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cg fHwgZXJyWydwcm9iaW4nXTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg ICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb3NyY19jJykpIHx8 IFN0cmluZyh0aGlzLmdldCgncHJvc3JjX2MnKSkucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICBlcnJbJ3Byb3Ny Y19jJ10gPSAne3sgXygnTGluayBTeW1ib2wgY2FuIG5vdCBiZSBlbXB0eSEn KSB9fSc7CisgICAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJb J3Byb3NyY19jJ107CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAg ICAgICAgIGVsc2UgeworICAgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ3Byb3NyYycpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb3Ny YycpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAg ICAgICAgICAgIGVyclsncHJvc3JjJ10gPSAne3sgXygnQ29kZSBjYW4gbm90 IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgICAgZXJybXNnID0gZXJy bXNnIHx8IGVyclsncHJvc3JjJ107CisgICAgICAgICAgICB9CisgICAgICAg ICAgfQorCisgICAgICAgICAgaWYgKHNlY2xhYmVscykgeworICAgICAgICAg ICAgdmFyIHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgIGZvciAodmFyIGkg PSAwOyBpIDwgc2VjbGFiZWxzLm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVs c0VycjsgaSsrKSB7CisgICAgICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChz ZWNsYWJlbHMubW9kZWxzW2ldKS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMu bW9kZWxzW2ldKTsKKyAgICAgICAgICAgICAgaWYgKHNlY0xhYmVsc0Vycikg eworICAgICAgICAgICAgICAgIGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJl bHNFcnI7CisgICAgICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNl Y0xhYmVsc0VycjsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQor ICAgICAgICAgIH0KKworICAgICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVh cigpLnNldChlcnIpOworCisgICAgICAgICAgaWYgKF8uc2l6ZShlcnIpKSB7 CisgICAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycsIHttc2c6 IGVycm1zZ30pOworICAgICAgICAgICAgcmV0dXJuIGVycm1zZzsKKyAgICAg ICAgICB9CisKKyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwK KyAgICAgICAgaXNWaXNpYmxlOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICBp ZiAodGhpcy5uYW1lID09ICdzeXNwcm9jJykgeyByZXR1cm4gZmFsc2U7IH0K KyAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfSwKKyAgICAgICAg aXNEaXNhYmxlZDogZnVuY3Rpb24obSl7CisgICAgICAgICAgaWYodGhpcy5u b2RlX2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5mbykgewor ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAg ICAgIG5hbWUgPSB0aGlzLm5hbWU7CisgICAgICAgICAgc3dpdGNoKG5hbWUp eworICAgICAgICAgICAgY2FzZSAncHJvYXJncyc6CisgICAgICAgICAgICBj YXNlICdwcm9hcmd0eXBlbmFtZXMnOgorICAgICAgICAgICAgY2FzZSAncHJv cmV0dHlwZW5hbWUnOgorICAgICAgICAgICAgY2FzZSAncHJvcmV0c2V0JzoK KyAgICAgICAgICAgIGNhc2UgJ3Byb2lzd2luZG93JzoKKyAgICAgICAgICAg ICAgcmV0dXJuICFtLmlzTmV3KCk7CisgICAgICAgICAgICAgIGJyZWFrOwor ICAgICAgICAgICAgY2FzZSAncHJvcm93cyc6CisgICAgICAgICAgICAgIGlm KG0uZ2V0KCdwcm9yZXRzZXQnKSA9PSB0cnVlKSB7CisgICAgICAgICAgICAg ICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIGVsc2UgeworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICAgICAgICB9CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICB9CisgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICB9LAorICAgICAgICBjYW5WYXJBZGQ6IGZ1 bmN0aW9uKG0pIHsKKyAgICAgICAgICBpZih0aGlzLm5vZGVfaW5mbyAmJiAg J2NhdGFsb2cnIGluIHRoaXMubm9kZV9pbmZvKSB7CisgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICAgcmV0dXJuIHRy dWU7CisgICAgICAgIH0KKyAgICAgIH0pLAorICAgICAgY2FuQ3JlYXRlOiBm dW5jdGlvbihpdGVtRGF0YSwgaXRlbSwgZGF0YSkgeworICAgICAgICAvL0lm IGNoZWNrIGlzIGZhbHNlIHRoZW4gLCB3ZSB3aWxsIGFsbG93IGNyZWF0ZSBt ZW51CisgICAgICAgIGlmIChkYXRhICYmIGRhdGEuY2hlY2sgPT0gZmFsc2Up CisgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgdmFyIHQgPSBw Z0Jyb3dzZXIudHJlZSwgaSA9IGl0ZW0sIGQgPSBpdGVtRGF0YTsKKyAgICAg ICAgLy8gVG8gaXRlcmF0ZSBvdmVyIHRyZWUgdG8gY2hlY2sgcGFyZW50IG5v ZGUKKyAgICAgICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAvLyBJZiBpdCBp cyBzY2hlbWEgdGhlbiBhbGxvdyB1c2VyIHRvIGNyZWF0ZSBGdW5jdGlvbgor ICAgICAgICAgIGlmIChfLmluZGV4T2YoWydzY2hlbWEnXSwgZC5fdHlwZSkg PiAtMSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAg aWYgKCdjb2xsLWZ1bmN0aW9uJyA9PSBkLl90eXBlKSB7CisgICAgICAgICAg ICAvL0NoZWNrIGlmIHdlIGFyZSBub3QgY2hpbGQgb2YgY2F0YWxvZworICAg ICAgICAgICAgcHJldl9pID0gdC5oYXNQYXJlbnQoaSkgPyB0LnBhcmVudChp KSA6IG51bGw7CisgICAgICAgICAgICBwcmV2X2QgPSBwcmV2X2kgPyB0Lml0 ZW1EYXRhKHByZXZfaSkgOiBudWxsOworICAgICAgICAgICAgaWYoIHByZXZf ZC5fdHlwZSA9PSAnY2F0YWxvZycpIHsKKyAgICAgICAgICAgICAgcmV0dXJu IGZhbHNlOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg cmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAg ICAgICAgIGkgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVs bDsKKyAgICAgICAgICBkID0gaSA/IHQuaXRlbURhdGEoaSkgOiBudWxsOwor ICAgICAgICB9CisgICAgICAgIC8vIGJ5IGRlZmF1bHQgd2UgZG8gbm90IHdh bnQgdG8gYWxsb3cgY3JlYXRlIG1lbnUKKyAgICAgICAgcmV0dXJuIHRydWU7 CisgICAgICB9CisgIH0pOworCisgIH0KKworICByZXR1cm4gcGdCcm93c2Vy Lk5vZGVzWydmdW5jdGlvbiddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvYWNsLnNxbApAQCAtMCww ICsxLDM1IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAn cHVibGljJykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRv ciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAor ICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJP TQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3Is IGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5 cGUKKyAgICAgICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAg V0hFTiAnQ1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUn IFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisg ICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAn UkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBU SEVOICdyJworICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisg ICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4g J1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRI RU4gJ3cnCisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAg ICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5 cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChk KS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3Is CisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJs ZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxl Z2VfdHlwZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFj bGV4cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAg ICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAg ICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qu b2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9w bHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uN2IyOWEzYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9w bHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw1MyBAQAoreyUgaW1wb3J0ICdt YWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwg JX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFj cm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0 aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQg aXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRh Lm5hbWUpIH19KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBp biBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdt b2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0 SWRlbnQocC5hcmduYW1lKX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBl ICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwg JX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYg bm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KKyAgICApCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJv cmV0c2V0ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVu dChkYXRhLnByb3JldHR5cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRh dGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBpZiBkYXRhLnByb3Zv bGF0aWxlICV9e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXsl IGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX17JSBp ZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklORVIgeyUgZW5kaWYg JX17JSBpZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9XeyUgZW5kaWYgLSV9 eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9j b3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAg Uk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52 YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisg ICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8 cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7 JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2Jpbnxx dExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7 JSBlbHNlICV9CiskZnVuY3Rpb24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1 bmN0aW9uJHslIGVuZGlmICV9OworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0K KworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFt ZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAg ICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmICV9 Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0K Kwore3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50 ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQs IGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5k Zm9yICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0K KworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5w cm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319 KQorICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlm IC0lfQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRh dGEuc2VjbGFiZWxzICV9Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCBy LnByb3ZpZGVyICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJ T04nLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWws IGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVu ZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMjQ2YmVjMQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAor eyUgaWYgc2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFt ZSBhcyBuYW1lLCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9p ZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3Ry aWdnZXInKQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlm ICV9CisKK3slIGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNh c2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODllY2NlCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBA IC0wLDAgKzEsMTEgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRl Zih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8 ICcuJyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRh bG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgor Sk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9u YW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFO RCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9p ZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9sYW5n dWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9n ZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAg IGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAg ICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dl dF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCkBAIC0w LDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8 fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVu Y3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScg YXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3du ZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4K KyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4K KyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJh bCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHR5 cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAg ICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKQEAgLTAs MCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShvaWQsIE5VTEwp IEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJFCisg ICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3Bs dXMvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku MV9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNU CisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUK KyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0 X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yYTU1ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMv Z2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAq CitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9p ZCxOVUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxl bSA+IDAgVEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQs IHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChT RUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5h bWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAg ICAgcGdfdHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2Ug bnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAg ICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdw Z19jYXRhbG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAg IHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisg ICAgICAgICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dl cicsICdsYW5ndWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAg ICAgICApCisgICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAn cGdfY2F0YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmJiNmVjOWQKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAg ICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5v aWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0 X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIGRlc2NyaXB0aW9u CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlw IE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdl IGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAg IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5E IGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAg ICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2Vy JywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi45ZThhOGJhCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAsMCArMSwz MSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci54bWluLCBwci4qLCBwci5w cm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBuYW1lLCBw Z19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5h bWUsCisgICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHBy b2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJv YXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHByKHByb2FyZ2RlZmF1bHRz LCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdk ZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2NvbmZpZywg cGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2Ny aXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3Zp ZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3Nl Y2xhYmVsIHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIu b2lkKSBBUyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlw bmFtZXNwYWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5v aWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRp b24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lk PSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0g RkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAor ICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJp Z2dlcicpCit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OjpvaWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5hZjBmMjhlCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDEwNSBAQAoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9 eyUgaWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQor eyUgaWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRh Lm5hbWUgJX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3tvX2RhdGEucHJv YXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUg aWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1l bnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRp ZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25h bWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5 cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7 e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFz dCAlfSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CispCisgICAgUkVUVVJOUyB7eyBvX2RhdGEucHJvcmV0dHlwZW5hbWUgfX0K K3slIGlmICdsYW5uYW1lJyBpbiBkYXRhICV9CisgICAgTEFOR1VBR0Uge3sg ZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyAgICBMQU5H VUFHRSB7eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBl bmRpZiAlfXslIGlmICdwcm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5w cm92b2xhdGlsZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAn cHJvdm9sYXRpbGUnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRp bGUgJX17eyBvX2RhdGEucHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUg aWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmlj dCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmICgncHJv c2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikgb3IgKCdwcm9z ZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBT RUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXN3aW5k b3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJvaXN3 aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9 IFdJTkRPV3slIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb2Nvc3Qg JX1DT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0 ICV9Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRh dGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUg ZWxpZiBvX2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2RhdGEucHJvcm93c319 eyVlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX17JSBm b3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworICAgIFNFVCB7 eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJh bCB9fXslIGVuZGZvciAtJX0KKyAgICB7JSBlbmRpZiAlfQorCitBUyB7JSBp ZiAncHJvYmluJyBpbiBkYXRhIG9yICdwcm9zcmNfYycgaW4gZGF0YSAlfQor eyUgaWYgJ3Byb2JpbicgaW4gZGF0YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0 ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9 fXslIGVuZGlmICV9LCB7JSBpZiAncHJvc3JjX2MnIGluIGRhdGEgJX17eyBk YXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBvX2RhdGEu cHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbGlmICdwcm9z cmMnIGluIGRhdGEgJX0KKyRmdW5jdGlvbiR7eyBkYXRhLnByb3NyYyB9fSRm dW5jdGlvbiR7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sg b19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNf Y3xxdExpdGVyYWwgfX17JSBlbHNlICV9CiskZnVuY3Rpb24ke3sgb19kYXRh LnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAt JX0KK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9 fSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRP IHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUg U1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAj fQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRh LmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQor e3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYu Z3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KKworeyUgZW5kZm9yICV9eyUgZW5kaWYgJX0K K3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5hY2wuY2hhbmdlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50 ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50 LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQorCit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVk JyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRk ZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBw cml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53 aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX17JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUg aWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRh LnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGgg PiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTics IG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1l c3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYg LSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0 YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFC TEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3Zh cmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcyApIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX17JSBlbmRp ZiAlfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVs ZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVs ZXRlZCAlfQore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywg bmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KKworeyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJl bHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04n LCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJF TC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfXslIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1l KSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sg ZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0K K3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9 fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVN QSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUg ZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvdmFyaWFi bGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 MjMzYzcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvdmFy aWFibGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUs IHZhcnR5cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisg ICAgcGdfc2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXIn LCAnc3VwZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9h Y2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4yX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBA CitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykg QVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlf YWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5 X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChT RUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3Jh bnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAg ICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JF QVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2Qn CisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdI RU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNF UycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJwor ICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdI RU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRF JyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisg ICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdV TktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBG Uk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVl IEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAg ICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAg ICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQor ICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUo ZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAg V0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQK KyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBn IE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0 YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JP VVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4yX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0 ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTBk ZTZkYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0 ZS5zcWwKQEAgLTAsMCArMSw1NyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVu Y3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGlt cG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQ UklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJp YWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1u cyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19 KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFy Z3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUg ZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5h cmduYW1lKX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFy Z3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVM VCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3Au bGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KKyAgICApCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9 IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnBy b3JldHR5cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFt ZXxxdExpdGVyYWwgfX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9 e3sgZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvbGVha3Byb29mICV9TEVBS1BST09GIHslIGVsc2UgJX1OT1QgTEVBS1BS T09GIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RS SUNUIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VS SVRZIERFRklORVIgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5k b3cgJX1XSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQor CisgICAgQ09TVCB7e2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBk YXRhLnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXsl IGVuZGlmIC0lfXslIGlmIGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4g ZGF0YS52YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQo di5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09ICdj JyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnBy b3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJGZ1bmN0aW9uJAor e3sgZGF0YS5wcm9zcmMgfX0KKyRmdW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7 JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0o e3tkYXRhLmZ1bmNfYXJnc319KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVu Y293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmFjbCAlfQor eyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChj b25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRo b3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRh Lm5hbWUpIH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBJUyAne3sgZGF0 YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEu c2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQor eyUgaWYgci5zZWN1cml0eV9sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7 eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgLSV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv ZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yNDZiZWMxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBm bmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8 fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5j X2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFt ZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQg cHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1l IE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFt ZSAlfQorRFJPUCBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwg bmFtZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURF eyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv Z2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjU4OWVjY2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxMSBAQAor U0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQp IEFTIGZ1bmNfZGVmLAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHByLnByb25h bWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0 aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFz IG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfbmFt ZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUK KyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9p ZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFnZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9sYW5ndWFnZXMuc3Fs CkBAIC0wLDAgKzEsNCBAQAorU0VMRUNUCisgICAgbGFubmFtZSBhcyBsYWJl bCwgbGFubmFtZSBhcyB2YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1YWdlOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjJfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4yYmM3NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4yX3BsdXMvZ2V0X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VM RUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVND RShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9h cmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxh bm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVy CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlw IE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdl IGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3Bh Y2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5z cC5uc3BuYW1lPXt7IG5zcG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAg IHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0 cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1l ID0ge3sgbmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dl dF9vdXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjY0YTExODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy9nZXRfb3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVD VAorICAgIGZvcm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBl CitGUk9NCisgICAgcGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRf YXJnX29pZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv Z2V0X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVt YS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitG Uk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNj aWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF90 eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCkBA IC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VM RUNUCisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5h bWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVs ZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBl LCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBG Uk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkg PiAxIEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAg ICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNw YWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1l ID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAg ICBBTkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2In LCAnYycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0 eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hh bmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFT IGR1bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNw bmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvbm9kZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2ZWM5 ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL25vZGUuc3Fs CkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJv bmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVu Y3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScg YXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3du ZXIpIGFzIGZ1bmNvd25lciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9 cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24g ZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdw Z19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAg IEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dl cicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3By b3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmZmNzgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1 cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAg ICBwci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNf YywKKyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9y ZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5u c3BuYW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZl Y3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisg ICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBn X2NsYXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAg IHByb25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQo cHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNF TEVDVAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxh YmVsKQorICAgIEZST00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAg ICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFi ZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUg dHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVz cGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9J TgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xF RlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVz Lm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJl Z2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYg Zm5pZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBl bmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3Vw ZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MDRmODkyNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3Vw ZGF0ZS5zcWwKQEAgLTAsMCArMSwxMTQgQEAKK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jvcycg YXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv dmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0K K3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFt ZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRF UiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLm5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9 fSkKKyAgICBSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkg fX07Cit7JSBzZXQgbmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0KKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHslIGlmIGRhdGEuYXJndW1l bnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAu YXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFy Z25hbWUgJX17e2Nvbm58cXRJZGVudChwLmFyZ25hbWUpfX0geyUgZW5kaWYg JX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17 JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXsl IGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAl fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRVUk5T IHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUn IGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRM aXRlcmFsIH19eyUgZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5s YW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3By b3ZvbGF0aWxlJyBpbiBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sg ZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90 IGluIGRhdGEgYW5kIG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5w cm92b2xhdGlsZSB9fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtwcm9v ZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVh a3Byb29mJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikg JX1MRUFLUFJPT0Z7JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5k IG5vdCBkYXRhLnByb2xlYWtwcm9vZiAlfU5PVCBMRUFLUFJPT0Z7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2Vj ZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgn cHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9y ICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3 aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRh LnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0 YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAl fXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJv cm93c319eyUgZWxpZiBvX2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2RhdGEu cHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFi bGVzICV9eyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisK KyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1 ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9CisgICAgeyUgZW5kaWYgJX0K KworQVMgeyUgaWYgJ3Byb2JpbicgaW4gZGF0YSBvciAncHJvc3JjX2MnIGlu IGRhdGEgJX0KK3slIGlmICdwcm9iaW4nIGluIGRhdGEgJX17eyBkYXRhLnBy b2JpbnxxdExpdGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb2Jpbnxx dExpdGVyYWwgfX17JSBlbmRpZiAlfSwgeyUgaWYgJ3Byb3NyY19jJyBpbiBk YXRhICV9e3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9 e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9eyUg ZWxpZiAncHJvc3JjJyBpbiBkYXRhICV9CiskZnVuY3Rpb24ke3sgZGF0YS5w cm9zcmMgfX0kZnVuY3Rpb24keyUgZWxpZiBvX2RhdGEubGFubmFtZSA9PSAn YycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBvX2Rh dGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJGZ1bmN0aW9u JHt7IG9fZGF0YS5wcm9zcmMgfX0kZnVuY3Rpb24keyUgZW5kaWYgLSV9Owor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FM VEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNw YWNlLCBuYW1lKSB9fSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQor ICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYg LSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBw cml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxl dGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wu ZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZV TkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQ UklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFu dGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlm IC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChj b25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0 aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5n ZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQor eyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVzIGFuZCBkYXRhLnZh cmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUu VU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS52YXJpYWJsZXMu ZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFy aWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVu Z3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9O JywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlm IC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNs YWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGlu IHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VD TEFCRUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRl ciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRk ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+ IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBT RUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRl ciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNs YWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNs YWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRl c2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7IG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlw dGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEu cHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJ ZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eyBvX2RhdGEu cHJvYXJndHlwZW5hbWVzIH19KQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxx dElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQor Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdmFy aWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwK QEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBt aW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRp bmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNl cicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvYWNsLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuNV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNUCisg ICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50ZWUs CisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxl Z2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3Jh bnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAg ICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAg ICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0NP Tk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhFTiAn QycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBX SEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNFUlQn IFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gn CisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hF TiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklHR0VS JyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcK KyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVO ICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAg ICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAg ICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVl LCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQpLmlz X2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCku cHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJP TQorICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2FjbCkg QVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRiLm9p ZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBkCisg ICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFu dG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcucm9s bmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVz L2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YTdhODQKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsCkBAIC0w LDAgKzEsNTcgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9z JyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQor eyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBpZiBkYXRh CisuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAl fXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17 JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19eyUg ZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdk ZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHsl IGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorICAgICkK KyAgICBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Z7JSBl bmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5h bWUpIH19CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJh bCB9fQorICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17eyBkYXRhLnBy b3ZvbGF0aWxlIH19IHslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9sZWFrcHJv b2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAlfU5PVCBMRUFLUFJPT0YgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5k aWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5F UiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRvdyAlfVdJTkRP V3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKKyAgICBDT1NU IHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93 cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9 eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLnZhcmlh YmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19 PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBk YXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJvc3JjX2N8cXRM aXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVuY3Rpb24kCit7eyBkYXRhLnBy b3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3slIGlmIGRhdGEu ZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVu Y19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07 Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7JSBmb3IgcCBp biBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJGVU5D VElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQs IHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKX19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5k ZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2Rh dGEuZnVuY19hcmdzfX0pCisgICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24g fX0nOworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQor eyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIuc2VjdXJp dHlfbGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VU KGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5z ZWN1cml0eV9sYWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1 cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDZiZWMxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbApAQCAt MCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QK KyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19j YXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNw bmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBl IHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1l c3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQor ICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNf YXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7 JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2Rl ZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24u c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVj Y2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfZGVm aW5pdGlvbi5zcWwKQEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcGdf Z2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAor ICAgIG5zcG5hbWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2Fy Z3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuNV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuNV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBA QAorU0VMRUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2 YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS41X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRf b2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y YmM3NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb3V0 X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF9vdXRfdHlwZXMuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1hdF90 eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdf dHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lk OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAgLTAsMCAr MSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfbmFt ZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9pZDsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF90eXBlcy5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAK K1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGZv cm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENB U0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBF TkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFt ZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIg V0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisg ICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAgICBKT0lOCisgICAgICAg IHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAg ICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFO RCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAg KAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2Un LCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRf dHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBC WSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGlj JywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL25v ZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI2ZWM5ZAotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuNV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTcg QEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwg Q09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlf YXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBs YW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25l ciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisg ICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBP VVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jq b2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xh c3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQor ICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9wcm9w ZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzgyOTgKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNx bApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnht aW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9u YW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBB UyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5z cCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2Fy Z3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIo cHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xh c3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0 cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1 bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBh cnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00K KyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAg ICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0 eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1 YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgor ICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQg QU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUK KyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmln Z2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIg QlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE2MjliMAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAs MCArMSwxMTQgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9z JyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0g b19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0 YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUp IH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFN RSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBu YW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZv ciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3tw LmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNv bm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5h cmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdk ZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQor eyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRVUk5TIHt7IG9fZGF0YS5w cm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUnIGluIGRhdGEgJX0K KyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUg ZWxzZSAlfQorICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0 ZXJhbCB9fQorICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBp biBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xh dGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9 fXslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBh bmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX1MRUFLUFJPT0Z7 JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIG5vdCBkYXRhLnBy b2xlYWtwcm9vZiAlfU5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYg KCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkg b3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9p c3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2Vj ZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNk ZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNV UklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXN3aW5kb3cn IGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5k b3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJ TkRPV3slIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1D T1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9 Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxp ZiBvX2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2RhdGEucHJvcm93c319IHsl ZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9eyUgZm9y IHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisKKyAgICBTRVQge3sg Y29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwg fX17JSBlbmRmb3IgLSV9CisgICAgeyUgZW5kaWYgJX0KKworQVMgeyUgaWYg J3Byb2JpbicgaW4gZGF0YSBvciAncHJvc3JjX2MnIGluIGRhdGEgJX0KK3sl IGlmICdwcm9iaW4nIGluIGRhdGEgJX17eyBkYXRhLnByb2JpbnxxdExpdGVy YWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX17 JSBlbmRpZiAlfSwgeyUgaWYgJ3Byb3NyY19jJyBpbiBkYXRhICV9e3sgZGF0 YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnBy b3NyY19jfHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9eyUgZWxpZiAncHJvc3Jj JyBpbiBkYXRhICV9CiskZnVuY3Rpb24ke3sgZGF0YS5wcm9zcmMgfX0kZnVu Y3Rpb24keyUgZWxpZiBvX2RhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IG9f ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBvX2RhdGEucHJvc3JjX2N8 cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJGZ1bmN0aW9uJHt7IG9fZGF0YS5w cm9zcmMgfX0kZnVuY3Rpb24keyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0o e3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7 IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FM IGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQor eyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7 eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5n cmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K K3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5T RVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYu Z3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhf Z3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBl bmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYg J2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5h Y2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJ T04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwg cHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFs c2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRl ZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0 ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAn RlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0 YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwor e3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYg LSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNl Y2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQoY29u biwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciBy IGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29u biwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9s YWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAn Y2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAl fQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwg ci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisK K0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5w cm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1l cyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9 fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnByb25hbWVzcGFjZSAl fQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVz IH19KQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJv bmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2IEBA CitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFs LCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQorICAg IGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjFfcGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1 cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVz L2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNUCisgICAgQ09BTEVT Q0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50ZWUsCisgICAgZy5y b2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkg QVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBB UyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3Jh bnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FT RSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0NPTk5FQ1QnIFRI RU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhFTiAnQycKKyAgICAg ICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBXSEVOICdFWEVD VVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2En CisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAg IFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAnVEVNUE9S QVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0 JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAgICAgICAg V0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVOICdVU0FHRScg VEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5E IEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNU CisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLCAoZCkuZ3Jh bnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQpLmlzX2dyYW50YWJs ZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCkucHJpdmlsZWdl X3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJPTQorICAgICAg ICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2FjbCkgQVMgZCBGUk9N IHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRiLm9pZCA9IHt7Zm5p ZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBkCisgICAgTEVGVCBK T0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5v aWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04g KGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcucm9sbmFtZSwgZ3Qu cm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjI5YTNjCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAg KzEsNTMgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0 eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9m dW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBh cyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUg aWYgZGF0YSAlfQorQ1JFQVRFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChk YXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBpZiBkYXRhLmFy Z3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBp ZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYg cC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSl9fSB7JSBl bmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7cC5hcmd0eXBlfX17JSBlbmRp ZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZh bH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5k aWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisgICAgKQorICAg IFJFVFVSTlN7JSBpZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRnslIGVuZGlm ICV9IHt7IGNvbm58cXRUeXBlSWRlbnQoZGF0YS5wcm9yZXR0eXBlbmFtZSkg fX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19 CisgICAgeyUgaWYgZGF0YS5wcm92b2xhdGlsZSAlfXt7IGRhdGEucHJvdm9s YXRpbGUgfX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9 U1RSSUNUIHslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNV UklUWSBERUZJTkVSIHslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9pc3dpbmRv dyAlfVdJTkRPV3slIGVuZGlmIC0lfXslIGlmIGRhdGEucHJvY29zdCAlfQor CisgICAgQ09TVCB7e2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBk YXRhLnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXsl IGVuZGlmIC0lfXslIGlmIGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4g ZGF0YS52YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQo di5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09ICdj JyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnBy b3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJGZ1bmN0aW9uJAor e3sgZGF0YS5wcm9zcmMgfX0KKyRmdW5jdGlvbiR7JSBlbmRpZiAlfTsKK3sl IGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7 e2RhdGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5j b3duZXIgfX07Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5hY2wgJX0KK3sl IGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQoY29u biwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91 dF9ncmFudCwgcC53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBp ZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUp IH19KHt7ZGF0YS5mdW5jX2FyZ3N9fSkKKyAgICBJUyAne3sgZGF0YS5kZXNj cmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuc2VjbGFi ZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYg ci5zZWN1cml0eV9sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNM QUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0YS5uYW1lLCByLnByb3Zp ZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4xX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZGVs ZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y NDZiZWMxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9k ZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZu aWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8 IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lk ZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNf YXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9J TgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1l c3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBw cm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUg Tk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQg cHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1l ICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChuc3BuYW1lLCBu YW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9IENBU0NBREV7 JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3Bs dXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjU4OWVjY2UKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsxLDEx IEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlkfX06 Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBw Z19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitX SEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNw YWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9 fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfbGFu Z3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2xhbmd1YWdlcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjgxZGRm YgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2xh bmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5u YW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdf bGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9v aWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3NmEyCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApAQCAt MCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUg fHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1 bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJykn IGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293 bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lO CisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9J TgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1l c3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVy YWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCB0 eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisg ICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlwZXMuc3Fs CkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUob2lk LCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitX SEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsx LDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1l c3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwy MCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAg ICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAg ICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQu b2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBu c3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlw ZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNk dXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAg ICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9p ZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93 bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAg ICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdjJywgJ2Qn LCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9U IElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdl dmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVtbXkKK09S REVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdw dWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdmNDE1OQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwKQEAg LTAsMCArMSwxOCBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1l IHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlv bl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBBUyBu YW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg QVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9s YW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMg T04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3By b2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwci5wcm90eXBlID0gJzAnOjpjaGFyCisgICAgQU5EIHByb25h bWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1Qg SU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAg ICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9wcm9w ZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU4YThiYQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvcHJvcGVydGll cy5zcWwKQEAgLTAsMCArMSwzMSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBw ci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIu cHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9p ZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFtZSBBUyB0 eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhw cm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9l eHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJl Z2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVm YXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBB UyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAg ICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBG Uk9NCisgICAgICAgIHBnX3NlY2xhYmVsIHNsMQorICAgIFdIRVJFCisgICAg ICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9p ZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5cG5zIE9O IHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAgcGdfbGFu Z3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lO CisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9p ZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVS RQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNl ID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3Ry aWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBmbmlkICV9CisgICAg QU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVuZGlmICV9CitPUkRF UiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9w bHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWYwZjI4ZQot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNx bApAQCAtMCwwICsxLDEwNSBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJs ZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0 IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9Cit7 JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEubmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAg IFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3sl IHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5k aWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0K K3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2Rl ICV9e3twLmFyZ21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAl fXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUg aWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYg cC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRp ZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CispCisgICAgUkVUVVJOUyB7eyBv X2RhdGEucHJvcmV0dHlwZW5hbWUgfX0KK3slIGlmICdsYW5uYW1lJyBpbiBk YXRhICV9CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJh bCB9fXslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7eyBvX2RhdGEubGFubmFt ZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAlfXslIGlmICdwcm92b2xh dGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xhdGlsZSAlfXt7IGRhdGEu cHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9sYXRpbGUnIG5vdCBpbiBk YXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17eyBvX2RhdGEucHJvdm9s YXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4g ZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNU eyUgZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBk YXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFu ZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5k aWYgJX0KK3slIGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEu cHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFu ZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisK KyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0 fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9j b3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAg Uk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxpZiBvX2RhdGEucHJvcm93cyAl fVJPV1Mge3tvX2RhdGEucHJvcm93c319eyVlbmRpZiAtJX17JSBpZiBkYXRh Lm1lcmdlZF92YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92 YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1l KSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KKyAg ICB7JSBlbmRpZiAlfQorCitBUyB7JSBpZiAncHJvYmluJyBpbiBkYXRhIG9y ICdwcm9zcmNfYycgaW4gZGF0YSAlfQoreyUgaWYgJ3Byb2JpbicgaW4gZGF0 YSAlfXt7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVsc2UgJX17eyBv X2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9LCB7JSBpZiAn cHJvc3JjX2MnIGluIGRhdGEgJX17eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJh bCB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19 eyUgZW5kaWYgJX17JSBlbGlmICdwcm9zcmMnIGluIGRhdGEgJX0KKyRmdW5j dGlvbiR7eyBkYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7JSBlbGlmIG9fZGF0 YS5sYW5uYW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVy YWwgfX0sIHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNl ICV9CiskZnVuY3Rpb24ke3sgb19kYXRhLnByb3NyYyB9fSRmdW5jdGlvbiR7 JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZnVuY293 bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eyBvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19 OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3 aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0K K3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYg aW4gZGF0YS5hY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KKwor eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBk YXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAl fQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHBy aXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25u LCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91 dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7JSBlbmRmb3IgJX17 JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUg Zm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHBy aXYud2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9eyUgZW5kaWYgJX17JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5jaGFu Z2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0K K3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52 YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxF LlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFyaWFibGVz LmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3Zh cmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxl bmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRp ZiAlfQoreyUgZW5kaWYgJX17JSBlbmRpZiAlfQoreyUgc2V0IHNlY2xhYmVs cyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQore3sgU0VDTEFCRUwu VU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19k YXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0K KworeyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcg aW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAl fQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xB QkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCBy LnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu cHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVs cy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVs cy5jaGFuZ2VkICV9Cit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9O JywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfXslIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExp dGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEucHJvbmFtZXNw YWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBl bmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0 YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApAQCAt MCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92 YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MK K1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2FjbC5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMl9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4yX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QK KyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRl ZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZp bGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19n cmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAg ICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAor ICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAn Q09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVO ICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAg IFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VS VCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAn eCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBX SEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdH RVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdE JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdI RU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJwor ICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAg ICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50 ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCku aXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChk KS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBG Uk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNs KSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIu b2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQK KyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdy YW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5y b2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJf cGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcwYTNkNDMK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5z cWwKQEAgLTAsMCArMSw1NyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0KK3slIGltcG9y dCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklW SUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJs ZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9 IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHsl IGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3Vt ZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5k aWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmdu YW1lKX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5 cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7 e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFz dCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KyAgICApCisgICAgUkVUVVJOU3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNF VE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3Jl dHR5cGVuYW1lKSB9fQorICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxx dExpdGVyYWwgfX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9e3sg ZGF0YS5wcm92b2xhdGlsZSB9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJv bGVha3Byb29mICV9IExFQUtQUk9PRiB7JSBlbHNlICV9IE5PVCBMRUFLUFJP T0YgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJ Q1QgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJ VFkgREVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRv dyAlfVdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisK KyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRh dGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUg ZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17JSBmb3IgdiBpbiBk YXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2 Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2Mn ICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJv c3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskZnVuY3Rpb24kCit7 eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3sl IGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNv bm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7 e2RhdGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5j b3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuYWNsICV9Cit7 JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNv bm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhv dXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAtJX0K K3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEu bmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc319KQorICAgIElTICd7eyBkYXRh LmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7 IFNFQ0xBQkVMLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFtZXNwYWNl LCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAtJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3Bs dXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5jMjQ5NzBjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJf cGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjIgQEAKK3slIGlmIHNjaWQg YW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwg JygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0 aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFz IGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlw ZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5w cm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAg IEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5 cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAg ICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBp ZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChuc3Bu YW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlJX0gQ0FT Q0FERXslCitlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjU4OWVjY2UKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCww ICsxLDExIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tm bmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicg fHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4K KyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNw YWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5vaWQgPSB7 e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1 YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u ZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMv Z2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QKKyAg ICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisg ICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVz L2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3NmEyCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNx bApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnBy b25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdf Z2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykg fHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlk KHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBwZ19wcm9jIHBy CitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBl CitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFu ZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5w cm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxx dExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAg IEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dl cicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9 fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBl cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0YTExODcKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgZm9ybWF0X3R5 cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00KKyAgICBwZ190 eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApAQCAt MCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBw Z19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lk OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfdHlwZXMuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4MmUKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAs MCArMSwyMCBAQAorU0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QK KyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwK KyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBF TFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQu b2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00g cGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEg QVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpP SU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9 bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAn dW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFO RAorICAgICAgICAoCisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdj JywgJ2QnLCAnZScsICdwJywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5h bWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxl cicsICdldmVudF90cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVt bXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1l IDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjJfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvbm9kZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzdmNDE1 OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvbm9kZS5z cWwKQEAgLTAsMCArMSwxOCBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5w cm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nLnBnX2dldF9m dW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcp JyBBUyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9v d25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXBy b3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9p ZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlv biBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9 J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBG QUxTRQorICAgIEFORCBwci5wcm90eXBlID0gJzAnOjpjaGFyCisgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIg QlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1 cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvcHJvcGVydGll cy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3 ODI5OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvcHJv cGVydGllcy5zcWwKQEAgLTAsMCArMSwzMSBAQAorU0VMRUNUCisgICAgcHIu b2lkLCBwci54bWluLCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisg ICAgcHIucHJvbmFtZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0 KHByLm9pZCkgQVMgcHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFt ZSBBUyB0eXBuc3AsIGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0 eXBlcyhwcm9hcmd0eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBn X2dldF9leHByKHByb2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFz cyc6OnJlZ2NsYXNzKSBBUyBwcm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9u YXJnZGVmYXVsdHMsIHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293 bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QK KyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkK KyAgICBGUk9NCisgICAgICAgIHBnX3Noc2VjbGFiZWwgc2wxCisgICAgV0hF UkUKKyAgICAgICAgc2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscwor RlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBP TiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2Ug dHlwbnMgT04gdHlwbnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAg ICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9V VEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpv aWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFz cykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQg JX0KKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYg JX0KK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS4yX3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41 YjYwNTkwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy91 cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTE0IEBACit7JSBpbXBvcnQgJ21hY3Jv cy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3Mn IGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9 Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5h bWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxU RVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5uYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUp IH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgICV9CisK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3Vt ZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBw LmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5h cmduYW1lICV9e3tjb25ufHF0SWRlbnQocC5hcmduYW1lKX19IHslIGVuZGlm ICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9 eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17 JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5kaWYg JX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CispCisgICAgUkVUVVJO UyB7eyBvX2RhdGEucHJvcmV0dHlwZW5hbWUgfX0KK3slIGlmICdsYW5uYW1l JyBpbiBkYXRhICV9CisgICAgTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0 TGl0ZXJhbCB9fXslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7eyBvX2RhdGEu bGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAlfXslIGlmICdw cm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xhdGlsZSAlfXt7 IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9sYXRpbGUnIG5v dCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17eyBvX2RhdGEu cHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9sZWFrcHJv b2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xl YWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2Yp ICV9IExFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBh bmQgbm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFLUFJPT0Z7JSBl bmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0 YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEg YW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0K K3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2Rl Zikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJv c2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlm ICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cp IG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJv aXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisKKyAgICB7JSBpZiBk YXRhLnByb2Nvc3QgJX1DT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9f ZGF0YS5wcm9jb3N0ICV9Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEu cHJvcm93c319eyUgZWxpZiBvX2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2Rh dGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFy aWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9 CisKKyAgICBTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52 YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9CisgICAgeyUgZW5kaWYg JX0KKworQVMgeyUgaWYgJ3Byb2JpbicgaW4gZGF0YSBvciAncHJvc3JjX2Mn IGluIGRhdGEgJX0KK3slIGlmICdwcm9iaW4nIGluIGRhdGEgJX17eyBkYXRh LnByb2JpbnxxdExpdGVyYWwgfX17JSBlbHNlICV9e3sgb19kYXRhLnByb2Jp bnxxdExpdGVyYWwgfX17JSBlbmRpZiAlfSwgeyUgaWYgJ3Byb3NyY19jJyBp biBkYXRhICV9e3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17JSBlbHNl ICV9e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9 eyUgZWxpZiAncHJvc3JjJyBpbiBkYXRhICV9CiskZnVuY3Rpb24ke3sgZGF0 YS5wcm9zcmMgfX0kZnVuY3Rpb24keyUgZWxpZiBvX2RhdGEubGFubmFtZSA9 PSAnYycgJX0KK3t7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBv X2RhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorJGZ1bmN0 aW9uJHt7IG9fZGF0YS5wcm9zcmMgfX0kZnVuY3Rpb24keyUgZW5kaWYgLSV9 OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisK K0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFt ZXNwYWNlLCBuYW1lKSB9fSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19 KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5k aWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5n ZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5h Y2wuZGVsZXRlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwg J0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7 eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5n cmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdG VU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dy YW50LCBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9y IHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNF VChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNo YW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxlcyAl fQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVzIGFuZCBkYXRh LnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFC TEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS52YXJpYWJs ZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRf dmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8 bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZVTkNU SU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVu ZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBz ZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sg U0VDTEFCRUwuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92 aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAn YWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0 aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7 eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92 aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBz ZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBz ZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwg J0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRh LmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7IG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNj cmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eyBvX2Rh dGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFNFVCBTQ0hFTUEge3sgY29u bnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0l fQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1 cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy92YXJpYWJsZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzNj NzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL3Zhcmlh Ymxlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2 YXJ0eXBlLCBtaW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAg IHBnX3NldHRpbmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywg J3N1cGVydXNlcicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9h Y2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwz NSBAQAorU0VMRUNUCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1Ymxp YycpIEFTIGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFy cmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBh cnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAg ICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlz X2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisg ICAgICAgIFdIRU4gJ0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4g J0NSRUFURScgVEhFTiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVO ICdkJworICAgICAgICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAg ICBXSEVOICdJTlNFUlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVS RU5DRVMnIFRIRU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAn cicKKyAgICAgICAgV0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAg ICBXSEVOICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVO Q0FURScgVEhFTiAnRCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3 JworICAgICAgICBXSEVOICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxT RSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisg ICAgRlJPTQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3Jh bnRlZSBBUyBncmFudGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAg ICAgICAgICAgKGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisg ICAgICAgICAgICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5 cGUKKyAgICAgICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBs b2RlKGRiLnByb2FjbCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAg ICAgIFdIRVJFIGRiLm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAg KSBkCisgICAgKSBkCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9s ZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBn X2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkK K0dST1VQIEJZIGcucm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3Bs dXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi40OGE3YTg0Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVf cGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNTcgQEAKK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVM ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1h Y3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0 IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fSh7JSBpZiBkYXRhCisuYXJndW1lbnRzICV9Cit7JSBmb3Ig cCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5h cmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25u fHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5 cGUgJX17e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZh bCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBp ZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQorICAgICkKKyAgICBSRVRVUk5TeyUgaWYgZGF0YS5w cm9yZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlk ZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19CisgICAgTEFOR1VBR0Uge3sg ZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fQorICAgIHslIGlmIGRhdGEucHJv dm9sYXRpbGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVuZGlmICV9 eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAl fU5PVCBMRUFLUFJPT0YgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNz dHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2Vj ZGVmICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0 YS5wcm9pc3dpbmRvdyAlfVdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5w cm9jb3N0ICV9CisKKyAgICBDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEu cHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX17 JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNv bm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19 eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQorCitBUyB7JSBpZiBkYXRhLmxh bm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0s IHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9Cisk ZnVuY3Rpb24kCit7eyBkYXRhLnByb3NyYyB9fQorJGZ1bmN0aW9uJHslIGVu ZGlmIC0lfTsKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZV TkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0 YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8g e3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuYWNsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5u YW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9u YW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgJX17JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5U IE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEuZnVuY19hcmdzfX0pCisgICAgSVMg J3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJl bHMgJX0KK3slIGlmIHIuc2VjdXJpdHlfbGFiZWwgYW5kIHIucHJvdmlkZXIg JX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIGRhdGEu bmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgZGF0YS5wcm9u YW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuNV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjQ2YmVjMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS41X3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBp ZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFz IG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8 ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXBy b3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAg IEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dl cicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0K KworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2Fk ZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ODllY2NlCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwK QEAgLTAsMCArMSwxMSBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9u ZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5zcG5hbWUg fHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5v aWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHBy CitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnBy b25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAg QU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIu b2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41 X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF9sYW5ndWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VM RUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQor RlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjVfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X29p ZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJj NzZhMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9v dXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5cGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGEx MTg3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRf b3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZv cm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisg ICAgcGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9 fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfc2No ZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5z cWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9N CisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQg fX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5 cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVzLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1ODJlCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3Fs CkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZST00KKyAgICAo U0VMRUNUCisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5 cG5hbWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5 cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0 eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgx KSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFt ZSkgPiAxIEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBwZ190eXBlIHQK KyAgICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFt ZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAoTk9UICh0eXBu YW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkK KyAgICBBTkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlwdHlwZSBJTiAo J2InLCAnYycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAgICAgICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdl X2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAgICkKKyAgICAp IEFTIGR1bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywg bnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmM3ZjQxNTkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L25vZGUuc3FsCkBAIC0wLDAgKzEsMTggQEAKK1NFTEVDVAorICAgIHByLm9p ZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZy5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5 aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24KK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlw Lm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9O IGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVz Y3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNs YXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lz YWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJvdHlwZSA9ICcwJzo6Y2hhcgor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK K09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS41X3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL3By b3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmZmNzgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NFTEVDVAor ICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3Ny Y19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9u X3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5z Lm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lk dmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywK KyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cu cGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisg ICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAo U0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwg bGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQor ICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNs YWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlw ZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFt ZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitK T0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZwor TEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChk ZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6 cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBp ZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3sl IGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMjhlMzY0MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41 X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDExNCBAQAoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC RUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYg ZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUg JX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChk YXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3sl IGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1 bmMgICV9CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBk YXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMg JX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9 eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkg fX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5h cmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9 LHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKQor ICAgIFJFVFVSTlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1lIH19Cit7JSBp ZiAnbGFubmFtZScgaW4gZGF0YSAlfQorICAgIExBTkdVQUdFIHt7IGRhdGEu bGFubmFtZXxxdExpdGVyYWwgfX17JSBlbHNlICV9CisgICAgTEFOR1VBR0Ug e3sgb19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19CisgICAgeyUgZW5kaWYg JX17JSBpZiAncHJvdm9sYXRpbGUnIGluIGRhdGEgYW5kIGRhdGEucHJvdm9s YXRpbGUgJX17eyBkYXRhLnByb3ZvbGF0aWxlIH19IHslIGVsaWYgJ3Byb3Zv bGF0aWxlJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3ZvbGF0aWxlICV9 e3sgb19kYXRhLnByb3ZvbGF0aWxlIH19eyUgZW5kaWYgJX0KK3slIGlmICgn cHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikg b3IgKCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJv bGVha3Byb29mKSAlfSBMRUFLUFJPT0Z7JSBlbGlmICdwcm9sZWFrcHJvb2Yn IGluIGRhdGEgYW5kIG5vdCBkYXRhLnByb2xlYWtwcm9vZiAlfSBOT1QgTEVB S1BST09GeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRh dGEgYW5kIGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5v dCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHsl IGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0 YS5wcm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQg b19kYXRhLnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlm ICV9Cit7JSBpZiAoJ3Byb2lzd2luZG93JyBpbiBkYXRhIGFuZCBkYXRhLnBy b2lzd2luZG93KSBvciAoJ3Byb2lzd2luZG93JyBub3QgaW4gZGF0YSBhbmQg b19kYXRhLnByb2lzd2luZG93KSAlfSBXSU5ET1d7JSBlbmRpZiAlfQorCisg ICAgeyUgaWYgZGF0YS5wcm9jb3N0ICV9Q09TVCB7e2RhdGEucHJvY29zdH19 eyUgZWxpZiBvX2RhdGEucHJvY29zdCAlfUNPU1Qge3tvX2RhdGEucHJvY29z dH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJP V1Mge3tkYXRhLnByb3Jvd3N9fXslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX1S T1dTIHt7b19kYXRhLnByb3Jvd3N9fSB7JWVuZGlmIC0lfXslIGlmIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3Zh cmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUp IH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAg IHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3Ig J3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRh ICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9f ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdw cm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFs IH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17 JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJGZ1bmN0 aW9uJHt7IGRhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVsaWYgb19kYXRh Lmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJh bCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2Ug JX0KKyRmdW5jdGlvbiR7eyBvX2RhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHsl IGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3du ZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVu YW1lcyB9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsK K3slIGVuZGlmIC0lfQoreyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2ls bCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuYWNsLmRlbGV0ZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4g ZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5n ZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElP TicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KKwore3sgUFJJVklMRUdFLlNF VChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9CisKK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBu YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFudCwgb19k YXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0K K3slIGVuZGZvciAlfXslIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZh cmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVz IGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwor e3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0 YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgaWYg J21lcmdlZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEubWVyZ2VkX3Zh cmlhYmxlc3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJsZXMsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9 CisKK3t7IFNFQ0xBQkVMLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUs IHIucHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQor eyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRl ZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQg JX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUs IHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1l c3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCRUwuU0VU KGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9 fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgSVMge3sgZGF0 YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKwor eyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgRlVOQ1RJT04g e3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19 KHt7b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1B IHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBl bmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS41X3BsdXMvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvdmFy aWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li41MjMzYzcxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1 cy92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAg bmFtZSwgdmFydHlwZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZS T00KKyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0IGluICgn dXNlcicsICdzdXBlcnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL2pzL3Byb2NlZHVy ZXMuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9qcy9wcm9jZWR1cmVzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmU3MTMyMDEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9q cy9wcm9jZWR1cmVzLmpzCkBAIC0wLDAgKzEsMTg0IEBACisvKiBDcmVhdGUg YW5kIFJlZ2lzdGVyIFByb2NlZHVyZSBDb2xsZWN0aW9uIGFuZCBOb2RlLiAq LworZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3JlJywg J3VuZGVyc2NvcmUuc3RyaW5nJywKKyAgICAgICAgICdwZ2FkbWluJywgJ3Bn YWRtaW4uYnJvd3NlcicsICdhbGVydGlmeScsCisgICAgICAgICAncGdhZG1p bi5ub2RlLmZ1bmN0aW9uJywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9u JywKKyAgICAgICAgICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyLnByaXZpbGVn ZSddLAorZnVuY3Rpb24oJCwgXywgUywgcGdBZG1pbiwgcGdCcm93c2VyLCBh bGVydGlmeSwgRnVuY3Rpb24pIHsKKworICBpZiAoIXBnQnJvd3Nlci5Ob2Rl c1snY29sbC1wcm9jZWR1cmUnXSkgeworICAgIHZhciBwcm9jZWR1cmVzID0g cGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLXByb2NlZHVyZSddID0KKyAg ICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAg ICAgIG5vZGU6ICdwcm9jZWR1cmUnLAorICAgICAgICBsYWJlbDogJ3t7IF8o J1Byb2NlZHVyZXMnKSB9fScsCisgICAgICAgIHR5cGU6ICdjb2xsLXByb2Nl ZHVyZScsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdmdW5jb3duZXIn LCAnZGVzY3JpcHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAgcGdTY2hl bWFOb2RlID0gcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXTsKKworICAvLyBJ bmhlcml0IEZ1bmN0aW9ucyBOb2RlCisgIGlmICghcGdCcm93c2VyLk5vZGVz Wydwcm9jZWR1cmUnXSkgeworICAgIHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1sn cHJvY2VkdXJlJ10gPSBGdW5jdGlvbi5leHRlbmQoeworICAgICAgdHlwZTog J3Byb2NlZHVyZScsCisgICAgICBsYWJlbDogJ3t7IF8oJ1Byb2NlZHVyZScp IH19JywKKyAgICAgIGNvbGxlY3Rpb25fdHlwZTogJ2NvbGwtcHJvY2VkdXJl JywKKyAgICAgIGhhc1NRTDogdHJ1ZSwKKyAgICAgIGhhc0RlcGVuZHM6IHRy dWUsCisgICAgICBwYXJlbnRfdHlwZTogWydzY2hlbWEnXSwKKyAgICAgIElu aXQ6IGZ1bmN0aW9uKCkgeworICAgICAgICAvKiBBdm9pZCBtdWxpdHBsZSBy ZWdpc3RyYXRpb24gb2YgbWVudXMgKi8KKyAgICAgICAgaWYgKHRoaXMucHJv Y19pbml0aWFsaXplZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg ICB0aGlzLnByb2NfaW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAgIHBn QnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBuYW1lOiAnY3JlYXRl X3Byb2NlZHVyZV9vbl9jb2xsJywgbm9kZTogJ2NvbGwtcHJvY2VkdXJlJywg bW9kdWxlOgorICAgICAgICAgIHRoaXMsCisgICAgICAgICAgYXBwbGllczog WydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3By b3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJp b3JpdHk6IDQsIGxhYmVsOiAne3sgXygnUHJvY2VkdXJlLi4uJykgfX0nLAor ICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1wcm9jZWR1cmUnLCBk YXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6CisgICAgICAgICAgZmFs c2V9CisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVfcHJv Y2VkdXJlJywgbm9kZTogJ3Byb2NlZHVyZScsIG1vZHVsZTogdGhpcywKKyAg ICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxi YWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdv cnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdQcm9j ZWR1cmUuLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBp Y29uLXByb2NlZHVyZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVj azoKKyAgICAgICAgICB0cnVlfSwKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9wcm9jZWR1cmUnLCBub2RlOiAnc2NoZW1hJywgbW9k dWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2Nv bnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAg ICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJl bDogJ3t7IF8oJ1Byb2NlZHVyZS4uLicpIH19JywKKyAgICAgICAgICBpY29u OiAnd2NUYWJJY29uIGljb24tcHJvY2VkdXJlJywgZGF0YToge2FjdGlvbjog J2NyZWF0ZScsIGNoZWNrOgorICAgICAgICAgIHRydWV9LCBlbmFibGU6ICdj YW5DcmVhdGVQcm9jJworICAgICAgICB9CisgICAgICAgIF0pOworICAgICAg fSwKKyAgICAgIGNhbkRyb3A6IHBnU2NoZW1hTm9kZS5jYW5DaGlsZERyb3As CisgICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdTY2hlbWFOb2RlLmNhbkNoaWxk RHJvcCwKKyAgICAgIG1vZGVsOiBGdW5jdGlvbi5tb2RlbC5leHRlbmQoewor ICAgICAgICBkZWZhdWx0czogXy5leHRlbmQoe30sCisgICAgICAgICAgRnVu Y3Rpb24ubW9kZWwucHJvdG90eXBlLmRlZmF1bHRzLAorICAgICAgICAgIHsK KyAgICAgICAgICAgIGxhbm5hbWU6ICdlZGJzcGwnCisgICAgICAgICAgfQor ICAgICAgICApLAorICAgICAgICBjYW5WYXJBZGQ6IGZ1bmN0aW9uKG0pewor ICAgICAgICAgIHZhciBzZXJ2ZXIgPSB0aGlzLm5vZGVfaW5mby5zZXJ2ZXI7 CisgICAgICAgICAgICBpZiAoc2VydmVyLnZlcnNpb24gPCA5MDUwMCkgewor ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgIH0KKyAg ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgaXNWaXNpYmxlOiBm dW5jdGlvbihtKXsKKyAgICAgICAgICBpZiAodGhpcy5uYW1lID09ICdzeXNm dW5jJykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICAgICAgICBlbHNlIGlmICh0 aGlzLm5hbWUgPT0gJ3N5c3Byb2MnKSB7IHJldHVybiB0cnVlOyB9CisgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9LAorICAgICAgICBpc0Rp c2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgaWYodGhpcy5ub2Rl X2luZm8gJiYgICdjYXRhbG9nJyBpbiB0aGlzLm5vZGVfaW5mbykgeworICAg ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAgICAg IG5hbWUgPSB0aGlzLm5hbWU7CisgICAgICAgICAgc3dpdGNoKG5hbWUpewor ICAgICAgICAgICAgY2FzZSAncHJvdm9sYXRpbGl0eSc6CisgICAgICAgICAg ICBjYXNlICdwcm9pc3N0cmljdCc6CisgICAgICAgICAgICBjYXNlICdwcm9z ZWNkZWYnOgorICAgICAgICAgICAgY2FzZSAncHJvY29zdCc6CisgICAgICAg ICAgICBjYXNlICdwcm9sZWFrcHJvb2YnOgorICAgICAgICAgICAgY2FzZSAn dmFyaWFibGVzJzoKKyAgICAgICAgICAgICAgIHZhciBzZXJ2ZXIgPSB0aGlz Lm5vZGVfaW5mby5zZXJ2ZXI7CisgICAgICAgICAgICAgICBpZiAoc2VydmVy LnZlcnNpb24gPCA5MDUwMCkgeworICAgICAgICAgICAgICAgICByZXR1cm4g dHJ1ZTsKKyAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh c2UgJ3Byb3Jvd3MnOgorICAgICAgICAgICAgICB2YXIgc2VydmVyID0gdGhp cy5ub2RlX2luZm8uc2VydmVyOworICAgICAgICAgICAgICBpZihzZXJ2ZXIu dmVyc2lvbiA+PSA5MDUwMCAmJiBtLmdldCgncHJvcmV0c2V0JykgPT0gdHJ1 ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAg ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ2Z1bmNvd25lcic6CisgICAg ICAgICAgICBjYXNlICdsYW5uYW1lJzoKKyAgICAgICAgICAgIGNhc2UgJ3By b2FyZ3MnOgorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgfQorICAgICAgICAgIHJl dHVybiBmYWxzZTsKKyAgICAgICB9LAorICAgICAgIHZhbGlkYXRlOiBmdW5j dGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICB2YXIgZXJyID0ge30sCisg ICAgICAgICAgICAgIGVycm1zZywKKyAgICAgICAgICAgICAgc2VjbGFiZWxz ID0gdGhpcy5nZXQoJ3NlY2xhYmVscycpOworCisgICAgICAgICAgaWYgKF8u aXNVbmRlZmluZWQodGhpcy5nZXQoJ25hbWUnKSkgfHwgU3RyaW5nKHRoaXMu Z2V0KCduYW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycp IHsKKyAgICAgICAgICAgIGVyclsnbmFtZSddID0gJ3t7IF8oJ05hbWUgY2Fu IG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBl cnJtc2cgfHwgZXJyWyduYW1lJ107CisgICAgICAgICAgfQorCisgICAgICAg ICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ3Byb25hbWVzcGFjZScp KSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb25hbWVzcGFjZScpKS5yZXBsYWNl KC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJb J3Byb25hbWVzcGFjZSddID0gJ3t7IF8oJ1NjaGVtYSBjYW4gbm90IGJlIGVt cHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBl cnJbJ3Byb25hbWVzcGFjZSddOworICAgICAgICAgIH0KKworICAgICAgICAg IGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdsYW5uYW1lJykpIHx8IFN0 cmluZyh0aGlzLmdldCgnbGFubmFtZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQv ZywgJycpID09ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2xhbm5hbWUnXSA9 ICd7eyBfKCdMYW5ndWFnZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAg ICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ2xhbm5hbWUnXTsK KyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0 aGlzLmdldCgncHJvc3JjJykpIHx8IFN0cmluZyh0aGlzLmdldCgncHJvc3Jj JykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAg ICAgICAgIGVyclsncHJvc3JjJ10gPSAne3sgXygnQ29kZSBjYW4gbm90IGJl IGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1zZyB8 fCBlcnJbJ3Byb3NyYyddOworICAgICAgICAgIH0KKworCisgICAgICAgICAg aWYgKHNlY2xhYmVscykgeworICAgICAgICAgICAgdmFyIHNlY0xhYmVsc0Vy cjsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjbGFiZWxz Lm1vZGVscy5sZW5ndGggJiYgIXNlY0xhYmVsc0VycjsgaSsrKSB7CisgICAg ICAgICAgICAgIHNlY0xhYmVsc0VyciA9IChzZWNsYWJlbHMubW9kZWxzW2ld KS52YWxpZGF0ZS5hcHBseShzZWNsYWJlbHMubW9kZWxzW2ldKTsKKyAgICAg ICAgICAgICAgaWYgKHNlY0xhYmVsc0VycikgeworICAgICAgICAgICAgICAg IGVyclsnc2VjbGFiZWxzJ10gPSBzZWNMYWJlbHNFcnI7CisgICAgICAgICAg ICAgICAgZXJybXNnID0gZXJybXNnIHx8IHNlY0xhYmVsc0VycjsKKyAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKworICAg ICAgICAgIHRoaXMuZXJyb3JNb2RlbC5jbGVhcigpLnNldChlcnIpOworCisg ICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0sCisgICAgICB9Cisg ICAgICApLAorICAgICAgY2FuQ3JlYXRlUHJvYzogZnVuY3Rpb24oaXRlbURh dGEsIGl0ZW0sIGRhdGEpIHsKKyAgICAgICAgdmFyIG5vZGVfaGllcmFyY2h5 ID0gdGhpcy5nZXRUcmVlTm9kZUhpZXJhcmNoeS5hcHBseSh0aGlzLCBbaXRl bV0pOworCisgICAgICAgIC8vIERvIG5vdCBwcm92aWRlIENyZWF0ZSBvcHRp b24gaW4gY2F0YWxvZworICAgICAgICBpZiAoJ2NhdGFsb2cnIGluIG5vZGVf aGllcmFyY2h5KQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg ICAvLyBQcm9jZWR1cmVzIHN1cHBvcnRlZCBvbmx5IGluIFBQQVMKKyAgICAg ICAgaWYgKCdzZXJ2ZXInIGluIG5vZGVfaGllcmFyY2h5ICYmIG5vZGVfaGll cmFyY2h5WydzZXJ2ZXInXS50eXBlID09ICJwcGFzIikKKyAgICAgICAgICBy ZXR1cm4gdHJ1ZTsKKworICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg IH0KKyAgfSk7CisKKyAgfQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNb J3Byb2NlZHVyZSddOworfSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFf cGx1cy9hY2wuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvYWNsLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvYWNsLnNxbApAQCAt MCwwICsxLDM1IEBACitTRUxFQ1QKKyAgICBDT0FMRVNDRShndC5yb2xuYW1l LCAncHVibGljJykgQVMgZ3JhbnRlZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3Jh bnRvciwgYXJyYXlfYWdnKHByaXZpbGVnZV90eXBlKSBBUyBwcml2aWxlZ2Vz LAorICAgIGFycmF5X2FnZyhpc19ncmFudGFibGUpIEFTIGdyYW50YWJsZQor RlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZC5ncmFudGVlLCBkLmdyYW50 b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAgICAgICBDQVNFIGQucHJpdmlsZWdl X3R5cGUKKyAgICAgICAgV0hFTiAnQ09OTkVDVCcgVEhFTiAnYycKKyAgICAg ICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdDJworICAgICAgICBXSEVOICdERUxF VEUnIFRIRU4gJ2QnCisgICAgICAgIFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gn CisgICAgICAgIFdIRU4gJ0lOU0VSVCcgVEhFTiAnYScKKyAgICAgICAgV0hF TiAnUkVGRVJFTkNFUycgVEhFTiAneCcKKyAgICAgICAgV0hFTiAnU0VMRUNU JyBUSEVOICdyJworICAgICAgICBXSEVOICdURU1QT1JBUlknIFRIRU4gJ1Qn CisgICAgICAgIFdIRU4gJ1RSSUdHRVInIFRIRU4gJ3QnCisgICAgICAgIFdI RU4gJ1RSVU5DQVRFJyBUSEVOICdEJworICAgICAgICBXSEVOICdVUERBVEUn IFRIRU4gJ3cnCisgICAgICAgIFdIRU4gJ1VTQUdFJyBUSEVOICdVJworICAg ICAgICBFTFNFICdVTktOT1dOJworICAgICAgICBFTkQgQVMgcHJpdmlsZWdl X3R5cGUKKyAgICBGUk9NCisgICAgICAgIChTRUxFQ1QKKyAgICAgICAgICAg IChkKS5ncmFudGVlIEFTIGdyYW50ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50 b3IsCisgICAgICAgICAgICAoZCkuaXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50 YWJsZSwKKyAgICAgICAgICAgIChkKS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2 aWxlZ2VfdHlwZQorICAgICAgICBGUk9NCisgICAgICAgICAgICAoU0VMRUNU IGFjbGV4cGxvZGUoZGIucHJvYWNsKSBBUyBkIEZST00gcGdfcHJvYyBkYgor ICAgICAgICAgICAgV0hFUkUgZGIub2lkID0ge3tmbmlkfX06Ok9JRCkgYQor ICAgICAgICApIGQKKyAgICApIGQKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19yb2xlcyBnIE9OIChkLmdyYW50b3IgPSBnLm9pZCkKKyAgICBMRUZU IEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBndCBPTiAoZC5ncmFudGVlID0g Z3Qub2lkKQorR1JPVVAgQlkgZy5yb2xuYW1lLCBndC5yb2xuYW1lOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9w cm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uOTQyMTgxZAotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSwzMyBAQAor eyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3Jvcycg YXMgU0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9w cml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxF ICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9 CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUge3sgY29ubnxxdElkZW50 KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19eyUgaWYgZGF0YS5h cmd1bWVudHMgJX0oCit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXsl IGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBp ZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKX19IHsl IGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3twLmFyZ3R5cGV9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVm dmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBl bmRpZiAlfQoreyUgZW5kZm9yICV9KQoreyUgZW5kaWYgJX0KKworQVMKK3t7 IGRhdGEucHJvc3JjIH19OworeyUgaWYgZGF0YS5hY2wgYW5kIG5vdCBpc19z cWwgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1l LCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgJX17JSBlbmRp ZiAlfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5UIE9O IFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0KKyAgICBJUyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9 fSc7Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBh bmQgci5wcm92aWRlciAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BS T0NFRFVSRScsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0 YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYg JX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9kZWxldGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4xODcwMWVjCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIx IEBACit7JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBwci5w cm9uYW1lIGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJP TQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0 eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNw IE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lz YWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06 Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZl bnRfdHJpZ2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUg ZW5kaWYgJX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBQUk9DRURVUkUge3sg Y29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXsl IGlmIGNhc2NhZGUgJX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0 aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjM1ZjFl Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2Rl ZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTIgQEAKK1NFTEVDVAorICAgIHBn X2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwK KyAgICBuc3BuYW1lIHx8ICcuJyB8fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBD T0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVu dGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lCitG Uk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX25hbWVzcGFjZSBu c3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY4MWRkZmIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNx bApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxhbm5hbWUgYXMgbGFi ZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBwZ19sYW5ndWFnZTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCkBAIC0wLDAgKzEs MTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcg fHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFt ZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFz IGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBw Z190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBw Z19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFjZQor ICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJhbCB9fQor V0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHR5cG5hbWUg Tk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQg cHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjFfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKQEAg LTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShvaWQsIE5V TEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJF CisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4xX3BsdXMvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMV9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEs NiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVz cGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi4yYTU1ODJlCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsx LDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVDVAorICAg ICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAg ICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0Ug dC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQs IG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190 eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBp c2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9JTgor ICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Au b2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtu b3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5ECisg ICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAn ZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVyJywg J2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBkdW1teQor T1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4g J3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL25vZGUuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRiNjQ4YzQK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9ub2RlLnNx bApAQCAtMCwwICsxLDI1IEBACitTRUxFQ1QKKyAgICBwci5vaWQsCisgICAg Q0FTRSBXSEVOCisgICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9u X2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpIDw+ICcnCisgICAgVEhFTgor ICAgICAgICBwci5wcm9uYW1lIHx8ICcoJyB8fCBwZ19jYXRhbG9nLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSB8fCAnKScK KyAgICBFTFNFCisgICAgICAgIHByLnByb25hbWUKKyAgICBFTkQgQVMgbmFt ZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFT IGZ1bmNvd25lciwgZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHBy CitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBl CitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFu ZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9O IChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9j Jzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAg ICBBTkQgcHIucHJvdHlwZSA9ICcxJzo6Y2hhcgorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElO ICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAg cHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3Byb3Bl cnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ5MmYzYwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRp ZXMuc3FsCkBAIC0wLDAgKzEsMzggQEAKK1NFTEVDVAorICAgIHByLm9pZCwg cHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHBy LnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5v aWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMg dHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMo cHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRf ZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpy ZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2Rl ZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg QVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoQ0FTRSBXSEVOCisg ICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2Fy Z3VtZW50cyhwci5vaWQpIDw+ICcnCisgICAgVEhFTgorICAgICAgICBwci5w cm9uYW1lIHx8ICcoJyB8fCBwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSB8fCAnKScKKyAgICBFTFNFCisg ICAgICAgIHByLnByb25hbWUKKyAgICBFTkQpIEFTIG5hbWVfd2l0aF9hcmdz LAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdnKHByb3ZpZGVyIHx8 ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAgIHBnX3NlY2xhYmVs IHNsMQorICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBB UyBzZWNsYWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbmFtZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNw YWNlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJv bGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVz IE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19w cm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UK KyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFO RCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicp Cit7JSBpZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19Ojpv aWQKK3slIGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4xX3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi4xY2YyYzEwCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDgyIEBACit7 JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBh cyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3By aXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfXslIGlmIGRhdGEgJX0K K3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFt ZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRF UiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5uYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAl fQorCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUp IH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9 CisKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0K K0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBkYXRhLmFyZ3Vt ZW50cyAlfSh7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAu YXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFy Z25hbWUgJX17eyBjb25ufHF0SWRlbnQocC5hcmduYW1lKSB9fSB7JSBlbmRp ZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7cC5hcmd0eXBlfX17JSBlbmRpZiAl fXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19 eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0sIHslIGVuZGlm ICV9Cit7JSBlbmRmb3IgJX0KKykKK3slIGVuZGlmICV9CisKK0FTCit7JSBp ZiBkYXRhLnByb3NyYyAlfXt7IGRhdGEucHJvc3JjIH19eyUgZWxzZSAlfXt7 IG9fZGF0YS5wcm9zcmMgfX17JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAtJX0K K3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIFBST0NFRFVSRSB7 eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17 JSBpZiBvX2RhdGEucHJvYXJndHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMgfX0peyUgZW5kaWYgJX0KKyAgICBPV05FUiBUTyB7eyBk YXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQoreyMgVGhlIFNRTCBn ZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3sl IGlmIGRhdGEuYWNsICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS5hY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmRlbGV0ZWQgJX0KKwore3sg UFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdQUk9DRURVUkUnLCBwcml2Lmdy YW50ZWUsIG5hbWUsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQor eyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJp diBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNF VEFMTChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBwcml2 LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwKKyBwcml2Lndp dGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUg aWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0 YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJP Q0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgJX0KK3slIGVuZGlmIC0lfQoreyUgc2V0IHNlY2xhYmVscyA9IGRhdGEu c2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuZGVsZXRlZCAlfQorCit7eyBTRUNMQUJFTC5VTlNFVChj b25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xh YmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZv ciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQo Y29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUg aWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5n ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5n ZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBu YW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24g JX0KKworQ09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19CisgICAgSVMge3sgZGF0YS5k ZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KK3slIGlm IGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIFBST0NFRFVSRSB7eyBj b25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAg ICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFj ZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjFfcGx1cy92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjFfcGx1cy92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBA QAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWluX3ZhbCwgbWF4X3Zh bCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAg ICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXInKTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMl9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJf cGx1cy9hY2wuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmFkM2UwZDEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJf cGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAgIENP QUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAorICAg IGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5 cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJs ZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBk LmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAg IENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNU JyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisg ICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAn RVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVO ICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAg ICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RF TVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhF TiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAg ICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNB R0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAg IEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNF TEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQp LmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFu dGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZp bGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAg ICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQg RlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBkYi5vaWQgPSB7 e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkgZAorICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9 IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0 IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUs IGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9j cmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iMWVlMjJjCi0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApA QCAtMCwwICsxLDMzIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv c2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdt YWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVH RSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1h Y3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0gW10g JX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBPUiBSRVBMQUNFIFBST0NFRFVS RSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFt ZSkgfX17JSBpZiBkYXRhLmFyZ3VtZW50cyAlfQorKHslIGZvciBwIGluIGRh dGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9 fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfSB7eyBjb25ufHF0SWRl bnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17 e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBE RUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3Qg bG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yIC0lfSl7JSBl bmRpZiAlfQorCitBUwore3sgZGF0YS5wcm9zcmMgfX07Cit7JSBpZiBkYXRh LmFjbCBhbmQgbm90IGlzX3NxbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wg JX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAiUFJPQ0VEVVJFIiwgcC5n cmFudGVlLCBkYXRhLm5hbWUsIHAud2l0aG91dF9ncmFudCwgcC53aXRoX2dy YW50LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0KK3sl IGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9u ICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChk YXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fQorICAgIElTICd7eyBk YXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0 YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFiZWxzICV9 Cit7JSBpZiByLnNlY3VyaXR5X2xhYmVsIGFuZCByLnByb3ZpZGVyICV9CisK K3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgZGF0YS5uYW1l LCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBkYXRhLnByb25hbWVz cGFjZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKworCit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuMl9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMTg3MDFlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUg aWYgc2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBh cyBuYW1lLCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19n ZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8 fCAnKScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBw Z19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1w cm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Au b2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZB TFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdn ZXInKQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9 CisKK3slIGlmIG5hbWUgJX0KK0RST1AgUFJPQ0VEVVJFIHt7IGNvbm58cXRJ ZGVudChuc3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNj YWRlICV9IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3By b2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9u LnNxbApAQCAtMCwwICsxLDEyIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVu Y3Rpb25kZWYoe3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNw bmFtZSB8fCAnLicgfHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0Uo cGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJn dW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAg IHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5z cC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0g RkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAor ICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjJfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAs MCArMSw0IEBACitTRUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5u YW1lIGFzIHZhbHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuMl9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjJfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitT RUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxF U0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5 X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAg bGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3du ZXIKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0 eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3Vh Z2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVz cGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQg bnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisg ICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25h bWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4y X3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEs NiBAQAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBv dXRfYXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9p ZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9w bHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NF TEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dI RVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku Ml9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAor U0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9y bWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FT RSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVO RCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1l LAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBX SEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAg ICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAg cGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAg IFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5E IG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAo CisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScs ICdwJywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgn YW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90 cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZ IG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMn LCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMv bm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YjY0OGM0Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKQEAgLTAs MCArMSwyNSBAQAorU0VMRUNUCisgICAgcHIub2lkLAorICAgIENBU0UgV0hF TgorICAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0 eV9hcmd1bWVudHMocHIub2lkKSA8PiAnJworICAgIFRIRU4KKyAgICAgICAg cHIucHJvbmFtZSB8fCAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rp b25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCkgfHwgJyknCisgICAgRUxT RQorICAgICAgICBwci5wcm9uYW1lCisgICAgRU5EIEFTIG5hbWUsCisgICAg bGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3du ZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2Ns YXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy LnByb3R5cGUgPSAnMSc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZjZmVjOTQKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApA QCAtMCwwICsxLDM4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4s IHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1l IEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBw cm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwg bGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5 cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJv YXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3Mp IEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywg cHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNv d25lciwgZGVzY3JpcHRpb24sCisgICAgKENBU0UgV0hFTgorICAgICAgICBw Z19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMo cHIub2lkKSA8PiAnJworICAgIFRIRU4KKyAgICAgICAgcHIucHJvbmFtZSB8 fCAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlf YXJndW1lbnRzKHByLm9pZCkgfHwgJyknCisgICAgRUxTRQorICAgICAgICBw ci5wcm9uYW1lCisgICAgRU5EKSBBUyBuYW1lX3dpdGhfYXJncywKKyAgICAo U0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwg bGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQor ICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNs YWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlw ZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFt ZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitK T0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZwor TEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChk ZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6 cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBp ZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3sl IGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4y X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi40ZGQ0NjM3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS4yX3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDc4IEBACit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfXslIGlmIGRhdGEgJX0KK3slIHNl dCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQor eyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQUk9D RURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5uYW1lKSB9fQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7 JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9m dW5jICAlfQorCitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19eyUgaWYg ZGF0YS5hcmd1bWVudHMgJX0oeyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMg JX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9 eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkg fX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJndHlwZX19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5h cmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9 LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRpZiAlfQor QVMgeyUgaWYgZGF0YS5wcm9zcmMgJX17eyBkYXRhLnByb3NyYyB9fXslIGVs c2UgJX17eyBvX2RhdGEucHJvc3JjIH19eyUgZW5kaWYgLSV9OworeyUgZW5k aWYgLSV9Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBQUk9D RURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5h bWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2Rh dGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlmICV9CisgICAgT1dORVIg VE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRo ZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2Vz ICN9Cit7JSBpZiBkYXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRh dGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9 CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VEVVJFJywg cHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9y IHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0Uu VU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFt ZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywg cHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYu d2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7 JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmFjbC5hZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdQ Uk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9n cmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0 YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMg YW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciBy IGluIHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkVMLlVOU0VU KGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUg Zm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNF VChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1 cml0eV9sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7 JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hh bmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hh bmdlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NFRFVSRScs IG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0KKyAgICBJUyB7eyBkYXRh LmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQor ICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNw YWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFibGVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhf dmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQor ICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNUCisgICAg Q09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50ZWUsCisg ICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2Vf dHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRh YmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAg IGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAg ICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0NPTk5F Q1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhFTiAnQycK KyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBXSEVO ICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNFUlQnIFRI RU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisg ICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAn VEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklHR0VSJyBU SEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAg ICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVOICdV U0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAg ICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAo U0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLCAo ZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQpLmlzX2dy YW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCkucHJp dmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJPTQor ICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2FjbCkgQVMg ZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRiLm9pZCA9 IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBkCisgICAg TEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9y ID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMg Z3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcucm9sbmFt ZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVz L2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZkODFjNjYKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9jcmVhdGUuc3Fs CkBAIC0wLDAgKzEsNDMgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklM RUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUu bWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBb XSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VE VVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5u YW1lKSB9fXslIGlmIGRhdGEuYXJndW1lbnRzICV9CisoeyUgZm9yIHAgaW4g ZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9k ZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElk ZW50KHAuYXJnbmFtZSl9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAl fXt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9 IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5v dCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgLSV9KXsl IGVuZGlmICV9CisKKyAgICB7eyBkYXRhLnByb3ZvbGF0aWxlIH19eyUgaWYg ZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVBS1BST09GIHslIGVsaWYgbm90IGRh dGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFLUFJPT0YgeyUgZW5kaWYgJX0K K3slIGlmIGRhdGEucHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0K K3slIGlmIGRhdGEucHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5FUiB7JSBl bmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQorCisgICAgQ09TVCB7e2Rh dGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0K KworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlm IGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMg JX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2 LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmICV9 CisKK0FTCit7eyBkYXRhLnByb3NyYyB9fTsKK3slIGlmIGRhdGEuYWNsIGFu ZCBub3QgaXNfc3FsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7 eyBQUklWSUxFR0UuU0VUKGNvbm4sICJQUk9DRURVUkUiLCBwLmdyYW50ZWUs IGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwLndpdGhfZ3JhbnQsIGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9y ICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKwor Q09NTUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJv bmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19CisgICAgSVMgJ3t7IGRhdGEuZGVz Y3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xh YmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlm IHIuc2VjdXJpdHlfbGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VD TEFCRUwuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBkYXRhLm5hbWUsIHIucHJv dmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIGRhdGEucHJvbmFtZXNwYWNlLCBk YXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0K K3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVz L2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMTg3MDFlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2NpZCBh bmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAn KCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rp b25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMg ZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHBy CitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBl CitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnBy b25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAg QU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlw bmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAg IEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlm IG5hbWUgJX0KK0RST1AgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChuc3Bu YW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9IENB U0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAt MCwwICsxLDEyIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYo e3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAn LicgfHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxv ZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHBy Lm9pZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIu cHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAg ICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBw ci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS41X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS41X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBA CitTRUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZh bHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjVfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVf cGx1cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAg ICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwg cGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlw Lm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9O IGxuZy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5h bWU9e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNh Z2cgPSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXIn LCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBu YW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0 X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VM RUNUCisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5 cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91 dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVf cGx1cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9z Y2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1 cy9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAg IG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAg b2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS41X3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9w bHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisg ICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUo dC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5 cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVt b2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAg ICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50 eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisg ICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNw YWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisg ICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUg PSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAg ICAgICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3In KQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3Ry aWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykK KyAgICAgICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUg PD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1l LCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjVfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi40YjY0OGM0Ci0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1 cmUvcHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwyNSBA QAorU0VMRUNUCisgICAgcHIub2lkLAorICAgIENBU0UgV0hFTgorICAgICAg ICBwZ19jYXRhbG9nLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSA8PiAnJworICAgIFRIRU4KKyAgICAgICAgcHIucHJvbmFt ZSB8fCAnKCcgfHwgcGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRp dHlfYXJndW1lbnRzKHByLm9pZCkgfHwgJyknCisgICAgRUxTRQorICAgICAg ICBwci5wcm9uYW1lCisgICAgRU5EIEFTIG5hbWUsCisgICAgbGFubmFtZSwg cGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2Ny aXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5 cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xh bmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9J TgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hF UkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUg PSAnMSc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06 Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZl bnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjZjZmVjOTQKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNxbApAQCAtMCwwICsx LDM4IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4sIHByLiosIHBy LnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1lIEFTIG5hbWUs IHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBwcm9yZXR0eXBl bmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwgbGFubmFtZSwg cHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBw cm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVs dHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3MpIEFTIHByb2Fy Z2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywgcHJvY29uZmln LCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVz Y3JpcHRpb24sCisgICAgKENBU0UgV0hFTgorICAgICAgICBwZ19jYXRhbG9n LnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSA8 PiAnJworICAgIFRIRU4KKyAgICAgICAgcHIucHJvbmFtZSB8fCAnKCcgfHwg cGdfY2F0YWxvZy5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRz KHByLm9pZCkgfHwgJyknCisgICAgRUxTRQorICAgICAgICBwci5wcm9uYW1l CisgICAgRU5EKSBBUyBuYW1lX3dpdGhfYXJncywKKyAgICAoU0VMRUNUCisg ICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisg ICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQorICAgIFdIRVJF CisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZS T00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04g dHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5 cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAg cGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRF UiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3Mp CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFt ZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJ TiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBmbmlkICV9 CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVuZGlmICV9 CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvdXBk YXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43 Nzc3Y2NkCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv dXBkYXRlLnNxbApAQCAtMCwwICsxLDEwMiBAQAoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCRUwgJX0K K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9z JyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYgZGF0YSAl fQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5u YW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FM VEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLm5hbWUpIH19CisgICAgUkVOQU1FIFRPIHt7IGNvbm58 cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5h bWUgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEu Y2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUg e3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19 eyUgaWYgZGF0YS5hcmd1bWVudHMgJX0oeyUgZm9yIHAgaW4gZGF0YS5hcmd1 bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19IHslIGVu ZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAuYXJn bmFtZSkgfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX17e3AuYXJn dHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxU IHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5s YXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRp ZiAlfQorICAgIHslIGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBk YXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBk YXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfUxFQUtQUk9PRnslIGVs c2UgJX1OT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXNz dHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJv aXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3Qp ICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4g ZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVG SU5FUnslIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb2Nvc3QgJX1D T1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9 Q09TVCB7e29fZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvcm93cyAlfQorCisgICAgUk9XUyB7e2RhdGEucHJvcm93c319eyUgZWxp ZiBvX2RhdGEucHJvcm93cyAlfVJPV1Mge3tvX2RhdGEucHJvcm93c319eyUg ZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9eyUgZm9y IHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisKKyAgICBTRVQge3sg Y29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwg fX17JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAlfQorCitBUworeyUgaWYgZGF0 YS5wcm9zcmMgJX17eyBkYXRhLnByb3NyYyB9fXslIGVsc2UgJX17eyBvX2Rh dGEucHJvc3JjIH19eyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBQUk9DRURVUkUge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19eyUgaWYg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KXslIGVuZGlmICV9CisgICAgT1dORVIgVE8ge3sgZGF0YS5m dW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KK3sjIFRoZSBTUUwgZ2VuZXJh dGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVkZ2VzICN9Cit7JSBpZiBk YXRhLmFjbCAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7 JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxldGVkICV9CisKK3t7IFBSSVZJ TEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVl LCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFu dGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHByaXYud2l0aF9ncmFu dCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRk ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5h ZGRlZCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdQUk9DRURVUkUn LCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJp di53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNl ICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEudmFyaWFibGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVk fGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ1BS T0NFRFVSRScsIG5hbWUsIGRhdGEudmFyaWFibGVzLmRlbGV0ZWQsIG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRh IGFuZCBkYXRhLm1lcmdlZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7 eyBWQVJJQUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYg LSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNl Y2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQoY29u biwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJl bHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNv bm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2Vk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2Vk ICV9CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFt ZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9 CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVz Y3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBk YXRhLnByb25hbWVzcGFjZSAlfQorCitBTFRFUiBQUk9DRURVUkUge3sgY29u bnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19CisgICAg U0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Up IH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjVfcGx1cy92YXJpYWJsZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS41X3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDYgQEAK K1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWwsIG1heF92YWws IGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dIRVJFCisgICAg Y29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7Cg== --001a11c3a754bb33c4052f16d4bd Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11c3a754bb33c4052f16d4bd--