Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tKn4T-00AnSq-NO for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Dec 2024 23:21:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tKn4Q-00CjgF-Ew for pgsql-hackers@arkaria.postgresql.org; Mon, 09 Dec 2024 23:21:43 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tKn4O-00Cjfs-Qs for pgsql-hackers@lists.postgresql.org; Mon, 09 Dec 2024 23:21:42 +0000 Received: from mail-yb1-xb32.google.com ([2607:f8b0:4864:20::b32]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tKn42-001ysH-IR for pgsql-hackers@lists.postgresql.org; Mon, 09 Dec 2024 23:21:40 +0000 Received: by mail-yb1-xb32.google.com with SMTP id 3f1490d57ef6-e38938a55e7so4895265276.2 for ; Mon, 09 Dec 2024 15:21:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733786477; x=1734391277; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=CgJnTci62rTGiGKnwQRV1AlqigZ3rfK3LmxBA+W6glU=; b=SzIED9KxvW72i+cswtWP/BduSjSm3NzEOLFBq/VjHWap+rMCFYtrKAwmuq/l2+NmNz bqgs2yQPUymQ0EVHbnrS8h4ldfUl0MH8PqQCD4QVmpzxzmSnOc4L5Z5sq14IZpnLhQL4 07DE0tHBvGY9uiEnmN6FJArCrMX8jG2m13uburVXWL5D8xbRWkEB6ldhKMEUpjbNWHUg JuFis6jjHUXMvggAKNrYwoq1OLMfDw8EXuZnEUN6e7AEaYcp6XhXv/HGGFKBiVZNje3C oprpRCiddqAlJatNVSZPsW+27LqQEd9I+E4ILWDaQjE24/dVfg7J3XBrUwoqMLiUtdHX G6FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733786477; x=1734391277; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CgJnTci62rTGiGKnwQRV1AlqigZ3rfK3LmxBA+W6glU=; b=DM/tS8VS4s0lOUIOBwnAiU10oyLAjMTglVPnM00gNxC7IGMstGJMD1C+zmbufyZcSi xPZP1z0kKh5CFfcIHKaCXW538nWaKtLrOwCKs9mzQ3kkrsyUcCV6lU1mjksf7aD9w8wv UbSGMy+EZDls8doI4MNiWruCUsr7KX33m5i6G4w8XNfNSzVYkJqzrtI/13QxwNA0sdMg flqige1yujKyQastjzlT71tJ7+2F8edwAks5GCf3IhiK/uLl5vu5pLnGakzP371CGfIW h0P9gA/0AGVGRXmN/MtNLOmVGKc2Hon1MrVigkbVQuXY5TPsjQZnDme6bt+htGMaqc+r 6XWA== X-Forwarded-Encrypted: i=1; AJvYcCU//ZIu6fh4Jgmab+jaj9z7PatWD09n9eAC7szgjd+5LNJFeThnuvFo6qh6nzxzeFUXeZ/wkaU3D1hYJ6qN@lists.postgresql.org X-Gm-Message-State: AOJu0Yxkn2BlhqrD7715YqWS7qVTxONIPSfhNYJIrUvufS5QkdE8IuP1 uhdsoNwQ1nQFpYV3a3zynQJKXri3s8U6QhCVwNFz/nDgwBCikLND0TjJI2FDe7/1jiLILvQUTgA UCrMPAhZQw0cbP/PWhPdD5eT0weI= X-Gm-Gg: ASbGncs/e56UeaRnK3+oHMWfb0CF3FSrOJC04gJLxPztLfg2gMNPti5JVnqD8xI1JIM pLuK5sV3iEVd0TzQB6geEKAuRTjR0OeLGME91Xy1x88VHkGF9mU95OeJ6JjqpV7CAIMLH X-Google-Smtp-Source: AGHT+IGijDWCkOut+x1R9REwGgnD1gIQq4ct/b3/wVEdVYeFvGoH+YrtHCrZ2w0fiVmTDxdVHY+FJwF0z1bvCdBrC50= X-Received: by 2002:a05:6902:188e:b0:e39:8d52:e30d with SMTP id 3f1490d57ef6-e3a0b07c36fmr11976292276.4.1733786477018; Mon, 09 Dec 2024 15:21:17 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> In-Reply-To: From: Pavel Stehule Date: Tue, 10 Dec 2024 00:20:38 +0100 Message-ID: Subject: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000157aaf0628de9f56" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000157aaf0628de9f56 Content-Type: multipart/alternative; boundary="000000000000157aae0628de9f54" --000000000000157aae0628de9f54 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable po 9. 12. 2024 v 7:16 odes=C3=ADlatel jian he napsal: > On Mon, Dec 9, 2024 at 2:33=E2=80=AFAM Pavel Stehule > wrote: > > > > Hi > > > again. only applied > v20241208-0001-Enhancing-catalog-for-support-session-variables-and-.patch= . > > /* we want SessionVariableCreatePostprocess to see the catalog changes. *= / > 0001 doesn't have SessionVariableCreatePostprocess, > so this comment is wrong in the context of 0001. > moved to patch 11 > > typo: > As above, but if the variable isn't found and is_mussing is not NULL > is_mussing should be is_missing. > > fixed > ---------------------------------------------- > issue with grant.sgml and revoke.sgml. > > * there are no regress tests for WITH GRANT OPTION but it seems to work; > there are no REVOKE CASCADE tests. the following tests show > REVOKE CASCADE works. > > create variable v1 as int; > GRANT select on VARIABLE v1 to alice with grant option; > set session authorization alice; > GRANT select on VARIABLE v1 to bob with grant option; > reset session authorization; > > select varacl from pg_variable where varname =3D 'v1'; > --output > {jian=3Drw/jian,alice=3Dr*/jian,bob=3Dr*/alice} > revoke all privileges on variable v1 from alice cascade; > select varacl from pg_variable where varname =3D 'v1'; > --output > {jian=3Drw/jian} > > revoke GRANT OPTION FOR all privileges on variable v1 from alice cascade; > also works. > these features uses generic code, so I didn't wrote regress test, but I don't see any reason why don't use your examples in regress tests. > > * in revoke.sgml and grant.sgml. > if you look closely, " | ALL VARIABLES IN SCHEMA schema_name [, ...] }" i= s > wrong > because there is no left-curly-bracket, but there is a right-curly-bracke= t. > fixed > > * in revoke.sgml. > where class=3D"parameter">role_specification can be: > [ GROUP ] role_name > | PUBLIC > | CURRENT_ROLE > | CURRENT_USER > | SESSION_USER > should be at the end of the synopsis section? > otherwise it looks weird, maybe we can put the REVOKE VARIABLE code upper= . > grant.sgml changes position looks fine to me. > it was wrong, REVOKE VARIABLE should be moved up fixed > > > * > The GRANT command has two basic variants: one > that grants privileges on a database object (table, column, view, > foreign table, sequence, database, foreign-data wrapper, foreign serve= r, > function, procedure, procedural language, large object, configuration > parameter, schema, tablespace, or type), and one that grants > membership in a role. These variants are similar in many ways, but > they are different enough to be described separately. > > this in grant.sgml needs to also mention "variable"? > done > > * > Privileges on databases, tablespaces, schemas, languages, and > configuration parameters are > PostgreSQL extensions. > > this in grant.sgml needs to also mention "variable"? > > done > * we already support \dV and \dV+ in > v20241208-0001-Enhancing-catalog-for-support-session-variables-and-.patch > so we should update doc/src/sgml/ref/psql-ref.sgml also. > I briefly searched \dV in > v20241208-0002-Storage-for-session-variables-and-SQL-interface.patch, > no entry. > done ---------------------------------------------- > * > + > + Inside a query or an expression, a session variable can be > + shadowed by a column with the same name. Similarly, > the > + name of a function or procedure argument or a PL/pgSQL variable (see > PL/pgSQL should decorated as PL/pgSQL > > moved this para to patch02 > > > * in doc/src/sgml/ddl.sgml > and
id=3D"privileges-summary-table"> need to change for variable? > , id=3D"ddl-priv-update"> need to change for variable? > > it's kind of tricky. if we only apply > v20241208-0001-Enhancing-catalog-for-support-session-variables-and-.patch > we can not SELECT or UPDATE variable. > so how are we going to mention these privileges for variable? > I did it to 01 patch. The line between 01 and 02 patch can be fuzzy sometimes little bit Just note: applying only the 01 patch does not make any sense. These patches (01 and 02) are separated just for review and testing, but for any usage both patches should be committed or none. > > * we can add some tests for EVENT TRIGGER test, > since event trigger support CREATE|DROP variable. atually, I think > there is a bug. > > create variable v1 as int; > CREATE OR REPLACE FUNCTION event_trigger_report_dropped() > RETURNS event_trigger > LANGUAGE plpgsql > AS $$ > DECLARE r record; > BEGIN > FOR r IN SELECT * from pg_event_trigger_dropped_objects() > LOOP > IF NOT r.normal AND NOT r.original THEN > CONTINUE; > END IF; > RAISE NOTICE 'NORMAL: orig=3D% normal=3D% istemp=3D% type=3D% identity=3D= % name=3D% > args=3D%', > r.original, r.normal, r.is_temporary, r.object_type, > r.object_identity, r.address_names, r.address_args; > END LOOP; > END; $$; > > CREATE EVENT TRIGGER regress_event_trigger_report_dropped ON sql_drop > WHEN TAG IN ('DROP VARIABLE') > EXECUTE PROCEDURE event_trigger_report_dropped(); > > --output: > src9=3D# drop variable v1; > NOTICE: test_event_trigger: ddl_command_start DROP VARIABLE > NOTICE: NORMAL: orig=3Dt normal=3Df istemp=3Df type=3Dsession variable > identity=3Dpublic.v1 name=3D{public,$} args=3D{} > DROP VARIABLE > > should i expect > NOTICE: NORMAL: orig=3Dt normal=3Df istemp=3Df type=3Dsession variable > identity=3Dpublic.v1 name=3D{public,$} args=3D{} > to be > NOTICE: NORMAL: orig=3Dt normal=3Df istemp=3Df type=3Dsession variable > identity=3Dpublic.v1 name=3D{public,v1} args=3D{} > ? > fixed - there was missing pstrdup(varname) in the related part in getObjectIdentityParts I used your example in regress test new patchset attached with necessary rebase Regards Pavel --000000000000157aae0628de9f54 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


po 9. 12. 2024 = v=C2=A07:16 odes=C3=ADlatel jian he <jian.universality@gmail.com> napsal:
On Mon, Dec 9, 2024 at 2:33=E2=80= =AFAM Pavel Stehule <pavel.stehule@gmail.com> wrote:
>
> Hi
>
again. only applied
v20241208-0001-Enhancing-catalog-for-support-session-variables-and-.patch.<= br>
/* we want SessionVariableCreatePostprocess to see the catalog changes. */<= br> 0001 doesn't have SessionVariableCreatePostprocess,
so this comment is wrong in the context of 0001.

<= /div>
moved to patch 11
=C2=A0

typo:
As above, but if the variable isn't found and is_mussing is not NULL is_mussing should be is_missing.


fixed
=C2=A0
----------------------------------------------
issue with=C2=A0 grant.sgml and revoke.sgml.

* there are no regress tests for WITH GRANT OPTION but it seems to work; there are no REVOKE CASCADE tests. the following tests show
REVOKE CASCADE works.

create variable v1 as int;
GRANT select on VARIABLE v1 to alice with grant option;
set session authorization alice;
GRANT select on VARIABLE v1 to bob with grant option;
reset session authorization;

select varacl from pg_variable where varname=C2=A0 =3D 'v1';
--output
{jian=3Drw/jian,alice=3Dr*/jian,bob=3Dr*/alice}
revoke all privileges on variable v1 from alice cascade;
select varacl from pg_variable where varname=C2=A0 =3D 'v1';
--output
=C2=A0{jian=3Drw/jian}

revoke GRANT OPTION FOR all privileges on variable v1 from alice cascade; also works.

these features uses generic= code, so I didn't wrote regress test, but I don't see any
reason why don't use your examples in regress tests.
<= div>=C2=A0

* in revoke.sgml and grant.sgml.
if you look closely, " | ALL VARIABLES IN SCHEMA schema_name [, ...] }= " is wrong
because there is no left-curly-bracket, but there is a right-curly-bracket.=

fixed
=C2=A0

* in revoke.sgml.
<phrase>where <replaceable
class=3D"parameter">role_specification</replaceable> can= be:</phrase>
=C2=A0 =C2=A0 [ GROUP ] <replaceable class=3D"parameter">ro= le_name</replaceable>
=C2=A0 | PUBLIC
=C2=A0 | CURRENT_ROLE
=C2=A0 | CURRENT_USER
=C2=A0 | SESSION_USER
should be at the end of the synopsis section?
otherwise it looks weird, maybe we can put the REVOKE VARIABLE code upper.<= br> grant.sgml changes position looks fine to me.

it was wrong, REVOKE VARIABLE should be moved up

fixed
=C2=A0


*=C2=A0 <para>
=C2=A0 =C2=A0The <command>GRANT</command> command has two basic= variants: one
=C2=A0 =C2=A0that grants privileges on a database object (table, column, vi= ew,
=C2=A0 =C2=A0foreign table, sequence, database, foreign-data wrapper, forei= gn server,
=C2=A0 =C2=A0function, procedure, procedural language, large object, config= uration
=C2=A0 =C2=A0parameter, schema, tablespace, or type), and one that grants =C2=A0 =C2=A0membership in a role.=C2=A0 These variants are similar in many= ways, but
=C2=A0 =C2=A0they are different enough to be described separately.
=C2=A0 </para>
this <para> in grant.sgml needs to also mention "variable"?=

done
=C2=A0

*=C2=A0 =C2=A0<para>
=C2=A0 =C2=A0 Privileges on databases, tablespaces, schemas, languages, and=
=C2=A0 =C2=A0 configuration parameters are
=C2=A0 =C2=A0 <productname>PostgreSQL</productname> extensions.=
=C2=A0 =C2=A0</para>
this <para> in grant.sgml needs to also mention "variable"?=


done
=C2=A0
* we already support \dV and \d= V+ in
v20241208-0001-Enhancing-catalog-for-support-session-variables-and-.patch so we should update doc/src/sgml/ref/psql-ref.sgml also.
I briefly searched \dV in
v20241208-0002-Storage-for-session-variables-and-SQL-interface.patch,
no entry.

done

----------------------------------------------
*
+=C2=A0 =C2=A0<para>
+=C2=A0 =C2=A0 Inside a query or an expression, a session variable can be +=C2=A0 =C2=A0 <quote>shadowed</quote> by a column with the sam= e name.=C2=A0 Similarly, the
+=C2=A0 =C2=A0 name of a function or procedure argument or a PL/pgSQL varia= ble (see
PL/pgSQL should decorated as <application>PL/pgSQL</application>= ;


moved this para to patch02
<= div>=C2=A0


* in doc/src/sgml/ddl.sgml
<table id=3D"privilege-abbrevs-table"> and <table
id=3D"privileges-summary-table"> need to change for variable?<= br> <varlistentry id=3D"ddl-priv-select">, <varlistentry
id=3D"ddl-priv-update"> need to change for variable?

it's kind of tricky. if we only apply
v20241208-0001-Enhancing-catalog-for-support-session-variables-and-.patch we can not=C2=A0 SELECT or=C2=A0 UPDATE variable.
so how are we going to mention these privileges for variable?

I did it to 0= 1 patch.

The line between 01 and 02 p= atch can be fuzzy sometimes little bit

Just note: applying only the 01 p= atch does not make any sense.=C2=A0 These patches (01 and 02) are separated= just for review
and testing, but for any usage both patches shou= ld be committed or none.

<= br>


=C2=A0* we can add some tests for EVENT TRIGGER test,
since event trigger support CREATE|DROP variable. atually, I think
there is a bug.

create variable v1 as int;
CREATE OR REPLACE FUNCTION event_trigger_report_dropped()
RETURNS event_trigger
LANGUAGE plpgsql
AS $$
DECLARE r record;
BEGIN
FOR r IN SELECT * from pg_event_trigger_dropped_objects()
LOOP
IF NOT r.normal AND NOT r.original THEN
=C2=A0 =C2=A0 CONTINUE;
END IF;
RAISE NOTICE 'NORMAL: orig=3D% normal=3D% istemp=3D% type=3D% identity= =3D% name=3D% args=3D%',
=C2=A0 =C2=A0 r.original, r.normal, r.is_temporary, r.object_type,
=C2=A0 =C2=A0 r.object_identity, r.address_names, r.address_args;
END LOOP;
END; $$;

CREATE EVENT TRIGGER regress_event_trigger_report_dropped ON sql_drop
WHEN TAG IN ('DROP VARIABLE')
EXECUTE PROCEDURE event_trigger_report_dropped();

--output:
src9=3D# drop variable v1;
NOTICE:=C2=A0 test_event_trigger: ddl_command_start DROP VARIABLE
NOTICE:=C2=A0 NORMAL: orig=3Dt normal=3Df istemp=3Df type=3Dsession variabl= e
identity=3Dpublic.v1 name=3D{public,$} args=3D{}
DROP VARIABLE

should i expect
NOTICE:=C2=A0 NORMAL: orig=3Dt normal=3Df istemp=3Df type=3Dsession variabl= e
identity=3Dpublic.v1 name=3D{public,$} args=3D{}
to be
NOTICE:=C2=A0 NORMAL: orig=3Dt normal=3Df istemp=3Df type=3Dsession variabl= e
identity=3Dpublic.v1 name=3D{public,v1} args=3D{}
?

fixed - there was missing pstrdup(var= name) in the related part in getObjectIdentityParts

I used your example in regress test

new patc= hset attached with necessary rebase

Regards
<= div>
Pavel

=C2=A0
--000000000000157aae0628de9f54-- --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0020-transactional-variables.patch" Content-Disposition: attachment; filename="v20241210-0020-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvq71 RnJvbSA3MWIxZTAxNTBkYjRhMzU3ZGM3YmU1NGVkMTg3MDZiZTM1NWMwNmIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjFdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDExMCArKysrKyst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAgNTggKysr KwogMTYgZmlsZXMgY2hhbmdlZCwgNTkyIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggODEzNjYwYWNlYi4uOTEzMDllNzJkYSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK QEAgLTk4NjgsNiArOTg2OCwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRl cmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9w YXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PHN0 cnVjdGZpZWxkPnZhcmlzdHJhbnNhY3Q8L3N0cnVjdGZpZWxkPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+Ym9vbGVhbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PjwvZW50cnk+Cisg ICAgICA8ZW50cnk+CisgICAgICAgVHJ1ZSwgd2hlbiB0aGUgdmFyaWFibGUgaXMgPHF1b3RlPnRy YW5zYWN0aW9uYWw8L3F1b3RlPi4gSW4gdGhlIGNhc2UKKyAgICAgICBvZiBhIHRyYW5zYWN0aW9u IHJvbGxiYWNrLCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBhcmUgcmVzZXQgdG8gdGhlCisgICAg ICAgdmFsdWUgdGhleSBoYWQgd2hlbiB0aGUgdHJhbnNhY3Rpb24gc3RhcnRlZC4gVGhlIGRlZmF1 bHQgdmFsdWUgaXMKKyAgICAgICA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4uCisgICAgICA8L2Vu dHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8 c3RydWN0ZmllbGQ+dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlwZT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDAwOTM4NzQzYzAuLmI3M2Yw MzJkZGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyArMjYs NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5v cHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBWQVJJ QUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZIHwg VEVNUCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJTU1VVEFCTEUg XSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE5PVCBOVUxMIF0g WyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3Jl cGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNF VCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KQEAgLTQ3LDYgKzQ3LDE0IEBA IENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBWQVJJQUJMRSBb IElGIE5PVCBFWElTVFMgXSA8cmVwbGFjCiAgICBzYW1lIGFzIHJlZ3VsYXIgdmFyaWFibGVzIGlu IHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBXaGVuIGEg c2NoZW1hIHZhcmlhYmxlIGlzIGNyZWF0ZWQgd2l0aCBhCisgICA8Y29tbWFuZD5DUkVBVEUgVFJB TlNBQ1RJT05BTCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHZhcmlhYmxlcworICAg Y29udGVudCBjaGFuZ2VzIGFyZSB0cmFuc2FjdGlvbmFsOiBpbiBjYXNlIG9mIHJvbGxiYWNrLCB0 aGV5IGFyZSByZXNldCB0bworICAgdGhlaXIgdmFsdWUgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUg dHJhbnNhY3Rpb24gb3IgdGhlIGxhdGVzdCBzdWJ0cmFuc2FjdGlvbi4KKyAgIFRoZSB2YXJpYWJs ZSBjb250ZW50IGlzIG9ubHkgaG9sZCBpbiBtZW1vcnksIGFuZCB0aHVzIGlzIG5vdCBwZXJzaXN0 ZW50LgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgcmV0 cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CiAgICBjb21tYW5kLiAgVGhl aXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBmMjYxZTNmZDc3Li43NzFjMjgxNjA0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC00Miw2ICs0Miw3IEBAIHN0YXRpYyBPYmpl Y3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJ IGJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQkJCQkJCSBib29sIG5vdF9udWxsLAogCQkJCQkJCQkJ IGJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCQkJCQkJIGJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJCQkJ CQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbik7CiAKQEAgLTU5LDYgKzYwLDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKnZhck5hbWUsCiAJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAogCQkJCWJvb2wgbm90X251 bGwsCiAJCQkJYm9vbCBpc19pbW11dGFibGUsCisJCQkJYm9vbCBpc190cmFuc2FjdCwKIAkJCQlO b2RlICp2YXJEZWZleHByLAogCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0 aW9uKQogewpAQCAtMTIzLDYgKzEyNSw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cm5vdG51bGwgLSAxXSA9IEJvb2xHZXREYXR1bShub3RfbnVsbCk7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyaXNpbW11dGFibGUgLSAxXSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUp OworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmlzdHJhbnNhY3QgLSAxXSA9IEJvb2xHZXRE YXR1bShpc190cmFuc2FjdCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFj dGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCiAJaWYgKHZhckRl ZmV4cHIpCkBAIC0yNjcsNiArMjcwLDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICBzdG10LT5pZl9ub3Rf ZXhpc3RzLAogCQkJCQkJCSAgIHN0bXQtPm5vdF9udWxsLAogCQkJCQkJCSAgIHN0bXQtPmlzX2lt bXV0YWJsZSwKKwkJCQkJCQkgICBzdG10LT5pc190cmFuc2FjdCwKIAkJCQkJCQkgICBjb29rZWRf ZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDQwYTE1ZmE5NTYuLmUwN2M0MDRiNTMgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTQ3LDYgKzQ3LDE5IEBA IHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQogCVN1YlRyYW5zYWN0aW9uSWQg ZGVsZXRpbmdfc3ViaWQ7CiB9IFNWYXJpYWJsZVhBY3REcm9wSXRlbTsKIAorLyoKKyAqIFVzZWQg Zm9yIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzLiBIb2xkcyBwcmV2IHZlcnNpb24uCisgKi8KK3R5 cGVkZWYgc3RydWN0IFByZXZWYWx1ZQoreworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7 CisKKwlTdWJUcmFuc2FjdGlvbklkIG1vZGlmeV9zdWJpZDsKKworCXN0cnVjdCBQcmV2VmFsdWUg KnByZXZfdmFsdWU7Cit9IFByZXZWYWx1ZTsKKwogLyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAg KiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQg aW4gYmluYXJ5IGZvcm1hdC4KQEAgLTY4LDYgKzgxLDI1IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJp YWJsZURhdGEKIAlib29sCQlpc251bGw7CiAJRGF0dW0JCXZhbHVlOwogCisJLyoKKwkgKiBXZSBk b24ndCBuZWVkIHN0YWNrIHZlcnNpb25zIG1vZGlmaWVkIGluIHNhbWUgc3VidHJhbnNhY3Rpb24u CisJICogVXNlZCBieSB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBvbmx5LiBUaGUgdmFsdWUgb2Yg dHJhbnNhY3Rpb25hbAorCSAqIHZhcmlhYmxlIGNhbiBiZSByZXR1cm5lZCBpbW1lZGlhdGVseSB3 aGVuIG1vZGlmeV9zdWJpZCBpcyBzYW1lCisJICogbGlrZSBjdXJyZW50IHN1YmlkLgorCSAqLwor CVN1YlRyYW5zYWN0aW9uSWQgbW9kaWZ5X3N1YmlkOworCisJLyoKKwkgKiBXaGVuIHRoZSBtb2Rp Znlfc3ViaWQgaXMgZGlmZmVyZW50IHRoYW4gY3VycmVudCBzdWJpZCwgdGhlbgorCSAqIHdlIG5l ZWQgdG8gcmVjaGVjayB2ZXJzaW9ucyBhbmQgdGhyb3cgdmVyc2lvbnMgcmVsYXRlZCB0bworCSAq IHJldmVydGVkIHRyYW5zYWN0aW9ucy4gV2hlbiBwdXJnZV9zdWJpZCBpcyBzYW1lIGxpa2UgY3Vy cmVudCBzdWJpZAorCSAqIHdlIGNhbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uIHZh cmlhYmxlIHdpdGhvdXQgdGhpcworCSAqIHJlY2hlY2suCisJICovCisJU3ViVHJhbnNhY3Rpb25J ZCBwdXJnZV9zdWJpZDsKKworCVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CisKIAlPaWQJCQl0eXBp ZDsKIAlpbnQxNgkJdHlwbGVuOwogCWJvb2wJCXR5cGJ5dmFsOwpAQCAtODYsNiArMTE4LDcgQEAg dHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCiAJYm9vbAkJbm90X251bGw7CiAJYm9vbAkJ aXNfaW1tdXRhYmxlOworCWJvb2wJCWlzX3RyYW5zYWN0OwogCiAJYm9vbAkJcmVzZXRfYXRfZW94 OwogCkBAIC0xMjUsNiArMTU4LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZh bHNlOwogICovCiBzdGF0aWMgYm9vbCBoYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9h dF9lb3ggPSBmYWxzZTsKIAorLyogdHJ1ZSwgd2hlbiB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyB3 YXMgbW9kaWZpZWQgKi8KK3N0YXRpYyBib29sIGhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3Zh cmlhYmxlcyA9IGZhbHNlOworCiAvKgogICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9u IHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCiAgKiBwb3NzaWJsZSwg d2UgZG8gdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3Qg ZG8gdGhhdApAQCAtMTQwLDYgKzE3Niw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMg PSBOSUw7CiAKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9w KE9pZCB2YXJpZCk7CiBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFj dF9kcm9wKE9pZCB2YXJpZCk7CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNW YXJpYWJsZSBzdmFyKTsKIAogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZh cmlhYmxlIGludmFsaWRhdGlvbi4KQEAgLTI5Miw4ICszMjksMjUgQEAgdW5yZWdpc3Rlcl9zZXNz aW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1 ZSwgZnJlZSBtZW1vcnkKICAqLwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92 YWx1ZShTVmFyaWFibGUgc3ZhcikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFi bGUgc3ZhciwgYm9vbCBkZWVwX2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJCVByZXZW YWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAqbmV4dF92 YWx1ZTsKKworCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50eXBieXZh bCkKKwkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsKKworCQkJ bmV4dF92YWx1ZSA9IHByZXZfdmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2X3ZhbHVl KTsKKworCQkJcHJldl92YWx1ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBjbGVhbiB0 aGUgY3VycmVudCB2YWx1ZSAqLwogCWlmICghc3Zhci0+aXNudWxsKQogCXsKQEAgLTM5MCw3ICs0 NDQsNyBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogCQkJ ewogCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CiAKLQkJCQlmcmVlX3Nlc3Npb25fdmFy aWFibGVfdmFsdWUoc3Zhcik7CisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIs IHRydWUpOwogCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZF LCBOVUxMKTsKIAkJCQlzdmFyID0gTlVMTDsKIAkJCX0KQEAgLTQyNiw2ICs0ODAsOTQgQEAgcmVt b3ZlX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94KHZvaWQpCiAJaGFzX3Nlc3Np b25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7CiB9CiAKKy8qCisgKiByZW1v dmUgcHJldiB2YWx1ZXMgYXQgZW94CisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfcHJldl92YWx1 ZXNfYXRfZW94KGJvb2wgaXNDb21taXQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlT VmFyaWFibGUJc3ZhcjsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKKworCS8qIGxl YXZlIHF1Y2tseSwgd2hlbiB0aGVyZSBhcmUgbm90IHRoYXQgdmFyaWFibGVzICovCisJaWYgKCFo YXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMpCisJCXJldHVybjsKKworCWhhc2hf c2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFi bGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChzdmFyLT5p c190cmFuc2FjdCAmJiBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQpCisJCXsKKwkJCWlmIChpc0NvbW1pdCkKKwkJCXsKKwkJCQlpZiAocHVyZ2Vfc2Vzc2lvbl92 YXJpYWJsZShzdmFyKSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXIt PnByZXZfdmFsdWU7CisKKwkJCQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJCXsKKwkJCQkJCVBy ZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7CisKKwkJCQkJCWlmICghc3Zhci0+dHlw Ynl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50 ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQkJCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYt PnByZXZfdmFsdWU7CisJCQkJCQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQkJfQorCQkJCX0KKwkJ CQllbHNlCisJCQkJeworCQkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnN2YXItPnZhcmlk LCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJCXN2YXIgPSBOVUxMOworCQkJCX0KKwkJCX0KKwkJ CWVsc2UKKwkJCXsKKwkJCQlQcmV2VmFsdWUgKnByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVl OworCisJCQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJeworCQkJCQlQcmV2VmFsdWUgKmN1cnJl bnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCQkJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQg PT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJCQlicmVhazsKKworCQkJCQlpZiAoIXN2 YXItPnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQkJCQlwZnJlZShEYXR1bUdl dFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVu dF9wdi0+cHJldl92YWx1ZTsKKwkJCQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJfQorCisJCQkJ aWYgKHByZXZfdmFsdWUpCisJCQkJeworCQkJCQlzdmFyLT52YWx1ZSA9IHByZXZfdmFsdWUtPnZh bHVlOworCQkJCQlzdmFyLT5pc251bGwgPSBwcmV2X3ZhbHVlLT5pc251bGw7CisKKwkJCQkJcGZy ZWUocHJldl92YWx1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNo KHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3Zh ciA9IE5VTEw7CisJCQkJfQorCQkJfQorCisJCQkvKiB3aGVuIHN2YXIgaXMgc3RpbGwgdmFsaWQg KG5vdCByZW1vdmVkIGZyb20gc2Vzc2lvbnZhcnMgKi8KKwkJCWlmIChzdmFyKQorCQkJeworCQkJ CXN2YXItPm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQkJCXN2YXIt PnByZXZfdmFsdWUgPSBOVUxMOworCQkJfQorCQl9CisJfQorCisJaGFzX21vZGlmaWVkX3RyYW5z YWN0aW9uYWxfdmFyaWFibGVzID0gZmFsc2U7Cit9CisKIC8qCiAgICogUGVyZm9ybSBPTiBDT01N SVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzLAogICAqIGFuZCByZW1vdmUg YWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVtb3J5LgpAQCAtNDczLDYgKzYxNSw4IEBAIEF0 UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIAkJcmVtb3ZlX2ludmFs aWRfc2Vzc2lvbl92YXJpYWJsZXModHJ1ZSk7CiAJfQogCisJcmVtb3ZlX3ByZXZfdmFsdWVzX2F0 X2VveChpc0NvbW1pdCk7CisKIAkvKgogCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0 ZW1zLiBBbGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJlIGRyb3BwZWQKIAkgKiBub3csIG9yIGxvc3Qg aW5zaWRlIGFib3J0ZWQgdHJhbnNhY3Rpb24uCkBAIC02MTgsNiArNzYyLDcgQEAgc2V0dXBfc2Vz c2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQog CiAJc3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOwogCXN2YXItPmlzX2ltbXV0 YWJsZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCXN2YXItPmlzX3RyYW5zYWN0ID0gdmFy Zm9ybS0+dmFyaXN0cmFuc2FjdDsKIAogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlwZSh2 YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhID0gTlVMTDsKQEAgLTY0Myw2ICs3ODgsMTcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2YXItPmlzbnVs bCA9IHRydWU7CiAJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CiAKKwlpZiAoc3Zhci0+aXNfdHJh bnNhY3QpCisJeworCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rp b25JZCgpOworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOwor CX0KKwllbHNlCisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklk OworCisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwlzdmFy LT5wcmV2X3ZhbHVlID0gTlVMTDsKKwogCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKIAogCXN2YXIt Pmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKQEAgLTY3Niw2 ICs4MzIsNjkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZh cmlkLCBib29sIGlzX3dyaXRlKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCisvKgorICog VHJ5IHRvIHJlbW92ZSBhbGwgcHJldmlvdXMgdmVyc2lvbnMgcmVsYXRlZCB0byByZXZlcnRlZCB0 cmFuc2FjdGlvbnMuCisgKiBSZXR1cm5zIHRydWUsIHdoZW4gdmFsaWQgdmVyc2lvbiB3YXMgZm91 bmQuCisgKi8KK3N0YXRpYyBib29sCitwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBz dmFyKQoreworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVudF9zdWJpZDsKKwlQcmV2VmFsdWUJICAg KnByZXZfdmFsdWU7CisJYm9vbAkJCWZvdW5kID0gdHJ1ZTsKKworCUFzc2VydChzdmFyLT5pc190 cmFuc2FjdCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2Fj dGlvbklkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3Vi VHJhbnNhY3Rpb25JZCgpOworCisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBjdXJyZW50X3N1 YmlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChzdmFyLT5wdXJnZV9zdWJpZCA9PSBjdXJyZW50 X3N1YmlkKQorCQlyZXR1cm4gdHJ1ZTsKKworCWlmIChTdWJUcmFuc2FjdGlvbklzQWN0aXZlKHN2 YXItPm1vZGlmeV9zdWJpZCkpCisJeworCQlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3Vi aWQ7CisJCXJldHVybiB0cnVlOworCX0KKworCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVl OworCisJd2hpbGUgKHByZXZfdmFsdWUpCisJeworCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBw cmV2X3ZhbHVlOworCisJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1 YlRyYW5zYWN0aW9uSWQgfHwKKwkJCVN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoY3VycmVudF9wdi0+ bW9kaWZ5X3N1YmlkKSkKKwkJeworCQkJc3Zhci0+dmFsdWUgPSBjdXJyZW50X3B2LT52YWx1ZTsK KwkJCXN2YXItPmlzbnVsbCA9IGN1cnJlbnRfcHYtPmlzbnVsbDsKKwkJCXN2YXItPm1vZGlmeV9z dWJpZCA9IGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZDsKKworCQkJcHJldl92YWx1ZSA9IGN1cnJl bnRfcHYtPnByZXZfdmFsdWU7CisJCQlwZnJlZShjdXJyZW50X3B2KTsKKworCQkJZm91bmQgPSB0 cnVlOworCQkJYnJlYWs7CisJCX0KKworCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50 X3B2LT5pc251bGwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUp KTsKKworCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJcGZyZWUoY3Vy cmVudF9wdik7CisJfQorCisJc3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisJc3Zhci0+ cHVyZ2Vfc3ViaWQgPSBjdXJyZW50X3N1YmlkOworCisJcmV0dXJuIGZvdW5kOworfQorCiAvKgog ICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29w aWVkIHRvCiAgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTY4OCw2 ICs5MDcsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZh bHVlLCBib29sIGlzbnVsbCkKIAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9jc3Zh ciwKIAkJCSAgICpfc3ZhcjsKKwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBHZXRD dXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJnZV9z dWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1ZTsK KwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCghaXNu dWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CkBAIC03MjMsNiArOTQ2LDIxIEBAIHNldF9zZXNz aW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJ ZWxzZQogCQlfc3ZhciA9IHN2YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9zdmFy LT5jcmVhdGVfbHNuID09IHN2YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+dHlw aWQgPT0gX3N2YXItPnR5cGlkKTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFyLT50 eXBieXZhbCk7CisJCUFzc2VydChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisKKwkJ c2F2ZV9wcmV2X3ZhbHVlID0gc3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7CisJ CXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZlX3By ZXZfdmFsdWUgPSBmYWxzZTsKKwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFpc251 bGwpCiAJewogCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhT VmFyaWFibGVNZW1vcnlDb250ZXh0KTsKQEAgLTczNCw3ICs5NzIsMzcgQEAgc2V0X3Nlc3Npb25f dmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNl CiAJCW5ld3ZhbCA9IHZhbHVlOwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIp OworCWlmIChzYXZlX3ByZXZfdmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5ld19w cmV2X3ZhbHVlOworCisJCVBHX1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1lbW9y eUNvbnRleHRBbGxvYyhTVmFyaWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6ZW9m KFByZXZWYWx1ZSkpOworCQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2UgbWVt IGZyb20gcGVyc2lzdGVudCBjb250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQorCQkJ CXBmcmVlKERhdHVtR2V0UG9pbnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0K KwkJUEdfRU5EX1RSWSgpOworCisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZhbHVl OworCQluZXdfcHJldl92YWx1ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJldl92 YWx1ZS0+bW9kaWZ5X3N1YmlkID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92YWx1 ZS0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFsdWUg KikgbmV3X3ByZXZfdmFsdWU7CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9zdWJp ZDsKKworCQloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCisJ fQorCWVsc2UKKwkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFsdWUg PT0gTlVMTCk7CiAKIAllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChv aWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAogCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApAQCAtNzQ3LDYgKzEwMTUsOSBAQCBz ZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNu dWxsKQogCiAJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxsOwor CXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJc3Zhci0+cHVyZ2Vfc3ViaWQg PSBwcmV2X3B1cmdlX3N1YmlkOworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOwogCiAJ LyogZG9uJ3QgYWxsb3cgbW9yZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgSU1N VVRBQkxFICovCiAJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKQEAgLTg0OCw2ICsxMTE5LDggQEAg Z2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCWVsc2UKIAkJc3Zhci0+aXNfdmFsaWQg PSBmYWxzZTsKIAorcmVpbml0OgorCiAJLyoKIAkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBp bml0aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CiAJICogYmUgdmFs aWRhdGVkLgpAQCAtODgwLDYgKzExNTMsMjggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZh cmlkKQogCQkJIHZhcmlkKTsKIAl9CiAKKwkvKgorCSAqIFRyYW5zYWN0aW9uYWwgdmFyaWFibGVz IHNob3VsZCBiZSBwdXJnZWQgYmVmb3JlIChyZW1vdmUKKwkgKiB2ZXJzaW9ucyBjcmVhdGVkIGJ5 IHBvc3NpYmx5IHJldmVydGVkIHN1YnRyYW5zYWN0aW9ucykuCisJICovCisJaWYgKHN2YXItPmlz X3RyYW5zYWN0ICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBHZXRDdXJyZW50U3ViVHJhbnNh Y3Rpb25JZCgpICYmCisJCXN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rp b25JZCkKKwl7CisJCWlmICghcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJeworCQkJ LyogZm9yY2UgcmVpbml0ICovCisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJCQkvKgor CQkJICogSW4gbmV4dCBpdGVyYXRpb24gbW9kaWZ5X3N1YmlkIHNob3VsZCBiZQorCQkJICogSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQgb3IgY3VycmVudCBzdWJpZCwKKwkJCSAqIHNvIHRoZXJlIGlz IG5vdCByaXNrIG9mIGluZmluaXR5IGN5Y2xlLgorCQkJICovCisJCQlnb3RvIHJlaW5pdDsKKwkJ fQorCX0KKwogCS8qIGVuc3VyZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUgY29y cmVjdCBkb21haW4gKi8KIAlpZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4 IDU5NTFkODIzM2MuLmFkNjZlYjQ1MGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjY4LDcgKzY2OCw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0b3JfbnVs bF9jbGF1c2Vfb3B0CiAJCQkJanNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQK IAotJXR5cGUgPGJvb2xlYW4+CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZQorJXR5cGUgPGJvb2xl YW4+CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZSBPcHRUcmFuc2FjdGlvbmFsCiAKIC8qCiAgKiBO b24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJm bGV4IiBsZXhlci4KQEAgLTc3Myw3ICs3NzMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog CVNVQlNDUklQVElPTiBTVUJTVFJJTkcgU1VQUE9SVCBTWU1NRVRSSUMgU1lTSUQgU1lTVEVNX1Ag U1lTVEVNX1VTRVIKIAogCVRBQkxFIFRBQkxFUyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdF VCBURU1QIFRFTVBMQVRFIFRFTVBPUkFSWSBURVhUX1AgVEhFTgotCVRJRVMgVElNRSBUSU1FU1RB TVAgVE8gVFJBSUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNGT1JNCisJVElFUyBUSU1FIFRJTUVTVEFN UCBUTyBUUkFJTElORyBUUkFOU0FDVElPTiBUUkFOU0FDVElPTkFMIFRSQU5TRk9STQogCVRSRUFU IFRSSUdHRVIgVFJJTSBUUlVFX1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAK QEAgLTUyNDAsMzEgKzUyNDAsMzMgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0 VGVtcCBPcHRJbW11dGFibGUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1l IG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RF bmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1t dXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0 ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0 aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0 ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJJDUtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4t PmlzX2ltbXV0YWJsZSA9ICQzOwotCQkJCQluLT52YXJpYWJsZSA9ICQ1OwotCQkJCQluLT50eXBl TmFtZSA9ICQ3OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDg7Ci0J CQkJCW4tPm5vdF9udWxsID0gJDk7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTA7Ci0JCQkJCW4tPlhh Y3RFbmRBY3Rpb24gPSAkMTE7CisJCQkJCSQ2LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQlu LT5pc19pbW11dGFibGUgPSAkNDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+ dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVz ZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMDsKKwkJCQkJ bi0+ZGVmZXhwciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJbi0+ aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJ fCBDUkVBVEUgT3B0VGVtcCBPcHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVs bCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBP cHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVY SVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9w dE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsK IAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFy U3RtdCk7Ci0JCQkJCSQ4LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFi bGUgPSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAkODsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkMTA7 Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTE7Ci0JCQkJCW4tPm5v dF9udWxsID0gJDEyOwotCQkJCQluLT5kZWZleHByID0gJDEzOwotCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDE0OworCQkJCQkkOS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1t dXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxl ID0gJDk7CisJCQkJCW4tPnR5cGVOYW1lID0gJDExOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENv bGxhdGVDbGF1c2UgKikgJDEyOworCQkJCQluLT5ub3RfbnVsbCA9ICQxMzsKKwkJCQkJbi0+ZGVm ZXhwciA9ICQxNDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNTsKIAkJCQkJbi0+aWZfbm90 X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01MjkyLDYg KzUyOTQsMTIgQEAgT3B0SW1tdXRhYmxlOiBJTU1VVEFCTEUJCQkJCQkJCXsgJCQgPSB0cnVlOyB9 CiAJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKK09wdFRyYW5z YWN0aW9uYWw6CisJCQlUUkFOU0FDVElPTgkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgVFJB TlNBQ1RJT05BTAkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7 ICQkID0gZmFsc2U7IH0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRF UiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTE4MTA4LDYgKzE4MTE2 LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBURVhUX1AKIAkJCXwgVElFUwogCQkJfCBU UkFOU0FDVElPTgorCQkJfCBUUkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklH R0VSCiAJCQl8IFRSVU5DQVRFCkBAIC0xODc1Niw2ICsxODc2NSw3IEBAIGJhcmVfbGFiZWxfa2V5 d29yZDoKIAkJCXwgVElNRVNUQU1QCiAJCQl8IFRSQUlMSU5HCiAJCQl8IFRSQU5TQUNUSU9OCisJ CQl8IFRSQU5TQUNUSU9OQUwKIAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSRUFUCiAJCQl8IFRSSUdH RVIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IDBkYzk4ZmVkYjYuLmE0NGMzYmNlODQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpA QCAtNTQ0Miw2ICs1NDQyLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJ aV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11 dGFibGU7CisJaW50CQkJaV92YXJpc3RyYW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJ CWlfYWNsZGVmYXVsdDsKIAlpbnQJCQlpLApAQCAtNTQ2Niw2ICs1NDY3LDcgQEAgZ2V0VmFyaWFi bGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxu IgogCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJp c2ltbXV0YWJsZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJ ICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRl ZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJ ICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBA IC01NDg4LDYgKzU0OTAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNv bGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwg PSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZu dW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1i ZXIocmVzLCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMs ICJ2YXJvd25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAt NTUxNiw2ICs1NTE5LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9b aV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlv bikpOwogCQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cm5vdG51bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZh cmlzdHJhbnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAn dCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU2Myw2ICs1NTY3LDcgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAljb25zdCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247 CiAJY29uc3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2Fj dDsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTU4MCwx MiArNTU4NSwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJ bmZvICp2YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2 YXJub3RudWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmlu Zm8tPnZhcmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9 IHZhcmluZm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZh cm5hbWUpOwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAl cyBBUyAlcyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1l KTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMg JXMiLAorCQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwg dmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oCmluZGV4IGVhNGQ3MzdmM2MuLjIyMGY2NmE1N2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE5LDYg KzcxOSw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljb25zdCBjaGFyICpyb2xu YW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICovCiAJYm9vbAkJdmFybm90 bnVsbDsKIAlib29sCQl2YXJpc2ltbXV0YWJsZTsKKwlib29sCQl2YXJpc3RyYW5zYWN0OwogfSBW YXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDQ3Y2I1OTM1 NmUuLmIzOWJkZGQzZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDc3LDYgKzQw NzcsNDIgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFRSQU5TQUNUSU9O QUwgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJ Y2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+ IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIGR1 bXBfdGVzdC52YXJpYWJsZTggQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNS RUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTggQVMgaW50ZWdl cjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hl bWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsK KwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVt ZW50ICAgID0+IDEsCisJCX0sCisJfSwKKworCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFC TEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJ Y2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+ IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBW QVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU5IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIv XgorCQkJXFFDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0 LnZhcmlhYmxlOSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMs CisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAor CQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJ CQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBW SUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwg PT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNjI0ZThkOWE5 ZS4uMzRiMWQ3YzllYyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNDgsNyArNTI0OCw3IEBAIGxpc3RWYXJpYWJs ZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBi dWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7 CkBAIC01MjcxLDYgKzUyNzEsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZh cm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBD QVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04g Q09NTUlUIERST1AnXG4iCkBAIC01MjgzLDYgKzUyODQsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVy IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9v cCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNzdhMzQx YzMzMi4uNTU3NDE1YWZlMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5p bi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTMwNSw2ICsxMzA1 LDggQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7 CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICovCiAJeyJURVhUIFNFQVJDSCIsIE5V TEwsIE5VTEwsIE5VTEx9LAogCXsiVFJBTlNGT1JNIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwg VEhJTkdfTk9fQUxURVJ9LAorCXsiVFJBTlNBQ1RJT05BTCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5V TEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVFJBTlNB Q1RJT05BTAorCQkJCQkJCQkJCQkJCQkJCQkJCQkqIFZBUklBQkxFIC4uLiAqLwogCXsiVFJJR0dF UiIsICJTRUxFQ1QgdGduYW1lIEZST00gcGdfY2F0YWxvZy5wZ190cmlnZ2VyIFdIRVJFIHRnbmFt ZSBMSUtFICclcycgQU5EIE5PVCB0Z2lzaW50ZXJuYWwifSwKIAl7IlRZUEUiLCBOVUxMLCBOVUxM LCAmUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzfSwKIAl7IlVOSVFVRSIsIE5VTEwsIE5VTEws IE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVB VEUgVU5JUVVFCkBAIC0zOTQ3LDggKzM5NDksMTEgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJfQogLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lk ZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVB VEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUi LCAiVFJBTlNBQ1RJT058VFJBTlNBQ1RJT05BTCIpKQorCQlDT01QTEVURV9XSVRIKCJJTU1VVEFC TEUiLCAiVkFSSUFCTEUiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklB QkxFIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZB UklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlRSQU5TQUNUSU9OfFRSQU5T QUNUSU9OQUwiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiSU1N VVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwog CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCA3N2YyYzUzNDc5Li40MTRmNzg3YTY3IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC02Miw2ICs2Miw5IEBAIENBVEFMT0cocGdfdmFyaWFi bGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwog CWJvb2wJCXZhcmlzaW1tdXRhYmxlIEJLSV9ERUZBVUxUKGYpOwogCisJLyogc3VwcG9ydHMgdHJh bnNhY3Rpb25zICovCisJYm9vbAkJdmFyaXN0cmFuc2FjdCBCS0lfREVGQVVMVChmKTsKKwogCS8q IGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJL SV9ERUZBVUxUKG4pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYzRmZTI5YTUwZC4uOTdl ZDg0NWUwNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ5MSw2ICszNDkxLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkv KiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCiAJYm9vbAkJbm90X251bGw7CQkv KiBkaXNhbGxvdyBudWxscyAqLwogCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cg Y2hhbmdlcyAqLworCWJvb2wJCWlzX3RyYW5zYWN0OwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMg Ki8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJ WGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVT ZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBi L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBhZWZlNTFmMzM1Li4xMjVlYjgxOWI3 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00NTUsNiArNDU1LDcgQEAgUEdfS0VZV09SRCgidGltZXN0 YW1wIiwgVElNRVNUQU1QLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgidG8iLCBUTywgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFp bGluZyIsIFRSQUlMSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgidHJhbnNhY3Rpb24iLCBUUkFOU0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQorUEdfS0VZV09SRCgidHJhbnNhY3Rpb25hbCIsIFRSQU5TQUNUSU9OQUwsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zZm9ybSIsIFRSQU5TRk9S TSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJlYXQiLCBU UkVBVCwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaWdnZXIi LCBUUklHR0VSLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dAppbmRleCBlMTYzNWY2ODZjLi5kYTlmNGE3MDMwIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIx Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAg ICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVs bGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFj Y2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlw dGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBm ICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIx IFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlv bic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlv biB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAg fCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9u YWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAg QWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192 YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAg ICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkg QEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz Ci0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwg TXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJh bnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0t LSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAg cm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CkBAIC02NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2 ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBN dXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFu c2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0t Ky0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCBy b3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNj aGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBz ZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25h bCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0 ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGY5MDI4M2Fk MjAuLjU3YjA2YjdiODMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CkBAIC0xMDAsMTEgKzEwMCwxMSBAQCBTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owog U0VUIFJPTEUgVE8gREVGQVVMVDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUg ICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFi bGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAg QWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tCi0gc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zh cmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRp b24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNh Y3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAg ICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdl ciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAg ICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIx OwpAQCAtMTkwMiwzICsxOTAyLDEwMyBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiBF UlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFC TEUKIERST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMK K0NSRUFURSBUUkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworQkVHSU47 CisgIExFVCB0diA9IDEwMDsKKyAgU0VMRUNUIHR2OworIHR2ICAKKy0tLS0tCisgMTAwCisoMSBy b3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAwCisoMSByb3cpCisK K0xFVCB0diA9IDEwMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworU0VMRUNU IHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYg PSAwOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7 CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gdGVzdCBz dWJ0cmFuc2FjdGlvbnMKK0JFR0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBM RVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEw OworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93 KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93 KQorCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsK K1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1Qg dHY7CisgdHYgCistLS0tCisgIDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNL IFRPIHgxOworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworQ09NTUlU OworU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg dHY7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggOGEz YWUyOGNhNi4uYjAxNDk1MTNmZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTMzNSwzICsxMzM1LDYxIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEg PSAzMDsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IHRyYW5zYWN0aW9uYWwgdmFy aWFibGVzCitDUkVBVEUgVFJBTlNBQ1RJT04gVkFSSUFCTEUgdHYgQVMgaW50IERFRkFVTFQgMDsK KworQkVHSU47CisgIExFVCB0diA9IDEwMDsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisKK1NF TEVDVCB0djsKKworTEVUIHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDA7CitDT01N SVQ7CisKK1NFTEVDVCB0djsKKworQkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsK K1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKKy0tIHRlc3Qgc3VidHJhbnNhY3Rpb25zCisKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAg TEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworUk9MTEJBQ0s7CisK K1NFTEVDVCB0djsKKworQkVHSU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExF VCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsK KyAgU0VMRUNUIHR2OworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1Qg dHY7CitDT01NSVQ7CisKK1NFTEVDVCB0djsKKworRFJPUCBWQVJJQUJMRSB0djsKLS0gCjIuNDcu MQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0021-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20241210-0021-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvp40 RnJvbSAzOGYwOGYzYzZmMzNlMDgzNjUwY2MxYWYxZDc5N2Y2MmVhZTlmMmJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIx LzIxXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 Li43YTNhNGVhYmUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2LDYgKzEwNiwx NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9u Pi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBs YWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tdmFyaWFibGU9 PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2Vh YmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11bHRpcGxlIHNl c3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBtdWx0aXBsZSA8 b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlz dGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg ICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4t LWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jl c3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggODhhZTM5ZDkzOC4u NTIxODBjOTdkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC0xMDYsNiArMTA2LDcgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsidHJpZ2dlciIsIDEsIE5VTEwsICdUJ30sCiAJCXsi dXNlLWxpc3QiLCAxLCBOVUxMLCAnTCd9LAogCQl7InVzZXJuYW1lIiwgMSwgTlVMTCwgJ1UnfSwK KwkJeyJ2YXJpYWJsZSIsIDEsIE5VTEwsICdBJ30sCiAJCXsidmVyYm9zZSIsIDAsIE5VTEwsICd2 J30sCiAJCXsic2luZ2xlLXRyYW5zYWN0aW9uIiwgMCwgTlVMTCwgJzEnfSwKIApAQCAtMTU2LDcg KzE1Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCi0Jd2hpbGUg KChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6 UDpSc1M6dDpUOlU6dndXeDEiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3Ys ICJBOmFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6UDpSc1M6dDpUOlU6dndXeDEiLAogCQkJCQkJ CWNtZG9wdHMsIE5VTEwpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoYykKQEAgLTE2NCw2ICsxNjUs MTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQljYXNlICdhJzoJCQkvKiBEdW1w IGRhdGEgb25seSAqLwogCQkJCWRhdGFfb25seSA9IHRydWU7CiAJCQkJYnJlYWs7CisJCQljYXNl ICdBJzoJCQkvKiB2QXJpYWJsZSAqLworCQkJCW9wdHMtPnNlbFR5cGVzID0gMTsKKwkJCQlvcHRz LT5zZWxWYXJpYWJsZSA9IDE7CisJCQkJc2ltcGxlX3N0cmluZ19saXN0X2FwcGVuZCgmb3B0cy0+ dmFyaWFibGVOYW1lcywgb3B0YXJnKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ2MnOgkJCS8qIGNs ZWFuIChpLmUuLCBkcm9wKSBzY2hlbWEgcHJpb3IgdG8gY3JlYXRlICovCiAJCQkJb3B0cy0+ZHJv cFNjaGVtYSA9IDE7CiAJCQkJYnJlYWs7CkBAIC00NjgsNiArNDc0LDcgQEAgdXNhZ2UoY29uc3Qg Y2hhciAqcHJvZ25hbWUpCiAKIAlwcmludGYoXygiXG5PcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBy ZXN0b3JlOlxuIikpOwogCXByaW50ZihfKCIgIC1hLCAtLWRhdGEtb25seSAgICAgICAgICAgICAg cmVzdG9yZSBvbmx5IHRoZSBkYXRhLCBubyBzY2hlbWFcbiIpKTsKKwlwcmludGYoXygiICAtQSwg LS12YXJpYWJsZT1OQU1FICAgICAgICAgIHJlc3RvcmUgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZVxu IikpOwogCXByaW50ZihfKCIgIC1jLCAtLWNsZWFuICAgICAgICAgICAgICAgICAgY2xlYW4gKGRy b3ApIGRhdGFiYXNlIG9iamVjdHMgYmVmb3JlIHJlY3JlYXRpbmdcbiIpKTsKIAlwcmludGYoXygi ICAtQywgLS1jcmVhdGUgICAgICAgICAgICAgICAgIGNyZWF0ZSB0aGUgdGFyZ2V0IGRhdGFiYXNl XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWUsIC0tZXhpdC1vbi1lcnJvciAgICAgICAgICBleGl0IG9u IGVycm9yLCBkZWZhdWx0IGlzIHRvIGNvbnRpbnVlXG4iKSk7Ci0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0018-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20241210-0018-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvqt3 RnJvbSBlYjgxNzZmMjc3NDIzMjViMTI4NzcyZDNmMzAzYmJiYTY4YjI0OGZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIxXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA4ZjMyNTM5MmU1Li44MzE3MDU5Zjg3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC00NzQzLDggKzQ3NDMsNyBAQCBpbmxpbmVfZnVu Y3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJ cXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJ cXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRh cmdldExpc3QpICE9IDEpIHx8Ci0JCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJ KGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CkBAIC00OTQ4LDIxICs0OTQ3LDM5IEBAIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNfbXV0 YXRvcihOb2RlICpub2RlLAogewogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwor CisKKwkvKgorCSAqIFNRTCBmdW5jdGlvbnMgY2FuIGNvbnRhaW4gdHdvIGRpZmZlcmVudCBraW5k IG9mIHBhcmFtcy4gVGhlIG5vZGVzIHdpdGgKKwkgKiBwYXJhbWtpbmQgUEFSQU1fRVhURVJOIGFy ZSByZWxhdGVkIHRvIGZ1bmN0aW9uJ3MgYXJndW1lbnRzIChhbmQgc2hvdWxkCisJICogYmUgcmVw bGFjZWQgaW4gdGhpcyBzdGVwKSwgYmVjYXVzZSB0aGlzIGlzIGhvdyB3ZSBhcHBseSB0aGUgZnVu Y3Rpb24ncworCSAqIGFyZ3VtZW50cyBmb3IgYW4gZXhwcmVzc2lvbi4KKwkgKgorCSAqIFRoZSBu b2RlcyB3aXRoIHBhcmFta2luZCBQQVJBTV9WQVJJQUJMRSBhcmUgcmVsYXRlZCB0byB1c2FnZSBv ZiBzZXNzaW9uCisJICogdmFyaWFibGVzLiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgcGFzc2VkIHRvIGV4cHJlc3Npb24KKwkgKiBieSBleHByZXNzaW9uIGFyZ3VtZW50 cywgc28gaXQgc2hvdWxkIG5vdCBiZSByZXBsYWNlZCBoZXJlIGJ5CisJICogZnVuY3Rpb24ncyBh cmd1bWVudHMuCisJICovCiAJaWYgKElzQShub2RlLCBQYXJhbSkpCiAJewogCQlQYXJhbQkgICAq cGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAotCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJB TV9FWFRFUk4pCisJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYVEVSTiAmJgorCQkJ cGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9WQVJJQUJMRSkKIAkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIHBhcmFta2luZDogJWQiLCAoaW50KSBwYXJhbS0+cGFyYW1raW5kKTsKLQkJaWYgKHBh cmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQgPiBjb250ZXh0LT5uYXJncykKLQkJ CWVsb2coRVJST1IsICJpbnZhbGlkIHBhcmFtaWQ6ICVkIiwgcGFyYW0tPnBhcmFtaWQpOwogCi0J CS8qIENvdW50IHVzYWdlIG9mIHBhcmFtZXRlciAqLwotCQljb250ZXh0LT51c2Vjb3VudHNbcGFy YW0tPnBhcmFtaWQgLSAxXSsrOworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCisJCXsKKwkJCWlmIChwYXJhbS0+cGFyYW1pZCA8PSAwIHx8IHBhcmFtLT5wYXJhbWlkID4g Y29udGV4dC0+bmFyZ3MpCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBw YXJhbS0+cGFyYW1pZCk7CiAKLQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJn IGFuZCByZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCi0JCS8qIFdlIGRvbid0IG5lZWQgdG8g Y29weSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLwotCQlyZXR1cm4gbGlz dF9udGgoY29udGV4dC0+YXJncywgcGFyYW0tPnBhcmFtaWQgLSAxKTsKKwkJCS8qIENvdW50IHVz YWdlIG9mIHBhcmFtZXRlciAqLworCQkJY29udGV4dC0+dXNlY291bnRzW3BhcmFtLT5wYXJhbWlk IC0gMV0rKzsKKworCQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJnIGFuZCBy ZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCisJCQkvKiBXZSBkb24ndCBuZWVkIHRvIGNvcHkg YXQgdGhpcyB0aW1lIChpdCdsbCBnZXQgZG9uZSBsYXRlcikgKi8KKwkJCXJldHVybiBsaXN0X250 aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQl9CiAJfQogCXJldHVybiBl eHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBzdWJzdGl0dXRlX2FjdHVhbF9wYXJhbWV0ZXJz X211dGF0b3IsIGNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCA2Mzc2M2FjNGVkLi4zYzkxMGZjMTMxIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTg1 LDcgKzE4NSw2IEBAIFNFTEVDVCB2YXIxOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBTRUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTI5 MiwxMCArMjkxLDEwIEBAIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5s aW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3Fs ZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorICAgT3V0cHV0OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIy IHx8ICcsICc6OnRleHQpIHx8ICdIZWxsbyc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7Ci0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0017-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20241210-0017-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvr44 RnJvbSAzZDZjOGQ2NzYyNjMzMmRhMDE1MDJhMWM5OThkODI5ZGY2YTk5YWU2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE3 LzIxXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgICB8ICAzICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5j ICAgICAgICAgICAgICB8IDEyICsrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAg ICAgICAgICAgICB8ICA4ICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyAgICAgICAg ICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAg fCAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgICB8ICA0ICsr CiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAgICAgICAgICAgICB8IDU1ICsrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyAgICAgICAgICAg ICB8IDI0ICsrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAg ICAgIHwgMjggKysrKysrKysrKystCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3ds aXN0LmggICB8ICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5o IHwgIDEgKwogc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaCAgICAgICAgICAgICAgfCAxMiAr KysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgMSArCiAx MyBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMKaW5kZXggYzFkOGZkMDhjNi4uNzI5MDY5OTQyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5 OTEsNiArMjk5MSw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBS QVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2ln bm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQ R1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7 CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQg XCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYjIyYzIx N2FmNC4uNDkwZWJjNjM2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0yMDEyLDYgKzIwMTIsMTgg QEAgdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAK IAlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdT UUwgd2UgZG9uJ3Qgd2FudCB0byBleGVjdXRlIExFVCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAq IGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlzYWxsb3cgdG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNp bXBsZQorCSAqIGV4cHJlc3Npb24uIFNvIGZvciBQTC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgs IGFuZCB3ZSByZXR1cm4gU0VMRUNULgorCSAqIFRoZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4 ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMgZGlycmVjdGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaW5zaWRlIFBML3BnU1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4g VGhpcworCSAqIGlzIGV4dHJhIGNvZGUsIGV4dHJhIHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBn ZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcworCSAqIHRvbyBhdHRyYWN0aXZlLgorCSAqLworCWlmIChz dG10LT5wbHBnc3FsX21vZGUpCisJCXJldHVybiBxdWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUg Y29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KIAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7 CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMjZk MjI3ZjkyZC4uNTk1MWQ4MjMzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC04MTcsNiArODE3LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjEKICV0b2tl bgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKKyV0 b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8qIFByZWNlZGVuY2U6IGxvd2VzdCB0byBoaWdo ZXN0ICovCkBAIC05NDgsNiArOTQ5LDEzIEBAIHBhcnNlX3RvcGxldmVsOgogCQkJCXBnX3l5Z2V0 X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9CiAJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0 bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10 CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBscGdzcWxf bW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0K KwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsK IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzLi5mOTQzMGEzMjkxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJhd19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBS YXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVf UExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9Q TFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BM UEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0VfUExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FM X0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVfbG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCA0ZWM4MzQwNmZkLi5jNGZlMjlhNTBkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC0yMTI0LDYgKzIxMjQsOCBAQCB0eXBlZGVmIHN0cnVjdCBMZXRTdG10CiAJTm9k ZVRhZwkJdHlwZTsKIAlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlhYmxlICovCiAJ Tm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlib29sCQlwbHBnc3Fs X21vZGU7CS8qIHRydWUsIHdoZW4gY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkCisJCQkJCQkJCSAq IChwYXJzZWQpIGJ5IHBscGdzcWwgcnVudGltZSAqLwogCWludAkJCWxvY2F0aW9uOwogfSBMZXRT dG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VyLmgKaW5kZXggYmUxODRlYzUwNi4uZWZiYzc2ZjBhZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO bjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4g YSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdp dmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1 bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1l bnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3Rt dCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBl bnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJ R04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVU LAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBH VUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGUzMTIwNmU3ZjQuLjg1N2ZmMDAwMjYgMTAwNjQ0 Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90dXBjb252 ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyMyw2ICszMjQsOCBAQCBzdGF0 aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xs YmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9y b2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsKIAogc3RhdGljIHZv aWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTE2LDYgKzIxMTksMTAgQEAgZXhlY19z dG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykKIAkJCQlyYyA9IGV4 ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNf c3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJlbnQsIHNpbmNlIHRo aXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10ID0gc2F2ZV9lc3Rt dDsKQEAgLTQ5OTksNiArNTAwNiw1NCBAQCBleGVjX3N0bXRfcm9sbGJhY2soUExwZ1NRTF9leGVj c3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQogCXJldHVybiBQTFBH U1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRfbGV0CQkJRXZhbHVh dGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAorZXhlY19zdG10X2xl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQorewor CWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0eXBtb2Q7CisJRGF0 dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNvdXJjZXM7CisJQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19ldmFsX2V4cHIoZXN0 YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGwsCisJCQkJCQkgICAm dmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkg KiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRv IGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQsIGJlY2F1c2UgaXQn cyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVk IHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0CisJICogYW55IGFs bG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2YXJpZCBmcm9tIFF1 ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMgPSBTUElfcGxhbl9n ZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0X2xlbmd0aChwbGFu c291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5z b3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFuc291cmNlID0gKENh Y2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlmIChsaXN0X2xlbmd0 aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRlbWVudCIpOworCisJ dmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVyeV9saXN0KS0+cmVz dWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsKKworCVNldFNlc3Np b25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKKworCXJl dHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9l eHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQgaW50byBhIHZhcmlhYmxlLgogICogLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBlZWI3YzRkN2MwLi4xYjM5MzUxZGI3IDEw MDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYworKysgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZnVuY3MuYwpAQCAtMjg4LDYgKzI4OCw4IEBAIHBscGdzcWxfc3RtdF90eXBl bmFtZShQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCQlyZXR1cm4gIkNPTU1JVCI7CiAJCWNhc2UgUExQ R1NRTF9TVE1UX1JPTExCQUNLOgogCQkJcmV0dXJuICJST0xMQkFDSyI7CisJCWNhc2UgUExQR1NR TF9TVE1UX0xFVDoKKwkJCXJldHVybiAiTEVUIjsKIAl9CiAKIAlyZXR1cm4gInVua25vd24iOwpA QCAtMzcwLDYgKzM3Miw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfcGVyZm9ybShQTHBnU1FMX3N0bXRf cGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NhbGwoUExwZ1NRTF9zdG10X2NhbGwg KnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9jb21taXQoUExwZ1NRTF9zdG10X2NvbW1pdCAqc3Rt dCk7CiBzdGF0aWMgdm9pZCBmcmVlX3JvbGxiYWNrKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3Rt dCk7CitzdGF0aWMgdm9pZCBmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0YXRp YyB2b2lkIGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpOwogCiAKQEAgLTQ1OSw2ICs0NjIs OSBAQCBmcmVlX3N0bXQoUExwZ1NRTF9zdG10ICpzdG10KQogCQljYXNlIFBMUEdTUUxfU1RNVF9S T0xMQkFDSzoKIAkJCWZyZWVfcm9sbGJhY2soKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10 KTsKIAkJCWJyZWFrOworCQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQlmcmVlX2xldCgoUExw Z1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBjbWRfdHlwZTogJWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJCQli cmVhazsKQEAgLTcxMyw2ICs3MTksMTIgQEAgZnJlZV9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRk aWFnICpzdG10KQogewogfQogCitzdGF0aWMgdm9pZAorZnJlZV9sZXQoUExwZ1NRTF9zdG10X2xl dCAqc3RtdCkKK3sKKwlmcmVlX2V4cHIoc3RtdC0+ZXhwcik7Cit9CisKIHN0YXRpYyB2b2lkCiBm cmVlX2V4cHIoUExwZ1NRTF9leHByICpleHByKQogewpAQCAtODE1LDYgKzgyNyw3IEBAIHN0YXRp YyB2b2lkIGR1bXBfcGVyZm9ybShQTHBnU1FMX3N0bXRfcGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMg dm9pZCBkdW1wX2NhbGwoUExwZ1NRTF9zdG10X2NhbGwgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVt cF9jb21taXQoUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX3Jv bGxiYWNrKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgdm9pZCBkdW1wX2xl dChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfZXhwcihQTHBnU1FM X2V4cHIgKmV4cHIpOwogCiAKQEAgLTkxNCw2ICs5MjcsOSBAQCBkdW1wX3N0bXQoUExwZ1NRTF9z dG10ICpzdG10KQogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCWR1bXBfcm9sbGJh Y2soKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIFBM UEdTUUxfU1RNVF9MRVQ6CisJCQlkdW1wX2xldCgoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsK KwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBjbWRf dHlwZTogJWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJCQlicmVhazsKQEAgLTE1OTAsNiArMTYwNiwx NCBAQCBkdW1wX2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiAJcHJpbnRmKCJc biIpOwogfQogCitzdGF0aWMgdm9pZAorZHVtcF9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCkK K3sKKwlkdW1wX2luZCgpOworCWR1bXBfZXhwcihzdG10LT5leHByKTsKKwlwcmludGYoIlxuIik7 Cit9CisKIHN0YXRpYyB2b2lkCiBkdW1wX2V4cHIoUExwZ1NRTF9leHByICpleHByKQogewpkaWZm IC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueSBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9ncmFtLnkKaW5kZXggODE4MmNlMjhhYS4uM2YxNTVjNGY4YSAxMDA2NDQKLS0tIGEvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3Jh bS55CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJhbWV0 ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldHlwZSA8c3RtdD4Jc3RtdF9yZXR1cm4g c3RtdF9yYWlzZSBzdG10X2Fzc2VydCBzdG10X2V4ZWNzcWwKICV0eXBlIDxzdG10PglzdG10X2R5 bmV4ZWN1dGUgc3RtdF9mb3Igc3RtdF9wZXJmb3JtIHN0bXRfY2FsbCBzdG10X2dldGRpYWcKICV0 eXBlIDxzdG10PglzdG10X29wZW4gc3RtdF9mZXRjaCBzdG10X21vdmUgc3RtdF9jbG9zZSBzdG10 X251bGwKLSV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3JvbGxiYWNrCisldHlwZSA8c3Rt dD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjayBzdG10X2xldAogJXR5cGUgPHN0bXQ+CXN0bXRf Y2FzZSBzdG10X2ZvcmVhY2hfYQogCiAldHlwZSA8bGlzdD4JcHJvY19leGNlcHRpb25zCkBAIC0z MDcsNiArMzA3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJhbWV0ZXJzKFBMcGdT UUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGtleXdvcmQ+CUtfSU5UTwogJXRva2VuIDxr ZXl3b3JkPglLX0lTCiAldG9rZW4gPGtleXdvcmQ+CUtfTEFTVAorJXRva2VuIDxrZXl3b3JkPglL X0xFVAogJXRva2VuIDxrZXl3b3JkPglLX0xPRwogJXRva2VuIDxrZXl3b3JkPglLX0xPT1AKICV0 b2tlbiA8a2V5d29yZD4JS19NRVJHRQpAQCAtODc2LDYgKzg3Nyw4IEBAIHByb2Nfc3RtdAkJOiBw bF9ibG9jayAnOycKIAkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXwgc3RtdF9yb2xsYmFjawogCQkJ CQkJeyAkJCA9ICQxOyB9CisJCQkJfCBzdG10X2xldAorCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQkJ OwogCiBzdG10X3BlcmZvcm0JOiBLX1BFUkZPUk0KQEAgLTk5Miw2ICs5OTUsMjkgQEAgc3RtdF9h c3NpZ24JCTogVF9EQVRVTQogCQkJCQl9CiAJCQkJOwogCitzdG10X2xldAkJOiBLX0xFVAorCQkJ CQl7CisJCQkJCQlQTHBnU1FMX3N0bXRfbGV0ICpuZXc7CisJCQkJCQlSYXdQYXJzZU1vZGUgcG1v ZGU7CisKKwkJCQkJCXBtb2RlID0gUkFXX1BBUlNFX1BMUEdTUUxfTEVUOworCisJCQkJCQluZXcg PSBwYWxsb2MwKHNpemVvZihQTHBnU1FMX3N0bXRfbGV0KSk7CisJCQkJCQluZXctPmNtZF90eXBl ID0gUExQR1NRTF9TVE1UX0xFVDsKKwkJCQkJCW5ldy0+bGluZW5vICAgPSBwbHBnc3FsX2xvY2F0 aW9uX3RvX2xpbmVubyhAMSk7CisJCQkJCQluZXctPnN0bXRpZCA9ICsrcGxwZ3NxbF9jdXJyX2Nv bXBpbGUtPm5zdGF0ZW1lbnRzOworCisJCQkJCQkvKiBwdXNoIGJhY2sgdGhlIGhlYWQgbmFtZSB0 byBpbmNsdWRlIGl0IGluIHRoZSBzdG10ICovCisJCQkJCQlwbHBnc3FsX3B1c2hfYmFja190b2tl bihLX0xFVCk7CisJCQkJCQluZXctPmV4cHIgPSByZWFkX3NxbF9jb25zdHJ1Y3QoJzsnLCAwLCAw LCAiOyIsCisJCQkJCQkJCQkJCQkJICAgcG1vZGUsCisJCQkJCQkJCQkJCQkJICAgZmFsc2UsIHRy dWUsCisJCQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CisKKwkJCQkJCSQkID0gKFBMcGdTUUxf c3RtdCAqKW5ldzsKKwkJCQkJfQorCQkJCTsKKwogc3RtdF9nZXRkaWFnCTogS19HRVQgZ2V0ZGlh Z19hcmVhX29wdCBLX0RJQUdOT1NUSUNTIGdldGRpYWdfbGlzdCAnOycKIAkJCQkJewogCQkJCQkJ UExwZ1NRTF9zdG10X2dldGRpYWcgKm5ldzsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9r d2xpc3QuaAppbmRleCBkMzM4ZTlmNjM3Li5iZTk0YWE3NTFhIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdzcWwvc3Jj L3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQoImZyb20i LCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIsIEtfSU4p CiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQ R19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1QpCiBQR19L RVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X3VucmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9r d2xpc3QuaAppbmRleCA2NzBiNGNmMGMxLi42MDI2MjhkN2QyIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaApAQCAtNjksNiArNjksNyBAQCBQR19LRVlXT1JEKCJp bmZvIiwgS19JTkZPKQogUEdfS0VZV09SRCgiaW5zZXJ0IiwgS19JTlNFUlQpCiBQR19LRVlXT1JE KCJpcyIsIEtfSVMpCiBQR19LRVlXT1JEKCJsYXN0IiwgS19MQVNUKQorUEdfS0VZV09SRCgibGV0 IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb2ciLCBLX0xPRykKIFBHX0tFWVdPUkQoIm1lcmdlIiwg S19NRVJHRSkKIFBHX0tFWVdPUkQoIm1lc3NhZ2UiLCBLX01FU1NBR0UpCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwu aAppbmRleCA1MGMzYjI4NDcyLi5iYjQwMDYyOWFkIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxwZ3NxbC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEy OCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5cGUKIAlQTFBHU1FMX1NU TVRfQ0FMTCwKIAlQTFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxfU1RNVF9ST0xMQkFDSywK KwlQTFBHU1FMX1NUTVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2 ICs1MjEsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fzc2lnbgogCVBMcGdTUUxf ZXhwciAqZXhwcjsKIH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoKKyAqIExldCBzdGF0ZW1l bnQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAoreworCVBMcGdTUUxfc3Rt dF90eXBlIGNtZF90eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25lZCBpbnQgc3RtdGlkOwor CVBMcGdTUUxfZXhwciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsKKwogLyoKICAqIFBFUkZP Uk0gc3RhdGVtZW50CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMzA1M2Y4MDk3 YS4uZjYwMjYxYjIwOCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE4OTIsNiArMTg5 Miw3IEBAIFBMcGdTUUxfc3RtdF9mb3JxCiBQTHBnU1FMX3N0bXRfZm9ycwogUExwZ1NRTF9zdG10 X2dldGRpYWcKIFBMcGdTUUxfc3RtdF9pZgorUExwZ1NRTF9zdG10X2xldAogUExwZ1NRTF9zdG10 X2xvb3AKIFBMcGdTUUxfc3RtdF9vcGVuCiBQTHBnU1FMX3N0bXRfcGVyZm9ybQotLSAKMi40Ny4x Cgo= --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0019-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20241210-0019-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvql2 RnJvbSAwYTU5NGE0MGQ0MTY2YjgwMDY3ZDZjMDlmMmNiMDllZjk3MDFmYjBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTkvMjFdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAyNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDgg KysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgICAgICAgICAgICB8ICAy ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAgMiAr LQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQgKy0t CiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiArLQog c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysrLS0t LQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAgICAg ICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAg ICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0 ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAgICAg ICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQg ICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAgICAg ICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA4MzM4NTY4MDFiLi5mZWNmMjJiOGI5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyNiw3ICs1MjYsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTVhZTIxMDgwNC4u ZmE5YTMwYmQxMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTI3LDYgKzI3 LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2Rl RnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZW5yLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIK QEAgLTM3MzAsNiArMzczMSwxOSBAQCBlcnJvck1pc3NpbmdSVEUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSYW5nZVZhciAqcmVsYXRpb24pCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJl bGF0aW9uLT5sb2NhdGlvbikpKTsKIH0KIAorLyoKKyAqIHNldCBtZXNzYWdlICJjb2x1bW4gZG9l cyBub3QgZXhpc3QiIG9yICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiCisgKiBp biBkZXBlbmRlbmN5IGlmIGV4cHJlc3Npb24gY29udGV4dCBhbGxvd3Mgc2Vzc2lvbiB2YXJpYWJs ZXMuCisgKi8KK3N0YXRpYyBpbnQKK2NvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBjaGFyICpjb2xuYW1lKQoreworCWlmIChleHByX2tp bmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQlyZXR1 cm4gZXJybXNnKCJjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29s bmFtZSk7CisJZWxzZQorCQlyZXR1cm4gZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwgY29sbmFtZSk7Cit9CisKIC8qCiAgKiBHZW5lcmF0ZSBhIHN1aXRhYmxlIGVycm9yIGFi b3V0IGEgbWlzc2luZyBjb2x1bW4uCiAgKgpAQCAtMzc2NCw3ICszNzc4LDcgQEAgZXJyb3JNaXNz aW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwogCQkJCQkgZXJybXNnKCJjb2x1bW4gJXMu JXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92 YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkJIGVycmRldGFp bCgiVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQgXCIlc1wiLCBidXQgdGhleSBhcmUgaW4gdGFibGVz IHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIs CiAJCQkJCQkJICAgY29sbmFtZSksCiAJCQkJCSAhcmVsbmFtZSA/IGVycmhpbnQoIlRyeSB1c2lu ZyBhIHRhYmxlLXF1YWxpZmllZCBuYW1lLiIpIDogMCwKQEAgLTM3NzQsNyArMzc4OCw3IEBAIGVy cm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1u ICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2co ImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJkZXRh aWwoIlRoZXJlIGlzIGEgY29sdW1uIG5hbWVkIFwiJXNcIiBpbiB0YWJsZSBcIiVzXCIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuIiwKIAkJ CQkJCSAgIGNvbG5hbWUsIHN0YXRlLT5yZXhhY3QxLT5lcmVmLT5hbGlhc25hbWUpLAogCQkJCSBy dGVfdmlzaWJsZV9pZl9sYXRlcmFsKHBzdGF0ZSwgc3RhdGUtPnJleGFjdDEpID8KQEAgLTM3OTIs MTQgKzM4MDYsMTQgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwog CQkJCQkgZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xu YW1lKSA6Ci0JCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xu YW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBj b2xuYW1lKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwog CQkvKiBIYW5kbGUgY2FzZSB3aGVyZSB3ZSBoYXZlIGEgc2luZ2xlIGFsdGVybmF0aXZlIHNwZWxs aW5nIHRvIG9mZmVyICovCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVz LiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zh cmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQ ZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJ CQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3Rf bnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApAQCAtMzgxMyw3ICszODI3LDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhp bnQoIlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIiBv ciB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAogCQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFs aWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlzdF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29s bmFtZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggY2M2M2I0NGJiYS4uOWQ0YWRj MGY1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc5LDcgKzc3OSw5IEBAIHRy YW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAo IXR5cHJlbGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21w b3NpdGUgdHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlw ZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24g dG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBu b3QgYSBjb21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJ CQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODgsNyArNzkwLDkgQEAgdHJhbnNmb3Jt QXNzaWdubWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0g PT0gSW52YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3Vj aCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fu bm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBi ZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJ CQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVz ZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJW YWwobiksIHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkp LAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9leHByLmgKaW5kZXggMDk0OGEwYjFiNy4uZDFmMmU1OWQyZCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCkBAIC0yNCw0ICsyNCw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luCiAK IGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQ YXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJy YXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0Cmlu ZGV4IGFkNjBlMGU4YmUuLmMxYWI5ZmQ3ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKQEAgLTQxLDcgKzQxLDcgQEAgTk9USUNFOiAgYSA9IHsi KCwxMSkifSwgYVsxXS5pID0gMTEKIC0tIHBlcmhhcHMgdGhpcyBvdWdodCB0byB3b3JrLCBidXQg Zm9yIG5vdyBpdCBkb2Vzbid0OgogZG8gJCQgZGVjbGFyZSBhIGNvbXBsZXhbXTsKIGJlZ2luIGFb MToyXS5pIDo9IGFycmF5WzExLDEyXTsgcmFpc2Ugbm90aWNlICdhID0gJScsIGE7IGVuZCQkOwot RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gImEiIGJlY2F1c2Ug aXRzIHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitFUlJPUjogIGNhbm5v dCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgYmVjYXVzZSBp dHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKIExJTkUgMTogYVsxOjJd LmkgOj0gYXJyYXlbMTEsMTJdCiAgICAgICAgIF4KIFFVRVJZOiAgYVsxOjJdLmkgOj0gYXJyYXlb MTEsMTJdCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91 dAppbmRleCA2OTc0YzhmNGE0Li4zOTcwYWM3MjFjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggZWNhYzY0ZmNmYi4uOGJkMmIzOThiZCAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZhaWwsIGJ1dCBub3QgY3Jhc2gKIFNFTEVD VCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAgICAgICAgIF4KIFFVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAppbmRl eCAzNWNjNmU2MmFhLi40OTdjZDM4MTg5IDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVk L3BsdGNsX3F1ZXJpZXMub3V0CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmll cy5vdXQKQEAgLTQ1MCwxMiArNDUwLDEyIEBAIENPTlRFWFQ6ICB3aGlsZSBleGVjdXRpbmcKICJf X1BMVGNsX3Byb2NfdGNsX2V2YWxfdGV4dCBzcGlfcHJlcGFyZVwgYVwgXCJiXCBce1wiIgogaW4g UEwvVGNsIGZ1bmN0aW9uIHRjbF9ldmFsKHRleHQpCiBzZWxlY3QgdGNsX2Vycm9yX2hhbmRsaW5n X3Rlc3QoJHRjbCRzcGlfcHJlcGFyZSAic2VsZWN0IG1vbyIgW10kdGNsJCk7Ci0gICAgICAgdGNs X2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBTUUxTVEFURTogNDI3MDMgICAgICAgICAgICAgICAgICAgICArCi0gY29u ZGl0aW9uOiB1bmRlZmluZWRfY29sdW1uICAgICAgICAgKwotIGN1cnNvcl9wb3NpdGlvbjogOCAg ICAgICAgICAgICAgICAgICsKLSBtZXNzYWdlOiBjb2x1bW4gIm1vbyIgZG9lcyBub3QgZXhpc3Qr CisgICAgICAgICAgICAgdGNsX2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTUUxTVEFU RTogNDI3MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgY29uZGl0aW9uOiB1 bmRlZmluZWRfY29sdW1uICAgICAgICAgICAgICAgICAgICAgKworIGN1cnNvcl9wb3NpdGlvbjog OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBtZXNzYWdlOiBjb2x1bW4gb3IgdmFy aWFibGUgIm1vbyIgZG9lcyBub3QgZXhpc3QrCiAgc3RhdGVtZW50OiBzZWxlY3QgbW9vCiAoMSBy b3cpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAppbmRleCBlOWEyNTRiY2QxLi5kODg0OGQ1NTVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsxMCw3IEBAIHRl c3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6IFNFTEVDVCBt eXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRpbmcgcGVybXV0 YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rl c3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0ZXAgZHJvcDog RFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNv bHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi bXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0YXJ0aW5nIHBl cm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDIyMTJjOGRiYjUuLjM1YjNhM2JkMzAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CkBAIC0xMjk1LDE5 ICsxMjk1LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgKiBm cm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNj MS4qIGZyb20gYXRhY2MxOwpAQCAtMTMxNyw3ICsxMzE3LDcgQEAgc2VsZWN0IGF0YWNjMS4qIGZy b20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9tIGF0YWNjMTsKLUVSUk9SOiAgY29s dW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpAQCAtMTMzMSwxNSArMTMzMSwxNSBA QCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhLGIsYyxkIGZy b20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEsYixj LGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3 aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCBhdGFjYzEu Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwpAQCAtMTM0NywxMSAr MTM0NywxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgYXRhY2MxLiIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjog IGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4u Li4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBh dGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMTsKLUVSUk9SOiAg Y29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzYwLDcgKzEzNjAsNyBAQCBFUlJPUjogIGNvbHVt biAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRl IGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzY4LDcgKzEzNjgsNyBAQCBFUlJPUjogIGNv bHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgb2YgcmVsYXRpb24gImF0YWNjMSIg ZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUg YXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAz OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIg d2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMKQEAgLTE0MTYsMTEgKzE0MTYsMTEg QEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4u Li4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBERUxF VEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiYSIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZGVsZXRlIGZyb20g YXRhY2MxOwpAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc2VsZWN0IGYxIGZyb20gYzE7CiAKIGFsdGVy IHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNv bHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAg ICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJj MS5mMiIuCkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBFUlJPUjogIGNhbm5vdCBkcm9wIGluaGVyaXRl ZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBjb2x1bW4gZjE7CiAtLSBjMS5mMSBp cyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9jYWwgZGVmaW5pdGlvbiBmb3IgaXQK IHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFlLi42ODc0ZjVhZTBkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvcHkyLm91dApAQCAtMTYwLDcgKzE2MCw3IEBAIExJTkUgMTogQ09QWSB4IFRPIHN0 ZG91dCBXSEVSRSBhID0gMTsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSA1MDAwNDsKIENP UFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPiA2MDAwMzsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJF IGYgPiA2MDAwMzsKLUVSUk9SOiAgY29sdW1uICJmIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImYiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IENPUFkgeCBmcm9t IHN0ZGluIFdIRVJFIGYgPiA2MDAwMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA9IG1heCh4LmIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9lcnJvcnMub3V0CmluZGV4IDhjNTI3NDc0ZGEuLmU1M2FlNDUxZGYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAgTElORSAxOiBzZWxlY3Qg KiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBuYW1lIGlu IHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRhYmFzZTsKLUVSUk9SOiAg Y29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0eSBkaXN0aW5jdCBsaXN0 IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxlY3QgZGlzdGluY3QgZnJv bSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1 dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6ICBjb2x1bW4gIm5vbmVz dWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNo IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJl IG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gcmhzIG9mIG9wZXJh dG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2RhdGFiYXNlLmRhdG5hbWUg PSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0g bm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBpbiBzZWxlY3QgZGlzdGlu Y3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7Ci1F UlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGRpc3RpbmN0 IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pv aW4ub3V0CmluZGV4IDUxYWViMWRhZTYuLjFhOGI0NGY1MzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9qb2luLm91dApAQCAtNjQyMCwxMyArNjQyMCwxMyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5p cXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1 bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlxdWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0 ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25j ZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg dXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50 IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51 bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0 MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVkIHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29s dW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0 aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBjdGlkIGZyb20KICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkg YXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KQEAgLTc1MjMsNyArNzUyMyw3IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20g aW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBlcnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNo b3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJs IGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRo ZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUzNSw3ICs3NTM1 LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBh cyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5U OiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlvdSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3 aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2Vs ZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQg aXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAt NzU3Miw3ICs3NTcyLDcgQEAgTElORSAxOiBzZWxlY3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwg KHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGkuLi4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBh cyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBmcm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNh bid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20g aW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVk ICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTkyLDcgKzc1OTIsNyBAQCB1cGRhdGUgeHgxIHNl dCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUgInh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBv bmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJv bSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcgKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hl cmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFt ZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20g dGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNl Lm91dAppbmRleCBkYmJkYTcyZDM5Li5kOTg3OTNmOTJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0yMyw3ICsyMyw3IEBAIEJFR0lOOwogU0VUIHNlYXJjaF9w YXRoIHRvIHB1YmxpYywgdGVzdF9uc19zY2hlbWFfMTsKIENSRUFURSBTQ0hFTUEgdGVzdF9uc19z Y2hlbWFfMgogICAgICAgIENSRUFURSBWSUVXIGFiY192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJj OwotRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAiYyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMjogICAgICAgIENSRUFURSBWSUVXIGFi Y192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CmluZGV4IDllMjMxNjZmZWQuLjY3MjAxMmUxNDYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0LDcgKzMxNCw3IEBAIE5PVElDRTog IGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJyb3IgY2FzZXMKIFNFTEVDVCBfMTAw OwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIF8xMDA7CiAg ICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdz cWwub3V0CmluZGV4IDBhNjk0NTU4MWIuLjVjNTk5YmEzMTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wbHBnc3FsLm91dApAQCAtMjU5OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBw bHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGlu IGRlZmluZWQgRVhDRVBUSU9OCiAtLSBibG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJS T1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAg ICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5k OyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0 MigpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxz dGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBC RUdJTgogICAgICAgICBSQUlTRSBOT1RJQ0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50Owog ICAgIEVORCBMT09QOwogRU5EJCQ7Ci1FUlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogU0VMRUNUIHJ0cmltKHJvb21ubykgQVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZ IHJvb21uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVF Ulk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIg Qlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3gg PSAlJywgeDsKIGVuZDsKICQkOwotRVJST1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCAr IDEKICAgICAgICAgXgogUVVFUlk6ICB4ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4K ICAgcmFpc2Ugbm90aWNlICd4ID0gJSwgeSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjog IGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4 IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAx CkBAIC01NzY5LDcgKzU3NjksNyBAQCBBTFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFu c2l0aW9uX3RhYmxlcwogICBEUk9QIGNvbHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3Vu ZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5h bWUiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1l LCAnLCcpIEZST00gZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5nX2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9N IGQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA3N2E3YmY0NWM4Li5lMTYzNWY2 ODZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIxNCw3ICsyMTQsNyBAQCBz ZWxlY3QgJDE6OmludCBhcyBjb2wgXGJpbmQgMSBcZyBcYmluZCAyIFxnCiAtLSBlcnJvcnMKIC0t IHBhcnNlIGVycm9yCiBTRUxFQ1QgZm9vIFxiaW5kIFxnCi1FUlJPUjogIGNvbHVtbiAiZm9vIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIGZvbyAKICAgICAgICAgICAgICAgIF4KIC0tIHRjb3AgZXJy b3IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMzAxNGQwNDdmZS4uNzM3OGY5 NWIxNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTExOTEsNyArMTE5MSw3 IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2ZvbzsKIC0tIHRoaXMgc2hvdWxk IGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5xdWFsaWZpZWQgcmVmZXJlbmNl OgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNlcnQgdG8gcnVsZXNfZm9vIHdo ZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChm MSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6IGRvIGluc3RlYWQgaW5zZXJ0 IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFt ZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2Vk IGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggM2M5MTBmYzEzMS4uZjkwMjgzYWQyMCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTM5MCw3ICszOTAsNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNU IHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFy MTsKICAgICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtNjAyLDcgKzYwMiw3IEBA IFNFTEVDVCB2MTsKIAogLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBM RVQgdjEueCA9IDEwOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1 bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQor RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUg InYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElO RSAxOiBMRVQgdjEueCA9IDEwOwogICAgICAgICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0 IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQpAQCAtMTE1MCw3ICsxMTUwLDcgQEAgQkVHSU47CiBE Uk9QIFZBUklBQkxFIHZhcjE7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjog IGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAg ICAgIF4KIFJPTExCQUNLOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90 cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMu b3V0CmluZGV4IDdmNTc1N2U4OWMuLmIwNWIxNmQ5NGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKQEAgLTI1Niw3ICsyNTYsNyBAQCBTRUxFQ1QgKiBGUk9N IHRyYW5zX2JhcmJhejsJLS0gc2hvdWxkIGhhdmUgMQogQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsK IAkJU0VMRUNUIHRyYW5zX2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19mb28iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9vIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBTRUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAgICAgXgogCVJPTExC QUNLIFRPIFNBVkVQT0lOVCBvbmU7CkBAIC0zMDUsNyArMzA1LDcgQEAgQkVHSU47CiAJU0FWRVBP SU5UIG9uZTsKIAkJSU5TRVJUIElOVE8gc2F2ZXBvaW50cyBWQUxVRVMgKDUpOwogCQlTRUxFQ1Qg dHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdW5pb24ub3V0CmluZGV4IGM3MzYzMWE5YTEuLjVjMGVhY2M1ZjEgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC05MjIsNyArOTIyLDcgQEAgT1JERVIgQlkg cTIscTE7CiAKIC0tIFRoaXMgc2hvdWxkIGZhaWwsIGJlY2F1c2UgcTIgaXNuJ3QgYSBuYW1lIG9m IGFuIEVYQ0VQVCBvdXRwdXQgY29sdW1uCiBTRUxFQ1QgcTEgRlJPTSBpbnQ4X3RibCBFWENFUFQg U0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkgcTIgTElNSVQgMTsKLUVSUk9SOiAgY29s dW1uICJxMiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJxMiIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIGludDhfdGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJP TSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUg aXMgYSBjb2x1bW4gbmFtZWQgInEyIiBpbiB0YWJsZSAiKlNFTEVDVCogMiIsIGJ1dCBpdCBjYW5u b3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCi0tIAoyLjQ3LjEK Cg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0016-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20241210-0016-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvrb5 RnJvbSBkMjdhNzcwMzkxZThkMTdiYTdhNGZjNmFjMWQyMGI1NmY0MTJmYmQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjFdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA1IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dt bCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWQuLjFjZTlhYmY4 NmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICog RlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9s aXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVt PgotICAgICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZh cmlhYmxlLgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0 PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCAxNWI0M2NjN2I1Li5iNDNmYzVlOGY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK QEAgLTIxMCw3ICsyMTAsMTkgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1 ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKiAgICBiZSBjaGFuZ2VkIGluc2lkZSBxdWVyeSBleGVj dXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2UgdG8KIAkgKiAgICBwcmV2aW91c2x5IHJl dHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgogCSAqLwotCWlmIChxdWVyeURlc2MtPnBs YW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChxdWVyeURlc2MtPm51bV9zZXNzaW9u X3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVuIGEgcGFyYWxsZWwgcXVlcnkgbmVl ZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1ZGluZworCQkgKiByZWxhdGVkIHNl c3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZQorCQkg KiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURlc2MgYWxyZWFkeS4gU28ganVzdCBw dXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBleGVjdXRvcidzIGVzdGF0ZS4KKwkJ ICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCQllc3RhdGUtPmVzX3Nlc3Npb25f dmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlczsKKwkJZXN0YXRlLT5lc19u dW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlczsK Kwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK IAl7CiAJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwogCQlpbnQJCQlpID0gMDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggODQ2ZWM3MjdkZS4uNjQxNjRhYmVkOCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTEyLDggKzEyLDkgQEAKICAqIHdvcmtlcnMg YW5kIGVuc3VyaW5nIHRoYXQgdGhlaXIgc3RhdGUgZ2VuZXJhbGx5IG1hdGNoZXMgdGhhdCBvZiB0 aGUKICAqIGxlYWRlcjsgc2VlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL1JFQURNRS5wYXJh bGxlbCBmb3IgZGV0YWlscy4KICAqIEhvd2V2ZXIsIHdlIG11c3Qgc2F2ZSBhbmQgcmVzdG9yZSBy ZWxldmFudCBleGVjdXRvciBzdGF0ZSwgc3VjaCBhcwotICogYW55IFBhcmFtTGlzdEluZm8gYXNz b2NpYXRlZCB3aXRoIHRoZSBxdWVyeSwgYnVmZmVyL1dBTCB1c2FnZSBpbmZvLCBhbmQKLSAqIHRo ZSBhY3R1YWwgcGxhbiB0byBiZSBwYXNzZWQgZG93biB0byB0aGUgd29ya2VyLgorICogYW55IFBh cmFtTGlzdEluZm8gYXNzb2NpYXRlZCB3aXRoIHRoZSBxdWVyeSwgYnVmZmVyL1dBTCB1c2FnZSBp bmZvLAorICogc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyLCBhbmQgdGhlIGFjdHVhbCBwbGFuIHRv IGJlIHBhc3NlZCBkb3duIHRvCisgKiB0aGUgd29ya2VyLgogICoKICAqIElERU5USUZJQ0FUSU9O CiAgKgkgIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC02NCw2ICs2NSw3 IEBACiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9RVUVSWV9URVhUCQlVSU5UNjRDT05TVCgweEUwMDAw MDAwMDAwMDAwMDgpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9KSVRfSU5TVFJVTUVOVEFUSU9OIFVJ TlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOSkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1dBTF9V U0FHRQkJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQSkKKyNkZWZpbmUgUEFSQUxMRUxf S0VZX1NFU1NJT05fVkFSSUFCTEVTCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQikKIAog I2RlZmluZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgogCkBAIC0xMzgsNiArMTQw LDEyIEBAIHN0YXRpYyBib29sIEV4ZWNQYXJhbGxlbFJldHJpZXZlSW5zdHJ1bWVudGF0aW9uKFBs YW5TdGF0ZSAqcGxhbnN0YXRlLAogLyogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcnVucyBpbiB0aGUg cGFyYWxsZWwgd29ya2VyLiAqLwogc3RhdGljIERlc3RSZWNlaXZlciAqRXhlY1BhcmFsbGVsR2V0 UmVjZWl2ZXIoZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsKIAorLyogSGVscGVyIGZ1 bmN0aW9ucyB0aGF0IGNhbiBwYXNzIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyAqLworc3Rh dGljIFNpemUgRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlKTsKK3N0YXRp YyB2b2lkIFNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipz dGFydF9hZGRyZXNzKTsKK3N0YXRpYyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqUmVzdG9yZVNlc3Np b25WYXJpYWJsZXMoY2hhciAqKnN0YXJ0X2FkZHJlc3MsCisJCQkJCQkJCQkJCQkJIGludCAqbnVt X3Nlc3Npb25fdmFyaWFibGVzKTsKKwogLyoKICAqIENyZWF0ZSBhIHNlcmlhbGl6ZWQgcmVwcmVz ZW50YXRpb24gb2YgdGhlIHBsYW4gdG8gYmUgc2VudCB0byBlYWNoIHdvcmtlci4KICAqLwpAQCAt NTk2LDYgKzYwNCw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRl LCBFU3RhdGUgKmVzdGF0ZSwKIAljaGFyCSAgICpwc3RtdF9kYXRhOwogCWNoYXIJICAgKnBzdG10 X3NwYWNlOwogCWNoYXIJICAgKnBhcmFtbGlzdGluZm9fc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lv bl92YXJpYWJsZXNfc3BhY2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOwogCVdhbFVz YWdlICAgKndhbHVzYWdlX3NwYWNlOwogCVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICpp bnN0cnVtZW50YXRpb24gPSBOVUxMOwpAQCAtNjA1LDYgKzYxNCw3IEBAIEV4ZWNJbml0UGFyYWxs ZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlpbnQJCQlpbnN0 cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlqaXRfaW5zdHJ1bWVudGF0aW9uX2xlbiA9IDA7 CiAJaW50CQkJaW5zdHJ1bWVudF9vZmZzZXQgPSAwOworCWludAkJCXNlc3Npb25fdmFyaWFibGVz X2xlbiA9IDA7CiAJU2l6ZQkJZHNhX21pbnNpemUgPSBkc2FfbWluaW11bV9zaXplKCk7CiAJY2hh cgkgICAqcXVlcnlfc3RyaW5nOwogCWludAkJCXF1ZXJ5X2xlbjsKQEAgLTY2MCw2ICs2NzAsMTEg QEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0 YXRlLAogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgcGFyYW1saXN0 aW5mb19sZW4pOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsK IAorCS8qIEVzdGltYXRlIHNwYWNlIGZvciBzZXJpYWxpemVkIHNlc3Npb24gdmFyaWFibGVzLiAq LworCXNlc3Npb25fdmFyaWFibGVzX2xlbiA9IEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhlc3Rh dGUpOworCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgc2Vzc2lvbl92 YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwg MSk7CisKIAkvKgogCSAqIEVzdGltYXRlIHNwYWNlIGZvciBCdWZmZXJVc2FnZS4KIAkgKgpAQCAt NzYxLDYgKzc3NiwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0 ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9L RVlfUEFSQU1MSVNUSU5GTywgcGFyYW1saXN0aW5mb19zcGFjZSk7CiAJU2VyaWFsaXplUGFyYW1M aXN0KGVzdGF0ZS0+ZXNfcGFyYW1fbGlzdF9pbmZvLCAmcGFyYW1saXN0aW5mb19zcGFjZSk7CiAK KwkvKiBTdG9yZSBzZXJpYWxpemVkIHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNlc3Npb25fdmFy aWFibGVzX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIHNlc3Npb25fdmFyaWFi bGVzX2xlbik7CisJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfU0VTU0lP Tl9WQVJJQUJMRVMsIHNlc3Npb25fdmFyaWFibGVzX3NwYWNlKTsKKwlTZXJpYWxpemVTZXNzaW9u VmFyaWFibGVzKGVzdGF0ZSwgJnNlc3Npb25fdmFyaWFibGVzX3NwYWNlKTsKKwogCS8qIEFsbG9j YXRlIHNwYWNlIGZvciBlYWNoIHdvcmtlcidzIEJ1ZmZlclVzYWdlOyBubyBuZWVkIHRvIGluaXRp YWxpemUuICovCiAJYnVmdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywK IAkJCQkJCQkJCSAgbXVsX3NpemUoc2l6ZW9mKEJ1ZmZlclVzYWdlKSwgcGN4dC0+bndvcmtlcnMp KTsKQEAgLTE0MTEsNiArMTQzMSw3IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpz ZWcsIHNobV90b2MgKnRvYykKIAlTaGFyZWRKaXRJbnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVt ZW50YXRpb247CiAJaW50CQkJaW5zdHJ1bWVudF9vcHRpb25zID0gMDsKIAl2b2lkCSAgICphcmVh X3NwYWNlOworCWNoYXIJICAgKnNlc3Npb252YXJpYWJsZV9zcGFjZTsKIAlkc2FfYXJlYSAgICph cmVhOwogCVBhcmFsbGVsV29ya2VyQ29udGV4dCBwd2N4dDsKIApAQCAtMTQzNiw2ICsxNDU3LDE0 IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlh cmVhX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfRFNBLCBmYWxzZSk7 CiAJYXJlYSA9IGRzYV9hdHRhY2hfaW5fcGxhY2UoYXJlYV9zcGFjZSwgc2VnKTsKIAorCS8qIFJl Y29uc3RydWN0IHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNlc3Npb252YXJpYWJsZV9zcGFjZSA9 IHNobV90b2NfbG9va3VwKHRvYywKKwkJCQkJCQkJCQkgICBQQVJBTExFTF9LRVlfU0VTU0lPTl9W QVJJQUJMRVMsCisJCQkJCQkJCQkJICAgZmFsc2UpOworCXF1ZXJ5RGVzYy0+c2Vzc2lvbl92YXJp YWJsZXMgPQorCQlSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcygmc2Vzc2lvbnZhcmlhYmxlX3NwYWNl LAorCQkJCQkJCQkmcXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAJLyogU3Rh cnQgdXAgdGhlIGV4ZWN1dG9yICovCiAJcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+aml0RmxhZ3Mg PSBmcGVzLT5qaXRfZmxhZ3M7CiAJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIGZwZXMtPmVmbGFn cyk7CkBAIC0xNTAzLDMgKzE1MzIsMTE3IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50 ICpzZWcsIHNobV90b2MgKnRvYykKIAlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CiAJcmVjZWl2 ZXItPnJEZXN0cm95KHJlY2VpdmVyKTsKIH0KKworLyoKKyAqIEVzdGltYXRlIHRoZSBhbW91bnQg b2Ygc3BhY2UgcmVxdWlyZWQgdG8gc2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor c3RhdGljIFNpemUKK0VzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSkKK3sK KwlpbnQJCQlpOworCVNpemUJCXN6ID0gc2l6ZW9mKGludCk7CisKKwlpZiAoZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlcyA9PSBOVUxMKQorCQlyZXR1cm4gc3o7CisKKwlmb3IgKGkgPSAwOyBp IDwgZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7IGkrKykKKwl7CisJCVNlc3Npb25W YXJpYWJsZVZhbHVlICpzdmFydmFsOworCQlPaWQJCQl0eXBlT2lkOworCQlpbnQxNgkJdHlwTGVu OworCQlib29sCQl0eXBCeVZhbDsKKworCQlzdmFydmFsID0gJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92 YXJpYWJsZXNbaV07CisKKwkJdHlwZU9pZCA9IHN2YXJ2YWwtPnR5cGlkOworCisJCXN6ID0gYWRk X3NpemUoc3osIHNpemVvZihPaWQpKTsgLyogc3BhY2UgZm9yIHR5cGUgT0lEICovCisKKwkJLyog c3BhY2UgZm9yIGRhdHVtL2lzbnVsbCAqLworCQlBc3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7 CisJCWdldF90eXBsZW5ieXZhbCh0eXBlT2lkLCAmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCXN6 ID0gYWRkX3NpemUoc3osCisJCQkJCSAgZGF0dW1Fc3RpbWF0ZVNwYWNlKHN2YXJ2YWwtPnZhbHVl LCBzdmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4pKTsKKwl9CisKKwlyZXR1cm4gc3o7 Cit9CisKKy8qCisgKiBTZXJpYWxpemUgYSBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgaW50byBj YWxsZXItcHJvdmlkZWQgc3RvcmFnZS4KKyAqCisgKiBXZSB3cml0ZSB0aGUgbnVtYmVyIG9mIHBh cmFtZXRlcnMgZmlyc3QsIGFzIGEgNC1ieXRlIGludGVnZXIsIGFuZCB0aGVuCisgKiB3cml0ZSBk ZXRhaWxzIGZvciBlYWNoIHBhcmFtZXRlciBpbiB0dXJuLiAgVGhlIGRldGFpbHMgZm9yIGVhY2gg cGFyYW1ldGVyCisgKiBjb25zaXN0IG9mIGEgNC1ieXRlIHR5cGUgT0lELCBhbmQgdGhlbiB0aGUg ZGF0dW0gYXMgc2VyaWFsaXplZCBieQorICogZGF0dW1TZXJpYWxpemUoKS4gIFRoZSBjYWxsZXIg aXMgcmVzcG9uc2libGUgZm9yIGVuc3VyaW5nIHRoYXQgdGhlcmUgaXMKKyAqIGVub3VnaCBzdG9y YWdlIHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3aWxsIGJlIHdyaXR0ZW47IHVz ZQorICogRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzIHRvIGZpbmQgb3V0IGhvdyBtYW55IHdpbGwg YmUgbmVlZGVkLgorICogKnN0YXJ0X2FkZHJlc3MgaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUg Ynl0ZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgdGhvc2UKKyAqIHdyaXR0ZW4uCisgKgorICogUmVz dG9yZVNlc3Npb25WYXJpYWJsZXMgY2FuIGJlIHVzZWQgdG8gcmVjcmVhdGUgYSBzZXNzaW9uIHZh cmlhYmxlIGJ1ZmZlcgorICogYmFzZWQgb24gdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb247 CisgKi8KK3N0YXRpYyB2b2lkCitTZXJpYWxpemVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0 YXRlLCBjaGFyICoqc3RhcnRfYWRkcmVzcykKK3sKKwlpbnQJCQlucGFyYW1zOworCWludAkJCWk7 CisKKwkvKiBXcml0ZSBudW1iZXIgb2YgcGFyYW1ldGVycy4gKi8KKwlucGFyYW1zID0gZXN0YXRl LT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJbWVtY3B5KCpzdGFydF9hZGRyZXNzLCAmbnBh cmFtcywgc2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihpbnQpOworCisJ LyogV3JpdGUgZWFjaCBwYXJhbWV0ZXIgaW4gdHVybi4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnBh cmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJ CXR5cGVPaWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2 YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKwkJdHlwZU9pZCA9IHN2YXJ2 YWwtPnR5cGlkOworCisJCS8qIFdyaXRlIHR5cGUgT0lELiAqLworCQltZW1jcHkoKnN0YXJ0X2Fk ZHJlc3MsICZ0eXBlT2lkLCBzaXplb2YoT2lkKSk7CisJCSpzdGFydF9hZGRyZXNzICs9IHNpemVv ZihPaWQpOworCisJCUFzc2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5 dmFsKHR5cGVPaWQsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJZGF0dW1TZXJpYWxpemUoc3Zh cnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5cExlbiwKKwkJCQkJICAg c3RhcnRfYWRkcmVzcyk7CisJfQorfQorCitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKgor UmVzdG9yZVNlc3Npb25WYXJpYWJsZXMoY2hhciAqKnN0YXJ0X2FkZHJlc3MsIGludCAqbnVtX3Nl c3Npb25fdmFyaWFibGVzKQoreworCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzZXNzaW9uX3Zhcmlh YmxlczsKKwlpbnQJCQlpOworCWludAkJCW5wYXJhbXM7CisKKwltZW1jcHkoJm5wYXJhbXMsICpz dGFydF9hZGRyZXNzLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKGlu dCk7CisKKwkqbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gbnBhcmFtczsKKwlzZXNzaW9uX3Zhcmlh YmxlcyA9IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQlwYWxsb2MobnBhcmFtcyAqIHNpemVv ZihTZXNzaW9uVmFyaWFibGVWYWx1ZSkpOworCisJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkr KykKKwl7CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsID0gJnNlc3Npb25fdmFyaWFi bGVzW2ldOworCisJCS8qIFJlYWQgdHlwZSBPSUQuICovCisJCW1lbWNweSgmc3ZhcnZhbC0+dHlw aWQsICpzdGFydF9hZGRyZXNzLCBzaXplb2YoT2lkKSk7CisJCSpzdGFydF9hZGRyZXNzICs9IHNp emVvZihPaWQpOworCisJCS8qIFJlYWQgZGF0dW0vaXNudWxsLiAqLworCQlzdmFydmFsLT52YWx1 ZSA9IGRhdHVtUmVzdG9yZShzdGFydF9hZGRyZXNzLCAmc3ZhcnZhbC0+aXNudWxsKTsKKwl9CisK KwlyZXR1cm4gc2Vzc2lvbl92YXJpYWJsZXM7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMKaW5kZXggZWZlODcyYjhhMy4uOGYzMjUzOTJlNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYwpAQCAtOTIzLDI1ICs5MjMsMTkgQEAgbWF4X3BhcmFsbGVsX2hhemFyZF93 YWxrZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpjb250ZXh0KQog CiAJLyoKIAkgKiBXZSBjYW4ndCBwYXNzIFBhcmFtcyB0byB3b3JrZXJzIGF0IHRoZSBtb21lbnQg ZWl0aGVyLCBzbyB0aGV5IGFyZSBhbHNvCi0JICogcGFyYWxsZWwtcmVzdHJpY3RlZCwgdW5sZXNz IHRoZXkgYXJlIFBBUkFNX0VYVEVSTiBQYXJhbXMgb3IgYXJlCi0JICogUEFSQU1fRVhFQyBQYXJh bXMgbGlzdGVkIGluIHNhZmVfcGFyYW1faWRzLCBtZWFuaW5nIHRoZXkgY291bGQgYmUKLQkgKiBl aXRoZXIgZ2VuZXJhdGVkIHdpdGhpbiB3b3JrZXJzIG9yIGNhbiBiZSBjb21wdXRlZCBieSB0aGUg bGVhZGVyIGFuZAotCSAqIHRoZW4gdGhlaXIgdmFsdWUgY2FuIGJlIHBhc3NlZCB0byB3b3JrZXJz LgorCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4g b3IgUEFSQU1fVkFSSUFCTEUKKwkgKiBQYXJhbXMgb3IgYXJlIFBBUkFNX0VYRUMgUGFyYW1zIGxp c3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5CisJICogY291bGQgYmUgZWl0aGVy IGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlCisJICog bGVhZGVyIGFuZCB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KIAkg Ki8KIAllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJO KQorCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwKKwkJCXBhcmFtLT5w YXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCiAJCQlyZXR1cm4gZmFsc2U7CiAKLQkJLyogd2Ug ZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KLQkJ aWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCi0JCXsKLQkJCWlmIChtYXhf cGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCi0J CQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9F WEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJh bS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKaW5kZXggODk4ZjlkYjkyZC4uNjM3NjNhYzRlZCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTcyNCwxMiAr NzI0LDE0IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVy bzsKIAogLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CiBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0g emVybzsKLSAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgQWdncmVnYXRlCi0gICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0Ci0gICAgICAgICBGaWx0 ZXI6ICgoYSAlIDEwKSA9IHplcm8pCi0oMyByb3dzKQorICAgLT4gIEdhdGhlcgorICAgICAgICAg V29ya2VycyBQbGFubmVkOiAyCisgICAgICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gc3Zh cl90ZXN0CisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCisoNSByb3dz KQogCiBMRVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOwogLS0gcmVz dWx0IHNob3VsZCBiZSAxMDAwCi0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0015-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20241210-0015-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvrm6 RnJvbSBlZWI3YTY3NjY4YTY1ODEwZjc3NzUzN2U4ZWNhODEwOGJkOTNjNjc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjFdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgIDggLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgICAgICAgICB8IDgyICsrKysrKysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAgOCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaCAgICAgICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDI2ICsrKy0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsICAgIHwgMTIgKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMTcgaW5zZXJ0 aW9ucygrKSwgNTkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGFmNDI0 OTYyNjMuLmM2NTUyYWFhYzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBh cmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTMzOCwxNCArMzM4 LDYgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRlbWVu dCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAotCS8qCi0JICogVGhlIGFyZ3Vt ZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAq IGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFyaWFi bGVzIHlldC4KLQkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIuCi0JICovCi0JaWYgKHBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJpYWJs ZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJLyogUHJlcGFyZSB0aGUgZXhw cmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJM aXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggYTE0MzI3 NTVkNS4uNzM1OGY3MDlhZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMDA1LDI1ICsx MDA1LDY5IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAog CQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwogCQkJCQkJCX0KIAotCQkJCQkJCUFzc2VydChlc19z ZXNzaW9uX3ZhcmlhYmxlcyk7Ci0KLQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAq LwotCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMp Ci0JCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlz IG91dCBvZiByYW5nZSIpOwotCi0JCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3Bh cmFtLT5wYXJhbWlkXTsKLQotCQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5 cGUpCi0JCQkJCQkJCWVsb2coRVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZl cmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5cGUiKTsKLQotCQkJCQkJCS8qCi0JCQkJCQkJICog SW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKLQkJCQkJCQkgKiBjb25zdGFudC4K LQkJCQkJCQkgKi8KLQkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7Ci0JCQkJCQkJ c2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKLQkJCQkJCQlzY3JhdGNoLmQu Y29uc3R2YWwuaXNudWxsID0gdmFyLT5pc251bGw7Ci0JCQkJCQkJRXhwckV2YWxQdXNoU3RlcChz dGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJCWlmIChlc19zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJ CQl7CisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIFRoaXMgcGF0aCBpcyB1c2VkIHdoZW4gZXhwcmVz c2lvbiBpcworCQkJCQkJCQkgKiBldmFsdWF0ZWQgaW5zaWRlIHF1ZXJ5IGV2YWx1YXRpb24uIEZv cgorCQkJCQkJCQkgKiBlbnN1cmluZyBvZiBpbW11dGFiaWxpdHkgb2Ygc2Vzc2lvbiB2YXJpYWJs ZQorCQkJCQkJCQkgKiBpbnNpZGUgcXVlcnkgd2UgdXNlIHNwZWNpYWwgYnVmZmVyIHdpdGggY29w eQorCQkJCQkJCQkgKiBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIG1ldGhvZCBoZWxw cworCQkJCQkJCQkgKiB3aXRoIHBhcmFsbGVsIGV4ZWN1dGlvbiB0b28uCisJCQkJCQkJCSAqLwor CisJCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hlY2tzICovCisJCQkJCQkJCWlmIChwYXJh bS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCQllbG9nKEVS Uk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsK KworCQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOwor CisJCQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJCQll bG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJB TV9WQVJJQUJMRSB0eXBlIik7CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNl LCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJCSAq LworCQkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJCXNjcmF0Y2gu ZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZh bC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwg JnNjcmF0Y2gpOworCQkJCQkJCX0KKwkJCQkJCQllbHNlCisJCQkJCQkJeworCQkJCQkJCQlBY2xS ZXN1bHQJYWNscmVzdWx0OworCQkJCQkJCQlPaWQJCQl2YXJpZCA9IHBhcmFtLT5wYXJhbXZhcmlk OworCQkJCQkJCQlPaWQJCQl2YXJ0eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKKworCQkJCQkJCQlB c3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4g c29tZSBjYXNlcyAocGxwZ3NxbCdzIHNpbXBsZSBleHByZXNzaW9uCisJCQkJCQkJCSAqIGV2YWx1 YXRpb24gb3IgZXZhbHVhdGlvbiBvZiBDQUxMIGFyZ3VtZW50cyksCisJCQkJCQkJCSAqIHRoZSBl eHByZXNzaW9uIGV4ZWN1dG9yIGlzIGNhbGxlZCBkaXJlY3RseS4KKwkJCQkJCQkJICogV2UgY2Fu IGFsbG93IGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbgorCQkJCQkJCQkgKiB2YXJpYWJsZXMgKGNv cHkgb25seSksIGJlY2F1c2Ugd2Uga25vdywgc28KKwkJCQkJCQkJICogb3V0c2lkZSBpcyBub3Qg YW55IHF1ZXJ5IChhbmQgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBjYW5ub3QgYmUgZXhlY3V0ZWQg cGFyYWxsZWwpLgorCQkJCQkJCQkgKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxk IHRvIGRvIGFjbGNoZWNrLAorCQkJCQkJCQkgKiBiZWNhdXNlIHVzdWFsIGFjbGNoZWNrIGZyb20K KwkJCQkJCQkJICogc3RhbmRhcmRfRXhlY3V0b3JTdGFydCBpcyBub3QgZXhlY3V0ZWQgaW4KKwkJ CQkJCQkJICogdGhpcyBjYXNlLiBGb3J0dW5hdGVseSBpdCBpcyBqdXN0IG9uY2UgcGVyCisJCQkJ CQkJCSAqIHRyYW5zYWN0aW9uLgorCQkJCQkJCQkgKi8KKwkJCQkJCQkJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQkJCQkJCQlH ZXRVc2VySWQoKSwgQUNMX1NFTEVDVCk7CisJCQkJCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCQkJCQkJCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJM RSwKKwkJCQkJCQkJCQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKwor CQkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfUEFSQU1fVkFSSUFCTEU7CisJCQkJCQkJCXNj cmF0Y2guZC52cGFyYW0udmFyaWQgPSB2YXJpZDsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJhbS52 YXJ0eXBlID0gdmFydHlwZTsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0 Y2gpOworCQkJCQkJCX0KIAkJCQkJCX0KIAkJCQkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYwppbmRleCBiYWQ3YjE5NWJmLi4wODM3MGFhMThiIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJh Y2Nlc3MvaGVhcHRvYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRv ci9ub2RlU3VicGxhbi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTQ1MCw2ICs0NTEsNyBA QCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQs IGJvb2wgKmlzbnVsbCkKIAkJJiZDQVNFX0VFT1BfUEFSQU1fRVhFQywKIAkJJiZDQVNFX0VFT1Bf UEFSQU1fRVhURVJOLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9DQUxMQkFDSywKKwkJJiZDQVNFX0VF T1BfUEFSQU1fVkFSSUFCTEUsCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX1NFVCwKIAkJJiZDQVNFX0VF T1BfQ0FTRV9URVNUVkFMLAogCQkmJkNBU0VfRUVPUF9NQUtFX1JFQURPTkxZLApAQCAtMTA5OSw2 ICsxMTAxLDIwIEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0 ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19D QVNFKEVFT1BfUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCS8qCisJCQkgKiBEaXJlY3QgYWNjZXNz IHRvIHNlc3Npb24gdmFyaWFibGUgKHdpdGhvdXQgYnVmZmVyaW5nKS4gQmVjYXVzZQorCQkJICog cmV0dXJuZWQgdmFsdWUgY2FuIGJlIHVzZWQgKHdpdGhvdXQgYW4gYXNzaWduZW1lbnQpIGFmdGVy IHRoZQorCQkJICogcmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyB1cGRhdGVkLCB3ZSBo YXZlIHRvIHVzZSBhbiBjb3B5CisJCQkgKiBvZiBzdG9yZWQgdmFsdWUgZXZlcnkgdGltZS4KKwkJ CSAqLworCQkJKm9wLT5yZXN2YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2so b3AtPmQudnBhcmFtLnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJb3AtPnJlc251bGwsCisJCQkJCQkJ CQkJCQkJCQlvcC0+ZC52cGFyYW0udmFydHlwZSk7CisJCQlFRU9fTkVYVCgpOworCQl9CisKIAkJ RUVPX0NBU0UoRUVPUF9QQVJBTV9TRVQpCiAJCXsKIAkJCS8qIG91dCBvZiBsaW5lLCB1bmxpa2Vs eSB0byBtYXR0ZXIgcGVyZm9ybWFuY2Utd2lzZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4 cHIuYwppbmRleCBjNTMzZjU1MjU0Li5kNDIxYWU4MjhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZt aml0X2V4cHIuYwpAQCAtMTEzNiw2ICsxMTM2LDEyIEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJT dGF0ZSAqc3RhdGUpCiAJCQkJCWJyZWFrOwogCQkJCX0KIAorCQkJY2FzZSBFRU9QX1BBUkFNX1ZB UklBQkxFOgorCQkJCWJ1aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFtVmFyaWFi bGUiLAorCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CisJCQkJTExWTUJ1aWxkQnIo Yiwgb3BibG9ja3Nbb3BubyArIDFdKTsKKwkJCQlicmVhazsKKwogCQkJY2FzZSBFRU9QX1BBUkFN X1NFVDoKIAkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVNldCIsCiAJ CQkJCQkJCXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGY4 MjY0YjBhZjkuLmIyMmMyMTdhZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMzQ2OCwxNCArMzQ2 OCw2IEBAIHRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQgKnN0 bXQpCiAJCQkJCQkJIHRydWUsCiAJCQkJCQkJIHN0bXQtPmZ1bmNjYWxsLT5sb2NhdGlvbik7CiAK LQkvKgotCSAqIFRoZSBhcmd1bWVudHMgb2YgQ0FMTCBzdGF0ZW1lbnQgYXJlIGV2YWx1YXRlZCBi eSBhIGRpcmVjdCBleHByZXNzaW9uCi0JICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgcGF0aCBpcyB1 bnN1cHBvcnRlZCB5ZXQsIHNvIGJsb2NrIGl0LiAgSXQgd2lsbCBiZQotCSAqIGVuYWJsZWQgbGF0 ZXIuCi0JICovCi0JaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVS Uk9SLCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwot CiAJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIG5vZGUpOwogCiAJZmV4cHIgPSBjYXN0 Tm9kZShGdW5jRXhwciwgbm9kZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaAppbmRleCA1NmZiMGQw YWRiLi5iNDExM2Y2ZDYyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhw ci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKQEAgLTE1NiwxMCArMTU2 LDExIEBAIHR5cGVkZWYgZW51bSBFeHByRXZhbE9wCiAJRUVPUF9CT09MVEVTVF9JU19GQUxTRSwK IAlFRU9QX0JPT0xURVNUX0lTX05PVF9GQUxTRSwKIAotCS8qIGV2YWx1YXRlIFBBUkFNX0VYRUMv RVhURVJOIHBhcmFtZXRlcnMgKi8KKwkvKiBldmFsdWF0ZSBQQVJBTV9FWEVDL0VYVEVSTi9WQVJJ QUJMRSBwYXJhbWV0ZXJzICovCiAJRUVPUF9QQVJBTV9FWEVDLAogCUVFT1BfUEFSQU1fRVhURVJO LAogCUVFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJRUVPUF9QQVJBTV9WQVJJQUJMRSwKIAkvKiBzZXQg UEFSQU1fRVhFQyB2YWx1ZSAqLwogCUVFT1BfUEFSQU1fU0VULAogCkBAIC00MTAsNiArNDExLDEz IEBAIHR5cGVkZWYgc3RydWN0IEV4cHJFdmFsU3RlcAogCQkJT2lkCQkJcGFyYW10eXBlOwkvKiBP SUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJfQkJCWNwYXJhbTsKIAorCQkvKiBmb3Ig RUVPUF9QQVJBTV9WQVJJQUJMRSAqLworCQlzdHJ1Y3QKKwkJeworCQkJT2lkCQkJdmFyaWQ7CQkv KiBPSUQgb2YgYXNzaWduZWQgdmFyaWFibGUgKi8KKwkJCU9pZAkJCXZhcnR5cGU7CS8qIE9JRCBv ZiBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLworCQl9CQkJdnBhcmFtOworCiAJCS8qIGZvciBFRU9Q X0NBU0VfVEVTVFZBTC9ET01BSU5fVEVTVFZBTCAqLwogCQlzdHJ1Y3QKIAkJewpAQCAtODMyLDYg Kzg0MCw4IEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1TZXQoRXhwclN0YXRlICpzdGF0ZSwg RXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkgRXhwckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVy biB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVw ICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiB2b2lkIEV4ZWNF dmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAorCQkJ CQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbENvZXJj ZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2 b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0 ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsQ3VycmVudE9mRXhwcihFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9l eHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3Jj L2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggYTY1MjNmN2FmZS4u ZWNhYzY0ZmNmYiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcl9y ZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3Nx bF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBS QUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMg YXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDhiNWRmMWQ1Yjcu LmUzMTIwNmU3ZjQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysr IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtODA5OSw4ICs4MDk5LDcgQEAgZXhl Y19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHByICpleHByKQogCQlxdWVyeS0+c29ydENsYXVz ZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJ cXVlcnktPnNldE9wZXJhdGlvbnMgfHwKLQkJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJ CXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQogCQlyZXR1cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA4MDMzZjQx ZTNkLi44OThmOWRiOTJkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dApAQCAtMTg4LDggKzE4OCw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAi c3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FM IGV4cHJlc3Npb24gIiQxICsgdmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRl Z2VyKSBsaW5lIDEgYXQgUkVUVVJOCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3Nx bGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KIC0tIHNob3VsZCBiZSBvawogU0VMRUNUIHNx bGZ4X3NkKDIwKTsKICBzcWxmeF9zZCAKQEAgLTM1OSwyNyArMzU4LDI4IEBAICQkOwogTk9USUNF OiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4LDksMTB9CiBEUk9QIFZBUklBQkxFIHZh cjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7Ci0tLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9y dGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZy b20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBD UkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDE7CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJn IGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkK Ky0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK05PVElDRTogIDEKIERPICQkIEJFR0lOIENB TEwgcCh2KTsgRU5EICQkOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2Vk IGFzIGFuIGFyZ3VtZW50Ci1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYpIgotUEwv cGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKK05PVElDRTog IDEKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERST1AgVkFSSUFCTEUgdjsKLS0tIEVYRUNVVEUg c3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNz IHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBFWEVDVVRF IHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAyMDsKIFBSRVBBUkUg cHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7Ci0tLSBzaG91bGQgZmFpbAorLS0gc2hvdWxkIGJlIG9r CiBFWEVDVVRFIHB0ZXN0KHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1 c2VkIGFzIGFuIGFyZ3VtZW50CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgICAgMjAKKygx IHJvdykKKwogREVBTExPQ0FURSBwdGVzdDsKIERST1AgVkFSSUFCTEUgdjsKIC0tIHRlc3Qgc2Vh cmNoIHBhdGgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRl eCA5OGYzNTE5NTdkLi44YTNhZTI4Y2E2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsCkBAIC0yOTMsMTMgKzI5MywxNCBAQCAkJDsKIERST1AgVkFSSUFCTEUg dmFyMTsKIERST1AgVkFSSUFCTEUgdmFyMjsKIAotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRl ZAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogCitMRVQgdiA9IDE7CisKIENSRUFURSBQUk9DRURV UkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOwogCi0tLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBv cnRlZCB5ZXQpCistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYpOwogCiBETyAkJCBCRUdJTiBD QUxMIHAodik7IEVORCAkJDsKQEAgLTMwNywxMyArMzA4LDEyIEBAIERPICQkIEJFR0lOIENBTEwg cCh2KTsgRU5EICQkOwogRFJPUCBQUk9DRURVUkUgcChpbnQpOwogRFJPUCBWQVJJQUJMRSB2Owog Ci0tLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMg ZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRv cgorLS0gRVhFQ1VURSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0g MjA7CiBQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwogCi0tLSBzaG91bGQgZmFpbAor LS0gc2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0ZXN0KHYpOwogCiBERUFMTE9DQVRFIHB0ZXN0Owot LSAKMi40Ny4xCgo= --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0014-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20241210-0014-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvrt7 RnJvbSA0NDBhYjg0OGM2ZjhiNGY4MTczYjNjYmQ4MGI3NWYzNDE4NzMyNzg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjFdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKystCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrLS0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgMzYgKysrKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE1NSArKysrKysrKysrKysr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEy MiArKysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTIzIGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNDNiODRmZDg5Ni4uODEzNjYwYWNlYiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKQEAgLTk4NTEsNiArOTg1MSwyNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52 YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9l c24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRy dWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZS1p bW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisgICAgICAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBl PgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBiZmJmZjlhYjc0 Li5lNzA0ZTA1YTk5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwNDQsNyArNjA0NCw4IEBAICQkIExBTkdV QUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKICAgICAgWW91IGNhbiBjb25zaWRlciB0cmFu c2xhdGluZyBhbiBPcmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGluCiAgICAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBhbmQgcHJv Y2VkdXJlcwogICAgICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMg aW4gdGhhdCBzY2hlbWEsIGFuZCBwYWNrYWdlCi0gICAgIHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFu c2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICB2YXJpYWJs ZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBvciBpbW11dGFibGUg c2Vzc2lvbgorICAgICB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCiAgICAgIChzZWUgPHhyZWYg bGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+KS4KICAgICA8L3BhcmE+CiAgICA8L3Nl Y3QzPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggODE4N2MxOGUyOC4u MDA5Mzg3NDNjMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw4 ICsyNiw4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBE Uk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkg fCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09M TEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJs ZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxFPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGFzc2ln bmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdlZC4KKyAg ICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVmYXVsdCB2 YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNpbmcgdGhl IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwgbm8gZnVy dGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAgICAgIGlm IHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRlcmFsPk9O IFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCByZXNldCBv ZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQgVkFSSUFC TEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAgIG9iamVj dHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50 cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRlcm0+PGxp dGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAt MTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZh cmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5O T1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lvbgorICAg ICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3JlYXRlZCBh cyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVmYXVsdCB2 YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2YWx1ZSwg dGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlk PSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVM VCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAzNmRlMTI1 ODdjLi5mMjYxZTNmZDc3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC00MCw2ICs0 MCw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0 aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBib29sIG5vdF9u dWxsLAorCQkJCQkJCQkJIGJvb2wgaXNfaW1tdXRhYmxlLAogCQkJCQkJCQkJIE5vZGUgKnZhckRl ZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p OwogCkBAIC01NSw2ICs1Nyw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZf bm90X2V4aXN0cywKKwkJCQlib29sIG5vdF9udWxsLAorCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAog CQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pCiB7CkBAIC0xMTcsNiArMTIxLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJ bnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3du ZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5vdG51bGwgLSAxXSA9IEJvb2xHZXREYXR1 bShub3RfbnVsbCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXNpbW11dGFibGUgLSAx XSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCWlmICh2YXJEZWZleHByKQpAQCAtMjU5LDYgKzI2NSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAg dmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9l eGlzdHMsCisJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCisJCQkJCQkJICAgc3RtdC0+aXNfaW1t dXRhYmxlLAogCQkJCQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RF bmRBY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXgg ZDQ5ZWJiNTQ2Zi4uNDBhMTVmYTk1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtODQsNiArODQsOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJ dm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZDsKIAorCWJvb2wJCW5vdF9udWxsOworCWJvb2wJCWlzX2ltbXV0YWJs ZTsKKwogCWJvb2wJCXJlc2V0X2F0X2VveDsKIAogCS8qCkBAIC0xMDIsNiArMTA1LDkgQEAgdHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCWJvb2wJCWlzX3ZhbGlkOwogCiAJdWludDMyCQlo YXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCisKKwkvKiB0 cnVlLCB3aGVuIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHNldCwgYW5kIGNhbm5vdCBiZSBjaGFuZ2Vk IG1vcmUgKi8KKwlib29sCQlwcm90ZWN0X3ZhbHVlOwogfSBTVmFyaWFibGVEYXRhOwogCiB0eXBl ZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKQEAgLTU2Myw2ICs1NjksMjMgQEAgZXZhbF9h c3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1cCkKIAogCQkJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICog UmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIGJ1dCB0aGUgcmVz dWx0IG9mCisJCQkgKiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KKwkJCSAqLworCQkJaWYg KHN2YXItPm5vdF9udWxsKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBp cyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAor CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHN2YXItPnZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+ dmFyaWQpKSwKKwkJCQkJCSBlcnJkZXRhaWwoIlRoZSByZXN1bHQgb2YgREVGQVVMVCBleHByZXNz aW9uIGlzIE5VTEwuIikpKTsKKwkJfQorCisJCWlmIChzdmFyLT5pc19pbW11dGFibGUpCisJCQlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsKIAogCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUp OwogCX0KQEAgLTU5Myw2ICs2MTYsOSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlnZXRfdHlwbGVuYnl2YWwoc3Zh ci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CiAKKwlzdmFyLT5ub3Rf bnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CisJc3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9y bS0+dmFyaXNpbW11dGFibGU7CisKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFy Zm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOwpAQCAtNjIyLDkgKzY0OCwzMSBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aGFz aHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAogCQkJCQkJCQkJCQlP YmplY3RJZEdldERhdHVtKHZhcmlkKSk7CiAKLQlpZiAoIWlzX3dyaXRlKQorCXN2YXItPnByb3Rl Y3RfdmFsdWUgPSBmYWxzZTsKKworCS8qCisJICogV2hlbiB0aGUgdmFyaWFibGUgaXMgbWFya2Vk IGFzIElNTVVUQUJMRSwgd2UgcHJlZmVyIHRvIGV2YWx1YXRlCisJICogcG9zc2libGUgREVGQVVM VCBiZWZvcmUgd3JpdGUgb3AuIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByb3RlY3QKKwkgKiBk ZWZhdWx0IHZhbHVlIGFnYWluc3QgYW55IG92ZXJ3cml0ZS4KKwkgKi8KKwlpZiAoIWlzX3dyaXRl IHx8CisJCXN2YXItPmlzX2ltbXV0YWJsZSkKKwl7CiAJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3Zh ciwgdHVwKTsKIAorCQkvKgorCQkgKiBSYWlzZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5V TEwgdmFyaWFibGUgd2l0aG91dCBkZWZhdWx0CisJCSAqIGV4cHJlc3Npb24uCisJCSAqLworCQlp ZiAoc3Zhci0+aXNudWxsICYmIHN2YXItPm5vdF9udWxsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJIGVycm1z ZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBub3Qg aW5pdGlhbGl6ZWQgeWV0LiIpKSk7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAK QEAgLTY0NCw2ICs2OTIsMjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAlBc3NlcnQoc3Zhcik7CiAJQXNzZXJ0KCFpc251 bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKIAorCWlmIChzdmFyLT5wcm90ZWN0X3ZhbHVlKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRVJST1JfSU5fQVNTSUdOTUVO VCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgZGVjbGFyZWQg SU1NVVRBQkxFIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpKSkpOworCisJLyogZG9uJ3QgYWxsb3cgYXNzaWdubWVudCBvZiBudWxs IHRvIE5PVCBOVUxMIHZhcmlhYmxlICovCisJaWYgKGlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FM TE9XRUQpLAorCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBO VUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpKSkpOworCiAJLyoKIAkgKiBVc2Ug dHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBh cmUKIAkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNj ZXB0ZWQgZm9yIHRoaXMKQEAgLTY4NCw2ICs3NDcsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAogCXN2YXItPnZhbHVl ID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKKworCS8qIGRvbid0IGFsbG93IG1v cmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlzIElNTVVUQUJMRSAqLworCWlmIChz dmFyLT5pc19pbW11dGFibGUpCisJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0cnVlOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggOTNmNjY2NTUwZC4uMjZkMjI3ZjkyZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC02NjgsNiArNjY4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVj dF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9y X251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRh YmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdp cmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyMzEsMjcgKzUyMzIsMzEgQEAgY3JlYXRl X2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vz c2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJM RSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5v dE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ0 OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRh YmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0gJDc7 CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+bm90 X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElT VFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1w IE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0 X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNy0+cmVscGVy c2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+dHlwZU5hbWUg PSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJ bi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKKwkJCQkJJDgt PnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQlu LT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENs YXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTI7CisJ CQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpA QCAtNTI3MSw2ICs1Mjc2LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJP UAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxs OiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJ CQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJ eyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJ CTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUg VVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA3MzQ0OTU2ZWEyLi4wZGM5OGZl ZGI2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0NDAsNiArNTQ0MCw4IEBAIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVy OwogCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlfdmFybm90bnVsbDsKKwlpbnQJCQlp X3ZhcmlzaW1tdXRhYmxlOwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsK IAlpbnQJCQlpLApAQCAtNTQ2Miw2ICs1NDY0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZv dXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKIAkJCQkJICAi ICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9u LFxuIgorCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgorCQkJCQkgICIgICAgICAgdi52 YXJpc2ltbXV0YWJsZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo di52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93 bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93 bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDgyLDYgKzU0ODYsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmRlZmV4cHIgPSBQUWZudW1iZXIocmVzLCAidmFyZGVmZXhw ciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0 aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7 CisJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKKwlpX3Zhcmlz aW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CiAKIAlpX3Zhcm93 bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIo cmVzLCAidmFyYWNsIik7CkBAIC01NTA4LDYgKzU1MTQsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0 aW9uKSk7CiAKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisJCXZhcmluZm9baV0udmFybm90bnVsbCA9ICooUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFybm90bnVsbCkpID09ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJp c2ltbXV0YWJsZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXNpbW11dGFibGUpKSA9PSAn dCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU1NCw3ICs1NTYyLDkgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwogCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29u c3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKKwljb25zdCBjaGFyICp2YXJpc2ltbXV0YWJsZTsK IAlPaWQJCQl2YXJjb2xsYXRpb247CisJYm9vbAkJdmFybm90bnVsbDsKIAogCS8qIHNraXAgaWYg bm90IHRvIGJlIGR1bXBlZCAqLwogCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5k dW1wU2NoZW1hKQpAQCAtNTU2OCwxMiArNTU3OCwxNCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmRlZmV4cHIgPSB2YXJpbmZv LT52YXJkZWZleHByOwogCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0 aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwl2YXJub3RudWxs ID0gdmFyaW5mby0+dmFybm90bnVsbDsKKwl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlz aW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHF1 YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFU RSAlc1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5h bWUsIHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7CkBA IC01NTg1LDYgKzU1OTcsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OwogCX0KIAorCWlmICh2YXJub3RudWxsKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBO T1QgTlVMTCIpOworCiAJaWYgKHZhcmRlZmV4cHIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiIERFRkFVTFQgJXMiLAogCQkJCQkJICB2YXJkZWZleHByKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDA5 NzkxMDIwMTYuLmVhNGQ3MzdmM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw4IEBAIHR5 cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljaGFyCSAgICppbml0cnZhcmFjbDsKIAlPaWQJ CQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIs IG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcm5vdG51bGw7CisJYm9vbAkJdmFyaXNpbW11 dGFibGU7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5k ZXggZjU4ZWRlNTMzNC4uNDdjYjU5MzU2ZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAg LTQwNDEsNiArNDA0MSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+ IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9v cmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2Vy O1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVt YV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4gewor CQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1l bnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4gewor CQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3By ZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9z Y2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0s CisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwK IAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpp bmRleCA0OGU1ZWFlYzQzLi42MjRlOGQ5YTllIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI0OCw3ICs1MjQ4LDcg QEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUy NjksNiArNTI2OSw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdf Y29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBj Lm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29s bGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2Nh dGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAi ICBOT1Qgdi52YXJub3RudWxsIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBOT1Qgdi52YXJpc2lt bXV0YWJsZSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2 LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVu ZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4i CkBAIC01Mjc5LDYgKzUyODEsOCBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIk51bGxhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJNdXRh YmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpp bmRleCAwMWZlYTljODBhLi43N2EzNDFjMzMyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0x MjczLDYgKzEyNzMsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9j cmVhdGVbXSA9IHsKIAl7IkZPUkVJR04gVEFCTEUiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IkZV TkNUSU9OIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfZnVuY3Rpb25zfSwKIAl7IkdS T1VQIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9LAorCXsiSU1NVVRBQkxFIFZBUklBQkxFIiwg TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwg LyogZm9yIENSRUFURSBJTU1VVEFCTEUKKwkJCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFZBUklBQkxF IC4uLiAqLwogCXsiSU5ERVgiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfaW5kZXhl c30sCiAJeyJMQU5HVUFHRSIsIFF1ZXJ5X2Zvcl9saXN0X29mX2xhbmd1YWdlc30sCiAJeyJMQVJH RSBPQkpFQ1QiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19DUkVBVEUgfCBUSElO R19OT19EUk9QfSwKQEAgLTM1OTMsNyArMzU5NSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVB VEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRF TVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVf V0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxF IiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGgg VEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVO TE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTQ1 LDcgKzM5NDgsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENS RUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNl IFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSB8fAotCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1h dGNoQW55KSkKKwkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBN YXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJW QVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxF IDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCkBAIC00NTg5LDYgKzQ1OTMsMTAgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00i LCAiU0VSVkVSIiwgTWF0Y2hBbnksICJJTlRPIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRI KCJPUFRJT05TICgiKTsKIAorLyogSU1NVVRBQkxFIC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRB QkxFIFZBUklBQkxFICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFSSUFCTEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4g YmUgaW5zaWRlIEVYUExBSU4sIFJVTEUsIGV0YyAqLwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVE IFRIRU4gSU5TRVJUICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwg IlRIRU4iLCAiSU5TRVJUIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMzUyOGE5 OGY2Ny4uNzdmMmM1MzQ3OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYsNiAr NTYsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkv KiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RF RkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwg QktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFy aXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24g ZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGVkYTZjNGQzMGIuLjRlYzgzNDA2ZmQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTM0ODcsNiArMzQ4Nyw4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJs ZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJ LyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWJvb2wJCW5vdF9udWxsOwkJ LyogZGlzYWxsb3cgbnVsbHMgKi8KKwlib29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93 IGNoYW5nZXMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICov CiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwog fSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4 IGJjN2I2MGE5N2UuLjc3YTdiZjQ1YzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApA QCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRp b24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2 YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVy K3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1 OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJp Z2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBA IExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0 ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA2YTBlNTIzZTM4Li44MDMzZjQxZTNkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt MTAwLDExICsxMDAsMTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENS RUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7 CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAg ICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFy dGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKLSAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAg ICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0 IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg dCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25lciB8 IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CkBAIC0xNzU2LDMgKzE3 NTYsMTQ4IEBAIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZVTkNU SU9OIHZhcnRlc3RfZngoKTsKKy0tIHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMOworLS0gc2hvdWxkIHRvIGZhaWwKK1NF TEVDVCB2YXIxOworRVJST1I6ICBudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVM TCBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIKK0RFVEFJTDogIFRoZSBzZXNzaW9uIHZh cmlhYmxlIHdhcyBub3QgaW5pdGlhbGl6ZWQgeWV0LgorLS1zaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gMTA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludCBOT1QgTlVMTCBERUZBVUxUIDA7CistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykK KworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxM OworRVJST1I6ICBudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9u IHZhcmlhYmxlICJwdWJsaWMudmFyMSIKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3QgTk9U IE5VTEwKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBp bnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBOVUxMOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3Rf ZngoKTsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1 ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZh cjEiCitERVRBSUw6ICBUaGUgcmVzdWx0IG9mIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgor RElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBS RVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7 CistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAor KDEgcm93KQorCistLSBmaXJzdCB3cml0ZSBzaG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJE IFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFy MSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBi ZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEg PSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVk IElNTVVUQUJMRQorRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJM RSB2YXIxIEFTIGludCBERUZBVUxUIDEwOworLS0gZG9uJ3QgYWxsb3cgY2hhbmdlIHdoZW4gdmFy aWFibGUgaGFzIERFRkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDIw OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1N VVRBQkxFCitESVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2 YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNs YXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQ1JF QVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOwor LS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMTA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0xFVCB2YXIxID0gMjA7CitF UlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFC TEUKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAK KygxIHJvdykKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1Ag VkFSSUFCTEUgdmFyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAppbmRleCA5ODUwZTE4MzlkLi45OGYzNTE5NTdkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMjEzLDMgKzEyMTMsMTI1IEBAIFNFTEVDVCB2YXIx OwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKwor LS0gdGVzdCBOT1QgTlVMTAorLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgTk9UIE5VTEw7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tc2hv dWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9U IE5VTEwgREVGQVVMVCAwOworCistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHNo b3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklB QkxFUzsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworCistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBOT1QgTlVMTCBERUZBVUxUIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NF TEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiAwOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBi ZSBvaworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04g dmFydGVzdF9meCgpOworCistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklB QkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gZmly c3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBz aG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNo b3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIw OworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2 YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIElNTVVUQUJMRSBWQVJJ QUJMRSB2YXIxIEFTIGludCBERUZBVUxUIDEwOworCistLSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hl biB2YXJpYWJsZSBoYXMgREVGQVVMVCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIx ID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXIxOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMg SU5UIE5PVCBOVUxMIERFRkFVTFQgMTA7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9 IDEwOworTEVUIHZhcjEgPSAyMDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKwor LS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMzA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK LS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0013-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20241210-0013-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvs38 RnJvbSA1NDZjNjFiMGU4ODI0OTNiY2NjZjkzNTI2ZGNmZDM4NjM2Nzk2ZmE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjFdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNzMgKysrKysrKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNDggKysrKysr KysrKwogMjAgZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggZDdhMjMzNDczMS4uNDNiODRmZDg5NiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4ODMsNiArOTg4MywxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJkZWZleHByPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdf bm9kZV90cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSBkZWZhdWx0IHZhbHVlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdy b3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGY2YjUwNmZlODcuLjYwZTE5NGE0M2EgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAg LTUzNzUsMTQgKzUzNzUsMTQgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKIAogICAgPHBhcmE+ CiAgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCi0gICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKLSAgICBiZWVu IHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRoZQot ICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFy ZSBub3QgdHJhbnNhY3Rpb25hbDoKLSAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAotICAgIGJlIHVuZG9u ZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMg aW4KLSAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2Vs dmVzIGNhbiBiZSBwZXJzaXN0ZW50Ci0gICAgb3IgdGVtcG9yYXJ5LCBidXQgdGhlaXIgdmFsdWVz IGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUKLSAgICBjb250ZW50 IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gb3IgYSBkZWZhdWx0IHZhbHVlLAorICAgIHVubGVzcyBp dHMgdmFsdWUgaGFzICBiZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBz ZXNzaW9uCisgICAgdXNpbmcgdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNl c3Npb24gdmFyaWFibGVzIGFyZSBub3QKKyAgICB0cmFuc2FjdGlvbmFsOiBhbnkgY2hhbmdlcyBt YWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4KKyAgICBhIHRyYW5zYWN0 aW9uIHdvbid0IGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1 c3QgbGlrZQorICAgIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9u IHZhcmlhYmxlcyB0aGVtc2VsdmVzIGNhbiBiZQorICAgIHBlcnNpc3RlbnQgb3IgdGVtcG9yYXJ5 LCBidXQgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZAorICAg IChsaWtlIHRoZSBjb250ZW50IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgogICAgPC9wYXJhPgogCiAg ICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGUxYzI5NDBk NGMuLjgxODdjMThlMjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjcsNyArMjcsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+ CiA8c3lub3BzaXM+CiBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8 L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgeyBPTiBDT01NSVQgRFJPUCB8IE9OIFRS QU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KKyAgICBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBE Uk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTQxLDEwICs0MSwxMCBAQCBDUkVBVEUgWyB7IFRF TVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icAogCiAgIDxwYXJhPgogICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiAgUmV0cmlldmluZwotICAgYSBzZXNz aW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNl dCB0bwotICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgotICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNzaW9u IHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCi0gICBy ZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgIGEgc2Vzc2lvbiB2 YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCBvciBhIGRlZmF1bHQgdmFsdWUsIHVubGVzcyBp dHMgdmFsdWUKKyAgIGlzIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNz aW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlIGNvbnRl bnQgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiAgVGhpcyBpcyB0 aGUKKyAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMu CiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTEwNSw2ICsxMDUsMTcgQEAgQ1JFQVRFIFsgeyBU RU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2 YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KKyAgICA8dGVybT48 bGl0ZXJhbD5ERUZBVUxUIDxyZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPjwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8 bGl0ZXJhbD5ERUZBVUxUPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlIHVzZWQgdG8gYXNzaWduIGEg ZGVmYXVsdAorICAgICAgdmFsdWUgdG8gYSBzZXNzaW9uIHZhcmlhYmxlLiBUaGlzIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIHdoZW4gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlIGlzIGZpcnN0 IGFjY2Vzc2VkIGZvciByZWFkaW5nIGFuZCBoYWQgbm90IHlldCBiZWVuIGFzc2lnbmVkIGEgdmFs dWUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK ICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi1jb21taXQtZHJvcCI+ CiAgICAgPHRlcm0+PGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+PC90ZXJtPgogICAg IDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKaW5kZXggNjFiOTY3ZjljOS4uNmIwY2I5NTAz NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKQEAgLTcxLDcgKzcxLDggQEAgRElTQ0FSRCB7IEFMTCB8 IFBMQU5TIHwgU0VRVUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB8IFZBUklBQkxFUyB9CiAgICAg PGxpc3RpdGVtPgogICAgICA8cGFyYT4KICAgICAgIFJlc2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNl c3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCi0gICAgICBpcyBsYXRlciByZXVzZWQsIGl0 IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LgorICAgICAgaXMg bGF0ZXIgcmV1c2VkLCBpdCBpcyByZS1pbml0aWFsaXplZCB0byBlaXRoZXIKKyAgICAgIDxsaXRl cmFsPk5VTEw8L2xpdGVyYWw+IG9yIGl0cyBkZWZhdWx0IHZhbHVlLgogICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCmluZGV4IDQ1MjBlZWQ2ZGEuLjM2ZGUxMjU4N2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKQEAgLTI0LDYgKzI0LDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfY29sbGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgiCiAjaW5j bHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgog I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMzcsNiArNDAsNyBAQCBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJ CSBPaWQgdmFyT3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJCQkJCSBi b29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJ CSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAKIApAQCAtNTEsNiAr NTUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlPaWQgdmFy T3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCisJ CQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVu ZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CkBAIC0xMTQsNiArMTE5LDExIEBAIGNyZWF0 ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOwogCXZh bHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1 bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAorCWlmICh2YXJEZWZleHByKQorCQl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJkZWZleHByIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG5vZGVUb1N0 cmluZyh2YXJEZWZleHByKSk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmRl ZmV4cHIgLSAxXSA9IHRydWU7CisKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpF Q1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CiAJaWYgKHZh cmFjbCAhPSBOVUxMKQpAQCAtMTUwLDYgKzE2MCwxMSBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3Qg Y2hhciAqdmFyTmFtZSwKIAlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVzKCZteXNl bGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJZnJlZV9vYmplY3RfYWRkcmVzc2VzKGFk ZHJzKTsKIAorCS8qIGRlcGVuZGVuY3kgb24gZGVmYXVsdCBleHByICovCisJaWYgKHZhckRlZmV4 cHIpCisJCXJlY29yZERlcGVuZGVuY3lPbkV4cHIoJm15c2VsZiwgKE5vZGUgKikgdmFyRGVmZXhw ciwKKwkJCQkJCQkgICBOSUwsIERFUEVOREVOQ1lfTk9STUFMKTsKKwogCS8qIGRlcGVuZGVuY3kg b24gb3duZXIgKi8KIAlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQs IHZhcmlkLCB2YXJPd25lcik7CiAKQEAgLTE4NSw2ICsyMDAsNyBAQCBDcmVhdGVWYXJpYWJsZShQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9pZAkJCWNv bGxhdGlvbjsKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsK KwlOb2RlCSAgICpjb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAKIAkvKiBjaGVjayBjb25zaXN0ZW5j eSBvZiBhcmd1bWVudHMgKi8KIAlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9Y QUNURU5EX0RST1AKQEAgLTIyNiw2ICsyNDIsMTYgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCWZvcm1hdF90eXBl X2JlKHR5cGlkKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmNvbGxD bGF1c2UtPmxvY2F0aW9uKSkpOwogCisJaWYgKHN0bXQtPmRlZmV4cHIpCisJeworCQljb29rZWRf ZGVmYXVsdCA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBzdG10LT5kZWZleHByLAorCQkJCQkJCQkJ ICAgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQpOworCisJCWNvb2tlZF9kZWZhdWx0ID0gY29l cmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCQkJIGNvb2tlZF9kZWZhdWx0 LCB0eXBpZCwgIkRFRkFVTFQiKTsKKwkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGNv b2tlZF9kZWZhdWx0KTsKKwl9CisKIAl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10LT52 YXJpYWJsZS0+cmVsbmFtZSwKIAkJCQkJCQkgICBuYW1lc3BhY2VpZCwKIAkJCQkJCQkgICB0eXBp ZCwKQEAgLTIzMyw2ICsyNTksNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHZhcm93bmVyLAogCQkJCQkJ CSAgIGNvbGxhdGlvbiwKIAkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAg IGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCiAJZWxv ZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdh cyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCA2MmZlMGMzMDIwLi5kNDllYmI1NDZmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCisjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgogI2luY2x1ZGUg InJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKQEAgLTUxMCwxMSArNTExLDY4IEBAIEF0RU9TdWJYYWN0 X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKIAl9CiB9CiAKKy8qCisgKiBldmFsdWF0 ZSBhbiBleHByZXNzaW9uCisgKi8KK3N0YXRpYyB2b2lkCitldmFsX2Fzc2lnbl9kZWZleHByKFNW YXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQoreworCURhdHVtCQlkZWZleHByX3ZhbHVlOwor CWJvb2wJCWlzbnVsbDsKKworCUFzc2VydChzdmFyKTsKKwlBc3NlcnQoc3Zhci0+aXNfdmFsaWQp OworCUFzc2VydChIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpOworCisJZGVmZXhwcl92YWx1ZSA9IFN5 c0NhY2hlR2V0QXR0cihWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCXR1cCwKKwkJCQkJCQkJCUFudW1f cGdfdmFyaWFibGVfdmFyZGVmZXhwciwKKwkJCQkJCQkJCSZpc251bGwpOworCisJaWYgKCFpc251 bGwpCisJeworCQlFU3RhdGUJICAgKmVzdGF0ZTsKKwkJRXhwclN0YXRlICAqZGVmZXhwcnM7CisJ CUV4cHIJICAgKmRlZmV4cHI7CisJCWNoYXIJICAgKmRlZmV4cHJfc3RyOworCQlEYXR1bQkJdmFs dWU7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCWVzdGF0ZSA9IENyZWF0ZUV4ZWN1dG9y U3RhdGUoKTsKKworCQlkZWZleHByX3N0ciA9IFRleHREYXR1bUdldENTdHJpbmcoZGVmZXhwcl92 YWx1ZSk7CisJCWRlZmV4cHIgPSAoRXhwciAqKSBzdHJpbmdUb05vZGUoZGVmZXhwcl9zdHIpOwor CisJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7 CisKKwkJZGVmZXhwciA9IGV4cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSBkZWZleHByKTsKKwkJ ZGVmZXhwcnMgPSBFeGVjSW5pdEV4cHIoZGVmZXhwciwgTlVMTCk7CisKKwkJdmFsdWUgPSBFeGVj RXZhbEV4cHJTd2l0Y2hDb250ZXh0KGRlZmV4cHJzLAorCQkJCQkJCQkJCSAgR2V0UGVyVHVwbGVF eHByQ29udGV4dChlc3RhdGUpLAorCQkJCQkJCQkJCSAgJmlzbnVsbCk7CisKKwkJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJCW9sZGN4dCA9 IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKKworCQkJc3Zh ci0+dmFsdWUgPSBkYXR1bUNvcHkodmFsdWUsIHN2YXItPnR5cGJ5dmFsLCBzdmFyLT50eXBsZW4p OworCQkJc3Zhci0+aXNudWxsID0gZmFsc2U7CisKKwkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhv bGRjeHQpOworCQl9CisKKwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKwl9Cit9CisKIC8q CiAgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGluICJzdmFyIgogICovCiBzdGF0aWMg dm9pZAotc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQor c2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlz X3dyaXRlKQogewogCUhlYXBUdXBsZQl0dXA7CiAJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOwpA QCAtNTY0LDYgKzYyMiw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IE9pZCB2YXJpZCkKIAlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFS SUFCTEVPSUQsCiAJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKIAorCWlmICgh aXNfd3JpdGUpCisJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3ZhciwgdHVwKTsKKwogCVJlbGVhc2VT eXNDYWNoZSh0dXApOwogfQogCkBAIC01OTMsNyArNjU0LDcgQEAgc2V0X3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAkgKi8KIAlpZiAo IXN2YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwg c3Zhci0+dmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFyLT52 YXJpZCwgZmFsc2UpOwogCQlfc3ZhciA9ICZsb2NzdmFyOwogCX0KIAllbHNlCkBAIC03MjYsNyAr Nzg3LDI1IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkgKi8KIAlpZiAoIXN2 YXItPmlzX3ZhbGlkKQogCXsKLQkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7 CisJCS8qIGluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHVzZSBkZWZleHAgaWYgaXQgaXMgZGVmaW5l ZCAqLworCQlQR19UUlkoKTsKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgY2FzZSwgdGhlIHNl dHVwIGNhbiBleGVjdXRlIGRlZmF1bHQgZXhwcmVzc2lvbi4gV2hlbgorCQkJICogdGhlIGV4ZWN1 dGlvbiBvZiBkZWZhdWx0IGV4cHJlc3Npb24gZmFpbHMsIHRoZW4gd2UgbmVlZCB0bworCQkJICog cmVtb3ZlIGVudHJ5IGZyb20gc2Vzc2lvbiB2YXJzLgorCQkJICovCisJCQlzZXR1cF9zZXNzaW9u X3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCBmYWxzZSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJewor CQkJLyogdGhpcyBlbnRyeSBjYW5ub3QgYmUgdmFsaWQsIHJlbW92ZSBmcm9tIHNlc3Npb252YXJz ICovCisJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVM TCk7CisKKwkJCS8qIHByb3BhZ2F0ZSB0aGUgZXJyb3IgKi8KKwkJCVBHX1JFX1RIUk9XKCk7CisJ CX0KKwkJUEdfRU5EX1RSWSgpOwogCiAJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBi eSBSRUFEKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLApAQCAtNzkwLDcgKzg2OSw3IEBAIFNldFNlc3Npb25WYXJpYWJsZShP aWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKIAogCWlmICghZm91bmQpCiAJewot CQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJc2V0dXBfc2Vzc2lvbl92 YXJpYWJsZShzdmFyLCB2YXJpZCwgdHJ1ZSk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChl bWl0dGVkIGJ5IFdSSVRFKSIsCiAJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMTIyZTNjNTA1 ZS4uOTNmNjY2NTUwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC02MzgsNiArNjM4LDcgQEAgc3RhdGljIE5v ZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMs IE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxwYXJ0Ym91bmRzcGVjPiBQYXJ0aXRpb25Cb3VuZFNwZWMK ICV0eXBlIDxsaXN0PgkJaGFzaF9wYXJ0Ym91bmQKICV0eXBlIDxkZWZlbHQ+CQloYXNoX3BhcnRi b3VuZF9lbGVtCisldHlwZSA8bm9kZT4JCU9wdFNlc3Npb25WYXJEZWZFeHByCiAKICV0eXBlIDxu b2RlPglqc29uX2Zvcm1hdF9jbGF1c2UKIAkJCQlqc29uX2Zvcm1hdF9jbGF1c2Vfb3B0CkBAIC01 MjMwLDMwICs1MjMxLDM2IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIE9wdFRlbXAg VkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZp ZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwogCQkJCQkkNC0+cmVscGVy c2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFyaWFibGUgPSAkNDsKIAkJCQkJbi0+dHlwZU5hbWUg PSAkNjsKIAkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OwotCQkJCQlu LT5YYWN0RW5kQWN0aW9uID0gJDg7CisJCQkJCW4tPmRlZmV4cHIgPSAkODsKKwkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQ5OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1Ag Tk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZf UCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9j bGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7CiAJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ3 OwogCQkJCQluLT50eXBlTmFtZSA9ICQ5OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOworCQkJCQluLT5kZWZl eHByID0gJDExOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOwogCQkJCQluLT5pZl9ub3Rf ZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCitPcHRT ZXNzaW9uVmFyRGVmRXhwcjogREVGQVVMVCBiX2V4cHIJCQkJCXsgJCQgPSAkMjsgfQorCQkJfCAv KiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gTlVMTDsgfQorCQk7CisKIC8qCiAgKiBUZW1wb3Jhcnkg c2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGRyb3BwZWQgb24gc3VjY2Vzc2Z1bAogICogdHJhbnNh Y3Rpb24gZW5kIGxpa2UgdGFibGVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDk4ODM5ZjEy NDkuLjlmNzA0OTViYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ4OCw2ICs0ODgsNyBA QCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqZXhwcikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJ Y2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFC TEVfREVGQVVMVDoKIAogCQkJaWYgKGlzQWdnKQogCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKQEAgLTkzNyw2 ICs5MzgsNyBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdp bmRvd0Z1bmMgKndmdW5jLAogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZB VUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lO RF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90 IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQ Ul9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBkMDk0 YWMzMDEzLi44MzM4NTY4MDFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTU4OCw2ICs1 ODgsNyBAQCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQg cF9leHByX2tpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CiAJCWNhc2UgRVhQUl9L SU5EX0NZQ0xFX01BUks6CiAJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2Ug RVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQlyZXN1bHQgPSBmYWxzZTsKIAkJCWJyZWFr OwogCX0KQEAgLTY3Myw2ICs2NzQsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJ CWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CiAJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJH RVQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQkvKiBva2F5ICovCiAJ CQlicmVhazsKIApAQCAtMjE0Myw2ICsyMTQ1LDcgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0 YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJ CWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNl IHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQ Ul9LSU5EX0lOREVYX0VYUFJFU1NJT046CkBAIC0zNDk1LDYgKzM0OTgsNyBAQCBQYXJzZUV4cHJL aW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJDSEVDSyI7CiAJCWNh c2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9E RUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJcmV0dXJuICJE RUZBVUxUIjsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKIAkJCXJldHVybiAi aW5kZXggZXhwcmVzc2lvbiI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5YWE0ZjYwNzY4 Li5mY2FjNjk0NDU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2MjAsNiArMjYyMCw3 IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxh c3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQ Ul9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA0MmEz MmZjMWNhLi43MzQ0OTU2ZWEyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j CisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0MzYsNiArNTQzNiw3IEBAIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFybmFtZXNwYWNlOwogCWludAkJ CWlfdmFydHlwZTsKIAlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJkZWZleHByOwog CWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwogCWludAkJCWlf dmFyY29sbGF0aW9uOwpAQCAtNTQ2MSw2ICs1NDYyLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUg KmZvdXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKIAkJCQkJ ICAiICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0 aW9uLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4 cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFy YWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFj bGRlZmF1bHRcbiIKIAkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKQEAg LTU0NzcsNiArNTQ3OSw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFybmFt ZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOwogCWlfdmFydHlwZSA9IFBR Zm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywg InZhcnR5cG5hbWUiKTsKKwlpX3ZhcmRlZmV4cHIgPSBQUWZudW1iZXIocmVzLCAidmFyZGVmZXhw ciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0 aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7 CiAKQEAgLTU1MTIsNiArNTUxNSwxMSBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkJ dmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CiAJCXZhcmluZm9baV0ucm9sbmFtZSA9 IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CiAKKwkJaWYgKFBR Z2V0aXNudWxsKHJlcywgaSwgaV92YXJkZWZleHByKSkKKwkJCXZhcmluZm9baV0udmFyZGVmZXhw ciA9IE5VTEw7CisJCWVsc2UKKwkJCXZhcmluZm9baV0udmFyZGVmZXhwciA9IHBnX3N0cmR1cChQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJkZWZleHByKSk7CisKIAkJLyogZG8gbm90IHRyeSB0byBk dW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCiAJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBp X3ZhcmFjbCkpCiAJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVO VF9BQ0w7CkBAIC01NTQ0LDYgKzU1NTIsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCWNoYXIJ ICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJY29uc3QgY2hhciAq dmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOwogCU9pZAkJCXZhcmNv bGxhdGlvbjsKIApAQCAtNTU1Niw2ICs1NTY1LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZv dXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1lID0gcGdfc3Ry ZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1lID0gdmFyaW5m by0+dmFydHlwbmFtZTsKKwl2YXJkZWZleHByID0gdmFyaW5mby0+dmFyZGVmZXhwcjsKIAl2YXJ4 YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVuZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24g PSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKQEAgLTU1NzUsNiArNTU4NSwxMCBAQCBkdW1wVmFy aWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCQkJCQkJ CSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlmICh2YXJkZWZleHByKQor CQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVzIiwKKwkJCQkJCSAgdmFyZGVm ZXhwcik7CisKIAlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24sICJyIikgPT0gMCkKIAkJYXBw ZW5kUFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIik7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oCmluZGV4IGU3NmQwNDhmYmEuLjA5NzkxMDIwMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzA5 LDYgKzcwOSw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAlEdW1wYWJsZUFjbCBk YWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2 YXJkZWZleHByOwogCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rpb247CiAJY2hhcgkgICAqdmFyYWNs OwogCWNoYXIJICAgKnJ2YXJhY2w7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDQxOWVh Mzk3MjcuLmY1OGVkZTUzMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDA1LDYg KzQwMDUsNDIgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxF IHRlc3RfdmFyaWFibGUgREVGQVVMVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0 Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYx LAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUz IEFTIGludGVnZXIgREVGQVVMVCAxMDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUg VkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMyBBUyBpbnRlZ2VyIERFRkFVTFQgMTA7XEUveG0s CisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMs CisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNs dWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9 PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgREVGQVVM VCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJ CWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9 PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlNCBBUyBpbnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJywKKwkJ cmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTQg QVMgaW50ZWdlciBERUZBVUxUIDEwIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDtcRS94bSwKKwkJ bGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJ CXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVf ZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEs CisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29y ZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92 aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jCmluZGV4IDRlOTI1NzQyYWMuLjQ4ZTVlYWVjNDMgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MjQ4 LDcgKzUyNDgsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVy Ym9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1 ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9j b2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTI2OSw2ICs1MjY5 LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ CQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24g YywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52 YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4g YnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19n ZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Q0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09O IENPTU1JVCBEUk9QJ1xuIgogCQkJCQkgICIgICAgV0hFTiAncicgVEhFTiAnT04gVFJBTlNBQ1RJ T04gRU5EIFJFU0VUJ1xuIgpAQCAtNTI3OCw2ICs1Mjc5LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25z dCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBl IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKIAkJCQkJICBnZXR0ZXh0X25v b3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0 dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAyYzUxOTg5YWE0Li4zNTI4YTk4ZjY3IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC02OCw2ICs2OCw5IEBAIENBVEFMT0cocGdf dmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogYWNjZXNzIHBlcm1pc3Npb25z ICovCiAJYWNsaXRlbQkJdmFyYWNsWzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7CiAKKwkvKiBsaXN0 IG9mIGV4cHJlc3Npb24gdHJlZXMgZm9yIHZhcmlhYmxlIGRlZmF1bHQgKE5VTEwgaWYgbm9uZSkg Ki8KKwlwZ19ub2RlX3RyZWUgdmFyZGVmZXhwciBCS0lfREVGQVVMVChfbnVsbF8pOworCiAjZW5k aWYKIH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAw N2FkYTZjNmZjLi5lZGE2YzRkMzBiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDg3LDYg KzM0ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCVR5cGVOYW1l ICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xsYXRlQ2xhdXNl ICpjb2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQg YWxyZWFkeSBleGlzdHMgKi8KKwlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNz aW9uICovCiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlv biAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5k ZXggYzExZmRiM2Q5Ny4uZmE1NjZiMTk0ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04 NCw2ICs4NCw3IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NZQ0xF X01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVlICovCiAJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQs CS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFyZ2V0ICovCiAJRVhQUl9LSU5EX0xFVF9UQVJHRVQs CQkvKiBMRVQgdGFyZ2V0ICovCisJRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQsIC8qIGRlZmF1 bHQgdmFsdWUgZm9yIHNlc3Npb24gdmFyaWFibGUgKi8KIH0gUGFyc2VFeHByS2luZDsKIAogCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA2MTA3N2E1MmIxLi5iYzdiNjBhOTdlIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAg VHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBD ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3Mg cHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2 YXIxIFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlw dGlvbic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwot IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQot IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0g ICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAK IERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1h cwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25h bCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdh aW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1 OTEsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBc ZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFn YWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmlj YXRpb25zLgpAQCAtNjczMCw5ICs2NzMwLDkgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0 ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu dmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0g U2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNl IGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAyZTI2NGU5NmQ5Li42YTBlNTIz ZTM4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dApAQCAtMTAwLDExICsxMDAsMTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKIENSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRP IERFRkFVTFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFi bGVzCi0gIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3du ZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBB Y2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGlu dGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxl X293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0 aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAg ICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAK KyAgICAgICAgICB8ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJP UCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTY5MywzICsxNjkzLDY2IEBAIFNFTEVDVCB2 YXIxIElTIE5VTEw7CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisg IFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7CisgIFJFVFVSTiAwOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxU IHZhcnRlc3RfZngoKTsKKy0tIHZhcnRlc3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAs IHNob3VsZCBmYWlsCitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKK0VSUk9SOiAgY2Fubm90 IGRyb3AgZnVuY3Rpb24gdmFydGVzdF9meCgpIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIGZ1bmN0aW9u IHZhcnRlc3RfZngoKQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRl cGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CitOT1RJ Q0U6ICB2YXJ0ZXN0X2Z4IGV4ZWN1dGVkCisgdmFyMSAKKy0tLS0tLQorICAgIDAKKygxIHJvdykK KworLS0gdGhlIGRlZmV4cHIgc2hvdWxkIGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVT OworLS0gaW4gdGhpcyBjYXNlLCB0aGUgZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAor TEVUIHZhcjEgPSAxMDA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEg cm93KQorCitESVNDQVJEIFZBUklBQkxFUzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQVElPTiAn dmFydGVzdF9meCBpcyBleGVjdXRpbmcnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CistLSBzaG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZh cjE7CitFUlJPUjogIHZhcnRlc3RfZnggaXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwg ZnVuY3Rpb24gdmFydGVzdF9meCgpIGxpbmUgMyBhdCBSQUlTRQorLS0gYWdhaW4KK1NFTEVDVCB2 YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FM IGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGJ1dCB3ZSBjYW4gd3Jp dGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4 KCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggZjdj ZTZiNzMyYS4uOTg1MGUxODM5ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTE2NSwzICsxMTY1LDUxIEBAIFJPTExCQUNLOwogU0VMRUNUIHZhcjEg SVMgTlVMTDsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJ Q0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBERUZBVUxUIHZhcnRlc3Rf ZngoKTsKKworLS0gdmFydGVzdF9meCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hvdWxk IGZhaWwKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworCistLSB0aGUgZGVmZXhwciBzaG91bGQgYmUgZXZhbHVhdGVkIG9ubHkgb25j ZQorU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBpbiB0aGlzIGNhc2Us IHRoZSBkZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsKK1NF TEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgRVhD RVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7CisgIFJFVFVSTiAwOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jhc2gK K1NFTEVDVCB2YXIxOworCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CisKKy0tIGJ1dCB3ZSBjYW4g d3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwotLSAKMi40Ny4xCgo= --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0012-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20241210-0012-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvsa9 RnJvbSBjNTE1ZTk0N2FhODQyOTBlODA4ZTA3ZGE4YjIxNjBhMzNiOWE2YWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjFdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCA1Yjk1Zjg1MzU0Li5kN2EyMzM0NzMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg1NSw3 ICs5ODU1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA2NDIzNDYxODZmLi5lMWMyOTQwZDRjIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JF QVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBb IENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFj ZWFibGU+IF0KLSAgICBbIE9OIENPTU1JVCBEUk9QIF0KKyAgICBbIHsgT04gQ09NTUlUIERST1Ag fCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3Bz aXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtMTE3LDYgKzExNywxNyBAQCBDUkVBVEUgWyB7IFRFTVBP UkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLXRyYW5zYWN0aW9uLWVuZC1yZXNldCI+ CisgICAgPHRlcm0+PGxpdGVyYWw+T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVDwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyB0aGUgc2Vzc2lv bgorICAgICAgdmFyaWFibGUgdG8gYmUgcmVzZXQgdG8gaXRzIGRlZmF1bHQgdmFsdWUgd2hlbiB0 aGUgdHJhbnNhY3Rpb24gaXMgY29tbWl0dGVkCisgICAgICBvciByb2xsZWQgYmFjay4KKyAgICAg PC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3Zhcmlh YmxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggYTU1OWZiMzg2Zi4uNjJmZTBjMzAyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtODMsNiArODMsOCBAQCB0eXBlZGVmIHN0cnVjdCBTVmFy aWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rp b25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCWJvb2wJCXJlc2V0X2F0X2VveDsKKwog CS8qCiAJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5z YWN0aW9uIHRoYXQgZHJvcHBlZCB0aGUKIAkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0 aGlzIGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgpAQCAtMTEwLDYgKzEx MiwxMiBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVM TDsKIC8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVzc2FnZSAqLwog c3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOwogCisvKgorICogdHJ1ZSwgd2hl biBzb21lIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBoYXMgT04gQ09NTUlUIERST1AKKyAqIG9yIE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2VzCisgKi8KK3N0YXRpYyBib29sIGhhc19zZXNz aW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworCiAvKgogICogVGhlIGNv bnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1lZGlh dGVseS4gIElmCiAgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0cmFu c2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdApAQCAtMzg1LDYgKzM5MywzMiBAQCByZW1v dmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogCX0KIH0KIAorLyoKKyAq IHJlbW92ZSBlbnRyaWVzIG1hcmtlZCBhcyAicmVzZXRfYXRfZW94IgorICovCitzdGF0aWMgdm9p ZAorcmVtb3ZlX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94KHZvaWQpCit7CisJ SEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKKworCS8qIGxlYXZlIHF1Y2tseSwgd2hlbiB0aGVyZSBhcmUgbm90 IHRoYXQgdmFyaWFibGVzICovCisJaWYgKCFoYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNl dF9hdF9lb3gpCisJCXJldHVybjsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZh cnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVz KSkgIT0gTlVMTCkKKwl7CisJCWlmIChzdmFyLT5yZXNldF9hdF9lb3gpCisJCQloYXNoX3NlYXJj aChzZXNzaW9udmFycywgJnN2YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJfQorCisJ aGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7Cit9CisKIC8q CiAgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFi bGVzLAogICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVtb3J5LgpA QCAtMzkyLDYgKzQyNiw4IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wg YXRFT1gpCiB2b2lkCiBBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQp CiB7CisJcmVtb3ZlX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94KCk7CisKIAlp ZiAoaXNDb21taXQpCiAJewogCQlpZiAoeGFjdF9kcm9wX2l0ZW1zKQpAQCAtNTAzLDYgKzUzOSwy MSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwkvKgorCSAqIFdlIGRvbid0 IG5lZWQgdG8gZXhwbGljaXRseSByZXNldCB2YXJpYWJsZXMgbWFya2VkIE9OIENPTU1JVCBEUk9Q LiBJdAorCSAqIGNhbiBiZSBkb25lIGJ5IHNpbnZhbCBtZXNzYWdlIHByb2Nlc3NpbmcuIEJ1dCB0 aGlzIHByb2Nlc3NpbmcgY2FuIGJlCisJICogcG9zdHBvbmVkIGR1ZSBhYm9ydGVkIHRyYW5zYWN0 aW9uLiBPbiBzZWNvbmQgaGFuZCB0aGVyZSBpcyBub3QgYQorCSAqIHJlYXNvbiwgd2h5IGRvbid0 IGRvIGl0IGF0IHRyYW5zYWN0aW9uIGVuZCBpbW1lZGlhdGVseS4KKwkgKi8KKwlpZiAodmFyZm9y bS0+dmFyeGFjdGVuZGFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX1JFU0VUIHx8CisJCXZhcmZv cm0tPnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJc3Zh ci0+cmVzZXRfYXRfZW94ID0gdHJ1ZTsKKwkJaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVz ZXRfYXRfZW94ID0gdHJ1ZTsKKwl9CisJZWxzZQorCQlzdmFyLT5yZXNldF9hdF9lb3ggPSBmYWxz ZTsKKwogCXN2YXItPmRyb3BfbHhpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJc3Zhci0+ aXNudWxsID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGYxZWJlMTliODIuLjEyMmUzYzUwNWUgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQpAQCAtNTI1OSw2ICs1MjU5LDcgQEAgQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CiAg KiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCiAgKi8KIFhhY3RFbmRBY3Rpb25PcHRpb246 ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CisJCQl8 IE9OIFRSQU5TQUNUSU9OIEVORF9QIFJFU0VUCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfUkVT RVQ7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09Q OyB9CiAJCTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggMmQyZTBmZmJlZC4uNDJhMzJmYzFjYSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCkBAIC01NDM2LDYgKzU0MzYsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkK IAlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlpX3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0 eXBuYW1lOworCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVyOwog CWludAkJCWlfdmFyY29sbGF0aW9uOwogCWludAkJCWlfdmFyYWNsOwpAQCAtNTQ1Myw2ICs1NDU0 LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJLyogZ2V0IHRoZSB2YXJpYWJsZXMg aW4gY3VycmVudCBkYXRhYmFzZSAqLwogCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAogCQkJCQkg ICJTRUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAg IHYudmFyeGFjdGVuZGFjdGlvbixcbiIKIAkJCQkJICAiICAgICAgIHYudmFybmFtZXNwYWNlLCB2 LnZhcnR5cGUsXG4iCiAJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYudmFy dHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCiAJCQkJCSAgIiAgICAgICBDQVNF IFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgpAQCAtNTQ3NSw2ICs1NDc3 LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3BhY2UgPSBQUWZu dW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywg InZhcnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIp OworCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0aW9u Iik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAK IAlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CkBAIC01NDk4LDYgKzU1 MDEsOSBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAogCQl2YXJpbmZvW2ldLnZhcnR5 cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwZSkpOwogCQl2YXJpbmZvW2ld LnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlwbmFtZSkp OworCQl2YXJpbmZvW2ldLnZhcnhhY3RlbmRhY3Rpb24gPQorCQkJcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24pKTsKKwogCQl2YXJpbmZvW2ldLnZhcmNvbGxh dGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKIAogCQl2 YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFj bCkpOwpAQCAtNTUzOCw2ICs1NTQ0LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNv bnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAg ICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOworCWNvbnN0IGNoYXIgKnZh cnhhY3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCiAJLyogc2tpcCBpZiBub3Qg dG8gYmUgZHVtcGVkICovCkBAIC01NTQ5LDYgKzU1NTYsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBw Z19zdHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2 YXJpbmZvLT52YXJ0eXBuYW1lOworCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0 ZW5kYWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAogCWFw cGVuZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKQEAgLTU1NjcsNiAr NTU3NSw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8g KnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJ aWYgKHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9uLCAiciIpID09IDApCisJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCIpOworCiAJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICI7XG4iKTsKIAogCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NP TVBPTkVOVF9ERUZJTklUSU9OKQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggMmYzOWZmNGM5NS4uZTc2ZDA0OGZi YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCkBAIC03MDksNiArNzA5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1Zhcmlh YmxlSW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2 YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcnhhY3RlbmRhY3Rpb247CiAJY2hhcgkgICAqdmFyYWNs OwogCWNoYXIJICAgKnJ2YXJhY2w7CiAJY2hhcgkgICAqaW5pdHZhcmFjbDsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKaW5kZXggZGQ4YzA1NGE2YS4uNDE5ZWEzOTcyNyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKQEAgLTM5ODcsNiArMzk4NywyNCBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJ fSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBPTiBUUkFOU0FDVElPTiBFTkQg UkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JF QVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAg ID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBpbnRlZ2VyIE9OIFRS QU5TQUNUSU9OIEVORCBSRVNFVDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFS SUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBpbnRlZ2VyIE9OIFRSQU5TQUNUSU9OIEVORCBS RVNFVDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9z Y2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1 cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+ IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBk dW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGFjYzQ3MzM0ZWIuLjRlOTI1NzQyYWMgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC01MjcxLDYgKzUyNzEsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlp ZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRh Y3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgor CQkJCQkgICIgICAgV0hFTiAncicgVEhFTiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xuIgog CQkJCQkgICIgIEVORCBhcyBcIiVzXCJcbiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEi KSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aAppbmRleCA2NDJhNTI3MzNmLi4yYzUxOTg5YWE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC03NSw2ICs3NSw3IEBAIHR5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24K IHsKIAlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbicsCS8qIE5PT1AgKi8KIAlWQVJJQUJMRV9Y QUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCisJVkFSSUFCTEVfWEFDVEVO RF9SRVNFVCA9ICdyJywJLyogT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUICovCiB9CQkJVmFyaWFi bGVYYWN0RW5kQWN0aW9uOwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggYTYwOTc5N2RjNS4u ZTlhMjU0YmNkMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Np b24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9u LXZhcmlhYmxlLm91dApAQCAtODYsMTEgKzg2LDEyIEBAIG15dmFyCiAKIHN0ZXAgc3IxOiBST0xM QkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBjcmVh dGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitzdGFydGluZyBw ZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94X3IgY3JlYXRlNCBsZXQ0IGRy b3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0ZQogc3RlcCBjcmVhdGUzOiBD UkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZhcjMgPSAn dGVzdCc7CiBzdGVwIHMzOiBCRUdJTjsKIHN0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZBUklBQkxF IG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7CitzdGVwIG9fZW94X3I6IENSRUFU RSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VU OyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsKIHN0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklB QkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOwogc3Rl cCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CkBAIC0xMDMsNiArMTA0LDcgQEAgdAogCiBz dGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFCTEVTOwogc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAg Y2xlYW46IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hfcjsKIHN0ZXAgc3RhdGU6IFNFTEVDVCB2 YXJuYW1lIEZST00gcGdfdmFyaWFibGU7CiB2YXJuYW1lCiAtLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjIGIvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwppbmRleCA0NWU2NWQ0MDg1Li41 ZDA4OWM4YTRlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12 YXJpYWJsZS5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlh YmxlLnNwZWMKQEAgLTI1LDEyICsyNSwxNCBAQCBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJ TjsgfQogc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KIHN0ZXAgb19jX2QJCXsg Q1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsg fQorc3RlcCBvX2VveF9yCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyX29fZW94X3IgQVMgdGV4dCBP TiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7IExFVCBteXZhcl9vX2VveF9yID0gJ3Rlc3QnOyB9CiBz dGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KIHN0ZXAgbGV0 NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CiBzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUg bXl2YXI0OyB9CiBzdGVwIGludmFsMwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2Zv cmVpZ25fdGFibGU7IH0KIHN0ZXAgZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9CiBzdGVw IHNjMwkJeyBDT01NSVQ7IH0KK3N0ZXAgY2xlYW4JCXsgRFJPUCBWQVJJQUJMRSBteXZhcl9vX2Vv eF9yOyB9CiBzdGVwIHN0YXRlCQl7IFNFTEVDVCB2YXJuYW1lIEZST00gcGdfdmFyaWFibGU7IH0K IAogc2Vzc2lvbiBzNApAQCAtNDgsNCArNTAsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBk cm9wIGNyZWF0ZSBkYmcgdmFsCiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25j dXJyZW50IGRyb3AKIHBlcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2 YWwgc3IxCiAjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBo YXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19k IGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11 dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9wNCBk cm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMjY2ZjYyODRmZC4uMmUyNjRl OTZkOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKQEAgLTE2NTksMyArMTY1OSwzNyBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOwogICAgICAwCiAoMSByb3cpCiAKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7CitCRUdJTjsKKyAgTEVUIHZhcjEgPSAx MDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0NP TU1JVDsKKy0tIHNob3VsZCBiZSBOVUxMOworU0VMRUNUIHZhcjEgSVMgTlVMTDsKKyA/Y29sdW1u PyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdmFyMSA9IDEwMDsK KyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworUk9MTEJB Q0s7CistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZhcjEgSVMgTlVMTDsKKyA/Y29sdW1uPyAK Ky0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA1MzQ1M2M4OGVmLi5mN2Nl NmI3MzJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxl cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBA IC0xMTQ1LDMgKzExNDUsMjMgQEAgQ09NTUlUOwogU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKIC0tIHNob3VsZCBiZSB6ZXJvCiBTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworCitCRUdJTjsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgTlVMTDsK K1NFTEVDVCB2YXIxIElTIE5VTEw7CisKK0JFR0lOOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VM RUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElT IE5VTEw7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0011-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20241210-0011-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvsj10 RnJvbSAwNWI2NWYwZGI0YzE4MDA5NDMwZjBiMzIzOGI4ZWZhZTgxMzc0NDEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTEvMjFdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKystCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAgNjYgKysrKysrCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMjMg ZmlsZXMgY2hhbmdlZCwgNTQ5IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKaW5kZXggNmRhMzk1MGQ2Yy4uNWI5NWY4NTM1NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4 NDksNiArOTg0OSwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u IGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJmb3Jt ZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKaW5kZXggYTU1NDdmOWNjOS4uZjZiNTA2ZmU4NyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM4 MCw5ICs1MzgwLDkgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKICAgICA8Y29tbWFuZD5MRVQ8 L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0aW9u YWw6CiAgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKICAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0 aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGluCi0gICAgcHJvY2VkdXJh bCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVu dCwgYnV0Ci0gICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJl ZCAobGlrZSB0aGUgY29udGVudCBvZgotICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIHByb2Nl ZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlIHBl cnNpc3RlbnQKKyAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIg cGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQorICAgIGNvbnRlbnQgb2YgdGVtcG9yYXJ5 IHRhYmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKaW5kZXggMDViZjY3ZTM0MS4uNjQyMzQ2MTg2ZiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw4IEBAIFBvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotQ1JFQVRFIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5 cGU8L3JlcGxhY2VhYmxlPiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1Q IH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gXSBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KKyAgICBbIE9OIENPTU1J VCBEUk9QIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBA IC0xMDQsNiArMTA1LDE4IEBAIENSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFiCiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUtb24tY29tbWl0LWRyb3AiPgorICAgIDx0ZXJtPjxsaXRlcmFsPk9OIENPTU1JVCBE Uk9QPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhlIDxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFsPiBjbGF1c2Ugc3BlY2lmaWVzIHRo ZSBiZWhhdmlvdXIgb2YgYQorICAgICAgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGUgYXQgdHJh bnNhY3Rpb24gY29tbWl0LiBXaXRoIHRoaXMgY2xhdXNlLCB0aGUKKyAgICAgIHNlc3Npb24gdmFy aWFibGUgaXMgZHJvcHBlZCBhdCBjb21taXQgdGltZS4gVGhlIGNsYXVzZSBpcyBvbmx5IGFsbG93 ZWQKKyAgICAgIGZvciB0ZW1wb3JhcnkgdmFyaWFibGVzLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFyaWFibGVsaXN0PgogIDwvcmVm c2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwppbmRleCAzZWJkN2M0MDQxLi43ZTY2 Yjc1ZTcyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0zNiw2ICszNiw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19lbnVtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCkBAIC0yMzE2 LDYgKzIzMTcsOSBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCSAqLwogCXNtZ3JEb1BlbmRp bmdTeW5jcyh0cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCisJLyogcmVtb3ZlIHZhbHVlcyBv ZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCisJQXRQcmVFT1hhY3Rf U2Vzc2lvblZhcmlhYmxlcyh0cnVlKTsKKwogCS8qIGNsb3NlIGxhcmdlIG9iamVjdHMgYmVmb3Jl IGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJnZU9iamVjdCh0cnVlKTsKIApA QCAtMjkxMiw2ICsyOTE2LDcgQEAgQWJvcnRUcmFuc2FjdGlvbih2b2lkKQogCUF0QWJvcnRfUG9y dGFscygpOwogCXNtZ3JEb1BlbmRpbmdTeW5jcyhmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsK IAlBdEVPWGFjdF9MYXJnZU9iamVjdChmYWxzZSk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlh YmxlcyhmYWxzZSk7CiAJQXRBYm9ydF9Ob3RpZnkoKTsKIAlBdEVPWGFjdF9SZWxhdGlvbk1hcChm YWxzZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAlBdEFib3J0X1R3b3BoYXNlKCk7CkBAIC01MTc3 LDYgKzUxODIsOCBAQCBDb21taXRTdWJUcmFuc2FjdGlvbih2b2lkKQogCUF0RU9TdWJYYWN0X1NQ SSh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9vbl9jb21taXRfYWN0 aW9ucyh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkgIHMtPnBhcmVudC0+c3Vi VHJhbnNhY3Rpb25JZCk7CisJQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlLCBzLT5z dWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsK IAlBdEVPU3ViWGFjdF9OYW1lc3BhY2UodHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJ CSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9GaWxlcyh0cnVl LCBzLT5zdWJUcmFuc2FjdGlvbklkLApAQCAtNTM0Miw2ICs1MzQ5LDggQEAgQWJvcnRTdWJUcmFu c2FjdGlvbih2b2lkKQogCQlBdEVPU3ViWGFjdF9TUEkoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQpOwogCQlBdEVPU3ViWGFjdF9vbl9jb21taXRfYWN0aW9ucyhmYWxzZSwgcy0+c3ViVHJhbnNh Y3Rpb25JZCwKIAkJCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwkJQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKKwkJ CQkJCQkJCSBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9OYW1l c3BhY2UoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJICBzLT5wYXJlbnQtPnN1 YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9GaWxlcyhmYWxzZSwgcy0+c3ViVHJhbnNh Y3Rpb25JZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAyZjE3NjI5ZTdkLi40NTIw ZWVkNmRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0zNiw3ICszNiw4IEBAIHN0 YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CQkJCQkJCQkJIGludDMyIHZhclR5cG1vZCwKIAkJCQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJ CQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKLQkJCQkJCQkJCSBib29sIGlmX25vdF9leGlzdHMpOwor CQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRB Y3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAKIAogLyoKQEAgLTQ5LDcgKzUwLDggQEAgY3JlYXRl X3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJaW50MzIgdmFyVHlwbW9kLAogCQkJ CU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAotCQkJCWJvb2wgaWZfbm90X2V4 aXN0cykKKwkJCQlib29sIGlmX25vdF9leGlzdHMsCisJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9u IHZhclhhY3RFbmRBY3Rpb24pCiB7CiAJQWNsCQkgICAqdmFyYWNsOwogCU5hbWVEYXRhCXZhcm5h bWU7CkBAIC0xMTAsNiArMTEyLDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJbnQzMkdldERh dHVtKHZhclR5cG1vZCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3duZXIgLSAxXSA9 IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOworCXZhbHVl c1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2 YXJYYWN0RW5kQWN0aW9uKTsKIAogCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVD VF9WQVJJQUJMRSwgdmFyT3duZXIsCiAJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKQEAgLTE4Myw2 ICsxODYsMTMgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNz aW9uVmFyU3RtdCAqc3RtdCkKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2 YXJpYWJsZTsKIAorCS8qIGNoZWNrIGNvbnNpc3RlbmN5IG9mIGFyZ3VtZW50cyAqLworCWlmIChz dG10LT5YYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUAorCQkmJiBzdG10LT52 YXJpYWJsZS0+cmVscGVyc2lzdGVuY2UgIT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklOSVRJT04p LAorCQkJCSBlcnJtc2coIk9OIENPTU1JVCBEUk9QIGNhbiBvbmx5IGJlIHVzZWQgb24gdGVtcG9y YXJ5IHZhcmlhYmxlcyIpKSk7CisKIAluYW1lc3BhY2VpZCA9CiAJCVJhbmdlVmFyR2V0QW5kQ2hl Y2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJsZSwgTm9Mb2NrLCBOVUxMKTsKIApAQCAt MjIyLDExICsyMzIsMTcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVh dGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB0eXBtb2QsCiAJCQkJCQkJICAgdmFy b3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAotCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlz dHMpOworCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMsCisJCQkJCQkJICAgc3RtdC0+WGFj dEVuZEFjdGlvbik7CiAKIAllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAogCQkgc3RtdC0+ dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKIAorCS8qIHdlIHdhbnQgU2Vz c2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3MgdG8gc2VlIHRoZSBjYXRhbG9nIGNoYW5nZXMu ICovCisJQ29tbWFuZENvdW50ZXJJbmNyZW1lbnQoKTsKKworCVNlc3Npb25WYXJpYWJsZUNyZWF0 ZVBvc3Rwcm9jZXNzKHZhcmlhYmxlLm9iamVjdElkLCBzdG10LT5YYWN0RW5kQWN0aW9uKTsKKwog CXJldHVybiB2YXJpYWJsZTsKIH0KIApAQCAtMjM5LDYgKzI1NSw3IEBAIERyb3BWYXJpYWJsZUJ5 SWQoT2lkIHZhcmlkKQogewogCVJlbGF0aW9uCXJlbDsKIAlIZWFwVHVwbGUJdHVwOworCWNoYXIJ CVhhY3RFbmRBY3Rpb247CiAKIAlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwg Um93RXhjbHVzaXZlTG9jayk7CiAKQEAgLTI0Nyw2ICsyNjQsOCBAQCBEcm9wVmFyaWFibGVCeUlk KE9pZCB2YXJpZCkKIAlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKIAkJZWxvZyhFUlJPUiwg ImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOwogCisJWGFjdEVu ZEFjdGlvbiA9ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCkpLT52YXJ4YWN0ZW5k YWN0aW9uOworCiAJQ2F0YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+dF9zZWxmKTsKIAogCVJl bGVhc2VTeXNDYWNoZSh0dXApOwpAQCAtMjU0LDUgKzI3Myw1IEBAIERyb3BWYXJpYWJsZUJ5SWQo T2lkIHZhcmlkKQogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAkvKiBk byB0aGUgbmVjZXNzYXJ5IGNsZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBpZiBuZWVkZWQgKi8KLQlT ZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3ModmFyaWQpOworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCwgWGFjdEVuZEFjdGlvbik7CiB9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggYjM3ZjZjM2ZiMS4uYTU1OWZiMzg2ZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMTYsNiArMTYsOCBAQAogCiAj aW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1l c3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBA IC0zMSw2ICszMywxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0K K3sKKwlPaWQJCQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkv KgorCSAqIGNyZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4g SWYgdGhlIGFjdGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRy YW5zYWN0aW9uLCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcg c3VieGFjdCwgb3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRy YW5zYWN0aW9uSWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19z dWJpZDsKK30gU1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHZhbHVlcyBvZiBz ZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1v cnkKICAqIGluIHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCBpbiBiaW5hcnkgZm9ybWF0LgpAQCAtOTYsMTMgKzExMSwyMSBAQCBzdGF0aWMgTWVtb3J5 Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKIHN0YXRpYyBib29sIG5lZWRz X3ZhbGlkYXRpb24gPSBmYWxzZTsKIAogLyoKLSAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vz c2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbwotICogdGhh dCBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24g dmFyaWFibGUuCi0gKiAidmFsaWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhh dCBwZXJmb3JtZWQgc2FpZCB2YWxpZGF0aW9uLCBzbwotICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVw ZWF0aW5nIHRoZSBlZmZvcnQuCisgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFy aWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgSWYKKyAqIHBvc3NpYmxlLCB3ZSBk byB0aGF0IGF0IHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0 aGF0CisgKiBpZiB0aGUgdHJhbnNhY3Rpb24gYWJvcnRlZCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2Vz cyB0byB0aGUgc3lzdGVtIGNhdGFsb2cuCisgKiBJbiB0aGF0IGNhc2UsIHdlIGNsZWFuIHVwIGlu IHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQgcmVhZHMgb3Igd3JpdGVzIGEKKyAqIHNlc3Npb24g dmFyaWFibGUuICAidmFsaWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBw ZXJmb3JtZWQKKyAqIHNhaWQgdmFsaWRhdGlvbiwgc28gdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0 aW5nIHRoZSBlZmZvcnQuCiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVk X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxk cyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJv cF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94 YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZv ciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTM5LDE2ICsxNjIsNDUg QEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWlu dDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8g c2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoK KyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRy eSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Np b25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9u KQoreworCS8qCisJICogRm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRl IGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNh dGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9Q KQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao dmFyaWQpOworCX0KK30KKwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAg Zm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBj YXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAot U2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3Nl cnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYg KFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlz VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisK KwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJ aWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xNzAsNiArMjIyLDU3IEBA IFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgor ICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJp YWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAq LworCisvKgorICogUmVnaXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICov CitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZh cmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0 IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNv bnRleHQpOworCisJeGFjdF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9j KHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFy aWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlv bklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25J ZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7 CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0 ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0 aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBz ZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xs YmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24u CisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9w KE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3Bf aXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJp YWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09 IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNh Y3Rpb25JZCgpOworCX0KK30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1l bW9yeQogICovCkBAIC0yMjIsOSArMzI1LDExIEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQo U1ZhcmlhYmxlIHN2YXIpCiAvKgogICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vz c2lvbiB2YXJpYWJsZSBkYXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQogICogdGhlIG1lbW9y eSBmb3IgYWxsIGludmFsaWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBh bnkgcmVhZCBvcgotICogd3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBh IHZhcmlhYmxlJ3MgbWVtb3J5IGlzIHBvc3Rwb25lZCBpZgotICogdGhlIHZhcmlhYmxlIGhhcyBi ZWVuIGRyb3BwZWQgYnkgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKLSAqIG9w ZXJhdGlvbiBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KKyAqIHdyaXRlIG9mIGEgc2Vzc2lv biB2YXJpYWJsZSBvciB3aGVuIHRoZSB0cmFuc2FjdGlvbiBlbmRzLiAgQXQgdGhlIGVuZCBvZiBh CisgKiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgdHJ1ZSkgd2UgY2FuIGRpc2NhcmQgYWxsIGludmFs aWQgdmFyaWFibGVzLiAgSW5zaWRlIGEKKyAqIHRyYW5zYWN0aW9uIChhdEVPWCBpcyBmYWxzZSkg d2UgcG9zdHBvbmUgZnJlZWluZyBhIHZhcmlhYmxlJ3MgbWVtb3J5IGlmIHRoZQorICogdmFyaWFi bGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhh dCBvcGVyYXRpb24KKyAqIGNvdWxkIHN0aWxsIGJlIHJvbGxlZCBiYWNrLgogICoKICAqIEl0IGlz IHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBhIGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdo aWxlCiAgKiByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywg c28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0CkBAIC0yMzIsNyArMzM3LDcgQEAgaXNfc2Vzc2lv bl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKICAqIGRvbmUuICBIb3dldmVyLCB3ZSBj YW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25jZS4KICAqLwogc3Rh dGljIHZvaWQKLXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCityZW1vdmVf aW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogewogCUhBU0hfU0VRX1NUQVRV UyBzdGF0dXM7CiAJU1ZhcmlhYmxlCXN2YXI7CkBAIC0yNTksNyArMzY0LDcgQEAgcmVtb3ZlX2lu dmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKIAl7CiAJCWlmICghc3Zhci0+aXNfdmFsaWQp CiAJCXsKLQkJCWlmIChzdmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlp ZiAoIWF0RU9YICYmIHN2YXItPmRyb3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKIAkJCXsK IAkJCQkvKiB0cnkgYWdhaW4gaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KIAkJCQluZWVkc192 YWxpZGF0aW9uID0gdHJ1ZTsKQEAgLTI4MCw2ICszODUsOTUgQEAgcmVtb3ZlX2ludmFsaWRfc2Vz c2lvbl92YXJpYWJsZXModm9pZCkKIAl9CiB9CiAKKy8qCisgICogUGVyZm9ybSBPTiBDT01NSVQg RFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzLAorICAqIGFuZCByZW1vdmUgYWxs IGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9T ZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQpCit7CisJaWYgKGlzQ29tbWl0KQorCXsKKwkJ aWYgKHhhY3RfZHJvcF9pdGVtcykKKwkJeworCQkJTGlzdENlbGwgICAqbDsKKworCQkJZm9yZWFj aChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJCQl7CisJCQkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4 YWN0X2FpID0KKwkJCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJ CQkvKiBpdGVyYXRlIG9ubHkgb3ZlciBlbnRyaWVzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgKi8K KwkJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQpCisJCQkJeworCQkJCQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKworCQkJCQlvYmplY3QuY2xh c3NJZCA9IFZhcmlhYmxlUmVsYXRpb25JZDsKKwkJCQkJb2JqZWN0Lm9iamVjdElkID0geGFjdF9h aS0+dmFyaWQ7CisJCQkJCW9iamVjdC5vYmplY3RTdWJJZCA9IDA7CisKKwkJCQkJLyoKKwkJCQkJ ICogU2luY2UgdGhpcyBpcyBhbiBhdXRvbWF0aWMgZHJvcCwgcmF0aGVyIHRoYW4gb25lCisJCQkJ CSAqIGRpcmVjdGx5IGluaXRpYXRlZCBieSB0aGUgdXNlciwgd2UgcGFzcyB0aGUKKwkJCQkJICog UEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCBmbGFnLgorCQkJCQkgKi8KKwkJCQkJZWxvZyhERUJV RzEsICJzZXNzaW9uIHZhcmlhYmxlIChvaWQ6JXUpIHdpbGwgYmUgZGVsZXRlZCAoZm9yY2VkIGJ5 IE9OIENPTU1JVCBEUk9QIGNsYXVzZSkiLAorCQkJCQkJIHhhY3RfYWktPnZhcmlkKTsKKworCQkJ CQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQkJCQkJUEVSRk9S TV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX1FVSUVUTFkp OworCQkJCX0KKwkJCX0KKwkJfQorCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVz KHRydWUpOworCX0KKworCS8qCisJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMu IEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAorCSAqIG5vdywgb3IgbG9zdCBpbnNp ZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KKwkgKi8KKwlsaXN0X2ZyZWVfZGVlcCh4YWN0X2Ryb3Bf aXRlbXMpOworCXhhY3RfZHJvcF9pdGVtcyA9IE5VTEw7Cit9CisKKy8qCisgKiBQb3N0LXN1YmNv bW1pdCBvciBwb3N0LXN1YmFib3J0IGNsZWFudXAgb2YgeGFjdCBkcm9wIGxpc3QuCisgKgorICog RHVyaW5nIHN1YmFib3J0LCB3ZSBjYW4gaW1tZWRpYXRlbHkgcmVtb3ZlIGVudHJpZXMgY3JlYXRl ZCBkdXJpbmcgdGhpcworICogc3VidHJhbnNhY3Rpb24uIER1cmluZyBzdWJjb21taXQsIGp1c3Qg dHJhbnNmZXIgZW50cmllcyBtYXJrZWQgZHVyaW5nCisgKiB0aGlzIHN1YnRyYW5zYWN0aW9uIGFz IGJlaW5nIHRoZSBwYXJlbnQncyByZXNwb25zaWJpbGl0eS4KKyAqLwordm9pZAorQXRFT1N1Ylhh Y3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAorCQkJCQkJCSBTdWJUcmFuc2FjdGlv bklkIG15U3ViaWQsCisJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpCit7CisJ TGlzdENlbGwgICAqY3VyX2l0ZW07CisKKwlmb3JlYWNoKGN1cl9pdGVtLCB4YWN0X2Ryb3BfaXRl bXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJs ZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QoY3VyX2l0ZW0pOworCisJCWlmICghaXNDb21taXQgJiYg eGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPT0gbXlTdWJpZCkKKwkJeworCQkJLyogY3VyX2l0ZW0g bXVzdCBiZSByZW1vdmVkICovCisJCQl4YWN0X2Ryb3BfaXRlbXMgPSBmb3JlYWNoX2RlbGV0ZV9j dXJyZW50KHhhY3RfZHJvcF9pdGVtcywgY3VyX2l0ZW0pOworCQkJcGZyZWUoeGFjdF9haSk7CisJ CX0KKwkJZWxzZQorCQl7CisJCQkvKiBjdXJfaXRlbSBtdXN0IGJlIHByZXNlcnZlZCAqLworCQkJ aWYgKHhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCQkJeGFjdF9haS0+Y3Jl YXRpbmdfc3ViaWQgPSBwYXJlbnRTdWJpZDsKKwkJCWlmICh4YWN0X2FpLT5kZWxldGluZ19zdWJp ZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID0gaXNDb21taXQgPyBw YXJlbnRTdWJpZCA6IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQl9CisJfQorfQorCiAvKgog ICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtNDM4LDcg KzYzMiw3IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkJdmFsaWRhdGVkX2x4 aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCiAJewogCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBk cm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICovCi0JCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFy aWFibGVzKCk7CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKIAog CQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24g Ki8KIAkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKQEAgLTUzNCw3ICs3Mjgs NyBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051 bGwpCiAJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJl ZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVf aW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3Zh cmlhYmxlcyhmYWxzZSk7CiAKIAkJLyogZG9uJ3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRo ZSBzYW1lIHRyYW5zYWN0aW9uICovCiAJCXZhbGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4 aWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMKaW5kZXggMmJkNDllYjU1ZS4uYzczNmM1YzQ2ZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ZpZXcuYwpAQCAtNDg0LDcgKzQ4NCw3IEBAIERlZmluZVZpZXcoVmlld1N0bXQgKnN0bXQsIGNv bnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAqLwogCXZpZXcgPSBjb3B5T2JqZWN0KHN0bXQtPnZp ZXcpOwkvKiBkb24ndCBjb3JydXB0IG9yaWdpbmFsIGNvbW1hbmQgKi8KIAlpZiAodmlldy0+cmVs cGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UCi0JCSYmIGlzUXVlcnlVc2lu Z1RlbXBSZWxhdGlvbih2aWV3UGFyc2UpKQorCQkmJiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHZp ZXdQYXJzZSkpCiAJewogCQl2aWV3LT5yZWxwZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1RF TVA7CiAJCWVyZXBvcnQoTk9USUNFLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggZDRhOTk2YmNjMi4u ZjgyNjRiMGFmOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0zMzg4LDEwICszMzg4LDEwIEBAIHRy YW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVB c1N0bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9uIHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJl ZnJlc2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNl IGRpc2FwcGVhcmVkLgogCQkgKi8KLQkJaWYgKGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVy eSkpCisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJ IGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVz IG9yIHZpZXdzIikpKTsKKwkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90 IHVzZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAK IAkJLyoKIAkJICogQSBtYXRlcmlhbGl6ZWQgdmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZl IHBhcmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggZGRiMzhlMzBiMi4uZjFlYmUx OWI4MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NjYsNiArNDY2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VS ZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1 ZXJ5KTsKICV0eXBlIDxpdmFsPgkgT3B0VGVtcAogJXR5cGUgPGl2YWw+CSBPcHROb0xvZwogJXR5 cGUgPG9uY29tbWl0PiBPbkNvbW1pdE9wdGlvbgorJXR5cGUgPGl2YWw+CSBYYWN0RW5kQWN0aW9u T3B0aW9uCiAKICV0eXBlIDxpdmFsPglmb3JfbG9ja2luZ19zdHJlbmd0aAogJXR5cGUgPG5vZGU+ CWZvcl9sb2NraW5nX2l0ZW0KQEAgLTUyMjksMjYgKzUyMzAsMzkgQEAgY3JlYXRlX2V4dGVuc2lv bl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0 bXQ6Ci0JCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9w dF9jb2xsYXRlX2NsYXVzZQorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25h bWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9u CiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFyaWFibGUgPSAkMzsKLQkJCQkJbi0+dHlwZU5hbWUg PSAkNTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQkk NC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNDsKKwkJCQkJbi0+ dHlwZU5hbWUgPSAkNjsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3 OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDg7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBm YWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIFZBUklBQkxF IElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxh dGVfY2xhdXNlCisJCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBx dWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRB Y3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5v ZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQ2OwotCQkJCQlu LT50eXBlTmFtZSA9ICQ4OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDk7CisJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ3 OworCQkJCQluLT50eXBlTmFtZSA9ICQ5OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDEwOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9u b3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCisv KgorICogVGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nl c3NmdWwKKyAqIHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KKyAqLworWGFjdEVuZEFjdGlv bk9wdGlvbjogIE9OIENPTU1JVCBEUk9QCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7 IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09QOyB9 CisJCTsKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04g bmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMK aW5kZXggODA3NWIxYjhhMS4uOTVhZTIxMDgwNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBleHBhbmRUdXBsZURlc2MoVHVw bGVEZXNjIHR1cGRlc2MsIEFsaWFzICplcmVmLAogc3RhdGljIGludAlzcGVjaWFsQXR0TnVtKGNv bnN0IGNoYXIgKmF0dG5hbWUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChQ YXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7CiBzdGF0aWMgYm9vbCBydGVf dmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpy dGUpOwotc3RhdGljIGJvb2wgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpu b2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRpYyBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rf d2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpOwogCiAKIC8qCkBAIC0zODk2LDEzICsz ODk2LDEzIEBAIHJ0ZV92aXNpYmxlX2lmX3F1YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJh bmdlVGJsRW50cnkgKnJ0ZSkKICAqIHRoZSBxdWVyeSBpcyBhIHRlbXBvcmFyeSByZWxhdGlvbiAo dGFibGUsIHZpZXcsIG9yIG1hdGVyaWFsaXplZCB2aWV3KS4KICAqLwogYm9vbAotaXNRdWVyeVVz aW5nVGVtcFJlbGF0aW9uKFF1ZXJ5ICpxdWVyeSkKK2lzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVl cnkgKnF1ZXJ5KQogewotCXJldHVybiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKChO b2RlICopIHF1ZXJ5LCBOVUxMKTsKKwlyZXR1cm4gaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxr ZXIoKE5vZGUgKikgcXVlcnksIE5VTEwpOwogfQogCiBzdGF0aWMgYm9vbAotaXNRdWVyeVVzaW5n VGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQoraXNRdWVyeVVz aW5nVGVtcE9iamVjdF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIHsKIAlpZiAo bm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFsc2U7CkBAIC0zOTI4LDEzICszOTI4LDIzIEBAIGlz UXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkK IAkJfQogCiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKLQkJCQkJCQkJIGlzUXVl cnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIsCisJCQkJCQkJCSBpc1F1ZXJ5VXNpbmdUZW1wT2Jq ZWN0X3dhbGtlciwKIAkJCQkJCQkJIGNvbnRleHQsCiAJCQkJCQkJCSBRVFdfSUdOT1JFX0pPSU5B TElBU0VTKTsKIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAg ICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJ QUJMRSkKKwkJeworCQkJaWYgKGlzQW55VGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UocC0+cGFyYW12YXJpZCkpKQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQog CiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwKLQkJCQkJCQkJICBpc1F1ZXJ5 VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAorCQkJCQkJCQkgIGlzUXVlcnlVc2luZ1RlbXBPYmpl Y3Rfd2Fsa2VyLAogCQkJCQkJCQkgIGNvbnRleHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDk2ZDU4NTU3 OGQuLmFjYzQ3MzM0ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MjQ4LDcgKzUyNDgsNyBAQCBsaXN0VmFyaWFi bGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEg YnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29s IHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQog CXsKQEAgLTUyNjgsMTIgKzUyNjgsMTYgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZh cnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNv bGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBl IGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9p ZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBc IiVzXCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25l cikgYXMgXCIlc1wiXG4iLAorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYu dmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlv blxuIgorCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJ CSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAog CQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29w KCJPd25lciIpKTsKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggYmEwMzNjNzYyYS4uMDFmZWE5YzgwYSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwpAQCAtMzU5Myw3ICszNTkzLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAvKiBDUkVBVEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRl IENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVB VEUgVEVNUC9URU1QT1JBUlkiIHdpdGggdGhlIHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExF VEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVklFVyIpOworCQlDT01QTEVURV9XSVRIKCJT RVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNS RUFURSBVTkxPR0dFRCIgd2l0aCBUQUJMRSBvciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAi U0VRVUVOQ0UiKTsKQEAgLTM5NDQsNyArMzk0NCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCX0KIC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNp ZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JF QVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNS RUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JF QVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVN UE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwog CWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyog Q29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggZGI1OGU2YWMwMS4uNjQyYTUyNzMzZiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYsNiArNTYsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxl LDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBl ICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVMVCgtMSk7CiAKKwkvKiBhY3Rpb24gb24g dHJhbnNhY3Rpb24gZW5kICovCisJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChu KTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLwogCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lf REVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pOwogCkBAIC02OCw2ICs3MSwx MiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogI2VuZGlm CiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCit0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5k QWN0aW9uCit7CisJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09QICovCisJVkFS SUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLworfQkJCVZhcmlh YmxlWGFjdEVuZEFjdGlvbjsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJCUZvcm1fcGdfdmFy aWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAogICoJCXRoZSBm b3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5oCmluZGV4IDNkYWI4YWUyYTQuLmRjODMyOTZiMWIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTIxLDcgKzIxLDExIEBACiAjaW5jbHVk ZSAidGNvcC9jbWR0YWcuaCIKICNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCiAK LWV4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpOwor ZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBj aGFyIFhhY3RFbmRBY3Rpb24pOworZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rw cm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIEF0UHJl RU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCk7CitleHRlcm4gdm9pZCBBdEVP U3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQsIFN1YlRyYW5zYWN0aW9uSWQg bXlTdWJpZCwKKwkJCQkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBwYXJlbnRTdWJpZCk7CiAKIGV4 dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29s IGlzTnVsbCk7CiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGVXaXRoU2VjdXJpdHlDaGVj ayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggMDFiYzMxZThhOS4uMDdhZGE2YzZmYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApA QCAtMzQ4Nyw2ICszNDg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQK IAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29s bGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3Ro aW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24g dHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKIAogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDA1M2FmNmFlMDkuLjJlNTY2NWZmZWIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3By aW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5cGVkZWYgc3RydWN0IEFsaWFzCiAJTGlzdAkg ICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0IG9mIGNvbHVtbiBhbGlhc2VzICovCiB9IEFs aWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3JhcnkgcmVsYXRp b25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBjb21taXQgdGltZSBmb3IgdGVtcG9yYXJ5IHJl bGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLwogdHlwZWRlZiBlbnVtIE9uQ29tbWl0 QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJLyogTm8gT04gQ09NTUlUIGNsYXVzZSAoZG8g bm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlv bi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKaW5kZXggOTFmZDhlMjQz Yi4uYTgxMTdiY2FlMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTEyNiw2 ICsxMjYsNiBAQCBleHRlcm4gaW50CWF0dG5hbWVBdHROdW0oUmVsYXRpb24gcmQsIGNvbnN0IGNo YXIgKmF0dG5hbWUsIGJvb2wgc3lzQ29sT0spOwogZXh0ZXJuIGNvbnN0IE5hbWVEYXRhICphdHRu dW1BdHROYW1lKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRudW1UeXBl SWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bUNvbGxhdGlvbklk KFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwotZXh0ZXJuIGJvb2wgaXNRdWVyeVVzaW5nVGVtcFJl bGF0aW9uKFF1ZXJ5ICpxdWVyeSk7CitleHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0 KFF1ZXJ5ICpxdWVyeSk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9SRUxBVElPTl9IICovCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5v dXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5k ZXggMGE1NTc5ZGM3Yy4uYTYwOTc5N2RjNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODYsMTAgKzg2LDExIEBAIG15dmFyCiAK IHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMgbGV0 MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitz dGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNyZWF0ZTQgbGV0NCBk cm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JFQVRF IFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3Qn Owogc3RlcCBzMzogQkVHSU47CitzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZh cl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOwogc3RlcCBjcmVhdGU0OiBDUkVBVEUgVkFS SUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZhcjQgPSAndGVzdCc7CiBz dGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24v c3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IGM4NjRmZWU0MDAuLjQ1ZTY1ZDQwODUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNw ZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpA QCAtMjQsNiArMjQsNyBAQCBzdGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMg dGV4dDsgfQogc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVHSU47IH0KIHN0ZXAgbGV0MwkJeyBM RVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIG9fY19kCQl7IENSRUFURSBURU1QIFZBUklBQkxF IG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7IH0KIHN0ZXAgY3JlYXRlNAl7IENS RUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQogc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQg PSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0KQEAgLTQ3 LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAog IyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3VycmVudCBkcm9wCiBwZXJtdXRh dGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQogIyB0ZXN0IGZvciBE SVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2ZSBhY3Rpb25zIHJlZ2lzdGVy ZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMg aW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgb19j X2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggODhlMjExOTQ3MS4uNjEwNzdhNTJiMSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsK IFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENv bGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERl c2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2Vz cyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGlj IHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwg CiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENP TU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAg QWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgot ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAg ICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1Ymxp YyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAg IHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVf b3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxF IHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAK IFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0g U2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAK IC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5 MSw5ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBu YW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9v IG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmln Z2VyIgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwg T3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBA IExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90 dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMDA5Y2NiMjFkMS4uMjY2ZjYyODRmZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAg LTEwMCwxMSArMTAwLDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBERUZBVUxU OwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gIFNjaGVtYSAgfCBOYW1l IHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAg ICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAK LS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1y L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz CisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nl c3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVn ZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgxIHJvdykKIAogRFJPUCBW QVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTUzOSwzICsxNTM5LDEyMyBAQCBTRUxFQ1QgdmFy MTsKIAogREVBTExPQ0FURSBwMTsKIERST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlbXBvcmFyeSB2 YXJpYWJsZXMKK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3 IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNU IHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2YXJfdGVzdF92aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5 IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRl cyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2 YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVN UCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7 CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExC QUNLOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47 CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBM RVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUg PSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1Q IFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsK KyAgRFJPUCBWQVJJQUJMRSB2YXIxOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFy MSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQg czE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBkOTMzYzJhOGUzLi41MzQ1M2M4OGVmIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC05MTIsNiArOTEy LDcgQEAgQkVHSU47CiAgIERST1AgVkFSSUFCTEUgdmFyMTsKICAgU0VMRUNUIHZhcjI7CiBST0xM QkFDSzsKKwogLS0gc2hvdWxkIGJlIG9rCiBTRUxFQ1QgdmFyMTsKIApAQCAtMTA3OSwzICsxMDgw LDY4IEBAIFNFTEVDVCB2YXIxOwogCiBERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJMRSB2YXIx OworCistLSB0ZW1wb3JhcnkgdmFyaWFibGVzCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFT IGludDsKKy0tIHRoaXMgdmlldyBzaG91bGQgYmUgdGVtcG9yYXJ5CitDUkVBVEUgVklFVyB2YXJf dGVzdF92aWV3IEFTIFNFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsK KworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBE Uk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNo b3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJu YW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2 YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2 YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOwor ICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVU IHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUg PSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEg QVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJM RSB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lO OworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor ICBST0xMQkFDSyBUTyBzMTsKKyAgU0VMRUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0g J3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Np b25fdmFyaWFibGVzKCk7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGY5OGEyOGQ1Njku LjMwNTNmODA5N2EgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0 CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0yODAwLDYgKzI4MDAs NyBAQCBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljCiBTVmFyaWFibGUKIFNWYXJpYWJsZURh dGEKIFNWYXJpYWJsZVN0YXRlCitTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIFN5bgogU3luY09wcwog U3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0010-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20241210-0010-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvsp11 RnJvbSAwN2Q5NjQzYzhkODExMzc0MDhkM2ZjYzY5OGMzZWMwZGExNmJiZGFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEw LzIxXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjEuLjQ1ZDcyYjFkNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcHJlcGFyZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5zZ21sCkBA IC0xMTYsOCArMTE2LDggQEAgUFJFUEFSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3MKICAgICA8bGlzdGl0ZW0+ CiAgICAgIDxwYXJhPgogICAgICAgQW55IDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4sIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4sCi0gICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sIG9yIDxj b21tYW5kPlZBTFVFUzwvY29tbWFuZD4KLSAgICAgIHN0YXRlbWVudC4KKyAgICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgPGNvbW1hbmQ+VkFM VUVTPC9jb21tYW5kPiwKKyAgICAgIG9yIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50 LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggYTY3ZDUwNzMwZi4uZGRiMzhlMzBiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMjE2 MSw3ICsxMjE2MSw4IEBAIFByZXBhcmFibGVTdG10OgogCQkJfCBJbnNlcnRTdG10CiAJCQl8IFVw ZGF0ZVN0bXQKIAkJCXwgRGVsZXRlU3RtdAotCQkJfCBNZXJnZVN0bXQJCQkJCQkvKiBieSBkZWZh dWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgTWVyZ2VTdG10CisJCQl8IExldFN0bXQJCQkJCQkv KiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KIAkJOwogCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jdGUuYwppbmRleCA3NmEwMDgxMDI5Li5mMThkYTEyZjNjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdpdGhDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlDb21tb25U YWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJTGlzdENl bGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBub3Qgc3Vw cG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnksIExldFN0 bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lUSCBxdWVy eSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9uKSk7CisK IAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRoQ2xhdXNl LT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21tb25UYWJs ZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDNkZTY5NTY0 MjEuLmJhMDMzYzc2MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTQ2MjksOSArNDYyOSw5 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJ CUNPTVBMRVRFX1dJVEgoIigiKTsKIAotLyogTEVUICovCisvKiBMRVQsIEVYUExBSU4gTEVULCBQ UkVQQVJFIExFVCAqLwogCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9m IHZhcmlhYmxlcyAqLwotCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJMRVQiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfdmFyaWFibGVzKTsKIAkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGM1NTIzY2ZiYjMu LjAwOWNjYjIxZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC01MTksOSArNTE5LDkgQEAgRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitFUlJP UjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUgMTogV0lUSCB4IEFTIChM RVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTE0NjAsNSArMTQ2MCw4MiBAQCBTRUxFQ1QgdmFy MTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJp Y19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2 YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNF VCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUg cm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFla RSwgU1VNTUFSWSBPRkYpIEVYRUNVVEUgcDE7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdCAoYWN0dWFsIHJvd3M9MSBsb29wcz0x KQorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlIChhY3R1YWwgcm93cz0xIGxvb3Bz PTEpCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUgKGFjdHVh bCByb3dzPTEwIGxvb3BzPTEpCisoNSByb3dzKQorCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFVCBwbGFuX2NhY2hlX21v ZGUgVE8gREVGQVVMVDsKK0RFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9Q IFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7 CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKK1BSRVBBUkUgcDEo bnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIgQVMgU0VMRUNUIHZhcjE7CitF WEVDVVRFIHAxKHBpKCkgKyAxMDApOworRVhFQ1VURSBwMjsKKyAgICAgIHZhcjEgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLQorIDEwMy4xNDE1OTI2NTM1OQorKDEgcm93KQorCistLSBwcmVwYXJl ZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworLS0gc2hvdWxkIGJlIE5VTEwKK0VYRUNVVEUgcDI7 CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworREVBTExPQ0FURSBwMTsKK0RFQUxM T0NBVEUgcDI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZv cmNlX2dlbmVyaWNfcGxhbjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKK1BSRVBB UkUgcDEoaW50LCBudW1lcmljKSBBUyBMRVQgdmFyMVskMV0gPSAkMjsKK0xFVCB2YXIxID0gJ3t9 Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VYRUNVVEUgcDEoMiwgMTAuMyk7 CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgICAKKy0tLS0tLS0tLS0tLS0KKyB7MTAuMiwxMC4z fQorKDEgcm93KQorCitERUFMTE9DQVRFIHAxOworRFJPUCBWQVJJQUJMRSB2YXIxOwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGRjZDJkZGZjMTEuLmQ5 MzNjMmE4ZTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK QEAgLTEwMjAsNSArMTAyMCw2MiBAQCBFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBPRkYsIEFO QUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKgogLS0gc2hvdWxk IGJlIDEwCiBTRUxFQ1QgdmFyMTsKIAorU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5l cmljX3BsYW47CisKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZS T00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworTEVUIHZhcjEgPSBOVUxMOworCitFWFBMQUlOIChD T1NUUyBPRkYpIEVYRUNVVEUgcDE7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsK KworRVhQTEFJTiAoQ09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRikg RVhFQ1VURSBwMTsKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworU0VUIHBsYW5f Y2FjaGVfbW9kZSBUTyBERUZBVUxUOworCitERUFMTE9DQVRFIHAxOworCiBEUk9QIFZBUklBQkxF IHZhcjE7CiBEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgbnVtZXJpYzsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3Bs YW47CisKK1BSRVBBUkUgcDEobnVtZXJpYykgQVMgTEVUIHZhcjEgPSAkMTsKK1BSRVBBUkUgcDIg QVMgU0VMRUNUIHZhcjE7CisKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7CitFWEVDVVRFIHAyOwor CistLSBwcmVwYXJlZCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbiB0ZXN0CitEUk9QIFZBUklBQkxF IHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCistLSBzaG91bGQgYmUgTlVM TAorRVhFQ1VURSBwMjsKKworREVBTExPQ0FURSBwMTsKK0RFQUxMT0NBVEUgcDI7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3Bs YW47CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWNbXTsKKworUFJFUEFSRSBwMShpbnQs IG51bWVyaWMpIEFTIExFVCB2YXIxWyQxXSA9ICQyOworCitMRVQgdmFyMSA9ICd7fSc6Om51bWVy aWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRFIHAxKDIsIDEwLjMpOworCitTRUxF Q1QgdmFyMTsKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDcu MQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20241210-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvt513 RnJvbSA2MTc2NjIzN2EwNjEzZGNlNDcyOGE5NzQ5YjQ5Zjk0NjY1ZGQzZGI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIxXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggZWQ1YTdhZGM4NC4uODcyYjNlZDg0OSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtMTA4MzgsNiArMTA4MzgsNzEgQEAgREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHIK ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIg eHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZDwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4K KyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+Cisg ICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhIHNlc3Np b24gdmFyaWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0 aG91dCB2YXJpYWJsZSBmZW5jZS4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFs Pi4KKyAgICAgICBUaGUgd2FybmluZyBpcyByYWlzZWQgb25seSB3aGVuIHZhcmlhYmxlIGlzIHVz ZWQgaW4gcGxhY2VzLCB3aGVyZSBhbgorICAgICAgIGNvbGxpc2lvbnMgd2l0aCBjb2x1bW4gbmFt ZXMgaXMgcG9zc2libGUuCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50 KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxVRVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGIgaW50Owor TEVUIGIgPSAxMDA7CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisK KzxzY3JlZW4+CisgYSAgfCAgYiAgCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIgIAorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cpCis8L3NjcmVlbj4KKworPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIGEsIFZBUklBQkxFKGIpIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KKyBhICB8ICBiICAKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEg cm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBsb2cgc2l6ZSwgc28gaXQn cyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiBVbmxlc3MgYW5vdGhlciBjb2xsaXNpb24g cmVzb2x1dGlvbiB0ZWNobmlxdWUgaXMgdXNlZAorICAgICAgICAoZGVkaWNhdGVkIHNjaGVtYSBv ciB1c2luZyBwcmVmaXhlcyBsaWtlIDxsaXRlcmFsPl88L2xpdGVyYWw+KSwKKyAgICAgICAgdGhl IHVzZSBvZiB2YXJpYWJsZSBmZW5jZSBzeW50YXggaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQsIGFu ZCB0aGlzCisgICAgICAgIHdhcm5pbmcgc2hvdWxkIGJlIGVuYWJsZWQuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggNjRiMWU1MGE0 Yi4uYTU1NDdmOWNjOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQwNiw2ICs1NDA2LDIxIEBAIFNFTEVDVCBjdXJyZW50 X3VzZXJfaWQ7CiAgICAgPGxpdGVyYWw+c2NoZW1hLnZhcmlhYmxlPC9saXRlcmFsPi4gSXQgaXMg c3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gcmVuYW1lCiAgICAgc2hhZG93ZWQgdmFyaWFibGVzIG9y IHVzZSBxdWFsaWZpZWQgbmFtZXMgYWx3YXlzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT48Zmly c3R0ZXJtPlZhcmlhYmxlIGZlbmNlPC9maXJzdHRlcm0+IGlzIHNwZWNpYWwgc3ludGF4IGZvciBz ZXNzaW9uCisgICAgdmFyaWFibGUgaWRlbnRpZmllci4gT25seSBuYW1lIG9yIHF1YWxpZmllZCBu YW1lIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUKKyAgICB2YXJpYWJsZSBmZW5jZSwgYW5kIHRoaXMg bmFtZSBpcyB1c2VkIGFzIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyLgorPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgV2hlbiB0aGVyZSBpcyBhIHJpc2sg b2YgcG9zc2libGUgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzCisgICBh bmQgY29sdW1uIG5hbWVzLCB0aGVuIHVzaW5nIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBjYW4gYmUg cmVjb21tZW5kZWQuCisgICBVc2FnZSBzZXNzaW9uIHZhcmlhYmxlIHdpdGhvdXQgdmFyaWFibGUg ZmVuY2UgY2FuIGJlIGRldGVjdGVkIGJ5CisgICB3YXJuaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy1z ZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIvPi4KKyAgPC9wYXJhPgog ICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK aW5kZXggNDhkODZlZTcyMC4uM2VmOGJjODRlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE2 NjIsNiArMTY2Miw5IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRf UGFyYW1SZWY6CiAJCQlsb2MgPSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2NhdGlvbjsK IAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29uc3QgVmFy aWFibGVGZW5jZSAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0FfQ29u c3Q6CiAJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJl YWs7CkBAIC00NjgxLDYgKzQ2ODQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBs KE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2Ug VF9WYXJpYWJsZUZlbmNlOgorCQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFpbiBub3Ro aW5nIGludGVyZXN0aW5nICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcobm9kZSkp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggYWFkNDczMDVmMi4uZmJmMDZmMTE0OSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC01MTgsNyArNTE4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglk ZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJ CQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xp Y2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUg eG1sdGFibGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcK KwkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlw ZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJv bV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9w dF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04NzUsNyArODc1LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyog aWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29j CUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENV QkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhP VVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEggVkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9w cyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQkn KicgJy8nICclJwpAQCAtMTU2MDMsNiArMTU2MDMsMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJ CQkJCQl7ICQkID0gJDE7IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8 IHZhcmlhYmxlX2ZlbmNlIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJ CQl7CisJCQkJCQlBX0luZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisK KwkJCQkJCW4tPmFyZyA9IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVj a19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQkJfQorCQkJCQllbHNlCisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTY5ODksNiArMTcwMDIsMTcgQEAg Y2FzZV9hcmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAn KCcgYW55X25hbWUgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2Rl KFZhcmlhYmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2Nh dGlvbiA9IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5y ZWY6CUNvbElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5 c2Nhbm5lcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzNjAyYzM1NzJkLi5kMDk0YWMz MDEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKIGJvb2wJ CXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gZmFsc2U7Citib29sCQlzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCA9IGZhbHNlOwogCiAKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpOwpAQCAtODEsNiArODIsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVD bGF1c2UgKmMpOworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBWYXJpYWJsZUZlbmNlICp2Zik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNv bk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9i amVjdENvbnN0cnVjdG9yICpjdG9yKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uQXJyYXlD b25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0xMTIsNyArMTE0LDcgQEAgc3RhdGlj IE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOwogc3RhdGljIE5vZGUgKm1h a2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkgIE9p ZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkJCQkg IGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOworCQkJCQkJCQkJICBjaGFyICphdHRybmFt ZSwgYm9vbCBmZW5jZWQsIGludCBsb2NhdGlvbik7CiAKIAogLyoKQEAgLTM3Nyw2ICszNzksMTAg QEAgdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQog CQkJcmVzdWx0ID0gdHJhbnNmb3JtSnNvbkZ1bmNFeHByKHBzdGF0ZSwgKEpzb25GdW5jRXhwciAq KSBleHByKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJcmVzdWx0 ID0gdHJhbnNmb3JtVmFyaWFibGVGZW5jZShwc3RhdGUsIChWYXJpYWJsZUZlbmNlICopIGV4cHIp OworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZCBub3QgcmVhY2ggaGVyZSAq LwogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9k ZVRhZyhleHByKSk7CkBAIC0xMDI4LDcgKzEwMzQsMjAgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCiAJCQkJbm9kZSA9IG1ha2VQYXJh bVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCiAJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1v ZCwgY29sbGlkLAotCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJCQkJ CQkJCQkJCWF0dHJuYW1lLCBmYWxzZSwgY3JlZi0+bG9jYXRpb24pOworCisJCQkJLyoKKwkJCQkg KiBUaGUgdmFyaWFibGUgaXMgbm90IGluc2lkZSB2YXJpYWJsZSdzIGZlbmNlLCBzbyByYWlzZSB3 YXJuaW5nCisJCQkJICogd2hlbiB2YXJpYWJsZSBmZW5jZSBndWFyZCBpcyBhY3RpdmUgYW5kIHRo ZSBxdWVyeSBoYXMgRlJPTQorCQkJCSAqIGNsYXVzZS4KKwkJCQkgKi8KKwkJCQlpZiAoc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgJiYgcHN0YXRlLT5wX3J0YWJsZSkK KwkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VT X0NPTFVNTiksCisJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgaXMgbm90 IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco Y3JlZi0+ZmllbGRzKSksCisJCQkJCQkJIGVycmRldGFpbCgiVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLiIpLAorCQkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKIAkJCX0K IAkJfQogCX0KQEAgLTEwNzEsNyArMTA5MCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0 YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIHN0YXRpYyBOb2RlICoKIG1ha2VQYXJhbVNl c3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgT2lkIHZhcmlkLCBPaWQg dHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKLQkJCQkJCSBjaGFyICphdHRybmFtZSwg aW50IGxvY2F0aW9uKQorCQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBib29sIGZlbmNlZCwgaW50IGxv Y2F0aW9uKQogewogCVBhcmFtCSAgICpwYXJhbTsKIApAQCAtMTA3OSw2ICsxMDk4LDcgQEAgbWFr ZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAogCXBhcmFtLT5wYXJh bWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKIAlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOworCXBh cmFtLT5wYXJhbXZhcmZlbmNlZCA9IGZlbmNlZDsKIAlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7 CiAJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOwogCXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNv bGxpZDsKQEAgLTExNTQsNiArMTE3NCw1NCBAQCB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRl ICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBO b2RlICoKK3RyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXJpYWJs ZUZlbmNlICp2ZikKK3sKKwlOb2RlCSAgICpyZXN1bHQ7CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlk T2lkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlub3RfdW5pcXVlOworCisJ LyogVmFyaWFibGVGZW5jZSBjYW4gYmUgdXNlZCBvbmx5IGluIGNvbnRleHQgd2hlbiB2YXJpYWJs ZXMgYXJlIHN1cHBvcnRlZCAqLworCWlmICghZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zhcmlh Ymxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coInNlc3Npb24gdmFy aWFibGUgcmVmZXJlbmNlIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIpLAorCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikpKTsKKworCS8qIHRha2VzIGFuIEFjY2Vzc1No YXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCXZhcmlkID0gSWRlbnRpZnlWYXJp YWJsZSh2Zi0+dmFybmFtZSwgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCisJaWYg KG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJ R1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5j ZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcodmYtPnZhcm5h bWUpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOwor CisJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCXsKKwkJT2lkCQkJdHlwaWQ7CisJCWludDMyCQl0 eXBtb2Q7CisJCU9pZAkJCWNvbGxpZDsKKworCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5 cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwKKwkJCQkJCQkJCQkJCSZjb2xsaWQp OworCisJCXJlc3VsdCA9IG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJ CQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwKKwkJCQkJCQkJCQlhdHRybmFtZSwgdHJ1 ZSwgdmYtPmxvY2F0aW9uKTsKKwl9CisJZWxzZQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKHZmLT52 YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikp KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qIFRlc3Qgd2hldGhlciBhbiBhX2V4cHIgaXMg YSBwbGFpbiBOVUxMIGNvbnN0YW50IG9yIG5vdCAqLwogc3RhdGljIGJvb2wKIGV4cHJJc051bGxD b25zdGFudChOb2RlICphcmcpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggNzZiZjg4 YzNjYS4uY2M2M2I0NGJiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtMjAzNCw2 ICsyMDM0LDEzIEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFt ZSkKIAkJCQkJCSAoaW50KSAoKEpzb25GdW5jRXhwciAqKSBub2RlKS0+b3ApOwogCQkJfQogCQkJ YnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJeworCQkJCS8qIHJldHVybiBsYXN0 IGZpZWxkIG5hbWUgKi8KKwkJCQkqbmFtZSA9IHN0clZhbChsbGFzdCgoKFZhcmlhYmxlRmVuY2Ug Kikgbm9kZSktPnZhcm5hbWUpKTsKKwkJCQlyZXR1cm4gMjsKKwkJCX0KKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDQ5 MzJkODdkODMuLjdiOTdlMTc0OWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTg2 MjgsOCArODYyOCwxNiBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250 ZXh0ICpjb250ZXh0KQogCS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24gdmFyaWFi bGUgbmFtZSAqLwogCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQogCXsK LQkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5idWYsICIlcyIsCi0JCQkJCQkgZ2VuZXJhdGVf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCWlmIChwYXJhbS0+ cGFyYW12YXJmZW5jZWQpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAi VkFSSUFCTEUoJXMpIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBh cmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZv KGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYwppbmRleCAwZjE4MDZkMmY1Li41ODgxYjBkNWQ0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTYxNCw2ICsxNjE0LDE1IEBAIHN0cnVjdCBj b25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlOVUxMLCBOVUxM LCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdf Z3VhcmQiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fT1RIRVIsCisJCQlnZXR0ZXh0X25vb3Ao IlJhaXNlIGEgd2FybmluZyB3aGVuIHZhcmlhYmxlIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJs ZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCiAJewog CQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQsIENMSUVOVF9D T05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVsdCByZWFkLW9u bHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggZDE4YTE3NTQ0YS4uNDcwNDFjYmU4MCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxl CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAt NzE3LDYgKzcxNyw3IEBACiAjZGVmYXVsdF90cmFuc2FjdGlvbl9kZWZlcnJhYmxlID0gb2ZmCiAj c2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJu aW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNv bmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAwNGFiMjJiZDQ5 Li4wMWJjMzFlOGE5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zMTIsNiArMzEyLDE2IEBA IHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBs b2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBQYXJhbVJlZjsKIAorLyoKKyAqIFZhcmlh YmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRzIHdpbGwgYmUgaW50ZXJwcmV0dGVkIGFzIGEgdmFy aWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVmFyaWFibGVGZW5jZQoreworCU5vZGVUYWcJCXR5 cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8qIHZhcmlhYmxlIG5hbWUgKFN0cmluZyBub2Rlcykg Ki8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtu b3duICovCit9IFZhcmlhYmxlRmVuY2U7CisKIC8qCiAgKiBBX0V4cHIgLSBpbmZpeCwgcHJlZml4 LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwogICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDRi MjQyNGQ2ZDMuLjA1M2FmNmFlMDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0zODYsNiArMzg2 LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlPaWQJCQlwYXJhbWNvbGxpZCBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogT0lEIG9mIHNlc3Npb24gdmFyaWFibGUgaWYg aXQgaXMgdXNlZCAqLwogCU9pZAkJCXBhcmFtdmFyaWQ7CisJLyogdHJ1ZSB3aGVuIHZhcmlhYmxl IGlzIHVzZWQgaW5zaWRlIGFuIGZlbmNlICovCisJYm9vbAkJcGFyYW12YXJmZW5jZWQ7CiAJLyog dG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsK IH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCAwZDY0YjMwMGY4Li4wOTQ4YTBi MWI3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVh bHM7CiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZzsKK2V4dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9m ZW5jZV93YXJuaW5nX2d1YXJkOwogCiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDBm ZjU2OTFkYmUuLmJjMjQxZWJkODggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMzYzLDMgKzEzNjMsNjIgQEAgU0VUIHNlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERST1AgVEFCTEUgcHVibGljLnh4 dGFiOwogRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gc2Vzc2lvbiB2YXJpYWJsZSB4eHRhYi5hdmFyCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gb247CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdf Z3VhcmQgVE8gb247CitDUkVBVEUgU0NIRU1BIHRlc3R2YXI7CitTRVQgc2VhcmNoX3BhdGggVE8g J3Rlc3R2YXInOworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKK0NSRUFU RSBUQUJMRSB0ZXN0X3RhYmxlKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxl IFZBTFVFUygyMCwgMjApOworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisgYSAgCistLS0tCisg MTAKKygxIHJvdykKKworLS0gd2FybmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAorU0VMRUNUIGEs IGIgRlJPTSB0ZXN0X3RhYmxlOworV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNo YWRvd2VkCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKyAgICAgICAgICAg ICAgIF4KK0RFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1 bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhl IHNhbWUgbmFtZS4KKyBhICB8IGIgIAorLS0tLSstLS0tCisgMjAgfCAyMAorKDEgcm93KQorCist LSBubyB3YXJuaW5nCitTRUxFQ1QgdmFyaWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworIGEgIAor LS0tLQorIDEwCisoMSByb3cpCisKK0FMVEVSIFRBQkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4g YTsKKy0tIHdhcm5pbmcgLSB2YXJpYWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VMRUNUIGEsIGIg RlJPTSB0ZXN0X3RhYmxlOworV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIG5vdCB1 c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZQorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3Rf dGFibGU7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNlc3Np b24gdmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAgfCBi ICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gbm8gd2FybmluZworU0VMRUNU IHZhcmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisg MTAgfCAyMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxFIHRlc3RfdGFi bGU7CitEUk9QIFNDSEVNQSB0ZXN0dmFyOworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIFRPIERFRkFVTFQ7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dh cm5pbmdfZ3VhcmQgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDk0OWY1NTFiNjgu LmQ3YmIxMTlhY2IgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKQEAgLTk2MCwzICs5NjAsNDQgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nIFRPIG9mZjsKIAogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9QIFNDSEVNQSB4 eHRhYiBDQVNDQURFOworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJu aW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247 CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CisK K0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKKworU0VUIHNlYXJjaF9wYXRoIFRPICd0ZXN0dmFyJzsK KworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKKworQ1JFQVRFIFRBQkxF IHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gdGVzdF90YWJsZSBWQUxV RVMoMjAsIDIwKTsKKworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisKKy0tIHdhcm5pbmcgdmFy aWFibGUgaXMgc2hhZG93ZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0gbm8g d2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsKKworQUxURVIgVEFC TEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBhOworCistLSB3YXJuaW5nIC0gdmFyaWFibGUgZmVu Y2UgaXMgbm90IHVzZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0gbm8gd2Fy bmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKworRFJPUCBWQVJJ QUJMRSBhOworRFJPUCBUQUJMRSB0ZXN0X3RhYmxlOworCitEUk9QIFNDSEVNQSB0ZXN0dmFyOwor CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsKK1NF VCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxUOwor U0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7Ci0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0009-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20241210-0009-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvsy12 RnJvbSA0YWUxY2RlODE2NzQyNDhkYjdhNTZmYmFmNDI1NTllYmVlMzRiNmY5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDA5 LzIxXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IGRiOWQzYTg1NDkuLmNhY2NjNzA2NTggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBA IC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNvbW1hbmQ+SU5T RVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8Y29tbWFuZD5E RUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAgPGNvbW1hbmQ+ Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVDVVRFPC9jb21t YW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwKKyAgICBvciA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0dGluZyB0aGUg Y29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxwcm9ncmFtbGlz dGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IDMwNzhmNWMxYTMuLjhiOWUw N2YyYWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRl ICJjb21tYW5kcy9jcmVhdGVhcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAiaml0L2pp dC5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCkBAIC01MTIsOCArNTEzLDkgQEAgc3Rh bmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJ fQogCiAJLyogcnVuIGl0IChpZiBuZWVkZWQpIGFuZCBwcm9kdWNlIG91dHB1dCAqLwotCUV4cGxh aW5PbmVQbGFuKHBsYW4sIGludG8sIGVzLCBxdWVyeVN0cmluZywgcGFyYW1zLCBxdWVyeUVudiwK LQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwK KwlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBxdWVyeS0+cmVzdWx0VmFyaWFibGUsIGVzLCBx dWVyeVN0cmluZywKKwkJCQkgICBwYXJhbXMsIHF1ZXJ5RW52LCAmcGxhbmR1cmF0aW9uLAorCQkJ CSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCSAgIGVzLT5tZW1vcnkg PyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiB9CiAKQEAgLTYxMSw2ICs2MTMsMjUgQEAgRXhwbGFp bk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5T dGF0ZSAqZXMsCiAJCWVsc2UKIAkJCUV4cGxhaW5EdW1teUdyb3VwKCJOb3RpZnkiLCBOVUxMLCBl cyk7CiAJfQorCWVsc2UgaWYgKElzQSh1dGlsaXR5U3RtdCwgTGV0U3RtdCkpCisJeworCQlMZXRT dG10ICAgICpsZXRzdG10ID0gKExldFN0bXQgKikgdXRpbGl0eVN0bXQ7CisJCUxpc3QJICAgKnJl d3JpdHRlbjsKKwkJUXVlcnkJICAgKnF1ZXJ5OworCisJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExB SU5fRk9STUFUX1RFWFQpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJTRVQg U0VTU0lPTiBWQVJJQUJMRVxuIik7CisJCWVsc2UKKwkJCUV4cGxhaW5EdW1teUdyb3VwKCJTZXQg U2Vzc2lvbiBWYXJpYWJsZSIsIE5VTEwsIGVzKTsKKworCQlyZXdyaXR0ZW4gPSBRdWVyeVJld3Jp dGUoY2FzdE5vZGUoUXVlcnksIGNvcHlPYmplY3QobGV0c3RtdC0+cXVlcnkpKSk7CisKKwkJQXNz ZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisJCXF1ZXJ5ID0gbGluaXRpYWxfbm9k ZShRdWVyeSwgcmV3cml0dGVuKTsKKwkJRXhwbGFpbk9uZVF1ZXJ5KHF1ZXJ5LAorCQkJCQkJQ1VS U09SX09QVF9QQVJBTExFTF9PSywgTlVMTCwgZXMsCisJCQkJCQlwc3RhdGUsIHBhcmFtcyk7CisJ fQogCWVsc2UKIAl7CiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCkBA IC02MzQsOCArNjU1LDggQEAgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIElu dG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAgKiB0byBjYWxsIGl0LgogICovCiB2 b2lkCi1FeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2Ug KmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCi0JCQkgICBjb25zdCBjaGFyICpxdWVyeVN0cmluZywg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCitFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5l ZHN0bXQsIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCisJCQkgICBFeHBsYWluU3Rh dGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgY29uc3QgaW5zdHJfdGltZSAqcGxhbmR1 cmF0aW9uLAogCQkJICAgY29uc3QgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLAogCQkJICAgY29uc3Qg TWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRlcnMpCkBAIC02ODQsNiArNzA1LDggQEAg RXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRv LCBFeHBsYWluU3RhdGUgKmVzLAogCSAqLwogCWlmIChpbnRvKQogCQlkZXN0ID0gQ3JlYXRlSW50 b1JlbERlc3RSZWNlaXZlcihpbnRvKTsKKwllbHNlIGlmIChPaWRJc1ZhbGlkKHRhcmdldHZhcikp CisJCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcih0YXJnZXR2YXIpOwogCWVsc2Ug aWYgKGVzLT5zZXJpYWxpemUgIT0gRVhQTEFJTl9TRVJJQUxJWkVfTk9ORSkKIAkJZGVzdCA9IENy ZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoZXMpOwogCWVsc2UKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwppbmRleCBlOWUzOTNhYTAyLi5hZjQyNDk2MjYzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC02NjIsOCArNjYyLDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAq ZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBsYW5uZWRT dG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAocHN0bXQt PmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGlu dG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJ CSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJ RXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9zdHJpbmcs IHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRpb24sCisJ CQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAgIGVzLT5t ZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGls aXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCBmYmYwNmYxMTQ5Li5hNjdkNTA3MzBmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEyMTMw LDcgKzEyMTMwLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQKIAkJCXwg Q3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4ZWN1dGVT dG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0ZVN0bXQK KwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwogCQk7CiAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IGFhNTg3MmJj MTUuLmY1YjA4ODU3YWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4u aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKQEAgLTEwMyw3ICsxMDMsOCBA QCBleHRlcm4gdm9pZCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0Ns YXVzZSAqaW50bywKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkgIFBhcmFtTGlzdEluZm8gcGFyYW1zKTsKIAotZXh0ZXJuIHZvaWQgRXhwbGFp bk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAorZXh0 ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LAorCQkJCQkJ ICAgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKIAkJCQkJCSAgIEV4cGxhaW5TdGF0 ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJICAgUGFyYW1MaXN0SW5mbyBw YXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAgY29uc3QgaW5zdHJf dGltZSAqcGxhbmR1cmF0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCBiYzI0MWViZDg4Li5jNTUyM2NmYmIzIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTQyMiwz ICsxNDIyLDQzIEBAIERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2Vf ZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFV TFQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdpbnQ7CitDUkVBVEUgVEFCTEUgdmFyX3RhYl90 ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1Qg KiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKK1ZBQ1VVTSBBTkFMWVpFIHZhcl90YWJfdGVz dF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCop IEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4g ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQor ICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rl c3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlO RyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikg RlJPTSB2YXJfdGFiX3Rlc3RfdGFibGUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1bHQgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkK KyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEFnZ3JlZ2F0ZSAoYWN0dWFsIHJvd3M9MSBsb29wcz0x KQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdmFyX3RhYl90ZXN0X3RhYmxlIChhY3R1YWwg cm93cz0xMCBsb29wcz0xKQorKDUgcm93cykKKworLS0gc2hvdWxkIGJlIDEwCitTRUxFQ1QgdmFy MTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBkN2JiMTE5YWNiLi5kY2QyZGRmYzExIDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDAxLDMgKzEwMDEs MjQgQEAgRFJPUCBTQ0hFTUEgdGVzdHZhcjsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3Vp dHlfd2FybmluZyBUTyBERUZBVUxUOwogU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CiBTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50OworCitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0 X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElOVE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAq IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitWQUNVVU0gQU5BTFlaRSB2YXJfdGFiX3Rl c3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVD VCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1B UlkgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFi bGUpOworCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKLS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20241210-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvte14 RnJvbSA0Y2RhMDY0YjNhNDE4OWI1ZmQzZmJmNDU2ZjdjZDI3YTlhNjdlNDdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIxXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIyICsrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIwICsrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQs IDIzMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBlMGM4MzI1 YTM5Li5lZDVhN2FkYzg0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMDc3OCw2ICsxMDc3OCw2NiBAQCBkeW5h bWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6XG15X3Byb2plY3RcbGli OyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5p bmciIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmciPgorICAg ICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zh cm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zh cm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRl cm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhbnkgaWRlbnRpZmllciBpbiBh IHF1ZXJ5IGNvdWxkIGJlCisgICAgICAgIHVzZWQgYXMgYm90aCBhIGNvbHVtbiBpZGVudGlmaWVy LCByb3V0aW5lIHZhcmlhYmxlIG9yIGEgc2Vzc2lvbgorICAgICAgICB2YXJpYWJsZSBpZGVudGlm aWVyLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LgorICAgICAgIDwvcGFy YT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRv d2VkIGJ5IGNvbHVtbiByZWZlcmVuY2VzIGluIGEgcXVlcnksIHRoaXMKKyAgICAgICAgaXMgYW4g ZXhwZWN0ZWQgYmVoYXZpb3IuICBQcmV2aW91c2x5IHdvcmtpbmcgcXVlcmllcyBzaG91bGRuJ3Qg ZXJyb3Igb3V0CisgICAgICAgIGJ5IGNyZWF0aW5nIGFueSBzZXNzaW9uIHZhcmlhYmxlLCBzbyBz ZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWx3YXlzIHNoYWRvd2VkCisgICAgICAgIGlmIGFuIGlkZW50 aWZpZXIgaXMgYW1iaWd1b3VzLiAgVmFyaWFibGVzIHNob3VsZCBiZSByZWZlcmVuY2VkIHVzaW5n CisgICAgICAgIGFudW5hbWJpZ3VvdXMgaWRlbnRpZmllciB3aXRob3V0IGFueSBwb3NzaWJpbGl0 eSBmb3IgYSBjb2xsaXNpb24gd2l0aAorICAgICAgICBpZGVudGlmaWVyIG9mIG90aGVyIGRhdGFi YXNlIG9iamVjdHMgKGNvbHVtbiBuYW1lcyBvciByZWNvcmQgZmllbGRzIG5hbWVzKS4KKyAgICAg ICAgVGhlIHdhcm5pbmcgbWVzc2FnZXMgZW1pdHRlZCB3aGVuIGVuYWJsaW5nIDx2YXJuYW1lPnNl c3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPgorICAgICAgICBjYW4g aGVscCBmaW5kaW5nIHN1Y2ggaWRlbnRpZmllciBjb2xsaXNpb24uCis8cHJvZ3JhbWxpc3Rpbmc+ CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxVRVMoMTApOwor Q1JFQVRFIFZBUklBQkxFIGEgaW50OworTEVUIGEgPSAxMDA7CitTRUxFQ1QgYSBGUk9NIGZvbzsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CisgYQorLS0tLQorIDEwCisoMSByb3cpCis8 L3NjcmVlbj4KKworPHByb2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nIFRPIG9uOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dyYW1saXN0aW5n PgorCis8c2NyZWVuPgorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNoYWRvd2Vk CitMSU5FIDE6IFNFTEVDVCBhIEZST00gZm9vOworICAgICAgICAgICAgICAgXgorREVUQUlMOiAg U2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2 YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorIGEK Ky0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGlzIGZlYXR1cmUgY2FuIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgbG9n IHNpemUsIHNvIGl0J3MgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4gIEZvciB0ZXN0aW5n IG9yIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpdCdzIHJlY29tbWVuZGVkIHRvCisgICAgICAg IGVuYWJsZSBpdCBpZiB5b3UgdXNlIHNlc3Npb24gdmFyaWFibGVzLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9Imd1Yy1zdGFuZGFyZC1jb25mb3JtaW5nLXN0cmluZ3MiIHhyZWZsYWJlbD0ic3Rh bmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPnN0YW5kYXJk X2NvbmZvcm1pbmdfc3RyaW5nczwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQogICAg ICAgPGluZGV4dGVybT48cHJpbWFyeT5zdHJpbmdzPC9wcmltYXJ5PjxzZWNvbmRhcnk+c3RhbmRh cmQgY29uZm9ybWluZzwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDUxNTU4OGVlZjEu LjY0YjFlNTBhNGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKQEAgLTUzOTUsNiArNTM5NSwxNyBAQCBTRUxFQ1QgY3VycmVudF91 c2VyX2lkOwogICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBjYW4gdXNlIHRhYmxlIGFsaWFz ZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKICAgICBibG9jayBsYWJlbHMsIGFuZCByb3V0 aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUuCiAgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFdoZW4gYSBxdWVyeSBjb250YWlucyBpZGVudGlmaWVycyBvciBxdWFsaWZp ZWQgaWRlbnRpZmllcnMgdGhhdCBjb3VsZCBiZQorICAgIHVzZWQgYXMgYm90aCBhIHNlc3Npb24g dmFyaWFibGUgaWRlbnRpZmllcnMgYW5kIGFzIGNvbHVtbiBpZGVudGlmaWVyLAorICAgIHRoZW4g dGhlIGNvbHVtbiBpZGVudGlmaWVyIGlzIHByZWZlcnJlZCBldmVyeSB0aW1lLiAgV2FybmluZ3Mg Y2FuIGJlCisgICAgZW1pdHRlZCB3aGVuIHRoaXMgc2l0dWF0aW9uIGhhcHBlbnMgYnkgZW5hYmxp bmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICBsaW5rZW5kPSJndWMtc2Vzc2lv bi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVzZXIgY2FuIGV4cGxpY2l0bHkKKyAg ICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRheCA8bGl0ZXJhbD50YWJsZS5jb2x1 bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+c2NoZW1hLnZhcmlhYmxlPC9saXRlcmFsPi4g SXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gcmVuYW1lCisgICAgc2hhZG93ZWQgdmFyaWFi bGVzIG9yIHVzZSBxdWFsaWZpZWQgbmFtZXMgYWx3YXlzLgorICAgPC9wYXJhPgogICA8L3NlY3Qx PgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4 IGFiYTUyNTllMDIuLjM2MDJjMzU3MmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDUs NiArNDUsNyBAQAogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxf ZXF1YWxzID0gZmFsc2U7Citib29sCQlzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fybmlu ZyA9IGZhbHNlOwogCiAKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpOwpAQCAtOTYwLDExICs5NjEsNTEgQEAgdHJhbnNmb3Jt Q29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQkgKgogCQkg KiBTRUxFQ1QgZm9vLmEsIGZvby5iLCBmb28uYyBGUk9NIGZvbzsKIAkJICoKLQkJICogSG93ZXZl ciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cgaXQuICBXZSBkb24ndCB0 cnkgdG8KLQkJICogaWRlbnRpZnkgYSB2YXJpYWJsZSBpZiB3ZSBrbm93IHRoYXQgaXQgd291bGQg YmUgc2hhZG93ZWQuCi0JCSAqIC0tLS0tCisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25m dXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LgorCQkgKgorCQkgKiBXaGVuIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB3ZQorCQkgKiBuZWVkIHRv IGlkZW50aWZ5IGEgdmFyaWFibGUgYWx0aG91Z2ggd2Uga25vdywgc28gdGhpcyB2YXJpYWJsZQor CQkgKiB3b3VsZCBiZSBzaGFkb3dlZC4KIAkJICovCi0JCWlmICghbm9kZSAmJiAhKHJlbG5hbWUg JiYgY3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJaWYgKG5vZGUgfHwgKHJlbG5hbWUgJiYg Y3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgcGF0 aCB3ZSBqdXN0IHRyeSAoaWYgaXQgaXMgd2FudGVkKSBkZXRlY3QgaWYgc2Vzc2lvbgorCQkJICog dmFyaWFibGUgaXMgc2hhZG93ZWQuCisJCQkgKi8KKwkJCWlmIChzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBBY2Nlc3NTaGFyZUxv Y2sgaXMgY3JlYXRlZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuCisJCQkJICogVGhlIGxv Y2sgd2lsbCBiZSBrZXB0IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJCQkJICovCisJCQkJ dmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3Vu aXF1ZSwgdHJ1ZSk7CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQkJeworCQkJCQkv KiB0aGlzIHBhdGggd2lsbCBlbmRpbmcgYnkgV0FSTklORy4gVW5sb2NrIHZhcmlhYmxlIGZpcnN0 ICovCisJCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJCQkJaWYgKG5vZGUpCisJCQkJCQllcmVwb3J0KFdB Uk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVNTiksCisJCQkJ CQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIHNoYWRvd2VkIiwKKwkJCQkJ CQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCQkgZXJyZGV0YWls KCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuIiks CisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsK KwkJCQkJZWxzZQorCQkJCQkJLyogc2Vzc2lvbiB2YXJpYWJsZSBpcyBzaGFkb3dlZCBieSBSVEUg Ki8KKwkJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJ R1VPVVNfQ09MVU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVz XCIgaXMgc2hhZG93ZWQiLAorCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVz IGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZXMgb3IgdGFibGUncyBhbGlhc2VzIHdpdGggdGhlIHNh bWUgbmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxv Y2F0aW9uKSkpOworCQkJCX0KKwkJCX0KKwkJfQorCQllbHNlCiAJCXsKIAkJCS8qIHRha2VzIGFu IEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLwogCQkJdmFyaWQgPSBJ ZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFs c2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA4Y2YxYWZiYWQyLi4wZjE4 MDZkMmY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTYwNSw2ICsxNjA1 LDE1IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNl LAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fT1RIRVIsCisJCQlnZXR0 ZXh0X25vb3AoIlJhaXNlIGEgd2FybmluZyB3aGVuIHJlZmVyZW5jZSB0byBhIHNlc3Npb24gdmFy aWFibGUgaXMgYW1iaWd1b3VzLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJs ZXNfYW1iaWd1aXR5X3dhcm5pbmcsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwK IAl7CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQR0NfVVNFUlNFVCwgQ0xJ RU5UX0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWZhdWx0IHJl YWQtb25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0 aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCBhMmFjNzU3NWNhLi5kMThhMTc1 NDRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5z YW1wbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxl CkBAIC03MTYsNiArNzE2LDcgQEAKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSA9IG9m ZgogI2RlZmF1bHRfdHJhbnNhY3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Npb25fcmVwbGlj YXRpb25fcm9sZSA9ICdvcmlnaW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgPSBvZmYKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAg aXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRz LCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywg MCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggOWI0NmRmZDllYy4uMGQ2 NGIzMDBmOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3IEBACiAKIC8q IEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVs bF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5v dXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAppbmRleCBhYjc3OTkwMDU5Li5hNjUyM2Y3YWZlIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxw Z3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAt MzU0LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCiBO T1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKIE5PVElDRTogIHZhcmlhYmxlIGlzIDEw MDAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9u KQorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworRE8gJCQK Kzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQg cGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5p bmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhv dXQgd2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lvbiB2YXJp YWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgYmUgb2sg d2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3Fs IHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQg dG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAor ICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7Cisk JDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZh cmlhYmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJwbHBnc3FsX3N2X3Zh cjEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitERVRB SUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGlu ZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUu CitRVUVSWTogIHBscGdzcWxfc3ZfdmFyMQorTk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorU0VU IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERST1AgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxOwogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVk CiBDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKaW5kZXggYTNjYzI2NGNm My4uOWI4ZTkwZTgxZiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJTgogRU5EOwog JCQ7CiAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n KG9uKQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CisK K0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4K KyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91 dCB3YXJuaW5nCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBv ayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Np b24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxk IGJlIG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAn cGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0g c2hvdWxkIHRvIHByaW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50 IDEwMDAKKyAgUkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBv ZmY7CisKIERST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUgdmFsdWUgc2hv dWxkIG5vdCBiZSBjb3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZWI0NTU1ZTFmYS4uMGZmNTY5MWRiZSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEzNDEs MyArMTM0MSwyNSBAQCBTRUxFQ1QgdmFyMTsKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIx LCB2YXIyOworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZworQ1JF QVRFIFNDSEVNQSB4eHRhYjsKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFyIGludDsKK0NSRUFU RSBUQUJMRSBwdWJsaWMueHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElOVE8gcHVibGljLnh4dGFi IFZBTFVFUygxKTsKK0xFVCB4eHRhYi5hdmFyID0gMjA7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hvdWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNo b3cgMQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CitXQVJOSU5HOiAgc2Vz c2lvbiB2YXJpYWJsZSAieHh0YWIuYXZhciIgaXMgc2hhZG93ZWQKK0xJTkUgMTogU0VMRUNUIHh4 dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisgICAgICAgICAgICAgICBeCitERVRBSUw6ICBT ZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZh cmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCisgYXZh ciAKKy0tLS0tLQorICAgIDEKKygxIHJvdykKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nIFRPIG9mZjsKK0RST1AgVEFCTEUgcHVibGljLnh4dGFiOworRFJPUCBTQ0hF TUEgeHh0YWIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJp YWJsZSB4eHRhYi5hdmFyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggMWQ0ZGQ5MmExMC4uOTQ5ZjU1MWI2OCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtOTQwLDMgKzk0MCwyMyBAQCBCRUdJTjsgRFJPUCBW QVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklBQkxFIHZh cjEsIHZhcjI7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcK K0NSRUFURSBTQ0hFTUEgeHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFyIGludDsK KworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRPIHB1 YmxpYy54eHRhYiBWQUxVRVMoMSk7CisKK0xFVCB4eHRhYi5hdmFyID0gMjA7CisKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFp c2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsK KworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKKworRFJP UCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwotLSAKMi40 Ny4xCgo= --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20241210-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvtk15 RnJvbSBiNTY5MTNiYTU0NjA0N2RiNTEwODhlNWRkMTQwY2RlMTRiMzRjZmJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjFdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzLi5iYmNh ZTI3ZDQyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmFiNzc5OTAwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMCwwICsxLDM4MiBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIgPSBwaSgpOworLS0gcGFzc2lu ZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2 YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsKK0VORDsKKyQk OworTk9USUNFOiAgdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAzLjE0MTU5MjY1MzU4OTc5 CistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKK1NFTEVDVCBwbHBnc3FsX3N2X3Zh ciBBUyAicGlfbXVsdGlwbHlfMiI7CisgIHBpX211bHRpcGx5XzIgICAKKy0tLS0tLS0tLS0tLS0t LS0tLQorIDYuMjgzMTg1MzA3MTc5NTkKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjsKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gd3JpdGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisgIExFVCBwbHBnc3FsX3N2 X3ZhcjIgPSBwaSgpOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3ZfdmFy MyA9IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAwKSk7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9mdW5jKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IHBscGdzcWxf c3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxfc3ZfdmFyMiAr IDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2X3Zh cjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDAp KTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiByZWFkZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFyMSA9ICUnLCBwbHBnc3FsX3N2X3ZhcjE7CisgIFJBSVNFIE5PVElDRSAndmFyMiA9ICUn LCBwbHBnc3FsX3N2X3ZhcjI7CisgIFJBSVNFIE5PVElDRSAnbGVuZ3RoIG9mIHZhcjMgPSAlJywg bGVuZ3RoKHBscGdzcWxfc3ZfdmFyMyk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0g ZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygpOwor IHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUz NTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0 ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVu YygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4x NDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91dHNp ZGUgb2YgYSB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6 ICB2YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5 CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sK K0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVu YygpOworRU5EOworJCQ7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0 MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CistLSBwbGFuIGNhY2hlcyBzaG91bGQgYmUg Y29ycmVjdGx5IGludmFsaWRhdGVkCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxw Z3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJp YzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZP Uk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6 ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAw MgorTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1 OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworRFJP UCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitEUk9Q IEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVjdCBwbGFu IGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSB2IGludFtdIERFRkFVTFQgJ3t9JzsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx OworICB2W3BscGdzcWxfc3ZfdmFyMV0gPSAxMDA7CisgIFJBSVNFIE5PVElDRSAnJScsIHY7Cisg IExFVCBwbHBnc3FsX3N2X3ZhcjIgPSB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyW3BscGdzcWxf c3ZfdmFyMV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIyOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsx MDB9CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsxMDB9 CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiB0ZXN0X2Z1bmMoKTsKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3Jv bGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CitHUkFOVCBBTEwgT04gU0NI RU1BIHB1YmxpYyBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFyX3Jl YWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScs IHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVG SU5FUjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVj X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCitD T05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgorUEwvcGdTUUwg ZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVG QVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK05PVElDRTogIDEwCisg dmFyX3JlYWRfZnVuYyAKKy0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitT RUxFQ1QgdmFyX3JlYWRfZnVuYygpOworRVJST1I6ICBjb2x1bW4gInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAgICAgIF4KK1FVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRf ZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgRlVOQ1RJ T04gdmFyX3JlYWRfZnVuYzsKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jl c3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CistLSByZXR1cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNf dmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDIKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgx KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAgICAgICAg NworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAgICAgIDEx CisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX251bShudW1lcmljKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBDT0FMRVNDRShwbHBn c3FsX3N2X3ZhcjIgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIyOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJf bnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAy CisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgx LjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0t LS0tLQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAg ICA3CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAg MTEKKyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0RST1AgRlVOQ1RJT04gaW5jX3Zh cl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBn c3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKwor ICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5P VElDRSAnc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKwor ICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywg bXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsKK05PVElDRTog IHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEw MDAKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3NxbF9zdl92ID0gJ2FiYyc7CitDUkVBVEUg RlVOQ1RJT04gZmZ1bmMoKQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBSRVRVUk4gZ2Z1 bmMocGxwZ3NxbF9zdl92KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5D VElPTiBnZnVuYyh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBn c3FsX3N2X3YgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CitzZWxlY3QgZmZ1bmMoKTsKKyBmZnVuYyAKKy0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21l c29uLmJ1aWxkIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDNkZDczNGI3 NzYuLjM5MDVjMGI2ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWls ZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4LDcgQEAg dGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90cmlnZ2Vy JywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uYTNjYzI2NGNmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBAQAor LS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBhc3Np bmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAn dmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7Cisk JDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBnc3Fs X3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBu dW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMg JCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92YXIz ID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygpCitS RVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBnc3Fs X3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3ZhcjIg KyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAw KSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIy ID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9 ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKKy0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1 bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworU0VM RUNUIHJlYWRlcl9mdW5jKCk7CitFTkQ7CisKKy0tIGV4ZWN1dGUgb3V0c2lkZSBvZiBhIHRyYW5z YWN0aW9uCitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VM RUNUIHVwZGF0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CisKKy0tIGV4ZWN1dGUg aW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sKK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKKy0tIHBsYW4gY2FjaGVz IHNob3VsZCBiZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKKy0tIHNob3VsZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworCitEUk9QIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CisK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CisKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVj dCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQk CitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3Zf dmFyMSA9IDE7CisgIHZbcGxwZ3NxbF9zdl92YXIxXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICcl JywgdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHY7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjJb cGxwZ3NxbF9zdl92YXIxXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBwbHBnc3FsX3N2X3Zh cjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKKworU0VMRUNUIHRlc3RfZnVuYygpOworCitEUk9QIEZVTkNU SU9OIHRlc3RfZnVuYygpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3Nx bF9zdl92YXIyOworCistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitD UkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg cHVibGljIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl LCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g dmFyX3JlYWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJ VFkgREVGSU5FUjsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVz c192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVn cmVzc192YXJfcmVhZGVyX3JvbGU7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy X3JlYWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xl OworCistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFzaAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5DVElPTiB2YXJfcmVhZF9mdW5j OworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3Zhcl9vd25lcl9y b2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworCitE Uk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9y ZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHJldHVy bnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGludCkKK1JFVFVSTlMg aW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09BTEVTQ0UocGxwZ3Nx bF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKK1NFTEVDVCBpbmNf dmFyX2ludCgxKTsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKworU0VMRUNUIGluY192YXJfaW50 KDEpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5TIGlu dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdzcWxf c3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisKK1NFTEVDVCBpbmNfdmFy X251bSgxLjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitEUk9QIFZBUklBQkxFIHBs cGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworCitEUk9QIEZVTkNUSU9OIGluY192YXJf aW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKKworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBs cGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOwor CisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUn LCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5P VElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3Nx bF9zdl92ID0gJ2FiYyc7CisKK0NSRUFURSBGVU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQg QVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVuYyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0 ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJO IHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZWxlY3QgZmZ1bmMoKTsKKworRFJP UCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKKworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7Ci0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20241210-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvts16 RnJvbSAyYjE1MTdkNWM3MTdhNTgxNjYwMWVlN2I1M2RjY2IwNTQ3ZGY5MzJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjFdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYzk5YTJlYWMwMy4uMmYxNzYyOWU3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTIzMCw3ICsyMzEsOCBAQCBDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogfQogCiAv KgotICogRHJvcCB2YXJpYWJsZSBieSBPSUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQg cmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2 b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKQEAgLTI1MCw0ICsyNTIsNyBAQCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNs ZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBpZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3ModmFyaWQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDZkMGMyYzAwMmUuLmIzN2Y2YzNmYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKQEAgLTY3LDYgKzY4LDE0IEBAIHR5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7 CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJLyoKKwkg KiBUb3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgb2YgdGhlIGxhc3QgdHJhbnNhY3Rpb24g dGhhdCBkcm9wcGVkIHRoZQorCSAqIHZhcmlhYmxlLCBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5m b3JtYXRpb24gdG8gYXZvaWQgZnJlZWluZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGVzIGRyb3Bw ZWQgYnkgdGhlIGxvY2FsIGJhY2tlbmQsIGluIGNhc2UgdGhlIG9wZXJhdGlvbiBpcyByb2xsZWQK KwkgKiBiYWNrLgorCSAqLworCUxvY2FsVHJhbnNhY3Rpb25JZCBkcm9wX2x4aWQ7CisKIAkvKgog CSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgd2hl biB3ZSByZWNlaXZlIGEKIAkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRoZW4gaGF2ZSB0byBjaGVj ayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCkBAIC04Myw2ICs5MiwxNyBAQCBzdGF0aWMg SFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlh YmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIAorLyogYmVjb21lcyB0cnVlIHdoZW4gd2UgcmVjZWl2ZSBhIHNpbnZhbCBtZXNzYWdl ICovCitzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisKKy8qCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgV2UgZG8KKyAqIHRoYXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gdGhhdCByZWFk cyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICogInZhbGlkYXRlZF9seGlkIiBzdG9y ZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNhaWQgdmFsaWRhdGlvbiwgc28KKyAq IHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgorICovCitzdGF0aWMgTG9j YWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25J ZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFs aWRhdGlvbi4KICAqLwpAQCAtMTE0LDYgKzEzNCwzOCBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxs YmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFz aHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zh ci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQl9CisJ fQorfQorCisvKgorICogSGFuZGxlIHRoZSBsb2NhbCBtZW1vcnkgY2xlYW51cCBmb3IgYSBEUk9Q IFZBUklBQkxFIGNvbW1hbmQuCisgKgorICogQ2FsbGVyIHNob3VsZCB0YWtlIGNhcmUgb2YgcmVt b3ZpbmcgdGhlIHBnX3ZhcmlhYmxlIGVudHJ5IGZpcnN0LgorICovCit2b2lkCitTZXNzaW9uVmFy aWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQoreworCUFzc2VydChMb2NhbFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKE15UHJvYy0+dnhpZC5seGlkKSk7CisKKwlpZiAoc2Vzc2lvbnZhcnMpCisJ eworCQlib29sCQlmb3VuZDsKKwkJU1ZhcmlhYmxlCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCAmZm91 bmQpOworCisJCWlmIChmb3VuZCkKKwkJeworCQkJLyoKKwkJCSAqIFNhdmUgdGhlIGN1cnJlbnQg dG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIHRvIG1ha2Ugc3VyZSB3ZQorCQkJICogd29u J3QgYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGxvY2FsIHZhcmlhYmxlIHN0b3JhZ2UgaW4KKwkJ CSAqIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdoZW4gdGhlIGludmFsaWRhdGlv biBtZXNzYWdlCisJCQkgKiBmcm9tIERST1AgVkFSSUFCTEUgYXJyaXZlcy4gIEFmdGVyIGFsbCwg dGhlIHRyYW5zYWN0aW9uIGNvdWxkCisJCQkgKiBzdGlsbCBiZSByb2xsZWQgYmFjay4KKwkJCSAq LworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCXN2YXItPmRyb3BfbHhpZCA9IE15UHJv Yy0+dnhpZC5seGlkOwogCQl9CiAJfQogfQpAQCAtMTY3LDYgKzIxOSw2NyBAQCBpc19zZXNzaW9u X3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q CisgKiBDaGVjayBhbGwgcG90ZW50aWFsbHkgaW52YWxpZCBzZXNzaW9uIHZhcmlhYmxlIGRhdGEg aW4gbG9jYWwgbWVtb3J5IGFuZCBmcmVlCisgKiB0aGUgbWVtb3J5IGZvciBhbGwgaW52YWxpZCBv bmVzLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGFueSByZWFkIG9yCisgKiB3cml0 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUuICBGcmVlaW5nIG9mIGEgdmFyaWFibGUncyBtZW1vcnkg aXMgcG9zdHBvbmVkIGlmCisgKiB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdAorICogb3BlcmF0aW9uIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCisgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CisgKiBhbGwgZW50cmllcyBpbiAic2Vzc2lvbnZhcnMiIHdpbGwgYmUgc2V0IHRvICJpc192YWxp ZCIgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGlzCisgKiBkb25lLiAgSG93ZXZlciwgd2UgY2FuIGd1YXJh bnRlZSB0aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9uY2UuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQoreworCUhBU0hfU0VRX1NU QVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxpZGF0aW9u IHJlcXVpcmVzIHN5c3RlbSBjYXRhbG9nIGFjY2Vzcywgc28gdGhlIHNlc3Npb24gc3RhdGUKKwkg KiBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlBc3NlcnQoSXNUcmFuc2FjdGlv blN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8ICFzZXNzaW9udmFycykKKwkJ cmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGUgZmxhZyBiZWZvcmUgd2Ugc3RhcnQgdGhlIHZh bGlkYXRpb24uICBJdCBjYW4gYmUgc2V0IGFnYWluCisJICogYnkgY29uY3VycmVudGx5IGluY29t aW5nIHNpbnZhbCBtZXNzYWdlcy4KKwkgKi8KKwluZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisK KwllbG9nKERFQlVHMSwgImVmZmVjdGl2ZSBjYWxsIG9mIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3Zh cmlhYmxlcygpIik7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKwl3 aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5V TEwpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQlpZiAoc3Zhci0+ZHJvcF9s eGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJCS8qIHRyeSBhZ2FpbiBpbiB0aGUg bmV4dCB0cmFuc2FjdGlvbiAqLworCQkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNv bnRpbnVlOworCQkJfQorCisJCQlpZiAoIWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQl7CisJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZh cmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNl CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlh bGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtMTk2LDYgKzMwOSw4IEBA IHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCXN2YXItPmRyb3BfbHhpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOworCiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1 ZSA9IChEYXR1bSkgMDsKIApAQCAtMzE5LDIyICs0MzQsNDIgQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19o YXNodGFibGVzKCk7CiAKKwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNh Y3Rpb25JZCB8fAorCQl2YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJ CS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJ cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQg dGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4 aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5k KTsKIAogCWlmIChmb3VuZCkKIAl7CisJCS8qCisJCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGNv dWxkIGhhdmUgYmVlbiBkcm9wcGVkIGJ5IGEgRFJPUCBWQVJJQUJMRQorCQkgKiBzdGF0ZW1lbnQg aW4gYSBzdWJ0cmFuc2FjdGlvbiB0aGF0IHdhcyBsYXRlciByb2xsZWQgYmFjaywgd2hpY2gKKwkJ ICogbWVhbnMgdGhhdCB3ZSBtYXkgaGF2ZSB0byB3b3JrIHdpdGggdGhlIGRhdGEgb2YgYSB2YXJp YWJsZSBtYXJrZWQKKwkJICogYXMgaW52YWxpZC4KKwkJICovCiAJCWlmICghc3Zhci0+aXNfdmFs aWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3Nh Z2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQotCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZl IHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICogV2UgaGF2ZSB0byBjaGVj ayB0aGUgc3lzdGVtIGNhdGFsb2cgdG8gc2VlIGlmIHRoZSB2YXJpYWJsZSBpcworCQkJICogc3Rp bGwgdmFsaWQsIGV2ZW4gaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugc2V0IGl0IHRvIGludmFs aWQuCisJCQkgKgorCQkJICogVGhlIHZhcmlhYmxlIG11c3QgYmUgdmFsaWRhdGVkIGJlZm9yZSBp dCBpcyBhY2Nlc3NlZC4gIFRoZSBvaWQKKwkJCSAqIHNob3VsZCBiZSB2YWxpZCwgYmVjYXVzZSB0 aGUgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIGlzIGFscmVhZHkKKwkJCSAqIGxvY2tlZCwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgd291bGQgcmVtb3ZlCisJCQkgKiB2 YXJpYWJsZXMgZHJvcHBlZCBieSBvdGhlciB0cmFuc2FjdGlvbnMuCiAJCQkgKi8KIAkJCWlmIChp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQogCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1 ZTsKIAkJCWVsc2UKLQkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2Ug aGF2ZSB0byBkaXNjYXJkIGl0ICovCi0JCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHN0YXRlIG9mIHNlc3Npb24gdmFyaWFi bGUgJXUiLCB2YXJpZCk7CiAJCX0KIAl9CiAJZWxzZQpAQCAtMzk1LDYgKzUzMCwxNiBAQCBTZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJaWYg KCFzZXNzaW9udmFycykKIAkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlm ICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlk YXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5 IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpOworCisJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0 aGUgc2FtZSB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5s eGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywg JnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggNDQzYWZiYWZkNC4uM2RhYjhhZTJhNCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOCBAQAog I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZVdpdGhT ZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVy biBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAq dHlwaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24t dmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFi bGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhNTU3OWRjN2MK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwxMTAgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNl c3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxl dDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCist LS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwor c3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3Qg ZXhpc3QKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCitz dGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215 dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47CitzdGVwIGRyb3A6 IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBj b2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFy dGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBs ZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgor LS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCBy ZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVk CistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKwor c3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJ QUJMRSBteXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92 ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0t LS0tKy0tLS0rLS0tLS0tLQorICAgICAgfCAgICB8dCAgICAgIAorKDEgcm93KQorCitzdGVwIHZh bDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCisKK3N0YXJ0 aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQor c3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Citt eXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgczE6IEJFR0lOOworc3RlcCBkYmc6 IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp Oworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2 YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7Citz dGVwIGNyZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VM RUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Citz Y2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xteXZhcnxm ICAgICAgCisoMSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0K KyAgICAgCisoMSByb3cpCisKK3N0ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0 YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRp c2NhcmQgc2MzIHN0YXRlCitzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMg dGV4dDsKK3N0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKK3N0ZXAgczM6IEJFR0lOOwor c3RlcCBjcmVhdGU0OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CitzdGVwIGxldDQ6 IExFVCBteXZhcjQgPSAndGVzdCc7CitzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsK K3N0ZXAgZHJvcDM6IERST1AgVkFSSUFCTEUgbXl2YXIzOworc3RlcCBpbnZhbDM6IFNFTEVDVCBD T1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsKKz9jb2x1bW4/CistLS0tLS0tLQor dCAgICAgICAKKygxIHJvdykKKworc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKK3N0 ZXAgc2MzOiBDT01NSVQ7CitzdGVwIHN0YXRlOiBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOwordmFybmFtZQorLS0tLS0tLQorbXl2YXIgIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2lzb2xhdGlvbl9zY2hlZHVsZQppbmRleCAxNDMxMDlhYTRkLi43NDUzNjg1ZDA0IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNSwzICsxMTUsNCBAQCB0ZXN0OiBz ZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRl c3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24t dmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZh cmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5z cGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM4NjRmZWU0MDAKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjCkBAIC0wLDAgKzEsNTAgQEAKKyMgVGVzdCBzZXNzaW9uIHZhcmlhYmxlcyBtZW1vcnkg Y2xlYW51cCBmb3Igc2ludmFsCisKK3NldHVwCit7CisgICAgQ1JFQVRFIFZBUklBQkxFIG15dmFy IEFTIHRleHQ7Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMg bXl2YXI7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAgczEJCXsgQkVHSU47IH0KK3N0ZXAgbGV0CXsg TEVUIG15dmFyID0gJ3Rlc3QnOyB9CitzdGVwIHZhbAl7IFNFTEVDVCBteXZhcjsgfQorc3RlcCBk YmcJeyBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsgfQorc3RlcCBzcjEJeyBST0xMQkFDSzsgfQorCitzZXNzaW9uIHMyCitzdGVwIGRyb3AJ CXsgRFJPUCBWQVJJQUJMRSBteXZhcjsgfQorc3RlcCBjcmVhdGUJCXsgQ1JFQVRFIFZBUklBQkxF IG15dmFyIEFTIHRleHQ7IH0KKworc2Vzc2lvbiBzMworc3RlcCBzMwkJCXsgQkVHSU47IH0KK3N0 ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIGNyZWF0ZTQJeyBDUkVBVEUg VkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KK3N0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rl c3QnOyB9CitzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9CitzdGVwIGludmFs MwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7IH0KK3N0ZXAg ZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9CitzdGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0 ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsgfQorCitzZXNzaW9u IHM0CitzdGVwIGNyZWF0ZTMJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7IH0KK3N0 ZXAgZHJvcDMJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjM7IH0KKworIyBDb25jdXJyZW50IGRyb3Ag b2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0byBhbiBlcnJvcgorcGVybXV0YXRpb24g bGV0IHZhbCBkcm9wIHZhbAorIyBTYW1lLCBidXQgd2l0aCBhbiBleHBsaWNpdCB0cmFuc2FjdGlv bgorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkcm9wIHZhbCBzcjEKKyMgQ29uY3VycmVudCBkcm9w L2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxl CitwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCisjIENvbmN1cnJl bnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0byBlbXB0eSB2 YXJpYWJsZQorIyBXZSBuZWVkIGEgdHJhbnNhY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgd2Ugd29u J3QgYWNjZXB0IGludmFsaWRhdGlvbiB3aGVuCisjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVy IHRoZSBjb25jdXJyZW50IGRyb3AKK3Blcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCisjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFs IHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQz IHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg MmRhZThiZTFjMS4uZWI0NTU1ZTFmYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTExMjQsMyArMTEyNCwyMjAgQEAgU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCist LSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9yeSBiZWZvcmUg dGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBuZXh0IHRy YW5zYWN0aW9uCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwg ICAgICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZh cjE7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZl ZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFuc2FjdGlv bgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOwor QkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7 CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZh cjE7CisgICAgICAgICAgICAgICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKworLS0gYW5vdGhlciB0ZXN0 CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNo b3VsZCBiZSBvaywgcmVzdWx0ICdBaG9qJworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor IEFob2oKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJl bW92ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIG5hbWUsIHR5 cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgaW50ZWdlciB8IHQgICAg ICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAx MDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAg U0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRh dGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwg aW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7Cisg IFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2 YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlU OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAor KDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJs ZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJP TExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAg U0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCiso MSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxl CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgU0FW RVBPSU5UIHMyOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Np b24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJv dykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcg YW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0 cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYmE1ZTQxMmJiMC4uMWQ0ZGQ5 MmExMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt ODIwLDMgKzgyMCwxMjMgQEAgRElTQ0FSRCBWQVJJQUJMRVM7CiAKIC0tIHNob3VsZCBiZSB6ZXJv IGFnYWluCiBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCist LSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9yeSBiZWZvcmUg dGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBuZXh0IHRy YW5zYWN0aW9uCisKK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNh bl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworRFJPUCBW QVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworLS0gdGhlIGNvbnRl bnQgb2YgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRy b3BwZWQKKy0tIGJ5IGFuIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2 YXIxOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CisKK1JPTExCQUNLOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworRFJP UCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEg PSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAxMDAKK1NFTEVDVCB2YXIxOworUk9MTEJB Q0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitCRUdJTjsKKyAg Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNU IHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlU OworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxF Q1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hF UkUgTk9UIHJlbW92ZWQ7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitMRVQgdmFyMiA9IDA7CitCRUdJ TjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICBTRUxFQ1QgdmFyMjsKKyAgUk9MTEJBQ0sgVE8gczI7CitDT01NSVQ7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNB VkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKK1JPTExC QUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lO VCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3Vj aGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisKKyAgU0FWRVBP SU5UIHMyOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24g dmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBj bGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZh cjI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSByZXBlYXRl ZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFD SzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFS SUFCTEUgdmFyMTsgUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK K0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKLS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20241210-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvu017 RnJvbSAxMGFlNTc5NjgxYzQ3MzgwN2NmZGI1ZmFjZDVhOGEwN2FkZTQ5OWE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIxXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2EuLjYxYjk2N2Y5YzkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5z Z21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VRVUVOQ0VT IHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5DRVMg fCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZBUklBQkxF UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJl c2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCisg ICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFsPk5V TEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRFTVBPUkFS WTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19hbGwoKTsK IERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsKK0RJU0NB UkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDkyZDk4M2FjNzQu LmQwNmViYWJhNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rpc2NhcmQuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAi dXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCkBAIC00OCw2ICs0OSwxMCBA QCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJ UmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRElTQ0FSRF9W QVJJQUJMRVM6CisJCQlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIERJU0NBUkQgdGFyZ2V0OiAlZCIs IHN0bXQtPnRhcmdldCk7CiAJfQpAQCAtNzUsNCArODAsNSBAQCBEaXNjYXJkQWxsKGJvb2wgaXNU b3BMZXZlbCkKIAlSZXNldFBsYW5DYWNoZSgpOwogCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7 CiAJUmVzZXRTZXF1ZW5jZUNhY2hlcygpOworCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDEwMWY0ZDhmNGUuLjZk MGMyYzAwMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk0 LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2VydChzZXNz aW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjYxLDMgKzY2NywyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSB0 aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAqLwordm9p ZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNoIHRhYmxl IGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252YXJzKQor CXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBOVUxMOwor CX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlhYmxlcyAq LworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNvbnRleHRS ZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDhhZTM2OGM1 MTMuLmFhZDQ3MzA1ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3Nyw3ICsyMDc3LDEzIEBAIERpc2Nh cmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURp c2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9 IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwppbmRleCA1NTQ5MzU5OGU0Li42ZWMwZjhiNzdmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk2Miw2ICsyOTYyLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDk5YTlkZDBkNGMuLjNkZTY5NTY0MjEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTQwODMsNyArNDA4Myw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlDT01QTEVU RV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09NUExFVEVf V0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxFUyIpOwog CiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYjNmMDNjNjU4Mi4uNDQzYWZiYWZkNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjksNCArMjksNiBAQCBleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlz TnVsbCwgT2lkIGV4cGVjdAogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1 ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJu IHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCA3NzhkYjZhZDRmLi4wNGFiMjJiZDQ5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC0zOTg4LDYgKzM5ODgsNyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVND QVJEX1BMQU5TLAogCURJU0NBUkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJE X1ZBUklBQkxFUywKIH0gRGlzY2FyZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGE5MjFhZjI0ODYuLmJkNzk2NGFlYTYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01EVEFHKENNRFRBR19ESVNDQVJE X0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQgU0VRVUVOQ0VTIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9URU1QLCAiRElT Q0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dS RUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGQzZDgzMDZiYTIuLjJkYWU4YmUxYzEgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xMDYxLDMgKzEwNjEsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7 CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJPUCBTQ0hF TUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkgY2xlYW5pbmcgYnkg RElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZh cjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgSGVsbG8KKygx IHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCiso MSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGluaXRp YWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hvdWxk IGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3VsZCBiZSB6ZXJvIHN0 aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNU IG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5f dXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cp CisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGQyNjkyNTk0ZGUuLmJhNWU0MTJiYjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTc4NCwzICs3ODQsMzkgQEAgRFJPUCBWQVJJQUJM RSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsK IAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNv bW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxs byc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZh cjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1Qg dmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcg cGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElT Q0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBi ZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxl Y3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZB UklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20241210-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvu918 RnJvbSBmY2I5MDgwYzAxNzI0ZDQ5NjU5YWUyOGUxNjdhNDc1YzE5MDlkYjAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIxXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDY1 Nzc2ODQxNWQuLjEwMWY0ZDhmNGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKQEAgLTU2OSwzICs1NjksOTUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25fdmFy aWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rpb24g ZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisgKiBj b250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNw bGF5IGRhdGEgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkLCBi dXQgZm9yIHdoaWNoIHRoaXMgYmFja2VuZCBkaWRuJ3QKKyAqIHByb2Nlc3MgdGhlIHNoYXJlZCBp bnZhbGlkYXRpb25zIHlldC4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIE5VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTIDgK KworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKworCWlmIChzZXNzaW9udmFycykK Kwl7CisJCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+ cmVzdWx0aW5mbzsKKwkJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7 CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7 CisJCQlEYXR1bQkJdmFsdWVzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCWJv b2wJCW51bGxzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCUhlYXBUdXBsZQl0 cDsKKwkJCWJvb2wJCXZhcl9pc192YWxpZCA9IGZhbHNlOworCisJCQltZW1zZXQodmFsdWVzLCAw LCBzaXplb2YodmFsdWVzKSk7CisJCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOwor CisJCQl2YWx1ZXNbMF0gPSBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKTsKKwkJCXZhbHVl c1szXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dHlwaWQpOworCisJCQkvKgorCQkJICogSXQg aXMgcG9zc2libGUgdGhhdCB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZQor CQkJICogY2F0YWxvZywgYnV0IG5vdCB5ZXQgcHVyZ2VkIGZyb20gdGhlIGhhc2ggdGFibGUuCisJ CQkgKi8KKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHN2YXItPnZhcmlkKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsK KwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHRwKTsKKworCQkJCS8qCisJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFy aWFibGUgaGFzIGJlZW4gZHJvcHBlZCBhbmQKKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcg dmFyaWFibGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuICBVc2UKKwkJCQkgKiB0aGUgY2F0YWxv ZyBpbmZvcm1hdGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqLworCQkJ CWlmIChzdmFyLT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJewor CQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9u YW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2 YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlk KSk7CisJCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVz WzZdID0gQm9vbEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxl UmVsYXRpb25JZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFD TF9TRUxFQ1QpID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0 dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFy LT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNM Q0hFQ0tfT0spOworCisJCQkJCXZhcl9pc192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKworCQkJLyogaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcg Y2F0YWxvZyBlbnRyeSwgcmV0dXJuIG51bGwgdmFsdWVzICovCisJCQlpZiAoIXZhcl9pc192YWxp ZCkKKwkJCXsKKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0cnVlOworCQkJ CW51bGxzWzRdID0gdHJ1ZTsKKwkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJ CQkJbnVsbHNbNl0gPSB0cnVlOworCQkJCW51bGxzWzddID0gdHJ1ZTsKKwkJCX0KKworCQkJdHVw bGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFs dWVzLCBudWxscyk7CisJCX0KKwl9CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggYjUxMzM3YWQyNS4uNDIwMDQyOGQ2ZiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMjQxMCw0ICsxMjQxMCwxMiBAQAogICBwcm9hcmd0eXBlcyA9PiAnaW50 MicsCiAgIHByb3NyYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAorIyBTZXNzaW9u IHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVz ZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxl cycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9 PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJv YXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4 dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVt b3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3Zh cmlhYmxlcycgfSwKIF0KLS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20241210-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvuf19 RnJvbSAzM2E3NDI0YjhlNjVhNjNiZGI5YjY5MDNmNTZmM2ZhNGQ0MTdjZTI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjFdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTMgKwogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQzICsKIGRvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKwogZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgIDMgKwogZG9jL3NyYy9zZ21sL3JlZi9k cm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvbGV0 LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jICAgICAgICAgICAgICAgfCAzMTUgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFr ZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29u LmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJl LmMgICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jICAgICAgIHwgNTcxICsrKysrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHIuYyAgICAgICAgICAgICAgIHwgIDM2ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICAgICB8ICA1NSArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24u YnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmMgICAgICB8IDIwMSArKysrCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyAgICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYyAgICAgICAgICB8IDEzNCArKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMgICAgICAgICAgfCAgMzUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAg ICAgICAgICAgICB8IDI2OSArKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAg ICAgICAgICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAg ICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAg ICAgICAgICAgIHwgMjIwICsrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAg ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgICAgICAgICAgICAg ICAgICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAgICAgICAg ICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAg ICAgICAgfCAgMTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgIDQ2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAg ICB8ICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAg IHwgIDEwICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAg fCAgMTIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8 ICAgMiArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAg IDkgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgIDMy ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggICAgICAgICAgICAgICB8ICAgNCAr CiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oICAgICAgfCAgMjIgKwog c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNy Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNyArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av ZGVzdC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDkyNSArKysrKysrKysrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDYzOSArKysrKysrKysr KysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNSAr CiA1OCBmaWxlcyBjaGFuZ2VkLCAzOTI1IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu aAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggODdiNTM3MGE0OS4uNmRhMzk1MGQ2YyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk3OTQsNiArOTc5NCwxOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ WExvZ1JlY1B0cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExT TiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1l IHVuaXF1ZQorICAgICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxk PiBhbG9uZSBpcyBub3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBj YW4gZ2V0IHJldXNlZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAg ICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0 cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDAyNmY5NmE0NDIuLjUxNTU4OGVl ZjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwKQEAgLTUzNTIsNiArNTM1Miw0OSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBG Uk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAg ICAgY29tbWFuZHMuICBBIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIGNyZWF0ZWQgYnkgdGhlIDxj b21tYW5kPkNSRUFURQogICAgIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLgogICAgPC9wYXJh PgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNl dCB3aXRoIHRoZSBTUUwgc3RhdGVtZW50CisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRo ZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHJldHJpZXZlZAorICAgIHdpdGgg dGhlIFNRTCBzdGF0ZW1lbnQgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPi4KKzxwcm9ncmFtbGlz dGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRf ZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgIG9yCisKKzxwcm9n cmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIEFTIGlu dGVnZXI7CitHUkFOVCBSRUFEIE9OIFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgVE8g UFVCTElDOworTEVUIGN1cnJlbnRfdXNlcl9pZCA9IChTRUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVS RSB1c2VuYW1lID0gc2Vzc2lvbl91c2VyKTsKK1NFTEVDVCBjdXJyZW50X3VzZXJfaWQ7Cis8L3By b2dyYW1saXN0aW5nPgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJp ZXZpbmcKKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xp dGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBl bHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9j b21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFs OgorICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlv biBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwg bGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQs IGJ1dAorICAgIHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQg KGxpa2UgdGhlIGNvbnRlbnQgb2YKKyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgSW5zaWRlIGEgcXVlcnkgb3IgYW4gZXhwcmVzc2lvbiwgYSBzZXNz aW9uIHZhcmlhYmxlIGNhbiBiZQorICAgIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IGEgY29s dW1uIHdpdGggdGhlIHNhbWUgbmFtZS4gIFNpbWlsYXJseSwgdGhlCisgICAgbmFtZSBvZiBhIGZ1 bmN0aW9uIG9yIHByb2NlZHVyZSBhcmd1bWVudCBvciBhIFBML3BnU1FMIHZhcmlhYmxlIChzZWUK KyAgICA8eHJlZiBsaW5rZW5kPSJwbHBnc3FsLWRlY2xhcmF0aW9ucyIvPikgY2FuIHNoYWRvdyBh IHNlc3Npb24gdmFyaWFibGUKKyAgICBpbiB0aGUgcm91dGluZSdzIGJvZHkuICBTdWNoIGNvbGxp c2lvbnMgb2YgaWRlbnRpZmllcnMgY2FuIGJlIHJlc29sdmVkCisgICAgYnkgdXNpbmcgcXVhbGlm aWVkIGlkZW50aWZpZXJzOiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgcXVhbGlmaWVkIHdpdGgK KyAgICB0aGUgc2NoZW1hIG5hbWUsIGNvbHVtbnMgY2FuIHVzZSB0YWJsZSBhbGlhc2VzLCByb3V0 aW5lIHZhcmlhYmxlcyBjYW4gdXNlCisgICAgYmxvY2sgbGFiZWxzLCBhbmQgcm91dGluZSBhcmd1 bWVudHMgY2FuIHVzZSB0aGUgcm91dGluZSBuYW1lLgorICAgPC9wYXJhPgogICA8L3NlY3QxPgog CiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wYXJh bGxlbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKaW5kZXggMWNlOWFiZjg2Zi4u NjgzZGVkZTZhZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKQEAgLTUxNSw2ICs1MTUsMTIgQEAgRVhQTEFJTiBT RUxFQ1QgKiBGUk9NIHBnYmVuY2hfYWNjb3VudHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAg ICAgICAgIFBsYW4gbm9kZXMgdGhhdCByZWZlcmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1 YlBsYW48L2xpdGVyYWw+LgogICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNl c3Npb24gdmFyaWFibGUuCisgICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9pdGVt aXplZGxpc3Q+CiAKICA8c2VjdDIgaWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmlu ZGV4IDc4ZTQ5ODMxMzkuLmJmYmZmOWFiNzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBn c3FsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjAzNCw2ICs2MDM0 LDIwIEBAICQkIExBTkdVQUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKIDwvcHJvZ3JhbWxp c3Rpbmc+CiAgICAgPC9wYXJhPgogICAgPC9zZWN0Mz4KKworICAgPHNlY3QzIGlkPSJwbHBnc3Fs LXBvcnRpbmctcGFja2FnZS12YXJpYWJsZXMiPgorICAgIDx0aXRsZT48Y29tbWFuZD5QYWNrYWdl cyBhbmQgcGFja2FnZSB2YXJpYWJsZXM8L2NvbW1hbmQ+PC90aXRsZT4KKworICAgIDxwYXJhPgor ICAgICBUaGUgPGFwcGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFz IG5vIHBhY2thZ2VzLCBhbmQKKyAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9y IHBhY2thZ2UgY29uc3RhbnRzLgorICAgICBZb3UgY2FuIGNvbnNpZGVyIHRyYW5zbGF0aW5nIGFu IE9yYWNsZSBwYWNrYWdlIGludG8gYSBzY2hlbWEgaW4KKyAgICAgPHByb2R1Y3RuYW1lPlBvc3Rn cmVTUUw8L3Byb2R1Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzCisg ICAgIHdvdWxkIHRoZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBpbiB0aGF0IHNj aGVtYSwgYW5kIHBhY2thZ2UKKyAgICAgdmFyaWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8g c2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAgIChzZWUgPHhyZWYgbGlua2Vu ZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+KS4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QzPgog ICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0icGxwZ3NxbC1wb3J0aW5nLWFwcGVuZGl4Ij4KZGlm ZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbAppbmRleCAyZjY3ZGUzZTIxLi5jYzNiZDVhYjU0IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9h bGxmaWxlcy5zZ21sCkBAIC0xNTgsNiArMTU4LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUg c2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAg ICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4KIDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hl bWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hlbWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQg ICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dtbCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAg ICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVOVElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lT VEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBsb2FkICAgICAgICAgICAgICAgU1lTVEVNICJs b2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAgICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21s Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAppbmRleCBkODc1NzBlN2Q4Li5kMjAz NjM1MWU1IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0xNzMsNiArMTcz LDcgQEAgQUxURVIgVkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAgPHNpbXBsZWxp c3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZh cmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFy aWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwv bWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50cnk+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBiMTJiOWZmMjc3Li4wNWJmNjdlMzQx IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTEyMyw2ICsxMjMsOCBA QCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJp YWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKIDxwcm9ncmFtbGlzdGluZz4KIENSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2 YXIxOwogPC9wcm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCkBAIC0xNDMsNiArMTQ1LDcgQEAg Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5l Ij4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJl cj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVy PgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2lt cGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ry b3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCmlu ZGV4IDViZGIzNTYwZjAuLjY3OTg4YjVmY2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv ZHJvcF92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sCkBAIC0xMTEsNiArMTExLDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlz dCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJp YWJsZSIvPjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFy aWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwv bWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9sZXQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZjY2NDA1NzZiZQotLS0gL2Rldi9udWxs CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKQEAgLTAsMCArMSw5NiBAQAorPCEtLQor ZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4K KworPHJlZmVudHJ5IGlkPSJzcWwtbGV0Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1sZXQiPgor ICA8cHJpbWFyeT5MRVQ8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgor ICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmNoYW5n aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5 dGl0bGU+TEVUPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAg PHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwv cmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5MRVQ8L3JlZm5hbWU+CisgIDxy ZWZwdXJwb3NlPmNoYW5nZSBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZTwvcmVmcHVycG9zZT4K KyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitMRVQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2VhYmxl PiA9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFj ZWFibGU+Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+ TEVUPC9jb21tYW5kPiBjb21tYW5kIGFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHNl c3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAg IDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+c2Vzc2lvbl92YXJpYWJsZTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1l IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4K KyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPnNxbF9leHByZXNzaW9uPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgQW4gYXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBt dXN0IGJlIG9mIGEgZGF0YSB0eXBlIHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBl IG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+ CisKKyAgPHBhcmE+CisgICBFeGFtcGxlOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklB QkxFIG15dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxF Q1Qgc3VtKHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3Ru YW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKwor ICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0i c3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0 MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMjU1NzhmMzk0Ni4uMTNlNGFkYzVk ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtMTg2LDYgKzE4Niw3IEBACiAgICAmZ3JhbnQ7CiAgICAm aW1wb3J0Rm9yZWlnblNjaGVtYTsKICAgICZpbnNlcnQ7CisgICAmbGV0OwogICAgJmxpc3RlbjsK ICAgICZsb2FkOwogICAgJmxvY2s7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2Rl cGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IGQ2NjJl NzZhY2YuLmYxODEzNDI4ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0xODY0LDYg KzE4NjQsMTEgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJewog CQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAorCQkvKiBhIHZhcmlhYmxlIHBh cmFtZXRlciBkZXBlbmRzIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwYXJhbS0+ cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJYWRkX29iamVjdF9hZGRyZXNzKFZhcmlh YmxlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdmFyaWQsIDAsCisJCQkJCQkJICAgY29udGV4dC0+ YWRkcnMpOworCiAJCS8qIEEgcGFyYW1ldGVyIG11c3QgZGVwZW5kIG9uIHRoZSBwYXJhbWV0ZXIn cyBkYXRhdHlwZSAqLwogCQlhZGRfb2JqZWN0X2FkZHJlc3MoVHlwZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXR5cGUsIDAsCiAJCQkJCQkgICBjb250ZXh0LT5hZGRycyk7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1l c3BhY2UuYwppbmRleCBlZjJhOTdlMmRjLi5mNWIyOTRkZjZhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNw YWNlLmMKQEAgLTM0MjYsNiArMzQyNiwzMjEgQEAgTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAq bnNwbmFtZSwKIAlyZXR1cm4gdmFyb2lkOwogfQogCisvKgorICogVGhlIGlucHV0IGxpc3QgY29u dGFpbnMgbmFtZXMgd2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0 CisgKiBwYXJ0IG9mIExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5z IGEgbmV3IGxpc3Qgd2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhv dXQgaW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChM aXN0ICpuYW1lcykKK3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsK KworCWZvcmVhY2gobCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJ CWlmIChJc0EobiwgU3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4p OworCQl9CisJCWVsc2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKKy8q IC0tLS0tCisgKiBJZGVudGlmeVZhcmlhYmxlIC0gdHJ5IHRvIGZpbmQgYSB2YXJpYWJsZSBmcm9t IGEgbGlzdCBvZiBpZGVudGlmaWVycworICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgdmFy aWFibGUgZm91bmQsIG9yIEludmFsaWRPaWQuCisgKgorICogIm5hbWVzIiBpcyBhIGxpc3Qgb2Yg dXAgdG8gZm91ciBpZGVudGlmaWVyczsgcG9zc2libGUgbWVhbmluZ3MgYXJlOgorICogLSB2YXJp YWJsZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkKKyAqIC0gc2NoZW1hLnZhcmlhYmxl CisgKiAtIHZhcmlhYmxlLmF0dHJpYnV0ZSAgKHNlYXJjaGVkIG9uIHRoZSBzZWFyY2hfcGF0aCkK KyAqIC0gc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFy aWFibGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1hLnZhcmlhYmxlLmF0dHJpYnV0ZQorICoKKyAqIElm IHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgd2F5IHRvIGlkZW50aWZ5IGEgdmFyaWFibGUsICJub3Rf dW5pcXVlIiB3aWxsIGJlCisgKiBzZXQgdG8gdHJ1ZS4KKyAqCisgKiBVbmxlc3MgIm5vZXJyb3Ii IGlzIHRydWUsIGFuIGVycm9yIGlzIHJhaXNlZCBpZiB0aGVyZSBhcmUgbW9yZSB0aGFuIGZvdXIK KyAqICBpZGVudGlmaWVycyBpbiB0aGUgbGlzdCwgb3IgaWYgdGhlIG5hbWVkIGRhdGFiYXNlIGlz IG5vdCB0aGUgY3VycmVudCBvbmUuCisgKiBUaGlzIGlzIHVzZWZ1bCBpZiB3ZSB3YW50IHRvIGlk ZW50aWZ5IGEgc2hhZG93ZWQgdmFyaWFibGUuCisgKgorICogSWYgYW4gYXR0cmlidXRlIGlzIGlk ZW50aWZpZWQsIGl0IGlzIHN0b3JlZCBpbiAiYXR0cm5hbWUiLCBvdGhlcndpc2UgdGhlCisgKiBw YXJhbWV0ZXIgaXMgc2V0IHRvIE5VTEwuCisgKgorICogVGhlIGlkZW50aWZpZWQgc2Vzc2lvbiB2 YXJpYWJsZSB3aWxsIGJlIGxvY2tlZCB3aXRoIGFuIEFjY2Vzc1NoYXJlTG9jay4KKyAqIC0tLS0t CisgKi8KK09pZAorSWRlbnRpZnlWYXJpYWJsZShMaXN0ICpuYW1lcywgY2hhciAqKmF0dHJuYW1l LCBib29sICpub3RfdW5pcXVlLCBib29sIG5vZXJyb3IpCit7CisJT2lkCQkJdmFyaWQgPSBJbnZh bGlkT2lkOworCU9pZAkJCW9sZF92YXJpZCA9IEludmFsaWRPaWQ7CisJdWludDY0CQlpbnZhbF9j b3VudDsKKwlib29sCQlyZXRyeSA9IGZhbHNlOworCisJLyoKKwkgKiBEREwgb3BlcmF0aW9ucyBj YW4gY2hhbmdlIHRoZSByZXN1bHRzIG9mIGEgbmFtZSBsb29rdXAuICBTaW5jZSBhbGwgc3VjaAor CSAqIG9wZXJhdGlvbnMgd2lsbCBnZW5lcmF0ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMsIHdlIGtl ZXAgdHJhY2sgb2YKKwkgKiB3aGV0aGVyIGFueSBzdWNoIG1lc3NhZ2VzIHNob3cgdXAgd2hpbGUg d2UncmUgcGVyZm9ybWluZyB0aGUgb3BlcmF0aW9uLAorCSAqIGFuZCByZXRyeSB1bnRpbCBlaXRo ZXIgKDEpIG5vIG1vcmUgaW52YWxpZGF0aW9uIG1lc3NhZ2VzIHNob3cgdXAgb3IgKDIpCisJICog dGhlIGFuc3dlciBkb2Vzbid0IGNoYW5nZS4KKwkgKi8KKwlmb3IgKDs7KQorCXsKKwkJTm9kZQkg ICAqZmllbGQxID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQyID0gTlVMTDsKKwkJTm9kZQkgICAq ZmllbGQzID0gTlVMTDsKKwkJTm9kZQkgICAqZmllbGQ0ID0gTlVMTDsKKwkJY2hhcgkgICAqYSA9 IE5VTEw7CisJCWNoYXIJICAgKmIgPSBOVUxMOworCQljaGFyCSAgICpjID0gTlVMTDsKKwkJY2hh cgkgICAqZCA9IE5VTEw7CisJCU9pZAkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBJbnZhbGlkT2lk OworCQlPaWQJCQl2YXJvaWRfd2l0aF9hdHRyID0gSW52YWxpZE9pZDsKKworCQkqbm90X3VuaXF1 ZSA9IGZhbHNlOworCQkqYXR0cm5hbWUgPSBOVUxMOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisK KwkJaW52YWxfY291bnQgPSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXI7CisKKwkJc3dpdGNo IChsaXN0X2xlbmd0aChuYW1lcykpCisJCXsKKwkJCWNhc2UgMToKKwkJCQlmaWVsZDEgPSBsaW5p dGlhbChuYW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisKKwkJCQl2 YXJpZCA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIHN0clZhbChmaWVsZDEpLCB0cnVlKTsKKwkJCQli cmVhazsKKworCQkJY2FzZSAyOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQlm aWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcp KTsKKwkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisKKwkJCQlpZiAoSXNBKGZpZWxkMiwgU3RyaW5n KSkKKwkJCQl7CisJCQkJCS8qIHdoZW4gYm90aCBmaWVsZHMgYXJlIG9mIHN0cmluZyB0eXBlICov CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQkvKgorCQkJCQkgKiBhLmIgY2FuIG1l YW4gInNjaGVtYSIuInZhcmlhYmxlIiBvciAidmFyaWFibGUiLiJmaWVsZCIuCisJCQkJCSAqIENo ZWNrIGJvdGggdmFyaWFudHMsIGFuZCByZXR1cm5zIEludmFsaWRPaWQgd2l0aAorCQkJCQkgKiBu b3RfdW5pcXVlIGZsYWcsIHdoZW4gYm90aCBpbnRlcnByZXRhdGlvbnMgYXJlCisJCQkJCSAqIHBv c3NpYmxlLgorCQkJCQkgKi8KKwkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlh YmxlKGEsIGIsIHRydWUpOworCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUo TlVMTCwgYSwgdHJ1ZSk7CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCS8qIHRoZSBsYXN0 IGZpZWxkIG9mIGxpc3QgY2FuIGJlIHN0YXIgdG9vICovCisJCQkJCUFzc2VydChJc0EoZmllbGQy LCBBX1N0YXIpKTsKKworCQkJCQkvKgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBmaWVsZDEg c2hvdWxkIGJlIHZhcmlhYmxlIG5hbWUuIEJ1dAorCQkJCQkgKiBkaXJlY3QgdW5ib3hpbmcgb2Yg Y29tcG9zaXRlIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdAorCQkJCQkgKiBzdXBwb3J0ZWQgbm93 LCBhbmQgdGhlbiB3ZSBkb24ndCBuZWVkIHRvIHRyeSBsb29rdXAKKwkJCQkJICogcmVsYXRlZCB2 YXJpYWJsZS4KKwkJCQkJICoKKwkJCQkJICogVW5ib3hpbmcgaXMgc3VwcG9ydGVkIGJ5IHN5bnRh eCAodmFyKS4qCisJCQkJCSAqLworCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9CisKKwkJ CQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9p ZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0 X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikp CisJCQkJeworCQkJCQkqYXR0cm5hbWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0 dHI7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQlib29sCQlm aWVsZDFfaXNfY2F0YWxvZyA9IGZhbHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVz KTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQli ID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykpCisJCQkJ CXsKKwkJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5j IGNhbiBtZWFuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hlbWEudmFy aWFibGUuZmllbGQuCisJCQkJCQkgKgorCQkJCQkJICogQ2hlY2sgYm90aCB2YXJpYW50cywgYW5k IHNldCBub3RfdW5pcXVlIGZsYWcsIHdoZW4KKwkJCQkJCSAqIGJvdGggaW50ZXJwcmV0YXRpb25z IGFyZSBwb3NzaWJsZS4KKwkJCQkJCSAqCisJCQkJCQkgKiBXaGVuIHRoaXJkIG5vZGUgaXMgc3Rh ciwgb25seSBwb3NzaWJsZQorCQkJCQkJICogaW50ZXJwcmV0YXRpb24gaXMgc2NoZW1hLnZhcmlh YmxlLiosIGJ1dCB0aGlzCisJCQkJCQkgKiBwYXR0ZXJuIGlzIG5vdCBzdXBwb3J0ZWQgbm93Lgor CQkJCQkJICovCisJCQkJCQl2YXJvaWRfd2l0aF9hdHRyID0gTG9va3VwVmFyaWFibGUoYSwgYiwg dHJ1ZSk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBjaGVjayBwYXR0ZXJuIGNhdGFsb2cuc2NoZW1h LnZhcmlhYmxlIG9ubHkgd2hlbgorCQkJCQkJICogdGhlcmUgaXMgcG9zc2liaWxpdHkgdG8gc3Vj Y2Vzcy4KKwkJCQkJCSAqLworCQkJCQkJaWYgKHN0cmNtcChhLCBnZXRfZGF0YWJhc2VfbmFtZShN eURhdGFiYXNlSWQpKSA9PSAwKQorCQkJCQkJeworCQkJCQkJCWZpZWxkMV9pc19jYXRhbG9nID0g dHJ1ZTsKKwkJCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFibGUoYiwgYywg dHJ1ZSk7CisJCQkJCQl9CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlBc3NlcnQo SXNBKGZpZWxkMywgQV9TdGFyKSk7CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQkJfQor CisJCQkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYmIE9pZElzVmFsaWQo dmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSpub3RfdW5pcXVlID0gdHJ1ZTsKKwkJ CQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChP aWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCQl7CisJCQkJCQl2YXJpZCA9IHZh cm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJv aWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKmF0dHJuYW1lID0gYzsKKwkJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhfYXR0cjsKKwkJCQkJfQorCisJCQkJCS8qCisJCQkJCSAqIFdoZW4gd2Ug ZGlkbid0IGZpbmQgdmFyaWFibGUsIHdlIGNhbiAod2hlbiBpdCBpcworCQkJCQkgKiBhbGxvd2Vk KSByYWlzZSBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2UgZXJyb3IuCisJCQkJCSAqLworCQkJCQlp ZiAoIU9pZElzVmFsaWQodmFyaWQpICYmICFub2Vycm9yICYmICFmaWVsZDFfaXNfY2F0YWxvZykK KwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNl cyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhu YW1lcykpKSk7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDQ6CisJCQkJeworCQkJCQlm aWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOwor CQkJCQlmaWVsZDMgPSBsdGhpcmQobmFtZXMpOworCQkJCQlmaWVsZDQgPSBsZm91cnRoKG5hbWVz KTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0Eo ZmllbGQyLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDMsIFN0cmluZykpOworCisJ CQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCQkJCQlj ID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJLyoKKwkJCQkJICogSW4gdGhpcyBjYXNlLCAiYSIg aXMgdXNlZCBhcyBjYXRhbG9nIG5hbWUgLSBjaGVjayBpdC4KKwkJCQkJICovCisJCQkJCWlmIChz dHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKKwkJCQkJewor CQkJCQkJaWYgKCFub2Vycm9yKQorCQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCQkgZXJybXNnKCJj cm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJCQkJ CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJCX0KKworCQkJCQlpZiAoSXNB KGZpZWxkNCwgU3RyaW5nKSkKKwkJCQkJeworCQkJCQkJZCA9IHN0clZhbChmaWVsZDQpOworCQkJ CQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0KElzQShmaWVsZDQsIEFfU3Rhcikp OworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0KKworCQkJCQkqYXR0cm5hbWUgPSBk OworCQkJCQl2YXJpZCA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOworCQkJCX0KKwkJCQli cmVhazsKKworCQkJZGVmYXVsdDoKKwkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCSBlcnJt c2coImltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIs CisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQlyZXR1cm4gSW52YWxp ZE9pZDsKKwkJfQorCisJCS8qCisJCSAqIElmLCB1cG9uIHJldHJ5LCB3ZSBnZXQgYmFjayB0aGUg c2FtZSBPSUQgd2UgZGlkIGxhc3QgdGltZSwgdGhlbiB0aGUKKwkJICogaW52YWxpZGF0aW9uIG1l c3NhZ2VzIHdlIHByb2Nlc3NlZCBkaWQgbm90IGNoYW5nZSB0aGUgZmluYWwgYW5zd2VyLgorCQkg KiBTbyB3ZSdyZSBkb25lLgorCQkgKgorCQkgKiBJZiB3ZSBnb3QgYSBkaWZmZXJlbnQgT0lELCB3 ZSd2ZSBsb2NrZWQgdGhlIHZhcmlhYmxlIHRoYXQgdXNlZCB0bworCQkgKiBoYXZlIHRoaXMgbmFt ZSByYXRoZXIgdGhhbiB0aGUgb25lIHRoYXQgZG9lcyBub3cuICBTbyByZWxlYXNlIHRoZQorCQkg KiBsb2NrLgorCQkgKi8KKwkJaWYgKHJldHJ5KQorCQl7CisJCQlpZiAob2xkX3ZhcmlkID09IHZh cmlkKQorCQkJCWJyZWFrOworCisJCQlpZiAoT2lkSXNWYWxpZChvbGRfdmFyaWQpKQorCQkJCVVu bG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgb2xkX3ZhcmlkLCAwLCBBY2Nl c3NTaGFyZUxvY2spOworCQl9CisKKwkJLyoKKwkJICogTG9jayB0aGUgdmFyaWFibGUuICBUaGlz IHdpbGwgYWxzbyBhY2NlcHQgYW55IHBlbmRpbmcgaW52YWxpZGF0aW9uCisJCSAqIG1lc3NhZ2Vz LiAgSWYgd2UgZ290IGJhY2sgSW52YWxpZE9pZCwgaW5kaWNhdGluZyBub3QgZm91bmQsIHRoZW4K KwkJICogdGhlcmUncyBub3RoaW5nIHRvIGxvY2ssIGJ1dCB3ZSBhY2NlcHQgaW52YWxpZGF0aW9u IG1lc3NhZ2VzCisJCSAqIGFueXdheSwgdG8gZmx1c2ggYW55IG5lZ2F0aXZlIGNhdGNhY2hlIGVu dHJpZXMgdGhhdCBtYXkgYmUKKwkJICogbGluZ2VyaW5nLgorCQkgKi8KKwkJaWYgKCFPaWRJc1Zh bGlkKHZhcmlkKSkKKwkJCUFjY2VwdEludmFsaWRhdGlvbk1lc3NhZ2VzKCk7CisJCWVsc2UgaWYg KE9pZElzVmFsaWQodmFyaWQpKQorCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRp b25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJaWYgKGludmFsX2NvdW50ID09 IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcikKKwkJCWJyZWFrOworCisJCXJldHJ5ID0gdHJ1 ZTsKKwkJb2xkX3ZhcmlkID0gdmFyaWQ7CisJCXZhcmlkID0gSW52YWxpZE9pZDsKKwl9CisKKwly ZXR1cm4gdmFyaWQ7Cit9CisKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUKICAqCQlH aXZlbiBhIHBvc3NpYmx5LXF1YWxpZmllZCBuYW1lIGV4cHJlc3NlZCBhcyBhIGxpc3Qgb2YgU3Ry aW5nIG5vZGVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGEyMWNhYTBlMGYuLmM5 OWEyZWFjMDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTI2LDYgKzI2LDcgQEAK ICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5z LmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNu LmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKIAogc3RhdGljIE9iamVjdEFkZHJlc3Mg Y3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCkBAIC0xMDEsNiArMTAyLDcgQEAg Y3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFyaWQgPSBHZXROZXdPaWRX aXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsK IAogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2 YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFdID0gTFNO R2V0RGF0dW0oR2V0WExvZ0luc2VydFJlY1B0cigpKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJuYW1lIC0gMV0gPSBOYW1lR2V0RGF0dW0oJnZhcm5hbWUpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3Bh Y2UpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyVHlwZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4ZjczNDhmOTEuLjFjZmFl Y2E1MWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC01MCw2ICs1MCw3IEBAIE9CSlMgPSBcCiAJ c2NoZW1hY21kcy5vIFwKIAlzZWNsYWJlbC5vIFwKIAlzZXF1ZW5jZS5vIFwKKwlzZXNzaW9uX3Zh cmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlzdWJzY3JpcHRpb25jbWRzLm8gXAogCXRhYmxl Y21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKaW5kZXggNmRkMDBhNGFiZC4uY2E2MjFi ZTVlYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKKysrIGIv c3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQKQEAgLTM4LDYgKzM4LDcgQEAgYmFja2Vu ZF9zb3VyY2VzICs9IGZpbGVzKAogICAnc2NoZW1hY21kcy5jJywKICAgJ3NlY2xhYmVsLmMnLAog ICAnc2VxdWVuY2UuYycsCisgICdzZXNzaW9uX3ZhcmlhYmxlLmMnLAogICAnc3RhdHNjbWRzLmMn LAogICAnc3Vic2NyaXB0aW9uY21kcy5jJywKICAgJ3RhYmxlY21kcy5jJywKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwppbmRleCAzOWE3MWMxZGUyLi5lOWUzOTNhYTAyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC0zMzgsNiArMzM4LDE0IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUHJlcGFyZWRTdGF0ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAK KwkvKgorCSAqIFRoZSBhcmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGly ZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3Vw cG9ydCBzZXNzaW9uIHZhcmlhYmxlcyB5ZXQuCisJICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVy LgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJZWxvZyhFUlJP UiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKTsKKwog CS8qIFByZXBhcmUgdGhlIGV4cHJlc3Npb25zIGZvciBleGVjdXRpb24gKi8KIAlleHByc3RhdGVz ID0gRXhlY1ByZXBhcmVFeHByTGlzdChwYXJhbXMsIGVzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi42NTc3Njg0MTVkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0wLDAgKzEsNTcxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCisgKiBzZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCSAgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGlv bi9tYW5pcHVsYXRpb24gY29tbWFuZHMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5 OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9y bmlhCisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVk ZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNs dWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zh cmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCisjaW5jbHVkZSAibWlzY2Fk bWluLmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3Av dGNvcHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxz L2RhdHVtLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lz Y2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lz Y2FjaGUuaCIKKworLyoKKyAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0 b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVk IG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4K KyAqIFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUgInNlc3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9z ZSBrZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAqIHZhcmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBp cyBub3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRpZnkgYSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29u Y3VycmVudCBzZXNzaW9ucyBjb3VsZCBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVh dGUgYQorICogbmV3IG9uZSwgd2hpY2ggY291bGQgYmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAg VG8gZW5zdXJlIHRoYXQgdGhlIHZhbHVlcworICogc3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNh dGFsb2cgZGVmaW5pdGlvbiBtYXRjaCwgd2UgYWxzbyBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNy ZWF0ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nlc3MgdG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2Ug bmVlZCB0bworICogY2hlY2sgaWYgdGhlIExTTiBzdG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhl IExTTiBpbiB0aGUgY2F0YWxvZy4gIElmIHRoZXJlCisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4g dGhlIExTTnMsIG9yIGlmIHRoZSBPSUQgaXMgbm90IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAq IGF0IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBpbiBtZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJp YWJsZSBPSUQgb2YgdGhlIHZhcmlhYmxlIChoYXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0 ZV9sc247CisKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7 CisJaW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsK KworCS8qCisJICogZG9tYWluX2NoZWNrX2V4dHJhIGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRh dGEuICBUaGlzICJleHRyYSIgaXMKKwkgKiB1c3VhbGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2Ug ZG8gbm90IGhhdmUgYWNjZXNzIHRvIHRoYXQgbWVtb3J5IGNvbnRleHQKKwkgKiBmb3Igc2Vzc2lv biB2YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNlIFRvcFRyYW5zYWN0aW9uQ29udGV4dCBpbnN0ZWFk LgorCSAqIEEgZnJlc2ggdmFsdWUgaXMgZm9yY2VkIHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBh IGRpZmZlcmVudCB0cmFuc2FjdGlvbgorCSAqICh0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlm ZmVycyBmcm9tIGRvbWFpbl9jaGVja19leHRyYV9seGlkKS4KKwkgKi8KKwl2b2lkCSAgICpkb21h aW5fY2hlY2tfZXh0cmE7CisJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9s eGlkOworCisJLyoKKwkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJl IG91dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCisJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVu IGhhdmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbAorCSAqIHRydXN0d29y dGh5LgorCSAqLworCWJvb2wJCWlzX3ZhbGlkOworCisJdWludDMyCQloYXNodmFsdWU7CQkvKiB1 c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCit9IFNWYXJpYWJsZURhdGE7CisKK3R5 cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOworCitzdGF0aWMgSFRBQiAqc2Vzc2lvbnZh cnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAqLworCitzdGF0 aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKKworLyoKKyAq IENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KKyAq Lworc3RhdGljIHZvaWQKK3BnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50 IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsK KwlTVmFyaWFibGUJc3ZhcjsKKworCWVsb2coREVCVUcxLCAicGdfdmFyaWFibGVfY2FjaGVfY2Fs bGJhY2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFsdWUpOworCisJQXNzZXJ0KHNlc3Npb252YXJz KTsKKworCS8qCisJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLCB3ZSBoYXZl IHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQorCSAqIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICBT aW5jZSB3ZSBjYW4ndCB0ZWxsIHRoZSBleGFjdCBzZXNzaW9uIHZhcmlhYmxlCisJICogZnJvbSBp dHMgaGFzaHZhbHVlLCB3ZSBoYXZlIHRvIGl0ZXJhdGUgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGhh c2ggYnVja2V0LgorCSAqLworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOwor CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBo YXNodmFsdWUpCisJCXsKKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCX0KKwl9Cit9CisK Ky8qCisgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKKyAqLworc3RhdGljIHZv aWQKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhcikKK3sKKwkvKiBj bGVhbiB0aGUgY3VycmVudCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJaWYg KCFzdmFyLT50eXBieXZhbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihzdmFyLT52YWx1ZSkp OworCisJCXN2YXItPmlzbnVsbCA9IHRydWU7CisJfQorCisJc3Zhci0+dmFsdWUgPSAoRGF0dW0p IDA7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgZW50cnkgaW4gcGdfdmFyaWFi bGUgaXMgY29uc2lzdGVudCB3aXRoIHRoZSBnaXZlbgorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAq Lworc3RhdGljIGJvb2wKK2lzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIp Cit7CisJSGVhcFR1cGxlCXRwOworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJQXNzZXJ0KE9p ZElzVmFsaWQoc3Zhci0+dmFyaWQpKTsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxF T0lELCBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKSk7CisKKwlpZiAoSGVhcFR1cGxlSXNW YWxpZCh0cCkpCisJeworCQkvKgorCQkgKiBUaGUgT0lEIGFsb25lIGlzIG5vdCBlbm91Z2ggYXMg YW4gdW5pcXVlIGlkZW50aWZpZXIsIGJlY2F1c2UgT0lECisJCSAqIHZhbHVlcyBnZXQgcmVjeWNs ZWQsIGFuZCBhIG5ldyBzZXNzaW9uIHZhcmlhYmxlIGNvdWxkIGhhdmUgZ290CisJCSAqIHRoZSBz YW1lIE9JRC4gIFdlIGRvIGEgc2Vjb25kIGNoZWNrIGFnYWluc3QgdGhlIDY0LWJpdCBMU04gd2hl bgorCQkgKiB0aGUgdmFyaWFibGUgd2FzIGNyZWF0ZWQuCisJCSAqLworCQlpZiAoc3Zhci0+Y3Jl YXRlX2xzbiA9PSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0cCkpLT52YXJjcmVhdGVf bHNuKQorCQkJcmVzdWx0ID0gdHJ1ZTsKKworCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCX0KKwor CXJldHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVk IGluICJzdmFyIgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJp YWJsZSB2YXJmb3JtOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXN2YXItPnZhcmlkID0gdmFyaWQ7 CisJc3Zhci0+Y3JlYXRlX2xzbiA9IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc247CisKKwlzdmFyLT50 eXBpZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwlnZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQs ICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CisKKwlzdmFyLT5pc19kb21haW4gPSAo Z2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOworCXN2YXIt PmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4 aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCisJc3Zhci0+aXNudWxsID0gdHJ1ZTsK KwlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKKworCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwor CXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJ CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7Cit9CisKKy8qCisgKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUuICBJdCBpcyBjb3BpZWQgdG8KKyAqIFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNz YXJ5LgorICoKKyAqIElmIGFueSBlcnJvciBoYXBwZW5zLCB0aGUgZXhpc3RpbmcgdmFsdWUgd29u J3QgYmUgbW9kaWZpZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzZXRfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQoreworCURhdHVtCQluZXd2 YWw7CisJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAorCQkJICAgKl9zdmFyOworCisJQXNzZXJ0KHN2 YXIpOworCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CisKKwkvKgorCSAq IFVzZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJvbSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hlbiB0 aGV5IGFyZQorCSAqIHRydXN0d29ydGh5ICh0aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIG5v dCBhY2NlcHRlZCBmb3IgdGhpcworCSAqIHZhcmlhYmxlKS4gIElmIHRoZSB2YXJpYWJsZSBtaWdo dCBiZSBpbnZhbGlkLCBmb3JjZSBzZXR1cC4KKwkgKgorCSAqIERvIG5vdCBvdmVyd3JpdGUgdGhl IHBhc3NlZCBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHdlIGNhbiBiZSBjZXJ0YWluCisJICogdGhh dCBubyBlcnJvciBjYW4gYmUgdGhyb3duLgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJ eworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCV9z dmFyID0gJmxvY3N2YXI7CisJfQorCWVsc2UKKwkJX3N2YXIgPSBzdmFyOworCisJaWYgKCFpc251 bGwpCisJeworCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhT VmFyaWFibGVNZW1vcnlDb250ZXh0KTsKKworCQluZXd2YWwgPSBkYXR1bUNvcHkodmFsdWUsIF9z dmFyLT50eXBieXZhbCwgX3N2YXItPnR5cGxlbik7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGN4dCk7CisJfQorCWVsc2UKKwkJbmV3dmFsID0gdmFsdWU7CisKKwlmcmVlX3Nlc3Npb25f dmFyaWFibGVfdmFsdWUoc3Zhcik7CisKKwllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAorCQkgZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkgZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJpZCksCisJCSBzdmFyLT52YXJpZCk7CisKKwkv KiBubyBtb3JlIGVycm9yIGV4cGVjdGVkLCBzbyB3ZSBjYW4gb3ZlcndyaXRlIHRoZSBvbGQgdmFy aWFibGUgbm93ICovCisJaWYgKHN2YXIgIT0gX3N2YXIpCisJCW1lbWNweShzdmFyLCBfc3Zhciwg c2l6ZW9mKFNWYXJpYWJsZURhdGEpKTsKKworCXN2YXItPnZhbHVlID0gbmV3dmFsOworCXN2YXIt PmlzbnVsbCA9IGlzbnVsbDsKK30KKworLyoKKyAqIENyZWF0ZSB0aGUgaGFzaCB0YWJsZSBmb3Ig c3RvcmluZyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLworc3RhdGljIHZvaWQKK2NyZWF0ZV9zZXNz aW9udmFyc19oYXNodGFibGVzKHZvaWQpCit7CisJSEFTSENUTAkJdmFyc19jdGw7CisKKwlBc3Nl cnQoIXNlc3Npb252YXJzKTsKKworCWlmICghU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCkKKwl7CisJ CS8qIHJlYWQgc2ludmFsIG1lc3NhZ2VzICovCisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxi YWNrKFZBUklBQkxFT0lELAorCQkJCQkJCQkJICBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjaywK KwkJCQkJCQkJCSAgKERhdHVtKSAwKTsKKworCQkvKiB3ZSBuZWVkIG91ciBvd24gbG9uZy1saXZl ZCBtZW1vcnkgY29udGV4dCAqLworCQlTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0KKwkJCUFsbG9j U2V0Q29udGV4dENyZWF0ZShUb3BNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkgICJzZXNzaW9uIHZh cmlhYmxlcyIsCisJCQkJCQkJCSAgQUxMT0NTRVRfU1RBUlRfU01BTExfU0laRVMpOworCX0KKwor CW1lbXNldCgmdmFyc19jdGwsIDAsIHNpemVvZih2YXJzX2N0bCkpOworCXZhcnNfY3RsLmtleXNp emUgPSBzaXplb2YoT2lkKTsKKwl2YXJzX2N0bC5lbnRyeXNpemUgPSBzaXplb2YoU1ZhcmlhYmxl RGF0YSk7CisJdmFyc19jdGwuaGN4dCA9IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQ7CisKKwlzZXNz aW9udmFycyA9IGhhc2hfY3JlYXRlKCJTZXNzaW9uIHZhcmlhYmxlcyIsIDY0LCAmdmFyc19jdGws CisJCQkJCQkJICBIQVNIX0VMRU0gfCBIQVNIX0JMT0JTIHwgSEFTSF9DT05URVhUKTsKK30KKwor LyoKKyAqIFNlYXJjaCBhIHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIGhhc2ggdGFibGUgZ2l2ZW4g aXRzIE9JRC4gIElmIGl0CisgKiBkb2Vzbid0IGV4aXN0LCB0aGVuIGluc2VydCBpdCB0aGVyZS4K KyAqCisgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNo ZWNrcy4KKyAqCisgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIGEg QWNjZXNzU2hhcmVMb2NrIG9uIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5k IG9mIHRoZSB0cmFuc2FjdGlvbi4KKyAqLworc3RhdGljIFNWYXJpYWJsZQorZ2V0X3Nlc3Npb25f dmFyaWFibGUoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOwor CisJLyogcHJvdGVjdCB0aGUgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLwor CUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NT aGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hh c2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFy cywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJaWYgKGZvdW5k KQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJLyoKKwkJCSAqIElmIHRoZXJl IHdhcyBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsIGJl CisJCQkgKiB2YWxpZCwgYnV0IHdlIGhhdmUgdG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFs b2cuCisJCQkgKi8KKwkJCWlmIChpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQorCQkJ CXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJCWVsc2UKKwkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fu bm90IGJlIHZhbGlkYXRlZCwgd2UgaGF2ZSB0byBkaXNjYXJkIGl0ICovCisJCQkJZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQl9CisJfQorCWVsc2UKKwkJc3Zhci0+aXNfdmFs aWQgPSBmYWxzZTsKKworCS8qCisJICogRm9yY2Ugc2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6 ZWQgdmFyaWFibGVzIG9yIHZhcmlhYmxlcyB0aGF0IGNhbm5vdAorCSAqIGJlIHZhbGlkYXRlZC4K KwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJs ZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJF QUQpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkg dmFyaWQpOworCX0KKworCS8qIGVuc3VyZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0 aGUgY29ycmVjdCBkb21haW4gKi8KKwlpZiAoc3Zhci0+aXNfZG9tYWluKQorCXsKKwkJLyoKKwkJ ICogU3RvcmUgImV4dHJhIiBmb3IgZG9tYWluX2NoZWNrKCkgaW4gVG9wVHJhbnNhY3Rpb25Db250 ZXh0LiAgV2hlbiB3ZQorCQkgKiBhcmUgaW4gYSBuZXcgdHJhbnNhY3Rpb24sIGRvbWFpbl9jaGVj a19leHRyYSBjYWNoZSBpcyBub3QgdmFsaWQgYW55CisJCSAqIG1vcmUuCisJCSAqLworCQlpZiAo c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlz dmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCisJCWRvbWFpbl9jaGVjayhzdmFyLT52 YWx1ZSwgc3Zhci0+aXNudWxsLAorCQkJCQkgc3Zhci0+dHlwaWQsICZzdmFyLT5kb21haW5fY2hl Y2tfZXh0cmEsCisJCQkJCSBUb3BUcmFuc2FjdGlvbkNvbnRleHQpOworCisJCXN2YXItPmRvbWFp bl9jaGVja19leHRyYV9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCisJcmV0dXJuIHN2 YXI7Cit9CisKKy8qCisgKiBTdG9yZSB0aGUgZ2l2ZW4gdmFsdWUgaW4gYSBzZXNzaW9uIHZhcmlh YmxlIGluIHRoZSBjYWNoZS4KKyAqCisgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBk b2luZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqCisgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1 bmN0aW9uIGFjcXVpcmVzIGEgQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uCisgKiB2YXJp YWJsZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4KKyAqLwordm9pZAorU2V0U2Vz c2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQoreworCVNW YXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCisJLyogcHJvdGVjdCB1c2VkIHNlc3Npb24g dmFyaWFibGUgYWdhaW5zdCBEUk9QICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVs YXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJz KQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFi bGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5U RVIsICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJs ZShzdmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFdS SVRFKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZShzdmFyLT52YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+ dmFyaWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBpZiB0aGlzIGZhaWxzLCBpdCB3b24ndCBj aGFuZ2UgdGhlIHN0b3JlZCB2YWx1ZSAqLworCXNldF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZh bHVlLCBpc051bGwpOworfQorCisvKgorICogV3JhcHBlciBhcm91bmQgU2V0U2Vzc2lvblZhcmlh YmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK3ZvaWQKK1NldFNlc3Npb25WYXJpYWJs ZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQor eworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKiBpcyB0aGUgY2FsbGVyIGFsbG93ZWQgdG8g dXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xj aGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7 CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVz dWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsK KworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwgdmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisg KiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgc3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8K K3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFi bGUgc3ZhciwgYm9vbCAqaXNOdWxsKQoreworCURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNv cHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVl ID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsK KwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwllbHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsK KwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJcmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0 dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUg Y3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQpLiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBm b3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisK KwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFyaWQpOworCisJLyoKKwkgKiBBbHRob3Vn aCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4gdGhpcyBwb2ludCwgc3Zhci0+aXNfdmFs aWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHdzIHByb2Nl c3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxlIGFuZCBh bGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVlZAorCSAq IHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlBc3NlcnQoc3Zhcik7CisKKwkqdHlw aWQgPSBzdmFyLT50eXBpZDsKKworCXJldHVybiBjb3B5X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUo c3ZhciwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhZnRlciBjaGVja2luZyBpZiB0aGUKKyAqIHR5cGUgaXMg dGhlIHNhbWUgYXMgImV4cGVjdGVkX3R5cGlkIi4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUg Zm9yCisgKiBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJs ZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCBleHBlY3RlZF90eXBp ZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2YXIgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2 YXJpZCk7CisKKwlBc3NlcnQoc3ZhciAmJiBzdmFyLT5pc192YWxpZCk7CisKKwlpZiAoZXhwZWN0 ZWRfdHlwaWQgIT0gc3Zhci0+dHlwaWQpCisJCWVsb2coRVJST1IsICJ0eXBlIG9mIHZhcmlhYmxl IFwiJXMuJXNcIiBpcyBkaWZmZXJlbnQgdGhhbiBleHBlY3RlZCIsCisJCQkgZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCXJldHVybiBjb3B5X3Nlc3Npb25fdmFy aWFibGVfdmFsdWUoc3ZhciwgaXNOdWxsKTsKK30KKworLyoKKyAqIEFzc2lnbiB0aGUgcmVzdWx0 IG9mIHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbiB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZQorICov Cit2b2lkCitFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkgICBMZXRTdG10 ICpzdG10LAorCQkJICAgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkgICBRdWVyeUVudmlyb25t ZW50ICpxdWVyeUVudiwKKwkJCSAgIFF1ZXJ5Q29tcGxldGlvbiAqcWMpCit7CisJUXVlcnkJICAg KnF1ZXJ5ID0gY2FzdE5vZGUoUXVlcnksIHN0bXQtPnF1ZXJ5KTsKKwlMaXN0CSAgICpyZXdyaXR0 ZW47CisJRGVzdFJlY2VpdmVyICpkZXN0OworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJUGxhbm5l ZFN0bXQgKnBsYW47CisJUXVlcnlEZXNjICAqcXVlcnlEZXNjOworCU9pZAkJCXZhcmlkID0gcXVl cnktPnJlc3VsdFZhcmlhYmxlOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCS8q IGRvIHdlIGhhdmUgcGVybWlzc2lvbiB0byB3cml0ZSB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8g Ki8KKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJp ZCwgR2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tf T0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwkvKiBjcmVhdGUgYSBkZXN0IHJlY2VpdmVy IGZvciBMRVQgKi8KKwlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodmFyaWQpOwor CisJLyogcnVuIHRoZSBxdWVyeSByZXdyaXRlciAqLworCXF1ZXJ5ID0gY29weU9iamVjdChxdWVy eSk7CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJld3JpdGUocXVlcnkpOworCisJQXNzZXJ0KGxpc3Rf bGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisKKwlxdWVyeSA9IGxpbml0aWFsX25vZGUoUXVlcnks IHJld3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsK KworCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJcGxhbiA9IHBnX3BsYW5fcXVlcnkocXVlcnksIHBz dGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJIENVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIHBhcmFt cyk7CisKKwkvKgorCSAqIFVzZSBhIHNuYXBzaG90IHdpdGggYW4gdXBkYXRlZCBjb21tYW5kIElE IHRvIGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMgdGhlCisJICogcmVzdWx0cyBvZiBhbnkgcHJldmlv dXNseSBleGVjdXRlZCBxdWVyaWVzLiAgKFRoaXMgY291bGQgb25seSBtYXR0ZXIgaWYKKwkgKiB0 aGUgcGxhbm5lciBleGVjdXRlZCBhbiBhbGxlZ2VkbHktc3RhYmxlIGZ1bmN0aW9uIHRoYXQgY2hh bmdlZCB0aGUKKwkgKiBkYXRhYmFzZSBjb250ZW50cywgYnV0IGxldCdzIGRvIGl0IGFueXdheSB0 byBiZSBwYXJhbGxlbCB0byB0aGUgRVhQTEFJTgorCSAqIGNvZGUgcGF0aC4pCisJICovCisJUHVz aENvcGllZFNuYXBzaG90KEdldEFjdGl2ZVNuYXBzaG90KCkpOworCVVwZGF0ZUFjdGl2ZVNuYXBz aG90Q29tbWFuZElkKCk7CisKKwkvKiBjcmVhdGUgYSBRdWVyeURlc2MsIHJlZGlyZWN0aW5nIG91 dHB1dCB0byBvdXIgdHVwbGUgcmVjZWl2ZXIgKi8KKwlxdWVyeURlc2MgPSBDcmVhdGVRdWVyeURl c2MocGxhbiwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCUdldEFjdGl2ZVNuYXBzaG90 KCksIEludmFsaWRTbmFwc2hvdCwKKwkJCQkJCQkJZGVzdCwgcGFyYW1zLCBxdWVyeUVudiwgMCk7 CisKKwkvKiBjYWxsIEV4ZWN1dG9yU3RhcnQgdG8gcHJlcGFyZSB0aGUgcGxhbiBmb3IgZXhlY3V0 aW9uICovCisJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIDApOworCisJLyoKKwkgKiBSdW4gdGhl IHBsYW4gdG8gY29tcGxldGlvbi4gIFRoZSByZXN1bHQgc2hvdWxkIGJlIG9ubHkgb25lIHJvdy4g IFRvCisJICogY2hlY2sgaWYgdGhlcmUgYXJlIHRvbyBtYW55IHJlc3VsdCByb3dzLCB3ZSB0cnkg dG8gZmV0Y2ggdHdvLgorCSAqLworCUV4ZWN1dG9yUnVuKHF1ZXJ5RGVzYywgRm9yd2FyZFNjYW5E aXJlY3Rpb24sIDJMKTsKKworCS8qIHNhdmUgdGhlIHJvd2NvdW50IGlmIHdlJ3JlIGdpdmVuIGEg UXVlcnlDb21wbGV0aW9uIHRvIGZpbGwgKi8KKwlpZiAocWMpCisJCVNldFF1ZXJ5Q29tcGxldGlv bihxYywgQ01EVEFHX0xFVCwgcXVlcnlEZXNjLT5lc3RhdGUtPmVzX3Byb2Nlc3NlZCk7CisKKwkv KiBhbmQgY2xlYW4gdXAgKi8KKwlFeGVjdXRvckZpbmlzaChxdWVyeURlc2MpOworCUV4ZWN1dG9y RW5kKHF1ZXJ5RGVzYyk7CisKKwlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CisKKwlQb3BBY3Rp dmVTbmFwc2hvdCgpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZp bGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQppbmRleCAxMTExOGQwY2UwLi43MTI0 OGEzNGYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQorKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAtNzYsNiArNzYsNyBAQCBPQkpTID0gXAog CW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJsZXNjYW4ubyBcCiAJc3BpLm8gXAorCXN2 YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwKIAl0c3RvcmVSZWNlaXZlci5vCiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jCmluZGV4IGUwZWI5NmZkNWEuLmExNDMyNzU1ZDUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYwpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4u aCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05OTEsNiArOTkyLDQxIEBAIEV4ZWNJbml0RXhw clJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJc2NyYXRjaC5kLnBhcmFt LnBhcmFtdHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CiAJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0 YXRlLCAmc2NyYXRjaCk7CiAJCQkJCQlicmVhazsKKworCQkJCQljYXNlIFBBUkFNX1ZBUklBQkxF OgorCQkJCQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJ CQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsK KwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJaWYgKHN0YXRlLT5w YXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJCQkJCQllc19zZXNz aW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxl czsKKwkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3Rh dGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJCQkJCQlBc3NlcnQo ZXNfc2Vzc2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVj a3MgKi8KKwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFi bGVzKQorCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJh bSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxl c1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFy YW10eXBlKQorCQkJCQkJCQllbG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBk aWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBlIik7CisKKwkJCQkJCQkvKgorCQkJCQkJ CSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJICogY29uc3Rh bnQuCisJCQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOworCQkJ CQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJc2NyYXRj aC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCUV4cHJFdmFsUHVzaFN0 ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJCQkJCWJyZWFrOworCiAJCQkJCWNhc2Ug UEFSQU1fRVhURVJOOgogCiAJCQkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggMTNm M2ZjZGFlZS4uMTViNDNjYzdiNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3ICs0 Myw5IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVz cGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dl ci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv bm9kZVN1YnBsYW4uaCIKQEAgLTE5Myw2ICsxOTUsNTkgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFy dChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5z b3VyY2VUZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+ c291cmNlVGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNl c3Npb24gdmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24g dmFyaWFibGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5 CisJICogaXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNu YXBzaG90IiBvZiB2YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBh cmUgdGhyZWUgYmVuZWZpdHMgb2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVu Y3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgor CSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAt IHdlIGRvbid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZh cmlhYmxlCisJICogICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkg dGhlIHNlc3Npb24gdmFyaWFibGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkg ZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNs eSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNj LT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9uVmFy aWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBx dWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJl IHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMp CisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQlu U2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNl c3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2lu ZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Np b25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Np b25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBmaWxs IHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVkc3Rt dC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdl dFVzZXJJZCgpLCBBQ0xfU0VMRUNUKTsKKwkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJ ICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJCQllc3RhdGUtPmVzX3Nl c3Npb25fdmFyaWFibGVzW2ldLnZhcmlkID0gdmFyaWQ7CisJCQllc3RhdGUtPmVzX3Nlc3Npb25f dmFyaWFibGVzW2ldLnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLAorCQkJCQkJCQkJ CQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS5pc251bGwsCisJCQkJ CQkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnR5cGlkKTsK KworCQkJaSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBu U2Vzc2lvblZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5IGVudmly b25tZW50LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5i dWlsZAppbmRleCBiNTExYTQyOWFkLi5iNjY2MmM2ZThmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5i dWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAgICdub2Rl V2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0YWJsZXNjYW4uYycsCiAgICdzcGkuYycsCisgICdz dmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3RxdWV1ZS5jJywKICAgJ3RzdG9yZVJlY2VpdmVyLmMn LAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzRjZmY0NGVjZgotLS0gL2Rldi9udWxsCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKQEAgLTAsMCArMSwyMDEg QEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCSAg QW4gaW1wbGVtZW50YXRpb24gb2YgRGVzdFJlY2VpdmVyIHRoYXQgc3RvcmVzIHRoZSByZXN1bHQg dmFsdWUgaW4KKyAqCSAgYSBzZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFBvcnRpb25zIENvcHly aWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAor ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5 IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9l eGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisKKyNpbmNs dWRlICJhY2Nlc3MvZGV0b2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK KyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xvY2suaCIKKyNpbmNs dWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGlzIERlc3RSZWNlaXZlciBpcyB1 c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHRvIGEKKyAqIHNl c3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBoYXZlIG9ubHkgb25lIHR1cGxlIHdp dGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0ZS4gIFRoZSByb3cgY291bnRlciAo ZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0ZXIgcmVjZWl2aW5nIGEgcm93LCBh bmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3Mgb3IKKyAqIHRoZXJl IGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBCZWNhdXNlIGEgcmVjZWl2ZWQgdHVw bGUgY2FuIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcywgd2UgbmVlZCB0byBmaW5kIHRoZSBm aXJzdCBub24tZGVsZXRlZCBhdHRyaWJ1dGUKKyAqIChmaWVsZCAic2xvdF9vZmZzZXQiKS4gIFRo ZSB2YWx1ZSBpcyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBzZXNzaW9u IHZhcmlhYmxlLgorICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7CisJ T2lkCQkJdmFyaWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkJLyogZG8gd2UgbmVlZCB0byBkZXRv YXN0IHRoZSBhdHRyaWJ1dGU/ICovCisJaW50CQkJc2xvdF9vZmZzZXQ7CQkvKiBwb3NpdGlvbiBv ZiBub24tZGVsZXRlZCBhdHRyaWJ1dGUgKi8KKwlpbnQJCQlyb3dzOwkJCQkvKiByb3cgY291bnRl ciAqLworfSBTVmFyaWFibGVTdGF0ZTsKKworLyoKKyAqIFByZXBhcmUgdG8gcmVjZWl2ZSB0dXBs ZXMgZnJvbSBleGVjdXRvci4KKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZVN0YXJ0dXBSZWNl aXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYsIGludCBvcGVyYXRpb24sIFR1cGxlRGVzYyB0eXBlaW5m bykKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxm OworCWludAkJCW5hdHRzID0gdHlwZWluZm8tPm5hdHRzOworCWludAkJCW91dGNvbHMgPSAwOwor CWludAkJCWk7CisJTE9DS1RBRwkJbG9ja3RhZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisK KwlBc3NlcnQobXlTdGF0ZS0+cHViLm15ZGVzdCA9PSBEZXN0VmFyaWFibGUpOworCUFzc2VydChP aWRJc1ZhbGlkKG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KFNlYXJjaFN5c0NhY2hlRXhpc3Rz MShWQVJJQUJMRU9JRCwgbXlTdGF0ZS0+dmFyaWQpKTsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hF Q0tJTkcKKworCVNFVF9MT0NLVEFHX09CSkVDVChsb2NrdGFnLAorCQkJCQkgICBNeURhdGFiYXNl SWQsCisJCQkJCSAgIFZhcmlhYmxlUmVsYXRpb25JZCwKKwkJCQkJICAgbXlTdGF0ZS0+dmFyaWQs CisJCQkJCSAgIDApOworCisJQXNzZXJ0KExvY2tIZWxkQnlNZSgmbG9ja3RhZywgQWNjZXNzU2hh cmVMb2NrLCBmYWxzZSkpOworCisjZW5kaWYKKworCWZvciAoaSA9IDA7IGkgPCBuYXR0czsgaSsr KQorCXsKKwkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWluZm8s IGkpOworCQlPaWQJCQl0eXBpZDsKKwkJT2lkCQkJY29sbGlkOworCQlpbnQzMgkJdHlwbW9kOwor CisJCWlmIChhdHRyLT5hdHRpc2Ryb3BwZWQpCisJCQljb250aW51ZTsKKworCQlpZiAoKytvdXRj b2xzID4gMSkKKwkJCWNvbnRpbnVlOworCisJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlw bW9kX2NvbGxpZChteVN0YXRlLT52YXJpZCwKKwkJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJCQkJ CQkJCSZ0eXBtb2QsCisJCQkJCQkJCQkJCQkmY29sbGlkKTsKKworCQkvKgorCQkgKiBEb3VibGUg Y2hlY2sgLSB0aGUgdHlwZSBhbmQgdHlwbW9kIG9mIHRhcmdldCB2YXJpYWJsZSBzaG91bGQgYmUg dGhlCisJCSAqIHNhbWUgYXMgdGhlIHR5cGUgYW5kIHR5cG1vZCBvZiBhc3NpZ25tZW50IGV4cHJl c3Npb24uICBUaGUKKwkJICogZXhwcmVzc2lvbiBzaG91bGQgYmUgd3JhcHBlZCBieSBhIGNhc3Qg dG8gdGhlIHRhcmdldCB0eXBlL3R5cG1vZC4KKwkJICovCisJCWlmIChhdHRyLT5hdHR0eXBpZCAh PSB0eXBpZCB8fAorCQkJKGF0dHItPmF0dHR5cG1vZCA+PSAwICYmCisJCQkgYXR0ci0+YXR0dHlw bW9kICE9IHR5cG1vZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidGFyZ2V0IHNlc3Npb24gdmFyaWFi bGUgaXMgb2YgdHlwZSAlcyIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9uIGlzIG9mIHR5cGUgJXMi LAorCQkJCQkJCWZvcm1hdF90eXBlX3dpdGhfdHlwZW1vZCh0eXBpZCwgdHlwbW9kKSwKKwkJCQkJ CQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QoYXR0ci0+YXR0dHlwaWQsCisJCQkJCQkJCQkJCQkJ IGF0dHItPmF0dHR5cG1vZCkpKSk7CisKKwkJbXlTdGF0ZS0+bmVlZF9kZXRvYXN0ID0gYXR0ci0+ YXR0bGVuID09IC0xOworCQlteVN0YXRlLT5zbG90X29mZnNldCA9IGk7CisJfQorCisJaWYgKG91 dGNvbHMgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1 cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJu ZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgb3V0Y29scywKKwkJCQkJCQkgICBvdXRjb2xzKSkp OworCisJbXlTdGF0ZS0+cm93cyA9IDA7Cit9CisKKy8qCisgKiBSZWNlaXZlIGEgdHVwbGUgZnJv bSB0aGUgZXhlY3V0b3IgYW5kIHN0b3JlIGl0IGluIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICov CitzdGF0aWMgYm9vbAorc3ZhcmlhYmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3Qs IERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFy aWFibGVTdGF0ZSAqKSBzZWxmOworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJYm9v bAkJZnJlZXZhbCA9IGZhbHNlOworCisJLyogbWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxseSBk ZWNvbnN0cnVjdGVkICovCisJc2xvdF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0gc2xv dC0+dHRzX3ZhbHVlc1tteVN0YXRlLT5zbG90X29mZnNldF07CisJaXNudWxsID0gc2xvdC0+dHRz X2lzbnVsbFtteVN0YXRlLT5zbG90X29mZnNldF07CisKKwlpZiAobXlTdGF0ZS0+bmVlZF9kZXRv YXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRlcih2YWx1 ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5hbF9hdHRy KChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVyKHZhbHVl KSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7CisKKwlp ZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVybmVkIG1v cmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRlLT52YXJp ZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1HZXRQb2lu dGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVwIGF0IGVu ZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTaHV0ZG93 blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFibGVTdGF0ZSAq KSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5lZCBubyBy b3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4gd2UgYXJlIGRv bmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyKERl c3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIEluaXRpYWxs eSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIgKgorQ3Jl YXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0YXRlICpz ZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0YXRlKSk7 CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsKKwlzZWxm LT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJT aHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJEZXN0cm95 ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBEZXN0VmFy aWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVjZWl2ZXIg Kikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggNTA3MDVhMWUxNS4uNDhkODZlZTcy MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNDEsNiArNDM0MSwxNiBAQCByYXdfZXhwcmVz c2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJ fQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQgICAgKnN0 bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0KSkKKwkJ CQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkpKQorCQkJCQlyZXR1cm4g dHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25TdG10OgogCQkJewogCQkJ CVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9kZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBiNjY1YTc3NjJlLi5jODY4YzVlOWZhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMzUsNiArMzM1LDcgQEAgc3RhbmRhcmRf cGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50IGN1cnNv ck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWdsb2ItPnRyYW5zaWVudFBs YW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7CisJZ2xvYi0+c2Vzc2lv blZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJs ZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU2OSw2ICs1NzAs NyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3Ry aW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+ cGFyYW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBt aWdodCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0 aWxpdHlTdG10OworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25WYXJp YWJsZXM7CiAJcmVzdWx0LT5zdG10X2xvY2F0aW9uID0gcGFyc2UtPnN0bXRfbG9jYXRpb247CiAJ cmVzdWx0LT5zdG10X2xlbiA9IHBhcnNlLT5zdG10X2xlbjsKIApAQCAtNzM5LDYgKzc0MSwxMyBA QCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9iYWwgKmdsb2IsIFF1ZXJ5ICpwYXJzZSwgUGxh bm5lckluZm8gKnBhcmVudF9yb290LAogCSAqLwogCXB1bGxfdXBfc3VicXVlcmllcyhyb290KTsK IAorCS8qCisJICogQ2hlY2sgaWYgc29tZSBzdWJxdWVyeSB1c2VzIGEgc2Vzc2lvbiB2YXJpYWJs ZS4gIFRoZSBmbGFnCisJICogaGFzU2Vzc2lvblZhcmlhYmxlcyBzaG91bGQgYmUgdHJ1ZSBpZiB0 aGUgcXVlcnkgb3Igc29tZSBzdWJxdWVyeSB1c2VzIGEKKwkgKiBzZXNzaW9uIHZhcmlhYmxlLgor CSAqLworCXB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKHJvb3QpOworCiAJLyoKIAkgKiBJ ZiB0aGlzIGlzIGEgc2ltcGxlIFVOSU9OIEFMTCBxdWVyeSwgZmxhdHRlbiBpdCBpbnRvIGFuIGFw cGVuZHJlbC4gV2UKIAkgKiBkbyB0aGlzIG5vdyBiZWNhdXNlIGl0IHJlcXVpcmVzIGFwcGx5aW5n IHB1bGxfdXBfc3VicXVlcmllcyB0byB0aGUgbGVhZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0 cmVmcy5jCmluZGV4IDZkMjNkZjEwOGQuLjcxMWUzOGFmOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAsOSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVy bmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpz ZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAog CQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAq cGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIo Tm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9p ZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQg dmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTMwOSw2ICsxMzEyLDUwIEBA IHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNl dCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZh cmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3ZvaWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzKFBsYW5uZXJJbmZvICpyb290KQoreworCVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBh cnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFz U2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90 cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KK30KKworc3RhdGljIGJv b2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFu bmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJ aWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlRdWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikg bm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3Qt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJ LyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2Vy KChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNf d2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQorCXJldHVybiBleHByZXNz aW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtl ciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsKK30KKwogLyoKICAqIHNldF9pbmRleG9ubHlz Y2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24g YW4gSW5kZXhPbmx5U2NhbgpAQCAtMTk1Nyw4ICsyMDA0LDkgQEAgY29weVZhcihWYXIgKnZhcikK ICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVz c2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9y IE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAqIGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29u c3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5J bnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52 YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQ SU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5l ZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFibGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmlu dmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElO RygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBXZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0 ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMgY291bGQgcG9zc2libHkKICAqIHNjcmli YmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4K QEAgLTIwNDgsNiArMjA5NiwxMyBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3Qs IE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNB KG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJ aWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJlY29yZF9wbGFuX3Zhcmlh YmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjA1 Nyw2ICsyMTEyLDEwIEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAq bm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxUSUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUg YXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9vdC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3 aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdl IG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVpdGhlciBjYXNlLgorICoKKyAqIElmIGl0J3Mg YSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMg aW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2ln biB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRp b24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMgTm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFu bmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0yMDc1LDYgKzIxMzQsNDAgQEAgZml4X3BhcmFt X25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhw ZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIsIHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29w eU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5vIC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJh bWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91 bmQgPSBmYWxzZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJh bSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJCSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBs aXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQgd2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFt aWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHJvb3QtPmdsb2ItPnNl c3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWlmICh2YXJpZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJ eworCQkJCXAtPnBhcmFtaWQgPSBuOworCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJ CX0KKwkJCW4gKz0gMTsKKwkJfQorCisJCWlmICghZm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2It PnNlc3Npb25WYXJpYWJsZXMgPSBsYXBwZW5kX29pZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFi bGVzLAorCQkJCQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47 CisJCX0KKworCQlyZXR1cm4gKE5vZGUgKikgcDsKKwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29w eU9iamVjdChwKTsKIH0KIApAQCAtMjEzNiw3ICsyMjI5LDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9z dWJwbGFuKFBsYW5uZXJJbmZvICpyb290LCBBbHRlcm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAq IHJlcGxhY2luZyBBZ2dyZWYgbm9kZXMgdGhhdCBzaG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBs YW4gb3V0cHV0IFBhcmFtcywKICAqIGNob29zaW5nIHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZv ciBBbHRlcm5hdGl2ZVN1YlBsYW5zLAogICogbG9va2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5m byBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAotICogYW5kIGFkZGluZyBPSURzIGZyb20g cmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBh ZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVs YXRpb25PaWRzLAorICogYXNzaWduaW5nIHBhcmFtdmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFy YW1zLCBhbmQgY29sbGVjdGluZyB0aGUKKyAqIE9JRHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4g dGhlIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMg dGhlIHBvc2l0aW9uIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgog ICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBiZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0Jzog aG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBieQpAQCAtMjE1OCw3ICsyMjU0LDggQEAgZml4 X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBk b3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRpZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJv b3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJcm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8 Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZl U3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBm aXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNvbnRleHQpOwogCX0KQEAgLTM1MzYsNiArMzYz MywyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9p ZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNvcmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24g dmFyaWFibGUuICBUaGUgdmFyaWFibGUgY2FuIGJlIHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJp YWJsZSBpbiBhbiBleHByZXNzaW9uIGxpc3QsIG9yIGFzIHRoZSB0YXJnZXQgb2YgYSBMRVQgc3Rh dGVtZW50LgorICovCitzdGF0aWMgdm9pZAorcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5j eShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlkKQoreworCVBsYW5JbnZhbEl0ZW0gKmludmFs X2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVtKTsKKworCS8qIHBhcmFtaWQgaXMgc3RpbGwg c2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFsX2l0ZW0tPmNhY2hlSWQgPSBWQVJJQUJMRU9J RDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFC TEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCS8qIGFw cGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwgcmVnaXN0ZXIgZGVwZW5kZW5jeSAqLworCXJv b3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPmludmFsSXRlbXMsCisJ CQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8qCiAgKiBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVu Y2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBidXQgbm90IHlldCBwbGFubmVkLCBxdWVyeSBv ciBxdWVyaWVzCkBAIC0zNjIxLDkgKzM3MzcsOSBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2ll c193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQl9CiAKIAkJCS8q Ci0JCQkgKiBJZ25vcmUgb3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1 Y2ggYXMgRVhQTEFJTikKLQkJCSAqIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5u ZWQgcXVlcnkuICBGb3IgdGhvc2UsIHdlCi0JCQkgKiBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3Vy IGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgorCQkJICogSWdub3JlIG90aGVyIHV0 aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExBSU4KKwkJCSAqIG9y IExFVCkgdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0 aG9zZSwKKwkJCSAqIHdlIGp1c3QgbmVlZCB0byB0cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRo ZSBjb250YWluZWQgcXVlcnkuCiAJCQkgKi8KIAkJCXF1ZXJ5ID0gVXRpbGl0eUNvbnRhaW5zUXVl cnkocXVlcnktPnV0aWxpdHlTdG10KTsKIAkJCWlmIChxdWVyeSA9PSBOVUxMKQpAQCAtMzY0Niw2 ICszNzYyLDEwIEBAIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2Rl LCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCQkJbGFwcGVuZF9vaWQoY29udGV4dC0+Z2xvYi0+ cmVsYXRpb25PaWRzLCBydGUtPnJlbGlkKTsKIAkJfQogCisJCS8qIHJlY29yZCBkZXBlbmRlbmN5 IG9uIHRoZSB0YXJnZXQgdmFyaWFibGUgb2YgYSBMRVQgY29tbWFuZCAqLworCQlpZiAoT2lkSXNW YWxpZChxdWVyeS0+cmVzdWx0VmFyaWFibGUpKQorCQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVw ZW5kZW5jeShjb250ZXh0LCBxdWVyeS0+cmVzdWx0VmFyaWFibGUpOworCiAJCS8qIEFuZCByZWN1 cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhwcmVzc2lvbnMgKi8KIAkJcmV0dXJuIHF1ZXJ5X3Ry ZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIsCiAJCQkJ CQkJCSBjb250ZXh0LCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVw L3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVl LmMKaW5kZXggM2ZhNGQ3OGMzZS4uNTE0ZjMwYjBmMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTE0MzIsNiArMTQzMiw5IEBAIHB1bGxfdXBfc2ltcGxl X3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdlVGJsRW50cnkg KnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRpb25zLCBub3cgbWFpbiBx dWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8PSBzdWJxdWVyeS0+aGFz Um93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNlc3Npb24gdmFyaWFibGVz LCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9uVmFyaWFibGVz IHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBzdWJxdWVyeSB3 b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3MsIG9yCiAJICog aGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBiYjdhOWI3NzI4Li5lZmU4NzJiOGEzIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTkzNCw2ICs5MzUs MTMgQEAgbWF4X3BhcmFsbGVsX2hhemFyZF93YWxrZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVs X2hhemFyZF9jb250ZXh0ICpjb250ZXh0KQogCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJB TV9FWFRFUk4pCiAJCQlyZXR1cm4gZmFsc2U7CiAKKwkJLyogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNz aW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtp bmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rl c3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCisJCQkJcmV0dXJuIHRydWU7CisJ CX0KKwogCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9t ZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsK QEAgLTIzODgsNiArMjM5Niw3IEBAIGNvbnZlcnRfc2FvcF90b19oYXNoZWRfc2FvcF93YWxrZXIo Tm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKICAqCSAgdmFsdWUgb2YgdGhlIFBhcmFtLgogICog Mi4gRm9sZCBzdGFibGUsIGFzIHdlbGwgYXMgaW1tdXRhYmxlLCBmdW5jdGlvbnMgdG8gY29uc3Rh bnRzLgogICogMy4gUmVkdWNlIFBsYWNlSG9sZGVyVmFyIG5vZGVzIHRvIHRoZWlyIGNvbnRhaW5l ZCBleHByZXNzaW9ucy4KKyAqIDQuIEN1cnJlbnQgdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBj YW4gYmUgdXNlZCBmb3IgZXN0aW1hdGlvbiB0b28uCiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg Ki8KIE5vZGUgKgpAQCAtMjUxNCw2ICsyNTIzLDI5IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNf bXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJfQogCQkJCQl9CiAJCQkJfQorCQkJCWVsc2UgaWYg KHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUgJiYKKwkJCQkJCSBjb250ZXh0LT5l c3RpbWF0ZSkKKwkJCQl7CisJCQkJCWludDE2CQl0eXBMZW47CisJCQkJCWJvb2wJCXR5cEJ5VmFs OworCQkJCQlEYXR1bQkJcHZhbDsKKwkJCQkJYm9vbAkJaXNudWxsOworCisJCQkJCWdldF90eXBs ZW5ieXZhbChwYXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJJnR5cExlbiwgJnR5cEJ5VmFsKTsK KworCQkJCQlwdmFsID0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhwYXJhbS0+cGFy YW12YXJpZCwKKwkJCQkJCQkJCQkJCQkJICAgJmlzbnVsbCwKKwkJCQkJCQkJCQkJCQkJICAgcGFy YW0tPnBhcmFtdHlwZSk7CisKKwkJCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+ cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJ ICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJ CQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFs KTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5 IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDcxNyw3ICs0NzQ5LDggQEAgaW5saW5lX2Z1bmN0 aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1 ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1 ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdl dExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEp IHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJ LyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCmluZGV4IDM4NjRhNjc1ZDIuLmQ0YTk5NmJjYzIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYwpAQCAtMjUsOSArMjUsMTIgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVk ZSAiYWNjZXNzL3N5c2F0dHIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9k ZXMvbm9kZUZ1bmNzLmgiCkBAIC01MSw2ICs1NCw3IEBACiAjaW5jbHVkZSAidXRpbHMvYmFja2Vu ZF9zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxz L2d1Yy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3Jl bC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKQEAgLTgzLDYgKzg3LDggQEAgc3Rh dGljIFF1ZXJ5ICp0cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCQkJCQkJIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJh bnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3Rt dCk7CitzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAor CQkJCQkJCSAgIExldFN0bXQgKnN0bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0Ns YXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdD bGF1c2UgKmxjLCBib29sIHB1c2hlZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5B QkxFRApAQCAtNDE0LDYgKzQyMCw3IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpwYXJzZVRyZWUpCiAJCQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxl dGVTdG10OgogCQkJY2FzZSBUX01lcmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2 b2lkKSB0ZXN0X3Jhd19leHByZXNzaW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJ YnJlYWs7CiAJCQlkZWZhdWx0OgpAQCAtNDkzLDYgKzUwMCwxMSBAQCB0cmFuc2Zvcm1TdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10 ICopIHBhcnNlVHJlZSk7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3Vs dCA9IHRyYW5zZm9ybUxldFN0bXQocHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJz ZVRyZWUpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTU0NSw2ICs1NTcs NyBAQCBzdG10X3JlcXVpcmVzX3BhcnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJ Y2FzZSBUX1NlbGVjdFN0bXQ6CiAJCWNhc2UgVF9SZXR1cm5TdG10OgogCQljYXNlIFRfUExBc3Np Z25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsK IApAQCAtNjUzLDYgKzY2Niw3IEBAIHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBEZWxldGVTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBf aGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25f cXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTEwNzksNiArMTA5Myw3IEBAIHRy YW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KQog CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5o YXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJp YWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9j b2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTU0NCw2ICsxNTU5LDcgQEAgdHJhbnNmb3Jt U2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5o YXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1Rhcmdl dFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUt PnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vz c2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwgc3RtdC0+bG9ja2luZ0NsYXVzZSkKIAl7CkBA IC0xNzcwLDEyICsxNzg2LDI0MCBAQCB0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIo cHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUt PnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFy eSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgorICogdHJhbnNmb3JtTGV0U3RtdCAtCisgKgkg IHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50CisgKi8KK3N0YXRpYyBRdWVyeSAqCit0cmFuc2Zv cm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKK3sKKwlRdWVyeQkg ICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlMaXN0CSAgICpleHByTGlzdCA9IE5JTDsK KwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdENl bGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7CisJUXVlcnkJICAgKnNlbGVjdFF1ZXJ5Owor CU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlub3RfdW5p cXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsK KwlPaWQJCQljb2xsaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlMaXN0CSAgICpuYW1lcyA9 IE5VTEw7CisJaW50CQkJaW5kaXJlY3Rpb25fc3RhcnQ7CisJaW50CQkJaSA9IDA7CisKKwkvKiB0 aGVyZSBjYW4ndCBiZSBhbnkgb3V0ZXIgV0lUSCB0byB3b3JyeSBhYm91dCAqLworCUFzc2VydChw c3RhdGUtPnBfY3RlbmFtZXNwYWNlID09IE5JTCk7CisKKwluYW1lcyA9IE5hbWVzRnJvbUxpc3Qo c3RtdC0+dGFyZ2V0KTsKKworCS8qIGxvY2tzIHRoZSB2YXJpYWJsZSB3aXRoIGFuIEFjY2Vzc1No YXJlTG9jayAqLworCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShuYW1lcywgJmF0dHJuYW1lLCAm bm90X3VuaXF1ZSwgZmFsc2UpOworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygi dGFyZ2V0IFwiJXNcIiBvZiBMRVQgY29tbWFuZCBpcyBhbWJpZ3VvdXMiLAorCQkJCQkJTmFtZUxp c3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10 LT5sb2NhdGlvbikpKTsKKworCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkgZXJybXNn KCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2Vzbid0IGV4aXN0IiwKKwkJCQkJCU5hbWVMaXN0 VG9TdHJpbmcobmFtZXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+ bG9jYXRpb24pKSk7CisKKwkvKgorCSAqIENhbGN1bGF0ZSBzdGFydCBvZiBwb3NzaWJsZSBwb3Np dGlvbiBvZiBhbiBpbmRpcmVjdGlvbiBpbiBsaXN0LCBhbmQKKwkgKiB3aGVuIGl0IGlzIGluc2lk ZSB0aGUgbGlzdCwgc3RvcmUgcG9pbnRlciBvbiBmaXJzdCBub2RlIG9mIGluZGlyZWN0aW9uLgor CSAqLworCWluZGlyZWN0aW9uX3N0YXJ0ID0gbGlzdF9sZW5ndGgobmFtZXMpIC0gKGF0dHJuYW1l ID8gMSA6IDApOworCWlmIChsaXN0X2xlbmd0aChzdG10LT50YXJnZXQpID4gaW5kaXJlY3Rpb25f c3RhcnQpCisJCWluZGlyZWN0aW9uX2hlYWQgPSBsaXN0X250aF9jZWxsKHN0bXQtPnRhcmdldCwg aW5kaXJlY3Rpb25fc3RhcnQpOworCisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2Rf Y29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsICZjb2xsaWQpOworCisJaXNfcm93dHlwZSA9 IHR5cGVfaXNfcm93dHlwZSh0eXBpZCk7CisKKwlpZiAoYXR0cm5hbWUgJiYgIWlzX3Jvd3R5cGUp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQ RSksCisJCQkJIGVycm1zZygidHlwZSBcIiVzXCIgb2YgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWZvcm1hdF90eXBlX2Jl KHR5cGlkKSwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp KSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg R2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBOYW1lTGlzdFRv U3RyaW5nKG5hbWVzKSk7CisKKwlwc3RhdGUtPnBfZXhwcl9raW5kID0gRVhQUl9LSU5EX0xFVF9U QVJHRVQ7CisKKwkvKiB3ZSBuZWVkIHRvIHBvc3Rwb25lIGNvbnZlcnNpb24gb2YgInVua25vd24i IHRvIHRleHQgKi8KKwlwc3RhdGUtPnBfcmVzb2x2ZV91bmtub3ducyA9IGZhbHNlOworCisJc2Vs ZWN0UXVlcnkgPSB0cmFuc2Zvcm1TdG10KHBzdGF0ZSwgc3RtdC0+cXVlcnkpOworCisJLyogdGhl IGdyYW1tYXIgc2hvdWxkIGhhdmUgcHJvZHVjZWQgYSBTRUxFQ1QgKi8KKwlBc3NlcnQoSXNBKHNl bGVjdFF1ZXJ5LCBRdWVyeSkgJiYgc2VsZWN0UXVlcnktPmNvbW1hbmRUeXBlID09IENNRF9TRUxF Q1QpOworCisJLyoKKwkgKiBHZW5lcmF0ZSBhbiBleHByZXNzaW9uIGxpc3QgZm9yIHRoZSBMRVQg dGhhdCBzZWxlY3RzIGFsbCB0aGUgbm9uLXJlc2p1bmsKKwkgKiBjb2x1bW5zIGZyb20gdGhlIHN1 YnF1ZXJ5LgorCSAqLworCWV4cHJMaXN0ID0gTklMOworCWZvcmVhY2hfbm9kZShUYXJnZXRFbnRy eSwgdGxlLCBzZWxlY3RRdWVyeS0+dGFyZ2V0TGlzdCkKKwl7CisJCWlmICh0bGUtPnJlc2p1bmsp CisJCQljb250aW51ZTsKKworCQlleHByTGlzdCA9IGxhcHBlbmQoZXhwckxpc3QsIHRsZS0+ZXhw cik7CisJfQorCisJLyogZG9uJ3QgYWxsb3cgbXVsdGljb2x1bW4gcmVzdWx0ICovCisJaWYgKGxp c3RfbGVuZ3RoKGV4cHJMaXN0KSAhPSAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkgZXJybXNnX3BsdXJhbCgiYXNzaWdubWVudCBl eHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbiIsCisJCQkJCQkJICAgImFzc2lnbm1lbnQgZXhw cmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW5zIiwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHBy TGlzdCksCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpKSwKKwkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCWV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByTGlz dCkpKSk7CisKKwlleHByTGlzdENvZXIgPSBOSUw7CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdCkK Kwl7CisJCUV4cHIJICAgKmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlFeHByCSAgICpj b2VyY2VkX2V4cHI7CisJCVBhcmFtCSAgICpwYXJhbTsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJ CS8qIG5vdyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBy dHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlwYXJhbSA9IG1ha2VOb2RlKFBh cmFtKTsKKwkJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCQlwYXJhbS0+cGFy YW12YXJpZCA9IHZhcmlkOworCQlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCXBhcmFtLT5w YXJhbXR5cG1vZCA9IHR5cG1vZDsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJeworCQkJ Ym9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisKKwkJCXRhcmdl dE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJy YXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5w X2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJCQljb2VyY2VkX2V4cHIgPSAoRXhwciAq KQorCQkJCXRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihwc3RhdGUsCisJCQkJCQkJCQkJ CSAgIChOb2RlICopIHBhcmFtLAorCQkJCQkJCQkJCQkgICB0YXJnZXROYW1lLAorCQkJCQkJCQkJ CQkgICB0YXJnZXRJc0FycmF5LAorCQkJCQkJCQkJCQkgICB0eXBpZCwKKwkJCQkJCQkJCQkJICAg dHlwbW9kLAorCQkJCQkJCQkJCQkgICBJbnZhbGlkT2lkLAorCQkJCQkJCQkJCQkgICBzdG10LT50 YXJnZXQsCisJCQkJCQkJCQkJCSAgIGluZGlyZWN0aW9uX2hlYWQsCisJCQkJCQkJCQkJCSAgIChO b2RlICopIGV4cHIsCisJCQkJCQkJCQkJCSAgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJ CQkJCSAgIHN0bXQtPmxvY2F0aW9uKTsKKwkJfQorCQllbHNlCisJCQljb2VyY2VkX2V4cHIgPSAo RXhwciAqKQorCQkJCWNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkgIChO b2RlICopIGV4cHIsCisJCQkJCQkJCQkgIGV4cHJ0eXBpZCwKKwkJCQkJCQkJCSAgdHlwaWQsIHR5 cG1vZCwKKwkJCQkJCQkJCSAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCSAgQ09FUkNF X0lNUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkgIHN0bXQtPmxvY2F0aW9uKTsKKworCQlpZiAoY29l cmNlZF9leHByID09IE5VTEwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygidmFyaWFibGUgXCIlcy4lc1wi IGlzIG9mIHR5cGUgJXMsIgorCQkJCQkJCSIgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIs CisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJ CQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlw aWQpKSwKKwkJCQkJIGVycmhpbnQoIllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRo ZSBleHByZXNzaW9uLiIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxv Y2F0aW9uKChOb2RlICopIGV4cHIpKSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhw ckxpc3RDb2VyLCBjb2VyY2VkX2V4cHIpOworCX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFy Z2V0IGxpc3QgdXNpbmcgdGhlIGNvbXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVy eSA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlxdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOwor CisJZm9yZWFjaChsYywgZXhwckxpc3RDb2VyKQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHBy ICopIGxmaXJzdChsYyk7CisJCVRhcmdldEVudHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdl dEVudHJ5KGV4cHIsCisJCQkJCQkJICBpICsgMSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5v ZGUgKikgZXhwciksCisJCQkJCQkJICBmYWxzZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFw cGVuZChxdWVyeS0+dGFyZ2V0TGlzdCwgdGxlKTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRo ZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUgKi8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5w X3J0YWJsZTsKKwlxdWVyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5s aXN0LCBOVUxMKTsKKworCXF1ZXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1Rhcmdl dFNSRnM7CisJcXVlcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1 ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7 CisKKwkvKiB0aGlzIGlzIHRvcC1sZXZlbCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0 cnVlOworCisJLyoKKwkgKiBTYXZlIHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIElELiAgVGhpcyB2 YWx1ZSBpcyB1c2VkIG11bHRpcGxlIHRpbWVzOiBieQorCSAqIHRoZSBxdWVyeSByZXdyaXRlciAo Zm9yIGdldHRpbmcgcmVsYXRlZCBkZWZleHByKSwgYnkgcGxhbm5lciAoZm9yCisJICogYWNxdWly aW5nIGFuIEFjY2Vzc1NoYXJlTG9jayBvbiB0YXJnZXQgdmFyaWFibGUpLCBhbmQgYnkgdGhlIGV4 ZWN1dG9yCisJICogKHdlIG5lZWQgdG8ga25vdyB0aGUgdGFyZ2V0IHZhcmlhYmxlIElEKS4KKwkg Ki8KKwlxdWVyeS0+cmVzdWx0VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXVlcnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkgaXMgZXhlY3V0ZWQg YXMgdXRpbGl0eSBjb21tYW5kIGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgorCSAqIEFzc2lnbmVk IHF1ZXJ5SWQgaXMgcmVxdWlyZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlmIChJc1F1ZXJ5SWRF bmFibGVkKCkpCisJCUp1bWJsZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0gKE5vZGUg KikgcXVlcnk7CisKKwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5 ICovCisJcmVzdWx0ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBD TURfVVRJTElUWTsKKwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsKKworCXJl dHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10IC0KICAq CSAgdHJhbnNmb3JtcyBhIHNldC1vcGVyYXRpb25zIHRyZWUKQEAgLTIwMjEsNiArMjI2NSw3IEBA IHRyYW5zZm9ybVNldE9wZXJhdGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10 ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7 CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5o YXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g cHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIGxvY2tpbmdDbGF1 c2UpCiAJewpAQCAtMjQ5Niw2ICsyNzQxLDcgQEAgdHJhbnNmb3JtUmV0dXJuU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIFJldHVyblN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBz dGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBf aGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAog CWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjU2Myw2ICsyODA5 LDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQg KnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsK IAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWdu X3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNzUwLDkgKzI5OTcsMTUgQEAg dHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpz dG10KQogCS8qCiAJICogVHJhbnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJlbmNlLiAgVHlwaWNhbGx5 IHdlIHdpbGwgZ2V0IGJhY2sgYSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0aGVyZSdzIG5vIHJlYXNv biB0byBiZSB0b28gcGlja3kgYWJvdXQgaXRzIHR5cGUuCisJICoKKwkgKiBTZXNzaW9uIHZhcmlh YmxlcyBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGFyZ2V0IG9mIGEgUEwvcGdTUUwgYXNzaWduCisJ ICogc3RhdGVtZW50LiAgU28gd2Ugc2hvdWxkIHVzZSBhIGRlZGljYXRlZCBleHByZXNzaW9uIGtp bmQgYW5kIGRpc2FsbG93CisJICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhlcmUuICBUaGUgZGVkaWNh dGVkIGNvbnRleHQgYWxsb3dzIHRvIGVsaW1pbmF0ZQorCSAqIHVuZGVzaXJhYmxlIHdhcm5pbmdz IGFib3V0IHRoZSBwb3NzaWJpbGl0eSBvZiBhIHRhcmdldCBQTC9wZ1NRTCB2YXJpYWJsZQorCSAq IHNoYWRvd2luZyBhIHNlc3Npb24gdmFyaWFibGUuCiAJICovCiAJdGFyZ2V0ID0gdHJhbnNmb3Jt RXhwcihwc3RhdGUsIChOb2RlICopIGNyZWYsCi0JCQkJCQkgICBFWFBSX0tJTkRfVVBEQVRFX1RB UkdFVCk7CisJCQkJCQkgICBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7CiAJdGFyZ2V0dHlwZSA9 IGV4cHJUeXBlKHRhcmdldCk7CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5cG1vZCh0YXJnZXQpOwog CXRhcmdldGNvbGxhdGlvbiA9IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsKQEAgLTI3OTQsNiArMzA0 NywxMCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2ln blN0bXQgKnN0bXQpCiAJICovCiAJdHlwZV9pZCA9IGV4cHJUeXBlKChOb2RlICopIHRsZS0+ZXhw cik7CiAKKwkvKgorCSAqIEZvciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5nIGFuZCBhZGRpdGlvbmFs IGNhc3RzIHdlIGNhbiB1c2UgZXhwcl9raW5kCisJICogRVhQUl9LSU5EX1VQREFURV9UQVJHRVQu CisJICovCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOwog CiAJaWYgKGluZGlyZWN0aW9uKQpAQCAtMjkzNiw2ICszMTkzLDggQEAgdHJhbnNmb3JtUExBc3Np Z25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJCSAg IChMb2NraW5nQ2xhdXNlICopIGxmaXJzdChsKSwgZmFsc2UpOwogCX0KIAorCXFyeS0+aGFzU2Vz c2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJYXNzaWdu X3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJLyogdGhpcyBtdXN0IGJlIGRvbmUg YWZ0ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlhYmxlIGNvbXBhcmlzb24gb2YgZXhwcnMgKi8KQEAg LTMyMDksNiArMzQ2OCwxNCBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+ bG9jYXRpb24pOwogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFy ZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBU aGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKKwkg KiBlbmFibGVkIGxhdGVyLgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxl cykKKwkJZWxvZyhFUlJPUiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4g YXJndW1lbnQiKTsKKwogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAog CWZleHByID0gY2FzdE5vZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggODlmYTIz YzJkZC4uOGFlMzY4YzUxMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGlj IE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFz ZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJvcFVzZXJNYXBwaW5n U3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50Um9sZVN0bXQgSW1w b3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJTGlzdGVuU3RtdCBM b2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJl cGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdl U3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAogCQlDcmVhdGVG dW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVtb3ZlQWdnclN0bXQK IAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBSZXR1cm5TdG10IFJl dm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVsZUFjdGlvblN0bXRP ckVtcHR5IFJ1bGVTdG10CkBAIC00NDMsNiArNDQzLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1 cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5 KTsKIAkJCQlUcmlnZ2VyVHJhbnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVt X3JlbGF0aW9uX2xpc3Qgb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJZHJvcF9vcHRpb25f bGlzdCBwdWJfb2JqX2xpc3QKKwkJCQlsZXRfdGFyZ2V0CiAKICV0eXBlIDxub2RlPglvcHRfcm91 dGluZV9ib2R5CiAldHlwZSA8Z3JvdXBjbGF1c2U+IGdyb3VwX2NsYXVzZQpAQCAtNzM0LDcgKzcz NSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJS0VFUCBLRVkgS0VZUwogCiAJTEFCRUwg TEFOR1VBR0UgTEFSR0VfUCBMQVNUX1AgTEFURVJBTF9QCi0JTEVBRElORyBMRUFLUFJPT0YgTEVB U1QgTEVGVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCisJTEVBRElORyBMRUFL UFJPT0YgTEVBU1QgTEVGVCBMRVQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAog CUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFNUCBMT0NBVElPTiBMT0NLX1AgTE9DS0VEIExPR0dFRAog CiAJTUFQUElORyBNQVRDSCBNQVRDSEVEIE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVJH RV9BQ1RJT04gTUVUSE9ECkBAIC0xMDgxLDYgKzEwODIsNyBAQCBzdG10OgogCQkJfCBJbXBvcnRG b3JlaWduU2NoZW1hU3RtdAogCQkJfCBJbmRleFN0bXQKIAkJCXwgSW5zZXJ0U3RtdAorCQkJfCBM ZXRTdG10CiAJCQl8IExpc3RlblN0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10CiAJCQl8IExv YWRTdG10CkBAIC0xMjc3MCw2ICsxMjc3Miw0NyBAQCBvcHRfaG9sZDogLyogRU1QVFkgKi8JCQkJ CQl7ICQkID0gMDsgfQogCQkJfCBXSVRIT1VUIEhPTEQJCQkJCXsgJCQgPSAwOyB9CiAJCTsKIAor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZOgorICoJCQkJTEVUIFNUQVRFTUVO VAorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0xldFN0bXQ6CUxFVCBsZXRfdGFyZ2V0ICc9 JyBhX2V4cHIKKwkJCQl7CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9kZShMZXRTdG10KTsK KwkJCQkJU2VsZWN0U3RtdCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpyZXM7CisKKwkJCQkJ bi0+dGFyZ2V0ID0gJDI7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7CisJ CQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3JlYXRlIHRhcmdldCBs aXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJCQly ZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ0OworCQkJ CQlyZXMtPmxvY2F0aW9uID0gQDQ7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlzdF9t YWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQluLT5s b2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisKK2xldF90 YXJnZXQ6CisJCQlDb2xJZCBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7CisJCQkJCSQkID0gbGlzdF9t YWtlMShtYWtlU3RyaW5nKCQxKSk7CisJCQkJCWlmICgkMikKKwkJCQkJCSAgJCQgPSBsaXN0X2Nv bmNhdCgkJCwKKwkJCQkJCQkJCQkgICBjaGVja19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKSk7 CisJCQkJfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAg LTE3ODQwLDYgKzE3ODgzLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJ CQl8IExBU1RfUAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJ U1RFTgogCQkJfCBMT0FECkBAIC0xODQ1MSw2ICsxODQ5NSw3IEBAIGJhcmVfbGFiZWxfa2V5d29y ZDoKIAkJCXwgTEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8 IExFVkVMCiAJCQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXgg MDRiNDU5NmE2NS4uOTg4MzlmMTI0OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTgwLDYg KzU4MCwxMSBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqZXhwcikKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKKwkJY2Fz ZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoK KwkJCWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CisKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBp bnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKIAkJCSAqIGNv bXBpbGVyIHdpbGwgd2FybiBpZiB3ZSBhZGQgYSBuZXcgUGFyc2VFeHByS2luZCB3aXRob3V0CkBA IC05NzAsNiArOTc1LDEwIEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBz dGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJ CQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFS R0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJ CQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVs dDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYzI4 MDYyOTdhYS4uYWJhNTI1OWUwMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC0xNyw2ICsx Nyw3IEBACiAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5j bHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zMywxMSArMzQsMTMgQEAKICNpbmNsdWRlICJw YXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFyZ2V0Lmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xtZ3Iu aCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2RhdGUuaCIK ICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInV0aWxzL3R5cGNhY2hl LmgiCiAjaW5jbHVkZSAidXRpbHMveG1sLmgiCiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCkBAIC0x MDYsNiArMTA5LDkgQEAgc3RhdGljIEV4cHIgKm1ha2VfZGlzdGluY3Rfb3AoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJCQkJCQkJICBOb2RlICpsdHJlZSwgTm9kZSAqcnRyZWUs IGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9mcm9tX2Rpc3RpbmN0 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQV9FeHByICpkaXN0aW5jdGEsIE5vZGUg KmFyZyk7CitzdGF0aWMgTm9kZSAqbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwKKwkJCQkJCQkJCSAgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwg T2lkIGNvbGxpZCwKKwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUsIGludCBsb2NhdGlvbik7CiAK IAogLyoKQEAgLTQ5OSw2ICs1MDUsODkgQEAgdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoK KyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5kIGlzIHZhbGlkIGZv ciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSB1c2VkIGV2 ZXJ5d2hlcmUgd2hlcmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAqIHVzZWQuICBTZXNz aW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRzIG9yIGluIGNvbnN0 cmFpbnRzLgorICoKKyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBhcyBhIHNlc3Npb24g dmFyaWFibGUgb25seSBmb3IgZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUgc2Vzc2lvbiB2YXJp YWJsZXMgYXJlIGFsbG93ZWQuICBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdlIG9mIHRoaXMKKyAq IGZ1bmN0aW9uLgorICoKKyAqIFRoZSBzZWNvbmQgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBpcyB0 byBkZWNpZGUgd2hldGhlciBhICJjb2x1bW4gZG9lcyBub3QKKyAqIGV4aXN0IiBvciBhICJjb2x1 bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ugc2hvdWxkIGJlCisg KiBwcmludGVkLiAgV2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVyZSBzZXNzaW9uIHZh cmlhYmxlcyBjYW5ub3QgYmUKKyAqIHVzZWQsIHdlIHJhaXNlIHRoZSBmaXJzdCBmb3JtIG9mIGVy cm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBib29sCitleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25f dmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7CisJYm9vbAkJcmVzdWx0ID0g ZmFsc2U7CisKKwlzd2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBFWFBSX0tJTkRfTk9O RToKKwkJCUFzc2VydChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJCXJldHVybiBmYWxz ZTsKKworCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5E X09USEVSOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX09OOgorCQljYXNlIEVYUFJfS0lORF9GUk9N X1NVQlNFTEVDVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9GVU5DVElPTjoKKwkJY2FzZSBFWFBS X0tJTkRfV0hFUkU6CisJCWNhc2UgRVhQUl9LSU5EX0hBVklORzoKKwkJY2FzZSBFWFBSX0tJTkRf RklMVEVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfUEFSVElUSU9OOgorCQljYXNlIEVYUFJf S0lORF9XSU5ET1dfT1JERVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9SQU5HRToK KwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JPV1M6CisJCWNhc2UgRVhQUl9LSU5EX1dJ TkRPV19GUkFNRV9HUk9VUFM6CisJCWNhc2UgRVhQUl9LSU5EX1NFTEVDVF9UQVJHRVQ6CisJCWNh c2UgRVhQUl9LSU5EX0lOU0VSVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9TT1VS Q0U6CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX01F UkdFX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX01FUkdFX1JFVFVSTklORzoKKwkJY2FzZSBFWFBS X0tJTkRfR1JPVVBfQlk6CisJCWNhc2UgRVhQUl9LSU5EX09SREVSX0JZOgorCQljYXNlIEVYUFJf S0lORF9ESVNUSU5DVF9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfTElNSVQ6CisJCWNhc2UgRVhQUl9L SU5EX09GRlNFVDoKKwkJY2FzZSBFWFBSX0tJTkRfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lO RF9WQUxVRVM6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CisJCWNhc2UgRVhQUl9L SU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNhc2UgRVhQUl9LSU5EX0VYRUNVVEVfUEFSQU1F VEVSOgorCQljYXNlIEVYUFJfS0lORF9QT0xJQ1k6CisJCWNhc2UgRVhQUl9LSU5EX0NBTExfQVJH VU1FTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CisJCWNhc2UgRVhQUl9LSU5EX0xF VF9UQVJHRVQ6CisJCQlyZXN1bHQgPSB0cnVlOworCQkJYnJlYWs7CisKKwkJLyogc2Vzc2lvbiB2 YXJpYWJsZXMgbm90IGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlO VDoKKwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DT0xV TU5fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBF WFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElD QVRFOgorCQljYXNlIEVYUFJfS0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lO RF9UUklHR0VSX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKKwkJY2Fz ZSBFWFBSX0tJTkRfUEFSVElUSU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0dFTkVS QVRFRF9DT0xVTU46CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJCWNhc2UgRVhQUl9L SU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXN1 bHQgPSBmYWxzZTsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAg KiBUcmFuc2Zvcm0gYSBDb2x1bW5SZWYuCiAgKgpAQCAtNTc1LDYgKzY2NCw4IEBAIHRyYW5zZm9y bUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBF WFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoK IAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJy ZWFrOwogCkBAIC04NDcsOCArOTM4LDYxIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRl ICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAl9CiAKIAkvKgotCSAqIFRocm93IGVycm9yIGlm IG5vIHRyYW5zbGF0aW9uIGZvdW5kLgorCSAqIFRoZXJlIGFyZSBjb250ZXh0cyB3aGVyZSBzZXNz aW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQuICBXZSBkb24ndAorCSAqIG5lZWQgdG8gaWRl bnRpZnkgc2Vzc2lvbiB2YXJpYWJsZXMgaW4gc3VjaCBhIGNvbnRleHQsIGJ1dCBpZGVudGlmeWlu ZworCSAqIHRoZW0gYWxsb3dzIHVzIHRvIHJhaXNlIG1lYW5pbmdmdWwgZXJyb3IgbWVzc2FnZXMg bGlrZSAieW91IGNhbm5vdCB1c2UKKwkgKiBzZXNzaW9uIHZhcmlhYmxlcyBoZXJlIi4KIAkgKi8K KwlpZiAoZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9r aW5kKSkKKwl7CisJCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwkJY2hhcgkgICAqYXR0cm5h bWUgPSBOVUxMOworCQlib29sCQlub3RfdW5pcXVlOworCisJCS8qIC0tLS0tCisJCSAqIFNlc3Np b24gdmFyaWFibGVzIGFyZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lIHZhcmlhYmxlcyBv cgorCQkgKiByb3V0aW5lIGFyZ3VtZW50cy4gIFdlIGNlcnRhaW5seSBkb24ndCB3YW50IHRvIHVz ZSBhIHNlc3Npb24gdmFyaWFibGUKKwkJICogd2hlbiBpdCBpcyBleGFjdGx5IHNoYWRvd2VkLCBi dXQgYSBSVEUgbGlrZSB0aGlzIGlzIGNvbmNlaXZhYmxlOgorCQkgKgorCQkgKiBDUkVBVEUgVFlQ RSB0IEFTIChjIGludCk7CisJCSAqIENSRUFURSBWQVJJQUJMRSBmb28gQVMgdDsKKwkJICogQ1JF QVRFIFRBQkxFIGZvbyhhIGludCwgYiBpbnQpOworCQkgKgorCQkgKiBTRUxFQ1QgZm9vLmEsIGZv by5iLCBmb28uYyBGUk9NIGZvbzsKKwkJICoKKwkJICogSG93ZXZlciwgdGhhdCBpcyB2ZXJ5IGNv bmZ1c2luZywgc28gd2UgZGlzYWxsb3cgaXQuICBXZSBkb24ndCB0cnkgdG8KKwkJICogaWRlbnRp ZnkgYSB2YXJpYWJsZSBpZiB3ZSBrbm93IHRoYXQgaXQgd291bGQgYmUgc2hhZG93ZWQuCisJCSAq IC0tLS0tCisJCSAqLworCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNyZXJyID09IENSRVJS X05PX0NPTFVNTikpCisJCXsKKwkJCS8qIHRha2VzIGFuIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUg c2Vzc2lvbiB2YXJpYWJsZSAqLworCQkJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZp ZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCisJCQlpZiAoT2lkSXNWYWxp ZCh2YXJpZCkpCisJCQl7CisJCQkJT2lkCQkJdHlwaWQ7CisJCQkJaW50MzIJCXR5cG1vZDsKKwkJ CQlPaWQJCQljb2xsaWQ7CisKKwkJCQlpZiAobm90X3VuaXF1ZSkKKwkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCQkJ CSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIFwiJXNcIiBpcyBhbWJpZ3VvdXMi LAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisKKwkJCQlnZXRfc2Vz c2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwK KwkJCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwkJCQlub2RlID0gbWFrZVBhcmFtU2Vzc2lvblZh cmlhYmxlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQs CisJCQkJCQkJCQkJCQlhdHRybmFtZSwgY3JlZi0+bG9jYXRpb24pOworCQkJfQorCQl9CisJfQor CisJLyogdGhyb3cgYW4gZXJyb3IgaWYgbm8gdHJhbnNsYXRpb24gd2FzIGZvdW5kICovCiAJaWYg KG5vZGUgPT0gTlVMTCkKIAl7CiAJCXN3aXRjaCAoY3JlcnIpCkBAIC04ODAsNiArMTAyNCw3MiBA QCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYp CiAJcmV0dXJuIG5vZGU7CiB9CiAKKy8qCisgKiBHZW5lcmF0ZSBwYXJhbSB2YXJpYWJsZSBmb3Ig cmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE5vZGUgKgorbWFrZVBh cmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCSBPaWQgdmFyaWQs IE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJIGNoYXIgKmF0dHJu YW1lLCBpbnQgbG9jYXRpb24pCit7CisJUGFyYW0JICAgKnBhcmFtOworCisJcGFyYW0gPSBtYWtl Tm9kZShQYXJhbSk7CisKKwlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CisJcGFy YW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7CisJcGFy YW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNvbGxpZDsK KworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKworCWlmIChhdHRybmFt ZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVEZXNjCXR1cGRlc2M7CisJCWludAkJCWk7CisKKwkJdHVw ZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1cGRlc2Nfbm9lcnJvcih0eXBpZCwgdHlwbW9kLCB0cnVl KTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMuJXNc IiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hpY2ggaXMgbm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFy aWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCQlm b3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg bG9jYXRpb24pKSk7CisKKwkJZm9yIChpID0gMDsgaSA8IHR1cGRlc2MtPm5hdHRzOyBpKyspCisJ CXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0dCA9IFR1cGxlRGVzY0F0dHIodHVwZGVzYywgaSk7 CisKKwkJCWlmIChzdHJjbXAoYXR0cm5hbWUsIE5hbWVTdHIoYXR0LT5hdHRuYW1lKSkgPT0gMCAm JgorCQkJCSFhdHQtPmF0dGlzZHJvcHBlZCkKKwkJCXsKKwkJCQkvKiBzdWNjZXNzLCBzbyBnZW5l cmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJlc3Npb24gKi8KKwkJCQlGaWVsZFNlbGVjdCAqZnNlbGVj dCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0KTsKKworCQkJCWZzZWxlY3QtPmFyZyA9IChFeHByICop IHBhcmFtOworCQkJCWZzZWxlY3QtPmZpZWxkbnVtID0gaSArIDE7CisJCQkJZnNlbGVjdC0+cmVz dWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7CisJCQkJZnNlbGVjdC0+cmVzdWx0dHlwbW9kID0gYXR0 LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2ZSBhdHRyaWJ1dGUncyBjb2xsYXRpb24gZm9yIHBhcnNl X2NvbGxhdGUuYyAqLworCQkJCWZzZWxlY3QtPnJlc3VsdGNvbGxpZCA9IGF0dC0+YXR0Y29sbGF0 aW9uOworCisJCQkJUmVsZWFzZVR1cGxlRGVzYyh0dXBkZXNjKTsKKwkJCQlyZXR1cm4gKE5vZGUg KikgZnNlbGVjdDsKKwkJCX0KKwkJfQorCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb3VsZCBub3QgaWRlbnRp ZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJpYWJsZSIsIGF0dHJuYW1lKSwKKwkJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisJfQorCisJcmV0dXJuIChOb2RlICopIHBh cmFtOworfQorCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRlICpw c3RhdGUsIFBhcmFtUmVmICpwcmVmKQogewpAQCAtMTgxNSw2ICsyMDI1LDcgQEAgdHJhbnNmb3Jt U3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQ Ul9LSU5EX1ZBTFVFUzoKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBF WFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8q IG9rYXkgKi8KIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgpA QCAtMTg1OCw2ICsyMDY5LDkgQEAgdHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUs IFN1YkxpbmsgKnN1YmxpbmspCiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJ CQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJl c3Npb24iKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJ ZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBhcyB0YXJnZXQgb2YgYXNzaWduIHN0YXRlbWVu dCIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5v IGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTMxOTcsNiArMzQxMSwxMCBAQCBQ YXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJHRU5F UkFURUQgQVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJcmV0dXJuICJDWUNM RSI7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQlyZXR1cm4gIkFTU0lHTiI7 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXR1cm4gIkxFVCI7CiAKIAkJCS8q CiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28g dGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDliMjMzNDRhM2IuLjlhYTRmNjA3 NjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjY1Niw2ICsyNjU2LDggQEAgY2hlY2tf c3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGlu dCBsb2NhdGlvbikKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3Qg YWxsb3dlZCBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7CiAJ CWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJH RVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJ CWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYyBiL3NyYy9iYWNr ZW5kL3Rjb3AvZGVzdC5jCmluZGV4IDk2ZjgwYjMwNDYuLmRhYzc4YmE1Y2MgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCkBA IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIu aCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImxp YnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYgKzE1 Niw5IEBAIENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2UgRGVz dEV4cGxhaW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RS ZWNlaXZlcihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVhdGVW YXJpYWJsZURlc3RSZWNlaXZlcihJbnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2ZXIg Z2V0IGhlcmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5Q29t cGxldGlvbiAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRfbwog CQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2Ug RGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJ fQogfQpAQCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3QpCiAJ CWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBE ZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9 CiB9CkBAIC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0KQog CQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2Ug RGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJ fQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyBiL3NyYy9iYWNrZW5k L3Rjb3AvcHF1ZXJ5LmMKaW5kZXggODlkNzA0ZGY4ZC4uZjg0NTM1OTQ3YiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5j CkBAIC04Niw2ICs4Niw5IEBAIENyZWF0ZVF1ZXJ5RGVzYyhQbGFubmVkU3RtdCAqcGxhbm5lZHN0 bXQsCiAJcWQtPnF1ZXJ5RW52ID0gcXVlcnlFbnY7CiAJcWQtPmluc3RydW1lbnRfb3B0aW9ucyA9 IGluc3RydW1lbnRfb3B0aW9uczsJLyogaW5zdHJ1bWVudGF0aW9uIHdhbnRlZD8gKi8KIAorCXFk LT5udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAwOworCXFkLT5zZXNzaW9uX3ZhcmlhYmxlcyA9IE5V TEw7CisKIAkvKiBudWxsIHRoZXNlIGZpZWxkcyB1bnRpbCBzZXQgYnkgRXhlY3V0b3JTdGFydCAq LwogCXFkLT50dXBEZXNjID0gTlVMTDsKIAlxZC0+ZXN0YXRlID0gTlVMTDsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMK aW5kZXggNGYwYmFiMzZkMy4uNTU0OTM1OThlNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTQ5LDYgKzQ5 LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1ZGUg ImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zdWJzY3Jp cHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvdGFibGVzcGFjZS5oIgpAQCAtMjM1LDYgKzIzNiw3IEBAIENsYXNzaWZ5VXRpbGl0 eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAogCQljYXNlIFRfQ2FsbFN0bXQ6 CiAJCWNhc2UgVF9Eb1N0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJewogCQkJCS8qCiAJCQkJ ICogQ29tbWFuZHMgaW5zaWRlIHRoZSBETyBibG9jayBvciB0aGUgY2FsbGVkIHByb2NlZHVyZSBt aWdodApAQCAtMTA2Nyw2ICsxMDY5LDExIEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5u ZWRTdG10ICpwc3RtdCwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJ CUV4ZWN1dGVMZXRTdG10KHBzdGF0ZSwgKExldFN0bXQgKikgcGFyc2V0cmVlLCBwYXJhbXMsCisJ CQkJCQkgICBxdWVyeUVudiwgcWMpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIEFs bCBvdGhlciBzdGF0ZW1lbnQgdHlwZXMgaGF2ZSBldmVudCB0cmlnZ2VyIHN1cHBvcnQgKi8KIAkJ CVByb2Nlc3NVdGlsaXR5U2xvdyhwc3RhdGUsIHBzdG10LCBxdWVyeVN0cmluZywKQEAgLTIyMDYs NiArMjIxMywxMCBAQCBVdGlsaXR5Q29udGFpbnNRdWVyeShOb2RlICpwYXJzZXRyZWUpCiAJCQkJ cmV0dXJuIFV0aWxpdHlDb250YWluc1F1ZXJ5KHFyeS0+dXRpbGl0eVN0bXQpOwogCQkJcmV0dXJu IHFyeTsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXFyeSA9IGNhc3ROb2RlKFF1ZXJ5LCAoKExl dFN0bXQgKikgcGFyc2V0cmVlKS0+cXVlcnkpOworCQkJcmV0dXJuIHFyeTsKKwogCQlkZWZhdWx0 OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpAQCAtMjQwNCw2ICsyNDE1LDEwIEBAIENyZWF0ZUNvbW1h bmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJdGFnID0gQ01EVEFHX1NFTEVDVDsKIAkJCWJyZWFr OwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJdGFnID0gQ01EVEFHX0xFVDsKKwkJCWJyZWFrOwor CiAJCQkvKiB1dGlsaXR5IHN0YXRlbWVudHMgLS0tIHNhbWUgd2hldGhlciByYXcgb3IgY29va2Vk ICovCiAJCWNhc2UgVF9UcmFuc2FjdGlvblN0bXQ6CiAJCQl7CkBAIC0zMjg5LDYgKzMzMDQsNyBA QCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJYnJlYWs7CiAKIAkJY2Fz ZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlsZXYgPSBMT0dTVE1UX0FM TDsKIAkJCWJyZWFrOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5kZXggMjE5NGFiM2Rm YS4uNDkzMmQ4N2Q4MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwpAQCAtMzcsNiArMzcs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbW9uL2tleXdv cmRzLmgiCkBAIC01MjgsNiArNTI5LDcgQEAgc3RhdGljIGNoYXIgKmdlbmVyYXRlX2Z1bmN0aW9u X25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdzLAogc3RhdGljIGNoYXIgKmdlbmVyYXRlX29wZXJh dG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFyZzEsIE9pZCBhcmcyKTsKIHN0YXRpYyB2b2lkIGFk ZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBPaWQgdHlwaWQpOwogc3RhdGljIGNoYXIgKmdlbmVy YXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lkIHR5cGlkKTsKK3N0YXRpYyBjaGFyICpnZW5lcmF0 ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKIHN0YXRpYyB0ZXh0ICpzdHJpbmdf dG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGljIGNoYXIgKmZsYXR0ZW5fcmVsb3B0aW9ucyhPaWQg cmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3JlbG9wdGlvbnMoU3RyaW5nSW5mbyBidWYsIERhdHVt IHJlbG9wdGlvbnMpOwpAQCAtODYyMyw2ICs4NjI1LDE0IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0g KnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJCXJldHVybjsKIAl9CiAKKwkvKiB0 cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxlIG5hbWUgKi8KKwlpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8o Y29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkgKiBBbHRlcm5h dGl2ZWx5LCBtYXliZSBpdCdzIGEgc3VicGxhbiBvdXRwdXQsIHdoaWNoIHdlIHByaW50IGFzIGEK IAkgKiByZWZlcmVuY2UgdG8gdGhlIHN1YnBsYW4uICAoV2UgY291bGQgZHJpbGwgZG93biBpbnRv IHRoZSBzdWJwbGFuIGFuZApAQCAtMTM0MDUsNiArMTM0MTUsNDIgQEAgZ2VuZXJhdGVfY29sbGF0 aW9uX25hbWUoT2lkIGNvbGxpZCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogZ2VuZXJh dGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJQ29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5 IGZvciBhIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1 bHQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBxdW90aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgor ICovCitzdGF0aWMgY2hhciAqCitnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZh cmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNo YXIJICAgKnZhcm5hbWU7CisJY2hhcgkgICAqbnNwbmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisK Kwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFy aWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0g KEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIo dmFyZm9ybS0+dmFybmFtZSk7CisKKwlpZiAoIVZhcmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJ bnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFj ZSk7CisJZWxzZQorCQluc3BuYW1lID0gTlVMTDsKKworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmll ZF9pZGVudGlmaWVyKG5zcG5hbWUsIHZhcm5hbWUpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVj ZSBhIFRFWFQgZGF0dW0uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv cGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCBj NjZhMDg4ZjQwLi5hOTZlYzY0MzllIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9wbGFuY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFuY2FjaGUuYwpA QCAtNTgsNiArNTgsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL3RyYW5zYW0uaCIKICNpbmNsdWRl ICJjYXRhbG9nL25hbWVzcGFjZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIK ICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtMTYyLDYgKzE2Myw3IEBAIEluaXRQbGFu Q2FjaGUodm9pZCkKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhBTU9QT1BJRCwgUGxh bkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2Fs bGJhY2soRk9SRUlHTlNFUlZFUk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7 CiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soRk9SRUlHTkRBVEFXUkFQUEVST0lELCBQ bGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKKwlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhWQVJJQUJMRU9JRCwgUGxhbkNhY2hlT2JqZWN0Q2FsbGJhY2ssIChEYXR1bSkgMCk7 CiB9CiAKIC8qCkBAIC0xOTAzLDE3ICsxOTA1LDMyIEBAIFNjYW5RdWVyeUZvckxvY2tzKFF1ZXJ5 ICpwYXJzZXRyZWUsIGJvb2wgYWNxdWlyZSkKIAogCS8qCiAJICogUmVjdXJzZSBpbnRvIHN1Ymxp bmsgc3VicXVlcmllcywgdG9vLiAgQnV0IHdlIGFscmVhZHkgZGlkIHRoZSBvbmVzIGluCi0JICog dGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4KKwkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LiAgV2Ug bmVlZCB0byBmb3JjZSBhIHJlY3Vyc2l2ZSBjYWxsIGZvciBzZXNzaW9uCisJICogdmFyaWFibGVz IHRvbywgdG8gZmluZCBhbmQgbG9jayB2YXJpYWJsZXMgdXNlZCBpbiB0aGUgcXVlcnkgKHNlZQor CSAqIFNjYW5RdWVyeVdhbGtlcikuCiAJICovCi0JaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3Mp CisJaWYgKHBhcnNldHJlZS0+aGFzU3ViTGlua3MgfHwKKwkJcGFyc2V0cmVlLT5oYXNTZXNzaW9u VmFyaWFibGVzKQogCXsKIAkJcXVlcnlfdHJlZV93YWxrZXIocGFyc2V0cmVlLCBTY2FuUXVlcnlX YWxrZXIsICZhY3F1aXJlLAogCQkJCQkJICBRVFdfSUdOT1JFX1JDX1NVQlFVRVJJRVMpOwogCX0K KworCS8qIHByb2Nlc3Mgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlpZiAoT2lkSXNWYWxpZChwYXJz ZXRyZWUtPnJlc3VsdFZhcmlhYmxlKSkKKwl7CisJCWlmIChhY3F1aXJlKQorCQkJTG9ja0RhdGFi YXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwK KwkJCQkJCQkgICAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQllbHNlCisJCQlVbmxvY2tEYXRhYmFz ZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJ CQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCX0KIH0KIAogLyoKLSAqIFdhbGtlciB0byBm aW5kIHN1Ymxpbmsgc3VicXVlcmllcyBmb3IgU2NhblF1ZXJ5Rm9yTG9ja3MKKyAqIFdhbGtlciB0 byBmaW5kIHN1Ymxpbmsgc3VicXVlcmllcyBvciByZWZlcmVuY2VkIHNlc3Npb24gdmFyaWFibGVz CisgKiBmb3IgU2NhblF1ZXJ5Rm9yTG9ja3MKICAqLwogc3RhdGljIGJvb2wKIFNjYW5RdWVyeVdh bGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJlKQpAQCAtMTkyOCw2ICsxOTQ1LDIwIEBAIFNj YW5RdWVyeVdhbGtlcihOb2RlICpub2RlLCBib29sICphY3F1aXJlKQogCQlTY2FuUXVlcnlGb3JM b2NrcyhjYXN0Tm9kZShRdWVyeSwgc3ViLT5zdWJzZWxlY3QpLCAqYWNxdWlyZSk7CiAJCS8qIEZh bGwgdGhyb3VnaCB0byBwcm9jZXNzIGxlZnRoYW5kIGFyZ3Mgb2YgU3ViTGluayAqLwogCX0KKwll bHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikg bm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlp ZiAoYWNxdWlyZSkKKwkJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBw LT5wYXJhbXZhcmlkLAorCQkJCQkJCQkgICAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQkJZWxzZQor CQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcC0+cGFyYW12YXJp ZCwKKwkJCQkJCQkJCSAwLCBBY2Nlc3NTaGFyZUxvY2spOworCQl9CisJfQogCiAJLyoKIAkgKiBE byBOT1QgcmVjdXJzZSBpbnRvIFF1ZXJ5IG5vZGVzLCBiZWNhdXNlIFNjYW5RdWVyeUZvckxvY2tz IGFscmVhZHkKQEAgLTIwNTgsNyArMjA4OSw5IEBAIFBsYW5DYWNoZVJlbENhbGxiYWNrKERhdHVt IGFyZywgT2lkIHJlbGlkKQogCiAvKgogICogUGxhbkNhY2hlT2JqZWN0Q2FsbGJhY2sKLSAqCQlT eXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgUFJPQ09JRCBhbmQgVFlQRU9JRCBj YWNoZXMKKyAqCQlTeXNjYWNoZSBpbnZhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgVFlQRU9JRCwg UFJPQ09JRCwgTkFNRVNQQUNFT0lELAorICoJCU9QRVJPSUQsIEFNT1BPUElELCBGT1JFSUdOU0VS VkVST0lELCBGT1JFSUdOREFUQVdSQVBQRVJPSUQgYW5kCisgKgkJVkFSSUFCTEVPSUQgY2FjaGVz LgogICoKICAqIEludmFsaWRhdGUgYWxsIHBsYW5zIG1lbnRpb25pbmcgdGhlIG9iamVjdCB3aXRo IHRoZSBzcGVjaWZpZWQgaGFzaCB2YWx1ZSwKICAqIG9yIGFsbCBwbGFucyBtZW50aW9uaW5nIGFu eSBtZW1iZXIgb2YgdGhpcyBjYWNoZSBpZiBoYXNodmFsdWUgPT0gMC4KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdy LmMKaW5kZXggZTQ4YTg2YmU1NC4uZWFhZTBjNWE5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvZm1nci9mbWdyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAg LTIwMjYsOSArMjAyNiwxMyBAQCBnZXRfY2FsbF9leHByX2FyZ19zdGFibGUoTm9kZSAqZXhwciwg aW50IGFyZ251bSkKIAkgKi8KIAlpZiAoSXNBKGFyZywgQ29uc3QpKQogCQlyZXR1cm4gdHJ1ZTsK LQlpZiAoSXNBKGFyZywgUGFyYW0pICYmCi0JCSgoUGFyYW0gKikgYXJnKS0+cGFyYW1raW5kID09 IFBBUkFNX0VYVEVSTikKLQkJcmV0dXJuIHRydWU7CisJaWYgKElzQShhcmcsIFBhcmFtKSkKKwl7 CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIGFyZzsKKworCQlpZiAocC0+cGFyYW1raW5kID09 IFBBUkFNX0VYVEVSTiB8fCBwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZXR1 cm4gdHJ1ZTsKKwl9CiAKIAlyZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5k ZXggY2E5ZDlmNTI4ZC4uOTlhOWRkMGQ0YyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTIx NCw4ICsxMjE0LDggQEAgc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0g ewogCSJBQk9SVCIsICJBTFRFUiIsICJBTkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQ T0lOVCIsICJDTE9TRSIsICJDTFVTVEVSIiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIs ICJDUkVBVEUiLCAiREVBTExPQ0FURSIsICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElT Q0FSRCIsICJETyIsICJEUk9QIiwgIkVORCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRD SCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElT VEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0JIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAi UFJFUEFSRSIsCisJIkZFVENIIiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJ TlNFUlQgSU5UTyIsICJMRVQiLAorCSJMSVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElO VE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0gg TUFURVJJQUxJWkVEIFZJRVciLCAiUkVJTkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVW T0tFIiwgIlJPTExCQUNLIiwKIAkiU0FWRVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVD VCIsICJTRVQiLCAiU0hPVyIsICJTVEFSVCIsCkBAIC00NjI5LDYgKzQ2MjksMTQgQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZB TFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVf V0lUSCgiKCIpOwogCisvKiBMRVQgKi8KKwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0 IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09N UExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkv KiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJMRVQiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAq LwogCS8qIENvbXBsZXRlIExPQ0sgW1RBQkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVz ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiTE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5k ZXggMThlYTZhYzgzYS4uZGVmNjkxZGFmYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0x NzEsNyArMTcxLDkgQEAgZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0 Y2hlcihNZW1vcnlDb250ZXh0IGNvbnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpD b3B5U2VhcmNoUGF0aE1hdGNoZXIoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJv b2wgU2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIg KnBhdGgpOwogCitleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CiBleHRl cm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZh cm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCUlkZW50aWZ5VmFyaWFibGUoTGlz dCAqbmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9y KTsKIAogZXh0ZXJuIE9pZAlnZXRfY29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBt aXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUs IGJvb2wgbWlzc2luZ19vayk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMzgxMGUw NDBmMi4uZGI1OGU2YWMwMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtMTgsNiAr MTgsNyBAQAogI2lmbmRlZiBQR19WQVJJQUJMRV9ICiAjZGVmaW5lIFBHX1ZBUklBQkxFX0gKIAor I2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z192YXJpYWJsZV9kLmgiCkBAIC0zNSw2ICszNiwxNCBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2 YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CiAK KwkvKgorCSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAq CisJICogVGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJl IGF0IGFuIGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFu eSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9s c247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJdmFybmFtZTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAuLmIzZjAzYzY1ODIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTAsMCArMSwzMiBAQAorLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKgorICogc2Vzc2lvbnZhcmlhYmxlLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vz c2lvbnZhcmlhYmxlLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0y MDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEK KyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5l IFNFU1NJT05WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKKyNpbmNsdWRl ICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNp bmNsdWRlICJ0Y29wL2NtZHRhZy5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQu aCIKKworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFs dWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1 cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiBE YXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlw aWQpOworZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZh cmlkLCBib29sICppc051bGwsIE9pZCBleHBlY3RlZF90eXBpZCk7CisKK2V4dGVybiB2b2lkIEV4 ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0 SW5mbyBwYXJhbXMsCisJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlD b21wbGV0aW9uICpxYyk7CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY2Rlc2MuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKaW5kZXggNzll OGI2MzExMS4uZmUxYWIwNzYwZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y2Rlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCkBAIC01MSw2ICs1 MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeURlc2MKIAkvKiBUaGlzIGZpZWxkIGlzIHNldCBi eSBFeGVjdXRlUGxhbiAqLwogCWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7CS8qIHRydWUgaWYgcHJl dmlvdXNseSBleGVjdXRlZCAqLwogCisJLyogcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGVz IGJ1ZmZlciAqLworCWludAkJCW51bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisKIAkvKiBUaGlzIGlzIGFsd2F5cyBzZXQgTlVM TCBieSB0aGUgY29yZSBzeXN0ZW0sIGJ1dCBwbHVnaW5zIGNhbiBjaGFuZ2UgaXQgKi8KIAlzdHJ1 Y3QgSW5zdHJ1bWVudGF0aW9uICp0b3RhbHRpbWU7CS8qIHRvdGFsIHRpbWUgc3BlbnQgaW4gRXhl Y3V0b3JSdW4gKi8KIH0gUXVlcnlEZXNjOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJl Y2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZGI0NGQ4Yjk0 YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2Vp dmVyLmgKQEAgLTAsMCArMSwyMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3Zhcmlh YmxlUmVjZWl2ZXIuaAorICoJICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisg KgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBS ZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVk ZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKworI2lmbmRlZiBTVkFSSUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVD RUlWRVJfSAorCisjaW5jbHVkZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIg KkNyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkv KiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv ZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAxODJhNjk1 NmJiLi5iNDQ2NGVkYzIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjE3LDYgKzYxNywxOCBA QCB0eXBlZGVmIHN0cnVjdCBBc3luY1JlcXVlc3QKIAkJCQkJCQkJICogdHVwbGVzKSAqLwogfSBB c3luY1JlcXVlc3Q7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqIFNlc3Npb25WYXJpYWJsZVZh bHVlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IFNlc3Npb25WYXJp YWJsZVZhbHVlCit7CisJT2lkCQkJdmFyaWQ7CisJT2lkCQkJdHlwaWQ7CisJYm9vbAkJaXNudWxs OworCURhdHVtCQl2YWx1ZTsKK30gU2Vzc2lvblZhcmlhYmxlVmFsdWU7CisKIC8qIC0tLS0tLS0t LS0tLS0tLS0KICAqCSAgRVN0YXRlIGluZm9ybWF0aW9uCiAgKgpAQCAtNjY5LDYgKzY4MSwxMCBA QCB0eXBlZGVmIHN0cnVjdCBFU3RhdGUKIAlQYXJhbUxpc3RJbmZvIGVzX3BhcmFtX2xpc3RfaW5m bzsJLyogdmFsdWVzIG9mIGV4dGVybmFsIHBhcmFtcyAqLwogCVBhcmFtRXhlY0RhdGEgKmVzX3Bh cmFtX2V4ZWNfdmFsczsJLyogdmFsdWVzIG9mIGludGVybmFsIHBhcmFtcyAqLwogCisJLyogU2Vz c2lvbiB2YXJpYWJsZXMgaW5mbzogKi8KKwlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7 CQkvKiBudW1iZXIgb2YgdXNlZCB2YXJpYWJsZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAq ZXNfc2Vzc2lvbl92YXJpYWJsZXM7CS8qIGFycmF5IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwog CVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5RW52OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwog CiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTogKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAw ZTA4Mjk2YjQzLi43NzhkYjZhZDRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiAr MTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlv biBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKKwkvKiB0YXJnZXQgdmFyaWFi bGUgb2YgTEVUIHN0YXRlbWVudCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCiAJLyogaGFz IGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25z IGluIHRsaXN0ICovCkBAIC0xNjIsNiArMTY1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAli b29sCQloYXNSb3dTZWN1cml0eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJ LyogcGFyc2VyIGhhcyBhZGRlZCBhbiBSVEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBS VEUgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIAkvKiBpcyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlp c1JldHVybiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTIxMDAsNiAr MjEwNSwxOCBAQCB0eXBlZGVmIHN0cnVjdCBNZXJnZVN0bXQKIAlQYXJzZUxvYwlzdG10X2xlbjsJ CS8qIGxlbmd0aCBpbiBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCiB9IE1lcmdl U3RtdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAorewor CU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAq LworCU5vZGUJICAgKnF1ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJaW50CQkJbG9j YXRpb247Cit9IExldFN0bXQ7CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxl Y3QgU3RhdGVtZW50CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVz LmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAppbmRleCBhZGQwZjllNDVmLi5lYTFm NzZkMGZiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTYzLDYgKzE2Myw5IEBAIHR5cGVkZWYg c3RydWN0IFBsYW5uZXJHbG9iYWwKIAogCS8qIHBhcnRpdGlvbiBkZXNjcmlwdG9ycyAqLwogCVBh cnRpdGlvbkRpcmVjdG9yeSBwYXJ0aXRpb25fZGlyZWN0b3J5IHBnX25vZGVfYXR0cihyZWFkX3dy aXRlX2lnbm9yZSk7CisKKwkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlM aXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBtYWNybyBm b3IgZmV0Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2RlICovCkBA IC01MDgsNiArNTExLDggQEAgc3RydWN0IFBsYW5uZXJJbmZvCiAJYm9vbAkJcGxhY2Vob2xkZXJz RnJvemVuOwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1cnNpdmUgV0lUSCBpdGVtICovCiAJ Ym9vbAkJaGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vzc2lvbiB2YXJpYWJsZXMgd2VyZSB1 c2VkICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCS8qCiAJICogVGhlIHJhbmdl dGFibGUgaW5kZXggZm9yIHRoZSBSVEVfR1JPVVAgUlRFLCBvciAwIGlmIHRoZXJlIGlzIG5vCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25v ZGVzL3BsYW5ub2Rlcy5oCmluZGV4IDUyZjI5YmNkYjYuLjQ1NDkzNjZjZjUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bs YW5ub2Rlcy5oCkBAIC00OSw3ICs0OSw3IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAK IAlOb2RlVGFnCQl0eXBlOwogCi0JQ21kVHlwZQkJY29tbWFuZFR5cGU7CS8qIHNlbGVjdHxpbnNl cnR8dXBkYXRlfGRlbGV0ZXxtZXJnZXx1dGlsaXR5ICovCisJQ21kVHlwZQkJY29tbWFuZFR5cGU7 CS8qIHNlbGVjdHxsZXR8aW5zZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2V8dXRpbGl0eSAqLwogCiAJ dWludDY0CQlxdWVyeUlkOwkJLyogcXVlcnkgaWRlbnRpZmllciAoY29waWVkIGZyb20gUXVlcnkp ICovCiAKQEAgLTk0LDYgKzk0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAogCU5v ZGUJICAgKnV0aWxpdHlTdG10OwkvKiBub24tbnVsbCBpZiB0aGlzIGlzIHV0aWxpdHkgc3RtdCAq LwogCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFC TEUgUGFyYW1zICovCisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291cmNlIHN0cmluZyAo Y29waWVkIGZyb20gUXVlcnkpICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQg bG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxl bmd0aCBpbiBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oCmluZGV4IGIwZWYxOTUyZTguLjRiMjQyNGQ2ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBA IC0zNjEsNiArMzYxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBgcGFy YW1pZCcgZmllbGQgY29udGFpbiB0aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJCQl0 aGUgbG93LW9yZGVyIDE2IGJpdHMgY29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlzIHR5 cGUKICAqCQkJCW9mIFBhcmFtIGlzIGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVyaW5n IHBsYW5uaW5nLikKKyAqCisgKgkJUEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEg cmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2YXJpYWJsZQorICoJCQkJKHBhcmFtaWQgaG9sZHMgdGhl IHZhcmlhYmxlJ3MgT0lEKS4KICAqLwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzY4 LDYgKzM3MSw3IEBAIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFN X1NVQkxJTkssCiAJUEFSQU1fTVVMVElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtp bmQ7CiAKIHR5cGVkZWYgc3RydWN0IFBhcmFtCkBAIC0zODAsNiArMzg0LDggQEAgdHlwZWRlZiBz dHJ1Y3QgUGFyYW0KIAlpbnQzMgkJcGFyYW10eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCS8qIE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAq LwogCU9pZAkJCXBhcmFtY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK KwkvKiBPSUQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpZiBpdCBpcyB1c2VkICovCisJT2lkCQkJcGFy YW12YXJpZDsKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNl TG9jCWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXpl ci9wbGFubWFpbi5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKaW5kZXggOTMx MzcyNjFlNC4uNjEzNDFjNTBjZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3Bs YW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEyNCw0 ICsxMjQsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBs YW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5 cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29s IGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5m byAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz KFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCA1NjY3MGU2NWIxLi5hZWZlNTFmMzM1IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC0yNTYsNiArMjU2LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFLUFJP T0YsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0Iiwg TEVBU1QsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0Iiwg TEVGVCwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImxl dCIsIExFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGV2 ZWwiLCBMRVZFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi bGlrZSIsIExJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJsaW1pdCIsIExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCmluZGV4IDIzNzVlOTVjMTAuLmMxMWZkYjNkOTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX25vZGUuaApAQCAtODIsNiArODIsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAog CUVYUFJfS0lORF9DT1BZX1dIRVJFLAkJLyogV0hFUkUgY29uZGl0aW9uIGluIENPUFkgRlJPTSAq LwogCUVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OLCAvKiBnZW5lcmF0aW9uIGV4cHJlc3Npb24g Zm9yIGEgY29sdW1uICovCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZh bHVlICovCisJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQg dGFyZ2V0ICovCisJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCiB9IFBh cnNlRXhwcktpbmQ7CiAKIApAQCAtMjQ0LDYgKzI0Niw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJ Ym9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9o YXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJTm9kZQkg ICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3Vu ZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9p bmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDk0NjVkZjdiMmYuLmE5MjFhZjI0ODYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19H UkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFO VF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2Us IGZhbHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3JjL2lu Y2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXggYTNkNTIxYjZmOS4uMzhjYzg3ZjRlNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgK QEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJCQkvKiBy ZXN1bHRzIHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVldWUsCQkJ CS8qIHJlc3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2VyaWFsaXpl LAkJLyogcmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVzdFZhcmlh YmxlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBDb21tYW5k RGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggZTMxMjA2 ZTdmNC4uOGI1ZGYxZDViNyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDcgKzgwOTksOCBA QCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0 Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8 fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKKwkJ cXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGQw NzgxN2JiMTAuLmQzZDgzMDZiYTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMzYsMyArMTM2LDkyOCBAQCBEUk9QIFZBUklBQkxF IHZhcjE7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKIERST1AgUk9MRSByZWdyZXNz X3ZhcmlhYmxlX3IyOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CistLSBjaGVj ayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeChpbnQp CitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbDsKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQk IFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklORVI7CitDUkVB VEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQg QkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQg QkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkg REVGSU5FUjsKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeCgyMCk7Cisgc3Fs ZnggCistLS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKKyBz cWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3Nx bGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAorKDEgcm93KQor CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAzMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorU0VUIFJPTEUgVE8g cmVncmVzc19ub293bmVyOworU0VMRUNUIHZhcjE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCBzcWxmeCgyMCk7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwg ZnVuY3Rpb24gInNxbGZ4IiBzdGF0ZW1lbnQgMQorU0VMRUNUIHBscGdzcWxmeCgyMCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBwbHBn c3FsZngoaW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg c3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAgIDMwCisoMSByb3cp CisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBscGdzcWxmeF9zZCAKKy0tLS0tLS0tLS0t LS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CistLSBzaG91bGQg YmUgb2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeCgyMCk7Cisgc3FsZnggCist LS0tLS0tCisgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisgcGxwZ3Nx bGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVG QVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngoaW50KTsKK0RS T1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4X3NkKGludCk7 CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworRFJPUCBST0xFIHJlZ3Jlc3Nfbm9v d25lcjsKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXdzCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBudW1lcmljOworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JFQVRFIFZJRVcgdGVz dF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVzdWx0IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3Vs dCAKKy0tLS0tLS0tCisgICAgICAwCisgICAgICAwCisoMiByb3dzKQorCitMRVQgdmFyMSA9IDMu MTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgNC4x NAorICAgNS4xNAorKDIgcm93cykKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKK1NFTEVD VCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgICAwCisgICAgICAw CisoMiByb3dzKQorCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsK KyByZXN1bHQgCistLS0tLS0tLQorICAgNC4xNAorICAgNS4xNAorKDIgcm93cykKKworLS0gc2hv dWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0VSUk9SOiAgY2Fubm90 IGRyb3Agc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHZpZXcgdGVzdF92aWV3IGRlcGVuZHMgb24gc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50 IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FE RTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyB0ZXN0X3ZpZXcKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0OworLS0gdXNlIHZhcmlh YmxlcyBpbiBTUUwgZnVuY3Rpb25zCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDEo dmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMSB8fCAnLCAnIHx8ICQx ICQkIExBTkdVQUdFIHNxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MiggdmFy Y2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAnLCAnIHx8ICQxICQk IExBTkdVQUdFIHNxbDsKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CitT RUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisgICAgICBzcWxmeDEgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tCisgc3RyMSwgc3RyMiwgSGVsbG8KKygxIHJvdykKKworLS0gaW5saW5p bmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngx KHNxbGZ4MignSGVsbG8nKSk7CisgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFJlc3VsdAorICAgT3V0cHV0OiBzcWxmeDEoc3FsZngyKCdIZWxs byc6OmNoYXJhY3RlciB2YXJ5aW5nKSkKKygyIHJvd3MpCisKK0RST1AgRlVOQ1RJT04gc3FsZngx KHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBhY2Nlc3MgZnJvbSBjYWNoZWQgcGxhbnMg c2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lO IFJFVFVSTiB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK3NldCBwbGFuX2NhY2hlX21v ZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdz cWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAzLjE0CisoMSByb3cpCisK K0xFVCB2YXIxID0gMy4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAor LS0tLS0tLS0tLS0KKyAgICAgIDYuMjgKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor LS0gZGVwZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB3b3JrCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBudW1lcmljOworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBn c3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgOS40MgorKDEgcm93KQor CitMRVQgdmFyMSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAK Ky0tLS0tLS0tLS0tCisgICAgIDEyLjU2CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KCk7CitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFV TFQ7CistLSB1c2FnZSBMRVQgc3RhdGVtZW50IGluIHBscGdzcWwgc2hvdWxkIHdvcmsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKK0RP ICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJTiAxLi4xMAor ICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5E IExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQk OworTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4LDksMTB9CitEUk9QIFZB UklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBDQUxMIHN0YXRlbWVudCBpcyBu b3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZh cmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50Owor Q1JFQVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScs IGFyZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgbm90IGNyYXNoIChidXQg aXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsg RU5EICQkOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFy Z3VtZW50CitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYpIgorUEwvcGdTUUwgZnVu Y3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKK0RST1AgUFJPQ0VEVVJFIHAo aW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBw b3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUg ZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9 IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKy0tIHNob3VsZCBmYWlsCitF WEVDVVRFIHB0ZXN0KHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2Vk IGFzIGFuIGFyZ3VtZW50CitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJQUJMRSB2OworLS0g dGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBw aSgpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBkb2Vzbid0IGV4aXN0CitMSU5F IDE6IExFVCB2YXIxID0gcGkoKTsKKyAgICAgICAgICAgIF4KK1NFTEVDVCB2YXIxOworRVJST1I6 ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAg ICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7 CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyAgICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tCisgMy4xNDE1OTI2NTM1ODk3OQorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggVE8g c3ZhcnRlc3Q7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VMRUNU IHZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDEzLjE0MTU5 MjY1MzU4OTgKKygxIHJvdykKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFy dGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHN2YXJ0ZXN0LnZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CistLSB2YXJpYWJs ZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5T QUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1JVDsKK1NFTEVDVCB2 YXIxOworIHZhcjEgIAorLS0tLS0tLQorIGhlbGxvCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg dmFyMTsKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGlu dCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50X2RvbWFpbjsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgZG9tYWlu IGludF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0tIHNob3VsZCBiZSBvawor TEVUIHZhcjEgPSAxMDAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIDEwMDAKKygx IHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CitFUlJPUjogIHZhbHVlIGZv ciBkb21haW4gaW50X2RvbWFpbiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJpbnRfZG9tYWlu X2NoZWNrIgorLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgZG9tYWlu IGludF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0tIG5vdGUgLSBkb21haW4g ZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCitEUk9QIFZBUklB QkxFIHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworLS0gdGhlIGV4cHJlc3Npb24gc2hv dWxkIHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRtdWx0aXJh bmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIxID0gJ3si e1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0gPSAne1s1 LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgICAgIHZhcjEgICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQorKDEgcm93KQorCistLUl0 IHNob3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSBO VUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9 JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CisKKyAgUkFJU0UgTk9USUNF ICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUs OCksWzEyLDEwMCl9In0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRl c3QgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOwor TEVUIHN2YXJ0ZXN0LnZhcjEgPSAxMDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyB2YXIxIAor LS0tLS0tCisgIDEwMAorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFy dGVzdDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RS T1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIg b3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBmb28KK2Ryb3Ag Y2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xF VCB2YXIyID0gJ3t9Jzo6aW50W107CitMRVQgdmFyMlt2YXIxXSA9IDA7CitTRUxFQ1QgdmFyMjsK KyAgIHZhcjIgICAgCistLS0tLS0tLS0tLQorIFsyOjJdPXswfQorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjEsIHZhcjI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUg VkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6 aW50W107CitTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisge30KKygxIHJvdykKKworRFJP UCBWQVJJQUJMRSB2YXIxLCB2YXIyOworLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRp c2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitXSVRIIHggQVMg KExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5bnRheCBlcnJvciBh dCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVD VCAqIEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK0xFVCB2 YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0g Z2VuZXJhdGVfc2VyaWVzKDEsIDIpOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG1vcmUg dGhhbiBvbmUgcm93CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKK0VSUk9SOiAg ZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBjb21w b3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHggaW50LCB5IGludCwgeiBu dW1lcmljKDEwLDIpKTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFS SUFCTEUgdjIgQVMgc3ZfeHl6OworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVUIHYyID0gKDEw LCAyMCwgMy4xNCAqIDEwKTsKKy0tIHNob3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFyZSBwcmVwYXJl ZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworU0VMRUNUIHYxOworICAgICB2MSAgICAgCist LS0tLS0tLS0tLS0KKyAoMSwyLDMuMDApCisoMSByb3cpCisKK1NFTEVDVCB2MjsKKyAgICAgIHYy ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMxLjQwKQorKDEgcm93KQorCitTRUxF Q1QgKHYxKS4qOworIHggfCB5IHwgIHogICAKKy0tLSstLS0rLS0tLS0tCisgMSB8IDIgfCAzLjAw CisoMSByb3cpCisKK1NFTEVDVCAodjIpLio7CisgeCAgfCB5ICB8ICAgeiAgIAorLS0tLSstLS0t Ky0tLS0tLS0KKyAxMCB8IDIwIHwgMzEuNDAKKygxIHJvdykKKworU0VMRUNUIHYxLnggKyB2MS56 OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICA0LjAwCisoMSByb3cpCisKK1NFTEVDVCB2 Mi54ICsgdjIuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICA0MS40MAorKDEgcm93KQor CistLSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdjIueDsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdjIKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitE Uk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94eXo7CitE Uk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50 LCBiIG51bWVyaWMsIGMgdGV4dCk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgdDE7CitMRVQgdjEg PSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxFQ1QgdjE7CisgICAgICAgICAgICAgdjEgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEsMy4xNDE1OTI2NTM1ODk3 OSxoZWxsbykKKygxIHJvdykKKworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOworICAg ICAgICB2MSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIsaGVsbG8p CisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdAorTEVU IHYxLnggPSAxMDsKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1u ICJ2MSIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKK0xJ TkUgMTogTEVUIHYxLnggPSAxMDsKKyAgICAgICAgICAgIF4KKy0tIHNob3VsZCBmYWlsLCBkb24n dCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKK0VSUk9S OiAgYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkIDMgY29sdW1ucworTElORSAxOiBMRVQg djEgPSAoTlVMTDo6dDEpLio7CisgICAgICAgICAgICAgICAgICBeCistLSBhbGxvdyBEUk9QIG9y IEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRlIHR5cGVzCistLSBzaG91bGQgYmUgb2sKK0FMVEVS IFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsKK1NFTEVDVCB2MTsKKyAgICAgdjEgICAgICAKKy0t LS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyKQorKDEgcm93KQorCistLSBzaG91bGQgYmUgb2sKK0FM VEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKK1NFTEVDVCB2MTsKKyAgICAgIHYxICAg ICAgCistLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIsKQorKDEgcm93KQorCitMRVQgdjEgPSAo MTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKyAgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0t LQorICgxMCwxMC4zLDIwKQorKDEgcm93KQorCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUg dDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVDVCB2MTsKKyAgIHYxICAgIAorLS0tLS0tLS0tCisg KDEwLDIwKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNo YW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsKK0VSUk9SOiAg Y2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52 MSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVFlQRSB0MTsKKy0tIHRoZSB0YWJs ZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBvc2l0ZSB0eXBlIHRvbworQ1JFQVRFIFRBQkxFIHN2 YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBjIGRhdGUpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgc3Zhcl90ZXN0OworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxF Q1QgdmFyMTsKKyAgICAgICAgICAgICAgIHZhcjEgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAsMy4xNDE1OTI2NTM1ODk3OSwwNS0yNi0yMDIz KQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCBkdWUgZGVwZW5kZW5jeQorQUxURVIgVEFCTEUg c3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4dDsKK0VSUk9SOiAgY2Fubm90IGFsdGVy IHRhYmxlICJzdmFyX3Rlc3QiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEi IHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0VSUk9SOiAg Y2Fubm90IGRyb3AgdGFibGUgc3Zhcl90ZXN0IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgc3Zh cl90ZXN0CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50 IG9iamVjdHMgdG9vLgorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7 CistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJp Y1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFdID0gMTAuMTsKK1NF TEVDVCB2YXIxOworICAgIHZhcjEgICAgCistLS0tLS0tLS0tLS0KKyB7MTAuMSwyLjF9CisoMSBy b3cpCisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitMRVQg dmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CitFUlJPUjogIHNldC1yZXR1cm5pbmcg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBMRVQKK0xJTkUgMTogTEVUIHZhcjFbZ2VuZXJh dGVfc2VyaWVzKDEsMyldID0gMTAwOworICAgICAgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxF IHZhcjE7CistLSBhcnJheXMgaW5zaWRlIGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEg bnVtZXJpYywgYiBudW1lcmljW10pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQg dmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAuMF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxF Q1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLQorICgx MC4yLCJ7MC4wLDAuMH0iKQorKDEgcm93KQorCitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVD VCB2YXIxOworICAgICAgICB2YXIxICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAo MTAuMiwiezEwLjMsMC4wfSIpCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag VFlQRSB0MTsKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxl bF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5f cGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19w ZXJfZ2F0aGVyID0gMjsKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFC TEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9N IGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFS SUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAor U0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworIGNvdW50 IAorLS0tLS0tLQorICAgMTAwCisoMSByb3cpCisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBu b3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJP TSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgICAgICAgICAgICBRVUVSWSBQTEFOICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBZ2dyZWdh dGUKKyAgIC0+ICBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAgIEZpbHRlcjogKChhICUg MTApID0gemVybykKKygzIHJvd3MpCisKK0xFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9N IHN2YXJfdGVzdCk7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworIHpl cm8gCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFs bGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVT RVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKy0tIHRoZSByZXN1bHQgb2Ygdmll dyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVD VCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3Owor IHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxl bF9xdWVyeSBUTyBvbjsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0t LS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsK K0RST1AgVklFVyB2YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJM RSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGludCwgdiBpbnQpOworTEVU IHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitT RUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAgMSB8IDEw MAorKDEgcm93KQorCitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0gdmFy aWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0rLS0tLS0KKyAg MSB8IDIwMAorKDEgcm93KQorCitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJp ZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgdiAKKy0tLS0rLS0tCisoMCByb3dz KQorCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFyaWQ7CistLSB2aXNp YmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19j bGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7CisgcmVsbmFtZSAgCist LS0tLS0tLS0tCisgcGdfY2xhc3MKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JF QVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMp OworQ1JFQVRFIFRZUEUgeHh0eXBlIEFTIChhdmFyIGludCk7CitDUkVBVEUgVkFSSUFCTEUgeHh0 YWIgQVMgeHh0eXBlOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKy0tIGl0IGlzIGFt YmlndW91cywgYnV0IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VMRUNUIHh4dGFiLmF2YXIgRlJP TSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMz MworICAgMTAKKygyIHJvd3MpCisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7 CistLSBzaG91bGQgYmUgb2ssIHNlZSB0aGUgdGFibGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7 CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgICAg CisgICAgIAorKDIgcm93cykKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKK1NFTEVDVCB4eHRhYi5h dmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQor CitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFyOworRFJPUCBUWVBFIHh4dHlwZTsKK0RST1AgVEFC TEUgeHh0YWI7CistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5 IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMg aW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOwor Q1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyBwdWJs aWMuc3ZhciBWQUxVRVMoMTAsIDIwKTsKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAw KTsKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMu c3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitTRUxFQ1Qg c3Zhci5hIEZST00gcHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VM RUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8 IDIwCisoMSByb3cpCisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAg ICAgc3ZhciAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQor CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitT RUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0t LS0tCisgMTAwIHwgMjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFk b3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7 CitFUlJPUjogIGNvbHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1 YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBi ZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4 OworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJs aWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00g cHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKwor LS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAgICAgCist LS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMu c3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2 YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAg fCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJv cgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1u IHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9N IHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFz CitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0K KyAzMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVEFCTEUg cHVibGljLnN2YXI7CitEUk9QIFRZUEUgcHVibGljLnN2YXJfdHlwZTsKK0NSRUFURSBUWVBFIGFi IEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsK K0NSRUFURSBUQUJMRSB2X2FiIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitJTlNFUlQgSU5UTyB2 X2FiIFZBTFVFUygxMCwyMCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5h IEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitDUkVBVEUgU0NIRU1BIHZf YWI7CitDUkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFTIGludGVnZXI7CistLSB3ZSBzaG91bGQgc2Vl IHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7 CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CitDUkVBVEUgVFlQRSB0 X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworU0VUIHNlYXJjaF9w YXRoIFRPIHB1YmxpYzsKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVU IHh4eF9hbSA9IFJPVygxMCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4 X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0u YiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CistLSBzaG91bGQgYmUgc3Rp bGwgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cp CisKKy0tIHNob3VsZCBmYWlsLCB0aGUgcmVmZXJlbmNlIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NF TEVDVCB4eHhfYW0uYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInh4eF9h bS5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUIHh4eF9hbS5iOworICAgICAgICAgICAg ICAgXgorLS0gZW5oYW5jZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMu eHh4X2FtLmI7CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIDoiREJOQU1FIi54 eHhfYW0uYjsKKyBiICAKKy0tLS0KKyAyMAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgeHh4X2Ft KGIgIGludCk7CitJTlNFUlQgSU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsKKy0tIHdlIHNob3VsZCBz ZWUgdGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKKyBiICAKKy0tLS0KKyAxMAor KDEgcm93KQorCitTRUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisgYiAgCistLS0tCisgMTAKKygx IHJvdykKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07 CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworQ1JFQVRFIFND SEVNQSA6IkRCTkFNRSI7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRC TkFNRSIgQVMgdF9hbV90eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIu YiBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworLS0gc2hvdWxkIGJlIGFt YmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJl ZmVyZW5jZSAicmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdy ZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0b28K K1NFTEVDVCA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg cmVmZXJlbmNlICJyZWdyZXNzaW9uLnJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6 IFNFTEVDVCAicmVncmVzc2lvbiIuInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCitD UkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50KTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoi REJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworIGIgCistLS0KKygwIHJvd3MpCisKK0RST1AgVEFC TEUgOiJEQk5BTUUiOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9Q IFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJE Qk5BTUUiOworUkVTRVQgc2VhcmNoX3BhdGg7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKaW5kZXggMjdlMmRiZTZhMC4uZDI2OTI1OTRkZSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTQ1LDMgKzE0NSw2NDIgQEAg RFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJs ZV9yMjsKIAogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKKy0tIGNoZWNrIGFj Y2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50OworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeChpbnQp CitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbDsKKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQgQVMg JCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJVFkgREVGSU5FUjsKKwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFT ICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KQorUkVUVVJOUyBpbnQg QVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWwgU0VD VVJJVFkgREVGSU5FUjsKKworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKK1NFTEVDVCBw bHBnc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKKy0tIHNob3VsZCBmYWls CitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CisKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNx bGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKworU0VUIFJPTEUgVE8g REVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25l cjsKKworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CisKK1NF TEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworCitT RVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBz cWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04g c3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CisKK0RST1Ag Uk9MRSByZWdyZXNzX25vb3duZXI7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW5zaWRlIHZpZXdzCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCistLSB1c2UgdmFyaWFibGVzIGluIHZp ZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEgKyB2LCAw KSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNUICogRlJP TSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsK KworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKKworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7 CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKworLS0gc2hvdWxk IGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9r CitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4 dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW4gU1FM IGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpCitS RVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFH RSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MiggdmFyY2hhcikKK1JF VFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdF IHNxbDsKKworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9ICdzdHIyJzsKKworU0VMRUNU IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCistLSBpbmxpbmluZyBpcyBibG9ja2VkCitFWFBM QUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsK KworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2 YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKworLS0g YWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngoKQor UkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIxOyBFTkQgJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisK K0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKK0xFVCB2YXIxID0gMy4xNCAq IDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gZGVw ZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdzcWxm eCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKKworc2V0IHBsYW5fY2Fj aGVfbW9kZSBUTyBERUZBVUxUOworCistLSB1c2FnZSBMRVQgc3RhdGVtZW50IGluIHBscGdzcWwg c2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIG51bWVyaWNbXTsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIyID0gJ3t9Jzo6aW50W107 CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgICAgTEVUIHZh cjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICdyZXN1bHQgYXJyYXk6 ICUnLCB2YXIyOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFC TEUgdmFyMjsKKworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJl cXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24g ZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKKworQ1JFQVRFIFBST0NFRFVSRSBwKGFy ZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdVQUdF IHBscGdzcWw7CisKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHll dCkKK0NBTEwgcCh2KTsKKworRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CisKK0RST1Ag UFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKworLS0gRVhFQ1VURSBzdGF0ZW1l bnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2 IGludDsKK0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOworCist LSBzaG91bGQgZmFpbAorRVhFQ1VURSBwdGVzdCh2KTsKKworREVBTExPQ0FURSBwdGVzdDsKK0RS T1AgVkFSSUFCTEUgdjsKKworLS0gdGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFy dGVzdDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CisKKy0tIHNo b3VsZCBmYWlsCitMRVQgdmFyMSA9IHBpKCk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJl IG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKwor U0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gcGkoKSArIDEwOworU0VMRUNUIHZhcjE7CisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBT Q0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsK KworLS0gdmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJ TjsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01N SVQ7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3Qgb2Yg ZG9tYWlucworQ1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAo VkFMVUUgPiAxMDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKworLS0g c2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0g MTAwMDsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAxMDsKKwor LS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworLS0gbm90ZSAtIGRvbWFpbiBkZWZh dWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKKworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKworLS0gdGhlIGV4cHJlc3Npb24gc2hv dWxkIHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRtdWx0aXJh bmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIxID0gJ3si e1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0gPSAne1s1 LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKworLS1JdCBzaG91bGQgd29yayBpbiBwbHBn c3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAgTEVUIHZhcjEgPSAn eyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExFVCB2YXIxWzJdID0g J3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7Cisk JDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBzdmFy dGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hfcGF0 aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworCitTRUxFQ1QgdmFyMTsKKworRFJPUCBTQ0hFTUEgc3Zh cnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6 aW50W107CisKK0xFVCB2YXIyW3ZhcjFdID0gMDsKKworU0VMRUNUIHZhcjI7CisKK0RST1AgVkFS SUFCTEUgdmFyMSwgdmFyMjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRF IFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9 Jzo6aW50W107CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisK Ky0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGluIENURQorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNU ICogRlJPTSB4OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwg Mik7CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworCistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHgg aW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHN2 X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CisKK0xFVCB2MSA9ICgxLCAyLCAz LjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CisKKy0tIHNob3VsZCB3b3JrIHRv byAtIHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworCitTRUxF Q1QgdjE7CitTRUxFQ1QgdjI7CitTRUxFQ1QgKHYxKS4qOworU0VMRUNUICh2MikuKjsKKworU0VM RUNUIHYxLnggKyB2MS56OworU0VMRUNUIHYyLnggKyB2Mi56OworCistLSBhY2Nlc3MgdG8gY29t cG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy X3Rlc3Rfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBz aG91bGQgZmFpbAorU0VMRUNUIHYyLng7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1Ag VkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworRFJPUCBUWVBFIHN2X3h5ejsKK0RST1Ag Uk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwg YiBudW1lcmljLCBjIHRleHQpOworCitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgdDE7CitMRVQgdjEg PSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxFQ1QgdjE7CitMRVQgdjEuYiA9IDEwLjIyMjI7CitT RUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdAorTEVU IHYxLnggPSAxMDsKKworLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBx dWVyeQorTEVUIHYxID0gKE5VTEw6OnQxKS4qOworCistLSBhbGxvdyBEUk9QIG9yIEFERCBBVFRS SUJVVEUgb24gY29tcG9zaXRlIHR5cGVzCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEg RFJPUCBBVFRSSUJVVEUgYzsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBU WVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7CisKK0xFVCB2MSA9ICgxMCwg MTAuMywgMjApOworU0VMRUNUIHYxOworCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEg RFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZhaWwsIGRpc2FsbG93 IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGMgVFlQRSBp bnQ7CisKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIHRoZSB0YWJsZSB0 eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBvc2l0ZSB0eXBlIHRvbworQ1JFQVRFIFRBQkxFIHN2YXJf dGVzdChhIGludCwgYiBudW1lcmljLCBjIGRhdGUpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg c3Zhcl90ZXN0OworCitMRVQgdmFyMSA9ICgxMCwgcGkoKSwgJzIwMjMtMDUtMjYnKTsKK1NFTEVD VCB2YXIxOworCistLSBzaG91bGQgZmFpbCBkdWUgZGVwZW5kZW5jeQorQUxURVIgVEFCTEUgc3Zh cl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4dDsKKworLS0gc2hvdWxkIGZhaWwKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHN2YXJf dGVzdDsKKworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4xLDIuMV07CitMRVQgdmFyMVsxXSA9IDEw LjE7CitTRUxFQ1QgdmFyMTsKKworLS0gTEVUIHRhcmdldCBkb2Vzbid0IGFsbG93IHNyZiwgc2hv dWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworCistLSBhcnJheXMgaW5zaWRlIGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUg dDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg dDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAuMF0pOworTEVUIHZhcjEuYSA9IDEw LjI7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmJbMV0gPSAxMC4zOworU0VMRUNUIHZhcjE7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKworLS0gRW5jb3VyYWdlIHVzZSBv ZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFs bGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAw OworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworCistLSB0ZXN0IG9u IHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCk7CitJTlNF UlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsK K0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxFIHplcm8gaW50OworTEVUIHplcm8g PSAwOworCistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAorU0VMRUNUIGNvdW50KCopIEZST00gc3Zh cl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCistLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90 IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00g c3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCitMRVQgemVybyA9IChTRUxFQ1QgY291bnQo KikgRlJPTSBzdmFyX3Rlc3QpOworCistLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6 ZXJvOworCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKworUkVT RVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNF VCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtl cnNfcGVyX2dhdGhlcjsKKworLS0gdGhlIHJlc3VsdCBvZiB2aWV3IHNob3VsZCBiZSBzYW1lIGlu IHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFy MSA9IDEwOworCitDUkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSwg MCkgQVMgcmVzdWx0OworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdfcGFy YWxsZWxfcXVlcnkgVE8gb247CisKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisKK1NFVCBkZWJ1 Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CisKK0RST1AgVklFVyB2YXIxdmlldzsKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGludDsKK0NSRUFURSBUQUJMRSBz dmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CisKK0xFVCB2YXJpZCA9IDE7CitJTlNFUlQgSU5UTyBz dmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CitV UERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBG Uk9NIHN2YXJfdGVzdDsKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBpZCA9IHZhcmlkOwor U0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworRFJPUCBW QVJJQUJMRSB2YXJpZDsKKworCistLSB2aXNpYmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMgc2hv dWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK1NF TEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9 ICdwZ19jbGFzcyc7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFRBQkxFIHh4dGFi KGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CisKK0NSRUFURSBU WVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0 eXBlOworCitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworCistLSBpdCBpcyBhbWJpZ3Vv dXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0 YWI7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworQ1JFQVRF IFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhl IHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklBQkxFIHh4dGFiOworCitTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFyOwor CitEUk9QIFRZUEUgeHh0eXBlOworCitEUk9QIFRBQkxFIHh4dGFiOworCistLSBUaGUgdmFyaWFi bGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJs aWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBw dWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOworCitDUkVBVEUgVEFCTEUgcHVibGljLnN2 YXIoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gcHVibGljLnN2YXIgVkFMVUVTKDEwLCAy MCk7CisKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAwKTsKKworLS0gc2hvdWxkIGJl IG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2 YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOwor CistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2 YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFk b3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7 CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBw dWJsaWMuc3ZhciB4OworCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qg c3Zhci4qIEZST00gcHVibGljLnN2YXI7CisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJs aWMuc3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsK KworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1Ymxp Yy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitT RUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisKK0RST1AgVkFSSUFCTEUg cHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1YmxpYy5z dmFyX3R5cGU7CisKK0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7CisK K0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworCitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRl Z2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBWQUxVRVMoMTAsMjApOworCistLSB3 ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworQ1JFQVRFIFND SEVNQSB2X2FiOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFTIGludGVnZXI7CisKKy0tIHdl IHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworCitEUk9QIFZBUklB QkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxF IHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CisKK0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAo YiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJs aWM7CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9 IFJPVygxMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKworQ1JFQVRFIFZB UklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKwor LS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2FtOworCistLSBzaG91bGQgZmFpbCwg dGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2FtLmI7CisKKy0t IGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5i OworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBp bnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7CisKKy0tIHdlIHNob3VsZCBzZWUg dGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKK1NFTEVDVCB4LmIgRlJPTSB4eHhf YW0geDsKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07 CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworCitDUkVBVEUg U0NIRU1BIDoiREJOQU1FIjsKKworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIu OiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5B TUUiLmIgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworCistLSBzaG91 bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5BTUUiLmI7CisKKy0tIHNob3VsZCBiZSBhbWJp Z3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworCitDUkVBVEUgVEFCTEUg OiJEQk5BTUUiKGIgaW50KTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIg RlJPTSA6IkRCTkFNRSI7CisKK0RST1AgVEFCTEUgOiJEQk5BTUUiOworCitEUk9QIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1F Ii46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CisKK1JFU0VUIHNlYXJjaF9wYXRo OwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA4YTZjN2RhNzhiLi5mOThhMjhkNTY5IDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTQ5OSw2ICsxNDk5LDcgQEAgTGFyZ2VPYmpl Y3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1lc0VudHJ5CiBMZXJwRnVuYworTGV0 U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVIYXNoS2V5CkBAIC0yNjA1LDYgKzI2 MDYsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lvbgogU2Vzc2lvbkJhY2t1 cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFsdWUKIFNldENvbnN0cmFp bnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3RyYWludFRyaWdnZXJEYXRh CkBAIC0yNzk1LDYgKzI3OTcsOSBAQCBTdXBwb3J0UmVxdWVzdFJvd3MKIFN1cHBvcnRSZXF1ZXN0 U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkKIFN1cHBvcnRSZXF1ZXN0V0Z1bmNN b25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlU3RhdGUKIFN5bgog U3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDcuMQoK --000000000000157aaf0628de9f56 Content-Type: text/x-patch; charset="US-ASCII"; name="v20241210-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20241210-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4hnnvun20 RnJvbSAyYmQyZWU2MTBmOGUxYzQxYzJhZGI1MjViM2ZiOTEwN2UwMTZkMzkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIxXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDM1ICsrLQogZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAg ICAgICB8ICAxNSArKwogZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAg ICAgIHwgICAzICsKIC4uLi9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCAg ICB8ICAyNiArLQogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAg IHwgMTc4ICsrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sICAgICAg ICAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCAg ICAgICAgICAgfCAgMTIgKy0KIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwg ICAgICAgICB8IDE0OSArKysrKysrKysrKwogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxl LnNnbWwgICAgICAgICAgIHwgMTE3ICsrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNn bWwgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0KIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbCAgICAgICAgICAgICAgICB8ICAxMyArCiBkb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21s ICAgICAgICAgICAgICAgICAgfCAgIDcgKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAg ICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jICAgICAg ICAgICAgICAgICAgfCAgNzcgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3ku YyAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAg ICAgICAgICAgICB8IDE1MCArKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3Rh ZGRyZXNzLmMgICAgICAgICAgIHwgMTIxICsrKysrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19zaGRlcGVuZC5jICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdf dmFyaWFibGUuYyAgICAgICAgICAgICB8IDI1MSArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3NlY2xhYmVsLmMgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgNDEgKysrCiBzcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAxMDUgKysrKysrKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAxMiArCiBzcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysKIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC91dGls cy9jYWNoZS9sc3lzY2FjaGUuYyAgICAgICAgICAgfCAxMTMgKysrKysrKysKIHNyYy9iaW4vcGdf ZHVtcC9jb21tb24uYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1 bXAvZHVtcHV0aWxzLmMgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9w Z19iYWNrdXBfYXJjaGl2ZXIuYyAgICAgICAgICB8ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAxOTUgKysrKysrKysrKysrKy0KIHNyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAxOSArKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICA2NCArKysrKwogc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNx bC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKysrKysrCiBzcmMvYmlu L3BzcWwvZGVzY3JpYmUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2Jpbi9w c3FsL2hlbHAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICA0MiArKy0KIHNyYy9pbmNsdWRl L2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8ICAgNCArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2RlZmF1bHRfYWNsLmggICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICA4MSArKysrKysKIHNyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNiArKwogc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21k dGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9hY2wu aCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2Nh Y2hlLmggICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv ZGVwZW5kZW5jeS5vdXQgICAgICB8ICAxNyArKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v aWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNx bC5vdXQgICAgICAgICAgICB8ICA1MCArKysrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCAxMzggKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9k ZXBlbmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNx bC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxNDcgKysrKysrKysrKwogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgICA0ICsKIDY2IGZpbGVzIGNoYW5nZWQsIDI1 NjkgaW5zZXJ0aW9ucygrKSwgMzIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRv Yy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CmluZGV4IGJmM2NlZTA4YTkuLjg3YjUzNzBhNDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0zNjksNiAr MzY5LDExIEBACiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy11c2VyLW1h cHBpbmciPjxzdHJ1Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFtZT48L2xpbms+PC9l bnRyeT4KICAgICAgIDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3JlaWduIHNlcnZlcnM8 L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1 Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24gdmFyaWFibGVzPC9l bnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxl PgpAQCAtOTc0Myw0ICs5NzQ4LDExOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICA8L3Rh YmxlPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICA8 dGl0bGU+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC90aXRsZT4KKworICA8 aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctdmFyaWFibGUiPgorICAgPHByaW1hcnk+cGdfdmFy aWFibGU8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFs b2cgPHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IHN0b3JlcyBpbmZvcm1hdGlv biBhYm91dAorICAgc2Vzc2lvbiB2YXJpYWJsZXMuCisgIDwvcGFyYT4KKworICA8dGFibGU+Cisg ICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+IENvbHVtbnM8L3Rp dGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRlbnRpZmllcgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lk PC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdHlw ZSI+PHN0cnVjdG5hbWU+cGdfdHlwZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRo ZSBPSUQgb2YgdGhlIHZhcmlhYmxlJ3MgZGF0YSB0eXBlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZQor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lc3BhY2U8L3N0cnVjdGZpZWxkPiA8 dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy1uYW1lc3BhY2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVzcGFjZTwvc3RydWN0bmFtZT48L2xp bms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVzcGFjZSB0aGF0IGNvbnRhaW5zIHRo aXMgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyb3duZXI8L3N0cnVj dGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBnX2F1dGhpZDwvc3RydWN0bmFtZT48 L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRoZSB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwv ZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQ0PC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1v ZDwvc3RydWN0ZmllbGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZpYyBkYXRhCisgICAgICAgc3VwcGxp ZWQgYXQgdmFyaWFibGUgY3JlYXRpb24gdGltZSAoZm9yIGV4YW1wbGUsIHRoZSBtYXhpbXVtCisg ICAgICAgbGVuZ3RoIG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlwZT4gY29sdW1uKS4gIEl0IGlzIHBh c3NlZCB0bworICAgICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQgZnVuY3Rpb25zIGFuZCBsZW5ndGgg Y29lcmNpb24gZnVuY3Rpb25zLgorICAgICAgIFRoZSB2YWx1ZSB3aWxsIGdlbmVyYWxseSBiZSAt MSBmb3IgdHlwZXMgdGhhdCBkbyBub3QgbmVlZCA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1 Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3Ry dWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5r ZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5hbWU+cGdfY29sbGF0aW9uPC9zdHJ1 Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9w YXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmluZWQgY29sbGF0aW9uIG9mIHRoZSB2 YXJpYWJsZSwgb3IgemVybyBpZiB0aGUgdmFyaWFibGUgaXMKKyAgICAgICBub3Qgb2YgYSBjb2xs YXRhYmxlIGRhdGEgdHlwZS4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyYWNsPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+YWNsaXRlbVtdPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgQWNjZXNzIHByaXZpbGVnZXM7IHNlZQorICAgICAgIDx4cmVmIGxpbmtl bmQ9InNxbC1ncmFudCIvPiBhbmQKKyAgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtcmV2b2tlIi8+ CisgICAgICAgZm9yIGRldGFpbHMKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgogPC9j aGFwdGVyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCmluZGV4IGRlYTA0ZDY0ZGIuLjAyNmY5NmE0NDIgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTE5OTMsNiAr MTk5Myw3IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgRm9y IHNlcXVlbmNlcywgdGhpcyBwcml2aWxlZ2UgYWxzbyBhbGxvd3MgdXNlIG9mIHRoZQogICAgICAg IDxmdW5jdGlvbj5jdXJydmFsPC9mdW5jdGlvbj4gZnVuY3Rpb24uCiAgICAgICAgRm9yIGxhcmdl IG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCisg ICAgICAgRm9yIHNlc3Npb24gdmFyaWFibGVzLCB0aGlzICBwcml2aWxlZ2UgYWxsb3dzIHRoZSBv YmplY3QgdG8gYmUgcmVhZC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8 L3Zhcmxpc3RlbnRyeT4KQEAgLTIwMjgsNiArMjAyOSw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3Vu dHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGZ1bmN0aW9uPnNldHZhbDwvZnVuY3Rpb24+IGZ1bmN0 aW9ucy4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHdy aXRpbmcgb3IgdHJ1bmNhdGluZyB0aGUKICAgICAgICBvYmplY3QuCisgICAgICAgRm9yIHNlc3Np b24gdmFyaWFibGVzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3MgdG8gc2V0IGEgdmFsdWUgdG8gdGhl CisgICAgICAgb2JqZWN0LgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwv dmFybGlzdGVudHJ5PgpAQCAtMjI3MSw3ICsyMjc0LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50 cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAog ICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJM RTwvbGl0ZXJhbD4gKGFuZCB0YWJsZS1saWtlIG9iamVjdHMpLAotICAgICAgIHRhYmxlIGNvbHVt bgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5WQVJJQUJMRTwvbGl0ZXJh bD4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93PgpAQCAtMjI4Niw3ICsy MjkwLDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0 ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9s aXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4sCi0gICAgICAgdGFibGUg Y29sdW1uCisgICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlZBUklBQkxFPC9s aXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0yNDcz LDYgKzI0NzgsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAg IDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8ZW50cnk+PGxpdGVy YWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeT48bGl0ZXJhbD5WQVJJQUJMRTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPnJ3PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+bm9u ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPlxkVis8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3Rh YmxlPgpAQCAtNTMyMyw2ICs1MzM0LDI2IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00g bWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgIDwv cGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0MSBpZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4K KyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxlczwvdGl0bGU+CisKKyAgIDxpbmRleHRlcm0gem9u ZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgICA8cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxl czwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmlt YXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBh cmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGRhdGFiYXNlIG9iamVjdHMgdGhhdCBjYW4g aG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhp c3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nlc3MKKyAgICBpcyBjb250cm9sbGVkIHZp YSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4K KyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUg PGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICA8L3Bh cmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgogICA8dGl0bGU+T3Ro ZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9m dW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IDhiODExMDZmYTIuLjlmNzcz ZGExYzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbApAQCAtMjU3NzgsNiArMjU3NzgsMTkgQEAgU0VMRUNUIHJlbG5hbWUgRlJP TSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxlKG9pZCk7CiAgICAgICAgIElzIHR5 cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KICAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAgICAgIDxlbnRyeSByb2xlPSJm dW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CisgICAgICAgIDxp bmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5wZ192YXJpYWJsZV9pc192aXNpYmxlPC9wcmlt YXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPnBnX3ZhcmlhYmxl X2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFyaWFibGU8L3BhcmFtZXRlcj4g PHR5cGU+b2lkPC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52 YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIElzIHNlc3Npb24g dmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sIGIvZG9jL3NyYy9zZ21sL2ds b3NzYXJ5LnNnbWwKaW5kZXggZjU0ZjI1YzFjNi4uZDBjYjUzNzYzYSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwK QEAgLTE2NjQsNiArMTY2NCwyMSBAQAogICAgPC9nbG9zc2RlZj4KICAgPC9nbG9zc2VudHJ5Pgog CisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zZXNzaW9uLXZhcmlhYmxlIj4KKyAgIDxnbG9z c3Rlcm0+U2Vzc2lvbiB2YXJpYWJsZTwvZ2xvc3N0ZXJtPgorICAgPGdsb3NzZGVmPgorICAgIDxw YXJhPgorICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9sZHMgYSB2YWx1 ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKKyAgICAgdmFsdWUgaXMgcHJpdmF0ZSB0byBlYWNo IHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KKyAgICAgUmVh ZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJvbGxlZCBieSBw cml2aWxlZ2VzLAorICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVjdHMuCisgICAg PC9wYXJhPgorICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIDx4cmVm IGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgICA8L3BhcmE+CisgICA8L2ds b3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNo YXJlZC1tZW1vcnkiPgogICAgPGdsb3NzdGVybT5TaGFyZWQgbWVtb3J5PC9nbG9zc3Rlcm0+CiAg ICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggZjViZTYzODg2Ny4uMmY2N2Rl M2UyMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtNDcsNiArNDcsNyBAQCBDb21wbGV0ZSBs aXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5U SVRZIGFsdGVyVHlwZSAgICAgICAgICBTWVNURU0gImFsdGVyX3R5cGUuc2dtbCI+CiA8IUVOVElU WSBhbHRlclVzZXIgICAgICAgICAgU1lTVEVNICJhbHRlcl91c2VyLnNnbWwiPgogPCFFTlRJVFkg YWx0ZXJVc2VyTWFwcGluZyAgIFNZU1RFTSAiYWx0ZXJfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFF TlRJVFkgYWx0ZXJWYXJpYWJsZSAgICAgIFNZU1RFTSAiYWx0ZXJfdmFyaWFibGUuc2dtbCI+CiA8 IUVOVElUWSBhbHRlclZpZXcgICAgICAgICAgU1lTVEVNICJhbHRlcl92aWV3LnNnbWwiPgogPCFF TlRJVFkgYW5hbHl6ZSAgICAgICAgICAgIFNZU1RFTSAiYW5hbHl6ZS5zZ21sIj4KIDwhRU5USVRZ IGJlZ2luICAgICAgICAgICAgICBTWVNURU0gImJlZ2luLnNnbWwiPgpAQCAtOTksNiArMTAwLDcg QEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJl Y3RvcnkuCiA8IUVOVElUWSBjcmVhdGVUeXBlICAgICAgICAgU1lTVEVNICJjcmVhdGVfdHlwZS5z Z21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXIgICAgICAgICBTWVNURU0gImNyZWF0ZV91c2VyLnNn bWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlck1hcHBpbmcgIFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFw cGluZy5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZVZhcmlhYmxlICAgICBTWVNURU0gImNyZWF0ZV92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVZpZXcgICAgICAgICBTWVNURU0gImNyZWF0 ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxv Y2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUgICAgICAgICAgICBTWVNURU0gImRlY2xhcmUu c2dtbCI+CkBAIC0xNDcsNiArMTQ5LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBz b3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBkcm9wVHlwZSAgICAgICAg ICAgU1lTVEVNICJkcm9wX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlciAgICAgICAgICAg U1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBkcm9wVXNlck1hcHBpbmcgICAgU1lT VEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGRyb3BWYXJpYWJsZSAgICAg ICBTWVNURU0gImRyb3BfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBkcm9wVmlldyAgICAgICAg ICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBlbmQgICAgICAgICAgICAgICAg U1lTVEVNICJlbmQuc2dtbCI+CiA8IUVOVElUWSBleGVjdXRlICAgICAgICAgICAgU1lTVEVNICJl eGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0 X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxl Z2VzLnNnbWwKaW5kZXggODlhYWNlYzRmYS4uMDQxYzc4ZDQzMiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCkBAIC01MSw2ICs1MSwxMCBAQCBH UkFOVCB7IHsgVVNBR0UgfCBDUkVBVEUgfQogICAgIE9OIFNDSEVNQVMKICAgICBUTyB7IFsgR1JP VVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJs ZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQogCitHUkFOVCB7IFNF TEVDVCB8IFVQREFURSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisg ICAgVE8geyBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFt ZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0K KwogUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgeyB7IFNFTEVDVCB8IElOU0VSVCB8 IFVQREFURSB8IERFTEVURSB8IFRSVU5DQVRFIHwgUkVGRVJFTkNFUyB8IFRSSUdHRVIgfCBNQUlO VEFJTiB9CiAgICAgWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CkBAIC04Myw2ICs4Nywx MiBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgICBPTiBTQ0hFTUFTCiAgICAgRlJP TSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9y ZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1Qg XQorCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRF IH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04gVkFSSUFCTEVTCisgICAg RlJPTSB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1l PC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBDQVNDQURFIHwgUkVTVFJJ Q1QgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xMTcsMTQgKzEyNywx NCBAQCBSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KICAgPHBhcmE+CiAgICBDdXJyZW50bHks CiAgICBvbmx5IHRoZSBwcml2aWxlZ2VzIGZvciBzY2hlbWFzLCB0YWJsZXMgKGluY2x1ZGluZyB2 aWV3cyBhbmQgZm9yZWlnbgotICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIGFuZCB0 eXBlcyAoaW5jbHVkaW5nIGRvbWFpbnMpIGNhbiBiZQotICAgYWx0ZXJlZC4gIEZvciB0aGlzIGNv bW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMgYW5kIHByb2NlZHVyZXMuCi0gICBU aGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+Uk9VVElO RVM8L2xpdGVyYWw+IGFyZQotICAgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuICAoPGxpdGVy YWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZAotICAgZ29pbmcgZm9yd2FyZCBhcyB0 aGUgc3RhbmRhcmQgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2VuCi0gICB0 b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTCByZWxlYXNlcywgb25seSB0aGUKLSAgIHdv cmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5vdCBw b3NzaWJsZSB0byBzZXQKLSAgIGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFuZCBw cm9jZWR1cmVzIHNlcGFyYXRlbHkuKQorICAgdGFibGVzKSwgc2VxdWVuY2VzLCBmdW5jdGlvbnMs IHR5cGVzIChpbmNsdWRpbmcgZG9tYWlucyksIGFuZCBzZXNzaW9uCisgICB2YXJpYWJsZXMgY2Fu IGJlIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdh dGVzCisgICBhbmQgcHJvY2VkdXJlcy4gIFRoZSB3b3JkcyA8bGl0ZXJhbD5GVU5DVElPTlM8L2xp dGVyYWw+IGFuZAorICAgPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGFyZSBlcXVpdmFsZW50 IGluIHRoaXMgY29tbWFuZC4KKyAgICg8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gaXMgcHJl ZmVycmVkIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkCisgICB0ZXJtIGZvciBmdW5jdGlv bnMgYW5kIHByb2NlZHVyZXMgdGFrZW4gdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBvc3RncmVTUUwK KyAgIHJlbGVhc2VzLCBvbmx5IHRoZSB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4g d2FzIGFsbG93ZWQuICBJdCBpcyBub3QKKyAgIHBvc3NpYmxlIHRvIHNldCBkZWZhdWx0IHByaXZp bGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikKICAgPC9wYXJh PgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmQ4NzU3MGU3ZDgKLS0tIC9kZXYvbnVsbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNzggQEAK KzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+Cisg PGluZGV4dGVybSB6b25lPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkFMVEVSIFZB UklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1h cnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5hbHRlcmluZzwvc2Vj b25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFM VEVSIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4K KyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgor IDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5BTFRFUiBWQVJJQUJMRTwv cmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+CisgICBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSBz ZXNzaW9uIHZhcmlhYmxlCisgIDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVm c3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xF IHwgQ1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBW QVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFNFVCBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3Jl cGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21t YW5kPkFMVEVSIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNoYW5nZXMgdGhlIGRlZmluaXRp b24gb2YgYW4KKyAgIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUuIFRoZXJlIGFyZSBzZXZlcmFs IHN1YmZvcm1zOgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAg IDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9u IHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFTkFNRTwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBjaGFuZ2VzIHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFVCBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gbW92ZXMgdGhlIHNlc3Npb24g dmFyaWFibGUgaW50byBhbm90aGVyIHNjaGVtYS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyAgPC9wYXJhPgor CisgIDxwYXJhPgorICAgT25seSB0aGUgb3duZXIgb3IgYSBzdXBlcnVzZXIgaXMgYWxsb3dlZCB0 byBhbHRlciBhIHNlc3Npb24gdmFyaWFibGUuCisgICBJbiBvcmRlciB0byBtb3ZlIGEgc2Vzc2lv biB2YXJpYWJsZSBmcm9tIG9uZSBzY2hlbWEgdG8gYW5vdGhlciwgdGhlIHVzZXIKKyAgIG11c3Qg YWxzbyBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUg bmV3IHNjaGVtYSAob3IKKyAgIGJlIGEgc3VwZXJ1c2VyKS4KKworICAgSW4gb3JkZXIgdG8gbW92 ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBvd25lcnNoaXAgZnJvbSBvbmUgcm9sZSB0byBhbm90aGVy LAorICAgdGhlIHVzZXIgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlciBv ZiB0aGUgbmV3CisgICBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgdGhlIDxs aXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0aGUgc2Vzc2lvbiB2YXJp YWJsZSdzIHNjaGVtYSAob3IgYmUgYSBzdXBlcnVzZXIpLiBUaGVzZSByZXN0cmljdGlvbnMKKyAg IGVuZm9yY2UgdGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbyBhbnl0aGluZyB5b3Ug Y291bGRuJ3QgZG8gYnkKKyAgIGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBzZXNzaW9uIHZh cmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PlBhcmFtZXRlcnM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICA8dmFyaWFibGVsaXN0PgorICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgVGhlIG5hbWUgKHBvc3NpYmx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIHRo ZSBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlCisgICAgICAgIHRvIGFsdGVyLgorICAgICAgIDwv cGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2 YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8 cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg ICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgor ICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNlciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2Yg dGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4K KyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuZXcg c2NoZW1hIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8 L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8L3ZhcmlhYmxlbGlzdD4KKyAg IDwvcGFyYT4KKyAgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVz PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSBhIHNlc3Npb24gdmFyaWFibGU6Cis8 cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBmb28gUkVOQU1FIFRPIGJvbzsKKzwvcHJv Z3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgb3du ZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bworICAg PGxpdGVyYWw+am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxF IGJvbyBPV05FUiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBUbyBjaGFuZ2UgdGhlIHNjaGVtYSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0 ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5wcml2YXRlPC9saXRlcmFsPjoKKzxw cm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1BIHByaXZhdGU7Cis8 L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2 YXJpYWJsZXMgYW5kIHRoaXMgY29tbWFuZCBpbiBwYXJ0aWN1bGFyIGFyZSBhIFBvc3RncmVTUUwg ZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MSBpZD0ic3Fs LWFsdGVydmFyaWFibGUtc2VlLWFsc28iPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisg IDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNx bC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3Qx PgorPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0M2M1NmIxMy4uMjFjZDgw ODE4ZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwKQEAgLTY1LDYgKzY1LDcgQEAgQ09NTUVOVCBPTgog ICBUUkFOU0ZPUk0gRk9SIDxyZXBsYWNlYWJsZT50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiBMQU5H VUFHRSA8cmVwbGFjZWFibGU+bGFuZ19uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUUklHR0VSIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiBP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+ IHwKICAgVFlQRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3Jl cGxhY2VhYmxlPiB8CisgIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5v YmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVklFVyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxlPgogfSBJUyB7IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zdHJpbmdfbGl0ZXJhbDwvcmVwbGFjZWFibGU+IHwgTlVMTCB9CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKaW5kZXggZWQ2OTI5OGNjYy4uZDJiYjI2NTIw OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwKQEAgLTEwMyw5ICsxMDMsMTAgQEAg Q1JFQVRFIFNDSEVNQSBJRiBOT1QgRVhJU1RTIEFVVEhPUklaQVRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3AKICAgICAgICAgc2NoZW1hLiBDdXJyZW50bHksIG9ubHkg PGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIFRBQkxFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRF IFZJRVc8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKICAgICAgICAgSU5ERVg8L2NvbW1hbmQ+ LCA8Y29tbWFuZD5DUkVBVEUgU0VRVUVOQ0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUKLSAg ICAgICAgVFJJR0dFUjwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhcmUg YWNjZXB0ZWQgYXMgY2xhdXNlcwotICAgICAgICB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFIFNDSEVN QTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMgbWF5Ci0gICAgICAgIGJlIGNyZWF0 ZWQgaW4gc2VwYXJhdGUgY29tbWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgorICAg ICAgICBUUklHR0VSPC9jb21tYW5kPiwgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29t bWFuZD5DUkVBVEUKKyAgICAgICAgVkFSSUFCTEU8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBj bGF1c2VzIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUKKyAgICAgICAgU0NIRU1BPC9jb21tYW5kPi4g T3RoZXIga2luZHMgb2Ygb2JqZWN0cyBtYXkgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZQorICAgICAg ICBjb21tYW5kcyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCiAgICAgICAgPC9wYXJhPgog ICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yMTQsNiArMjE1LDEx IEBAIENSRUFURSBWSUVXIGhvbGx5d29vZC53aW5uZXJzIEFTCiAgICBUaGUgPGxpdGVyYWw+SUYg Tk9UIEVYSVNUUzwvbGl0ZXJhbD4gb3B0aW9uIGlzIGEKICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3Jl U1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgogICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU aGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+ CiAgPC9yZWZzZWN0MT4KIAogIDxyZWZzZWN0MT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmIxMmI5ZmYyNzcK LS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s CkBAIC0wLDAgKzEsMTQ5IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRldmFyaWFibGUi PgorICA8cHJpbWFyeT5DUkVBVEUgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisK KyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8 c2Vjb25kYXJ5PmRlZmluaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0 YT4KKyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8 bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0 YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8 cmVmbmFtZT5DUkVBVEUgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBh IHNlc3Npb24gdmFyaWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5 bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBd IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFu ZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgY3JlYXRlcyBhIHNlc3Npb24gdmFy aWFibGUuCisgICBTZXNzaW9uIHZhcmlhYmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhp biBhIHNjaGVtYSBhbmQgdGhlaXIgYWNjZXNzIGlzCisgICBjb250cm9sbGVkIHZpYSB0aGUgY29t bWFuZHMgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1h bmQ+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZh cmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCisgICBh IHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUg aXMgc2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGgg YSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICBUaGUgY29udGVudCBvZiBhIHNl c3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMK KyAgIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8 Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0 IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgPC9wYXJhPgorCisg IDxub3RlPgorICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5z aGFkb3dlZDwvcXVvdGU+IGJ5IG90aGVyIGlkZW50aWZpZXJzLgorICAgIEZvciBkZXRhaWxzLCBz ZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAgPC9wYXJhPgor ICA8L25vdGU+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRl cnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisKKyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJz cWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYg Tk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4g QSBub3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9 InNxbC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlh YmxlLWRhdGFfdHlwZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgbmFtZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUg ZGF0YSB0eXBlIG9mIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBp ZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWNvbGxhdGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExB VEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8 L2xpdGVyYWw+IGNsYXVzZSBhc3NpZ25zIGEgY29sbGF0aW9uIHRvIHRoZSBzZXNzaW9uCisgICAg ICB2YXJpYWJsZSAod2hpY2ggbXVzdCBiZSBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlKS4gIElm IG5vdCBzcGVjaWZpZWQsCisgICAgICB0aGUgZGF0YSB0eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24g aXMgdXNlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9Q IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJlbW92ZSBhIHNlc3Npb24KKyAgIHZhcmlh YmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4 YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFy aWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBkYXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxl PgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4g Y29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4 dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxt ZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3Np bXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zh cmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNWJkYjM1 NjBmMAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5z Z21sCkBAIC0wLDAgKzEsMTE3IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFi bGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJz cWwtZHJvcHZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1kcm9wdmFyaWFibGUiPgor ICA8cHJpbWFyeT5EUk9QIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGlu ZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29u ZGFyeT5yZW1vdmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+Cisg IDxyZWZlbnRyeXRpdGxlPkRST1AgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xu dW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50 czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1l PkRST1AgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIHNlc3Npb24g dmFyaWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2 PgorPHN5bm9wc2lzPgorRFJPUCBWQVJJQUJMRSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIENBU0NBREUgfCBS RVNUUklDVCBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5E Uk9QIFZBUklBQkxFPC9jb21tYW5kPiByZW1vdmVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEEg c2Vzc2lvbiB2YXJpYWJsZSBjYW4gb25seSBiZSByZW1vdmVkIGJ5IGl0cyBvd25lciBvciBhIHN1 cGVydXNlci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5QYXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxs aXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhl IHNlc3Npb24gdmFyaWFibGUgZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzCisgICAgICBpc3N1 ZWQgaW4gdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVt PgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZp ZWQsIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHNl c3Npb24gdmFyaWFibGUgKHN1Y2ggYXMKKyAgICAgIHZpZXdzKSwgYW5kIGluIHR1cm4gYWxsIG9i amVjdHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgKHNlZSA8eHJlZiBsaW5r ZW5kPSJkZGwtZGVwZW5kIi8+KS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5S RVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFJlZnVzZSB0byBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlmIGFueSBvYmplY3RzIGRl cGVuZCBvbiBpdC4gIFRoaXMgaXMKKyAgICAgIHRoZSBkZWZhdWx0LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisg IDxwYXJhPgorICAgVG8gcmVtb3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8 L2xpdGVyYWw+OgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIFZBUklBQkxFIHZhcjE7Cis8L3By b2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+RFJP UCBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdy ZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisK KyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3Qg dHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFi bGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlh YmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVu dHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9ncmFudC5zZ21sCmluZGV4IDk5OWY2NTdkNWMuLjNkMDQ0NTgzODQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2dy YW50LnNnbWwKQEAgLTEwMSw2ICsxMDEsMTIgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAg ICBbIFdJVEggeyBBRE1JTiB8IElOSEVSSVQgfCBTRVQgfSB7IE9QVElPTiB8IFRSVUUgfCBGQUxT RSB9IF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJv bGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KIAorR1JBTlQgeyBTRUxFQ1QgfCBVUERB VEUgfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxhY2VhYmxl PnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFC TEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JB TlQgT1BUSU9OIF0KKyAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KKwogPHBocmFzZT53aGVyZSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNl YWJsZT4gY2FuIGJlOjwvcGhyYXNlPgogCiAgICAgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPgpAQCAtMTE5LDggKzEyNSw4IEBA IEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgICB0aGF0IGdyYW50cyBwcml2aWxlZ2VzIG9uIGEg ZGF0YWJhc2Ugb2JqZWN0ICh0YWJsZSwgY29sdW1uLCB2aWV3LAogICAgZm9yZWlnbiB0YWJsZSwg c2VxdWVuY2UsIGRhdGFiYXNlLCBmb3JlaWduLWRhdGEgd3JhcHBlciwgZm9yZWlnbiBzZXJ2ZXIs CiAgICBmdW5jdGlvbiwgcHJvY2VkdXJlLCBwcm9jZWR1cmFsIGxhbmd1YWdlLCBsYXJnZSBvYmpl Y3QsIGNvbmZpZ3VyYXRpb24KLSAgIHBhcmFtZXRlciwgc2NoZW1hLCB0YWJsZXNwYWNlLCBvciB0 eXBlKSwgYW5kIG9uZSB0aGF0IGdyYW50cwotICAgbWVtYmVyc2hpcCBpbiBhIHJvbGUuICBUaGVz ZSB2YXJpYW50cyBhcmUgc2ltaWxhciBpbiBtYW55IHdheXMsIGJ1dAorICAgcGFyYW1ldGVyLCBz Y2hlbWEsIHNlc3Npb24gdmFyaWFibGUsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRo YXQKKyAgIGdyYW50cyBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRzIGFyZSBz aW1pbGFyIGluIG1hbnkgd2F5cywgYnV0CiAgICB0aGV5IGFyZSBkaWZmZXJlbnQgZW5vdWdoIHRv IGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5LgogICA8L3BhcmE+CiAKQEAgLTUxOCw4ICs1MjQsOCBA QCBHUkFOVCBhZG1pbnMgVE8gam9lOwogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KLSAgICBQcml2 aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgYW5k Ci0gICAgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQorICAgIFByaXZpbGVnZXMgb24gZGF0 YWJhc2VzLCB0YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2VzLCBzZXNzaW9uIHZhcmlhYmxl cworICAgIGFuZCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlCiAgICAgPHByb2R1Y3RuYW1l PlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb25zLgogICAgPC9wYXJhPgogIDwvcmVm c2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggZTQyMDczZWQ3NC4uY2VmNTU4OWVjZSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMjAzNCw2ICsyMDM0LDE5IEBAIFNFTEVDVCAkMSBc cGFyc2Ugc3RtdDEKICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQtZHYiPgorICAg ICAgICA8dGVybT48bGl0ZXJhbD5cZFZbK10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0 ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxl PjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAg PHBhcmE+CisgICAgICAgIExpc3RzIHNlc3Npb24gdmFyaWFibGVzLgorICAgICAgICBJZiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+IGlzCisgICAg ICAgIHNwZWNpZmllZCwgb25seSBzZXNzaW9uIHZhcmlhYmxlcyB3aG9zZSBuYW1lcyBtYXRjaCB0 aGUgcGF0dGVybiBhcmUgbGlzdGVkLgorICAgICAgICBJZiB0aGUgZm9ybSA8bGl0ZXJhbD5cZFYr PC9saXRlcmFsPiBpcyB1c2VkLCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uCisgICAgICAgIGFib3V0 IGVhY2ggdmFyaWFibGUgaXMgc2hvd24sIGxpa2UgIGFjY2VzcyBwcml2aWxlZ2VzIGFuZCBkZXNj cmlwdGlvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgPC92 YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29t bWFuZC1kdSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxkdVtTK10gWyA8bGluayBsaW5rZW5k PSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRl cm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgICAgIDxsaXN0 aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4MWEuLjZjYjI2NTRkNjcgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9yZXZva2Uuc2dtbApAQCAtMTMwLDYgKzEzMCwxMyBAQCBSRVZPS0UgWyB7IEFETUlOIHwgSU5I RVJJVCB8IFNFVCB9IE9QVElPTiBGT1IgXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAg IFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIAorUkVWT0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisg ICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQor ICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0KKyAg ICBGUk9NIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25h bWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIENBU0NBREUgfCBSRVNU UklDVCBdCisKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJv bGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsg R1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNl YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBmZjg1YWNlODNmLi4yNTU3OGYzOTQ2IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNl cjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJW aWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZj cmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAm Y3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRl Y2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsK ICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3Owog ICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9N YWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNS4u N2E5MGZjZmM0NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCkBAIC00NSw2ICs0NSw3IEBAIE9CSlMgPSBc CiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vic2NyaXB0aW9uLm8gXAogCXBnX3R5cGUubyBcCisJ cGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5vIFwKIAl0b2FzdGluZy5vCiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNo ay5jCmluZGV4IGFhZjk2YTk2NWUuLjFhZGI4YmRlNzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAt NjQsNiArNjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1h bmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5oIgpAQCAtMjkxLDYgKzI5Miw5IEBAIHJlc3RyaWN0X2FuZF9jaGVja19n cmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFsbF9wcml2 cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sgPSBBQ0xfQUxM X1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIs IG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1dCBrZWVwIGNvbXBpbGVyIHF1aWV0ICov CkBAIC01MzUsNiArNTM5LDEwIEBAIEV4ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQog CQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJZXJy b3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHBhcmFt ZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZp bGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9u b29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRT dG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3RtdC0+b2JqdHlwZSk7CkBAIC02NDAsNiAr NjQ4LDkgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVybmFsR3JhbnQgKmlzdG10KQogCQljYXNl IE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJRXhlY0dyYW50X1BhcmFtZXRlcihpc3RtdCk7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlFeGVjR3JhbnRfY29tbW9uKGlz dG10LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEFDTF9BTExfUklHSFRTX1ZBUklBQkxFLCBOVUxMKTsK KwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFu dFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBpc3RtdC0+b2JqdHlwZSk7CkBAIC03NjAs NiArNzcxLDE4IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAq b2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmpl Y3RzLCBwYXJhbWV0ZXJJZCk7CiAJCQl9CiAJCQlicmVhazsKKworCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCWZvcmVhY2hfbm9kZShSYW5nZVZhciwgdmFydmFyLCBvYmpuYW1lcykKKwkJCXsK KwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJsZSh2YXJ2YXIt PnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJCQkJCWZhbHNl KTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsKKwkJCX0KKwkJ CWJyZWFrOwogCX0KIAogCXJldHVybiBvYmplY3RzOwpAQCAtODQ2LDYgKzg2OSwzMiBAQCBvYmpl Y3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJ CQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2spOwogCQkJCX0KIAkJCQlicmVhazsK KwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCXsKKwkJCQkJU2NhbktleURhdGEga2V5Owor CQkJCQlSZWxhdGlvbglyZWw7CisJCQkJCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwkJCQkJSGVhcFR1 cGxlCXR1cGxlOworCisJCQkJCVNjYW5LZXlJbml0KCZrZXksCisJCQkJCQkJCUFudW1fcGdfdmFy aWFibGVfdmFybmFtZXNwYWNlLAorCQkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lE RVEsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJCQlyZWwg PSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKHJlbCwgMSwgJmtleSk7CisKKwkJCQkJd2hp bGUgKCh0dXBsZSA9IGhlYXBfZ2V0bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbikpICE9 IE5VTEwpCisJCQkJCXsKKwkJCQkJCU9pZAkJCW9pZCA9ICgoRm9ybV9wZ19wcm9jKSBHRVRTVFJV Q1QodHVwbGUpKS0+b2lkOworCisJCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywg b2lkKTsKKwkJCQkJfQorCisJCQkJCXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Ns b3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0 OgogCQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLApAQCAtMTAwNSw2ICsxMDU0LDEwIEBAIEV4ZWNB bHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRGVmYXVs dFByaXZpbGVnZXNTdG10ICpzCiAJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ND SEVNQTsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBl ICVzIGZvciBzY2hlbWEiKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJ CWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9 IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJp YWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7 CkBAIC0xMTk2LDYgKzEyNDksMTIgQEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wg KmlhY2xzKQogCQkJCXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJb2JqdHlwZSA9IERFRkFDTE9C Sl9WQVJJQUJMRTsKKwkJCWlmIChpYWNscy0+YWxsX3ByaXZzICYmIHRoaXNfcHJpdmlsZWdlcyA9 PSBBQ0xfTk9fUklHSFRTKQorCQkJCXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29n bml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgaWFjbHMtPm9ianR5cGUpOwpAQCAt MTQzOSw2ICsxNDk4LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lk IGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCQlp YWNscy5vYmp0eXBlID0gT0JKRUNUX1NDSEVNQTsKIAkJCQlicmVhazsKKwkJCWNhc2UgREVGQUNM T0JKX1ZBUklBQkxFOgorCQkJCWlhY2xzLm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJ YnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCWVs b2coRVJST1IsICJ1bmV4cGVjdGVkIGRlZmF1bHQgQUNMIHR5cGU6ICVkIiwKQEAgLTE0OTksNiAr MTU2MSw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBjbGFzc2lk LCBPaWQgb2JqaWQpCiAJCQljYXNlIFBhcmFtZXRlckFjbFJlbGF0aW9uSWQ6CiAJCQkJaXN0bXQu b2JqdHlwZSA9IE9CSkVDVF9QQVJBTUVURVJfQUNMOwogCQkJCWJyZWFrOworCQkJY2FzZSBWYXJp YWJsZVJlbGF0aW9uSWQ6CisJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgb2JqZWN0 IGNsYXNzICV1IiwgY2xhc3NpZCk7CiAJCQkJYnJlYWs7CkBAIC0yNzMyLDYgKzI3OTcsOSBAQCBh Y2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJ CWNhc2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24g ZGVuaWVkIGZvciB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklF VzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcg JXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMjg0Myw2ICsyOTExLDkgQEAgYWNsY2hlY2tfZXJyb3Io QWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9U WVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHR5cGUgJXMi KTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9 IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJ CQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRf bm9vcCgibXVzdCBiZSBvd25lciBvZiB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI5OTEs NiArMzA2Miw4IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb2JqZWN0X29p ZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJCQlyZXR1cm4gQUNMX05PX1JJR0hU UzsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiBvYmplY3RfYWNsbWFzayhUeXBlUmVs YXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCXJldHVybiBvYmplY3RfYWNsbWFzayhWYXJpYWJsZVJlbGF0aW9uSWQsIG9i amVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgb2JqdHlwZSk7CkBA IC00MjU4LDYgKzQzMzEsMTAgQEAgZ2V0X3VzZXJfZGVmYXVsdF9hY2woT2JqZWN0VHlwZSBvYmp0 eXBlLCBPaWQgb3duZXJJZCwgT2lkIG5zcF9vaWQpCiAJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNM T0JKX05BTUVTUEFDRTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJ ZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1 bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDJh ZmM1NTA1NDAuLmQ2NjJlNzZhY2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC02NSwx MiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv Y29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNpb24uaCIKICNp bmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wdWJsaWNhdGlv bmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiArMTQ0NiwxMCBAQCBkb0RlbGV0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQkJUmVtb3ZlUHVibGlj YXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJs ZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9iamVjdC0+b2JqZWN0SWQpOworCQkJ YnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJY2FzZSBDb2xsYXRpb25SZWxhdGlv bklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQK aW5kZXggMmYzZGVkOGEwZS4uYmZkYjRkYTMzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBA IC0zMiw2ICszMiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX3NoZGVwZW5k LmMnLAogICAncGdfc3Vic2NyaXB0aW9uLmMnLAogICAncGdfdHlwZS5jJywKKyAgJ3BnX3Zhcmlh YmxlLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5nLmMnLAogKQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFt ZXNwYWNlLmMKaW5kZXggMzA4MDdmOTE5MC4uZWYyYTk3ZTJkYyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vuc3RhYmxl LmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtMjI1LDYgKzIyNiw3IEBAIHN0YXRpYyBib29s IFRTUGFyc2VySXNWaXNpYmxlRXh0KE9pZCBwcnNJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0 aWMgYm9vbCBUU0RpY3Rpb25hcnlJc1Zpc2libGVFeHQoT2lkIGRpY3RJZCwgYm9vbCAqaXNfbWlz c2luZyk7CiBzdGF0aWMgYm9vbCBUU1RlbXBsYXRlSXNWaXNpYmxlRXh0KE9pZCB0bXBsSWQsIGJv b2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNm Z2lkLCBib29sICppc19taXNzaW5nKTsKK3N0YXRpYyBib29sIFZhcmlhYmxlSXNWaXNpYmxlRXh0 KE9pZCB2YXJpZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgdm9pZCByZWNvbXB1dGVOYW1l c3BhY2VQYXRoKHZvaWQpOwogc3RhdGljIHZvaWQgQWNjZXNzVGVtcFRhYmxlTmFtZXNwYWNlKGJv b2wgZm9yY2UpOwogc3RhdGljIHZvaWQgSW5pdFRlbXBUYWJsZU5hbWVzcGFjZSh2b2lkKTsKQEAg LTk4Niw2ICs5ODgsODQgQEAgUmVsYXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICpp c19taXNzaW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2li bGUKKyAqCQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkg aXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5z ICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZh cmlhYmxlIG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7 CisJcmV0dXJuIFZhcmlhYmxlSXNWaXNpYmxlRXh0KHZhcmlkLCBOVUxMKTsKK30KKworLyoKKyAq IFZhcmlhYmxlSXNWaXNpYmxlRXh0CisgKgkJQXMgYWJvdmUsIGJ1dCBpZiB0aGUgdmFyaWFibGUg aXNuJ3QgZm91bmQgYW5kIGlzX21pc3NpbmcgaXMgbm90IE5VTEwsCisgKgkJdGhlbiBzZXQgKmlz X21pc3NpbmcgPSB0cnVlIGFuZCByZXR1cm4gZmFsc2UsIGluc3RlYWQgb2YgdGhyb3dpbmcKKyAq CQlhbiBlcnJvci4gKENhbGxlciBtdXN0IGluaXRpYWxpemUgKmlzX21pc3NpbmcgPSBmYWxzZS4p CisgKi8KK3N0YXRpYyBib29sCitWYXJpYWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wg KmlzX21pc3NpbmcpCit7CisJSGVhcFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZh cmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAg PSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodmFydHVwKSkKKwl7CisJCWlmIChpc19taXNzaW5nICE9 IE5VTEwpCisJCXsKKwkJCSppc19taXNzaW5nID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJ fQorCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlh YmxlICV1IiwgdmFyaWQpOworCX0KKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNU UlVDVCh2YXJ0dXApOworCisJcmVjb21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBR dWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNp YmxlLiBXZQorCSAqIGRvbid0IGV4cGVjdCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0 aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkgKi8KKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJu YW1lc3BhY2U7CisJaWYgKCFsaXN0X21lbWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwgdmFybmFt ZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0 IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQg YmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFtZSBlYXJs aWVyIGluIHRoZSBwYXRoLiBTbworCQkgKiB3ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29u ZmxpY3RpbmcgcmVsYXRpb25zLgorCQkgKi8KKwkJY2hhcgkgICAqdmFybmFtZSA9IE5hbWVTdHIo dmFyZm9ybS0+dmFybmFtZSk7CisKKwkJdmlzaWJsZSA9IGZhbHNlOworCQlmb3JlYWNoX29pZChu YW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJaWYgKG5hbWVzcGFjZUlkID09 IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBpdCBmaXJzdCBpbiBwYXRoICovCisJ CQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9CisJCQlpZiAoT2lkSXNWYWxpZChn ZXRfdmFybmFtZV92YXJpZCh2YXJuYW1lLCBuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJCS8qIGZv dW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJ fQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh2YXJ0dXApOworCisJcmV0dXJuIHZpc2libGU7Cit9 CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5cGlkCkBAIC0zMjg5LDYgKzMzNjksNjIgQEAgVFNDb25m aWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNp YmxlOwogfQogCisvKgorICogUmV0dXJucyBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZp ZWQgYnkgcG9zc2libHkgcXVhbGlmaWVkIGlkZW50aWZpZXIuCisgKgorICogSWYgbm90IGZvdW5k LCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJyb3IuCisg Ki8KK09pZAorTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwKKwkJCSAgIGNvbnN0 IGNoYXIgKnZhcm5hbWUsCisJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJT2lkCQkJdmFyb2lk ID0gSW52YWxpZE9pZDsKKworCWlmIChuc3BuYW1lKQorCXsKKwkJT2lkIG5hbWVzcGFjZUlkID0g TG9va3VwRXhwbGljaXROYW1lc3BhY2UobnNwbmFtZSwgbWlzc2luZ19vayk7CisKKwkJLyogaWYg bnNwbmFtZSBpcyBhIGtub3duIG5hbWVzcGFjZSwgdGhlIHZhcmlhYmxlIG11c3QgYmUgdGhlcmUg Ki8KKwkJaWYgKE9pZElzVmFsaWQobmFtZXNwYWNlSWQpKQorCQl7CisJCQl2YXJvaWQgPSBHZXRT eXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCwKKwkJCQkJ CQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1 bShuYW1lc3BhY2VJZCkpOworCQl9CisJfQorCWVsc2UKKwl7CisJCS8qIGl0ZXJhdGUgb3ZlciB0 aGUgc2NoZW1hcyBvbiB0aGUgc2VhcmNoX3BhdGggKi8KKwkJcmVjb21wdXRlTmFtZXNwYWNlUGF0 aCgpOworCisJCWZvcmVhY2hfb2lkKG5hbWVzcGFjZUlkLCBhY3RpdmVTZWFyY2hQYXRoKQorCQl7 CisJCQl2YXJvaWQgPSBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3Zh cmlhYmxlX29pZCwKKwkJCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkJ CQkgT2JqZWN0SWRHZXREYXR1bShuYW1lc3BhY2VJZCkpOworCisJCQlpZiAoT2lkSXNWYWxpZCh2 YXJvaWQpKQorCQkJCWJyZWFrOworCQl9CisJfQorCisJaWYgKCFPaWRJc1ZhbGlkKHZhcm9pZCkg JiYgIW1pc3Npbmdfb2spCisJeworCQlpZiAobnNwbmFtZSkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQluc3BuYW1l LCB2YXJuYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJdmFybmFtZSkpKTsKKwl9CisKKwlyZXR1 cm4gdmFyb2lkOworfQogCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCkBAIC01MDg1 LDMgKzUyMjEsMTcgQEAgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEoUEdfRlVOQ1RJT05fQVJHUykK IAogCVBHX1JFVFVSTl9CT09MKGlzT3RoZXJUZW1wTmFtZXNwYWNlKG9pZCkpOwogfQorCitEYXR1 bQorcGdfdmFyaWFibGVfaXNfdmlzaWJsZShQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCW9p ZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJYm9vbAkJcmVzdWx0OworCWJvb2wJCWlzX21pc3Npbmcg PSBmYWxzZTsKKworCXJlc3VsdCA9IFZhcmlhYmxlSXNWaXNpYmxlRXh0KG9pZCwgJmlzX21pc3Np bmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJUEdfUkVUVVJO X0JPT0wocmVzdWx0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0 YWRkcmVzcy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKaW5kZXggYmU3 ZTRhNWRkMC4uN2U3NmMyZTM3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmpl Y3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMKQEAg LTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBp bmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTYzNiw2ICs2MzcsMjAgQEAgc3RhdGljIGNv bnN0IE9iamVjdFByb3BlcnR5VHlwZSBPYmplY3RQcm9wZXJ0eVtdID0KIAkJT0JKRUNUX1VTRVJf TUFQUElORywKIAkJZmFsc2UKIAl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLAorCQlWYXJp YWJsZVJlbGF0aW9uSWQsCisJCVZhcmlhYmxlT2lkSW5kZXhJZCwKKwkJVkFSSUFCTEVPSUQsCisJ CVZBUklBQkxFTkFNRU5TUCwKKwkJQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCUFudW1fcGdfdmFy aWFibGVfdmFybmFtZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UsCisJCUFudW1f cGdfdmFyaWFibGVfdmFyb3duZXIsCisJCUFudW1fcGdfdmFyaWFibGVfdmFyYWNsLAorCQlPQkpF Q1RfVkFSSUFCTEUsCisJCXRydWUKKwl9CiB9OwogCiAvKgpAQCAtODMxLDYgKzg0Niw5IEBAIHN0 YXRpYyBjb25zdCBzdHJ1Y3Qgb2JqZWN0X3R5cGVfbWFwCiAJfSwKIAl7CiAJCSJzdGF0aXN0aWNz IG9iamVjdCIsIE9CSkVDVF9TVEFUSVNUSUNfRVhUCisJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlh YmxlIiwgT0JKRUNUX1ZBUklBQkxFCiAJfQogfTsKIApAQCAtODU2LDYgKzg3NCw3IEBAIHN0YXRp YyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19hdHRyZGVmKE9iamVjdFR5cGUgb2Jq dHlwZSwKIAkJCQkJCQkJCQkJCWJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVz cyBnZXRfb2JqZWN0X2FkZHJlc3NfdHlwZShPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJ CSBUeXBlTmFtZSAqdHlwZW5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitzdGF0aWMgT2JqZWN0QWRk cmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Np bmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wY2YoT2Jq ZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJCQkJCQkJCSBib29sIG1pc3Npbmdf b2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX29wZl9tZW1iZXIo T2JqZWN0VHlwZSBvYmp0eXBlLApAQCAtMTEyNyw2ICsxMTQ2LDkgQEAgZ2V0X29iamVjdF9hZGRy ZXNzKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJCQkJCQkJCQkJCQkJIG1p c3Npbmdfb2spOwogCQkJCWFkZHJlc3Mub2JqZWN0U3ViSWQgPSAwOwogCQkJCWJyZWFrOworCQkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVzc192 YXJpYWJsZShjYXN0Tm9kZShMaXN0LCBvYmplY3QpLCBtaXNzaW5nX29rKTsKKwkJCQlicmVhazsK IAkJCQkvKiBubyBkZWZhdWx0LCB0byBsZXQgY29tcGlsZXIgd2FybiBhYm91dCBtaXNzaW5nIGNh c2UgKi8KIAkJfQogCkBAIC0yMDA1LDE2ICsyMDI3LDIwIEBAIGdldF9vYmplY3RfYWRkcmVzc19k ZWZhY2woTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCWNhc2UgREVGQUNMT0JKX05B TUVTUEFDRToKIAkJCW9ianR5cGVfc3RyID0gInNjaGVtYXMiOwogCQkJYnJlYWs7CisJCWNhc2Ug REVGQUNMT0JKX1ZBUklBQkxFOgorCQkJb2JqdHlwZV9zdHIgPSAidmFyaWFibGVzIjsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCiAJCQkJCSBlcnJtc2coInVucmVjb2duaXplZCBk ZWZhdWx0IEFDTCBvYmplY3QgdHlwZSBcIiVjXCIiLCBvYmp0eXBlKSwKLQkJCQkJIGVycmhpbnQo IlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBc IiVjXCIuIiwKKwkJCQkJIGVycmhpbnQoIlZhbGlkIG9iamVjdCB0eXBlcyBhcmUgXCIlY1wiLCBc IiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAogCQkJCQkJCSBERUZBQ0xP QkpfUkVMQVRJT04sCiAJCQkJCQkJIERFRkFDTE9CSl9TRVFVRU5DRSwKIAkJCQkJCQkgREVGQUNM T0JKX0ZVTkNUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfVFlQRSwKLQkJCQkJCQkgREVGQUNMT0JK X05BTUVTUEFDRSkpKTsKKwkJCQkJCQkgREVGQUNMT0JKX05BTUVTUEFDRSwKKwkJCQkJCQkgREVG QUNMT0JKX1ZBUklBQkxFKSkpOwogCX0KIAogCS8qCkBAIC0yMDk4LDYgKzIxMjQsMjQgQEAgdGV4 dGFycmF5X3RvX3N0cnZhbHVlbGlzdChBcnJheVR5cGUgKmFycikKIAlyZXR1cm4gbGlzdDsKIH0K IAorLyoKKyAqIEZpbmQgdGhlIE9iamVjdEFkZHJlc3MgZm9yIGEgc2Vzc2lvbiB2YXJpYWJsZQor ICovCitzdGF0aWMgT2JqZWN0QWRkcmVzcworZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKExp c3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQoreworCU9iamVjdEFkZHJlc3MgYWRkcmVzczsK KwljaGFyCSAgICpuc3BuYW1lID0gTlVMTDsKKwljaGFyCSAgICp2YXJuYW1lID0gTlVMTDsKKwor CU9iamVjdEFkZHJlc3NTZXQoYWRkcmVzcywgVmFyaWFibGVSZWxhdGlvbklkLCBJbnZhbGlkT2lk KTsKKworCURlY29uc3RydWN0UXVhbGlmaWVkTmFtZShvYmplY3QsICZuc3BuYW1lLCAmdmFybmFt ZSk7CisJYWRkcmVzcy5vYmplY3RJZCA9IExvb2t1cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUs IG1pc3Npbmdfb2spOworCisJcmV0dXJuIGFkZHJlc3M7Cit9CisKIC8qCiAgKiBTUUwtY2FsbGFi bGUgdmVyc2lvbiBvZiBnZXRfb2JqZWN0X2FkZHJlc3MKICAqLwpAQCAtMjI5Miw2ICsyMzM2LDcg QEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNU X1RBQkNPTlNUUkFJTlQ6CiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09Q RkFNSUxZOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCW9iam5vZGUgPSAoTm9kZSAqKSBu YW1lOwogCQkJYnJlYWs7CiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CkBAIC0yNDYzLDYg KzI1MDgsNyBAQCBjaGVja19vYmplY3Rfb3duZXJzaGlwKE9pZCByb2xlaWQsIE9iamVjdFR5cGUg b2JqdHlwZSwgT2JqZWN0QWRkcmVzcyBhZGRyZXNzLAogCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNf RVhUOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTQ09ORklH VVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlpZiAoIW9iamVjdF9vd25lcmNo ZWNrKGFkZHJlc3MuY2xhc3NJZCwgYWRkcmVzcy5vYmplY3RJZCwgcm9sZWlkKSkKIAkJCQlhY2xj aGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIG9ianR5cGUsCiAJCQkJCQkJICAgTmFtZUxp c3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKSk7CkBAIC0zNDY3LDYgKzM1MTMsMzIg QEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29s IG1pc3Npbmdfb2spCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CisJCQl7CisJCQkJY2hhcgkgICAqbnNwbmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJ CUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShW QVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElk KTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisK KwkJCQlpZiAoVmFyaWFibGVJc1Zpc2libGUob2JqZWN0LT5vYmplY3RJZCkpCisJCQkJCW5zcG5h bWUgPSBOVUxMOworCQkJCWVsc2UKKwkJCQkJbnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh2 YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBf KCJzZXNzaW9uIHZhcmlhYmxlICVzIiksCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRp Zmllcihuc3BuYW1lLAorCQkJCQkJCQkJCQkJCQkJTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSkp OworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJY2Fz ZSBUU1BhcnNlclJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJSGVhcFR1cGxlCXR1cDsKQEAgLTM4MTks NiArMzg5MSwxNiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpv YmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2Vz IG9uIG5ldyBzY2hlbWFzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCiAJCQkJCQkJCQkJIHJvbGVu YW1lKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQkJ CWlmIChuc3BuYW1lKQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJ CQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25n aW5nIHRvIHJvbGUgJXMgaW4gc2NoZW1hICVzIiksCisJCQkJCQkJCQkJCSByb2xlbmFtZSwgbnNw bmFtZSk7CisJCQkJCQllbHNlCisJCQkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLAorCQkJ CQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5ldyBzZXNzaW9uIHZhcmlhYmxlcyBi ZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUpOworCQkJCQkJYnJl YWs7CiAJCQkJCWRlZmF1bHQ6CiAJCQkJCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQkJ CWlmIChuc3BuYW1lKQpAQCAtNDYzNSw2ICs0NzE3LDEwIEBAIGdldE9iamVjdFR5cGVEZXNjcmlw dGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInRyYW5zZm9ybSIpOwogCQkJYnJlYWs7CiAK KwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZi dWZmZXIsICJzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNz SWQpOwogCX0KQEAgLTU3NDEsNiArNTgyNywxMCBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco JmJ1ZmZlciwKIAkJCQkJCQkJCQkJICAgIiBvbiBzY2hlbWFzIik7CiAJCQkJCQlicmVhazsKKwkJ CQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KCZidWZmZXIsCisJCQkJCQkJCQkJCSAgICIgb24gc2Vzc2lvbiB2YXJpYWJsZXMiKTsKKwkJCQkJ CWJyZWFrOwogCQkJCX0KIAogCQkJCWlmIChvYmpuYW1lKQpAQCAtNTk4MSw2ICs2MDcxLDMzIEBA IGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJ fQogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQl7CisJCQkJY2hh cgkgICAqc2NoZW1hOworCQkJCWNoYXIJICAgKnZhcm5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsK KwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNo ZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJ CWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmpl Y3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXAp OworCisJCQkJc2NoZW1hID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAodmFyZm9ybS0+dmFy bmFtZXNwYWNlKTsKKwkJCQl2YXJuYW1lID0gTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKTsKKwor CQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgIiVzIiwKKwkJCQkJCQkJIHF1b3RlX3F1YWxp ZmllZF9pZGVudGlmaWVyKHNjaGVtYSwgdmFybmFtZSkpOworCisJCQkJaWYgKG9iam5hbWUpCisJ CQkJCSpvYmpuYW1lID0gbGlzdF9tYWtlMihzY2hlbWEsIHBzdHJkdXAodmFybmFtZSkpOworCisJ CQkJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5j bGFzc0lkKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5k LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKaW5kZXggNzUzYWZiODg0NS4u MWVhM2Q2ZGIwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwpAQCAtNDYsNiArNDYsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5o IgpAQCAtMTcxNCw2ICsxNzE1LDcgQEAgc2hkZXBSZWFzc2lnbk93bmVkX093bmVyKEZvcm1fcGdf c2hkZXBlbmQgc2RlcEZvcm0sIE9pZCBuZXdyb2xlKQogCQljYXNlIERhdGFiYXNlUmVsYXRpb25J ZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0aW9uYXJ5UmVsYXRp b25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQlBbHRlck9iamVjdE93bmVyX2lu dGVybmFsKHNkZXBGb3JtLT5jbGFzc2lkLAogCQkJCQkJCQkJICBzZGVwRm9ybS0+b2JqaWQsCiAJ CQkJCQkJCQkgIG5ld3JvbGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192 YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmEyMWNhYTBlMGYKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSwyNTEgQEAKKy8q LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3ZhcmlhYmxlLmMKKyAqCQlzZXNzaW9uIHZhcmlh YmxlcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0 LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElG SUNBVElPTgorICoJCXNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworICoKKyAqLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAi YWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvaW5kZXhpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgor I2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19j b2xsYXRpb24uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKwor c3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUs CisJCQkJCQkJCQkgT2lkIHZhck5hbWVzcGFjZSwKKwkJCQkJCQkJCSBPaWQgdmFyVHlwZSwKKwkJ CQkJCQkJCSBpbnQzMiB2YXJUeXBtb2QsCisJCQkJCQkJCQkgT2lkIHZhck93bmVyLAorCQkJCQkJ CQkJIE9pZCB2YXJDb2xsYXRpb24sCisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwor CisvKgorICogQ3JlYXRlcyBlbnRyeSBpbiBwZ192YXJpYWJsZSB0YWJsZQorICovCitzdGF0aWMg T2JqZWN0QWRkcmVzcworY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCisJCQkJ T2lkIHZhck5hbWVzcGFjZSwKKwkJCQlPaWQgdmFyVHlwZSwKKwkJCQlpbnQzMiB2YXJUeXBtb2Qs CisJCQkJT2lkIHZhck93bmVyLAorCQkJCU9pZCB2YXJDb2xsYXRpb24sCisJCQkJYm9vbCBpZl9u b3RfZXhpc3RzKQoreworCUFjbAkJICAgKnZhcmFjbDsKKwlOYW1lRGF0YQl2YXJuYW1lOworCWJv b2wJCW51bGxzW05hdHRzX3BnX3ZhcmlhYmxlXTsKKwlEYXR1bQkJdmFsdWVzW05hdHRzX3BnX3Zh cmlhYmxlXTsKKwlSZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKwlUdXBsZURlc2MJdHVw ZGVzYzsKKwlPYmplY3RBZGRyZXNzIG15c2VsZiwKKwkJCQlyZWZlcmVuY2VkOworCU9iamVjdEFk ZHJlc3NlcyAqYWRkcnM7CisJT2lkCQkJdmFyaWQ7CisKKwlBc3NlcnQodmFyTmFtZSk7CisJQXNz ZXJ0KE9pZElzVmFsaWQodmFyTmFtZXNwYWNlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyVHlw ZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck93bmVyKSk7CisKKwlyZWwgPSB0YWJsZV9vcGVu KFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKgorCSAqIENoZWNr IGZvciBkdXBsaWNhdGVzLiBOb3RlIHRoYXQgdGhpcyBkb2VzIG5vdCByZWFsbHkgcHJldmVudAor CSAqIGR1cGxpY2F0ZXMsIGl0J3MgaGVyZSBqdXN0IHRvIHByb3ZpZGUgbmljZXIgZXJyb3IgbWVz c2FnZSBpbiBjb21tb24KKwkgKiBjYXNlLiBUaGUgcmVhbCBwcm90ZWN0aW9uIGlzIHRoZSB1bmlx dWUga2V5IG9uIHRoZSBjYXRhbG9nLgorCSAqLworCWlmIChTZWFyY2hTeXNDYWNoZUV4aXN0czIo VkFSSUFCTEVOQU1FTlNQLAorCQkJCQkJCSAgUG9pbnRlckdldERhdHVtKHZhck5hbWUpLAorCQkJ CQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpKSkKKwl7CisJCWlmIChpZl9ub3Rf ZXhpc3RzKQorCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElD QVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVh ZHkgZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKwkJZWxzZQorCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJ CQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJ CQkJCXZhck5hbWUpKSk7CisKKwkJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsK KworCQlyZXR1cm4gSW52YWxpZE9iamVjdEFkZHJlc3M7CisJfQorCisJbWVtc2V0KHZhbHVlcywg MCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykp OworCisJbmFtZXN0cmNweSgmdmFybmFtZSwgdmFyTmFtZSk7CisKKwl2YXJpZCA9IEdldE5ld09p ZFdpdGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJsZV9vaWQp OworCisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVt KHZhcmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBOYW1lR2V0 RGF0dW0oJnZhcm5hbWUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpOworCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyVHlwZSk7CisJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJbnQzMkdldERhdHVtKHZhclR5cG1v ZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3duZXIgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyT3duZXIpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNvbGxhdGlvbiAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24pOworCisJdmFyYWNsID0gZ2V0X3Vz ZXJfZGVmYXVsdF9hY2woT0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKKwkJCQkJCQkJICB2YXJO YW1lc3BhY2UpOworCWlmICh2YXJhY2wgIT0gTlVMTCkKKwkJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyYWNsIC0gMV0gPSBQb2ludGVyR2V0RGF0dW0odmFyYWNsKTsKKwllbHNlCisJCW51bGxz W0FudW1fcGdfdmFyaWFibGVfdmFyYWNsIC0gMV0gPSB0cnVlOworCisJdHVwZGVzYyA9IFJlbGF0 aW9uR2V0RGVzY3IocmVsKTsKKworCXR1cCA9IGhlYXBfZm9ybV90dXBsZSh0dXBkZXNjLCB2YWx1 ZXMsIG51bGxzKTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocmVsLCB0dXApOworCUFzc2VydChPaWRJ c1ZhbGlkKHZhcmlkKSk7CisKKwlhZGRycyA9IG5ld19vYmplY3RfYWRkcmVzc2VzKCk7CisKKwlP YmplY3RBZGRyZXNzU2V0KG15c2VsZiwgVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCk7CisKKwkv KiBkZXBlbmRlbmN5IG9uIG5hbWVzcGFjZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNl ZCwgTmFtZXNwYWNlUmVsYXRpb25JZCwgdmFyTmFtZXNwYWNlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0 X2FkZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gdXNlZCB0 eXBlICovCisJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBUeXBlUmVsYXRpb25JZCwgdmFy VHlwZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisK KwkvKiBkZXBlbmRlbmN5IG9uIGNvbGxhdGlvbiAqLworCWlmIChPaWRJc1ZhbGlkKHZhckNvbGxh dGlvbikgJiYKKwkJdmFyQ29sbGF0aW9uICE9IERFRkFVTFRfQ09MTEFUSU9OX09JRCkKKwl7CisJ CU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgQ29sbGF0aW9uUmVsYXRpb25JZCwgdmFyQ29s bGF0aW9uKTsKKwkJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7 CisJfQorCisJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2llcygmbXlzZWxmLCBhZGRy cywgREVQRU5ERU5DWV9OT1JNQUwpOworCWZyZWVfb2JqZWN0X2FkZHJlc3NlcyhhZGRycyk7CisK KwkvKiBkZXBlbmRlbmN5IG9uIG93bmVyICovCisJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFy aWFibGVSZWxhdGlvbklkLCB2YXJpZCwgdmFyT3duZXIpOworCisJLyogZGVwZW5kZW5jaWVzIG9u IHJvbGVzIG1lbnRpb25lZCBpbiBkZWZhdWx0IEFDTCAqLworCXJlY29yZERlcGVuZGVuY3lPbk5l d0FjbChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCB2YXJPd25lciwgdmFyYWNsKTsKKwor CS8qIGRlcGVuZGVuY3kgb24gZXh0ZW5zaW9uICovCisJcmVjb3JkRGVwZW5kZW5jeU9uQ3VycmVu dEV4dGVuc2lvbigmbXlzZWxmLCBmYWxzZSk7CisKKwloZWFwX2ZyZWV0dXBsZSh0dXApOworCisJ LyogcG9zdCBjcmVhdGlvbiBob29rIGZvciBuZXcgZnVuY3Rpb24gKi8KKwlJbnZva2VPYmplY3RQ b3N0Q3JlYXRlSG9vayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwKTsKKworCXRhYmxlX2Ns b3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gbXlzZWxmOworfQorCisvKgor ICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZQorICoKKyAqIFVzZWQgYnkgQ1JFQVRFIFZBUklBQkxF IGNvbW1hbmQKKyAqLworT2JqZWN0QWRkcmVzcworQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKK3sKKwlPaWQJCQluYW1lc3BhY2Vp ZDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7 CisJT2lkCQkJdmFyb3duZXIgPSBHZXRVc2VySWQoKTsKKwlPaWQJCQljb2xsYXRpb247CisJT2lk CQkJdHlwY29sbGF0aW9uOworCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CisKKwluYW1lc3BhY2Vp ZCA9CisJCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShzdG10LT52YXJpYWJs ZSwgTm9Mb2NrLCBOVUxMKTsKKworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBzdGF0ZSwgc3RtdC0+ dHlwZU5hbWUsICZ0eXBpZCwgJnR5cG1vZCk7CisKKwkvKiBkaXNhbGxvdyBwc2V1ZG90eXBlcyAq LworCWlmIChnZXRfdHlwdHlwZSh0eXBpZCkgPT0gVFlQVFlQRV9QU0VVRE8pCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRvLXR5cGUgJXMiLAorCQkJCQkJ Zm9ybWF0X3R5cGVfYmUodHlwaWQpKSkpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNr KFR5cGVSZWxhdGlvbklkLCB0eXBpZCwgR2V0VXNlcklkKCksIEFDTF9VU0FHRSk7CisJaWYgKGFj bHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQs IHR5cGlkKTsKKworCXR5cGNvbGxhdGlvbiA9IGdldF90eXBjb2xsYXRpb24odHlwaWQpOworCisJ aWYgKHN0bXQtPmNvbGxDbGF1c2UpCisJCWNvbGxhdGlvbiA9IExvb2t1cENvbGxhdGlvbihwc3Rh dGUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5jb2xsbmFtZSwKKwkJCQkJCQkJCXN0bXQt PmNvbGxDbGF1c2UtPmxvY2F0aW9uKTsKKwllbHNlCisJCWNvbGxhdGlvbiA9IHR5cGNvbGxhdGlv bjs7CisKKwkvKiBjb21wbGFpbiBpZiBDT0xMQVRFIGlzIGFwcGxpZWQgdG8gYW4gdW5jb2xsYXRh YmxlIHR5cGUgKi8KKwlpZiAoT2lkSXNWYWxpZChjb2xsYXRpb24pICYmICFPaWRJc1ZhbGlkKHR5 cGNvbGxhdGlvbikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRB VFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiY29sbGF0aW9ucyBhcmUgbm90IHN1cHBvcnRl ZCBieSB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmNvbGxDbGF1c2UtPmxvY2F0aW9uKSkpOworCisJ dmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUoc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsCisJCQkJ CQkJICAgbmFtZXNwYWNlaWQsCisJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJICAgdHlwbW9kLAor CQkJCQkJCSAgIHZhcm93bmVyLAorCQkJCQkJCSAgIGNvbGxhdGlvbiwKKwkJCQkJCQkgICBzdG10 LT5pZl9ub3RfZXhpc3RzKTsKKworCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCisJCSBz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOworCisJcmV0dXJuIHZh cmlhYmxlOworfQorCisvKgorICogRHJvcCB2YXJpYWJsZSBieSBPSUQKKyAqLwordm9pZAorRHJv cFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCit7CisJUmVsYXRpb24JcmVsOworCUhlYXBUdXBsZQl0 dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwlD YXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOworCisJUmVsZWFzZVN5c0NhY2hl KHR1cCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2FsdGVyLmMKaW5kZXggYTQ1ZjNiYjZiOC4uZDRkODhkMTEzMSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5j CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0LmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3Rl bXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0aW9uY21kcy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAgLTEzOSw2ICsxNDAsMTAgQEAgcmVwb3J0 X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwgY29uc3QgY2hhciAqbmFtZSwgT2lkIG5z cE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4 dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBp biBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6 CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKKwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9v cCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNc IiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQg b2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7CkBAIC00MTgsNiArNDIzLDcg QEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVFNURU1Q TEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQ VElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBh ZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBAIC01NTgsNiArNTY0LDcgQEAgRXhlY0Fs dGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVtYVN0bXQgKnN0bXQsCiAJCWNhc2Ug T0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JK RUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCVJlbGF0 aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsKQEAgLTY0MCw2ICs2NDcsNyBAQCBBbHRl ck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwK IAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgogCQljYXNlIFRTVGVtcGxhdGVSZWxhdGlv bklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9u SWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIApAQCAtODcwLDYgKzg3OCw3IEBAIEV4 ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJY2FzZSBPQkpFQ1RfVEFC TEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NP TkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFk ZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggODVlZWM3ZTM5NC4u M2NjZTE3ZTkyYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC00NzYsNiArNDc2LDEwIEBA IGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0 KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhp c3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFsKG9iamVjdCk7CiAJCQlicmVhazsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFy aWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOworCQkJbmFtZSA9IE5hbWVM aXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSk7CisJCQlicmVhazsKIAogCQljYXNl IE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RBVEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv ZXZlbnRfdHJpZ2dlci5jCmluZGV4IGRjZmMxZGJhZmYuLmQwM2NiOTQ3ZTYgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNDksNiArMjE0OSw4IEBAIHN0cmluZ2lmeV9n cmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJldHVybiAiVEFCTEVTUEFDRSI7 CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEUiOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEUiOwogCQkJLyogdGhlc2UgY3VycmVudGx5IGFy ZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNU X0FHR1JFR0FURToKQEAgLTIyMzIsNiArMjIzNCw4IEBAIHN0cmluZ2lmeV9hZGVmcHJpdnNfb2Jq dHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0VTIjsKIAkJY2Fz ZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRVMiOworCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKKwkJCXJldHVybiAiVkFSSUFCTEVTIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVuJ3Qg dXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9BR0dS RUdBVEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRleCA1NjA3MjczYmY5Li5jMDI2YWI1ZGNi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTkyLDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBw b3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9UU1BBUlNF UjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5H OgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJldHVybiBmYWxzZTsKIAogCQkJLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNmNjYWU0Y2I0YS4uMzhiMzJlMzgzNyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdl X3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0aW5nLmgiCkBAIC02NzY4LDYgKzY3Njks NyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBB bHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkgbmVzdGVkIHNldmVyYWwgbGV2ZWxzIGRl ZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0YyEpLgogICogRXZlbnR1YWxseSwgd2Un ZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3IgcmV3cml0ZSBvcGVyYXRpb24KICAqIGlu dG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0IGVycm9yIG91dCBpZiB3ZSBmaW5kIGFu eS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBpcyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBz ZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBzaG91bGQgcHJvdmlkZSBlaXRoZXIgdGhl IGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBlLAogICogb3IgYSB0eXBlIG5hbWUgKG5v dCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNzYWdlLCBpZiBhbnkuCkBAIC02ODMxLDYg KzY4MzMsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9kZXBlbmRlbmNpZXMoT2lkIHR5cGVPaWQs IFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRpbnVlOwogCQl9CiAKKwkJLyogY2hlY2sg aWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZSAqLwor CQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJeworCQkJ T2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOworCisJCQlpZiAob3JpZ1R5cGVOYW1lKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVz ZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVO YW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQp KSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lO RF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVy IHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIs CisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJ CWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQp KSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNl IGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFC TEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBmb3JlaWduIHRhYmxl IFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJ CQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRf bmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJ CQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAo b3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9SRUxBVElPTiB8fAorCQkJ CQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXIHx8CisJ CQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVE X1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIl c1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1l c3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJ CQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisKKwkJCWNvbnRpbnVlOwor CQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCByZWxhdGlvbnMg Ki8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBSZWxhdGlvblJlbGF0aW9uSWQpCiAJCQlj b250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDY3ZWI5NjM5NmEuLjg5ZmEyM2MyZGQgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9k ZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZ3JhbXBh cnNlLmgiCkBAIC0yODEsOCArMjgyLDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJQ29u c3RyYWludHNTZXRTdG10IENvcHlTdG10IENyZWF0ZUFzU3RtdCBDcmVhdGVDYXN0U3RtdAogCQlD cmVhdGVEb21haW5TdG10IENyZWF0ZUV4dGVuc2lvblN0bXQgQ3JlYXRlR3JvdXBTdG10IENyZWF0 ZU9wQ2xhc3NTdG10CiAJCUNyZWF0ZU9wRmFtaWx5U3RtdCBBbHRlck9wRmFtaWx5U3RtdCBDcmVh dGVQTGFuZ1N0bXQKLQkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVN0bXQg Q3JlYXRlU3RhdHNTdG10IENyZWF0ZVRhYmxlU3BhY2VTdG10Ci0JCUNyZWF0ZUZkd1N0bXQgQ3Jl YXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAorCQlDcmVhdGVTY2hl bWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU2Vzc2lvblZhclN0bXQgQ3JlYXRlU3RtdCBDcmVh dGVTdGF0c1N0bXQKKwkJQ3JlYXRlVGFibGVTcGFjZVN0bXQgQ3JlYXRlRmR3U3RtdCBDcmVhdGVG b3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CiAJCUNyZWF0ZUFzc2VydGlv blN0bXQgQ3JlYXRlVHJhbnNmb3JtU3RtdCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVFdmVudFRyaWdT dG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5nU3RtdCBDcmVhdGVSb2xlU3Rt dCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNsYXJlQ3Vyc29yU3RtdCBEZWZp bmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CkBAIC03NzUsOCArNzc2LDggQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVRVNDQVBFIFVOQk9VTkRFRCBVTkNPTkRJVElPTkFM IFVOQ09NTUlUVEVEIFVORU5DUllQVEVEIFVOSU9OIFVOSVFVRSBVTktOT1dOCiAJVU5MSVNURU4g VU5MT0dHRUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAotCVZBQ1VVTSBWQUxJRCBWQUxJREFU RSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5HCi0JVkVS Qk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZBQ1VVTSBWQUxJRCBWQUxJREFU RSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQUJMRSBWQVJJQUJMRVMKKwlW QVJJQURJQyBWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKIAog CVdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VUIFdPUksg V1JBUFBFUiBXUklURQogCkBAIC0xMDQyLDYgKzEwNDMsNyBAQCBzdG10OgogCQkJfCBDcmVhdGVQ b2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAogCQkJfCBDcmVhdGVTY2hlbWFTdG10CisJ CQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCQl8IENyZWF0ZVNlcVN0bXQKIAkJCXwgQ3JlYXRl U3RtdAogCQkJfCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CkBAIC0xNTg0LDYgKzE1ODYsNyBAQCBz Y2hlbWFfc3RtdDoKIAkJCXwgQ3JlYXRlVHJpZ1N0bXQKIAkJCXwgR3JhbnRTdG10CiAJCQl8IFZp ZXdTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCTsKIAogCkBAIC01MjEwLDYgKzUy MTMsMzQgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKIAkJCQl9CiAJCTsKIAorLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAqCQkJCUNSRUFURSBWQVJJQUJMRSB2 YXJuYW1lIFtBU10gdHlwZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQ3JlYXRlU2Vz c2lvblZhclN0bXQ6CisJCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5 cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0 bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxl ID0gJDM7CisJCQkJCW4tPnR5cGVOYW1lID0gJDU7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29s bGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOworCQkJCQkk JCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJ U1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJ CQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lv blZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFtZSA9ICQ4 OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCW4tPmlm X25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7CisK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1lIFVQREFU RSBbIFRPIHZlcnNpb24gXQpAQCAtNjk5OCw2ICs3MDI5LDcgQEAgb2JqZWN0X3R5cGVfYW55X25h bWU6CiAJCQl8IFRFWFRfUCBTRUFSQ0ggRElDVElPTkFSWQkJCQl7ICQkID0gT0JKRUNUX1RTRElD VElPTkFSWTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIFRFTVBMQVRFCQkJCXsgJCQgPSBPQkpFQ1Rf VFNURU1QTEFURTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIENPTkZJR1VSQVRJT04JCQl7ICQkID0g T0JKRUNUX1RTQ09ORklHVVJBVElPTjsgfQorCQkJfCBWQVJJQUJMRQkJCQkJCQkJeyAkJCA9IE9C SkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIC8qCkBAIC03ODc0LDYgKzc5MDYsMTQgQEAgcHJpdmls ZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwogCQkJCQkkJCA9IG47CiAJCQkJfQorCQkJ fCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpu ID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CisJCQkJCW4tPnRh cmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFS SUFCTEU7CisJCQkJCW4tPm9ianMgPSAkMjsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJCXwgQUxM IFRBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJCVByaXZUYXJnZXQgKm4g PSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKQEAgLTc5MTksNiAr Nzk1OSwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDU7CiAJCQkJCSQk ID0gbjsKIAkJCQl9CisJCQl8IEFMTCBWQVJJQUJMRVMgSU5fUCBTQ0hFTUEgbmFtZV9saXN0CisJ CQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQ cml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9BTExfSU5fU0NIRU1B OworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpzID0gJDU7 CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCTsKIAogCkBAIC04MTE2LDYgKzgxNjQsNyBAQCBkZWZh Y2xfcHJpdmlsZWdlX3RhcmdldDoKIAkJCXwgU0VRVUVOQ0VTCQl7ICQkID0gT0JKRUNUX1NFUVVF TkNFOyB9CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpFQ1RfVFlQRTsgfQogCQkJfCBTQ0hFTUFT CQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQorCQkJfCBWQVJJQUJMRVMJCXsgJCQgPSBPQkpFQ1Rf VkFSSUFCTEU7IH0KIAkJOwogCiAKQEAgLTk5MDQsNiArOTk1MywyNCBAQCBSZW5hbWVTdG10OiBB TFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgUkVOQU1FIFRPIG5hbWUKIAkJ CQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQor CQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJ UmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBl ID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJ bi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0g KE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25h bWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShS ZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJ bi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld25hbWUgPSAkODsKKwkJCQkJbi0+ bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiBv cHRfY29sdW1uOiBDT0xVTU4KQEAgLTEwMjY1LDYgKzEwMzMyLDI0IEBAIEFsdGVyT2JqZWN0U2No ZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBTRVQgU0NIRU1BIG5hbWUK KwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyT2Jq ZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJ CQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdzY2hlbWEgPSAkNjsKKwkJ CQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJ CQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFNFVCBTQ0hFTUEgbmFtZQor CQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPYmpl Y3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJ CQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ4OworCQkJ CQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7 CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTA1NDYsNiArMTA2MzEsMTQgQEAgQWx0ZXJP d25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBU TyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBPV05FUiBUTyBSb2xlU3BlYwor CQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVyU3RtdCk7 CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9 IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25lciA9ICQ2OworCQkJCQkkJCA9IChOb2RlICop bjsKKwkJCQl9CiAJCTsKIAogCkBAIC0xNzkxNyw2ICsxODAxMCw4IEBAIHVucmVzZXJ2ZWRfa2V5 d29yZDoKIAkJCXwgVkFMSURBVEUKIAkJCXwgVkFMSURBVE9SCiAJCQl8IFZBTFVFX1AKKwkJCXwg VkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUllJTkcKIAkJCXwgVkVSU0lPTl9QCiAJ CQl8IFZJRVcKQEAgLTE4NTcwLDYgKzE4NjY1LDggQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJ fCBWQUxVRV9QCiAJCQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCisJCQl8IFZBUklBQkxFCisJCQl8 IFZBUklBQkxFUwogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJCQl8IFZFUlNJT05fUApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggMGYzMjRlZTRlMy4uNGVhZWQxZjg0MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDUsNiArMTA1LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QKIAlMaXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1zICovCiAJ TGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwogCUxpc3QJICAg KmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxlczsJCS8qIENS RUFURSBWQVJJQUJMRSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsKIAogCkBA IC00MDM5LDYgKzQwNDAsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlz dCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhlcyA9IE5J TDsKIAljeHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQudmFyaWFi bGVzID0gTklMOwogCiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVtZW50IGlu IHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDEwNyw2ICs0MTA5LDE1IEBA IHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25z dCBjaGFyICpzY2hlbWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4dC5ncmFudHMs IGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6 CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0ZVNlc3Npb25W YXJTdG10ICopIGVsZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1hbmFtZSwg JmVscC0+dmFyaWFibGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVzID0gbGFwcGVu ZChjeHQudmFyaWFibGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJCWRlZmF1 bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkJ IChpbnQpIG5vZGVUYWcoZWxlbWVudCkpOwpAQCAtNDEyMCw2ICs0MTMxLDcgQEAgdHJhbnNmb3Jt Q3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNj aGVtYU5hbWUpCiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5kZXhlcyk7CiAJ cmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJlc3VsdCA9IGxp c3RfY29uY2F0KHJlc3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVz dWx0LCBjeHQudmFyaWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmlu ZGV4IGYyOGJmMzcxMDUuLjRmMGJhYjM2ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3Av dXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yMyw2ICsyMyw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKKyNpbmNsdWRlICJj YXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKQEAg LTE4Miw2ICsxODMsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpw YXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVSb2xl U3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVTZXNzaW9u VmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdGF0c1N0 bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10OgpAQCAtMTM4OSw2ICsxMzkxLDEwIEBAIFByb2Nlc3NV dGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwogCisJCQlj YXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJYWRkcmVzcyA9IENyZWF0ZVZhcmlhYmxl KHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQkJYnJlYWs7 CisKIAkJCQkvKgogCQkJCSAqICoqKioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8gZGVzdHJ1 Y3Rpb24gKioqKioqKioqKioqKioKIAkJCQkgKi8KQEAgLTIzNDEsNiArMjM0Nyw5IEBAIEFsdGVy T2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9T VEFUSVNUSUNfRVhUOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1NUQVRJU1RJQ1M7CiAJCQlicmVh azsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl0YWcgPSBDTURUQUdfQUxURVJfVkFSSUFC TEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJ YnJlYWs7CkBAIC0yNjQ5LDYgKzI2NTgsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNl dHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBDTURUQUdf RFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFCTEU7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMzIyNSw2ICszMjM3LDEw IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAK KwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0NSRUFURV9W QVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcsICJ1bnJl Y29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0cmVlKSk7 CkBAIC0zNzU5LDYgKzM3NzUsMTAgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJl ZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJ CWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FS TklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhw YXJzZXRyZWUpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCA1ODNkNmU3Zjg5Li4zZTNkODE2ZWYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FjbC5jCkBAIC04NTEsNiArODUxLDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlw ZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRT OwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQli cmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05P X1JJR0hUUzsKKwkJCW93bmVyX2RlZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3Qg dHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklH SFRTOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC05NDgsNiArOTUyLDkgQEAgYWNsZGVm YXVsdF9zcWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJY2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JK RUNUX1RZUEU7CiAJCQlicmVhazsKKwkJY2FzZSAnVic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZB UklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG9iamVjdCB0eXBlIGFiYnJldmlhdGlvbjogJWMiLCBvYmp0eXBlYyk7CiAJfQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCBhODVkYzBkODkxLi5iNDY0YTdmMDkwIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmFuc2Zv cm0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFr ZWZ1bmNzLmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTM3MTQsMyArMzcxNSwxMTUg QEAgZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJ cmV0dXJuIHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0tLS0tLS0tLS0gUEdfVkFSSUFCTEUgQ0FDSEUg LS0tLS0tLS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF92YXJuYW1lX3ZhcmlkCisgKgkJR2l2ZW4g bmFtZSBhbmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxlLCBsb29rIHVwIHRoZSBPSUQuCisgKi8KK09p ZAorZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFj ZSkKK3sKKwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192 YXJpYWJsZV9vaWQsCisJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkg ICBPYmplY3RJZEdldERhdHVtKHZhcm5hbWVzcGFjZSkpOworfQorCisvKgorICogZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZQorICoJCVJldHVybnMgYSBwYWxsb2MnZCBjb3B5IG9mIHRoZSBuYW1l IG9mIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworY2hhciAqCitnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFy aWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2Fj aGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBU dXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFy aWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IHBzdHJkdXAoTmFtZVN0cih2YXJm b3JtLT52YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJu YW1lOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlCisgKgkJUmV0 dXJucyB0aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBzZXNzaW9u IHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQg dmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJ T2lkCQkJdmFybmFtZXNwYWNlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lE LCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1Iiwg dmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsK KworCXZhcm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5hbWVzcGFjZTsKK30KKworLyoKKyAqIFJldHVybnMg dGhlIHR5cGUgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nl c3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3Jt X3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFydHlwZTsKKworCXR1cCA9IFNlYXJjaFN5 c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFI ZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVk IGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcnR5cGUgPSB2YXJmb3JtLT52YXJ0eXBl OworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFydHlwZTsKK30KKworLyoK KyAqIFJldHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZlbiBzZXNz aW9uIHZhcmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1v ZF9jb2xsaWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJ CU9pZCAqY29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7 CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJKnR5 cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlwbW9kOwor CSpjb2xsaWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9iaW4vcGdf ZHVtcC9jb21tb24uYwppbmRleCAzM2QzMjMwODVmLi5iMDQ1MWMxYjkwIDEwMDY0NAotLS0gYS9z cmMvYmluL3BnX2R1bXAvY29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBA IC0yNDYsNiArMjQ2LDkgQEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRh Ymxlc1B0cikKIAlwZ19sb2dfaW5mbygicmVhZGluZyBzdWJzY3JpcHRpb24gbWVtYmVyc2hpcCBv ZiB0YWJsZXMiKTsKIAlnZXRTdWJzY3JpcHRpb25UYWJsZXMoZm91dCk7CiAKKwlwZ19sb2dfaW5m bygicmVhZGluZyB2YXJpYWJsZXMiKTsKKwlnZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGlu aGluZm8pOwkJCQkvKiBub3QgbmVlZGVkIGFueSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIg PSBudW1UYWJsZXM7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9z cmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKaW5kZXggNTY0OTg1OWFhMS4uNTBkZTVkMGVhMiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9kdW1wdXRpbHMuYwpAQCAtNTExLDYgKzUxMSwxMiBAQCBkbyB7IFwKIAkJQ09OVkVSVF9Q UklWKCdyJywgIlNFTEVDVCIpOwogCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CiAJfQor CWVsc2UgaWYgKHN0cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CisJCQkgc3RyY21wKHR5 cGUsICJWQVJJQUJMRVMiKSA9PSAwKQorCXsKKwkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIp OworCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CisJfQogCWVsc2UKIAkJYWJvcnQoKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cC5oCmluZGV4IGYwZjE5YmIwYjIuLjQ0ZWVkMDNhMmYgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwLmgKQEAgLTEzMiwxMiArMTMyLDE0IEBAIHR5cGVkZWYgc3RydWN0IF9yZXN0b3JlT3B0aW9u cwogCWludAkJCXNlbEZ1bmN0aW9uOwogCWludAkJCXNlbFRyaWdnZXI7CiAJaW50CQkJc2VsVGFi bGU7CisJaW50CQkJc2VsVmFyaWFibGU7CiAJU2ltcGxlU3RyaW5nTGlzdCBpbmRleE5hbWVzOwog CVNpbXBsZVN0cmluZ0xpc3QgZnVuY3Rpb25OYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHNjaGVt YU5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hRXhjbHVkZU5hbWVzOwogCVNpbXBsZVN0 cmluZ0xpc3QgdHJpZ2dlck5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdGFibGVOYW1lczsKKwlT aW1wbGVTdHJpbmdMaXN0IHZhcmlhYmxlTmFtZXM7CiAKIAlpbnQJCQl1c2VEQjsKIAlDb25uUGFy YW1zCWNwYXJhbXM7CQkvKiBwYXJhbWV0ZXJzIHRvIHVzZSBpZiB1c2VEQiAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDcwN2EzZmM4NDQuLmFmYWJlNWZlNDkgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKQEAgLTMxMDIsNiArMzEwMiwxNCBAQCBfdG9j RW50cnlSZXF1aXJlZChUb2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZl SGFuZGxlICpBSCkKIAkJCQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdn ZXJOYW1lcywgdGUtPnRhZykpCiAJCQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3Ry Y21wKHRlLT5kZXNjLCAiVkFSSUFCTEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2Vs VmFyaWFibGUpCisJCQkJCXJldHVybiAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhl YWQgIT0gTlVMTCAmJgorCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFy aWFibGVOYW1lcywgdGUtPnRhZykpCisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJ CXJldHVybiAwOwogCQl9CkBAIC0zNjUxLDYgKzM2NTksNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRp b24oUFFFeHBCdWZmZXIgYnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAi VEVYVCBTRUFSQ0ggRElDVElPTkFSWSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNF QVJDSCBDT05GSUdVUkFUSU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAw IHx8CisJCXN0cmNtcCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAi VklFVyIpID09IDAgfHwKIAkvKiBub24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0 cmNtcCh0eXBlLCAiREFUQUJBU0UiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBlYzBjZGY0ZWQ3 Li4yZDJlMGZmYmVkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTM2Myw2ICszNjMsNyBAQCBzdGF0aWMgdm9p ZCBkdW1wUHVibGljYXRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpw dWJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQs IGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1 YnNjcmlwdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZv KTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBTdWJSZWxJbmZvICpzdWJyaW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBE YXRhYmFzZShBcmNoaXZlICpmb3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNvbmZpZyhB cmNoaXZlICpBSCwgUFFFeHBCdWZmZXIgb3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRi bmFtZSwgT2lkIGRib2lkKTsKQEAgLTU0MTksNiArNTQyMCwxOTAgQEAgZ2V0X25leHRfcG9zc2li bGVfZnJlZV9wZ190eXBlX29pZChBcmNoaXZlICpmb3V0LCBQUUV4cEJ1ZmZlciB1cGdyYWRlX3F1 ZXJ5KQogCXJldHVybiBuZXh0X3Bvc3NpYmxlX2ZyZWVfb2lkOwogfQogCisvKgorICogZ2V0VmFy aWFibGVzCisgKgkgIGdldCBpbmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMKKyAqLwordm9pZAor Z2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdy ZXN1bHQgICAqcmVzOworCVZhcmlhYmxlSW5mbyAqdmFyaW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lk OworCWludAkJCWlfb2lkOworCWludAkJCWlfdmFybmFtZTsKKwlpbnQJCQlpX3Zhcm5hbWVzcGFj ZTsKKwlpbnQJCQlpX3ZhcnR5cGU7CisJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFy b3duZXI7CisJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJhY2w7CisJaW50CQkJ aV9hY2xkZWZhdWx0OworCWludAkJCWksCisJCQkJbnR1cHM7CisKKwlpZiAoZm91dC0+cmVtb3Rl VmVyc2lvbiA8IDE4MDAwMCkKKwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOworCisJcmVzZXRQUUV4cEJ1ZmZlcihxdWVyeSk7CisKKwkvKiBnZXQgdGhlIHZhcmlhYmxl cyBpbiBjdXJyZW50IGRhdGFiYXNlICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJ CSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkgICIgICAg ICAgdi52YXJuYW1lc3BhY2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFs b2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIK KwkJCQkJICAiICAgICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlv biAiCisJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKKwkJCQkJICAi ICAgICAgICAgICAgRUxTRSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9u LFxuIgorCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJCQkJCSAgIiAg ICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJCQkg ICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lOIHBnX2NhdGFs b2cucGdfdHlwZSB0ICIKKwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIpOworCisJcmVz ID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOwor CisJbnR1cHMgPSBQUW50dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVz LCAidGFibGVvaWQiKTsKKwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX3Zhcm5h bWUgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNlID0gUFFmbnVt YmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBlIik7CisJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsK KwlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKworCWlf dmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFjbCA9IFBRZm51 bWJlcihyZXMsICJ2YXJhY2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVzLCAiYWNs ZGVmYXVsdCIpOworCisJdmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihWYXJpYWJs ZUluZm8pKTsKKworCWZvciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJVHlwZUluZm8g ICAqdnR5cGU7CisKKwkJdmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJQUJMRTsKKwkJ dmFyaW5mb1tpXS5kb2JqLmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdldHZhbHVlKHJl cywgaSwgaV90YWJsZW9pZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lk KFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZhcmluZm9baV0u ZG9iaik7CisJCXZhcmluZm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3Zhcm5hbWUpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJCQlmaW5k TmFtZXNwYWNlKGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3BhY2UpKSk7CisK KwkJdmFyaW5mb1tpXS52YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5 cGUpKTsKKwkJdmFyaW5mb1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3ZhcnR5cG5hbWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5mb1tpXS5kYWNs LmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKKwkJdmFyaW5m b1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNs ZGVmYXVsdCkpOworCQl2YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2YXJpbmZvW2ld LmRhY2wuaW5pdHByaXZzID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5h bWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBkbyBub3QgdHJ5IHRv IGR1bXAgQUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KKwkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGks IGlfdmFyYWNsKSkKKwkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9O RU5UX0FDTDsKKworCQlpZiAoc3RybGVuKHZhcmluZm9baV0ucm9sbmFtZSkgPT0gMCkKKwkJCXBn X2xvZ193YXJuaW5nKCJvd25lciBvZiB2YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0byBiZSBpbnZh bGlkIiwKKwkJCQkJCSAgIHZhcmluZm9baV0uZG9iai5uYW1lKTsKKworCQkvKiBkZWNpZGUgd2hl dGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJih2YXJp bmZvW2ldLmRvYmopLCBmb3V0KTsKKworCQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQodmFyaW5mb1tp XS52YXJ0eXBlKTsKKwkJYWRkT2JqZWN0RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5kb2JqLCB2dHlw ZS0+ZG9iai5kdW1wSWQpOworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZm ZXIocXVlcnkpOworfQorCisvKgorICogZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAgdGhlIGRlZmlu aXRpb24gb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIHZvaWQKK2R1 bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCit7 CisJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OworCisJUFFFeHBCdWZmZXIgZGVscTsK KwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwljaGFyCSAgICpxdWFsdmFybmFtZTsKKwljb25zdCBjaGFy ICp2YXJ0eXBuYW1lOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCS8qIHNraXAgaWYgbm90IHRv IGJlIGR1bXBlZCAqLworCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5kdW1wU2No ZW1hKQorCQlyZXR1cm47CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVyeSA9 IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisKKwlxdWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRRdWFs aWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CisJdmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5cG5h bWU7CisJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCisJYXBwZW5kUFFF eHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAorCQkJCQkgIHF1YWx2YXJuYW1l KTsKKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxFICVzIEFTICVz IiwKKwkJCQkJICBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisKKwlpZiAoT2lkSXNWYWxpZCh2 YXJjb2xsYXRpb24pKQorCXsKKwkJQ29sbEluZm8gICAqY29sbDsKKworCQljb2xsID0gZmluZENv bGxhdGlvbkJ5T2lkKHZhcmNvbGxhdGlvbik7CisJCWlmIChjb2xsKQorCQkJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICIgQ09MTEFURSAlcyIsCisJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJs ZShjb2xsKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4iKTsKKworCWlm ICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlBcmNo aXZlRW50cnkoZm91dCwgdmFyaW5mby0+ZG9iai5jYXRJZCwgdmFyaW5mby0+ZG9iai5kdW1wSWQs CisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHZhcmluZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJ ICAubmFtZXNwYWNlID0gdmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJCQkJ CQkJICAub3duZXIgPSB2YXJpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9 ICJWQVJJQUJMRSIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJ CQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0g ZGVscS0+ZGF0YSkpOworCisJLyogZHVtcCBjb21tZW50IGlmIGFueSAqLworCWlmICh2YXJpbmZv LT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29tbWVudChmb3V0 LCAiVkFSSUFCTEUiLCBxdWFsdmFybmFtZSwKKwkJCQkJTlVMTCwgdmFyaW5mby0+cm9sbmFtZSwK KwkJCQkJdmFyaW5mby0+ZG9iai5jYXRJZCwgMCwgdmFyaW5mby0+ZG9iai5kdW1wSWQpOworCisJ LyogZHVtcCBBQ0wgaWYgYW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09N UE9ORU5UX0FDTCkKKwl7CisJCWNoYXIJICAgKnF2YXJuYW1lID0gcGdfc3RyZHVwKGZtdElkKHZh cmluZm8tPmRvYmoubmFtZSkpOworCisJCWR1bXBBQ0woZm91dCwgdmFyaW5mby0+ZG9iai5kdW1w SWQsIEludmFsaWREdW1wSWQsICJWQVJJQUJMRSIsCisJCQkJcXZhcm5hbWUsIE5VTEwsCisJCQkJ dmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwgTlVMTCwgdmFyaW5mby0+cm9sbmFt ZSwKKwkJCQkmdmFyaW5mby0+ZGFjbCk7CisKKwkJZnJlZShxdmFybmFtZSk7CisJfQorCisJZGVz dHJveVBRRXhwQnVmZmVyKGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisKKwlm cmVlKHF1YWx2YXJuYW1lKTsKK30KKwogc3RhdGljIHZvaWQKIGJpbmFyeV91cGdyYWRlX3NldF90 eXBlX29pZHNfYnlfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkJCQkgUFFFeHBCdWZm ZXIgdXBncmFkZV9idWZmZXIsCkBAIC0xMDE0Myw3ICsxMDMyOCw4IEBAIGdldEFkZGl0aW9uYWxB Q0xzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fVEFCTEUgfHwKIAkJ CQkJZG9iai0+b2JqVHlwZSA9PSBET19QUk9DTEFORyB8fAogCQkJCQlkb2JqLT5vYmpUeXBlID09 IERPX0ZEVyB8fAotCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSKQorCQkJ CQlkb2JqLT5vYmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSIHx8CisJCQkJCWRvYmotPm9ialR5 cGUgPT0gRE9fVkFSSUFCTEUpCiAJCQkJewogCQkJCQlEdW1wYWJsZU9iamVjdFdpdGhBY2wgKmRh b2JqID0gKER1bXBhYmxlT2JqZWN0V2l0aEFjbCAqKSBkb2JqOwogCkBAIC0xMDc0Miw2ICsxMDky OCw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAq ZG9iaikKIAkJY2FzZSBET19TVUJTQ1JJUFRJT05fUkVMOgogCQkJZHVtcFN1YnNjcmlwdGlvblRh YmxlKGZvdXQsIChjb25zdCBTdWJSZWxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2Ug RE9fVkFSSUFCTEU6CisJCQlkdW1wVmFyaWFibGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2Jq KTsKKwkJCWJyZWFrOwogCQljYXNlIERPX1BSRV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BP U1RfREFUQV9CT1VOREFSWToKIAkJCS8qIG5ldmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpA QCAtMTUxOTEsNiArMTUzODAsOSBAQCBkdW1wRGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25z dCBEZWZhdWx0QUNMSW5mbyAqZGFjbGluZm8pCiAJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToK IAkJCXR5cGUgPSAiU0NIRU1BUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFC TEU6CisJCQl0eXBlID0gIlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8q IHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3Qg dHlwZSBpbiBkZWZhdWx0IHByaXZpbGVnZXM6ICVkIiwKQEAgLTE4OTAxLDYgKzE5MDkzLDcgQEAg YWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9i anMsCiAJCQljYXNlIERPX0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBE T19UQUJMRV9BVFRBQ0g6CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVG OgogCQkJY2FzZSBET19QUk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4 IDJlNTVhMGUzYmIuLjJmMzlmZjRjOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTIsNiArNTIsNyBAQCB0 eXBlZGVmIGVudW0KIAlET19UQUJMRSwKIAlET19UQUJMRV9BVFRBQ0gsCiAJRE9fQVRUUkRFRiwK KwlET19WQVJJQUJMRSwKIAlET19JTkRFWCwKIAlET19JTkRFWF9BVFRBQ0gsCiAJRE9fU1RBVFNF WFQsCkBAIC02OTksNiArNzAwLDIzIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJSZWxJbmZvCiAJY2hh cgkgICAqc3JzdWJsc247CiB9IFN1YlJlbEluZm87CiAKKy8qCisgKiBUaGUgVmFyaWFibGVJbmZv IHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBzZXNzaW9uIHZhcmlhYmxlcworICovCit0eXBl ZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1w YWJsZUFjbCBkYWNsOworCU9pZAkJCXZhcnR5cGU7CisJY2hhcgkgICAqdmFydHlwbmFtZTsKKwlj aGFyCSAgICp2YXJhY2w7CisJY2hhcgkgICAqcnZhcmFjbDsKKwljaGFyCSAgICppbml0dmFyYWNs OworCWNoYXIJICAgKmluaXRydmFyYWNsOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwljb25zdCBj aGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICovCit9IFZh cmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBAIC03 ODIsNSArODAwLDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAq Zm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBudW1UYWJsZXMpOwogZXh0 ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2b2lkIGdl dFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdldFZhcmlh YmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0RVTVBfSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jCmluZGV4IDNjOGYyZWI4MDguLmNhMzIzMTcxYWEgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcF9zb3J0LmMKQEAgLTc3LDYgKzc3LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVz CiAJUFJJT19EVU1NWV9UWVBFLAogCVBSSU9fQVRUUkRFRiwKIAlQUklPX0xBUkdFX09CSkVDVCwK KwlQUklPX1ZBUklBQkxFLAogCVBSSU9fUFJFX0RBVEFfQk9VTkRBUlksCQkvKiBib3VuZGFyeSEg Ki8KIAlQUklPX1RBQkxFX0RBVEEsCiAJUFJJT19TRVFVRU5DRV9TRVQsCkBAIC0xMTgsNiArMTE5 LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fVEFC TEVdID0gUFJJT19UQUJMRSwKIAlbRE9fVEFCTEVfQVRUQUNIXSA9IFBSSU9fVEFCTEVfQVRUQUNI LAogCVtET19BVFRSREVGXSA9IFBSSU9fQVRUUkRFRiwKKwlbRE9fVkFSSUFCTEVdID0gUFJJT19W QVJJQUJMRSwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRUQUNIXSA9 IFBSSU9fSU5ERVhfQVRUQUNILAogCVtET19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhULApAQCAt MTUwMCw2ICsxNTAyLDEwIEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3Qg Km9iaiwgY2hhciAqYnVmLCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQT1NULURBVEEgQk9VTkRBUlkg IChJRCAlZCkiLAogCQkJCQkgb2JqLT5kdW1wSWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1ZB UklBQkxFOgorCQkJc25wcmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlZBUklBQkxFICVzICAo SUQgJWQgT0lEICV1KSIsCisJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElk Lm9pZCk7CiAJfQogCS8qIHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCXNucHJpbnRmKGJ1ZiwgYnVm c2l6ZSwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggYWExNTY0Y2Q0NS4uZGQ4YzA1NGE2 YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTc4OSw2ICs3ODksMTYgQEAgbXkgJXRl c3RzID0gKAogCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAogCSAgfSwKIAorCSdBTFRF UiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQycKKwkgID0+IHsKKwkJY3JlYXRlX29yZGVy ID0+IDU2LAorCQljcmVhdGVfc3FsICAgPT4gJ0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1Ig Uk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8g UFVCTElDOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUFMVEVSIERFRkFVTFQgUFJJVklMRUdF UyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJM RVMgVE8gUFVCTElDO1xFL3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0 X2RhdGEgPT4gMSwgfSwKKwkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKKwkgIH0sCisK IAknQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlJyA9PiB7CiAJCXJlZ2V4cCA9PiBx ci9eCiAJCQlcUUFMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBXSVRIIFxFCkBAIC0x Njc0LDYgKzE2ODQsMjMgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ09NTUVOVCBP TiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJp YWJsZTEKKwkJCQkJICAgSVMgXCdjb21tZW50IG9uIHZhcmlhYmxlXCc7JywKKwkJcmVnZXhwID0+ CisJCSAgcXIvXlxRQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIElTICdj b21tZW50IG9uIHZhcmlhYmxlJztcRS9tLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSAgICAgPT4gMSwK KwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAor CQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDT1BZIHRl c3RfdGFibGUnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0ZV9zcWwgPT4gJ0lO U0VSVCBJTlRPIGR1bXBfdGVzdC50ZXN0X3RhYmxlIChjb2wxKSAnCkBAIC0zOTQyLDYgKzM5Njks MjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3Rf dmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAn Q1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3Nx bCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyOycs CisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFi bGUxIEFTIGludGVnZXI7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVk dW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJ CXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlf ZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVz dF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JF QVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpAQCAtNDQwNCw2ICs0NDQ5LDI1IEBAIG15ICV0 ZXN0cyA9ICgKIAkJbGlrZSA9PiB7fSwKIAl9LAogCisJJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJM RSBkdW1wX3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MywKKwkJY3Jl YXRlX3NxbCA9PgorCQkgICdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJlZ3Jlc3Nf ZHVtcF90ZXN0X3JvbGU7XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ bm9fcHJpdnMgICAgICAgICAgICAgICAgID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQg ICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgbWF0dmll dycgPT4gewogCQlyZWdleHAgPT4gcXIvXlxRUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBkdW1w X3Rlc3QubWF0dmlldztcRS9tLAogCQlsaWtlID0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv Y29tbWFuZC5jIGIvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCAxZjNjYmIxMWY3Li43NTk0 ZjEwMTBhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4v cHNxbC9jb21tYW5kLmMKQEAgLTEwNzcsNiArMTA3Nyw5IEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxT Y2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQp CiAJCQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdWJzoJCQkvKiBWYXJp YWJsZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJuLCBzaG93X3ZlcmJv c2UpOworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9ucyAqLwogCQkJCWlm IChzaG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9uQ29udGVudHMocGF0 dGVybik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCmluZGV4IDI2NTdhYmRjNzIuLjk2ZDU4NTU3OGQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01 MjM3LDYgKzUyMzcsMTAyIEBAIGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8q CisgKiBcZFYKKyAqCisgKiBsaXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAorbGlzdFZhcmlhYmxl cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFFeHBCdWZmZXJEYXRh IGJ1ZjsKKwlQR3Jlc3VsdCAgICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9w dDsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWlmIChwc2V0LnN2ZXJz aW9uIDwgMTgwMDAwKQorCXsKKwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9y KCJUaGUgc2VydmVyICh2ZXJzaW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHNlc3Npb24gdmFyaWFi bGVzLiIsCisJCQkJCSBmb3JtYXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVyc2lvbiwgZmFsc2Us CisJCQkJCQkJCQkJICAgc3ZlcmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJCXJldHVybiB0cnVl OworCX0KKworCWluaXRQUUV4cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCSAgIlNFTEVDVCBuLm5zcG5hbWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYu dmFybmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2 LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgKFNFTEVDVCBj LmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190 eXBlIGJ0XG4iCisJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0 Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBh cyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJv d25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCisJCQkJ CSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCisJ CQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRpb24iKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93 bmVyIikpOworCisJaWYgKHZlcmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVm LCAiLFxuICAiKTsKKwkJcHJpbnRBQ0xDb2x1bW4oJmJ1ZiwgInYudmFyYWNsIik7CisJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkgICIsXG4gIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0 aW9uKHYub2lkLCAncGdfdmFyaWFibGUnKSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25v b3AoIkRlc2NyaXB0aW9uIikpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJ CQkJCQkgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiCisJCQkJCQkgIlxuICAgICBM RUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHYudmFybmFtZXNw YWNlIik7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5XSEVSRSB0cnVlXG4iKTsK KwlpZiAoIXBhdHRlcm4pCisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgICAgICBBTkQg bi5uc3BuYW1lIDw+ICdwZ19jYXRhbG9nJ1xuIgorCQkJCQkJCSAiICAgICAgQU5EIG4ubnNwbmFt ZSA8PiAnaW5mb3JtYXRpb25fc2NoZW1hJ1xuIik7CisKKwlpZiAoIXZhbGlkYXRlU1FMTmFtZVBh dHRlcm4oJmJ1ZiwgcGF0dGVybiwgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSJuLm5zcG5hbWUiLCAi di52YXJuYW1lIiwgTlVMTCwKKwkJCQkJCQkJInBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlz aWJsZSh2Lm9pZCkiLAorCQkJCQkJCQlOVUxMLCAzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVSIEJZIDEsMjsiKTsKKworCXJlcyA9IFBTUUxl eGVjKGJ1Zi5kYXRhKTsKKwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJl dHVybiBmYWxzZTsKKworCS8qCisJICogTW9zdCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBj b250ZW50IHRvIHByaW50IGFuIGVtcHR5IHRhYmxlIHdoZW4KKwkgKiB0aGVyZSBhcmUgbm8gbWF0 Y2hpbmcgb2JqZWN0cy4gIFdlIGludGVudGlvbmFsbHkgZGV2aWF0ZSBmcm9tIHRoYXQKKwkgKiBo ZXJlLCBidXQgb25seSBpbiAhcXVpZXQgbW9kZSwgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KKwkg Ki8KKwlpZiAoUFFudHVwbGVzKHJlcykgPT0gMCAmJiAhcHNldC5xdWlldCkKKwl7CisJCWlmIChw YXR0ZXJuKQorCQkJcGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFi bGUgbmFtZWQgXCIlc1wiLiIsCisJCQkJCQkgcGF0dGVybik7CisJCWVsc2UKKwkJCXBnX2xvZ19l cnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNzaW9uIHZhcmlhYmxlcy4iKTsKKwl9CisJZWxzZQor CXsKKwkJbXlvcHQubnVsbFByaW50ID0gTlVMTDsKKwkJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9m IHZhcmlhYmxlcyIpOworCQlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwkJbXlvcHQu dHJhbnNsYXRlX2NvbHVtbnMgPSB0cmFuc2xhdGVfY29sdW1uczsKKwkJbXlvcHQubl90cmFuc2xh dGVfY29sdW1ucyA9IGxlbmd0aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKworCQlwcmludFF1ZXJ5 KHJlcywgJm15b3B0LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisJfQor CisJUFFjbGVhcihyZXMpOworCXJldHVybiB0cnVlOworfQogCiAvKgogICogXGRGcApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApp bmRleCAyNzNmOTc0NTM4Li40ZTE1YTE4MGVhIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuaAorKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaApAQCAtMTQ5LDQgKzE0OSw3IEBA IGV4dGVybiBib29sIGxpc3RPcEZhbWlseUZ1bmN0aW9ucyhjb25zdCBjaGFyICphY2Nlc3NfbWV0 aG9kX3BhdHRlcm4sCiAvKiBcZGwgb3IgXGxvX2xpc3QgKi8KIGV4dGVybiBib29sIGxpc3RMYXJn ZU9iamVjdHMoYm9vbCB2ZXJib3NlKTsKIAorLyogXGRWICovCitleHRlcm4gYm9vbCBsaXN0VmFy aWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmFyYm9zZSk7CisKICNlbmRpZgkJCQkJ CQkvKiBERVNDUklCRV9IICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvaGVscC5jIGIvc3Jj L2Jpbi9wc3FsL2hlbHAuYwppbmRleCAzZjRhZmMyZDE0Li4yMzUyZWQ3NDIyIDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvaGVscC5jCisrKyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKQEAgLTI2Niw2 ICsyNjYsNyBAQCBzbGFzaFVzYWdlKHVuc2lnbmVkIHNob3J0IGludCBwYWdlcikKIAlIRUxQMCgi ICBcXGRUW1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IGRhdGEgdHlwZXNcbiIpOwogCUhFTFAwKCIg IFxcZHVbUytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpOwogCUhFTFAwKCIgIFxcZHZb UytdIFtQQVRURVJOXSAgICAgIGxpc3Qgdmlld3NcbiIpOworCUhFTFAwKCIgIFxcZFYgICAgIFtQ QVRURVJOXSAgICAgIGxpc3Qgc2Vzc2lvbiB2YXJpYWJsZXNcbiIpOwogCUhFTFAwKCIgIFxcZHhb K10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5zaW9uc1xuIik7CiAJSEVMUDAoIiAgXFxkWCAg ICAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbmRlZCBzdGF0aXN0aWNzXG4iKTsKIAlIRUxQMCgi ICBcXGR5WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV2ZW50IHRyaWdnZXJzXG4iKTsKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwppbmRleCBiYmQwODc3MGMzLi5jYTlkOWY1MjhkIDEwMDY0NAotLS0gYS9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCkBAIC05NzAsNiArOTcwLDEzIEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBR dWVyeV9mb3JfdHJpZ2dlcl9vZl90YWJsZSA9IHsKIAkucmVmbmFtZXNwYWNlID0gImMxLnJlbG5h bWVzcGFjZSIsCiB9OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzID0geworCS5taW5fc2VydmVyX3ZlcnNpb24gPSAxODAwMDAsCisJLmNhdG5h bWUgPSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IiwKKwkudmlzY29uZGl0aW9uID0gInBnX2Nh dGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCS5uYW1lc3BhY2UgPSAidi52 YXJuYW1lc3BhY2UiLAorCS5yZXN1bHQgPSAidi52YXJuYW1lIiwKK307CiAKIC8qCiAgKiBRdWVy aWVzIHRvIGdldCBsaXN0cyBvZiBuYW1lcyBvZiB2YXJpb3VzIGtpbmRzIG9mIHRoaW5ncywgcG9z c2libHkKQEAgLTEzMDQsNiArMTMxMSw3IEBAIHN0YXRpYyBjb25zdCBwZ3NxbF90aGluZ190IHdv cmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFRBQkxFIC4uLiAq LwogCXsiVVNFUiIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzLCBOVUxMLCBOVUxMLCBLZXl3b3Jk c19mb3JfdXNlcl90aGluZ30sCiAJeyJVU0VSIE1BUFBJTkcgRk9SIiwgTlVMTCwgTlVMTCwgTlVM TH0sCisJeyJWQVJJQUJMRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJs ZXN9LAogCXsiVklFVyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92aWV3c30sCiAJ e05VTEx9CQkJCQkJLyogZW5kIG9mIGxpc3QgKi8KIH07CkBAIC0xODY1LDcgKzE4NzMsNyBAQCBw c3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQki XFxkRiIsICJcXGRGZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRnIiwgIlxcZGkiLCAiXFxkbCIs ICJcXGRMIiwKIAkJIlxcZG0iLCAiXFxkbiIsICJcXGRvIiwgIlxcZE8iLCAiXFxkcCIsICJcXGRQ IiwgIlxcZFBpIiwgIlxcZFB0IiwKIAkJIlxcZHJkcyIsICJcXGRyZyIsICJcXGRScyIsICJcXGRS cCIsICJcXGRzIiwKLQkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJc XGRYIiwgIlxcZHkiLAorCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4Iiwg IlxcZFgiLCAiXFxkeSIsICJcXGRWIiwKIAkJIlxcZWNobyIsICJcXGVkaXQiLCAiXFxlZiIsICJc XGVsaWYiLCAiXFxlbHNlIiwgIlxcZW5jb2RpbmciLAogCQkiXFxlbmRpZiIsICJcXGVycnZlcmJv c2UiLCAiXFxldiIsCiAJCSJcXGYiLApAQCAtMjU1Niw2ICsyNTY0LDkgQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJICAiQUxMIik7CiAJZWxzZSBpZiAo TWF0Y2hlcygiQUxURVIiLCAiU1lTVEVNIiwgIlNFVCIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVf V0lUSCgiVE8iKTsKKwkvKiBBTFRFUiBWQVJJQUJMRSA8bmFtZT4gKi8KKwllbHNlIGlmIChNYXRj aGVzKCJBTFRFUiIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiT1dO RVIgVE8iLCAiUkVOQU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAkvKiBBTFRFUiBWSUVXIDxuYW1l PiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZJRVciLCBNYXRjaEFueSkpCiAJCUNP TVBMRVRFX1dJVEgoIkFMVEVSIENPTFVNTiIsICJPV05FUiBUTyIsICJSRU5BTUUiLCAiUkVTRVQi LCAiU0VUIik7CkBAIC0zMTIxLDcgKzMxMzIsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJCQkJICAiUk9VVElORSIsICJSVUxFIiwgIlNDSEVNQSIsICJTRVFVRU5D RSIsICJTRVJWRVIiLAogCQkJCQkgICJTVEFUSVNUSUNTIiwgIlNVQlNDUklQVElPTiIsICJUQUJM RSIsCiAJCQkJCSAgIlRBQkxFU1BBQ0UiLCAiVEVYVCBTRUFSQ0giLCAiVFJBTlNGT1JNIEZPUiIs Ci0JCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWSUVXIik7CisJCQkJCSAgIlRSSUdHRVIiLCAi VFlQRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIs ICJPTiIsICJBQ0NFU1MiLCAiTUVUSE9EIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfYWNjZXNzX21ldGhvZHMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQi LCAiT04iLCAiQ09OU1RSQUlOVCIpKQpAQCAtMzkzMSw2ICszOTQyLDEzIEBAIG1hdGNoX3ByZXZp b3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiPSIsIE1h dGNoQW55RXhjZXB0KCIqKSIpKSkKIAkJCUNPTVBMRVRFX1dJVEgoIiwiLCAiKSIpOwogCX0KKy8q IENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28g dXNlIFRhaWxNYXRjaGVzICovCisJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3 aXRoIEFTICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1h dGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQVMiKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygi VkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCisJCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJM RSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLworCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShR dWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOwogCiAvKiBDUkVBVEUgVklFVyAtLS0gaXMgYWxs b3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29t cGxldGUgQ1JFQVRFIFsgT1IgUkVQTEFDRSBdIFZJRVcgPG5hbWU+IHdpdGggQVMgb3IgV0lUSCAq LwpAQCAtNDE5Myw2ICs0MjExLDEyIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJu X2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVFJBTlNGT1JNIiwgIkZPUiIsIE1hdGNo QW55LCAiTEFOR1VBR0UiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAi UkVTVFJJQ1QiKTsKIAorCS8qIERST1AgVkFSSUFCTEUgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJE Uk9QIiwgIlZBUklBQkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zv cl9saXN0X29mX3ZhcmlhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJWQVJJQUJM RSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOwor CiAvKiBFWEVDVVRFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRVhFQ1VURSIpKQogCQlDT01QTEVU RV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ByZXBhcmVkX3N0YXRlbWVudHMpOwpAQCAt NDM5NCw3ICs0NDE4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJ CSAqIG9iamVjdHMgc3VwcG9ydGVkLgogCQkgKi8KIAkJaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIs ICJERUZBVUxUIiwgIlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJT RVFVRU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLCAiUk9VVElORVMiLCAiVFlQRVMi LCAiU0NIRU1BUyIpOworCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJG VU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwg IlZBUklBQkxFUyIpOwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVT KFF1ZXJ5X2Zvcl9saXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05T IElOIFNDSEVNQSIsCkBAIC00NDE2LDcgKzQ0NDAsOCBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIlNFUVVFTkNFIiwKIAkJCQkJCQkJCQkJIlRBQkxF IiwKIAkJCQkJCQkJCQkJIlRBQkxFU1BBQ0UiLAotCQkJCQkJCQkJCQkiVFlQRSIpOworCQkJCQkJ CQkJCQkiVFlQRSIsCisJCQkJCQkJCQkJCSJWQVJJQUJMRSIpOwogCX0KIAllbHNlIGlmIChUYWls TWF0Y2hlcygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJBTEwiKSB8fAogCQkJIFRh aWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNoQW55LCAi T04iLCAiQUxMIikpCkBAIC00NDI0LDcgKzQ0NDksOCBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAkJCQkJICAiUFJPQ0VEVVJFUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJS T1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRVMgSU4gU0NIRU1BIiwKLQkJCQkJ ICAiVEFCTEVTIElOIFNDSEVNQSIpOworCQkJCQkgICJUQUJMRVMgSU4gU0NIRU1BIiwKKwkJCQkJ ICAiVkFSSUFCTEVTIElOIFNDSEVNQSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVHxS RVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iKSB8fAogCQkJIFRhaWxNYXRjaGVzKCJS RVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlH TiIpKQogCQlDT01QTEVURV9XSVRIKCJEQVRBIFdSQVBQRVIiLCAiU0VSVkVSIik7CkBAIC00NDYw LDYgKzQ0ODYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCUNP TVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzcGFjZXMpOwogCQllbHNl IGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZB UklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9v Zl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlQiLCBNYXRjaEFueSwg TWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgoIlRPIik7CiAJCWVsc2UKQEAg LTQ3NjIsNyArNDc5MCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CiAvKiBQUkVQQVJFIHh4IEFTICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiUFJFUEFSRSIsIE1hdGNo QW55LCAiQVMiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQg SU5UTyIsICJERUxFVEUgRlJPTSIpOworCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRF IiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIiwgIkxFVCIpOwogCiAvKgogICogUFJFUEFS RSBUUkFOU0FDVElPTiBpcyBtaXNzaW5nIG9uIHB1cnBvc2UuIEl0J3MgaW50ZW5kZWQgZm9yIHRy YW5zYWN0aW9uCkBAIC01MjI4LDYgKzUyNTYsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9yb2xl cyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkdioiKSkKIAkJQ09NUExFVEVfV0lUSF9T Q0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3MpOworCWVsc2UgaWYgKFRhaWxNYXRj aGVzQ1MoIlxcZFYqIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9s aXN0X29mX3ZhcmlhYmxlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkeCoiKSkKIAkJ Q09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9leHRlbnNpb25zKTsKIAllbHNl IGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRYKiIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTY3Zjkx YTZlMy4uNTA3ZjM4MDgyMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmls ZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBAIC04MSw3ICs4MSw4IEBAIENB VEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFtZXNwYWNlLmggXAogCXBnX3B1 YmxpY2F0aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBcCi0JcGdfc3Vic2NyaXB0aW9u X3JlbC5oCisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192YXJpYWJsZS5oCiAKIEdFTkVS QVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0lX2QuaCkKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bWVzb24uYnVpbGQKaW5kZXggZjcwZDFkYWJhNS4uNmVlYzc5ZDJlZSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkCkBAIC02OSw2ICs2OSw3IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX3B1 YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5oJywKICAgJ3BnX3N1YnNjcmlw dGlvbl9yZWwuaCcsCisgICdwZ192YXJpYWJsZS5oJywKIF0KIAogIyBUaGUgLmRhdCBmaWxlcyB3 ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3RlZCBhbHBoYWJldGljYWxseS4KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVz cGFjZS5oCmluZGV4IDhkNDM0ZDQ4ZDUuLjE4ZWE2YWM4M2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3Bh Y2UuaApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWQoY29uc3Qg Y2hhciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVuYW1lR2V0VHlwaWRFeHRlbmRlZChjb25z dCBjaGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0ZXJuIGJvb2wgVHlwZUlzVmlzaWJs ZShPaWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQp OworCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVuY25hbWVHZXRDYW5kaWRhdGVzKExpc3Qg Km5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3MsIExpc3QgKmFyZ25hbWVzLAogCQkJCQkJ CQkJCQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAgLTE2OSw2ICsxNzEsOCBAQCBleHRlcm4g U2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9yeUNvbnRleHQgY29u dGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQYXRoTWF0Y2hlcihT ZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1 cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAKK2V4dGVybiBPaWQJ TG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwg Ym9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0aW9uX29pZChMaXN0ICpj b2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2NvbnZlcnNpb25fb2lk KExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCUZpbmREZWZhdWx0 Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0b19lbmNvZGluZyk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggZDI3MmNkZjA4Yi4uNTI5ZDUzYzZi YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisrKyBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgsNyBAQCBN QUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNwX29i al9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1bmN0aW9u ICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUgREVG QUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZBQ0xPQkpf VkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NFX1RP X0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDk1NzU1MjQwMDcu LmI1MTMzN2FkMjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNjU2Niw2ICs2NTY2LDkg QEAKICAgcHJvbmFtZSA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnLCBwcm9jb3N0ID0+ICcx MCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5 cGVzID0+ICdvaWQnLAogICBwcm9zcmMgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJyB9LAor eyBvaWQgPT4gJzkyMjEnLCBkZXNjciA9PiAnaXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGlu IHNlYXJjaCBwYXRoPycsCisgIHByb25hbWUgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUnLCBw cm9jb3N0ID0+ICcxMCcsIHByb3ZvbGF0aWxlID0+ICdzJywKKyAgcHJvcmV0dHlwZSA9PiAnYm9v bCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLCBwcm9zcmMgPT4gJ3BnX3ZhcmlhYmxlX2lzX3Zpc2li bGUnIH0sCiAKIHsgb2lkID0+ICcyODU0JywgZGVzY3IgPT4gJ2dldCBPSUQgb2YgY3VycmVudCBz ZXNzaW9uXCdzIHRlbXAgc2NoZW1hLCBpZiBhbnknLAogICBwcm9uYW1lID0+ICdwZ19teV90ZW1w X3NjaGVtYScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcGFyYWxsZWwgPT4gJ3InLApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAu LjM4MTBlMDQwZjIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKQEAgLTAsMCArMSw4MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdf dmFyaWFibGUuaAorICoJICBkZWZpbml0aW9uIG9mIHNlc3Npb24gdmFyaWFibGVzIHN5c3RlbSBj YXRhbG9nIChwZ192YXJpYWJsZXMpCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykg MTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlv bnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlm b3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKyAqCisgKiBO T1RFUworICoJICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJp dmVzIHNjaGVtYQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LworI2lmbmRlZiBQR19WQVJJQUJMRV9ICisjZGVmaW5lIFBHX1ZBUklBQkxFX0gKKworI2luY2x1 ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCisjaW5jbHVkZSAidXRpbHMvYWNs LmgiCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ192YXJpYWJsZSBkZWZpbml0aW9uLiAg Y3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3Zhcmlh YmxlCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfdmFyaWFibGUsOTIyMixW YXJpYWJsZVJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLworCisJLyogT0lE IG9mIGVudHJ5IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCU9pZAkJCXZhcnR5 cGUgQktJX0xPT0tVUChwZ190eXBlKTsKKworCS8qIHZhcmlhYmxlIG5hbWUgKi8KKwlOYW1lRGF0 YQl2YXJuYW1lOworCisJLyogT0lEIG9mIG5hbWVzcGFjZSBjb250YWluaW5nIHZhcmlhYmxlIGNs YXNzICovCisJT2lkCQkJdmFybmFtZXNwYWNlIEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsKKwor CS8qIHZhcmlhYmxlIG93bmVyICovCisJT2lkCQkJdmFyb3duZXIgQktJX0xPT0tVUChwZ19hdXRo aWQpOworCisJLyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlpbnQzMgkJdmFydHlw bW9kIEJLSV9ERUZBVUxUKC0xKTsKKworCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLworCU9pZAkJ CXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24p OworCisKKyNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMg c3RhcnQgaGVyZSAqLworCisJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCisJYWNsaXRlbQkJdmFy YWNsWzFdIEJLSV9ERUZBVUxUKF9udWxsXyk7CisKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ192YXJp YWJsZTsKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVz cG9uZHMgdG8gYSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgdGhl IHBnX3ZhcmlhYmxlIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVm IEZvcm1EYXRhX3BnX3ZhcmlhYmxlICpGb3JtX3BnX3ZhcmlhYmxlOworCitERUNMQVJFX1RPQVNU KHBnX3ZhcmlhYmxlLCA5MjIzLCA5MjI0KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShw Z192YXJpYWJsZV9vaWRfaW5kZXgsIDkyMjUsIFZhcmlhYmxlT2lkSW5kZXhJZCwgcGdfdmFyaWFi bGUsIGJ0cmVlKG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ192YXJpYWJs ZV92YXJuYW1lX25zcF9pbmRleCwgOTIyNiwgVmFyaWFibGVOYW1lTnNwSW5kZXhJZCwgcGdfdmFy aWFibGUsIGJ0cmVlKHZhcm5hbWUgbmFtZV9vcHMsIHZhcm5hbWVzcGFjZSBvaWRfb3BzKSk7CisK K2V4dGVybiBPYmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK KwkJCQkJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsKK2V4dGVybiB2b2lkIERyb3BW YXJpYWJsZUJ5SWQoT2lkIHZhcmlkKTsKKworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU5BTUVOU1As IHBnX3ZhcmlhYmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoVkFSSUFC TEVPSUQsIHBnX3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19W QVJJQUJMRV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMGY5NDYyNDkzZS4uMGUwODI5 NmI0MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjMxNiw2ICsyMzE2LDcgQEAgdHlwZWRl ZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfVFNURU1QTEFURSwKIAlPQkpFQ1RfVFlQRSwKIAlP QkpFQ1RfVVNFUl9NQVBQSU5HLAorCU9CSkVDVF9WQVJJQUJMRSwKIAlPQkpFQ1RfVklFVywKIH0g T2JqZWN0VHlwZTsKIApAQCAtMzQ0Nyw2ICszNDQ4LDIxIEBAIHR5cGVkZWYgc3RydWN0IEFsdGVy U3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3RhdGlzdGlj cyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgkJe0NyZWF0ZXxBbHRlcn0gVkFSSUFCTEUgU3RhdGVtZW50Cisg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlSYW5nZVZhciAgICp2YXJpYWJsZTsJCS8q IHRoZSB2YXJpYWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRo ZSB0eXBlIG9mIHZhcmlhYmxlICovCisJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKKwlib29s CQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCit9 IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAq CQlDcmVhdGUgRnVuY3Rpb24gU3RhdGVtZW50CiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKaW5kZXggODk5ZDY0YWQ1NS4uNTY2NzBlNjViMSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtNDg0LDYgKzQ4NCw4IEBAIFBHX0tFWVdPUkQoInZhbGlkYXRvciIsIFZBTElEQVRPUiwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWUiLCBWQUxV RV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZXMi LCBWQUxVRVMsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJj aGFyIiwgVkFSQ0hBUiwgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InZhcmlhYmxlIiwgVkFSSUFCTEUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BH X0tFWVdPUkQoInZhcmlhYmxlcyIsIFZBUklBQkxFUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgidmFyaWFkaWMiLCBWQVJJQURJQywgUkVTRVJWRURfS0VZV09S RCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcnlpbmciLCBWQVJZSU5HLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidmVyYm9zZSIsIFZFUkJPU0UsIFRZUEVf RlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90 Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDdm ZGNlYzZkZDkuLjk0NjVkZjdiMmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2OCw3 IEBAIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JNIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAiQUxU RVIgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJf VFlQRSwgIkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf QUxURVJfVVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxFIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxURVIg VklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwgIkFO QUxZWkUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwgIkJF R0lOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURUQUco Q01EVEFHX0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklHR0VS IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwgIkNS RUFURSBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVf VVNFUl9NQVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkK K1BHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFURSBW SUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFLCAi REVBTExPQ0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxM T0NBVEVfQUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTc1 LDYgKzE3Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRSQU5T Rk9STSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklHR0VS LCAiRFJPUCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19E Uk9QX1RZUEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0RST1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxFIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9QIFZJ RVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJFWEVD VVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwgIkVY UExBSU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvYWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCA3MzFkODRiMmE5Li45OGFh Yjk4MjI5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy9hY2wuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHR5cGVkZWYgc3RydWN0IEFycmF5 VHlwZSBBY2w7CiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1NDSEVNQQkJKEFDTF9VU0FHRXxBQ0xf Q1JFQVRFKQogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UQUJMRVNQQUNFCShBQ0xfQ1JFQVRFKQog I2RlZmluZSBBQ0xfQUxMX1JJR0hUU19UWVBFCQkJKEFDTF9VU0FHRSkKKyNkZWZpbmUgQUNMX0FM TF9SSUdIVFNfVkFSSUFCTEUJCShBQ0xfU0VMRUNUfEFDTF9VUERBVEUpCiAKIC8qIG9wZXJhdGlv biBjb2RlcyBmb3IgcGdfKl9hY2xtYXNrICovCiB0eXBlZGVmIGVudW0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hl LmgKaW5kZXggMjA0NDZmNmY4My4uOGEzNjg0ZTcxMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAg LTEzNCw2ICsxMzQsNyBAQCBleHRlcm4gY2hhciBnZXRfZnVuY19wcm9raW5kKE9pZCBmdW5jaWQp OwogZXh0ZXJuIGJvb2wgZ2V0X2Z1bmNfbGVha3Byb29mKE9pZCBmdW5jaWQpOwogZXh0ZXJuIFJl Z1Byb2NlZHVyZSBnZXRfZnVuY19zdXBwb3J0KE9pZCBmdW5jaWQpOwogZXh0ZXJuIE9pZAlnZXRf cmVsbmFtZV9yZWxpZChjb25zdCBjaGFyICpyZWxuYW1lLCBPaWQgcmVsbmFtZXNwYWNlKTsKK2V4 dGVybiBPaWQJZ2V0X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5h bWVzcGFjZSk7CiBleHRlcm4gY2hhciAqZ2V0X3JlbF9uYW1lKE9pZCByZWxpZCk7CiBleHRlcm4g T2lkCWdldF9yZWxfbmFtZXNwYWNlKE9pZCByZWxpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxfdHlw ZV9pZChPaWQgcmVsaWQpOwpAQCAtMjA2LDYgKzIwNywxNCBAQCBleHRlcm4gY2hhciAqZ2V0X3B1 YmxpY2F0aW9uX25hbWUoT2lkIHB1YmlkLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAln ZXRfc3Vic2NyaXB0aW9uX29pZChjb25zdCBjaGFyICpzdWJuYW1lLCBib29sIG1pc3Npbmdfb2sp OwogZXh0ZXJuIGNoYXIgKmdldF9zdWJzY3JpcHRpb25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlz c2luZ19vayk7CiAKK2V4dGVybiBjaGFyICpnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2 YXJpZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFy aWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCk7Citl eHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZh cmlkLAorCQkJCQkJCQkJCQkJCU9pZCAqdHlwaWQsCisJCQkJCQkJCQkJCQkJaW50MzIgKnR5cG1v ZCwKKwkJCQkJCQkJCQkJCQlPaWQgKmNvbGxpZCk7CisKICNkZWZpbmUgdHlwZV9pc19hcnJheSh0 eXBpZCkgIChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQogLyogdHlwZV9p c19hcnJheV9kb21haW4gYWNjZXB0cyBib3RoIHBsYWluIGFycmF5cyBhbmQgZG9tYWlucyBvdmVy IGFycmF5cyAqLwogI2RlZmluZSB0eXBlX2lzX2FycmF5X2RvbWFpbih0eXBpZCkgIChnZXRfYmFz ZV9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9kZXBlbmRlbmN5Lm91dAppbmRleCA3NGQ5ZmYyOTk4Li5jMzM2ZjY3YTU5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAgLTE1MSwzICsxNTEsMjAgQEAg b3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNlcjIs IHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBV U0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9N QUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwgYiBp bnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CistLSBz aG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRVJST1I6ICBjYW5ub3QgZHJvcCB0 eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6 ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRlcGVuZHMgb24gdHlwZSB2YXJk b21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQg b2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdHlw ZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNl c3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFydHlwZQorSElOVDogIFVzZSBE Uk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIGNs ZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9N QUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lk am9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5kZXgg MjE1ZWI4OTliZS4uZDk5NTMzMjE0MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vaWRqb2lucy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lu cy5vdXQKQEAgLTI2NiwzICsyNjYsNyBAQCBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRp b24ge3N1YmRiaWR9ID0+IHBnX2RhdGFiYXNlIHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19z dWJzY3JpcHRpb24ge3N1Ym93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KIE5PVElDRTogIGNoZWNr aW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3Nyc3ViaWR9ID0+IHBnX3N1YnNjcmlwdGlvbiB7b2lk fQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JyZWxpZH0gPT4gcGdf Y2xhc3Mge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJ0eXBlfSA9PiBw Z190eXBlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFybmFtZXNwYWNl fSA9PiBwZ19uYW1lc3BhY2Uge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2 YXJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJs ZSB7dmFyY29sbGF0aW9ufSA9PiBwZ19jb2xsYXRpb24ge29pZH0KZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3BzcWwub3V0CmluZGV4IDM2ZGMzMWMxNmMuLjg4ZTIxMTk0NzEgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wc3FsLm91dApAQCAtNTkzMCw2ICs1OTMwLDMwIEBAIENPTU1JVDsKICMgZmluYWwgT05f RVJST1JfUk9MTEJBQ0s6IG9mZgogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxf ZXJyb3I7CistLSBzZXNzaW9uIHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUg ZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1h IHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAg ICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAg ICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJp YWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKIC0tIGNoZWNrIGRlc2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMK IFxkQSByZWdyZXNzaW9uLmhlYXAKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLmhlYXAKQEAgLTYxNTEsNiArNjE3NSwxMiBAQCBjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNoLnB1Ymxp Yy5mdW5jX2RlcHNfc3RhdAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25lc3VjaC5teWV2dAogaW1wcm9wZXIg cXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6IG5vbmVzdWNoLm15ZXZ0Citc ZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK2ltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJl Z3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBu b3QgaW1wbGVtZW50ZWQ6IHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gu cHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVk OiBub25lc3VjaC5wdWJsaWMudmFyCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBu YW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2Qi CiBMaXN0IG9mIGFjY2VzcyBtZXRob2RzCkBAIC02Mzg1LDYgKzY0MTUsMTIgQEAgTGlzdCBvZiBz Y2hlbWFzCiAtLS0tLS0rLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LQogKDAgcm93cykKIAorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBv ZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAt LSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5h Y2Nlc3MubWV0aG9kIgpAQCAtNjU1NCw2ICs2NTkwLDEyIEBAIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmlu c3RhCiAKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXBy b3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50 IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Np b24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKICAgICAgIExpc3Qg b2YgcmVsYXRpb25zCkBAIC02Njg3LDYgKzY3MjksMTIgQEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0 ZW1wbGF0ZXMKIC0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0rLS0tLS0KICgwIHJvd3MpCiAKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSstLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQg Im5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRp b24iCiBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5z dWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpA QCAtNjczNCw2ICs2NzgyLDggQEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGlt cGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW0KIGNyb3NzLWRhdGFi YXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCitjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogLS0gY2hlY2sgXGRyZyBh bmQgXGR1CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwogQ1JFQVRFIFJPTEUgcmVncmVz c19kdV9yb2xlMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDA3ODE3YmIx MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC0wLDAgKzEsMTM4IEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworLS0gc2hvdWxkIGJlIG9rCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMg YXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnllbGVtZW50Cist LSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7 CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmcKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMg aW50OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMsIHNr aXBwaW5nCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0gc2hvdWxkIGJl IG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gdGhlIHZhcmlhYmxlIGNhbiB1 c2UgY29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEgaW50LCBiIGludCk7CitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQxOwor RVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHQx CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVj dHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUQUJMRSB0MSBBREQgQ09MVU1OIGMgaW50 OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBiIFRZUEUgbnVt ZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBU QUJMRSB0MTsKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdDE7CistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHQxOworRVJST1I6ICBj YW5ub3QgZHJvcCB0eXBlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RF VEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCist LSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKKy0tIHNo b3VsZCBmYWlsCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBiICBUWVBFIG51bWVyaWM7 CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl ICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQx OworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGVmYXVsdDsKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIg c3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3Jl cG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciBy ZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJf ZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4gTk9UIHIubm9ybWFs IEFORCBOT1Qgci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAgICAgICdOT1JNQUw6 IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0l JywKKyAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0 X3R5cGUsCisgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRy ZXNzX2FyZ3M7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFU RSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVk IE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUg UFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworRFJPUCBWQVJJQUJMRSB2YXIxOworTk9USUNFOiAgTk9STUFM OiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYgdHlwZT1zZXNzaW9uIHZhcmlhYmxlIGlkZW50aXR5 PXB1YmxpYy52YXIxIG5hbWU9e3B1YmxpYyx2YXIxfSBhcmdzPXt9CitEUk9QIEVWRU5UIFRSSUdH RVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQ7CistLSBjaGVjayBj b21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5U IE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdf Y2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgICAgb2JqX2Rlc2NyaXB0aW9uICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzb21lIHZhcmlhYmxlIGNvbW1lbnQKKygxIHJvdykKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRl ZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3Zh cnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEFTIGludDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9y ZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdyZXNz X3ZhcmlhYmxlX3JlYWRlcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgT1dORVIgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgUkVO QU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyeHggU0VUIFNDSEVNQSBw dWJsaWM7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKK0FMVEVSIERFRkFVTFQgUFJJVklM RUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4gU0NIRU1BIHN2 YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0IHByaXZpbGVnZXMKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworXGRWKyBzdmFydGVzdC52YXIx CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlv biB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmls ZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2 YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wg CisgICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBTQ0hF TUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLSBjaGVj ayBXSVRIIEdSQU5UIE9QVElPTgorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBXSVRIIEdSQU5UIE9QVElPTjsK K1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJu YW1lID0gJ3ZhcjEnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmFjbCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7cmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zhcmlh YmxlX293bmVyLHJlZ3Jlc3NfdmFyaWFibGVfcjE9ciovcmVncmVzc192YXJpYWJsZV9vd25lcixy ZWdyZXNzX3ZhcmlhYmxlX3IyPXIqL3JlZ3Jlc3NfdmFyaWFibGVfcjF9CisoMSByb3cpCisKK1JF Vk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJs ZV9yMSBDQVNDQURFOworU0VMRUNUIHZhcmFjbCBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5h bWUgPSAndmFyMSc7CisgICAgICAgICAgICAgICAgICAgICAgIHZhcmFjbCAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisge3JlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25l cn0KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKK0RST1AgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggODFl NDIyMmQyNi4uMDVlYjc4NGY2MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxl bF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0x MTEsNyArMTExLDcgQEAgdGVzdDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpz b25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRv ZXMgYSByZWNvbm5lY3Qgd2hpY2ggdHJhbnNpZW50bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAogIyBz byBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0t LS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5n ZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBw b2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sCit0ZXN0 OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHBy ZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhp c20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFi bGVzCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmluZGV4IDhkNzRlZDcxMjIuLjZjMThiN2Y4NDAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCkBAIC0xMTQsMyArMTE0LDE3IEBAIERS T1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNl cjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJP UCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFU RSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50 LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsK KworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0RST1AgVFlQRSB2YXJ0 eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5 cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCmluZGV4IGM1MDIx ZmMwYjEuLjY2NmVkZGI2MzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCkBAIC0xNjMxLDYgKzE2MzEs MTkgQEAgQ09NTUlUOwogRFJPUCBUQUJMRSBibGE7CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiAKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJs ZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCitHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEg SVMgJ3NvbWUgZGVzY3JpcHRpb24nOworXGRWKyB2YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7CisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsK KwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jl c3Npb24uaGVhcAogXGRBIG5vbmVzdWNoLmhlYXAKQEAgLTE3NDIsNiArMTc1NSw5IEBAIERST1Ag RlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkWCBub25lc3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQK IFxkeSByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jl c3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Npb258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9u ZXN1Y2gucHVibGljLnZhcgogCiAtLSBjaGVjayB0aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1l IHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRBICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBA IC0xNzgzLDYgKzE3OTksOCBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1 Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNz IgogXGR5ICJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisK IAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTgyMyw2ICsxODQx LDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVu dC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0t IGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJs ZS5yZWxhdGlvbiIKQEAgLTE4NDcsNiArMTg2Niw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJv cjsKIFxkUCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQu cmVsYXRpb24iCiBcZFQgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEu dHlwZSIKIFxkWCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQu c3RhdGlzdGljcyIKK1xkViByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFy aWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODcyLDYgKzE4OTIsNyBAQCBEUk9Q IEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0YWJh c2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRh dGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitc ZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUi CiAKIC0tIGNoZWNrIFxkcmcgYW5kIFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yN2UyZGJlNmEwCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsMTQ3 IEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitTRVQgbG9nX3N0YXRl bWVudCBUTyBkZGw7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworCistLSBzaG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVB VEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5v dGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NS RUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFp bAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CisKKy0tIHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBv c2l0ZSB0eXBlcworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQxOworCistLSBz aG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3Vs ZCBmYWlsCitBTFRFUiBUQUJMRSB0MSBBTFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdDE7CisKK0NSRUFURSBUWVBFIHQxIEFTIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBm YWlsCitEUk9QIFRZUEUgdDE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQg QVRUUklCVVRFIGMgaW50OworCistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBB VFRSSUJVVEUgYiAgVFlQRSBudW1lcmljOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZ UEUgdDE7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRlZmF1bHQ7CisKKy0tIGNoZWNrIGV2ZW50 IHRyaWdnZXIgc3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVudF90 cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQKK0RF Q0xBUkUgciByZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2ZW50 X3RyaWdnZXJfZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4gTk9U IHIubm9ybWFsIEFORCBOT1Qgci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAgICAg ICdOT1JNQUw6IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBuYW1l PSUgYXJncz0lJywKKyAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3Jhcnks IHIub2JqZWN0X3R5cGUsCisgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19uYW1l cywgci5hZGRyZXNzX2FyZ3M7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVw b3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklBQkxFJykK KyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7 CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKwor RFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9w cGVkOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUgY29t bWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFyaWFi bGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBBTFRF UgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3Qg VE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9y ZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdyZXNz X3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05FUiBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBS RU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NIRU1B IHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVSIERFRkFVTFQg UFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4gU0NI RU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJpdmls ZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJM RSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1xkVisgc3Zh cnRlc3QudmFyMQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CisKK0RST1AgU0NIRU1B IHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjaGVj ayBXSVRIIEdSQU5UIE9QVElPTgorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKK0NS RUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKK0dSQU5UIFNFTEVD VCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBHUkFOVCBPUFRJ T047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9QVElPTjsKK1NF VCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBXSEVS RSB2YXJuYW1lID0gJ3ZhcjEnOworCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUg dmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKKworU0VMRUNUIHZhcmFjbCBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGNlMzNlNTViZjEuLjhhNmM3ZGE3OGIgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC01MzUsNiArNTM1LDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENy ZWF0ZVNjaGVtYVN0bXQKIENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitD cmVhdGVTZXNzaW9uVmFyU3RtdAogQ3JlYXRlU3RhdHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVT dG10Q29udGV4dApAQCAtODc1LDYgKzg3Niw3IEBAIEZvcm1EYXRhX3BnX3RzX3BhcnNlcgogRm9y bURhdGFfcGdfdHNfdGVtcGxhdGUKIEZvcm1EYXRhX3BnX3R5cGUKIEZvcm1EYXRhX3BnX3VzZXJf bWFwcGluZworRm9ybURhdGFfcGdfdmFyaWFibGUKIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRl CiBGb3JtX3BnX2FnZ3JlZ2F0ZQogRm9ybV9wZ19hbQpAQCAtOTM0LDYgKzkzNiw3IEBAIEZvcm1f cGdfdHNfcGFyc2VyCiBGb3JtX3BnX3RzX3RlbXBsYXRlCiBGb3JtX3BnX3R5cGUKIEZvcm1fcGdf dXNlcl9tYXBwaW5nCitGb3JtX3BnX3ZhcmlhYmxlCiBGb3JtYXROb2RlCiBGcmVlQmxvY2tOdW1i ZXJBcnJheQogRnJlZUxpc3REYXRhCkBAIC0zMDgxLDYgKzMwODQsNyBAQCBWYXJTdHJpbmcKIFZh clN0cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJs ZUluZm8KIFZhcmlhYmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10 Ci0tIAoyLjQ3LjEKCg== --000000000000157aaf0628de9f56--